From 00c61749d8c40660ddb439580c05ec5cba8f6a3c Mon Sep 17 00:00:00 2001 From: ian Date: Mon, 7 Mar 2005 16:19:38 +0000 Subject: [PATCH] Change ChangeLog file names from a numeric index (ChangeLog.N) to a year based name (ChangeLog-YYYY). This change does not itself get a ChangeLog entry. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@96028 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog-1997 | 3969 ++++ gcc/{ChangeLog.1 => ChangeLog-1998} | 27939 +++++++++++++------------ gcc/{ChangeLog.2 => ChangeLog-1999} | 7331 ++++++- gcc/{ChangeLog.3 => ChangeLog-2000} | 15268 +++++++++++++- gcc/{ChangeLog.6 => ChangeLog-2001} | 14439 ++++++++++++- gcc/{ChangeLog.7 => ChangeLog-2002} | 14449 ++++++++++++- gcc/{ChangeLog.9 => ChangeLog-2003} | 16378 ++++++++++++++- gcc/{ChangeLog.12 => ChangeLog-2004} | 20990 ++++++++++++++++++- gcc/ChangeLog.0 | 13011 ------------ gcc/ChangeLog.10 | 16352 --------------- gcc/ChangeLog.11 | 21016 ------------------- gcc/ChangeLog.4 | 15261 -------------- gcc/ChangeLog.5 | 14446 ------------- gcc/ChangeLog.8 | 14448 ------------- 14 files changed, 107635 insertions(+), 107662 deletions(-) create mode 100644 gcc/ChangeLog-1997 rename gcc/{ChangeLog.1 => ChangeLog-1998} (52%) rename gcc/{ChangeLog.2 => ChangeLog-1999} (66%) rename gcc/{ChangeLog.3 => ChangeLog-2000} (52%) rename gcc/{ChangeLog.6 => ChangeLog-2001} (57%) rename gcc/{ChangeLog.7 => ChangeLog-2002} (60%) rename gcc/{ChangeLog.9 => ChangeLog-2003} (56%) rename gcc/{ChangeLog.12 => ChangeLog-2004} (56%) delete mode 100644 gcc/ChangeLog.0 delete mode 100644 gcc/ChangeLog.10 delete mode 100644 gcc/ChangeLog.11 delete mode 100644 gcc/ChangeLog.4 delete mode 100644 gcc/ChangeLog.5 delete mode 100644 gcc/ChangeLog.8 diff --git a/gcc/ChangeLog-1997 b/gcc/ChangeLog-1997 new file mode 100644 index 000000000000..ea16ac7e81d1 --- /dev/null +++ b/gcc/ChangeLog-1997 @@ -0,0 +1,3969 @@ +Wed Dec 31 14:42:18 1997 Ian Lance Taylor + + * configure.in: Set and substitute 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. + +Wed Dec 31 10:05:44 1997 Jeffrey A Law (law@cygnus.com) + + * mn10200.md (addsi3, subsi3): Fix thinkos. + +Tue Dec 30 00:04:49 1997 Richard Henderson + + * 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. + +Mon Dec 29 14:37:31 1997 Ian Lance Taylor + + * mips/t-ecoff (CROSS_LIBGCC1): Define to libgcc1-asm.a. + (LIB1ASMSRC, LIB1ASMFUNCS): Define. + +Mon Dec 29 14:03:38 1997 Jeffrey A Law (law@cygnus.com) + + * expr.c (expand_expr): For {BITFIELD,COMPONENT,ARRAY}_REF, if the + offset's mode is not ptr_mode, convert it. + +Mon Dec 29 15:58:18 1997 Michael Meissner + + * libgcc2.c (inhibit_libc): Don't define inhibit_libc when cross + compiling if it was already defined. + +Sun Dec 28 00:32:16 1997 Jeffrey A Law (law@cygnus.com) + + * flow.c (find_basic_blocks): Don't create a new basic block + for calls in a LIBCALL block. + +Sun Dec 28 00:30:24 1997 David Edelsohn + + * config/fp-bit.c (L_df_to_sf): Fix typo in last change. + +Sat Dec 27 22:43:12 1997 Jeffrey A Law (law@cygnus.com) + + * cse.c (rtx_cost): Remove conflicting default case. + +Sat Dec 27 21:20:02 1997 Richard Henderson + + * configure.in: Move default enabling of Haifa out of for loop. + * configure: Rebuild. + +Thu Dec 25 01:02:54 1997 Jeffrey A Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +1997-12-25 Teemu Torma + + * 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: Likewise. + + * 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. + +Wed Dec 24 23:33:17 1997 Jeffrey A Law (law@cygnus.com) + + * expr.h (MUST_PASS_IN_STACK): Allow target port to override. + +Wed Dec 24 23:12:14 1997 Jim Wilson + + * cse.c (max_insn_uid): New variable. + (cse_around_loop): Use max_insn_uid. + (cse_main): Set max_insn_uid. + + * 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. + +Wed Dec 24 22:38:34 1997 John Carr + + * 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. + +Wed Dec 24 22:34:55 1997 Jeffrey A Law (law@cygnus.com) + + * tree.c (restore_tree_status): Do not dereference a null pointer. + +Tue Dec 23 12:56:46 1997 Paul Eggert + + * 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. + +Tue Dec 23 05:17:28 1997 Richard Henderson + + * 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. + +Tue Dec 23 03:53:21 1997 Richard Henderson + + * 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 independent 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. + +Tue Dec 23 03:14:54 1997 Richard Henderson + + * Makefile.in (clean): Remove the stages with their objects here ... + (distclean): ... instead of here. + +Mon Dec 22 11:24:01 1997 Kaveh R. Ghazi + + * cse.c (rtx_cost): Add default case in enumeration switch. + * fix-header.c (recognized_macro): Likewise. + (recognized_extern): Likewise. + (write_rbrac): Likewise. + * objc/objc-act.c (encode_aggregate): Likewise. + (gen_declarator): Likewise. + (gen_declspecs): Likewise. + +Mon Dec 22 09:58:51 1997 Jeffrey A Law (law@cygnus.com) + + * 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. + +Mon Dec 22 09:18:37 1997 Jeffrey A Law (law@cygnus.com) + + * c-pragma.c: Include flags.h. + +Sun Dec 21 22:10:59 1997 Mumit Khan + + * 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. + +Sun Dec 21 21:54:22 1997 Jeffrey A Law (law@cygnus.com) + + * pa.c (emit_move_sequence): Handle a function label source + operand. + +Sun Dec 21 16:13:55 1997 Nick Clifton + + * 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. + +Sun Dec 21 15:51:10 1997 Manfred Hollstein + + * m68k/mot3300.h (ASM_BYTE_OP): Don't include '\t' in the + definition. + (ASM_OUTPUT_ASCII): Prefix ASM_BYTE_OP by one single '\t'. + +Sun Dec 21 13:58:39 1997 Jeffrey A Law (law@cygnus.com) + + * 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. + +Sat Dec 20 11:26:47 1997 Kaveh R. Ghazi + Jeff Law + + * bitmap.c (bitmap_clear): Ensure `inline' is at the beginning + of the declaration. + * c-decl.c (finish_decl): Use parentheses around && within ||. + * rtl.c: Include stdlib.h. + (read_skip_spaces): Add parentheses around assignments used as + truth values. + (read_rtx): Initialize list_rtx. + * cppexp.c (parse_number): Use || when operands are truth values. + * alias.c (find_base_value): Add default case. + (memrefs_conflict): Likewise. + * combine.c (sets_function_arg_p): Likewise. + * genemit.c (gen_exp): Likewise. + * local-alloc.c (contains_replace_regs): Likewise. + * rtlanal.c (jmp_uses_reg_or_mem): Likewise. + * fold-const.c (fold_convert): Use "&&" for truth values. + (fold): Add default case. + * sdbout.c (sdbout_field_types): Fix typo in declaration. + (sdbout_one_type): Add default case. + * alpha.c (alpha_sa_mask): Prototype only if OPEN_VMS. + (some_operand): Add default case. + (input_operand): Likewise. + (signed_comparison_operator): Likewise. + (divmod_operator): Likewise. + (alpha_set_memflags_1): Likewise. + * reload1.c (reload_cse_simplify_operands): Ensure function + always returns a value. + * scan-decls.c (scan_decls): Likewise. + * c-lex.c (skip_white_space): Fix typo in declaration. + * c-typeck.c (comp_target_types): Add parentheses around assignment + used as truth value. + (print_spelling): Likewise. + (constructor_implicit, constructor_result): Remove unused variables. + * collect2.c (scan_library): Protect prototype with + #ifdef SCAN_LIBRARIES. + * emit-rtl.c (find_line_note): Fix typo in declaration. + * final.c (asm_insn_count): Protect prototype with + #ifdef HAVE_ATTR_length. + * flow.c (find_auto_inc): Protect prototype with #ifdef AUTO_INC_DEC. + (try_pre_increment_1, try_pre_increment): Likewise. + * regclass.c (auto_inc_dec_reg_p): Protect prototype with + #ifdef FORBIDDEN_INC_DEC_CLASSES. Make return type explicit. + * gcov-io.h (__store_long, __write_long, __read_long): Fix + unsigned/signed comparisons. + * gcov.c (read_files): Remove unused "first_type" variable. + (scan _for_source_files): Initialize s_ptr. + (function_summary): Eliminate "%lf" formatting, use %ld for + longs. + (output_data): Initialize branch_probs and last_line_num. + Eliminate "%lf" formatting, use "%ld" for longs. + +Fri Dec 19 17:31:11 1997 Ian Lance Taylor + + * mips16.S: New file. + + * libgcc2.c (varargs): Handle mips16. + + * expr.c (do_tablejump): Let CASE_VECTOR_PC_RELATIVE be an + expression. + * stmt.c (expand_end_case): Likewise. + * alpha.h (CASE_VECTOR_PC_RELATIVE): Update. + * fx80.h, gmicro.h, m68k.h, m88k.h, ns32k.h: Likewise. + * rs6000.h, sh.h, tahoe.h, v850.h, vax.h: Likewise. + +Tue Dec 16 15:14:09 1997 Andreas Schwab + + * 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. + +Fri Dec 19 00:19:42 1997 Richard Henderson + + * tree.c (build_range_type): Allow creation of ranges with no maximum. + * dbxout.c (dbxout_range_type): Handle missing TYPE_MAX_VALUE. + * dwarf2out.c (add_subscript_info): Likewise. + * dwarfout.c (subscript_data_attribute, byte_size_attribute): Likewise. + * sdbout.c (plain_type_1): Likewise. + * stmt.c (pushcase_range, all_cases_count, node_has_high_bound): + Likewise. + * fold-const.c (int_const_binop, fold_convert, make_range, fold): + Likewise. + +Thu Dec 18 17:05:10 1997 Kaveh R. Ghazi + + * mips.c (fatal): Remove declaration. + +1997-12-18 Mark Mitchell + + * 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): Likewise. + +Thu Dec 18 19:19:57 1997 Ian Lance Taylor + + * mips/mips.h (INIT_SUBTARGET_OPTABS): Define if not defined. + (INIT_TARGET_OPTABS): Define. + * mips/ecoff.h: Include gofast.h before mips.h. + (INIT_SUBTARGET_OPTABS): Define instead of INIT_TARGET_OPTABS. + * mips/elf64.h: Likewise. + * mips/elf.h (ASM_OUTPUT_SECTION_NAME): Define. + +Thu Dec 18 14:51:12 1997 Jason Merrill + + * except.c: Remove register_exception_table{,_p}. + +Thu Dec 18 14:57:29 1997 Gavin Koch + + * unroll.c (calculate_giv_inc): Handle constant increment found in + a MEM with an appropriate REG_EQUAL note. + + * calls.c (expand_call): Implement LOAD_ARGS_REVERSED. + + * dwarf2out.c (dwarf2out_frame_debug): Handle adjustments of the + frame pointer in the prologue. + +Thu Dec 18 00:19:38 1997 Robert Lipe + + * i386/x-sco5 (CLIB): Deleted. + (ALLOCA): Added. + * i386/xm-sco5.h (USE_C_ALLOCA): Added. + +Tue Dec 16 18:51:00 1997 Bill Moyer + + * config/m68k/m68k.c (output_function_prologue): Typecast + dwarf2out_cfi_label to (char *). + * config/m68k/m68kemb.h (STARTFILE_SPEC): Redefined to "". + +Wed Dec 17 15:06:04 1997 Richard Henderson + + * sparc.md (jump): Don't use the annul bit around an empty loop. + Patch from Kevin.Kelly@East.Sun.COM. + +Wed Dec 17 00:51:36 1997 Stan Cox (scox@cygnus.com) + + * jump.c (jump_optimize): Don't use the return register as a + source1 of a conditional move. + +Tue Dec 16 23:45:40 1997 Richard Henderson + + * sparc.c (DF_MODES): Or the mask not the bit number. + (function_arg) [ARCH64]: Send unprototyped arg to fp reg first. + +Wed Dec 17 00:13:48 1997 Christian Iseli + + * combine.c (force_to_mode): Return immediately if operand is a + CLOBBER. + +Tue Dec 16 23:44:54 1997 Manfred Hollstein + + * 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. + + * m68k/xm-mot3300.h (ADD_MISSING_POSIX, ADD_MISSING_XOPEN): Define to + prevent unresolved externals in libio. + * m88k/xm-sysv3.h (ADD_MISSING_POSIX, ADD_MISSING_XOPEN): Likewise. + +Tue Dec 16 23:25:45 1997 H.J. Lu (hjl@gnu.org) + + * config/sparc/linux64.h (LIBGCC_SPEC): Removed. + (CPP_SUBTARGET_SPEC): Add %{pthread:-D_REENTRANT}. + (LIB_SPEC): Updated for glibc 2. + +Tue Dec 16 20:11:36 1997 Jeffrey A Law (law@cygnus.com) + + * ginclude/stdarg.h: Undo BeOS changes, they break hpux. + * ginclude/varargs.h: Likewise. + +Tue Dec 16 00:32:01 1997 Jeffrey A Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Tue Dec 16 00:14:29 1997 H.J. Lu (hjl@gnu.org) + + * frame.h (__register_frame, __register_frame_table, + __deregister_frame): New. + * frame.c (__register_frame, __register_frame_table, + __deregister_frame): New. + * frame.c (__deregister_frame_info): Return void *. + * frame.h (__deregister_frame_info): Likewise. + * collect2.c (__deregister_frame_info): Likewise. + +Mon Dec 15 18:40:08 1997 Richard Henderson + + * expmed.c (expand_shift): If SHIFT_COUNT_TRUNCATED, drop a SUBREG. + +Mon Dec 15 18:31:43 1997 Richard Henderson + + * alpha.c (alpha_cpu_name): New variable. + (alpha_mlat_string): Likewise. + (alpha_memory_latency): Likewise. + (override_options): Handle -mmemory-latency. + (alpha_adjust_cost): Adjust load cost for latency. + * alpha.h (TARGET_OPTIONS): Add memory-latency. + (REGISTER_MOVE_COST): Define in terms of memory_latency. Take + TARGET_CIX into account. + (MEMORY_MOVE_COST): Define in terms of memory_latency. + * invoke.texi (DEC Alpha Options): Document -mmemory-latency. + + * alpha.h (ASM_COMMENT_START): New macro. + +Mon Dec 15 17:48:05 1997 Richard Henderson + + * 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. + +Mon Dec 15 11:41:32 1997 Mark Mitchell + + * toplev.c (rest_of_compilation): Don't call save_for_inline_copy + if all we're doing is dealing with -Wreturn-type. + +Mon Dec 15 09:44:39 1997 Richard Henderson + + * alpha.md (zero_extendqihi2, zero_extendqisi2, zero_extendqidi2): + Use and 255 instead of zapnot 1, since it schedules better. + +Mon Dec 15 08:48:24 1997 Jeffrey A Law (law@cygnus.com) + + * stmt.c (expand_asm_operands): If an ASM has no outputs, then treat + it as volatile. + +Mon Dec 15 00:04:48 1997 Jeffrey A Law (law@cygnus.com) + + * haifa-sched.c (remove_dependencies): Set RTX_INTEGRATED_P on + dependency we delete. Properly update prev for multiple consecutive + deletions. + (priority): Skip deleted dependence. + +Fri Dec 12 18:54:23 1997 Per Bothner + + * expr.c (expand_builtin): Support BUILT_IN_FMOD - just call fmod. + +Fri Dec 12 01:19:48 1997 Jason Merrill + + * flow.c (flow_analysis): Be consistent with find_basic_blocks in + determining when a new basic block starts. + + * alpha/osf2or3.h (LIB_SPEC): Restore missing defn. + + * pa.h (TEXT_SPACE_P): Use TREE_CODE_CLASS. + * pa.md (iorsi3): Add missing args to *_operand calls. + + * except.c (call_get_eh_context): Don't mess with sequences. + (emit_eh_context): Include the call in the sequence here. + +1997-12-11 Paul Eggert + + * collect2.c (write_c_file_glob): Allocate initial frame object + in static storage and pass its address. + +Thu Dec 11 23:33:48 1997 Jason Merrill + + * except.c (call_get_eh_context): Don't take a parm. + Put the call at the top of the function. + (emit_eh_context): Adjust. + (get_eh_context): Replace with former use_eh_context. + (get_eh_context_once, get_saved_pc_ref): Remove. + (start_eh_unwinder, end_eh_unwinder, emit_unwinder): Remove. + * except.h: Adjust. + * integrate.c (expand_inline_function): Adjust. + * toplev.c (rest_of_compilation): Don't call emit_unwinder. + +Fri Oct 10 17:58:31 1997 Marc Lehmann + + * i386/xm-go32.h (EXECUTABLE_SUFFIX): Define. + (DIR_SEPARATOR, NO_SYS_SIGLIST): Likewise. + +Thu Dec 11 23:55:17 1997 Manfred Hollstein + + * fixincludes (strlen,strspn,strcspn return value): Handle different + layout on sysV88. + (hypot): Provide a fake for hypot which is broken on + m88k-motorola-sysv3. + +Thu Dec 11 23:50:17 1997 John F. Carr + + * tree.c, tree.h: Change tree_code_type, tree_code_length, and + tree_code_name from pointers to arrays. + * tree.c: Remove standard_tree_code_* variables, no longer used. + * print-tree.c: Remove declaration of tree_code_name. + + * cp/lex.c (init_lex): Update for tree_code_* changes. + * objc/objc-act.c (init_objc): Likewise. + + * tree.def, cp/cp-tree.def, objc/objc-tree.def: Update for tree_code + changes. + +Thu Dec 11 23:34:54 1997 Fred Fish + + * config.sub: Add support for BeOS target. + * configure.in: Likewise. + * ginclude/stdarg.h: Likewise. + * ginclude/stddef.h: Likewise. + * ginclude/varargs.h: Likewise. + * rs6000/beos.h: New file for BeOS. + * rs6000/t-beos: Likewise. + * rs6000/x-beos: Likewise. + * rs6000/xm-beos.h: Likewise. + * toplev.c (get_run_time): Just return 0 on BeOS. + +Thu Dec 11 23:25:23 1997 Jeffrey A Law (law@cygnus.com) + Toon Moene (toon@moene.indiv.nluug.nl) + + * m68k.h (GO_IF_LEGITIMATE_ADDRESS): No longer cater to horribly + old and broken Sun3 assemblers. Newer versions handle large + offsets correctly as does the GNU assembler. + +Thu Dec 11 23:06:48 1997 H.J. Lu (hjl@gnu.ai.mit.edu) + + * objc/objc-act.c (lang_report_error_function): Disable. + * objc/objc-parse.y: Include "output.h". + (yyerror): Remove redundant decl. + (yyprint): Fix prototype. + (apply_args_register_offset): Remove redundant decl. + (get_file_function_name): Likewise. + +Thu Dec 11 22:02:10 1997 Jason Merrill + + * flow.c (find_basic_blocks): A CALL_INSN that can throw starts + a new basic block. + (find_basic_blocks_1): Likewise. + +Thu Dec 11 21:08:48 1997 Jason Merrill + + * except.c (use_eh_context): Don't copy_rtx a REG. + (emit_throw): Lose old unwinder support. + (expand_internal_throw): Likewise. + * libgcc2.c (struct eh_context): Likewise. + (new_eh_context): Likewise. + (__get_eh_info): Lose redundant cast. + (__get_dynamic_handler_chain): Likewise. + (__get_saved_pc): Lose. + Lose all old unwinder support code. + +Thu Dec 11 20:42:18 1997 Teemu Torma + + Thread-safe EH support for pthreads, DCE threads and Solaris threads. + + * integrate.c (expand_inline_function): If the inline fn uses eh + context, make sure that the current fn has one. + * toplev.c (rest_of_compilation): Call emit_eh_context. + * except.c (use_eh_context): New fn. + (get_eh_context_once): New fn. + (call_get_eh_context): New fn. + (emit_eh_context): New fn. + (get_eh_context): Call either get_eh_context_once or + call_get_eh_context, depending on what we have. + (get_dynamic_handler_chain): Call get_eh_context_once. + * except.h: Prototypes for fns above. + * optabs.c (get_eh_context_libfunc): Removed. + (init_optabs): Don't initialize it. + * expr.h (get_eh_context_libfunc): Removed. + * rtl.h, rtl.c: New reg_note REG_EH_CONTEXT. + * config/pa/pa.h (CPP_SPEC): Support for -threads. + * config/pa/pa-hpux10.h (LIB_SPEC): Likewise. + * config/pa/t-pa (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): + New multilib for -threads. + * config/sparc/t-sol2: Added multilibs for -threads and + made -pthreads alias to it. + * config/sparc/sol2.h (CPP_SPEC, LIB_SPEC): + Added -threads and -pthreads options. + * libgcc-thr.h: New file. + * libgcc2.c (__get_cpp_eh_context): Removed. + (struct cpp_eh_context): Removed. + (struct eh_context): Replaced cpp_eh_context with generic language + specific pointer. + (__get_eh_info): New function. + (__throw): Check eh_context::info. + (__sjthrow): Likewise. + * libgcc2.c: Include libgcc-thr.h. + (new_eh_context, __get_eh_context, + eh_pthread_initialize, eh_context_initialize, eh_context_static, + eh_context_specific, eh_context_free): New functions. + (get_eh_context, eh_context_key): New variables. + (__sjthrow, __sjpopnthrow, __eh_pcnthrow, __throw): Use + get_eh_context to get the context. + (longjmp): Move the declaration inside + #ifdef DONT_USE_BUILTIN_SETJMP. + * frame.c: Include libgcc-thr.h. + (object_mutex): Mutex to protect the object list. + (find_fde, __register_frame, __register_frame_table, + __deregister_frame): Hold the lock while accessing objects. + * except.h (get_eh_context): Declare. + * except.c (current_function_ehc): Define. + (current_function_dhc, current_function_dcc): Removed. + (get_eh_context): New function. + (get_dynamic_handler_chain): Use get_eh_context. + (get_saved_pc_ref): Likewise. + (get_dynamic_cleanup_chain): Removed references to + current_function_dcc. + (save_eh_status, restore_eh_status): Save and restore + current_function_ehc instead. + * optabs.c (get_eh_context_libfunc): New variable. + (init_optabs): Initialize it. + * expr.h: Declare get_eh_context_libfunc. + * function.h (struct function): Replaced dhc and dcc with ehc. + * except.c (get_saved_pc_ref): New functions. + (eh_saved_pc_rtx, eh_saved_pc): Deleted. + (expand_internal_throw_indirect): Use get_saved_pc_ref() instead + of eh_saved_pc. + (end_eh_unwinder): Likewise. + (init_eh): Remove initialization of eh_saved_pc. + * optabs.c (get_saved_pc_libfunc): New variable. + (init_optabs): Initialize it. + * expr.h: Declare get_saved_pc_libfunc. + * except.h (eh_saved_pc_rtx): Deleted. + (get_saved_pc_ref): Declared. + + From Scott Snyder : + * libgcc2.c (__get_saved_pc): New. + (__eh_type, __eh_pc): Deleted. + (__eh_pcnthrow): Use __get_saved_pc() instead of __eh_pc. + (__get_dynamic_handler_chain): Move __dynamic_handler_chain inside + this fcn. + +Thu Dec 11 17:23:48 1997 John F. Carr + + * sparc/sol2.h: Use 64 bit multiply and divide functions in + Solaris libc. Define TARGET_LIVE_G0 and TARGET_BROKEN_SAVERESTORE + as 0. + + * rtl.h (global_rtl): New variable, replacing separate variables for + commonly used rtl. + (const_int_rtx): Now array of rtx_def, not rtx. + * emit-rtl.c: Update for new rtl data structures. + * genattrtab.c: Define global_rtl. + +Thu Dec 11 15:50:29 1997 David Edelsohn + + * configure.in ({rs6000,powerpc}-*-*): Enable Haifa scheduler by + default. + +Wed Dec 10 12:30:18 1997 Anthony Green + + * crtstuff.c (__do_global_ctors): Fix typo. + +Tue Dec 9 09:43:59 1997 Manfred Hollstein + + * toplev.c (main): Check HAVE_GETRLIMIT and HAVE_SETRLIMIT in addition + to RLIMIT_STACK to see if we can call getrlimit and setrlimit. + +Tue Dec 9 09:38:58 1997 David Edelsohn + + * rs6000.h (FUNCTION_ARG_PADDING): Define. + * rs6000.c (function_arg_padding): New function. + +Tue Dec 9 10:34:21 1997 Manfred Hollstein + + * m68k.c: Include tree.h only once. + +Tue Dec 9 09:32:33 1997 Richard Kenner + + * integrate.c (save_for_inline_copying): Make a new reg_parm_stack_loc. + +Tue Dec 9 01:16:06 1997 Jeffrey A Law (law@cygnus.com) + + * Partially cleaned up prototyping code from HJ. + * tree.h: Add many prototypes. + * haifa-sched.c (haifa_classify_insn): Renamed from classify_insn. + All references changed. + * rtl.h: Protect from multiple inclusions. Add many prototypes. + +Tue Dec 9 01:15:15 1997 Fred Fish + + * libgcc2.c (string.h): Hoist inclusion to occur before first use of + string functions like strlen. + +Tue Dec 9 00:57:38 1997 Manfred Hollstein + + * configure.in: Check for functions getrlimit and setrlimit. + * cccp.c (main): Check HAVE_GETRLIMIT and HAVE_SETRLIMIT in addition + to RLIMIT_STACK to see if we can call getrlimit and setrlimit. + +Mon Dec 8 23:53:26 1997 Jay Sachs + + * Makefile.in (compare*): Handle losing behavior from 4.4bsd make. + +Mon Dec 8 21:03:28 1997 Richard Henderson + + * alpha.c (REG_RA, alpha_return_addr, output_epilog): + Fix merge problems. + + * alpha.c (override_options): Don't know about scheduling for EV6. + * alpha.md (ev5 function units): Don't overload as ev6. + + * alpha.c (alpha_adjust_cost): Simplify. Fix typo in ev5 mult case. + * alpha.md (define_attr type): Add mvi. + (ev5_e0): Define sceduling parameters for it. + (TARGET_MAX insns): Type is mvi not shift. + +Mon Dec 8 18:15:00 1997 Richard Henderson + + * alpha/win-nt.h (TRAMPOLINE_TEMPLATE): Fix backported gcc-2.8 bug. + +Mon Dec 8 21:17:28 1997 J"orn Rennecke + + * cstamp-h, auto-config.h: Delete. + +Sun Dec 7 19:19:03 1997 Jeffrey A Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Sat Dec 6 22:22:22 1997 Jeffrey A Law (law@cygnus.com) + + * cccp.c: Fix typo brought over in merge. + + * Merge in changes from gcc-2.8. + +Mon Nov 3 05:45:32 1997 Philippe De Muyter + + * m68k.c: Include tree.h for dwarf2out_cfi_label. + + * gcc.c (process_command): Do not take address of function fatal when + calling lang_specific_driver. + +Sat Dec 6 01:02:38 1997 Mumit Khan + + * config/i386/cygwin32.h (DWARF2_UNWIND): Exception handling + doesn't work with it yet, so set it to 0. + * config/i386/xm-cygwin32.h (NO_SYS_SIGLIST): Define. + +Sat Dec 6 01:01:02 1997 Christian Iseli + + * cse.c (cse_insn): Check for invalid entries when taking references. + +Fri Dec 5 18:26:25 1997 J"orn Rennecke + + * loop.c (invariant_p): Don't test flag_rerun_loop_opt. + (loop_optimize, scan_loop, strength_reduce): New argument unroll_p. + * toplev.c (rest_of_compilation): Pass it. Remove code to + save / clear / restore flag_unroll_{,all_}loops. + +Fri Dec 5 16:26:03 1997 Bernd Schmidt + + * i386.c (notice_update_cc): Remove bogus pentium GCC code. + +Fri Dec 5 16:25:14 1997 Jeffrey A Law (law@cygnus.com) + + * stmt.c (warn_if_unused_value): Don't warn for TRY_CATCH_EXPR. + +Thu Dec 4 11:51:00 1997 Jason Merrill + + * except.c (get_dynamic_handler_chain): Only make the call once per + function. + + * except.c (expand_end_all_catch): Fix for sjlj exceptions. + +Thu Dec 4 12:30:40 1997 J"orn Rennecke + + * sh.c (final_prescan_insn): Use local label prefix + when emitting .uses pseudo-ops. + +Wed Dec 3 12:01:56 1997 Jason Merrill + + * libgcc2.c (__throw): Use __builtin_return_addr instead of __eh_pc. + * except.c: Lose outer_context_label_stack. + (expand_eh_region_end): Rethrow from outer_context here. + (expand_fixup_region_end): Let expand_eh_region_end do the rethrow. + (expand_internal_throw): Take no args. + (expand_internal_throw_indirect): Lose. + (expand_leftover_cleanups, expand_start_all_catch): Use expand_rethrow. + (expand_start_all_catch): Start a rethrow region. + (expand_end_all_catch): End it. + (expand_rethrow): New fn. + * except.h: Reflect above changes. + * flow.c: Revert change of Nov 27. + +Thu Dec 4 00:24:09 1997 Jeffrey A Law (law@cygnus.com) + + * i386/t-sol2 (CRTSTUFF_T_CFLAGS): Turn on the optimizer. + +Wed Dec 3 12:01:56 1997 Jason Merrill + + * except.c (expand_fixup_region_end): New fn. + (expand_fixup_region_start): Likewise. + (expand_eh_region_start_tree): Store cleanup into finalization here. + * stmt.c (expand_cleanups): Use them to protect fixups. + +Wed Dec 3 11:41:13 1997 Gavin Koch + + * mips/mips.md (muldi3_r4000): Broaden the output template + and attribute assignments to handle three operand dmult; + rename to muldi3_internal2. + (muldi3): Call the new muldi3_internal2 for R4000, and + any GENERATE_MULT3 chip. + +Tue Dec 2 19:40:43 1997 Jason Merrill + + * stmt.c (expand_decl_cleanup): Update thisblock after eh_region_start. + +Tue Dec 2 12:54:33 1997 Jim Wilson + + * unroll.c (find_splittable_givs): Remove last change. Handle givs + with a dest_reg that was created by loop. + +Sat Nov 29 12:44:57 1997 David Edelsohn + + * rs6000.c (function_arg_partial_nregs): Undo Nov. 26 patch. + + * rs6000/aix41.h (ASM_CPU_SPEC): Define. + +Fri Nov 28 10:00:27 1997 Jeffrey A Law (law@cygnus.com) + + * configure.in: Fix NCR entries. + +Thu Nov 27 12:20:19 1997 Jeffrey A Law (law@cygnus.com) + + * flow.c (find_basic_blocks): Handle cfg issues for rethrows and + nested exceptions correctly. + + * unroll.c (find_splittable_givs): Don't split givs with a dest_reg + that was created by loop. + +Thu Nov 27 09:34:58 1997 Jason Merrill + + * expr.c (preexpand_calls): Don't look past a TRY_CATCH_EXPR. + + * except.c (expand_start_all_catch): One more do_pending_stack_adjust. + +Wed Nov 26 15:47:30 1997 Michael Meissner + + * rs6000.c (SMALL_DATA_REG): Register to use for small data relocs. + (print_operand): Use SMALL_DATA_REG for the register involved in + small data relocations. + (print_operand_address): Likewise. + + * rs6000/linux.h (LINK_SPEC): Pass -dynamic-linker /lib/ld.so.1 if + -dynamic linker is not used. + + * rs6000.md (call insns): For local calls, use @local suffix under + System V. Don't use @plt under Solaris. + + * rs6000.c (output_function_profiler): Put label address in r0, and + store LR in 4(sp) for System V/eabi. + + * rs6000.h (ASM_OUTPUT_REG_{PUSH,POP}): Keep stack aligned to 16 + byte boundary, and maintain stack backchain. + +Tue Nov 25 14:08:12 1997 Jim Wilson + + * mips.md (fix_truncdfsi2, fix_truncsfsi2, fix_truncdfdi2, + fix_truncsfdi2): Change *. + +Wed Nov 26 11:12:26 1997 Jason Merrill + + * toplev.c (main): Complain about -gdwarfn. + +Tue Nov 25 22:43:30 1997 Jason Merrill + + * dwarfout.c (output_type): If finalizing, write out nested types + of types we've already written. + +Tue Nov 25 20:32:24 1997 Michael Meissner + + (patches originally from Geoffrey Keating) + * rs6000.c (function_arg): Excess floating point arguments don't + go into GPR registers after exhausting FP registers under the + System V.4 ABI. + (function_arg_partial_nregs): Likewise. + + * rs6000.md (call insns): If -fPIC or -mrelocatable, add @plt + suffix to calls. + +Tue Nov 25 23:37:27 1997 Jason Merrill + + * integrate.c (output_inline_function): Just unset DECL_INLINE. + +Tue Nov 25 23:33:29 1997 scott snyder + + * dwarf2out.c (outout_call_frame_info): Ensure that the info has + proper alignment. + + * libgcc2.c (__throw): Initialize HANDLER. + +Tue Nov 25 14:08:12 1997 Jim Wilson + + * mips.md (fix_truncdfsi2, fix_truncsfsi2, fix_truncdfdi2, + fix_truncsfdi2): Change *X to ?*X. + +Tue Nov 25 10:00:42 1997 Richard Henderson (rth@cygnus.com) + + * alpha.h (CONST_OK_FOR_LETTER): Fix 'L' handling. + +Tue Nov 25 10:00:42 1997 Jeffrey A Law (law@cygnus.com) + + * crtstuff.c (do_global_dtors_aux): Handle multiple calls better. + +Tue Nov 25 01:26:55 1997 Bruno Haible + + * dwarf2out.c (ASM_OUTPUT_DWARF_DELTA1): Implement. + +Mon Nov 24 22:41:55 1997 Jason Merrill + + * except.c (get_dynamic_handler_chain): Build up a FUNCTION_DECL. + * optabs.c (init_optabs): Lose get_dynamic_handler_chain_libfunc. + * expr.h: Likewise. + +Sat Nov 22 18:58:20 1997 Jeffrey A Law (law@cygnus.com) + + * pa-hpux10.h (NEW_HP_ASSEMBLER): Define. + * pa.h (LEGITIMATE_CONSTANT_P): Reject LABEL_REFs if not using + gas and not using the new HP assembler. + +Fri Nov 21 15:20:05 1997 Jeffrey A Law (law@cygnus.com) + + * Makefile.in (program_transform_cross_name): Clean up "-e" confusion. + (GCC_INSTALL_NAME, GCC_CROSS_NAME): Likewise. + +Fri Nov 21 19:37:40 1997 Andrew Cagney + + * config/mips/elf64.h (MULTILIB_DEFAULTS): Test for + TARGET_ENDIAN_DEFAULT == zero instead of testing for macro + definition. + +Fri Nov 21 12:49:56 1997 Bruno Haible + + * stmt.c (expand_end_bindings): Allow jump into block with cleanups. + +Fri Nov 21 12:18:51 1997 Jason Merrill + + * except.h: Add outer_context_label_stack. + * except.c: Likewise. + (expand_start_all_catch): Push the outer_context for the try block + onto outer_context_label_stack. + (expand_end_all_catch): Use it and pop it. + +Fri Nov 21 10:13:11 1997 Robert Lipe (robertl@dgii.com) + + * i386/sco5.h (HAVE_ATEXIT): Revert last change. + +Thu Nov 20 16:11:50 1997 Richard Henderson + + * alpha.c (alpha_emit_set_const_1): Handle narrow hosts better. + +Thu Nov 20 16:11:50 1997 Klaus Kaempf + + * alpha/vms.h (ASM_OUTPUT_ADDR_VEC_ELT): Add an L for the local label + to correspond with the change to ASM_GENERATE_INTERNAL_LABEL. + +Thu Nov 20 14:42:15 1997 Jason Merrill + + * Makefile.in (LIB2FUNCS): Remove C++ memory management support. + * libgcc2.c: Remove __builtin_new, __builtin_vec_new, set_new_handler, + __builtin_delete, and __builtin_vec_delete. + + * except.c (output_exception_table): Don't bother with + __EXCEPTION_END__. + +Thu Nov 20 16:11:50 1997 Jeffrey A Law (law@cygnus.com) + + * pa.md (pre_stwm, post_stwm, pre_ldwm, post_ldwm): Base register + is an in/out operand. + (zero extended variants of stwm/stwm patterns): Similarly. + + * mips/x-iris (FIXPROTO_DEFINES): Add -D_SGI_SOURCE. + +Thu Nov 20 13:19:32 1997 Jason Merrill + + * dwarf2out.c (ASM_OUTPUT_DWARF_OFFSET4): Rename from VALUE4. + Use assemble_name. + (ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL): Use assemble_name. + (output_call_frame_info): Emit a \n after using it. + +Thu Nov 20 00:38:46 1997 Dave Love + + * configure.in: Add AC_ARG_ENABLE for Haifa as documentation. + +Wed Nov 19 12:03:04 1997 Philippe De Muyter + + * dwarf2out.c (CIE_LENGTH_LABEL, FDE_LENGTH_LABEL): New macros. + (ASM_OUTPUT_DWARF_VALUE4): New macro. + (ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL): Define if SET_ASM_OP is + defined. + (output_call_frame_info): Do not output forward label differences + if ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL is defined. + * m68k/mot3300.h (SET_ASM_OP): Define when not using gas. + +Tue Nov 18 23:03:30 1997 J"orn Rennecke + + * sh.md (attribute "type"): Add nil. + (movsi_ie): y/y alternative is type nil. + (movsf_ie): Replace ry/yr/X alternative by r/y/X , y/r/X and y/y/X + alternatives. + (movsf_ie+1): Delete. + +Tue Nov 18 15:39:59 1997 Jim Wilson + + * mips/mips.c (save_restore_insns): If gp_offset or fp_offset are + large_int, emit two insns instead of one splitable insn. + * dwarf2out.c (dwarf2out_frame_debug): When set cfa_store_offset + from cfa_temp_value, use cfa_offset. Add assert checking that + cfa_reg is SP. + +Mon Nov 17 15:35:38 1997 Tom Tromey + + * cccp.c (deps_output): Properly quote file names for make. + +Mon Nov 17 13:21:40 1997 Jeffrey A Law (law@cygnus.com) + + * t-h8300 (MULTILIB_EXCEPTIONS): Define. + +Fri Nov 7 15:33:11 1997 Robert Lipe (robertl@dgii.com) + + * i386/sco5.h (HAVE_ATEXIT): Delete definition. + +Sun Nov 16 23:52:48 1997 Jeffrey A Law (law@cygnus.com) + + * cse.c (cse_insn): Don't look at JUMP_LABEL field of a conditional + return. + (cse_end_of_basic_block): Similarly. + +Sun Nov 16 23:01:40 1997 J. Kean Johnston + + * i386/sco5.h (ASM_OUTPUT_ALIGNED_BSS): Define. + (SELECT_RTX_SECTION): Define. + (LIBGCC_SPEC, LIB_SPEC): Do the right thing for PIC. + +Sun Nov 16 22:47:03 1997 Manfred Hollstein + + * Makefile.in (compare, compare-lean): Define $stage for each + shell command. + (gnucompare, gnucompare-lean): Likewise. + +Sun Nov 16 22:02:16 1997 Richard Henderson (rth@cygnus.com) + + * alpha/win-nt.h (TRAMPOLINE_TEMPLATE): Fix offsets. + + * alpha.h (ASM_OUTPUT_ADDR_DIFF_ELT): Add an L for the local label + to correspond with the change to ASM_GENERATE_INTERNAL_LABEL. + +Fri Nov 14 09:09:20 1997 Fred Fish (fnf@cygnus.com) + + * dwarfout.c (byte_size_attribute): Add local var upper_bound + and add case to handle STRING_TYPE. + * dwarfout.c (output_string_type_die): Fix code to generate + correct string length attribute for fixed length strings. + Still needs support for varying length strings. + +Fri Nov 14 08:46:56 1997 Jeffrey A Law (law@cygnus.com) + + * toplev.c (get_run_time): Do something sensible for cygwin32. + +Fri Nov 14 07:24:20 1997 Richard Henderson + + * expr.c (expand_builtin_setjmp): Set + current_function_has_nonlocal_label. + * stupid.c (stupid_life_analysis): If has_nonlocal_label, kill + call-saved registers across calls. + + * alpha.md (exception_receiver): Remove. + (nonlocal_goto_receiver_osf): New. + (nonlocal_goto_receiver_vms): Renamed from nonlocal_goto_receiver. + (nonlocal_goto_receiver): New, select _osf or _vms. + + * alpha.c (output_prolog [*]): Prefix entry labels with '$' to + keep them from being propagated to the object file. + (alpha_write_linkage): Likewise. + * alpha.md (call_vms): Likewise. + (call_value_vms): Likewise. + (unnamed osf call insns): Likewise. + + * alpha.h (ASM_OUTPUT_INTERNAL_LABEL): Don't omit L from local label. + (ASM_GENERATE_INTERNAL_LABEL): Likewise. + + * alpha.c (call_operand): Any reg is valid for WinNT. + * alpha.md (call_nt, call_value_nt): Don't force address into $27. + (anon nt calls): Add 'R' alternative. + * alpha/win-nt.h (TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE, + INITIALIZE_TRAMPOLINE): Handle lack of original $27 and 32-bit ptrs. + +Fri Nov 14 06:59:33 1997 Jeffrey A Law (law@cygnus.com) + + * calls.c (expand_call): Handle pcc_struct_value correctly for C++. + + * i386/xm-cygwin32.h (HAVE_FILE_H, HAVE_RUSAGE): Delete defines. + * i386/xm-mingw32.h (HAVE_FILE_H, HAVE_RUSAGE): Likewise. + * rs6000/xm-cygwin32.h (HAVE_FILE_H, HAVE_RUSAGE): Likewise. + +Thu Nov 13 20:37:33 1997 Michael Meissner + + * reload1.c (new_spill_reg): Improve fixed or forbidden register + spill error message. + +Thu Nov 13 20:29:08 1997 Kaveh R. Ghazi + + * prefix.c: Use stdarg.h only ifdef __STDC__. Otherwise, + use varargs.h. Wrap header with <>, not "". + +Thu Nov 13 20:21:17 1997 Jeffrey A Law (law@cygnus.com) + + * integrate.c (save_for_inline_copying): Add return value from + savealloc. + +Thu Nov 13 19:12:33 1997 Brendan Kehoe + + * fixincludes: Be a little more restrictive on what we will + substitute to replace definitions of MAXINT for HPUX. + +Thu Nov 13 18:41:02 1997 Michael Meissner + + * dbxout.c (dbxout_symbol_location): Don't assume that variables + whose address is the stack or argument pointers are indirect + pointers. + +1997-11-13 Paul Eggert + + * cccp.c, cpplib.c (compare_defs): + Don't complain about arg name respellings unless pedantic. + * cpplib.c (compare_defs): Accept pfile as new arg. + All callers changed. + +Thu Nov 13 23:33:50 1997 J"orn Rennecke + + * fold-const.c (fold_truthop): Fix bug in last change. + +1997-11-13 Paul Eggert + + Fix some confusion with IEEE minus zero. + + * real.h (REAL_VALUES_IDENTICAL): New macro. + + * expr.c (is_zeros_p): Don't consider -0.0 to be all zeros. + * fold-const.c (operand_equal_p): Don't consider -0.0 to be + identical to 0.0. + * tree.c (simple_cst_equal): Don't consider -0.0 to have the + same tree structure as 0.0. + + * varasm.c (immed_real_const_1): Use new REAL_VALUES_IDENTICAL + macro instead of doing it by hand. + +Thu Nov 13 16:56:14 1997 Jeffrey A Law (law@cygnus.com) + + * v850/lib1funcs.asm: Minor whitespace changes. + * v850.c: Fix minor formatting problems in many places. + (construct_restore_jr, construct_save_jarl): Remove unwanted aborts. + +Thu Nov 13 12:53:44 1997 Jim Wilson + + * mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete code swapping xplus0 and + xplus1 when xplus0 is not a register. + +Thu Nov 13 11:41:42 1997 Jeffrey A Law (law@cygnus.com) + + * flow.c (find_basic_blocks): During marking phase, if we encounter + an insn with a REG_LABEL note, make the target block live and + create an edge from the insn to the target block. Do not make + edges from all blocks to the target block. + + * m68k/x-next (OTHER_FIXINCLUDES_DIRS): Include /NextDeveloper/Headers. + + * confiugre.in: Tweak NCR entries. + * configure: Rebuilt. + +Thu Nov 13 11:07:41 1997 Michael Meissner + + * rs6000.c (num_insns_constant): Use REAL_VALUE_FROM_CONST_DOUBLE to + pick apart floating point values, instead of using CONST_DOUBLE_LOW + and CONST_DOUBLE_HIGH. + + * rs6000.md (define_splits for DF constants): Use the appropriate + REAL_VALUE_* interface to pick apart DF floating point constants in + a machine independent fashion. + +Thu Nov 13 00:06:58 1997 J"orn Rennecke + + * fold-const.c (fold_truthop): When changing a one-bit comparison + against zero into a comparison against mask, do a proper sign + extension. + +Wed Nov 12 09:37:01 1997 Jeffrey A Law (law@cygnus.com) + + * except.c: Do not include "assert.h". + (save_eh_status): Turn asserts into conditional aborts. + (restore_eh_status, scan_region): Likewise. + * dwarfout.c: Do not include "assert.h". + (bit_offset_attribute): Turn asserts into conditional aborts. + (bit_size_attribute, output_inlined_enumeration_type_die): Likewise. + (output_inlined_structure_type_die): Likewise. + (output_inlined_union_type_die): Likewise. + (output_tagged_type_instantiation): Likewise. + (dwarfout_file_scope_decl): Likewise. + * dwarf2out.c: Do not include "assert.h" + (expand_builtin_dwarf_reg_size): Turn asserts into conditional aborts. + (reg_save, initial_return_save, dwarf2out_frame_debug): Likewise. + (add_child_die, modified_type_die, add_bit_offset_attribute): Likewise. + (add_bit_size_attribute, scope_die_for): Likewise. + (output_pending_types_for_scope): Likewise. + (get_inlined_enumeration_type_die): Likewise. + (get_inlined_structure_type_die): Likewise. + (get_inlined_union_type_die, gen_subprogram_die): Likewise. + (gen_tagged_type_instantiation_die): Likewise. + + * flow.c (find_basic_blocks): Refine further to get a more correct + cfg, especially in the presense of exception handling, computed + gotos, and other non-trivial cases. Call abort if an inaccuracy + is detected in the cfg. + +Tue Nov 11 21:47:27 1997 J"orn Rennecke + + * glimits.h (SHRT_MIN): Define in a way suitable for 16 bit hosts. + + * c-lex.c (whitespace_cr, skip_white_space_on_line): New functions. + (skip_white_space): Use whitespace_cr. + (check_newline): Handle whitespace more consistently. + +Tue Nov 11 16:25:49 1997 Jim Wilson + + * i386/cygwin32.h (CPP_PREDEFINES): Delete -DPOSIX. + * i386/xm-cygwin32.h (POSIX): Define. + +Mon Nov 10 20:53:11 1997 Gavin Koch + + * config/mips/mips.h (MASK_DEBUG_H): Set to zero, so this bit + is available elsewhere. + +Mon Nov 10 16:21:58 1997 Doug Evans + + * sparc/sparc.md (mov[sdt]f_const_insn): Fix condition to match + what the instruction can handle. + +Mon Nov 10 03:02:19 1997 Jason Merrill + + * stmt.c (expand_decl_cleanup_no_eh): New fn. + + * except.c (expand_leftover_cleanups): do_pending_stack_adjust. + +Mon Nov 10 00:05:56 1997 Jeffrey A Law (law@cygnus.com) + + * alias.c (MAX_ALIAS_LOOP_PASSES): Define. + (init_alias_analysis): Break out of loops after MAX_ALIAS_LOOP_PASSES. + +Sun Nov 9 14:34:47 1997 David Edelsohn + + * rs6000.md (lshrdi3_power): Delete '&' from first alternative and + swap instruction order. + +Sun Nov 9 02:07:16 1997 Jeffrey A Law (law@cygnus.com) + + * fixinc.svr4 (__STDC__): Add another case. + +Sun Nov 9 02:00:29 1997 J"orn Rennecke + + * a29k.h (ELIGIBLE_FOR_EPILOGUE_DELAY): Avoid loads from varying + addresses in the epilogue delay slot. + +Sun Nov 9 01:40:40 1997 Manfred Hollstein (manfred@s-direktnet.de) + + * m88k/dgux.h (ASM_CPU_SPEC): Reformatted to suppress wrong whitespace + in generated `specs' file. + +Sun Nov 9 01:37:11 1997 Jim Wilson (wilson@cygnus.com) + + * flags.h (flag_rerun_loop_opt): Declare. + * loop.c (invariant_p, case LABEL_REF): Check flag_rerun_loop_opt. + * toplev.c (flag_rerum_loop_opt): Delete static. + +Sat Nov 8 18:20:21 1997 J"orn Rennecke + + Bring over from FSF: + + Thu Oct 30 12:21:06 1997 J"orn Rennecke + + * va-sh.h (__va_arg_sh1): Define. + (va_arg): Use it. + SH3E doesn't use any integer registers for subsequent arguments + once a non-float value was passed in the stack. + * sh.c (machine_dependent_reorg): If optimizing, put explicit + alignment in front label for ADDR_DIFF_VEC. + * sh.h (PASS_IN_REG_P): Fix SH3E case. + (ADJUST_INSN_LENGTH): If not optimizing, add two extra bytes length. + + Tue Oct 28 15:06:44 1997 J"orn Rennecke + + * sh/elf.h (PREFERRED_DEBUGGING_TYPE): Undefine before including + svr4.h. + + Mon Oct 27 16:11:52 1997 J"orn Rennecke + + * sh.c (machine_dependent_reorg): When -flag_delayed_branches, + put an use_sfunc_addr before each sfunc. + * sh.md (use_sfunc_addr, dummy_jump): New insns. + (casesi): For TARGET_SH2, emit a dummy_jump after LAB. + + Tue Oct 21 07:12:28 1997 J"orn Rennecke + + * sh/elf.h (PREFERRED_DEBUGGING_TYPE): Don't redefine. + +Fri Nov 7 10:22:24 1997 Jason Merrill + + * frame.c (add_fdes, count_fdes): Go back to checking pc_begin for + linked once FDEs. + +Wed Nov 5 14:26:05 1997 Jeffrey A Law (law@cygnus.com) + + * alias.c (find_base_value): Only return the known base value for + pseudo registers. + +Wed Nov 5 11:27:14 1997 Jim Wilson + + * i386.c (load_pic_register): Call prologue_get_pc_and_set_got. + * i386.md (prologue_set_got, prologue_get_pc): Add UNSPEC_VOLATILE + to pattern. + (prologue_get_pc_and_set_got): New pattern. + +Tue Nov 4 20:36:50 1997 Richard Henderson (rth@cygnus.com) + + * alpha.c (summarize_insn): Handle ASM_OPERANDS. Don't recurse + for SUBREG, just fall through. + + * alpha.c (alpha_handle_trap_shadows): Init sum.defd to zero. + + * alpha.md (attr trap): Make TRAP_YES nonzero for sanity's sake. + +Tue Nov 4 18:49:42 1997 Jeffrey A Law (law@cygnus.com) + + * fixincludes: Fix "hypot" prototype in NeXT math.h. + + * Makefile.in (USE_ALLOCA): Always include alloca.o. + (USE_HOST_ALLOCA): Likewise. + + * rtl.def (CODE_LABEL): Use separate fields for LABEL_NUSES + and LABEL_REFS fields. + * rtl.h (LABEL_REFS): Update. + +Tue Nov 4 16:55:11 1997 Jim Wilson + + * combine.c (try_combine): When setting elim_i2, check whether newi2pat + sets i2dest. When calling distribute_notes for i3dest_killed, pass + elim_i2 and elim_i1. When setting elim_i1, check if newi2pat + sets i1dest. + + * mips.md (insv, extzv, extv): Add change_address call. + (movsi_ulw, movsi_usw): Change QImode to BLKmode in pattern. + + * integrate.c (save_for_inline_copying): Copy parm_reg_stack_loc. + + * reload.c (find_reloads, case 'm' and 'o'): Reject HIGH constants. + + * mips.c (mips_expand_epilogue): Emit blockage insn before call to + save_restore_insns if no FP and GP will be restored. + + * dwarf2out.c (expand_builtin_dwarf_reg_size): New variable mode. + Convert CCmode to word_mode before calling GET_MODE_SIZE. + + * acconfig.h (HAVE_INTTYPES_H): Undef. + * configure.in (inttypes.h): Check for conflicts between sys/types.h + and inttypes.h, and verify that intmax_t is defined. + * config/mips/x-iris (CC, OPT, OLDCC): Comment out. + * config/mips/x-iris3: Likewise. + +Tue Nov 4 16:07:15 1997 Jeffrey A Law (law@cygnus.com) + + * alias.c (find_base_value): When copying arguments, return the + tentative value for a hard register. + +Tue Nov 4 13:40:35 1997 Doug Evans + + * c-lex.c (MULTIBYTE_CHARS): #undef if cross compiling. + (yylex): Record wide strings using target endianness, not host. + +Tue Nov 4 13:13:12 1997 Jeffrey A Law (law@cygnus.com) + + * mn10200.h (ASM_OUTPUT_BSS): Delete. + (ASM_OUTPUT_ALIGNED_BSS): New macro. + * mn10300.h (ASM_OUTPUT_BSS): Delete. + (ASM_OUTPUT_ALIGNED_BSS): New macro. + * v850.h (ASM_OUTPUT_BSS): Delete. + (ASM_OUTPUT_ALIGNED_BSS): New macro. + +Tue Nov 4 00:55:48 1997 J"orn Rennecke + + * profile.c (branch_prob): Insert an insn after a NOTE_INSN_SETJMP. + +Mon Nov 3 14:36:50 1997 Jeffrey A Law (law@cygnus.com) + + * configure.in (sco5): Use cpio to install header files. + +Sun Nov 2 23:31:43 1997 Manfred Hollstein + + * aclocal.m4 (conftestdata_from, conftestdata_to): Names shortened to + 14 char length. + * configure: Rebuild. + +Sun Nov 2 19:44:00 1997 Robert Lipe (robertl@dgii.com) + + * i386/sco5.h: Enable -gstabs once again. + +Sun Nov 2 19:27:21 1997 Jeffrey A Law (law@cygnus.com) + + * arm.c (output_move_double): Allocate 3 entries in otherops array. + +Sat Nov 1 21:43:00 1997 Mike Stump + + * except.c (expand_eh_region_start_for_decl): Emit EH_REGION_BEG + notes for sjlj exceptions too. + (expand_eh_region_end): Similarly for EH_REGION_END notes. + (exception_optimize): Optimize EH regions for sjlj exceptions too. + * final.c (final_scan_insn): Don't output labels for EH REGION + notes if doing sjlj exceptions. + +Sat Nov 1 19:15:28 1997 Jeffrey A Law (law@cygnus.com) + + * alias.c (init_alias_analysis): Handle -fno-alias-check when + optimizing correctly. + + * expr.c (expand_builtin_setjmp): Don't emit a SETJMP note + or set current_function_calls_setjmp anymore. + + * flow.c (find_basic_blocks): If we delete the label for an + exception handler, remove it from the EH label list and remove + the EH_BEGIN/EH_END notes for that EH region. + +Sat Nov 1 16:44:49 1997 Jason Merrill (jason@cygnus.com) + + * flow.c (find_basic_blocks): Generate correct flow control + information when exception handling notes are present. + +Sat Nov 1 13:42:19 1997 Jeffrey A Law (law@cygnus.com) + + * dwarf2out.c (output_call_frame_info): Fix length argument + to ASM_OUTPUT_ASCII. + (output_die, output_pubnames, output_line_info): Likewise. + +Fri Oct 31 07:10:09 1997 Jeffrey A Law (law@cygnus.com) + + * version.c: Bump for snapshot. + + * dwarf2out.c (output_call_frame_info): Use ASM_OUTPUT_ASCII to + output ASCII by default. Only use ASM_OUTPUT_DWARF_STRING if + flag_debug_asm is on. + (output_die, output_pubnames, output_line_info): Likewise. + + * alias.c (init_alias_analysis): Add struct_value_incoming_rtx + and static_chain_rtx into the potential base values array if + they are registers. + + * alias.c (new_reg_base_value): New array of potential base values. + (unique_id): Now file scoped static. + (find_base_value, case REG): Return the value in reg_base_value + array for the REG if it exists. Else, return the value from + new_reg_base_value if copying args and REG is a hard register. + (find_base_value, case PLUS): If either operand of the PLUS is + a REG, try to get its base value. Handle base + index and + index + base. + (record_set): Use new_reg_base_value instead of reg_base_value. + (init_alias_analysis): Allocate space for new_reg_base_value too. + Rework code to iterate over the insns propagating base value + information until nothing changes. + + * global.c (global_alloc): Free the conflict matrix after + reload has finished. + +Fri Oct 31 01:45:31 1997 Jason Merrill + + * libgcc2.c (L_eh): Define __eh_pc. + Replace __eh_type with generic pointer __eh_info. + +Fri Oct 31 00:34:55 1996 J"orn Rennecke + + * expr.c (expand_increment): When enqueing a postincrement for a MEM, + use copy_to_reg if address is not a general_operand. + +Fri Oct 31 00:16:55 1997 J"orn Rennecke + + * profile.c (output_func_start_profiler): Clear flag_inline_functions + for the duration of the call to rest_of_compilation. + +Thu Oct 30 14:40:10 1997 Doug Evans + + * configure.in (sparc-*-elf*): Use sparc/elf.h, sparc/t-elf. + Set extra_parts. + (sparc*-*-*): Recognize --with-cpu=v9. + * sparc/elf.h: New file. + * sparc/t-elf: New file. + +Thu Oct 30 13:26:12 1997 Jeffrey A Law (law@cygnus.com) + + * mn10300.c (const_8bit_operand): New function. + (mask_ok_for_mem_btst): New function. + * mn10300.md (btst patterns with mem operands): Use new functions + to avoid creating btst instructions with invalid operands. + +Wed Oct 29 16:57:19 1997 Michael Meissner + + * rs6000/xm-sysv4.h: Include xm-linux.h instead of xm-svr4.h if we + are running on PowerPC Linux. + +Wed Oct 29 13:10:11 1997 Gavin Koch + + * config/mips/elf64.h (PREFERRED_DEBUGGING_TYPE): Only define + if not previously defined. + +Tue Oct 28 23:55:27 1997 Doug Evans (devans@cygnus.com) + + * function.c (assign_parms): Correct mode of stack_parm if + entry_parm underwent a mode conversion. + +1997-10-28 Brendan Kehoe + + * global.c (global_alloc): Use xmalloc instead of alloca for + CONFLICTS, since max_allocno * allocno_row_words alone can be more + than 2.5Mb sometimes. + +Tue Oct 28 15:29:15 1997 Richard Henderson + + * reload1.c (eliminate_regs [SET]): If [SUBREG] widened the mode of + DEST for the spill, adjust mode of SRC to compensate. + +Tue Oct 28 14:36:45 1997 Richard Henderson + + * alpha.md (reload_inqi): Check for MEM before strict_memory_address_p, + since any_memory_operand() allows pseudos during reload. + (reload_inhi, reload_outqi, reload_outhi): Likewise. + +Tue Oct 28 11:53:14 1997 Jim Wilson + + * m68k.md (btst patterns): Add 5200 support. + +Tue Oct 28 11:58:40 1997 Toon Moene + + * fold-const.c (fold): For ((a * C1) / C3) or (((a * C1) + C2) / C3) + optimizations, look inside dividend to determine if the expression + can be simplified by using EXACT_DIV_EXPR. + +Tue Oct 28 10:19:01 1997 Jason Merrill + + From Brendan: + * dwarf2out.c (output_call_frame_info): Use l1 instead of ".". + +Tue Oct 28 00:32:14 1997 Richard Henderson + + * alpha.c (summarize_insn [SUBREG]): Propagate SET. + +Mon Oct 27 23:59:26 1997 Richard Henderson + + * alpha.c (alpha_handle_trap_shadows): Don't call get_attr_trap + on a CLOBBER. + +Mon Oct 27 21:25:20 1997 Richard Henderson + + * alpha.md (movqi, movhi): Make sure new insns created during reload + won't need reloading themselves. + (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Likewise. + +Mon Oct 27 16:11:10 1997 Jeffrey A Law (law@cygnus.com) + + * mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Disable reg+reg. + +Sun Oct 26 13:50:44 1997 Richard Henderson + + * alpha.c (alpha_sa_mask [VMS]): Don't include $26 in the mask. + Patch from Klaus Kaempf . + +Sun Oct 26 13:31:47 1997 Jim Wilson (wilson@cygnus.com) + + * expr.c (expand_expr, case INDIRECT_REF): Optimize a reference + to an element in a constant string. + +Sun Oct 26 11:41:49 1997 Jason Merrill + + * dwarf2out.c (output_call_frame_info): The CIE pointer is now a 32 + bit PC-relative offset. The exception range table pointer is now in + the CIE. + * frame.c (dwarf_cie, dwarf_fde): Rename CIE_pointer to CIE_delta. + (count_fdes, add_fdes, get_cie): Adjust. + (cie_info, extract_cie_info, __frame_state_for): Adjust eh_ptr uses. + + From H.J. Lu: + * frame.c (count_fdes, add_fdes): Skip linked once FDE entries. + +Sun Oct 26 11:52:01 1997 Richard Henderson + + * alias.c (memrefs_conflict_p): Treat arg_pointer_rtx just + like stack_pointer_rtx. + +Sun Oct 26 11:32:16 1997 Manfred Hollstein + + * Makefile.in (bootstrap-lean): Combined with `normal' bootstrap + targets using "$@" to provide support for similar but not identical + targets without having to duplicate code. + (bootstrap4): New goal. + + * Makefile.in (compare, compare-lean, compare3): Combined to one + ruleset determining actions to be performed via $@. + (compare4, compare4-lean): New targets. + (gnucompare, gnucompare3): Combined to one ruleset determining + actions to be performed via $@. Also, note which files failed + the comparison test in .bad_compare. + (gnucompare-lean, gnucompare3-lean, gnucompare4-lean): New targets. + +Sun Oct 26 10:06:11 1997 Toon Moene + + * fold-const (fold): Also simplify FLOOR_DIV_EXPR to EXACT_DIV_EXPR + if the dividend is a multiple of the divisor. + +Sun Oct 26 09:21:40 1997 Jeffrey A Law (law@cygnus.com) + + * Makefile.in (LIBGCC2_CFLAGS): Add -fexceptions. + + * alias.c (find_base_term): Handle PRE_INC, PRE_DEC, POST_INC, + and POS_DEC. + + * alias.c (true_dependence): Fix typo. + + * toplev.c (flag_rerun_loop_opt): New variable. + (f_options): Handle -frerun-loop-opt. + (rest_of_compilation): If -frerun-loop-opt, then run the loop + optimizer twice. + (main): Enable -frerun-loop-opt by default for -O2 or greater. + + * loop.c (simplify_giv_expr): Adding two invariants results + in an invariant. + +Sun Oct 26 09:15:15 1997 Richard Henderson + + * expr.c (get_inner_reference): Remove the array bias after + converting the index to Pmode. + +Sat Oct 25 12:20:58 1997 Jeffrey A Law (law@cygnus.com) + + * mn10300.h (TARGET_SWITCHES): Add -mmult-bug and -mno-mult-bug. + (TARGET_MULT_BUG): Define. + (TARGET_DEFAULT): Default to TARGET_MULT_BUG. + * mn10300.md (mulsi3): Handle TARGET_MULT_BUG. + +Fri Oct 24 17:40:34 1997 Jeffrey A Law (law@cygnus.com) + + * mn10200.c (indirect_memory_operand): Delete unused function. + * mn10200.h (EXTRA_CONSTRAINT): Handle 'R'. + * mn10200.md (bset, bclr insns): Handle output in a reg too. + +Fri Oct 24 15:54:57 1997 Richard Henderson + + * alpha.md (call patterns): Revert Oct 16 change; if we are to elide + the callee's ldgp, we must do it ourselves, and we use the jsr tag + for more than scheduling. + +Fri Oct 24 13:23:04 1997 Doug Evans + + * sparc/sparc.h (ASM_SPEC): Delete asm_arch. + +Fri Oct 24 13:19:40 1997 Jeffrey A Law (law@cygnus.com) + + * mn10300.c (symbolic_operand, legitimize_address): New functions. + * mn10300.h (LEGITIMIZE_ADDRESS): Call legitimize_address. + (GO_IF_LEGITIMATE_ADDRESS): Don't allow base + symbolic. + +Thu Oct 23 09:35:12 1997 Jeffrey A Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Thu Oct 23 08:03:59 1997 J"orn Rennecke + + * dbxout.c (dbxout_start_new_source_file): Use output_quoted_string + for FILENAME. + +Wed Oct 22 00:34:12 1997 Jeffrey A Law (law@cygnus.com) + + * toplev.c (flag_exceptions): Default value is 2. + (compile_file): If flag_exceptions still has the value 2, then + set it to 0. + + * rs6000.c (struct machine_function): Add pic_offset_table_rtx. + (rs6000_save_machine_status): Save pic_offset_table_rtx. + (rs6000_restore_machine_status: Restore pic_offset_table_rtx. + + * local-alloc.c (block_alloc): Don't lose if two SCRATCH expressions + are shared. + + * rs6000.md (*movsi_got_internal_mem): New pattern. + (*movsi_got_internal_mem splitter): New define_split. + +Tue Oct 21 18:14:03 1997 Jim Wilson + + * obstack.h (obstack_empty_p): Fix spurious space after backslash. + +Tue Oct 21 18:34:01 1997 Geoffrey KEATING + + * rs6000.c: Avoid creating a stack frame under SYSV ABI if we + only need to save LR. + +Tue Oct 21 10:06:40 1997 Jeffrey A Law (law@cygnus.com) + + * mn10300.md (movqi, movhi): Avoid using address registers as + destinations unless absolutely necessary. + + * mn10200.c (expand_prologue): Fix typo. + + * mn10200.h (GO_IF_LEGITIMATE_ADDRESS): Do not allow indexed + addresses. + * mn10200.md (neghi2): Provide an alternative which works if + the input and output register are the same. + + * mn10300.c (print_operand): Handle 'S'. + * mn10300.md (ashlsi3, lshrsi3, ashrsi3): Use %S for + shift amount in last alternative. + + * mn10300.c (expand_epilogue): Rework to handle register restores + in "ret" and "retf" instructions correctly. + +Mon Oct 20 16:47:08 1997 Jim Wilson + + * expmed.c (extract_bit_field): Don't make flag_force_mem disable + extzv for memory operands. + + * cse.c (simplify_ternary_operation, case IF_THEN_ELSE): Collapse + redundant conditional moves to single operand. + +Mon Oct 20 15:30:26 1997 Nick Clifton + + * v850.h: Move define of __v850__ from CPP_PREDEFINES + to CPP_SPEC. + + * xm-v850.h: Use __v850 rather than __v850__ to + identify v850 port. + +Mon Oct 20 14:15:02 1997 Jim Wilson + + * mips/mips.c (compute_frame_size): Not a leaf function if + profile_flag set. + +Mon Oct 20 14:16:38 1997 Geoffrey KEATING + + * rs6000/t-ppccomm: Use -msdata=none for crtstuff. + +Mon Oct 20 12:28:17 1997 Doug Evans + + * sparc/sparc.h (SPARC_V9,SPARC_ARCH64): Delete. + (DEFAULT_ARCH32_P): New macro. + (TARGET_ARCH{32,64}): Allow compile time or runtime selection. + (enum cmodel): Declare. + (sparc_cmodel_string,sparc_cmodel): Declare. + (SPARC_DEFAULT_CMODEL): Provide default. + (TARGET_{MEDLOW,MEDANY}): Renamed to TARGET_CM_{MEDLOW,MEDANY}. + (TARGET_FULLANY): Deleted. + (TARGET_CM_MEDMID): New macro. + (CPP_CPU_DEFAULT_SPEC): Renamed from CPP_DEFAULT_SPEC. + (ASM_CPU_DEFAULT_SPEC): Renamed from ASM_DEFAULT_SPEC. + (CPP_PREDEFINES): Take out stuff now handled by %(cpp_arch). + (CPP_SPEC): Rewrite. + (CPP_ARCH{,32,64,_DEFAULT}_SPEC): New macros. + (CPP_{ENDIAN,SUBTARGET}_SPEC): New macros. + (ASM_ARCH{,32,64,_DEFAULT}_SPEC): New macros. + (ASM_SPEC): Add %(asm_arch). + (EXTRA_SPECS): Rename cpp_default to cpp_cpu_default. + Rename asm_default to asm_cpu_default. + Add cpp_arch32, cpp_arch64, cpp_arch_default, cpp_arch, cpp_endian, + cpp_subtarget, asm_arch32, asm_arch64, asm_arch_default, asm_arch. + (NO_BUILTIN_{PTRDIFF,SIZE}_TYPE): Define ifdef SPARC_BI_ARCH. + ({PTRDIFF,SIZE}_TYPE): Provide 32 and 64 bit values. + (MASK_INT64,MASK_LONG64): Delete. + (MASK_ARCH64): Renamed to MASK_64BIT. + (MASK_{MEDLOW,MEDANY,FULLANY,CODE_MODEL}): Delete. + (EMBMEDANY_BASE_REG): Renamed from MEDANY_BASE_REG. + (TARGET_SWITCHES): Always provide 64 bit options. + (ARCH64_SWITCHES): Delete. + (TARGET_OPTIONS): New option -mcmodel=. + (INT_TYPE_SIZE): Always 32. + (MAX_LONG_TYPE_SIZE): Define ifdef SPARC_BI_ARCH. + (INIT_EXPANDERS): sparc64_init_expanders renamed to sparc_init_.... + (FUNCTION_{,BLOCK_}PROFILER): Delete TARGET_EMBMEDANY support. + (PRINT_OPERAND_PUNCT_VALID_P): Add '_'. + * sparc/linux-aout.h (CPP_PREDEFINES): Take out stuff handled by + CPP_SPEC. + (CPP_SUBTARGET_SPEC): Renamed from CPP_SPEC. + * sparc/linux.h: Likewise. + * sparc/linux64.h (SPARC_V9,SPARC_ARCH64): Delete. + (ASM_CPU_DEFAULT_SPEC): Renamed from ASM_DEFAULT_SPEC. + (TARGET_DEFAULT): Delete MASK_LONG64, MASK_MEDANY, add MASK_64BIT. + (SPARC_DEFAULT_CMODEL): Define. + (CPP_PREDEFINES): Take out stuff handled by CPP_SPEC. + (CPP_SUBTARGET_SPEC): Renamed from CPP_SPEC. + (LONG_DOUBLE_TYPE_SIZE): Define. + (ASM_SPEC): Add %(asm_arch). + * sparc/sol2.h (CPP_PREDEFINES): Take out stuff handled by CPP_SPEC. + (CPP_SUBTARGET_SPEC): Renamed from CPP_SPEC. + (TARGET_CPU_DEFAULT): Add ultrasparc case. + * sparc/sp64-aout.h (SPARC_V9,SPARC_ARCH64): Delete. + (TARGET_DEFAULT): MASK_ARCH64 renamed to MASK_64BIT. + (SPARC_DEFAULT_CMODEL): Define. + * sparc/sp64-elf.h (SPARC_V9,SPARC_ARCH64): Delete. + (TARGET_DEFAULT): MASK_ARCH64 renamed to MASK_64BIT. Delete + MASK_LONG64, MASK_MEDANY. + (SPARC_DEFAULT_CMODEL): Define. + (CPP_PREDEFINES): Delete. + (CPP_SUBTARGET_SPEC): Renamed from CPP_SPEC. + (ASM_SPEC): Add %(asm_arch). + (LONG_DOUBLE_TYPE_SIZE): Define. + (DWARF2_DEBUGGING_INFO): Define. + * sparc/splet.h (CPP_SPEC): Delete. + * sparc/sysv4.h (CPP_PREDEFINES): Take out stuff handled by CPP_SPEC. + (FUNCTION_BLOCK_PROFILER): Delete TARGET_EMBMEDANY support. + (BLOCK_PROFILER): Likewise. + * sparc/sparc.c (sparc_cmodel_string,sparc_cmodel): New globals. + (sparc_override_options): Handle code model selection. + (sparc_init_expanders): Renamed from sparc64_init_expanders. + * sparc/sparc.md: TARGET_ renamed to TARGET_CM_.... + TARGET_MEDANY renamed to TARGET_CM_EMBMEDANY. + (sethi_di_embmedany_{data,text}): Renamed from sethi_di_medany_.... + (sethi_di_fullany): Delete. + +Mon Oct 20 02:00:18 1997 Klaus Kaempf + Jeff Law + Richard Kenner + + * alpha/vms.h (DIVSI3_LIBCALL): OTS$ functions are upper case. + (DIVDI3_LIBCALL, UDIVSI3_LIBCALL, UDIVDI3_LIBVALL): Likewise. + (MODSI3_LIBCALL, MODDI3_LIBCALL): Likewise. + (UMODSI3_LIBCALL, UMODDI3_LIBCALL): Likewise. + * alpha/alpha.md (arg_home): Likewise. + + * alpha/alpha.c (vmskrunch): Delete. + * alpha/vms.h (ENCODE_SECTION_INFO, ASM_DECLARE_FUNCTION_NAME): Delete. + * alpha.c (output_prolog, VMS): Use alloca for entry_label and don't + truncate to 64 characters. + + * make-l2.com: Support openVMS/Alpha. + + * vmsconfig.com: Fix to work on openVMS/Alpha and openVMS/VAX. + +Sun Oct 19 19:00:35 1997 J"orn Rennecke + + * longlong.h (count_leading_zeros): Add missing casts to USItype. + +Sun Oct 19 18:44:06 1997 Jeffrey A Law (law@cygnus.com) + + * i386/bsd386.h (ASM_COMMENT_START): Define. + +Sat Oct 18 13:47:15 1997 Jason Merrill + + * tree.c (restore_tree_status): Also free up temporary storage + when we finish a toplevel function. + (dump_tree_statistics): Print stats for backend obstacks. + +Sat Oct 18 12:47:31 1997 Doug Evans + + * expr.c (use_group_regs): Don't call use_reg for MEMs. + +Sat Oct 18 09:49:46 1997 Jason Merrill + + * libgcc2.c (__throw): Don't copy the return address. + * dwarf2out.c (expand_builtin_dwarf_reg_size): Ignore return address. + + * except.c (exceptions_via_longjmp): Initialize to 2 (uninitialized). + * toplev.c (main): Initialize exceptions_via_longjmp. + + * tree.c: Add extra_inline_obstacks. + (save_tree_status): Use it. + (restore_tree_status): If this is a toplevel inline obstack and we + didn't want to save anything on it, recycle it. + (print_inline_obstack_statistics): New fn. + * function.c (pop_function_context_from): Pass context to + restore_tree_status. + * obstack.h (obstack_empty_p): New macro. + +Sat Oct 18 00:43:59 1997 Jeffrey A Law (law@cygnus.com) + + * i386/freebsd.h (ASM_COMMENT_START): Fix. + +Fri Oct 17 23:48:52 1997 Jim Wilson (wilson@cygnus.com) + + * v850.c (ep_memory_offset): New function. + (ep_memory_operand, substitute_ep_register, v850_reorg): Call it. + + * v850.h (CONST_OK_FOR_*): Add and correct comments. + (CONSTANT_ADDRESS_P): Add comment. + (EXTRA_CONSTRAINT): Define 'U'. + * v850.md: Add comments on bit field instructions. + (addsi3): Delete &r/r/r alternative. Add r/r/U alternative. + (lshrsi3): Use N not J constraint. + + * v850.md (v850_tst1+1): New define_split for tst1 instruction. + + * v850.c (reg_or_0_operand): Call register_operand. + (reg_or_int5_operand): Likewise. + * v850.h (MASK_BIG_SWITCH, TARGET_BIG_SWITCH): New macros. + (TARGET_SWITCHES): Add "big-switch". + (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT, CASE_VECTOR_MODE, + ASM_OUTPUT_BEFORE_BASE_LABEL): Add support for TARGET_BIG_SWITCH. + (CASE_DROPS_THROUGH): Comment out. + (CASE_VECTOR_PC_RELATIVE, JUMP_TABLES_IN_TEXT_SECTION): Define. + * v850.md (cmpsi): Delete compare mode. + (casesi): New pattern. + + * v850.h (CONST_OK_FOR_N): Delete redundant compare against zero. + * v850.md (ashlsi3): Use SImode not QImode for shift count. + (lshrsi3): Likewise. + + * v850.c (print_operand): Add 'c', 'C', and 'z' support. Delete + unreachable switch statement after 'b' support. Remove "b" from + strings for 'b' support. + * v850.md (branch_normal, branch_invert): Change %b to b%b. + +Fri Oct 17 23:33:20 1997 Jeffrey A Law (law@cygnus.com) + + * Makefile.in (LIBGCC2_CFLAGS): Avoid a backslash then an + empty line if @inhibit_libc@ is empty. + +Fri Oct 17 23:24:40 1997 Robert Lipe (robertl@dgii.com) + + * i386/sco5.h: Let ELF use dwarf2 unwinding. COFF uses sjlj. + (EH_FRAME_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP_ELF): Defined. + (EH_FRAME_SECTION_ASM_OP_COFF): Likewise. + (DWARF2_UNWIND_INFO): Let this track object file format. + (EXTRA_SECTIONS): Add in_eh. + (EH_FRAME_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP_ELF): Define. + (EH_FRAME_SECTION_ASM_OP_COFF): Likewise. + +Fri Oct 17 17:13:42 1997 David S. Miller + + * sparc/linux64.h (LINK_SPEC): Dynamic linker is ld-linux64.so.2. + * sparc/sparc.h (FUNCTION_PROFILER): Fix format string when + TARGET_MEDANY. + * sparc/sparc.c (dwarf2out_cfi_label): Extern no longer needed. + (output_double_int): Output DI mode values correctly when + HOST_BITS_PER_WIDE_INT is 64. + (output_fp_move_quad): If TARGET_V9 and not TARGET_HARD_QUAD, use + fmovd so it works if a quad float ends up in one of the upper 32 + float regs. + * sparc/sparc.md (pic_{lo_sum,sethi}_di): New patterns + necessary for PIC support on sparc64. + +Fri Oct 17 13:39:56 1997 Doug Evans + + * sparc/sp64-elf.h (TARGET_DEFAULT): Delete MASK_STACK_BIAS. + * sparc/sparc.h (PROMOTE_MODE): Promote small ints if arch64. + (PROMOTE_FUNCTION_ARGS,PROMOTE_FUNCTION_RETURN): Define. + (SPARC_FIRST_FP_REG, SPARC_FP_REG_P): New macros. + (SPARC_{OUTGOING,INCOMING}_INT_ARG_FIRST): New macros. + (SPARC_FP_ARG_FIRST): New macro. + (CONDITIONAL_REGISTER_USAGE): All v9 fp regs are volatile now. + (REG_ALLOC_ORDER,REG_LEAF_ALLOC_ORDER): Reorganize fp regs. + (NPARM_REGS): There are 32 fp argument registers now. + (FUNCTION_ARG_REGNO_P): Likewise. + (FIRST_PARM_OFFSET): Update to new v9 abi. + (REG_PARM_STACK_SPACE): Define for arch64. + (enum sparc_arg_class): Delete. + (sparc_arg_count,sparc_n_named_args): Delete. + (struct sparc_args): Redefine and use for arch32 as well as arch64. + (GET_SPARC_ARG_CLASS,ROUND_REG,ROUND_ADVANCE): Delete. + (FUNCTION_ARG_ADVANCE): Rewrite. + (FUNCTION_ARG,FUNCTION_INCOMING_ARG): Rewrite. + (FUNCTION_ARG_{PARTIAL_NREGS,PASS_BY_REFERENCE}): Rewrite. + (FUNCTION_ARG_CALLEE_COPIES): Delete. + (FUNCTION_ARG_{PADDING,BOUNDARY}): Define. + (STRICT_ARGUMENT_NAMING): Define. + (doublemove_string): Declare. + * sparc/sparc.c (sparc_arg_count,sparc_n_named_args): Delete. + (single_move_string): Use GEN_INT, and HOST_WIDE_INT. + (doublemove_string): New function. + (output_move_quad): Clean up some of the arch64 support. + (compute_frame_size): Add REG_PARM_STACK_SPACE if arch64. + Don't add 8 bytes of reserved space if arch64. + (sparc_builtin_saveregs): Combine arch32/arch64 versions. + (init_cumulative_args): New function. + (function_arg_slotno): New static function. + (function_arg,function_arg_partial_nregs): New functions. + (function_arg_{pass_by_reference,advance}): New functions. + (function_arg_padding): New function. + * ginclude/va-sparc.h: Rewrite v9 support. + +Fri Oct 17 12:29:48 1997 Christian Iseli + + * regclass.c (record_address_regs): Look at REG_OK_FOR_{BASE,INDEX}_P + for hard regs to determine base and index registers. + + * reload.c (debug_reload_to_stream): New function. Specify stream + into which to write debug info. + (debug_reload): Modify to call debug_reload_to_stream with stderr. + +Thu Oct 16 15:07:51 1997 Richard Henderson + + * combine.c (can_combine_p): Don't combine with an asm whose + output is a hard register. + +Thu Oct 16 15:43:26 1997 Mike Stump + + * c-decl.c (start_struct): Ensure that structs with forward + declarations are in fact packed when -fpack-struct is given. + + * stor-layout.c (layout_record): Ignore STRUCTURE_SIZE_BOUNDARY if + we are packing a structure. This allows a structure with only + bytes to be aligned on a byte boundary and have no padding on a + m68k. + +Thu Oct 16 15:17:54 1997 Richard Kenner + + * rs6000.h (ROUND_TYPE_ALIGN): Don't blow up if no fields in record. + +Thu Oct 16 11:20:30 1997 Richard Henderson + + * alpha.c (alpha_return_addr_rtx): New variable. + (alpha_save_machine_status): New; save it. + (alpha_restore_machine_status): New; restore it. + (alpha_init_expanders): New; clear it. + (alpha_return_addr): New; set it. + (alpha_ra_ever_killed): New; if alpha_return_addr_rtx, regs_ever_live + is overly conservative, so search the insns explicitly. + (alpha_sa_mask [VMS]): Check alpha_ra_ever_killed. + (alpha_sa_size [VMS && !VMS]): Likewise. + * alpha.h (RETURN_ADDR_RTX): Call alpha_return_addr. + (INIT_EXPANDERS): New definition. + + * alpha.c: Move REG_PV, REG_RA somewhere more visible in the file. + (output_prolog [!VMS]): Use them. + + * alpha.c (output_prolog [!VMS]): Move gp detection to ... + (alpha_does_function_need_gp): ... a new function. Refine the + CALL_INSN test to just TYPE_JSR. + * alpha.md (most call insns): Fix some jsr/ibr type transpositions. + +Thu Oct 16 09:36:47 1997 Jeffrey A Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Wed Oct 15 21:38:18 1997 Richard Kenner + + * pa.c (move_operand): Respect -mdisable-indexing. + * pa.h (GO_IF_LEGITIMATE_ADDRESS): Likewise. + +Wed Oct 15 21:34:45 1997 David Edelsohn + + * rs6000.md (udivsi3, divsi3): Split into MQ and non-MQ cases for + PPC601. + (umulsidi3,umulsi3_highpart): Likewise. + (smulsi3_highpart_no_mq): Add !TARGET_POWER. + +Wed Oct 15 18:21:46 1997 Richard Henderson + + * alpha.c (final_prescan_insn): Gut, remove and transform to ... + (alpha_handle_trap_shadows): ... a new function. Handle the entire + function in one go. Emit RTL for trapb, instead of printf directly. + (alpha_reorg): New function. Call alpha_handle_trap_shadows. + (trap_pending): Kill global variable. + (output_epilog): Don't call final_prescan_insn. + (struct shadow_summary): Elide $31 and $f31; now it fits in a word. + * alpha.h (FINAL_PRESCAN_INSN): Remove. + (MACHINE_DEPENDENT_REORG): Define. + * alpha.md (jsr patterns with trapb): Stupid and useless. Kill. + (trapb): New insn. + +Wed Oct 15 18:16:05 1997 Richard Henderson + + Tune Haifa scheduler for Alpha: + * alpha.h (ISSUE_RATE): Define. + * alpha.c (alpha_adjust_cost): Handle EV5 mult delay; don't apply + EV4 adjustments to EV5. + * alpha.md: Remove all scaling from function unit delays. Rework + EV5 function units to match the CPU. + (umuldi3_highpart): EV5 added the IMULH insn class. + +Wed Oct 15 17:42:41 1997 Jeffrey A Law (law@cygnus.com) + + * pa.c (following_call): Fail if the CALL_INSN is an indirect + call. + +Tue Oct 14 12:01:00 1997 Mark Mitchell + + * cplus-dem.c (demangle_signature): Don't look for return types on + constructors. Handle member template constructors. + +Tue Oct 14 11:30:29 1997 Jason Merrill + + * tree.c (expr_tree_cons, build_expr_list, expralloc): New fns. + * tree.h: Declare them. + +Fri Oct 10 13:46:56 1997 Doug Evans + + * configure.in: Handle --with-newlib. + * Makefile.in (LIBGCC2_CFLAGS): Add @inhibit_libc@. + + * sparc/t-sp64 (LIBGCC2_CFLAGS): Delete. + +Wed Oct 8 14:37:44 1997 Jeffrey A Law (law@cygnus.com) + + * config/ptx4.h: Fix typo. + +Wed Oct 8 08:57:20 1997 Jeffrey A Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Tue Oct 7 16:27:34 1997 Manfred Hollstein + + * aclocal.m4: Substitute INSTALL. + * configure: Re-built. + +Tue Oct 7 15:37:35 1997 Jeffrey A Law (law@cygnus.com) + + * integrate.c (save_for_inline_copying): Avoid undefined pointer + operations. + (expand_inline_function): Likewise. + + * dwarf2out.c (output_call_frame_info): Reinstate last change + using flag_debug_asm check instead of flag_verbose_asm. + +Tue Oct 7 12:57:26 1997 Jim Wilson + + * dwarf2out.c (output_call_frame_info): Remove last change. + +1997-10-04 Andreas Schwab + + * frame.c (__frame_state_for): Execute the FDE insns until the + current pc value is strictly bigger than the target pc value. + +Tue Oct 7 11:00:42 1997 Jason Merrill + + * regclass.c (init_reg_modes): If we can't find a mode for the + register, use the previous one. + +Tue Oct 7 10:55:34 1997 Richard Henderson + + * haifa-sched.c (print_block_visualization): Call fprintf directly, + don't sprintf through an alloca'ed buffer. + +Tue Oct 7 10:52:29 1997 Thomas Koenig (ig25@rz.uni-karlsruhe.de) + + * reload.c (decompose): Always initialize val.base. + +Tue Oct 7 10:19:26 1997 Manfred Hollstein (manfred@lts.sel.alcatel.de) + + * m68k/mot3300.h (ASM_OUTPUT_ALIGN): Accept any alignment + instead of aborting. + * dwarf2out.c (output_call_frame_info): Call app_enable and + app_disable to let GNU as accept the generated comments. + +Tue Oct 7 11:41:21 1997 Michael Meissner + + * tree.h (get_file_function_name): Add declaration. + * dwarf2out.c (output_call_frame_info): No need to cast + get_file_function_name call anymore. + * profile.c (toplevel): Remove get_file_function_name + declaration. + * c-lang.c (finish_file): Likewise. + +Tue Oct 7 10:01:45 1997 Chip Salzenberg + + * Makefile.in (program_transform_name): Let autoconf substitute + the correct value. + +Tue Oct 7 09:54:35 1997 Jeffrey A Law (law@cygnus.com) + + * haifa-sched.c (schedule_block): If the first real insn in a + block has any special notes attached to it, remove them. + +Tue Oct 7 09:48:51 1997 Richard Henderson + + * alpha.h (FLOAT_STORE_FLAG_VALUE): It's 2.0 not 0.5. + +Mon Oct 6 12:47:32 1997 Manfred Hollstein (manfred@lts.sel.alcatel.de) + + * m88k.c (m88k_begin_prologue): Remove superfluous backslash. + +Mon Oct 6 12:04:24 1997 Jeffrey A Law (law@cygnus.com) + + * Makefile.in (check-g77): New test target. + (CHECK-TARGETS): Add check-g77. + +Fri Oct 3 11:56:36 1997 Jason Merrill + + * toplev.c (rest_of_compilation): Defer all non-nested inlines. + +Fri Oct 3 15:49:27 1997 Michael Meissner + + * flow.c (print_rtl_with_bb): Cast alloca return value for + in_bb_p. + +Thu Oct 2 21:15:03 1997 Richard Henderson + + * i386.h (RETURN_ADDR_RTX): New definition that works for + __builtin_return_address(0) and -fomit-frame-pointer. + +Wed Oct 1 13:43:53 1997 Jim Wilson + + Bring over from FSF. + Tue Aug 5 16:10:45 1997 Jason Merrill + + * mips.c (function_arg): Handle passing a struct + containing a double in a DFmode register without the PARALLEL. + +Wed Oct 1 11:13:25 1997 Ian Lance Taylor + + * pexecute.c: Use spawn if __CYGWIN32__. + + * pexecute.c: Include "config.h" first, as per autoconf manual + (from Paul Eggert ). + +Wed Oct 1 01:44:36 1997 Philippe De Muyter + + * m68k/x-mot3300 (XCFLAGS): Disable as's long/short jump + optimization for f/expr.o and f/stb.o. + +Tue Sep 30 23:48:57 1997 Jeffrey A Law (law@cygnus.com) + + * cse.c (this_insn_cc0_mode): Initialize. + +Tue Sep 30 23:09:40 1997 Thomas Koenig + + * cccp.c (expand_to_temp_buffer): Initialize all members of obuf. + + * haifa-sched.c (get_block_head_tail): Remove unneeded initialization. + +Tue Sep 30 23:06:43 1997 Richard Henderson + + * alpha.md (beq): For registers and ints 0-255, use cmpeq+bne, since + that pair will dual-issue on the 21164 and plus+beq won't. + (bne): Likewise for cmpeq+beq. + +Tue Sep 30 16:07:58 1997 Jim Wilson + + * except.c (find_exception_handler_labels): Correct argument to free. + +Tue Sep 30 11:00:00 1997 Brendan Kehoe + + * except.c (find_exception_handler_labels): Free LABELS when we're + done. + +Mon Sep 29 14:04:35 1997 Jeffrey A Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Mon Sep 29 10:51:53 1997 Jason Merrill + + * flow.c (find_basic_blocks): Mark calls as potentially jumping + to the EH labels. + +Mon Sep 29 09:58:06 1997 Jeffrey A Law (law@cygnus.com) + + * configure.in: Substitute for "install" too. + * configure: Rebuilt. + +Mon Sep 29 00:38:42 1997 Aaron Jackson + + * Makefile.in (bootstrap-lean, compare-lean): New targets. + +Mon Sep 29 00:18:16 1997 Richard Henderson (rth@cygnus.com) + + * alias.c (base_alias_check): Two symbols can conflict if they + are accessed via AND. + (memrefs_conflict_p): Likewise. + + * alpha.h (SETUP_INCOMING_VARARGS): Emit a blockage insn + after flushing argument registers to the stack. + + * Makefile.in (mostlyclean): Remove .regmove files. + +Sun Sep 28 18:59:58 1997 Jason Merrill + + * libgcc2.c (__throw): Fix thinko. + +Sun Sep 28 12:00:52 1997 Mark Mitchell + + * cplus-dem.c (demangle_template): Add new parameter. Handle new + template-function mangling. + (consume_count_with_underscores): New function. + (demangle_signature): Handle new name-mangling scheme. + +Sun Sep 28 01:55:04 1997 Philippe De Muyter + + * flow.c (print_rtl_with_bb): Cast alloca return values for variables + start and end. + +Sun Sep 28 01:05:16 1997 Jeffrey A Law (law@cygnus.com) + + * frame.c: Remove last change. + * dwarf2.h: Remove last change. + * tree.h: Add declarations of DWARF2 unwind info support + functions. + +Sat Sep 27 11:02:38 1997 Jason Merrill + + * c-decl.c (init_decl_processing): Add __builtin_dwarf_reg_size. + * tree.h (built_in_function): Likewise. + * expr.c (expand_builtin): Likewise. + * except.h: Likewise. + * dwarf2out.c (expand_builtin_dwarf_reg_size): New fn. + * libgcc2.c (copy_reg): New fn. + (__throw): Use it. + +Fri Sep 26 08:54:59 1997 Paul Eggert + + * c-typeck.c (build_binary_op): Warn about comparing signed vs + unsigned if -W is specified and -Wno-sign-compare is not. + * c-decl.c (warn_sign_compare): Initialize to -1. + (c_decode_option): -Wall no longer implies -Wsign-compare. + +Fri Sep 26 09:00:13 1997 Andreas Schwab + + * frame.c: Include gansidecl.h for PROTO. + * dwarf2out.c: Move inclusion of dwarf2.h down so that PROTO is + defined. Don't declare dwarf2out_cfi_label here. + * dwarf2.h: Add declarations of DWARF2 unwind info support + functions. + * m68k.c: Include dwarf2.h. + (output_function_prologue): Add dwarf2 support. + * m68k.h (INCOMING_RETURN_ADDR_RTX, DWARF_FRAME_REGNUM): New macros. + (INCOMING_FRAME_SP_OFFSET): Likewise. + + * integrate.c (expand_inline_function): Make sure there is at + least one insn that can be used as an insertion point. + +Wed Sep 24 21:34:06 1997 Jason Merrill + + * dwarf2out.c: s/flag_verbose_asm/flag_debug_asm/ + +Wed Sep 24 22:05:30 1997 Jeffrey A Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Wed Sep 24 17:36:23 1997 Doug Evans + + Bring over from FSF. + + Wed Sep 24 19:17:08 1997 Doug Evans + + * sparc/sparc.md (get_pc_via_call): Renamed from get_pc_sp32. + (get_pc_via_rdpc): Renamed from get_pc_sp64. + * sparc/sparc.c (finalize_pic): Update call to gen_get_pc_via_call. + + Wed Sep 24 18:38:22 1997 David S. Miller + + * sparc/sparc.h (ASM_CPU_SPEC): Pass -Av9a for v8plus, ultrasparc. + (TARGET_OPTIONS): Add -malign-loops=, -malign-jumps=, + -malign-functions=. + (sparc_align_{loops,jumps,funcs}_string): Declare. + (sparc_align_{loops,jumps,funcs}): Declare. + (DEFAULT_SPARC_ALIGN_FUNCS): New macro. + (FUNCTION_BOUNDARY): Use sparc_align_funcs. + (STACK_BIAS): Define. + (SPARC_SIMM*_P): Cast to unsigned HOST_WIDE_INT first, then perform + test. + (SPARC_SETHI_P): New macro. + (CONST_OK_FOR_LETTER_P): Use it. + (ASM_OUTPUT_ALIGN_CODE): Define. + (ASM_OUTPUT_LOOP_ALIGN): Define. + * sparc/sparc.c (sparc_align_{loops,jumps,funcs}_string): New globals. + (sparc_align_{loops,jumps,funcs}): New globals. + (sparc_override_options): Handle -malign-loops=, -malign-jumps=, + -malign-functions=. + (move_operand): Use SPARC_SETHI_P. + (arith_double_operand): Cast to unsigned HOST_WIDE_INT first, then + perform test. + (arith11_double_operand): Likewise. + (arith10_double_operand): Likewise. + (finalize_pic): Finish sparc64 support. + (emit_move_sequence): Use SPARC_SETHI_P. Simplify low part of + 64 bit constants if able. + (output_fp_move_quad): Don't use fmovq unless TARGET_HARD_QUAD. + (sparc_builtin_saveregs, sparc64 case): Don't save fp regs if + ! TARGET_FPU. + * sparc/sparc.md (*): Use GEN_INT instead of gen_rtx. + (get_pc_sp32): Use for sparc64 as well. + (lo_sum_di_sp{32,64}): Fix handling on 64 bit hosts. + (sethi_di_sp64_const): Likewise. + (movtf_cc_sp64): Check TARGET_HARD_QUAD. + (cmp_zero_extract_sp64): Use unsigned HOST_WIDE_INT in cast. + (ashlsi3, ashldi3, ashrsi3, ashrdi3, lshrsi3, lshrdi3): Likewise. + + Tue Sep 23 19:02:46 1997 Doug Evans + + * sparc/linux-aout.h (COMMENT_BEGIN): Delete. + * sparc/linux.h (COMMENT_BEGIN): Likewise. + * sparc/linux64.h (COMMENT_BEGIN): Likewise. + + Tue Sep 23 14:48:18 1997 David S. Miller + + Add sparc64 linux support. + * configure.in (sparc64-*-linux*): Recognize. Add sparc/xm-sparc.h + to xm_file list on 32-bit sparc-linux. + * sparc/xm-sp64.h: New file. + * sparc/linux64.h: New file. + * sparc/xm-linux.h: Include some standard headers if not inhibit_libc. + Don't include xm-sparc.h. + * config/xm-linux.h (HAVE_PUTENV, HAVE_ATEXIT): Define. + * glimits.h (LONG_MAX): Handle sparc64. + + Sat Sep 20 03:07:54 1997 Doug Evans + + * sparc/sysv4.h (ASM_COMMENT_START): Delete. + * sparc.h (ASM_COMMENT_START): Define. + * sparc.c (output_function_prologue): Use it. + (sparc_flat_output_function_{epi,pro}logue): Likewise. + + Wed Sep 17 15:04:19 1997 Doug Evans + + * sparc/sysv4.h (ASM_OUTPUT_{FLOAT,DOUBLE,LONG_DOUBLE}): Delete, + use sparc.h's copies. + * sparc/sparc.h (ASM_OUTPUT_{FLOAT,DOUBLE,LONG_DOUBLE}): Print + ascii form as well. + + Mon Sep 8 08:45:19 1997 Richard Kenner + + * sparc.c (dwarf2out_cfi_label): Add declaration. + (save_regs, output_function_prologue): Remove cast for it. + (sparc_flat_{save_restore,output_function_prologue): Likewise. + ({save,restore}_regs): No longer inline. + +Tue Sep 23 12:34:51 1997 Richard Kenner + + * fold-const.c (make_range): Correctly handle cases of converting + from unsigned to signed type. + +Tue Sep 23 12:34:51 1997 Bernd Schmidt + + * fold-const.c (merge_ranges): Make sure that if one range is subset + of another, it will always be the second range. Correct (+,-) case to + account for this. + +Tue Sep 23 08:32:51 1997 Jason Merrill + + * final.c (final_end_function): Also do dwarf2 thing if + DWARF2_DEBUGGING_INFO. + (final_start_function): Likewise. + +Tue Sep 23 01:15:50 1997 David S. Miller + + * expmed.c (expand_divmod): If compute_mode is not the same as + mode, handle the case where convert_modes() causes op1 to no + longer be a CONST_INT. + + * reorg.c (dbr_schedule): At end of this pass, add REG_BR_PRED + note holding get_jump_flags() calculation to all JUMP_INSNs. + * rtl.h (enum reg_note): New note types REG_BR_PRED and REG_SAVE_AREA. + * rtl.c (reg_note_name): Add new note types. + +Tue Sep 23 00:59:54 1997 Jeffrey A Law (law@cygnus.com) + + * rtlanal.c (computed_jump_p): Fix typo in last change. + +Tue Sep 23 00:42:44 1997 H.J. Lu (hjl@gnu.ai.mit.edu) + + * loop.c (indirect_jump_in_function_p): Return 0 + by default. + +Tue Sep 23 00:33:55 1997 Jeffrey A Law (law@cygnus.com) + + * rs6000/xm-rs6000.h: Fix thinko in last change. + * rs6000/xm-sysv4.h: Likewise. + +Mon Sep 22 19:33:53 1997 Jim Wilson + + * mips.c (save_restore_insns): Only set RTX_FRAME_RELATED_P if store_p. + +Mon Sep 22 14:41:00 1997 Jeffrey A Law (law@cygnus.com) + + * reg-stack.c (find_blocks): Fix thinko in last change. + +1997-09-21 Andreas Schwab + + * m68k.c (output_function_prologue): Add dwarf2 support. + + * m68k.h (INCOMING_RETURN_ADDR_RTX, DWARF_FRAME_REGNUM, + INCOMING_FRAME_SP_OFFSET): New definitions. + +Mon Sep 22 11:36:42 1997 David S. Miller + + * combine.c (try_combine): Use NULL_RTX instead of '0' where + appropriate in calls to gen_rtx(). + * cse.c (cse_main): Likewise. + * emit-rtl.c (gen_label_rtx): Likewise. + * expr.c (init_expr_once): Likewise. + * haifa-sched.c (flush_pending_lists, sched_analyze_insn, + sched_analyze, init_rgn_data_dependences, + compute_block_backward_dependences): Likewise. + * sched.c (schedule_insns): Likewise. + * varasm.c (immed_double_const): Likewise. + + * sparc.h (INCOMING_FRAME_SP_OFFSET): Define to + SPARC_STACK_BIAS for sake of dwarf2 on sparc64. + +Mon Sep 22 11:21:33 1997 J. Kean Johnston + + * i386/sco5.h: Make ELF default file format and add -mcoff/-melf.. + (MULTILIB_DEFAULTS): Define. + (ASM_SPEC, CPP_SPEC): Handle -mcoff. + (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC): Likewise. + (LIBGCC_SPEC): Likewise. + (MASK_COFF, TARGET_COFF, TARGET_ELF): Define. + (SUBTARGET_SWITCHES): Add -mcoff and -melf. + * i386/t-sco5 (CRTSTUFF_T_CFLAGS): Add -fPIC. + (CRTSTUFF_T_CFLAGS_S): Tweak for COFF. + (EXTRA_PARTS, TAROUTOPTS): Delete. + (libgcc1-elf, libgcc2-elf, libgcc-elf targets): Delete. + (MULTILIB_OPTIONS): Define. + (MULTILIB_DIRNAMES, MULTILIB_EXCEPTIONS): Likewise. + (MULTILIB_MATCHE, MULTILIB_EXTRA_OPTS): Likewise. + +Mon Sep 22 02:10:43 1997 Jeffrey A Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Sun Sep 21 17:45:45 1997 Jeffrey A Law (law@cygnus.com) + + * loop.c (loop_number): Delete function. Change all references + to use uid_loop_num array. + * loop.h (loop_number): Delete declaration. + * unroll.c (unroll_loop): Change "loop_number" references to + use uid_loop_num instead. + + * loop.c (loop_unroll_factor): Move outside #ifdef HAIFA + conditional. + (loop_unroll_iter): Remove unused variable and all references. + (loop_optimize): Always allocate and clear space for loop_unroll_factor. + (insert_bct): Fix minor formatting problems. + * loop.h (loop_unroll_factor): Move decl outside #ifdef HAIFA. + (loop_unroll_iter): Removed unused decl. + * unroll.c (unroll_loop): Remove code to set loop_unroll_iter. + Always record the unrolling factor. + + * cse.c (simplify_relational_operation): Set h0u just like h0s. + Similarly for h1u and h1s. + + * flow.c (jmp_uses_reg_or_mem): Deleted unused function. + (find_basic_blocks): Use computed_jump_p to determine if a + particular JUMP_INSN is a computed jump. + * reg-stack.c (find_blocks): Use computed_jump_p to determine + if a particular JUMP_INSN is a computed jump. + * rtlanal.c (jmp_uses_reg_or_mem): New function. + (computed_jump_p): Likewise. + * rtl.h (computed_jump_p): Declare. + * genattrtab.c (pc_rtx): Define and initialize. + * loop.c (loop_optimize): Always determine if the current + function has a computed jump. + (indirect_jump_in_function_p): Use computed_jump_p to determine + if a particular JUMP_INSN is a computed jump. + + * loop.c (fix_bct_param): Delete unused function. + (check_bct_param): Likewise. + +Sat Sep 20 16:22:06 1997 Jason Merrill + + * frame.c (__deregister_frame): Check properly for initialized object. + +Fri Sep 19 20:51:03 1997 H.J. Lu (hjl@gnu.ai.mit.edu) + + * alpha/linux.h (HANDLE_SYSV_PRAGMA): Defined. + +Fri Sep 19 18:53:50 1997 J"orn Rennecke + + * jump.c (thread_jumps): Check can_reverse_comparison_p before + threading a reversed-condition jump. + + * sched.c (update_flow_info): Don't pass SCRATCH to dead_or_set_p. + * haifa-sched.c (update_flow_info): Likewise. + +Thu Sep 18 21:13:40 1997 Jeffrey A Law (law@cygnus.com) + + * Makefile.in (BOOT_CFLAGS): Use -O2. + + * configure.in (strtoul, bsearch): Have autoconf check for these + functions. + * configure, config.in: Rebuilt. + + * m68k/xm-mot3300.h (alloca): Properly declare if __STDC__. + * mips/mips.h (alloca): Likewise. + * rs6000/xm-rs6000.h (alloca): Likewise. + * rs6000/xm-sysv4.h: Likewise. + +Thu Sep 18 14:22:22 1997 Jason Merrill + + * final.c (final_scan_insn): Hand BARRIERs off to the dwarf2 code. + * dwarf2out.c (dwarf2out_frame_debug): Pass the whole insn along. + (dwarf2out_stack_adjust): A BARRIER resets the args space to 0. + + * except.c (end_eh_unwinder): Subtract 1 from return address. + * libgcc2.c (__throw): Likewise. + (find_exception_handler): Don't change PC here. Compare end with >. + +Thu Sep 18 10:43:07 1997 Nick Clifton + + * v850.c (compute_register_save_size): Correct register + number. + * v850.md (save_interrupt, return_interrupt): Correct + register number. + * v850/lib1funcs.asm (save_interrupt): Correct register number. + (return_interrupt): Use stack pointer, not element pointer. + +1997-09-18 Brendan Kehoe + + * configure.in, configure: Make sure to create the stage* and include + symbolic links in each subdirectory. + +Thu Sep 18 01:47:06 1997 Jeffrey A Law (law@cygnus.com) + + * pa.md (reload_peepholes): Don't allow addresses with side + effects for the memory operand. + +Wed Sep 17 18:19:53 1997 Jason Merrill + + * libgcc2.c (find_exception_handler): Subtract one from our PC when + looking for a handler, to avoid hitting the beginning of the next + region. + + * except.c (expand_builtin_set_return_addr_reg): Use force_operand. + +Wed Sep 17 18:33:59 1997 Jeffrey A Law (law@cygnus.com) + + * mips/abi64.h (LONG_MAX_SPEC): Define. + * mips.h (LONG_MAX_SPEC): Define. + (CPP_SPEC): Include long_max_spec. + (EXTRA_SPECS): Include long_max_spec. + +Wed Sep 17 14:11:38 1997 Jeffrey A Law (law@cygnus.com) + + * v850.c (construct_save_jarl): Fix thinko in last change. + +Wed Sep 17 09:53:07 1997 Jeffrey A Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Tue Sep 16 14:22:36 1997 Jason Merrill + + * libgcc2.c (find_exception_handler): Not found is -1. + + * integrate.c (expand_inline_function): Move expand_start_bindings + after expanding the arguments. + +Tue Sep 16 11:13:46 1997 Jim Wilson + + * expr.c (expand_expr): Remove previous incorrect change. + If target and slot has no DECL_RTL, then call mark_addressable + again for the slot after we give it RTL. + +Tue Sep 16 09:18:52 1997 Jason Merrill (jason@cygnus.com) + + * expr.c (expand_expr, case TARGET_EXPR): Call mark_addressable + again for the slot after we give it RTL. + +Tue Sep 16 00:13:20 1997 Nick Clifton + + * v850.c (register_is_ok_for_epilogue, + pattern_is_ok_for_epilogue, construct_restore_jr, + pattern_is_ok_for_prologue, construct_save_jarl): New functions. + + * v850.h (pattern_is_ok_for_prologue, + pattern_is_ok_for_epilogue, register_is_ok_for_epilogue): New + predicates. + + * v850.md: Replace prologue and epilogue patterns with a + match_parallel pattern. + +Mon Sep 15 22:53:01 1997 Jeffrey A Law (law@cygnus.com) + + * aclocal.m4: Add replacement for AC_PROG_INSTALL. + * configure.in: Use EGCS_PROG_INSTALL. + +Mon Sep 15 22:40:55 1997 Jim Wilson (wilson@cygnus.com) + + * dwarf2out.c (gen_subprogram_die): Handle redefinition of an + extern inline function. + +Mon Sep 15 22:40:55 1997 Richard Henderson (rth@cygnus.com) + + * dwarf2out.c (reg_loc_descriptor): Fix prototype. + (concat_loc_descriptor): New function. + (loc_descriptor): Call it. + (add_AT_location_description): Also elide the descriptor if both + halves of a CONCAT are pseudos. + (add_location_or_const_value_attribute): Recognize CONCAT too. + +Mon Sep 15 15:24:00 1997 Richard Henderson + + * alpha.md (movdi): Handle CONST_DOUBLE for TARGET_BUILD_CONSTANTS. + + * alpha/alpha.c (output_prolog): New variable sa_reg. Use it for + out-or-range reg_offset. + (output_epilog): Likewise. + +Mon Sep 15 15:39:26 1997 Jeffrey A Law (law@cygnus.com) + + * cse.c (simplify_relational_operation): If MODE specifies a + mode wider than HOST_WIDE_INT, then the high word of a CONST_INT + is derived from the sign bit of the low word. + +Mon Sep 15 11:43:38 1997 Jason Merrill + + Support dwarf2 unwinding on PUSH_ROUNDING targets like the x86. + + * dwarf2.h: Add DW_CFA_GNU_args_size. + * frame.c (execute_cfa_insn): Likewise. + * dwarf2out.c (dwarf_cfi_name, output_cfi): Likewise. + (dwarf2out_args_size, dwarf2out_stack_adjust): New fns. + (dwarf2out_frame_debug): If this isn't a prologue or epilogue + insn, hand it off to dwarf2out_stack_adjust. + (dwarf2out_begin_prologue): Initialize args_size. + * frame.h (struct frame_state): Add args_size. + * libgcc2.c (__throw): Use args_size. + * final.c (final_scan_insn): If we push args, hand off all insns + to dwarf2out_frame_debug. + * defaults.h (DWARF2_UNWIND_INFO): OK for !ACCUMULATE_OUTGOING_ARGS. + + * dwarf2out.c dwarf2out_frame_debug): Fix typo. + Handle epilogue restore of SP from FP. + * emit-rtl.c (gen_sequence): Still generate a sequence if the + lone insn has RTX_FRAME_RELATED_P set. + + * frame.c (extract_cie_info): Handle "e" augmentation. + * dwarf2out.c (ASM_OUTPUT_DWARF_*): Provide definitions in the + absence of UNALIGNED_*_ASM_OP. + (UNALIGNED_*_ASM_OP): Only provide defaults if OBJECT_FORMAT_ELF. + (output_call_frame_info): Use "e" instead of "z" for augmentation. + Don't emit augmentation fields length. + (dwarf2out_do_frame): Move outside of #ifdefs. + * defaults.h (DWARF2_UNWIND_INFO): Don't require unaligned data + opcodes. + + * sparc.h (UNALIGNED_INT_ASM_OP et al): Don't define here after all. + * sparc/sysv4.h (UNALIGNED_INT_ASM_OP): Define here. + * sparc/sunos4.h (DWARF2_UNWIND_INFO): Define to 0. + * sparc/sun4gas.h: New file. + * configure.in: Use sun4gas.h if SunOS 4 --with-gnu-as. + + * collect2.c (write_c_file_stat, write_c_file_glob): Declare + __register_frame_table and __deregister_frame. + +1997-09-15 Brendan Kehoe + + * except.c (find_exception_handler_labels): Use xmalloc instead of + alloca, since MAX_LABELNO - MIN_LABELNO can be more than 1 million + in some cases. + +Sun Sep 14 21:01:23 1997 Jeffrey A Law (law@cygnus.com) + + * Makefile.in: Various changes to build info files + in the object tree rather than the source tree. + +Sun Sep 14 12:24:30 1997 Jeffrey A Law (law@cygnus.com) + + * fixinc.math: New file to fix math.h on some systems. + * configure.in (freebsd, netbsd): Use fixinc.math on these + systems. + * configure: Rebuilt. + +Sun Sep 14 11:11:05 1997 Jeffrey A Law (law@cygnus.com) + + * regmove.c (regmove_optimize): If we end up moving the + original insn due to lifetime overlaps, make sure to move + REG_NOTES too. + +Sat Sep 13 15:51:11 1997 Manfred Hollstein + + * Makefile.in (INSTALL_{PROGRAM,DATA}): Use value found by configure. + +Sat Sep 13 12:57:26 1997 Jeffrey A Law (law@cygnus.com) + + * haifa-sched.c (add_branch_dependences): Make each insn in + a SCHED_GROUP_P block explicitly depend on the previous insn. + +Fri Sep 12 13:49:58 1997 Jason Merrill + + * except.h: Prototype dwarf2 hooks. + * expr.c: Adjust. + +Thu Sep 11 17:43:55 1997 Jim Wilson + + * configure.in (native_prefix): Delete. + (mips-dec-netbsd): Don't set prefix. + (*linux*): Don't set prefix. + +Thu Sep 11 15:48:32 1997 Fred Fish + + * protoize.c: Include only if HAVE_VARARGS_H is + defined. If not defined, include if + HAVE_SYS_VARARGS_H is defined. + * configure.in: Test for varargs.h and sys/varargs.h. + * configure: Regenerate with autoconf. + * config.in: Regenerate with autoheader. + + * cpplib.c (quote_string): Cast first arg of sprintf call + from "unsigned char *" to "char *". + (output_line_command): Likewise. + (macroexpand): Likewise. + (do_line): Cast atoi arg from "unsigned char *" to "char *". + +Wed Sep 10 21:37:30 1997 Jeffrey A Law (law@cygnus.com) + + * version.c: Bump for snapshot. + + * Makefile.in (compare): Exit with nonzero status if there + are comparison failures. Note which files failed the + comparison test in .bad_compare. + +Wed Sep 10 17:05:46 1997 H.J. Lu (hjl@gnu.ai.mit.edu) + + * config/alpha/elf.h (CPP_PREDEFINES): Remove -D__PIC__ -D__pic__. + +Wed Sep 10 16:37:28 1997 Fred Fish + + * Makefile.in (LN, LN_S): New macros, use where appropriate. + * aclocal.m4 (GCC_PROG_LN_S, GCC_PROG_LN): New tests. + * configure.in: Use GCC_PROG_LN_S and GCC_PROG_LN. + * configure: Regenerated. + +Thu Sep 11 11:09:43 1997 Jeffrey A Law (law@cygnus.com) + + * loop.c (strength_reduce): Fix typo. + +Wed Sep 10 16:01:15 1997 Jim Wilson + + * m88k/m88k.c (struct option): Rename to struct options. + * m88k/dolph.h (INITIALIZE_TRAMPOLINE): Delete here. + * m88k/sysv3.h (INITIALIZE_TRAMPOLINE): Delete ifdef and comments. + * libgcc2.c (__enable_execute_stack): Check for __sysV88__ not + __DOLPHIN__ or sysV88. + +Wed Sep 10 14:58:40 1997 Jim Wilson + + * emit-rtl.c (gen_lowpart_common): For a SUBREG, add in word when + create new subreg. + +Wed Sep 10 15:19:22 1997 Jeffrey A Law (law@cygnus.com) + + * config.sub: Accept 'amigados' for backward compatibility. + +Wed Sep 10 14:05:08 1997 H.J. Lu (hjl@gnu.ai.mit.edu) + + * Makefile.in (testsuite/site.exp): New target. + (check-gcc, check-g++): Depend on testsuite/site.exp. + Don't stop for failure. + +Wed Sep 10 12:59:57 1997 Jason Merrill + + * expr.c (expand_builtin): Only support __builtin_dwarf_fp_regnum() + if DWARF2_UNWIND_INFO. + +Wed Sep 10 11:49:20 1997 Jason Merrill + + Add support for exception handling using DWARF 2 frame unwind info. + Currently works on SPARC and MIPS, and almost on x86. + + * libgcc2.c (get_reg, put_reg, get_return_addr, put_return_addr, + next_stack_level, in_reg_window): Helper fns. + (__throw): Implement for DWARF2_UNWIND_INFO. + + * expr.c (expand_builtin): Handle builtins used by __throw. + * tree.h (enum built_in_function): Add builtins used by __throw. + * c-decl.c (init_decl_processing): Declare builtins used by __throw. + * dwarf2out.c (expand_builtin_dwarf_fp_regnum): Used by __throw. + * except.c (expand_builtin_unwind_init): Hook for dwarf2 __throw. + (expand_builtin_extract_return_addr): Likewise. + (expand_builtin_frob_return_addr): Likewise. + (expand_builtin_set_return_addr_reg): Likewise. + (expand_builtin_eh_stub): Likewise. + (expand_builtin_set_eh_regs): Likewise. + (eh_regs): Choose two call-clobbered registers for passing back values. + + * frame.c, frame.h: New files for parsing dwarf 2 frame info. + * Makefile.in (LIB2ADD): New variable. Add $(srcdir)/frame.c. + (libgcc2.a): Use it instead of $(LIB2FUNCS_EXTRA) $(LANG_LIB2FUNCS) + (stmp-multilib): Likewise. + ($(T)crtbegin.o, $(T)crtend.o): Add -fno-exceptions. + + * except.c: #include "defaults.h". + (exceptions_via_longjmp): Default depends on DWARF2_UNWIND_INFO. + (emit_throw): Don't defeat assemble_external if DWARF2_UNWIND_INFO. + (register_exception_table_p): New fn. + (start_eh_unwinder): Don't do anything if DWARF2_UNWIND_INFO. + (end_eh_unwinder): Likewise. + + * crtstuff.c: Wrap .eh_frame section, use EH_FRAME_SECTION_ASM_OP, + call __register_frame and __deregister_frame as needed. + * varasm.c (eh_frame_section): New fn if EH_FRAME_SECTION_ASM_OP. + * dwarf2out.c (EH_FRAME_SECTION): Now a function-like macro. Check + EH_FRAME_SECTION_ASM_OP. + * sparc/sysv4.h (EH_FRAME_SECTION_ASM_OP): Define. + * mips/iris6.h (EH_FRAME_SECTION_ASM_OP): Define. + (LINK_SPEC): Add __EH_FRAME_BEGIN__ to hidden symbols. + + * dwarf2out.c (output_call_frame_info): If no support for + EXCEPTION_SECTION, mark the start of the frame info with a + collectible tag. + * collect2.c (frame_tables): New list. + (is_ctor_dtor): Recognize frame entries. + (scan_prog_file): Likewise. + (main): Pass -fno-exceptions to sub-compile. Also do collection + if there are any frame entries. + (write_c_file_stat): Call __register_frame_table and + __deregister_frame as needed. + (write_c_file_glob): Likewise. + + * defaults.h (DWARF2_UNWIND_INFO): Default to 1 if supported. + Also require unaligned reloc support. + * sparc.h (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP, + UNALIGNED_DOUBLE_INT_ASM_OP): Define here. + * sparc/sysv4.h: Not here. + + * toplev.c (compile_file): Call dwarf2out_frame_{init,finish}. + * dwarf2out.c (dwarf2out_init): Don't call dwarf2out_frame_init. + (dwarf2out_finish): Don't call dwarf2out_frame_finish. + + * libgcc2.c (L_eh): Reorganize, moving code shared by different + EH implementations to the top. + (find_exception_handler): Split out. Start from 0. Compare against + end with >=. + (__find_first_exception_table_match): Use it. + * except.c (output_exception_table): Don't do anything if there's + no table. Don't output a first entry of zeroes. + (eh_outer_context): Adjust properly. + (add_eh_table_entry): Use xrealloc. + * toplev.c (compile_file): Just call output_exception_table. + +Wed Sep 10 11:30:36 1997 Jason Merrill + + * i386.c (ix86_prologue): Add dwarf2 support for !do_rtl case. + +Wed Sep 10 08:17:10 1997 Torbjorn Granlund + + * except.c (eh_outer_context): Do masking using expand_and. + +Wed Sep 10 01:38:30 1997 Doug Evans + + Add port done awhile ago for the ARC cpu. + * arc/arc.h: New file. + * arc/arc.c: New file. + * arc/arc.md: New file. + * arc/initfini.c: New file. + * arc/lib1funcs.asm: New file. + * arc/t-arc: New file. + * arc/xm-arc.h: New file. + * ginclude/va-arc.h: New file. + * ginclude/stdarg.h: Include va-arc.h ifdef __arc__. + * ginclude/varargs.h: Likewise. + * Makefile.in (USER_H): Add va-arc.h. + * configure.in (arc-*-elf*): Recognize. + * longlong.h: Add ARC support. + +Wed Sep 10 01:32:54 1997 Jeffrey A Law (law@cygnus.com) + + * expr.c (clear_storage): Use CONST0_RTX instead of const0_rtx. + when clearing non-BLKmode data. + +Wed Sep 10 00:29:29 1997 Manfred Hollstein + + * m88k/sysv3.h (INITIALIZE_TRAMPOLINE): Define. + * libgcc2.c (__enable_execute_stack): Provide for sysV88 too. + + * xm-m88k.h (USG): Only define if it hasn't already been defined. + + * Makefile.in (risky-stage1): Delete gratuitous whitespace. + + * Makefile.in (clean): Delete libgcc1-test. + + * Makefile.in (INSTALL): cd to $(srcdir) before running texinfo. + +Tue Sep 9 17:07:36 1997 Stan Cox + + * m88k.c (m88k_expand_prologue): Set MEM_IN_STRUCT_P of va_list + template. + +Tue Sep 9 09:50:02 1997 Richard Kenner + + * dwarf2out.c (output_call_frame_info): Call named_section. + +Tue Sep 9 09:12:17 1997 Jeffrey A Law (law@cygnus.com) + + * haifa-sched.c (print_value): Fix last change. + +Tue Sep 9 01:30:37 1997 Jason Merrill + + * mips.h (DWARF_FRAME_REGNUM): Use the same numbering regardless of + write_symbols. + +Mon Sep 8 16:32:43 1997 Jason Merrill + + * mips.c (function_prologue): Set up the CFA when ABI_32. + + * sparc.c (save_regs): Check dwarf2out_do_frame instead of DWARF2_DEBUG + for dwarf2 unwind info. + (output_function_prologue, sparc_flat_output_function_prologue): Same. + + * final.c (final_end_function): Check dwarf2out_do_frame instead + of DWARF2_DEBUG for dwarf2 unwind info. + (final_scan_insn): Likewise. + (final_start_function): Likewise. Initialize dwarf2 frame debug here. + (final): Not here. + + * expr.c (expand_builtin_return_addr): Only SETUP_FRAME_ADDRESSES if + count > 0. + + * varasm.c (exception_section): Check EXCEPTION_SECTION first. + +Mon Sep 8 15:15:11 1997 Nick Clifton + + * v850.h (ASM_SPEC): Pass on target processor. + (CPP_PREDEFINES): Only define if not already specified. + (TARGET_VERSION): Only define if not already specified. + (MASK_CPU, MASK_V850, MASK_DEFAULT): Bits to specify target + processor. + (EXTRA_SWITCHES): Extra entries in the switches array. + (TARGET_DEFAULT): Set default target processor. + +Mon Sep 8 18:26:35 1997 Jim Wilson + + * m68k.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): In MOTOROLA + cases, add %# and %/, and add : to make them into extended asms. + +Sun Sep 7 23:57:50 1997 Weiwen Liu + + * alias.c (init_alias_analysis): Clean up incompatible pointer + type warning in bzero. + * regmove.c (regmove_optimize): Likewise. + * haifa-sched.c (find_rgns): Likewise. + + * haifa-sched.c (print_value): Clean up ptr->int cast + warnings. + +Sun Sep 7 23:18:32 1997 Fred Fish + + * INSTALL: Change 'amigados' to 'amigaos' to match current usage. + * install.texi (Configurations): Likewise. + * config.sub: Likewise. + +Sun Sep 7 22:56:56 1997 Weiwen Liu (liu@hepvms.physics.yale.edu) + + * Makefile.in (sdbout.o): Depend on insn-config.h. + +Sun Sep 7 18:44:50 1997 Jim Wilson + + * m68k/m68k.h (TARGET_SWITCHES): For 68000, 68302, subtract MASK_68881. + For 68303, 68332, cpu32, subtract MASK_68040_ONLY. + +Sun Sep 7 18:30:46 1997 Jason Merrill + + * dwarf2out.c (dwarf2out_frame_debug): Assume that in a PARALLEL + prologue insn, only the first elt is significant. + (output_call_frame_info): For exception handling, always use 4-byte + fields as specified by the dwarf2 spec. + Don't skip trivial FDEs. + +Sun Sep 7 14:19:39 1997 Jeffrey A Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Sun Sep 7 14:17:36 1997 Torbjorn Granlund (tege@pdc.kth.se) + + * expmed.c (expand_divmod): Make op1_is_pow2 depend on unsignedp + for negative constants. Promote EXACT_DIV_EXPR to TRUNC_DIV_EXPR + when op1_is_pow2. + +Sun Sep 7 13:46:46 1997 Jeffrey A Law (law@cygnus.com) + + * final.c (shorten_branches): During first pass, assume worst + possible alignment for ADDR_VEC and ADDR_VEC_DIFF insns. + + * Makefile.in (distclean): Remove various things left around + by running the testsuite. + +Sun Sep 7 13:16:06 1997 Manfred Hollstein + + * configure.in (out_file): Emit definition to config.status in order + to have a defined value for configure.lang. + * configure: Re-built. + +Sun Sep 7 09:59:08 1997 Jan-Jaap van der Heijden (J.J.vanderHeijden@student.utwente.nl) + + * configure.in: Make symlink to as-new rather than as.new. Similarly + for ld-new. + * configure: Rebuilt. + +Fri Sep 5 16:54:55 1997 Jim Wilson + + * profile.c (output_func_start_profiler): Set DECL_EXTERNAL to zero. + +Fri Sep 5 16:16:44 1997 Christian Kuehnke + + * sparc/sparc.md: Add ultrasparc scheduling support. + * sparc/sparc.h (RTX_COSTS): For MULT give v9 a cost of 25 insns. + +Fri Sep 5 14:04:59 1997 Philippe De Muyter + + * integrate.c (save_for_inline_copying): Use 0, not NULL_PTR, + as initial value for real_label_map. + (copy_for_inline): Likewise. + +Fri Sep 5 13:36:44 1997 J"orn Rennecke + + * sched.c (update_flow_info): When looking if to set found_split_dest + or found_orig_dest, look at all parts of a PARALLEL. + * haifa-sched.c (update_flow_info): Likewise. + +Fri Sep 5 10:08:44 1997 Jeffrey A Law (law@cygnus.com) + + * v850: New directory for v850 port. + * v850/lib1funcs.asm: New file. + * t-v850, v850.c, v850.h, v850.md, xm-v850.h: New files. + * ginclude/va-v850.h: New file. + * ginclude/varargs.h, ginclude/stdarg.h: Include va-mn10200.h. + * configure.in (mn10200-*-*): New target. + * configure: Rebuilt. + * config.sub: Handle v850-elf. + * Makefile.in (USER_H): Add va-mn10200.h. + * invoke.texi: Document v850 stuff. + +Fri Sep 5 09:37:50 1997 Jim Wilson (wilson@cygnus.com) + + * sdbout.c (plain_type_1, case ARRAY_TYPE): Verify that TYPE_DOMAIN + has integer TYPE_{MAX,MIN}_VALUE before using them. + + * m68k/m68k.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Add + __HPUX_ASM__ versions. + +Fri Sep 5 09:08:44 1997 Jeffrey A Law (law@cygnus.com) + + * install.sh: Delete duplicate install script. + +Thu Sep 4 23:14:27 1997 Stan Cox (coxs@dg-rtp.dg.com) + + * reg-stack.c (subst_stack_regs): Pop the stack register for a + computed goto which sets the same stack register. + + * reg-stack.c (compare_for_stack_reg): Swap only if the source and + destination are both on the regstack. + (subst_stack_regs_pat): Put the destination at the top of the regstack. + +Thu Sep 4 15:02:27 1997 Jim Wilson + + * mips.md (nonlocal_goto_receiver): Define. + + * profile.c (output_arc_profiler): Check next_insert_after for non + NULL before deferencing it. + + * i386/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define to -fPIC. + +Thu Sep 4 14:51:57 1997 Jeffrey A Law (law@cygnus.com) + + * i386.h (CPP_CPU_DEFAULT): Avoid using #elif. + +Thu Sep 4 15:01:49 1997 Michael Meissner + + * toplev.c (rest_of_compilation): For passes starting with + flow_analysis, use print_rtl_with_bb instead of print_rtl. + + * print-rtl.c (print_rtl_single): Print a single rtl value to a + file. + + * flow.c (print_rtl_with_bb): Print which insns start and end + basic blocks. For the start of a basic block, also print the live + information. + +Thu Sep 4 11:51:43 1997 Jim Wilson + + * toplev.c (main): Change #elif to #else/#ifdef. + + * tlink.c: Include ctype.h. + * ginclude/va-mips.h: Add _VA_MIPS_H_ENUM ifdef/define/endif. + +Thu Sep 4 11:17:16 1997 Mikeael Meissner (meissner@cygnus.com) + + * bitmap.c: Conditionally include stdlib.h. + (free): Provide a declaration if NEED_DECLARATION_FREE. + +Thu Sep 4 09:58:53 1997 Joel Sherrill (joel@OARcorp.com) + + * i960/i960.h: Added default for SUBTARGET_SWITCHES macro. + +Thu Sep 4 09:53:20 1997 Jim Wilson (wilson@cygnus.com) + + * profile.c (output_arc_profiler): Verify next_insert_after is an + INSN before and after skipping a stack pop. + +Thu Sep 4 07:39:19 1997 J"orn Rennecke + + * final.c (shorten_branches): Don't count the lengths of deleted + instructions. + +Thu Sep 4 09:43:01 1997 Jeffrey A Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Thu Sep 4 11:04:21 1997 Michael Meissner + + * bitmap.h (EXECUTE_IF_AND_IN_BITMAP): New macro, to iterate over + two bitmaps ANDed together. + (bitmap_print): Declare. + + * bitmap.c (function_obstack): Don't declare any more. + (bitmap_obstack): Obstack for allocating links from. + (bitmap_obstack_init): New static to say whether to initialize + bitmap_obstack. + (bitmap_element_allocate): Use bitmap_obstack to allocate from. + (bitmap_release_memory): Free all memory allocated from + bitmap_obstack. + + * basic-block.h (EXECUTE_IF_AND_IN_REG_SET): New macro, invoke + EXECUTE_IF_AND_IN_BITMAP. + +Wed Sep 3 10:39:42 1997 Jim Wilson + + * alias.c (true_dependence): Address with AND can alias scalars. + (anti_dependence, output_dependence): Likewise. + + * alias.c (true_dependence): Test x for BLKmode, in addition to mem. + +Wed Sep 3 09:28:50 1997 Joel Sherrill (joel@OARcorp.com) + + * i386/go32-rtems.h, i386/rtems.h, i960/rtems.h, m68k/rtems.h, + mips/rtems64.h, pa/rtems.h, rs6000/rtems.h, sh/rtems.h, + sparc/rtems.h (subtarget_switches): Removed SUBTARGET_SWITCHES + definitions. Use -qrtems instead of -mrtems. + +Wed Sep 3 09:05:41 1997 Robert Lipe (robert@dgii.com) + + * xm-sco5.h (sys_siglist): Define. + (SYS_SIGLIST_DECLARED): Likewise. + +Tue Sep 2 23:33:33 1997 Jeffrey A Law (law@cygnus.com) + + * expr.c (convert_move): Handle truncation from TQFmode to QFmode. + +Wed Sep 3 02:09:30 1997 Torbjorn Granlund + + * except.c (eh_outer_context): Expand masking operation using + expand_binop. + +Tue Sep 2 18:09:39 1997 Jim Wilson + + * alpha.md (floatdisf2-1): New pattern. + +Tue Sep 2 18:41:55 1997 Jeffrey A Law (law@cygnus.com) + + * xm-svr4.h (SYS_SIGLIST_DECLARED): Define. + * xm-news.h (SYS_SIGLIST_DECLARED): Likewise. + * xm-sysv4.h (SYS_SIGLIST_DECLARED): Likewise. + * gcc.texi: Note that if you define sys_siglist that you should + also define SYS_SIGLIST_DECLARED. + + * mn10200.h (INITIALIZE_TRAMPOLINE): PC relative instructions + are relative to the next instruction, not the current instruction. + +Tue Sep 2 14:22:43 1997 Jim Wilson + + * local-alloc.c (contains_replace_regs): New function. + (update_equiv_regs): When adding a REG_EQUIV note for a set of a MEM, + verify that there is no existing REG_EQUIV note, and add a call to + contains_place_regs. + +Tue Sep 2 12:48:11 1997 H.J. Lu (hjl@gnu.ai.mit.edu) + + * config/alpha/elf.h (CPP_PREDEFINES): Add -D__PIC__ -D__pic__. + (STARTFILE_SPEC): Always use crtbegin.o%s. + (ENDFILE_SPEC): Always use crtend.o%s. + +Tue Sep 2 12:00:36 1997 Jim Wilson + + * alpha/alpha.h (PREFERRED_RELOAD_CLASS): Return NO_REGS if NO_REGS + is passed in. + * emit-rtl.c (gen_lowpart_common): Add code to convert CONST_INT to + SFmode for 64 bit hosts. + +Tue Sep 2 13:42:38 1997 Paul N. Hilfinger + + * fixincludes: Permits spaces between # and define. Discard C++ + comments in sys/pci.h on HP/UX 10.20. + +Mon Sep 1 22:13:18 1997 Jeffrey A Law (law@cygnus.com) + + * version.c: Bump for snapshot. + + * pa.c (restore_unscaled_index_insn_codes): New function. + (record_unscaled_index_insn_codes): Likewise. + (output_function_prologue): Call restore_unscaled_index_insn_codes. + (output_function_epilogue): Free memory for unscaled_index_insn_codes. + (pa_reorg): Call record_unscaled_index_insn_codes. + + * haifa-sched.c (move_insn): Handle notes correctly for insns + with SCHED_GROUP_P set. + +Mon Sep 1 16:58:57 1997 H.J. Lu (hjl@gnu.ai.mit.edu) + + * alpha/xm-linux.h (USE_BFD): Undef before define. + +Mon Sep 1 16:25:34 1997 Jim Wilson + + * cse.c (cse_insn): Don't record BLKmode values. + +Mon Sep 1 11:25:47 1997 Stephen Williams (steve@icarus.icarus.com) + + * i960.h (LINK_SPEC): Handle "-mjX" and "-mrp" switches. + +Mon Sep 1 08:29:46 1997 Jeffrey A Law (law@cygnus.com) + + * cccp.c (sys_errlist): Remove special 4.4bsd declaration. + * collect2.c (sys_errlist): Likewise. + * cpplib.c (sys_errlist): Likewise. + * gcc.c (sys_errlist): Likewise. + * protoize (sys_errlist): Likewise. + * configure.in: Check for strerror. + * xm-freebsd.h (HAVE_STRERROR): Remove definition. + * xm-gnu.h (HAVE_STRERROR): Likewise. + * xm-linux.h (HAVE_STRERROR): Likewise. + * xm-netbsd.h (HAVE_STRERROR): Likewise. + * xm-bsd386.h (HAVE_STRERROR): Likewise. + * xm-cygwin32.h (HAVE_STRERROR): Likewise. + * xm-dos.h (HAVE_STRERROR): Likewise. + * xm-mingw32.h (HAVE_STRERROR): Likewise. + * xm-pa.h (HAVE_STRERROR): Likewise. + * xm-papro.h (HAVE_STRERROR): Likewise. + * xm-sysv4.h (HAVE_STRERROR): Likewise. + * configure, config.in: Rebuilt. + + * Makefile.in: Add several missing "else true" clauses. + + * collect2.c: Change DONT_DECLARE_SYS_SIGLIST to SYS_SIGLIST_DECLARED. + * mips-tfile.c: Likewise. + * gcc.texi: DONT_DECLARE_SYS_SIGLIST: Remove docs. + * xm-linux.h (DONT_DECLARE_SYS_SIGLIST): Delete definition. + * xm-freebsd.h, xm-bsd386.h, xm-sysv4.h, xm-sol2.h: Likewise. + * configure.in: Check for sys_siglist declaration. + * configure, config.in: Rebuilt. + +Mon Sep 1 08:04:07 1997 Joel Sherrill (joel@OARcorp.com) + + * i386/go32-rtems.h, i386/rtems.h, i960/rtems.h, + m68k/rtems.h, mips/rtems64.h, pa/rtems.h, rs6000/rtems.h, + sparc/rtems.h (subtarget_switches): Added -mrtems as a switch. + * i960/i960.h: Added SUBTARGET_SWITCHES macro. + * rs6000/sysv4.h (extra_subtarget_switches): Added new + macro EXTRA_SUBTARGET_SWITCHES. + * configure.in (sh*-*-rtems*): New target. + * sh/rtems.h: New file. + * sh/sh.h: Added SUBTARGET_SWITCHES macro. + * configure: Rebuilt. + +Sat Aug 30 22:54:26 1997 Jim Wilson + + * unroll.c (calculate_giv_inc): Handle increment with code PLUS. + +Sat Aug 30 10:49:46 1997 David Edelsohn + + * rs6000.md: Make DF fused-add operations pay attention to + -mno-fused-add. + +Fri Aug 29 19:19:54 1997 Jim Wilson + + * i386/xm-sysv4.h (DONT_DECLARE_SYS_SIGLIST): Define. + +Fri Aug 29 16:13:51 1997 Jeffrey A Law (law@cygnus.com) + + * pa.md (reload_peepholes): Make sure operand is a REG before + examining REGNO. Allow general registers too. + +Fri Aug 29 11:42:04 1997 Jim Wilson + + * varasm.c (mark_constants): Don't look inside CONST_DOUBLEs. + +Fri Aug 29 09:33:20 1997 Philipp Thomas (kthomas@lxi165.gwdg.de) + + * dwarf2out.c (build_abbrev_table): Use xrealloc, not xmalloc + to reallocate abbrev_die_table. + +Thu Aug 28 15:14:46 1997 Jim Wilson + + * m68k/m68k.md (iorsi_zexthi_ashl16): Disable. + +1997-08-27 Andreas Schwab + + * Makefile.in (config.status): Depend on version.c. + + * expr.h (insn_gen_function): Reenable prototype. + + * expr.c (move_by_pieces_1, clear_by_pieces_1): Fix prototype of + first parameter. + +Thu Aug 28 13:01:43 1997 Jim Wilson + + * i386.c (ix86_expand_epilogue): Emit blockage instruction when pic. + +Thu Aug 28 07:03:15 1997 Jeffrey A Law (law@cygnus.com) + + * version.c: Bump for latest snapshot. + + * bc-optab.c: Conditionally include stdlib.h. + (free): Provide a declaration if NEED_DECLARATION_FREE. + * tree.c (free): Provide a declaration if NEED_DECLARATION_FREE. + * rtl.h (free): Remove declaration. + * tree.h (free): Remvoe declaration. + + * configure: Rebuilt. + +Wed Aug 27 21:32:20 1997 Jeffrey A Law (law@cygnus.com) + + * flags.h (flag_move_all_movables): Declare. + (flag_reduce_all_givs): Likewise. + * loop.c (move_movables): Handle flag_move_all_movables. + (strength_reduce): Handle flag_reduce_all_givs. + * toplev.c (flag_move_all_movables): Define. + (flag_reduce_all_givs): Likewise. + (f_options): Add -fmove-all-movables and -freduce-all-givs. + * invoke.texi: Document new options, including alias stuff that + wasn't included last time. + +Wed Aug 27 18:08:51 1997 Bob Manson (manson@cygnus.com) + + * t-h8300: Use TARGET_LIBGCC2_CFLAGS instead of LIBGCC2_CFLAGS. + * t-mn10200: Likewise. + * t-vxsparc: Likewise. + * t-vxworks68: Likewise. + * t-vxworks960: Likewise. + * t-vx29k: Likewise. + +Wed Aug 27 16:35:29 1997 Richard Henderson + + * alpha/xm-alpha.h (alloca): Define alloca to builtin_alloca for GNUC + if not already defined, and USE_C_ALLOCA not defined. + +Wed Aug 27 16:08:43 1997 Jim Wilson + + * config.guess: Replace with script that uses ../config.guess. + + * config/alpha/elf.h (DEFAULT_VTABLE_THUNKS): New. Defined as 1 + if USE_GNULIBC_1 is not defined. + +Wed Aug 27 15:49:12 1997 Richard Henderson + + * alpha/elf.h (LINK_SPEC): Conditionalize on USE_GNULIBC_1. + * config.guess: Recognize alpha-linux-gnulibc1. + * configure.in (alpha-*-linux-gnulibc1): New target. + (alpha-*-linux-gnu*): Don't build crtbegin/end. + +Wed Aug 27 11:52:58 1997 Jim Wilson + + * m68k.md (iorsi3_internal): Readd ! TARGET_5200 check lost in + last change. + +Wed Aug 27 01:56:18 1997 Doug Evans + + * loop.c (combine_movables): Earlier insns don't match later ones. + +Wed Aug 27 01:24:25 1997 H.J. Lu (hjl@gnu.ai.mit.edu) + + * config/linux.h (CC1_SPEC): Define it only if not defined. + + * config/m68k/linux.h (CC1_SPEC): Undefine it before include + + + * config/linux.h (DEFAULT_VTABLE_THUNKS): New. Defined as 1 if + USE_GNULIBC_1 is not defined. + + * config/rs6000/linux.h (DEFAULT_VTABLE_THUNKS): New. Defined as 1. + + * config/sparc/linux.h (DEFAULT_VTABLE_THUNKS): New. Defined + as 1 if USE_GNULIBC_1 is not defined. + +Wed Aug 27 00:49:14 1997 Jeffrey A Law (law@cygnus.com) + + * reorg.c (dbr_schedule): Allow current_function_return_rtx + to be something other than a REG. + * function.c (expand_function_end): Fix current_function_return_rtx + if it was a pseudo. + + * t-freebsd (USER_H): Include EXTRA_HEADERS and LANG_EXTRA_HEADERS. + * x-netbsd: Likewise. + * x-dgux (USER_H): Include EXTRA_HEADERS and LANG_EXTRA_HEADERS. + (INSTALL_HEADERS): Delete. + * x-dguxbcs: Likewise. + * x-hp3bsd44: Likewise. + * x-pa: Likewise. + +Wed Aug 27 00:30:00 1997 Bernd Schmidt + + * i386.md (pop): pop increments the stack pointer. + (prologue_set_stack_ptr): New pattern. + * i386.c (ix86_expand_prologue): Use prologue_set_stack_ptr + instead of subsi3. + +Tue Aug 26 18:50:32 1997 Jim Wilson + + * reload.c (find_reloads, case '0'): Reject matching a non-offsettable + address where an offsettable address is required. + +Tue Aug 26 17:54:56 1997 Michael P. Hayes (michaelh@ongaonga.chch.cri.nz> + + * loop.c (check_final_value): Don't miss a biv increment in a + parallel. + +Tue Aug 26 12:03:49 1997 Jim Wilson (wilson@cygnus.com) + + * dwarfout.c (dwarfout_file_scope_decl, case TYPE_DECL): Check + TYPE_DECL_IS_STUB instead of DECL_NAME. + +Mon Aug 25 23:27:10 1997 H.J. Lu (hjl@gnu.ai.mit.edu) + + * objc/Make-lang.in ($(OBJC_O)): Also depend on cc1obj. + +Mon Aug 25 23:27:10 1997 Jim Meyering + + * objc/Make-lang.in ($(OBJC_O)): Also depend on $(GCC_PASSES). + +Mon Aug 25 13:12:24 1997 Jeffrey A Law (law@cygnus.com) + + * haifa-sched.c (find_pre_sched_live): Remove #if 0 code. + (find_post_sched_live): Likewise. + + * haifa-sched.c (schedule_block): Remove old code to get arguments + from hard regs into pseudos early. + +Mon Aug 25 08:55:00 1997 Jeffrey A Law (law@cygnus.com) + + * version.c: Bump for new snapshot. + + * local-alloc.c (update_equiv_regs): All the target to reject + promotion of some REG_EQUAL to REG_EQUIV notes. + * pa.h (DONT_RECORD_EQUIVALENCE): Define. + + * pa.c (secondary_reload_class): (mem (mem ... )) does not need + secondary reloads. + + * pa.c (hppa_builtin_saveregs): Emit a blockage insn after the + store of the argument registers. + +Mon Aug 25 08:39:02 1997 Craig Burley (burley@gnu.ai.mit.edu) + + * fold-const.c (multiple_of_p): New function. + (fold): Turn some cases of *_DIV_EXPR into EXACT_DIV_EXPR. + +Mon Aug 25 01:47:41 1997 Jeffrey A Law (law@cygnus.com) + + * expr.h (insn_gen_function): Temporarily remove prototype. + +Sun Aug 24 17:22:21 1997 Jim Wilson + + * Makefile.in (install-info): Don't cd into srcdir. Add srcdir to + filenames. Use sed to extract base filename for install. + +Sat Aug 23 18:19:40 1997 John F. Carr + + * unroll.c (find_splittable_givs): Only share if two givs have the + same add and multiply values. + +Sat Aug 23 14:36:27 1997 Jim Wilson + + * m68k/next.h (GO_IF_INDEXABLE_BASE): Fix typo in undef. + * m68k/m68kemb.h (LIB_SPEC): Add missing comment end before it. + +Sat Aug 23 00:18:22 1997 Jeffrey A Law (law@cygnus.com) + + * pa.c (pa_reorg): Always put begin_brtab and end_brtab insns + around branch tables. + * pa.md (begin_brtab, end_brtab): Only emit the .begin_brtab + and .end_brtab directives if TARGET_GAS. + +Fri Aug 22 14:05:55 1997 Jim Wilson + + * alias.c (true_dependence): Pass x_addr not x to varies. + + * acconfig.h (NEED_DECLARATION_CALLOC): Add. + * configure.in: Add GCC_NEED_DECLARATION call for calloc. + * rs6000/xm-rs6000.h (malloc, realloc, calloc, free): Delete + declarations. + * config.in, configure: Regenerate. + +Thu Aug 21 23:52:16 1997 John F. Carr + + * alias.c (find_base_value): Improve handling of PLUS, MINUS, and + LO_SUM. + (record_set): Handle LO_SUM like PLUS. + (init_alias_analysis): When following chains of base addresses, + do not stop on reaching a hard register. + +Thu Aug 21 20:17:37 1997 Jeffrey A Law (law@cygnus.com) + + * version.c: Bump for new snapshot. + +Thu Aug 21 17:28:00 1997 Jim Wilson + + * alpha.h (ARCH_ASM_FILE_START): Define. + (ASM_FILE_START): Use ARCH_ASM_FILE_START. + * osf12.h, osf2or3.h (ARCH_ASM_FILE_START): Redefine to null string. + +Thu Aug 21 10:22:19 1997 Jeffrey A Law (law@cygnus.com) + + * Makefile.in (install-common): Put gcov comment at start of line. + +Wed Aug 20 22:47:33 1997 Jeffrey A Law (law@cygnus.com) + + * alias.c (init_alias_analysis): When simplifying the reg_base_value + array, simplify entries for hard registers too. + +Wed Aug 20 12:35:47 1997 Dave Love + + * dwarf2.h (enum dwarf_call_frame_info): Remove trailing comma from + list. + +Wed Aug 20 11:58:33 1997 Jim Wilson + + * stmt.c (start_cleanup_deferral, end_cleanup_deferral): Test + block_stack before dereferencing it. + +Wed Aug 20 11:57:11 1997 Michael Meissner + + * rs6000.h (ISSUE_RATE): Define instead of MACHINE_issue_rate. + +Tue Aug 19 17:10:56 1997 Jason Merrill + + * cplus-dem.c: Add 'extern' to prepends_underscore. + +Tue Aug 19 09:34:57 1997 Jeffrey A Law (law@cygnus.com) + + * haifa-sched.c (ISSUE_RATE): Renamed from MACHINE_issue_rate. + (get_issue_rate): Delete. + * pa.h (ISSUE_RATE): Define. + + * configure.in: Turn on haifa by default for the PA. + * configure: Rebuilt. + * pa.c (override_options): Accept -mschedule=7200 option. + (pa_adjust_cost): No longer need to scale costs for newer + processors. + * pa.h (enum processor_type): Add PROCESSOR_7200. + * pa.md: Revamp scheduling parameters to work better with + haifa. Add scheduling parameters for the 7200. + + * haifa-sched.c (move_insn): Reemit notes for SCHED_GROUP_P + insns too. + (schedule_block): When adjusting basic_block_{head,end}, account + for movement of SCHED_GROUP_P insns too. + + * haifa-sched.c (debug_dependencies): Fix thinko. + + * Makefile.in (EXPECT, RUNTEST, RUNTESTFLAGS): Define. + (site.exp, check, check-g++, check-gcc): New targets. + + * haifa-sched.c: Make lots of variables static. + +Tue Aug 19 07:18:34 1997 H.J. Lu (hjl@gnu.ai.mit.edu) + + * expr.h, real.h: Finish prototyping. + +Mon Aug 18 21:49:02 1997 Jim Wilson + + * reload.c (find_reloads): Add code to convert RELOAD_FOR_OPADDR_ADDR + reloads to RELOAD_FOR_OPERAND_ADDRESS reloads. + * reload1.c: Undo bugfix from Aug 11. + +Mon Aug 18 17:39:02 1997 Mike Meissner + + * configure.in ({powerpc,rs6000}*-*-*, --with-cpu): Remove single + quotes around the name. + * configure: Regenerate. + +Mon Aug 18 13:46:47 1997 Jim Wilson + + * Makefile.in (stmp-multilib-sub): Fix typo in last change. + +Thu Aug 7 10:33:13 1997 Manfred Hollstein + + * Makefile.in (sub-makes): Pass the current value of LANGUAGES down + to sub-makes to avoid building more passes than the user might have + requested on the command line. + +Sun Aug 17 15:42:17 1997 Dave Love (d.love@dl.ac.uk) + + * configure.in: Expurgate `broken_install' (install is + autoconfed). + + * configure.lang: Substitute autoconfed ${INSTALL} (not currently + relevant). + +Sat Aug 16 01:08:12 1997 Jeffrey A Law (law@cygnus.com) + + * loop.c (is_power_of_2, is_conditional_branch): Delete unused + functions and declarations. + (analyze_loop_iterations): Use condjump_p. + (insert_bct): Likewise. Use exact_log2. + +Fri Aug 15 23:48:32 1997 Jeffrey A Law (law@cygnus.com) + + * haifa-sched.c (find_post_sched_live): Call FREE_REG_SET as needed. + (schedule_region): Likewise. + (schedule_insns): Likewise. + + * PROJECTS: Update with Haifa stuff. + +Fri Aug 15 12:49:56 1997 Jeffrey A Law (law@cygnus.com) + + * version.c: Change the version string to look like: + egcs-2.90.00 970814 (gcc2-970802 experimental). + + * loop.c (is_conditional_branch): Make definition match declaration. + + * gcc.c: Take out experimental snapshot warning message. + +Fri Aug 15 13:43:39 1997 Michael Meissner + + * haifa-sched.c (debug_dependencies): Use GET_NOTE_INSN_NAME to + print out the names of the notes. Print out the name of the insn + that is not a note, and not an {,CALL_,JUMP_}INSN. + +Wed Aug 13 17:32:38 1997 Jason Merrill + + * expr.c (expand_expr, case TARGET_EXPR): Call mark_addressable + again for the slot after we give it RTL. + +Wed Aug 13 01:03:37 1997 Doug Evans + + * configure.in (haifa configury): Fix typo. + * configure: Regenerate. + +Tue Aug 12 10:20:36 1997 Jeffrey A Law (law@cygnus.com) + + * version.c: Bump version to "gcc-3.0.0 970802 experimental". + + * gcc.info*: Rebuilt. + + * COPYING.g77, README.g77: New files. + * real.c (ereal_unto_float, ereal_unto_double): New functions. + * real.h (ereal_unto_float, ereal_unto_double): Declare them. + (REAL_VALUE_UNTO_TARGET_DOUBLE, REAL_VALUE_UNTO_TARGET_SINGLE): Define. + +Mon Aug 11 14:50:55 1997 Jeffrey A Law (law@cygnus.com) + + * Integrate Haifa instruction scheduler. + * Makefile.in (ALL_CFLAGS): Add SCHED_CFLAGS. Prefix all references + to sched with $(SCHED_CFLAGS. + * configure.in: Handle --enable-haifa. + * configure: Rebuilt. + * flags.h: Add new flags for haifa instruction scheduler. + * genattrtab.c (expand_units): For haifa, don't subtract one + when computing blockage. + * toplev.h (flag_schedule_interblock): Haifa scheduler flag. + (flag_schedule_speculative): Likewise. + (flag_schedule_speculative_load): Likewise. + (flag_schedule_speculative_load_dangerous): Likewise. + (flag_schedule_reverse_before_reload): Likewise. + (flag_schedule_reverse_after_reload): Likewise. + (flag_branch_on_count_reg): Likewise. + (f_options): Add Haifa switches. + (main): Turn off some Haifa options if appropriate macro is + defined. Process Haifa switches. + * unroll.c (iteration_info): No longer static, since Haifa + scheduler uses it. + (unroll_loop): Inform HAIFA scheduler about loop unrolling factor. + * unroll.c (unroll_loop): Set loop_unroll_iter, loop_start_value. + * loop.h (loop_unroll_factor, loop_number): Add HAIFA decls. + * loop.h (loop_initial_value,loop_unroll_iter): New globals. + * loop.c (loop_optimize): If HAIFA is defined, allocate additional + storage for the Haifa scheduler. + (mark_loop_jump): If HAIFA defined, set LABEL_OUTSIDE_LOOP_P and + LABEL_NEXTREF. + (strength_reduce): If HAIFA and HAVE_decrement_and_branch_on_count + are defined, call analyze_loop_iterations and insert_bct to use + countdown loops. + (record_giv): Refine test for jumps out of loops if HAIFA is + defined. + (analyze_loop_iterations): New function to identify if we can use + a countdown loop. + (insert_bct): Insert countdown loop. + (instrument_loop_bct): Low level code to insert countdown loop. + (loop_number): Calculate UID of loop. + (indirect_jump_in_function_p): Return true if an indirect jump is + in the function. + (is_power_of_2): Return true if value is a power of 2. + (is_conditional_branch): Return true if insn is a conditional + jump. + (fix_bct_param): Process -fbct-{min,max}-N switches. + (check_bct_param): Return true if loop should be instrumented. + * loop.c (loop_initial_value,loop_unroll_iter): New globals. + (loop_optimize): Initialize. + (get_condition_for_loop): Likewise. + * loop.c (strength_reduce): Inside of code that uses #ifdef + HAVE_decrement_and_branch_on_count code, test it to make sure the + condition is true. + (instrument_loop_bct): Likewise. + * haifa-sched.c: New file. + + * Integrate regmove pass. + * Makefile.in (OBJS): Add regmove.o. + (regmove.o): Add dependencies. + * flow.c (find_use_as_address): No longer static. + * rtl.h (find_use_as_address): Declare. + * toplev.c (regmove_dump, flag_regmove): Define. + (f_options): Add -fregmove. + (regmove_dump_file, regmove_time): Define. + (fatal_insn): Close the regmove dump file. + (compile_file): Initialize regmove_time; open/close the regmove dump + file as needed. Print regmove time as needed. + (rest_of_compilation): Run regmove pass if requested, dump + RTL after regmove if requested. + (main): If -O2 or more, turn on regmove. Handle dump switches. + * regmove.c: New file. + +Mon Aug 11 14:15:02 1997 Jeffrey A Law (law@cygnus.com) + + * Integrate tlink patch from jason@cygnus.com + * gcc.c (SWITCH_TAKES_ARG): Add 'V', 'B' and 'b'. + (process_command): Increment n_switches for them. Don't discard + their args. Validate them. + (main): Escape " marks when creating COLLECT_GCC_OPTIONS. + From Rohan Lenard. + (process_command): Set include_prefixes from COMPILER_PATH. + (main): Set COLLECT_GCC_OPTIONS sooner. + * confiugre.in: Link ../ld/ld.new to collect-ld rather than real-ld. + * tlink.c, hash.c, hash.h: New files. + * Makefile.in (USE_COLLECT2): Always use collect2. + (collect2): Depend on and link in hash.o and tlink.o. + (tlink.o, hash.o): Add dependencies. + +Mon Aug 11 10:04:49 1997 Jeffrey A Law (law@cygnus.com) + + * Integrate alias analysis changes from jfc@mit.edu + * Makefile.in (OBJS): Add alias.o. + (alias.o): Add dependencies. + * alias.c: New file. + * sched.c: Remove alias analysis code. It lives in alias.c now. + (sched_analyze_2): Add new arguments to true_dependence. + (schedule_insns): Always call init_alias_analysis. + * calls.c (expand_call): Note calls to malloc, calloc, and realloc; + mark return value from such functions as a pointer and keep track of + them for alias analysis. If a return value from a function is a + pointer, mark it as such. + * combine.c (distribute_notes): Handle REG_NOALIAS. + * cse.c (struct write_data): Delete. No longer needed. + (invalidate): Don't call set_nonvarying_address_components anymore. + Use true_dependence to decide if an entry should be removed from + the hash table. + (invalidate_memory): Remove WRITES argument, simplify appropriately. + Fix all callers. + (note_mem_written): Similarly for WRITE_PTR argument. + (invalidate_from_clobbers): Similarly for W argument. + (invalidate_for_call): Remove memory elements from the hash table. + (refers_to_mem_p, cse_rtx_addr_varies_p): Deleted. + (cse_rtx_varies_p): New function. Derived from old + cse_rtx_addr_varies_p. + (cse_insn): Remove WRITES_MEMORY and INIT variables and all references. + Don't call note_mem_written anymore. Stack pushes invalidate the stack + pointer if PUSH_ROUNDING is defined. No longer need to call + cse_rtx_addr_varies_p to decide if a MEM should be invalidated. + (skipped_writes_memory): Remove variable. + (invalidate_skipped_set): Simplify and wewrite to use invalidate_memory. + (invalidate_skipped_block): Simplify for new alias analysis code. + (cse_set_around_loop): Likewise. + (cse_main): Call init_alias_analysis. + * flags.h (flag_alias_check, flag_argument_noalias): Declare. + * toplev.c (flag_alias_check, flag_argument_noalias): Define. + (f_options): Add new alias checking arguments. + (main): Set flag_alias_check when optimizing. + * local_alloc (validate_equiv_mem_from_store): Add new arguments + to true_dependence. + (memref_referenced_p): Likewise. + * loop.c (NUM_STORES): Increase to 30. + (prescan_loop): Only non-constant calls set unknown_address_altered. + (invariant_p): Add new arguments to true_dependence. + (record_giv): Initialize unrolled and shared fields. + (emit_iv_add_mult): Call record_base_value as needed. + * loop.h (struct induction): Add unrolled and shared fields. + * unroll.c (unroll_loop): Call record_base_value as needed. + (copy_loop_body): Likewise. + (final_biv_value): Likewise. + (final_giv_value): Likewise. + (find_splittable_regs): Likewise. Only create one new pseudo + if we have multiple address GIVs that were combined with the same + dst_reg GIV. Note when a new register is created due to unrolling. + * rtl.c (reg_note_name): Add REG_NOALIAS. + * rtl.h (enum reg_note): Similarly. + (rtx_varies_p, may_trap_p, side_effects_p): Declare. + (volatile_refs_p, volatile_insn_p, remove_note): Likewise. + (note_stores, refers_to_regno_p, reg_overlap_mentioned_p): Likewise. + (true_dependence, read_dependence, anti_dependence): Likewise. + (output_dependence, init_alias_analysis, end_alias_analysis): Likewise. + (mark_user_reg, mark_reg_pointer): Likewise. + + * Integrate reload bugfix from Wilon which enables the PA port + to bootstrap again. + * reload1.c (reload): Sum needs for both OPADDR_ADDR and + OPERAND_ADDRESS when computing how many registers an insn needs. + (reload_reg_free_p): OPADDR_ADDR and OPERAND_ADDRESS reloads do + conflict. + (reload_reg_free_before_p): Treat OPERAND_ADDRESS reloads just like + OPADDR_ADDR reload. + (reload_reg_reaches_end_p): For RELOAD_FOR_OPADDR_ADDR insns, registers + in reload_reg_use_in_op_addr do not reach the end. + do not reach the end. + (reloads_conflict): RELOAD_FOR_OPADDR_ADDR conflicts with + RELOAD_FOR_OPERAND_ADDRESS. + +Sun Aug 10 12:00:20 1997 Jeffrey A Law (law@cygnus.com) + + * egcs project officially starts. diff --git a/gcc/ChangeLog.1 b/gcc/ChangeLog-1998 similarity index 52% rename from gcc/ChangeLog.1 rename to gcc/ChangeLog-1998 index b99a93754a3a..bd2f722d1b00 100644 --- a/gcc/ChangeLog.1 +++ b/gcc/ChangeLog-1998 @@ -1,15903 +1,17616 @@ -Tue May 18 03:53:37 1999 Craig Burley - - Improve open-coding of complex divide: - * flags.h: Declare new front-end-malleable flag. - * toplev.c: Define new flag. - * optabs.c (expand_cmplxdiv_straight): New function to do original - open-coding. - (expand_cmplxdiv_wide): New function to do new open-coding, - from Toon Moene, with changes (call to emit_barrier, dropping - of spurious `ok = 1;', plus the obvious `break;' -> `return 0;'). - (expand_binop): A bit of spacing fixing, while at it. - Use new functions instead of inlining the open-coding code. - -Tue May 18 00:51:46 1999 Krister Walfridsson - - * configure.in (arm*-*-netbsd*): Use collect2. - (i[34567]86-*-netbsd*): Likewise. - (m68k*-*-netbsd*): Likewise. - (ns32k-*-netbsd*): Likewise. - (sparc-*-netbsd*): Likewise. - (vax-*-netbsd*): Likewise. - * configure: Rebuilt. - -Tue May 18 00:21:34 1999 Zack Weinberg - - * cppspec.c: Insert -no-gcc into command line unless -gcc was - given by user. - * gcc.c (default_compilers): Define __GNUC__ and - __GNUC_MINOR__ only if -no-gcc was not given. - * objc/lang-specs.h: Likewise. - * cpp.texi: Document -x and -std options; explain that -lang - is no longer supported. Minor related corrections. - -Mon May 17 23:56:39 1999 Alexandre Oliva - - * Makefile.in (stmp-fixproto): Pass location of mkinstalldirs to - fixproto. - * fixproto: Avoid unportable constructs such as `basename' and - `mkdir -p'. Use mkinstalldirs from the environment if `mkdir -p' - fails. - - * fixinc/fixincl.c: Remove #error, it is not portable. - -Mon May 17 23:50:41 1999 Marc Espie - - * collect2.c (main): Fix typo in COLLECT2_HOST_INITIALIZATION. +Wed Dec 30 23:38:55 1998 Jeffrey A Law (law@cygnus.com) -Mon May 17 19:45:41 1999 Rainer Orth + * m68k.md (adddi_dilshr32): Allow all operands to be registers too. + (adddi_dishl32): Similarly. - * fixinc/fixincl.c (process): Wait for children from chain_open() - to avoid creating zombies. + * cse.c (invalidate_skipped_block): Call invalidate_from_clobbers + for each insn in the skipped block. - * fixinc/inclhack.tpl: Removed no-op pipe. + * reload1.c (reload_as_needed): Verify that the insn satisfies its + constraints after replacing a register address with an autoincrement + address for reload inheritance purposes. - * fixinc/inclhack.sh fixinc/fixincl.sh: regenerate + * i386.md (doubleword shifts): Avoid namespace pollution. -Mon May 17 07:23:34 1999 Mark Mitchell +Wed Dec 30 23:00:28 1998 David O'Brien - * tree.def (TYPE_NONCOPIED_PARTS): Revise documentation to match - reality. - * expr.c (init_noncopied_parts): Don't generate initializers for - parts that don't need them. + * configure.in (FreeBSD ELF): Needs special crt files. -Mon May 17 02:56:35 PDT 1999 Jeff Law (law@cygnus.com) +Wed Dec 30 22:50:13 1998 Geoffrey Noer - * version.c: Bump for snapshot. + * i386/xm-cygwin.h: Change DIR_SEPARATOR to forward slash. -Sat Oct 31 05:08:34 CET 1998 Jan Hubicka (hubicka@freesoft.cz) +1998-12-30 Andreas Schwab - * reg-stack.c: Do not emit pop insns after cc0 setter. - (emit_pop_insn): Do not emit insn in case WHEN is NULL. - (compare_for_stack_reg): Update REG_DEAD note and - do not emit push insn. + * loop.c (check_dbra_loop): While reversing the loop, if the + comparison value has a VOID mode use the mode of the other operand + to compute the mask. - * i386.c: (output_float_compare): Handle new REG_DEAD notes. +Wed Dec 30 22:24:00 1998 Michael Meissner -Mon May 17 01:57:37 1999 David Daney + * rs6000.md ({save,restore}_stack_function): Take 2 operands to + avoid warnings in compiling explow.c. - * i386/sol2.h (LINK_SPEC): Do not pass "-z text" to the linker - if -mimpure-text. + (patch from Ken Raeburn, raeburn@cygnus.com) + * rs6000.c (rs6000_stack_info): Force 8-byte alignment of + fpmem_offset. Compute total size after that, and then + rs6000_fpmem_offset using both values. -1999-05-17 Andreas Schwab +Mon Dec 28 19:26:32 1998 Gerald Pfeifer - * m68k.c (standard_68881_constant_p): Don't accept -0.0 as valid - 68881 constant. + * gcc.texi (Non-bugs): ``Empty'' loops will be optimized away in + the future; indeed that already happens in some cases. - * fold-const.c (fold_truthop): When converting a one-bit - comparison don't sign extend the constant. +Tue Dec 29 11:58:53 1998 Richard Henderson - * cse.c (cse_insn): Copy SRC_CONST before putting it in the - REG_EQUAL note. + * sparc.c (input_operand): Recognize (const (constant_p_rtx)). + (arith_operand): Remove constant_p_rtx handling. + (const64_operand, const64_high_operand): Likewise. + (arith11_operand, arith10_operand, arith_double_operand): Likewise. + (arith11_double_operand, arith10_double_operand, small_int): Likewise. + (small_int_or_double, uns_small_int, zero_operand): Likewise. + * sparc.h (PREDICATE_CODES): Likewise. -1999-05-17 Mike Stump + * rtl.h (CONSTANT_P): Remove CONSTANT_P_RTX. - * rs6000/vxppc.h (CPP_SPEC): Fix support for vararg functions. +Tue Dec 29 11:32:54 1998 Richard Kenner -Sat May 15 14:22:40 1999 Jeffrey A Law (law@cygnus.com) + * rtl.def (CONSTANT_P_RTX): Clarify commentary. + * expr.c (expand_builtin, case BUILT_IN_CONSTANT_P): Rework to + consider constant CONSTRUCTOR constant and to defer some cases + to cse. + * cse.c (fold_rtx, case CONST): Add handling for CONSTANT_P_RTX. + * regclass.c (reg_scan_mark_refs, case CONST): Likewise. - * fixinc/hackshell.tpl: Fix mis-applied patch. - * fixinc/inclhack.sh: Regenerated. +Tue Dec 29 11:30:10 1998 Richard Henderson -Thu May 13 21:05:55 1999 Mark Kettenis + * expr.c (init_expr_once): Kill can_handle_constant_p recognition. + * cse.c (fold_rtx, case 'x'): Remove standalone CONSTANT_P_RTX code. - * fixinc/mkfixinc.sh: Add the Hurd (*-*-gnu*) to the list of - targets that do not need any fixes. + * alpha.c (reg_or_6bit_operand): Remove CONSTANT_P_RTX handling. + (reg_or_8bit_operand, cint8_operand, add_operand): Likewise. + (sext_add_operand, and_operand, or_operand): Likewise. + (reg_or_cint_operand, some_operand, input_operand): Likewise. + * alpha.h (PREDICATE_CODES): Likewise. -Sat May 15 14:12:38 1999 Michael Hayes +Sat Dec 26 23:26:26 1998 Jeff Law (law@cygnus.com) - * config/c4x/c4x.md (set_lo_sum+2): New splitter to load large - const_ints. + * version.c: Bump for snapshot. -Sat May 15 14:09:08 1999 Michael Hayes +Sat Dec 26 09:17:04 1998 Jeffrey A Law (law@cygnus.com) - * config/c4x/c4x.md (decrement_and_branch_on_count): Disabled. - (doloop_begin, doloop_end): New patterns. - (*rptb_init): Added extra operands. + * gengenrtl.c (gencode): Always use bzero to clear memory instead + of dangerous casts and stores. -Fri May 14 21:31:36 1999 Michael Hayes + * Makefile.in (compare, gnucompare): Add missing else true clauses. - * config/c4x/c4x.md (*umulqi3_highpart_clobber): Fix operand 2 - constraints order. +Fri Dec 25 23:00:56 1998 Jeffrey A Law (law@cygnus.com) -1999-05-14 Ulrich Drepper + * alpha.md (builtin_longjmp): Add missing "DONE". - * fixinc/fixinc.x86-linux-gnu (FD_ZERO): Fix operand numbers in - asm input operands. +Thu Dec 24 10:39:57 1998 Stan Cox -Thu May 13 15:34:18 1999 David Edelsohn + * gcc.c (execute): Enable -pipe with win32. - * rs6000.c (mask_constant): Delete. - (mask_operand): Move mask_constant() body to here. - * rs6000.h (mask_constant): Delete declaration. - * rs6000.md (nabsdi2): Reverse subtraction in splitter. +Wed Dec 23 10:27:44 1998 Nick Clifton -Thu May 13 02:25:01 1999 Jeffrey A Law (law@cygnus.com) + * config/arm/t-arm-elf: Add multiplib option for leading + underscores. - * cpp.texi: Fix some typos. + * config/arm/thumb.h (ASM_OUTPUT_LABELREF): Use variable + 'user_label_prefix' rather than macro USER_LABEL_PREFIX. -Thu May 13 01:49:55 1999 Graham Stott + (thumb_shiftable_const): Use macro 'BASE_REG_CLASS' rather + than variable 'reload_address_base_reg_class'. [Note this + change is unrelated to the others in this patch]. - * loop.c (maybe_eliminate_biv): Check regno against - max_reg_before_loop. + * config/arm/unknown-elf.h (USER_LABEL_PREFIX): Default to no + leading underscore. - * i386.c (memory_address_info): Correct the scale - factor test. +Wed Dec 23 09:51:32 1998 Kaveh R. Ghazi -Thu May 13 01:31:19 1999 Nick Burrett + * alias.c (record_alias_subset): Remove ignored `&'. + (init_alias_once): Likewise. - * arm.md (nop): Backout Apr 27 change. Ensure REGISTER_PREFIX is - applied to each register. - * aof.h (ASM_FILE_START): Define register `r0'. + * c-lex.c (UNGETC): Cast first argument of comma expression to void. -1999-05-12 20:22 -0400 Zack Weinberg + * config/mips/mips.c (mips_asm_file_end): Cast the result of + fwrite to `int' when comparing against one. - * configure.in: Make --enable-cpp and --with-cpp-install-dir - documented options. Enable the cpp driver by default. - * configure: Rebuilt. + * config/mips/mips.h (CAN_ELIMINATE): Add parens around && within ||. + (INITIAL_ELIMINATION_OFFSET): Add braces to avoid ambiguous `else'. -Wed May 12 18:08:48 1999 David Edelsohn - Richard Henderson + * cse.c (rehash_using_reg): Change type of variable `i' to + unsigned int. - * rs6000.c (print_operand) [w]: Calculate signed constant more clearly. - (rs6000_allocate_stack_space): Print as hexadecimal value. - * rs6000.h (CONST_OK_FOR_LETTER_P): 'L' checks for a signed, - 16-bit shifted constant. Fix typo for 'P'. - (EXTRA_CONSTARINT): 'T' checks for a 32-bit mask operand. - * rs6000.md (movsi, addsi3_internal1, movdi, adddi3_internal1): - Use 'L' for shifted constant. - (anddi3_internal3): Fix typo. - (32-bit mask patterns): Use 'T'. + * dwarf2out.c (initial_return_save): Cast -1 to unsigned before + assigning it to one. -Wed May 12 07:30:31 1999 Bruce Korb + * except.c (duplicate_eh_handlers): Remove unused variable `tmp'. - * fixinc/fixincl.c(quoted_file_exists): new procedure to ensure that - a file exists before trying to copy it into the destination - (extract_quoted_files): use that routine. + * final.c (final_scan_insn): Likewise for variable `i'. + (output_asm_insn): Cast a char to unsigned char when used as an + array index. -Wed May 12 07:27:31 1999 Craig Burley + * gcse.c (compute_pre_ppinout): Cast -1 to SBITMAP_ELT_TYPE when + assigning it to one. - Allow front end (like g77's) to override maintenance of errno: - * expr.c (expand_builtin): Bother with errno only if - flag_errno_math. - * flags.h: Declare flag_errno_math. - * toplev.c: Define flag_errno_math. + * loop.c (strength_reduce): Remove unused variables `count' and `temp'. -Tue May 11 23:55:49 1999 Jeffrey A Law (law@cygnus.com) + * recog.c (preprocess_constraints): Cast a char to unsigned char + when used as an array index. - * fixproto: Change "mkdir" calls to "mkdir -p" + * regmove.c (find_matches): Likewise. - * fixinc/inclhack.def (io_def_quotes): Consistently allow multiple - whitespace characters between the "define" and the name of the macro. - * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuilt. + * reload1.c (calculate_needs): Add default case in switch. + (eliminate_regs_in_insn): Initialize variable `offset'. + (set_offsets_for_label): Change type of variable `i' to unsigned. + (reload_as_needed): Wrap variable `i' in macro check on + AUTO_INC_DEC || INSN_CLOBBERS_REGNO_P. -Tue May 11 20:46:37 1999 Richard Henderson + * scan-decls.c (scan_decls): Mark parameters `argc' and `argv' + with ATTRIBUTE_UNUSED. Cast variable `start_written' to size_t + when comparing against one. - * alpha.c (alpha_expand_block_move): Handle TImode registers - used with ADDRESSOF. - (alpha_expand_block_clear): Handle ADDRESSOF specially. + * stor-layout.c (layout_decl): Cast maximum_field_alignment to + unsigned when comparing against one. Likewise for + GET_MODE_ALIGNMENT(). + (layout_record): Cast record_align to int when comparing against a + signed value. + (layout_type): Cast TYPE_ALIGN() to int when comparing against a + signed value. -1999-05-11 Ulrich Drepper + * tree.c (get_identifier): Cast variable `len' to unsigned when + comparing against one. + (maybe_get_identifier): Likewise - * fixinc/fixinc.x86-linux-gnu (FD_ZERO): Remove unneccessary - memory output operand which irritates gcc. +Wed Dec 23 00:10:01 1998 Jeffrey A Law (law@cygnus.com) -Tue May 11 11:45:16 1999 Dave Brolley + * toplev.c (rest_of_compilation): Do not set reload_completed. + * reload1.c (reload): Set reload_completed before calling + cleanup_subreg_operands. - * toplev.c (documented_lang_options): Add -MD, -MMD, -M and -MM for - cpplib-enabled compilers. +Tue Dec 22 23:58:31 1998 Richard Henderson -Tue May 11 11:34:56 1999 Vladimir Makarov + * reload1.c (emit_reload_insns): Check `set' not null before use. - * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Add parentheses - around &&. +Tue Dec 22 15:15:45 1998 Nick Clifton -Mon May 10 13:51:24 1999 Nick Clifton + * rtlanal.c (multiple_sets): Change type of 'found' from 'rtx' to + 'int'. - * tm.texi (FUNCTION_ARG): Stack element of PARALLEL must come - first. +Tue Dec 22 13:55:44 1998 Theodore Papadopoulo -Tue May 11 01:32:01 1999 Jeffrey A Law (law@cygnus.com) + * halfpic.c (half_pic_encode): Delete redundant code. - * fixinc/inclhack.def (sun_auth_proto): Apply to all targets. - (sysz_stdlib_for_sun): Similarly. - * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuilt. +Tue Dec 22 13:02:22 1998 Michael Meissner -Mon May 10 20:34:10 1999 Jim Wilson + * toplev.c (main): Delete handling of -dM as a preprocessor + option. - * config/mips/elf.h (UNIQUE_SECTION_P): Undef. - * config/mips/elf64.h (UNIQUE_SECTION_P): Undef. - * config/mips/mips.h (UNIQUE_SECTION_P): Define to 0. +Mon Dec 21 17:39:38 1998 Michael Meissner -1999-05-10 18:21 -0400 Zack Weinberg + * toplev.c (main): Don't emit any warnings when using -dD, -dM, or + -dI, which are handled by the preprocessor. - * cppfiles.c (initialize_input_buffer): New function. - (finclude): Call it, if pfile->input_buffer is NULL. Accept - any character device as an input file. - (read_and_prescan): Use pfile->input_buffer and - pfile->input_speccase. - * cppinit.c (cpp_cleanup): Free pfile->input_buffer and - pfile->input_speccase. - * cpplib.h (cpp_reader): Add input_buffer, input_speccase, and - input_buffer_len members. Use memcpy in CPP_PUTS_Q. +Sun Dec 20 16:13:44 1998 John F. Carr - * cppmain.c: Buffer output in the token_buffer; throttle - number of calls to fwrite; check for errors from fwrite. + * configure.in: Handle Digital UNIX 5.x the same as 4.x. + * i386/sol2.h: Define LOCAL_LABEL_PREFIX as ".". -1999-05-10 18:21 -0400 Zack Weinberg +Sun Dec 20 07:39:52 1998 Jeff Law (law@cygnus.com) - * cppspec.c: Treat two non-option arguments as input and - output file. Three or more non-option args is an error. - Clean up. - * gcc.c (default_compilers): Pass -$ to the preprocessor. - * objc/lang-specs.h: Likewise. + * version.c: Bump for snapshot. -Mon May 10 12:59:20 1999 Jeffrey A Law (law@cygnus.com) +Sat Dec 19 22:24:22 1998 Jeff Law (law@cygnus.com) - * optabs.c (emit_cmp_and_jump_insns): Handle the case where both - operands to the comparison are constants. + * version.c: Bump for snapshot. -Mon May 10 07:28:10 1999 Bruce Korb +Sat Dec 19 21:41:32 1998 Jeff Law (law@cygnus.com) - * fixinc/inclhack.def(arm_norcroft_hint): check before fixing - (no_double_slash): portability - (math_exception): added reminder comment + * version.c: Bump for snapshot. -Mon May 10 01:28:10 1999 Craig Burley +Sat Dec 19 09:52:27 1998 Kaveh R. Ghazi - From Fri May 7 9:31:41 1999 Donn Terry (donn@interix.com): - * varasm.c (mark_constant_pool): Add some transitive closure. + * genattr.c (fatal): Qualify a char* with the `const' keyword. -Sun May 9 22:51:04 1999 Craig Burley + * genattrtab.c (fatal, attr_printf, attr_string, write_attr_set, + write_unit_name, write_eligible_delay, expand_units, + make_length_attrs, write_attr_case, find_attr, + make_internal_attr): Likewise. + * gencheck.c (tree_codes): Likewise. + * gencodes.c (fatal): Likewise. + * genconfig.c (fatal): Likewise. + * genemit.c (fatal): Likewise. + * genextract.c (fatal, walk_rtx, copystr): Likewise. + * genflags.c (fatal): Likewise. + * genopinit.c (fatal, optabs, gen_insn): Likewise. + * genoutput.c (fatal, error, predicates): Likewise. + * genpeep.c (fatal): Likewise. + * genrecog.c (fatal, decision, pred_table, add_to_sequence, + write_tree_1, write_tree, change_state, copystr, indents): Likewise. - Fix gcc.dg/990506-0.c: - * c-typeck.c (require_complete_type): Handle ERROR_MARK input. +Thu Dec 17 18:21:49 1998 Rainer Orth -Sun May 9 13:19:12 1999 Jeffrey A Law (law@cygnus.com) + * configure.in (with-fast-fixincludes): Fix whitespace. + * configure: Rebuilt. - * gcse.c (cprop_insn): Do not try to simplify a simple jump. + * fixincludes (c_asm.h): Wrap Digital UNIX V4.0B DEC C specific + asm() etc. function declarations in __DECC. -Sun May 9 11:12:19 1999 Philip Blundell +Thu Dec 17 13:57:23 1998 Nick Clifton - * config/arm/arm.h (ASM_OUTPUT_MI_THUNK): Add (PLT) to branch if - necessary. Reported by jim@federated.com. + * expr.c (emit_move_insn_1): Only emit a clobber if the target + is a pseudo register. -Sat May 8 23:05:35 1999 Jeffrey A Law (law@cygnus.com) +Thu Dec 17 13:50:29 1998 Nick Clifton - * pa.h (PRINT_OPERAND_ADDRESS): Output "%r0", not "r0" for the - base register in an absolute memory address. - * pa.md (conditional moves): Avoid using immediate zero for - register zero. + * gcse.c: Include expr.h in order to get the prototype for + get_condition() which is used in delete_null_pointer_checks(). -Sat May 8 06:23:21 1999 Philip Blundell +Thu Dec 17 15:58:26 1998 Kaveh R. Ghazi - Based on patch by Scott Bambrough: - * config/arm/arm.h (NEED_PLT_GOT): New macro. Set to 0 if not - already defined. - * config/arm/elf.h (NEED_PLT_GOT): Define to flag_pic. - * config/arm/arm.md (call_symbol, call_value_symbol et al.): If - NEED_PLT_GOT is true, add explicit "(PLT)" to generated branches. - * config/arm/arm.c (output_func_epilogue, - output_return_instruction): Likewise for calls to abort. + * hwint.h: New file to consolidate HOST_WIDE_INT (etc) macros. -Sat May 8 01:57:58 1999 Donn Terry (donn@interix.com) +Thu Dec 17 12:31:12 1998 Jim Wilson - * calls.c (rtx_for_function_call): Extend function pointer being - passed to chkr_check_exec_libfunc, if needed. + * Makefile.in (INTERNAL_CFLAGS): Add SCHED_CFLAGS. + (ALL_CFLAGS): Delete SCHED_CFLAGS. -Sat May 8 01:51:50 1999 David Edelsohn +1998-12-17 Vladimir N. Makarov - * ginclude/stdarg.h (__va_rounded_size): Use long type for - rounding on AIX. - * ginclude/varargs.h: Likewise. + * config/i60/i960.md (extendqihi2): Fix typo (usage ',' instead of + ';'). -Sat May 8 01:47:20 1999 Andreas Schwab +1998-12-17 Michael Tiemann - * invoke.texi: Remove duplicates in the description of -d - letters. Fix use of @item vs. @itemx. + * i960.md (extend*, zero_extend*): Don't generate rtl that looks + like (subreg:SI (reg:SI N) 0), because it's wrong, and it hides + optimizations from the combiner. -Sat May 8 01:43:02 1999 Franz Sirl +Thu Dec 17 08:27:03 1998 J"orn Rennecke - * rs6000.h (RS6000_VARARGS_OFFSET): Die die die. - (CUMULATIVE_ARGS): Remove varargs_offset; update commentary. - * rs6000.c (setup_incoming_varargs): Fix typo last change. - (init_cumulative_args): Remove varargs_offset references. + * loop.c (combine_givs_used_by_other): Don't depend on n_times_set. - * rs6000/linux.h (NO_IMPLICIT_EXTERN_C): Define. - (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Undefine. +Wed Dec 16 17:30:35 1998 Nick Clifton -Sat May 8 01:34:19 1999 Andreas Schwab + * toplev.c (main): Disable optimize_size if a specific + optimization level is requested. Always set optimization + level to 2 if -Os is specified. - * reload1.c (gen_mode_int): New function. - (reload_cse_move2add): Use it to generate the new constants. +Wed Dec 16 16:33:04 1998 Dave Brolley -Sat May 8 01:25:09 1999 Andreas Schwab + * objc/lang-specs.h: Pass -MD, -MMD and -MG to cc1obj if configured with + cpplib. + * cpplib.c (cpp_start_read): If in_fname is not initialized, try to + initialize it using fname. - * varasm.c (output_constant): Do nothing if -fsyntax-only. +1998-12-16 Zack Weinberg -Fri May 7 19:10:15 1999 Vladimir Makarov + * cpplib.c (do_include): Treat #include_next in the + primary source file as #include plus warning. Treat + #include_next in a file included by absolute path as an + error. fp == CPP_NULL_BUFFER is a fatal inconsistency. - * sparc.h (GO_IF_LEGITIMATE_ADDRESS): Prohibit REG+REG addressing - for TFmode when there are no instructions which accept REG+REG - instructions. +Wed Dec 16 12:28:54 1998 Kaveh R. Ghazi -Fri May 7 12:38:54 1999 Jim Wilson + * cccp.c: Don't define MIN/MAX anymore. + * cpplib.c: Likewise. + * machmode.h: Likewise. + * system.h: Provide definitions for MIN/MAX. - * mips/elf64.h (MAKE_DECL_ONE_ONLY, UNIQUE_SECTION_P): Define. - * mips/mips.c (mips_select_rtx_section): When TARGET_MIPS16, use - function_section instead of text_section. - * mips/mips.h (ENCODE_SECTION_INFO): Add check for UNIQUE_SECTION_P - in TARGET_MIPS16 STRING_CST handling. +Tue Dec 15 23:47:42 1998 Zack Weinberg -Fri May 7 09:54:11 1999 Nick Clifton + * fix-header.c: Don't define xstrdup here. - Patch from: Nick Burrett +Wed Dec 16 05:11:04 1998 J"orn Rennecke - * arm.c (arm_poke_function_name): New function to implement - -mpoke-function-name. - * aof.h (ASM_DECLARE_FUNCTION_NAME): Call it. - * aout.h (ASM_DECLARE_FUNCTION_NAME): Likewise. - * elf.h (ASM_DECLARE_FUNCTION_NAME): Likewise. - * arm.h: Prototype it. - (TARGET_SWITCHES): Add `no-poke-function-name'. + * loop.c (consec_sets_giv): New argument last_consec_insn. + (strength_reduce): Provide / use it. -Fri May 7 14:19:31 1999 Rainer Orth +Wed Dec 16 17:24:07 1998 Michael Hayes - * fixinc/server.c (load_data): Cast text_size to long, adapt - format. - * fixinc/server.c (read_pipe_timeout): Declare volatile, modified - in signal handler. - (sig_handler): Add debug code. - * fixinc/server.c (run_shell): Don't \-escape cd, it breaks the - Ultrix V4.3 /bin/sh. - * fixinc/server.c (def_args): Use static instead of STATIC to - avoid redefinition error from linker iff DEBUG. + * loop.h (loop_info): New field 'vtop'. + * loop.c (check_dbra_loop): Use loop_info->vtop rather than + scanning loop for vtop. + * unroll.c (subtract_reg_term, find_common_reg_term): New functions. + (loop_iterations): Use them to determine if loop has a constant + number of iterations. Set loop_info->vtop. Don't subtract + common reg term from initial_value and final_value if have a + do-while loop. - * fixinc/hackshell.tpl: Don't strip trailing directory from - DESTDIR - that is already done +Tue Dec 15 13:49:55 1998 Jeffrey A Law (law@cygnus.com) - * fixinc/fixincl.c (run_compiles): fix memory leak + * mn10200.md (addsi3 expander): Use "nonmemory_operand" for operand 2. -Thu May 6 20:34:00 1999 Mark Mitchell + * mn10300.md (bset, bclr): Operand 0 is a read/write operand. - * resource.c (mark_referenced_resources): Make volatil - monotonically increasing. - (mark_set_resources): Likewise. + * mn10200.md (abssf2, negsf2): New expanders. -Thu May 6 20:02:33 1999 Fred Fish + * mn10300.md (absdf2, abssf2, negdf2, negsf2): New expanders. - * rs6000/xm-beos.h (HAVE_VPRINTF): Don't redefine if already defined. - (HAVE_PUTENV, HAVE_ATEXIT, HAVE_RENAME): Likewise. +Tue Dec 15 11:55:30 1998 Nick Clifton -Wed May 5 20:28:32 1999 Jason Merrill + * integrate.c (copy_rtx_and_substitute): If a SUBREG is + replaced by a CONCAT whose components do not have the same + mode as the original SUBREG, use a new SUBREG to restore the + mode. - * install.texi (Header Dirs): s/GPLUS/GPLUSPLUS/. + * emit-rtl.c (subreg_realpart_p): Cope with subregs containing + multiword complex values. -Wed May 5 23:44:15 1999 J"orn Rennecke +1998-12-15 Zack Weinberg - * unroll.c (copy_loop_body): Don't copy VTOP notes from copy_notes_from. + * cppalloc.c: Add xstrdup here. + * cpplib.h: Remove savestring prototype. + * cpplib.c: Remove savestring function. s/savestring/xstrdup/ + throughout. + * cppfiles.c: s/savestring/xstrdup/ throughout. -Wed May 5 16:26:13 1999 Vladimir Makarov +1998-12-15 Zack Weinberg - * function.c (purge_addressof_replacements): Rename into - purge_bitfield_addressof_replacements. - (purge_addressof_replacements): New variable. - (purge_addressof_1): Add code for changing addressof in notes for - field values which are extracted by usage MEM with narrower mode. - (purge_addressof): Initialize purge_bitfield_addressof_replacements. - -Wed May 5 07:40:02 1999 Nick Clifton - - Patch from: Nick Burrett - * config/arm/arm.h (ARM_MCOUNT_NAME): Define. - (FUNCTION_PROFILER): Remove assembler dialect dependency and use - ARM_MCOUNT_NAME. - (TRAMPOLINE_TEMPLATE): Remove assembler dialect dependency. - - * config/arm/aof.h (ARM_MCOUNT_NAME): Define. - -1999-05-05 09:58 -0400 Zack Weinberg - - * gcc.c (default_compilers): Fix brace nesting bug. - * objc/lang-specs.h: Use %i, not %g.mi, for the input file - when processing an .mi file. - -Tue May 4 13:17:55 1999 Mark Mitchell - - * resource.c (mark_set_resources): Handle UNSPEC_VOLATILE, - ASM_INPUT, TRAP_IF, and ASM_OPERANDS just like in - mark_referenced_resources. - -Mon May 3 22:38:41 1999 David Edelsohn - - * rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Change non-PowerPC - and AIX64 combination to warning. Add warning for disabling - PowerPC64 support when using 64-bit mode. - (LIB_SPEC): Do not link with libg.a in 64-bit mode. - (LINK_SPEC): Do not export libg.exp symbols in 64-bit mode. - * rs6000/rs6000.h (MY_ISCOFF): Treat import/export files as valid - XCOFF files. - (read_only_data_section, private_data_section, - read_only_private_data_section): Always align CSECTs to doubleword - boundary regardless of mode. - (TEXT_SECTION_ASM_OP): Align text CSECT on doubleword boundary in - 64-bit mode. - (DATA_SECTION_ASM_OP): Always align CSECT to doubleword boundary. - (ASM_OUTPUT_LOCAL): Use rounded size in 64-bit mode to - maintain doublword alignment. - -Mon May 3 14:45:23 1999 Jeffrey A Law (law@cygnus.com) - - * mn10200.md (btst insns): btst does not leave cc0 in a usable - state for redundant tst eliminatino. - * mn10300.md (btst insns): Likewise. - -Mon May 3 16:14:32 1999 Kaveh R. Ghazi - - * mips.h (Pmode): Revert Oct 14th change which added a cast. - -Sun May 2 14:02:21 1999 Mark Mitchell - - * tree.h (struct tree_decl): Add comdat_flag. - (DECL_COMDAT): Define it. - * toplev.c (wrapup_global_declarations): Don't output a - DECL_COMDAT function just because it's public. - -Sun May 2 15:16:42 1999 Joseph S. Myers - - * pdp11.h (TARGET_SWITCHES): Fix error in previous change. - (ASSEMBLER_DIALECT): Define. - (CONDITIONAL_REGISTER_USAGE): Rename floating point registers if - required for the UNIX assembler. - (ASM_OUTPUT_INT): Remove. The compiler will synthesize it. - (ASM_OUTPUT_ADDR_VEC_PROLOGUE): Remove. - (ASM_OPEN_PAREN, ASM_CLOSE_PAREN): Change to "[" and "]". - (TRAMPOLINE_TEMPLATE): Use ASM_OUTPUT_SHORT. - * pdp11.c (output_addr_const_pdp11): Copy of output_addr_const - adapted to output constants in octal. - * pdp11.c, pdp11.h, pdp11.md: Use output_addr_const_pdp11 instead - of output_addr_const. Output constants in octal. Use assembler - dialect alternatives where DEC and UNIX assemblers use different - instruction names. - -Sun May 2 01:15:06 PDT 1999 Jeff Law (law@cygnus.com) + * cpplib.c: Make all directive handlers read their own + arguments. + (struct directive): Remove last two arguments from FUNC + member prototype. Remove `command_reads_line' member + entirely. + (directive_table): Remove initializations of + command_reads_line flag. Pretty-print. + (eval_if_expression, do_define, do_line, do_include, + do_undef, do_error, do_pragma, do_ident, do_if, do_xifdef, + do_else, do_elif, do_sccs, do_assert, do_unassert, + do_warning): Take only two args. - * version.c: Bump for snapshot. - -Fri Apr 30 13:55:43 1999 Richard Henderson - - * va-ppc.h (__va_start_common): Let __builtin_saveregs do the work. - * rs6000.c (expand_builtin_saveregs): For V4, initialize a private - va_list struct, and return a pointer to it. - (setup_incoming_varargs): V4 save area based off virtual_stack_vars - instead of frame_pointer. - -Thu Apr 29 23:02:22 1999 Mark Mitchell - - * emit-rtl.c (start_sequence): Expand comments. - (start_sequence_for_rtl_expr): Likewise. - (push_to_sequence): Likewise. - (end_sequence): Likewise. - * expr.c (inhibit_defer_pop): Likewise. - * expr.h (inhibit_defer_pop): Likewise. - (NO_DEFER_POP): Likewise. - (OK_DEFER_POP): Likewise. + (cpp_define): Call do_define with two args and the text to + define stuffed into a buffer. + (make_assertion): Call do_assert with two args. + (handle_directive): Call do_line with two args. Call + kt->func with two args. Remove command_reads_line + processing. + (do_define, do_undef, do_error, do_warning, do_pragma, + do_sccs): Read the rest of the line here. + (do_ident): Gobble rest of line, as cccp does. + (cpp_undef): New function. + (cpp_start_read): Call cpp_undef instead of do_undef. -Thu Apr 29 22:13:46 1999 Robert Lipe +1998-12-15 Zack Weinberg - * configure.in (i?86-UnixWare7*-sysv): Set thread_file to 'posix' - --enable-threads[={yes,pthreads,posix}] is passed as a command - line parameter to configure. - * config/i386/sysv5.h (LIB_SPEC): Add support for '-pthread'. - (CPP_SPEC): Likewise. + * cpphash.h (union hash_value): Remove `keydef' member, add a + `struct hashnode *aschain' member for #assert. -Thu Apr 29 17:23:59 1999 Richard Henderson + * cpplib.c (struct tokenlist_list, struct + assertion_hashnode): Delete structure definitions. + (assertion_install, assertion_lookup, delete_assertion, + check_assertion, compare_token_lists, reverse_token_list, + read_token_list, free_token_list): Delete functions. + (parse_assertion): New function. + (cpp_cleanup): Don't destroy the assertion_hashtable. - * emit-rtl.c (operand_subword): Religiously mask and sign-extend - from 32-bits to HOST_WIDE_INT. + (do_assert): Gut and rewrite. #assert foo (bar) places + entries for `#foo' and `#foo(bar)' in the macro hash table, + type T_ASSERT. The value union's `aschain' member is used + to chain all answers for a given predicate together. + (do_unassert): Also rewritten. Take an un-asserted + answer off the chain from its predicate and call + delete_macro on the hashnode, or walk a predicate chain + calling delete_macro on all the entries. + (cpp_read_check_assertion): Simply call parse_assertion to + get the canonical assertion name, and look that up in the + hash table. -Thu Apr 29 15:58:52 1999 Robert Lipe + * cpplib.h (ASSERTION_HASHNODE,ASSERTION_HASHSIZE,assertion_hashtab): + Removed. - * fixinc/regex.c, fixinc/regex.h: Removed. Replace with... - * fixinc/gnu-regex.c, fixinc/gnu-regex.h: Imported from GDB 4.18. - * fixinc/Makefile.in (OBJ, HDR): Handle name changes from above. - (gnu-regex.o): Define REGEX_MALLOC to avoid memory leak. - * fixinc/fixincl.c: new regex.h header name - * Makefile.in: new regex.[ch] file names + * cpphash.c (install): Use bcopy instead of an explicit loop + to copy the macro name. -Thu Apr 29 12:53:33 1999 Richard Henderson + * cppexp.c (cpp_lex): Convert the result of + cpp_read_check_assertion to a `struct operation' directly; + don't go through parse_number. - * calls.c (emit_call_1): Pass rounded_stack_size to emit_call - instead of the unrounded size. +Tue Dec 15 18:27:39 1998 J"orn Rennecke -1999-04-28 14:40 Bruce Korb + * loop.h (struct induction): Delete times_used member. + * loop.c (n_times_set): Rename to set_in_loop. Changed all users. + (n_times_used): Rename to n_times_set. Changed all users. + (scan_loop): Free reg_single_usage before strength reduction. + (record_giv, combine_givs): Remove handling of times_used member. + (combine_givs_used_once): Rename to: + (combine_givs_used_by_other) . Changed all callers. - * fixinc/mkfixinc.sh: Makesure the result shell script is writable +Tue Dec 15 01:45:26 1998 Jason Merrill -Wed Apr 28 10:36:39 1999 Andreas Schwab + * dwarf2out.c (gen_struct_or_union_type_die): Check AGGREGATE_TYPE_P + instead of TREE_CODE_CLASS == 't'. + (gen_type_die): Likewise. + (scope_die_for): Ignore FUNCTION_TYPE "scopes". - * config/m68k/m68k.md (cmpsi+1): Use cmp.w when comparing a 16 bit - constant with an address register. +Mon Dec 14 16:23:27 1998 Jim Wilson -Wed Apr 28 00:14:41 PDT 1999 Jeff Law (law@cygnus.com) + * real.c (endian): Disable last change unless + HOST_BITS_PER_WIDE_INT is greater than 32. - * version.c: Bump for snapshot. +Mon Dec 14 17:13:36 1998 Andrew MacLeod -Tue Apr 27 19:50:25 EDT 1999 Andrew MacLeod - - * rtl.h (REG_EH_REGION): Update comment to indicate a value of -1 - indicates no throw and no nonlocal gotos. - * optabs.c (emit_libcall_block): Emit REG_EH_REGION with a value - of -1 instead of 0 to indicate a nonlocal goto won't happen either. - * flow.c (count_basic_blocks, find_basic_blocks_1): Ignore libcall - blocks, look for REG_EH_REGION note exclusively. - (make_edges): Check for REG_EH_REGION > 0 for specified handlers. + * output.h (force_data_section): New prototype. + * varasm.c (force_data_section): New function to force the + data section, regardless of what in_section thinks. + * dwarf2out.c (output_call_frame_info): Call force_data_section + since varasm may not realize we've changes sections. -Tue Apr 27 15:33:42 1999 David Edelsohn - - * rs6000.h (read_only_data_section, private_data_section, - read_only_private_data_section, toc_section): Align CSECT on - doubleword boundary for 64-bit target. - (DATA_SECTION_ASM_OP): Likewise. - * rs6000.c (rs6000_stack_info): Leaf procedure stack limit is 288. - -Tue Apr 27 20:19:47 1999 J"orn Rennecke - - * sh.md (insv): Use copy_addr_to_reg. - - * final.c (insn_lengths_max_uid): New variable. - (init_insn_lengths, shorten_branches): Set it. - (get_attr_lengths): Test insn uid against insn_lengths_max_uid. - -1999-04-27 08:32 -0400 Zack Weinberg - - * expr.c (emit_move_insn_1): Abort if MODE argument is invalid. - (compare): Punt if TREE_OPERAND (exp, 0) is an ERROR_MARK. - -Tue Apr 27 01:33:43 1999 Jeffrey A Law (law@cygnus.com) - - * Makefile.in (ORDINARY_FLAGS_TO_PASS): Renmaed from FLAGS_TO_PASS. - Remove "CC". - (FLAGS_TO_PASS): New variable. - -Tue Apr 27 00:36:44 1999 Nick Burrett - - * arm.md (nop): Output instruction using output_asm_insn to fix - assembler dialect problems. +Mon Dec 14 14:09:34 1998 Nick Clifton -Mon Apr 26 23:55:50 1999 Robert Lipe + * reload1.c (reload): Delete REG_RETVAL and REG_LIBCALL notes + after completing reload. - * Makefile.in (fixinc.sh): Fix dependencies. + * rtl.texi: Document that REG_RETVAL and REG_LIBCALL are + deleted after reload. - * fixinc/inclhack.def (avoid_bool): Enable match if typedefs are - prepended by spaces. - (sco5_stat_wrappers): New fix. Make sys/stat.h C++ safe. - * fixinc/fixincl.sh, fixinc/fixincl.x, fixinc/inclhack.sh: Rebuilt. +Mon Dec 14 01:39:28 1998 Jeffrey A Law (law@cygnus.com) -Mon Apr 26 23:28:54 1999 Mumit Khan - Donn Terry + * rtl.h (multiple_sets): Fix prototype. + * rtlanal.c (multiple_sets): Fix return type. - * function.c (put_var_into_stack): Change ptr_mode to Pmode - in setup for chkr_set_right_libfunc calls. - (assign_params): Likewise. - * expr.c (emit_push_insn): Change ptr_mode to Pmode in - setup for chkr_copy_bitmap_libfunc and chkr_set_right_libfunc calls. - (expand_assignment): Change ptr_mode to Pmode in - setup for chkr_add_libfunc and chkr_copy_bitmap_libfunc. - (store_expr): Change ptr_mode to Pmode in - setup for chkr_add_libfunc and chkr_copy_bitmap_libfunc. - (expand_expr): Change ptr_mode to Pmode in - setup for chkr_check_addr_libfunc. - (expand_builtin): Change ptr_mode to Pmode in - setup for chkr_check_str_libfunc, chkr_copy_bitmap_libfunc and - chkr_check_addr_libfunc. - * calls.c (rtx_for_function_call): Change ptr_mode to Pmode in - setup for chkr_check_exec_libfunc. - (expand_call): Change ptr_mode to Pmode in - setup for chkr_set_right_libfunc. - (expand_call): Change ptr_mode to Pmode in - setup for chkr_set_right_libfunc. - (store_one_arg): Change ptr_mode to Pmode in - setup for chkr_set_right_libfunc. +Sun Dec 13 12:43:58 1998 Jeff Law (law@cygnus.com) - * c-parse.in (absdcl1): Allow attributes in explicit typespecs. - (%expect): Update. - * c-parse.y: Regenerate. - * c-parse.c: Likewise. - * objc/objc-parse.c: Likewise. - * objc/objc-parse.y: Likewise. + * version.c: Bump for snapshot. -Mon Apr 26 21:17:41 1999 Jason Merrill +Sun Dec 13 01:05:22 1998 Jeff Law (law@cygnus.com) - * c-pragma.c (push_alignment): Don't ignore alignments greater than - 4 bytes. - (handle_pragma_token): Likewise. + * version.c: Bump for snapshot. - * c-pragma.c: Support for #pragma pack (push, , ). - (struct align_stack): Add id field. - (push_alignment, pop_alignment): Take id parameter. - (handle_pragma_token): Add necessary states. - * c-pragma.h (enum pragma_state): Add necessary states. +1998-12-13 Manfred Hollstein -Tue Apr 27 13:58:23 1999 Michael Hayes + * protoize.c (fputs): Wrap extern declaration in #ifndef fputs. - * config/c4x/c4x.md (*cmpqf, *cmpqf_noov, *cmpqi_test, - *cmpqi_test_noov): Remove ? modifier from constraints list. - (*smulqi3_highpart_clobber, *umulqi3_highpart_clobber): Swap - output strings to match new constraint ordering. +Sun Dec 13 00:24:14 1998 J"orn Rennecke -1999-04-26 19:16 -0400 Zack Weinberg + * rtl.h (recompute_reg_usage): Add second argument. + * flow.c (recompute_reg_usage): Likewise. + * toplev.c (rest_of_compilation): Supply second argument to + recompute_reg_usage. - * cpphash.c (dump_definition): New function. - * cpphash.h: Prototype it. + * reload1.c (compute_use_by_pseudos): Allow reg_renumber[regno] < 0 + after reload. - * cpplib.c (handle_directive): Don't output anything here. - Streamline. - (pass_thru_directive): Take a length, not a pointer to the - end. All callers changed. - (do_define): Handle -dD, -dN, -g3 entirely here. Streamline. - (do_include): Handle -dI here. - (do_ident): Correct to match cccp. - (do_pragma): Copy the pragma through here. - (do_assert, do_unassert): Tidy. +Sat Dec 12 23:39:10 1998 Jeffrey A Law (law@cygnus.com) - * cppinit.c (cpp_finish): If -dM was specified, walk the macro - hash table and call dump_definition on all the entries. - * cppmain.c: cpp_finish may produce output. + * m68k/t-m68kelf (MULTILIB_OPTIONS): Add mcpu32. + (MULTILIB_MATCHES): -m68332 now uses mcpu32 libraries, not m68000. + (MULTILIB_EXCEPTIONS): Don't build 68881 libraries for m68000, + mcpu32 or m5200. -Mon Apr 26 15:27:33 1999 Mark Mitchell + * i386/next.h (ASM_OUTPUT_ALIGN): Use 0x90 for fill character. - * toplev.c (compile_file): Move call to check_global_declarations - after output_exception_table to restore behavior as it was before - 1999-04-22 change. + * rtlanal.c (multiple_sets): New function. + * rtl.h (multiple_sets): Declare it. + * local-alloc.c (wipe_dead_reg): Use it. + * global.c (global_conflicts): Likewise. -1999-04-26 10:50 -0700 Bruce Korb - - * fixinc/fixincl.c: Improve the handling of child process exits - * fixinc/server.[ch]: Export the interface for shutting down - the server process - * fixinc/inclhack.tpl: Remove unnecessary character quote - * fixinc/fixincl.sh, fixinc/inclhack.sh: Regenerate - -Mon Apr 26 10:41:42 EDT 1999 Andrew MacLeod - - * alpha.md (builtin_setjmp_receiver): Use a label_ref instead of - a code label. - -1999-04-26 09:47 -0400 Zack Weinberg - - * rtl.texi: Document the rtl classes and their relation to - formats. - -Mon Apr 26 01:02:38 1999 Richard Henderson - - * alpha.md (fix_trunc patterns): Use reg_no_subreg_operand on op0 - for less work in reload. - (movsf and movdf patterns): Put fp reg alternatives first. - -Mon Apr 26 01:55:56 1999 Marc Espie - - * configure.in (openbsd): Factorize xmake_file. - (ix86 openbsd): Trim obsolete comment. - (vax openbsd): Fix typo. - * configure: Rebuilt. +Sat Dec 12 22:13:02 1998 Mark Mitchell -Mon Apr 26 01:30:59 1999 Donn Terry + * global.c (record_conflicts): Don't use an array of shorts to + store an array of ints. + (global_conflicts): Likewise. - * expr.c (expand_assignment): Improve test for pointer type. +Sat Dec 12 16:49:24 1998 Richard Henderson -Mon Apr 26 00:26:18 1999 Richard Henderson + * alpha.c (alpha_expand_block_move): mode_for_size expects + bits, not bytes. Infer extra alignment from addressof. - * alpha.c (print_operand_address): Account for the subreg word. +1998-12-11 Michael Meissner -Mon Apr 26 01:08:36 1999 Toshiyasu Morita (tm@netcom.com) + * rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Put small data in the + .sbss section, not .sdata. - * fold-const.c (make_range): Always initialize arg0 and arg1. - (fold): Similarly for alt0 and alt1. - * function.c (fixup_var_refs_insns): Initialize insn_list. - (instantiate_virtual_regs_1): Initialize offset. - * optabs.c (expand_binop): Initialize carry_in, carry_out, op0_xhigh - and op1_xhigh. - * stmt.c (expand_end_case): Initialize minval and maxval. +1998-12-11 Manfred Hollstein -Mon Apr 26 01:02:34 1999 Nathan Sidwell + * cccp.c: Do not #include here; this is already done + by "system.h". + * collect2.c: Likewise. + * cpplib.h: Likewise. + * gcc.c: Likewise. + * gcov.c: Likewise. + * getpwd.c: Likewise. + * protoize.c: Likewise. + * toplev.c: Likewise. - * toplev.c (report_error_function): Reorder file stack and - function name printing. Ignore FILE parameter. + * cpplib.h (HOST_WIDE_INT): Get definition from "machmode.h" + and don't try to define it here. + * Makefile.in (cppmain.o): Depend on machmode.h. + (cpplib.o): Likewise. + (cpperror.o): Likewise. + (cppexp.o): Likewise. + (cppfiles.o): Likewise. + (cpphash.o): Likewise. + (cppalloc.o): Likewise. + (fix-header.o): Likewise. + (scan-decls.o): Likewise. -Mon Apr 26 00:58:54 1999 Jerry Quinn +Fri Dec 11 11:02:49 1998 Stan Cox - * pa.h (architecture_type): New enum. - (pa_arch_string, pa_arch): Declare. - (MASK_PA_10, MASK_PA_20): New flags. - (TARGET_SWITCHES): Add pa-risc-2-0. Update docs for PA1.0 codegen. - (TARGET_OPTIONS): Add -march= option. - * pa.c (pa_arch, pa_arch_string): Define. - (override_options): Set them. - * pa/pa-hpux10.h (ASM_FILE_START): Output LEVEL 2.0 asm directive for - 2.0 architecture. - * invoke.texi (Option Summary, HPPA Options): Document new - architecture flags. + * sh.c (print_operand): Lookup interrupt_handler attribute instead + of relying on static variable. + * (calc_live_regs): Likewise. + * (sh_pragma_insert_attributes): Create interrupt_handler + attribute if a pragma was specified. + * (sh_valid_machine_decl_attribute): Don't set static flag. + * sh.h (PRAGMA_INSERT_ATTRIBUTES): New. - * pa/pa-hpux.h, pa/pa-hpux10.h, pa/pa-hpux9.h, pa/pa-osf.h, pa.h, - pa.c, pa.md, configure.in, configure: Replace TARGET_SNAKE by - TARGET_PA_11 and MASK_SNAKE by MASK_PA_11. +Fri Dec 11 12:56:07 1998 J"orn Rennecke -Mon Apr 26 00:28:25 1999 Theodore Papadopoulo + * reload1.c (reload_combine): Use BASIC_BLOCK_LIVE_AT_START + to determine if a register is live at a jump destination. + Everything is dead at a BARRIER. - * flags.h (inline_max_insns): Declare. - * integrate.c (inline_max_insns): New variable. - (function_cannot_inline_p): Use it. - * toplev.c (main): Add the flag -finline-limit-n. - (display_help): Document -finline-limit-n. - * invoke.texi: Document -finline-limit-n +Thu Dec 10 16:02:06 1998 Jim Wilson -Sun Apr 25 23:03:32 1999 Richard Henderson + * cse.c (simplify_unary_operation): Sign-extend constants when + they have the most significant bit set for the target. + * real.c (endian): Sign-extend 32 bit output values on a 64 bit + host. + * m32r/m32r.c (m32r_expand_prologue): Store pretend_size in + HOST_WIDE_INT temporary before negating it. + * m32r/m32r.md (movsi_insn+1): Use ~0xffff instead of 0xffff0000. - * stmt.c (expand_asm_operands): Reload in-out reg-only memory operands. +Thu Dec 10 15:05:59 1998 Dave Brolley -Sun Apr 25 13:06:13 1999 Richard Henderson + * objc/objc-act.c (lang_init_options): Enclose cpplib related code in + #if USE_CPPLIB. - * function.c (assign_parms/STACK_BYTES): Revert last change, - and that of 19 Nov. +Thu Dec 10 13:39:46 1998 Kaveh R. Ghazi -Sun Apr 25 12:30:50 1999 Richard Henderson + * collect2.h: New header file for prototypes. - * calls.c (emit_call_1): New arg rounded_stack_size; update callers. - Update pending_stack_adjust based on this value. - (compute_argument_block_size): Include pending_stack_adjust in - PREFERRED_STACK_BOUNDARY alignment. - * function.c (assign_parms): Don't round to PREFERRED_STACK_BOUNDARY. + * Makefile.in (collect2.o, tlink.o): Depend on collect2.h. -Sun Apr 25 14:38:10 EDT 1999 John Wehle (john@feith.com) + * collect2.c: Include collect2.h. + * tlink.c: Likewise. - * stupid.c (stupid_mark_refs): Generate a REG_UNUSED note - for a register which is clobbered even if the register - was used by an earlier instruction. +Wed Dec 9 23:55:11 1998 Jeffrey A Law (law@cygnus.com) - * i386.md (fix_truncsfdi2, fix_truncdfdi2, - fix_truncxfdi2): Don't bother with the gen_reg_RTX. - (fix_truncsfsi2, fix_truncsfdi2, fix_truncdfsi2, - fix_truncdfdi2, fix_truncxfsi2, fix_truncxfdi2): Update - operand constraints and modes. - * i386.c (output_fix_trunc): Use HImode register to avoid - memory stalls. Call output_move_double instead of output_to_reg. - (output_to_reg): Remove. - * i386.h: Likewise. + * flow.c: Update some comments. - * i386.md (negsf2, negdf2, negxf2): Set the type - attribute to fpop. +Wed Dec 9 15:29:26 1998 Dave Brolley -Sat Apr 24 23:15:57 1999 Donn Terry (donn@interix.com) + * objc/objc-act.c (cpp_initialized): Removed. + (lang_init_options): Initialize cpplib. + (lang_decode_option): Move initialization of cpplib to + lang_init_options. + * c-lang.c (parse_options,parse_in): Added. + (lang_init_options): Initialized cpplib here. + * c-decl.c (parse_options,cpp_initialized): Removed. + (c_decode_option): Move initialization of cpplib to + lang_init_options. - * alpha.md (call_value_nt): Correct subscripts. +Wed Dec 9 19:36:57 1998 J"orn Rennecke -Sat Apr 24 20:49:20 1999 Richard Henderson + * reload1.c (reload_combine, reload_combine_note_store): + Make STORE_RUID always valid. + (reload_combine): Check if BASE is clobbered too early. - * alpha.h (PRINT_OPERAND_ADDRESS): Break out to ... - * alpha.c (print_operand_address): here. Handle subregs. +Wed Dec 9 09:53:58 1998 Nick Clifton -Fri Apr 23 22:35:41 EDT 1999 John Wehle (john@feith.com) + * reload.c (find_reloads): Display the insn that cannot be + reloaded. - * acconfig.h (HAVE_GAS_FILDS_FISTS): Add. - * configure.in: Check assembler instructions. - * configure: Rebuild. - * config.in: Likewise. - * i386.md (floathisf2, floathidf2, floathixf2): New patterns. - * i386.c (print_operand): Use the proper suffix for a 387 HImode - operand. Abort if a 387 operand has an unsupported size. +Wed Dec 9 12:15:26 1998 Dave Brolley -Fri Apr 23 16:57:40 1999 Richard Henderson + * cccp.c (create_definition): Fix end of buffer logic. - * alpha.c (alpha_write_verstamp): Mark `file' unused. - * alpha.h (FUNCTION_VALUE): Use gen_rtx_REG not gen_rtx. - (LIBCALL_VALUE): Likewise. - (GO_IF_LEGITIMATE_SIMPLE_ADDRESS): Handle normal subregs. +Wed Dec 9 10:15:45 1998 Kaveh R. Ghazi -Fri Apr 23 14:57:33 1999 Donn Terry + * except.c (duplicate_eh_handlers, rethrow_symbol_map): Function + pointer parameters changed to use the PARAMS() macro. - * alpha32.h (INITIALIZE_TRAMPOLINE): Get offsets right. +Wed Dec 9 09:12:40 1998 Andrew MacLeod - * alpha.c (alpha_initialize_trampoline): Add covert_memory_address - calls as needed. + * except.h (struct handler_info): Add handler_number field. + * except.c (gen_exception_label): EH labels no longer need to be + on the permanent obstack. + (get_new_handler): Set the label number field. + (output_exception_table_entry): Regenerate handler label reference + from the label number field. + (init_eh): Remove a blank line. + * integrate.c (get_label_from_map): Labels no longer need to be + on the permanent obstack. -Fri Apr 23 14:36:47 1999 Richard Henderson +Tue Dec 8 22:04:33 1998 Jim Wilson - * alpha.c (alpha_expand_prologue): Don't negate frame size - for use with subq. + * i960/i960.h (CONST_COSTS, case CONST_INT): Accept power2_operand + only when OUTER_CODE is SET. -Fri Apr 23 09:43:18 1999 Nick Clifton +Tue Dec 8 22:47:15 1998 J"orn Rennecke - * print-rtl.c (print_rtx): Display LABEL_NUSES for labels. + * loop.c (strength_reduce): If scan_start points to the loop exit + test, be wary of subversive use of gotos inside expression statements. + Don't set maybe_multiple for a backward jump that does not + include the label under consideration into its range. + * unroll.c (biv_total_increment): Make use of maybe_multiple field. -Thu Apr 22 23:08:37 1999 Mark Mitchell +Tue Dec 8 22:33:18 1998 J"orn Rennecke - * toplev.h (wrapup_global_declarations): Declare. - (check_global_declarations): Likewise. - * toplev.c (wrapup_global_declarations): New function, split out - from ... - (check_global_declarations): Likewise... - (compile_file): Here. + * explow.c (plus_constant_wide): Don't immediately return with + result of recursive call. -Thu Apr 22 22:34:41 1999 Richard Henderson +Tue Dec 8 15:32:56 1998 Andrew MacLeod - * c-parse.in (expr_no_commas): Verify we've an expr before - calling C_SET_EXP_ORIGINAL_CODE. + * eh-common.h (struct eh_context): Add table_index for rethrows. -Thu Apr 22 22:22:15 EDT 1999 John Wehle (john@feith.com) + * rtl.h (enum reg_note): Add REG_EH_REGION and REG_EH_RETHROW reg notes. + (SYMBOL_REF_NEED_ADJUST): New flag indicating symbol needs to be + processed when inlined or unrolled (ie duplicated in some way). - * toplev.c (rest_of_compilation): Always set - current_function_uses_only_leaf_regs appropriately. + * rtl.c (reg_note_name): Add strings for new reg_note enums. -Thu Apr 22 14:39:43 1999 Mumit Khan + * expr.h (rethrow_libfunc): New library decl. - * i386/xm-cygwin.h (HAVE_BCOPY): Delete unneeded macro. - (HAVE_BZERO): Likewise. - (HAVE_BCMP): Likewise. - (HAVE_RINDEX): Likewise. - (HAVE_INDEX): Likewise. - (DIR_SEPARATOR_2): Define. - (GET_ENV_PATH_LIST): Turn path lists into POSIX. - (PATH_SEPARATOR): Use ':'. + * optabs.c (rethrow_libfunc): Initialize. -1999-04-22 Bruce Korb + * except.h (struct eh_entry): Add new field 'rethrow_label'. + (new_eh_region_entry): No longer exported from except.c. + (duplicate_handlers): Renamed to duplicate_eh_handlers and + different prototype. + (rethrow_symbol_map, rethrow_used): New exported functions. + (eh_region_from_symbol): New exported function. - * configure.in: enable disabling of fast fixincludes - * configure: regenerate + * except.c (create_rethrow_ref): New function to create a single + SYMBOL_REF for a rethrow region. + (push_eh_entry): Initialize a rethrow ref. + (func_eh_entry): Add a rethrow_label field. + (new_eh_region_entry): Make static, and initialize the rethrow entry. + (duplicate_eh_handlers): Create a new region, and remap labels/symbols. + (eh_region_from_symbol): Find an EH region based on its rethrow symbol. + (rethrow_symbol_map): Given a label map, maps a rethrow symbol for + a region into an appropriate new symbol. + (rethrow_used): Indicate whether a rethrow symbol has been referenced. + (expand_eh_region_end): Don't issue jump around code for new-exceptions. + (end_catch_handler): Emit a barrier for new-exceptions since + control can never drop through the end of a catch block. + (expand_end_all_catch): new-exceptions never fall through a catch + block. + (expand_rethrow): Use __rethrow routine for new exceptions. + (output_exception_table_entry): Generate rethrow labels, if needed. + (output_exception_table): Generate start and end rethrow labels. + (init_eh): Create rethrow symbols for beginning and end of table. + (scan_region): Don't eliminate EH regions which are the targets of + rethrows. -1999-04-21 14:55 -0400 Zack Weinberg + * flow.c (make_edges): Add different edges for rethrow calls, + identified by having the REG_EH_RETHROW reg label. + (delete_unreachable_blocks): Don't delete regions markers which are + the target of a rethrow. - * gen-protos.c: #undef abort after including system.h. - Delete defns of fancy_abort and fatal. - * fix-header.c: Delete defn of fancy_abort. + * integrate.c (save_for_inline_eh_labelmap): New callback routine to + allow save_for_inline_copying to call duplicate_eh_handlers. + (save_for_inline_copying): Call duplicate_eh_handlers instead of + exposing internal details of exception regions. + (copy_for_inline): Check if SYMBOL_REFs need adjustment. + (expand_inline_function_eh_labelmap): New callback routine to + allow expand_inline_function to call duplicate_eh_handlers. + (expand_inline_function): Call duplicate_eh_handlers instead of + exposing internal details of exception regions. + (copy_rtx_and_substitute): Adjust SYMBOL_REFS if SYMBOL_REF_NEED_ADJUST + flag is set. -Wed Apr 21 12:09:38 1999 Mumit Khan - - * cccp.c (simplify_filename): Always preserve leading double slash. + * libgcc2.c (find_exception_handler): Generalize to enable it to + pick up processing where it left off last time for a rethrow. + (__unwinding_cleanup): New function. debug hook which is called before + unwinding when __throw finds there is nothing but cleanups left. + (throw_helper): Common parts of __throw extracted out for reuse. + (__throw): Common parts moved to throw_helper. + (__rethrow): New function for performing rethrows. -Wed Apr 21 18:15:55 1999 Michael Hayes +Tue Dec 8 13:11:04 1998 Jeffrey A Law (law@cygnus.com) - * config/c4x/c4x.md: Add new peepholes to remove redundant loads. + * reload1.c (current_function_decl): Tweak declaration. -Wed Apr 21 17:41:29 1999 Michael Hayes +Tue Dec 8 10:23:52 1998 Richard Henderson - * config/c4x/c4x.md (binary patterns): Reorder alternatives - so that two operand instructions are chosen before three operand - instructions. + * c-decl.c (flag_isoc9x): Default off. + (c_decode_option): Kill -std=gnu, add -std=gnu89 and -std=gnu9x. + * cccp.c (print_help, main): Likewise. + * gcc.c (default_compilers): Update for -std=gnu*. -Tue Apr 20 23:38:58 1999 Nathan Sidwell +Tue Dec 8 01:14:46 1998 Jeffrey A Law (law@cygnus.com) - * objc/Make-lang.in (objc-parse.c): Put BISON parameters in correct - order. + * Makefile.in (DEMANGLE_H): Change location to shared demangle.h. + * demangle.h: Deleted. - * Makefile.in (c-parse.c): Put BISON parameters in correct - order. + * reload1.c (current_function_decl): Declare. -Tue Apr 20 16:38:11 1999 Richard Henderson +Tue Dec 8 11:58:51 1998 Kaveh R. Ghazi - * alpha.md (nt_lda): New pattern. - * alpha.c (alpha_expand_prologue): Use it for large frames - under windows nt. + * cpplib.c (convert_string): Use `0x00ff', not `0x00ffU'. -Tue Apr 20 17:57:14 1999 Catherine Moore +Tue Dec 8 09:28:36 1998 Kaveh R. Ghazi - * config/arm/arm.md (movhi): Add check for odd offset. + * dbxout.c: If USG is defined use gstab.h, even if HAVE_STAB_H is set. -Tue Apr 20 13:14:58 EDT 1999 John Wehle (john@feith.com) +1998-12-08 Ulrich Drepper - * i386.c (output_move_double): Abort if a non-offsettable - memory operand is encountered. Delete unused code. - (find_addr_reg): Remove. + * configure.in: Test for availability of putc_unlocked, fputc_unlocked, + and fputs_unlocked. + * configure: Rebuilt. + * system.h: If the *_unlocked functions are available use them + instead of the locked counterparts by defining macros. + * config.in: Regenerated. -Mon Apr 19 21:13:02 1999 Craig Burley +Tue Dec 8 00:34:05 1998 Mike Stump - * tree.def (BLOCK): Fix typo in comment. + * i386/bsd.h (ASM_FILE_START): Don't use dump_base_name, it is + wrong and should only be used for dump related things, not + debugging information, instead main_input_filename should be used. + Also, reuse output_file_directive if possible. + * i386/aix386ng.h (ASM_FILE_START): Likewise. + * i386/isc.h (ASM_FILE_START): Likewise. + * i386/win-nt.h (ASM_FILE_START): Likewise. + * i386/sun386.h (ASM_FILE_START): Likewise. -1999-04-19 14:51 -0400 Zack Weinberg +Mon Dec 7 23:56:28 1998 Robert Lipe - * cpplib.c (output_line_command): Drop CONDITIONAL argument. - We can omit unnecessary line commands if file_change == - same_file and pfile->lineno != 0. All callers changed. - (cpp_get_token [case '\n']): Don't bump pfile->lineno if - CPP_OPTIONS (pfile)->no_line_commands is set. - * cpplib.h: Fix prototype of output_line_command. + * configure.in (mips*-*-linux*): Handle big and little endian + systems. + * configure: Rebuilt. -1999-04-18 17:46 -0400 Zack Weinberg +Mon Dec 7 23:14:51 1998 Mike Stump - * cppfiles.c (find_position, read_and_prescan): Use `unsigned - long' variables consistently to count line and column numbers. + * emit-rtl.c: Fix typo. -Sun Apr 18 15:50:33 EDT 1999 John Wehle (john@feith.com) +Mon Dec 7 23:07:38 1998 Nathan Sidwell - * output.h (current_function_is_leaf, - current_function_uses_only_leaf_regs): Declare. - * function.c (current_function_is_leaf, - current_function_uses_only_leaf_regs): Define. - (init_function_start): Initialize current_function_is_leaf - and current_function_uses_only_leaf_regs. - * final.c (leaf_function): Don't define. - (final_start_function): Replace uses of leaf_function with - current_function_uses_only_leaf_regs. - * toplev.c (rest_of_compilation): Set current_function_is_leaf - prior to invoking local register allocation. - (rest_of_compilation): Replace uses of leaf_function with - current_function_uses_only_leaf_regs. - * dbxout.c (dbxout_symbol, dbxout_parms): Likewise. - * dwarf2out.c (add_location_or_const_vaule_attribute): Likewise. - * dwarfout.c (add_location_or_const_value_attribute): Likewise. - * sdbout.c (sdbout_symbol): Likewise. - * sparc.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Likewise. - * sparc.c (eligible_for_epilogue_delay, output_return, - sparc_return_peephole_ok): Likewise. - * sparc.md (leaf_function attribute, untyped_return): Likewise. - * i386.c (ix86_compute_frame_size): Don't align the stack - for leaf functions which don't allocate any stack slots. - * tm.texi: Update documentation. + * reload1.c (eliminate_regs): Don't do anything, if we're not + generating code. -Sun Apr 18 02:15:09 PDT 1999 Jeff Law (law@cygnus.com) +Mon Dec 7 15:27:09 1998 DJ Delorie - * version.c: Bump for snapshot. + * mips/mips.h (ENCODE_SECTION_INFO): Handle TARGET_EMBEDDED_DATA. + Add comment. + * mips/mips.c (mips_select_section): Add comment. -Sun Apr 18 00:08:45 1999 Richard Henderson +Mon Dec 7 17:55:06 1998 Mike Stump - * alpha.h (GO_IF_LEGITIMATE_SIMPLE_ADDRESS): Correct last change -- - make sure FP_BASE_P registers are only used with an integer. + * cccp.c (ignore_escape_flag): Add support for \ as `natural' + characters in file names in #line to be consistent with #include + handling. We support escape processing in the # 1 "..." version of + the command. See also support in cp/lex.c. + (handle_directive): Likewise. + (do_line): Likewise. -Sat Apr 17 22:54:17 1999 Richard Henderson +1998-12-07 Zack Weinberg - * alpha.h (REG_OK_FP_BASE_P): New macro. - (GO_IF_LEGITIMATE_SIMPLE_ADDRESS): Use it. - * alpha.md (adddi3+1): New insn to handle large constants off - the soft frame pointer. - (adddi3+2): Don't split soft frame pointer or arg pointer additions. + * cpplib.c (initialize_char_syntax): Use ISALPHA and ISALNUM + so it'll work on non-ASCII platforms. Always consider $ an + identifier character. Take no arguments. + (cpp_reader_init): Call initialize_char_syntax with no + arguments. + (cpp_start_read): Don't call initialize_char_syntax again. + Clear is_idchar['$'] and is_idstart['$'] if not + opts->dollars_in_ident. -Sun Apr 18 17:24:10 1999 Michael Hayes + * cpplib.h (struct cpp_reader): Replace void *data element by + cpp_options *opts. Rearrange elements to make gdb printout + less annoying (put buffer stack at end). + (CPP_OPTIONS): Get rid of now-unnecessary cast. - * config/c4x/c4x.c (legitimize_operands): Use rtx_cost - to determine if it is worthwhile forcing a constant into a register. - * config/c4x/c4x.h (CONST_COSTS): An integer value of 255 or 65535 - used with a logical and or an integer value of 16 or 24 used with - a right shift has zero cost on the C40. + * cppmain.c: s/data/opts/ when initializing cpp_reader + structure. + * c-decl.c: Likewise. + * objc/objc-act.c: Likewise. + * fix-header.c: Likewise. -Sat Apr 17 21:30:11 1999 Bernd Schmidt +1998-12-07 Zack Weinberg - * gcse.c (compute_local_properties): If setp is nonzero, clear - TRANSP instead of setting it to all ones. + * cpplib.h (struct cpp_buffer): Replace dir and dlen members + with a struct file_name_list pointer. + (struct cpp_reader): Add pointer to chain of `actual + directory' include searchpath entries. + (struct file_name_list): Add *alloc pointer for the sake of + the actual-directory chain. -Sat Apr 17 21:10:10 1999 Jan Hubicka + Move definition of HOST_WIDE_INT here. + (cpp_parse_escape): Change prototype to match changes in + cppexp.c. - * i386.c (i386_preferred_stack_boundary_string): New global variable. - (i386_preferred_stack_boundary): New global variable. - (override_functions): Set it. Tidy option setting code. - * i386.h (TARGET_OPTIONS): New command line option. - (i386_preferred_stack_boundary_string): Declare it. - (i386_preferred_stack_boundary): Likewise. - (PREFERRED_STACK_BOUNDARY): Use i386_preferred_stack_boundary. + * cppfiles.c (actual_directory): New function. + (finclude): Use it to initialize the buffer's actual_dir + entry. + (find_include_file): We don't need to fix up max_include_len + here. -Sat Apr 17 19:22:38 1999 Jan Hubicka + * cpplib.c (do_include): Don't allocate a file_name_list on + the fly for current directory "" includes, use the one that's + been preallocated in pfile->buffer->actual_dir. Hoist out + duplicate code from the search_start selection logic. + (cpp_reader_init): Initialize pfile->actual_dirs. - * i386.c (k6_cost): Take into account the decoding time. + Remove definition of HOST_WIDE_INT. Change calls + to cpp_parse_escape to match changes in cppexp.c (note + hardcoded MASK, which is safe since this is the source + character set). -Sat Apr 17 19:13:22 1999 Donn Terry + * cppexp.c: Bring over changes to cpp_parse_escape from cccp.c + to handle wide character constants in #if directives. The + function now returns a HOST_WIDE_INT, and takes a third + argument which is a binary mask for all legal values (0x00ff + for 8-bit `char', 0xffff for 16-bit `wchar_t', etc.) Define + MAX_CHAR_TYPE_MASK and MAX_WCHAR_TYPE_MASK. Change callers of + cpp_parse_escape to match. [Fixes c-torture/execute/widechar-1.c] - * i386.h (PRINT_OPERAND_PUNCT_VALID_P): Allow _. - * i386.c (print_operand): New %_ operator. - (load_pic_register): Proper number of leading _ in GOT literal. - * i386.md (prologue_get_pc_and_set_got): Likewise. - * i386/unix.h (ASM_OUTPUT_MI_THUNK): Likewise. +Mon Dec 7 15:38:25 1998 Dave Brolley -Sat Apr 17 19:13:07 1999 Richard Henderson + * gcc.c (default_compilers): Fix typo in USE_CPPLIB spec for cc1. - * alpha.c (alpha_expand_prologue): Use gen_adddi3 instead of - emit_move_insn+plus_constant. For NT, don't use the stack probe - loop pointer to allocate stack space. - * alpha.md (adddi3): Always use lda to set the stack pointer. +Mon Dec 7 15:38:25 1998 Kaveh R. Ghazi -1999-04-17 20:11 -0400 Zack Weinberg + * c-aux-info.c (concat): Wrap function definition in !USE_CPPLIB. + * cppalloc.c: Move function `xcalloc' from cpplib.c to here. + * cpplib.c: Move function `xcalloc' from here to cppalloc.c. - * c-aux-info.c, emit-rtl.c, explow.c, expmed.c, gcse.c, - haifa-sched.c, optabs.c, reorg.c, resource.c, sched.c: Include - toplev.h for real declaration of trim_filename. - * Makefile.in: Update dependencies. +Mon Dec 7 11:30:49 1998 Nick Clifton -Sat Apr 17 14:36:19 1999 Craig Burley + * final.c (output_asm_name): Use tabs to separate comments from + assembly text. - * tree.c (chainon): Check for circularity only if - ENABLE_CHECKING is defined. + Include instruction lengths (if defined) in output. -1999-04-17 10:15 -0400 Zack Weinberg +Mon Dec 7 10:53:38 1998 Michael Hayes - * cccp.c: Make fatal non-static. + * loop.c (check_dbra_loop): Fix initial_value and initial_equiv_value + in the loop_info structure. -Sat Apr 17 23:47:24 1999 Michael Hayes +Mon Dec 7 11:04:40 1998 Catherine Moore - * config/c4x/c4x.md (*andqi3_255_clobber,*andqi3_65535_clobber): - New logical and patterns using C40 bit-field insert instructions. - (*lshrqi3_24_clobber,*ashrqi3_24_clobber,*lshrqi3_16_clobber, - *ashrqi3_16_clobber): New shift patterns using C40 bit-field insert - instructions. + * configure.in (arm*-*-ecos-elf): New target. + * configure: Regenerated. + * config/arm/elf.h (ASM_WEAKEN_LABEL): Define. + * config/arm/ecos-elf.h: New file. + * config/arm/unknown-elf.h (TARGET_VERSION): Check + for redefinition. -1999-04-16 22:44 -0400 Zack Weinberg +Mon Dec 7 16:15:51 1998 J"orn Rennecke - * system.h: Always prototype abort. Prototype fatal. Define - abort to call fatal, not fprintf/exit. Define a stub macro - for trim_filename. - * toplev.c: Define DIR_SEPARATOR. (trim_filename): New - function. - * toplev.h: Prototype trim_filename, and #undef system.h's stub. + * sh.c (output_far_jump): Emit braf only for TARGET_SH2. - * gcc.c, genattr.c, genattrtab.c, gencodes.c, genconfig.c, - genemit.c, genextract.c, genflags.c, genopinit.c, genoutput.c, - genpeep.c, genrecog.c: Make fatal non-static. - * gcov.c, gengenrtl.c, protoize.c: #undef abort after - including system.h. +Sun Dec 6 04:19:45 1998 Jeff Law (law@cygnus.com) - * config/i386/dgux.h, config/m68k/xm-amix.h: Remove stale code - relating to abort. + * version.c: Bump for snapshot. -Sat Apr 17 11:25:44 1999 Michael Hayes +Sun Dec 6 05:16:16 1998 Michael Hayes - * config/c4x/c4x.md (mulqf3_clrqf_clobber, mulqi3_clrqi_clobber): - New patterns to support parallel multiply and load of zero. + * loop.c (check_dbra_loop): New argument loop_info. Update fields + as needed. -Fri Apr 16 01:23:47 1999 Jason Merrill +Sun Dec 6 03:40:13 1998 Jeff Law (law@cygnus.com) - * tree.c (valid_machine_attribute): If we're modifying the - FUNCTION_TYPE within a POINTER_TYPE and we don't get a decl, - update the POINTER_TYPE. + * version.c: Bump for snapshot. -Fri Apr 16 00:19:31 1999 Jan Hubicka +Sun Dec 6 07:49:29 1998 Alexandre Oliva - * i386.c (x86_adjust_cost): Move break statement to correct place. + * gcc.texi (Bug Reporting): 40Kb is a soft limit, larger + compressed reports are ok and preferred over URLs. -Thu Apr 15 23:17:33 1999 Jerry Quinn +Sun Dec 6 07:45:33 1998 Alexandre Oliva - * pa.h (HAVE_PRE_INCREMENT, HAVE_POST_INCREMENT, - HAVE_PRE_DECREMENT, HAVE_POST_DECREMENT): Fix pa_cpu value from - 8000 to PROCESSOR_8000. + * invoke.texi (Warning Options): Soften the tone of -pedantic. -Thu Apr 15 20:46:57 1999 Donn Terry (donn@interix.com) +Sun Dec 6 00:20:44 1998 H.J. Lu (hjl@gnu.org) - * expr.c (expand_assignment): Force pointers to proper mode if - POINTERS_EXTEND_UNSIGNED is defined. + * print-rtl.c (print_rtx): Add prototype. - * xm-alpha.h (alloca.h): Add Interix to list of special machines - that don't like alloca.h, pending using autoconf results. + * unroll.c (iteration_info): Make it static. - * except.c (start_catch_hadler): Be sure rtime_address is Pmode - if POINTERS_EXTEND_UNSIGNED. +Sun Dec 6 01:19:46 1998 Richard Henderson - * except.c (expand_eh_return): Force pointers to proper mode if - POINTERS_EXTEND_UNSIGNED. + * alias.c (memrefs_conflict_p): A second ANDed address + disables the aligned address optimization. -Thu Apr 15 23:13:35 1999 Michael Hayes +Sat Dec 5 18:48:25 1998 Richard Henderson - * config/c4x/c4x.h: Tweaked comment formatting. - * config/c4x/c4x.c: Likewise. + * alpha.c (alpha_emit_set_const_1): Fix parenthesis error + in -c << n case. -Thu Apr 15 02:45:19 1999 Mumit Khan +Sat Dec 5 15:14:52 1998 Jason Merrill - * aclocal.m4 (GCC_FUNC_MKDIR_TAKES_ONE_ARG): Define. - * configure.in: Use. - * configure: Rebuilt. - * acconfig.h (MKDIR_TAKES_ONE_ARG): Add. - * config.in: Rebuilt. - * system.h: Use. - -Thu Apr 15 01:03:21 1999 Jan Hubicka - Jeff Law - - * i386.md (QImode add pattern): Support lea instruction. - (HImode add pattern): Likewise. - - * i386.md (ashlsi patterns): Call output_ashl instead of output_ashlsi3. - (ashlqi): Use expander, separate LEA and SAL / ADD patterns; call - output_ashl. - (ashlhi): Likewise. - * i386.h (output_ashl): Renamed from output_ashlsi3. - * i386.c (output_ashl): Likewise; support HImode and QImode operands - as well. - - * i386.md (notsi, nothi, xorsi, xorhi, and xorqi patterns): Call - memory_address_displacement_length instead of memory_address_length. - * i386.c (memory_address_info): Renamed from memory_address_length. - Accept new argument DISP_LENGTH. All callers changed. If DISP_LENGTH, - then return the displacement length. Else return length of the - entire memory address. Handle MULT case correctly. - * i386.h (memory_address_info): Update declaration. - - * i386.md (memory_bit_test): Fix paren error. - -Wed Apr 14 21:29:18 1999 Andrew Haley - - * flow.c: (make_edges): Always make edges from a basic block - to its exception handlers, even if the block ends with a jump. - -1999-04-14 23:26 -0400 Zack Weinberg - - * graph.c (node_data): Return void. Ignore result of - print_rtl_single. Change caller to match. - * integrate.c (subst_constants): Initialize op0_mode to an - invalid mode, and abort before use if it's still invalid. - (Can only happen if the RTX_CLASS, RTX_FORMAT tables are corrupted.) - * objc/objc-act.c (get_objc_string_decl, - build_selector_translation_table, generate_protocol_list, - synth_id_with_class_suffix, build_keyword_selector, - build_selector_expr, gen_declarator): Abort when the tree - structure is corrupted. - -Wed Apr 14 19:57:49 1999 Jeffrey A Law (law@cygnus.com) - - * configure.in (alpha interix): Use symbolic names to set - target_cpu_default. - * configure: Rebuilt. + * i960.h (BOOL_TYPE_SIZE): Define. - * explow.c (allocate_dynamic_stack_space): Undo last change. Use - convert_memory_address instead. - -Wed Apr 14 19:42:02 1999 Donn Terry (donn@interix.com) - - * alpha/lib1funcs.asm: New file. - * alpha/t-interix (lib1funcs.asm): Add to build. - - * explow.c (allocate_dynamic_stack_space): Correctly convert TARGET - to Pmode. - -Wed Apr 14 14:26:36 1999 John Wehle (john@feith.com) - - * i386.md (truncxfdf): Output the template supplied - by output_move_double with the correct operands. - - * i386.md (extendsfdf, extendsfxf, extenddfxf): Use - output_float_extend instead specifying '#' as the template. - * i386.c (output_float_extend): Define. - * i386.h (output_float_extend): Declare. - -Wed Apr 14 10:48:03 1999 Catherine Moore - - * config/mips/elf.h, config/mips/elf64.h - (CTORS_SECTION_ASM_OP): Define. - (DTORS_SECTION_ASM_OP): Define. - (EXTRA_SECTIONS): Define. - (INVOKE__main): Define. - (NAME__MAIN): Define. - (SYMBOL__MAIN): Define. - (EXTRA_SECTIONS_FUNCTIONS): Define. - (SECTION_FUNCTION_TEMPLATE): Define. - (ASM_OUTPUT_CONSTRUCTOR): Define. - (ASM_OUTPUT_DESTRUCTOR): Define. - (CTOR_LIST_BEGIN): Define. - (CTOR_LIST_END): Define. - (DTOR_LIST_BEGIN): Define. - (DTOR_LIST_END): Define. - (LIB_SPEC): Define. - (STARTFILE_SPEC): Define. - (ENDFILE_SPEC): Define. - * config/mips/linux.h: Undefine all of the above. - * config/mips/rtems64.h: Likewise. - * config/mips/t-r3900: Likewise. - * config/mips/t-elf: New file. - * config/mips/vxworks.h: New file. - * configure.in (mips-wrs-vxworks): Use mips/vxworks.h. - (mips*-*-*elf*): Use t-elf instead of t-ecoff. - * configure: Regenerate. +Sun Dec 6 00:28:16 1998 Michael Hayes -Wed Apr 14 09:59:38 1999 Richard Henderson + * config/c4x/c4x.c (valid_parallel_load_store): Flog functionality + from old valid_parallel_operands_4. + (valid_parallel_operands_4): Check that operands for 4 operand + parallel insns are valid, excluding load/store insns. + * config/c4x/c4x.h (valid_parallel_load_store): Add prototype. + * config/c4x/c4x.md (*movqf_parallel, *movqi_parallel): Use + valid_parallel_load_store instead of valid_parallel_operands_4. + (*absqf2_movqf_clobber, *floatqiqf2_movqf_clobber, + *negqf2_movqf_clobber, *absqi2_movqi_clobber, + *fixqfqi2_movqi_clobber, *negqi2_movqi_clobber, + *notqi_movqi_clobber): Use valid_parallel_operands_4. + (*subqf3_movqf_clobber, *ashlqi3_movqi_clobber, + *ashrqi3_movqi_clobber, *lshrqi3_movqi_clobber, + *subqi3_movqi_clobber): Use valid_parallel_operands_5. - * reload1.c (emit_reload_insns): Also find equivalent mems - for subregs of pseudos. +Sat Dec 5 23:52:01 1998 Michael Hayes - * alpha.c (aligned_memory_operand): Recognize the output of - LEGITIMIZE_RELOAD_ADDRESS. Examine reg_equiv_memory_loc in - the event of a pseudo. - (unaligned_memory_operand): Likewise. Don't otherwise accept - completely illegal addresses. - (normal_memory_operand): Likewise. Handle subregs of pseudos. - (get_aligned_mem): Revert previous change. Abort if we don't have a - mem. During reload, call find_replacement on all illegal memories. - (get_unaligned_address): Likewise. - * alpha.h (SECONDARY_INPUT_RELOAD_CLASS): Use !aligned_memory_operand - instead of unaligned_memory_operand. - * alpha.md: Revert extra argument to get_aligned_mem. - (reload_inqi): Use any_memory_operand in constraints. Abort if - we're not given some sort of mem. - (reload_inhi): Likewise. - (reload_outqi, reload_outhi): Likewise. + * config/c4x/c4x.c (iteration_info): Delete extern. -Wed Apr 14 09:39:20 1999 Richard Henderson +Fri Dec 4 20:15:57 1998 Bernd Schmidt - * i386.md (neghi): Use the whole register when widening the op. + * tm.texi (SMALL_REGISTER_CLASSES): Make description match reality. -1999-04-14 12:37 -0400 Zack Weinberg + * final.c (cleanup_subreg_operands): Delete some unused code. - * cpperror.c, cppexp.c, cpplib.c: Never call abort. - * cpphash.c: Only call abort when we detect corruption of the - malloc arena. - * cppmain.c: Don't define fatal or fancy_abort. + * recog.h (MAX_RECOG_ALTERNATIVES): New macro. + (struct insn_alternative): New structure definition. + (recog_op_alt): Declare variable. + (preprocess_constraints): Declare function. + * recog.c (recog_op_alt): New variable. + (extract_insn): Verify number of alternatives is in range. + (preprocess_constraints): New function. + * reg-stack.c: Include recog.h. + (constrain_asm_operands): Delete. + (get_asm_operand_lengths): Delete. + (get_asm_operand_n_inputs): New function. + (record_asm_reg_life): Delete OPERANDS, CONSTRAINTS, N_INPUTS and + N_OUTPUTS args. All callers changed. + Compute number of inputs and outputs here by calling + get_asm_operand_n_inputs. + Instead of constrain_asm_operands, call extract_insn, + constrain_operands and preprocess_constraints. Use information + computed by these functions throughout. + (record_reg_life): Delete code that is unused due to changes in + record_asm_reg_life. + (subst_asm_stack_regs): Delete OPERANDS, OPERAND_LOC, CONSTRAINTS, + N_INPUTS and N_OUTPUTS args. All callers changed. + Similar changes as in record_asm_reg_life. + (subst_stack_regs): Move n_operands declaration into the if statement + where it's used. + Delete code that is unused due to changes in subst_asm_stack_regs. + * stmt.c (expand_asm_operands): Verify number of alternatives is in + range. + * Makefile.in (reg-stack.o): Depend on recog.h. -Wed Apr 14 09:19:39 1999 Jan Hubicka +Fri Dec 4 02:23:24 1998 Jeffrey A Law (law@cygnus.com) - * i386.c (x86_adjust_cost): Agi stall takes 1 cycle on Pentium, fst - requires value to be ready one extra cycle. + * except.c (set_exception_version_code): Argument is an "int". -Wed Apr 14 11:28:34 1999 Dave Brolley +Fri Dec 4 01:29:28 1998 Jeffrey A Law (law@cygnus.com) - * config/i386/i386.c (memory_address_length): Add missing parenthesis. + * configure.in (hppa2*-*-*): Handle like hppa1.1-*-* for now. + * configure: Rebuilt. -Wed Apr 14 13:59:27 1999 Martin von Loewis +Fri Dec 4 01:29:28 1998 Robert Lipe - * extend.texi (Deprecated Features): New node. - * invoke.texi (-Wdeprecated): Document. + * configure.in (mipsel-*-linux*): New target. + * mips/linux.h: New file, based on other Linux targets. -Wed Apr 14 00:18:22 1999 Jan Hubicka +Thu Dec 3 11:19:50 1998 Mike Stump - * i386.md (SImode logical compare): Avoid outputting non-pariable testw - and testl on Pentium. - (register and memory bit tests): Likewise. - (setcc, normal and reversed conditional branches): Use shorter - sequence for testing flags stored in EAX. + * gthr-vxworks.h (__ehdtor): Fix memory leak. The delete hook + runs in the context of the deleter, not the deletee, so we must + use taskVarGet to find the correct memory to free. + (__gthread_key_create): Initialize the task + variable subsystem so that the task variable is still active when + the delete hook is run. - * i386.md (xorsi3): Do not output NOT instrctions on Pentium. - (xorqi3): Likewise. - (xorhi3): Likewise. - (notsi2): Likewise. - (notqi2): Likewise. - (nothi2): Likewise; do not output prefixed opcodes when possible. +1998-12-03 Joseph S. Myers - * i386.md (neghi2): Do not output prefixed opcode when possible. - (ashlhi3): Likewise. + * pdp11.h: Use optimize_size for space optimizations. + * pdp11.c: Likewise. + * pdp11.md: Likewise. -Wed Apr 14 00:08:46 1999 Richard Henderson + * pdp11.h (TARGET_40_PLUS): Fix typo. - * i386.c (memory_address_length): New function. - * i386.h (memory_address_length): Declare it. +Thu Dec 3 11:48:32 1998 Jeffrey A Law (law@cygnus.com) -Tue Apr 13 22:52:04 1999 Donn Terry (donn@interix.com) - Martin Heller (Ing.-Buero_Heller@t-online.de) + * local-alloc.c (block_alloc): Slightly retune heuristic to widen + qty lifetimes. - * configure.in (interix Alpha): Add. - (winnt Alpha): Use alpha32.h - (interix i386): Parallel Alpha32. - * configure: Rebuilt. +Thu Dec 3 22:30:18 1998 Michael Hayes - * config/interix.h: Move common elements from i386-interix.h. - * config/i386/i386-interix.h: Delete same. - * config/alpha/alpha-interix.h: New file. + * alias.c (addr_side_effect_eval): New function. + (memrefs_conflict_p): Use it. + * rtl.h (addr_side_effect_eval): Prototype it. - * config/alpha/alpha32.h: New file, part fron win-nt.h. - * config/alpha/win-nt.h: Deletions (-> alpha32.h). - * config/alpha/interix.h: New file +1998-12-02 Joseph S. Myers - * config/alpha/alpha.md (interix): Comment. + * pdp11.md (extendsfdf2): Fix mode mismatch in SET. - * config/alpha/xm-alpha-interix.h: New file. +Wed Dec 2 11:23:07 1998 Jim Wilson - * config/alpha/t-interix: New file. + * reload.c (find_reloads): When force const to memory, put result + in substed_operand not *recog_operand_loc. - * fixinc/mkfixinc.sh (interix/Alpha): Add. +1998-12-02 Ulrich Drepper -1999-04-13 Mike Stump + * c-lex.c: Fix indentation from last patch. + Remove trailing whitespace. + * real.c: Likewise. - * i386/vxi386.h (CPP_CPU_SPEC): Define appropriately for vxworks. - (CPP_PREDEFINES, LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): likewise. +Wed Dec 2 10:11:12 1998 Jeffrey A Law (law@cygnus.com) -Tue Apr 13 21:01:36 1999 Jason Merrill + * flow.c (delete_block): Call set_last_insn after we have reset + NEXT_INSN (kept_tail). - * c-common.c (default_valid_lang_attribute): New fn. - (valid_lang_attribute): New callback ptr. - (decl_attributes): Call it. Move init_priority support into - C++ frontend. +Wed Dec 2 00:47:31 1998 Jeffrey A Law (law@cygnus.com) -Tue Apr 13 17:47:14 1999 John Wehle (john@feith.com) + * mips.md (trap_if): Use "$0" for the value zero. - * i386.md (movdi): Add splitter. +Tue Dec 1 20:49:49 1998 Ulrich Drepper + Stephen L Moshier + Richard Henderson -Wed Apr 14 10:04:27 1999 Michael Hayes + * c-common.c (declare_function_name): Declare predefined variable + `__func__'. - * config/c4x/c4x.md (storeqf_int, storeqf_int_clobber, loadqf_int, - loadqf_int_clobber): Add new patterns with corresponding splitters - to handle moves of floating point values into and out of intager - registers by using memory. - - * config/c4x/c4x.c (c4x_check_legit_addr): Disallow PRE_INC for modes - other than QFmode and QImode. - (mixed_subreg_operand): New function. - (c4x_emit_move_sequence): If moving a floating point value into or - out of an integer register, use the new patterns storeqf_int_clobber - or loadqf_int_clobber. - (reg_imm_operand, *_reg_operand): Call reg_operand instead of - register_operand. - (reg_operand, src_operand): Disallow operand if it satisifes - mixed_subreg_operand. + * c-decl.c (flag_isoc9x): Set to 1 by default. + (c_decode_option): Handle -std= option. Remove -flang-isoc9x. + (grokdeclarator): Always emit warning about implicit int for ISO C 9x. - * config/c4x/c4x.h (mixed_subreg_operand): Add prototype. + * c-parse.in: Allow constructors in ISO C 9x. + Rewrite designator list handling. + Allow [*] parameters. + Don't warn about comma at end of enum definition for ISO C 9x. -Tue Apr 13 14:49:13 1999 Jan Hubicka + * cccp.c (c9x): New variable. + (rest_extension): New variable. + (print_help): Document new -std= option. + (main): Recognize -std= option. Set c9x appropriately. + (create_definition): Recognize ISO C 9x vararg macros. - * i386.c (agi_dependent): Handle push operation more correctly. + * gcc.c (default_compilers): Adjust specs for -std options. + (option_map): Add --std. + (display_help): Document -std. -Tue Apr 13 14:45:17 1999 Jan Hubicka + * toplev.c (documented_lang_options): Add -std and remove + -flang-isoc9x. - * i386.md (anddi3): Add % constraint. - (iordi3, xordi3): Likewise. + * c-lex.c (yylex): Recognize hex FP constants and call REAL_VALUE_ATOF + or REAL_VALUE_HTOF based on base of the constants. + * fold-const.c (real_hex_to_f): New function. Replacement function + for hex FP conversion if REAL_ARITHMETIC is not defined. + * real.c (asctoeg): Add handling of hex FP constants. + * real.h: Define REAL_VALUE_HTOF if necessary using ereal_atof or + real_hex_to_f. -Tue Apr 13 14:29:58 1999 Jan Hubicka +Tue Dec 1 16:45:49 1998 Stan Cox - * i386.md (extendhisi2): Output mov instead of cw instruction for K6 - to improve decoding bandwidth. - * i386.md (extendhiqi2): Likewise. + * mips.md (divmodsi4*, divmoddi4*, udivmodsi4*, udivmoddi4): Add + -mcheck-range-division/-mcheck-zero-division checking. Avoid as macro + expansion. Use hi/lo as destination register. + (div_trap): New. + (divsi3*, divdi3*, modsi3*, moddi3*, udivsi3*, udivdi3*, umodsi3*, + umoddi3*): Add -mcheck-range-division/-mcheck-zero-division checking. + Avoid as macro expansion. Use hi/lo as destination register. -Tue Apr 13 14:26:31 1999 Jan Hubicka + * mips.h (MASK_CHECK_RANGE_DIV): New. + (MASK_NO_CHECK_ZERO_DIV): New. + (ELIMINABLE_REGS): Added GP_REG_FIRST + 31. + (CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): Allow for getting + return address for leaf functions out of r31 to support + builtin_return_address. - * i386.md (movsf_push): Handle memory to memory case too, new splitter. - (movdf_push, movxf_push): Likewise. - (movsf_push_memory, movdf_push_memory, movxf_push_memory): Remove. +Tue Dec 1 15:03:30 1998 Herman A.J. ten Brugge -Tue Apr 13 14:14:06 1999 Jan Hubicka + * jump.c (jump_optimize): Call regs_set_between_p with PREV_INSN(x), + NEXT_INSN(x) to check insn x. - * i386.md: Do not output mov %0,reg on AMD K6. +Tue Dec 1 15:20:44 1998 Jeffrey A Law (law@cygnus.com) -Tue Apr 13 12:14:07 1999 Dave Brolley + * flow.c (delete_block): Call set_last_insn if we end up deleting the + last insn in the rtl chain. - * cppinit.c (cpp_start_read): Fix buffer overwrite. - * Makefile.in (cppinit.o): Typo in dependencies. + * reload1.c (reload): Do not set reload_completed or split insns + here. Instead... + * toplev.c (rest_of_compilation): Set reload_completed after + reload returns. Split insns after reload_cse has run. -Tue Apr 13 05:04:59 1999 Richard Earnshaw (rearnsha@arm.com) +Tue Dec 1 11:55:04 1998 Richard Henderson - * arm.h (function prototypes for arm.c): Ifdef these out if - HAVE_CONFIG_H is not defined. + * final.c (final_scan_insn): Abort if block_depth falls below 0. -Tue Apr 13 02:11:11 1999 Jeffrey A Law (law@cygnus.com) +Tue Dec 1 10:23:16 1998 Nick Clifton - * pa.c: Avoid Using immediate zero for register zero. - * pa.md: Likewise. + * config/arm/t-arm-elf (LIBGCC2_CFLAGS): Define inhibit_libc. - * pa.c (print_operand, case 'f'): New case for FP register or 0.0. - (print_operand, case 'r'): Use %r0 for zero value. - * pa.md (move patterns, fcmp patterns): Use new %f output arg. +Tue Dec 1 10:22:18 1998 Nick Clifton - * pa.c: Use a register name, not a raw immediate in branch, - compare/clear, sub, subb, uaddcm and vshd instructions. - * pa.md: Likewise. + * config/arm/unknown-elf.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Remove + use of user-label_prefix. - * pa.md, pa.h, ee.asm, ee_fp.asm, lib2funcs.asm: Likewise. +Tue Dec 1 17:58:26 1998 J"orn Rennecke - * pa.c: Use a register name, not a raw immediate in "bv" instructions. - * pa.md, pa.h, ee.asm, ee_fp.asm, lib2funcs.asm: Likewise. + * reload1.c (emit_reload_insns): Clear spill_reg_store + when doing a new non-inherited reload from the same pseudo. - * pa.c: Remove space register specification in memory addresses, - except where it is actually needed. - * pa.md, pa.h, ee.asm, ee_fp.asm, lib2funcs.asm: Likewise. + * local-alloc.c (function_invariant_p): New function. + (update_equiv_regs): Use function_invariant_p instead of CONSTANT_P + to decide if an equivalence should be recorded. + * reload1.c (num_eliminable_invariants): New static variable. + (reload): Set it. Use function_invariant_p instead of CONSTANT_P + to decide if an equivalence should be recorded. + Unshare PLUS. + (calculate_needs_all_insns): Skip insns that only set an equivalence. + Take num_eliminable_invariants into account when deciding + if register elimination should be done. + (reload_as_needed): Take num_eliminable_invariants into account + when deciding if register elimination should be done. + (eliminate_regs): Handle non-constant reg_equiv_constant. + * rtl.h (function_invariant_p): Declare. -Mon Apr 12 23:34:35 1999 Jeff Law (law@cygnus.com) +Mon Nov 30 02:00:08 1998 Jeff Law (law@cygnus.com) * version.c: Bump for snapshot. -Mon Apr 12 14:58:30 1999 Jan Hubicka - - * reg-stack.c (check_stack_regs_mentioned): Remove variable SIZE. - -Mon Apr 12 19:15:17 1999 Daniel Jacobowitz - - * rs6000/sysv4.h (CPP_OS_LINUX_SPEC): Add missing backslash. - -Mon Apr 12 19:11:38 1999 Mumit Khan - - * i386/cygwin.h (SUBTARGET_SWITCHES): Add -mconsole; fix - -mno-nop-fun-dllimport and minor doc fixes. - (STARTFILE_SPEC): Cygwin DLLs don't have dllcrt0. - (LINK_SPEC): Add -mconsole support. - * i386/mingw32.h (LIB_SPEC): Make libraries consistent with - Cygwin. - (LINK_SPEC): Remove. Use Cygwin's version. - (MATH_LIBRARY): Make it null. - * i386/crtdll.h (MATH_LIBRARY): Likewise. - -Fri Apr 12 15:00:52 1999 Stan Cox - - * c-decl.c (c_decode_option, start_decl, start_function, - finish_function) : Recognize -Wno-main so we can avoid warnings. - -1999-04-12 Zack Weinberg - - * cpphash.c (collect_expansion, macroexpand, - push_macro_expansion): Make the escape character in macro - buffers '\r', not '@'. Remove code to protect literal - occurrences of the escape character; '\r' cannot appear - in a macro buffer unless we put it there. - * cpplib.c (skip_comment, copy_comment, cpp_skip_hspace, - copy_rest_of_line, cpp_get_token, parse_string, - parse_assertion): '\r' might be a backslash-newline marker, or - it might be a macro escape marker, depending on - CPP_BUFFER (pfile)->has_escapes. '@' is not a special - character. - * cpplib.h: Update commentary. - -Mon Apr 12 09:30:03 1999 Richard Earnshaw (rearnsha@arm.com) - - * arm.h (target_fp_name, structure_size_string, arm_cpu_select): - Const-ify. - * arm.c (target_fp_name, structure_size_string): Const-ify. - - * arm.md (reload_inhi, reload_outhi): Make the scratch DImode. - * arm.c (arm_reload_in_hi): Handle cases when the input is still - a pseudo, make use of scratch registers for reloading the address - as appropriate. - (arm_reload_outhi): Similarly for when the output is still a pseudo. - - * riscix.h (SUBTARGET_SWITCHES): Document. - -1999-04-12 Bruce Korb - - * fixincludes: - make fixincludes behave like the scripts in fixinc/ - - * Makefile.in( stmp-fixinc ): - ensure the SHELL value is that of the make - - * fixincl/inclhack.tpl: - the file name lists ought to be restricted to "*.h" anyway - C++ files may be named .../[a-z]++/... also - Adding copyright year and attribution to output - - * fixincl/inclhack.def: - fixed broken expression - Clarify a some comments - - * fixincl/fixincl.tpl: - Clarify a some comments - Remove dead template text - Correct the counting of regular expressions - -Mon Apr 12 03:07:44 1999 Richard Henderson - - * alpha.c (aligned_memory_operand): Handle out of range stack slots. - Take a new SCRATCH argument for the occasion. Update all callers. - (get_unaligned_address): Abort on out of range stack slots. - * alpha.md (adddi3 splitter): Check s_p_rtx not REGNO. - (reload_inqi): Check for aligned mems before unaligned. - (reload_inhi): Likewise. - -Mon Apr 12 03:11:30 1999 Jeffrey A Law (law@cygnus.com) - - * flow.c (flow_delete_insn): If we delete a CODE_LABEL, also remove - it from the nonlocal_goto_handler_labels list. - * jump.c (delete_insn): Likewise. - (jump_optimize_1): Also recompute LABEL_NUSES when we are just - marking labels. - * rtl.h (remove_node_from_expr_list): Declare. - * rtlanal.c (remove_node_from_expr_list): New function. - -Mon Apr 12 02:37:02 1999 Jan Hubicka - - * reg-stack.c: Update comment, include varray.h. - (stack_regs_mentioned_data): New global variable. - (check_stack_regs_mentioned): New function. - (stack_regs_mentioned): New function. - (reg_to_stack): Initialize and free stack_regs_mentioned_data, - use stack_regs_mentioned. - (record_asm_reg_life): Change insn type cache for changed insn. - (record_reg_life): Do not change the insn mode. - (emit_pop_insn): Likewise. - (emit_swap_insn): Likewise. - (move_for_stack_reg): Likewise. - (stack_reg_life_analysis): Use stack_regs_mentioned. - (emit_swap_insn): Likewise. - (subst_stack_regs): Likewise. - (convert_regs): Likewise. - * jump.c (find_cross_jump): Use stack_regs_mentioned. - * rtl.h (stack_regs_mentioned): Declare. +Mon Nov 30 00:42:59 1998 Jeff Law (law@cygnus.com) -Mon Apr 12 00:57:10 1999 Theodore Papadopoulo + * version.c: Bump for snapshot. - * integrate.c (INTEGRATE_THRESHOLD): Sync it with the comment. +Sun Nov 29 22:59:40 1998 Jason Merrill -Sun Apr 11 10:24:18 1999 Mark Mitchell + * except.c (add_new_handler): Complain about additional handlers + after one that catches everything. - * rtl.h (rtx_def): Update documentation for jump and call. +Sat Nov 28 10:56:32 1998 Jeffrey A Law (law@cygnus.com) -Sun Apr 11 07:43:44 1999 Kaveh R. Ghazi + * configure.in (alpha*-*-netbsd): Fix typo. + * configure: Rebuilt. - * jump.c (jump_optimize_1): Make the definition static to match - the prototype. +Fri Nov 27 12:28:56 1998 Kaveh R. Ghazi -Sat Apr 10 22:51:53 1999 Jan Hubicka + * system.h: Include libiberty.h. - * flow.c (life_analysis): New parameter remove_dead_code. - (life_analysis_1): Likewise. - (propagate_block): Likewise; use it. - * output.h: Update prototype. - * toplev.c: Update calls to life_analysis. + * c-aux-info.c: Remove prototypes for concat/concat3. Change + function `concat' from fixed parameters to variable parameters, + as is done in libiberty. All callers of concat/concat3 + changed to use the new `concat' with variable args. -Sat Apr 10 22:12:12 1999 Jan Hubicka + * cccp.c: Remove things made redundant by libiberty.h and/or + conform to libiberty standards. + * cexp.y: Likewise. + * collect2.c: Likewise. + * config/1750a/1750a.h: Likewise. + * cppalloc.c: Likewise. + * cppexp.c: Likewise. + * cppfiles.c: Likewise. + * cpphash.c: Likewise. + * cpplib.c: Likewise. + * dyn-string.c: Likewise. + * fix-header.c: Likewise. + * gcc.c: Likewise. + * gcov.c: Likewise. + * genattr.c: Likewise. + * genattrtab.c: Likewise. + * gencheck.c: Likewise. + * gencodes.c: Likewise. + * genconfig.c: Likewise. + * genemit.c: Likewise. + * genextract.c: Likewise. + * genflags.c: Likewise. + * gengenrtl.c: Likewise. + * genopinit.c: Likewise. + * genoutput.c: Likewise. + * genpeep.c: Likewise. + * genrecog.c: Likewise. + * getpwd.c: Likewise. + * halfpic.c: Likewise. + * hash.c: Likewise. + * mips-tdump.c: Likewise. Wrap malloc/realloc/calloc prototypes + in NEED_DECLARATION_* macros. - * recog.c (constrain_operands): Ignore unary operators when - matching operands. Recognize '5'..'9' as well. + * mips-tfile.c: Remove things made redundant by libiberty.h and/or + conform to libiberty standards. + (fatal): Fix const-ification of variable `format' in + !ANSI_PROTOTYPES case. -Sat Apr 10 21:53:02 1999 Philipp Thomas (kthomas@gwdg.de) - Richard Henderson + * prefix.c: Remove things made redundant by libiberty.h and/or + conform to libiberty standards. - * configure.in: Set target_cpu_default2 for target_alias k6. - * i386.h (TARGET_SWITCHES): Remove no- entries. - (CC1_CPU_SPEC): Likewise. - (CPP_CPU_DEFAULT_SPEC): Streamline definition. Add K6 version. - (CPP_K6_SPEC): New. - (CPP_CPU_SPEC): Add K6 variant. - (EXTRA_SPECS): Likewise. + * print-rtl.c: Rename variable `spaces' to `xspaces' to avoid + conflicting with function `spaces' from libiberty. -Fri Apr 9 11:29:17 1999 Richard Henderson + * profile.c: Remove things made redundant by libiberty.h and/or + conform to libiberty standards. + * protoize.c: Likewise. + * rtl.h: Likewise. + * scan.h: Likewise. + * tlink.c: Likewise. + * toplev.c: Likewise. + * toplev.h: Likewise. + * tree.h: Likewise. - * flow.c (merge_blocks_nomove): Rewrite to properly handle two - blocks that vanish entirely during merging. +Thu Nov 26 08:38:06 1998 Kaveh R. Ghazi -Sat Apr 10 20:09:55 1999 John Wehle (john@feith.com) + * cppfiles.c (simplify_pathname): Un-ANSI-fy function definition. - * i386.md (floatsisf2, floatdisf2, floatsidf2, floatdidf2, - floatsixf2, floatdixf2, movsicc, movhicc, movsfcc, movdfcc, - movxfcc, movdicc): Remove unused register constraints from - the splitters. +Thu Nov 26 23:45:37 1998 Michael Hayes - * i386.md (fixuns_truncsfsi2, fixuns_truncdfsi2, - fixuns_truncxfsi2): Delete. + * README.C4X: Updated URLs. + * config/c4x/c4x.c (c4x_address_conflict): Fix typo. + (valid_parallel_operands_5): Remove unused variable. - * reg-stack.c (delete_insn_for_stacker): Ensure that - the only side effects of a PARALLEL are clobbers. - (subst_stack_regs): Handle subst_stack_regs_pat deleting - a PARALLEL. - * i386.md (extendsfdf2, extenddfxf2, - extendsfxf2): Rewrite using a splitter. - * i386.c (output_op_from_reg): Remove. - * i386.h: Likewise. +Thu Nov 26 23:40:03 1998 Michael Hayes -Sat Apr 10 13:09:18 1999 Nick Clifton + * config/c4x/c4x.h (TARGET_DEFAULT): Fix typo. - * config/arm/arm.c (di_operand): Allow SUBREGs as well. - (soft_df_operand): Allow SUBREGs as well. +1998-11-26 Manfred Hollstein -Sat Apr 10 06:14:31 1999 Jan Hubicka + * Makefile.in (CONFIG_LANGUAGES): New macro taking all languages + which can be configured. + (LANGUAGES): Use $(CONFIG_LANGUAGES) instead of @all_languages@ + (Makefile): Pass actual LANGUAGES through the environment when + re-configuring. + (cstamp-h): Likewise. + (config.status): Likewise. - * extend.texi (Assembler Instructions with C Expression Operands): - Document the i386 floating point operands. + * configure.in (enable_languages): Add new configuration parameter + "--enable-languages=lang1,lang2,...". + (${srcdir}/*/config-lang.in): Change handling to configure only + those directories, that the user might have enabled; default to + "all" existing languages. + * configure: Regenerate. -1999-04-10 Mike Stump +Thu Nov 26 00:19:19 1998 Richard Henderson - * configure.in (*-*-vxworks): Add vxWorks thread support for all - vxWorks targets. - * configure.in (thumb-wrs-xvworks): Add vxWorks support for thumb. - * configure: Rebuilt. + * rtlanal.c (regs_set_between_p): New function. + * rtl.h (regs_set_between_p): Prototype it. + * jump.c (jump_optimize): Use it instead of modified_between_p + in the Sep 2 change. -Sat Apr 10 06:04:50 1999 Donn Terry (donn@interix.com) - - * i386/t-interix: Use mostly system headers unchanged. - Use system assert.h - * fixinc/fixinc.interix: Ditto (make almost no-op). - * config/x-interix.h (_ALL_SOURCE): add -D - * config/x-interix.h (crti.o): Delete dependency. - * config/xm-interix.h (ONLY_INT_FIELDS): Define only when bootstrapping. - * i386/xm-i386-interix.h: New file. - * i386/interix.h (ASM_OUTPUT_LIMITED_STRING): Fix warnings. - * i386/i386-interix.h: Renamed from interix.h. - * configure.in (interix): Use new files. - * configure: Rebuilt. +Wed Nov 25 23:32:02 1998 Ian Dall + Matthias Pfaller -Sat Apr 10 05:25:28 1999 Daniel Jacobowitz - - * rs6000/sysv4.h (CPP_OS_LINUX_SPEC): Fix conditions - for -Dunix and -Dlinux, and remove duplicate definition. - Change -Asystem(linux) to -Asystem(posix). - (CPP_OS_SOLARIS_SPEC): Fix conditions for -Dunix, -Dsun, - -DSVR4, -D__EXTENSIONS__. - - * rs6000/linux.h (CPP_PREDEFINES): Remove -Dunix, - -Dlinux, -Asystem(linux), and -Asystem(unix). - -Sat Apr 10 05:14:50 1999 Mark Elbrecht - - * i386/djgpp.h (SET_ASM_OP): Define. - - * cccp.c (DIR_SEPARATOR): Move to the top of the file. - (is_dir_separator): New function. - (simplify_filename): Use it. - * collect2.c (find_a_file): Use HAVE_DOS_BASED_FILE_SYSTEM in place - of the DIR_SEPARATOR test. - Consider any file starting with a drivename to be absolute. - If the absolute filename test fails and EXECUTABLE_SUFFIX is - defined, append EXECUTABLE_SUFFIX to the file and try again. - * cppinit.c (base_name): Use HAVE_DOS_BASED_FILE_SYSTEM - in place of __MSDOS__ and _WIN32. - * cppfiles.c (simplify_pathname): Likewise. - * gcc.c (IS_DIR_SEPARATOR): Define new macro. Returns true if a - character is a directory separator. - (find_a_file): Use it. - (convert_filename): Likewise. - (process_command): Likewise. - (do_spec_1): Likewise. - (is_directory): Likewise. - (main): Likewise. - * prefix.c (IS_DIR_SEPARATOR): Define. Tests whether a character is - a directory separator. - (translate_name): Use it. - (update_path): Change DIR_SEPARATOR_2 to DIR_SEPARATOR. Fix - warning in block where '/' is changed to DIR_SEPARATOR. - * i386/xm-djgpp.h (DIR_SEPARATOR): Set to '/'. - (DIR_SEPARATOR_2): New macro. Set to '\'. - (HAVE_DOS_BASED_FILESYS): Define. - * i386/xm-mingw32.h: Updated copyright. Set - DIR_SEPARATOR_2 to '/'. Define HAVE_DOS_BASED_FILE_SYSTEM. - * i386/xm-os2.h: Likewise. - * winnt/xm-winnt.h: Likewise. - * i386/xm-dos.h: Likewise. Add copyright. - -1999-04-10 Joseph S. Myers - - * pdp11.h (TARGET_SWITCHES): Add option to vary assembler syntax. - (TARGET_DEFAULT): Possibly use UNIX syntax. - (TARGET_UNIX_ASM, TARGET_UNIX_ASM_DEFAULT): New macros. - (REGISTER_NAMES): Use "r5" instead of "fp". - (ASM_OUTPUT_ALIGN): Use ".even" directive, and abort for any - greater alignment. - * 2bsd.h (TARGET_UNIX_ASM_DEFAULT): Default to UNIX assembler - syntax for 2BSD. - * pdp11.c (output_ascii): Use working syntax for ".byte". - (print_operand_address): Use "*" instead of "@" when using UNIX - assembler syntax. - -Sat Apr 10 03:50:12 1999 Jeffrey A Law (law@cygnus.com) - - * rtl.h (rebuild_jump_labels): Declare. - * jump.c (jump_optimize_1): Renamed from jump_optimize. Make static. - Add new argument MARK_LABELS_ONLY. Quit after mark_all_labels if - requested. - (jump_optimize, rebuild_jump_labels): New wrapper functions for - jump_optimize_1. - * toplev.c (rest_of_compilation): Use rebuild_jump_labels instead of - running the entire jump optimizer. - - * rtl.h (local_alloc): Returns an integer now. - * local-alloc.c (recorded_label_ref): New file scoped variable. - (local_alloc): Initialize recorded_label_ref to zero. Return its - value when local allocation has completed. - (update_equiv_regs); If we create an equivalence for a LABEL_REF, - set recorded_label_ref. - * toplev.c (rest_of_compilation): Run the jump optimizer after - register allocation and reloading if needed. - -Fri Apr 9 21:02:57 1999 Krister Walfridsson (cato@df.lth.se) - - * i386/gas.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Fix typo. - * i386/freebsd-elf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. - -1999-04-09 Zack Weinberg - - * cpphash.c (special_symbol): When expanding __LINE__, use the - top file buffer, not the top buffer. - -Fri Apr 9 13:41:04 1999 Jim Wilson - - * Makefile.in (check-g++, check-gcc, check-g77, check-objc): Add - cd .. to TCL_LIBRARY command. - -Fri Apr 9 13:04:52 1999 Nick Clifton - - * config/arm/unknown-elf.h (SUBTARGET_CPU_DEFAULT): Only define if - not already specified. - -Fri Apr 9 11:18:55 1999 Jason Merrill - - * c-common.c (decl_attributes, A_INIT_PRIORITY): Allow arrays - of classes, too. - -Fri Apr 9 10:40:10 1999 Kaveh R. Ghazi - - * rs6000.c (rs6000_override_options, ptt, rs6000_file_start, - rs6000_float_const, rs6000_replace_regno, debug_stack_info, - rs6000_output_load_toc_table, output_prolog, output_epilog): - Const-ify a char*. - (output_mi_thunk): Likewise. Mark parameter `thunk_fndecl' with - ATTRIBUTE_UNUSED. Hide unused variables `r0', `sp', `toc', - `schain', `r12', `buf' and `labelno'. - (output_ascii): Const-ify a char*. - (rs6000_gen_section_name): Initialize variable `last_period'. - (rs6000_adjust_priority): Mark parameter `insn' with - ATTRIBUTE_UNUSED. - (rs6000_trampoline_template, rs6000_dll_import_ref, - rs6000_longcall_ref, rs6000_encode_section_info): Const-ify a char*. + * invoke.texi (Option Summary, NS32K Options): Add description + of NS32K specific options. - * rs6000.h (offsettable_mem_operand, optimization_options): Add - prototypes. + * ns32k.md (tstdf, cmpdf, movdf, truncdfsf2, fixdfqi2, fixdfhi2, + fixdfsi2, fixunsdfqi2, fixunsdfhi2, fixunsdfsi2, fix_truncdfqi2, + fix_truncdfhi2, fix_truncdfsi2, adddf3, subdf3, muldf3, divdf3, + negdf2, absdf2): Use l instead of f since the double class and + float class are no longer the same. + (cmpsi, truncsiqi2, truncsihi2, addsi3, subsi3, mulsi3, umulsidi3, + divsi3, modsi3, andsi3, iorsi3, xorsi3, negsi2, one_cmplsi2, + ashlsi3, ashlhi3, ashlqi3, rotlsi3, rotlhi3, rotlqi3, abssi2,...): + Use "g" instead of "rmn" since LEGITIMATE_PIC_OPERAND has been + fixed. + (cmpsi, cmphi, cmpqi): Use general_operand instead of + non_immediate_operand. Removes erroneous assumption that can't + compare constants. + (movsf, movsi, movhi, movqi,...): New register numbering scheme. + (movsi, addsi3): Use NS32K_DISPLACEMENT_P instead of hard coded + constants. + (movstrsi, movstrsi1, movstrsi2): Completely new block move + scheme. + (...): Patterns to exploit multiply-add instructions. + (udivmodsi4, udivmodsi_internal4, udivmodhi4, + udivmoddihi4_internal, udivmodqi4, udivmoddiqi4_internal): New + patterns to exploit extended divide insns. + (udivsi3, udivhi3, udivqi3): Remove since superseded by udivmodsi + etc patterns. - * rs6000.md (movdi, define_split): Cast a value to HOST_WIDE_INT - when comparing against one. + * ns32k.h (FUNCTION_VALUE, LIBCALL_VALUE): Use f0 for complex + float return values as well as simple scalar floats. + (TARGET_32381, TARGET_MULT_ADD, TARGET_SWITCHES): + Support new flag to denote 32381 fpu. + (OVERRIDE_OPTIONS): 32381 is a strict superset of 32081. + (CONDITIONAL_REGISTER_USAGE): Disable extra 32381 registers if not + compiling for 32381. + (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS, + REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES, OUTPUT_REGISTER_NAMES, + REG_ALLOC_ORDER, DBX_REGISTER_NUMBER, R0_REGNUM, F0_REGNUM, + L1_REGNUM, STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, + LONG_FP_REGS_P, ARG_POINTER_REGNUM, reg_class, REG_CLASS_NAMES, + REG_CLASS_CONTENTS, SUBSET_P,REGNO_REG_CLASS, + REG_CLASS_FROM_LETTER, FUNCTION_PROLOGUE, FUNCTION_EPILOGUE, + REGNO_OK_FOR_INDEX_P, FP_REG_P, REG_OK_FOR_INDEX_P, + REG_OK_FOR_BASE_P, MEM_REG): New register scheme to include 32381 + fpu registers and special register classes for new 32381 + instructions dotf and polyf. + (MODES_TIEABLE_P): Allow all integer modes, notably DI and SI, to + be tieable. + (INCOMING_RETURN_ADDR_RTX, RETURN_ADDR_RTX, + INCOMING_FRAME_SP_OFFSET): New macros in case DWARF support is + required. + (SMALL_REGISTER_CLASSES): Make dependent on -mmult-add option. + (MOVE_RATIO): Set to zero because of smart movstrsi implementation. + (REGISTER_MOVE_COST): Move code to register_move_cost function for + ease of coding and debugging. + (CLASS_LIKELY_SPILLED_P): Under new register scheme class + LONG_FLOAT_REGO is likely spilled but not caught by default + definition. + (CONSTANT_ADDRESS_P, CONSTANT_ADDRESS_NO_LABEL_P): Use macro + instead of hard coded numbers in range check. + (ASM_OUTPUT_LABELREF_AS_INT): Delete since unused. + (...): Add prototypes for functions in ns32k.c but disable because + of problems when ns32k.h is included in machine independent files. -Thu Apr 8 19:20:18 1999 Jeffrey A Law (law@cygnus.com) + * ns32k.c: Include "system.h", "tree.h", "expr.h", "flags.h". + (ns32k_reg_class_contents, regcass_map, ns32k_out_reg_names, + hard_regno_mode_ok, secondary_reload_class, + print_operand, print_operand_address): New register scheme to + include 32381 fpu registers and special register classes for new + 32381 instructions dotf and polyf. + (gen_indexed_expr): Make static to keep namespace clean. + (check_reg): Remove since never called. + (move_tail, expand_block_move): Helper functions for "movstrsi" + block move insn. + (register_move_cost): Helper function for REGISTER_MOVE_COST macro. + Increase cost of moves which go via memory. + * netbsd.h (TARGET_DEFAULT): Set (new) 32381 fpu flag. + (CPP_PREDEFINES): No longer predefine "unix". - * expr.c (expand_expr, case ARRAY_REF, COMPONENT_REF, BIT_FIELD_REF): - Do not try to optimize an aggregate address which has VOIDmode. - Mirrors March 23 change to expand_assignment. + * ns32k.md (movsi, movsi, adddi3, subdi3, subsi3, subhi3, subqi3,...): + Remove erroneous %$. print_operand() can work out from the rtx is + an immediate prefix is required. - * flow.c (delete_unreachable_blocks): Do not require EDGE_FALLTHRU - for an edge when tidying an edge which connects consecutive basic - blocks. + * ns32k.h (RETURN_POPS_ARGS, VALID_MACHINE_DECL_ATTRIBUTE, + VALID_MACHINE_TYPE_ATTRIBUTE, COMP_TYPE_ATTRIBUTES, + SET_DEFAULT_TYPE_ATTRIBUTES): Support for -mrtd calling + convention. + (LEGITIMATE_PIC_OPERAND_P, SYMBOLIC_CONST): Correct handling of + pic operands. - * flow.c (can_delete_label_p): Do not convert a label into a - deleted label here. + * ns32k.c (symbolic_reference_mentioned_p, print_operand): + Correct handling of pic operands. + (ns32k_valid_decl_attribute_p, ns32k_valid_type_attribute_p, + ns32k_comp_type_attributes, ns32k_return_pops_args): Support for + -mrtd calling convention. - * cse.c (flush_hash_table): New function. - (cse_insn): Flush the hash table when we encounter a volatile asm. - (cse_basic_block): Use flush_hash_table instead of doing it - inline. +Wed Nov 25 23:42:20 1998 Tom Tromey - * reload1.c (reload_cse_regs_1): Flush known register values if - we encounter a volatile asm. + * gcc.c (option_map): Recognize --output-class-directory. - * loop.c (strength_reduce): Re-enable Joern's loop improvements. +Thu Nov 26 18:26:21 1998 Michael Hayes -Thu Apr 8 09:37:40 1999 Nick Clifton + * loop.h (precondition_loop_p): Added new mode argument. + * unroll.c (precondition_loop_p): Likewise. + (approx_final_value): Function deleted and subsumed + into loop_iterations. + (loop_find_equiv_value): New function. + (loop_iterations): Use loop_find_equiv_value to find increments + too large to be immediate constants. Also use it to find terms + common to initial and final iteration values that can be removed. - * config/arm/arm.c (arm_print_operand): Undo previous change - - always print large constants in decimal. +Thu Nov 26 18:05:04 1998 Michael Hayes -Thu Apr 8 10:22:23 1999 Kaveh R. Ghazi + * loop.h (struct loop_info): Define new structure. + (precondition_loop_p): Added prototype. + (unroll_loop): Added new argument loop_info to prototype. + (final_biv_value, final_giv_value): Added new argument n_iterations + to prototype. + * loop.c (strength_reduce): Declare new structure loop_iteration_info + and new pointer loop_info. + (loop_n_iterations): Replace global variable by element in + loop_info structure. + (check_final_value): New argument n_iterations. + (insert_bct): New argument loop_info. + (loop_unroll_factor): Replace global array by element in + loop_info structure. + (loop_optimize): Remove code to allocate and initialize + loop_unroll_factor_array. + * unroll.c (precondition_loop_p): No longer static since + used by branch on count optimization. + (precondition_loop_p, unroll_loop): New argument loop_info. + (final_biv_value, final_giv_value, find_splittable_regs): New + argument n_iterations. + (loop_iteration_var, loop_initial_value, loop_increment, + loop_final_value, loop_comparison_code, loop_unroll_factor): + Replaced global variables by loop_info structure. + (loop_unroll_factor): Replace global array by element in + loop_info structure. - * configure.in (host_xm_file, build_xm_file): Include hwint.h. - Use case statements instead of "if test -a ... -a ... -a ..." +Thu Nov 26 17:49:29 1998 Michael Hayes - * machmode.h: Don't define HOST_WIDE_INT, etc. Wrap use of - HOST_WIDE_INT in #ifdef. + * loop.c (check_dbra_loop): Update JUMP_LABEL field of jump insn + when loop reversed. - * mips.h: Include hwint.h instead of providing definitions for - HOST_WIDE_INT, etc. Wrap uses of HOST_WIDE_INT in #ifdef. + * unroll.c (precondition_loop_p): Return loop_initial_value + for initial_value instead of loop_iteration_var. -Thu Apr 8 06:16:14 1999 John Wehle (john@feith.com) +Thu Nov 26 17:15:38 1998 Michael Hayes - * i386.md (truncdfsf2, truncxfsf2, - truncxfdf2): Rewrite using a splitter. + * config/c4x/c4x.md: Fix minor formatting problems. Update docs. + (*b, *b_rev, *b_noov, *b_noov_rev, *db, + decrement_and_branch_until_zero, rptb_end): Use c4x_output_cbranch + to output the instruction sequences. + (rpts): Delete. + (rptb_top): Provide alternatives to use any register or memory + for loop counter. + (rptb_end): Emit use of operands rather than assigning them + explicitly to the RS and RE registers. -Thu Apr 8 01:26:05 1999 Arg Haas (ahaas@neosoft.com) - Jeffrey A Law (law@cygnus.com) +Thu Nov 26 16:37:59 1998 Michael Hayes - * freebsd-elf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Avoid ambiguous - else statement. - * gas.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. - * linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. - * openbsd.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. + * config/c4x/c4x.c (c4x_modified_between_p, c4x_mem_set_p, + c4x_mem_set_p, c4x_mem_modified_between_p, c4x_insn_moveable_p, + c4x_parallel_pack, c4x_parallel_find, c4x_update_info_reg, + c4x_update_info_regs, c4x_copy_insn_after, c4x_copy_insns_after, + c4x_merge_notes, c4x_parallel_process, + c4x_combine_parallel_independent, c4x_combine_parallel_dependent, + c4x_combine_parallel): Delete. -Wed Apr 7 22:40:19 1999 Jim Wilson +Thu Nov 26 15:16:05 1998 Michael Hayes - * i960/i960.c (i960_function_prologue): Don't save static chain - pointer. - * i960/i960.h (STACK_CHAIN_REGNUM): Change from r3 to g12. - (TRAMPOLINE_TEMPLATE): Likewise. - (FRAME_POINTER_REQUIRED): Check current_function_has_nonlocal_goto. - * i960/i960.md (nonlocal_goto): Rewrite. + * config/c4x/c4x.c (c4x_override_options): For compatibility + with old target options clear flag_branch_on_count_reg if + -mno-rptb specified and set flag_argument_alias is -mno-aliases + specified. + (c4x_output_cbranch): Handle a sequence of insns rather than a + single insn. + (c4x_rptb_insert): Do not emit a RPTB insn if the RC register + has not been allocated as the loop counter. + (c4x_address_conflict): Do not allow two volatile memory references. + (valid_parallel_operands_4, valid_parallel_operands_5, + valid_parallel_operands_6): Reject pattern if the register destination + of the first set is used as part of an address in the second set. -Tue Apr 6 17:49:49 1999 Philip Blundell +Thu Nov 26 14:56:32 1998 Michael Hayes - * config/arm/lib1funcs.asm: Test for __ELF__ not __elf__. + * config/c4x/c4x.h (TARGET_DEFAULT): Add PARALEL_MPY_FLAG. + (TARGET_SMALL_REG_CLASS): Set to 0 so that SMALL_REGISTER_CLASSES + is no longer enabled if PARALLEL_MPY_FLAG set. + (HARD_REGNO_CALL_CLOBBERED): Add parentheses to remove ambiguity. + (REG_CLASS_CONTENTS): Add braces around initializers. + (HAVE_MULTIPLE_PACK): Define. + (ASM_OUTPUT_BYTE_FLOAT): Use %lf format specifier with + REAL_VALUE_TO_DECIMAL. + (ASM_OUTPUT_SHORT_FLOAT): Use %lf format specifier with + REAL_VALUE_TO_DECIMAL. + (ar0_reg_operand): Add prototype. + (ar0_mem_operand): Likewise. + (ar1_reg_operand): Likewise. + (ar1_mem_operand): Likewise. + (ar2_reg_operand): Likewise. + (ar2_mem_operand): Likewise. + (ar3_reg_operand): Likewise. + (ar3_mem_operand): Likewise. + (ar4_reg_operand): Likewise. + (ar4_mem_operand): Likewise. + (ar5_reg_operand): Likewise. + (ar5_mem_operand): Likewise. + (ar6_reg_operand): Likewise. + (ar6_mem_operand): Likewise. + (ar7_reg_operand): Likewise. + (ar7_mem_operand): Likewise. + (ir0_reg_operand): Likewise. + (ir0_mem_operand): Likewise. + (ir1_reg_operand): Likewise. + (ir1_mem_operand): Likewise. + (group1_reg_operand): Likewise. + (group1_mem_operand): Likewise. + (ir1_reg_operand): Likewise. + (arx_reg_operand): Likewise. + (not_rc_reg): Likewise. + (not_modify_reg): Likewise. + (c4x_group1_reg_operand): Remove prototype. + (c4x_group1_mem_operand): Likewise. + (c4x_arx_reg_operand): Likewise. -Wed Apr 7 14:07:34 1999 Jeffrey A Law (law@cygnus.com) +Wed Nov 25 19:02:55 1998 (Stephen L Moshier) - * h8300.c (h8300_adjust_insn_length): Also avoid recognizing - ADDR_VEC and ADDR_DIFF_VEC insns. + * emit-rtl.c (gen_lowpart_common): Remove earlier change. + * real.c (make_nan): Make SIGN arg actually specify the sign bit. - * h8300.c (h8300_adjust_insn_length): Avoid trying to recognize - USE, CLOBBER or SEQUENCE insns. +Thu Nov 26 14:12:05 1998 Michael Hayes - * unroll.c (unroll_loop): For HAVE_cc0 machines, adjust copy_end_luid - to account for the uncopied insn that sets cc0 at the end of the loop. + * config/c4x/c4x.md (addqi3): Emit addqi3_noclobber pattern + during reload. - * unroll.c (copy_loop_body): Always ensure at least two insns - are in the copied loop. +Wed Nov 25 22:05:28 1998 J"orn Rennecke -Wed Apr 7 14:52:18 1999 Catherine Moore + * config/sh/lib1funcs.asm (___udivsi3_i4): Don't switch to sz == 1 + unless FMOVD_WORKS is defined. - * config/mips/elf.h (MAKE_DECL_ONE_ONLY): Define. - (UNIQUE_SECTION_P): Define. +Wed Nov 25 20:11:04 1998 J"orn Rennecke -1999-04-07 Bruce Korb + * regclass.c (init_reg_sets): Move code that calculates tables + dependent on reg_class_contents from here... + (init_reg_sets_1): To here. - * fixinc/inclhack.tpl & fixincl.tpl: - Remove dynamic content from generated files +Wed Nov 25 14:54:46 1998 Zack Weinberg -Wed Apr 7 13:16:22 1999 John Wehle (john@feith.com) + * cpplib.h: Delete struct import_file. Add ihash element to + struct cpp_buffer. Delete dont_repeat_files and + import_hash_table elements from cpp_reader; change + all_include_files to a hash table. Delete all foobar_include + / last_foobar_include elements from struct cpp_options; put + back four such: quote_include, bracket_include, + system_include, after_include. Redo struct file_name_list + completely. Add new structure type include_hash. Add + prototypes for merge_include_chains and include_hash. Change + prototypes for finclude, find_include_file, and + append_include_chain to match changes below. - * i386.c (output_move_memory): Remove. - * i386.h: Likewise. + * cppfiles.c (simplify_pathname, include_hash, + remap_filename, merge_include_chains): New functions. + (add_import, lookup_import, open_include_file): Removed. + (INO_T_EQ): Define this (copied from cccp.c). + (hack_vms_include_specification): Remove all calls and #if 0 + out the definition. It was being called incorrectly and at + the wrong times. Until a VMSie can look at this, it's better + to not pretend to support it. + (append_include_chain): Change calling convention; now takes + only one directory at a time, and sets up the data structure + itself. + (redundant_include_p): Rewritten - this is now used for all + include redundancy, whether by #ifndef, #import, or #pragma + once. Looks up things in the include hash table. + (file_cleanup): Decrement pfile->system_include_depth here if + it's >0. + (find_include_file): Calling convention changed; now passes + around a struct include_hash instead of 3 separate parameters. + Guts ripped out and replaced with new include_hash mechanism. + (finclude): Calling convention changed as for + find_include_file. Error exits pulled out-of-line. Reformat. + (safe_read): Return a long, not an int. + (deps_output): Don't recurse. - * i386.md (movsi, movhi, movstricthi, movqi, movstrictqi, - movsf, movdf, movxf, movdi): Check no_new_pseudos instead - of (reload_in_progress | reload_completed). + * cpplib.c (is_system_include): Deleted. + (path_include): Fix up call to append_include_chain. + (do_include): Fix up calls to find_include_file and finclude. + Clean up dependency output a bit. Shorten obnoxiously lengthy + #import warning message. Don't decrement + pfile->system_include_depth here. + (do_pragma): Understand the include_hash structure. Reformat. + (do_endif): Correct handling of control macros. Understand + the include_hash. + (cpp_start_read): Fix up calls to finclude. Call + merge_include_chains. + (cpp_handle_option): Fix up calls to append_include_chain. + Understand the four partial include chains. + (cpp_finish): Add debugging code (#if 0-ed out) for the + include_hash. + (cpp_cleanup): Free the include_hash, not the import hash and + the all_include and dont_repeat lists which no longer exist. -Wed Apr 7 03:16:45 1999 Richard Henderson +Wed Nov 25 11:26:19 1998 Jeffrey A Law (law@cygnus.com) - * alpha.c (reg_no_subreg_operand): New function. - * alpha.h (PREDICATE_CODES): Add it. - * alpha.md (floatdi?f patterns): Use it for op1. + * toplev.c (no_new_pseudos): Define. + (rest_of_compilation): Set no_new_pseudos as needed. + * emit-rtl.c (gen_reg_rtx): Abort if we try to create a new pseudo + if no_new_pseudos is set. + * rtl.h (no_new_pseudos): Declare it. + * reload1.c (reload): Update comments. + * md.texi: Corresponding changes. - * alpha.c (alpha_end_function): Don't flag weak functions. +Wed Nov 25 11:26:17 1998 Bernd Schmidt -Wed Apr 7 02:11:55 1999 Richard Henderson + * reload1.c (reg_used_in_insn): Renamed from reg_used_by_pseudo. + (choose_reload_regs): Rename it here as well. When computing it, + also merge in used hardregs. - * expr.c (expand_builtin) [BUILT_IN_RETURN_ADDRESS]: Use - copy_to_mode_reg; don't force constants into a register. +1998-11-25 Zack Weinberg -Tue Apr 6 22:55:25 1999 Richard Henderson + * gcc.c: Split out Objective-C specs to... + * objc/lang-specs.h: here. (New file.) Make the specs cpplib + aware. - * toplev.c (compile_file): Typo flow_dump -> flow2_dump. + * c-lex.c (init_parse): Always initialize the filename global. + * objc/objc-act.c (lang_init): Always call check_newline at + beginning of file. -1999-04-06 Joseph S. Myers +Wed Nov 25 00:48:29 1998 Graham - * pdp11.c (simple_memory_operand): Add default case in switch. - * pdp11.h (TARGET_SWITCHES): Add help strings. - (NOTICE_UPDATE_CC): Don't include excess argument to format. - (ASM_OUTPUT_DOUBLE_INT): Remove. + * reload1.c (reload): Remove unused variable. + (reload_reg_free_for_value_p): Add missing parameter definition. -Tue Apr 6 22:09:40 1999 Richard Henderson + * jump.c (jump_optimize): Remove unused variable. - * expr.c (expand_builtin_setjmp): Put setjmp return label on - nonlocal_goto_handler_labels for flow. +Wed Nov 25 00:07:11 1998 Jeffrey A Law (law@cygnus.com) -Tue Apr 6 22:05:21 1999 Jan Hubicka - Richard Henderson + * Makefile.in (graph.o): Depend on $(RTL_H), not rtl.h. - * flow.c (verify_flow_info): New function. - (find_basic_blocks): Call it if ENABLE_CHECKING. - (merge_blocks): Don't merge if there are non-deletable labels. - * toplev.c (fatal_insn): Allow a printf-style arg list. - * toplev.h (fatal_insn): Update prototype. + * cse.c (fold_rtx): Make autoincrement addressing mode tests be + runtime selectable. + * expr.c (move_by_pieces): Similarly. + (move_by_pieces_1, clear_by_pieces, clear_by_pieces_1): Similarly. + * flow.c (find_auto_inc): Similarly. + (try_pre_increment): Similarly. + * loop.c (strength_reduce): Similarly. + * regclass.c (auto_inc_dec_reg_p): Similarly. + * regmove.c (try_auto_increment): Similarly. + (fixup_match_1): Similarly. + * rtl.h (HAVE_PRE_INCREMENT): Define if not already defined. + (HAVE_PRE_DECREMENT): Similarly. + (HAVE_POST_INCREMENT, HAVE_POST_DECREMENT): Similarly. + * Corresponding changes to all target header files. + * tm.texi: Update docs for autoinc addressing modes. -Tue Apr 6 16:18:58 1999 Jan Hubicka +Tue Nov 24 20:24:59 1998 Jim Wilson - * flow.c (split_edge) update correctly flow graph, disable - EDGE_CRITICAL flag on the split edge, update NUSES for new label. + * configure.in (m68020-*-elf*, m68k-*-elf*): New targets. + * configure: Rebuild. + * config/elfos.h: New file. + * config/m68k/m68020-elf.h, config/m68k/m68kelf.h, + config/m68k/t-m68kelf: New file. -Tue Apr 6 15:47:51 1999 Richard Henderson +Tue Nov 24 13:40:06 1998 Jeffrey A Law (law@cygnus.com) - * emit-rtl.c (gen_rtx_CONST_DOUBLE): Use XWINT not XINT. - Clear third and following slots, if they exist. + * Makefile.in (HOST_AR): Define. + (HOST_AR_FLAGS, HOST_RANLIB, HOST_RANLIB_TEST): Similarly. + (libcpp.a): Use the host tools explicitly. + (STAGESTUFF): Add libcpp.a. -Tue Apr 6 15:45:28 1999 Richard Henderson +Tue Nov 24 09:33:49 1998 Nick Clifton - * flow.c (create_basic_block): Make sure the bb note is in the block. - (can_delete_note_p): Rename from delete_note_p. - (delete_insn_chain): Preserve undeleteable labels too. - (tidy_fallthru_edge): Use next_real_insn instead of confusing - inline code. + * config/m32r/m32r.md (movstrsi_internal): Describe changes made + to source and destination registers. -1999-04-06 Zack Weinberg +Mon Nov 23 20:28:02 1998 Mike Stump - * cppexp.c (parse_charconst): Initialize c. - (cpp_parse_expr): Initialize rprio. - * cppfiles.c (merge_include_chains): Initialize prev. - (finclude): Set fp->line_base to fp->buf before returning. - * cpphash.c (macroexpand): Initialize token. - * cppspec.c (lang_specific_driver): Change suff to - const char *const *. + * libgcc2.c (top_elt): Remove top_elt, it isn't thread safe. + The strategy we now use is to pre allocate the top_elt along + with the EH context so that each thread has its own top_elt. + This is necessary as the dynamic cleanup chain is used on the + top element of the stack and each thread MUST have its own. + (eh_context_static): Likewise. + (new_eh_context): Likewise. + (__sjthrow): Likewise. -1999-04-06 Zack Weinberg +Mon Nov 23 20:25:03 1998 Jason Merrill - * cppinit.c (install_predefs): Delete function. - (cpp_start_read): Don't call install_predefs. - (cpp_handle_option): Remove case 'u' and all refs to - opts->inhibit_predefs. - (print_help): Don't mention -undef. - (initialize_builtins): Define __HAVE_BUILTIN_SETJMP__, to - match cccp. - * cpplib.h (struct cpp_options): Remove inhibit_predefs - member. - - * cccp.c (predefs): Delete variable. - (main): Remove case 'u' in argument parse loop, - 'inhibit_predefs' variable, and the code block that would - process CPP_PREDEFINES. - (initialize_builtins): Don't define __OBJC__, the driver will - do that. - - * gcc.c (default_compilers): Remove -undef from all specs that - invoke a C preprocessor. - * ch/lang-specs.h: Likewise. - * cp/lang-specs.h: Likewise. - * f/lang-specs.h: Likewise. - * objc/lang-specs.h: Likewise. - -Mon Apr 5 11:55:31 1999 Donn Terry (donn@interix.com) - - * Makefile.in (SUBDIR_FLAGS_TO_PASS): Fix misapplied patch. - -Mon Apr 5 11:51:38 1999 Jeffrey A Law (law@cygnus.com) - - * m68k.md (movdf): Hide GPR sources & destinations from regclass. - -Mon Apr 5 09:54:42 1999 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Mon Apr 5 05:55:15 1999 Bruce Korb - - * fixincl.tpl: Separate "-e" from its argument, a la - the Sat Apr 3 17:05:13 1999 fix. - * genfixes: Ensure that the server shell is _NOT_ csh. - -Mon Apr 5 03:52:30 1999 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Mon Apr 5 04:47:14 1999 Jeffrey A Law (law@cygnus.com) - - * i386.c (x86_double_with_add): Turn off for Pentium and PPro. - (small_shift_operand, output_ashlsi3): New functions. - * i386.h (small_shift_operand, output_ashlsi3): Declare. - * i386.md (ashlsi3): Simplify ahlsi3 patterns. Remove splitters - that are no longer needed. - -Sun Apr 4 04:05:04 1999 Jeffrey A Law (law@cygnus.com) - - * stmt.c (expand_loop_end): When copying the loop exit test, - do not walk into a nested loop. - -Sun Apr 4 00:14:54 1999 Jeffrey A Law (law@cygnus.com) - - * fixinc/hackshell.tpl: Skip links to directories, to avoid - removing them. - * fixinc/inclhack.tpl: Likewise. - * fixinc/fixinc.sh, fixinc/fixincl.x, fixinc/inclhack.sh: Rebuilt. - -Sat Apr 3 23:46:13 1999 David Edelsohn + * i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Wrap in do...while. + * i386.md (prologue_get_pc): Remove unused variable. - * rs6000.md (addsi3, iorsi3, xorsi3, adddi3, iordi3, xordi3, - movsi_got, movsi, movsf): Use no_new_pseudos. - * rs6000.c (rs6000_got_register): Likewise. - (offsettable_mem_opereand): Use || not |. +Mon Nov 23 17:05:40 1998 Geoffrey Noer -Sat Apr 3 22:02:56 1999 Jeffrey A Law (law@cygnus.com) + * i386/xm-cygwin.h: Rename cygwin_ path funcs back to cygwin32_. - * acconfig.h (ENABLE_CHECKING): Remove redundant #undef. - * config.in: Rebuilt. +Mon Nov 23 16:40:00 1998 Ulrich Drepper -Sat Apr 3 16:22:59 1999 Toshiyasu Morita (tm@netcom.com) + * Makefile.in (OBJS): Add graph.o. + (graph.o): New dependency list. + * flags.h: Declare dump_for_graph and define graph_dump_types type. + * print-rtl.c (dump_for_graph): Define new variable. + (print_rtx): Rewrite to allow use in graph dumping functions. + * toplev.c: Declare print_rtl_graph_with_bb, clean_graph_dump_file, + finish_graph_dump_file. + Define graph_dump_format. + (compile_file): If graph dumping is enabled also clear these files. + Finish graph dump files. + (rest_of_compilation): Also dump graph information if enabled. + (main): Recognize -dv to enabled VCG based graph dumping. + * graph.c: New file. Graph dumping functions. - * gcc.texi: Add info on regmove pass. +Mon Nov 23 16:39:04 1998 Richard Henderson - * regmove.c (fixup_match_1): Consistently evaluate - HAVE_POST_INCREMENT and HAVE_POST_DECREMENT. + * configure.in: Look for . + * system.h: Include it before substitute S_ISREG definitions. -Sat Apr 3 19:21:05 1999 Alexandre Oliva +Mon Nov 23 17:40:37 1998 Gavin Romig-Koch - * configure.in (DEFAULT_LINKER, DEFAULT_ASSEMBLER): Use grep - instead of test and sed to check whether they're GNU programs. - * configure: Rebuilt. + * config/mips/abi.h: Use ABI_O64, duplicating ABI_32 usage. + * config/mips/iris6.h: Same. + * config/mips/mips.md: Same. + * config/mips/mips.c: Same; also add "-mabi=o64" option. + * config/mips/mips.h: Same; also define ABI_O64. -Sat Apr 3 17:57:35 1999 Alexandre Oliva +Mon Nov 23 17:02:27 1998 Kaveh R. Ghazi - * Makefile.in (install-headers-tar, install-headers-cpio): Avoid - problems with CDPATH. - Reported by Ralf Canis + * configure.in: Use AC_PREREQ(2.12.1). -Sat Apr 3 13:50:16 1999 Jeffrey A Law (law@cygnus.com) +Mon Nov 23 10:16:38 1998 Melissa O'Neill - * fixinc.x86-linux-gnu: Deleted. + * cccp.c (S_ISREG, S_ISDIR): Delete defines. + * cpplib.c, gcc.c: Likewise. + * system.h (S_ISREG, S_ISDIR): Define if not already defined. -Sat Apr 3 17:05:13 1999 Alexandre Oliva +Mon Nov 23 09:53:44 1998 Richard Henderson - * inclhack.tpl: Insert spaces between `sed -e' and '...'. - Reported by Kaveh R. Ghazi - * fixinc/fixincl.sh, fixinc/fixincl.x, fixinc/inclhack.sh: Regen. + * local-alloc.c (local_alloc): Use malloc not alloca for + reg_qty, reg_offset, ref_next_in_qty. -Sat Apr 3 14:54:46 1999 Craig Burley +Mon Nov 23 16:46:46 1998 J"orn Rennecke - * tree.def (BLOCK): Fix typo in comment. + * caller-save.c (insert_one_insn): Initialize the live_before and + live_after register sets. -Sat Apr 3 00:53:29 1999 John Wehle (john@feith.com) + Add SH4 support: - * i386.md (floatsisf2, floatdisf2, floatsidf2, floatdidf2, - floatsixf2, floatdixf2): Rewrite using a splitter. + * config/sh/lib1funcs.asm (___movstr_i4_even, ___movstr_i4_odd): Define. + (___movstrSI12_i4, ___sdivsi3_i4, ___udivsi3_i4): Define. + * sh.c (reg_class_from_letter, regno_reg_class): Add DF_REGS. + (fp_reg_names, assembler_dialect): New variables. + (print_operand_address): Handle SUBREGs. + (print_operand): Added 'o' case. + Don't use adj_offsettable_operand on PRE_DEC / POST_INC. + Name of FP registers depends on mode. + (expand_block_move): Emit different code for SH4 hardware. + (prepare_scc_operands): Use emit_sf_insn / emit_df_insn as appropriate. + (from_compare): Likewise. + (add_constant): New argument last_value. Changed all callers. + (find_barrier): Don't try HImode load for FPUL_REG. + (machine_dependent_reorg): Likewise. + (sfunc_uses_reg): A CLOBBER cannot be the address register use. + (gen_far_branch): Emit a barrier after the new jump. + (barrier_align): Don't trust instruction lengths before + fixing up pcloads. + (machine_dependent_reorg): Add support for FIRST_XD_REG .. LAST_XD_REG. + Use auto-inc addressing for fp registers if doubles need to + be loaded in two steps. + Set sh_flag_remove_dead_before_cse. + (push): Support for TARGET_FMOVD. Use gen_push_fpul for fpul. + (pop): Support for TARGET_FMOVD. Use gen_pop_fpul for fpul. + (calc_live_regs): Support for TARGET_FMOVD. Don't save FPSCR. + Support for FIRST_XD_REG .. LAST_XD_REG. + (sh_expand_prologue): Support for FIRST_XD_REG .. LAST_XD_REG. + (sh_expand_epilogue): Likewise. + (sh_builtin_saveregs): Use DFmode moves for fp regs on SH4. + (initial_elimination_offset): Take TARGET_ALIGN_DOUBLE into account. + (arith_reg_operand): FPUL_REG is OK for SH4. + (fp_arith_reg_operand, fp_extended_operand): New functions. + (tertiary_reload_operand, fpscr_operand): Likewise. + (commutative_float_operator, noncommutative_float_operator): Likewise. + (binary_float_operator, get_fpscr_rtx, emit_sf_insn): Likewise. + (emit_df_insn, expand_sf_unop, expand_sf_binop): Likewise. + (expand_df_unop, expand_df_binop, expand_fp_branch): Likewise. + (emit_fpscr_use, mark_use, remove_dead_before_cse): Likewise. + * sh.h (CPP_SPEC): Add support for -m4, m4-single, m4-single-only. + (CONDITIONAL_REGISTER_USAGE): Likewise. + (HARD_SH4_BIT, FPU_SINGLE_BIT, SH4_BIT, FMOVD_BIT): Define. + (TARGET_CACHE32, TARGET_SUPERSCALAR, TARGET_HARWARD): Define. + (TARGET_HARD_SH4, TARGET_FPU_SINGLE, TARGET_SH4, TARGET_FMOVD): Define. + (target_flag): Add -m4, m4-single, m4-single-only, -mfmovd. + (OPTIMIZATION_OPTIONS): If optimizing, set flag_omit_frame_pointer + to -1 and sh_flag_remove_dead_before_cse to 1. + (ASSEMBLER_DIALECT): Define to assembler_dialect. + (assembler_dialect, fp_reg_names): Declare. + (OVERRIDE_OPTIONS): Add code for TARGET_SH4. + Hide names of registers that are not accessible. + (CACHE_LOG): Take TARGET_CACHE32 into account. + (LOOP_ALIGN): Take TARGET_HARWARD into account. + (FIRST_XD_REG, LAST_XD_REG, FPSCR_REG): Define. + (FIRST_PSEUDO_REGISTER: Now 49. + (FIXED_REGISTERS, CALL_USED_REGISTERS): Include values for registers. + (HARD_REGNO_NREGS): Special treatment of FIRST_XD_REG .. LAST_XD_REG. + (HARD_REGNO_MODE_OK): Update. + (enum reg_class): Add DF_REGS and FPSCR_REGS. + (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REG_ALLOC_ORDER): Likewise. + (SECONDARY_OUTPUT_RELOAD_CLASS, SECONDARY_INPUT_RELOAD_CLASS): Update. + (CLASS_CANNOT_CHANGE_SIZE, DEBUG_REGISTER_NAMES): Define. + (NPARM_REGS): Eight floating point parameter registers on SH4. + (BASE_RETURN_VALUE_REG): SH4 also passes double values + in floating point registers. + (GET_SH_ARG_CLASS): Likewise. + Complex float types are also returned in float registers. + (BASE_ARG_REG): Complex float types are also passes in float registers. + (FUNCTION_VALUE): Change mode like PROMOTE_MODE does. + (LIBCALL_VALUE): Remove trailing semicolon. + (ROUND_REG): Round when double precision value is passed in floating + point register(s). + (FUNCTION_ARG_ADVANCE): No change wanted for SH4 when things are + passed on the stack. + (FUNCTION_ARG): Little endian adjustment for SH4 SFmode. + (FUNCTION_ARG_PARTIAL_NREGS): Zero for SH4. + (TRAMPOLINE_ALIGNMENT): Take TARGET_HARWARD into account. + (INITIALIZE_TRAMPOLINE): Emit ic_invalidate_line for TARGET_HARWARD. + (MODE_DISP_OK_8): Not for SH4 DFmode. + (GO_IF_LEGITIMATE_ADDRESS): No base reg + index reg for SH4 DFmode. + Allow indexed addressing for PSImode after reload. + (LEGITIMIZE_ADDRESS): Not for SH4 DFmode. + (LEGITIMIZE_RELOAD_ADDRESS): Handle SH3E SFmode. + Don't change SH4 DFmode nor PSImode RELOAD_FOR_INPUT_ADDRESS. + (DOUBLE_TYPE_SIZE): 64 for SH4. + (RTX_COSTS): Add PLUS case. + Increase cost of ASHIFT, ASHIFTRT, LSHIFTRT case. + (REGISTER_MOVE_COST): Add handling of R0_REGS, FPUL_REGS, T_REGS, + MAC_REGS, PR_REGS, DF_REGS. + (REGISTER_NAMES): Use fp_reg_names. + (enum processor_type): Add PROCESSOR_SH4. + (sh_flag_remove_dead_before_cse): Declare. + (rtx_equal_function_value_matters, fpscr_rtx, get_fpscr_rtx): Declare. + (PREDICATE_CODES): Add binary_float_operator, + commutative_float_operator, fp_arith_reg_operand, fp_extended_operand, + fpscr_operand, noncommutative_float_operator. + (ADJUST_COST): Use different scale for TARGET_SUPERSCALAR. + (SH_DYNAMIC_SHIFT_COST): Cheaper for SH4. + * sh.md (attribute cpu): Add value sh4. + (attrbutes fmovd, issues): Define. + (attribute type): Add values dfp_arith, dfp_cmp, dfp_conv, dfdiv. + (function units memory, int, mpy, fp): Make dependent on issue rate. + (function units issue, single_issue, load_si, load): Define. + (function units load_store, fdiv, gp_fpul): Define. + (attribute hit_stack): Provide proper default. + (use_sfunc_addr+1, udivsi3): Predicated on ! TARGET_SH4. + (udivsi3_i4, udivsi3_i4_single, divsi3_i4, divsi3_i4_single): New insns. + (udivsi3, divsi3): Emit special patterns for SH4 hardware, + (mulsi3_call): Now uses match_operand for function address. + (mulsi3): Also emit code for SH1 case. Wrap result in REG_LIBCALL / + REG_RETVAL notes. + (push, pop, push_e, pop_e): Now define_expands. + (push_fpul, push_4, pop_fpul, pop_4, ic_invalidate_line): New expanders. + (movsi_ie): Added y/i alternative. + (ic_invalidate_line_i, movdf_i4): New insns. + (movdf_i4+[123], reload_outdf+[12345], movsi_y+[12]): New splitters. + (reload_indf, reload_outdf, reload_outsf, reload_insi): New expanders. + (movdf): Add special code for SH4. + (movsf_ie, movsf_ie+1, reload_insf, calli): Make use of fpscr visible. + (call_valuei, calli, call_value): Likewise. + (movsf): Emit no-op move. + (mov_nop, movsi_y): New insns. + (blt, sge): Generalize to handle DFmode. + (return predicate): Call emit_fpscr_use and remove_dead_before_cse. + (block_move_real, block_lump_real): Predicate on ! TARGET_HARD_SH4. + (block_move_real_i4, block_lump_real_i4, fpu_switch): New insns. + (fpu_switch0, fpu_switch1, movpsi): New expanders. + (fpu_switch+[12], fix_truncsfsi2_i4_2+1): New splitters. + (toggle_sz): New insn. + (addsf3, subsf3, mulsf3, divsf3): Now define_expands. + (addsf3_i, subsf3_i, mulsf3_i4, mulsf3_ie, divsf3_i): New insns. + (macsf3): Make use of fpscr visible. Disable for SH4. + (floatsisf2): Make use of fpscr visible. + (floatsisf2_i4): New insn. + (floatsisf2_ie, fixsfsi, cmpgtsf_t, cmpeqsf_t): Disable for SH4. + (ieee_ccmpeqsf_t): Likewise. + (fix_truncsfsi2): Emit different code for SH4. + (fix_truncsfsi2_i4, fix_truncsfsi2_i4_2, cmpgtsf_t_i4): New insns. + (cmpeqsf_t_i4, ieee_ccmpeqsf_t_4): New insns. + (negsf2, sqrtsf2, abssf2): Now expanders. + (adddf3, subdf3i, muldf2, divdf3, floatsidf2): New expanders. + (negsf2_i, sqrtsf2_i, abssf2_i, adddf3_i, subdf3_i): New insns. + (muldf3_i, divdf3_i, floatsidf2_i, fix_truncdfsi2_i): New insns. + (fix_truncdfsi2, cmpdf, negdf2, sqrtdf2, absdf2): New expanders. + (fix_truncdfsi2_i4, cmpgtdf_t, cmpeqdf_t, ieee_ccmpeqdf_t): New insns. + (fix_truncdfsi2_i4_2+1): New splitters. + (negdf2_i, sqrtdf2_i, absdf2_i, extendsfdf2_i4): New insns. + (extendsfdf2, truncdfsf2): New expanders. + (truncdfsf2_i4): New insn. + * t-sh (LIB1ASMFUNCS): Add _movstr_i4, _sdivsi3_i4, _udivsi3_i4. + (MULTILIB_OPTIONS): Add m4-single-only/m4-single/m4. + * float-sh.h: When testing for __SH3E__, also test for + __SH4_SINGLE_ONLY__ . + * va-sh.h (__va_freg): Define to float. + (__va_greg, __fa_freg, __gnuc_va_list, va_start): + Define for __SH4_SINGLE_ONLY__ like for __SH3E__ . + (__PASS_AS_FLOAT, __TARGET_SH4_P): Likewise. + (__PASS_AS_FLOAT): Use different definition for __SH4__ and + __SH4_SINGLE__. + (TARGET_SH4_P): Define. + (va_arg): Use it. -Fri Apr 2 17:36:10 1999 Nick Clifton + * sh.md (movdf_k, movsf_i): Tweak the condition so that + init_expr_once is satisfied about the existence of load / store insns. - * config/arm/arm.c (arm_print_operand): Print large constants in - hex rather than decimal. + * sh.md (movsi_i, movsi_ie, movsi_i_lowpart, movsf_i, movsf_ie): + Change m constraint in source operand to mr / mf. -Fri Apr 2 17:23:58 1999 Nick Clifton + * va-sh.h (__va_arg_sh1): Use __asm instead of asm. - * print-rtl.c (print_rtx): Use both HOST_WIDE_INT_PRINT_DEC - and HOST_WIDE_INT_PRINT_HEX to display constants. + * (__VA_REEF): Define. + (__va_arg_sh1): Use it. -1999-04-02 Zack Weinberg + * va-sh.h (va_start, va_arg, va_copy): Add parentheses. - * config/i386/i386.h: Document all TARGET_SWITCHES or add - explicit null initializer. +Sun Nov 22 21:34:02 1998 Jeffrey A Law (law@cygnus.com) - * config/i386/cygwin.h: Document all SUBTARGET_SWITCHES. - * config/i386/dgux.h: Likewise. - * config/i386/osf1elf.h: Likewise. - * config/i386/win32.h: Likewise. - * config/i386/osfrose.h: Likewise. Drop obsolete -mno-ident option. + * i386/dgux.c (struct option): Add new "description field". + * m88k/m88k.c (struct option): Likewise. -Fri Apr 2 17:49:44 1999 Toshiyasu Morita +Sun Nov 22 16:07:57 1998 Jeff Law (law@cygnus.com) - * regmove.c (fixup_match_1): Remove now useless if (0). + * version.c: Bump for snapshot. -Sat Apr 3 11:37:20 1999 Michael Hayes +Sun Nov 22 13:40:02 1998 Bernd Schmidt - * tm.texi (USE_LOAD_POST_DECREMENT, USE_LOAD_PRE_DECREMENT, - USE_STORE_POST_DECREMENT, USE_STORE_PRE_DECREMENT): Document. - (USE_LOAD_POST_INCREMENT, USE_LOAD_PRE_INCREMENT, - USE_STORE_POST_INCREMENT, USE_STORE_PRE_INCREMENT): Fix documentation. + * regmove.c (regmove_profitable_p): Use return value of find_matches + properly. - * rtl.h (USE_LOAD_POST_DECREMENT, USE_LOAD_PRE_DECREMENT, - USE_STORE_POST_DECREMENT, USE_STORE_PRE_DECREMENT, - USE_LOAD_POST_INCREMENT, USE_LOAD_PRE_INCREMENT, - USE_STORE_POST_INCREMENT, USE_STORE_PRE_INCREMENT): Provide default - definition. +Sun Nov 22 02:47:37 1998 Jeff Law (law@cygnus.com) - * expr.c (USE_LOAD_POST_INCREMENT, USE_LOAD_PRE_INCREMENT, - USE_STORE_POST_INCREMENT, USE_STORE_PRE_INCREMENT): Delete default - definition. + * version.c: Bump for snapshot. -Fri Apr 2 16:03:05 1999 Jeffrey A Law (law@cygnus.com) +Sat Nov 21 22:12:09 1998 Jeffrey A Law (law@cygnus.com) - * fixinc.dgux, fixinc.interix, fixinc.irix, fixinc.ptx: Deleted. - * fixinc.sco, fixinc.svr4, fixinc.winnt, fixinc.wrap: Likewise. + * reload1.c (eliminate_regs): Do not lose if eliminate_regs is called + without reload having been called earlier. -Fri Apr 2 15:46:25 1999 Donn Terry (donn@interix.com) + * v850.c (ep_memory_operand): Offsets < 0 are not valid for EP + addressing modes. + (v850_reorg): Similarly. - * configure.in: Set and substitute quoted_cc_set_by_configure. - * configure: Rebuilt. - * Makefile.in (SUBDIR_FLAGS_TO_PASS): Fix quoting problem with ``. - -Fri Apr 2 14:35:45 1999 Stan Cox - - * config/i386/cygwin.h (CPP_SPEC): Use mingw_include_path instead - of a hardcoded path for -mno-cygwin. - (mingw_include_path): New. - -1999-04-02 Joseph S. Myers - - * pdp11.c: Include "recog.h". - (output_function_prologue): Remove unused variables `nregs', `i', - `offset'. - (output_function_epilogue): Remove unused variables - `may_call_alloca', `nregs', `regno', `adjust_fp'. - (output_ascii): Mark as returning void. - (print_operand_address: Likewise. - (simple_memory_operand): Remove unused variables `plus0', `plus1', - `offset'. - * pdp11.h: Declare functions `arith_operand', - `const_immediate_operand', `expand_shift_operand', - `legitimate_address_p', `notice_update_cc_on_set', `output_ascii', - `output_function_epilogue', `output_function_prologue', - `print_operand_address', `register_move_cost', - `simple_memory_operand'. - (HARD_REGNO_MODE_OK): Parenthesize `REGNO' arg. - (REGNO_REG_CLASS): Likewise. - * pdp11.md: Add explicit `int' to `static count' (in two places). - (addhi3): Add explicit braces to avoid ambiguous else. - (addqi3): Likewise. - (ashlhi3): Likewise. - -Fri Apr 2 14:17:10 1999 Jerry James - - * gcc/invoke.texi: Add documentation for additional supported - MIPS CPU types, options -mips16 and -mentry, and ABI and ISA - defaults. - -Fri Apr 2 14:12:06 1999 John Wehle (john@feith.com) - - * i386.md: Delete floating point compare, add, subtract, - multiply, and divide patterns which allowed integer - operands. - * i386.c (output_387_binary_op): Delete unused code. - (output_float_compare): Likewise. - -Fri Apr 2 11:53:37 1999 John Wehle (john@feith.com) - - * i386.md (movsf+1, movdf+1, movxf+1): Update constraints - so that SECONDARY_MEMORY_RELOAD is used. Remove dead code. - -1999-04-02 Bruce Korb - - * fixinc/mkfixinc.sh: Added support for x86-interix. - * fixinc/fixinc.interix: Fixincludes script, slight changes - from ./fixinc.interix. Untested (needs interix box). - * fixinc/inclhack.def: - Complete the change to the 'fixinc.tmp' file. - Fixed regex for finding C++ headers. - * fixincl.x, fixincl.sh, inclhack.sh: Regenerate. - -Fri Apr 2 11:36:12 1999 Jan Hubicka (hubicka@paru.cas.cz) - - * i386.c (print_operand_address, case REG): Do not use ESI addressing - mode for the K6. - - * i386.c (print_operand_address, case MULT): Use more efficient - encoding (mult (reg) (const_int 2)). - -Thu Apr 1 17:01:50 1999 Richard Henderson - - Move over patch from Bernd Schmidt from GC branch: - * emit-rtl.c (gen_rtx_CONST_DOUBLE): New function. - (gen_rtx): Call it. Tidy cases. - * rtl.h (gen_rtx_CONST_DOUBLE): Prototype it. - * gengenrtl.c: Add commentary. - (special_rtx): Also match CONST_DOUBLE. - (gencode): Emit call to memset instead of bzero. - -Fri Apr 2 12:58:26 1999 Michael Hayes - - * config/c4x/c4x.md (ashlhi3, lshrhi3, ashrhi3): Force operand 1 - into a register if shift count not constant. - (ashlhi3_reg, lshrhi3_reg, ashrhi3_reg): Ensure that operand 1 - is a register. - -Fri Apr 2 12:19:17 1999 Michael Hayes - - * config/c4x/c4x.md (*db): Enable pattern if TARGET_LOOP_UNSIGNED - is nonzero. - (movstrqi_small, movstrqi_large, *cmpstrqi): Add + modifier to address - register constraints. - (*movhi_clobber+1): Modify splitter pattern to handle destination - register that is used in the source address. - (*xorhi3_clobber): Replace AND with XOR in call to legitimize_operands. + * loop.c (check_dbra_loop): Avoid using gen_add2_insn. -Fri Apr 2 12:16:15 1999 Michael Hayes +Sat Nov 21 02:18:38 1998 J"orn Rennecke - * config/c4x/c4x.h: Added more comments. + * loop.c (move_movables): Start of libcall might be new loop start. -Fri Apr 2 11:58:22 1999 Michael Hayes +Fri Nov 20 12:14:16 1998 Kaveh R. Ghazi - * config/c4x/c4x.c (c4x_emit_move_sequence): Force invalid QImode - constants into memory if we get called directly from gen_move_insn - rather than emit_move_insn. - (c4x_legitimize_address): Fix up LABEL_REF addresses. + * hash.c (hash_table_init_n): Wrap prototype arguments in PARAMS(). -Thu Apr 1 12:04:05 1999 Jim Wilson +Fri Nov 20 08:34:00 1998 Bernd Schmidt - * expr.c (store_field): When check direct_store, assume all complex - modes can be directly stored. - -1999-04-01 Bruce Korb + * function.c (nonlocal_goto_handler_slots): Renamed from + nonlocal_goto_handler_slot; now an EXPR_LIST chain. + (push_function_context_to): Adjust for this change. + (pop_function_context_from): Likewise. + (init_function_start): Likewise. + (expand_function_end): Likewise. + * function.h (struct function): Likewise. + * calls.c (expand_call): Likewise. + * explow.c (allocate_dynamic_stack_space): Likewise. + * expr.h (nonlocal_goto_handler_slots): Rename its declaration. + * stmt.c (declare_nonlocal_label): Make a new handler slot for each + label. + (expand_goto): When doing a nonlocal goto, find corresponding handler + slot for it. Don't put the label address in the static chain register. + (expand_end_bindings): Break out nonlocal goto handling code into + three new functions. + (expand_nl_handler_label, expand_nl_goto_receiver, + expand_nl_goto_receivers): New static functions, broken out of + expand_end_bindings and adapted to create one handler per nonlocal + label. + * function.c (delete_handlers): Delete insn if it references any of + the nonlocal goto handler slots. + * i960.md (nonlocal_goto): Comment out code that modifies + static_chain_rtx. + * sparc.md (nonlocal_goto): Likewise. + (goto_handler_and_restore_v9): Comment out. + (goto_handler_and_restore_v9_sp64): Comment out. - * fixinc/genfixes: New shell script that runs autogen - to create the generated files. +Thu Nov 19 23:44:38 1998 Bernd Schmidt -1999-04-01 Manfred Hollstein + * expr.c (STACK_BYTES): Delete unused macro. + * calls.c: Provide default for PREFERRED_STACK_BOUNDARY. + (STACK_BYTES): Use PREFERRED_STACK_BOUNDARY, not STACK_BOUNDARY. + (expand_call): Likewise. + (emit_library_call): Likewise. + (emit_library_call_value): Likewise. + * function.c: Provide default for PREFERRED_STACK_BOUNDARY. + (STACK_BYTES): Use PREFERRED_STACK_BOUNDARY, not STACK_BOUNDARY. + * explow.c: Provide default for PREFERRED_STACK_BOUNDARY. + (round_push): Use PREFERRED_STACK_BOUNDARY, not STACK_BOUNDARY. + (allocate_dynamic_stack_space): Likewise. + * tm.texi (PREFERRED_STACK_BOUNDARY): Document new macro. + (STACK_BOUNDARY): Update description to reflect the new situation. - * Makefile.in (cppmain$(exeext)): Depend on intl.o. Link in intl.o. +Thu Nov 19 22:20:51 1998 Jeffrey A Law (law@cygnus.com) -Thu Apr 1 03:48:34 1999 H.J. Lu (hjl@gnu.org) + * reorg.c (relax_delay_slots): When optimizing for code size, if a + return with a filled delay slot is followed by a return with an + unfilled delay slot, delete the first return and reemit the insn + that was previously in its delay slot. - * i386.c (output_fp_conditional_move): Abort for LT, LE, GE, and GT - signed integer comparisons. + * i860.c (single_insn_src_p): Add missing parens. + * ginclude/math-3300.h: Likewise. - * i386.c (output_int_conditional_move): Use "enum rtx_code" for code - type. +Thu Nov 19 20:55:59 1998 H.J. Lu (hjl@gnu.org) - * i386.c (notice_update_cc): No need to check the INT mode for - conditional moves since FLOAT conditional moves don't affect cc0. + * regclass.c (init_reg_sets_1): Add prototype. + (init_reg_modes): Likewise. -Thu Apr 1 02:17:18 1999 Jeffrey A Law (law@cygnus.com) +1998-11-19 Zack Weinberg - * fixinc/inclhack.def (zzz_ki_syscalls, zzz_time): Fix trigger - string to only match on hpux11. - * fixinc/fixincl.x, fixinc/inclhack.sh, fixinc/fixinc.sh: Rebuilt. + * c-common.c: Change warning messages to say `comparison is + always true' or `comparison is always false' instead of the + confusing `is always 0', `is always 1'. -Thu Apr 1 01:09:27 1999 Alexandre Oliva +Thu Nov 19 19:05:49 1998 Per Bothner - * fixinc/hackshell.tpl: Complete transition to fixinc.tmp. - * fixinc/inclhack.sh: Rebuilt. + * print-tree.c (print_node): After printing BLOCK or BIND_EXPR, + break instead of return (which loses closing '>'). - * fixinc/inclhack.def: Fix typos in c_asm.h fix. - * fixinc/fixincl.x, fixinc/inclhack.sh, fixinc/fixinc.sh: Rebuilt. +Thu Nov 19 19:34:13 1998 Jeffrey A Law (law@cygnus.com) -Wed Mar 31 17:20:11 1999 Jeffrey A Law (law@cygnus.com) + * i386.h (LEGITIMATE_CONSTANT_P): Reject CONST_DOUBLEs that are not + standard 387 constants. - * toplev.c (rest_of_compilation): Allow dbr_schedule to write to - the dump file too. + * i386.md (jump): Explicitly set "memory" attribute. + (indirect_jump, prologue_set_stack_ptr): Likewise. + (prologue_get_pc_and_set_got, pop): Likewise. + (allocate_stack_worder, blockage, return_internal): Likewise. + (return_pop_internal, nop): Likewise. + (epilogue_set_stack_ptr, leave): Likewise. -Wed Mar 31 12:32:43 1999 Richard Henderson +Thu Nov 19 15:42:54 1998 Nick Clifton - * flow.c (find_basic_blocks): New argument `do_cleanup'. - Conditionally call delete_unreachable_blocks. - (free_basic_block_vars): Zero ENTRY/EXIT data. - (allocate_for_life_analysis): Kill. Split into... - (allocate_bb_life_data, allocate_reg_life_data): ... new functions. - (life_analysis_1): Update. - * gcse.c (gcse_main): Update find_basic_blocks call. - * toplev.c (rest_of_compilation): Likewise. - * stupid.c (stupid_life_analysis): Update life data calls. - * rtl.h, output.h: Update prototypes. + * config/arm/coff.h: Set USER_LABEL_PREFIX to "_". -Wed Mar 31 12:10:00 1999 Bruce Korb +Thu Nov 19 23:20:59 1998 J"orn Rennecke - * inclhack.def (several): Added spaces in tests to ensure - correct shell syntax. Added c_asm.h fix from fixincludes. - Also corrected the corrected fix to C++ comments :-} + * reload1.c (reload_reg_free_for_value_p): + Early auto_inc reloads don't conflict with outputs. - * inclhack.tpl: Changed method of traversing symlink trees - so that file name matching will work correctly. +Thu Nov 19 12:58:55 1998 Kaveh R. Ghazi - * fixincl.c, hackshell.tpl: Fallout from above. - * fixincl.x, inclhack.sh, fixincl.sh: Rebuilt. + * configure.in: Don't do AC_CHECK_HEADERS(wait.h sys/wait.h). + Instead call AC_HEADER_SYS_WAIT. -Tue Mar 30 10:43:49 1999 Philip Blundell + * collect2.c: Don't provide defaults for sys/wait.h macros. + * gcc.c: Likewise. + * protoize.c: Likewise. Also, don't include sys/wait.h. - * config/arm/aout.h (DBX_DEBUGGING_INFO): Avoid redefinition if - dbxelf.h was previously included. - (CPP_APCS_PC_DEFAULT_SPEC): No need to undefine. + * system.h: Include sys/wait.h and provide macro defaults. - * config/arm/linux-elf.h (FP_DEFAULT): Correctly override the - definition from arm.h. +1998-11-19 Andreas Schwab -Wed Mar 31 10:33:37 1999 Kaveh R. Ghazi + * Makefile.in (mandir): Set to @mandir@. + (man1dir): New variable to hold the former value of $(mandir). + Replace all uses of $(mandir) by $(man1dir). - * Makefile.in (c-gperf.h): Generate using gperf language 'C', not - 'KR-C', so gperf uses the `const' keyword on strings. +Wed Nov 18 16:31:28 1998 Jim Wilson - * c-parse.gperf (resword): Const-ify a char*. + * reload.c (find_reloads_address_part): If have a CONST_INT, create + a new one before passing it to force_const_mem. -Wed Mar 31 01:49:31 1999 Ian Lance Taylor + * reload.c (find_reloads_toplev): Pass &x instead of NULL_PTR in + find_reloads_address call. - * t-rtems (LIMITS_H_TEST, LIBGCC2_INCLUDES): Define. +Wed Nov 18 22:13:00 1998 J"orn Rennecke -Wed Mar 31 00:50:48 1999 Jeffrey A Law (law@cygnus.com) + * expr.c (store_expr): Don't generate load-store pair + if TEMP is identical (according to ==) with TARGET. - * system.h (STDERR_FILENO): Fix typo. +Tue Nov 17 22:25:16 1998 J"orn Rennecke - * inclhack.def (bool): Also fix bogus bool in curses_colr/curses.h. - * fixincl.x, inclhack.sh, fixincl.sh: Rebuilt. + * reload1.c (reload_reg_free_for_value_p): When considered reload + has an output, matching inputs are not sufficient to avoid conflict. -Tue Mar 30 20:51:40 1999 Mark Mitchell +Tue Nov 17 11:51:16 1998 Mark Mitchell - * alias.c (alias_set_compare): Remove. - (record_alias_subset): Use splay_tree_compare_ints instead of - alias_set_compare. - (init_alias_once): Likewise. - * cse.c: Include splay-tree.h. - (reg_qty): Remove. - (reg_tick): Likewise. - (reg_table): Likewise. - (cse_reg_info): New structure. - (cse_reg_info_free_list): New variable. - (cse_reg_info_tree): Likewise. - (cached_regno): Likewise. - (cached_cse_reg_info): Likewise. - (all_minus_one): Remove. - (consec_ints): Likewise. - (GET_CSE_REG_INFO): New macro. - (REG_TICK): Likewise. Use throughout instead of reg_tick. - (REG_IN_TABLE): Likewise. Use throughout instead of reg_in_table. - (REG_QTY): Likewise. Use throughout instead of reg_qty. - (get_cse_reg_info): New function. - (free_cse_reg_info): Likewise. - (new_basic_block): Reinitialize cse_reg_info_tree instead of - reg_tick, all_minus_one, and consec_ints. - * Makefile.in (cse.o): Depend on splay-tree.h + * hash.h (hash_table_key): New type. + (hash_entry): Change `string' field to generic `key'. + (hash_table): Add `comp' and `hash' functions. + (hash_table_init): Take them as input. + (hash_table_init_n): Likewise. + (hash_lookup): Modify for generic keys. + (hash_newfunc): Likewise. + (hash_traverse): Likewise. + (string_hash): New function. + (string_compare): Likewise. + (string_copy): Likewise. + * hash.c (hash_table_init_n): Modify for generic keys. + (hash_table_init): Likewise. + (hash_lookup): Likewise. + (hash_newfunc): Likewise. + (hash_traverse): Likewise. + (string_hash): Split out from hash_lookup. + (string_compare): New function. + (string_copy): Split out from hash_lookup. + * tlink.c (symbol_hash_newfunc): Modify for new interfaces to hash + tables. + (symbol_hash_lookup): Likewise. + (file_hash_newfunc): Likewise. + (file_hash_lookup): Likewise. + (demangled_hash_newfunc): Likewise. + (demangled_hash_lookup): Likewise. + (tlink_int): Likewise. + (read_repo_file): Likewise. + (recompile_files): Likewise. + (demangle_new_symbols): Likewise. + (scan_linker_output): Likewise. -Tue Mar 30 13:19:36 1999 Jason Merrill +Tue Nov 17 17:13:53 1998 J"orn Rennecke - * libgcc2.c (throw_helper): Just return the SP offset, rather than - a whole udata. Include args_size in the offset. - (__throw, __rethrow): Adjust. + * flow.c (insn_dead_p): New argument NOTES. Changed all callers. -Tue Mar 30 11:39:27 1999 Craig Burley +Mon Nov 16 17:56:07 1998 David Edelsohn - * extend.texi (Extended Asm): Delete spurious `b' before - `@end example', which was confusing texi2html. + * rs6000.c (output_mi_thunk): Improve test for local branch. -Tue Mar 30 00:26:34 1999 Jason Merrill +Mon Nov 16 17:56:07 1998 Franz Sirl - * dwarf2out.c (output_line_info): Don't emit redundant info. - Do start a new row if the file changes and the line # doesn't. + * rs6000.c (output_mi_thunk): Correct test for aggregate values. -Mon Mar 29 15:48:39 1999 Jason Merrill +Mon Nov 16 21:02:52 1998 J"orn Rennecke - * invoke.texi (Invoking G++, C++ Dialect Options): Update. + * reload1.c (reload_reg_free_before_p): Delete. + Changed all callers to use reload_reg_free_for_value_p instead. + (reload_reg_free_for_value_p): Handle more reload types. + A RELOAD_FOR_INPUT doesn't conflict with its + RELOAD_FOR_INPUT_ADDRESS / RELOAD_FOR_INPADDR_ADDRESS. + Add special case for OUT == const0_rtx. + Added ignore_address_reloads argument. Changed all callers. -Mon Mar 29 15:05:39 1999 Richard Henderson +Mon Nov 16 02:22:29 1998 Jason Merrill - * except.c (start_dynamic_handler): Force jmp_buf address to - and operand before moving to memory. + * toplev.c (compile_file): Don't pedwarn about undefined static + functions just because we passed -Wunused. -Mon Mar 29 15:11:10 1999 Craig Burley +Mon Nov 16 04:41:41 1998 J"orn Rennecke - * invoke.texi (Code Gen Options): Attempt to clarify - -fcheck-memory-usage. Minor edits to -fprefix-function-name. + * function.c (purge_addressof_1): Unshare rtl created by + store_bit_field. -Mon Mar 29 20:52:47 1999 J"orn Rennecke +Mon Nov 16 04:23:06 1998 J"orn Rennecke - * loop.c (maybe_eliminate_biv): For libcalls that set a giv, skip to - end of libcall. + * regmove.c (regmove_optimize): Don't do anything but + optimize_reg_copy[123] when flag_regmove is not set. -Mon Mar 29 20:35:49 1999 J"orn Rennecke +Sat Nov 14 15:05:07 1998 Richard Henderson - * sh.md (mulsi3): Tag an extra REG_EQUAL note to the middle insn. + * alpha.md (addsi3, subsi3): Revise 5 Nov change to store DImode + value in paradoxical SImode result, rather than truncating midpoint. -Mon Mar 29 11:50:34 1999 Jerry Quinn +Fri Nov 13 22:19:23 1998 Richard Henderson - * pa.h (HAVE_PRE_INCREMENT): Disable when optimizing for a PA8000 - class machine. - (HAVE_PRE_DECREMENT, HAVE_POST_INCREMENT): Likewise. - (HAVE_POST_DECREMENT): Likewise. + * alpha.c (reg_not_elim_operand): New. + * alpha.h (PREDICATE_CODES): Add it. + * alpha.md (s48addq, s48subq patterns): Use it as the predicate + for the multiplicand. -Mon Mar 29 08:24:43 1999 Bruce Korb +Fri Nov 13 22:50:37 1998 David Edelsohn - * fixinc/mkfixinc.sh: Fix portability problems with old shells. + * rs6000.md (movsf): Remove explicit secondary-reload-like + functionality. Only truncate SFmode store if in FPR. + (movsf splitters): Combine const_double splitters. + (movsf_hardfloat): Add GPR support. - * fixinc/README: Updated for release announcement +Fri Nov 13 11:02:11 1998 Stan Cox -Sun Mar 28 20:26:55 1999 Kaveh R. Ghazi + * splet.h (SUBTARGET_OVERRIDE_OPTIONS): New to + deprecate -mlive-g0 and -mbroken-saverestore. + * t-splet (MULTILIB_OPTIONS): Likewise. - * recog.h (insn_outfun, insn_operand_predicate): Add prototype - arguments. + * sparc.c (sparc_flat_compute_frame_size): Correctly calc args_size + in a leaf function. Clarify total_size/extra_size relationship. - * rtl.h (note_stores): Likewise. +Thu Nov 12 19:20:57 1998 Geoffrey Noer - * rtlanal.c (note_stores): Likewise. + * i386/cygwin32.asm: Delete. + * i386/cygwin.asm: New file, renamed from cygwin32.asm. + * i386/cygwin32.h: Delete. + * i386/cygwin.h: New file, renamed from cygwin32.h. + * i386/t-cygwin32: Delete. + * i386/t-cygwin: New file, renamed from t-cygwin32. Include + cygwin.asm instead of cygwin32.asm. Remove "32" from comment. + * i386/x-cygwin32: Delete. + * i386/x-cygwin: New file, renamed from x-cygwin32. + * i386/xm-cygwin32: Delete. + * i386/xm-cygwin: New file, renamed from xm-cygwin32. Use newly + renamed cygwin_ funcs for path translations. + * i386/win32.h: Define __CYGWIN__ when -mcygwin given. + * i386/winnt.c: Remove "32" from comment about cygwin. + * i386/mingw32.h: Fix references to cygwin32.h in light of above. + * rs6000/cygwin32.h: Delete. + * rs6000/cygwin.h: New file, renamed from cygwin32.h. Add + -D__CYGWIN__ to CPP_PREDEFINES. + * rs6000/x-cygwin32: Delete. + * rs6000/x-cygwin: New file, renamed from x-cygwin32. + * rs6000/xm-cygwin32: Delete. + * rs6000/xm-cygwin: New file, renamed from xm-cygwin32. -Sun Mar 28 15:34:28 1999 Richard Henderson + * configure.in: Check for cygwin* instead of cygwin32. Account + for the rename of cygwin-related config files to lose the "32"s. + * configure: Regenerate. - * varasm.c (output_constant_pool): Always mark the constant pool. + * cccp.c, collect2.c, gcc.c, getpwd.c, libgcc2.c, protoize.c, + toplev.c: Change all refs to __CYGWIN32__ to __CYGWIN__. -Sun Mar 28 16:09:01 1999 Jerry Quinn +Wed Nov 11 12:25:19 1998 Tom Tromey - * pa.md (pa7100LCshiftmem, pa7100LCalu): Change simultaneity. Use - shift/mem ops in pa7100LCalu. + * Makefile.in (JAVAGC): New macro. + * configure: Rebuilt. + * configure.in: Recognize --enable-java-gc argument. Subst + `JAVAGC' variable. - * pa.c (pa_adjust_cost): Don't do cost adjustments on pa8000. - (pa_reorg): Don't call pa_combine_instructions on pa8000. +Thu Nov 12 03:32:16 1998 J"orn Rennecke -Sun Mar 28 15:27:26 1999 Jeffrey A Law (law@cygnus.com) + Handle equivalences that have been obscured by gcse: - * reload1.c (reload): Remove accidental code duplication. + * reload1.c (reload): Handle equivalences set up in multiple places. + * local-alloc.c (reg_equiv_init_insns): New variable. + (no_equiv): New function. + (update_equiv_regs): Handle equivalences set up in multiple places. + Don't ignore an insn just because its destination is likely to be + spilled. -Sun Mar 28 12:22:12 1999 Robert Lipe (robertlipe@usa.net) +Wed Nov 11 13:46:13 1998 Jim Wilson - * i386/sysv5.h: New file to describe UnixWare7/SVR5. - * configure.in (i?86-UnixWare7*-sysv): Use it. - * i386/udk.h: Use sysv5.h. Now uses Dwarf-2. + * except.c (expand_eh_return): Readd force_operand call lost in + Sept 15 change. -Sun Mar 28 01:15:04 1999 Jeff Law (law@cygnus.com) +Tue Nov 10 17:04:11 1998 David Edelsohn - * version.c: Bump for snapshot. + * rs6000.h (LEGITIMIZE_ADDRESS): Add missing goto on last case. -Sun Mar 28 00:44:27 1999 Jeffrey A Law (law@cygnus.com) +1998-11-09 Andreas Schwab - * sdbout.c (sdbout_symbol): Do not call build_pointer_type, build - one on the fly and do not cache the result. + * dbxout.c: Check HAVE_STAB_H instead of HAVE_STABS_H. - * gcc.cps, cpp.cps: Delete unwanted files. +Mon Nov 9 20:15:19 1998 Bernd Schmidt -Sat Mar 27 23:37:40 1999 John Wehle (john@feith.com) + * regmove.c (regmove_optimize): Fix error in last change. - * i386.md (movdicc+3, movdicc+4): Rewrite using split_di. - * i386.c (output_int_conditional_move): Delete unused code. +Mon Nov 9 16:37:52 1998 Andrew Cagney -Sat Mar 27 21:17:36 1999 David Edelsohn + * mips.c (function_prologue): When TARGET_MIPS16, adjust the register + offset in the .mask pseudo to compensate for frame pointer adjustments. + (mips16_fp_args, build_mips16_call_stub): For little endian, do not + word swap arguments moved to/from FP registers. + * mips16.S (DFREVCMP): Reverse arguments to OPCODE. - * rs6000/{aix41.h,aix43.h} (ASM_CPU_SPEC): Add 604e. +Mon Nov 9 09:47:06 1998 Jeff Law (law@cygnus.com) -Sat Mar 27 16:13:50 1999 Jeffrey A Law (law@cygnus.com) + * version.c: Bump for snapshot. - * flow.c (mark_used_regs): Improve handling of ASMs. +Mon Nov 9 02:14:14 1998 Jeff Law (law@cygnus.com) -1999-03-26 Zack Weinberg + * version.c: Bump for snapshot. - * Makefile.in (xcpp, cppspec.o): New targets. - (CPP_INSTALL_NAME): New macro. - (install-cpp): Install xcpp. Use CPP_INSTALL_NAME. - (all.build, start.encap): Build xcpp. +Mon Nov 9 03:06:24 1998 Jeffrey A Law (law@cygnus.com) - * cppspec.c: New file, implements argument filtering for a - user-visible C preprocessor. - * cpp.sh: Removed. + * reload1.c (delete_output_reload_insn): If a pseudo is set multiple + times, then it can not be completely replaced. -Fri Mar 26 20:41:46 1999 Jim Wilson +Mon Nov 9 00:39:02 1998 Richard Henderson - * Makefile.in (stmp-fixinc): Use tooldir instead of gcc_tooldir. + * alpha.md (call, call_value) [OSF]: Correct alt 3 insn length. -Fri Mar 26 16:02:37 1999 Nick Clifton +Sun Nov 8 17:50:30 1998 Kaveh R. Ghazi - * configure.in (arm-*-vxworks*): Just include arm/vxarm.h. - * configure: Regenerate. - * config/arm/vxarm.h: Define SUBTARGET_CPU_DEFAULT before - including arm/coff.h + * gansidecl.h: Prepend a "G" to the macro wrapping this file + (to distinguish it from the macro wrapping ansidecl.h.) + Include libiberty's ansidecl.h. Remove all redundant definitions. + Define the PROTO() style macros in terms of the PARAMS() ones. -1999-02-16 Scott Bambrough - * configure.in (arm*-*-linux-gnu*): Set thread_file to 'posix' if - --enable-threads[={yes,pthreads,posix}] is passed as a command - line parameter to configure. + * calls.c (emit_library_call): Switch on ANSI_PROTOTYPES, not + __STDC__, when deciding whether to use ANSI variable args. + (emit_library_call_value): Likewise. - * configure: Regenerate. + * cccp.c (error): Likewise. + (warning): Likewise. + (error_with_line): Likewise. + (warning_with_line): Likewise. + (pedwarn): Likewise. + (pedwarn_with_line): Likewise. + (pedwarn_with_file_and_line): Likewise. + (fatal): Likewise. - * gcc/config/arm/t-linux (TARGET_LIBGCC2_CFLAGS): Include -fPIC. - -Fri Mar 26 19:42:19 1999 J"orn Rennecke - - * loop.c (combine_givs): Fix index into can_combine when doing - benefit adjustment for remaining givs when having combined a giv. - -Fri Mar 26 11:38:01 1999 Nick Clifton - - * config/arm/t-arm-elf (EXTRA_MULTILIB_PARTS): Define. + * cexp.y (error): Likewise. + (pedwarn): Likewise. + (warning): Likewise. -Fri Mar 26 10:48:27 1999 Nick Clifton + * collect2.c (fatal_perror): Likewise. + (fatal): Likewise. + (error): Likewise. - * config/arm/linux-elf.h: Include dbxelf.h + * combine.c (gen_rtx_combine): Likewise. -Fri Mar 26 10:43:47 1999 Nick Clifton + * cpperror.c (cpp_message): Likewise. + (cpp_fatal): Likewise. - * config/svr4.h: Include new header file dbxelf.h. - (DBX_DEBUGGING_INFO): Remove definition. - (DBX_USE_BINCL): Remove definition. - (DBX_BLOCKS_FUNCTION_RELATIVE): Remove definition. - (ASM_IDENTIFY_GCC): Remove definition. - (ASM_IDENTIFY_GCC_AFTER_SOURCE): Remove definition. - (ASM_OUTPUT_SOURCE_LINE): Remove definition. - (DBX_FUNCTION_FIRST): Remove definition. - (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Remove definition. + * cpplib.c (cpp_error): Likewise. + (cpp_warning): Likewise. + (cpp_pedwarn): Likewise. + (cpp_error_with_line): Likewise. + (cpp_warning_with_line): Likewise. + (cpp_pedwarn_with_line): Likewise. + (cpp_pedwarn_with_file_and_line): Likewise. - * config/elfos.h: Include new header file dbxelf.h. - (DBX_DEBUGGING_INFO): Remove definition. - (DBX_BLOCKS_FUNCTION_RELATIVE): Remove definition. - (ASM_IDENTIFY_GCC): Remove definition. - (ASM_IDENTIFY_GCC_AFTER_SOURCE): Remove definition. - (ASM_OUTPUT_SOURCE_LINE): Remove definition. - (DBX_FUNCTION_FIRST): Remove definition. + * cpplib.h: Don't define PARAMS() macro. - * config/dbxelf.h: New header file. - (DBX_DEBUGGING_INFO): Define. - (DBX_BLOCKS_FUNCTION_RELATIVE): Define. - (DBX_FUNCTION_FIRST): Define. - (DBX_USE_BINCL): Define. - (DBX_CONTIN_LENGTH): Define. - (ASM_IDENTIFY_GCC): Define. - (ASM_IDENTIFY_GCC_AFTER_SOURCE): Define. - (ASM_OUTPUT_SOURCE_LINE): Define. - (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Define. + * demangle.h: Likewise. -Fri Mar 26 01:59:15 1999 "Charles M. Hannum" + * doprint.c (checkit): Switch on ANSI_PROTOTYPES, not __STDC__, + when deciding whether to use ANSI variable args. - * fold-const.c (fold_truthop): Optimize bitfield references with - different masks as long as their size and bit position are the same. + * emit-rtl.c (gen_rtx): Likewise. + (gen_rtvec): Likewise. - * fold-const.c (fold_truthop): Build a type for both the lhs and - rhs and use it appropriately. + * final.c (asm_fprintf): Likewise. - * fold-const.c (fold_truthop): Mask the lhs and rhs after merging - adjacent bitfield references. + * fix-header.c (cpp_message): Likewise. + (fatal): Likewise. + (cpp_fatal): Likewise. - * fold-const.c (fold_truthop): Verify that the lhs and rhs are - in the same bit position when optimizing bitfield references - which have the same mask. + * gcc.c (concat): Likewise. + (fatal): Likewise. + (error): Likewise. -Thu Mar 25 22:53:27 1999 Martin von Löwis + * genattr.c (fatal): Likewise. - * gcc.texi (Copy Assignment): New node. + * genattrtab.c (attr_rtx): Likewise. + (attr_printf): Likewise. + (fatal): Likewise. -1999-03-25 Zack Weinberg + * gencodes.c (fatal): Likewise. - * gcc.c: Compile unconditionally all code formerly dependent - on #ifdef LANG_SPECIFIC_DRIVER. - * gccspec.c: New file with stub lang_specific_driver, - lang_specific_pre_link. - * Makefile.in: Link gccspec.o into xgcc. Add rule to compile + * genconfig.c (fatal): Likewise. -Thu Mar 25 21:08:02 1999 Jason Merrill + * genemit.c (fatal): Likewise. - * gcc.texi (Temporaries): Update. + * genextract.c (fatal): Likewise. -Thu Mar 25 16:53:53 1999 Richard Henderson + * genflags.c (fatal): Likewise. - * combine.c (distribute_notes): Place REG_LABEL also where - REG_EQUAL indicates. + * genopinit.c (fatal): Likewise. -Thu Mar 25 12:46:37 1999 Jim Wilson + * genoutput.c (fatal): Likewise. + (error): Likewise. - * a29k/a29k.h (TARGET_SWITCHES): Add doc strings. - * i960/i960.h (TARGET_SWITCHES): Add doc strings. - * invoke.texi (a29k): Add documentation for -mno-multm option. + * genpeep.c (fatal): Likewise. -Thu Mar 25 14:04:54 1999 Andrew MacLeod + * genrecog.c (fatal): Likewise. - * rtl.texi (RTX_FRAME_RELATED_P): Add documentation. - * rtl.h (struct rtx_def): Update comment for frame_related field. - (set_unique_reg_note): Declare prototype. - * dwarf2out.c (dwarf2out_frame_debug_expr): Split out from - 'dwarf2out_frame_debug' to handle only expressions, and process - component parts of a PARALLEL expression. - (dwarf2out_frame_debug): Process insns only, and call - new function 'dwarf2out_frame_debug_expr' for patterns. - * emit-rtl.c (set_unique_reg_note): New function to add a reg note, - but if there is an existing one, delete it first. - * expmed.c (expand_mult, expand_divmod): Use set_unique_reg_note. - * optabs.c (add_equal_note, expand_binop): Use set_unique_reg_note. - (emit_no_conflict_block, emit_libcall_block): Use set_unique_reg_note. - (expand_fix): Use set_unique_reg_note. + * halfpic.h: Switch on ANSI_PROTOTYPES, not __STDC__, when + deciding whether to declare `tree_node' and `rtx_def'. -Thu Mar 25 11:47:49 1999 Art Haas + * hash.h: Don't define stuff we get from gansidecl.h. - * tlink.c (symbol_hash_newfunc): Remove redundant call to - hash_newfunc. - (file_hash_newfunc, demangled_hash_newfunc): Likewise. + * mips-tfile.c: Likewise. Define __proto() in terms of PARAMS(). + (fatal): Switch on ANSI_PROTOTYPES, not __STDC__, when deciding + whether to use ANSI variable args. + (error): Likewise. -Thu Mar 25 10:05:56 1999 Richard Henderson + * prefix.c (concat): Likewise. - * i386.h (PREFERRED_STACK_BOUNDARY): Set to 128. + * scan.h: Likewise. -1999-03-25 Philip Blundell + * system.h: Likewise. - Based on patch from Jim Studt : - * config/arm/linux-elf.h (STARTFILE_SPEC, ENDFILE_SPEC): Copy - definitions from config/linux.h. - (DBX_BLOCKS_FUNCTION_RELATIVE): Define to 1. + * toplev.c (error_with_file_and_line): Likewise. + (error_with_decl): Likewise. + (error_for_asm): Likewise. + (error): Likewise. + (fatal): Likewise. + (warning_with_file_and_line): Likewise. + (warning_with_decl): Likewise. + (warning_for_asm): Likewise. + (warning): Likewise. + (pedwarn): Likewise. + (pedwarn_with_decl): Likewise. + (pedwarn_with_file_and_line): Likewise. + (sorry): Likewise. + (really_sorry): Likewise. -Thu Mar 25 02:12:42 1999 Finn Hakansson + * toplev.h: Switch on ANSI_PROTOTYPES, not __STDC__, when deciding + whether to declare `tree_node' and `rtx_def'. - * loop.c (strength_reduce): Correct a comment. + * tree.c (build): Switch on ANSI_PROTOTYPES, not __STDC__, when + deciding whether to use ANSI variable args. + (build_nt): Likewise. + (build_parse_node): Likewise. - * rtl.h (MEM_COPY_ATTRIBUTES): Remove unnecessary ending backslash. +Sun Nov 8 13:10:55 1998 Jeff Law (law@cygnus.com) -Thu Mar 25 02:02:13 1999 Axel Thimm + * version.c: Bump for snapshot. - * Makefile.in (RANLIB_TEST): Improve test. +Sat Nov 7 23:34:01 1998 Kaveh R. Ghazi -Thu Mar 25 01:15:33 1999 Donn Terry + * Makefile.in (libcpp.a): Check RANLIB_TEST before runing RANLIB. - * combine.c (force_to_mode, case PLUS): Use sign extended mask - when masking the low bits out of a constant. +Sat Nov 7 22:26:19 1998 David Edelsohn -Tue Mar 23 15:45:25 1999 Richard Earnshaw (rearnsha@arm.com) - Jeff Law + * collect2.c (main, case 'b'): Use else if. - * fold-const.c (make_range): If orig_type is unset, set it as soon - as we know the type. Remove now unnecessary set of orig_type for - conversions. +Sat Nov 7 15:35:25 1998 Kaveh R. Ghazi -Wed Mar 24 23:27:25 1999 Mark Elbrecht - Jeff Law + * configure.in (host_xm_file, build_xm_file, xm_file, tm_file): + Arrange to include gansidecl.h in {ht}config.h & tm.h just + before the config/ directory headers. + (tm_file_list, host_xm_file_list, build_xm_file_list): Handle + gansidecl.h in the list of dependencies. - * system.h (STDIN_FILENO): Provide default definition if one is not - provided by the system header files. - (STDOUT_FILENO, STDERR_FILENO): Likewise. + * Makefile.in (RTL_BASE_H): Don't depend on gansidecl.h. + (TREE_H, DEMANGLE_H, RECOG_H, REGS_H, libgcc2.a, stmp-multilib, + mbchar.o, collect2.o, pexecute.o, vfprintf.o, splay-tree.o, gcc.o, + gencheck.o, choose-temp.o, mkstemp.o, mkstemp.o, prefix.o, + dyn-string.o, cexp.o, cccp.o, cppmain.o, cpplib.o, cpperror.o, + cppexp.o, cppfiles.o, cpphash.o, cppalloc.o, scan-decls.o): + Likewise. - * i386/xm-djgpp.h (COLLECT2_HOST_INITIALIZATION): New macro. - * collect2.c (main): Use it. - (pexecute_pid): New variable. Holds return value from call to pexecute. - (collect2_execute): Rework to use pexecute instead of fork. - (collect2_wait): Use pwait() instead of wait(). + * cccp.c: Don't include gansidecl.h. + * cexp.y: Likewise. + * collect2.c: Likewise. + * config/c4x/c4x.c: Likewise. + * config/v850/v850.h: Likewise. + * cppalloc.c: Likewise. + * cpperror.c: Likewise. + * cppexp.c: Likewise. + * cppfiles.c: Likewise. + * cpphash.c: Likewise. + * cpplib.c: Likewise. + * cppmain.c: Likewise. + * cppulp.c: Likewise. + * demangle.h: Likewise. + * doprint.c: Likewise. + * dyn-string.c: Likewise. + * eh-common.h: Likewise. + * fix-header.c: Likewise. + * frame.c: Likewise. + * gcc.c: Likewise. + * gcov.c: Likewise. + * gen-protos.c: Likewise. + * gencheck.c: Likewise. + * halfpic.h: Likewise. + * hash.c: Likewise. + * machmode.h: Likewise. + * mbchar.c: Likewise. + * prefix.c: Likewise. + * protoize.c: Likewise. + * recog.h: Likewise. + * rtl.h: Likewise. + * scan-decls.c: Likewise. + * tree.h: Likewise. + * varray.h: Likewise. - * i386/djgpp.h: Fix typo. +Sat Nov 7 11:37:53 1998 Richard Henderson -Wed Mar 24 23:24:30 1999 Jeffrey A Law (law@cygnus.com) + * i386.md (call_value_pop): If we're not popping anything, + defer to call_value. + (call_pop): Likewise defer to call. - * fixinc/mkfixinc.sh: Recognize cygwin* instead of only - cygwin32. +Sat Nov 7 02:49:56 1998 Richard Henderson -Wed Mar 24 15:44:12 1999 Nick Clifton + * function.c (purge_addressof): Clear purge_addressof_replacements + only after processing the whole function. - * config/m32r/m32r.c (init_idents): Accept both NAME and __NAME__ - versions of attribute names and values. - (m32r_valid_machine_decl_attribute): Likewise. - (m32r_encode_section_info): Likewise. +Sat Nov 7 00:54:55 1998 Jeffrey A Law (law@cygnus.com) -Wed Mar 24 21:42:15 1999 J"orn Rennecke + * reload1.c (reload): If we can not perform a particular elimination + when we thought we could earlier, then we must always iterate through + the loop at least one more time. - * reload1.c (choose_reload_regs): If output-reloading for a - simple move insn, try to inherit an equivalence for the input. +Fri Nov 6 19:37:33 1998 Richard Henderson -1999-02-24 Mike Stump + * alpha.c (add_operand): Simplify the CONST_INT match. + (sext_add_operand): Correct typo in comparison by using + CONST_OK_FOR_LETTER_P. + * alpha.md (s?addq): Use sext_add_operand to allow the negative + constant alternatives to be generated. + (mulsi3, muldi3, umuldi3_highpart): Loosen constraints to allow + small constants, since the hw instructions do. - * arm/aout.h (DBX_OUTPUT_MAIN_SOURCE_FILENAME): Fix quoting. +Fri Nov 6 20:15:19 1998 Bernd Schmidt -1999-03-24 Jim Blandy + * reload1.c (emit_reload_insns): When rewriting the SET_DEST of a + previous insn to store directly into our reload register, make sure + that if the source of the previous insn is a reload register, its + spill_reg_store and spill_reg_stored_to values are cleared. - * libgcc2.c (__CTOR_LIST__, __DTOR_LIST__): Initialize on all - platforms. +Fri Nov 6 16:35:10 1998 David Edelsohn -Wed Mar 24 01:35:01 1999 Geoff Keating + * rs6000.md (floatunssidf2_internal splitter): Use base register + operand, not hard-coded SP. - * fold-const.c (fold): Recognize a rotate by an unsigned amount. +Fri Nov 6 04:07:53 1998 David S. Miller -Tue Mar 23 23:32:14 1999 Jeffrey A Law (law@cygnus.com) + * jump.c (calculate_can_reach_end): Fix thinko. - * pa.md (rotlsi3): New expander. Synthesize a variable rotate - left using a variable rotate right. Provide anonymous pattern for - rotate left by a constant value. +Fri Nov 6 00:16:04 1998 Jeffrey A Law (law@cygnus.com) - * expr.c (expand_assignment): Do not try to optimize an aggregate - address which has VOIDmode. + * reorg.c (fill_simple_delay_slots): Fix typo. -Tue Mar 23 22:51:48 1999 Mumit Khan - Donn Terry + * romp.h (LEGITIMIZE_ADDRESS): Fix typo. - * protoize.c (abspath): Preserve multiple leading slashes for - _WIN32 and Interix. +Fri Nov 6 00:10:00 1998 Jan Hubicka (hubicka@freesoft.cz) -1999-01-23 Mike Stump + * i386.md (extendsidi2): Use # in the output template. + (extendsidi splitters): New splitters. - * arm/vxarm.h: Split out vxWorks support into separate headerfile - and vxify. - * arm/arm.c (cpu_defaults): Allow arm710 as default. +Thu Nov 5 11:13:27 1998 Nick Clifton - * configure.in: Split out vxWorks support for Arm. - * configure: Rebuilt. + * configure.in: Use unknown-elf.h as tm_file for arm-elf + configurations. + * configure: Regenerate. -Tue Mar 23 11:20:03 1999 Per Bothner - - * tree.c (first_rtl_op, has_cleanups): Handle GOTO_SUBROUTINE_EXPR. - -Tue Mar 23 09:00:39 1999 Nick Clifton - - * config/arm/riscix1.h (SUBTARGET_SWITCHES): Add doc string. - * config/arm/riscix1-1.h (SUBTARGET_SWITCHES): Add doc string. - -Tue Mar 23 07:50:20 1999 Mark Mitchell - - * function.c: Include hash.h. - (insns_for_mem_entry): New struct. - (put_reg_into_stack): Take an optional hash-table mapping MEMs to - the INSNs that use them. - (fixup_var_refs): Likewise. - (put_addressof_into_stack): Likewise. - (purge_addressof_1): Likewise. Keep the hash-table up to date if - we add new instructions. - (fixup_var_refs_insns): Use it to avoid searching the entire - instruction chain. - (insns_for_mem_newfunc): New function. - (insns_for_mem_comp): Likewise. - (insns_for_mem_walk): Likewise. - (compute_insns_for_mem): Likewise. - (pop_function_context_from): Pass NULL for the hash-table. - (put_var_into_stack): Likewise. - (gen_mem_addressof): Likewise. - (flush_addressof): Likewise. - (purge_addressof): Call compute_insns_for_mem to pre-compute the - hash table. - * Makefile.in (OBJS): Include hash.o. - (function.o): Depend on hash.h. +Thu Nov 5 07:59:05 1998 David S. Miller -Tue Mar 23 00:39:14 1999 Jeffrey A Law (law@cygnus.com) + * jump.c (init_label_info, delete_barrier_successors, + mark_all_labels, delete_unreferenced_labels, + delete_noop_moves, calculate_can_reach_end): New functions broken + out of jump_optimize. + (jump_optimize): Use them. - * i386/openbsd.h (TARGET_DEFAULT): Use symbolic names instead of - numbers. - * i386/netbsd.h, i386/freebsd.h: Likewise. +Thu Nov 5 07:57:45 1998 Andrew MacLeod - * crtstuff.c: Use ANSI function definitions. Fix minor whitespace - problems. + * except.c (expand_fixup_region_end): Make sure outer context labels + are not issued in an inner context during cleanups. - * i386/openbsd.h (TARGET_DEFAULT): Define. - * configure.in: Do not set TARGET_CPU_DEFAULT for x86 OpenBSD - configurations. - * configure: Rebuilt. +Thu Nov 5 04:03:06 1998 Richard Henderson -Tue Mar 23 00:39:10 1999 John Wehle (john@feith.com) + * alpha.md (addsi3, subsi3): No new temporaries once cse is + no longer expected. - * i386/freebsd.h (TARGET_DEFAULT): Define instead - of TARGET_CPU_DEFAULT. - * i386/netbsd.h (TARGET_DEFAULT): Likewise. +Thu Nov 5 03:29:19 1998 Richard Henderson -Mon Mar 22 23:52:01 1999 Mumit Khan - Donn Terry + * alpha.md (addsi3, subsi3): Expand to a DImode temporary so as + to expose this midpoint to CSE. - * sdbout.c (syms.h): Don't include on Interix. - * toplev.c (main): No sbrk on Interix. +Thu Nov 5 03:42:54 1998 David S. Miller - * configure.in: Add i386-pc-interix support. - * configure: Regenerate. - * fixinc.interix: New file. - * config/interix.h: New file. - * config/x-interix: New file. - * config/xm-interix.h: New file. - * i386/interix.h: New file. - * i386/interix.c: New file. - * i386/t-interix: New file. + * config/sparc/sparc.md (movdf_const_intreg_sp64): Enable again. -Mon Mar 22 23:41:49 1999 Jeffrey A Law (law@cygnus.com) +Thu Nov 5 10:53:01 1998 Andreas Schwab - * i386.h (PREFERRED_STACK_BOUNDARY): Define. + * configure.in: Bring over gcc2 change of Nov 19 1997. -Mon Mar 22 23:41:31 1999 John Wehle (john@feith.com) +Wed Nov 4 23:43:08 1998 Graham - * i386.c (ix86_compute_frame_size): New function. - (ix86_prologue, ix86_epilogue): Use it. - * i386.h (INITIAL_ELIMINATION_OFFSET): Likewise. - * reload1.c: Provide default for PREFERRED_STACK_BOUNDARY. + * toplev.c (output_lang_identify): Make definition dependent on + ASM_IDENTIFY_LANGUAGE. -Mon Mar 22 18:06:59 1999 Jim Wilson + * print-rtl.c (spaces): Make static. - * mips/mips.h (TARGET_SWITCHES, TARGET_OPTIONS): Add option doc - strings. - * mips/abi64.h (SUBTARGET_TARGET_OPTIONS): Likewise. - -Mon Mar 22 16:18:27 1999 Nick Clifton - - * config/arm/elf.h (VALID_MACHINE_DECL_ATTRIBUTE): Do not bother - passing ATTRIBUTES to arm_valid_machine_decl_attribute. - - * config/arm/coff.h (VALID_MACHINE_DECL_ATTRIBUTE): Do not bother - passing ATTRIBUTES to arm_valid_machine_decl_attribute. - - * config/arm/arm.h (DEFAULT_RTX_COSTS): Do not bother passing - OUTER_CODE to arm_rtx_costs - it is not used. - (arm_compare_fp): Delete declaration. - (FINAL_PRESCAN_INSN): Do not bother passing OPVEC or NOPERANDS to - arm_final_prescan_insn - they are not used. - (const_ok_for_op): Remove prototype. - (arm_rtx_costs): Fix prototype. - (arm_valid_machine_decl_attribute): Fix prototype. - (final_prescan_insn): Fix prototype. - - * config/arm/arm.md: Remove references to arm_compare_fp. - - * config/arm/arm.c (arm_compare_fp): Delete. - (const_ok_for_op): Make function static. Add prototype. Remove - mode parameter - it is unused. - (arm_rtx_costs): Remove outer_code parameter. - (reload_memory_operand): Declare mode parameter unused. - (power_of_two_operand): Declare mode parameter unused. - (equality_operator): Declare mode parameter unused. - (load_multiple_operation): Declare mode parameter unused. - (store_multiple_operation): Declare mode parameter unused. - (multi_register_push): Declare mode parameter unused. - (arm_valid_machine_decl_attribute): Remove attributes parameter - - it is unused. - (select_dominance_cc_mode): Remove op parameter - it is unused. - (gen_compare_reg): Remove fp parameter - it is unused. - (final_prescan_insn): Remove opvec and noperands parameters - they - are unused. - -Mon Mar 22 14:35:28 1999 Nick Clifton - - * tm.texi (MD_SCHED_INIT): Add missing closing parenthesis. - -Mon Mar 22 22:24:30 1999 J"orn Rennecke - - * reload1.c (reload_as_needed): Set reload_is_output_reload / - reload_has_output_reload for auto_inc expressions that could be - reloaded. Call forget_old_reloads for REG_INC notes. - -Mon Mar 22 21:51:57 1999 J"orn Rennecke - - * cse.c (cse_insn): Don't change the result register of a libcall. - -Mon Mar 22 21:08:59 1999 J"orn Rennecke - - * rtl.h (shallow_copy_rtx): Declare. - * rtl.c (shallow_copy_rtx): New function. - * reload.c (find_reloads_toplev): Use shallow_copy_rtx instead of - copy_rtx. - -Mon Mar 22 10:44:33 1999 Vladimir Makarov - - * config/h8300/h8300.md (adjust_length): New attribute. - (modhi3+1, andsi3+1, iorsi3+1, extzv+1, extzv+2): Change insn - default value of attribute "adjust_length" onto "no". - - * config/h8300/h8300.c (h8300_adjust_insn_length): Adjust - length only if the attribute "adjust_length" value is "yes". - Use 0 if the shift is negative. - - * final.c (shorten_branches): Check insn length after its - adjusting. - -Sun Mar 21 17:33:48 1999 Jeffrey A Law (law@cygnus.com) - - * i860.h (TARGET_SWITCHES): Add documentation for default case. - * i860/paragon.h (TARGET_SWITCHES): Add documentation for default case. - * i370.h (TARGET_SWITCHES): Add documentation for default case. - * fx80.h (TARGET_SWITCHES): Add documentation for default case. - * elxsi.h (TARGET_SWITCHES): Add documentation for default case. - * clipper.h (TARGET_SWITCHES): Add documentation for default case. - * 1750a.h (TARGET_SWITCHES): Add documentation for default case. - * pa.h (TARGET_SWITCHES): Add documentation for default case. - (TARGET_OPTIONS): Likewise for default case. - * mn10300.h (TARGET_SWITCHES): Add documentation for default case. - * h8300.h (TARGET_SWITCHES): Add documentation for default case. - - * gcse.c (dump_hash_table): Fix whitespace in declaration. - (compute_transpout): Renamed from pre_compute_transpout. - (compute_pre_*): Deleted. - (pre_expr_reaches_here_p): New argument, CHECK_PRE_COMP. All - callers changed. - (insert_insn_end_bb): Renamed from pre_insert_insn. - (pre_*): Delete unused variables. Only leave local properties and - global redundant/optimal computation points. - (alloc_pre_mem, free_pre_mem): Corresponding changes. - (compute_pre_data): Simplify and call pre_lcm to run the lazy - code motion dataflow analysis. - (pre_insert, pre_insert_copies, pre_delete): Revamp to use LCM - based redundant and optimal computation points. +Wed Nov 4 22:16:36 1998 Hans-Peter Nilsson - * basic-block.h (pre_lcm, pre_rev_lcm): Declare. + * extend.texi: Clarify proper uses for register clobbers in asms. - * toplev.c (main): A debug option without a level defaults to - level 2. +Wed Nov 4 22:16:36 1998 Bernd Schmidt -Sun Mar 21 12:13:01 1999 Nick Clifton + * recog.h (enum op_type): Define. + (constrain_operands): Adjust prototype. + (recog_op_type): Declare new variable. + * recog.c (recog_op_type): New variable. + (insn_invalid_p): Allow modifying an asm statement after reload. + (extract_insn): Set up recog_op_type. + (constrain_operands): Lose INSN_CODE_NUM arg. All callers changed. + Don't compute operand types, use recog_op_type. + Use the information computed by extract_insn instead of the previous + method of finding it by insn code number. + * caller-save.c (init_caller_save): Use extract_insn, not insn_extract. + * reorg.c (fill_slots_from_thread): Likewise. + * reload1.c (reload_as_needed): Likewise. + (gen_reload): Likewise. + (inc_for_reload): Likewise. + (reload_cse_simplify_operands): Likewise. + Use the information computed by extract_insn instead of the previous + method of finding it by insn code number. + * genattrtab.c (write_attr_case): Generate call to extract_insn, not + insn_extract. + * final.c (final_scan_insn): Use extract_insn, not insn_extract. + (cleanup_operand_subregs): Use extract_insn, not insn_extract. + Use the information computed by extract_insn instead of the previous + method of finding it by insn code number. + * regmove.c (find_matches): Likewise. Change meaning of the return + value to be nonzero if the optimization can be performed, zero if + not. All callers changed. + Shorten some variable names to fix formatting problems. + (regmove_optimize): Shorten some variable names to fix formatting + problems. + Use the information computed by extract_insn instead of the previous + method of finding it by insn code number. + * regclass.c (scan_one_insn): Likewise. + (record_reg_classes): Don't compute operand types, use recog_op_type. + * reload.c (find_reloads): Lose CONSTRAINTS1 variable; use + recog_constraints instead. - * flow.c (can_delete_label_p): Do not allow user specified - labels to be deleted. - * dwarf2out.c (gen_label_die): Generate addresses for deleted - (programmer specified) labels. - * dwarfout.c (output_label_die): Generate addresses for deleted - (programmer specified) labels. +Wed Nov 4 21:37:46 1998 Jeffrey A Law (law@cygnus.com) -1999-03-21 Manfred Hollstein + * rtl.h (flow2_completed): Declare. + * flow.c (flow2_completed): Definition. + * toplev.c (rest_of_compilation): Set and clear flow2_completed + as necessary. - * Makefile.in (xgcc$(exeext)): Add intl.o to list of files to be - linked with. +Wed Nov 4 19:15:37 1998 Melissa O'Neill -Sun Mar 21 01:15:03 1999 Jeff Law (law@cygnus.com) + * Makefile.in (libcpp.a): Ranlib libcpp.a. - * version.c: Bump for snapshot. + * cppulp.c (user_label_prefix): Initialize. -Sat Mar 20 22:26:23 1999 Kaveh R. Ghazi +Wed Nov 4 19:07:08 1998 John Wehle (john@feith.com) - * sparc.h (TARGET_SWITCHES): Add null description to default case. + * flow.c (mark_regs_live_at_end): Mark the stack pointer as live + at a RETURN if current_function_sp_is_unchanging is set. -Sat Mar 20 21:46:06 1999 Kaveh R. Ghazi +Wed Nov 4 18:16:29 1998 Herman A.J. ten Brugge - * c-lex.c (yylex): Remove unused variable `bytes'. + * emit-rtl.c (try_split): Fixed error in Oct 10 patch. - * flow.c (print_rtl_with_bb): Cast the return value of alloca. +Wed Nov 4 15:11:15 1998 Geoffrey Noer - * function.c (assign_parms): Wrap variable `varargs_setup' in - macro SETUP_INCOMING_VARARGS. - (thread_prologue_and_epilogue_insns): Mark parameter `f' with - ATTRIBUTE_UNUSED. - - * local-alloc.c (no_equiv): Likewise for parameter `store'. - - * sched.c (schedule_insns): Remove unused variables `insn' and `next'. - - * tlink.c (symbol_hash_newfunc, symbol_hash_lookup, - file_hash_newfunc, file_hash_lookup, demangled_hash_newfunc, - demangled_hash_lookup, symbol_push, symbol_pop, file_push, - file_pop, tlink_init, tlink_execute, frob_extension, - obstack_fgets, tfgets, pfgets, freadsym, read_repo_file, - maybe_tweak, recompile_files, read_repo_files, - demangle_new_symbols, scan_linker_output): Add static prototype. - - (symbol_hash_newfunc, file_hash_newfunc, demangled_hash_newfunc): - Make the third argument a `hash_table_key'. + * i386/cygwin32.h (MASK_WIN32, MASK_CYGWIN, MASK_WINDOWS, MASK_DLL, + TARGET_WIN32, TARGET_CYGWIN, TARGET_WINDOWS, TARGET_DLL): New. + (SUBTARGET_SWITCHES): Add -mno-cygwin, -mcygwin, and -mdll options. + (CPP_PREDEFINES): Don't define __CYGWIN32__ here. + (STARTFILE_SPEC): Handle -mdll, -mno-cygwin options. + (CPP_SPEC): Handle -mno-cygwin option. Define __CYWIN__ in addition + to __CYGWIN32__. + (LIB_SPEC): Handle -mno-cygwin option. + (LINK_SPEC): Handle -mdll. - * toplev.c (debug_start_source_file): Mark parameter `filename' - with ATTRIBUTE_UNUSED. +Wed Nov 4 22:56:14 1998 J"orn Rennecke -Sun Mar 21 02:28:21 1999 Andreas Schwab + * reload.c (find_reloads): Fix test for usage by other reload + to handle secondary reloads properly. - * tm.texi (Varargs): Don't split argument of @item across lines. +Wed Nov 4 17:25:10 1998 Kaveh R. Ghazi - * invoke.texi: Fix use of @item vs @itemx. + * reload1.c (ELIMINABLE_REGS, NUM_ELIMINABLE_REGS): Introduce an + intermediate structure which has exactly the members provided by + ELIMINABLE_REGS. Define NUM_ELIMINABLE_REGS in terms of the + static intermediate structure. -Sun Mar 21 09:59:54 1999 Michael Hayes + (init_elim_table): Xmalloc() `reg_eliminate', and initialize it + from the intermediate structure. Do the same analogous fix in + the case where ELIMINABLE_REGS is not defined. - * config/c4x/c4x.h (TARGET_SWITCHES): Add null description to - default case. +Tue Nov 3 20:50:03 1998 Jeffrey A Law (law@cygnus.com) -Sat Mar 20 23:33:54 1999 Michael Hayes + * pa.h (SELECT_SECTION): Fix thinko. - * loop.c (check_dbra_loop): Fix debug message. +Tue Nov 3 17:51:36 1998 Jim Wilson -Sat Mar 20 15:54:35 1999 Michael Hayes + * dwarf2out.c (output_call_frame_info): Comments on last change. - * config/c4x/c4x.md (decrement_and_branch_on_count): Emit rptb_end - pattern instead of decrement_and_branch_until_zero pattern. +Tue Nov 3 07:51:43 1998 Richard Earnshaw (rearnsha@arm.com) -Sat Mar 20 11:39:58 1999 Michael Hayes + * arm.c (add_constant): When taking the address of an item in the + pool, get the mode of the item addressed. - * config/c4x/c4x.h (TARGET_SWITCHES): Add documentation. - * config/c4x/c4x.h (TARGET_OPTIONS): Add documentation. + * arm.c (final_prescan_insn case INSN): If an insn doesn't + contain a SET or a PARALLEL, don't consider it for conditional + execution. -Fri Mar 19 23:26:29 1999 Martin von Löwis + Restore ABI compatibility for NetBSD. + * arm/netbsd.h (DEFAULT_PCC_STRUCT_RETURN): Override setting in + arm.h. + (RETURN_IN_MEMORY): Likewise. - * expr.c (expand_expr): Handle ERROR_MARK much earlier. +Mon Nov 2 11:46:17 1998 Doug Evans -Fri Mar 19 15:28:38 1999 Kaveh R. Ghazi + * m32r/m32r.c (m32r_expand_block_move): Fix byte count computations. + (m32r_output_block_move): Rewrite bytes < 4 handling. - * cccp.c (create_definition): Cast to U_CHAR* when assigning to one. +Mon Nov 2 10:10:35 1998 Kaveh R. Ghazi - * cppfiles.c (read_and_prescan): Likewise. - Start a #define in column 0. + * configure.in: Call AC_FUNC_VFORK. - * cpplib.c (cpp_define): Cast to U_CHAR* when assigning to one. - (cpp_push_buffer): Likewise for cpp_buffer*. - (do_include): Change the type of `fbeg' and `fend' to unsigned char*. - (do_endif): Cast to char* when assigning to one. - (do_assert): Likewise. - (do_unassert): Likewise. - (cpp_read_check_assertion): Change the type of `name' to U_CHAR*. - Don't do unnecessary cast to char* anymore. + * collect2.c: Define VFORK_STRING as a printable string for + error messages (either "vfork" or "fork".) If HAVE_VFORK_H is + defined, include vfork.h. If VMS is defined, define vfork() + appropriately. Remove vfork check on USG, we're using autoconf. + (collect_execute): Pass VFORK_STRING to fatal_perror instead of + checking locally what string to pass. + (scan_prog_file): Likewise. + (scan_libraries): Likewise. - * genrecog.c (make_insn_sequence): Cast to char** when assigning - to one. Cast the first argument of bzero to PTR. + * gcc.c: Remove vfork check on USG, we're using autoconf. + Besides, no calls to vfork/fork occur in this file. - * loop.c (strength_reduce): Remove unused variable `note'. + * protoize.c: Likewise. - * reload1.c (new_insn_chain): Cast to struct insn_chain* when - assigning to one. +Mon Nov 2 07:52:28 1998 Alexandre Oliva - * rtl.c (copy_rtx): Use memcpy instead of bcopy. + * configure.in (DEFAULT_LINKER): Renamed from LD. + (DEFAULT_ASSEMBLER): Renamed from AS; reverted Schwab's patch. + (gcc_cv_as): Try $DEFAULT_ASSEMBLER before $AS. + * configure: Rebuilt. -Fri Mar 19 11:19:31 1999 Kaveh R. Ghazi +Mon Nov 2 01:48:10 1998 Alexandre Oliva - * calls.c (initialize_argument_information): Mark parameters - `num_actuals' and `n_named_args' with ATTRIBUTE_UNUSED. + * BUGS: Fix the regexp for `more' to find the appropriate node. + Reported by Joerg Pietschmann - * dbxout.c (dbxout_start_new_source_file): Likewise for parameter - `filename'. - (dbxout_finish): Likewise for parameters `file' and `filename'. - (dbxout_prepare_symbol): Likewise for parameter `decl'. - (dbxout_begin_function): Likewise. + * BUGS: Added link to the WWW FAQ. - * explow.c (hard_function_value): Likewise for parameter `func'. +Sun Nov 1 18:27:15 1998 Jeff Law (law@cygnus.com) - * function.c (locate_and_pad_parm): Likewise for parameter `fndecl'. + * version.c: Bump for snapshot. - * expmed.c (expand_divmod): Omit unused argument to `expand_abs'. - * expr.c (expand_expr): Likewise. - * expr.h (expand_abs): Delete unused argument from prototype. - * optabs.c (expand_abs): Remove unused parameter `unsignedp'. +Sun Nov 1 11:04:32 1998 Jeffrey A Law (law@cygnus.com) - * sdbout.c (sdbout_init): Mark parameter `syms' with ATTRIBUTE_UNUSED. - (sdbout_end_block): Likewise for parameter `n'. + * From Christian Gafton: + * i386/linux.h (CPP_PREDEFINES): Add -D__i386__. + * sparc/linux.h (CPP_PREDEFINES): Add -D__sparc__. + * sparc/linux64.h (CPP_PREDEFINES): Add -D__sparc__. - * toplev.c (debug_define): Likewise for parameters `lineno' and - `buffer'. - (debug_undef): Likewise. +Sat Oct 31 21:42:39 1998 Mark Mitchell - * varasm.c (named_section): Likewise for parameter 'reloc'. - (assemble_external): Likewise for parameter `decl'. - (assemble_alias): Likewise for parameter `target'. + * c-common.c (c_get_alias_set): Allow all type-punning through + unions. Don't get confused about the type of a bit-field, despite + the antics of build_modify_expr. -Fri Mar 19 01:54:30 1999 Theodore Papadopoulo +Sat Oct 31 22:35:29 1998 Jean-Pierre Radley - * toplev.c (read_integral_parameter): Constify. Better control of - error messages. - (main): Use read_integral_parameter to set optimize, id_clash_len, - larger_than_size, and the debugging level. - * toplev.h (read_integral_parameter): Update prototype. + * fixinc.sco: Parameterize #include_next values. + * fixinc/fixinc.sco: Likewise. -Fri Mar 19 01:42:05 1999 Zack Weinberg +Sat Oct 31 20:39:35 1998 Jeffrey A Law (law@cygnus.com) - * system.h: Use putc_unlocked, fputc_unlocked, and - fputs_unlocked only if putc_unlocked has a prototype already. - Prototype fputs_unlocked if necessary. - * configure.in: Check for prototypes of putc_unlocked and - fputs_unlocked. - * acconfig.h: Updated. - * config.in, configure: Rebuilt. + * toplev.c (rest_of_compilation): No longer set reload_completed. + * reload1.c (reload): Set it here. Perform instruction splitting + after reload has completed if we will be running the scheduler + again. -Fri Mar 19 02:45:12 1999 Alexandre Oliva +Sat Oct 31 12:30:02 1998 Jeffrey A Law (law@cygnus.com) - * Makefile.in (INTL_TARGETS): New macro. - ($(INTL_TARGETS)): Depend on generated sources; drop dependencies - on cp/parse.c and objc/objc-parse.c. - ($(srcdir)/cp/parse.c): Move to cp/Make-lang.in. - * objc/Make-lang.in ($(INTL_TARGETS)): Depend on objc/objc-parse.c. + * jump.c (jump_optimize): Initialize mappings from INSN_UID to + EH region if exceptions are enabled and we're performing cross + jump optimizations. + (find_cross_jump): Exit loop if the insns are in different EH regions. -Thu Mar 18 22:28:53 1999 Jeffrey A Law (law@cygnus.com) +Sat Oct 31 10:02:48 1998 Mark Mitchell - * i860.h (TARGET_SWITCHES): Add documentation. - * i860/paragon.h (TARGET_SWITCHES): Add documentation. - * i370.h (TARGET_SWITCHES): Add documentation. - * fx80.h (TARGET_SWITCHES): Add documentation. - * elxsi.h (TARGET_SWITCHES): Add documentation. - * clipper.h (TARGET_SWITCHES): Add documentation. - * 1750a.h (TARGET_SWITCHES): Add documentation. - * pa.h (TARGET_SWITCHES): Add documentation. - (TARGET_OPTIONS): Likewise. - * mn10300.h (TARGET_SWITCHES): Add documentation. - * h8300.h (TARGET_SWITCHES): Add documentation. + * dwarf2out.c (output_call_frame_info): Use + ASM_OUTPUT_DWARF_DELTA4 for the CIE offset to match frame.c. -Thu Mar 18 15:58:26 1999 Nick Clifton +Sat Oct 31 10:23:14 1998 Kaveh R. Ghazi - * loop.c (strength_reduce): Do not perform pseudo replacements - if the loop contains volatile memory references. + Reinstall Apr 24th fix, lost during May 6th gcc2 merge: + * c-common.c (check_format_info): Don't check for the 'x' + format character twice, instead check for 'x' and 'X' -Thu Mar 18 19:09:50 1999 J"orn Rennecke +Fri Oct 30 14:50:25 1998 Jeffrey A Law (law@cygnus.com) - * reload.c (find_reloads_toplev): When processing X recursively, - don't alter it destructively except by filling in constants. + * configure.in (assembler features): Also make gas is configured if + we find it in the source tree. -Thu Mar 18 10:14:18 1999 Kaveh R. Ghazi +Fri Oct 30 13:23:20 1998 Richard Henderson - * cccp.c (default_include): Initialize structure members. - (pass_thru_directive): Change the type of 'keyword_length' to int. - (main): Cast `bindtextdomain' and `textdomain' to (void). + * i386.c (i386_comp_type_attributes): Compare whether the + attributes are defined, not their tree nodes. - * collect2.c (main): Likewise. +Fri Oct 30 11:39:47 1998 Alexandre Oliva - * cppmain.c (main): Likewise. + * configure.in (gxx_include_dir): Bitten by autoconf quoting + characters. :-( + * configure: Rebuilt. - * gcc.c (main): Likewise. +Fri Oct 30 10:43:29 1998 Andreas Schwab - * gcov.c (main): Likewise. + * configure.in: Ignore non-absolute value in $AS. - * protoize.c (main): Likewise. +Fri Oct 30 00:54:25 1998 Peter Jakubek - * toplev.c (main): Likewise. + * m68k.h (INDIRECTABLE_1_ADDRESS_P): Fix thinko. -1999-03-18 Gavin Romig-Koch +Fri Oct 30 00:42:34 1998 Mark Elbrecht - * config/mips/mips.c (mips_explicit_type_size_string): Correct - its type. + * configure.in (msdosdjgpp): Set exeext and target_alias. -Thu Mar 18 01:24:25 1999 Jeffrey A Law (law@cygnus.com) +Thu Oct 29 23:55:43 1998 Bernd Schmidt - * configure.in: Use "exit 1", not "exit (1)". - * configure: Rebuilt. + * flow.c (XNMALLOC): New macro. + (flow_int_list_blocks, basic_block_succ, basic_block_pred): New + static variables. + (add_edge, add_edge_to_label): New static functions. + (free_bb_memory): New function. + (flow_delete_insn): Delete function. + (basic_block_drops_in): Delete variable. + (find_basic_blocks): Allocate and initialize basic_block_head, + basic_block_succ. Don't allocate basic_block_drops_in. + Call free_bb_memory at the beginning. + (find_basic_blocks_1): Don't do multiple passes. + Delete code to compute basic_block_drops_in. + After calling make_edges, mark blocks reached by current block live. + Update test for unreachable live blocks. + (mark_label_ref): Delete args X, CHECKDUP. Add PRED arg. All callers + changed. + Simplify to call add_edge_to_label when a LABEL_REF is found. + (make_edges): Simplify to call add_edge_to_label instead of + mark_label_ref most of the time. + Compute here whether control drops into the next block. + (delete_unreachable_blocks): Return void. All callers changed. + Delete unreachable blocks in reverse order. + After deleting all unreachable blocks, renumber the remaining ones + and update n_basic_blocks. + (delete_block): Speed up deletion a bit. + Don't set basic_block_drops_in for deleted blocks. + (free_basic_block_vars): Don't free basic_block_drops_in. + (life_analysis_1): Update to use new edge representation. + (dump_flow_info): Delete code to print basic block info; call + dump_bb_data instead. + (compute_preds_succs): Delete code to recompute basic_block_drops_in + and uid_block_number. + Simply copy the previously computed cfg. + (dump_bb_data): New arg LIVE_INFO. All callers changed. + Print register lifetime information if LIVE_INFO is nonzero. + * basic-block.h (dump_bb_data): Adjust prototype. + * gcse.c (gcse_main): Update call to dump_bb_data. + * rtl.h (free_bb_memory): Declare. + * toplev.c (rest_of_compilation): Call free_bb_memory. -Wed Mar 17 23:17:42 1999 Mark Kettenis - - * config/t-gnu (SYSTEM_HEADER_DIR): New variable. Set to - `/include' in order to find the system's limits.h. - -Wed Mar 17 23:00:18 1999 Robert Lipe - - * fixinc/fixincl.c: Include auto-host.h instead of config.h. - * fixinc/procopen.c: Likewise. - * fixinc/regex.c: Likewise. - * fixinc/server.c: Likewise. - -Wed Mar 17 22:46:13 1999 Mark Elbrecht - Jeff Law +Thu Oct 29 22:30:54 1998 Marcus Meissner - * pa.md: Add real PA8000 scheduling information. + * i386.c (i386_comp_type_attributes): Return nonzero for mismatched + "stdcall" and "cdecl" attributes. - * pa.h (processor_type): Add PROCESSOR_8000 symbol. - (ISSUE_RATE): Revamp, including PA8000 support. - * pa.c (override_options): Add 8000 as -mschedule= option. - Do not call strcmp if pa_cpu_string is null. - * pa.md (attr cpu): Add 8000. - * invoke.texi: Add documentation for PA8000 scheduling. +Thu Oct 29 19:05:17 1998 Jim Wilson -Wed Mar 17 18:20:24 1999 David S. Miller + * sched.c (update_flow_info): Add code to ! found_orig_dest case to + handle deleted no-op moves of hard registers. + * haifa-sched.c (update_flow_info): Likewise. - * config/sparc/sparc.h (TARGET_SWITCHES, TARGET_OPTIONS): - Add descriptions. - * config/sparc/sp64-elf.h (SUBTARGET_SWITCHES): Likewise. - * config/sparc/splet.h (SUBTARGET_SWITCHES): Likewise. +Thu Oct 29 18:07:47 1998 Jeffrey A Law (law@cygnus.com) -Wed Mar 17 14:51:19 1999 Richard Henderson + * mips.md (reload_{in,out}{si,di}): Emit a USE of HILO at the end + of the sequences to reload the HILO register which do not actually + reference HILO. - * flow.c (compute_immediate_dominators): New function. - * basic-block.h (compute_immediate_dominators): Declare it. +Thu Oct 29 12:39:35 1998 Jim Wilson - * alpha.h (HARD_REGNO_MODE_OK): Allow only 4 and 8 byte unit modes - in FP regs. - (MODES_TIEABLE_P): Define asymmetricly wrt modes illegal in FP regs. + * c-common.c (c_get_alias_set): Handle ARRAY_REF of union field. -Wed Mar 17 14:41:41 1999 Nick Clifton +Thu Oct 29 14:10:22 1998 Andrew MacLeod - * config/arm/aout.h (ASM_GENERATE_INTERNAL_LABEL): Fix compile - time warning. - * config/arm/arm.md: Fix various compile time warnings. - * config/arm/arm.h: Fix various compile time warnings. Add - function prototypes. - * config/arm/arm.c: Fix various compile time warnings. - (arm_override_options): Reorganize to separate tuning from - targetting. - (bit_count): New function: Return a count of the number of bits - set in a word. - -Wed Mar 17 21:29:12 1999 J"orn Rennecke - - * reload1.c (eliminate_regs): Don't keep REG_DEAD notes around for - things that were eliminated. - -Wed Mar 17 12:16:26 1999 Richard Henderson - - * function.c (fixup_var_refs_1): First try moving the expression - directly into a register. Don't separate cc0 setter and user. - -Wed Mar 17 11:20:29 1999 Dave Brolley - - * cppfiles.c (PIPE_BUF): #define PIPE_BUF if not defined already. - -Wed Mar 17 09:25:06 1999 Kaveh R. Ghazi - - * c-lex.c: Don't include setjmp.h. - (parse_float): New static function. - (pf_args): New struct. - (yylex): Use them in call to `do_float_handler'. - -1999-03-16 Andreas Schwab - - * cexp.y (yyerror): Call verror to get a useful error message. - * cexp.c: Rebuilt. - - * .gdbinit: Move command to put breakpoint at abort to end of file - so that gdb does not bail out early. - -Tue Mar 16 15:30:19 1999 Nick Clifton - - * rtl.h: Rename prototype for free_bb_memory to free_bb_mem. - -Tue Mar 16 23:40:09 1999 J"orn Rennecke - - * sh.md (movsi_i): Move t/r alternative after r/rI alternative. - -Tue Mar 16 13:44:50 1999 Jim Wilson - - * mn10200/mn10200.md (addsi3, subsi3, ashlsi3, lshrsi3, ashrsi3): - Delete emit_library_call_value declaration. - -1999-03-16 Zack Weinberg - - * cppfiles.c (read_and_prescan): Map backslash-newline to '\r' - (which cannot otherwise appear in the processed buffer) and - move it out of tokens that it appears in the middle of. - Improve performance. - (find_position): New function. - - * cpplib.c: \r (one character) indicates backslash - newline, not \\\n (two characters). It cannot appear in the - middle of a token. Call CPP_BUMP_LINE (pfile) whenever - parsing moves past \n or \r. Increment pfile->lineno whenever - a \n is placed into token_buffer. Only one mark can exist at - a time, and CPP_BUMP_LINE must not be used while it is - active. It is automatically cleared by cpp_pop_buffer and - parse_goto_mark. \r is not in is_hor_space or is_space. - - (NEWLINE_FIX, NEWLINE_FIX1, adjust_position, - update_position, count_newlines, parse_move_mark): Removed. - (parse_string, copy_comment): New functions. - (parse_name): Returns void. - (parse_set_mark, parse_clear_mark, parse_goto_mark): Take only - one argument, a cpp_reader *. Change for new marking scheme. - (skip_comment): Handle CHILL line comments too. Second - argument is now first character of comment marker; all callers - changed. Issue error for unterminated block comment here. - (cpp_skip_hspace): Recognize CHILL comments. - (copy_rest_of_line): Likewise. Call skip_comment and - parse_string directly, don't go through cpp_get_token. Emit - "/**/" for block comments if -traditional (create_definition - needs this). - (do_define): Don't play with put_out_comments. - (cpp_push_buffer): Initialize ->mark to -1. - (cpp_buf_line_and_col): Just read out the values in the buffer - structure. - (output_line_command): Use cpp_buf_line_and_col. Fix - formatting. Remove stale code. - (cpp_get_token): Break out string parsing code to - parse_string. Use skip_comment for CHILL comments too. Use - copy_comment for put_out_comments instead of dinking with - marks. Remove stale code. Don't call output_line_command - unless it's necessary. - - * cpplib.h (parse_marker): Removed. - (struct cpp_buffer): Line_base is now an unsigned char *; add - `mark' [long], remove `marks' [struct parse_marker *]. - (parse_set_mark, parse_clear_mark, parse_goto_mark): Update - prototypes. - (CPP_BUMP_LINE, CPP_BUMP_BUFFER_LINE): New macros. - * cppinit.c (is_hor_space, is_space): '\r' is not considered - whitespace. - * cppexp.c (cpp_parse_expression): Use cpp_skip_hspace, not - SKIP_WHITE_SPACE. - * cpphash.c (macarg): Disable line commands while expanding. - -Tue Mar 16 11:30:19 1999 Gavin Romig-Koch - - * c-lex.c (yylex) : Remove warning for integer literals being - larger than the largest target int. Add warning for integer - literal being larger than than its chosen type. - -Tue Mar 16 10:53:17 1999 Gavin Romig-Koch - - * invoke.texi: Add -mlong32 documentation. - * config/mips/mips.h (mips_explicit_type_size_string): New. - (TARGET_SWITCHES): Add 'long32'. - (TARGET_OPTIONS): Add 'explicit-type-size'. - (CC1_SPECS): Set -mexplicit-type-size. - (LONG_MAX_SPEC): Change a use of 'no-long64' to 'long32'. - * config/mips/abi64.h (LONG_MAX_SPEC): Same. Add 'mabi=32'. - * config/mips/mips.c (mips_explicit_type_size_string): New. - (override_options): Use it. - * config/mips/osfrose.h (CC1_SPECS): Set -mexplicit-type-size. - - * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): - Pointer size now depends on both size longs and size of GP - registers. - -Tue Mar 16 10:22:22 1999 Gavin Romig-Koch - - * config/mips/iris.h (CTORS_SECTION_ASM_OP,DTORS_SECTION_ASM_OP, - dtors_section): Use Pmode == DImode rather than TARGET_LONG64. - * config/mips/mips.c (override_options): Allow -mlong64 and - -mint64 with -mips2 or less. - * config/mips/mips.h (MASK_LONG64): Fix comment. - (POINTER_SIZE): Use Pmode == DImode rather than TARGET_LONG64. - (Pmode): Make Pmode the smaller of longs or gp registers. - * invoke.texi: Note the new size for pointers. - -Mon Mar 15 22:45:25 1999 David Edelsohn - - * rs6000.h (ASM_OUTPUT_{DOUBLE,FLOAT}): Always generate IEEE 754 - bit-pattern directly. - (ASM_OUTPUT_REG_{PUSH,POP}): Delete. - * rs6000.c (first_reg_to_save): If profiling and context needed, - allocate a reg to save static chain for all ABIs. For AIX - profiling, calculate parameter registers to save based on need. - (output_function_profiler): Save and restore static chain around - profile call for all ABIs. - -1999-03-15 Zack Weinberg - - * cppinit.c: Instead of one pending list, keep separate lists - for each category of pending option: -D/-U, -A, -include, - -imacros. Move the four partial include-path lists into the - pending block. Use head and tail pointers so we don't ever - have to reverse the lists. - - (cpp_start_read): Break out blocks of code to their own - functions: install_predefs and initialize_dependency_output. - Use path_include for C_INCLUDE_PATH and friends as well as - CPATH. Remove include_defaults gunk. Warn about the - combination of -lang-chill and -trigraphs. Optimize string - bashing. Walk each pending list once, deallocating as we go. - - (append_include_chain): Brought over from cppfiles.c. Mark - dirs as system include dirs if and only if appending to - system include path. If opts->verbose, print a notice when a - dir is dropped from the include path because it doesn't - exist. Fix memory leak: this function is not supposed to copy - its DIR argument. - - (nreverse_pending, push_pending): Removed. - (APPEND): New macro for adding to pending lists. - (path_include): Can now add to any partial include path. - (base_name): Bring over from cccp.c. - (cpp_options_init): Allocate the pending block. - (cpp_handle_option): Add --version. Exit after --help. Fix - formatting. Order -ifoo options by frequency of usage. - (install_predefs): New function, simplified version of code - that was in cpp_start_read. - (initialize_dependency_output): Likewise. Understand OBJECT_SUFFIX. - - * cppfiles.c (simplify_pathname): Export. - (merge_include_chains): Don't nreverse the lists. If - opts->verbose, print a notice when a duplicate dir is detected - and dropped from the include path. - (finclude): Fix excessive cleverness in setting - fp->system_header_p. - (actual_directory): Set x->sysp from - CPP_BUFFER (pfile)->system_header_p so that one system header - may include another with "". - (deps_output): Fix double adjustment of deps_size which would - cause all dependencies after the first two lines to be lost. - - * cpplib.c (cpp_unassert): New function. - * cpplib.h: Lay out struct cpp_pending here. Adjust - prototypes. Add include_prefix_len to struct cpp_options. - -Mon Mar 15 16:01:52 1999 Jim Wilson - - * config/misp/mips.h (REGISTER_MOVE_COST): Make the cost of moving - from HI/LO/HILO/MD into general registers the same as for one - of moving general registers to HI/LO/HILO/MD. - -Mon Mar 15 12:39:38 1999 Nick Clifton - - * config/m32r/m32r.c (init_idents): New function. Initialize - static tree nodes for m32r specific attribute identifiers. Remove - leading and trailing double underscores from the attribute names. - (m32r_valid_machine_decl_attribute): Call init_idents. - (m32r_encode_section_info): Call init_idents. - -Mon Mar 15 10:20:20 1999 Mark Mitchell - - * reload.c (find_reloads): Add a REG_LABEL note if we substitute a - LABEL_REF for something else. - -Mon Mar 15 08:24:17 1999 Kaveh R. Ghazi - - * fold-const.c (exact_real_inverse): Move variable `float_error' - into the scope where it is used. - (const_binop_1): New static function. - (cb_args): New struct. - (const_binop): Use them in call to `do_float_handler'. - (fold_convert_1): New static function. - (fc_args): New struct. - (fold_convert): Use them in call to `do_float_handler'. - -Mon Mar 15 22:50:18 1999 Michael Hayes - - * rtlanal.c (auto_inc_p): New function. - * rtl.h (auto_inc_p): Prototype it. - * reload1.c (add_auto_inc_notes): New function. - (reload): Strip REG_INC notes and call add_auto_inc_notes - for each insn to restore them correctly. - -1999-03-15 Manfred Hollstein - - * fixinc/Makefile.in (procopen.o): List the actual - dependencies. - -Sun Mar 14 16:22:10 1999 Kaveh R. Ghazi - - * cse.c (check_fold_consts): New static function. - (cfc_args): New struct. - (simplify_relational_operation): Use them in call to - `do_float_handler'. - - * toplev.c (do_float_handler): New function to wrap calls to - setjmp/set_float_handler. - - * toplev.h (do_float_handler): Add extern prototype. - - * tree.c (build_real_from_int_cst_1): New static function. - (brfic_args): New struct. - (build_real_from_int_cst): Use them in call to - `do_float_handler'. - -Sun Mar 14 01:15:06 1999 Jeff Law (law@cygnus.com) + * except.c (emit_eh_context): Make the EH context register stay alive + at -O0 so stupid.c doesn't get confused. - * version.c: Bump for snapshot. +1998-10-29 Herman A.J. ten Brugge -Sat Mar 13 17:37:18 1999 Richard Henderson + * emit-rtl.c (try_split): Do not try to split a BARRIER. - * haifa-sched.c (sched_analyze_1): Only clear reg_last_uses on a SET. +Thu Oct 29 01:33:54 1998 Jan Hubicka + Jeffrey A Law (law@cygnus.com) -Sat Mar 13 11:36:16 1999 Richard Earnshaw (rearnsha@arm.com) + * i386.md: Change ix86_cpu == PROCESSOR_PENTIUM to TARGET_PENTIUM. + (zero_extendsidi2): Use # in output template and handle completely by + splits. + (zero_extend splitters): New define_splits. + (ashiftrt_32): New pattern. - * arm.c (arm_split_constant): Don't try to force a constant to - memory after arm_reorg has run. - (after_arm_reorg): New static variable. - (arm_reorg): Set it. - (output_func_epilogue): Clear it. +Wed Oct 28 22:58:35 1998 Jason Merrill -Fri Mar 12 20:26:32 1999 David Edelsohn + * tree.c (append_random_chars): New fn. + (get_file_function_name_long): Use it. - * configure.in ({rs6000,powerpc}-ibm-aix*): Set float_format to none. - * configure: Rebuilt. +Wed Oct 28 22:27:05 1998 Richard Henderson -Fri Mar 12 20:45:30 1999 J"orn Rennecke + * Makefile.in (cc1): Put C_OBJS, and thence @extra_c_objs@ last. + (LIBCPP_OBJS): New. Add cppulp.o. + (cppmain, fix-header): Depend on and use libcpp.a. + * configure.in (extra_c_objs, extra_cxx_objs): Use libcpp.a instead + of the individual object files. + * objc/Make-lang.in (cc1obj): Put OBJC_OBJS, and thence @extra_c_objs@, + last. - * unroll.c (loop_iterations): Don't return a final value for EQ - comparison loops. + * cccp.c (user_label_prefix): New. + (main): Set it off -f*leading-underscore. + (special_symbol): Use it. + * cpplib.c (special_symbol): Likewise. + (cpp_handle_option): Handle -f*leading-underscore. + * cppulp.c: New file. -Fri Mar 12 12:35:01 1999 Jim Wilson + * output.h (user_label_prefix): Declare it. + * dwarf2out.c (ASM_NAME_TO_STRING): Prepend user_label_prefix. + * toplev.c (f_options, main): Handle -f*leading-underscore. - * reload1.c (calculate_needs_all_insns): When ignore equivalence - setting insn, clear need_elim, need_reload, and need_operand_change. + * defaults.h (ASM_OUTPUT_LABELREF): Use asm_fprintf instead of + referencing USER_LABEL_PREFIX directly. + * config/nextstep.h (ASM_OUTPUT_LABELREF): Likewise. + * m32r/m32r.h (ASM_OUTPUT_LABELREF): Likewise. + * final.c (asm_fprintf): Use user_label_prefix instead. + * arm/thumb.c (thumb_print_operand): Likewise. -Fri Mar 12 07:54:43 1999 Bruce Korb + * gcc.c (default_compilers): Pass -f*leading-underscore on to + cpp wherever appropriate. - * fixinc/fixinc.*: Some changes from the fixincl-branch - were not applied (??!!). Corrected. +Wed Oct 28 23:09:25 1998 Robert Lipe - * fixinc/Makefile.in: Same thing. + * sco5.h (SUBTARGET_SWITCHES): Add documentation for OpenServer- + specific compiler switches. -Fri Mar 12 00:51:43 1999 Jeffrey A Law (law@cygnus.com) +Wed Oct 28 21:05:53 1998 Jeffrey A Law (law@cygnus.com) - * expr.c (expand_expr): Allow a CALL_EXPR with a mode wider than - MAX_INTEGER_COMPUTATION_MODE. + * Makefile.in (c-common.o): Depend on c-pragma.h. Use $(RTL_H) instead + of rtl.h. -Thu Mar 11 14:00:58 1999 Richard Henderson +Wed Oct 28 20:52:47 1998 Kaveh R. Ghazi - * alpha.h (HARD_REGNO_MODE_OK): Disallow QI/HImode in fp regs. - (MODES_TIEABLE_P): Update. + * gcc.c (EXTRA_SPECS, extra_specs): Introduce an intermediate + structure which has exactly the members provided by EXTRA_SPECS. + Xmalloc() the real `extra_specs', and initialize it from this + intermediate structure. - * alpha.md (ev5_e0): Conflict loads and stores. + * alpha.h (EXTRA_SPECS): Revert change for missing initializers. -Thu Mar 11 13:55:52 1999 Richard Henderson + * mips.h (EXTRA_SPECS): Likewise. - * machmode.h (smallest_mode_for_size): Prototype. - * stor-layout.c (smallest_mode_for_size): Remove static. + * sparc.h (EXTRA_SPECS): Likewise. -Thu Mar 11 21:25:59 1999 J"orn Rennecke +Wed Oct 28 16:46:07 1998 Andreas Schwab - * loop.c (strength_reduce): Don't do biv increment -> DEST_REG giv - conversion if we don't know the lifetime. + * function.c (purge_addressof_1): Instead of aborting when a + bitfield insertion as a replacement for (MEM (ADDRESSOF)) does not + work just put the ADDRESSOF on stack. Otherwise remember all such + successful replacements, so that exactly the same replacements + can be made on the REG_NOTEs. Remove the special case for CALL + insns again. + (purge_addressof_replacements): New variable. + (purge_addressof): Clear it at end. -Thu Mar 11 20:37:59 1999 J"orn Rennecke +1998-10-28 Zack Weinberg - * reload.1c (delete_address_reloads_1): Check for reloads of - CURRENT_INSN even if it sets DST. - -Thu Mar 11 10:29:50 1999 Jason Merrill - - * dwarf2out.c (add_AT_lbl_offset): Rename from add_AT_section_offset. - (print_die, size_of_die, value_format, output_die): Adjust. - -Thu Mar 11 10:27:42 1999 Robert Lipe - - * dwarf2out.c (TEXT_SECTION_LABEL, DEBUG_LINE_SECTION_LABEL, - DEBUG_INFO_SECTION_LABEL, ABBREV_SECTION_LABEL, - text_section_label, debug_line_section_label, - debug_info_section_label, abbrev_section_label): New. - (output_compilation_unit_header): Emit label associated - with section instead of section name itself. - (out_pubnames, output_aranges, output_line_info, - dwarf2out_finish): Likewise. - (dwarf2out_init): Build internal label names for sections - from static labels. - -Thu Mar 11 17:28:32 1999 J"orn Rennecke + * c-lang.c: Declare extern char *yy_cur if USE_CPPLIB. + (lang_init): Call check_newline always. + * c-lex.c (init_parse) [USE_CPPLIB=1]: After calling + cpp_start_read, set yy_cur and yy_lim to read from + parse_in.token_buffer, so that we'll see the first #line + directive. + * cpplib.c (cpp_start_read): finclude the main input file + before processing -include/-imacros. Process -imacros and + -include separately, and handle -include by stacking a + buffer for the file in question as if it'd been #included. + * toplev.c (documented_lang_options): Recognize -H when + USE_CPPLIB is on. - * sh.md (mulsi3): End mul.l sequence with a no-op move. +1998-10-28 Zack Weinberg -Thu Mar 11 08:52:02 1999 Bruce Korb + * cpplib.c: Merge do_once into do_pragma. Break file handling + code out of do_include. + Move append_include_chain, deps_output, + file_cleanup, redundant_include_p, import_hash, + lookup_import, add_import, read_filename_string, read_name_map, + open_include_file, finclude, safe_read to cppfiles.c. + Move prototypes for deps_output, append_include_chain, + finclude to cpplib.h. Move definition of struct + file_name_list there also. - * Makefile.in: Activated fixinc/mkfixinc.sh. - * configure.in: Activated fixinc/mkfixinc.sh. + * cppfiles.c: New file. Contains all the above functions + broken out of cpplib.c; also hack_vms_include_specification + from cccp.c and find_include_file, a new function broken out of + do_include. -Thu Mar 11 01:38:02 1999 Mumit Khan + * Makefile.in (cppmain): Depend on cppfiles.o. + (fix-header): Likewise. + (cppfiles.o): New target. + * configure.in (--enable-c-cpplib): Add cppfiles.o to + extra_c_objs. Add ../cppfiles.o to extra_cxx_objs. - * cppfiles.c (INO_T_EQ): Handle UWIN. +Wed Oct 28 14:06:49 1998 Jim Wilson - * c-common.c (decl_attributes): Flag unrecognized attribute - functions as warnings instead of as errors. + * dwarfout.c (dwarfout_file_scope_decl): If DECL_CONTEXT, don't abort + if pending_types is nonzero. + (dwarfout_finish): Verify pending_types is zero before finishing. - Support for i386-pc-uwin. - * i386/uwin.h: New file. - * i386/xm-uwin.h: New file. - * i386/t-uwin: New file. - * i386/uwin.asm: New file. - * configure.in (i[3456]86-*-uwin*): Define. - Add Workaround for vfork bug when hosted on uwin. - * configure: Regenerate. +Wed Oct 28 10:29:09 1998 Nick Clifton - * cccp.c (INO_T_EQ): Undefine. UWIN has inodes. - (absolute_filename): UWIN uses POSIX pathnames only. - * libgcc2.c (getpagesize): Do not define for UWIN. - (mprotect): Likewise. - * protoize.c (dirent.h): Conditionally include. - (fputc): Prototype only if it's not a macro. - -Wed Mar 10 02:49:04 1999 Jason Merrill + * expr.c (convert_move): Use shifts to perform the move if a + suitable extend pattern cannot be found. Code written by + Richard Henderson . - * configure.in: Remove init_priority stuff. +Wed Oct 28 03:59:29 1998 Bernd Schmidt -1999-03-11 Colin Smith + * regclass.c (renumber, regno_allocated): New static variables, moved + out of allocate_reg_info. + (allocate_reg_info): Move these two variables outside the function. + Move code to free memory into new function free_reg_info. + (free_reg_info): New function, broken out of allocate_reg_info. + * toplev.c (compile_file): Call free_reg_info, not allocate_reg_info. + * rtl.h (allocate_reg_info): Don't declare. + (free_reg_info): Declare. - * sdbout.c (plain_type_1): Make boolean types work better with sdb. + * final.c (cleanup_subreg_operands): ASM_INPUTs need no treatment. -Thu Mar 11 00:20:52 1999 Alexandre Oliva +Wed Oct 28 02:38:12 1998 Jason Merrill - * gcc.texi: Update bug reporting instructions to match - current ezmlm list reality. + * toplev.c (compile_file): Temporarily revert last change. -Wed Mar 10 23:11:19 1999 Kaveh R. Ghazi +Wed Oct 28 00:00:35 1998 Jason Merrill - * gcc.c (print_file_name, print_prog_name, spec_machine, - read_specs, set_spec, lookup_compiler, build_search_list, - putenv_from_prefixes, find_a_file, record_temp_file, - delete_if_ordinary, handle_braces, do_spec, do_spec_1, find_file, - is_directory, validate_switches, used_arg, default_arg, - pfatal_with_name, perror_with_name, pfatal_pexecute, fatal, error, - notice, add_preprocessor_option, add_assembler_option, - add_linker_option, process_command, execute, - unused_prefix_warnings, clear_args, fatal_error, - lang_specific_driver, user_specs, compiler, link_command_spec, - option_map, translate_options, make_temp_file, temp_name, - programname, path_prefix, machine_suffix, just_machine_suffix, - gcc_exec_prefix, standard_exec_prefix, standard_exec_prefix_1, - md_exec_prefix, md_startfile_prefix, md_startfile_prefix_1, - standard_startfile_prefix, standard_startfile_prefix_1, - standard_startfile_prefix_2, tooldir_base_prefix, tooldir_prefix, - multilib_dir, temp_filename, temp_file, command, switchstr, - infile, outfiles, input_filename, input_basename, input_suffix, - check_live_switch, main): Qualify a char* with the `const' keyword. + * c-typeck.c (convert_for_assignment): Parenthesize. -Wed Mar 10 20:28:29 1999 Jeffrey A Law (law@cygnus.com) +1998-10-28 Andreas Schwab - * lcm.c: New file. - * Makefile.in (OBJS): Add lcm.o. - (lcm.o): Add dependencies. + * reload1.c (delete_output_reload): Avoid ambigous else. - * gcse.c (compute_pre_local_properties): Delete. - (compute_pre_data): Use compute_local_properties instead of - compute_pre_local_properties. +Wed Oct 28 00:10:35 1998 Jeffrey A Law (law@cygnus.com) - * gcse.c: More comments, whitespace and similar fixes. - (dump_cuid_table, maybe_set_rd_gen, dump_cprop_data): Delete. - (dump_pre_data, compute_cprop_local_properties): Likewise. - (one_classic_gcse_pass): Lose unused argument. All callers changed. - (compute_hash_table, compute_expr_hash_table): Likewise. - (compute_set_hash_table, one_pre_gcse_pass, mark_call): Likewise. - (cprop_insn, cprop, one_cprop_pass): Add new argument ALTER_JUMPS. - All callers changed. Only alter jumps if ALTER_JUMPS is nonzero. - Lose unused argument. - (gcse_main): Always run a cprop pass after finishing global cse. - (compute_local_properties): New function. - (hash_scan_pat, hash_scan_insn): No longer call maybe_set_rd_gen. - (compute_cprop_data): Use compute_local_properties. + * toplev.c (compile_file): Call allocate_reg_info to free register + table memory. + * rtl.h (allocate_reg_info): Declare. - * gcse.c: Update various comments. - (current_function_calls_longjmp): Delete declaration. + * PROJECTS: Remove entry for local spilling. - * gcse.c (run_jump_opt_after_gcse): New variable. - (gcse_main): Returns an integer. - (hash_scan_set): Record initializations from CONST_DOUBLEs too. - (try_replace_reg): Update some comments. - (cprop_insn): Allow propagation into some JUMP_INSNs too. - * rtl.h (gcse_main): Update prototype. - * toplev.c (rest_of_compilation): If gcse_main returns nonzero, - then run a jump optimization pass. - * jump.c (delete_barrier_successors): Delete nop jumps too. + * final.c (cleanup_subreg_operands): New function. + (final_scan_insn): Use it. + (alter_subreg): Clear the "used" field when we turn a SUBREG into + a REG. + * reload1.c (reload): Delete CLOBBER insns and also cleanup SUBREG + operands when reload has finished. + * reload.h (cleanup_subreg_operands): Declare.. + * flow.c (life_analysis_1): No longer delete CLOBBER insns after + reload. Handled in reload itself. -Wed Mar 10 19:04:31 1999 J"orn Rennecke +Tue Oct 27 23:32:34 1998 Bernd Schmidt - * sh.c (fp_arith_reg_operand): Actually test if reg is suitable - for FP arithmetic. Changed caller. - * sh.md (subsf3, subsf_i): Use fp_arith_reg_operand. + * reload1.c (verify_initial_offsets): New function. + (reload): Call it after reload_as_needed. Also verify that the frame + size stays constant during reload_as_needed. + * i386.h (CONST_DOUBLE_OK_FOR_LETTER_P): Undo Jul 26 change. -Wed Mar 10 18:56:31 1999 J"orn Rennecke + * reload.h (struct insn_chain): Add need_operand_change element. + * reload1.c (new_insn_chain): Clear it. + (calculate_needs_all_insns): Set it; don't overload need_reload. + (reload_as_needed): Use it. - * reload1.c (choose_reload_regs): When inheriting from the frame - pointer, don't clobber it. + * reload.c (find_reloads_address): Use BASE_REG_CLASS instead of + reload_address_base_reg_class throughout. Similar for INDEX_REG_CLASS + and reload_address_index_reg_class. + (find_reloads_address_1): Likewise. + * reload.h (reload_address_base_reg_class, + reload_address_index_reg_class): Don't declare. + * reload1.c (reg_old_renumber, pseudo_previous_regs, + pseudo_forbidden_regs, bad_spill_regs_global): New static variables. + (used_spill_regs): Now static. + (reload_address_base_reg_class, reload_address_index_reg_class, + regs_explicitly_used, counted_for_groups, counted_for_nongroups, + basic_block_needs, max_needs, group_size, group_mode, max_groups, + max_nongroups, max_needs_insn, max_groups_insn, max_nongroups_insn, + forbidden_regs): + Deleted variables. + (init_reload): Delete code to compute base/index reg classes. + (reload): Delete variable J. + Delete code to manage basic_block_needs. + Don't compute regs_explicitly_used. + Allocate, initialize and free reg_old_renumber, pseudo_forbidden_regs, + pseudo_previous_regs. + Initialize bad_spill_regs_global. + Don't call order_regs_for_reload here. + Don't initialize spill_reg_order and n_spills. + Don't forbid explicitly used regs to be used for spill regs. + Change main loop to infinite loop, with explicit break statements. + Make SOMETHING_CHANGED variable local to that loop. + Don't initialize max_needs, max_groups, max_nongroups, max_needs_insn, + max_groups_insn, max_nongroups_insn, group_size, group_mode. + Make sure spilled_pseudos is cleared before calling spill_hard_reg or + new_spill_reg. + Don't call dump_needs. + Delete code to reset potential_reload_regs. + Delete code to terminate loop conditional on the global needs variables + showing no further needs. + (calculate_needs_all_insns): Return void. All callers changed. + Initialize something_needs_elimination here, not in reload. + Delete avoid_return_reg kludge. + (calculate_needs): Lose AVOID_RETURN_REG and GLOBAL args, return void. + All callers changed. + Initialize the group_mode and group_size elements of the arg CHAIN. + Delete code to manage basic_block_needs. + Operate on elements of CHAIN instead of global variables. + Delete avoid_return_reg kludge. + (find_tworeg_group): Lose GLOBAL arg, take CHAIN arg, return void. + All callers changed. + Operate on elements of CHAIN instead of global variables. + Delete special SMALL_REGISTER_CLASSES code. + Delete spill_failure code; now in new_spill_reg. + (find_group): Lose GLOBAL arg, take CHAIN arg, return void. + All callers changed. + Operate on elements of CHAIN instead of global variables. + (maybe_mark_pseudo_spilled): New static function. + (find_reload_regs): Lose GLOBAL arg, take CHAIN arg, return void. + All callers changed. + Operate on elements of CHAIN instead of global variables. + Call order_regs_for_reload here, not in reload. + Initialize spill_reg_order and n_spills. + Simplify test whether an asm insn is involved. + Delete spill_failure code; now in new_spill_reg. + Call maybe_mark_pseudo_spilled for everything marked as live in + CHAIN. Merge CHAIN's used_spill_regs into the global variable + used_spill_regs. + (dump_needs): Take CHAIN arg. No longer static, to prevent the + compiler from optimizing this function (now unused) away. + Operate on elements of CHAIN instead of global variables. + (possible_group_p): Lose MAX_GROUPS arg, take CHAIN arg. All callers + changed. + Operate on elements of CHAIN instead of global variables. + (count_possible_groups): Lose GROUP_SIZE, GROUP_MODE, MAX_GROUPS args, + take CHAIN arg. All callers changed. + Operate on elements of CHAIN instead of global variables. + (new_spill_reg): Lose MAX_NEEDS, MAX_NONGROUPS, GLOBAL args, take + CHAIN, NONGROUP args. Return void. All callers changed. + Verify caller isn't trying to spill a pseudo. + Simplify test for illegal reg, just use bad_spill_regs. + Generate better error messages. + Operate on elements of CHAIN instead of global variables. + Mark spilled register in CHAIN's used_spill_regs element. + Don't call spill_hard_reg. + (spill_hard_reg): Lose GLOBAL arg, return void. All callers changed. + Mark spilled hard regs in bad_spill_regs_global. + Mark affected pseudos in spilled_pseudos, but don't spill them. + (ior_hard_reg_set): New static function. + (finish_spills): Return int. All callers changed. + Compute spill_reg_order, n_spills and spill_regs here. Also update + regs_ever_live for regs used as spills. + For every pseudo in spilled_pseudos, spill it and mark the previous + hard reg it had in pseudo_previous_regs. Compute which hard regs + are used as spills in insns during which it is live, and retry global + register allocation. Update all life information in the + reload_insn_chain not to include pseudos without hard regs. + Call alter_reg for all affected speudos. -Wed Mar 10 08:01:52 1999 Bruce Korb + (scan_paradoxical_subregs): Disable SMALL_REGISTER_CLASSES special + case, it's not clear what it's supposed to do. - * fixinc/fixinc.*: Resync-ed with the files in this - directory. + (hard_reg_use_compare): Take bad_spill_regs into account. + (pseudos_counted): New static variable. + (count_pseudo): New static function. + (order_regs_for_reload): Take CHAIN arg. All callers changed. + Initialize bad_spill_regs from bad_spill_regs_global, then merge any + hard registers explicitly used across the current insn into the set. + Compute hard_reg_n_uses taking only pseudos live across this insn + into account. + Tweak sorting of potential_reload_regs. + (compare_spill_regs): Delete function. + (reload_as_needed): Don't sort the spill_regs array, it's computed + in proper order in finish_spills. + Delete avoid_return_reg kludge. + Delete code to manage basic_block_needs. + (allocate_reload_reg): Minor speed/readability tweaks. + Operate on elements of CHAIN instead of global variables. + (choose_reload_regs): Lose AVOID_RETURN_REG arg. All callers changed. + Delete avoid_return_reg kludge. + Initialize reload_reg_used from CHAIN's used_spill_regs element. + Delete unused label FAIL. + (reload_combine): Replace reload_address_index_reg_class with + INDEX_REGS. + Don't use used_spill_regs to determine information about lifetime of + hard regs. - * fixinc/mkfixinc.sh: The machine case elements were - out-of-order. (the ix86-*-linux-gnu* entry needed to - be earlier). +Tue Oct 27 13:15:02 1998 Nick Clifton -Wed Mar 10 00:01:24 1999 J"orn Rennecke + * toplev.c (display_help): Ignore empty target specific + options, and if -W is also specified on the command line then + display undocumented options. - * reload1.c (reload_combine_note_store): Fix calculation of number - of affected registers. + * config/arm/arm.c: Updated with changes in devo sources. + * config/arm/arm.h: Updated with changes in devo sources. + * config/arm/lib1funcs.asm: Updated with changes in devo sources. + * config/arm/lib1thumb.asm: Add ELF support. -Tue Mar 9 15:48:15 1999 Richard Henderson +Tue Oct 27 16:11:43 1998 David Edelsohn - * flow.c (tidy_fallthru_edge): Be more careful finding the last - BARRIER of a list. Delete the cc0 setter as well as a cond jump. + * collect2.c (aix64_flag): New variable. + (main, case 'b'): Parse it. + (GCC_CHECK_HDR): Object magic number must match mode. + (scan_prog_file): Only check for shared object if valid header. + Print debugging if header/mode mismatch. -Tue Mar 9 15:26:02 1999 Hans-Peter Nilsson +Tue Oct 27 10:15:02 1998 Nick Clifton - * i386.md (ashlsi3 splitter): Fix typo in last change. + Added support for arm-elf-linux configuration, submitted by Philip + Blundell , and integrated this with the arm-elf + code developed by Catherine Moore . The following + files are affected: -Tue Mar 9 11:35:20 1999 Richard Henderson + * configure.in: Add arm-*-linux-gnu, armv2-*-linux and arm-*-elf + targets. - * reg-stack.c (stack_reg_life_analysis): Use returnjump_p - instead of an explicit test for RETURN. + * configure: Regenerated. -Tue Mar 9 09:33:16 1999 Kaveh R. Ghazi + * config/arm/aout.h: Add default definitions of REGISTER_PREFIX, + USER_LABEL_PREFIX and LOCAL_LABEL_PREFIX. Make other macro + definitions conditional on their not having been already defined. - * Makefile.in (toplev.o): Depend on $(BASIC_BLOCK_H). + * config/arm/lin1funcs.asm: Add ELF only macros to generate .size + and .type directives, and add "(PLT)" qualification to function + calls. - * toplev.c: Include basic-block.h. + * config/arm/linux.h: Deleted. This file is now superseded by + either linux-elf.h or linux-aout.h. -Tue Mar 9 02:08:17 1999 Jeffrey A Law (law@cygnus.com) + * config/arm/linux-gas.h: Define `inhibit_libc' if cross-compiling. + (CLEAR_INSN_CACHE): New macro, currently disabled (awaiting kernel + support). + Move definitions from old linux.h file here. - * calls.c (load_register_parameters): New function. - (expand_call): Use it. + * config/arm/elf.h: New file. Generic ARM/ELF support. - * calls.c (expand_call): Slightly reorganize code. + * config/arm/linux-aout.h: New file. Support for Linux with a.out. - * calls.c (compute_argument_addresses): New function. - (rtx_for_function_call): New function. - (expand_call): Use them. + * config/arm/linux-elf.h: New file. Support for Linux with ELF. - * i386.md (zero_extendhisi2): Split into an expander and anonymous - pattern. Add new anonymous pattern for use when optimizing for - size or for the PPro. - (zero_extendqihi2, zero_extendqisi2): Likewise. + * config/arm/linux-elf26.h: New file. Support for Linux with ELF + using the 26bit APCS. -Mon Mar 8 23:43:47 1999 Richard Henderson + * config/arm/unknown-elf.h: New file. Support for OS'es other + than Linux with ELF. - * haifa-sched.c (sched_analyze_1): Fix last change -- add clobber - dependencies to sets in the non-hard-reg case too. + * config/arm/t-arm-elf: New file. makefile fragment for arm-elf + builds. -Mon Mar 8 18:55:21 1999 Marc Espie + * config/arm/coff.h: Include aout.h for basic assembler macros. + Add support for -mstructure_size_boundary= command line option. - * config/openbsd.h (HANDLE_SYSV_PRAGMA): Define. + * config/arm/arm.h: Add support for -mstructure_size_boundary= + command line option. Make macro definitions conditional on their + not having been already defined. -Mon Mar 8 16:04:44 1999 Jim Wilson + * config/arm/arm.c: Add support for -mstructure_size_boundary= + command line option. - * local-alloc.c (combine_regs): Don't combine if we have a hard reg - for which CLASS_LIKELY_SPILLED_P is true. - * unroll.c (loop_iterations): Only call loop_find_equiv_value if we - have a REG or SUBREG. +Tue Oct 27 08:56:46 1998 Andrew MacLeod -Mon Mar 8 15:27:42 1999 Jeffrey A Law (law@cygnus.com) - - * i386.md (ashlsi3): Revise comments. Provide new anonymous - pattern for Pentium and PPro/PII. Reverse constraints in - generic ashlsi3 anonymous pattern. - - * calls.c (initialize_argument_info): Accept a pointer to - CUMULATIVE_ARGS. - (expand_call): Pass the address of CUMULATIVE_ARGS. - - * rs6000/xm-sysv4.h (HOST_BITS_PER_LONGLONG): Remove #if 0. - - * mn10300.h (CASE_DROPS_THROUGH): Delete. - * mn10200.h (CASE_DROPS_THROUGH): Delete. - * h8300.h (CASE_DROPS_THROUGH): Delete. - - * flow.c (merge_blocks_nomove): For HAVE_cc0 targets, make sure - to also delete the cc0 setter when deleting a conditional branch - to the next block. - -Mon Mar 8 18:47:11 1999 J"orn Rennecke + * dwarfout.c (ASM_OUTPUT_DWARF_STRING_NEWLINE): ASM_OUTPUT_DWARF_STRING + has been changed to not include a newline. Use this macro instead. + (output_enumeral_list, const_value_attribute, name_attribute, + comp_dir_attribute, prototyped_attribute, producer_attribute, + inline_attribute, pure_or_virtual_attribute, output_inheritance_die, + dwarfout_file_scope_decl, generate_new_sfname_entry, + generate_macinfo_entry, dwarfout_init, dwarfout_finish): Use + ASM_OUTPUT_DWARF_STRING_NEWLINE macro. - * regmove.c (copy_src_to_dest): New argument max_old_uid. +Mon Oct 26 13:35:02 1998 Richard Henderson -Mon Mar 8 08:23:00 1999 Bruce Korb + * combine.c (subst): Process the inputs to a parallel asm_operands + only once. - * ChangeLog: Merged entries from fixincl-branch. +Mon Oct 26 13:32:31 1998 Richard Henderson -Sun Mar 7 11:48:56 1999 Richard Henderson + * stmt.c (expand_asm_operands): Accept `=' or `+' at any position. - * haifa-sched.c (ENCODE_BLOCKAGE): Don't shift unit too far. - (print_exp): Special case addition of a constant. - (print_value) [CONST_INT]: Use HOST_WIDE_INT_PRINT_HEX. +Mon Oct 26 12:53:14 1998 Jeffrey A Law (law@cygnus.com) -Sun Mar 7 11:21:02 1999 Richard Henderson + * tm.texi (ASM_OUTPUT_MAX_SKIP_ALIGN): Document. - * haifa-sched.c (reg_last_clobbers): New. - (reg_pending_clobbers, bb_reg_last_clobbers): New. - (compute_block_backward_dependences): Allocate memory for them. - (schedule_region): Likewise. - (sched_analyze_1): Clobbers don't interfere with one another. - They do interfere with sets ... - (sched_analyze_2): ... and uses. - (sched_analyze): Likewise. - (sched_analyze_insn): Update reg_last_clobbers appropriately. +Mon Oct 26 00:36:58 1998 Jeff Law (law@cygnus.com) -Sun Mar 7 08:30:37 1999 Kaveh R. Ghazi + * version.c: Bump for snapshot. - * gmon-sol2.c: Include config.h and system.h. Don't redundantly - include system header files. - (sccsid): Remove. - (moncontrol, monstartup, _mcleanup, internal_mcount): Prototype. - (_mcleanup): Add the `const' keyword to a char*. - (internal_mcount): Declare `etext' as a char[] not a function. - Cast `etext' to char* when calling `monstartup'. +Sun Oct 25 23:36:52 1998 Jason Merrill - * sparc.c (frame_base_name, save_regs, restore_regs, - build_big_number, sparc_cmodel_string, sparc_align_loops_string, - sparc_align_jumps_string, sparc_align_funcs_string, code_model, - cpu_default, cpu_table, output_function_prologue, - output_function_epilogue, output_return, - sparc_flat_output_function_prologue, ultra_code_names, - sparc_flat_output_function_epilogue): Constify a char*. - (hypersparc_adjust_cost): Add a default case in a switch. + * stmt.c (expand_fixup): Set fixup->before_jump to a + NOTE_INSN_DELETED instead of a NOTE_INSN_BLOCK_BEG. - * sparc.h (sparc_cmodel_string, OVERRIDE_OPTIONS, - sparc_cpu_select, sparc_align_loops_string, - sparc_align_jumps_string, sparc_align_funcs_string, - output_return): Constify a char*. +Sun Oct 25 15:49:57 1998 Kaveh R. Ghazi - * sparc.md (movdi): Change the comparison of HOST_BITS_PER_WIDE_INT - so that we check "== 32", instead of "!= 64". Cast a value to - HOST_WIDE_INT when comparing against one. Hide the declaration - for variable `chain'. + * Makefile.in (recog.o): Depend on toplev.h. + (insn-emit.o): Depend on recog.h. + (insn-peep.o): Depend on recog.h and insn-config.h. -Sun Mar 7 08:05:27 1999 Kaveh R. Ghazi + * combine.c (simplify_set): Remove unused variable `scratches'. - * system.h (const, inline): Move the stage2 handling of these - keywords-as-macros from here... + * final.c (final_scan_insn): Wrap declaration of variables `vlen' + and `idx' in macro conditional controlling their use. - * gansidecl.h (const, inline): ...to here. + * genemit.c (main): Make the generated output file include + recog.h. Don't have it declare `insn_operand_constraint', since + we get it from recog.h. -Sun Mar 7 02:44:15 1999 Richard Henderson + * genpeep.c (main): Make the generated output file include + insn-config.h and recog.h. - * recog.c (push_operand, pop_operand): VOIDmode needn't match modes. + * recog.c: Include toplev.h. + (extract_insn): Remove unused variable `p'. -Sun Mar 7 01:58:47 1999 Richard Henderson + * regclass.c (fix_register): Add missing braces around initializer + for `what_option'. + (allocate_reg_info): Move variable `i' into the scope where it is + used. Change its type to `size_t'. - * cse.c (canon_hash): Never reject hard regs in CCmode. +Sun Oct 25 13:10:15 1998 Bernd Schmidt -Sun Mar 7 01:15:04 1999 Jeff Law (law@cygnus.com) + * reload.c (push_reload): When merging reloads, make sure + that reload_in_reg and reload_in are from the same reload in + all cases. - * version.c: Bump for snapshot. +Sun Oct 25 12:07:00 1998 Mumit Khan -Sat Mar 6 17:18:44 1999 Richard Earnshaw (rearnsha@arm.com) - Richard Henderson + * i386/crtdll.h (CPP_PREDEFINES): Fix typo. + * i386/mingw32.h (CPP_PREDEFINES): Likewise. - * flow.c (make_edges): Handle casesi that jump to default branch. - If CASE_DROPS_THROUGH, force fallthru to block after casesi. +Fri Oct 23 23:42:03 1998 David Edelsohn -Sat Mar 6 07:49:23 1999 Kaveh R. Ghazi + * loop.c (loop_has_tablejump): New variable. + (prescan_loop): Scan for it. + (insert_bct): Replace explicit scan with use of it. + * regclass.c (regclass): Restore loop variable j. + (record_reg_classes): Deterine op_types modifiers and initialize + classes[i] before matching constraints. Handle matching + constraints 5-9. - * c-aux-info.c (data_type, affix_data_type, gen_decl, - gen_formal_list_for_type, gen_formal_list_for_func_def, gen_type): - Qualify a char* with the `const' keyword. +Fri Oct 23 13:55:48 1998 Jim Wilson - * c-common.c (declare_hidden_char_array, add_attribute, if_elt, - declare_function_name, decl_attributes, format_char_info, - check_format_info, binary_op_error): Likewise. + * m32r/m32r.c (gen_split_move_double): Call alter_subreg. Delete + subreg support. - * cexp.y (yyerror, error, pedwarn, warning, token): Likewise. +Fri Oct 23 16:19:24 1998 Kaveh R. Ghazi - * gcse.c (dump_hash_table): Likewise. + * mips.h (EXTRA_SPECS): Add missing initializers. - * integrate.c (function_cannot_inline_p): Likewise. +Fri Oct 23 16:08:39 1998 Kaveh R. Ghazi - * optabs.c: Include insn-config.h earlier. - (init_libfuncs, init_integral_libfuncs, init_floating_libfuncs): - Qualify a char* with the `const' keyword. + * sparc.h (EXTRA_SPECS): Add missing initializers. + (sparc_defer_case_vector): Provide a prototype. - * real.c (asctoe24, asctoe53, asctoe64, asctoe113, asctoe, - asctoeg, mtherr, ereal_atof): Likewise. + * svr4.h (ASM_OUTPUT_ASCII): Cast STRING_LIMIT to (long) when + comparing it to the result of a pointer subtraction. - * real.h (ereal_atof): Likewise. +Fri Oct 23 15:34:14 1998 Kaveh R. Ghazi - * sbitmap.c (dump_sbitmap_vector): Likewise. + * alpha.c (override_options): Use ISDIGIT(), not isdigit(). Cast + the argument to (unsigned char). - * sbitmap.h (dump_sbitmap_vector): Likewise. + * alpha.h (EXTRA_SPECS): Add missing initializers. + (ASM_GENERATE_INTERNAL_LABEL): Ensure the argument matches the + format specifier. - * stmt.c (nesting, n_occurrences, expand_start_case): Likewise. +Fri Oct 23 13:12:35 1998 Jeffrey A Law (law@cygnus.com) - * toplev.c (rest_of_compilation): Likewise. + * flow.c (life_analysis_1): Enable "rescan" code after reload. + (propagate_block): Delete dead code after reload. - * tree.h (function_cannot_inline_p, expand_start_case): Likewise. + * sched.c (update_flow_info): Revert Oct 19, 1998 change. Brings + back Oct 15, 1998 change. + * haifa-sched.c (update_flow_info): Likewise. + * flow.c (life_analysis_1): Delete CLOBBER insns after reload. -Fri Mar 5 23:16:42 1999 David Edelsohn + * mn10200.md (truncated shift): Accept constant inputs too. - * rs6000.h (ASM_OUTPUT_REG_{PUSH,POP}): Add 64-bit support and do - not overwrite AIX link register save area. +Fri Oct 23 04:06:57 1998 Richard Earnshaw (rearnsha@arm.com) -Fri Mar 5 23:08:01 1999 J"orn Rennecke + * machmode.h (mode_mask_array): No longer const. + * rtl.c (init_rtl): Fully initialize it if EXTRA_CC_MODES defined. - * reload.c (find_reloads_subreg_address): Actually create the USE - for the register, not the new memory location. +Fri Oct 23 11:19:06 1998 Martin v. Löwis -Fri Mar 5 21:41:07 1999 J"orn Rennecke + * frame.c: Somewhat explain `FDE'. + Suggested by Brendan Kehoe - * reload1.c (emit_reload_insns): If pseudo that can't be replaced - with its equivalent constant, fall back to reload_in. +Fri Oct 23 00:56:11 1998 Jason Merrill -Fri Mar 5 13:20:39 1999 Richard Henderson + * expr.c (pending_chain): Move up. + (save_expr_status): Do save pending_chain. + (restore_expr_status): And restore it. + * function.h (struct function): Add pending_chain. - * Makefile.in: Delete .flow2 debugging files. +1998-10-23 Herman A.J. ten Brugge -Fri Mar 5 11:36:11 1999 Nick Clifton + * reorg.c (relax_delay_slots): Fixed test for mostly_true_jump. The + did not match the code. - * config/arm/arm.c (arm_override_options): Change default target - cpu selection so that enabling TARGET_APCS_32 does not override - default target CPU. +Fri Oct 23 00:07:01 1998 Bernd Schmidt -Fri Mar 5 19:26:23 1999 J"orn Rennecke + * regclass.c (regclass): Break out some code into new function + scan_one_insn, and into regclass_init. + (init_cost): New static variable, moved out of regclass. + (regclass_init): Initialize it here, not in . + (scan_one_insn): New static function, broken out of regclass. + * recog.c (apply_change_group): Break out some code into new + function insn_invalid_p. + (insn_invalid_p): New static fn, broken out of apply_change_group. - * sh.h (SLOW_BYTE_ACCESS): Define to 1. - (BOOL_TYPE_SIZE): Define. +Thu Oct 22 22:34:42 1998 Jim Wilson -Fri Mar 5 02:14:54 1999 John Wehle (john@feith.com) + * reload1.c (reload_as_needed): When rewrite POST_INC, verify + reg_reloaded_contents matches incremented pseudo. - * function.c (assign_stack_temp_for_type): Abort - if mode == Blkmode and align is less than - BIGGEST_ALIGNMENT / BITS_PER_UNIT. - (assign_stack_temp_for_type): Round the size parameter - passed to assign_stack_local instead of size itself. + * v850/v850.c (v850_reorg): Call alter_subreg. Delete subreg support. -Thu Mar 4 15:00:35 1999 Richard Henderson +Fri Oct 23 11:11:56 1998 Michael Hayes - * flow.c (delete_unreachable_blocks): Mark blocks as they - are put on to the worklist, not as they are taken off. + * rtl.def (POST_MODIFY, PRE_MODIFY): New generalized operators for + addressing modes with side effects. These are currently + placeholders for the C4x target. -Thu Mar 4 00:05:44 1999 Jeffrey A Law (law@cygnus.com) +Thu Oct 22 16:46:35 1998 Bernd Schmidt - * function.c (current_function_has_computed_jump): Remove duplicate - definition. + * loop.c (express_from): Make sure that when generating a PLUS of + a PLUS, any constant expression appears on the outermost PLUS. -Wed Mar 3 19:09:11 1999 Jim Wilson +Thu Oct 22 15:46:23 1998 Per Bothner (bothner@cygnus.com) - * m68k/m68020-elf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Undef. - (STARTFILE_SPEC, ENDFILE_SPEC): Define to empty string. + * Makefile.in (distdir-cvs, distdir-start): Clean up so it + works if "$(srcdir)" != ".". - * sparc/elf.h (MULDI3_LIBCALL, DIVDI3_LIBCALL, UDIVDI3_LIBCALL, - MODDI3_LIBCALL, UMODDI3_LIBCALL, STDC_0_IN_SYSTEM_HEADERS): Undef. - (INIT_SUBTARGET_OPTABS): Define to empty. +Wed Oct 21 19:23:59 1998 Jim Wilson -Wed Mar 3 00:00:37 1999 J"orn Rennecke + * expmed.c (store_bit_field): If need to add a SUBREG, then remove + existing SUBREG if we can, otherwise abort. - * sh.c (force_into): New function. - (expand_block_move): Use it. +Wed Oct 21 09:58:51 1998 Mark Mitchell -Tue Mar 2 10:39:43 1999 Nick Clifton + * c-common.c (c_apply_type_quals_to_decl): Don't crash when + `restrict' is applied to a non-pointer variable. - * cccp.c (struct default_include): Add 'included' field. - (main): Set 'included' field when a default include directory - is added to the chain. If -v is specified list all default - include directories which do not get appended to the chain. +Wed Oct 21 09:18:58 1998 Mark Mitchell -Tue Mar 2 09:24:10 1999 Nick Clifton + * invoke.texi: Document -flang-isoc9x. - * configure.in (gxx_include_dir): Rename to - gcc_gxx_include_dir in order to prevent it being overridden by - a top level Makefile. - (gcc_tooldir): If $exec_prefix != $prefix then use the - difference between the two as the basis for gcc_tooldir. + * Makefile.in (OBJS): Add splay-tree.o. + (c-common.o): Depend on rtl.h. + (splay-tree.o): List dependencies and provide build rule. - * configure: Rebuild. + * rtl.h (record_alias_subset): New function. + * alias.c: Include splay-tree.h. + (alias_set_entry): New type. + (CHECK_ALIAS_SETS_FOR_CONSISTENCY): Remove. + (DIFFERENT_ALIAS_SETS_P): Use mem_in_disjoint_alias_sets_p. + (mems_in_disjoin_alias_sets_p): New function. + (alias_set_compare): Likewise. + (insert_subset_children): Likewise. + (get_alias_set_entry): Likewise. - * Makefile.in: Rename gxx_include_dir to gcc_gxx_include_dir. + * tree.h (TYPE_RESTRICT): New macro. + (TYPE_UNQUALIFIED): New manifest constant. + (TYPE_QUAL_CONST): Likewise. + (TYPE_QUAL_VOLATILE): Likewise. + (TYPE_QUAL_RESTRICT): Likewise. + (tree_type): Add restrict_flag. Reduce count of free bits. + (DECL_POINTER_ALIAS_SET): New macro. + (DECL_POINTER_ALIAS_SET_KNOWN_P): Likewise. + (tree_decl): Add pointer_alias_set. + (build_qualified_type): New function. + (build_type_variant): Define in terms of build_qualified_type. + * tree.c (set_type_quals): New function. + (make_node): Initialize DECL_POINTER_ALIAS_SET. + (build_type_attribute_variant): Use build_qualified_type and + set_type_quals. + (build_type_variant): Rename, and modify, to become... + (build_qualified_type): New function. + (build_complex_type): Use set_type_quals. -Tue Mar 2 16:45:31 1999 J"orn Rennecke + * c-tree.h (C_TYPE_OBJECT_P): New macro. + (C_TYPE_FUNCTION_P): Likewise. + (C_TYPE_INCOMPLETE_P): Likewise. + (C_TYPE_OBJECT_OR_INCOMPLETE_P): Likewise. + (c_apply_type_quals_to_decl): New function. + (c_build_qualified_type): New function. + (c_build_type_variant): Define in terms of c_build_qualified_type. + (flag_isoc9x): Declare. + * c-typeck.c (qualify_type): Use c_build_qualified_type. + (common_type): Change to use TYPE_QUALS. + (comptypes): Likewise. + (convert_for_assignment): Likewise. + * c-aux-info.c (gen_type): Likewise. Deal with `restrict'. + * c-decl.c (flag_isoc9x): Define. + (c_decode_option): Handle -flang-isoc9x. + (grokdeclarator): Update to handle restrict. Use TYPE_QUALS, + c_build_qualified_type, etc. Use c_apply_type_quals_to_decl. + * c-lex.c (init_lex): Deal with restrict. + (init_lex): Don't treat restrict as a reserved word in + -traditional mode, or without -flang-isoc9x. + * c-lex.h (rid): Add RID_RESTRICT. + * c-parse.gperf (restrict, __restrict, __restrict__): Make + equivalent to RID_RESTRICT. + * c-parse.in (TYPE_QUAL): Update comment. + * c-common.c: Include rtl.h. + (c_find_base_decl): New function. + (c_build_type_variant): Rename, and modify, to become ... + (c_build_qualified_type): New function. + (c_apply_type_quals_to_decl): Likewise. + (c_get_alias_set): For INDIRECT_REFs, check to see if we can find + a particular alias set for the reference. + * toplev.c (documented_lang_options): Add -flang-isoc9x. - * unroll.c (copy_loop_body): Don't make extra copies of - NOTE_INSN_LOOP_CONT notes. +Wed Oct 21 09:15:06 1998 Nick Clifton -Tue Mar 2 07:44:56 1999 Mark Mitchell + * config/arm/arm.h (TARGET_SWITCHES): Document arm specific + command line switches. - * tree.c (save_tree_status): Don't treat functions with no context - as nested. +Tue Oct 20 10:04:51 1998 Graham -Tue Mar 2 09:37:05 1999 Robert Lipe + * reload.c (loc_mentioned_in_p): Add missing braces to bind + else to correct if. - * Makefile.in (MAKEINFO): Use makeinfo built from sibling - tree when available. +Mon Oct 19 16:34:05 1998 Tom Tromey -Tue Mar 2 10:12:48 1999 Kaveh R. Ghazi + * gcc.c (option_map): Added --classpath and --CLASSPATH. - * alpha.c (alpha_cpu_name, alpha_cpu_string, alpha_tp_string, - alpha_fprm_string, alpha_fptm_string, alpha_mlat_string, - current_function_file): Add the `const' keyword. - (normal_memory_operand): Mark parameter `mode' with - ATTRIBUTE_UNUSED. - (alpha_expand_unaligned_load): Add a default case to a switch. +Tue Oct 20 10:59:02 1998 Gavin Romig-Koch - * alpha.h (alpha_cpu_string, alpha_fprm_string, alpha_fptm_string, - alpha_tp_string, alpha_mlat_string): Add the `const' keyword. - (normal_memory_operand): Add prototype. + * regclass.c (fix_register): Add error message. + * invoke.texi (-fcall-used-REG,-fcall-saved-REG): Note the + new error message. - * alpha.md: Cast an expression to `unsigned HOST_WIDE_INT' when - comparing against one. +Tue Oct 20 10:12:17 1998 Kaveh R. Ghazi -Tue Mar 2 10:00:21 1999 Kaveh R. Ghazi - - * mips.c (abort_with_insn): Make function static, add a prototype, - constify 2nd parameter and mark with ATTRIBUTE_NORETURN. - (current_function_file, mips_cpu_string, mips_isa_string, - mips_abi_string, mips_no_mips16_string, mips_entry_string, - mips_move_1word, mips_move_2words, output_block_move, load_store, - override_options, make_temp_file, mips16_fp_args): Qualify a char* - with the `const' keyword. - - * mips.h (current_function_file, mips_cpu_string, mips_isa_string, - mips_abi_string, mips_entry_string, mips_no_mips16_string, - mips_move_1word, mips_move_2words, output_block_move): Likewise. - (abort_with_insn): Remove extern prototype. - - * mips.md: Qualify a char* with the `const' keyword. - Remove many unused variables named `label'. - -Tue Mar 2 01:27:52 1999 H.J. Lu (hjl@gnu.org) - - * Makefile.in (cpp_install_dir, INSTALL_CPP, UNINSTALL_CPP): New - variables. - (install-cpp, uninstall-cpp): New targets. - (install-normal): Depend on $(INSTALL_CPP). - (uninstall): Depend on $(UNINSTALL_CPP). - * configure.in (cpp_install_dir): New, substitute. - (tmake_file): Added t-install-cpp for --enable-cpp. - * configure: Rebuilt. - * cpp.sh: New cpp script. - * config/t-install-cpp: New target fragment. + * c-decl.c (warn_missing_noreturn): New global variable. + (c_decode_option): Check for new flags -W{no-}missing-noreturn. + (finish_function): Implement missing noreturn warning. -Tue Mar 2 01:40:01 1999 Franz Sirl - Jeffrey A Law (law@cygnus.com) + * c-tree.h (warn_missing_noreturn): Declare extern. - * cse.c (fold_rtx): Update comments for (const (minus (label) (label))) - case. - (cse_insn): Avoid creating a bogus REG_EQUAL note for - (const (minus (label) (label))) - (record_jump_cond): Fix mismatched paren in comment. + * invoke.texi: Document new flags. -Tue Mar 2 01:07:12 1999 Dan Nicolaescu + * toplev.c (documented_lang_options): Add description. - * final.c (end_final): There are 11 words in the "main header" - structure, not 10. +Tue Oct 20 22:16:11 1998 Michael Hayes -Tue Mar 2 00:09:18 1999 Marc Espie + * config/c4x/c4x.c (c4x_parallel_process): Disable until BCT + loop optimization stable for the C4x. + (c4x_rptb_info_t, c4x_dump, c4x_rptb_in_range, c4x_rptb_unjumped_loop, + c4x_rptb_find_comp_and_jump, c4x_rptb_loop_info_get, + c4x_rptb_emit_init, c4x_rptb_process): Deleted (superseded by BCT + loop optimization). + (c4x_address_conflict): Be more paranoid when packing a volatile + memref in a parallel load/store. - * extend.texi: Reference __extension__ in the index. +Tue Oct 20 21:56:05 1998 Michael Hayes -Mon Mar 1 19:09:32 1999 Jim Wilson + * config/c4x/c4x.md (repeat_block_top, repeat_block_end, + repeat_block_filler): Deleted. + (*ashlqi3_set, *ashrqi3_const_set, *ashrqi3_nonconst_clobber): + Condition code not set if destination register from 'c' class. + (*subbqi3_carry_clobber): Fix typo. - * Makefile.in (CROSS_FLOAT_H): Delete. - (FLOAT_H): Use float_h_file. - (rest.cross, stmp-int-hdrs): Delete gfloat.h dependency. - (gfloat.h): Delete. - (stmp-int-hdrs): Use FLOAT_H instead of gfloat.h. - (mostlyclean): Delete gloat.h reference. - (install-cross-rest, install-float-h-cross, stmp-headers): Update - comments. - * configure.in (sparcv9-*-solaris2*): Set float_format to none. - (sparc-*-solaris2*): Set float_format to none for 2.5 and higher. - (float_h_file): Set from float_format. Substitute into Makefile.in. - (float_format): No longer substitute into Makefile.in. - * cross-make (FLOAT_H): Delete. - * config/mips/t-cross64 (FLOAT_H): Delete. - * configure: Rebuilt. +1998-10-18 Herman A.J. ten Brugge -Mon Mar 1 16:36:18 1999 Jeffrey A Law (law@cygnus.com) + * reorg.c (steal_delay_list_from_target): Check for insns that + modify the condition codes and effect the direction of the jump + in the sequence. - * mips.md (div_trap_normal, div_trap_mips16): Require the dependent - insn to be an INSN before looking at its pattern. +Sat Oct 17 13:09:09 1998 Graham -Mon Mar 1 15:03:51 1999 Jim Wilson + * function.c (purge_addressof_1): Replace call to + emit_insns_before() with emit_insn_before(). - * config/m68k/lb1sf68.asm (udivsi3): Change jmi to jcs. Fix comments. - * config/m68k/m68k.h (LEGITIMATE_INDEX_REG_P): Reject SIGN_EXTEND of - HImode reg when TARGET_5200. +Mon Oct 19 19:34:03 1998 Mike Stump -Mon Mar 1 21:44:30 1999 J"orn Rennecke + * libgcc2.c (__pure_virtual): Call __terminate instead of _exit. - From Toshiyasu Morita: - * sh.h (CACHE_LOG): SH2 has cache, too. +Mon Oct 19 13:26:24 1998 Bernd Schmidt -Mon Mar 1 14:23:36 1999 Catherine Moore + * jump.c (sets_cc0_p): Compile only if HAVE_cc0. - * toplev.c (compile_file): Disable -ffunction-sections and - debugging warning if the object format is elf. +Mon Oct 19 11:40:56 1998 Jeffrey A Law (law@cygnus.com) -Mon Mar 1 11:46:25 1999 Vladimir N. Makarov + * gcse.c (compute_hash_table): Correctly identify hard regs which are + clobbered across calls. - * config/h8300/h8300.c (print_operand): Use 16 bit addressing - when the data in 8-bit area and can not be addressed by 8-bit. + * loop.c (scan_loop): Be more selective about what invariants are + moved out of a loop. -Sun Feb 28 16:40:00 1999 Richard Henderson +Mon Oct 19 10:46:58 1998 Jeff Law (law@cygnus.com) - * flow.c (create_basic_block): Disregard integrated bb notes. + * version.c: Bump for snapshot. -Sun Feb 28 15:57:06 1999 Richard Henderson +Mon Oct 19 11:40:56 1998 Jeffrey A Law (law@cygnus.com) - * sparc.md (blockage, nonlocal_goto_receiver): Set length to 0. + * libgcc2.c (eh_context_static): Do not call malloc to allocate the + static eh_context structure. -Sun Feb 28 14:47:53 1999 Arturo Montes +Mon Oct 19 10:45:40 1998 Bernd Schmidt - * config/i386/t-sco5gas (crti.o): New target. - -Sun Feb 28 15:10:17 1999 David Edelsohn - - * rs6000.md (elf_high, movsi_got, *movsi_got_internal, - *movsi_got_internal_mem, GOT splitter, movdf_hardfloat32, - movdf_softfloat32, movdf_hardfloat64, movdf_softfloat64, - load_multiple, allocate_stack, call_indirect_aix32, - call_indirect_aix64, call_value_indirect_aix32, - call_value_indirect_aix64, call_indirect_nt, - call_value_indirect_nt): Use gpc_reg_operand instead of - register_operand. - -Sun Feb 28 15:10:17 1999 Michael Meissner - - * rs6000.md (one_cmplsi2, andsi3, iorsi3, xorsi3, *eqvsi3, - *andcsi3, *iorcsi3, *nandsi3, *norsi3): Add alternatives to use CR - other than cr0. - * rs6000.c (and{,64}_operand): If the user did -ffixed-cr0, don't - allow andi. or andis. which always set cr0. - -Sun Feb 28 01:15:04 1999 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sun Feb 28 02:00:38 1999 Jeffrey A Law (law@cygnus.com) - - * invoke.texi: Update information for PA scheduling. + * combine.c (recog_for_combine): Lose PADDED_SCRATCHES arg. All + callers changed. + (try_combine): Don't update max_scratch. + * flow.c (max_scratch, num_scratch): Delete variables. + (life_analysis_1): Don't initialize max_scratch. + (propagate_block): Don't update max_scratch. + (mark_set_1): Don't increment num_scratch. + * regs.h (max_scratch): Delete declaration. -Sat Feb 27 23:21:47 1999 Jerry Quinn - Mike Stump +Mon Oct 19 10:28:15 1998 Jeffrey A Law (law@cygnus.com) - * pa.c (override_options): Change default to 7100LC. + * reload1.c (reload_reg_free_before_p): Hack. Return 0 if EQUIV + is nonzero. This is temporary! - * pa.h (REG_ALLOC_ORDER): Change order to allocate left half of - float regs before right half of float regs. + * sched.c (update_flow_info): Handle death notes made invalid by + instruction splitting. Partially reverts Oct 15, 1998 patch. + * haifa-sched.c (update_flow_info): Likewise. -Sat Feb 27 22:48:38 1999 H.J. Lu (hjl@gnu.org) - Jeffrey A Law (law@cygnus.com) +Sun Oct 18 17:31:26 1998 Jeffrey A Law (law@cygnus.com) - * frame.h: Update some comments. - * defaults.h (TARGET_ATTRIBUTE_WEAK): Define. - * crtstuff.c (__register_frame_info, __deregister_frame_info): Declare - using TARGET_WEAK_ATTRIBUTE. - (__do_global_dtors_aux): Check if __deregister_frame_info is - zero before calling it. - (__do_global_dtors): Likewise. - (frame_dummy): Check if __register_frame_info is zero before - calling it. - (__frame_dummy): Likewise. - -Sat Feb 27 19:18:24 1999 Jeffrey A Law (law@cygnus.com) - - * SERVICE: Update from the FSF. - -Sat Feb 27 14:31:22 1999 Arturo Montes - - * config/i386/t-sco5 (crti.o): New target. - * config/i386/sco5.h (STARTFILE_SPEC): Include crti.o when - linking -shared. - * configure.in (i[34567]86-*-sco3.2v5*): Add crti.o. - -Sat Feb 27 01:12:40 1999 Jeffrey A Law (law@cygnus.com) - - * md.texi (prologue,epilogue): Document named patterns. - -Fri Feb 26 19:31:25 1999 Dave Love - - * md.texi, invoke.texi: Fix unterminated @xrefs. - -Fri Feb 26 15:33:45 1999 Richard Henderson - - * genattrtab.c (simplify_knowing): Fix uninitialized read - in Feb 21 change. - - * genextract.c (main): Clear recog_operands before extracting. - -Fri Feb 26 02:24:57 1999 Jeffrey A Law (law@cygnus.com) - - * c-pragma.c (add_weak); Delete. Moved into... - * varasm.c (add_weak): New external function. - (declare_weak): If HANDLE_PRAGMA_WEAK, then add the function to - the list of weak functions. - * c-pragma (add_weak): Declare. - -Thu Feb 25 23:43:59 1999 Richard Henderson - - Flow rewrite to use basic block structures and edge lists: - - * basic-block.h (x_basic_block_head, x_basic_block_end): Kill. - (basic_block_computed_jump_target, basic_block_live_at_start): Kill. - (struct edge_def): New. - (struct basic_block_def): New. - (basic_block_info): New. - (BLOCK_HEAD, BLOCK_END): Update. - (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): New. - (uid_block_number): Kill. - (basic_block_for_insn, BLOCK_FOR_INSN): New. - (BLOCK_NUM): Update. - * flow.c (XNMALLOC): Kill. - (max_uid_for_flow): Kill. - (uid_block_number): Kill. - (uid_volatile): Turn into a bitmap. - (SET_INSN_VOLATILE): New. - (basic_block_info): New. - (entry_exit_blocks): New. - (x_basic_block_head, x_basic_block_end): Kill. - (basic_block_computed_jump_target, basic_block_live_at_start): Kill. - (flow_int_list_blocks, basic_block_succ, basic_block_pred): Kill. - (basic_block_loop_depth): Kill. - (basic_block_for_insn): New. - (find_basic_blocks): Split out initial block counting into - count_basic_blocks. Call functions split out of find_basic_blocks_1. - (count_basic_blocks): New. - (find_basic_blocks_1): Split out edge recognition, unreachable - block deletion. - (create_basic_block): New. - (compute_bb_for_insn): New. - (clear_edges): New. - (free_bb_memory): Kill. - (add_edge, add_edge_to_label): Kill. - (mark_label_ref): Kill. - (make_edges): Rewrite to use edge lists. - (make_edge, make_label_edge): New. - (mark_critical_edges): New. - (split_edge, insert_insn_on_edge): New. - (commit_one_edge_insertion, commit_edge_insertions): New. - (delete_unreachable_blocks): Rewrite to use edge lists. - Split out EH region manipulation into delete_eh_regions. - Call tidy_fallthru_edge and merge_blocks. - (delete_eh_regions): New. - (delete_note_p): New. - (delete_insn_chain): New. - (delete_block): Split out code into delete_insn_chain and - tidy_fallthru_edge. Update edge lists. - (expunge_block): New. - (flow_delete_insn): New? - (can_delete_label_p): New? - (merge_blocks_nomove, merge_blocks): New. - (tidy_fallthru_edge): New. - (calculate_loop_depth): New. - (life_analysis): Allocate and free uid_volatile. - (free_basic_block_vars): Update for new structures. - (record_volatile_insns): Use SET_INSN_VOLATILE. - (mark_regs_live_at_end): Tidy EXIT_IGNORE_STACK usage. - (mark_used_regs): Likewise. - (life_analysis_1): Use bb global_live_at_start, global_live_at_end, - local_set regsets. Use bb->aux to store new_live_at_end. Begin - life propagation from EXIT_BLOCK rather than last block. Clear - regs_ever_live after mark_regs_live_at_end. - (allocate_for_life_analysis): Update for new structures. - (propagate_block): Split out loop depth calculation to - calculate_loop_depth. - (regno_uninitialized): Use bb->global_live_at_start. - (regno_clobbered_at_setjmp): Likewise. - (dump_bb_data): Likewise. - (find_auto_inc): Use BLOCK_FOR_INSN instead of BLOCK_NUM. - (dump_flow_info): Update for new structures. - (dump_edge_info): New. - (print_rtl_with_bb): Update for new structures. - (compute_preds_succs): Do no work -- convert edge lists. - (set_block_for_insn): From corpse of old set_block_num. - (set_block_num): Call it. - - * rtl.c (note_insn_name): Add NOTE_INSN_BASIC_BLOCK. - * rtl.h (rtunion_def): Add bb entry. - (NOTE_BASIC_BLOCK): New. - (NOTE_INSN_BASIC_BLOCK): New. - - * varray.h (varray_data_tag): Add bb entry. - (VARRAY_BB_INIT, VARRAY_BB): New. - - * emit-rtl.c (emit_label_before): New. - - * except.c (expand_rethrow): Delete insns following the call to - rethrow. Put the REG_EH_RETHROW on the call. - - * jump.c (returnjump_p, returnjump_p_1): New. - - * expr.h (nonlocal_goto_handler_labels): New declaration. - * function.c (nonlocal_goto_handler_labels): Define it. - (push_function_context_to): Save it. - (pop_function_context_from): Restore it. - (init_function_start): Clear it. - (nonlocal_label_rtx_list): Kill. - * function.h (struct function): Add storage space for it. - * stmt.c (expand_nl_handler_label): Return the new label. - (expand_nl_goto_receivers): Collect a list of them in - nonlocal_goto_handler_labels. + * function.c (uninitialized_vars_warning): Do not warn for a VAR_DECL + if it has a nonzero DECL_INITIAL. - * Makefile.in (print-rtl.o): Depend on basic-block.h. - (flow.o): Depend on insn-flags.h. +Sat Oct 17 23:18:08 1998 Kaveh R. Ghazi - * function.c (thread_prologue_and_epilogue_insns): Do not - half-heartedly update bb structures. + * Makefile.in (flow.o): Depend on recog.h. - * toplev.c: Add flow2 dump as -dw. - (rest_of_compilation): Finish .greg before flow2. + * cpplib.h (directive_table): Add missing initializiers. + (finclude): Change type of variable `bsize' to size_t. - * graph.c (draw_edge): Handle class 3. - (print_rtl_graph_with_bb): Make abnormal edges red class 2, - change non-fall-thru but adjacent to green class 3. Update - to use new structures. + * cse.c (rtx_cost): Mark parameter `outer_code' with ATTRIBUTE_UNUSED. - * print-rtl.c (print_rtx): Handle NOTE_INSN_BASIC_BLOCK. + * dwarfout.h (dwarfout_label): Wrap prototype in macro RTX_CODE. - * reg-stack.c (BLOCK_NUM): Convert to function. Abort if - block_number is -1. - (reg_to_stack): Initialize block_num to -1. + * fix-header.c (lookup_std_proto): Cast the result of `strlen' to + `int' when comparing against one. + (cpp_file_line_for_message): Mark parameter `pfile' with + ATTRIBUTE_UNUSED. + (cpp_fatal): Mark parameter `pfile' with ATTRIBUTE_UNUSED. - * combine.c (set_nonzero_bits_and_sign_copies): Update reference - to basic_block_live_at_start to bb->global_live_at_start. - (try_combine): Likewise. - (reg_dead_at_p): Likewise. - * global.c (global_conflicts): Likewise. - Handle stack regs on all abnormal edges, not just computed jumps. - (mark_elimination): Update reference to basic_block_live_at_start. - (build_insn_chain): Likewise. - * haifa-sched.c (haifa_edge): Rename from edge for conflict. - (is_cfg_nonregular): Look at nonlocal_goto_handler_labels instead - of nonlocal_label_rtx_list. - (check_live_1): Update reference to basic_block_live_at_start. - (update_live_1): Likewise. - (find_pre_sched_live): Likewise. - (find_post_sched_live): Likewise. - * local-alloc.c (update_equiv_regs): Likewise. - (block_alloc): Likewise. - * reload1.c (reload, reload_combine): Likewise. - * regmove.c (mark_flags_life_zones): Likewise. - * resource.c (mark_target_live_regs): Likewise. - * sched.c (schedule_block): Likewise. + * flow.c: Include recog.h. + (sbitmap_copy): Cast arguments 1 & 2 of `bcopy' to (PTR). - * regclass.c (regset_release_memory): Don't free - basic_block_live_at_start. + * function.c (thread_prologue_and_epilogue_insns): Mark parameter + `f' with ATTRIBUTE_UNUSED. + (reposition_prologue_and_epilogue_notes): Likewise. - * unroll.c (copy_loop_body): Don't duplicate NOTE_INSN_BASIC_BLOCK. + * genopinit.c (gen_insn): Cast argument of ctype functions to + `unsigned char'. -Thu Feb 25 21:32:34 1999 Jason Merrill + * haifa-sched.c: Include recog.h. + (blockage_range): Cast result of UNIT_BLOCKED macro to (int) when + comparing against one. - * fixinc.wrap: Also handle struct queue in sys/stream.h. - * fixinc.svr4: Likewise. + * libgcc2.a (__throw): Revert ATTRIBUTE_UNUSED change for now. - * dwarf2out.c (scope_die_for): Set scope_die to comp_unit_die - rather than asserting it. + * mips-tfile.c (parse_end): Cast the argument of ctype function to + `unsigned char'. + (parse_ent): Likewise. + (parse_input): Likewise. -Thu Feb 25 23:33:06 1999 Kaveh R. Ghazi + * optabs.c (init_libfuncs): Likewise. - * cppexp.c (left_shift, right_shift, parse_charconst, COMPARE, - cpp_parse_expr): Replace uses of long/HOST_BITS_PER_LONG with - HOST_WIDEST_INT/HOST_BITS_PER_WIDEST_INT. + * protoize.c (find_rightmost_formals_list): Likewise. - * Makefile.in (cppmain.o, cpplib.o, cpphash.o, cppalloc.o, - cpperror.o, cppexp.o, cppfiles.o, cppinit.o, fix-header.o, - scan-decls.o): Don't depend on machmode.h. + * recog.h (const_double_operand): Fix typo in prototype. - * cppexp.c: Don't define CHAR_BIT or HOST_BITS_PER_WIDE_INT anymore. - Replace all instances of HOST_WIDE_INT with HOST_WIDEST_INT. + * tlink.c (scan_linker_output): Cast the argument of ctype + function to `unsigned char'. - * cppfiles.c: Likewise. + * toplev.c (check_lang_option): Cast the result of `strlen' to + `int' when comparing against one. - * cpplib.c: Likewise. +Sat Oct 17 13:09:09 1998 Graham - * cpplib.h: Likewise. Also don't include machmode.h anymore. + * gcse.c (dump_cuid_table): Correct typo. -Thu Feb 25 18:46:26 1999 Richard Henderson +Sat Oct 17 11:02:47 1998 Nick Clifton - * gcc.c (default_compilers): Define __FAST_MATH__ when appropriate. - * objc/lang-specs.h: Likewise. + * toplev.c (display_help): Prepend '-m' to target specific + options. + (check_lang_option): Ignore text after end of first word of a + language specific option. -Thu Feb 25 16:19:43 1999 Jeffrey A Law (law@cygnus.com) +Sat Oct 17 02:26:03 1998 Bernd Schmidt - * pa.md (call patterns): Lose unused argument to output_call. + * reload1.c (reg_used_by_pseudo): New static variable. + (choose_reload_regs): Initialize it. + Use it instead of testing spill_reg_order to determine whether a + pseudo is live in a hard register across the current insn. + Fix a typo in a reference to reload_reg_rtx. - * print-rtl.c (print_rtl): Print /j and /c for the jump/call flags. + * flow.c (propagate_block): Replace code that computes and uses + regs_sometimes_live with simpler code that just walks the set of + currently live registers. -1999-02-25 Zack Weinberg + * Makefile.in (insn-extract.o): Fix dependencies. + * genextract.c (main): Generate includes for insn-config.h and + recog.h. + Delete generation of declarations which are now in recog.h. + * genrecog.c (main): Delete generation of definitions which are + now in recog.c. + * local-alloc.c (block_alloc): Use extract_insn and the variables + it sets up instead of looking up values by insn_code. + * recog.c (recog_operand, recog_operand_loc, recog_dup_loc, + recog_dup_num): Define here instead of generating the definition in + genrecog.c. + (recog_n_operands, recog_n_dups, recog_n_alternatives, + recog_operand_mode, recog_constraints, recog_operand_address_p): + New variables. + (extract_insn): New function. + * recog.h (extract_insn): Declare function. + (which_alternative, recog_n_operands, recog_n_dups, + recog_n_alternatives, recog_operand_mode, recog_constraints, + recog_operand_address_p): Declare variables. + * regclass.c (n_occurrences): New static function. + * reload.c (n_occurrences): Delete function. + (find_reloads): Use extract_insn. + * reload.h (n_occurrences): Delete declaration. - * cpphash.c (install): Rename to cpp_install, add cpp_reader* - first argument. All callers changed. - (hashtab): Removed. - (cpp_lookup, cpp_install): Change all refs to hashtab to - pfile->hashtab. - (cpp_hash_cleanup): Removed. - * cpphash.h: Adjust prototypes. - * cpplib.h (struct cpp_reader): Add hashtab pointer. - * cppinit.c (cpp_reader_init): Also allocate space for the - hashtab. - (cpp_cleanup): Delete all macros and free the hashtab. +Sat Oct 17 01:17:51 1998 Jeffrey A Law (law@cygnus.com) -Thu Feb 25 21:52:54 1999 J"orn Rennecke + * reload1.c (reload_as_needed): Fix test for when to call + update_eliminable_offsets. - * sh.h (PASS_IN_REG_P): For TARGET_HITACHI, don't pass structures - in registers. +Fri Oct 16 20:40:50 1998 J"orn Rennecke - * expr.h (PRETEND_OUTGOING_VARARGS_NAMED): Provide default definition. - * function.c (assign_parms): Honor PRETEND_OUTGOING_VARARGS_NAMED. - * calls.c (expand_call): Likewise. + Fix consistency problems with reg_equiv_{mem,address}; + Improve reload inheritance; - * sh.c (sh_expand_prologue): For TARGET_HITACHI, don't push varargs / - stdarg arguments. - * sh.h (CPP_SPEC): Add -D__HITACHI__ for -mhitachi. - (FUNCTION_ARG): For TARGET_HITACHI, don't pass unnamed - arguments in registers. - (PRETEND_OUTGOING_VARARGS_NAMED): Define. - * va-sh.h (entire file): If __HITACHI__ is defined, use sh[123] - flavor varargs. + * reload.c (reload_out_reg): New variable. + (loc_mentioned_in_p, remove_address_replacements): New functions. + (remove_replacements): Deleted. + (push_reload): Set reload_out_reg[i]. + When merging, also set reload_{in,out}_reg[i], and remove + duplicate address reloads. + (combine_reloads): Copy reload_out_reg[i]. + (find_reloads): Do make_memloc substitution also when + reg_equiv_memory_loc[regno] and num_not_at_initial_offset + are both nonzero. + Include *recog_operand_loc in commutativity operand changes. + Generate optional output reloads. + Delete reference to n_memlocs. Don't set *recog_operand_loc before + processing operands. Call make_memloc in reg_equiv_address code. + Set *recog_operand_loc only after processing operands, and only + if replace is true. Return a value. + When changing address reload types for operands that didn't get + reloaded, use RELOAD_FOR_OPADDR_ADDRESS for + RELOAD_FOR_INPADDR_ADDRESS / RELOAD_FOR_OUTADDR_ADDRESS reloads. + Don't emit USEs for pseudo SUBREGs when not replacing. + (find_reloads_address): Do make_memloc substitution also when + reg_equiv_memory_loc[regno] and num_not_at_initial_offset + are both nonzero. + (find_reloads_toplev): Likewise. + Call make_memloc in reg_equiv_address code. + (debug_reload_to_stream): Add code to output reload_out_reg. + (make_memloc): Delete local variable i, ifdefed out code, and + references to memlocs and n_memlocs. + (memlocs, n_memlocs): Delete. + (push_secondary_reload): Clear reload_out_reg. + (find_reloads_address_1): Provide memrefloc argument to all calls + to find_reloads_address. + In AUTO_INC code, handle non-directly addressable equivalences properly. + * reload.h (reload_out_reg, num_not_at_initial_offset): Declare. + (find_reloads): Add return type. + (remove_address_replacements, deallocate_reload_reg): Declare. + * reload1.c (num_not_at_initial_offset): No longer static. + (delete_address_reloads, delete_address_reloads_1): Likewise. + (deallocate_reload_reg): New function. + (spill_reg_stored_to): New array. + (eliminate_regs): Don't substitute from reg_equiv_memory_loc. + (eliminate_regs_in_insn): Move assignments of previous_offset and + max_offset fields, and recalculation of num_not_at_initial_offset + into new static function: + (update_eliminable_offsets) . + (reload_as_needed): Call update_eliminable_offsets after calling + find_reloads. + Call forget_old_reloads_1 with contents of reloaded auto_inc + expressions if the actual addressing can't be changed to match the + auto_inc. + (choose_reload_regs): For inheritance, replace + reload_reg_free_before_p test with reload_reg_used_at_all test, and + remove stand-alone reload_reg_used_at_all test. + Use reload_out_reg to determine which reload regs have output reloads. + Treat reload_override_in more similar to inherited reloads. + Handle (subreg (reg... for inheritance. + For flag_expensive_optimizations, add an extra pass to remove + unnecessary reloads from known working inheritance. + Delete obsolete code for pseudos replaced with MEMs. + Handle inheritance from auto_inc expressions. + (emit_reload_insns): If reload_in is a MEM, set OLD to + reload_in_reg[j]. + Don't reload directly from oldequiv; if it's a pseudo with a + stack slot, use reload_in[j]. + Check that reload_in_reg[j] is a MEM before replacing reload_in + from reg_reloaded_contents. + Include non-spill registers in reload inheritance processing. + Also try to use reload_out_reg to set spill_reg_store / + reg_last_reload_reg. + In code to set new_spill_reg_store, use single_set to find out if + there is a single set. + Add code that allows to delete optional output reloads. + Add code to allow deletion of output reloads that use no spill reg. + At the end, set reload_override_in to oldequiv. + Also call delete_output_reload if reload_out_reg is equal to old + in oldequiv code. + Add code to call delete_output_reload for stores with no matching load. + Set / use spill_reg_stored_to. + Handle case where secondary output reload uses a temporary, but + actual store isn't found. + When looking for a store of a value not loaded in order to call + delete_output_reload, count_occurrences should return 0 for no + loads; but discount inherited input reloadill_reg_stored_to. + Do checks for extra uses of REG. Changed all + callers. + Use delete_address_reloads. + (reload): Take return value of find_reloads into account. + If a no-op set needs more than one reload, delete it. + (reload_reg_free_before_p): RELOAD_FOR_INPUT + can ignore RELOAD_FOR_INPUT_ADDRESS / RELOAD_FOR_INPADDR_ADDRESS + for the same operand. + (clear_reload_reg_in_use): Check for other reloads that keep a + register in use. + (reload_reg_free_for_value_p): Handle RELOAD_FOR_OPERAND_ADDRESS / + RELOAD_FOR_OPADDR_ADDR. + Take into account when an address address reload is only needed + for the address reload we are considering. + (count_occurrences): Use rtx_equal_p for MEMs. + (inc_for_reload): Return instruction that stores into RELOADREG. + New argument two, IN, and rtx. Changed all callers. + (calculate_needs_all_insns, reload_as_needed): + Don't clear after_call for a CLOBBER. + Keep track of how many hard registers need to be copied from + after_call, and don't clear after_call before we have seen + that much copies, or we see a different instruction. -Thu Feb 25 14:32:40 1999 Kaveh R. Ghazi +Fri Oct 16 10:58:23 1998 Jeffrey A Law (law@cygnus.com) - * cse.c (dump_class): Revert last change and make the prototype - extern. + * flow.c (find_basic_blocks_1): Do not delete unreachable blocks + after reload has completed. -Thu Feb 25 19:13:42 1999 J"orn Rennecke +Fri Oct 16 17:26:10 1998 Dave Brolley - * rtl.h (insn_first_p): Don't declare. - * rtlanal.c (insn_first_p): Delete. - * loop.c (loop_insn_first_p): Faster implementation. + * cpplib.c (cpp_get_token): Replace whitespace that occurs between + a macro name and the next token with a single blank if that whitespace + is in a macro buffer and the next token is not '('. -Thu Feb 25 10:44:35 1999 Richard Earnshaw (rearnsha@arm.com) +Fri Oct 16 15:44:02 1998 Dave Brolley - * arm.h (TARGET_SWITCHES): Delete deprecated switches -m[236]. - (TARGET_3, TARGET_6): Delete. - (ARM_FLAG_ARM[36]): Delete. - (CPP_CPU_ARCH_SPEC): No need to handle -m[236] any more. - (CC1_SPEC): Don't expand -m[236] into new equivalents. - (CPP_APCS_PC_SPEC): No need to handle -m[236] any more. - * arm.c (arm_override_options): Delete warnings about deprecated - options -m[236]. + * cccp.c (rescan): Handle multibyte characters ending in backslash. + (rescan): Likewise. + (skip_if_group): Likewise. + (skip_to_end_of_comment): Likewise. + (macarg1): Likewise. + (discard_comments): Likewise. + (change_newlines): Likewise. - * arm.c (arm_finalize_pic): Build the label into the special pic - adjustment insn instead of issuing it separately. - * arm.md (pic_add_dot_plus_eight): Rework to contain the label - that is needed. +Fri Oct 16 15:26:24 1998 Dave Brolley - * arm.md (*zeroextractqi_compare0_scratch): Delete. - (*ne_zeroextractsi): New pattern. + * c-lex.c (yylex): Fix unaligned access of wchar_t. -Thu Feb 25 18:40:06 1999 J"orn Rennecke +Fri Oct 16 10:47:53 1998 Nick Clifton - * stmt.c (expand_end_loop): Grok code emitted by - expand_exit_loop_if_false. + * config/arm/arm.h (TARGET_SWITCHES): Add --help documentation. + (TARGET_OPTIONS): Add --help documentation. -Thu Feb 25 10:17:32 1999 Nick Clifton +Fri Oct 16 11:49:01 1998 Kaveh R. Ghazi - * config/arm/arm.c (return_in_memory): Float fields in unions - force a return in memory. - (load_multiple_sequence): Add comment explaining why two LDR - instructions can be better than an LDMIA instruction. + * rtl.h (sets_cc0_p): Revert Oct 14 ATTRIBUTE_NORETURN change. - * config/arm/arm.h (TARGET_SHORT_BY_BYTES): Add comment - describing the real meaning of this option. - (FIXED_REGISTERS): Default r10 to not-fixed. - (CALL_USED_REGISTERS): Default r10 to not-call-used. - (SUBTARGET_CONDITIONAL_REGISTER_USAGE): If not defined, define - as empty. - (CONDITIONAL_REGISTER_USAGE): Fix r10 if TARGET_APCS_STACK is - true. Invoke SUBTARGET_CONDITIONAL_REGISTER_USAGE after - performing other checks. +Fri Oct 16 07:08:46 1998 Bruce Korb - * config/arm/arm.md (zero_extendhisi2): Undo previous change. - (extendhisi2): Undo previous change. - Also add comments describing why TARGET_SHORT_BY_BYTES can be - ignored for armv4(t) architectures. + * fixinc/* Moved in from ../contrib directory in preparation + for integrating it into the normal build process. In particular, + fixinc/Makefile.in must be config-ed into the build directory + as fixinc/Makefile. Proposed patches to ./Makefile.in and + ./configure.in will be "in the mail" momentarily. - * config/arm/riscix.h (SUBTARGET_CONDITIONAL_REGISTER_USAGE): - Define to fix r10. +Fri Oct 16 08:13:46 1998 David S. Miller - * config/arm/riscix1-1.h - (SUBTARGET_CONDITIONAL_REGISTER_USAGE): Define to fix r10. - -Thu Feb 25 12:09:04 1999 Kaveh R. Ghazi - - * cse.c (dump_class): Make the function definition static to match - the prototype. - -Wed Feb 24 17:47:28 1999 Jim Wilson - - * dbxout.c (gstab.h): Use if CROSS_COMPILE. - - * dwarf2out.c (add_location_or_const_value_attribute): Add big - endian correction for parms passed in regs but living on the stack. - -Wed Feb 24 14:03:54 1999 Jeffrey A Law (law@cygnus.com) - - * calls.c (initialize_argument_information): New function extracted - from expand_call. - (expand_call): Use initialize_argument_information. Remove variables - which are no longer used due to cleanups. - - * calls.c (compute_argument_block_size): New function, extracted from - expand_calls. - (expand_calls): Use compute_argument_block_size. Delete - original_args_size, use unadjusted_args_size instead. - - * calls.c (precompute_arguments): New function, extracted from - expand_call. - (expand_call): Use precompute_arguments. - - * calls.c (finalize_must_preallocate): New function, extracted from - expand_call. - (expand_call): Use finalize_must_preallocate. - - * calls.c (store_one_arg): Mark "variable_size" as possibly unused. + * cse.c (cse_basic_block): Fixup hash flushing loop so we do not + accidently walk into the free list. Comment how that can happen. + (invalidate): Fix indentation. - * regclass.c (record_reg_classes, case 'p'): Set classes appropriately. - An alternative always fails if it needs a pseudo and no suitable - register class can be found. +Thu Oct 15 23:53:29 1998 Bernd Schmidt + Jeffrey A Law (law@cygnus.com) -Wed Feb 24 19:47:56 1999 J"orn Rennecke - - * loop.h (loop_insn_first_p): Declare. - * loop.c (loop_insn_first_p): No longer static. - * unroll.c (iteration_info): Fix comparison to - reg_iv_type->num_elements. - Before accessing reg_biv_class, check index against - max_reg_before_loop. - Fix and enable code for giv iterators. - (loop_iterations): Compare with reg_iv_type->num_elements instead - of with max_reg_before_loop. - -Wed Feb 24 19:17:11 1999 J"orn Rennecke - - * unroll.c (unroll_loop): Avoid out-of-bounds index for local_regno. - -Wed Feb 24 11:26:41 1999 Vladimir N. Makarov - - * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Don't use - PIC_OFFSET_TABLE_REGNUM for register allocation when -fPIC. + * flow.c (life_analysis_1): Do not clobber regs_ever_live after + reload. Never perform rescans of the insn chain after reload. + (propagate_block): Do not delete insn or create new autoinc addressing + modes after reload. -Tue Feb 23 16:24:19 1999 Marc Lehmann - - * config/i386/i386.md: Fix typo. - -Mon Feb 22 19:36:33 1999 Andrew Cagney - - * config/mips/mips.c (mips_debugger_offset): When TARGET_MIPS16 && - frame_pointer_needed adjust frame size. - (function_prologue): Don't MIPS16 .mask GPOFFSET. Already adjusted - in .frame pseudo-op. - Frm Jim Wilson : - * mips.c (function_prologue): Adjust frame size in .frame pseudo-op - when TARGET_MIPS16 && frame_pointer_needed. - -1999-02-22 Nick Clifton - - * config/arm/arm.h: Add TARGET_CPU_strongarm1100. - Add -mno-sched command line switch to disable scheduling of - instructions into the function's prologue. - (enum processor_type): Remove. - (TARGET_OPTIONS): Add "fpe=" option to match documentation. - (struct arm_cpu_select): Replace 'set_tune_p' and 'set_arch_p' - fields with 'processors' field. - (CONDITIONAL_REGISTER_USAGE): Allow r10 to be used if stack - checking is not enabled. - (RETURN_IN_MEMORY): Always call arm_return_in_memory. - - * config/arm/arm.c (arm_cpu): Remove. - (tune_flags): Remove. - (arm_is_strong): New variable: true iff the target processor is a - StrongARM. - (arm_is_6_or_7): New variable: true iff the target processor is an - ARM6 or and ARM7. - (arm_select): Fields reorganized. - (struct processors): processor_type field removed. - (all_procs): Remove. - (all_cores): New array: Definitions of all known ARM cpu cores. - (all_architectures): New array: Definitions of all known ARM - architectures. - (streq): New macro. - (FL_SCHED): New processor flag: processor required load - scheduling. - (FL_STRONG): New processor flag: processor is a StrongARM. - (arm_override_options): Reorganized to make code clearer. - (use_return_insn): Test for "not (TARGET_APCS and - frame_pointer_needed)". - (arm_return_in_memory): Improve handling of structures. - - * config/arm/arm.md: Remove "cpu" attribute. Replace with - "is_strongarm" and "is_arm_6_or_7" attributes. - (zero_extendhisi2): Check for TARGET_SHORT_BY_BYTES before - arm_arch4. - (extendhisi2): Check for TARGET_SHORT_BY_BYTES before arm_arch4. - - * invoke.texi (ARM Options): Document -mtune= and -mfp= options. - -1999-02-22 Philip Blundell - - * config/arm/linux-gas.h (INITIALIZE_TRAMPOLINE): Replace default - definition with one including cache synchronization. - (CLEAR_INSN_CACHE): Correct syscall number and enable definition. - Move definition of inhibit_libc to... - * config/arm/xm-linux.h: ... here. - - * config/arm/t-linux: Disable multilib configurations since the - only effect for most people is to cause builds to fail. - - * config/arm/elf.h (ASM_FILE_START): Add .file directive. - (ASM_SPEC): Translate -mapcs-float to -mfloat for the assembler. - - * config/arm/linux-elf.h (DEFAULT_VTABLE_THUNKS): Define. - (HANDLE_SYSV_PRAGMA): Likewise. - (LIB_SPEC): Copy definition from generic Linux files. - (LIBGCC_SPEC): Include -lfloat if -msoft-float was given. - (FP_DEFAULT): Set to SOFT3 on 32-bit targets. - (DWARF2_DEBUGGING_INFO): Define. - (PREFERRED_DEBUGGING_TYPE): Define as DBX_DEBUG. - -Mon Feb 22 16:54:18 1999 Andrew MacLeod - - * loop.c (libcall_other_regs): Make extern. - * rtl.h (find_last_value): Add parameter to prototype. - (libcall_other_reg): Add extern declaration. - * rtlanal.c (find_last_value): Add another parameter to allow - a definition using a hardware register to be found as well. - -Mon Feb 22 13:33:47 1999 Mark Mitchell - - * cse.c (dump_class): New function. - (invalidate_memory): Fix typo in comment. - * function.c (temp_slot): Add an alias set field. - (assign_stack_temp): Only reuse slots if they will have the - same alias set as before. - (combine_temp_slots): Don't combine if -fstrict-aliasing; - that's unsafe. - * rtl.c (copy_rtx): Copy all the flags (in particular, - MEM_SCALAR_P). - -Mon Feb 22 14:13:23 1999 Vladimir N. Makarov - - * configure.in (i[34567]86-*-linux-gnu*, - i[34567]86-*-linux-gnulibc1, i[34567]86-*-linux-gnuaout*, - i[34567]86-*-linux-gnuoldld*): Use fixinc.x86-linux-gnu as - fixincludes. + * jump.c (jump_optimize): Unconditionally use the code that was + previously conditional on PRESERVE_DEATH_INFO_REGNO_P. + * reload1.c (reload): When reloading is finished, delete all + REG_DEAD and REG_UNUSED notes. + (emit_reload_insns): Delete all code that was conditional on + PRESERVE_DEATH_INFO_REGNO_P. + (no_longer_dead_regs): Delete variable. + (reload_cse_delete_death_notes): Delete function. + (reload_cse_no_longer_dead): Delete function. + (reload_cse_regs_1): Delete all code to handle deletion of death + notes. + (reload_cse_noop_set_p): Likewise. + (reload_cse_simplify_set): Likewise. + (reload_cse_simplify_operands): Likewise. + (reload_cse_move2add): Likewise. + * reorg.c (used_spill_regs): Delete declaration. + (max_label_num_after_reload): Delete declaration. + (find_dead_or_set_registers): Don't assume that spill regs are + dead at a CODE_LABEL. + * rtlanal.c (dead_or_set_regno_p): Death notes are always accurate, + even after reload. + * sched.c (sched_analyze_insn): Likewise. + (update_flow_info): Likewise. + * haifa-sched.c (sched_analyze_insn): Likewise. + (update_flow_info): Likewise. + * tm.texi (PRESERVE_DEATH_INFO_REGNO_P): Delete documentation. + * toplev.c (max_label_num_after_reload): Delete variable. + (rest_of_compilation): Don't set max_label_num_after_reload. + Call life_analysis after reload_cse_regs if optimizing. + * config/gmicro/gmicro.h: Delete comment referring to + PRESERVE_DEATH_INFO_REGNO_P. + * config/i386/i386.h: Likewise. + * config/m88k/m88k.h: Likewise. + * config/m32r/m32r.h (PRESERVE_DEATH_INFO_REGNO_P): Delete definition. + * config/sh/sh.h: Likewise. - * configure: Rebuilt. +Thu Oct 15 19:48:41 1998 David Edelsohn - * fixinc.x86-linux-gnu: New script for fixing asm-statements bug - on x86 linux. + * loop.c (strength_reduce): Restore marking bct_p as + ATTRIBUTE_UNUSED. + * rs6000.c (optimization_options): Change #ifdef HAIFA to + HAVE_decrement_and_branch_on_count. + (small_data_operand): Remove TARGET_ELF condition for marking + parameters ATTRIBUTE_UNUSED. - * fixinc/fixinc.x86-linux-gnu: Copy of the previous one. +Thu Oct 15 11:45:51 1998 Robert Lipe - * fixinc/mkfixinc.sh (i[34567]86-*-linux-gnu*, - i[34567]86-*-linux-gnulibc1, i[34567]86-*-linux-gnuaout*, - i[34567]86-*-linux-gnuoldld*): Use fixinc.x86-linux-gnu as - fixincludes. + * config/i386/sco5.h (MAX_OFILE_ALIGNMENT): Define. + (SELECT_SECTION): Resync with svr4.h. -Mon Feb 22 08:55:05 1999 Ovidiu Predescu +Thu Oct 15 12:42:13 1998 David Edelsohn - * objc/objc-act.c (encode_type): Temporary revert to the old - behavior of encoding types as the new one seems to break the - encoding of bitfields. + * loop.c (strength_reduce): Undo Oct 14 change marking bct_p + ATTRIBUTE_UNUSED. -Mon Feb 22 11:40:44 1999 Craig Burley -Sat Feb 20 09:59:36 1999 Craig Burley +Thu Oct 15 00:57:55 1998 Robert Lipe - * Makefile.in (all.internal, all.cross): Depend on `doc' - target, to ensure docs get made before installation. + * c-pragma.c (handle_pragma_token): Test for null tree before + dereferencing TREE_CODE. - Decrease spurious warnings from -fsyntax-only: - * stmt.c (expand_expr_stmt): Expand expr even when -fsyntax-only. +Thu Oct 15 17:36:48 1998 Michael Hayes -Mon Feb 22 10:55:00 1999 Gavin Romig-Koch + * config/c4x/c4x.c: Convert to use GEN_INT. + (c4x_parallel_process): Rework to handle new repeat loop structure. - * c-lex.c (yylex): Replace warning about integer constants being - larger than long-longs, with a warning about integer constants - being larger than the largest target integer. + * config/c4x/c4x.md: Convert to use GEN_INT. + (rptb_end): Convert to use GE test. Replace uses with clobbers. + (decrement_and_branch_on_count): Likewise. -Mon Feb 22 08:35:38 1999 Craig Burley + * config/c4x/c4x.h (REPEAT_BLOCK_PROCESS): Deleted hook now that + loop.c has the desired functionality. + (rc_reg_operand): New prototype. - Fix -fsyntax-only ICEs: - * varasm.c (assemble_zeros, assemble_variable, - output_constant_def): Do nothing when -fsyntax-only. + * config/c4x/t-c4x: Can now build all front ends. -Fri Feb 19 18:18:56 1999 Don Bowman +Wed Oct 14 23:27:08 1998 Didier FORT (didier.fort@fedex.com) - * configure.in (mips*-*-vxworks*): Enable gthreads vxworks support. - * configure: Rebuilt. + * fixincludes: Fix up rpc/{clnt,svr,xdr}.h for SunOS. -Sun Feb 21 20:34:44 1999 Jeff Law (law@cygnus.com) +Wed Oct 14 22:13:28 1998 Joel Sherrill (joel@OARcorp.com) - * version.c: Bump for snapshot. + * Makefile.in (stmp-fixinc): Do not install assert.h if not desired. + * config/t-rtems: Do not install assert.h -- use newlib's. -Sun Feb 21 20:35:10 1999 Jeffrey A Law (law@cygnus.com) +Wed Oct 14 21:57:08 1998 J"orn Rennecke - * config/aoutos.h (ASM_OUTPUT_CONSTRUCTOR): Delete. - (ASM_OUTPUT_DESTRUCTOR, ASM_OUTPUT_GC_ENTRY): Likewise. - * tm.texi: Update docs for constructors and destructors. + * combine.c (combine_instructions): When finished, call init_recog. + * regmove.c (optimize_reg_copy_3): Reject volatile MEMs. -Sun Feb 21 17:11:18 1999 Richard Henderson +Wed Oct 14 16:10:22 1998 Per Bothner - * genattrtab.c (check_attr_value): Allow negative const_int if - negative_ok. Accept integral arithmetic operators. Accept - direct references to other attributes. Accept symbol_ref in - non-constant attributes. - (max_attr_value): Add new argument `unknownp'. Update all callers. - (or_attr_value): Likewise. - (simplify_knowing): Don't optimize if max_attr_value unknown. - (write_length_unit_log): Likewise with or_attr_value. - (find_and_mark_used_attributes): Don't fallthru case. - (write_attr_set): Pass thru all non-cond expressions. - (write_attr_value): Handle symbol_ref, attr, and arithmetic. + * toplev.c: If flag_syntax_only, don't open or write assembler file. -Sun Feb 21 13:16:44 1999 Michael Hayes +Wed Oct 14 13:26:05 1998 Kaveh R. Ghazi - * regmove.c (discover_flags_reg): Use word_mode instead of SImode. + * cppalloc.c (memory_full): Mark function prototype with + ATTRIBUTE_NORETURN. -Sun Feb 21 13:15:40 1999 Richard Henderson + * demangle.h (collect_exit): Likewise. - * regmove.c (discover_flags_reg): Remove cc0 code. - (mark_flags_life_zones) [HAVE_cc0]: Force use of cc0; bail if - a potential flags register was identified. + * fix-header.c (v_fatal, fatal): Likewise. -Sat Feb 20 16:16:07 1998 Franz Sirl + * gcc.c (pfatal_with_name, pfatal_pexecute, fatal, fancy_abort): + Likewise. - * rs6000.md (scc plus ltu): Fix typo in last change. + * gcov.c (print_usage): Likewise. -Sat Feb 20 09:08:44 1999 Richard Earnshaw (rearnsha@arm.com) + * genattr.c (fatal, fancy_abort): Likewise. - * xm-arm.h (HOST_BITS_PER_LONGLONG): Define. + * genattrtab.c (fatal, fancy_abort): Likewise. -Fri Feb 19 23:02:02 1999 Richard Henderson + * gencodes.c (fatal, fancy_abort): Likewise. - * regmove.c (discover_flags_reg): New function. - (flags_set_1, mark_flags_life_zones): New functions. - (regmove_optimize): Call them. - (fixup_match_1): Use insn modes rather than sets_cc0_p. + * genconfig.c (fatal, fancy_abort): Likewise. -Fri Feb 19 22:47:01 1999 J"orn Rennecke + * genemit.c (fatal, fancy_abort): Likewise. - * rtlanal.c (insn_first_p): Fix return value for insn == reference. + * genextract.c (fatal, fancy_abort): Likewise. - * loop.c (strength_reduce, check_final_value, check_dbra_loop): - Use loop_insn_first_p. + * genflags.c (fatal, fancy_abort): Likewise. -Fri Feb 19 15:49:26 1999 Michael Meissner - David Edelsohn + * genopinit.c (fatal, fancy_abort): Likewise. - * rs6000.md (scc plus eq): Fix output template. - (scc plus ltu): Fix output template and collapse variants - correcting early clobbers. - (scc plus geu): Fix output template. - (scc plus gt): Fix output template. - (scc plus gtu): Fix output template and collapse variants. + * genoutput.c (fatal, fancy_abort): Likewise. -Fri Feb 19 15:43:59 1999 Kaveh R. Ghazi + * genpeep.c (fatal, fancy_abort): Likewise. - * cppinit.c (print_help): Remove unescaped newline in string. + * genrecog.c (fatal, fancy_abort): Likewise. -Fri Feb 19 19:55:06 1999 J"orn Rennecke + * libgcc2.c (__eprintf, __default_terminate, __sjthrow, + __sjpopnthrow, __throw): Likewise. - * loop.c (strength_reduce): Check for intervening jumps when - converting biv increment to giv. + * objc/objc-act.c (objc_fatal): Likewise. -Thu Feb 18 16:36:58 1999 Per Bothner + * protoize.c (usage, aux_info_corrupted, + declare_source_confusing): Likewise. - * tree.def (TRY_FINALLY_EXPR, GOTO_SUBROUTINE_EXPR): New tree nodes, - * expr.c (expand_expr): Support new tree nodes. + * rtl.c (dump_and_abort): Likewise. -Fri Feb 19 10:17:56 1999 Andreas Schwab + * rtl.h (sets_cc0_p): Likewise. - * config/m68k/m68k.c (m68k_align_loops_string, - m68k_align_jumps_string, m68k_align_funcs_string): Add const. - * config/m68k/m68k.h (m68k_align_loops_string, - m68k_align_jumps_string, m68k_align_funcs_string): Likewise. + * toplev.c (float_signal, pipe_closed): Likewise. -Thu Feb 18 23:28:35 1999 Kaveh R. Ghazi +1998-10-14 Andreas Schwab - * bitmap.c (bitmap_print): Qualify a char* with the `const' keyword. + * dwarf2out.c (expand_builtin_dwarf_reg_size): Look at all ranges + when generating the decision tree for the general case. - * bitmap.h (bitmap_print): Likewise. + * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Don't accept modes + wider that 12 bytes in fpu regs or wider than 8 byte in fpa regs. - * c-decl.c (builtin_function, grokdeclarator, grokfield): Likewise. +Wed Oct 14 11:14:02 1998 Kaveh R. Ghazi - * c-lang.c (build_objc_string): Likewise. + * Makefile.in (sched.o): Depend on recog.h. - * c-lex.c (yyerror, extend_token_buffer): Likewise. Don't include - limits.h or ctype.h. Remove unused variable `p'. + * alias.c (REG_BASE_VALUE): Cast the result of REGNO() macro to + (unsigned) when comparing against one. + (find_base_value): Likewise. + (record_base_value): Cast variable `regno' to (unsigned) when + comparing against one. Cast the result of REGNO() macro to + (unsigned) when comparing against one. + (memrefs_conflict_p): Change type of variables `r_x' and `r_y' to + unsigned. + (init_alias_analysis): Add unsigned variable `ui'. Use it as loop + variable where an unsigned index is needed. - * c-lex.h (yyerror): Qualify a char* with the `const' keyword. + * caller-save.c (init_caller_save): Cast `-1' to (enum insn_code) + before comparing against one. - * c-pragma.c (handle_pragma_token): Likewise. + * collect2.c: Add prototypes for functions `error', `fatal' and + `fatal_perror'. Make these functions take variable arguments + instead of faking it with a fixed number of args. + (write_c_file_stat): Cast the argument of ctype macro to (unsigned + char). - * c-pragma.h (handle_pragma_token): Likewise. + * combine.c (can_combine_p): Mark parameter `pred' with + ATTRIBUTE_UNUSED. + (find_split_point): Cast variable `src' to (unsigned + HOST_WIDE_INT) when comparing against one. + (simplify_rtx): Cast 1 to (unsigned HOST_WIDE_INT) in shift. + (simplify_logical): Likewise. + (force_to_mode): Cast result of INTVAL() macro to (unsigned + HOST_WIDE_INT) when comparing against one. Cast 1 to (unsigned + HOST_WIDE_INT) in shift. + (simplify_and_const_int): Cast result of INTVAL() macro to + `unsigned HOST_WIDE_INT' when comparing against one. + (merge_outer_ops): Cast variable const0 to `unsigned + HOST_WIDE_INT' when comparing against the result of + GET_MODE_MASK() macro. + (simplify_comparison): Likewise for variable `c0'. Cast variable + `const_op' to `unsigned HOST_WIDE_INT' when comparing against + one. Cast `1' to `unsigned HOST_WIDE_INT' in shift. Cast the + result of `GET_MODE_MASK()/2' to `HOST_WIDE_INT' when comparing + against one. Cast `1' to `unsigned HOST_WIDE_INT' in shift. Cast + result of INTVAL() macro to `unsigned HOST_WIDE_INT' when + comparing against one. + (distribute_notes): Wrap variable `cc0_setter' in macro `HAVE_cc0'. - * c-tree.h (build_objc_string, builtin_function, grokfield, - build_indirect_ref, lvalue_or_else, readonly_warning, error_init, - pedwarn_init): Likewise. + config/mips/mips.c (gen_int_relational): Cast result of INTVAL() + macro to `unsigned HOST_WIDE_INT' when comparing against one. + (output_block_move): Cast `sizeof' expression to (int) when + comparing against one. + (function_arg): Cast BITS_PER_WORD to `unsigned' when comparing + against one. + (save_restore_insns): Cast `base_offset' to `long' to match format + specifier in fprintf. - * c-typeck.c (convert_for_assignment, warn_for_assignment, - push_string, warning_init, incomplete_type_error, - build_indirect_ref, lvalue_or_else, readonly_warning, - build_c_cast, spelling, push_member_name, print_spelling, - error_init, pedwarn_init, start_init): Likewise. + * config/mips/mips.h (Pmode): Cast the result of `Pmode' macro + to `enum machine_mode'. - * objc/objc-act.c (build_objc_string): Likewise. + * flow.c (life_analysis_1): Remove unused variable `insn'. - * print-tree.c (print_node_brief, print_node): Likewise. + * gcc.c (translate_options): Move variables `j' and `k' into the + scope in which they are used. Change their types to `size_t'. + (set_spec): Cast the argument of ctype macro to `unsigned char'. + (read_specs): Likewise. + (process_command): Cast `sizeof' to (int) when comparing against one. + (do_spec_1): Cast the argument of ctype macro to `unsigned char'. + (handle_braces): Cast both sides of `==' expression to `long' to + ensure sign matching. + (main): Cast variable `i' to `int' when comparing against one. - * tree.h (lvalue_or_else, print_node, print_node_brief): Likewise. + * gcov-io.h (__fetch_long): Change type of parameter `bytes' from + int to size_t. Cast variable `i' to size_t when comparing against + one. -Thu Feb 18 20:44:21 1999 David Edelsohn + * genattrtab.c (convert_set_attr_alternative): Remove unused + parameter `insn_code'. All callers changed. + (convert_set_attr): Likewise. - * regclass.c (record_reg_classes): Correctly handle 'p' constraint. + * genrecog.c (add_to_sequence): Cast result of XVECLEN() macro to + size_t when comparing against one. Likewise for variable `len'. -Thu Feb 18 19:59:37 1999 Marc Espie + * global.c (global_alloc): Cast variable `max_regno' to size_t + when comparing against one. Likewise for variable `max_allocno'. - * configure.in :Handle OpenBSD platforms. - * configure: Rebuilt. - * config/openbsd.h: New file. - * config/xm-openbsd.h: New file. - * config/t-openbsd: New file. - * config/t-openbsd-thread: New file. + * jump.c (sets_cc0_p): Mark parameter `x' with ATTRIBUTE_UNUSED. -Thu Feb 18 18:47:09 1999 Jeffrey A Law (law@cygnus.com) + * local-alloc.c (validate_equiv_mem_from_store): Mark parameter + `set' with ATTRIBUTE_UNUSED. + (find_free_reg): Cast `sizeof' expression to (int) when comparing + against one. - * function.c (assign_stack_temp_for_type): Round SIZE before calling - assign_stack_local for BLKmode slots. + * loop.c (count_loop_regs_set): Remove unused variable `dest'. + (strength_reduce): Mark parameter `bct_p' with ATTRIBUTE_UNUSED. + (get_condition): Cast variable `const_val' to `unsigned + HOST_WIDE_INT' when comparing against one. Cast unsigned + expression to HOST_WIDE_INT when comparing against one. + (insert_loop_mem): Mark parameter `data' with ATTRIBUTE_UNUSED. + (load_mems_and_recount_loop_regs_set): Cast variable `nregs' to + `unsigned' when comparing against one. -Fri Feb 19 01:45:06 1999 J"orn Rennecke + * protoize.c (is_id_char): Change type of parameter `ch' to + unsigned char. + (munge_compile_params): Cast argument of ctype macro to (const + unsigned char). + (process_aux_info_file): Cast variable `aux_info_size' to int when + comparing against one. + (forward_to_next_token_char): Cast argument of ctype macro to + `const unsigned char'. + (edit_formals_lists): Likewise. + (find_rightmost_formals_list): Likewise. + (add_local_decl): Likewise. + (add_global_decls): Likewise. + (edit_fn_definition): Likewise. + (do_cleaning): Likewise. + (scan_for_missed_items): Likewise. + (edit_file): Cast variable `orig_size' to (int) when comparing + against one. + (main): Cast argument of ctype macro to `const unsigned char'. - * loop.c (strength_reduce): For derived givs, replace the - giv this was derived from with its new_reg. - (recombine_givs): Don't set new_reg for derived giv. - And don't print it, print SUM instead. + * recog.c (const_int_operand): Mark parameter `mode' with + ATTRIBUTE_UNUSED. -Thu Feb 18 15:52:49 1999 Jim Wilson + * regclass.c (record_reg_classes): Change type of variable `c' to + `unsigned char'. Cast `char' array index to `unsigned char'. - * m68kelf.h (ASM_RETURN_CASE_JUMP): Add 5200 support. + * reload.c (push_secondary_reload): Cast argument to + REG_CLASS_FROM_LETTER() macro to `unsigned char'. -1999-02-18 Zack Weinberg + * reload1.c (calculate_needs): Cast `char' array index to + `unsigned char'. + (set_label_offsets): Change type of variable `i' to unsigned int. + Cast result of XVECLEN() macro to unsigned when comparing against + one. + (mark_not_eliminable): Change type of variable `i' to unsigned. + (order_regs_for_reload): Likewise. Cast `max_regno' to unsigned + when comparing against one. + (reload_as_needed): Cast macro NUM_ELIMINABLE_REGS to (int) when + comparing against one. + (choose_reload_regs): Hide unused label `fail'. + (reload_cse_simplify_operands): Cast `char' array index to + `unsigned char'. + (reload_combine_note_store): Mark parameter `set' with + ATTRIBUTE_UNUSED. Cast UNITS_PER_WORD to unsigned when comparing + against one. + (reload_cse_move2add): Remove unused variable `src2'. - * cpplib.c: Kill define of STDC_VALUE. Don't include output.h - or prefix.h. Change CPP_IS_MACRO_BUFFER to not refer to - macro_cleanup. - (GET_ENV_PATH_LIST, PATH_SEPARATOR, STANDARD_INCLUDE_DIR, - predefs, SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE, - CPP_WCHAR_TYPE, USER_LABEL_PREFIX, REGISTER_PREFIX, struct - cpp_pending, version_string, struct default_include, - include_defaults_array, path_include, cpp_options_init, - dump_special_to_buffer, initialize_builtins, cpp_start_read, - cpp_reader_init, nreverse_pending, push_pending, print_help, - cpp_handle_option, cpp_handle_options, cpp_finish, - cpp_cleanup): Move to cppinit.c. - (macro_cleanup, struct arglist, collect_expansion, - create_definition, compare_defs, comp_def_part, ARG_BASE, - struct argdata, macarg, change_newlines, timestamp, - monthnames, special_symbol, unsafe_chars, macroexpand, - push_macro_expansion): Move to cpphash.c. - (quote_string, check_macro_name, cpp_expand_to_buffer, - output_line_command, cpp_undef): Export. - (null_underflow, null_cleanup, handle_directive): Make static. + * sched.c: Include recog.h. + (sched_note_set): Remove unused parameter `b'. All callers + changed. + (split_hard_reg_notes): Likewise for parameter `orig_insn'. + (blockage_range): Cast result of UNIT_BLOCKED() macro to (int) + when comparing against one. - * cpplib.h: Prototype now-exported functions. Adjust decls of - syntax tables so we can include cpplib.h in cppinit.c. - * cpphash.h: Prototype all functions exported by cpphash.c. - * cppinit.c: Make syntax tables initialized data if possible - (uses GCC designated-initializer extension). - * cppexp.c: Make cpp_lex static. - * Makefile.in: Move -D switches for the various include dirs - from cpplib.o rule to cppinit.o rule. Adjust dependencies. + * stupid.c (stupid_find_reg): Mark parameter `changes_size' with + ATTRIBUTE_UNUSED. Cast `sizeof' expression to (int) when + comparing against one. -Thu Feb 18 13:15:56 1999 Marc Espie + * unroll.c (precondition_loop_p): Remove unused parameter + `loop_end'. All callers changed. - * alpha/openbsd.h: New file. - * alpha/xm-openbsd.h: New file. - * sparc/openbsd.h: New file. - * sparc/xm-openbsd.h: New file. - * m68k/openbsd.h: New file. - * m68k/xm-openbsd.h: New file. - * i386/openbsd.h: New file, originally from netbsd. - * i386/xm-openbsd.h: New file. +Tue Oct 13 22:12:11 1998 Bernd Schmidt -1999-02-17 Zack Weinberg + * reload1.c (maybe_fix_stack_asms): New static function. + (reload): Call it. - * Makefile.in: Correct dependencies for cpplib object files. + * reload.h (compute_use_by_pseudos): Declare. -Wed Feb 17 14:04:18 1999 Michael Meissner + * reload1.c (spilled_pseudos, insns_need_reload): New variables. + (something_needs_reloads): Delete variable. + (finish_spills): New function. + (compute_use_by_pseudos): New function. - * rs6000.md ({add,sub}si3 `.'): Add alternatives to use CR other - than cr0. + (delete_caller_save_insns): Lose argument FIRST. All callers changed. + Use the reload_insn_chain instead of walking the rtl directly. -Wed Feb 17 16:59:28 1999 J"orn Rennecke + (reload): Allocate and free spilled_pseudos. + Ensure that all calls of spill_hard_reg are followed by a call to + finish_spills. + Use the insns_need_reload list instead of something_needs_reloads + to find out if reload_as_needed must be called. + Clear unused_insn_chains at the end. - * loop.c (strength_reduce): Don't move giv insn for biv turned giv - below scan_start. + (calculate_needs_all_insns): Lose FIRST parameter. All callers + changed. + Delete code to keep track of current basic block. + Walk reload_insn_chain instead of the rtl structure. Build the + insns_need_reload chain. + Remember which insns need reloading/elimination by setting the + appropriate fields in struct insn_chain, not by putting modes on the + insn. -Wed Feb 17 10:56:24 1999 Kaveh R. Ghazi + (calculate_needs): Lose THIS_BLOCK arg. Accept arg CHAIN instead of + arg INSN. All callers changed. + Delete declaration of struct needs. + Don't set something_needs_reloads. + Record insn needs in the CHAIN argument. - * tree.c (tree_node_kind_names, print_obstack_name, - get_identifier, maybe_get_identifier, build_string, - build_expr_wfl, is_attribute_p, lookup_attribute, - print_obstack_statistics, get_file_function_name_long, tree_check, - tree_class_check, expr_check): Qualify a char* with the `const' - keyword. + (spill_hard_reg): Record the affected pseudos in spilled_pseudos. - * tree.h (get_identifier, maybe_get_identifier, build_string, - build_expr_wfl, is_attribute_p, lookup_attribute, - print_obstack_statistics, print_obstack_name, tree_check, - tree_class_check, expr_check): Likewise. + (reload_as_needed): Lose FIRST arg. All callers changed. + Walk the reload_insn_chain instead of the rtx structure. + Delete code to keep track of current basic block. + Rename one of the NEXT variables to OLD_NEXT. -Tue Feb 16 21:29:38 1999 Jeffrey A Law (law@cygnus.com) + (allocate_reload_reg): Accept arg CHAIN instead of arg INSN. All + callers changed. + (choose_reload_regs): Likewise. - * i386/freebsd-elf.h, i386/gas.h, i386/linux.h: Fix minor spacing - errors. + (emit_reload_insns): Replace INSN and BB args with arg CHAIN. All + callers changed. - * calls.c (store_one_arg): Mark any slots used for the argument - as in-use immediately after we're done saving any slots which - will be overwritten by this argument. + * caller-save.c (MOVE_MAX_WORDS): New macro. Use it throughout + instead of (MOVE_MAX / UNITS_PER_WORD) computation. + (hard_regs_live, hard_regs_need_restore): Delete variables. + (n_regs_saved): Now static. + (referenced_regs, this_insn_sets): New variables. -Tue Feb 16 21:02:07 1999 Anton Hartl + (setup_save_areas): Restructure the code a bit. - * rs6000.md (call_value): Fix typo. + (restore_referenced_regs): Delete function. + (mark_referenced_regs): New function, similar to the old + restore_referenced_regs, but mark registers in referenced_regs. -Wed Feb 17 01:29:07 1999 J"orn Rennecke + (clear_reg_live): Delete function. + (mark_set_regs): Renamed from set_reg_live. All callers changed. + Only mark registers in this_insn_sets. - * loop.c (strength_reduce): Calculate maybe_dead before - calling recombine_givs. + (save_call_clobbered_regs): Rework this function to walk the + reload_insn_chain instead of using the list of instructions directly. + Delete code to keep track of register lives, compute live regs on the + fly from information in the chain. + Instead of calling restore_referenced_regs, use mark_referenced_regs, + then walk the set it computes and call insert_restore as appropriate. -Wed Feb 17 00:43:12 1999 J"orn Rennecke + (insert_restore): Lose INSN and BLOCK args. Add CHAIN arg. All + callers changed. + Restructure the code a bit. Test hard_regs_saved instead of + hard_regs_need_restore. + (insert_save): Lose INSN and BLOCK args. Add CHAIN and TO_SAVE + args. All callers changed. + Restructure the code a bit. Use TO_SAVE to determine which regs to + save instead of more complicated test. + (insert_one_arg): Lose INSN and BLOCK args. Add CHAIN arg. All + callers changed. + Create a new insn_chain structure for the new insn and place it + into the chain. - * loop.c (strength_reduce): Dump biv increment -> giv conversions. + * rtl.texi: Update documentation to reflect that reload no longer + puts modes on the insns. -Tue Feb 16 15:31:39 1999 Ovidiu Predescu +1998-10-14 Andreas Schwab - * objc/objc-act.c (encode_type): Encode the type instead of - encoding the mode of the type (patch from Richard Frith-Macdonald - ). + * function.c (purge_addressof_1): Force the first argument of a + CALL insn to memory. -Tue Feb 16 10:53:51 1999 Richard Earnshaw (rearnsha@arm.com) +Wed Oct 14 00:38:40 1998 Jeffrey A Law (law@cygnus.com) - * config/arm/arm.md (*zeroextractqi_compare0_scratch): Re-add load - instruction killed in previous change. Simplify mask generation. - (*zeroextractsi_compare0_scratch): Simplify mask generation. + * rtl.h: Delete duplicate prototypes. Add some missing + prototypes. + * rtlanal.c (for_each_rtx): Formatting tweak. -Tue Feb 16 09:52:26 1999 Nick Clifton +1998-10-13 Herman A.J. ten Brugge - * config/arm/arm.md (zeroextractqi_compare0_scratch): Ensure that - bitfield does not overflow a byte boundary. + * real.c (emdnorm and etoasc): Disable round to even for c4x target + to be compatible with TI compiler. -Tue Feb 16 01:37:33 1999 Charles G Waldman + * Makefile.in (USER_H): Add va-c4x.h to definition. - * c-common.c (shorten_compare): Get the min/max value from the - underlying type of an enumeration, not the enumerated type itself. +Tue Oct 13 23:03:37 1998 Richard Henderson -Mon Feb 15 23:04:48 1999 Jeffrey A Law (law@cygnus.com) + * function.c (purge_addressof_1): Fix typo in inequality: do + bitfield optimization for equal mode sizes. + * expmed.c (store_bit_field): Don't take subregs of subregs in + the movstrict case. Tidy a potential problem in the multi-word case. + (extract_bit_field): Likewise. - * jump.c: Include insn-attr.h. - (delete_computation): If reload has completed and insn scheduling - after reload is enabled, then do not depend on REG_DEAD notes. - * Makefile.in (jump.o): Depend on insn-attr.h. +Tue Oct 13 22:12:11 1998 Bernd Schmidt -Mon Feb 15 16:57:38 1999 Richard Henderson + * flow.c (find_basic_blocks): Emit NOPs after normal calls in this + function. + Compute max_uid_for_flow by calling get_max_uid after the scan. + (find_basic_blocks_1): Don't emit NOPs here. - * i386.md (addsi3): Allow lea for any constant_p. +Tue Oct 13 22:05:49 1998 Richard Henderson -1999-02-15 Zack Weinberg + * alias.c (base_alias_check): Accept new args for the modes of the + two references. Use them to determine if an AND can overlap. Update + all callers. + (memrefs_conflict_p): Assume sizes are aligned, and uses them + to determine if an AND can overlap. - * toplev.c (documented_lang_options): Remove -fident and - -fnoident, which are now handled by the language independent - option parser. +Tue Oct 13 17:51:04 1998 Jim Wilson -1999-02-15 Zack Weinberg + * config/m68k/m68k.h (HARD_REGNO_MODE_OK): For FP regs, add REGNO >= 16 + check. Add comment to document problems with TARGET_SUN_FPA version + of this macro. + * config/m68k/m68k.md (movxf+1): Support 'r'/'r' moves. - * c-common.c (UNGETC [USE_CPPLIB=1]): Do nothing if c is EOF. - * c-lex.c: Likewise. - * cpplib.c (cpp_push_buffer, cpp_pop_buffer): Use a linked - list in malloced memory for the buffer stack. - (cpp_get_token): Don't pop the last buffer off the stack. - Calls after CPP_EOF has been returned produce CPP_EOF with no - state change. - (cpp_finish): Pop last buffer here. - (do_line): Don't free ip->last_nominal_fname if it is equal to - ip->fname. - (special_symbol): If a T_CONST is the empty string, push a - single `@ ' escape instead. - (macroexpand): Special symbol buffers have escapes too. - * cpplib.h (struct cpp_buffer): Remove unused fields, add prev - buffer pointer. - (struct cpp_reader): Remove buffer_stack. Add - buffer_stack_depth. - (CPP_PREV_BUFFER, CPP_NULL_BUFFER): Buffer stack is now a - linked list. - -Mon Feb 15 14:44:53 1999 Kaveh R. Ghazi - - * cccp.c: Don't define HOST_WIDE_INT. Replace all occurrences of - WIDE_INT with WIDEST_INT. +Tue Oct 13 17:46:18 1998 Kaveh R. Ghazi - * cexp.y: Likewise. - Don't define unsigned_HOST_WIDE_INT, CHAR_BIT or - HOST_BITS_PER_WIDE_INT. Replace occurrences of PRINTF_PROTO_1() - style with PVPROTO() ATTRIBUTE_PRINTF_1 style macros. Replace - occurrences of "unsigned_HOST" with "unsigned HOST". Provide a - definition of variable `c89' when compiling a test binary and set it. + * Makefile.in (gencheck.o): Depend on gansidecl.h. - * system.h: Don't define the PRINTF_PROTO_* macros. + * c-common.c (print_char_table): Add missing initializers. + (scan_char_table): Likewise. + (time_char_table): Likewise. -Mon Feb 15 11:33:51 1999 Jeffrey A Law (law@cygnus.com) + * c-decl.c (c_decode_option): Mark parameter `argc' with + ATTRIBUTE_UNUSED. + (declare_parm_level): Mark parameter `definition_flag' with + ATTRIBUTE_UNUSED. - * loop.c (mark_loop_jump): Handle LO_SUM. If we encounter something - we do not understand, mark the loop and containing loops as invalid. + * c-lex.c (readescape): Use `(unsigned)1' in shift. + (yylex): Likewise. Cast `sizeof' to an (int) when comparing + against one. -Mon Feb 15 00:40:45 1999 J"orn Rennecke + * calls.c (store_one_arg): Remove unused parameter `fndecl'. All + callers changed. + (emit_call_1): Mark parameters `fndecl' and `funtype' with + ATTRIBUTE_UNUSED. + (expand_call): Cast result of MIN() to (unsigned int) when + comparing against an unsigned value. - * alias.c (init_alias_analysis): Avoid self-referential value - when setting reg_known_value from REG_EQUAL notes. + * cccp.c (pcfinclude): Remove unused parameter `limit'. All + callers changed. + (make_definition): Remove unused parameter `op'. All callers + changed. + (create_definition): Cast REST_EXTENSION_LENGTH to (long) when + comparing against the result of pointer arithmetic. -Sun Feb 14 23:12:10 1999 Richard Henderson + * config/mips/mips.h (FUNCTION_ARG_BOUNDARY): Cast to (unsigned) + when comparing against one. - * i386.c (legitimate_address_p): Verify modes of base and index. + * dwarf2out.c (dwarf2out_frame_debug): Cast REGNO() and + HARD_FRAME_POINTER_REGNUM to (unsigned) when comparing against + one. + (output_die): Move variable `i' into the scope in which it is + used. Change its type to `unsigned'. + (output_die): Cast the result of `strlen' to (int) when passing it + to ASM_OUTPUT_ASCII(). + (output_pubnames): Likewise. + (output_line_info): Likewise. -Sun Feb 14 23:01:28 1999 Richard Henderson + * emit-rtl.c (global_rtl): Add missing initializers. - * i386.c (legitimate_pic_address_disp_p): Remove static. - * i386.h (LEGITIMATE_PIC_OPERAND_P): Use it instead of - open-coding cases. + * explow.c (promote_mode): Mark parameter `for_call' with + ATTRIBUTE_UNUSED. -Sun Feb 14 21:03:28 1999 Jeffrey A Law (law@cygnus.com) + * expmed.c (expand_shift): Cast the result of GET_MODE_BITSIZE to + `unsigned HOST_WIDE_INT' when comparing against one. + (synth_mult): Change type of variable `cost' to int. + (emit_store_flag): Use `(unsigned HOST_WIDE_INT) 1' in shift. - * except.c (start_catch_handler): Use emit_cmp_and_jump_insns. - * explow.c (probe_stack_range): Likewise. - * expmed.c (do_cmp_and_jump): Likewise. - * expr.c (store_expr, expand_expr, expand_builtin): Likewise. - (do_tablejump): Likewise. - * stmt.c (expand_expr_stmt, expand_end_case): Likewise. - (do_jump_if_equal, emit_case_nodes): Likewise. - * optabs.c (emit_cmp_and_jump_insns): Clarify comments. If UNSIGNEDP, - then convert comparison to an unsigned code before emitting the jump. - (expand_float, expand_fix): Use emit_cmp_and_jump_insns. + * expr.c (copy_blkmode_from_reg): Cast BITS_PER_WORD to (unsigned) + when comparing against one. + (get_inner_reference): Change variable `alignment' to unsigned. + (expand_expr): Cast the result of GET_MODE_ALIGNMENT to (unsigned + int) when comparing against one. + (expand_builtin_setjmp): Change type of variable `i' to size_t. -Sun Feb 14 02:24:15 1999 Jeff Law (law@cygnus.com) + * fold-const.c (div_and_round_double): Cast BASE to + (HOST_WIDE_INT) when comparing against one. - * version.c: Bump for snapshot. + * gencheck.c: Include gansidecl.h. + (main): Mark parameter `argv' with ATTRIBUTE_UNUSED. -Sun Feb 14 01:15:04 1999 Jeff Law (law@cygnus.com) + * optabs.c (gen_cond_trap): Mark parameters `code', `op2' and + `tcode' with ATTRIBUTE_UNUSED. - * version.c: Bump for snapshot. + * real.c (edivm): Cast constant value to (unsigned long) in + expression compared against an unsigned value. -Sun Feb 14 00:45:50 1999 Jeffrey A Law (law@cygnus.com) + * stmt.c (expand_return): Cast BITS_PER_WORD to (unsigned) when + comparing against one. + (expand_end_case): Cast CASE_VALUES_THRESHOLD to (unsigned int) + when comparing against one. - * loop.c: Disable recent loop changes. Temporary as Joern - continues to fix problems. + * stor-layout.c (mode_for_size): Cast MAX_FIXED_MODE_SIZE to + (unsigned int) when comparing against one. Likewise for + GET_MODE_BITSIZE. + (smallest_mode_for_size): Likewise. + (save_storage_status): Mark parameter `p' with ATTRIBUTE_UNUSED. + (restore_storage_status): Likewise. -Sat Feb 13 23:29:42 1999 Richard Henderson + * toplev.c (debug_args): Add missing initializer. + (f_options): Spelling correction. Add missing initializers. + (documented_lang_options): Likewise. + (debug_end_source_file): Mark parameter `lineno' with + ATTRIBUTE_UNUSED. - * loop.c (combine_givs_used_by_other): Delete. - (combine_givs_benefit_from): Delete. - (combine_givs): Deny combination of givs only used once. Simplify - code with the death of combine_givs_benefit_from. + * tree.c (valid_machine_attribute): Mark parameters `attr_args', + `decl' and `type' with ATTRIBUTE_UNUSED. -Sun Feb 14 11:24:05 1999 Michael Hayes + * varasm.c (decode_reg_name): Cast `sizeof' expression to (int) + when comparing against one. + (assemble_variable): Mark parameter `top_level' with + ATTRIBUTE_UNUSED. + (assemble_external_libcall): Mark parameter `fun' with + ATTRIBUTE_UNUSED. + (output_constant_pool): Mark parameters `fnname' and `fndecl' with + ATTRIBUTE_UNUSED. - * loop.c (scan_loop): Call reg_in_basic_block_p before - loop_reg_used_before_p. +Tue Oct 13 12:51:04 1998 Nick Clifton -Sat Feb 13 05:32:00 1999 Richard Earnshaw (rearnsha@arm.com) + * config/v850/lib1funcs.asm (_udivsi3): Add .type declaration. + Replace use of r5 with use of r19. - * arm.md: Use gen_rtx_FOO instead of gen_rtx (FOO, ...). - * arm.h: Likewise. - * arm.c: Likewise. + * config/v850/v850.h (LINK_POINTER_REGNUM): Define. - * arm.h (TARGET_OPTIONS): Reformat for clarity. - (GO_IF_LEGITIMATE_ADDRESS): When generating PIC, references to symbols - in the constant pool aren't valid. - (LEGITIMATE_PIC_OPERAND_P): Likewise. + * config/v850/v850.c (compute_register_save_size): Allow for the + fact that helper functions save all registers, not just those used + by the function. - * arm.c: Include "system.h", not stdio.h and string.h. + Replace constant 31 with macro LINK_POINTER_REGNUM. -Fri Feb 12 13:06:28 1999 Jim Wilson + * config/v850/v850.md: Use 'indirect_operand' rather than + 'memory_operand' for bit test/set/clear patterns. - * stmt.c (expand_return): Return if optimize_tail_recursion succeeded. - (optimize_tail_recursion): Change return type from void to int. - Add return statements. - * tree.h (optimize_tail_recursion): Change prototype to match. +Tue Oct 13 11:49:14 1998 Jason Merrill -Fri Feb 12 21:09:51 1999 J"orn Rennecke + * mips/iris6.h (ASM_OUTPUT_WEAK_ALIAS): Call ASM_GLOBALIZE_LABEL. + * varasm.c (assemble_start_function et al): Don't call + ASM_GLOBALIZE_LABEL for weak symbols. - * reload.c (find_reloads_subreg_address): New function, broken out of - find_reloads_toplev. - (find_reloads_toplev, find_reloads_address_1): Use it. +Tue Oct 13 11:37:45 1998 Nick Clifton -Fri Feb 12 13:20:52 1999 Jeffrey A Law (law@cygnus.com) + * cse.c (equiv_constant): Check for NULL return from + gen_lowpart_if_possible(). - * h8300.md (zero_extendhisi2 H8/300 variant): Correctly handle - extending a CONST_INT. +Tue Oct 13 11:24:51 1998 Jeffrey A Law (law@cygnus.com) - * h8300.md (peephole for combining memrefs): Delete incorrect peephole. + * mn10200.md (addsi3, subsi3, negsi2): Only allow register operands. -Fri Feb 12 18:29:11 1999 J"orn Rennecke + * collect2.c (main): Pass -EL/-EB through to the compiler. - * loop.c (loop_insn_first_p, biv_elimination_giv_has_0_offset): - New functions. - (maybe_eliminate_biv_1): Use biv_elimination_giv_has_0_offset. +1998-10-12 Herman A.J. ten Brugge -Fri Feb 12 16:56:10 1999 J"orn Rennecke + * expr.c (push_block): Handle targets where the stack grows + to higher addresses, but args grow to lower addresses and + ACCUMULATE_OUTGOING_ARGS is not defined. - * loop.c (load_mems): Don't guess how to do a load / store, use - emit_move_insn. +Tue Oct 13 08:00:52 1998 Catherine Moore -Fri Feb 12 09:24:26 1999 Kaveh R. Ghazi + * config/v850/v850.c (print_operand): Extend meaning + of 'c' operands to support .vtinherit. - * system.h: Provide a definition for HOST_WIDEST_INT, etc. +Tue Oct 13 21:38:35 1998 Michael Hayes -Fri Feb 12 23:37:26 1999 Michael Hayes + * config/c4x/c4x.c: Convert to gen_rtx_FOO. + Added ATTRIBUTE_UNUSED to unused function arguments. + (rc_reg_operand): New predicate. + (c4x_rptb_insert): New function. + (c4x_rptb_nop_p): Recognize modified rptb_top pattern. + (c4x_optimization_options): New function. - * config/c4x/c4x.c (c4x_address_cost): Revert 9 Feb change. + * config/c4x/c4x.md: Convert to gen_rtx_FOO. + (decrement_and_branch_on_count): New pattern. + (rptb_top): Modified pattern to work with BCT optimization. -Fri Feb 12 00:51:26 1999 Jeffrey A Law (law@cygnus.com) + * config/c4x/c4x.h (RC_REG): New register class. + (rc_reg_operand): Define prototype. + (IS_RC_REG): New macro. + (IS_RC_OR_PSEUDO_REG): New macro. + (IS_RC_OR_PSEUDO_REGNO): New macro. + (OPTIMIZATION_OPTIONS): Define. - * reload.c (find_reloads_address_1): Fix handling of an autoincremented - pseudo which is homed in the stack. +Mon Oct 12 19:57:34 1998 Jason Merrill - * mips.c (save_restore_insns): Fix loop to save/restore FP registers. - (compute_frame_size): Change loop over FP regs to be consistent - with the loop in save_restore_insns. + * collect2.c (extract_init_priority): No priority is 65535. -Thu Feb 11 17:38:40 1999 Jim Wilson +Mon Oct 12 12:10:37 1998 Alexandre Oliva - * i960/i960.h (OVERRIDE_OPTIONS): Warn if -mlong-double-64 is used. - (LONG_DOUBLE_TYPE_SIZE): Undef then unconditionally define to 96. + * Makefile.in (build_tooldir): New variable, same as old + $(tooldir), but without depending on $(libdir)/$(unlibsubdir). + (GCC_FOR_TARGET): Add -B$(build_tooldir)/bin/. + (bootstrap, bootstrap2, bootstrap3, bootstrap4): Likewise. -Thu Feb 11 15:11:35 1999 Jeffrey A Law (law@cygnus.com) + * configure.in (gxx_include_dir): Set default based on unlibsubdir. + * Makefile.in (tooldir): Likewise. + (cccp.o, cpplib.o): Use unlibsubdir implicitly through + gxx_include_dir, includedir and tooldir. + (protoize.o, unprotoize.o): Likewise. - * mn10200.md (bset); Re-enable. +Mon Oct 12 10:50:44 1998 Nick Clifton -Thu Feb 11 15:20:49 1999 J"orn Rennecke + * config/arm/arm.md: Replace (reg 24) with (reg:CC 24). - * sh.md (is_sfunc): New attribute. - * sh.h (INSN_SETS_ARE_DELAYED, INSN_REFERENCES_ARE_DELAYED): Use it. + * config/arm/thumb.c (thumb_override_options): Add warning about + PIC code not being supported just yet. -Thu Feb 11 01:06:49 1999 Nathan Sidwell +Sun Oct 11 16:49:15 1998 John Wehle (john@feith.com) - * fold-const.c (range_binop): Take account of the bounded nature - of fixed length arithmetic when comparing unbounded ranges. + * flow.c: Update comment. + (notice_stack_pointer_modification): New static function. + (record_volatile_insns): Use it. + (mark_regs_live_at_end): Mark the stack pointer as alive + at the end of the function if current_function_sp_is_unchanging + is set. + (life_analysis_1): Set current_function_sp_is_unchanging. + * function.c: Define it. + (init_function_start): Initialize it. + * output.h: Declare it. + * reorg.c (fill_simple_delay_slots, dbr_schedule): Mark + the stack pointer as alive at the end of the function if + current_function_sp_is_unchanging is set. + * i386.c (ix86_epilogue): Optimize the restoring + of the stack pointer. -Thu Feb 11 00:08:17 1999 John Wehle (john@feith.com) +Mon Oct 12 01:22:53 1998 Jeff Law (law@cygnus.com) - * function.c (assign_stack_temp_for_type): Clear best_p - when an exact match is found. + * version.c: Bump for snapshot. - * i386.h (LOCAL_ALIGNMENT): Define. - * function.c (assign_stack_local, assign_outer_stack_local): Use it. - (assign_stack_temp_for_type): New function based on assign_stack_temp. - (assign_stack_temp): Call it. - (assign_temp): Use assign_stack_temp_for_type, not assign_stack_temp. - * stmt.c: Use assign_temp, not assign_stack_temp. - * tm.texi: Document LOCAL_ALIGNMENT. +Sun Oct 11 23:04:30 1998 Robert Lipe -Wed Feb 10 23:28:28 1999 Jeffrey A Law (law@cygnus.com) + * c-pragma.c (handle_pragma_token): If passed a token instead + of a tree, use that as the pack value. - * reorg.c: Finish deleting half-deleted comment. +Sun Oct 11 14:21:14 1998 Mark Mitchell -Wed Feb 10 17:12:21 1999 Jim Wilson + * flow.c (find_basic_blocks_1): Fix prototype. - * emit-rtl.c (operand_subword): Sign extend REAL_VALUE_TO_TARGET_SINGLE - result. - * final.c (split_double): Sign extend REAL_VALUE_TO_TARGET_DOUBLE - result. - * real.c (endian): Delete sign extension code. - * config/m32r/m32r.md (movsf_insn+1): REAL_VALUE_TO_TARGET_SINGLE call - replaced with operand_subword call. +Sun Oct 11 05:03:41 1998 Ken Raeburn -Wed Feb 10 15:16:39 1999 Richard Henderson + * tree.h (DECL_NO_CHECK_MEMORY_USAGE): New macros. + (struct tree_decl): New fields no_check_memory_usage. + * c-common.c (enum attrs): Add A_NO_CHECK_MEMORY_USAGE. + (init_attributes): Register it as a new attribute. + (decl_attributes): Set flags on functions given that attribute. + * c-decl.c (duplicate_decls): Merge new attribute. + * expr.h (current_function_check_memory_usage): Declare new var. + * calls.c, expr.c, function.c, stmt.c, alpha.c, clipper.c, m88k.c, + pa.c, sparc.c: Replace uses of flag_check_memory_usage with + current_function_check_memory_usage. + * function.h: Add field to struct function. + * function.c (current_function_check_memory_usage): Define it. + (push_function_context_to, pop_function_context_from): Save and + restore it. + (expand_function_start): Set it, based on global flag and function + attribute. - * alpha.md (cmov compound patterns): Delete. Jump can now - create the correct constructs in the first place. + * expr.c (expand_expr, case VAR_DECL): In memory-checking code, do + check non-automatic variables, to permit detection of writes to + read-only locations in embedded systems without memory management. + * calls.c (store_one_arg): Use ARGS_SIZE_RTX to get size of argument + when emitting chkr_set_right_libfunc call, even if the argument is + BLKmode or variable-sized; don't abort. -Wed Feb 10 11:03:22 1999 Richard Henderson + * optabs.c (init_optabs): Create Checker and __cyg_profile_* + symbols in Pmode, not VOIDmode. - * configure.in (alphaev6*): Fix typo in target_cpu_default2. +Sun Oct 11 01:03:05 1998 Zack Weinberg -Wed Feb 10 13:59:18 1999 Dave Brolley + * cppexp.c: When forcing unsigned comparisons, cast both sides + of the operation. - * mbchar.c (local_mb_cur_max): Handle the case where MB_CUR_MAX is 0. + * cpphash.h: Move static declaration of hashtab[]... + * cpphash.c: ...here. -Wed Feb 10 10:35:05 1999 Jim Wilson + * cpplib.c: Cast difference of two pointers to size_t before + comparing it to size_t. Cast signed to unsigned + before comparing to size_t. (FIXME: struct argdata should use + unsigned buffer sizes.) + * cpplib.h (struct cpp_reader): Declare token_buffer_size as + unsigned int. (CPP_WRITTEN): Cast return value to size_t. + (CPP_RESERVE): Parenthesize N for evaluation order, cast to + size_t before comparison. - * tmp-emsgids.c: Delete. +Sun Oct 11 00:15:29 1998 Jeffrey A Law (law@cygnus.com) -Wed Feb 10 09:57:08 1999 Mark Mitchell + * flow.c (find_basic_blocks): Delete "live_reachable_p" argument. + (find_basic_blocks_1): Similarly. + * output.h (find_basic_blocks): Fix prototype. + * gcse.c, toplev.c: Don't pass "live_reachable_p" argument to + find_basic_blocks anymore. - * rtlanal.c (for_each_rtx): Fix declaration to conform to GNU - coding standards. +Sat Oct 10 22:00:34 1998 Richard Henderson -Wed Feb 10 10:09:41 1999 Jeffrey A Law (law@cygnus.com) + * basic-block.h (EXECUTE_IF_SET_IN_SBITMAP): New macro. + (sbitmap_free, sbitmap_vector_free): New macros. + * output.h (rtl_dump_file): Declare. - * mn10200.md (bset, bclr): Operand 0 is a read/write operand. +Sat Oct 10 17:01:42 1998 Jeffrey A Law (law@cygnus.com) - * reload1.c (reload_combine_note_store): Second argument is no - longer unused/ignored. Handle multi-register hard regs. - (move2add_note_store): Simplify. + * regmove.c (optimize_reg_copy_3): Honor TRULY_NOOP_TRUNCATION. -Wed Feb 10 10:05:23 1999 Mumit Khan +Fri Oct 9 22:08:05 1998 Kaveh R. Ghazi - * collect2.c (collect_execute): Remove cygwin-specific code. + * fp-bit.c (SFtype): Don't implicitly use int in declaration. + (DFtype): Likewise. + (_fpdiv_parts): Remove unused parameter `tmp', all callers changed. + (divide): Remove unused variable `tmp'. + (si_to_float): Cast numeric constant to (SItype) before comparing + it against one. -Tue Feb 9 17:27:29 1999 Nathan Sidwell +Fri Oct 9 16:03:19 1998 Graham - * system.h (_, N_): Remove dummy i18n macros. - * protoize.c: Move inclusion of intl.h to after system.h. - * cexp.y: Include intl.h. - * cexp.c: Rebuilt. + * flow.c (print_rtl_with_bb): Changed type of in_bb_p to match use. + * gcc.c (add_preprocessor_option): Correct typo when allocating + memory, sizeof() argument had one too many `*'. + (add_assembler_option): Likewise. + (add_linker_option): Likewise. + * gcov.c (output_data): Likewise. + * local-alloc.c (memref_used_between_p): Likewise. + (update_equiv_regs): Likewise. + * loop.c (strength_reduce): Likewise. + * reg-stack.c (record_asm_reg_life): Likewise. + (subst_asm_stack_reg): Likewise. + * reorg.c (dbr_schedule): Likewise. -Tue Feb 9 16:52:22 1999 Mumit Khan +Fri Oct 9 15:57:51 1998 Bernd Schmidt - * i386/cygwin.h (SUBTARGET_OVERRIDE_OPTIONS): New macro to ignore - fpic/fPIC for windows32 targets. - * i386/xm-cygwin.h (GET_ENV_PATH_LIST): Replace '\\' in windows32 - paths with '/'. - * i386/mingw32.h (CPP_SPEC): Define. - (CPP_PREDEFINES): Add MINGW32 version id. - * i386/crtdll.h (CPP_PREDEFINES): Likewise. + * flow.c (life_analysis_1): Break out some functions. + (find_basic_blocks_1): Likewise. Also move some variables out and + make them static. + Rename NONLOCAL_LABEL_LIST arg to NONLOCAL_LABELS and initialize + new static var nonlocal_label_list with it. + (active_eh_region, nested_eh_region, label_value_list, + nonlocal_label_list): New static variables. + (make_edges, delete_unreachable_blocks, delete_block): New static + functions, broken out of find_basic_blocks_1. + (record_volatile_insns, mark_regs_live_at_end, set_noop_p, + noop_move_p): New static functions, broken out of life_analysis_1. - * Makefile.in (collect2$(exeext)): Delete redundant dependency and - add missing exeext to target. +Fri Oct 9 15:49:29 1998 Richard Henderson - * gcc.c (convert_filename): Handle null filename argument. + * expmed.c (store_bit_field): Pun non-integral str_rtx modes. + Take extra care for op0 now possibly being a subreg. + (extract_bit_field): Likewise. + * function.c (purge_addressof_1): Revert Oct 4 change. Drop + the reg to memory if there is no equal sized integral mode. + * stor-layout.c (int_mode_for_mode): New function. + * machmode.h: Prototype it. -Wed Feb 10 15:46:10 1999 Michael Hayes +Fri Oct 9 14:26:44 1998 Jeffrey A Law (law@cygnus.com) - * config/c4x/c4x.md (*movhf_noclobber, *movhi_noclobber): Use - m constraint instead of QT. + * global.c (build_insn_chain): Verify no real insns exist past the + end of the last basic block, then exit the loop. -1999-02-09 Brendan Kehoe +Fri Oct 9 11:44:47 1998 David Edelsohn - * cpplib.c (special_symbol): Move IP to be declared in function - scope, rather than individual case statements. + * loop.c (insert_bct): Ensure loop_iteration_var nonzero before use. -1999-02-09 Zack Weinberg +Thu Oct 8 21:59:47 1998 Dave Brolley - * cppfiles.c (finclude): Handle pipes properly under old BSD - derivatives. + * emit-rtl.c (init_emit_once): Call INIT_EXPANDERS. -1999-02-09 Melissa O'Neill +Thu Oct 8 22:03:45 1998 David Edelsohn - * system.h: Provide fallback definitions for S_ISCHR, - S_ISSOCK, S_ISFIFO, O_NONBLOCK, and O_NOCTTY. + * rs6000.h (RTX_COSTS): Add PROCESSOR_PPC604e cases. -1999-02-09 Zack Weinberg +Thu Oct 8 17:00:18 1998 Richard Henderson - * cpplib.c (do_define): Allow redefining __STDC__ with -D. + * flow.c (find_basic_blocks): Correctly determine when a call + is within an exception region. -1999-02-09 Jim Blandy +Thu Oct 8 17:15:04 1998 Jeffrey A Law (law@cygnus.com) - * configure.in: For PowerPC configurations, accept "401", "ec603e", - "740", and "750" as valid arguments to --with-cpu. - * configure: Rebuilt. + * toplev.c (output_file_directive): Use DIR_SEPARATOR, not '/'. -Tue Feb 9 00:00:14 1999 Mark Kettenis + * cpplib.h: Protect from multiple inclusions. + * cpplib.c: Fix minor formatting problems. - * configure.in (i[34567]86-*gnu*): Set float_format to i386. - * configure: Rebuilt. + * i386/xm-cygwin32.h: Only define POSIX if it is not already defined. -Mon Feb 8 22:38:24 1999 Jeffrey A Law (law@cygnus.com) - - * rs6000.md: Revert "alternate use of crs if cr0 not available" - patches from 01-22-1999, 01-24-1999, 01-26-1999, and 02-08-1999. - -Mon Feb 8 21:36:44 1999 Richard Henderson - - * output.h (current_function_has_computed_jump): Rename from - current_function_addresses_labels. - * function.h (struct function): Likewise for addresses_labels member. - * rtl.h (FUNCTION_FLAGS_HAS_COMPUTED_JUMP): Likewise. - * function.c (current_function_has_computed_jump): Likewise. - Update all references. - * integrate.c (function_cannot_inline_p): - Test current_function_has_computed_jump instead of addresses_labels. - (initialize_for_inline): Likewise save. - (output_inline_function): Likewise restore. - - * expr.c (expand_expr): Don't reference addresses_labels variables. - * stmt.c (expand_computed_goto): Set has_computed_jump. - -1999-02-08 Michael Meissner - - This is being installed only to get it into the repository to help - with the revert, resubmit & review process for the massive rs6000.md - changes. - * rs6000.md (andsi3_internal1 splitter): Don't split if using the - rlwinm instruction. - (anddi3_internal1): Likewise. - (andsi3_internal{2,3}): Correct some insn lengths. - (anddi3*): Restore missing TARGET_POWERPC64, and don't emit old - mnemonics. - -Mon Feb 8 21:31:06 1999 Richard Henderson - - * loop.c (reg_single_usage): New file-scope variable ... - (scan_loop): ... moved out of here. Always initialize. - Test loop_has_call instead of reg_single_usage not zero. - Free reg_single_usage after strength reduction. - (count_loop_regs_set): Assume single_usage nonzero. - (combine_givs_used_by_other): Test reg_single_usage. - (load_mems_and_recount_loop_regs_set): Remove reg_single_usage - as a parameter. Assume nonzero. - -1999-02-08 Zack Weinberg - - * cpplib.c (special_symbol): Rewrite. Don't copy things - multiple times. Handle __STDC__ specially. T_CONST - indicates a constant /string/. Don't handle T_*_TYPE and - T_SPEC_DEFINED. Use cpp_buf_line_and_col instead of - adjust_position. Determine the file buffer only if needed. - (initialize_builtins): Handle __SIZE_TYPE__, - __PTRDIFF_TYPE__, __WCHAR_TYPE__, __USER_LABEL_PREFIX__, and - __REGISTER_PREFIX__ with T_CONST special hashtab entries. - Don't provide __OBJC__; the driver does that. Provide - __STDC_VERSION__, using T_CONST. Use T_STDC for - __STDC__. Give install the length of all symbols defined. - (eval_if_expression): Drop code to insert and remove the - "defined" special symbol. - - * cpplib.h: Remove SELF_DIR_DUMMY (no longer used). Remove - T_*_TYPE and T_SPEC_DEFINED from enum node_type; add T_STDC. - - * cpphash.c (install): Drop the `ivalue' parameter. Constify - the `value' parameter. All callers changed. - * cpphash.h (install): Change prototype to match. - (union hashval): Remove `ival' member. - * cppexp.c (cpp_lex): Handle `defined' here. - -Mon Feb 8 17:29:42 1999 Jeffrey A Law (law@cygnus.com) - - * pa.h (EXTRA_CONSTRAINT): Fix comment. - -Mon Feb 8 18:57:45 1999 Vladimir N. Makarov - - * c-typeck.c (check_init_type_bitfields): Use nonincremental - initialization of unions whose first member is a bitfield. - Remove unnecessary code for checking the declaration mode - after DECL_C_BIT_FIELD. - - * varasm.c (output_constructor): Additional comment about the - constructor of bitfield union initialization. - -Tue Feb 9 11:55:04 1999 Michael Hayes - - * config/c4x/c4x.md (*movhi_stik): New pattern. - (movhi): Allow some immediate constants to be directly - stored in memory. - -Tue Feb 9 11:34:15 1999 Michael Hayes - - * config/c4x/c4x.md (all call patterns): Add constraints "Ur". - (call, call_value): Force address into a register if not valid - for a call instruction. - (load_immed_address): Emit a USE of the SYMBOL_REF that is - forced into memory. - * config/c4x/c4x.c (c4x_print_operand): Fix 'C' and 'U' modifiers. - -Tue Feb 9 11:08:41 1999 Michael Hayes - - * config/c4x/c4x.c (call_address_operand, symbolic_address_operand): - Rename from call_operand and symbolic_operand respectively. All - callers changed. - * config/c4x/c4x.md (call_address_operand, symbolic_address_operand): - Likewise. - * config/c4x/c4x.h (call_address_operand, symbolic_address_operand): - Likewise. - (PREDICATE_CODES): Allow CONST, LABEL_REF for call_address_operand. + * jump.c (jump_optimize): Revert accidental patch. -Tue Feb 9 10:52:27 1999 Michael Hayes + * Makefile.in (cpplib.o): Use unlibsubdir. - * config/c4x/c4x.c (c4x_legitimize_address): Don't generate a - LO_SUM address for HImode or HFmode but instead force address into - a register so that it is offsettable. - (c4x_emit_move_sequence): Handle LO_SUM immediate address. +Thu Oct 8 12:50:47 1998 Jim Wilson -Tue Feb 9 10:46:42 1999 Michael Hayes + * loop.c (get_condition): Allow combine when either compare is + VOIDmode. - * config/c4x/c4x.c (c4x_address_cost): Return cost of 1 for - REG+REG addressing if strength reduction enabled. +Thu Oct 8 11:31:01 1998 Jeff Law (law@cygnus.com) -Tue Feb 9 10:10:31 1999 Michael Hayes + * version.c: Bump for snapshot. - * config/c4x/t-c4x (LIBGCC2_CFLAGS): Delete. - (TARGET_LIBGCC2_CFLAGS): Define. +Thu Oct 8 12:21:14 1998 Richard Frith-Macdonald -1999-02-08 Nick Clifton + * c-lex.c (remember_protocol_qualifiers): Handle RID_BYREF. + (init_lex): Initialize ridpointers[RID_BYREF]. + * c-lex.h (enum rid): Add RID_BYREF. + * c-parse.gperf: Add RID_BYREF as a type qualifier. + * objc/objc-act.c (is_objc_type_qualifiers): Handle RID_BYREF. + (encode_type_qualifiers): Similarly. + * c-gperf.h: Rebuilt. - * config/v850/v850.md: Replace \\n\\t with \\; +Thu Oct 8 05:56:00 1998 Jeffrey A Law (law@cygnus.com) - * config/v850/v850.md: Enforce TARGET_LONG_CALLS option. - * config/v850/v850.c (construct_restore_jr, construct_save_jarl): - Enforce TARGET_LONG_CALLS option. + * c-common.c (type_for_mode): Only return TItype nodes when + HOST_BITS_PER_WIDE_INT is >= 64 bits. + * c-decl.c (intTI_type_node, unsigned_intTI_type_node): Only declare + when HOST_BITS_PER_WIDE_INT is >= 64 bits. + (init_decl_processing): Only create TItype nodes when + HOST_BITS_PER_WIDE_INT is >= 64 bits. + * c-tree.h (intTI_type_node, unsigned_intTI_type_node): Only declare + when HOST_BITS_PER_WIDE_INT is >= 64 bits. -Mon Feb 8 11:43:07 1999 Donn Terry +Thu Oct 8 05:05:34 1998 Bernd Schmidt - * real.c (PUT_REAL) [XFmode]: Zero the balance of the structure. + * stmt.c (n_occurrences): New static function. + (expand_asm_operands): Verify that all constrains match in the + number of alternatives. + Verify that '+' or '=' are at the beginning of an output constraint. + Don't allow '&' for input operands. + Verify that '%' isn't written for the last operand. + * reload.c (find_reloads): Abort if an asm is found with invalid + constraints; all possible problems ought to be checked for earlier. -Mon Feb 8 11:37:24 1999 Marc Espie (espie@cvs.openbsd.org) +Thu Oct 8 04:26:20 1998 Michael Hayes - * m88k/t-luna-gas: Remove bash dependency. + * flags.h (flag_branch_on_count_reg): Always declare. + * toplev.c (flag_branch_on_count_reg): Likewise. + * toplev.c: Fix typos. -Mon Feb 8 11:34:44 1999 Graham + * real.c (c4xtoe): Remove unused variables. Add some missing parens. + (toc4x): Similarly. - * collect2.c (xrealloc): Fix typo in last change. +Thu Oct 8 01:25:22 1998 Richard Henderson -Mon Feb 8 09:13:38 1999 Jeff Law (law@cygnus.com) + * flow.c (find_basic_blocks): Calc upper bound for extra nops in + max_uids_for_flow. + (find_basic_blocks_1): Add a nop to the end of a basic block when + a trailing call insn does not have abnormal control flow. + * gcse.c (pre_transpout): New variable. + (alloc_pre_mem, free_pre_mem, dump_pre_data): Bookkeeping for it. + (compute_pre_transpout): Calculate it. + (compute_pre_ppinout): Use it to eliminate impossible placements + due to abnormal control flow through calls. + (compute_pre_data): Call compute_pre_transpout. - * version.c: Bump for snapshot. +Wed Oct 7 21:40:24 1998 David S. Miller -Sun Feb 7 22:18:42 1999 Robert Lipe + * config/sparc/sol2-sld-64.h (ASM_CPU_SPEC): Fix typo. - * tree.h (TYPE_CHECK): Make it clear to the preprocessor - that we do not want macro replacement within a character constant. - (TYPE_CHECK1): Likewise. +Wed Oct 7 21:19:46 1998 Ken Raeburn -Sun Feb 7 15:37:10 1999 Jason Merrill + * config/mips/mips.md (tablejump_internal3, tablejump_internal4 + and matching define_insns): Tack on a `use' of the table label, so + flow analysis will recognize a tablejump. - * tree.h (DECL_P): New macro. +Wed Oct 7 17:33:39 1998 Richard Henderson -Sun Feb 7 01:15:04 1999 Jeff Law (law@cygnus.com) + * gcse.c (pre_insert_insn): Tweek to notice that calls do not + always end basic blocks for abnormal edge reasons. - * version.c: Bump for snapshot. +Wed Oct 7 14:40:43 1998 Nick Clifton -Sat Feb 6 18:14:46 1999 Jeffrey A Law (law@cygnus.com) + * config/i386/i386.h: Remove definition of + HANDLE_PRAGMA_PACK_PUSH_POP. - * mn10300.md (reload_insi): Do not earlyclobber the output operand. + * config/i386/go32.h: Add definition of + HANDLE_PRAGMA_PACK_PUSH_POP. - * README.g77, gcc.c, gcc.texi: Update email addresses. - * invoke.texi system.h: Likewise. + * config/i386/win32.h: Add definition of + HANDLE_PRAGMA_PACK_PUSH_POP. -Sat Feb 6 11:04:08 1999 Jim Wilson + * config/i386/cygwin32.h: Add definition of + HANDLE_PRAGMA_PACK_PUSH_POP. - * unroll.c (find_splittable_givs): After express_from, call replace_rtx - to convert dest_reg to new_reg. + * c-pragma.c (insert_pack_attributes): Do not insert + attributes unless #pragma pack(push,) is in effect. -Sat Feb 6 10:31:35 1999 Jeffrey A Law (law@cygnus.com) +Wed Oct 7 12:10:46 1998 Jim Wilson - * reload1.c (reload_combine_note_store): Be more careful with - STRICT_LOW_PART, ZERO_EXTRACT and SIGN_EXTRACT. - (move2add_note_store): Likewise. + * expr.c (emit_group_store): Handle a PARALLEL destination. -Sat Feb 6 10:18:01 1999 Kaveh R. Ghazi +Wed Oct 7 10:07:29 1998 Richard Henderson - * cppfiles.c (read_and_prescan): Cast the result of `xrealloc' to - U_CHAR* when assigning to one. Ensure the values of a ?: operator - have the same type. + * gcse.c (pre_insert_insn): When a call ends a bb, insert + the new insns before the argument regs are loaded. - * cppinit.c (initialize_char_syntax): Use K&R function definition. +Wed Oct 7 12:55:26 1998 Kaveh R. Ghazi -Sat Feb 6 11:17:03 1999 Richard Earnshaw + * Makefile.in (c-gperf.h): Add -L KR-C -F ', 0, 0' flags to gperf. + (c-parse.gperf): Update comments describing invocation flags. + (c-gperf.h): Regenerate using gperf 2.7.1 (19981006 egcs). - Support for ARM9 - * config/arm/arm.c (all_procs): Add arm9 and arm9tdmi. - * config/arm/arm.h ((TARGET_CPU_arm9, TARGET_CPUD_arm9tdmi): Define. - (TARGET_CPU_DEFAULT): Rework to support ARM9. - (CPP_CPU_ARCH_SPEC): Likewise. - (enum processor_type): Likewise. - * config/arm/arm.md (attr cpu): Add arm9. +1998-10-07 Manfred Hollstein - General scheduling changes - * config/arm/arm.c (MAX_INSNS_SKIPPED): Delete. - (max_insns_skipped): New variable. - (arm_override_options): If generating hard floating point code for - the FPA, emit code for version 3. - When optimizing for space, don't synthesize constants. - Reword several flags based on the requested processor and optimization - level. - (use_return_insn): New argument iscond, all callers changed. Don't - use a return insn if it will be conditional and that would be - expensive; eg on StrongARM. - (arm_adjust_cost): Anti- and output- dependencies normally have no - cost. - (load_multiple_sequence): Newer ARMs don't benefit from ldm if - the sequence is short. - (final_prescan_insn): Use max_insns_skipped instead of - MAX_INSNS_SKIPPED. Note whether we will make a return instruction - conditional, and aviod this if it would be expensive. - * config/arm/arm.md (scheduling attributes and function units): - Rewrite to better describe ARM8, 9 and StrongARM. + * reload1.c (reload): Call free before clobbering the memory + locations or constants pointers. - * config/arm/arm.md (*movhi_insn_littleend): Make op0 predicate - s_register_operand. - (*ifcompare_plus_move): Use arm_rhs_operand in place of - arm_rhsm_operand. Rework constraints. - (*if_plus_move): Likewise. - (*ifcompare_move_plus): Likewise. - (*if_move_plus): Likewise. - (*ifcompre_arith_move): Likewise. - (*if_arith_move): Likewise. - (*ifcompare_move_arith): Likewise. - (*if_move_arith): Likewise. +Wed Oct 7 02:05:20 1998 David S. Miller - * config/arm/xm-netbsd.h: Don't include arm/xm-arm.h. + * config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Rework + for efficiency by checking whether we need to modify the current + stack permission at all. + (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Define. + * config/sparc/sparc.c (sparc_initialize_trampoline): Emit + __enable_execute_stack libcall here too if + TRANSFER_FROM_TRAMPOLINE is defined. + * config/sparc/sparc.h: Set TARGET_ARCH32 to a constant if + IN_LIBGCC2. -1999-02-05 Michael Meissner +Wed Oct 7 02:27:52 1998 Jeffrey A Law (law@cygnus.com) - * loop.c (check_dbra_loop): A store using an address giv for which - we have no life information is not reversible. + * Makefile.in (DRIVER_DEFINES): Remove last change. -Fri Feb 5 17:08:01 1999 Dave Brolley +Wed Oct 7 01:08:43 1998 Bernd Schmidt - * function.c (fixup_var_refs): Scan catch_clauses too. + * jump.c (duplicate_loop_exit_test): Strip REG_WAS_0 notes off all + insns we're going to copy. + * regclass.c (reg_scan_mark_refs): Don't test X for NULL_RTX. -Fri Feb 5 11:49:49 1999 Benjamin Kosnik + * loop.c (count_one_set): Add prototype. - * c-common.c (decl_attributes): Fix reserved space for init_priority. - * tree.h (MAX_RESERVED_INIT_PRIORITY): New macro. + * caller-save.c (restore_referenced_regs): Lose mode argument. + (insert_save): Lose mode argument. + (insert_restore): Lose mode argument. + (insert_one_insn): Lose mode argument. + (save_call_clobbered_regs): Lose mode argument. + (setup_save_areas): Take no argument and return void. All callers + changed. + Don't verify validity of memory addresses. + * reload.h (setup_save_ares): Adjust prototype. + (save_call_clobbered_regs): Likewise. + * reload1.c (delete_caller_save_insns): New function. + (caller_save_spill_class): Delete variable. + (caller_save_group_size): Delete variable. + (reload): Call setup_save_areas and save_call_clobbered_regs + in the main loop, before calling calculate_needs_all_insns. + Don't call save_call_clobbered_regs after the loop. + Call delete_caller_save_insns at the end of an iteration if + something changed. + Delete code to manage caller_save_spill_class. + Emit the final note before setting reload_first_uid. + Simplify test that determines whether reload_as_needed gets run. + (calculate_needs): Delete code to manage caller_save_spill_class. -Fri Feb 5 12:37:05 1999 Jeffrey A Law (law@cygnus.com) +Tue Oct 6 15:42:27 1998 Richard Henderson - * loop.c (strength_reduce): Clear not_every_iteration when - passing the NOTE_INSN_LOOP_CONT note. + * collect2.c (main): Initialize ld_file_name. - * haifa-sched.c (add_dependence): Do not add a dependency on a - note. +Tue Oct 6 15:45:15 1998 Catherine Moore -Fri Feb 5 10:55:43 1999 Nick Clifton + * config/sparc/sysv4.h (ASM_OUTPUT_SECTION_NAME): Don't + check for flag_function_sections. - * recog.c (split_block_insns): Only call update_flow_info if - instruction scheduling is enabled. +Tue Oct 6 20:02:31 1998 J"orn Rennecke -1999-02-05 Zack Weinberg + * cse.c (insert_regs): Fix bug in Sep 24 change. - * Makefile.in (gen-protos): Use libcpp.a like everyone else. +Tue Oct 6 17:00:42 1998 J"orn Rennecke -Fri Feb 5 07:09:29 1999 J"orn Rennecke + * flags.h (flag_dump_unnumbered): Declare. + * toplev.c (flag_dump_unnumbered): Don't declare. + * print-rtl.c (flags.h): Include. + (print_rtl_single): Add return value. + * rtl.h (print_rtl_single): Update declaration. + * flow.c (flag_dump_unnumbered): Don't declare. + (print_rtl_with_bb): Use return value of print_rtl_single. - * loop.c (first_loop_store_insn): New file-scope variable. - (prescan_loop): Set it. - (check_dbra_loop): Check if a store depends on a register - that is set after the store. +Tue Oct 6 01:36:00 1998 Bernd Schmidt -Fri Feb 5 06:55:15 1999 J"orn Rennecke + * loop.c (count_one_set): New static function, broken out of + count_loop_regs_set. + (count_loop_regs_set): Call it. + * global.c (mark_reg_store): Handle clobbers here by not calling + set_preference. + (mark_reg_clobber): Just call mark_reg_store after ensuring SETTER + is in fact a clobber. + * integrate.c (process_reg_param): New function, broken out of + expand_inline_function. + (expand_inline_function): Call it. - * unroll.c (entire file): Remove tabs / spaces at end of lines. - Replace spaces with tabs where appropriate. + * i386.md (addsidi3_1): Delete unused variable temp. + (addsidi3_2): Likewise. + (clstrstrsi): Delete unused variable addr1. -Thu Feb 4 15:12:41 1999 J"orn Rennecke - - * loop.c (scan_loop): New argument loop_cont. Changed caller. - (strength_reduce): New argument loop_cont. Changed caller. - Before clearing not_every_iteration after a label, check if - we are not already past LOOP_CONT. - -1999-02-04 Zack Weinberg - - * cpperror.c (cpp_print_containing_files): Fix formatting - bug induced by merge. - -1999-02-04 Zack Weinberg - - * cpplib.c (initialize_char_syntax): Move to cppinit.c. - (cpp_define): Remove redundant syntax checks. - (make_assertion): Rename cpp_assert, remove redundant syntax - checks, export. - (cpp_options_init): Don't init things to zero twice. - (cpp_expand_to_buffer): Use memcpy, not a char-by-char loop. - (do_include): Kill excessively verbose #import warning that - snuck back in in the gcc2 merge. - (convert_string): Removed. - (do_line): Rewrite with simple last-name-used cache instead of - private hashtable. - (cpp_start_read): Call initialize_char_syntax here, not... - (cpp_reader_init): ...here. - (cpp_handle_options): Support the -std switch. - * cpplib.h (cpp_buffer): Add last_nominal_fname member. - (cpp_options): Add c9x flag. - Declare all the is_* tables and trigraph table here, as const. - Prototype cpp_assert and initialize_char_syntax. - * cppinit.c: New file. - * cppfiles.c (read_and_prescan): Optimize. - * Makefile.in (LIBCPP_OBJS): Add cppinit.o. + * rtl.h: Don't declare any functions also declared in recog.h. -Thu Feb 4 10:46:30 1999 Gavin Romig-Koch + * Makefile.in (stupid.o): Update dependencies. + (global.o): Likewise. - * config/mips/mips.md ([u]divmodsi4,[u]divmoddi4,[u]divsi3,[u]divdi3, - [u]modsi3,[u]moddi3) : Don't copy the "zero" argument to a register - before calling gen_div_trap. + * global.c: Include reload.h. + (reg_becomes_live): New function. + (reg_dies): New function. + (build_insn_chain): New function. + (global_alloc): Call build_insn_chain before calling reload. -Wed Feb 3 21:56:27 1999 Jeffrey A Law (law@cygnus.com) + * reload.h (struct needs): New structure definition. + (struct insn_chain): Likewise. + (reload_insn_chain): Declare variable. + (new_insn_chain): Declare function. - * configure.in (hppa1.1-*-*, hppa2*-*): Use symbolic value rather - than numeric value for target_cpu_default.. - * configure: Rebuilt. + * reload1.c (reload_startobj): New variable. + (reload_insn_chain): New variable. + (unused_insn_chains): New variable. + (new_insn_chain): New function. + (init_reload): Initialize reload_startobj, not reload_firstobj. + (reload): Initialize reload_firstobj. + Before returning, free everything on the reload_obstack. -Wed Feb 3 21:55:56 1999 Marc Espie + * stupid.c: Include insn-config.h, reload.h and basic-block.h. + (reg_where_dead_chain, reg_where_born_exact, reg_where_born_clobber, + current_chain): New variables. + (reg_where_born): Delete variable. + (REG_WHERE_BORN): New macro. + (find_clobbered_regs): New function. + (stupid_life_analysis): Don't allocate/free reg_where_born. + Allocate and free reg_where_born_exact, reg_where_born_clobber, + reg_where_dead_chain. + Use REG_WHERE_BORN instead of reg_where_born. + While processing the insns, build the reload_insn_chain with + information about register lifetimes. + (stupid_reg_compare): Use REG_WHERE_BORN instead of reg_where_born. + (stupid_mark_refs): Replace arg INSN with arg CHAIN. All callers + changed. + Compute and information about birth and death of pseudo registers in + reg_where_dead_chain, reg_where_born_exact and reg_where_born_clobber. + Delete code to set elements of reg_where_born. - * Makefile.in (xgcc$(exeext)): Remove choose-temp, pexecute and - mkstemp. Get them from libiberty. - (COLLECT2_OBJS): Similarly for choose-temp, cplus-dem and mkstemp. - (PROTO_OBJS): Similarly for choose-temp, getopt, getopt1 and pexecute. - (cplus-dem.o, pexecute.o, choose-temp.o): Remove build rules. - (mkstemp.o, getopt1.o, getopt.o): Likewise. - - * pa-gas.h (TARGET_DEFAULT): Use symbolic values rather than numeric - values. - * pa-hpux.h (LINK_SPEC): Likewise. - * pa-hpux10.h (LINK_SPEC): Likewise. - * pa-hpux9.h (LINK_SPEC): Likewise. - * pa-osf.h (LINK_SPEC): Likewise. - * pa-pro.h (TARGET_DEFAULT): Likewise. - * pa1.h (TARGET_DEFAULT): Likewise. - * pa.h (MASK_*): New defines. - (TARGET_*): Use symbolic values rather than numeric values. - (TARGET_SWITCHES): Likewise. - (TARGET_DEFAULT): Likewise. - (CPP_SPEC): Likewise. +Mon Oct 5 22:34:30 1998 Alexandre Petit-Bianco -Wed Feb 3 21:07:38 1999 Bernd Schmidt + * tree.def (GOTO_EXPR): Modified documentation. + * expr.c (expand_expr): Expand GOTO_EXPR into a goto or a computed + goto. - * reload1.c (reload_cse_regs_1): Undo Jan 16 patch. - * reload.c (find_reusable_reload): New function, broken out of - push_reload. Add code to verify that none of the involved - outputs are subject to earlyclobbers. - (push_reload): Break out new function find_reusable_reload. - Delete "register" keyword for IN, OUT args. +Mon Oct 5 22:43:36 1998 David Edelsohn -Wed Feb 3 15:51:04 1999 Gavin Romig-Koch + * unroll.c (loop_iteration_var, loop_initial_value, loop_increment + loop_final_value, loop_comparison_code): No longer static. + (unroll_loop): Delete loop_start_value update. + * loop.h (loop_iteration_var, loop_initial_value, loop_increment, + loop_final_value, loop_comparison_code): Extern. + (loop_start_value): Delete extern. + * loop.c (loop_can_insert_bct, loop_increment, loop_start_value, + loop_comparison_value, loop_comparison_code): Delete. + (loop_optimize): Remove initialization for deleted variables. + (strength_reduce): Delete analyze_loop_iterations call. Only call + insert_bct if flag_branch_count_on_reg set. + (analyze_loop_iterations): Delete. + (insert_bct): Remove iteration count calculation. Move checks for + viable BCT optimization to here. Obtain iteration count from + loop_iterations and correct for unrolling. Check for enough + iteration to be beneficial. Comment out runtime iteration count + case. + (insert_bct): Print iteration count in dump file. Remove + loop_var_mode and use word_mode directly. - * config/mips/mips.c (true_reg_or_0_operand) : New function. - * config/mips/mips.h (PREDICATE_CODES): Add true_reg_or_0_operand. - * config/mips/mips.md (div_trap,div_trap_normal,div_trap_mips16): - Use true_reg_or_0_operand for div_trap. + * rs6000.h (processor_type): Add PROCESSOR_PPC604e. + * rs6000.c (rs6000_override_options): Use it. + (optimization_options): Enable use of flag_branch_on_count_reg. + * rs6000.md (define_function_unit): Describe 604e. -Wed Feb 3 20:44:59 1999 J"orn Rennecke +1998-10-05 Herman A.J. ten Brugge - * loop.h (express_from): Declare. - (struct induction): Replace derived flag with derived_from pointer. - * loop.c (strength_reduce, record_giv, recombine_givs): Likewise. - (express_from): No longer static. - * unroll.c (find_splittable_givs): Replace derived with derived_from. - When processing an address giv with which another giv has been - combined that has also been derived from a third giv, handle like - having combined with the third giv. - Set splittable_regs_updates appropriately for derived givs. + * loop.c (move_movables): Corrected threshold calculation for + moved_once registers. -Wed Feb 3 15:26:58 1999 Gavin Romig-Koch +Mon Oct 5 21:18:45 1998 Bernd Schmidt - * config/mips/mips.md (div_trap_mips16): Remove nop's after branches. + * loop.c (combine_givs_p): Fix test for identical givs. -Wed Feb 3 11:56:23 1999 Jeffrey A Law (law@cygnus.com) +Mon Oct 5 10:11:28 1998 Nick Clifton - * pa.c (insn_sets_and_refs_are_delayed): New function. - * pa.h (INSN_SETS_ARE_DELAYED): Use it. - (INSN_REFERENCES_ARE_DELAYED): Likewise. + * dwarf2out.c (gen_subprogram_die): If errorcount nonzero, don't + call abort if the function is already defined. -Wed Feb 3 06:24:49 1999 Richard Earnshaw (rearnsha@arm.com) +Mon Oct 5 10:02:36 1998 Jeffrey A Law (law@cygnus.com) - * config/arm/t-arm-elf (LIBGCC2_CFLAGS): Delete. - * config/arm/t-linux (LIBGCC2_CFLAGS): Delete. - (TARGET_LIBGCC2_CFLAGS): Define. - (LIBGCC2_DEBUG_CFLAGS): Define. - * config/arm/t-netbsd: Likewise. - * config/arm/t-semi: Likewise. - * config/arm/t-semiaof: Likewise. - * config/arm/t-riscix: Likewise. + * combine.c (simplify_rtx): Do not replace TRUNCATE with a SUBREG if + truncation is not a no-op. -Wed Feb 3 10:59:07 1999 Andreas Schwab +Mon Oct 5 09:02:04 1998 Jeff Law (law@cygnus.com) - * config/m68k/m68k.c (print_operand_address): When printing a - SYMBOL_REF that ends in `.' put parentheses around it. + * version.c: Bump for snapshot. -Tue Feb 2 23:38:35 1999 David O'Brien +Mon Oct 5 08:19:55 1998 Jeff Law (law@cygnus.com) - * i386/freebsd*.h now allows '$' in label names and does not use the - PCC struct return method. + * version.c: Bump for snapshot. -Tue Feb 2 22:38:23 1999 Jim Wilson +Mon Oct 5 01:07:23 1998 Torbjorn Granlund - * Makefile.in: Change all uses of AR to AR_FOR_TARGET. Change all uses - of HOST_AR to AR. Likewise for AR_FLAGS, RANLIB, and RANLIB_TEST. - (RANLIB_TEST): Test to see if ranlib exists. Only test absolute file - names if host == target. - (HOST_AR, HOST_AR_FLAGS, HOST_RANLIB, HOST_RANLIB_TEST): Delete. - (AR_FLAGS_FOR_TARGET): Renamed from AR_FOR_TARGET_FLAGS. - (AR, AR_FLAGS, OLDAR, OLDAR_FLAGS, RANLIB, RANLIB_TEST): Delete rules - setting them to *_FOR_TARGET. - * cross-make (AR, AR_FLAGS, OLDAR, OLDAR_FLAGS, RANLIB, RANLIB_TEST): - Delete. + * expmed.c (expand_divmod): Don't widen for computing remainder + if we seem to have a divmod pattern for needed mode. -Tue Feb 2 22:38:19 1999 Theodore Papadopoulo +Mon Oct 5 01:01:42 1998 Zack Weinberg - * toplev.h (read_integral_parameter): Declare. - * toplev.c (read_integral_parameter): New function. + * cpplib.c (macroexpand): Correct off-by-one error in handling + of escapes. -Fri Jan 29 21:00:56 1999 Bob Manson +Sun Oct 4 23:58:30 1998 Richard Henderson - * resource.c, resource.h: New files. - * Makefile.in (OBJS): Add it. + * combine.c (expand_field_assignment): Don't do bitwise operations + on MODE_FLOAT; pun to MODE_INT if possible. - * haifa-sched.c (regno_use_in): Moved to rtlanal.c. - (split_block_insns): Moved to recog.c. - (update_flow_info): Make public. - * rtl.h: Declare them. +Sun Oct 4 18:33:24 1998 Jason Merrill + scott snyder - * reorg.c: Moved the functions dealing with computing resource - usage to resource.c. + * tlink.c (scan_linker_output): Recognize errors from irix 6.2 + linker. Recognize mangled names in quotes. - * sched.c (regno_use_in): Moved to rtlanal.c. - (update_flow_info): Make public. - (schedule_insns): Use split_block_insns. +Sun Oct 4 02:58:20 1998 Jakub Jelinek - * recog.c (split_block_insns): New function. + * config/sparc/sparc.md (ashldi3+1): Name it ashldi3_sp64. + (ashlsi3_const1, ashldi3_const1): New combiner patterns. + (ashrsi3_extend, ashrsi3_extend2): New combiner patterns. + (lshrsi3_extend, lshrsi3_extend2): Likewise. -Tue Feb 2 22:03:26 1999 David Edelsohn +Sun Oct 4 00:23:00 1998 David S. Miller - * rs6000/linux.h (LINK_START_DEFAULT_SPEC): Delete, unused. - (LINK_OS_DEFAULT_SPEC): Delete, unused. + * function.c (purge_addressof_1): If trying to take a sub-word + integral piece of a floating point mode, put it on the stack. -Tue Feb 2 20:29:34 1999 Catherine Moore +Sat Oct 3 19:01:03 1998 Richard Henderson - * configure.in (arm-*-oabi): Support. - * configure: Regenerate. - * config/arm/unknown-elf-oabi.h: New file. + * alpha/linux.h (CPP_PREDEFINES): Define __alpha__ for imake. -Tue Feb 2 19:43:59 1999 Jeffrey A Law (law@cygnus.com) +Sat Oct 3 14:42:19 1998 Jason Merrill - * i386.md (ashlsi3): Turn into a define_expand an anonymous pattern. - Make the anonymous pattern match when ! optimize_size. - (ashlsi3 size optimizer): New pattern. + * PROJECTS: Remove template friends. - * intl/Makefile.in (uninstall): Add missing "; \". + * collect2.c (sort_ids): Remove unused variable. -Tue Feb 2 18:21:23 1999 Stan Cox + * tm.texi (MATH_LIBRARY): Document. + (NEED_MATH_LIBRARY): Remove. - * sparc.h (TARGET_CPU_sparc86x): Added. TARGET_CPU_sparclite86x - synonym. + * varasm.c (assemble_start_function, assemble_variable, weak_finish, + assemble_alias): Do ASM_GLOBALIZE_LABEL for weak symbols, too. -Tue Feb 2 20:24:11 1999 J"orn Rennecke +Sat Oct 3 16:14:44 1998 John Carr - * loop.c (loop_optimize): Fix value max_uid_for_loop is reset - to after find_and_verify_loops call. + * dwarf2out.c (expand_builtin_dwarf_reg_size): Initialize + last_end to 0x7fffffff. -Tue Feb 2 19:48:29 1999 J"orn Rennecke +Fri Oct 2 19:14:20 1998 David S. Miller - * (recombine_givs): Don't use a giv that's likely to be dead to - derive others. + * function.c (purge_addressof_1): Do not perform endianness + corrections on bitpos, who we call will do it for us. - * loop.c (recombine_givs): Fix test for lifetime overlaps / loop - wrap around when deriving givs. +Fri Oct 2 11:52:35 1998 Jeffrey A Law (law@cygnus.com) -Mon Feb 1 20:00:40 1999 Richard Henderson + * h8300.c (WORD_REG_USED): Fix typo. + (initial_offset): Use WORD_REG_USED. - * recog.c (check_asm_operands): Treat indeterminate operand ok - results as success. Try harder to resolve a matching constraint. - * stmt.c (expand_asm_operands): Recognize when an output operand's - constraint does not allow memory. Treat indeterminate operand ok - results as failure. Try harder to resolve a matching constraint. + * h8300.c (handle_pragma): Fix typo. -Mon Feb 1 15:00:02 1999 Ken Raeburn +Fri Oct 2 10:51:35 1998 Bernd Schmidt - Use varrays for constant-equivalence data: + * caller-save.c (insert_save_restore): Break this function up + into new functions insert_restore, insert_save and insert_one_insn. + All callers changed. + (insert_restore): New function, mostly broken out of + insert_save_restore. + (insert_save): Likewise. + (insert_one_insn): Likewise. + (restore_referenced_regs): New argument BLOCK. All callers changed. + (save_call_clobbered_regs): Don't keep track of basic block boundaries + in this function, do it in insert_one_insn instead. - * varray.h (struct const_equiv_data): New type. - (union varray_data_tag): New element const_equiv. - (VARRAY_CONST_EQUIV_INIT, VARRAY_CONST_EQUIV): New macros. - (VARRAY_SIZE): New macro, returns number of elements. - * integrate.h: Include varray.h. - (struct inline_remap): Replace const_equiv_map, const_age_map and - const_equiv_map_size with a const_equiv_varray element. - (MAYBE_EXTEND_CONST_EQUIV_VARRAY): New macro; grows varray if - needed. - (SET_CONST_EQUIV_DATA): New macro; sets rtx and age fields - simultaneously, growing the varray if needed. + * reload1.c (reload): Break out some more pieces into separate + functions. + (dump_needs): New function, broken out of reload. + (set_initial_elim_offsets): Likewise. + (init_elim_table): Likewise. + (update_eliminables): Likewise. - * integrate.c (global_const_equiv_map, - global_const_equiv_map_size): Deleted, replaced by.... - (global_const_equiv_varray): New variable. - (expand_inline_function): References changed. - * integrate.h: Update declarations. + * global.c (global_alloc): Delete code to manage the scratch_list. + * local-alloc.c (qty_scratch_rtx): Delete. + (scratch_block): Delete. + (scratch_list): Delete. + (scratch_list_length): Delete. + (scratch_index): Delete. + (alloc_qty_for_scratch): Delete. + (local-alloc): Update initialization of max_qty. + Delete code to manage the scratch list. + Delete code to allocate/initialize qty_scratch_rtx. + (block_alloc): Don't allocate quantities for scratches. + Delete code to manage the scratch list. + * regs.h (scratch_list): Delete declaration. + (scratch_block): Delete declaration. + (scratch_list_length): Delete declaration. + * reload1.c (reload): Delete code to manage the scratch list. + (spill_hard_reg): Likewise. + (mark_scratch_live): Delete. - * integrate.c (process_reg_parm, expand_inline_function, - copy_rtx_and_substitute, try_constants, subst_constants, - mark_stores): Use varray allocation and accessor macros, new - integrate.h macros, and global_const_equiv_varray. Don't - conditionalize non-NULL stores on array size; instead, expand the - array as needed. - * unroll.c (unroll_loop): Likewise. + * recog.c (alter_subreg): Delete declaration. - * unroll.c (unroll_loop): Initialize const_equiv_varray element to - zero. After allocating varray, always exit through bottom of - function, where it can be deallocated if needed. Don't explicitly - reallocate const_equiv_map storage; instead, just ensure the - varray has been initialized, and update the global reference. +1998-10-02 Andreas Jaeger -Mon Feb 1 09:40:25 1999 Kaveh R. Ghazi + * Makefile.in (cccp.o): Fix typo in last patch. - * system.h (inline, const): Handle these for stage2 (and later) gcc. +Fri Oct 2 16:13:12 1998 J"orn Rennecke - * dwarf2out.c (inline): Don't define. + * t-sh (LIB1ASMFUNCS): Add _set_fpscr . + * config/sh/lib1funcs.asm (___set_fpscr): Add. - * dwarfout.c (inline): Likewise. +Fri Oct 2 02:01:59 1998 Jeffrey A Law (law@cygnus.com) -Sun Jan 31 22:04:37 1999 Richard Henderson + * regclass.c (reg_scan_mark_refs): Return immediately if passed a + NULL_RTX as an argument. - * loop.c (recombine_givs): Dump recombination and derivation data. + * Makefile.in (unlibsubdir): Define. + (DRIVER_DEFINES): Use unlibsubdir. + (cccp.o, cpplib.o, protoize.o, unprotoize.o): Similarly. + (stmp-fixinc): Similarly. -Sun Jan 31 20:34:29 1999 Zack Weinberg +Thu Oct 1 19:58:30 1998 Bernd Schmidt - * flags.h: Declare flag_no_ident. - * toplev.c: Define flag_no_ident. Process -f(no-)ident here. - * c-tree.h: Don't declare flag_no_ident. - * c-decl.c: Don't define flag_no_ident. Don't process - -f(no-)ident switches here. + * regmove.c (regmove_optimize): Add variable old_max_uid. + At the end of the function, update basic_block_end. - * config/elfos.h (ASM_FILE_END): Output final .ident directive - only if !flag_no_ident. - * config/ptx4.h: Likewise. - * config/svr4.h: Likewise. - * config/alpha/elf.h: Likewise. - * config/arm/linux-elf.h: Likewise. - * config/i386/sco5.h: Likewise. - * config/i860/fx2800.h: Likewise. - * config/mips/gnu.h: Likewise. - * config/i386/osfrose.h: Likewise. +Thu Oct 1 17:58:25 1998 David S. Miller - * gcc.c (C specs): Map -Qn to -fno-ident. - * objc/lang-specs.h: Likewise. + * dwarf2out.c (expand_builtin_dwarf_reg_size): Use + FIRST_PSEUDO_REGISTER as upper bound for last_end, not an + arbitrary constant. -Mon Feb 1 10:52:07 1999 Michael Hayes +Thu Oct 1 17:57:14 1998 Nick Clifton - * configure.in: Don't remove loop.o and unroll.o when - enable-haifa is selected. - * configure: Rebuilt. + * config/arm/arm.c: Improve interworking support. -Sun Jan 31 13:22:02 1999 John Wehle (john@feith.com) +Thu Oct 1 18:43:35 1998 J"orn Rennecke - * i386.md (movsicc, movhicc, movsfcc, movdfcc, - movxfcc, movdicc): Delete unconstrained alternatives. - * i386.c (output_fp_conditional_move, - output_int_conditional_move): Delete unused case. + * reload1.c (choose_reload_regs): Fix test if reload_reg_rtx[r] was + copied from reload_out[r] . -Sun Jan 31 01:15:04 1999 Jeff Law (law@cygnus.com) +Thu Oct 1 19:20:09 1998 John Carr - * version.c: Bump for snapshot. + * dwarf2out.c (expand_builtin_dwarf_reg_size): Fix to work + with more than three size ranges. -Sun Jan 31 00:52:37 1999 Richard Henderson + * flow.c (sbitmap_copy): Use bcopy to copy bitmap. - * alpha.md (mov patterns): Emit the assembler aliases mov and fmov - instead of bis and cpys. Combine alternatives where possible. + * rtl.c (mode_name): Add a null string at the end of the array. + (mode_wider_mode): Change type to unsigned char. + (mode_mask_array): New variable. + (init_rtl): Update for mode_wider_mode type change. -Sat Jan 30 23:14:13 1999 Kaveh R. Ghazi + * rtl.h (mode_wider_mode): Change type to unsigned char. + (mode_mask_array): Declare. + (GET_MODE_MASK): Use mode_mask_array. - * gcov.c (fnotice): Add missing FILE* parameter. - (function_summary): Fix format specifiers in calls to `fnotice'. - (output_data): Likewise. +Thu Oct 1 15:56:01 1998 Gavin Romig-Koch - * toplev.c (fnotice): Constify char* parameter. + * calls.c (expand_call) : Encapsulate code into + copy_blkmode_from_reg. + * expr.c (copy_blkmode_from_reg): New function. + * expr.h (copy_blkmode_from_reg): New function. + * integrate.c (function_cannot_inline_p): We can inline + these now. + (expand_inline_function): Use copy_blkmode_from_reg + if needed. Avoid creating BLKmode REGs. + (copy_rtx_and_substitute): Don't try to SUBREG a BLKmode + object. - * toplev.h (fnotice): Add prototype. - Wrap prototype with BUFSIZ to protect FILE* usage. +Thu Oct 1 10:42:27 1998 Nick Clifton -Sun Jan 31 15:33:09 1999 Michael Hayes + * config/v850/v850.c: Add function prototypes. + Add support for v850 special data areas. - * config/c4x/c4x.h (RTX_COSTS): Explicitly define c4x costs. + * config/v850/v850.h: Add support for v850 special data areas. -Sat Jan 30 08:27:23 1999 Jeffrey A Law (law@cygnus.com) + * c-pragma.c: Add support for HANDLE_PRAGMA_PACK and + HANDLE_PRAGMA_PACK_PUSH_POP. + (push_alignment): New function: Cache an alignment requested + by a #pragma pack(push,). + (pop_alignment): New function: Pop an alignment from the + alignment stack. + (insert_pack_attributes): New function: Generate __packed__ + and __aligned__ attributes for new decls whilst a #pragma pack + is in effect. + (add_weak): New function: Cache a #pragma weak directive. + (handle_pragma_token): Document calling conventions. Add + support for #pragma pack(push,) and #pragma pack (pop). - * combine.c (distribute_notes): Handle REG_EH_REGION notes. + * c-pragma.h: If HANDLE_SYSV_PRAGMA or HANDLE_PRAGMA_PACK_PUSH_POP + are defined enable HANDLE_PRAGMA_PACK. + Move 'struct weak_syms' here (from varasm.c). + Add pragma states for push and pop pragmas. - * alias.c (fixed_scalar_and_varying_struct_p): Add "static" to - function definition. - (aliases_everything_p, write_dependence_p):Likewise. + * c-common.c (decl_attributes): Call PRAGMA_INSERT_ATTRIBUTES + if it is defined. - * install.texi: Fix merge lossages. + * c-lex.c: Replace occurrences of HANDLE_SYSV_PRAGMA with + HANDLE_GENERIC_PRAGMAS. - * cccp.c (main): Only call setlocale (LC_MESSAGES, ...) if LC_MESSAGES - is defined. - * collect2.c (main): Likewise. - * cppmain.c (main): Likewise. - * gcc.c (main): Likewise. - * gcov.c (main): Likewise. - * protoize.c (main): Likewise. - * toplev.c (main): Likewise. + * varasm.c: Move definition of 'struct weak_syms' into + c-pragma.h. + (handle_pragma_weak): Deleted. - * pa.md (parallel shift and shiftadd): Mark output of shift as an - earlyclobber. + * config/i386/i386.h: Define HANDLE_PRAGMA_PACK_PUSH_POP. - * loop.c: Disable recent loop changes. Temporary as Joern - continues to fix problems. + * config/winnt/win-nt.h: Define HANDLE_PRAGMA_PACK_PUSH_POP. -Sat Jan 30 03:24:37 1999 J"orn Rennecke + * c-decl.c (start_function): Add invocation of + SET_DEFAULT_DECL_ATTRIBUTES, if defined. - * loop.c (strength_reduce): Size reg_map according to reg_iv_type. + * tm.texi: Remove description of non-existent macro + SET_DEFAULT_SECTION_NAME. -Fri Jan 29 18:26:07 1999 Dave Brolley - - * emit-rtl.c (remove_insn): New function. - * rtl.h (remove_insn): Add prototype. - * function.c (reposition_prologue_and_epilogue_notes): Call remove_insn. - -Fri Jan 29 22:34:41 1999 J"orn Rennecke + (HANDLE_SYSV_PRAGMA): Document. + (HANDLE_PRAGMA_PACK_PUSH_POP): Document. - * loop.c (recombine_givs): Don't try to derive givs that have combined. +Wed Sep 30 22:27:53 1998 Robert Lipe -Fri Jan 29 15:00:39 1999 Kaveh R. Ghazi + * config.sub: Recognize i[34567]86-pc-udk as new target. + * configure.in: Likewise. + * config/i386/t-udk: New file. + * config/i386/udk.h: New file. - * toplev.c (notice, fnotice): Check ANSI_PROTOTYPES, not __STDC__, - when declaring arguments and calling va_arg() to initialize them. +Wed Sep 30 19:33:07 1998 Jeffrey A Law (law@cygnus.com) - * collect2.c (notice): Likewise. + * reorg.c (check_annul_list_true_false): Remove unused variables. + (steal_delay_list_from_target): Add missing "used_annul" variable. + (try_merge_delay_insns): Close out half formed comment. - * loop.c (find_life_end): Use PROTO() macro in the prototype. +Wed Sep 30 19:13:20 1998 Zack Weinberg -Fri Jan 29 14:36:11 1999 Kaveh R. Ghazi + * cpplib.c (macroexpand): If arg->raw_before or + arg->raw_after, remove any no-reexpansion escape at the + beginning of the pasted token. Correct handling of whitespace + markers and no-reexpand markers at the end if arg->raw_after. - * collect2.c (error): Fix typo in declaration. + * toplev.c (documented_lang_options): Recognize -include, + -imacros, -iwithprefix, -iwithprefixbefore. + * cpplib.c (cpp_start_read): Process -imacros and -include + switches at the same time and in command-line order, after + initializing the dependency-output code. Emit properly nested + #line directives for them. Emit a #line for the main file + before processing these switches, and don't do it again + afterward. - * cpperror.c (cpp_message): Likewise. +Wed Sep 30 18:03:22 1998 Richard Henderson - * cpplib.c (cpp_warning): Likewise. - - * cpplib.h (cpp_notice): Use PVPROTO not VPROTO, also add - ATTRIBUTE_PRINTF_1. - - * toplev.c (error): Fix typo in declaration. - -Fri Jan 29 15:44:13 1999 J"orn Rennecke - - * loop.c (strength_reduce): Fix HAVE_cc0 handling when scanning - forward from cont dominator. - -Fri Jan 29 07:10:27 1999 Kaveh R. Ghazi - - * cccp.c (eprint_string): Constify a char*. - (notice): Likewise. Use PVPROTO not VPROTO, add ATTRIBUTE_PRINTF_1. - (vnotice): Constify a char*. - (error): Likewise. Use PVPROTO not VPROTO, add ATTRIBUTE_PRINTF_1. - (verror): Constify a char*. - (warning): Likewise. Use PVPROTO not VPROTO, add ATTRIBUTE_PRINTF_1. - (vwarning): Constify a char*. - (error_with_line): Likewise. Use PVPROTO not VPROTO, add - ATTRIBUTE_PRINTF_2. - (verror_with_line): Constify a char*. - (vwarning_with_line): Likewise. - (warning_with_line): Likewise. Use PVPROTO not VPROTO, add - ATTRIBUTE_PRINTF_2. - (pedwarn): Constify a char*. Use PVPROTO not VPROTO, add - ATTRIBUTE_PRINTF_1. - (pedwarn_with_line): Likewise with ATTRIBUTE_PRINTF_2. - (pedwarn_with_file_and_line): Likewise with ATTRIBUTE_PRINTF_4. - Also correct typo in parameter name declaration. - (make_assertion): Constify a char*. - (quote_string_for_make): Likewise. - (deps_output): Likewise. - (fatal): Likewise. Use PVPROTO not VPROTO, add - ATTRIBUTE_PRINTF_1. Use ATTRIBUTE_NORETURN not an explicit - "__attribute__ ((noreturn))". - (fancy_abort): Likewise for ATTRIBUTE_NORETURN. - (pfatal_with_name): Likewise. - (pipe_closed): Likewise. - (memory_full): Likewise. + * function.c (purge_addressof_1): Use bitfield manipulation + routines to handle mem mode < reg mode. -Fri Jan 29 00:14:55 1999 J"orn Rennecke +Wed Sep 30 18:43:32 1998 Herman ten Brugge - * loop.c (strength_reduce): Grow set_in_loop / n_times_set / - may_not_optimize to proper size when converting biv increments - into givs. - If necessary, reallocate reg_iv_type / reg_iv_info before calling - recombine_givs. + * reorg.c (try_merge_delay_insns): Account for resources referenced + in each instruction in INSN's delay list before trying to eliminate + useless instructions. Similarly when looking at a trial insn's delay + slots. -Thu Jan 28 23:24:08 1999 J"orn Rennecke + * reorg.c (check_annul_list_true_false): New function. + (steal_delay_list_from_{target,fallthrough}): Call it and also + refine tests for when we may annul if already filled a slot. + (fill_slots_from_thread): Likewise. + (delete_from_delay_slot): Return newly-created thread. + (try_merge_delay_isns): Use its new return value. - * loop.c (recombine_givs): New parameter unroll_p. If set, don't - generate complex adds. Changed caller. - Don't generate adds that cost more than the original one. - (strength_reduce): Warning fixes. +Wed Sep 30 18:29:26 1998 Jeffrey A Law (law@cygnus.com) -Thu Jan 28 09:41:11 1999 Jeffrey A Law (law@cygnus.com) + * loop.c (check_dbra_loop): Use a vanilla loop reversal if the biv is + used to compute a giv or as some other non-counting use. - * configure.in (hppa1.0-hp-hpux10*): Use t-pa. - * configure: Rebuilt. +Wed Sep 30 18:19:27 1998 Michael Hayes -Wed Jan 27 23:39:53 1999 J"orn Rennecke - - * rtl.h (insn_first_p, no_jumps_between_p): Declare. - * rtlanal.c (insn_first_p, no_jumps_between_p): New function. - * loop.h (varray.h): Include. - (struct induction): Change combined_with to unsigned. - New members derived, ix and last_use. - (reg_iv_type, reg_iv_info): Now varray_type. All references changed. - (REG_IV_TYPE, REG_IV_INFO): Define. - (first_increment_giv, last_increment_giv): Declare. - * loop.c (loop_number_loop_cont): New static variable. - (loop_number_cont_dominator): Likewise. - (reg_iv_type, reg_iv_info): Now varray_type. - (first_increment_giv, last_increment_giv): New variables. - (compute_luids, verify_dominator, find_life_end): New functions. - (cmp_recombine_givs_stats, recombine_givs): Likewise. - (loop_optimize): Allocate loop_number_loop_cont and - loop_number_cont_dominator. Use compute_luids. - (find_and_verify_loops): Initialize loop_number_loop_cont and - loop_number_cont_dominator. - (strength_reduce): Try to find bivs that can be expressed as givs - of another biv, and to convert biv increments into givs. - Call recombine_givs. Handle derived givs. - (record_biv): New argument location. All callers changed. - (record_giv): Initialize derived and last_use fields. - (basic_induction_var): New argument location. All callers changed. - (combine_givs): Don't combine a DEST_REG giv with a DEST_ADDR giv. - Increment combined_with instead of setting to 1. - * unroll.c (derived_regs): New static variable. - (unroll_loop): Initialize it. - Allocate local_regno according to max_reg_num. - (copy_loop_body): Cope with derived givs. - (find_splittable_givs): Check for Givs made from biv increments. - Set derived_regs for givs. - * Makefile.in (stmt.o, loop.o, unroll.o): Depend on loop.h . - -Wed Jan 27 19:31:36 1999 J"orn Rennecke - - * function.c (purge_addressof_1): Handle case when a register - has been used in a wider mode. - -1999-01-27 Bruce Korb - - * fixinc/fixincl.c, fixinc/server.[ch]: - Removed the last of the capitalized variable and proc names. - - * fixinc/server.c: Removed the process open code. - * fixinc/procopen.c: New file containing the proc open code. - * fixinc/inclhack.tpl: Added code to bypass a readability test - when a file is not present. A problem on some systems. - * fixinc/inclhack.sh, fixinc/fixincl.sh: Regenerated. - -Wed Jan 27 11:58:18 1999 Dave Brolley - - * cpplib.h (cpp_notice): Add prototype. - -Wed Jan 27 02:20:48 1999 Jeffrey A Law (law@cygnus.com) - - * Merge gcc2 snapshot 19980929. - - * cccp.c (PRINTF_PROTO): Remove. - (PRINTF_PROTO_{1,2,3,4}: Likewise. - * cexp.y: Likewise. - * system.h: Add PRINTF_PROTO and PRINTF_PROTO_{1,2,3,4}. + * regs.h (HARD_REGNO_CALL_PART_CLOBBERED): New macro. + * local-alloc.c (find_free_reg): Use it. + * global.c (find_reg): Likewise. + * tm.texi: Document HARD_REGNO_CALL_PART_CLOBBERED. - * fix-header.c (cpp_file_lin_for_message): Delete. In libcpp. - (cpp_print_containing_files, v_cpp_message, cpp_message): Likewise. - (cpp_fatal, cpp-Pfatal_with_name): Likewise. + * regs.h (HARD_REGNO_CALLER_SAVE_MODE): New macro. + * caller-save.c (init_caller_save): Use it. + * tm.texi: Document HARD_REGNO_CALLER_SAVE_MODE. - * gen-protos.c (hashf): Delete in cpphash.o. - * gen-protos.c (hashf): Delete in cpphash.o. +Wed Sep 30 12:57:30 1998 Zack Weinberg - * expr.c: Do not merge SAVE_STACKAREA_MODE changes. - * expmed.c: Likewise. - * rs6000.md: Likewise. + * configure.in: Add --enable-cpplib option which uses cpplib + for cpp, but doesn't link cpplib into cc1. Make help text + capitalization consistent. + * configure: Rebuilt. - * rs6000.c, rs6000.md: Do not merge formatting changes yet. +Wed Sep 30 10:09:39 1998 Mark Mitchell -Wed Jan 27 01:13:42 1999 Richard Henderson + * function.c (gen_mem_addressof): If the address REG is + REG_USERVAR_P make the new REG be so also. + * loop.c (scan_loop): Apply DeMorgan's laws and add documentation + in an attempt to clarify slightly. - * rs6000.c (input_operand): Don't expect CONST around CONSTANT_P_RTX. - * rs6000.md (movsi, movdi): Likewise. +Wed Sep 30 09:57:40 1998 Jeffrey A Law (law@cygnus.com) -Tue Jan 26 13:31:38 1999 Jim Wilson + * expr.c (expand_expr): Handle COMPONENT_REF, BIT_FIELD_REF ARRAY_REF + and INDIRECT_REF in code to check MAX_INTEGER_COMPUTATION_MODE. - * function.c (expand_function_end): Pass arg_pointer_save_area to - validize_mem before using it. Emit code into a sequence. +Wed Sep 30 10:13:39 1998 Catherine Moore -Tue Jan 26 13:41:38 1999 David Edelsohn + * toplev.c: Fix last patch. - * rs6000.md (doz + set cr and or + set cr patterns): Add missing - '#' to split patterns. Correct indentation of some new patterns. +Tue Sep 29 20:03:18 1998 Jim Wilson -1999-01-26 Zack Weinberg + * loop.c (get_condition): Fix typo in May 9 change. - * cppfiles.c (safe_read): Deleted. - (read_and_prescan): New function, replaces safe_read, converts - and/or warns about trigraphs, silently converts odd line - terminators (\r, \n\r, \r\n). Warns about no newline at EOF. - (finclude): Use read_and_prescan; turn off nonblocking mode on - the input descriptor; remove file-size-examination and - no-newline-at-EOF gunk which is longer necessary; be more - careful about checking that we've been handed a legitimate - file to read (only real files, pipes, and ttys are acceptable). - * cpplib.h (cpp_options): Rename no_trigraphs flag to - `trigraphs' and invert its sense. - (trigraph_table): Declare. - (cpp_warning_with_line): Prototype. - * cpplib.c: Remove all references to trigraph_pcp. Define - trigraph_table; initialize it in initialize_char_syntax. Open - files in nonblocking mode. s/no_trigraphs/trigraphs/ - throughout, and invert sense. Put cpp_warning_with_line back - in and export it. +Tue Sep 29 11:11:38 1998 Andrew MacLeod -Tue Jan 26 23:21:49 1999 Michael Hayes + * invoke.texi (-fexceptions): Merge 2 different descriptions. - * config/c4x/c4x.h (COUNTER_REGS): New register class. - * config/c4x/c4x.md (*rptb_init): Change constraints. - (rptb_end): Emit alternate looping instructions if - RC register not allocated for loop counter. - (decrement_and_branch_on_count): Allow other registers - for loop counter. +Mon Sep 28 22:08:52 1998 Kaveh R. Ghazi -1999-01-25 Zack Weinberg - - * cppexp.c (struct arglist): Removed. - (parse_number): Use HOST_WIDE_INT for the accumulator. - Allow two `l' suffixes unless C89. Clean up. Make static. - (parse_charconst): New function broken out of cpp_lex. - Code cleaned up drastically. Don't use a token_buffer. - (token_buffer): Removed. - (cpp_lex): Don't call parse_number on a constant string. - Use parse_charconst. - (cpp_parse_expr): Properly handle an ERROR op returned by - cpp_lex. - -1999-01-25 Zack Weinberg - - * cpplib.c: Don't include signal.h, sys/times.h, or - sys/resource.h. Don't declare localtime. - (macroexpand): Handle special symbols here. - (push_macro_expansion): Chop off the trailing '@ ' if possible - here. - (cpp_get_token): Don't do either of the above two things here. - Move `string' label just after case '"' so that wide strings - don't crash the preprocessor. + * toplev.c (documented_lang_options): Spelling corrections. -Sun Jan 24 20:13:45 1999 David Edelsohn +Mon Sep 28 19:41:24 1998 Alexandre Oliva - * rs6000.md (left shift + set cr patterns): Add missing '#' to - split patterns. - (move register + set cr pattern): Likewise. - (movdi, !TARGET_POWERPC64 splitters): Add back in Jan. 15th patch, - inadvertently deleted. + * configure.in: New flags --with-ld and --with-as, equivalent + to setting LD and AS environment variables. Test whether + specified arguments are GNU commands, and report them with + checking messages. Use the specified AS for configure + tests too. + * configure: Likewise. + * acconfig.h: Add DEFAULT_ASSEMBLER and DEFAULT_LINKER. + * config.in: Likewise. + * gcc.c (find_a_file): When looking for `as' and `ld', return + the DEFAULT program if it exists. + * collect2.c (main): Use DEFAULT_LINKER if it exists. -Sun Jan 24 08:07:59 1999 Jeffrey A Law (law@cygnus.com) + * gcc.c (find_a_file): The test for existence of a full + pathname was reversed. - * stmt.c (stmt_loop_nest_empty): New function. - * tree.h (stmt_loop_nest_empty): Declare it. - * rtl.def (CALL_PLACEHOLDER): New rtx code. +Mon Sep 28 17:34:35 1998 Michael Meissner -Sun Jan 24 21:24:43 1999 Michael Hayes + * rs6000.h (ASM_OUTPUT_MI_THUNK): Only define on ELF systems. + * rs6000.c (output_mi_thunk): Always use a raw jump for now. - * config/c4x/c4x.c (c4x_emit_move_sequence, c4x_encode_section_info): - New functions. - (c4x_check_legit_addr): Remove USE and PLUS, allow - LO_SUM, and disable SYMBOL_REF, LABEL_REF, and CONST cases. - (c4x_legitimize_address): Penalize SYMBOL_REF, LABEL_REF, and - CONST cases. Add LO_SUM. - (c4x_print_operand): Modified 'C' and 'R' cases for calls. - Added 'U' case. Remove dependence on SYMBOL_REF_FLAG. - (c4x_print_operand_address): Handle LO_SUM. - (c4x_scan_for_ldp): Delete. Hooray! - (c4x_process_after_reload): Remove call to c4x_scan_for_ldp. - Split all insns. - (c4x_immed_int_constant): Renamed from c4x_int_constant. All callers - changed. - (c4x_immed_float_constant): Renamed from c4x_float_constant. All - callers changed. - (c4x_T_constraint): Allow LO_SUM, disable SYMBOL_REF, LABEL_REF, - and CONST. - (c4x_U_constraint, symbolic_operand): New functions. - (src_operand): Allow 'I' constants in HImode. Allow LO_SUM, - disable SYMBOL_REF, LABEL_REF, and CONST. - (lsrc_operand, tsrc_operand): Call src_operand instead of - general_operand. - (c4x_operand_subword): Update comments. - - * config/c4x/c4x.c (TARGET_LOAD_ADDRESS): New macro. - (LEGITIMATE_CONSTANT_P): Allow SYMBOL_REF, LABEL_REF, CONST, - plus HIGH and LO_SUM for the C40. - (ENCODE_SECTION_INFO): Define macro. - (symbolic_operand, c4x_U_constraint, c4x_emit_move_sequence): New - prototypes. - (PREDICATE_CODES): Add symbolic_operand. +Mon Sep 28 14:24:03 1998 Mark Mitchell - * config/c4x/c4x.md (movqi, movgqf, movhi, movhi): Call - c4x_emit_move_sequence. - (floatunsqiqf2, fixuns_truncqfqi2): Rework emitted RTL - to avoid symbol references. - (all patterns with g constraint): Replace 'g' constraint with 'rIm'. - (set_high): Renamed from set_high_use. - (set_lo_sum): Renamed from set_ior_lo_use. - (all call patterns): Make MEM explicit in call address operands. - Modified output templates to use 'U' modifier. + * tree.h (TYPE_BINFO): Document. -Sun Jan 24 01:15:05 1999 Jeff Law (law@cygnus.com) +Mon Sep 28 12:55:49 1998 Stan Cox - * version.c: Bump for snapshot. + * i386-coff.h (dbxcoff.h): Added. -Sat Jan 23 22:34:57 1999 Kaveh R. Ghazi +Mon Sep 28 12:51:00 1998 Catherine Moore - * final.c (bb_str): Qualify a char* with the keyword `const'. - (add_bb_string, final_scan_insn, output_asm_insn): Likewise. + * toplev.c: Fix bad patch around flag_data_sections. - * fix-header.c (read_scan_file): Likewise. +Mon Sep 28 10:32:28 1998 Nick Clifton - * genoutput.c (output_epilogue, process_template): Likewise. + * reload1.c (reload): Use reload_address_index_reg_class and + reload_address_base_reg_class when setting + caller_save_spill_class. (Patch generated by Jim Wilson: + wilson@cygnus.com). - * local-alloc.c (requires_inout, block_alloc): Likewise. +Mon Sep 28 07:43:34 1998 Mark Mitchell - * output.h (output_asm_insn, assemble_string): Likewise. + * c-common.c (c_get_alias_set): Tighten slightly for FUNCTION_TYPEs + and ARRAY_TYPEs. Tidy up. Improve support for type-punning. + * expr.c (store_field): Add alias_set parameter. Set the + MEM_ALIAS_SET accordingly, if the target is a MEM. + (expand_assignment): Use it. + (store_constructor_field): Pass 0. + (expand_expr): Likewise. - * recog.c (recog_constraints, check_asm_operands, - decode_asm_operands, extract_insn, preprocess_constraints, - constrain_operands): Likewise. +Mon Sep 28 07:54:03 1998 Catherine Moore - * recog.h (operand_alternative, recog_constraints, insn_template, - insn_outfun, insn_operand_constraint, insn_name): Likewise. + * flags.h: Add flag_data_sections. + * toplev.c: Add option -fdata-sections. Add flag_data_sections. + (compile_file): Error if flag_data_sections not supported. + * varasm.c (assemble_variable): Handle flag_data_sections. + * config/svr4.h: Modify prefixes for UNIQUE_SECTION_NAME. + * config/mips/elf.h: Likewise. + * config/mips/elf64.h: Likewise. + * invoke.texi: Describe -fdata-sections. - * regclass.c (record_reg_classes, scan_one_insn): Likewise. +Mon Sep 28 04:15:44 1998 Craig Burley - * regmove.c (find_matches): Likewise. + * invoke.texi (-ffloat-store): Clarify that this option + does not affect intermediate results -- only variables. - * reload.c (alternative_allows_memconst): Likewise. +Mon Sep 28 04:11:35 1998 Jeffrey A Law (law@cygnus.com) - * reload1.c (constraint_accepts_reg_p, - reload_cse_simplify_operands): Likewise. + * cpp.texi: Update for Fortran usage from Craig. - * rtl.h (decode_asm_operands): Likewise. +Fri Sep 25 22:09:47 1998 David Edelsohn - * scan.h (fn_decl): Likewise. + * rs6000.c (function_arg_boundary): Revert accidental change on + September 18. - * varasm.c (assemble_string): Likewise. +Fri Sep 25 20:30:00 1998 Michael Meissner -Sat Jan 23 01:37:36 1999 Jeffrey A Law (law@cygnus.com) + * rs6000.h (ASM_OUTPUT_MI_THUNK): Declare, call output_mi_thunk. + (output_mi_thunk): Declare. - * configure.in (gcc_tooldir): Handle case where exec_prefix has - not been explicitly set. - * configure: Rebuilt. + * rs6000.c (output_mi_thunk): Function to create thunks for MI. + (output_function_profiler): Use r12 for temp, instead of r11 so + that we preserve the static chain register. - * fold-const.c (lshift_double): Mark 'prec' arguments as possibly - unused. +Fri Sep 25 14:18:33 1998 Jim Wilson - * bitmap.h (bitmap_head_def): Make indx field unsigned. + * sdbout.c (sdbout_one_type): Don't look at TYPE_BINFO field of enums. - * configure.in (gcc_tooldir): When not making a relative gcc_tooldir, - use $exec_prefix/$target_alias for gcc_tooldir. - * configure: Rebuilt. +Fri Sep 25 19:30:19 1998 J"orn Rennecke -Fri Jan 22 11:48:56 1999 Richard Henderson + * sh.c (gen_shl_sext): Fix case 5. - * cppp.c (xrealloc): Fix typo last change. - * cppalloc.c, gcc.c, genattr.c, genattrtab.c, gencodes.c: Likewise. - * genconfig.c, genemit.c, genextract.c, genflags.c: Likewise. - * genopinit.c, genoutput.c, genpeep.c, genrecog.c: Likewise. +Fri Sep 25 17:35:23 1998 J"orn Rennecke -1999-01-22 Michael Meissner + * reload1.c (reload_combine): Re-add line that got accidentally lost. - * rs6000.h (CR0_REGNO_P): New macro to test if cr0. - (CR_REGNO_NOT_CR0_P): New macro to test if cr, but not cr0. - (PREDICATE_CODES): Add cc_reg_not_cr0_operand. - (cc_reg_not_cr0_operand): Add declaration. +Fri Sep 25 10:43:47 1998 Kaveh R. Ghazi - * rs6000.c (cc_reg_not_cr0_operand): Return true if register is a - pseudo register, or a control register that is not CR0. + * cccp.c (pedwarn_with_file_and_line): For !__STDC__ case, avoid + accessing variables until they are initialized via va_arg(). - * rs6000.md (all combiner patterns building . instructions): For - all `.' instructions that do something and set cr0, add an - alternative that does the operation, and then sets a different - flag, in order to avoid using the costly mcrf instruction and also - allow cr0 to be clobbered in asm statements. Also fix a few - patterns that used the wrong register. +Thu Sep 24 22:12:16 1998 David S. Miller - * rs6000.h (rs6000_cpu_select): Make string, names be const char *. - (rs6000_debug_name): Make const char *, not char *. + * reload1.c (reload_combine): Initialize set before using. - * sysv4.h (rs6000_{abi,sdata}_name): Make const char *. +Thu Sep 24 18:53:20 1998 Jason Merrill - * rs6000.c (rs6000_{debug,abi,sdata}_name): Make const char *. - (rs6000_select): Use const char * in casts. + * sdbout.c (sdbout_field_types): Don't emit the types of fields we + won't be emitting. -Fri Jan 22 07:43:01 1999 Jeffrey A Law (law@cygnus.com) +Thu Sep 24 17:05:30 1998 Nick Clifton - * Makefile.in (gcc_tooldir): Move before first reference. - Let autoconf substitute in a value. - * configure.in (gcc_tooldir): Only use a relative path to the - tool directory if $exec_prefix == $prefix. - * configure: Rebuilt. + * config/arm/arm.md (insv): Add comment. In CONST_INT case, and + operand3 with mask before using it. Patch provided by Jim Wilson. - * Makefile.in (tooldir): Replace with gcc_tooldir. +Thu Sep 24 15:08:08 1998 Jakub Jelinek -Thu Jan 21 23:21:57 1999 Jeffrey A Law (law@cygnus.com) + * config/sparc/sparc.c (function_value): Perform the equivalent of + PROMOTE_MODE for ARCH64. + (eligible_for_epilogue_delay): Allow DImode operations in delay + slot of a return for ARCH64. - * m68k.md (ashldi_const): Disable for !TARGET_5200. Fix indentation. - (ashldi3 expander): Similarly. Update comments. - (ashrdi_const, lshrdi_const): Fix indentation. - (ashrdi3, lshrdi3): Fix indentation. Update comments. +Thu Sep 24 22:17:54 1998 J"orn Rennecke -Thu Jan 21 21:53:36 1999 Richard Henderson + * sh.md (sqrtsf2): Fix mode of sqrt. - * emit-rtl.c (try_split): Don't try to split non-instructions. +Thu Sep 24 21:48:51 1998 J"orn Rennecke -Thu Jan 21 23:47:30 1999 Andrew MacLeod + * reload1.c (choose_reload_regs): Also try inheritance when + reload_in is a stack slot of a pseudo, even if we already got a + reload reg. - * expr.c (emit_push_insn): Fix dumb typo. +Thu Sep 24 21:22:39 1998 J"orn Rennecke -Thu Jan 21 20:24:02 1999 Richard Henderson + * reload1.c (reload_cse_regs_1): Renamed from reload_cse_regs. + (reload_cse_regs): New function body: call reload_cse_regs_1, + reload_combine, reload_cse_move2add. + When doing expensive_optimizations, call reload_cse_regs_1 a + second time after reload_cse_move2add. + (reload_combine, reload_combine_note_store): New functions. + (reload_combine_note_use): New function. + (reload_cse_move2add, move2add_note_store): New functions. - * rs6000.h (LEGITIMIZE_RELOAD_ADDRESS): Recognize and accept - transformations that we have performed earlier. - * alpha.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise. +Thu Sep 24 18:48:43 1998 J"orn Rennecke - * alpha.md (prologue_stack_probe_loop): Don't do our own label - handling, call gen_label_rtx instead. + * reload.c (find_reloads): In code to promote RELOAD_FOR_X_ADDR_ADDR + reloads to RELOAD_FOR_X_ADDRESS reloads, test for reload sharing. -Thu Jan 21 17:45:18 1999 Richard Henderson + Properly keep track of first RELOAD_FOR_X_ADDRESS also for + more than 3 such reloads. - * configure.in ({rs6000|powerpc}-ibm-aix4.[12]*): Add missing `then'. + If there is not more than one RELOAD_FOR_X_ADDRESS, don't change + RELOAD_FOR_X_ADDR_ADDR reload. - * cccp.c (xrealloc): Call malloc given a NULL old pointer. - * collect2.c, cppalloc.c, gcc.c, genattr.c, genattrtab.c: Likewise. - * gencodes.c, genconfig.c, genemit.c, genextract.c: Likewise. - * genflags.c, genopinit.c, genoutput.c, genpeep.c: Likewise. - * genrecog.c, mips-tfile.c, protoize.c: Likewise. +Thu Sep 24 17:45:55 1998 J"orn Rennecke -Thu Jan 21 19:44:55 1999 Michael Meissner + * expr.c (store_constructor): When initializing a field that is smaller + than a word, at the start of a word, try to widen it to a full word. - * configure.in ({rs6000|powerpc}-ibm-aix4.[12]*): If - --with-gnu-ld, use x-aix41-gld instead of x-aix41 to suppress - adding -Wl,-bbigtoc to BOOT_LDFLAGS. - * configure: Regenerate. + * cse.c (cse_insn): When we are about to change a register, + remove any invalid references to it. - * config/rs6000/x-aix41-gld: New file, don't set BOOT_LDFLAGS. + (remove_invalid_subreg_refs): New function. + (mention_regs): Special treatment for SUBREGs. + (insert_regs): Don't strip SUBREG for call to mention_regs. + Check if reg_tick needs to be bumped up before that call. + (lookup_as_function): Try to match known word_mode constants when + looking for a norrower constant. + (canon_hash): Special treatment for SUBREGs. -Thu Jan 21 15:48:03 1999 Dave Brolley +Thu Sep 24 01:35:34 1998 David S. Miller - * cppexp.c (cpp_lex): Allocate token_buffer dynamically. + * config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Define. + * config/sparc/sparc.c (sparc64_initialize_trampoline): If that is + defined, emit libcall to __enable_execute_stack. Also fix opcodes + and offsets in actual stack trampoline code so they match the + commentary and actually work. -Thu Jan 21 14:18:04 1999 Andrew MacLeod +Thu Sep 24 01:19:02 1998 Jakub Jelinek - * expr.c (MOVE_BY_PIECES_P): Define condition for deciding to use - move_by_pieces. - (MOVE_MAX_PIECES): Define maximum number of bytes to move at once. - (USE_LOAD_POST_INCREMENT, USE_LOAD_PRE_DECREMENT): Define defaults. - (USE_STORE_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Define defaults. - (move_by_pieces): Use new macros. - (emit_block_move): Use new macros. - (clear_by_pieces): Use new macros. - (clear_storage): Use new macros. - (emit_push_insn): Use new macros. - (expand_expr): Use new macros. - * config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_LOAD_PRE_DECREMENT): + * configure.in (sparcv9-*-solaris): Use t-sol2 and t-sol2-64 for + tmake_file. + (sparc64-*-linux): Use t-linux and sparc/t-linux64 for + tmake_file. Set extra_parts to needed crt objects. + * configure: Rebuilt. + * config/sparc/linux64.h (SPARC_BI_ARCH): Define. + (TARGET_DEFAULT): Set if default is v9 or ultra. + (STARTFILE_SPEC32, STARTFILE_SPEC64): New macros. + (STARTFILE_SPEC): Set to those upon SPARC_BI_ARCH. + (ENDFILE_SPEC32, ENDFILE_SPEC64, ENDFILE_SPEC): Likewise. + (SUBTARGET_EXTRA_SPECS, LINK_ARCH32_SPEC, LINK_ARCH64_SPEC, + LINK_SPEC, LINK_ARCH_SPEC): Likewise. + (TARGET_VERSION): Define. + (MULTILIB_DEFAULT): Define. + * config/sparc/sparc.h (CPP_CPU_DEFAULT_SPEC): Rearrange so that + mixed 32/64 bit compilers based upon SPARC_BI_ARCH work. + (CPP_CPU64_DEFAULT_SPEC, CPP_CPU32_DEFAULT_SEC): Define + appropriately. + (TARGET_SWITCHES): Allow ptr32/ptr64 options once more. + * config/sparc/sparc.c (sparc_override_options): If arch and + pointer size disagree, emit diagnostic and fix it up. If + SPARC_BI_ARCH and TARGET_ARCH32, set cmodel to CM_32. Turn off + V8PLUS in 64-bit mode. + * config/sparc/t-linux64: New file. + * config/sparc/t-sol2-64: New file. + * config/sparc/t-sol2: Adjust build rules to use MULTILIB_CFLAGS. + * config/sparc/sol2-sld-64.h (SPARC_BI_ARCH): Define. + (ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC, + CPP_CPU32_DEFAULT_SPEC, CPP_CPU64_DEFAULT_SPEC): Define. + (ASM_SPEC, CPP_CPU_SPEC): Set appropriately based upon those. + (STARTFILE_SPEC32, STARTFILE_SPEC32, STARTFILE_ARCH_SPEC): Define. - (USE_STORE_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Define. - (MOVE_BY_PIECES_P): Define based on alignment and TARGET_SMALLCODE. - (MOVE_MAX_PIECES): Move 8 bytes on SH4. - * tm.texi(MOVE_BY_PIECES_P, MOVE_MAX_PIECES, USE_LOAD_POST_INCREMENT, - USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT, - USE_STORE_PRE_DECREMENT): Describe new macros. + (STARTFILE_SPEC): Set appropriately based upon those. + (CPP_CPU_DEFAULT_SPEC, ASM_CPU_DEFAULT_SPEC): Set based upon + disposition of DEFAULT_ARCH32_P. + (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC): Define. + (LINK_ARCH_SPEC, LINK_ARCH_DEFAULT_SPEC): Set based upon those. + (CC1_SPEC, MULTILIB_DEFAULTS): Set based upon DEFAULT_ARCH32_P. + (MD_STARTFILE_PREFIX): Set correctly based upon SPARC_BI_ARCH. + * config/sparc/xm-sysv4-64.h (HOST_BITS_PER_LONG): Only set on + arch64/v9. + * config/sparc/xm-sp64.h (HOST_BITS_PER_LONG): Likewise. -Thu Jan 21 14:13:31 1999 Vladimir N. Makarov +Wed Sep 23 22:32:31 1998 Mark Mitchell - * varasm.c (output_constant_pool): Use floor_log2 instead of - exact_log2 for ASM_OUTPUT_ALIGN. + * rtl.h (init_virtual_regs): New function. + * emit-rtl.c (init_virtual_regs): Define. + (insn_emit): Use it. + * integrate.c (save_for_inline_copying): Likewise. - * stor-layout.c (layout_type): Do machine-dependent extra alignment. - - * emit-rtl.c (operand_subword): Handle case when a subword outside - the operand. - - * tm.texi (ROUND_TYPE_{SIZE,ALIGN}): More accurate descriptions of - the macros. - -Thu Jan 21 01:59:30 1999 Richard Henderson +Wed Sep 23 16:22:01 1998 Nick Clifton - * cse.c (fold_rtx): Revert 29 Dec change. - (cse_insn): Revert 12 Jan change. - * expr.c (expand_builtin): Don't emit CONST around CONSTANT_P_RTX. - * regclass.c (reg_scan_mark_refs): Revert 29 Dec change. - * rtl.def: Likewise. - * rtl.h (CONSTANT_P): Likewise. + * config/arm/thumb.h: The following patches were made by Jim Wilson: + (enum reg_class): Add NONARG_LO_REGS support. + (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS, + PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Likewise. + (GO_IF_LEGITIMATE_ADDRESS): Disable REG+REG addresses before reload + completes. Re-enable HImode REG+OFFSET addresses. + (LEGITIMIZE_RELOAD_ADDRESS): Define. - * expr.c (emit_move_insn): Never try to flush CONSTANT_P_RTX - to memory. - * recog.c (immediate_operand): Accept CONSTANT_P_RTX. - * alpha.c (input_operand): Likewise. - * c4x.c (const_operand): Likewise. + * expmed.c (extract_bit_field): Add comment from Jim Wilson. - * explow.c (allocate_dynamic_stack_space): Use register_operand - instead of arith_operand, which does not exist. +Wed Sep 23 13:26:02 1998 Richard Henderson - * 1750a.h: Fix comment closure. - * a29k.c (a29k_set_memflags): Fix typo in 19 Jan change. - * arc.md (one_cmplsi2_set_cc_insn): Fix set mode mismatch. - * arm.h (TARGET_SWITCHES): Fix typo. - * i370.md (anon mult and div patterns): Fix set mode mismatch. - * i860.c (output_delayed_branch): Fix operands to constrain_operands. - (output_delay_insn): Likewise. - * m88k.md (anon rotate insns): Fix set mode mismatch. - (anon BLKmode moves): Commonize and fix set mode mismatches. - * ns32k.md (udivmoddi[shq]i4_internal): Fix mode mismatch. - * romp.md (movdf): Fix typo. + * alpha.c (get_aligned_mem): Revert Sep 20 change. + (alpha_set_memflags, alpha_set_memflags_1): Likewise. + (alpha_align_insns): Properly calculate initial offset wrt max_align. -Thu Jan 21 00:29:35 1999 Nathan Sidwell +Wed Sep 23 10:45:44 1998 Richard Earnshaw (rearnsha@arm.com) - * Makefile.in (install-common): Remove extraneous chmod for gcov - install. + * arm.c (find_barrier): Revert change of Apr 23. Handle table + jumps as a single entity, taking into account the size of the + table. -Wed Jan 20 18:15:08 1999 Dave Brolley +Tue Sep 22 15:13:34 1998 Alexandre Petit-Bianco - * function.c (assign_parms): Save and restore setting of - TREE_USED (parm). + * tree.def (SWITCH_EXPR): New tree node definition. -Wed Jan 20 12:51:42 1999 Mark Mitchell +Mon Sep 21 23:40:38 1998 Jeff Law (law@cygnus.com) - * arm.md: Use MEM_COPY_ATTRIBUTES where appropriate throughout. - Pass MEM_SCALAR_P to arm_gen_store_multiple where appropriate. + * version.c: Bump for snapshot. -Tue Jan 19 21:20:52 1999 Richard Henderson +Mon Sep 21 22:31:14 1998 Jeff Law (law@cygnus.com) - * recog.c (pop_operand): New function. - * recog.h (pop_operand): Declare it. - * genrecog.c (preds): Define it. + * version.c: Bump for snapshot. - * expr.c (do_jump_for_compare): Handle conditional branch expanders - emitting multiple jump instructions. - * jump.c (condjump_label): New function. - * rtl.h (condjump_label): Declare it. +Mon Sep 21 22:48:09 1998 Jeffrey A Law (law@cygnus.com) -Tue Jan 19 21:08:20 1999 Richard Henderson + * configure.in: Recognize i[34567]86-*-openbsd* and handle it like + NetBSD. - * expr.c (emit_move_insn_1): Revert 17 Dec change. Don't emit - clobber during or after reload. +Mon Sep 21 22:05:28 1998 Jeffrey A Law (law@cygnus.com) -Tue Jan 19 16:56:03 1999 Richard Henderson + * Revert this patch. + * reload.c (find_reloads): Do not replace a pseudo with + (MEM (reg_equiv_addr)) in the initializing insn for the + pseudo. - * genoutput.c (name_for_index): New function. - (scan_operands, validate_insn_alternatives): Use it. - * genrecog.c (insn_name_ptr_size): New variable. - (make_insn_sequence): Fill in insn_name_ptr. - (merge_trees): Use it. +Mon Sep 21 20:19:41 1998 John Carr -Tue Jan 19 16:37:36 1999 Richard Henderson + * final.c (final_scan_insn): Disable tracking CC across branches. - * i386/isc.h (TARGET_DEFAULT): Define symbolicly. - * i386/isccoff.h, i386/next.h, i386/sco.h, i386/sco5.h: Likewise. - * i386/scodbx.h, i386/sequent.h, i386.unix.h: Likewise. +Mon Sep 21 17:15:26 1998 Andrew MacLeod -Tue Jan 19 15:00:10 1999 Jeffrey A Law (law@cygnus.com) + * expr.h (eh_rtime_match_libfunc): New extern declaration. + * optabs.c (init_optabs): Set eh_rtime_match_libfunc. + * except.c (start_catch_handler): Use eh_rtime_match_libfunc. + * libgcc2.c (__eh_rtime_match): Always return 0 if the matcher is + NULL. Only include if inhibit_libc is not defined. - * loop.c (NUM_STORES): Delete. - (loop_store_mems): Turn into an EXPR_LIST of MEMs. - (prescan_loop): Properly initialize loop_mems_idx. - (note_addr_stored): Simplify using list structure instead of - fixed sized array. - (invariant_p, check_dbra_loop, load_mems): Similarly. +Mon Sep 21 14:10:51 1998 Jason Merrill - * flow.c (invalidate_from_autoinc): New function. - (mark_set_1, mark_used_regs): Use it. + * toplev.c (rest_of_compilation): Skip compiling anything with + DECL_EXTERNAL set, not just if it has DECL_INLINE as well. - * Makefile.in (protoize.o, unprotoize.o): Depend on Makefile. +Mon Sep 21 13:51:05 1998 Jim Wilson -1999-01-19 Vladimir N. Makarov + * flow.c (find_basic_blocks): Delete check for in_libcall_block when + prev_code is a CALL_INSN. Change check for REG_RETVAL note to + use in_libcall_block. + (find_basic_blocks_1): Delete check for in_libcall_block when prev_code + is a CALL_INSN. If CALL_INSN and in_libcall_block, then change code + to INSN. - * invoke.texi (-mlong-double-64): New option description. +Mon Sep 21 14:02:23 1998 Robert Lipe -1999-01-19 Jim Wilson + * i386.h (TARGET_SWITCHES): Improve doc for align-double. Fix + typo in no-fancy-math-387 description. - * libgcc2.c: Change all uses of LONG_DOUBLE_TYPE_SIZE to - LIBGCC2_LONG_DOUBLE_TYPE_SIZE. - (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New. Set to LONG_DOUBLE_TYPE_SIZE - if not defined. - * i960/i960.h (MULTILIB_DEFAULTS): Define to mnumerics. - (CPP_SPECS): Add -mlong-double-64 support. - (TARGET_FLAG_LONG_DOUBLE_64, TARGET_LONG_DOUBLE_64): New. - (TARGET_SWITCHES): Add -mlong-double-64 support. - (LONG_DOUBLE_TYPE_SIZE): Likewise. - (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define. - * i960/vx960-coff.h (MULTILIB_DEFAULTS): Define to msoft-float. - (CPP_SPECS): Add -mlong-double-64 support. - * i960/t-960bare (MULTILIB_OPTIONS): Add mlong-double-64. - (MULTILIB_DIRNAMES): Add ld64. - * i960/t-vxworks960 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Likewise. +Mon Sep 21 09:27:18 1998 Jeff Law (law@cygnus.com) -Tue Jan 19 11:54:04 1999 Jason Merrill + * version.c: Bump for snapshot. - * calls.c (expand_call): Strip a TARGET_EXPR if we're passing by - invisible reference. +Mon Sep 21 09:24:49 1998 Stan Cox -Tue Jan 19 14:51:36 1999 David Edelsohn + * i386-coff.h (DBX_DEBUGGING_INFO): Added. - * rs6000.c (offsettable_addr_operand): Delete. - (offsettable_mem_operand): New function. - * rs6000.h (PREDICATE_CODES): Reflect function change. - (RS6000_SAVE_TOC): Represent address as MEM. - * win-nt.h (RS6000_SAVE_TOC): Same. - * rs6000.md (indirect calls): Change offsettable address parameter - to offsettable memory parameter. +Mon Sep 21 09:14:49 1998 Robert Lipe -Tue Jan 19 10:24:53 1999 Mark Mitchell + * i386.h (TARGET_SWITCHES): Add description fields for flags + documented in install.texi. + (TARGET_OPTIONS): Likewise. - * rtl.h (rtx_def): Update documentation. - (MEM_IN_STRUCT_P): Likewise. - (MEM_SCALAR_P): New macro. - (MEM_COPY_ATTRIBUTES): Likewise. - (MEM_SET_IN_STRUCT_P): Likewise. - * rtl.texi (MEM_SCALAR_P): Document. - * alias.c (canon_rtx): Use MEM_COPY_ATTRIBUTES. - (fixed_scalar_and_varying_struct_p): New function. Use - MEM_SCALAR_P rather than !MEM_IN_STRUCT_P. - (aliases_everything_p): Likewise. - (true_dependence): Use them. - (write_dependence_p): New function, containing code common to - anti_dependence and output_dependence. - (anti_dependence): Use it. - (output_dependence): Likewise. - * calls.c (save_fixed_argument_area): Don't clear - MEM_IN_STRUCT_P. - (expand_call): Use MEM_SET_IN_STRUCT_P. - (emit_library_call): Don't clear MEM_IN_STRUCT_P. - (emit_library_call_value): Likewise. - (store_one_arg): Use MEM_SET_IN_STRUCT_P. - * combine.c (simplify_rtx): Use MEM_COPY_ATTRIBUTES. - (make_extraction): Likewise. - (simplify_shift_const): Likewise. - (gen_lowpart_for_combine): Likewise. - * cse.c (gen_lowpart_if_possible): Use MEM_COPY_ATTRIBUTES. - * emit-rtl.c (operand_subword): Likewise. - (change_address): Likewise. - * explow.c (stabilize): Use MEM_COPY_ATTRIBUTES. - * expr.c (protect_from_queue): Use MEM_COPY_ATTRIBUTES. - (emit_group_store): Use MEM_SET_IN_STRUCT_P. - (copy_blkmode_from_reg): Likewise. - (store_field): Likewise. - (expand_expr): Remove bogus guesswork setting MEM_IN_STRUCT_P - heuristically. Use MEM_SET_IN_STRUCT_P. - (get_memory_rtx): Likewise. - * final.c (alter_subreg): Use MEM_COPY_ATTRIBUTES. - * function.c (assign_stack_temp): Clear MEM_SCALAR_P and - MEM_ALIAS_SET on newly returned MEMs. - (assign_temp): Use MEM_SET_IN_STRUCT_P. - (put_reg_into_stack): Likewise. - (fixup_var_refs1): Use MEM_COPY_ATTRIBUTES. - (gen_mem_addressof): Use MEM_SET_IN_STRUCT_P. - (assign_parms): Likewise. - (expand_function): Likewise. - * integrate.c (expand_inline_function): Likewise. - (copy_rtx_and_substitute): Use MEM_COPY_ATTRIBUTES. - * loop.c (note_addr_stored): Remove check on MEM_IN_STRUCT_P. - * optabs.c (gen_move_insn): Use MEM_COPY_ATTRIBUTES. - * print-rtl.c (print_rtx): Print /f for frame_related. - * recog.c (validate_replace_rtx_1): Use MEM_COPY_ATTRIBUTES. - * reload1.c (reload): Copy MEM_SCALAR_P as well. - * stmt.c (expand_decl): Use MEM_SET_IN_STRUCT_P. - (expand_anon_union_decl): Use MEM_COPY_ATTRIBUTES. - * varasm.c (make_decl_rtl): Use MEM_SET_IN_STRUCT_P. - (output_constant_def): Likewise. - * a29k.c (a29k_set_memflags_1): Take scalar_p. - Set MEM_SCALAR_P. - (a29k_set_memflags): Use it. - * alpha.c (get_aligned_mem): Use MEM_COPY_ATTRIBUTES. - * c4x.c (c4x_scan_for_ld): Likewise. - * h8300.c (fix_bit_operand): Likewise. - * m88k.c (legitimize_address): Likewise. - (block_move_loop): Likewise. - (block_move_no_loop): Likewise. - (block_move_sequence): Likewise. - (m88k_builtin_saveregs): Use MEM_SET_IN_STRUCT_P. - * mips/abi64.h (SETUP_INCOMING_VARARGS): Likewise. - * rs6000.c (expand_block_move_insn): Use MEM_COPY_ATTRIBUTES. - * sh.c (sh_builtin_saveregs): Use MEM_SET_IN_STRUCT_P. - * arm.h (arm_gen_load_multiple): Take scalar_p. - (arm_store_load_multiple): Likewise. - * arm.c (arm_gen_load_multiple): Likewise. - (arm_gen_store_multiple): Likewise. - (arm_gen_movstrqi): Treat MEM_SCALAR_P like MEM_IN_STRUCT_P. - -Tue Jan 19 12:30:37 1999 Andrew MacLeod - - * optabs.c (emit_libcall_block): Add a REG_EH_REGION reg note to all - calls within a libcall block to indicate no throws are possible. - * flow.c (find_basic_blocks, find_basic_blocks_1): Don't look for - libcall blocks. Don't add edges to exception handlers if we see - a REG_EH_REGION note with a value of 0. - (make_edges): Override active_eh_region vector if the call has a note - indicating the call does not throw. - -1999-01-19 Vladimir N. Makarov - - * config/rs6000/sysv4.h (CC1_SPEC): Fix correct numbers of {}. - -Tue Jan 19 06:26:30 1999 Jeffrey A Law (law@cygnus.com) - - * Makefile.in (cccp.o, cpplib.o): Depend on Makefile. - -Mon Jan 18 09:56:41 1999 Jason Merrill - - * invoke.texi (C++ Dialect Options): Document -fno-rtti. - -1999-01-18 Vladimir N. Makarov - - * invoke.texi (-mcpu=740, -mcpu=750): New options. - (-m(no-)multiple, -m(no-)string): Describe cases for PPC740 & - PPC750. - -1999-01-18 Michael Meissner +Mon Sep 21 01:39:03 1998 Jeff Law (law@cygnus.com) - * rs6000.h ({ASM,CPP}_CPU_SPEC): Add support for all machines - supported with -mcpu=xxx. - (processor_type): Add PROCESSOR_PPC750. - (ADJUST_PRIORITY): Call rs6000_adjust_priority. - (RTX_COSTS): Supply costs for 750 multiply/divide operations. - (rs6000_adjust_priority): Add declaration. + * version.c: Bump for snapshot. - * rs6000.c (rs6000_override_options): -mcpu={750,740} now sets the - processor type as 750, not 603. Allow -mmultiple and -mstring on - little endian 750 systems. - (rs6000_adjust_priority): Stub for now. - (get_issue_rate): The PowerPC 750 can issue 2 instructions/cycle. +Mon Sep 21 01:53:05 1998 Felix Lee - * rs6000.md (function/cpu attributes): Add initial ppc750 support. + * c-lex.c (init_lex): Use getenv ("LANG"), not GET_ENVIRONMENT (). + * cccp.c (main): Likewise. - * sysv4.h (STRICT_ALIGNMENT): Don't force strict alignment if - little endian. - (CC1_SPEC): Pass -mstrict-align if little endian, and not - overridden. - (CC1_ENDIAN_{LITTLE,BIG,DEFAULT}_SPEC): Endian specific configs. - (SUBTARGET_EXTRA_SPECS): Add cc1 endian specs. + * cccp.c, collect2.c, cpplib.c, gcc.c, config/i386/xm-cygwin32.h: + Rename GET_ENVIRONMENT to GET_ENV_PATH_LIST, and fix some + macro-use bugs. - * {sysv4,eabi}le.h (CC1_ENDIAN_DEFAULT_SPEC): Override, default is - little endian. +Mon Sep 21 00:52:12 1998 Per Bothner - * t-ppcgas (MULTILIB_*): Delete obsolete Solaris multilibs. + * Makefile.in (LIBS): Link in libiberty.a. + * c-common.c, gcc.c, toplev.c: Replace (some) bcopy calls by memcpy. -Mon Jan 18 12:03:08 1999 Gavin Romig-Koch +Sun Sep 20 23:28:11 1998 Richard Henderson - * config/mips/mips.md (div_trap): Split div_trap_mips16 - from div_trap. - (div_trap_normal,div_trap_mips16): Correct the length attributes. + * reload1.c (emit_reload_insns): Accept a new arg for the bb. Use + it to update bb boundaries. Update caller. + * function.c (reposition_prologue_and_epilogue_notes): Update + bb boundaries wrt the moved note. -Mon Jan 18 11:48:28 1999 Kaveh R. Ghazi +Sun Sep 20 20:57:02 1998 Robert Lipe - * cpplib.c (special_symbol): Qualify a char* with the `const' keyword. - Instead of writing to const char *buf directly, use a non-const - variable `wbuf' to allocate and write a string, then set buf = wbuf. + * configure.in (i*86-*-sysv5*): Use fixinc.svr4 to patch byteorder + problems. + * configure: Regenerate. - * cppulp.c (user_label_prefix): Qualify a char* with the `const' - keyword. +Sun Sep 20 19:01:51 1998 Richard Henderson - * dyn-string.c (dyn_string_append): Likewise. + * alpha.c (alpha_sr_alias_set): New variable. + (override_options): Set it. + (alpha_expand_prologue, alpha_expand_epilogue): Use it. + (mode_mask_operand): Fix signed-unsigned comparison warning. + (alpha_expand_block_move): Likewise. + (print_operand): Likewise. + (get_aligned_mem): Use change_address. + (alpha_set_memflags, alpha_set_memflags_1): Set the alias set. + (alphaev4_insn_pipe, alphaev4_next_group): New functions. + (alphaev4_next_nop, alphaev5_next_nop): New functions. + (alpha_align_insns): Remade from old alphaev5_align_insns + to handle multiple processors. + (alpha_reorg): Call alpha_align_insns for both ev4 and ev5. + * output.h (label_to_alignment): Prototype. - * dyn-string.h (dyn_string_append): Likewise. + * tree.c (new_alias_set): New function. + * tree.h (new_alias_set): Declare it. + * c-common.c (c_get_alias_set): Use it. - * final.c (end_final, output_operand_lossage, asm_fprintf): Likewise. +Sun Sep 20 12:35:55 1998 Richard Henderson - * output.h (end_final, output_operand_lossage, asm_fprintf, - named_section, decode_reg_name, make_decl_rtl, user_label_prefix): - Likewise. + * fold-const.c (fold): Yet another COND_EXPR bug: when folding + to an ABS expr, convert an unsigned input to signed. - * profile.c (init_branch_prob): Likewise. - - * toplev.c (set_target_switch, vmessage, - v_message_with_file_and_line, v_message_with_decl, - v_error_with_file_and_line, v_error_with_decl, v_error_for_asm, - verror, vfatal, v_warning_with_file_and_line, v_warning_with_decl, - v_warning_for_asm, vwarning, vpedwarn, v_pedwarn_with_decl, - v_pedwarn_with_file_and_line, vsorry, v_really_sorry, - open_dump_file, dump_rtl, clean_dump_file, - print_version, print_single_switch, print_switch_values, - dump_base_name, debug_args, lang_independent_options, - user_label_prefix, documented_lang_options, target_switches, - target_options, print_time, pfatal_with_name, fatal_io_error, - fatal_insn, default_print_error_function, print_error_function, - report_error_function, error_with_file_and_line, error_with_decl, - error_for_asm, error, fatal, warning_with_file_and_line, - warning_with_decl, warning_for_asm, warning, pedwarn, - pedwarn_with_decl, pedwarn_with_file_and_line, sorry, - really_sorry, botch, output_quoted_string, output_file_directive, - open_dump_file, rest_of_decl_compilation, display_help, main): - Likewise. +Sun Sep 20 12:14:45 1998 Jeffrey A Law (law@cygnus.com) - * toplev.h (print_time, fatal, fatal_io_error, pfatal_with_name, - fatal_insn, warning, error, pedwarn, pedwarn_with_file_and_line, - warning_with_file_and_line, error_with_file_and_line, sorry, - really_sorry, default_print_error_function, report_error_function, - rest_of_decl_compilation, pedwarn_with_decl, warning_with_decl, - error_with_decl, error_for_asm, warning_for_asm, output_quoted_string, - output_file_directive, botch): Likewise. + * fold-const.c (fold): Fix another type in COND_EXPR handling code. - * tree.h (make_decl_rtl): Likewise. +1998-09-20 Michael Hayes - * varasm.c (strip_reg_name, named_section, decode_reg_name, - make_decl_rtl): Likewise. + * configure.in: Add support for c4x targets. + * configure: Rebuilt. -Mon Jan 18 11:35:49 1999 Gavin Romig-Koch +Sun Sep 20 00:00:51 1998 Richard Henderson - * Makefile.in (TCL_LIBRARY): Use 'cd' to find the library - directory logically rather than physically. + * combine.c (distribute_notes): If an insn is a cc0 user, only + delete it if we can also delete the cc0 setter. -Mon Jan 18 09:05:37 1999 Kaveh R. Ghazi +Sun Sep 20 00:22:23 1998 Michael Tiemann - * loop.c (insert_bct): Hide the definition of variables - `increment_direction', `compare_direction', `add_iteration' and - `loop_var_mode'. + * fold-const.c (fold): Fix typo in COND_EXPR handling code. + (invert_truthvalue): Enable truthvalue inversion for + floating-point operands if -ffast-math. - * recog.c (mode_dependent_address_p): Mark parameter `addr' with - ATTRIBUTE_UNUSED. Mark label `win' with ATTRIBUTE_UNUSED_LABEL. - (mode_independent_operand): Mark label `lose' with - ATTRIBUTE_UNUSED_LABEL. +Sat Sep 19 23:58:07 1998 Melissa O'Neill - * regclass.c (n_occurrences): Remove prototype and definition. + * configure.in: Disable collect2 for nextstep. Instead use + crtbegin/crtend. + * configure: Rebuilt. + * config/nextstep.h (STARTFILE_SPEC): Add crtbegin. + (ENDFILE_SPEC): Define. + (OBJECT_FORMAT_MACHO): Define. + (EH_FRAME_SECTION_ASM_OP): Define. + * crtstuff.c: Handle MACHO. - * reload.c (find_reloads_address_1): Mark variable `tem' with - ATTRIBUTE_UNUSED. +Sun Sep 20 00:24:24 1998 Robert Lipe - * reload1.c (reload): Cast the first two arguments of `bcopy' to PTR. + * config/i386/sco5.h (TARGET_MEM_FUNCTIONS): Define. - * sbitmap.c (sbitmap_copy): Likewise. +1998-09-19 Torbjorn Granlund - * scan-decls.c (scan_decls): Hide label `handle_comma'. + * fp-bit.c (pack_d): Do not clear SIGN when fraction is 0. + (_fpadd_parts): Get sign right for 0. - * toplev.c (output_lang_identify): Mark prototype with - ATTRIBUTE_UNUSED. +1998-09-19 Michael Hayes - * tree.c (make_node): Cast the first argument of `bzero' to PTR. - (make_tree_vec): Likewise. - (build1): Likewise. + * ginclude/varargs.h: Add support for C4x target. + * ginclude/stdargs.h: Likewise. - * varasm.c (assemble_static_space): Mark variable `tem' with - ATTRIBUTE_UNUSED. +Sat Sep 19 12:05:09 1998 Richard Henderson -Mon Jan 18 04:28:36 1999 Nathan Sidwell + * alpha.c (alpha_return_addr): SET should be VOIDmode. + (alpha_emit_set_long_const): Rewrite to be callable from reload + and 32-bit hosts. + (alpha_expand_epilogue): Update for alpha_emit_set_long_const. + * alpha.md (movdi): Likewise. - * Makefile.in (GCOV_INSTALL_NAME): New macro. - (install-common): Use it. - (uninstall): Use it. - (uninstall): Use correct names for protoize and unprotoize. +Sat Sep 19 07:33:36 1998 Richard Earnshaw (rearnsha@arm.com) -Mon Jan 18 03:52:56 1999 Christian Bruel - Jeffrey A Law (law@cygnus.com) + * arm.c (add_constant): New parameter address_only, change caller. + Set it nonzero if taking the address of an item in the pool. + (arm_reorg): Handle cases where we need the address of an item in + the pool. - * flow.c (last_mem_set): Delete variable. References removed. - (mem_set_list): New variable. - (life_analysis): Initialize and finalize alias analysis. - (propagate_block); Initialize mem_set_list. Clear for CALL_INSNs. - (insn_dead_p): For a store to memory, search the entire mem_set_list - for a match. - (mark_set_1): Kill entries on the mem_set_list for aliased writes or - changes to their addresses. Add new entries to the mem_set_list for - memory writes writes. - (mark_used_regs): Kill entries on the mem_set_list which may be - referenced by a load operation. + * arm.c (bad_signed_byte_operand): Check both arms of a sum in + a memory address. + * arm.md (splits for *extendqihi_insn and *extendqisi_insn): Handle + memory addresses that are not in standard canonical form. -Mon Jan 18 01:01:02 1999 Jeffrey A Law (law@cygnus.com) +Sat Sep 19 01:00:32 1998 Michael Hayes (mph@elec.canterbury.ac.nz) - * alias.c (base_alias_check): Add missing return for differing - symbols case. + * README.C4X: New file with information about the c4x ports. + * ginclude/va-c4x.h: New file for c4x varargs support. + * config/c4x: New directory with c4x port files. -Mon Jan 18 00:36:13 1999 Rainer Orth +Fri Sep 18 22:52:05 1998 Jeffrey A Law (law@cygnus.com) - * mips-tdump.c (print_file_desc): Handle unknown filenames and - missing local symbols. + * reload.c (find_reloads): Do not replace a pseudo with + (MEM (reg_equiv_addr)) in the initializing insn for the + pseudo. -Sun Jan 17 21:04:31 1999 Richard Henderson +Fri Sep 18 23:50:56 1998 David Edelsohn - * jump.c (rtx_renumbered_equal_p): Special case CODE_LABEL. + * toplev.c (rest_of_compilation): Set bct_p on second call to + loop_optimize. + * loop.c (loop_optimize, scan_loop, strength_reduce): New argument + bct_p. + (strength_reduce): Only call analyze_loop_iterations and + insert_bct if bct_p set. + (check_dbra_loop): Fix typo. + (insert_bct): Use word_mode instead of SImode. + (instrument_loop_bct): Likewise. Do not delete iteration count + condition code generation insn. Initialize iteration count before + loop start. + * rtl.h (loop_optimize): Update prototype. - * system.h (bcopy): Implement with memmove not memcpy. + * ginclude/va-ppc.h (va_arg): longlong types in overflow area are + not doubleword aligned. -Sun Jan 17 19:23:20 1999 Jeffrey A Law (law@cygnus.com) + * rs6000.c (optimization_options): New function. + (secondary_reload_class): Only call true_regnum for PSEUDO_REGs. + * rs6000.h (OPTIMIZATION_OPTIONS): Define. + (REG_ALLOC_ORDER): Allocate highest numbered condition regsiters + first; cr1 can be used for FP record condition insns. - * Makefile.in (cppulp.o): Add dependencies. +Fri Sep 18 09:44:55 1998 Nick Clifton - * i386.md (integer conditional moves): Add missing earlyclobbers. + * config/m32r/m32r.h (m32r_block_immediate_operand): Add to + PREDICATE_CODES. - * regmove.c (optimize_reg_copy_1): Undo Aug 18 change. Update - REG_N_CALLS_CROSSED and REG_LIVE_LENGH if and only if we change - where a register is live. + * config/m32r/m32r.md: Add "movstrsi" and "movstrsi_internal" + patterns. -Sun Jan 17 03:20:47 1999 H.J. Lu (hjl@gnu.org) + * config/m32r/m32r.c (m32r_print_operand): Add 's' and 'p' + operators. + (block_move_call): New function: Call a library routine to copy a + block of memory. + (m32r_expand_block_move): New function: Expand a "movstrsi" + pattern into a sequence of insns. + (m32r_output_block_move): New function: Expand a + "movstrsi_internal" pattern into a sequence of assembler opcodes. + (m32r_block_immediate_operand): New function: Return true if the + RTL is an integer constant, less than or equal to MAX_MOVE_BYTES. - * reg-stack.c (subst_stack_regs_pat): Abort if the destination - of a FP conditional move is not on the FP register stack. +Thu Sep 17 16:42:16 1998 Andrew MacLeod -Sun Jan 17 01:15:04 1999 Jeff Law (law@cygnus.com) + * except.c (start_catch_handler): Issue 'fatal' instead of 'error' and + re-align some code. + * libgcc2.c (__eh_rtime_match): fprintf a runtime error. Use . - * version.c: Bump for snapshot. +Thu Sep 17 12:24:33 1998 J"orn Rennecke -Sat Jan 16 23:40:33 1999 Jeffrey A Law (law@cygnus.com) + * regmove.c (copy_src_to_dest): Check that modes match. - * reload1.c (reload_cse_regs_1): Do not call - reload_cse_simplify_operands for an insn with asm operands. +Wed Sep 16 22:10:42 1998 Robert Lipe - * cccp.c (print_help): Fix typos. - * cpplib.c (print_help): Fix typos. - * toplev.c (f_optiosn): Fix typos. - (documented_lang_options): Fix typos. + * config/i386/sco5.h (SUPPORTS_WEAK): True only if targeting ELF. -Sat Jan 16 21:48:17 1999 Marc Espie (Marc.Espie@openbsd.org) +Wed Sep 16 15:24:54 1998 Richard Henderson - * gcc.c (do_spec_1): Fix obvious typo. + * i386.h (PREFERRED_RELOAD_CLASS): Respect an existing class + narrower than FLOAT_REGS. -Sat Jan 16 19:31:07 1999 Kaveh R. Ghazi +Wed Sep 16 17:51:00 1998 Alexandre Oliva - * c-decl.c (duplicate_decls): If `warn_traditional', warn when - a non-static function declaration follows a static one. + * cpplib.c: Removed OLD_GPLUSPLUS_INCLUDE_DIR. + * cccp.c: Likewise. + * Makefile.in (old_gxx_include_dir): Removed. - * invoke.texi (-Wtraditional): Document the extra check now done - by this flag. +Wed Sep 16 12:29:22 1998 Nick Clifton -Sat Jan 16 15:13:46 1999 Jeffrey A Law (law@cygnus.com) + * config/sh/sh.h: Update definition of HANDLE_PRAGMA to match + new specification. - * pa.md (shadd): Create shadd insns, even if the result of the shift is - needed without the addition. + * config/sh/sh.c (handle_pragma): Rename to sh_handle_pragma(). + (sh_handle_pragma): Change function arguments to match new + specification for HANDLE_PRAGMA. -Sat Jan 16 10:48:16 1999 J"orn Rennecke +Wed Sep 16 12:43:19 1998 Kaveh R. Ghazi - * sh.md (movdf, movsf): Temporary workaround for no_new_pseudos lossage. + * gen-protos.c (parse_fn_proto): Cast argument of ISALNUM to + `unsigned char'. + (main): Mark parameter `argc' with ATTRIBUTE_UNUSED. + When generating output, initialize missing struct member to zero. -Fri Jan 15 23:44:37 1999 Richard Henderson +Wed Sep 16 14:47:43 1998 J"orn Rennecke - * sparc.c (sparc_issue): Add hypersparc/sparclite86x entries. + * regmove.c (copy_src_to_dest): Don't copy if that requires + (a) new register(s). -Fri Jan 15 22:30:04 1999 David Edelsohn +Wed Sep 16 01:29:12 1998 Bernd Schmidt - * rs6000.h (CONST_OK_FOR_LETTER_P): Do not assume 32-bit CONST_INT. - * rs6000.c (u_short_cint_operand, add_operand, logical_operand, - non_add_cint_operand, non_logical_cint_operand): Likewise. - (get_issue_rate): Add CPU_PPC604E case. - * rs6000.md (movdi, !TARGET_POWERPC64 splitters): Handle 64-bit hosts. + * global.c (reg_allocno): Now static. + * reload1.c (reg_allocno): Delete declaration. + (order_regs_for_reload): Take no arguments. Don't treat regs + allocated by global differently than those allocated by local-alloc. -Fri Jan 15 18:42:12 1999 Richard Henderson +Wed Sep 16 01:09:01 1998 Kamil Iskra - * expr.c (queued_subexp_p): Make public. - * expr.h (queued_subexp_p): Declare it. - * recog.c (asm_operand_ok): New function. - (check_asm_operands): Use it. After reload, use constrain_operands - instead. - * recog.h (asm_operand_ok): Declare it. - * stmt.c (expand_asm_operands): Use it to try harder to make - asms initially satisfy their constraints. + * m68k/m68k.c (output_function_prologue): Reverse NO_ADDSUB_Q + condition, fix format strings. + (output_function_epilogue): Likewise. -Fri Jan 15 17:43:59 1999 Jeffrey A. Law + * m68k/m68k.c: Don't include directly. - * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Do not create - (mem (lo_sum (...)) for TFmode unless TARGET_V9. +Wed Sep 16 00:30:56 1998 Geoff Keating -Sat Jan 16 12:47:15 1999 Michael Hayes + * gcse.c: New definition NEVER_SET for reg_first_set, reg_last_set, + mem_first_set, mem_last_set; because 0 can be a CUID. + (oprs_unchanged_p): Use new definition. + (record_last_reg_set_info): Likewise. + (record_last_mem_set_info): Likewise. + (compute_hash_table): Likewise. - * config/c4x/c4x.md (not_repeat_reg): Allow ldp instruction - in delay slot of RPTBD. +Tue Sep 15 22:59:52 1998 Jeffrey A Law (law@cygnus.com) -Sat Jan 16 12:26:40 1999 Michael Hayes + * rs6000.c (output_epilogue): Handle Chill. - * config/c4x/libgcc.S (___divhi3, ___modhi3): Fix long long - divide and modulo sign problem. + * mn10200.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Define. + * mn10300.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Define. -Fri Jan 15 11:02:31 1999 Michael Hayes - - * unroll.c (loop_iterations): Return 0 if the last loop insn - is not a jump insn or if the loop has multiple back edges. - -1999-01-15 Manfred Hollstein - - * configure.in (fixinc_defs): Do not define for m[68]8k-motorola-sysv{,3}; - it's working properly now. Remove comment saying "see m68k-motorola-sysv - as an example". - * configure: Regenerate using autoconf. - - * fixinc/fixincl.c (main): Do not ignore SIGCHLD. - -Thu Jan 14 22:38:41 1999 Jeffrey A Law (law@cygnus.com) - - * unroll.c (find_splittable_givs): For a DEST_ADDR giv, do not share - a register with another DEST_ADDR giv if the address is not valid. + * combine.c (make_extraction): If no mode is specified for + an operand of insv, extv, or extzv, default it to word_mode. + (simplify_comparison): Similarly. + * expmed.c (store_bit_field): Similarly. + (extract_bit_field): Similarly. + * function.c (fixup_var_regs_1): Similarly. + * recog.c (validate_replace_rtx_1): Similarly. + * mips.md (extv, extzv, insv expanders): Default modes for most + operands. Handle TARGET_64BIT. + (movdi_uld, movdi_usd): New patterns. - * pa.c (hppa_expand_epilogue): Save and restore the static chain - around the call to mcount. + * pa.c (emit_move_sequence): Do not replace a pseudo with its + equivalent memory location unless we have been provided a scratch + register. Similarly do not call find_replacement unless a + scratch register has been provided. - * h8300.h (ASM_OUTPUT_LABELREF): Use asm_fprintf, not fprintf. +Tue Sep 15 19:23:01 1998 Bernd Schmidt - * stmt.c (expand_end_case): Use emit_cmp_and_jump_insns to avoid - generating non-canonical rtl. + * i386.h (PREFERRED_RELOAD_CLASS): For standard 387 constants, + return FLOAT_REGS. -1999-01-14 Vladimir N. Makarov +Tue Sep 15 19:09:06 1998 Richard Henderson - * config/i960/i960.c (i960_output_move_double_zero, - i960_output_move_quad_zero): New functions for moving zeros. - (i960_output_move_double, i960_output_move_quad): Additional code - for situation when moving unaligned register group. + * tree.h (BUILT_IN_CALLER_RETURN_ADDRESS): Unused. Kill. + (BUILT_IN_FP, BUILT_IN_SP, BUILT_IN_SET_RETURN_ADDR_REG): Kill. + (BUILT_IN_EH_STUB_OLD, BUILT_IN_EH_STUB, BUILT_IN_SET_EH_REGS): Kill. + (BUILT_IN_EH_RETURN, BUILT_IN_DWARF_CFA): New. + * c-decl.c (init_decl_processing): Update accordingly. + * expr.c (expand_builtin): Likewise. - * config/i960/i960.h (i960_output_move_double_zero, - i960_output_move_quad_zero): The function definitions. + * rtl.h (global_rtl): Add cfa entry. + (virtual_cfa_rtx, VIRTUAL_CFA_REGNUM): New. + (LAST_VIRTUAL_REGISTER): Update. + * emit-rtl.c (global_rtl): Add cfa entry. + (init_emit): Initialize it. + * function.c (cfa_offset): New. + (instantiate_virtual_regs): Initialize it. + (instantiate_virtual_regs_1): Instantiate virtual_cfa_rtx. + (expand_function_end): Call expand_eh_return. + * tm.texi (ARG_POINTER_CFA_OFFSET): New. - * config/i960/i960.md (movdi+1, movti+1): Usage of the functions. + * except.c (current_function_eh_stub_label): Kill. + (current_function_eh_old_stub_label): Likwise; update all references. + (expand_builtin_set_return_addr_reg): Kill. + (expand_builtin_eh_stub_old, expand_builtin_eh_stub): Kill. + (expand_builtin_set_eh_regs): Kill. + (eh_regs): Produce a third reg for the actual handler address. + (eh_return_context, eh_return_stack_adjust): New. + (eh_return_handler, eh_return_stub_label): New. + (init_eh_for_function): Initialize them. + (expand_builtin_eh_return, expand_eh_return): New. + * except.h: Update prototypes. + * flow.c (find_basic_blocks_1): Update references to the stub label. + * function.h (struct function): Kill stub label elements. -1999-01-13 Vladimir N. Makarov + * libgcc2.c (in_reg_window): For REG_SAVED_REG, check that the + register number is one that would be in the previous window. + Provide a dummy definition for non-windowed targets. + (get_reg_addr): New function. + (get_reg, put_reg, copy_reg): Use it. + (__throw): Rely on in_reg_window, not INCOMING_REGNO. Kill stub + generating code and use __builtin_eh_return. Use __builtin_dwarf_cfa. - * config/i960/i960.c (i960_function_prologue): New code (optimal - solution) for saving global registers in local registers. - (form_reg_groups, reg_group_compare, split_reg_group): New - functions used by the code. - (reg_group): New structure definition for the new code. + * alpha.c (alpha_eh_epilogue_sp_ofs): New. + (alpha_init_expanders): Initialize it. + (alpha_expand_epilogue): Use it. + * alpha.h: Declare it. + * alpha.md (eh_epilogue): New. -1999-01-13 Manfred Hollstein + * m68h.h (ARG_POINTER_CFA_OFFSET): New. + * sparc.h (ARG_POINTER_CFA_OFFSET): New. - * fixinc/fixincl.c (create_file): Pass file creation mask as - third parameter to "open". Use O_TRUNC flag to open instead of - explicitly unlink'ing the file. - (process): and forget about the "chmod" stuff. +Tue Sep 15 19:31:58 1998 Michael Meissner -Wed Jan 13 20:12:37 1999 Richard Henderson + * i960.h (CONST_COSTS): Fix thinko. Test flag, not the constant + flag bit mask. - * integrate.c (expand_inline_function): Recognize (mem (addressof)) - and substitute. Copy the return value from there into a new pseudo. +Tue Sep 15 14:10:54 1998 Andrew MacLeod -Wed Jan 13 16:47:00 1999 Catherine Moore + * except.h (struct eh_entry): Add false_label field. + (end_catch_handler): Add prototype. + * except.c (push_eh_entry): Set false_label field to NULL_RTX. + (start_catch_handler): When using old style exceptions, issue + runtime typematch code before continuing with the handler. + (end_catch_handler): New function, generates label after handler + if needed by older style exceptions. + (expand_start_all_catch): No need to check for new style exceptions. + (output_exception_table_entry): Only output the first handler label + for old style exceptions. + * libgcc2.c (__eh_rtime_match): New routine to lump runtime matching + mechanism into one function, if a runtime matcher is provided. - * config/arm.c (output_func_epilogue): Check TARGET_ABORT_NORETURN - before generating a call to abort for volatile functions. - * config/arm.h (ARM_FLAG_ABORT_NORETURN): Define. - (TARGET_ABORT_NORETURN): Define. - (abort-on-noreturn): New option. +Tue Sep 15 13:53:59 1998 Andrew MacLeod -Thu Jan 14 13:52:42 1999 Michael Hayes + * config/i960/i960.h (SLOW_BYTE_ACCESS): Change definition to 1. - * config/c4x/c4x.md (in_annul_slot_3): Correctly allow unarycc - and binarycc operations in 3rd annulled delay slot! +Tue Sep 15 09:59:01 1998 Mark Mitchell -Wed Jan 13 16:16:44 1999 Catherine Moore + * integrate.c (copy_decl_list): Fix typo. - * config/arm.c (output_func_epilogue): Check TARGET_ABORT_NORETURN - before generating a call to abort for volatile functions. - * config/arm.h (ARM_FLAG_ABORT_NORETURN): Define. - (TARGET_ABORT_NORETURN): Define. - (abort-on-noreturn): New option. +Tue Sep 15 04:18:52 1998 David S. Miller -Wed Jan 13 13:30:08 1999 Kaveh R. Ghazi + * config/sparc/sparc.md (movdf_const_intreg_sp32): Fix length + attribute. - * cccp.c (xstrdup): Renamed from `savestring'. All callers changed. - Remove prototype which we get from libiberty.h. +Mon Sep 14 14:02:53 1998 Jeff Law (law@cygnus.com) - * collect2.c (xstrdup): Likewise. + * version.c: Bump for snapshot. - * genextract.c (xstrdup): Likewise for `copystr'. - (mybzero): Remove it and use `memset' instead. +Mon Sep 14 10:33:56 1998 Jeff Law (law@cygnus.com) - * genoutput.c (mybcopy, mybzero): Remove these. All callers changed - to use `memcpy' and `memset' instead. + * version.c: Bump for snapshot. - * genrecog.c (xstrdup): Renamed from `copystr'. All callers - changed. Remove prototype. - (mybcopy, mybzero): Remove these and use memcpy/memset. +Mon Sep 14 09:51:05 1998 Jeff Law (law@cygnus.com) -Wed Jan 13 00:59:04 1999 Jeffrey A Law (law@cygnus.com) + * version.c: Bump for snapshot. - * mips.h (LOAD_EXTEND_OP): Correct for SImode and CCmode moves when - generating code for TARGET_64BIT. +Sun Sep 13 22:10:18 1998 David S. Miller -Tue Jan 12 14:05:37 1999 David Edelsohn + * invoke.texi (C Dialect Options): Put back missing @end itemize. - * rs6000.c (print_operand, cases 'm' and 'M'): Do not depend on - HOST_WIDE_INT word-size. - (rs6000_stack_info): Remove redundant alignment of fpmem. +Mon Sep 14 02:33:46 1998 Alexandre Oliva -Tue Jan 12 14:05:37 1999 Richard Henderson + * configure.in: Remove usage of `!' to negate the result of a + command; some common shells do not support it. - * rs6000.c (short_cint_operand): Remove CONSTANT_P_RTX handling. - (u_short_cint_operand, reg_or_cint_operand, logical_operand): Likewise. - (input_operand): Adjust CONSTANT_P_RTX handling. - * rs6000.h (PREDICATE_CODES): Remove CONSTANT_P_RTX references. - * rs6000.md (movsi): Adjust CONSTANT_P_RTX handling. - (movhi, movqi): Remove CONSTANT_P_RTX handling. - (movdi): Adjust CONSTANT_P_RTX handling. +Sun Sep 13 19:17:35 1998 David S. Miller -1999-01-12 Manfred Hollstein + * configure.in: In sparc9-sol2 config, use 'if test' not + brackets. + * configure: Rebuilt. - * configure: Regenerate using autoconf. + * config/sparc/sol2-sld-64.h (SPARC_DEFAULT_CMODEL): Change to + CM_MEDANY. + (CPP_CPU_SPEC): Do not define _LP64, header files do this. + (CPP_CPU_DEFAULT_SPEC): Likewise. + * config/sparc/sol2.h (INIT_SUBTARGET_OPTABS): Get the names right + for arch64 libfuncs. - * fixinc/Makefile.in (INCLUDES): Add -I$(srcdir)/../../include. - * fixinc/fixincl.c (SIGCHLD): Use SIGCLD on (very) old systems. - (process): "fchmod" isn't available on all systems, use "chmod" - instead. - * fixinc/server.c: Add #include . - (STDIN_FILENO): Add default definition if no include file defines - it already. - (STDOUT_FILENO): Likewise. + * config/sparc/sparc.md (goto_handler_and_restore): Allow any mode + for operand zero. -Tue Jan 12 10:23:24 1999 Stan Cox +Sun Sep 13 09:11:59 1998 Kaveh R. Ghazi - * mips.md (call_value_internal3c): New pattern for -mips16 -mlong-calls. + * acconfig.h (NEED_DECLARATION_STRSIGNAL): Provide a stub. -1999-01-12 Manfred Hollstein + * collect2.c: Don't declare `sys_siglist' here. + (my_strsignal): Prototype and define new function. Use it in + place of `sys_siglist' hacks. - * m68k/mot3300.h (ADD_MISSING_POSIX, ADD_MISSING_XOPEN): Define to - ensure all prototypes necessary for building libio will be available. - * m68k/xm-mot3300.h (ADD_MISSING_POSIX, ADD_MISSING_XOPEN): Remove - definitions here as they are not host specific. - * m88k/sysv3.h, m88k/xm-sysv3.h: Likewise. + * mips_tfile.c: Likewise. -Tue Jan 12 02:53:46 1999 Richard Henderson + * configure.in (AC_CHECK_FUNCS): Check for strsignal. + (GCC_NEED_DECLARATIONS): Likewise. - * cse.c (cse_insn): Never prefer (const (constant_p_rtx)). + * system.h (strsignal): Prototype it, if necessary. + (sys_siglist): Declare it, if necessary. -Tue Jan 12 02:36:10 1999 Jeff Law (law@cygnus.com) +Sun Sep 13 04:37:28 1998 David S. Miller - * version.c: Bump for snapshot. + * loop.c (move_movables): While removing insn sequences, preserve + the next pointer of the most recently deleted insn when we skip + over a NOTE. -Tue Jan 12 01:30:19 1999 Richard Henderson +Sun Sep 13 08:13:39 1998 Ben Elliston - * rtl.c (rtx_alloc): Use memset instead of inline loop. + * objc/config-lang.in: Do not output the name of the selected + thread file when building the front-end. The Makefile for the + runtime library will do this. - * recog.h (recog_op_alt): Declare extern. + * objc/Make-lang.in: Do not build the runtime library or install + the Objective-C header files. The Makefile for the runtime + library will do this. -Tue Jan 12 00:23:31 1999 Richard Henderson + * objc/Makefile.in (all.indirect): Only build the front-end. + (compiler): Rename to `frontend'. + (obj-runtime): Remove target. + (copy-headers): Likewise. + (clean): No need to remove `libobjc.a' any longer. - * function.c (purge_addressof_1): If the note accesses a mem+addressof - in a wider mode than any replacement, adjust the cached replacement. - Cache trivial substitutions as well. +Sat Sep 12 11:37:19 1998 Michael Meissner -Tue Jan 12 00:06:00 1999 Richard Henderson + * rs6000.h ({ASM,CPP}_CPU_SPEC): Add support for all machines + supported with -mcpu=xxx. - * Makefile.in (OBJECTS): Add sbitmap.o. - (BASIC_BLOCK_H): Add sbitmap.h. - * basic-block.h: Move simple bitmap code to sbitmap.h. - * flow.c: Move simple bitmap code to sbitmap.c. - * sbitmap.h, sbitmap.c: New files. +Fri Sep 11 23:55:54 1998 David S. Miller -Mon Jan 11 23:51:50 1999 Richard Henderson + * flow.c (mark_set_1): Recognize multi-register structure return + values in CALL insns. + (mark_used_regs): Likewise. + (count_reg_sets_1): Likewise. + (count_reg_references): Likewise. + * rtlanal.c (note_stores): Likewise. + (reg_overlap_mentioned_p): Likewise. + * haifa-sched.c (check_live_1): Likewise. + (update_live_1): Likewise. + (sched_analyze_1): Likewise. + (sched_note_set): Likewise. + (birthing_insn_p): Likewise. + (attach_deaths): Likewise. - * alpha.h (TARGET_SWITCHES): Document switches. - (TARGET_OPTIONS): Likewise. + * config/sparc/sparc.md (movdf_const_intreg_sp64): Disable. - * alpha/elf.h (ASM_FINISH_DECLARE_OBJECT): Use HOST_WIDE_INT_PRINT_DEC. +Fri Sep 11 22:57:55 1998 Eric Dumazet -Mon Jan 11 22:54:14 1999 Richard Henderson + * config/i386/sco5.h (ASM_WEAKEN_LABEL): Defined as in svr4.h. - * tree.c (new_alias_set): Return zero if !flag_strict_aliasing. +Thu Sep 10 22:02:04 1998 David S. Miller -Mon Jan 11 22:36:01 1999 Richard Henderson + * glimits.h (__LONG_MAX__): Recognize __sparcv9 too. - * basic-block.h (basic_block_head): Rename to x_basic_block_head. - (basic_block_end): Rename to x_basic_block_end. - (BLOCK_HEAD, BLOCK_END): Update. +Thu Sep 10 21:19:10 1998 Jakub Jelinek - * caller-save.c: Change basic_block_head/end references to - BLOCK_HEAD/END. - * combine.c, flow.c, function.c, gcse.c, global.c: Likewise. - * graph.c, haifa-sched.c, local-alloc.c, regclass.c: Likewise. - * regmove.c, reload1.c, reorg.c, sched.c: Likewise. + * configure.in: Add check for GAS subsection -1 support. + * acconfig.h (HAVE_GAS_SUBSECTION_ORDERING): Add. + * configure config.in: Rebuilt. + * config/sparc/sparc.h (CASE_VECTOR_MODE): For V9 flag_pic, use + SImode is subsection -1 works, else use DImode. + (ASM_OUTPUT_ADDR_VEC_START, ASM_OUTPUT_ADDR_VEC_END): Define if + subsection -1 works. + * config/sparc/sparc.c (sparc_output_addr_vec, + sparc_output_addr_diff_vec): Use them if defined. -Sat Jan 9 23:54:09 1999 Kaveh R. Ghazi +Thu Sep 10 10:46:01 1998 Mark Mitchell - * gcc.c (xstrerror): Renamed from my_strerror. All callers - changed. Remove prototype since we get that from libiberty.h. + * tree.h (DECL_ORIGIN): New macro. + * integrate.c (copy_and_set_decl_abstract_origin): New function. + (copy_decl_list): Use it. + (integrate_parm_decls): Likewise. + (integrate_decl_tree): Likewise. + * dwarf2out.c (decl_ultimate_origin): Simplify. + * dwarfout.c (decl_ultimate_origin): Likewise. + * c-decl.c (duplicate_decls): Use DECL_ORIGIN. + (pushdecl): Likewise. - * protoize.c (xstrerror): Likewise. +Thu Sep 10 08:01:31 1998 Anthony Green -Sat Jan 9 23:22:04 1999 Kaveh R. Ghazi + * config/rs6000/rs6000.c (output_epilog): Add Java support. - * gcc.c (read_specs): Ensure format specifiers match their arguments. +Thu Sep 10 14:48:59 1998 Martin von Löwis -Sat Jan 9 20:04:24 1999 Richard Henderson + * invoke.texi (C++ Dialect Options): Document -fhonor-std. - * tree.c (copy_node): Oops. That would be copy not zero - in that last change. +Thu Sep 10 01:38:05 1998 Jeffrey A Law (law@cygnus.com) -Sun Jan 10 15:35:41 1999 Michael Hayes + * reg-stack.c (straighten_stack): Do nothing if the virtual stack is + empty or has a single entry. - * config/c4x/c4x.c: Include system.h. - (c4x_caller_save_map): Disable caller save for RC. - (c4x_optimization_options): Disable scheduling before reload. - (valid_parallel_load_store) : Define return type as int. - Remove unused variable regs. - * config/c4x/c4x.h (REGISTER_MOVE_COST): Make independent of register - class. - * config/c4x/c4x.md (rotlqi3, rotrqi3): Fix up emitted RTL to - handle rotations. - (*db, decrement_and_branch_until_zero): Fix up constraints - to keep reload happy. + * toplev.c (rest_of_compilation): Open up the dump file for reg-stack + before calling reg_to_stack. -Sat Jan 9 18:35:29 1999 Richard Henderson +Thu Sep 10 00:03:34 1998 Richard Henderson - * tree.c (make_node): Call bzero instead of inline clear. - (copy_node, make_tree_vec, build1): Likewise. - (get_identifier): Call strlen instead of inline count. - (maybe_get_identifier): Likewise. + * alpha.c (alphaev5_insn_pipe): Abort on default case. + (alphaev5_next_group): Swallow CLOBBERs and USEs. -Sun Jan 10 14:04:51 1999 Michael Hayes + * c-tree.h (warn_long_long): Declare it. - * config/c4x/c4x.md (in_annul_slot_3): Allow unarycc and binarycc - operations in 3rd annulled delay slot. - (*lshrqi3_const_set): Disallow c constraint for operand0. - (modhi3+1, modhi3+2): Set attribute type to multi. - * config/c4x/c4x.c (c4x_S_constraint): Removed space in middle of - != operator. +Wed Sep 9 23:31:36 1998 (Stephen L Moshier) -Sat Jan 9 11:44:55 1999 Kaveh R. Ghazi + * emit-rtl.c (gen_lowpart_common): Disable optimization of + initialized float-int union if the value is a NaN. - * gansidecl.h: Allow attribute unused on labels only when we are - version 2.93 or higher. Not all versions of 2.92 have this feature. +Wed Sep 9 23:00:48 1998 Nathan Sidwell - * version.c: Bump minor number to 93. + * c-lex.c (real_yylex): Don't warn about long long constants if + we're allowing long long -Fri Jan 8 10:51:13 1999 Andreas Schwab +Wed Sep 9 21:58:41 1998 Bernd Schmidt - * config/m68k/m68k.h: Declare output_function_epilogue. - * recog.h: Declare next_insn_tests_no_inequality. + * except.h (current_function_eh_stub_label): Declare. + (current_function_eh_old_stub_label): Declare. + * function.h (struct function): New members eh_stub_label and + eh_old_stub_label. + * except.c (current_function_eh_stub_label): New variable. + (current_function_eh_old_stub_label): New variable. + (init_eh_for_function): Clear them. + (save_eh_status): Save them. + (restore_eh_status): Restore them. + (expand_builtin_eh_stub): Set current_function_eh_stub_label. + (expand_builtin_eh_stub_old): Set current_function_eh_old_stub_label. + * flow.c (find_basic_blocks_1): When handling a REG_LABEL note, don't + make an edge from the block that contains it to the block starting + with the label if this label is one of the eh stub labels. + If eh stub labels exist, show they are reachable from the last block + in the function. -Fri Jan 8 01:43:53 1999 Jeffrey A Law (law@cygnus.com) + * reload1.c (reload): Break out several subroutines and make some + variables global. + (calculate_needs_all_insns): New function, broken out of reload. + (calculate_needs): Likewise. + (find_reload_regs): Likewise. + (find_group): Likewise. + (find_tworeg_group): Likewise. + (something_needs_reloads): New global variable, formerly in reload. + (something_needs_elimination): Likewise. + (caller_save_spill_class): Likewise. + (caller_save_group_size): Likewise. + (max_needs): Likewise. + (group_size): Likewise. + (max_groups): Likewise. + (max_nongroups): Likewise. + (group_mode): Likewise. + (max_needs_insn): Likewise. + (max_groups_insn): Likewise. + (max_nongroups_insn): Likewise. + (failure): Likewise. - * stmt.c (optimize_tail_recursion): New function, extracted from ... - (expand_return): Use optimize_tail_recursion. - * tree.h (optimize_tail_recursion): Declare. + * print-rtl.c (print_rtx): For MEMs, print MEM_ALIAS_SET. - * toplev.c (compile_file): Move call to output_func_start_profiler - to after the loop to emit deferred functions. +Wed Sep 9 13:14:41 1998 Richard Henderson -Thu Jan 7 19:52:53 1999 Gerald Pfeifer + * loop.c (load_mems): Copy rtx for output mem. - * system.h (abort): Supply more detailed information on how to - report an Internal Compiler Error. +Wed Sep 9 15:16:58 1998 Gavin Romig-Koch -Thu Jan 7 09:25:58 1999 Bruce Korb (korb@datadesign.com) + * mips/abi64.h (LONG_MAX_SPEC): Don't set LONG_MAX for + mips1 or mips2 either. - * fixinc/fixincl.c (*): More decapitalization of variables - plus some explanatory comments. +Wed Sep 9 12:31:35 1998 Jeffrey A Law (law@cygnus.com) - * fixinc/Makefile.in fixinc/mkfixinc.sh: - When the fixincl program does not work for a certain system, - we substitute a shell script. Added user commentary when - this happens. + * pa.c (pa_reorg): New marking scheme for jumps inside switch + tables. + (pa_adjust_insn_length): Update to work with new marking scheme + for jumps inside switch tables. + * pa.md (switch_jump): Remove pattern. + (jump): Handle jumps inside jump tables. -Thu Jan 7 11:26:17 1999 Mark Mitchell + * Makefile.in (profile.o): Depend on insn-config.h - * calls.c (store_unaligned_arguments_into_pseudos): Use xmalloc to - allocate memory that will live beyond this function. - (expand_call): Free it here. +Wed Sep 9 09:36:51 1998 Jim Wilson -Thu Jan 7 03:08:17 1999 Richard Henderson + * iris6.h (DWARF2_UNWIND_INFO): Undef. - * sparc.h (PREFERRED_RELOAD_CLASS): Select GENERAL_REGS for - integer data not destined for fp regs. - (LEGITIMIZE_RELOAD_ADDRESS): New. +Wed Sep 9 01:32:01 1998 David S. Miller -Thu Jan 7 03:03:42 1999 Stan Cox - Richard Henderson - - Support for HyperSPARC and SPARClite86x: - * sparc.h (TARGET_CPU_hypersparc, TARGET_CPU_sparclite86x): New. - (CPP_CPU32_DEFAULT_SPEC): Fix up for the new targets. - (ASM_CPU32_DEFAULT_SPEC): Likewise. - (TARGET_CPU_DEFAULT): Likewise. - (enum processor_type): Likewise. - (CPP_ENDIAN_SPEC): Handle little endian data. - (LIBGCC2_WORDS_BIG_ENDIAN): Likewise. - (ADJUST_COST): Call sparc_adjust_cost. - * sparc.c (sparc_override_options): Fix up for the new targets. - (supersparc_adjust_cost): Make static. - (hypersparc_adjust_cost): New. - (ultrasparc_adjust_cost): Make static. - (sparc_adjust_cost): New. - * sparc.md (attr cpu): Add hypersparc and sparclite86x. - (function_unit): Add hypersparc scheduling rules. + Add preliminary native sparcv9 Solaris support. + * configure.in: Recognize sparv9-*-solaris2* + * configure: Rebuilt. + * config.sub: Recognize sparcv9 just like sparc64. + * config/sparc/sol2-c1.asm config/sparc/sol2-ci.asm + config/sparc/sol2-cn.asm: Macroize so it can be shared between + 32-bit and 64-bit Solaris systems. + * config/sparc/t-sol2: Assemble those with cpp. + * config/sparc/sparc.h (TARGET_CPU_sparcv9): New alias for v9. + (*TF*_LIBCALL): If ARCH64 use V9 names. + * config/sparc/{xm-sysv4-64,sol2-sld-64}.h: New files. - * configure.in (with_cpu handler): Recognize hypersparc. +Wed Sep 9 01:07:30 1998 Jakub Jelinek -Thu Jan 7 23:54:05 1999 Michael Hayes + * config/sparc/sparc.h (TARGET_CM_MEDMID): Fix documentation. + (CASE_VECTOR_MODE): Set to SImode even if PTR64, when MEDLOW and + not doing pic. + (ASM_OUTPUT_ADDR_{VEC,DIFF}_ELT): Check CASE_VECTOR_MODE not + Pmode. + * config/sparc/sparc.md (tablejump): Likewise, and sign extend op0 + to Pmode if CASE_VECTOR_MODE is something else. - * config/c4x/c4x.c: Added space after negation operator. - * config/c4x/c4x.h: Likewise. - * config/c4x/c4x.md: Likewise. +Wed Sep 9 00:10:31 1998 Jeffrey A Law (law@cygnus.com) -Thu Jan 7 23:39:27 1999 Michael Hayes + * prefix.c (update_path): Correctly handle cases where PATH is + a substring of the builtin prefix, but specifies a different + directory location. - * config/c4x/c4x.c (c4x_preferred_reload_class): Always return class. +Tue Sep 8 23:46:04 1998 Hans-Peter Nilsson -Thu Jan 7 00:29:25 1999 Bernd Schmidt + * expr.c: Corrected comment about what MOVE_RATIO does. + * config/alpha/alpha.h: Likewise. + * config/1750a/1750a.h: Likewise. + * config/clipper/clipper.h: Likewise. + * config/i386/i386.h: Likewise. - * combine.c (num_sign_bit_copies): In NEG, MULT, DIV and MOD cases, - when a test can't be performed due to limited width of - HOST_BITS_PER_WIDE_INT, use the more conservative approximation. - Fix UDIV case for cases where the first operand has the highest bit - set. +Tue Sep 8 22:56:12 1998 Jeffrey A Law (law@cygnus.com) -Thu Jan 7 00:01:38 1999 Lutz Vieweg + * configure.in (m68k-next-nextstep3*): Use collect2. + Similarly for x86 NeXT configurations. + * configure: Rebuilt. - * pa.h (reg_class): Add FPUPPER_REGS. - (REG_CLASS_NAMES): Similarly. - (REG_CLASS_CONTENTS): Similarly. - (REGNO_REG_CLASS): Handle FPUPPER_REGS. - (FP_REG_CLASS_P): Likewise. - (REG_CLASS_FROM_LETTER): Similarly. - (CLASS_MAX_NREGS): Similarly. +Tue Sep 8 01:38:57 1998 Nathan Sidwell -1999-01-06 Brendan Kehoe + * configure.in: Don't assume srcdir is .../gcc. + * configure: Rebuilt. - * fixincludes: For HP/UX 10.20, also look in curses_colr/curses.h - for a typedef of bool. Make sure to have a copy of the file is - in place before we look to fix it. Fix typo in variable name to - FILE. +Sat Sep 5 16:34:34 1998 John Wehle (john@feith.com) -Wed Jan 6 07:51:05 1999 Richard Henderson + * global.c: Update comments. + (global_alloc): Assign allocation-numbers + even for registers allocated by local_alloc in case + they are later spilled and retry_global_alloc is called. + (mark_reg_store, mark_reg_clobber, + mark_reg_conflicts, mark_reg_death): Always record a + conflict with a pseudo register even if it has been + assigned to a hard register. + (dump_conflicts): Don't list pseudo registers already assigned to + a hard register as needing to be allocated, but do list their + conflicts. + * local-alloc.c: Update comment. - * expr.c (expand_builtin) [case BUILT_IN_CONSTANT_P]: Use - value_mode for the return mode. +Mon Sep 7 23:38:01 1998 Jeffrey A Law (law@cygnus.com) -Wed Jan 6 17:55:19 1999 Robert Lipe + * configure.in: Check for bogus GCC_EXEC_PREFIX and LIBRARY_PATH. + * configure: Rebuilt. - * configure.in: New flag --with-dwarf2. If set, enables DWARF-2 - debugging as default. +Mon Sep 7 22:41:46 1998 Michael Meissner - * config/tm-dwarf2.h: New file. + * rs6000.c (rs6000_override_options): Fix name for ec603e, to add + missing 'c'. + * t-ppccomm (MULTILIB_MATCHES_FLOAT): Add support for -mcpu=xxx + for all targets that set -msoft-float. -Wed Jan 6 16:08:54 1999 Jeffrey A Law (law@cygnus.com) +Mon Sep 7 23:30:07 1998 Kaveh R. Ghazi - * h8300.h (ASM_OUTPUT_LABELREF): Define. + * toplev.c (print_switch_values): Make static to match prototype. - * pa.h (DONT_RECORD_EQUIVALENCE): Kill. - * local-alloc.c (update_equiv_regs): Corresponding changes. - * tm.texi (DONT_RECORD_EQUIVALENCE): Kill. +Mon Sep 7 19:13:59 1998 Jeffrey A Law (law@cygnus.com) - * calls.c (special_function_p): Push alloca test inside the large - conditional which excludes functions not at file scope or not - extern. + * configure.in: If we are unable to find the "gnatbind" program, + then do not configure the ada subdir. + * configure: Rebuilt. - * calls.c (special_function_p): New function broken out of - expand_call. - (precompute_register_parameters): Likewise. - (store_one_arg): Likewise. - (store_unaligned_argumetns_into_pseudos): Likewise. - (save_fixed_argument_area): Likewise. - (restore_fixed_argument_area): Likewise. - (expand_call): Corresponding changes. +Sun Sep 6 14:03:58 1998 Jeff Law (law@cygnus.com) -Thu Jan 7 00:12:24 1999 Michael Hayes + * version.c: Bump for snapshot. - * config/c4x/c4x.md (addqi3): If the destination operand is - a hard register other than an extended precision register, - emit addqi3_noclobber. - (*addqi3_noclobber_reload): New pattern added so that reload - will recognize a store of a pseudo, equivalent to the sum - of the frame pointer and a constant, as an add insn. +Sun Sep 6 13:28:07 1998 Jeff Law (law@cygnus.com) -1999-01-06 Manfred Hollstein + * version.c: Bump for snapshot. - * fixinc/fixincl.c: Re-indent according to the GNU standards. - fixinc/server.c: Likewise. - fixinc/server.h: Likewise. +Sun Sep 6 08:54:14 1998 Kaveh R. Ghazi -Wed Jan 6 10:43:29 1999 Andreas Schwab + * Makefile.in (toplev.o): Depend on $(EXPR_H). + (insn-extract.o, insn-attrtab.o): Depend on toplev.h. - * config/m68k/m68k.c (const_uint32_operand): Remove CONSTANT_P_RTX - handling. - (const_sint32_operand): Likewise. + * gansidecl.h: Define ATTRIBUTE_NORETURN. -Wed Jan 6 09:44:51 1999 Kaveh R. Ghazi + * genattrtab.c: Have insn-attrtab.c include toplev.h. - * toplev.h: In addition to checking _JBLEN, also check if `setjmp' - is a macro when deciding if we can use `jmp_buf' in prototypes. + * genextract.c: Have insn-extract.c include toplev.h. -Wed Jan 6 03:18:53 1999 Mark Elbrecht + * rtl.h: Don't prototype `fatal_insn_not_found' and `fatal_insn'. - * configure.in (pc-msdosdjgpp): Set x_make to x-go32. - * configure: Rebuilt. - * i386/xm-go32.h: Define LIBSTDCXX. - * i386/x-go32: New. - * i386/go32.h (MD_EXEC_PREFIX): Define. - (FILE_NAME_ABSOLUTE_P): Define. - (LINK_COMMAND_SPEC): Define. + * toplev.c: Include expr.h. + (really_sorry, fancy_abort): Remove prototypes. + (set_target_switch): Add argument in prototype. + (vfatal): Mark prototype with ATTRIBUTE_NORETURN. + (v_really_sorry): Likewise. + (print_version, print_single_switch, print_switch_values): Make + static and add prototype arguments. + (decl_printable_name): Add prototype arguments. + (lang_expand_expr_t): New typedef. + (lang_expand_expr): Declare as a lang_expand_expr_t. + (incomplete_decl_finalize_hook): Add prototype argument. + (decl_name): Mark variable `verbosity' with ATTRIBUTE_UNUSED. + (botch): Likewise for variable `s'. + (rest_of_type_compilation): Mark variables `type' and `toplev' + with ATTRIBUTE_UNUSED if none of DBX_DEBUGGING_INFO, + XCOFF_DEBUGGING_INFO or SDB_DEBUGGING_INFO are defined. + (display_help): Make variable `i' an `unsigned long'. + (main): Remove unused parameter `envp'. + Cast assignment to `lang_expand_expr' to a `lang_expand_expr_t'. + Cast -1 when comparing it with a `size_t'. -Wed Jan 6 02:23:36 1999 "Charles M. Hannum" + * toplev.h (fatal, fatal_io_error, pfatal_with_name): Mark + prototype with ATTRIBUTE_NORETURN. + (fatal_insn_not_found, fatal_insn, really_sorry, + push_float_handler, pop_float_handler): Add prototypes. + (fancy_abort): Mark prototype with ATTRIBUTE_NORETURN. + (do_abort, botch): Add prototypes. - * expr.c (store_expr): If the lhs is a memory location pointed - to be a postincremented (or postdecremented) pointer, always - force the rhs to be evaluated into a pseudo. +Sat Sep 6 12:05:18 1998 John Carr -Wed Jan 6 00:54:21 1999 Geoff Keating + * final.c (final): If a label is reached only from a single jump, + call NOTICE_UPDATE_CC on the jump and its predecessor before + emitting the insn after the label. - * real.c (mtherr): Print more reasonable warning messages. + * i386.h: Add AMD K6 support. + Change TARGET_* macros to use table lookup. + (INITIALIZE_TRAMPOLINE): Improve trampoline code. + (ADJUST_COST): Change definition to call function in i386.c. + (ISSUE_RATE): Define as 2 for anything newer than an 80486. + * i386.c: Add AMD K6 support. + Add constants for feature tests used by TARGET_* macros. + (split_di): If before reload, call gen_lowpart and gen_highpart. + (x86_adjust_cost): New function. + (put_jump_code): New function. + (print_operand): New codes 'D' and 'd'. + * i386.md: New insn types. New insn attribute "memory". + Redefine scheduling parameters to use new types and add AMD K6 + support. Explicitly set type of most insns. + (move insns): K6 prefers movl $0,reg to xorl reg,reg. Pentium + Pro and K6 prefer movl $1,reg to incl reg. + (adddi3, subdi3): Set cc_status. + (DImode shift patterns): Change label counters from HOST_WIDE_INT + to int; x86 can't have more than 2^31 DImode shifts per file. + (setcc): Combine all setcc patterns. Allow writing memory. + Combine all jump patterns using match_operator. + (*bzero): Name pattern. Emit multiple stos instructions when that + is faster than rep stos. + (xordi3, anddi3, iordi3): Simplify DImode logical patterns and + add define_split. -Tue Jan 5 21:57:42 1999 Kaveh R. Ghazi +Sun Sep 6 11:17:20 1998 Dave Love - * Makefile.in (gcc.o, prefix.o, cccp.o, cpplib.o): Depend on prefix.h. + * config/m68k/x-next (BOOT_LDFLAGS): Define suitably for f771 + linking. - * cccp.c: Include prefix.h, don't prototype prefix.c functions. - (new_include_prefix): Constify char* parameters. +Sat Sep 5 22:05:25 1998 Richard Henderson - * cppfiles.c (read_name_map): Likewise. - (append_include_chain): Likewise. Also, use a writable char* copy - of parameter `dir' which we then modify, rather than using the - parameter itself to store the new writable string. - (remap_filename): Constify some variables. Also, use a writable - char* to store an allocated string which we will be modifying. + * alpha.c (alpha_ra_ever_killed): Inspect the topmost sequence, + not whatever we're generating now. - * cpplib.c: Include prefix.h, don't prototype prefix.c functions. - (cpp_start_read): Constify variable `str'. + * alpha.c (set_frame_related_p, FRP): New. + (alpha_expand_prologue): Mark frame related insns. + (alpha_expand_epilogue): Likewise, but with a null FRP. + * alpha.h (INCOMING_RETURN_ADDR_RTX): New. + * alpha.md (exception_receiver): New. + * alpha/crtbegin.asm (.eh_frame): New beginning. + (__do_frame_setup, __do_frame_takedown): New. + * alpha/crtend.asm (.eh_frame): New ending. + * alpha/elf.h (DWARF2_DEBUGGING_INFO): Define. + (ASM_SPEC): Don't emit both dwarf2 and mdebug. + (ASM_FILE_START): Don't emit .file for dwarf2. - * cpplib.h (append_include_chain): Constify a char* parameter. + * rtl.h (enum reg_note): Add REG_FRAME_RELATED_EXPR. + * rtl.c (reg_note_name): Likewise. + * rtl.texi (REG_NOTES): Likewise. + * dwarf2out.c (dwarf2out_frame_debug): Use it. Recognize a store + without an offset. - * gcc.c Include prefix.h, don't prototype prefix.c functions. - (add_prefix, save_string): Constify char* parameters. - (fatal, error): Add ATTRIBUTE_PRINTF_1 to prototypes. +Sat Sep 5 14:47:17 1998 Richard Henderson - * prefix.c: Include prefix.h. - (get_key_value, translate_name, save_string, update_path, - set_std_prefix): Constify various char* parameters and variables. - (save_string): Use xmalloc, not malloc. - (translate_name): Use a writable temporary variable to create and - modify a string before setting it to a const char*. + * i386.h (PREFERRED_RELOAD_CLASS): Standard fp constants load to TOS. + * i386.md (movsf, movdf, movxf): Validate memory address returned + from force_const_mem. Kill useless REG_EQUAL setting code. - * prefix.h: New file to prototype functions exported from prefix.c. +Sat Sep 5 14:23:31 1998 Torbjorn Granlund -Tue Jan 5 08:52:18 1999 Bruce Korb (korb@datadesign.com) + * m68k.md (zero_extendsidi2): Fix typo. - * fixinc/fixincl.c (various): Added debug code so - Manfred can trace the processing. +Sat Sep 5 13:40:24 1998 Krister Walfridsson - * fixinc/inclhack.def (sys/utsname.h): Provide forward declaration of - struct utsname on Ultrix V4.[35]. + * configure.in: Removed references to the removed file. + * config/xm-netbsd.h: Use ${cpu_type}/xm-netbsd.h for + arm*-*-netbsd* and ns32k-*-netbsd*. + * config/i386/xm-netbsd.h: Removed unnecessary file. + * config/m68k/xm-netbsd.h: Likewise. + * config/sparc/xm-netbsd.h: Likewise. + * config/mips/xm-netbsd.h: Likewise. - * fixinc/{fixincl.x|fixincl.sh|inclhack.sh} : Regenerated. +Sat Aug 29 13:32:58 1998 Mumit Khan -Mon Jan 4 15:37:30 1999 Zack Weinberg + * i386/cygwin32.h (BIGGEST_ALIGNMENT): Define. + (PCC_BITFIELD_TYPE_MATTERS): Define to be 0. - * cpplib.c (skip_if_group): Split out the logic that handles - directive recognition to its own function. Don't use - parse markers; use a bare pointer into the buffer. Use - copy/skip_rest_of_line instead of doing it by hand. Remove - `return on any directive' mode which was never used, and take - only one argument. - (consider_directive_while_skipping): New function, subroutine - of skip_if_group. Logic streamlined a bit. - (conditional_skip, do_elif, do_else): Call skip_if_group with - only one argument. + * i386/cygwin32.h (ASM_OUTPUT_SECTION_NAME): Don't check for + for exact section attributions. -Mon Jan 4 15:27:30 1999 Zack Weinberg + * i386/mingw32.h (CPP_PREDEFINES): Add __MSVCRT__ for msvc + runtime. + * i386/crtdll.h (CPP_PREDEFINES): Define. - * cpplib.c (do_undef): EOF immediately after '#undef FOO' is not an - error. +Sat Sep 5 03:23:05 1998 Jeffrey A Law (law@cygnus.com) -Mon Jan 4 11:55:51 1999 Jason Merrill + * m68k.md (5200 movqi): Do not allow byte sized memory references + using address regs. + * m68k.c (output_move_qimode): Do not use byte sized operations on + address registers. - * extend.texi (Bound member functions): Document. + * Makefile.in (pexecute.o): Use pexecute.c from libiberty. Provide + explicit rules for building. Similarly for alloca, vfprintf, + choose-temp and mkstemp, getopt, getopt1, and obstack. + (INCLUDES): Add $(srcdir)/../include. + * pexecute.c, alloca.c, vfprintf.c, choose-temp.c, mkstemp.c: Delete. + * getopt.h, getopt.c getopt1.c, obstack.c, obstack.h: Likewise. -Mon Jan 4 11:01:48 1999 Kaveh R. Ghazi +Fri Sep 4 11:57:50 1998 Tom Tromey - * mips-tdump.c (st_to_string, sc_to_string, glevel_to_string, - lang_to_string, type_to_string): Make return type const char*. - (print_symbol): Apply `const' keyword to a char*. - (print_file_desc): Cast structure member `crfd' to ulong when - comparing against one. + * gcc.c (do_spec_1): [case 'o'] Account for + lang_specific_extra_outfiles. + (main): Correctly clear all slots in outfiles for + lang_specific_extra_outfiles. Set input_file_number before + calling lang_specific_pre_link. - * mips-tfile.c (pfatal_with_name): Apply `const' keyword to char*. - (fatal, error): Add ATTRIBUTE_PRINTF_1 to prototypes. - (progname, input_name): Apply `const' keyword to a char*. - Don't redundantly include sys/stat.h. - (alloc_info): Apply `const' keyword to a char*. - (st_to_string, sc_to_string): Likewise. - (hash_string): Cast variable `hash_string' to a symint_t when - comparing against one. - (add_string): Cast PAGE_USIZE to Ptrdiff_t when comparing against one. - Likewise cast it to long when comparing against one. - (add_local_symbol): Apply `const' keyword to a char*. - (add_ext_symbol): Likewise. - (add_unknown_tag): Likewise. - (add_procedure): Cast a printf-style field width to an int. - (add_file): Cast PAGE_USIZE to long when comparing against one. - (parse_begin): Cast a printf-style field width to an int. - (parse_bend): Likewise. - (parse_def): Likewise. - (parse_end): Likewise. - (mark_stabs): Mark parameter `start' with ATTRIBUTE_UNUSED. - (parse_stabs_common): Fix format specifier. - (parse_input): Change type of variable `i' to Size_t. - (write_object): Fix arguments to match format specifiers. - Cast variable `num_write' to long when comparing against one. - (read_seek): Cast variable `sys_read' to symint_t when comparing - against one. Fix arguments to match format specifiers. Cast - variable `size' to long when comparing against one. - (copy_object): Cast result of `sizeof' to int when comparing - against one. Fix arguments to match format specifiers. Cast - variable `ifd' to long when comparing against a signed value. - Likewise, likewise. +Fri Sep 4 10:37:07 1998 Jim Wilson -Mon Jan 4 10:30:33 1999 Kaveh R. Ghazi + * loop.c (load_mems): Fix JUMP_LABEL field after for_each_rtx call. - * c-common.c (decl_attributes): Allow applying attribute `unused' - on a LABEL_DECL. +Fri Sep 4 02:01:05 1998 David S. Miller - * c-parse.in (label): Parse attributes after a label, and call - `decl_attributes' to handle them. + * config/sparc/sparc.c (output_double_int): In all V9 symbolic + cases, use xword. + (sparc_output_deferred_case_vectors): If no work to do, return. + Fix thinko in Sept 1 change. - * gansidecl.h (ATTRIBUTE_UNUSED_LABEL): Define. +1998-09-03 SL Baur - * genrecog.c (OUTPUT_LABEL, write_tree_1, write_tree): When - generating labels, mark them with ATTRIBUTE_UNUSED_LABEL. + * Makefile.in: Add semicolon in BISON definition for portability. - * invoke.texi: Note that labels can be marked `unused'. +Thu Sep 3 13:34:41 1998 Toon Moene -Sun Jan 3 23:32:18 1999 Jeff Law (law@cygnus.com) + * config/nextstep.c (handle_pragma): Correct name of third + argument. - * version.c: Bump for snapshot. +Tue Sep 1 11:30:33 1998 Nick Clifton -Sun Jan 3 23:00:42 1999 Jeffrey A Law (law@cygnus.com) + * config/m32r/m32r.md: Change (reg:CC 17) to (reg:SI 17). + * config/m32r/m32r.h: Make register 17 be fixed. + * config/m32r/m32r.c: Use SImode for cc operations. - * optabs.c (emit_cmp_and_jump_insns): Use CONSTANT_P canonicalizing - RTL for a compare/jump sequence. +Thu Sep 3 18:17:34 1998 Benjamin Kosnik -Sun Jan 3 22:58:15 1999 Michael Hayes + * invoke.texi (Warning Options): Add -Wnon-template-friend + documentation. - * optabs.c (emit_cmp_insn): Abort if asked to emit non-canonical RTL - for a target with HAVE_cc0 defined. - (emit_cmp_and_jump_insns): New function. - * expr.h (emit_cmp_and_jump_insns): Prototype it. - * loop.c (check_dbra_loop): Use it to replace calls - to emit_cmp_insn and emit_jump_insn and to canonicalize - the comparison if necessary. - * unroll.c (unroll_loop): Likewise. +Thu Sep 3 18:16:16 1998 Michael Meissner -Sun Jan 3 21:01:04 1999 Rainer Orth + * rs6000.c (rs6000_override_options): Add -mcpu={401,e603e}. - * fixincludes (sys/utsname.h): Provide forward declaration of - struct utsname on Ultrix V4.[35]. +Thu Sep 3 18:05:16 1998 David Edelsohn - * mips.md (div_trap): Use local labels instead of dot-relative - branches. + * rs6000.md (movsf): Disable explicit secondary-reload-like + functionality if TARGET_POWERPC64. + (movdf): Remove TARGET_POWERPC64 explicit secondary-reload-like + functionality. -Sun Jan 3 20:40:34 1999 Jeffrey A Law (law@cygnus.com) +Thu Sep 3 11:41:40 1998 Robert Lipe - * pa.md (branch, negated branch): Handle (const_int 0) as first - source operand. - * pa.c (output_cbranch): Likewise. + * fixinc.sco: Borrow code to wrap 'bool' typedefs from tinfo.h + and term.h from fixinc.wrap. -Sun Jan 3 03:20:38 1999 David Edelsohn +Thu Sep 3 09:47:31 1998 Kaveh R. Ghazi - * rs6000.c (rs6000_stack_info): Undo spurious part of last - change. + * aclocal.m4 (GCC_HEADER_STRING): New macro to detect if it is + safe to include both string.h and strings.h together. + (GCC_NEED_DECLARATION): Test STRING_WITH_STRINGS when deciding + which headers to search for function declarations. Continue to + prefer string.h over strings.h when both are not acceptable. -1999-01-01 Manfred Hollstein + * acconfig.h (STRING_WITH_STRINGS): Add stub. - * extend.texi (__builtin_constant_p): Add missing @smallexample. + * configure.in: Call GCC_HEADER_STRING. -Fri Jan 1 11:48:20 1999 Jeffrey A Law (law@cygnus.com) + * system.h: Test STRING_WITH_STRINGS when deciding which headers + to include. Continue to prefer string.h over strings.h when both + are not acceptable. - * i386.md (doubleword shifts): Fix dumb mistakes in previous change. +Wed Sep 2 23:56:29 1998 David S. Miller -Wed Dec 30 23:38:55 1998 Jeffrey A Law (law@cygnus.com) + * config/sparc/sparc.c (output_double_int): If V9 and MEDLOW, do + not assume top 32-bits of symbolic addresses are zero if + flag_pic. - * m68k.md (adddi_dilshr32): Allow all operands to be registers too. - (adddi_dishl32): Similarly. +Thu Sep 3 00:23:21 1998 Richard Henderson - * cse.c (invalidate_skipped_block): Call invalidate_from_clobbers - for each insn in the skipped block. + * ginclude/va-alpha.h: Protect entire second portion of the + file against double inclusion. - * reload1.c (reload_as_needed): Verify that the insn satisfies its - constraints after replacing a register address with an autoincrement - address for reload inheritance purposes. +Thu Sep 3 00:37:55 1998 Ovidiu Predescu - * i386.md (doubleword shifts): Avoid namespace pollution. - -Wed Dec 30 23:00:28 1998 David O'Brien + Added support for the Boehm's garbage collector. + * configure.in: Handle --enable-objc-gc. + * configure: Rebuilt. + * Makefile.in (CHECK_TARGETS): Add check-objc. + (check-objc): New rule. + * objc/Make-lang.in: Build a different Objective-C library that + runs with the Boehm's collector. + * objc/encoding.c (objc_round_acc_size_for_types): New function. + * objc/encoding.c: Correctly compute the size of compound types in + the presence of bitfields. Skip the variable name of the type if + any. Added support for long long. + * objc/encoding.h (_C_GCINVISIBLE): New specifier. + (_F_GCINVISIBLE): New mask. + * objc/gc.c: New file. Compute the type memory mask associated with + a class based on the runtime information. + * objc/misc.c: Added the hooks that use the Boehm's collector + allocation functions. + * objc/objc-act.c (build_class_template): Generate a new class + member (gc_object_type) to hold the class' type memory mask. + (build_shared_structure_initializer): Initialize the new member to + NULL. + (encode_complete_bitfield): New function. Generate the new + encoding. + (encode_field_decl): Generate the new encoding only for the GNU + runtime. + * objc/objc-api.h (_C_LNG_LNG, _C_ULNG_LNG): New specifiers for the + long long types. + (class_get_gc_object_type): New function to mark a pointer instance + variable as a weak pointer. + * objc/objc-features.texi: New file. + * objc/objc.h (gc_object_type): New class member. + * objc/objects.c (class_create_instance): Create a typed memory + object when compiled with Boehm's collector support. + * objc/sendmsg.c (__objc_init_install_dtable): Call + __objc_send_initialize instead of setting the initialize flag. + (__objc_send_initialize): Call __objc_generate_gc_type_description + to generate the class type memory mask. Rewrite the code that + sends the +initialize so that it is called only once (bug report + and fix from Ronald Pijnacker ). + * testsuite/objc: New testsuite for Objective-C type encoding. + * testsuite/lib/objc-torture.exp: New file. + * testsuite/lib/objc.exp: New file. - * configure.in (FreeBSD ELF): Needs special crt files. +Wed Sep 2 14:47:36 1998 Jim Wilson -Wed Dec 30 22:50:13 1998 Geoffrey Noer + * jump.c (jump_optimize): In if/then/else transformations, add + another call to modified_between_p for the jump insn. - * i386/xm-cygwin.h: Change DIR_SEPARATOR to forward slash. +Wed Sep 2 14:16:49 1998 Jeffrey A Law (law@cygnus.com) -1998-12-30 Andreas Schwab + * fix-header.c (symlink): Treat like readlink. - * loop.c (check_dbra_loop): While reversing the loop, if the - comparison value has a VOID mode use the mode of the other operand - to compute the mask. +Wed Sep 2 19:30:06 1998 J"orn Rennecke -Wed Dec 30 22:24:00 1998 Michael Meissner + * dwarfout.c (fundamental_type_code): Encode 32 bit floats/doubles + as FT_float. - * rs6000.md ({save,restore}_stack_function): Take 2 operands to - avoid warnings in compiling explow.c. +Wed Sep 2 10:06:07 1998 Nick Clifton - (patch from Ken Raeburn, raeburn@cygnus.com) - * rs6000.c (rs6000_stack_info): Force 8-byte alignment of - fpmem_offset. Compute total size after that, and then - rs6000_fpmem_offset using both values. + * config/nextstep.h: Update HANDLE_PRAGMA macro. + * config/h8300/h8300.h: Update HANDLE_PRAGMA macro. + * config/i960/i960.h: Update HANDLE_PRAGMA macro. -Mon Dec 28 19:26:32 1998 Gerald Pfeifer + * config/nextstep.c (handle_pragma): Take three arguments, as per + the new HANDLE_PRAGMA macro specification. + * config/h8300/h8300.c (handle_pragma): Take three arguments, as + per the new HANDLE_PRAGMA macro specification. + * config/i960/i960.c (process_pragma): Take three arguments, as + per the new HANDLE_PRAGMA macro specification. - * gcc.texi (Non-bugs): ``Empty'' loops will be optimized away in - the future; indeed that already happens in some cases. +Wed Sep 2 09:25:29 1998 Nick Clifton -Tue Dec 29 11:58:53 1998 Richard Henderson + * c-lex.c (check_newline): Call HANDLE_PRAGMA before + HANDLE_SYSV_PRAGMA if both are defined. Generate warning messages + if unknown pragmas are encountered. + (handle_sysv_pragma): Interpret return code from + handle_pragma_token (). Return success/failure indication rather + than next unprocessed character. + (pragma_getc): New function: retrieves characters from the + input stream. Defined when HANDLE_PRAGMA is enabled. + (pragma_ungetc): New function: replaces characters back into the + input stream. Defined when HANDLE_PRAGMA is enabled. - * sparc.c (input_operand): Recognize (const (constant_p_rtx)). - (arith_operand): Remove constant_p_rtx handling. - (const64_operand, const64_high_operand): Likewise. - (arith11_operand, arith10_operand, arith_double_operand): Likewise. - (arith11_double_operand, arith10_double_operand, small_int): Likewise. - (small_int_or_double, uns_small_int, zero_operand): Likewise. - * sparc.h (PREDICATE_CODES): Likewise. + * c-pragma.c (handle_pragma_token): Return success/failure status + of the parse. - * rtl.h (CONSTANT_P): Remove CONSTANT_P_RTX. + * c-pragma.h: Change prototype of handle_pragma_token(). -Tue Dec 29 11:32:54 1998 Richard Kenner + * varasm.c (handle_pragma_weak): Only create this function if + HANDLE_PRAGMA_WEAK is defined. - * rtl.def (CONSTANT_P_RTX): Clarify commentary. - * expr.c (expand_builtin, case BUILT_IN_CONSTANT_P): Rework to - consider constant CONSTRUCTOR constant and to defer some cases - to cse. - * cse.c (fold_rtx, case CONST): Add handling for CONSTANT_P_RTX. - * regclass.c (reg_scan_mark_refs, case CONST): Likewise. + * c-common,c (decl_attributes): If defined call the expression + contained within the INSERT_ATTRIBUTES macro before adding + attributes to a decl. -Tue Dec 29 11:30:10 1998 Richard Henderson + * tm.texi (HANDLE_PRAGMA): Document the new version of + HANDLE_PRAGMA, which takes three arguments. + (INSERT_ATTRIBUTES): Document this new macro. - * expr.c (init_expr_once): Kill can_handle_constant_p recognition. - * cse.c (fold_rtx, case 'x'): Remove standalone CONSTANT_P_RTX code. + * LANGUAGES: Document the new version of HANDLE_PRAGMA and the + new INSERT_ATTRIBUTES macro. - * alpha.c (reg_or_6bit_operand): Remove CONSTANT_P_RTX handling. - (reg_or_8bit_operand, cint8_operand, add_operand): Likewise. - (sext_add_operand, and_operand, or_operand): Likewise. - (reg_or_cint_operand, some_operand, input_operand): Likewise. - * alpha.h (PREDICATE_CODES): Likewise. +Wed Sep 2 02:03:23 1998 David S. Miller -Sat Dec 26 23:26:26 1998 Jeff Law (law@cygnus.com) + * config/sparc/sparc.md (movdf): Only generate special RTL for + LABEL_REFs when PIC. + (move_label_di): Remove. + (movdi_pic_label_ref, movdi_high_pic_label_ref, + movdi_lo_sum_pic_label_ref): New patterns for 64-bit label + references when PIC. + * config/sparc/sparc.h (ASM_OUTPUT_ADDR_VEC_ELT, + ASM_OUTPUT_ADDR_DIFF_ELT): Don't do anything special for MEDLOW, + output an .xword for all 64-bit cases. - * version.c: Bump for snapshot. +Tue Sep 1 15:55:17 1998 David S. Miller -Sat Dec 26 09:17:04 1998 Jeffrey A Law (law@cygnus.com) + * config/sparc/sparc.c (finalize_pic): Don't output arbitrary + alignment, use FUNCTION_BOUNDARY instead. + (sparc_output_deferred_case_vectors): Likewise. - * gengenrtl.c (gencode): Always use bzero to clear memory instead - of dangerous casts and stores. +Mon Aug 31 17:25:41 1998 David S. Miller - * Makefile.in (compare, gnucompare): Add missing else true clauses. + * config/sparc/sparc.md (movsf_const_intreg): Kill warning. + (movtf_insn_sp64, movtf_no_e_insn_sp64): Reorder alternatives. -Fri Dec 25 23:00:56 1998 Jeffrey A Law (law@cygnus.com) +Mon Aug 31 13:57:55 1998 Richard Henderson - * alpha.md (builtin_longjmp): Add missing "DONE". + * alpha/va_list.h: New file. + * alpha/x-alpha (EXTRA_HEADERS): New. Add va_list.h. -Thu Dec 24 10:39:57 1998 Stan Cox +Mon Aug 31 14:55:02 1998 Jeffrey A Law (law@cygnus.com) - * gcc.c (execute): Enable -pipe with win32. + * NEWS: Add SCO Openserver and Unixware 7 notes. -Wed Dec 23 10:27:44 1998 Nick Clifton + * NEWS: Fix typos. - * config/arm/t-arm-elf: Add multiplib option for leading - underscores. +Mon Aug 31 15:42:18 1998 Dave Brolley - * config/arm/thumb.h (ASM_OUTPUT_LABELREF): Use variable - 'user_label_prefix' rather than macro USER_LABEL_PREFIX. + * varasm.c (compare_constant_1): Handle RANGE_EXPR. + (record_constant_1): Handle RANGE_EXPR. - (thumb_shiftable_const): Use macro 'BASE_REG_CLASS' rather - than variable 'reload_address_base_reg_class'. [Note this - change is unrelated to the others in this patch]. +Mon Aug 31 10:54:03 1998 Richard Henderson - * config/arm/unknown-elf.h (USER_LABEL_PREFIX): Default to no - leading underscore. + * print-rtl.c (print_rtx): NOTE_INSN_LIVE has an rtx not a bitmap. + * haifa-sched.c (sched_analyze): Handle NOTE_INSN_RANGE_START + and NOTE_INSN_RANGE_END specially. + (reemit_notes): Likewise. -Wed Dec 23 09:51:32 1998 Kaveh R. Ghazi +Mon Aug 31 10:18:52 1998 Kaveh R. Ghazi - * alias.c (record_alias_subset): Remove ignored `&'. - (init_alias_once): Likewise. + * sparc.c (TMASK, UMASK): Use `(unsigned)1' not `1U'. + (ultrasparc_sched_init): Remove unneeded &. - * c-lex.c (UNGETC): Cast first argument of comma expression to void. +Mon Aug 31 10:47:16 1998 Andreas Schwab - * config/mips/mips.c (mips_asm_file_end): Cast the result of - fwrite to `int' when comparing against one. + * config/m68k/m68k.h (TARGET_SWITCHES): Don't remove MASK_68040 + for m68020-60, to prevent the use of fintrz. - * config/mips/mips.h (CAN_ELIMINATE): Add parens around && within ||. - (INITIAL_ELIMINATION_OFFSET): Add braces to avoid ambiguous `else'. +Sun Aug 30 22:17:20 1998 Mark Mitchell - * cse.c (rehash_using_reg): Change type of variable `i' to - unsigned int. + * configure.in: If the native compiler is GCC use $(WARN_CFLAGS) + even in stage1. + * Makefile.in: Likewise. + * configure: Regenerated. - * dwarf2out.c (initial_return_save): Cast -1 to unsigned before - assigning it to one. +Sun Aug 30 22:15:41 1998 H.J. Lu (hjl@gnu.org) - * except.c (duplicate_eh_handlers): Remove unused variable `tmp'. + * configure.in (gxx_include_dir): Changed to + '${prefix}/include/g++'-${libstdcxx_interface}. + * configure: Rebuilt. - * final.c (final_scan_insn): Likewise for variable `i'. - (output_asm_insn): Cast a char to unsigned char when used as an - array index. +Sun Aug 30 20:19:43 1998 Hans-Peter Nilsson - * gcse.c (compute_pre_ppinout): Cast -1 to SBITMAP_ELT_TYPE when - assigning it to one. + * expr.c (expand_expr): Change ">" to ">=" making MOVE_RATIO use + consistent. + * tm.texi (Costs): Say MOVE_RATIO is number of mem-mem move + *sequences* *below* which scalar moves will be used. - * loop.c (strength_reduce): Remove unused variables `count' and `temp'. +Sun Aug 30 17:18:43 1998 Jeffrey A Law (law@cygnus.com) - * recog.c (preprocess_constraints): Cast a char to unsigned char - when used as an array index. + * collect2.c (mktemp): Delete unused declaration. - * regmove.c (find_matches): Likewise. + * config/xm-netbsd.h: Remove unnecessary file. + * config/*/xm-netbsd.h: Do not include the generic xm-netbsd.h + file anymore, it is not needed. - * reload1.c (calculate_needs): Add default case in switch. - (eliminate_regs_in_insn): Initialize variable `offset'. - (set_offsets_for_label): Change type of variable `i' to unsigned. - (reload_as_needed): Wrap variable `i' in macro check on - AUTO_INC_DEC || INSN_CLOBBERS_REGNO_P. +Sun Aug 30 16:05:45 1998 Mark Mitchell - * scan-decls.c (scan_decls): Mark parameters `argc' and `argv' - with ATTRIBUTE_UNUSED. Cast variable `start_written' to size_t - when comparing against one. + * convert.c (convert_to_integer): Issue an error on conversions to + incomplete types. - * stor-layout.c (layout_decl): Cast maximum_field_alignment to - unsigned when comparing against one. Likewise for - GET_MODE_ALIGNMENT(). - (layout_record): Cast record_align to int when comparing against a - signed value. - (layout_type): Cast TYPE_ALIGN() to int when comparing against a - signed value. +Sun Aug 30 16:47:20 1998 Martin von Lvwis - * tree.c (get_identifier): Cast variable `len' to unsigned when - comparing against one. - (maybe_get_identifier): Likewise + * Makefile.in: Add lang_tree_files and gencheck.h. + * configure.in: Generate them. + * gencheck.c: Include gencheck.h. -Wed Dec 23 00:10:01 1998 Jeffrey A Law (law@cygnus.com) +Sat Aug 29 21:38:24 1998 David S. Miller - * toplev.c (rest_of_compilation): Do not set reload_completed. - * reload1.c (reload): Set reload_completed before calling - cleanup_subreg_operands. + * config/sparc/sparc.md (pic_lo_sum_di, pic_sethi_di): Rename to + movdi_lo_sum_pic and movdi_high_pic and make visible. + * config/sparc/sparc.c (legitimize_pic_address): For -fPIC, + emit these when Pmode is not SImode. + * config/sparc/linux64.h (SPARC_DEFAULT_CMODEL): Make CM_MEDLOW. -Tue Dec 22 23:58:31 1998 Richard Henderson +Sat Aug 29 14:59:32 1998 Mumit Khan - * reload1.c (emit_reload_insns): Check `set' not null before use. + * i386/cygwin32.h (ASM_OUTPUT_SECTION_NAME): Don't emit + .linkonce directive after the first time. -Tue Dec 22 15:15:45 1998 Nick Clifton +Sat Aug 29 12:39:56 1998 Jeffrey A Law (law@cygnus.com) - * rtlanal.c (multiple_sets): Change type of 'found' from 'rtx' to - 'int'. + * m68k.md (beq0_di): Generate correct (and more efficient) code when + the clobbered operand overlaps with an input. + (bne0_di): Similarly. -Tue Dec 22 13:55:44 1998 Theodore Papadopoulo + * Makefile.in (INSTALL): Remove "--no-header" argument. - * halfpic.c (half_pic_encode): Delete redundant code. + * NEWS: Various updates. -Tue Dec 22 13:02:22 1998 Michael Meissner +Fri Aug 28 19:00:44 1998 David S. Miller - * toplev.c (main): Delete handling of -dM as a preprocessor - option. + * config/sparc/sparc.c (arith_operand, const64_operand, + const64_high_operand, arith_double_4096_operand): Mark mode as + unused. + (create_simple_focus_bits): Remove unused arg highest_bit_set, all + callers changed. + (sparc_emit_set_const64): Remove unused variable i. + (sparc_splitdi_legitimate): Likewise for addr_part. + (ultra_code_from_mask): Likewise for mask. + (ultra_cmove_results_ready_p): Fixup entry modulo calc. and + reverse return values so it matches usage and comments. + (ultra_flush_pipeline): Likewise. + (ultra_fpmode_conflict_exists): Likewise, remove unused variable + this_type, and allow loads and stores of differing FP modes as + they do not create a conflict. + (ultra_find_type): Initialize fpmode to SFmode, fix + parenthesization thinkos in large conditional. + (ultrasparc_sched_init): Mark dump and sched_verbose as unused. + Init free_slot_mask after ultra_cur_hist is reset, not before. + (ultrasparc_rescan_pipeline_state): Remove unused variable ucode. + (ultrasparc_sched_reorder): Don't bzero current pipeline state, + use ultra_flush_pipeline instead, then re-init group pointer. + Fix statement with no effect. If no progress made in, and no + instructions scheduled at all, advance to new pipeline cycle else + we get into an endless loop. + (ultrasparc_adjust_cost): Remove previous arg. + * config/sparc/sparc.h (ADJUST_COST): Update to reflect that. -Mon Dec 21 17:39:38 1998 Michael Meissner +Fri Aug 28 13:52:35 1998 Jim Wilson - * toplev.c (main): Don't emit any warnings when using -dD, -dM, or - -dI, which are handled by the preprocessor. + * sparc.md (DImode, DFmode, TFmode splits): Delete self_reference + code. Use reg_overlap_mentioned_p to detect when source and + destination overlap. + (negtf2_notv9+1): Use DFmode instead of SFmode in last two operands. -Sun Dec 20 16:13:44 1998 John F. Carr +1998-08-28 Brendan Kehoe - * configure.in: Handle Digital UNIX 5.x the same as 4.x. - * i386/sol2.h: Define LOCAL_LABEL_PREFIX as ".". + * loop.c (check_dbra_loop): Pass COMPARISON_VALUE, not + COMPARISON_VAL, into invariant_p. -Sun Dec 20 07:39:52 1998 Jeff Law (law@cygnus.com) +Fri Aug 28 15:13:25 1998 J"orn Rennecke - * version.c: Bump for snapshot. + * regmove.c (regclass_compatible_p): New function. + (regmove_optimize): Use it. -Sat Dec 19 22:24:22 1998 Jeff Law (law@cygnus.com) + Use NREGS parameter instead of calling max_reg_num. - * version.c: Bump for snapshot. + (fixup_match_1): Don't use code = MINUS when later tieing with + a hard register is likely. -Sat Dec 19 21:41:32 1998 Jeff Law (law@cygnus.com) +Fri Aug 28 14:54:07 1998 J"orn Rennecke - * version.c: Bump for snapshot. + * loop.c (check_dbra_loop): Fix calculation of FINAL_VALUE when + COMPARISON_VAL was normalized. -Sat Dec 19 09:52:27 1998 Kaveh R. Ghazi +Thu Aug 27 20:10:46 1998 Jeffrey A Law (law@cygnus.com) - * genattr.c (fatal): Qualify a char* with the `const' keyword. + * loop.c (check_dbra_loop): The loop ending comparison value + must be an invariant or we can not reverse the loop. - * genattrtab.c (fatal, attr_printf, attr_string, write_attr_set, - write_unit_name, write_eligible_delay, expand_units, - make_length_attrs, write_attr_case, find_attr, - make_internal_attr): Likewise. - * gencheck.c (tree_codes): Likewise. - * gencodes.c (fatal): Likewise. - * genconfig.c (fatal): Likewise. - * genemit.c (fatal): Likewise. - * genextract.c (fatal, walk_rtx, copystr): Likewise. - * genflags.c (fatal): Likewise. - * genopinit.c (fatal, optabs, gen_insn): Likewise. - * genoutput.c (fatal, error, predicates): Likewise. - * genpeep.c (fatal): Likewise. - * genrecog.c (fatal, decision, pred_table, add_to_sequence, - write_tree_1, write_tree, change_state, copystr, indents): Likewise. + * loop.c (scan_loop): Count down from max_reg_num - 1 to + FIRST_PSEUDO_REGISTER to avoid calling max_reg_num each iteration + of the loop. + (load_mems_and_recount_loop_regs_set): Likewise. -Thu Dec 17 18:21:49 1998 Rainer Orth + * i386.c (print_operand): Remove obsolete 'c' docs. - * configure.in (with-fast-fixincludes): Fix whitespace. - * configure: Rebuilt. +Wed Aug 26 17:13:37 1998 Tom Tromey - * fixincludes (c_asm.h): Wrap Digital UNIX V4.0B DEC C specific - asm() etc. function declarations in __DECC. + * gthr.h: Document __GTHREAD_MUTEX_INIT_FUNCTION. + * frame.c (init_object_mutex): New function. + (init_object_mutex_once): Likewise. + (find_fde): Call it. + (__register_frame_info): Likewise. + (__register_frame_info_table): Likewise. + (__deregister_frame_info): Likewise. -Thu Dec 17 13:57:23 1998 Nick Clifton +Thu Aug 27 15:14:18 1998 Jeffrey A Law (law@cygnus.com) - * expr.c (emit_move_insn_1): Only emit a clobber if the target - is a pseudo register. + * haifa-sched.c (sched_analyze_insn): Fix thinko in last change. -Thu Dec 17 13:50:29 1998 Nick Clifton +Thu Aug 27 16:34:51 1998 J"orn Rennecke - * gcse.c: Include expr.h in order to get the prototype for - get_condition() which is used in delete_null_pointer_checks(). + * loop.c (check_dbra_loop): Enable code for reversal + of some loops without a known constant loop end. -Thu Dec 17 15:58:26 1998 Kaveh R. Ghazi +Wed Aug 26 18:38:15 1998 Richard Henderson - * hwint.h: New file to consolidate HOST_WIDE_INT (etc) macros. + * haifa-sched.c (last_clock_var): New. + (schedule_block): Initialize it. + (schedule_insn): Use it to fill insn modes with issue information. -Thu Dec 17 12:31:12 1998 Jim Wilson + * alpha.c (alpha_handle_trap_shadows): Remove do-nothing exit. + Tag trapb and next insn with TImode. + (alphaev5_insn_pipe, alphaev5_next_group, alphaev5_align_insns): New. + (alpha_reorg): Add conditional for alpha_handle_trap_shadows. + Invoke alphaev5_align_insns as appropriate. + * alpha.h (LABEL_ALIGN_AFTER_BARRIER): Was ALIGN_LABEL_AFTER_BARRIER. + (MD_SCHED_VARIABLE_ISSUE): New. + * alpha.md (attr type): Add multi. + (define_asm_attributes): New. + (prologue_stack_probe_loop, builtin_setjmp_receiver): Set type multi. + (arg_home): Likewise. + (fnop, unop, realign): New. - * Makefile.in (INTERNAL_CFLAGS): Add SCHED_CFLAGS. - (ALL_CFLAGS): Delete SCHED_CFLAGS. +Wed Aug 26 15:55:41 1998 Jim Wilson -1998-12-17 Vladimir N. Makarov + * iris5.h (PREFERRED_DEBUGGING_TYPE): Undef. + * iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define. - * config/i60/i960.md (extendqihi2): Fix typo (usage ',' instead of - ';'). + * configure.in (powerpc-ibm-aix4.[12]*): Change from 4.[12].*. + (rs6000-ibm-aix4.[12]*): Likewise. + * configure: Regenerate. -1998-12-17 Michael Tiemann +Wed Aug 26 09:30:59 1998 Nick Clifton - * i960.md (extend*, zero_extend*): Don't generate rtl that looks - like (subreg:SI (reg:SI N) 0), because it's wrong, and it hides - optimizations from the combiner. + * config/arm/thumb.c (thumb_exit): Do not move a4 into lr if it + already contains the return address. -Thu Dec 17 08:27:03 1998 J"orn Rennecke +Wed Aug 26 12:57:09 1998 Jeffrey A Law (law@cygnus.com) - * loop.c (combine_givs_used_by_other): Don't depend on n_times_set. + * calls.c (expand_call): Use bitfield instructions to extract/deposit + word sized hunks when loading unaligned args into registers. -Wed Dec 16 17:30:35 1998 Nick Clifton + * haifa-sched.c (sched_analyze_insn): Only create scheduling + barriers for LOOP, EH and SETJMP notes on the loop_notes list. - * toplev.c (main): Disable optimize_size if a specific - optimization level is requested. Always set optimization - level to 2 if -Os is specified. + * mn10300.h (RTX_COSTS): Handle UDIV and UMOD too. -Wed Dec 16 16:33:04 1998 Dave Brolley +Wed Aug 26 16:35:37 1998 J"orn Rennecke - * objc/lang-specs.h: Pass -MD, -MMD and -MG to cc1obj if configured with - cpplib. - * cpplib.c (cpp_start_read): If in_fname is not initialized, try to - initialize it using fname. + * loop.c (check_dbra_loop): Add some code that would allow reversal + of some loops without a known constant loop end if it were enabled. -1998-12-16 Zack Weinberg +Wed Aug 26 11:08:44 1998 Gavin Romig-Koch - * cpplib.c (do_include): Treat #include_next in the - primary source file as #include plus warning. Treat - #include_next in a file included by absolute path as an - error. fp == CPP_NULL_BUFFER is a fatal inconsistency. + * mips.md (lshrsi3_internal2+2): Fix type-o. -Wed Dec 16 12:28:54 1998 Kaveh R. Ghazi +Wed Aug 26 10:53:03 1998 Kaveh R. Ghazi - * cccp.c: Don't define MIN/MAX anymore. + * system.h: Include stdarg.h/varargs.h, make sure they are ordered + correctly with regards to stdio.h. + + * calls.c: Remove stdarg.h/varargs.h. + * cccp.c: Likewise. + * cexp.y: Likewise. + * combine.c: Likewise. + * cpperror.c: Likewise. * cpplib.c: Likewise. - * machmode.h: Likewise. - * system.h: Provide definitions for MIN/MAX. + * cpplib.h: Likewise. + * doprint.c: Likewise. + * emit-rtl.c: Likewise. + * final.c: Likewise. + * fix-header.c: Likewise. + * gcc.c: Likewise. + * genattr.c: Likewise. + * genattrtab.c: Likewise. + * gencodes.c: Likewise. + * genconfig.c: Likewise. + * genemit.c: Likewise. + * genextract.c: Likewise. + * genflags.c: Likewise. + * genopinit.c: Likewise. + * genoutput.c: Likewise. + * genpeep.c: Likewise. + * genrecog.c: Likewise. + * mips-tfile.c: Likewise. + * prefix.c: Likewise. + * protoize.c: Likewise. + * regmove.c: Likewise. + * toplev.c: Likewise. + * tree.c: Likewise. -Tue Dec 15 23:47:42 1998 Zack Weinberg +Wed Aug 26 05:09:27 1998 Jakub Jelinek - * fix-header.c: Don't define xstrdup here. + * config/sparc/sparc.c (sparc_override_options): If not + TARGET_FPU, turn off TARGET_VIS. + * config/sparc/sparc.h (TARGET_SWITCHES): Add no-vis. + (LEGITIMATE_CONSTANT_P): Allow SF/DF mode zero when TARGET_VIS. + * config/sparc/sparc.md (movsi_insn): Use fzeros not fzero. + (movdi_insn_sp64): Add VIS fzero alternative. + (clear_sf, clear_df): New VIS patterns. + (movsf, movdf expanders): Allow fp_zero_operand flat out when + TARGET_VIS. + (one_cmpldi2_sp64): Provide new fnot1 VIS alternative. -Wed Dec 16 05:11:04 1998 J"orn Rennecke +Tue Aug 25 10:57:41 1998 Mark Mitchell - * loop.c (consec_sets_giv): New argument last_consec_insn. - (strength_reduce): Provide / use it. + * loop.c (n_times_set, n_times_used, may_not_optimize, + reg_single_usage): Convert to varrays. All uses changed. + (insert_loop_mem): Return a value. + (scan_loop): Tweak AVOID_CC_MODE_COPIES code. + (load_mems_and_recount_loop_regs_set): Likewise. Grow the arrays, if + necessary. -Wed Dec 16 17:24:07 1998 Michael Hayes +Tue Aug 25 23:57:12 1998 Jeffrey A Law (law@cygnus.com) - * loop.h (loop_info): New field 'vtop'. - * loop.c (check_dbra_loop): Use loop_info->vtop rather than - scanning loop for vtop. - * unroll.c (subtract_reg_term, find_common_reg_term): New functions. - (loop_iterations): Use them to determine if loop has a constant - number of iterations. Set loop_info->vtop. Don't subtract - common reg term from initial_value and final_value if have a - do-while loop. + * From Alexandre: + * configure.in: Do not set thread_file to "irix" since no such + support exists yet. -Tue Dec 15 13:49:55 1998 Jeffrey A Law (law@cygnus.com) + * sparc.md (float abs/neg splits): Check reload_completed before + calling alter_subreg. - * mn10200.md (addsi3 expander): Use "nonmemory_operand" for operand 2. +Tue Aug 25 19:17:59 1998 David S. Miller - * mn10300.md (bset, bclr): Operand 0 is a read/write operand. + * config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): New + function. + * config/sparc/sparc.h: Declare it. + * config/sparc/sparc.md (float abs/neg splits): Use it. + (all other splits): Handle SUBREGs properly where necessary. + (unnamed (1< +Tue Aug 25 13:35:20 1998 Nick Clifton - * integrate.c (copy_rtx_and_substitute): If a SUBREG is - replaced by a CONCAT whose components do not have the same - mode as the original SUBREG, use a new SUBREG to restore the - mode. + * config/v850/v850.c (movsi_source_operand): Treat CONSTANT_P_RTX + as an ordinary operand. - * emit-rtl.c (subreg_realpart_p): Cope with subregs containing - multiword complex values. +Tue Aug 25 12:54:57 1998 Jason Merrill -1998-12-15 Zack Weinberg + * tree.c (valid_machine_attribute): Don't apply attributes to both + decl and type. - * cppalloc.c: Add xstrdup here. - * cpplib.h: Remove savestring prototype. - * cpplib.c: Remove savestring function. s/savestring/xstrdup/ - throughout. - * cppfiles.c: s/savestring/xstrdup/ throughout. +Tue Aug 25 12:23:20 1998 Richard Henderson -1998-12-15 Zack Weinberg + * reload.c (operands_match_p): Handle rtvecs. - * cpplib.c: Make all directive handlers read their own - arguments. - (struct directive): Remove last two arguments from FUNC - member prototype. Remove `command_reads_line' member - entirely. - (directive_table): Remove initializations of - command_reads_line flag. Pretty-print. - (eval_if_expression, do_define, do_line, do_include, - do_undef, do_error, do_pragma, do_ident, do_if, do_xifdef, - do_else, do_elif, do_sccs, do_assert, do_unassert, - do_warning): Take only two args. + * i386.c (legitimate_pic_address_disp_p): New. + (legitimate_address_p): Use it. + (legitimize_pic_address): Use unspecs to represent @GOT and @GOTOFF. + Handle constant pool symbols just like statics. + (emit_pic_move): Use Pmode not SImode for clarity. + (output_pic_addr_const) [SYMBOL_REF]: Remove @GOT and @GOTOFF hacks. + [UNSPEC]: New, handling what we killed above. + [PLUS]: Detect and abort on invalid symbol arithmetic. + * i386.h (CONSTANT_ADDRESS_P): Remove HIGH. - (cpp_define): Call do_define with two args and the text to - define stuffed into a buffer. - (make_assertion): Call do_assert with two args. - (handle_directive): Call do_line with two args. Call - kt->func with two args. Remove command_reads_line - processing. - (do_define, do_undef, do_error, do_warning, do_pragma, - do_sccs): Read the rest of the line here. - (do_ident): Gobble rest of line, as cccp does. - (cpp_undef): New function. - (cpp_start_read): Call cpp_undef instead of do_undef. +Tue Aug 25 12:02:23 1998 Mark Mitchell -1998-12-15 Zack Weinberg + * alias.c: Include output.h. + (DIFFERENT_ALIAS_SETS_P): Don't treat alias sets as + different if we're in a varargs function. + * Makefile.in (alias.o): Depend on output.h - * cpphash.h (union hash_value): Remove `keydef' member, add a - `struct hashnode *aschain' member for #assert. +Tue Aug 25 19:20:12 1998 J"orn Rennecke - * cpplib.c (struct tokenlist_list, struct - assertion_hashnode): Delete structure definitions. - (assertion_install, assertion_lookup, delete_assertion, - check_assertion, compare_token_lists, reverse_token_list, - read_token_list, free_token_list): Delete functions. - (parse_assertion): New function. - (cpp_cleanup): Don't destroy the assertion_hashtable. + * sh.h (GIV_SORT_CRITERION): Delete. - (do_assert): Gut and rewrite. #assert foo (bar) places - entries for `#foo' and `#foo(bar)' in the macro hash table, - type T_ASSERT. The value union's `aschain' member is used - to chain all answers for a given predicate together. - (do_unassert): Also rewritten. Take an un-asserted - answer off the chain from its predicate and call - delete_macro on the hashnode, or walk a predicate chain - calling delete_macro on all the entries. - (cpp_read_check_assertion): Simply call parse_assertion to - get the canonical assertion name, and look that up in the - hash table. +Tue Aug 25 13:19:46 1998 Dave Brolley - * cpplib.h (ASSERTION_HASHNODE,ASSERTION_HASHSIZE,assertion_hashtab): - Removed. + * regclass.c (regclass): Use xmalloc/free instead of alloca. + * stupid.c (stupid_life_analysis): Likewise. + * reload1.c (reload): Likewise. - * cpphash.c (install): Use bcopy instead of an explicit loop - to copy the macro name. +Tue Aug 25 05:48:18 1998 Jakub Jelinek - * cppexp.c (cpp_lex): Convert the result of - cpp_read_check_assertion to a `struct operation' directly; - don't go through parse_number. + * config/sparc/sparc.c (arith_4096_operand, arith_add_operand, + arith_double_4096_operand, arith_double_add_operand): New + predicates. + * config/sparc/sparc.h (PREDICATE_CODES): Add them, declare them. + * config/sparc/sparc.md (adddi3, addsi3, subdi3, subsi3): Use + them to transform add/sub 4096 into add/sub -4096. -Tue Dec 15 18:27:39 1998 J"orn Rennecke +Mon Aug 24 23:31:03 1998 David S. Miller - * loop.h (struct induction): Delete times_used member. - * loop.c (n_times_set): Rename to set_in_loop. Changed all users. - (n_times_used): Rename to n_times_set. Changed all users. - (scan_loop): Free reg_single_usage before strength reduction. - (record_giv, combine_givs): Remove handling of times_used member. - (combine_givs_used_once): Rename to: - (combine_givs_used_by_other) . Changed all callers. + * loop.c (scan_loop): Allocate some slop to handle pseudos + generated by move_movables. + (load_mems_and_recount_loop_regs_set): Honor AVOID_CC_MODE_COPIES + here too. -Tue Dec 15 01:45:26 1998 Jason Merrill +Mon Aug 24 19:45:40 1998 Jim Wilson - * dwarf2out.c (gen_struct_or_union_type_die): Check AGGREGATE_TYPE_P - instead of TREE_CODE_CLASS == 't'. - (gen_type_die): Likewise. - (scope_die_for): Ignore FUNCTION_TYPE "scopes". + * tree.def (DECL_RESULT): Correct documentation. -Mon Dec 14 16:23:27 1998 Jim Wilson +Tue Aug 25 01:15:27 1998 J"orn Rennecke - * real.c (endian): Disable last change unless - HOST_BITS_PER_WIDE_INT is greater than 32. + * reload1.c (reload_reg_free_before_p): New argument EQUIV; Changed + all callers. Abort for RELOAD_FOR_INSN. RELOAD_FOR_OUTADDR_ADDR: + conflicts will all RELOAD_FOR_OUTPUT reloads. -Mon Dec 14 17:13:36 1998 Andrew MacLeod + * reload1.c (reload_cse_regs_1): When deleting a no-op move that + loads the function result, substitute with a USE. - * output.h (force_data_section): New prototype. - * varasm.c (force_data_section): New function to force the - data section, regardless of what in_section thinks. - * dwarf2out.c (output_call_frame_info): Call force_data_section - since varasm may not realize we've changes sections. +Mon Aug 24 15:20:19 1998 David Edelsohn -Mon Dec 14 14:09:34 1998 Nick Clifton + * rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Use TARGET_POWERPC64 + when testing LEGITIMATE_INDEXED_ADDRESS_P DFmode and DImode. + (LEGITIMIZE_ADDRESS): Use TARGET_POWERPC64 for INDEXED fixup. + * rs6000.c (print_operand, case 'L'): Add UNITS_PER_WORD, not 4. + (print_operand, cases 'O' and 'T'): Fix typos in lossage strings. + * rs6000.md (fix_truncdfsi2_store): Remove %w from non-CONST_INT + operand. + (movdf_softfloat32, movdf_hardfloat64, movdf_softfloat64): Change + 'o' to 'm' for GPR variant constraints. - * reload1.c (reload): Delete REG_RETVAL and REG_LIBCALL notes - after completing reload. +Mon Aug 24 10:25:46 1998 Jeffrey A Law (law@cygnus.com) - * rtl.texi: Document that REG_RETVAL and REG_LIBCALL are - deleted after reload. + * loop.c (scan_loop): Honor AVOID_CC_MODE_COPIES. -Mon Dec 14 01:39:28 1998 Jeffrey A Law (law@cygnus.com) + * h8300.h (STRIP_NAME_ENCODING): Fix typo. - * rtl.h (multiple_sets): Fix prototype. - * rtlanal.c (multiple_sets): Fix return type. + * sparc.md (TFmode splits): Use reg_overlap_mentioned_p to detect + when the source and destination overlap. -Sun Dec 13 12:43:58 1998 Jeff Law (law@cygnus.com) + * stmt.c (emit_case_nodes): Change rtx_function to rtx_fn to avoid + clash with global type. - * version.c: Bump for snapshot. +Mon Aug 24 00:53:53 1998 Jason Merrill -Sun Dec 13 01:05:22 1998 Jeff Law (law@cygnus.com) + * fixinc.irix: Add curses.h handling from fixinc.wrap. - * version.c: Bump for snapshot. + * c-common.c (combine_strings): Also set TREE_READONLY. + Change warn_write_strings to flag_const_strings. + * c-decl.c, c-tree.h: Likewise. -1998-12-13 Manfred Hollstein +Sun Aug 23 18:39:11 1998 David S. Miller - * protoize.c (fputs): Wrap extern declaration in #ifndef fputs. + * config/sparc/sparc.c (sparc_emit_set_const32): If outputting a + CONST_INT, not a symbolic reference, don't use a HIGH/LO_SUM + sequence, use SET/IOR instead so CSE can see it. + * config/sparc/sparc.md (movhi_const64_special, + movsi_const64_special): New patterns necessitated by that change. + (movhi_high): Remove. + (movhi_lo_sum): Change to match an IOR. + (movdf_insn_sp32): Test TARGET_V9 not TARGET_ARCH64. + (movdf_insn_v9only): New pattern for when V9 but not ARCH64. + (movdf_insn_sp64): Test both TARGET_V9 and TARGET_ARCH64. + (movdf splits): Allow when not V9 or when not ARCH64 and integer + registers are involved. + (snesi_zero_extend split): Remove reload_completed test. + (unnamed plus and minus zero_extend sidi splits): Add it. -Sun Dec 13 00:24:14 1998 J"orn Rennecke +Sun Aug 23 11:56:08 1998 Mark Mitchell - * rtl.h (recompute_reg_usage): Add second argument. - * flow.c (recompute_reg_usage): Likewise. - * toplev.c (rest_of_compilation): Supply second argument to - recompute_reg_usage. + * extend.texi: Remove description of extension to explicit + instantiation that is now endorsed by standard C++. - * reload1.c (compute_use_by_pseudos): Allow reg_renumber[regno] < 0 - after reload. +Sun Aug 23 09:39:09 1998 David S. Miller -Sat Dec 12 23:39:10 1998 Jeffrey A Law (law@cygnus.com) + * config/arc/arc.c (arc_initialize_pic): Remove. + * config/arc/arc.h (INITIALIZE_PIC): Similarly, this routine does + nothing on any platform and is invoked by no-one, it does not even + appear in the documentation. + * config/sparc/sparc.h (INITIALIZE_PIC): Likewise. + * config/sparc/sparc.c (initialize_pic): Likewise. + (find_addr_reg): Remove this as well, no longer referenced after + my rewrite. - * m68k/t-m68kelf (MULTILIB_OPTIONS): Add mcpu32. - (MULTILIB_MATCHES): -m68332 now uses mcpu32 libraries, not m68000. - (MULTILIB_EXCEPTIONS): Don't build 68881 libraries for m68000, - mcpu32 or m5200. +Sun Aug 23 00:17:14 1998 Jeffrey A Law (law@cygnus.com) - * i386/next.h (ASM_OUTPUT_ALIGN): Use 0x90 for fill character. + * recog.c (validate_replace_rtx_group): New function. + * recog.h (validate_replace_rtx_group): Declare it. + * regmove.c (optimize_reg_copy_3): If any substitution fails, then undo + the entire group of substitutions. - * rtlanal.c (multiple_sets): New function. - * rtl.h (multiple_sets): Declare it. - * local-alloc.c (wipe_dead_reg): Use it. - * global.c (global_conflicts): Likewise. +Sat Aug 22 23:31:00 1998 Klaus-Georg Adams (Klaus-Georg.Adams@chemie.uni-karlsruhe.de) -Sat Dec 12 22:13:02 1998 Mark Mitchell + * loop.c (load_mems): Fix initializers. - * global.c (record_conflicts): Don't use an array of shorts to - store an array of ints. - (global_conflicts): Likewise. +Fri Aug 21 23:07:46 1998 David S. Miller -Sat Dec 12 16:49:24 1998 Richard Henderson + * config/sparc/sparc.md (TFmode splits): Handle destination + registers being referenced in the address correctly. - * alpha.c (alpha_expand_block_move): mode_for_size expects - bits, not bytes. Infer extra alignment from addressof. - -1998-12-11 Michael Meissner + * expmed.c (make_tree) [CONST_INT]: Sign extend even if + TREE_UNSIGNED, when bitsize of type's mode is larger than + HOST_BITS_PER_WIDE_INT. - * rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Put small data in the - .sbss section, not .sdata. +Fri Aug 21 19:31:31 1998 Alexandre Petit-Bianco -1998-12-11 Manfred Hollstein + * tree.def (LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR): New tree nodes. + * tree.h (LABELED_BLOCK_LABEL, LABELED_BLOCK_BODY, + EXIT_BLOCK_LABELED_BLOCK, EXIT_BLOCK_RETURN, LOOP_EXPR_BODY): New + macros. + * expr.c (expand_expr): Handle LABELED_BLOCK_EXPR and + EXIT_BLOCK_EXPR. - * cccp.c: Do not #include here; this is already done - by "system.h". - * collect2.c: Likewise. - * cpplib.h: Likewise. - * gcc.c: Likewise. - * gcov.c: Likewise. - * getpwd.c: Likewise. - * protoize.c: Likewise. - * toplev.c: Likewise. +Thu Aug 20 19:43:44 1998 Jeffrey A Law (law@cygnus.com) - * cpplib.h (HOST_WIDE_INT): Get definition from "machmode.h" - and don't try to define it here. - * Makefile.in (cppmain.o): Depend on machmode.h. - (cpplib.o): Likewise. - (cpperror.o): Likewise. - (cppexp.o): Likewise. - (cppfiles.o): Likewise. - (cpphash.o): Likewise. - (cppalloc.o): Likewise. - (fix-header.o): Likewise. - (scan-decls.o): Likewise. + * h8300.c (h8300_encode_label): Use '&' for tiny data items. + * h8300.h (TINY_DATA_NAME_P): Likewise. + (STRIP_NAME_ENCODING): Handle '&'. -Fri Dec 11 11:02:49 1998 Stan Cox + * mn10200.h (REG_OK_FOR_INDEX_P): Do not check the mode of the + register (it could be accessed via an outer SUBREG). + (REG_OK_FOR_BASE_P): Likewise. + (GO_IF_LEGITIMATE_ADDRESS): Consistently use REGNO_OK_FOR_BASE_P. - * sh.c (print_operand): Lookup interrupt_handler attribute instead - of relying on static variable. - * (calc_live_regs): Likewise. - * (sh_pragma_insert_attributes): Create interrupt_handler - attribute if a pragma was specified. - * (sh_valid_machine_decl_attribute): Don't set static flag. - * sh.h (PRAGMA_INSERT_ATTRIBUTES): New. + * remove.c (optimize_reg_copy_3): Abort instead of silently generating + bogus rtl. -Fri Dec 11 12:56:07 1998 J"orn Rennecke + * jump.c (rtx_renumbered_equal_p): Do not consider PLUS commutative. - * reload1.c (reload_combine): Use BASIC_BLOCK_LIVE_AT_START - to determine if a register is live at a jump destination. - Everything is dead at a BARRIER. +Thu Aug 20 17:35:20 1998 David S. Miller -Thu Dec 10 16:02:06 1998 Jim Wilson + * config/sparc/sparc.md (movtf_insn_sp32): All memory operands + must be offsettable so the splits can be made. - * cse.c (simplify_unary_operation): Sign-extend constants when - they have the most significant bit set for the target. - * real.c (endian): Sign-extend 32 bit output values on a 64 bit - host. - * m32r/m32r.c (m32r_expand_prologue): Store pretend_size in - HOST_WIDE_INT temporary before negating it. - * m32r/m32r.md (movsi_insn+1): Use ~0xffff instead of 0xffff0000. +Thu Aug 20 13:56:53 1998 Michael Meissner -Thu Dec 10 15:05:59 1998 Dave Brolley + * config/i386/winnt.c: Include system.h, not stdio.h to get + sys/param.h pulled in before rtl.h in case the system defines MIN + and MAX. - * objc/objc-act.c (lang_init_options): Enclose cpplib related code in - #if USE_CPPLIB. +Thu Aug 20 13:44:20 1998 David Edelsohn -Thu Dec 10 13:39:46 1998 Kaveh R. Ghazi + * rs6000.md (movqi, movhi): Add CONSTANT_P_RTX. - * collect2.h: New header file for prototypes. +Thu Aug 20 13:15:11 1998 Dave Brolley - * Makefile.in (collect2.o, tlink.o): Depend on collect2.h. + * stor-layout.c (layout_type): Compute TYPE_SIZE_UNIT correctly for + arrays of bits. + * cpplib.c (cpp_define): Handle macros with parameters. - * collect2.c: Include collect2.h. - * tlink.c: Likewise. +Wed Aug 19 21:33:19 1998 David Edelsohn -Wed Dec 9 23:55:11 1998 Jeffrey A Law (law@cygnus.com) + * rs6000.c (rs6000_output_load_toc_table): Use ld for 64-bit. + (output_toc): Use single TOC slot or llong minimal-toc for DFmode + and DImode 64-bit. Use llong for minimal-toc SFmode and + SYMBOL_REF / LABEL_REF 64-bit. + (output_function_profiler): Use llong for profiler label and ld to + load 64-bit label address. - * flow.c: Update some comments. +Wed Aug 19 17:52:27 1998 Nick Clifton (nickc@cygnus.com) -Wed Dec 9 15:29:26 1998 Dave Brolley + * config/arm/thumb.md (extendqisi2_insn): Cope with REG + + OFFSET addressing. - * objc/objc-act.c (cpp_initialized): Removed. - (lang_init_options): Initialize cpplib. - (lang_decode_option): Move initialization of cpplib to - lang_init_options. - * c-lang.c (parse_options,parse_in): Added. - (lang_init_options): Initialized cpplib here. - * c-decl.c (parse_options,cpp_initialized): Removed. - (c_decode_option): Move initialization of cpplib to - lang_init_options. +Wed Aug 19 14:13:31 1998 Jeff Law (law@cygnus.com) -Wed Dec 9 19:36:57 1998 J"orn Rennecke + * version.c: Bump for snapshot. - * reload1.c (reload_combine, reload_combine_note_store): - Make STORE_RUID always valid. - (reload_combine): Check if BASE is clobbered too early. +Wed Aug 19 13:10:30 1998 Jeff Law (law@cygnus.com) -Wed Dec 9 09:53:58 1998 Nick Clifton + * version.c: Bump for snapshot. - * reload.c (find_reloads): Display the insn that cannot be - reloaded. +Wed Aug 19 13:06:47 1998 Jason Merrill -Wed Dec 9 12:15:26 1998 Dave Brolley + * collect2.c (extract_init_priority): Use atoi instead of strtoul. - * cccp.c (create_definition): Fix end of buffer logic. +Wed Aug 19 13:51:35 1998 Hans-Peter Nilsson -Wed Dec 9 10:15:45 1998 Kaveh R. Ghazi + * tm.texi (Misc): Fix typo "teh". - * except.c (duplicate_eh_handlers, rethrow_symbol_map): Function - pointer parameters changed to use the PARAMS() macro. + * tm.texi (PIC): Fix typo "PPIC". -Wed Dec 9 09:12:40 1998 Andrew MacLeod + * tm.texi (Caller Saves): Say that DEFAULT_CALLER_SAVES has no + effect when -O2 and higher. + * invoke.texi (Optimize Options): Likewise for -fcaller-saves. - * except.h (struct handler_info): Add handler_number field. - * except.c (gen_exception_label): EH labels no longer need to be - on the permanent obstack. - (get_new_handler): Set the label number field. - (output_exception_table_entry): Regenerate handler label reference - from the label number field. - (init_eh): Remove a blank line. - * integrate.c (get_label_from_map): Labels no longer need to be - on the permanent obstack. +1998-08-19 Michael Hayes -Tue Dec 8 22:04:33 1998 Jim Wilson + * regclass.c: Changed register set documentation to be consistent + with GCC behavior. - * i960/i960.h (CONST_COSTS, case CONST_INT): Accept power2_operand - only when OUTER_CODE is SET. + * final.c (final_start_function): Removed redundant test for + call_fixed_regs. -Tue Dec 8 22:47:15 1998 J"orn Rennecke +Wed Aug 19 13:28:41 1998 Mark Mitchell - * loop.c (strength_reduce): If scan_start points to the loop exit - test, be wary of subversive use of gotos inside expression statements. - Don't set maybe_multiple for a backward jump that does not - include the label under consideration into its range. - * unroll.c (biv_total_increment): Make use of maybe_multiple field. + * rtl.h (rtx_function): New type. + (for_each_rtx): New function. + * rtlanal.c (for_each_rtx): Define it. -Tue Dec 8 22:33:18 1998 J"orn Rennecke + * recog.c (change_t): New type. + (change_objects, change_old_codes, change_locs, change_olds): + Replace with ... + (changes): New variable. + (validate_change): Dynamically allocate room for more changes, if + necessary. Uses changes array instead of change_objects, etc. + (apply_change_group): Use changes array instead of + change_objects, etc. - * explow.c (plus_constant_wide): Don't immediately return with - result of recursive call. + * loop.c (loop_mem_info): New type. + (loop_mems): New variable. + (loop_mems_idx): Likewise. + (looop_mems_allocated): Likewise. + (scan_loop): Remove nregs parameter. + (next_insn_in_loop): New function. + (load_mems_and_recount_loop_regs_set): Likewise. + (load_mems): Likewise. + (insert_loop_mem): Likewise. + (replace_loop_mem): Likewise. + (replace_label): Likewise. + (INSN_IN_RANGE_P): New macro. + (loop_optimize): Don't pass max_reg_num() to scan_loop. + (scan_loop): Remove nregs parameter, compute it after any new + registers are created by load_mems. Use INSN_IN_RANGE_P and + next_insn_in_loop rather than expanding them inline. Call + load_mems to load memory into pseudos, if appropriate. + (prescan_loop): Figure out whether or not there are jumps from the + loop to targets other than the label immediately following the + loop. Call insert_loop_mem to notice all the MEMs used in the + loop, if it could be safe to pull MEMs into REGs for the duration + of the loop. + (strength_reduce): Use next_insn_in_loop. Tweak comments. -Tue Dec 8 15:32:56 1998 Andrew MacLeod +Wed Aug 19 08:29:44 1998 Richard Earnshaw (rearnsha@arm.com) - * eh-common.h (struct eh_context): Add table_index for rethrows. + * arm.c (arm_override_options): Remove lie about ignoring PIC flag. - * rtl.h (enum reg_note): Add REG_EH_REGION and REG_EH_RETHROW reg notes. - (SYMBOL_REF_NEED_ADJUST): New flag indicating symbol needs to be - processed when inlined or unrolled (ie duplicated in some way). +Wed Aug 19 07:08:15 1998 David S. Miller - * rtl.c (reg_note_name): Add strings for new reg_note enums. + * config/sparc/sparc.c (finalize_pic): Check for the correct + nonlocal_goto_receiver UNSPEC number. + * config/sparc/sparc.md (nonlocal_goto_receiver): Add comment + making note of this dependency existing in sparc.c. + (negtf2_notv9 split): Give NEG SFmode. + (negsf2): Fix insn output string. - * expr.h (rethrow_libfunc): New library decl. +Tue Aug 18 12:40:27 1998 Richard Henderson - * optabs.c (rethrow_libfunc): Initialize. + * c-common.c (decl_attributes): Issue an error if the argument + to alias is not a string. - * except.h (struct eh_entry): Add new field 'rethrow_label'. - (new_eh_region_entry): No longer exported from except.c. - (duplicate_handlers): Renamed to duplicate_eh_handlers and - different prototype. - (rethrow_symbol_map, rethrow_used): New exported functions. - (eh_region_from_symbol): New exported function. +Tue Aug 18 10:33:30 1998 Jeffrey A Law (law@cygnus.com) - * except.c (create_rethrow_ref): New function to create a single - SYMBOL_REF for a rethrow region. - (push_eh_entry): Initialize a rethrow ref. - (func_eh_entry): Add a rethrow_label field. - (new_eh_region_entry): Make static, and initialize the rethrow entry. - (duplicate_eh_handlers): Create a new region, and remap labels/symbols. - (eh_region_from_symbol): Find an EH region based on its rethrow symbol. - (rethrow_symbol_map): Given a label map, maps a rethrow symbol for - a region into an appropriate new symbol. - (rethrow_used): Indicate whether a rethrow symbol has been referenced. - (expand_eh_region_end): Don't issue jump around code for new-exceptions. - (end_catch_handler): Emit a barrier for new-exceptions since - control can never drop through the end of a catch block. - (expand_end_all_catch): new-exceptions never fall through a catch - block. - (expand_rethrow): Use __rethrow routine for new exceptions. - (output_exception_table_entry): Generate rethrow labels, if needed. - (output_exception_table): Generate start and end rethrow labels. - (init_eh): Create rethrow symbols for beginning and end of table. - (scan_region): Don't eliminate EH regions which are the targets of - rethrows. + * haifa-sched.c (sched_analyze): Put all JUMP_INSNs on the last + pending memory flush list. - * flow.c (make_edges): Add different edges for rethrow calls, - identified by having the REG_EH_RETHROW reg label. - (delete_unreachable_blocks): Don't delete regions markers which are - the target of a rethrow. + * combine.c (can_combine_p): Allow combining insns with REG_RETVAL + notes. + (try_combine): Allow combining insns with REG_LIBCALL notes. - * integrate.c (save_for_inline_eh_labelmap): New callback routine to - allow save_for_inline_copying to call duplicate_eh_handlers. - (save_for_inline_copying): Call duplicate_eh_handlers instead of - exposing internal details of exception regions. - (copy_for_inline): Check if SYMBOL_REFs need adjustment. - (expand_inline_function_eh_labelmap): New callback routine to - allow expand_inline_function to call duplicate_eh_handlers. - (expand_inline_function): Call duplicate_eh_handlers instead of - exposing internal details of exception regions. - (copy_rtx_and_substitute): Adjust SYMBOL_REFS if SYMBOL_REF_NEED_ADJUST - flag is set. + * expr.c (emit_block_move): Do not call memcpy as a libcall + instead build up a CALL_EXPR and call it like any other + function. + (clear_storage): Similarly for memset. - * libgcc2.c (find_exception_handler): Generalize to enable it to - pick up processing where it left off last time for a rethrow. - (__unwinding_cleanup): New function. debug hook which is called before - unwinding when __throw finds there is nothing but cleanups left. - (throw_helper): Common parts of __throw extracted out for reuse. - (__throw): Common parts moved to throw_helper. - (__rethrow): New function for performing rethrows. + * regmove.c (fixup_match_2): Do not call reg_overlap_mentioned_p + on notes. -Tue Dec 8 13:11:04 1998 Jeffrey A Law (law@cygnus.com) + * Makefile.in (cplus-dem.o): Provide explicit rules for building + cplus-dem.o. - * reload1.c (current_function_decl): Tweak declaration. + * regmove.c (optimize_reg_copy_1): Update REG_N_CALLS_CROSSED + and REG_LIVE_LENGTH as successful substitutions are made. -Tue Dec 8 10:23:52 1998 Richard Henderson +Tue Aug 18 07:15:27 1998 Kaveh R. Ghazi - * c-decl.c (flag_isoc9x): Default off. - (c_decode_option): Kill -std=gnu, add -std=gnu89 and -std=gnu9x. - * cccp.c (print_help, main): Likewise. - * gcc.c (default_compilers): Update for -std=gnu*. + * config/sparc/sparc.c (ultra_find_type): Add empty semicolon + statement after end of loop label. -Tue Dec 8 01:14:46 1998 Jeffrey A Law (law@cygnus.com) +Tue Aug 18 07:13:27 1998 David S. Miller - * Makefile.in (DEMANGLE_H): Change location to shared demangle.h. - * demangle.h: Deleted. + * config/sparc/sparc.c (ultra_types_avail): New variable. + (ultra_build_types_avail): New function to record mask of insn + types in ready list at this cycle. + (ultrasparc_sched_reorder): Call it. + (ultra_find_type): Use it to quicken the search. Also simplif + dependency check, don't use rtx_equal_p because we know exactly + what we are looking for. - * reload1.c (current_function_decl): Declare. +Tue Aug 18 03:20:53 1998 Richard Earnshaw (rearnsha@arm.com) -Tue Dec 8 11:58:51 1998 Kaveh R. Ghazi + * arm.h (SECONDARY_INPUT_RELOAD_CLASS): Return NO_REGS if compiling + for architecture v4. - * cpplib.c (convert_string): Use `0x00ff', not `0x00ffU'. +Mon Aug 17 21:26:38 1998 David S. Miller -Tue Dec 8 09:28:36 1998 Kaveh R. Ghazi + * config/sparc/sparc.md (sltu, sgeu): Don't FAIL, call + gen_compare_reg. + (movsf_const_intreg, movsf_const_high, movsf_const_lo, + movdf_const_intreg and helper splits): New patterns to move float + constants into integer registers. + (negtf2, negdf2, abstf2, absdf2): Rework using new patterns and + splits. - * dbxout.c: If USG is defined use gstab.h, even if HAVE_STAB_H is set. +Mon Aug 17 11:46:19 1998 Jeffrey A Law (law@cygnus.com) -1998-12-08 Ulrich Drepper + * From Graham + * tree.c (build_index_type): Copy TYPE_SIZE_UNIT from sizetype + to itype. + * c-decl.c (finish_enum): Copy TYPE_SIZ_UNIT from enumtype to tem. - * configure.in: Test for availability of putc_unlocked, fputc_unlocked, - and fputs_unlocked. - * configure: Rebuilt. - * system.h: If the *_unlocked functions are available use them - instead of the locked counterparts by defining macros. - * config.in: Regenerated. + * rs6000.c (secondary_reload_class): For TARGET_ELF, indicate that + a BASE_REGS register is needed as an intermediate when copying + a symbolic value into any register class other than BASE_REGS. -Tue Dec 8 00:34:05 1998 Mike Stump + * expr.c (move_by_pieces): No longer static. Remove prototype. + * rtl.h (move_by_pieces): Add extern prototype. + * mips.c (expand_block_move): Handle aligned straight line copy by + calling move_by_pieces. - * i386/bsd.h (ASM_FILE_START): Don't use dump_base_name, it is - wrong and should only be used for dump related things, not - debugging information, instead main_input_filename should be used. - Also, reuse output_file_directive if possible. - * i386/aix386ng.h (ASM_FILE_START): Likewise. - * i386/isc.h (ASM_FILE_START): Likewise. - * i386/win-nt.h (ASM_FILE_START): Likewise. - * i386/sun386.h (ASM_FILE_START): Likewise. + * expr.c (expand_expr): Allow assignments from TImode PARM_DECLs + and VAR_DECLs. -Mon Dec 7 23:56:28 1998 Robert Lipe +Mon Aug 17 10:28:52 1998 Mark Mitchell - * configure.in (mips*-*-linux*): Handle big and little endian - systems. - * configure: Rebuilt. + * stmt.c (expand_end_loop): Tidy. Allow unconditional + jumps out of the loop to be treated as part of the exit test. -Mon Dec 7 23:14:51 1998 Mike Stump +Mon Aug 17 10:06:11 1998 Kaveh R. Ghazi + Jeff Law - * emit-rtl.c: Fix typo. + * Makefile.in (cplus-dep.o): Use cplus-dem.c from libiberty. + * cplus-dem.c: Delete. -Mon Dec 7 23:07:38 1998 Nathan Sidwell + * Makefile.in (fold-const.o): Depend on $(RTL_H). - * reload1.c (eliminate_regs): Don't do anything, if we're not - generating code. + * fold-const.c: Include rtl.h to get the prototype for + `set_identifier_local_value'. -Mon Dec 7 15:27:09 1998 DJ Delorie + * loop.c (express_from_1): Remove unused variable `tmp'. + (combine_givs): Cast the first argument of bzero to char *. - * mips/mips.h (ENCODE_SECTION_INFO): Handle TARGET_EMBEDDED_DATA. - Add comment. - * mips/mips.c (mips_select_section): Add comment. + * toplev.c (display_help): Remove unused variable `looking_for_start'. -Mon Dec 7 17:55:06 1998 Mike Stump + * c-decl.c (init_decl_processing): Remove unneeded &. - * cccp.c (ignore_escape_flag): Add support for \ as `natural' - characters in file names in #line to be consistent with #include - handling. We support escape processing in the # 1 "..." version of - the command. See also support in cp/lex.c. - (handle_directive): Likewise. - (do_line): Likewise. + * alpha.h (alpha_initialize_trampoline): Provide prototype. -1998-12-07 Zack Weinberg + * except.c (set_exception_lang_code, set_exception_version_code): + Change parameter from `short' to `int' to avoid using a gcc + extension. - * cpplib.c (initialize_char_syntax): Use ISALPHA and ISALNUM - so it'll work on non-ASCII platforms. Always consider $ an - identifier character. Take no arguments. - (cpp_reader_init): Call initialize_char_syntax with no - arguments. - (cpp_start_read): Don't call initialize_char_syntax again. - Clear is_idchar['$'] and is_idstart['$'] if not - opts->dollars_in_ident. + * except.h (set_exception_lang_code, set_exception_version_code): + Likewise for prototypes. - * cpplib.h (struct cpp_reader): Replace void *data element by - cpp_options *opts. Rearrange elements to make gdb printout - less annoying (put buffer stack at end). - (CPP_OPTIONS): Get rid of now-unnecessary cast. + * flow.c (count_reg_references): Remove unused variables `regno' + and `i'. - * cppmain.c: s/data/opts/ when initializing cpp_reader - structure. - * c-decl.c: Likewise. - * objc/objc-act.c: Likewise. - * fix-header.c: Likewise. + * gcse.c (hash_scan_insn): Declare parameter `in_libcall_block'. -1998-12-07 Zack Weinberg + * prefix.c (translate_name): Cast the result of `alloca'. - * cpplib.h (struct cpp_buffer): Replace dir and dlen members - with a struct file_name_list pointer. - (struct cpp_reader): Add pointer to chain of `actual - directory' include searchpath entries. - (struct file_name_list): Add *alloc pointer for the sake of - the actual-directory chain. + * varray.h (VARRAY_FREE): Reimplement as a `do-while(0)' statement. - Move definition of HOST_WIDE_INT here. - (cpp_parse_escape): Change prototype to match changes in - cppexp.c. +Mon Aug 17 09:23:42 1998 Andreas Schwab - * cppfiles.c (actual_directory): New function. - (finclude): Use it to initialize the buffer's actual_dir - entry. - (find_include_file): We don't need to fix up max_include_len - here. + * config/m68k/m68k.c: Include "system.h" instead of . + Include "toplev.h". + (valid_dbcc_comparison_p): Mark mode argument as unused. + (symbolic_operand): Likewise. + (legitimize_pic_address): Likewise. + (const_uint32_operand): Likewise. + (const_sint32_operand): Likewise. + * sched.c [!INSN_SCHEDULING]: Define only dummy function + schedule_insns and comment out rest of file. - * cpplib.c (do_include): Don't allocate a file_name_list on - the fly for current directory "" includes, use the one that's - been preallocated in pfile->buffer->actual_dir. Hoist out - duplicate code from the search_start selection logic. - (cpp_reader_init): Initialize pfile->actual_dirs. + * m68k.c (output_move_simode_const): Use subl to move a zero into an + address register. + (output_move_[hq]imode): Likewise. - Remove definition of HOST_WIDE_INT. Change calls - to cpp_parse_escape to match changes in cppexp.c (note - hardcoded MASK, which is safe since this is the source - character set). +Mon Aug 17 09:15:47 1998 Jeffrey A Law (law@cygnus.com) - * cppexp.c: Bring over changes to cpp_parse_escape from cccp.c - to handle wide character constants in #if directives. The - function now returns a HOST_WIDE_INT, and takes a third - argument which is a binary mask for all legal values (0x00ff - for 8-bit `char', 0xffff for 16-bit `wchar_t', etc.) Define - MAX_CHAR_TYPE_MASK and MAX_WCHAR_TYPE_MASK. Change callers of - cpp_parse_escape to match. [Fixes c-torture/execute/widechar-1.c] + * toplev.c (main): Enable -fstrict-aliasing for -O2 and above. + * invoke.texi: Corresponding changes. -Mon Dec 7 15:38:25 1998 Dave Brolley +Mon Aug 17 02:03:55 1998 Richard Henderson - * gcc.c (default_compilers): Fix typo in USE_CPPLIB spec for cc1. + * regclass.c (allocate_reg_info): Respect MIN when clearing data. -Mon Dec 7 15:38:25 1998 Kaveh R. Ghazi +Sun Aug 16 17:37:06 1998 David S. Miller - * c-aux-info.c (concat): Wrap function definition in !USE_CPPLIB. - * cppalloc.c: Move function `xcalloc' from cpplib.c to here. - * cpplib.c: Move function `xcalloc' from here to cppalloc.c. + * config/sparc/sparc.c (ultra_code_from_mask, + ultra_cmove_results_ready_p, ultra_fpmode_conflict_exists, + ultra_find_type, ultra_schedule_insn, ultra_flush_pipeline, + ultrasparc_sched_init, ultrasparc_variable_issue, + ultra_rescan_pipeline_state, ultrasparc_sched_reorder): New + functions to describe UltraSPARC pipeline exactly to Haifa. + (ultrasparc_adjust_cost): Indicate IMUL type insns have zero cost, + as there is nothing the scheduler can do about it. Indicate that + REG_DEP_OUTPUT's collide. Fixup formatting. + * config/sparc/sparc.h (RTX_COSTS): Fixup integer multiply and + divide costs on Ultra for DImode. + (MD_SCHED_INIT, MD_SCHED_REORDER, MD_SCHED_VARIABLE_ISSUE): + Define. + * config/sparc/sparc.md (ieu_unnamed function unit): Rename to + ieuN and add call_no_delay_slot to type list. + (cti function unit): New unit for branches on UltraSPARC. + (subx/addx insns): Set type to misc. + (sidi zero/sign extension insns on arch64): Set type to shift. + (sign_extendhidi2_insn): Set type to sload. -Mon Dec 7 11:30:49 1998 Nick Clifton +Sun Aug 16 13:52:00 1998 David Edelsohn - * final.c (output_asm_name): Use tabs to separate comments from - assembly text. + * rs6000.c (rs6000_stack_info): Use if == 0 for sizes. + (output_epilog): Use if != 0 for offset. + (rs6000_fatal_bad_address): Prepare for Intl. + * rs6000.h (rs6000_fatal_bad_address): Declare. + * rs6000.md (movsfcc, movdfcc): Use else if. + (elf_high): Use {liu|lis}. + (elf_low): Use {cal|la}. Remove %a template from old mnemonics. + (movsi): Use rs6000_fatal_bad_address. - Include instruction lengths (if defined) in output. +Sun Aug 16 01:53:21 1998 Richard Henderson -Mon Dec 7 10:53:38 1998 Michael Hayes + * reload.c (find_equiv_reg): Reject equivalences separated + by a volatile instruction. - * loop.c (check_dbra_loop): Fix initial_value and initial_equiv_value - in the loop_info structure. +Sun Aug 16 00:21:44 1998 Franz Sirl -Mon Dec 7 11:04:40 1998 Catherine Moore + * rs6000/linux.h (CPP_OS_DEFAULT_SPEC): Define. - * configure.in (arm*-*-ecos-elf): New target. - * configure: Regenerated. - * config/arm/elf.h (ASM_WEAKEN_LABEL): Define. - * config/arm/ecos-elf.h: New file. - * config/arm/unknown-elf.h (TARGET_VERSION): Check - for redefinition. +Sat Aug 15 20:51:35 1998 Richard Henderson -Mon Dec 7 16:15:51 1998 J"orn Rennecke + * alpha.md (movsicc): Fix mode mismatch. - * sh.c (output_far_jump): Emit braf only for TARGET_SH2. +Sat Aug 15 20:22:33 1998 H.J. Lu (hjl@gnu.org) -Sun Dec 6 04:19:45 1998 Jeff Law (law@cygnus.com) + * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Handle aggregated + return type. + * config/alpha/win-nt.h (ASM_OUTPUT_MI_THUNK): Likewise. - * version.c: Bump for snapshot. +Sat Aug 15 08:39:49 1998 David S. Miller -Sun Dec 6 05:16:16 1998 Michael Hayes + * config/sparc/sparc.md (movsi_lo_sum_pic_label_reg): Remove + write-only modifier from operand 1 constraint. - * loop.c (check_dbra_loop): New argument loop_info. Update fields - as needed. +Sat Aug 15 06:28:19 1998 David S. Miller -Sun Dec 6 03:40:13 1998 Jeff Law (law@cygnus.com) + * config/sparc/sparc.c (sparc_emit_set_const64_quick1): If + emitting a XOR of -1 at the end, emit a NOT instead for combine's + sake. + (sparc_emit_set_const64): Likewise, also when computing trailing + bits do not negate low_bits and make fast_int an int. - * version.c: Bump for snapshot. +Fri Aug 14 21:07:03 1998 Jeffrey A Law (law@cygnus.com) -Sun Dec 6 07:49:29 1998 Alexandre Oliva + * loop.c (add_label_notes): Do not ignore references to labels + before dispatch tables. Mirrors Apr 8 change to mark_jump_label. + * gcse.c (add_label_notes): Similarly. - * gcc.texi (Bug Reporting): 40Kb is a soft limit, larger - compressed reports are ok and preferred over URLs. + * pa.h (ASM_OUTPUT_MI_THUNK): Strip name encoding. -Sun Dec 6 07:45:33 1998 Alexandre Oliva + * m68k.md (adddi_dilshr32): One of the operands must be a register. + (adddi_dishl32): Similarly. - * invoke.texi (Warning Options): Soften the tone of -pedantic. +Fri Aug 14 14:12:59 1998 Jason Merrill -Sun Dec 6 00:20:44 1998 H.J. Lu (hjl@gnu.org) + * i386.h (MODES_TIEABLE_P): Reorganize to shut up warnings. + * alias.c (memrefs_conflict_p): Add braces to shut up warnings. + * cse.c (cse_basic_block): Add parens to shut up warnings. - * print-rtl.c (print_rtx): Add prototype. +Fri Aug 14 12:58:21 1998 David S. Miller - * unroll.c (iteration_info): Make it static. + * config/sparc/sparc.c (sparc_emit_set_const64_quick2, + sparc_emit_set_const64_longway, const64_is_2insns, + create_simple_focus_bits, sparc_emit_set_const64): Fix more bugs + in 64-bit constant formation. + * config/sparc/sparc.md (snesi_zero_extend split): Generate + rtl for addx not subx. + (define_insn movdi_const64_special): Make available even when + HOST_BITS_PER_WIDE_INT is not 64. + (movdi_lo_sum_sp64_cint, movdi_high_sp64_cint): Remove. + (losum_di_medlow, sethm, setlo): Make op2 symbolic_operand. + (cmp_siqi_trunc_set, cmp_diqi_trunc_set): Encapsulate both + instances of operand 1 inside a QI subreg. + (xordi3_sp64_dbl): Remove '%' constraint for op1. + (one_cmpldi2_sp64): Fix output string. + (one_cmplsi2_not_liveg0): Rewrite to remove unneeded extra + alternative case. + (unnamed arch64 ashift DI): Truncate shift count if greater than + 63, not 31. -Sun Dec 6 01:19:46 1998 Richard Henderson +Fri Aug 14 21:52:53 1998 J"orn Rennecke - * alias.c (memrefs_conflict_p): A second ANDed address - disables the aligned address optimization. + * expr.c (store_expr): Don't optimize away load-store pair + when either source or destination have a side effect. -Sat Dec 5 18:48:25 1998 Richard Henderson +Fri Aug 14 16:50:10 1998 John Carr - * alpha.c (alpha_emit_set_const_1): Fix parenthesis error - in -c << n case. + * genrecog.c (add_to_sequence): Fatal error if the modes of the + operands of SET are incompatible. -Sat Dec 5 15:14:52 1998 Jason Merrill + * alpha.md: Fix max and min patterns so modes of SET operands match. - * i960.h (BOOL_TYPE_SIZE): Define. +Fri Aug 14 12:22:55 1998 Ian Lance Taylor -Sun Dec 6 00:28:16 1998 Michael Hayes + * configure.in: Avoid [[ by using test and changequote. + * configure: Rebuild. - * config/c4x/c4x.c (valid_parallel_load_store): Flog functionality - from old valid_parallel_operands_4. - (valid_parallel_operands_4): Check that operands for 4 operand - parallel insns are valid, excluding load/store insns. - * config/c4x/c4x.h (valid_parallel_load_store): Add prototype. - * config/c4x/c4x.md (*movqf_parallel, *movqi_parallel): Use - valid_parallel_load_store instead of valid_parallel_operands_4. - (*absqf2_movqf_clobber, *floatqiqf2_movqf_clobber, - *negqf2_movqf_clobber, *absqi2_movqi_clobber, - *fixqfqi2_movqi_clobber, *negqi2_movqi_clobber, - *notqi_movqi_clobber): Use valid_parallel_operands_4. - (*subqf3_movqf_clobber, *ashlqi3_movqi_clobber, - *ashrqi3_movqi_clobber, *lshrqi3_movqi_clobber, - *subqi3_movqi_clobber): Use valid_parallel_operands_5. +Fri Aug 14 01:22:31 1998 David S. Miller -Sat Dec 5 23:52:01 1998 Michael Hayes + * rtl.def (CONSTANT_P_RTX): Fix typo in string name. - * config/c4x/c4x.c (iteration_info): Delete extern. + * config/sparc/sparc.md (seqdi_special_trunc, snedi_special_trunc, + seqsi_special_extend, snesi_special_extend, snesi_zero_extend and + split, snedi_zero_trunc and split, seqsi_zero_extend and split, + seqdi_zero_trunc and split, pic_lo_sum_di, pic_sethi_di, + movdi_cc_sp64_trunc, movdi_cc_reg_sp64_trunc, addx_extend_sp32 and + split, addx_extend_sp64, subx_extend_sp64, subx_extend and split): + Fix mismatching modes in SET operands. + (conditional move patterns): Fix formatting. + (unnamed subx arch64 pattern): Remove duplicate insn. -Fri Dec 4 20:15:57 1998 Bernd Schmidt +Fri Aug 14 00:34:34 1998 David S. Miller - * tm.texi (SMALL_REGISTER_CLASSES): Make description match reality. + * config/sparc/sparc.c (const64_operand, const64_high_operand): + Get it right when HOST_BITS_PER_WIDE_INT is not 64. + (input_operand): Fixup test for what we accept for constant + integers. + (sparc_emit_set_const32, sparc_emit_set_symbolic_const64): Give + set VOIDmode. + (safe_constDI): Remove. + (sparc_emit_set_safe_HIGH64, gen_safe_SET64, gen_safe_OR64, + gen_safe_XOR64): New functions. + (sparc_emit_set_const64_quick1, sparc_emit_set_const64_quick2, + sparc_emit_set_const64_longway, sparc_emit_set_const64): Use + them. + * config/sparc/sparc.md (define_insn xordi3_sp64_dbl): Only make + available when HOST_BITS_PER_WIDE_INT is not 64. + (define_insn movdi_sp64_dbl, movdi_const64_special): Likewise and + move before movdi_insn_sp64 pattern. + (define_insn movdi_lo_sum_sp64_dbl, movdi_high_sp64_dbl): Remove. + (define_insn sethi_di_medlow, seth44, setm44, sethh): Use + symbolic_operand as predicate for second operand. + (DImode minus split on arch32, negsi2 expander, one_cmplsi2 + expander): Give set VOIDmode. - * final.c (cleanup_subreg_operands): Delete some unused code. +Fri Aug 14 01:45:06 1998 Mumit Khan - * recog.h (MAX_RECOG_ALTERNATIVES): New macro. - (struct insn_alternative): New structure definition. - (recog_op_alt): Declare variable. - (preprocess_constraints): Declare function. - * recog.c (recog_op_alt): New variable. - (extract_insn): Verify number of alternatives is in range. - (preprocess_constraints): New function. - * reg-stack.c: Include recog.h. - (constrain_asm_operands): Delete. - (get_asm_operand_lengths): Delete. - (get_asm_operand_n_inputs): New function. - (record_asm_reg_life): Delete OPERANDS, CONSTRAINTS, N_INPUTS and - N_OUTPUTS args. All callers changed. - Compute number of inputs and outputs here by calling - get_asm_operand_n_inputs. - Instead of constrain_asm_operands, call extract_insn, - constrain_operands and preprocess_constraints. Use information - computed by these functions throughout. - (record_reg_life): Delete code that is unused due to changes in - record_asm_reg_life. - (subst_asm_stack_regs): Delete OPERANDS, OPERAND_LOC, CONSTRAINTS, - N_INPUTS and N_OUTPUTS args. All callers changed. - Similar changes as in record_asm_reg_life. - (subst_stack_regs): Move n_operands declaration into the if statement - where it's used. - Delete code that is unused due to changes in subst_asm_stack_regs. - * stmt.c (expand_asm_operands): Verify number of alternatives is in - range. - * Makefile.in (reg-stack.o): Depend on recog.h. + * i386/cygwin32 (DEFAULT_PCC_STRUCT_RETURN): Define. -Fri Dec 4 02:23:24 1998 Jeffrey A Law (law@cygnus.com) +Fri Aug 14 01:40:21 1998 Geoffrey Keating - * except.c (set_exception_version_code): Argument is an "int". + * rs6000/linux.h (LINK_SPEC): Pass -G args to the linker. -Fri Dec 4 01:29:28 1998 Jeffrey A Law (law@cygnus.com) +Fri Aug 14 01:23:23 1998 Richard Earnshaw (rearnsha@arm.com) - * configure.in (hppa2*-*-*): Handle like hppa1.1-*-* for now. - * configure: Rebuilt. + * arm/netbsd.h (TARGET_DEFAULT): Default includes software floating + point. + (CPP_FLOAT_DEFAULT_SPEC): Re-define accordingly. -Fri Dec 4 01:29:28 1998 Robert Lipe +Fri Aug 14 01:19:08 1998 Robert Lipe - * configure.in (mipsel-*-linux*): New target. - * mips/linux.h: New file, based on other Linux targets. + * install.texi: Various SCO OpenServer tweaks. -Thu Dec 3 11:19:50 1998 Mike Stump +Thu Aug 13 20:14:40 1998 Jim Wilson - * gthr-vxworks.h (__ehdtor): Fix memory leak. The delete hook - runs in the context of the deleter, not the deletee, so we must - use taskVarGet to find the correct memory to free. - (__gthread_key_create): Initialize the task - variable subsystem so that the task variable is still active when - the delete hook is run. + * reload1.c (eliminate_regs_in_insn): Handle another case when + eliminating the frame pointer to the hard frame pointer. Add + missing ep->to_rtx check to one existing case. -1998-12-03 Joseph S. Myers + * mips/mips.md (movhi_internal2+2): Fix typo mem:SI -> mem:HI. - * pdp11.h: Use optimize_size for space optimizations. - * pdp11.c: Likewise. - * pdp11.md: Likewise. +Thu Aug 13 17:08:11 1998 Jason Merrill - * pdp11.h (TARGET_40_PLUS): Fix typo. + * tree.h: De-conditionalize init_priority code. -Thu Dec 3 11:48:32 1998 Jeffrey A Law (law@cygnus.com) + * mips.h (NM_FLAGS): Change from -Bp to -Bn. + * collect2.c (NM_FLAGS): Change from -p to -n. - * local-alloc.c (block_alloc): Slightly retune heuristic to widen - qty lifetimes. + * configure.in: Turn on collect2 for mipstx39-elf. + Handle use_collect2=no properly. -Thu Dec 3 22:30:18 1998 Michael Hayes + * c-common.c: De-conditionalize init_priority code. + * collect2.c (extract_init_priority, sort_ids): New fns. + (main): Call sort_ids. + Move sequence_number to file scope. - * alias.c (addr_side_effect_eval): New function. - (memrefs_conflict_p): Use it. - * rtl.h (addr_side_effect_eval): Prototype it. + * configure.in: Handle --enable-init-priority. + * c-common.c (attrs): Add A_INIT_PRIORITY. + (init_attributes, decl_attributes): Likewise. + * tree.h (DEFAULT_INIT_PRIORITY, MAX_INIT_PRIORITY): New macros. + * tree.c (get_file_function_name_long): Split out... + (get_file_function_name): ...from here. -1998-12-02 Joseph S. Myers +Thu Aug 13 16:09:53 1998 Martin von Loewis - * pdp11.md (extendsfdf2): Fix mode mismatch in SET. + * expr.c (safe_from_p): Change code to ERROR_MARK only when not + accessing nodes. -Wed Dec 2 11:23:07 1998 Jim Wilson +Thu Aug 13 15:24:48 1998 Jason Merrill - * reload.c (find_reloads): When force const to memory, put result - in substed_operand not *recog_operand_loc. + * toplev.c (display_help): Add braces to shut up warnings. + * tree.c (simple_cst_equal): Likewise. -1998-12-02 Ulrich Drepper + * fold-const.c (non_lvalue): Don't deal with null pointer + constants here. + (fold, case COMPOUND_EXPR): Wrap a constant 0 in a NOP_EXPR. - * c-lex.c: Fix indentation from last patch. - Remove trailing whitespace. - * real.c: Likewise. + * c-typeck.c (initializer_constant_valid_p): Allow conversion of 0 + of any size to a pointer. -Wed Dec 2 10:11:12 1998 Jeffrey A Law (law@cygnus.com) +Thu Aug 13 12:53:13 1998 Jim Wilson - * flow.c (delete_block): Call set_last_insn after we have reset - NEXT_INSN (kept_tail). + * i386/winnt.c (i386_pe_asm_file_end): Check TREE_SYMBOL_REFERENCED. -Wed Dec 2 00:47:31 1998 Jeffrey A Law (law@cygnus.com) +Wed Aug 12 17:25:18 1998 Jeffrey A Law (law@cygnus.com) - * mips.md (trap_if): Use "$0" for the value zero. + * mn10300.c (REG_SAVE_BYTES): Only reserve space for registers + which will be saved. + * mn10300.md (prologue insn): Only save registers which need saving. + (epilogue insn): Similarly. -Tue Dec 1 20:49:49 1998 Ulrich Drepper - Stephen L Moshier - Richard Henderson - - * c-common.c (declare_function_name): Declare predefined variable - `__func__'. - - * c-decl.c (flag_isoc9x): Set to 1 by default. - (c_decode_option): Handle -std= option. Remove -flang-isoc9x. - (grokdeclarator): Always emit warning about implicit int for ISO C 9x. - - * c-parse.in: Allow constructors in ISO C 9x. - Rewrite designator list handling. - Allow [*] parameters. - Don't warn about comma at end of enum definition for ISO C 9x. - - * cccp.c (c9x): New variable. - (rest_extension): New variable. - (print_help): Document new -std= option. - (main): Recognize -std= option. Set c9x appropriately. - (create_definition): Recognize ISO C 9x vararg macros. - - * gcc.c (default_compilers): Adjust specs for -std options. - (option_map): Add --std. - (display_help): Document -std. - - * toplev.c (documented_lang_options): Add -std and remove - -flang-isoc9x. - - * c-lex.c (yylex): Recognize hex FP constants and call REAL_VALUE_ATOF - or REAL_VALUE_HTOF based on base of the constants. - * fold-const.c (real_hex_to_f): New function. Replacement function - for hex FP conversion if REAL_ARITHMETIC is not defined. - * real.c (asctoeg): Add handling of hex FP constants. - * real.h: Define REAL_VALUE_HTOF if necessary using ereal_atof or - real_hex_to_f. - -Tue Dec 1 16:45:49 1998 Stan Cox - - * mips.md (divmodsi4*, divmoddi4*, udivmodsi4*, udivmoddi4): Add - -mcheck-range-division/-mcheck-zero-division checking. Avoid as macro - expansion. Use hi/lo as destination register. - (div_trap): New. - (divsi3*, divdi3*, modsi3*, moddi3*, udivsi3*, udivdi3*, umodsi3*, - umoddi3*): Add -mcheck-range-division/-mcheck-zero-division checking. - Avoid as macro expansion. Use hi/lo as destination register. - - * mips.h (MASK_CHECK_RANGE_DIV): New. - (MASK_NO_CHECK_ZERO_DIV): New. - (ELIMINABLE_REGS): Added GP_REG_FIRST + 31. - (CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): Allow for getting - return address for leaf functions out of r31 to support - builtin_return_address. - -Tue Dec 1 15:03:30 1998 Herman A.J. ten Brugge - - * jump.c (jump_optimize): Call regs_set_between_p with PREV_INSN(x), - NEXT_INSN(x) to check insn x. - -Tue Dec 1 15:20:44 1998 Jeffrey A Law (law@cygnus.com) - - * flow.c (delete_block): Call set_last_insn if we end up deleting the - last insn in the rtl chain. - - * reload1.c (reload): Do not set reload_completed or split insns - here. Instead... - * toplev.c (rest_of_compilation): Set reload_completed after - reload returns. Split insns after reload_cse has run. - -Tue Dec 1 11:55:04 1998 Richard Henderson - - * final.c (final_scan_insn): Abort if block_depth falls below 0. - -Tue Dec 1 10:23:16 1998 Nick Clifton - - * config/arm/t-arm-elf (LIBGCC2_CFLAGS): Define inhibit_libc. - -Tue Dec 1 10:22:18 1998 Nick Clifton - - * config/arm/unknown-elf.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Remove - use of user-label_prefix. - -Tue Dec 1 17:58:26 1998 J"orn Rennecke - - * reload1.c (emit_reload_insns): Clear spill_reg_store - when doing a new non-inherited reload from the same pseudo. - - * local-alloc.c (function_invariant_p): New function. - (update_equiv_regs): Use function_invariant_p instead of CONSTANT_P - to decide if an equivalence should be recorded. - * reload1.c (num_eliminable_invariants): New static variable. - (reload): Set it. Use function_invariant_p instead of CONSTANT_P - to decide if an equivalence should be recorded. - Unshare PLUS. - (calculate_needs_all_insns): Skip insns that only set an equivalence. - Take num_eliminable_invariants into account when deciding - if register elimination should be done. - (reload_as_needed): Take num_eliminable_invariants into account - when deciding if register elimination should be done. - (eliminate_regs): Handle non-constant reg_equiv_constant. - * rtl.h (function_invariant_p): Declare. + * mn10300.c, mn10300.h, mn10300.md: Remove "global zero register" + optimizations. -Mon Nov 30 02:00:08 1998 Jeff Law (law@cygnus.com) +Wed Aug 12 12:39:16 1998 Gavin Romig-Koch - * version.c: Bump for snapshot. + * mips/mips.h (ENCODE_SECTION_INFO): Set SYMBOL_REF_FLAG for + VAR_DECL's in gp addressable sections. -Mon Nov 30 00:42:59 1998 Jeff Law (law@cygnus.com) +Tue Aug 11 23:02:31 1998 John Carr - * version.c: Bump for snapshot. + * sparc.c: Change return to ; return; in functions + returning void. + * sparc.md: Add empty semicolon statement after final label in + move expanders. -Sun Nov 29 22:59:40 1998 Jason Merrill +Tue Aug 11 22:42:01 1998 David S. Miller - * except.c (add_new_handler): Complain about additional handlers - after one that catches everything. + * config/sparc/sparc.md (define_insn addx_extend): Rename to + addx_extend_sp64, only allow when TARGET_ARCH64. + (define_insn addx_extend_sp32 and split): Version that works when + not TARGET_ARCH64. + (define_insn subx_extend): Likewise. + (define_split adddi3 and subdi3 with zero extension): Fixup and + correct bugs when not TARGET_ARCH64. -Sat Nov 28 10:56:32 1998 Jeffrey A Law (law@cygnus.com) +Tue Aug 11 16:04:34 1998 John Carr - * configure.in (alpha*-*-netbsd): Fix typo. - * configure: Rebuilt. + * except.c (set_exception_lang_code, set_exception_version_code): + Use prototype-style definition if __STDC__, to match declaration + in except.h. -Fri Nov 27 12:28:56 1998 Kaveh R. Ghazi + * genemit.c: Change FAIL and DONE macros not to use loops. - * system.h: Include libiberty.h. +Tue Aug 11 12:27:03 1998 Jim Wilson - * c-aux-info.c: Remove prototypes for concat/concat3. Change - function `concat' from fixed parameters to variable parameters, - as is done in libiberty. All callers of concat/concat3 - changed to use the new `concat' with variable args. + * dwarf2out.c (ASM_OUTPUT_DWARF_ADDR_CONST): Use + ASM_OUTPUT_DWARF2_ADDR_CONST if defined. - * cccp.c: Remove things made redundant by libiberty.h and/or - conform to libiberty standards. - * cexp.y: Likewise. - * collect2.c: Likewise. - * config/1750a/1750a.h: Likewise. - * cppalloc.c: Likewise. - * cppexp.c: Likewise. - * cppfiles.c: Likewise. - * cpphash.c: Likewise. - * cpplib.c: Likewise. - * dyn-string.c: Likewise. - * fix-header.c: Likewise. - * gcc.c: Likewise. - * gcov.c: Likewise. - * genattr.c: Likewise. - * genattrtab.c: Likewise. - * gencheck.c: Likewise. - * gencodes.c: Likewise. - * genconfig.c: Likewise. - * genemit.c: Likewise. - * genextract.c: Likewise. - * genflags.c: Likewise. - * gengenrtl.c: Likewise. - * genopinit.c: Likewise. - * genoutput.c: Likewise. - * genpeep.c: Likewise. - * genrecog.c: Likewise. - * getpwd.c: Likewise. - * halfpic.c: Likewise. - * hash.c: Likewise. - * mips-tdump.c: Likewise. Wrap malloc/realloc/calloc prototypes - in NEED_DECLARATION_* macros. + * mips/mips.md (reload_outsi): Use M16_REG_P when TARGET_MIPS16. - * mips-tfile.c: Remove things made redundant by libiberty.h and/or - conform to libiberty standards. - (fatal): Fix const-ification of variable `format' in - !ANSI_PROTOTYPES case. +Tue Aug 11 18:12:53 1998 Dave Love - * prefix.c: Remove things made redundant by libiberty.h and/or - conform to libiberty standards. + * README.g77: Update from Craig. - * print-rtl.c: Rename variable `spaces' to `xspaces' to avoid - conflicting with function `spaces' from libiberty. +Tue Aug 11 04:46:01 1998 David S. Miller - * profile.c: Remove things made redundant by libiberty.h and/or - conform to libiberty standards. - * protoize.c: Likewise. - * rtl.h: Likewise. - * scan.h: Likewise. - * tlink.c: Likewise. - * toplev.c: Likewise. - * toplev.h: Likewise. - * tree.h: Likewise. + * config/sparc/sparc.c (sparc_emit_set_const32): INTVAL is of + type HOST_WIDE_INT. + (safe_constDI sparc_emit_set_const64_quick1, + sparc_emit_set_const64_quick2, sparc_emit_set_const64_longway, + analyze_64bit_constant, const64_is_2insns, + create_simple_focus_bits): Fix some bugs when compiled on real + 64-bit hosts. + (function_arg_record_value_3, function_arg_record_value_2, + function_arg_record_value): Add fully prototyped forward decls. + * config/sparc/sparc.md (define_insn cmpsi_insn_sp32): Rename back + to cmpsi_insn and use on both 64 and 32 bit targets. + (define_insn cmpsi_insn_sp64): Remove. + (define_expand zero_extendsidi2): Allow for 32-bit target too. + (define_insn zero_extendsidi2_insn): Rename to + zero_extendsidi2_insn_sp64. + (define_insn zero_extendsidi2_insn_sp32): New pattern and + associated forced split for it. -Thu Nov 26 08:38:06 1998 Kaveh R. Ghazi + * config/sparc/sparc.c (const64_operand, const64_high_operand): + New predicates. + * config/sparc/sparc.h: Declare them. + (PREDICATE_CODES): Add them. + * config/sparc/sparc.md (movdi_lo_sum_sp64_dbl, + movdi_high_sp64_dbl, xordi3_sp64_dbl): Use them. - * cppfiles.c (simplify_pathname): Un-ANSI-fy function definition. +Mon Aug 10 22:57:24 1998 John Carr -Thu Nov 26 23:45:37 1998 Michael Hayes + * config/sparc/sparc.md (define_insn jump): Output ba,pt not b,pt + in v9 case as the latter makes the Solaris assembler crash. - * README.C4X: Updated URLs. - * config/c4x/c4x.c (c4x_address_conflict): Fix typo. - (valid_parallel_operands_5): Remove unused variable. +Mon Aug 10 22:39:09 1998 David S. Miller -Thu Nov 26 23:40:03 1998 Michael Hayes + * config/sparc/sparc.c (input_operand): Do not accept a LO_SUM MEM + for TFmode when !v9. We require offsettable memory addresses. + * config/sparc/sparc.h (ALTER_HARD_SUBREG): Handle TFmode to + DFmode register number conversions. + * config/sparc/sparc.md (define_split DFmode moves): If register + is a SUBREG do alter_subreg on it before using. + (define_expand movtf): Fixup comment about alignment on v9. + (define_split TFmode moves): Don't use gen_{high,low}part, create + explicit SUBREGs instead. - * config/c4x/c4x.h (TARGET_DEFAULT): Fix typo. +Mon Aug 10 19:02:55 1998 John Carr -1998-11-26 Manfred Hollstein + * Makefile.in (mbchar.o): Depend on mbchar.c. - * Makefile.in (CONFIG_LANGUAGES): New macro taking all languages - which can be configured. - (LANGUAGES): Use $(CONFIG_LANGUAGES) instead of @all_languages@ - (Makefile): Pass actual LANGUAGES through the environment when - re-configuring. - (cstamp-h): Likewise. - (config.status): Likewise. +Mon Aug 10 04:28:13 1998 David S. Miller + Richard Henderson - * configure.in (enable_languages): Add new configuration parameter - "--enable-languages=lang1,lang2,...". - (${srcdir}/*/config-lang.in): Change handling to configure only - those directories, that the user might have enabled; default to - "all" existing languages. - * configure: Regenerate. - -Thu Nov 26 00:19:19 1998 Richard Henderson - - * rtlanal.c (regs_set_between_p): New function. - * rtl.h (regs_set_between_p): Prototype it. - * jump.c (jump_optimize): Use it instead of modified_between_p - in the Sep 2 change. - -Wed Nov 25 23:32:02 1998 Ian Dall - Matthias Pfaller - - * invoke.texi (Option Summary, NS32K Options): Add description - of NS32K specific options. - - * ns32k.md (tstdf, cmpdf, movdf, truncdfsf2, fixdfqi2, fixdfhi2, - fixdfsi2, fixunsdfqi2, fixunsdfhi2, fixunsdfsi2, fix_truncdfqi2, - fix_truncdfhi2, fix_truncdfsi2, adddf3, subdf3, muldf3, divdf3, - negdf2, absdf2): Use l instead of f since the double class and - float class are no longer the same. - (cmpsi, truncsiqi2, truncsihi2, addsi3, subsi3, mulsi3, umulsidi3, - divsi3, modsi3, andsi3, iorsi3, xorsi3, negsi2, one_cmplsi2, - ashlsi3, ashlhi3, ashlqi3, rotlsi3, rotlhi3, rotlqi3, abssi2,...): - Use "g" instead of "rmn" since LEGITIMATE_PIC_OPERAND has been - fixed. - (cmpsi, cmphi, cmpqi): Use general_operand instead of - non_immediate_operand. Removes erroneous assumption that can't - compare constants. - (movsf, movsi, movhi, movqi,...): New register numbering scheme. - (movsi, addsi3): Use NS32K_DISPLACEMENT_P instead of hard coded - constants. - (movstrsi, movstrsi1, movstrsi2): Completely new block move - scheme. - (...): Patterns to exploit multiply-add instructions. - (udivmodsi4, udivmodsi_internal4, udivmodhi4, - udivmoddihi4_internal, udivmodqi4, udivmoddiqi4_internal): New - patterns to exploit extended divide insns. - (udivsi3, udivhi3, udivqi3): Remove since superseded by udivmodsi - etc patterns. - - * ns32k.h (FUNCTION_VALUE, LIBCALL_VALUE): Use f0 for complex - float return values as well as simple scalar floats. - (TARGET_32381, TARGET_MULT_ADD, TARGET_SWITCHES): - Support new flag to denote 32381 fpu. - (OVERRIDE_OPTIONS): 32381 is a strict superset of 32081. - (CONDITIONAL_REGISTER_USAGE): Disable extra 32381 registers if not - compiling for 32381. - (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS, - REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES, OUTPUT_REGISTER_NAMES, - REG_ALLOC_ORDER, DBX_REGISTER_NUMBER, R0_REGNUM, F0_REGNUM, - L1_REGNUM, STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, - LONG_FP_REGS_P, ARG_POINTER_REGNUM, reg_class, REG_CLASS_NAMES, - REG_CLASS_CONTENTS, SUBSET_P,REGNO_REG_CLASS, - REG_CLASS_FROM_LETTER, FUNCTION_PROLOGUE, FUNCTION_EPILOGUE, - REGNO_OK_FOR_INDEX_P, FP_REG_P, REG_OK_FOR_INDEX_P, - REG_OK_FOR_BASE_P, MEM_REG): New register scheme to include 32381 - fpu registers and special register classes for new 32381 - instructions dotf and polyf. - (MODES_TIEABLE_P): Allow all integer modes, notably DI and SI, to - be tieable. - (INCOMING_RETURN_ADDR_RTX, RETURN_ADDR_RTX, - INCOMING_FRAME_SP_OFFSET): New macros in case DWARF support is - required. - (SMALL_REGISTER_CLASSES): Make dependent on -mmult-add option. - (MOVE_RATIO): Set to zero because of smart movstrsi implementation. - (REGISTER_MOVE_COST): Move code to register_move_cost function for - ease of coding and debugging. - (CLASS_LIKELY_SPILLED_P): Under new register scheme class - LONG_FLOAT_REGO is likely spilled but not caught by default - definition. - (CONSTANT_ADDRESS_P, CONSTANT_ADDRESS_NO_LABEL_P): Use macro - instead of hard coded numbers in range check. - (ASM_OUTPUT_LABELREF_AS_INT): Delete since unused. - (...): Add prototypes for functions in ns32k.c but disable because - of problems when ns32k.h is included in machine independent files. - - * ns32k.c: Include "system.h", "tree.h", "expr.h", "flags.h". - (ns32k_reg_class_contents, regcass_map, ns32k_out_reg_names, - hard_regno_mode_ok, secondary_reload_class, - print_operand, print_operand_address): New register scheme to - include 32381 fpu registers and special register classes for new - 32381 instructions dotf and polyf. - (gen_indexed_expr): Make static to keep namespace clean. - (check_reg): Remove since never called. - (move_tail, expand_block_move): Helper functions for "movstrsi" - block move insn. - (register_move_cost): Helper function for REGISTER_MOVE_COST macro. - Increase cost of moves which go via memory. - * netbsd.h (TARGET_DEFAULT): Set (new) 32381 fpu flag. - (CPP_PREDEFINES): No longer predefine "unix". - - * ns32k.md (movsi, movsi, adddi3, subdi3, subsi3, subhi3, subqi3,...): - Remove erroneous %$. print_operand() can work out from the rtx is - an immediate prefix is required. - - * ns32k.h (RETURN_POPS_ARGS, VALID_MACHINE_DECL_ATTRIBUTE, - VALID_MACHINE_TYPE_ATTRIBUTE, COMP_TYPE_ATTRIBUTES, - SET_DEFAULT_TYPE_ATTRIBUTES): Support for -mrtd calling - convention. - (LEGITIMATE_PIC_OPERAND_P, SYMBOLIC_CONST): Correct handling of - pic operands. - - * ns32k.c (symbolic_reference_mentioned_p, print_operand): - Correct handling of pic operands. - (ns32k_valid_decl_attribute_p, ns32k_valid_type_attribute_p, - ns32k_comp_type_attributes, ns32k_return_pops_args): Support for - -mrtd calling convention. - -Wed Nov 25 23:42:20 1998 Tom Tromey - - * gcc.c (option_map): Recognize --output-class-directory. - -Thu Nov 26 18:26:21 1998 Michael Hayes - - * loop.h (precondition_loop_p): Added new mode argument. - * unroll.c (precondition_loop_p): Likewise. - (approx_final_value): Function deleted and subsumed - into loop_iterations. - (loop_find_equiv_value): New function. - (loop_iterations): Use loop_find_equiv_value to find increments - too large to be immediate constants. Also use it to find terms - common to initial and final iteration values that can be removed. - -Thu Nov 26 18:05:04 1998 Michael Hayes - - * loop.h (struct loop_info): Define new structure. - (precondition_loop_p): Added prototype. - (unroll_loop): Added new argument loop_info to prototype. - (final_biv_value, final_giv_value): Added new argument n_iterations - to prototype. - * loop.c (strength_reduce): Declare new structure loop_iteration_info - and new pointer loop_info. - (loop_n_iterations): Replace global variable by element in - loop_info structure. - (check_final_value): New argument n_iterations. - (insert_bct): New argument loop_info. - (loop_unroll_factor): Replace global array by element in - loop_info structure. - (loop_optimize): Remove code to allocate and initialize - loop_unroll_factor_array. - * unroll.c (precondition_loop_p): No longer static since - used by branch on count optimization. - (precondition_loop_p, unroll_loop): New argument loop_info. - (final_biv_value, final_giv_value, find_splittable_regs): New - argument n_iterations. - (loop_iteration_var, loop_initial_value, loop_increment, - loop_final_value, loop_comparison_code, loop_unroll_factor): - Replaced global variables by loop_info structure. - (loop_unroll_factor): Replace global array by element in - loop_info structure. - -Thu Nov 26 17:49:29 1998 Michael Hayes - - * loop.c (check_dbra_loop): Update JUMP_LABEL field of jump insn - when loop reversed. - - * unroll.c (precondition_loop_p): Return loop_initial_value - for initial_value instead of loop_iteration_var. - -Thu Nov 26 17:15:38 1998 Michael Hayes - - * config/c4x/c4x.md: Fix minor formatting problems. Update docs. - (*b, *b_rev, *b_noov, *b_noov_rev, *db, - decrement_and_branch_until_zero, rptb_end): Use c4x_output_cbranch - to output the instruction sequences. - (rpts): Delete. - (rptb_top): Provide alternatives to use any register or memory - for loop counter. - (rptb_end): Emit use of operands rather than assigning them - explicitly to the RS and RE registers. - -Thu Nov 26 16:37:59 1998 Michael Hayes - - * config/c4x/c4x.c (c4x_modified_between_p, c4x_mem_set_p, - c4x_mem_set_p, c4x_mem_modified_between_p, c4x_insn_moveable_p, - c4x_parallel_pack, c4x_parallel_find, c4x_update_info_reg, - c4x_update_info_regs, c4x_copy_insn_after, c4x_copy_insns_after, - c4x_merge_notes, c4x_parallel_process, - c4x_combine_parallel_independent, c4x_combine_parallel_dependent, - c4x_combine_parallel): Delete. - -Thu Nov 26 15:16:05 1998 Michael Hayes - - * config/c4x/c4x.c (c4x_override_options): For compatibility - with old target options clear flag_branch_on_count_reg if - -mno-rptb specified and set flag_argument_alias is -mno-aliases - specified. - (c4x_output_cbranch): Handle a sequence of insns rather than a - single insn. - (c4x_rptb_insert): Do not emit a RPTB insn if the RC register - has not been allocated as the loop counter. - (c4x_address_conflict): Do not allow two volatile memory references. - (valid_parallel_operands_4, valid_parallel_operands_5, - valid_parallel_operands_6): Reject pattern if the register destination - of the first set is used as part of an address in the second set. - -Thu Nov 26 14:56:32 1998 Michael Hayes - - * config/c4x/c4x.h (TARGET_DEFAULT): Add PARALEL_MPY_FLAG. - (TARGET_SMALL_REG_CLASS): Set to 0 so that SMALL_REGISTER_CLASSES - is no longer enabled if PARALLEL_MPY_FLAG set. - (HARD_REGNO_CALL_CLOBBERED): Add parentheses to remove ambiguity. - (REG_CLASS_CONTENTS): Add braces around initializers. - (HAVE_MULTIPLE_PACK): Define. - (ASM_OUTPUT_BYTE_FLOAT): Use %lf format specifier with - REAL_VALUE_TO_DECIMAL. - (ASM_OUTPUT_SHORT_FLOAT): Use %lf format specifier with - REAL_VALUE_TO_DECIMAL. - (ar0_reg_operand): Add prototype. - (ar0_mem_operand): Likewise. - (ar1_reg_operand): Likewise. - (ar1_mem_operand): Likewise. - (ar2_reg_operand): Likewise. - (ar2_mem_operand): Likewise. - (ar3_reg_operand): Likewise. - (ar3_mem_operand): Likewise. - (ar4_reg_operand): Likewise. - (ar4_mem_operand): Likewise. - (ar5_reg_operand): Likewise. - (ar5_mem_operand): Likewise. - (ar6_reg_operand): Likewise. - (ar6_mem_operand): Likewise. - (ar7_reg_operand): Likewise. - (ar7_mem_operand): Likewise. - (ir0_reg_operand): Likewise. - (ir0_mem_operand): Likewise. - (ir1_reg_operand): Likewise. - (ir1_mem_operand): Likewise. - (group1_reg_operand): Likewise. - (group1_mem_operand): Likewise. - (ir1_reg_operand): Likewise. - (arx_reg_operand): Likewise. - (not_rc_reg): Likewise. - (not_modify_reg): Likewise. - (c4x_group1_reg_operand): Remove prototype. - (c4x_group1_mem_operand): Likewise. - (c4x_arx_reg_operand): Likewise. - -Wed Nov 25 19:02:55 1998 (Stephen L Moshier) - - * emit-rtl.c (gen_lowpart_common): Remove earlier change. - * real.c (make_nan): Make SIGN arg actually specify the sign bit. - -Thu Nov 26 14:12:05 1998 Michael Hayes - - * config/c4x/c4x.md (addqi3): Emit addqi3_noclobber pattern - during reload. - -Wed Nov 25 22:05:28 1998 J"orn Rennecke - - * config/sh/lib1funcs.asm (___udivsi3_i4): Don't switch to sz == 1 - unless FMOVD_WORKS is defined. - -Wed Nov 25 20:11:04 1998 J"orn Rennecke - - * regclass.c (init_reg_sets): Move code that calculates tables - dependent on reg_class_contents from here... - (init_reg_sets_1): To here. - -Wed Nov 25 14:54:46 1998 Zack Weinberg - - * cpplib.h: Delete struct import_file. Add ihash element to - struct cpp_buffer. Delete dont_repeat_files and - import_hash_table elements from cpp_reader; change - all_include_files to a hash table. Delete all foobar_include - / last_foobar_include elements from struct cpp_options; put - back four such: quote_include, bracket_include, - system_include, after_include. Redo struct file_name_list - completely. Add new structure type include_hash. Add - prototypes for merge_include_chains and include_hash. Change - prototypes for finclude, find_include_file, and - append_include_chain to match changes below. - - * cppfiles.c (simplify_pathname, include_hash, - remap_filename, merge_include_chains): New functions. - (add_import, lookup_import, open_include_file): Removed. - (INO_T_EQ): Define this (copied from cccp.c). - (hack_vms_include_specification): Remove all calls and #if 0 - out the definition. It was being called incorrectly and at - the wrong times. Until a VMSie can look at this, it's better - to not pretend to support it. - (append_include_chain): Change calling convention; now takes - only one directory at a time, and sets up the data structure - itself. - (redundant_include_p): Rewritten - this is now used for all - include redundancy, whether by #ifndef, #import, or #pragma - once. Looks up things in the include hash table. - (file_cleanup): Decrement pfile->system_include_depth here if - it's >0. - (find_include_file): Calling convention changed; now passes - around a struct include_hash instead of 3 separate parameters. - Guts ripped out and replaced with new include_hash mechanism. - (finclude): Calling convention changed as for - find_include_file. Error exits pulled out-of-line. Reformat. - (safe_read): Return a long, not an int. - (deps_output): Don't recurse. - - * cpplib.c (is_system_include): Deleted. - (path_include): Fix up call to append_include_chain. - (do_include): Fix up calls to find_include_file and finclude. - Clean up dependency output a bit. Shorten obnoxiously lengthy - #import warning message. Don't decrement - pfile->system_include_depth here. - (do_pragma): Understand the include_hash structure. Reformat. - (do_endif): Correct handling of control macros. Understand - the include_hash. - (cpp_start_read): Fix up calls to finclude. Call - merge_include_chains. - (cpp_handle_option): Fix up calls to append_include_chain. - Understand the four partial include chains. - (cpp_finish): Add debugging code (#if 0-ed out) for the - include_hash. - (cpp_cleanup): Free the include_hash, not the import hash and - the all_include and dont_repeat lists which no longer exist. - -Wed Nov 25 11:26:19 1998 Jeffrey A Law (law@cygnus.com) - - * toplev.c (no_new_pseudos): Define. - (rest_of_compilation): Set no_new_pseudos as needed. - * emit-rtl.c (gen_reg_rtx): Abort if we try to create a new pseudo - if no_new_pseudos is set. - * rtl.h (no_new_pseudos): Declare it. - * reload1.c (reload): Update comments. - * md.texi: Corresponding changes. - -Wed Nov 25 11:26:17 1998 Bernd Schmidt - - * reload1.c (reg_used_in_insn): Renamed from reg_used_by_pseudo. - (choose_reload_regs): Rename it here as well. When computing it, - also merge in used hardregs. - -1998-11-25 Zack Weinberg - - * gcc.c: Split out Objective-C specs to... - * objc/lang-specs.h: here. (New file.) Make the specs cpplib - aware. - - * c-lex.c (init_parse): Always initialize the filename global. - * objc/objc-act.c (lang_init): Always call check_newline at - beginning of file. - -Wed Nov 25 00:48:29 1998 Graham - - * reload1.c (reload): Remove unused variable. - (reload_reg_free_for_value_p): Add missing parameter definition. - - * jump.c (jump_optimize): Remove unused variable. - -Wed Nov 25 00:07:11 1998 Jeffrey A Law (law@cygnus.com) - - * Makefile.in (graph.o): Depend on $(RTL_H), not rtl.h. - - * cse.c (fold_rtx): Make autoincrement addressing mode tests be - runtime selectable. - * expr.c (move_by_pieces): Similarly. - (move_by_pieces_1, clear_by_pieces, clear_by_pieces_1): Similarly. - * flow.c (find_auto_inc): Similarly. - (try_pre_increment): Similarly. - * loop.c (strength_reduce): Similarly. - * regclass.c (auto_inc_dec_reg_p): Similarly. - * regmove.c (try_auto_increment): Similarly. - (fixup_match_1): Similarly. - * rtl.h (HAVE_PRE_INCREMENT): Define if not already defined. - (HAVE_PRE_DECREMENT): Similarly. - (HAVE_POST_INCREMENT, HAVE_POST_DECREMENT): Similarly. - * Corresponding changes to all target header files. - * tm.texi: Update docs for autoinc addressing modes. - -Tue Nov 24 20:24:59 1998 Jim Wilson - - * configure.in (m68020-*-elf*, m68k-*-elf*): New targets. - * configure: Rebuild. - * config/elfos.h: New file. - * config/m68k/m68020-elf.h, config/m68k/m68kelf.h, - config/m68k/t-m68kelf: New file. - -Tue Nov 24 13:40:06 1998 Jeffrey A Law (law@cygnus.com) - - * Makefile.in (HOST_AR): Define. - (HOST_AR_FLAGS, HOST_RANLIB, HOST_RANLIB_TEST): Similarly. - (libcpp.a): Use the host tools explicitly. - (STAGESTUFF): Add libcpp.a. - -Tue Nov 24 09:33:49 1998 Nick Clifton - - * config/m32r/m32r.md (movstrsi_internal): Describe changes made - to source and destination registers. - -Mon Nov 23 20:28:02 1998 Mike Stump - - * libgcc2.c (top_elt): Remove top_elt, it isn't thread safe. - The strategy we now use is to pre allocate the top_elt along - with the EH context so that each thread has its own top_elt. - This is necessary as the dynamic cleanup chain is used on the - top element of the stack and each thread MUST have its own. - (eh_context_static): Likewise. - (new_eh_context): Likewise. - (__sjthrow): Likewise. - -Mon Nov 23 20:25:03 1998 Jason Merrill - - * i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Wrap in do...while. - * i386.md (prologue_get_pc): Remove unused variable. - -Mon Nov 23 17:05:40 1998 Geoffrey Noer - - * i386/xm-cygwin.h: Rename cygwin_ path funcs back to cygwin32_. - -Mon Nov 23 16:40:00 1998 Ulrich Drepper - - * Makefile.in (OBJS): Add graph.o. - (graph.o): New dependency list. - * flags.h: Declare dump_for_graph and define graph_dump_types type. - * print-rtl.c (dump_for_graph): Define new variable. - (print_rtx): Rewrite to allow use in graph dumping functions. - * toplev.c: Declare print_rtl_graph_with_bb, clean_graph_dump_file, - finish_graph_dump_file. - Define graph_dump_format. - (compile_file): If graph dumping is enabled also clear these files. - Finish graph dump files. - (rest_of_compilation): Also dump graph information if enabled. - (main): Recognize -dv to enabled VCG based graph dumping. - * graph.c: New file. Graph dumping functions. - -Mon Nov 23 16:39:04 1998 Richard Henderson - - * configure.in: Look for . - * system.h: Include it before substitute S_ISREG definitions. - -Mon Nov 23 17:40:37 1998 Gavin Romig-Koch - - * config/mips/abi.h: Use ABI_O64, duplicating ABI_32 usage. - * config/mips/iris6.h: Same. - * config/mips/mips.md: Same. - * config/mips/mips.c: Same; also add "-mabi=o64" option. - * config/mips/mips.h: Same; also define ABI_O64. - -Mon Nov 23 17:02:27 1998 Kaveh R. Ghazi - - * configure.in: Use AC_PREREQ(2.12.1). - -Mon Nov 23 10:16:38 1998 Melissa O'Neill - - * cccp.c (S_ISREG, S_ISDIR): Delete defines. - * cpplib.c, gcc.c: Likewise. - * system.h (S_ISREG, S_ISDIR): Define if not already defined. - -Mon Nov 23 09:53:44 1998 Richard Henderson - - * local-alloc.c (local_alloc): Use malloc not alloca for - reg_qty, reg_offset, ref_next_in_qty. - -Mon Nov 23 16:46:46 1998 J"orn Rennecke - - * caller-save.c (insert_one_insn): Initialize the live_before and - live_after register sets. - - Add SH4 support: - - * config/sh/lib1funcs.asm (___movstr_i4_even, ___movstr_i4_odd): Define. - (___movstrSI12_i4, ___sdivsi3_i4, ___udivsi3_i4): Define. - * sh.c (reg_class_from_letter, regno_reg_class): Add DF_REGS. - (fp_reg_names, assembler_dialect): New variables. - (print_operand_address): Handle SUBREGs. - (print_operand): Added 'o' case. - Don't use adj_offsettable_operand on PRE_DEC / POST_INC. - Name of FP registers depends on mode. - (expand_block_move): Emit different code for SH4 hardware. - (prepare_scc_operands): Use emit_sf_insn / emit_df_insn as appropriate. - (from_compare): Likewise. - (add_constant): New argument last_value. Changed all callers. - (find_barrier): Don't try HImode load for FPUL_REG. - (machine_dependent_reorg): Likewise. - (sfunc_uses_reg): A CLOBBER cannot be the address register use. - (gen_far_branch): Emit a barrier after the new jump. - (barrier_align): Don't trust instruction lengths before - fixing up pcloads. - (machine_dependent_reorg): Add support for FIRST_XD_REG .. LAST_XD_REG. - Use auto-inc addressing for fp registers if doubles need to - be loaded in two steps. - Set sh_flag_remove_dead_before_cse. - (push): Support for TARGET_FMOVD. Use gen_push_fpul for fpul. - (pop): Support for TARGET_FMOVD. Use gen_pop_fpul for fpul. - (calc_live_regs): Support for TARGET_FMOVD. Don't save FPSCR. - Support for FIRST_XD_REG .. LAST_XD_REG. - (sh_expand_prologue): Support for FIRST_XD_REG .. LAST_XD_REG. - (sh_expand_epilogue): Likewise. - (sh_builtin_saveregs): Use DFmode moves for fp regs on SH4. - (initial_elimination_offset): Take TARGET_ALIGN_DOUBLE into account. - (arith_reg_operand): FPUL_REG is OK for SH4. - (fp_arith_reg_operand, fp_extended_operand): New functions. - (tertiary_reload_operand, fpscr_operand): Likewise. - (commutative_float_operator, noncommutative_float_operator): Likewise. - (binary_float_operator, get_fpscr_rtx, emit_sf_insn): Likewise. - (emit_df_insn, expand_sf_unop, expand_sf_binop): Likewise. - (expand_df_unop, expand_df_binop, expand_fp_branch): Likewise. - (emit_fpscr_use, mark_use, remove_dead_before_cse): Likewise. - * sh.h (CPP_SPEC): Add support for -m4, m4-single, m4-single-only. - (CONDITIONAL_REGISTER_USAGE): Likewise. - (HARD_SH4_BIT, FPU_SINGLE_BIT, SH4_BIT, FMOVD_BIT): Define. - (TARGET_CACHE32, TARGET_SUPERSCALAR, TARGET_HARWARD): Define. - (TARGET_HARD_SH4, TARGET_FPU_SINGLE, TARGET_SH4, TARGET_FMOVD): Define. - (target_flag): Add -m4, m4-single, m4-single-only, -mfmovd. - (OPTIMIZATION_OPTIONS): If optimizing, set flag_omit_frame_pointer - to -1 and sh_flag_remove_dead_before_cse to 1. - (ASSEMBLER_DIALECT): Define to assembler_dialect. - (assembler_dialect, fp_reg_names): Declare. - (OVERRIDE_OPTIONS): Add code for TARGET_SH4. - Hide names of registers that are not accessible. - (CACHE_LOG): Take TARGET_CACHE32 into account. - (LOOP_ALIGN): Take TARGET_HARWARD into account. - (FIRST_XD_REG, LAST_XD_REG, FPSCR_REG): Define. - (FIRST_PSEUDO_REGISTER: Now 49. - (FIXED_REGISTERS, CALL_USED_REGISTERS): Include values for registers. - (HARD_REGNO_NREGS): Special treatment of FIRST_XD_REG .. LAST_XD_REG. - (HARD_REGNO_MODE_OK): Update. - (enum reg_class): Add DF_REGS and FPSCR_REGS. - (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REG_ALLOC_ORDER): Likewise. - (SECONDARY_OUTPUT_RELOAD_CLASS, SECONDARY_INPUT_RELOAD_CLASS): Update. - (CLASS_CANNOT_CHANGE_SIZE, DEBUG_REGISTER_NAMES): Define. - (NPARM_REGS): Eight floating point parameter registers on SH4. - (BASE_RETURN_VALUE_REG): SH4 also passes double values - in floating point registers. - (GET_SH_ARG_CLASS): Likewise. - Complex float types are also returned in float registers. - (BASE_ARG_REG): Complex float types are also passes in float registers. - (FUNCTION_VALUE): Change mode like PROMOTE_MODE does. - (LIBCALL_VALUE): Remove trailing semicolon. - (ROUND_REG): Round when double precision value is passed in floating - point register(s). - (FUNCTION_ARG_ADVANCE): No change wanted for SH4 when things are - passed on the stack. - (FUNCTION_ARG): Little endian adjustment for SH4 SFmode. - (FUNCTION_ARG_PARTIAL_NREGS): Zero for SH4. - (TRAMPOLINE_ALIGNMENT): Take TARGET_HARWARD into account. - (INITIALIZE_TRAMPOLINE): Emit ic_invalidate_line for TARGET_HARWARD. - (MODE_DISP_OK_8): Not for SH4 DFmode. - (GO_IF_LEGITIMATE_ADDRESS): No base reg + index reg for SH4 DFmode. - Allow indexed addressing for PSImode after reload. - (LEGITIMIZE_ADDRESS): Not for SH4 DFmode. - (LEGITIMIZE_RELOAD_ADDRESS): Handle SH3E SFmode. - Don't change SH4 DFmode nor PSImode RELOAD_FOR_INPUT_ADDRESS. - (DOUBLE_TYPE_SIZE): 64 for SH4. - (RTX_COSTS): Add PLUS case. - Increase cost of ASHIFT, ASHIFTRT, LSHIFTRT case. - (REGISTER_MOVE_COST): Add handling of R0_REGS, FPUL_REGS, T_REGS, - MAC_REGS, PR_REGS, DF_REGS. - (REGISTER_NAMES): Use fp_reg_names. - (enum processor_type): Add PROCESSOR_SH4. - (sh_flag_remove_dead_before_cse): Declare. - (rtx_equal_function_value_matters, fpscr_rtx, get_fpscr_rtx): Declare. - (PREDICATE_CODES): Add binary_float_operator, - commutative_float_operator, fp_arith_reg_operand, fp_extended_operand, - fpscr_operand, noncommutative_float_operator. - (ADJUST_COST): Use different scale for TARGET_SUPERSCALAR. - (SH_DYNAMIC_SHIFT_COST): Cheaper for SH4. - * sh.md (attribute cpu): Add value sh4. - (attrbutes fmovd, issues): Define. - (attribute type): Add values dfp_arith, dfp_cmp, dfp_conv, dfdiv. - (function units memory, int, mpy, fp): Make dependent on issue rate. - (function units issue, single_issue, load_si, load): Define. - (function units load_store, fdiv, gp_fpul): Define. - (attribute hit_stack): Provide proper default. - (use_sfunc_addr+1, udivsi3): Predicated on ! TARGET_SH4. - (udivsi3_i4, udivsi3_i4_single, divsi3_i4, divsi3_i4_single): New insns. - (udivsi3, divsi3): Emit special patterns for SH4 hardware, - (mulsi3_call): Now uses match_operand for function address. - (mulsi3): Also emit code for SH1 case. Wrap result in REG_LIBCALL / - REG_RETVAL notes. - (push, pop, push_e, pop_e): Now define_expands. - (push_fpul, push_4, pop_fpul, pop_4, ic_invalidate_line): New expanders. - (movsi_ie): Added y/i alternative. - (ic_invalidate_line_i, movdf_i4): New insns. - (movdf_i4+[123], reload_outdf+[12345], movsi_y+[12]): New splitters. - (reload_indf, reload_outdf, reload_outsf, reload_insi): New expanders. - (movdf): Add special code for SH4. - (movsf_ie, movsf_ie+1, reload_insf, calli): Make use of fpscr visible. - (call_valuei, calli, call_value): Likewise. - (movsf): Emit no-op move. - (mov_nop, movsi_y): New insns. - (blt, sge): Generalize to handle DFmode. - (return predicate): Call emit_fpscr_use and remove_dead_before_cse. - (block_move_real, block_lump_real): Predicate on ! TARGET_HARD_SH4. - (block_move_real_i4, block_lump_real_i4, fpu_switch): New insns. - (fpu_switch0, fpu_switch1, movpsi): New expanders. - (fpu_switch+[12], fix_truncsfsi2_i4_2+1): New splitters. - (toggle_sz): New insn. - (addsf3, subsf3, mulsf3, divsf3): Now define_expands. - (addsf3_i, subsf3_i, mulsf3_i4, mulsf3_ie, divsf3_i): New insns. - (macsf3): Make use of fpscr visible. Disable for SH4. - (floatsisf2): Make use of fpscr visible. - (floatsisf2_i4): New insn. - (floatsisf2_ie, fixsfsi, cmpgtsf_t, cmpeqsf_t): Disable for SH4. - (ieee_ccmpeqsf_t): Likewise. - (fix_truncsfsi2): Emit different code for SH4. - (fix_truncsfsi2_i4, fix_truncsfsi2_i4_2, cmpgtsf_t_i4): New insns. - (cmpeqsf_t_i4, ieee_ccmpeqsf_t_4): New insns. - (negsf2, sqrtsf2, abssf2): Now expanders. - (adddf3, subdf3i, muldf2, divdf3, floatsidf2): New expanders. - (negsf2_i, sqrtsf2_i, abssf2_i, adddf3_i, subdf3_i): New insns. - (muldf3_i, divdf3_i, floatsidf2_i, fix_truncdfsi2_i): New insns. - (fix_truncdfsi2, cmpdf, negdf2, sqrtdf2, absdf2): New expanders. - (fix_truncdfsi2_i4, cmpgtdf_t, cmpeqdf_t, ieee_ccmpeqdf_t): New insns. - (fix_truncdfsi2_i4_2+1): New splitters. - (negdf2_i, sqrtdf2_i, absdf2_i, extendsfdf2_i4): New insns. - (extendsfdf2, truncdfsf2): New expanders. - (truncdfsf2_i4): New insn. - * t-sh (LIB1ASMFUNCS): Add _movstr_i4, _sdivsi3_i4, _udivsi3_i4. - (MULTILIB_OPTIONS): Add m4-single-only/m4-single/m4. - * float-sh.h: When testing for __SH3E__, also test for - __SH4_SINGLE_ONLY__ . - * va-sh.h (__va_freg): Define to float. - (__va_greg, __fa_freg, __gnuc_va_list, va_start): - Define for __SH4_SINGLE_ONLY__ like for __SH3E__ . - (__PASS_AS_FLOAT, __TARGET_SH4_P): Likewise. - (__PASS_AS_FLOAT): Use different definition for __SH4__ and - __SH4_SINGLE__. - (TARGET_SH4_P): Define. - (va_arg): Use it. - - * sh.md (movdf_k, movsf_i): Tweak the condition so that - init_expr_once is satisfied about the existence of load / store insns. - - * sh.md (movsi_i, movsi_ie, movsi_i_lowpart, movsf_i, movsf_ie): - Change m constraint in source operand to mr / mf. - - * va-sh.h (__va_arg_sh1): Use __asm instead of asm. - - * (__VA_REEF): Define. - (__va_arg_sh1): Use it. - - * va-sh.h (va_start, va_arg, va_copy): Add parentheses. - -Sun Nov 22 21:34:02 1998 Jeffrey A Law (law@cygnus.com) - - * i386/dgux.c (struct option): Add new "description field". - * m88k/m88k.c (struct option): Likewise. - -Sun Nov 22 16:07:57 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sun Nov 22 13:40:02 1998 Bernd Schmidt - - * regmove.c (regmove_profitable_p): Use return value of find_matches - properly. - -Sun Nov 22 02:47:37 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sat Nov 21 22:12:09 1998 Jeffrey A Law (law@cygnus.com) - - * reload1.c (eliminate_regs): Do not lose if eliminate_regs is called - without reload having been called earlier. - - * v850.c (ep_memory_operand): Offsets < 0 are not valid for EP - addressing modes. - (v850_reorg): Similarly. - - * loop.c (check_dbra_loop): Avoid using gen_add2_insn. - -Sat Nov 21 02:18:38 1998 J"orn Rennecke - - * loop.c (move_movables): Start of libcall might be new loop start. - -Fri Nov 20 12:14:16 1998 Kaveh R. Ghazi - - * hash.c (hash_table_init_n): Wrap prototype arguments in PARAMS(). - -Fri Nov 20 08:34:00 1998 Bernd Schmidt - - * function.c (nonlocal_goto_handler_slots): Renamed from - nonlocal_goto_handler_slot; now an EXPR_LIST chain. - (push_function_context_to): Adjust for this change. - (pop_function_context_from): Likewise. - (init_function_start): Likewise. - (expand_function_end): Likewise. - * function.h (struct function): Likewise. - * calls.c (expand_call): Likewise. - * explow.c (allocate_dynamic_stack_space): Likewise. - * expr.h (nonlocal_goto_handler_slots): Rename its declaration. - * stmt.c (declare_nonlocal_label): Make a new handler slot for each - label. - (expand_goto): When doing a nonlocal goto, find corresponding handler - slot for it. Don't put the label address in the static chain register. - (expand_end_bindings): Break out nonlocal goto handling code into - three new functions. - (expand_nl_handler_label, expand_nl_goto_receiver, - expand_nl_goto_receivers): New static functions, broken out of - expand_end_bindings and adapted to create one handler per nonlocal - label. - * function.c (delete_handlers): Delete insn if it references any of - the nonlocal goto handler slots. - * i960.md (nonlocal_goto): Comment out code that modifies - static_chain_rtx. - * sparc.md (nonlocal_goto): Likewise. - (goto_handler_and_restore_v9): Comment out. - (goto_handler_and_restore_v9_sp64): Comment out. - -Thu Nov 19 23:44:38 1998 Bernd Schmidt - - * expr.c (STACK_BYTES): Delete unused macro. - * calls.c: Provide default for PREFERRED_STACK_BOUNDARY. - (STACK_BYTES): Use PREFERRED_STACK_BOUNDARY, not STACK_BOUNDARY. - (expand_call): Likewise. - (emit_library_call): Likewise. - (emit_library_call_value): Likewise. - * function.c: Provide default for PREFERRED_STACK_BOUNDARY. - (STACK_BYTES): Use PREFERRED_STACK_BOUNDARY, not STACK_BOUNDARY. - * explow.c: Provide default for PREFERRED_STACK_BOUNDARY. - (round_push): Use PREFERRED_STACK_BOUNDARY, not STACK_BOUNDARY. - (allocate_dynamic_stack_space): Likewise. - * tm.texi (PREFERRED_STACK_BOUNDARY): Document new macro. - (STACK_BOUNDARY): Update description to reflect the new situation. - -Thu Nov 19 22:20:51 1998 Jeffrey A Law (law@cygnus.com) - - * reorg.c (relax_delay_slots): When optimizing for code size, if a - return with a filled delay slot is followed by a return with an - unfilled delay slot, delete the first return and reemit the insn - that was previously in its delay slot. - - * i860.c (single_insn_src_p): Add missing parens. - * ginclude/math-3300.h: Likewise. - -Thu Nov 19 20:55:59 1998 H.J. Lu (hjl@gnu.org) - - * regclass.c (init_reg_sets_1): Add prototype. - (init_reg_modes): Likewise. - -1998-11-19 Zack Weinberg - - * c-common.c: Change warning messages to say `comparison is - always true' or `comparison is always false' instead of the - confusing `is always 0', `is always 1'. - -Thu Nov 19 19:05:49 1998 Per Bothner - - * print-tree.c (print_node): After printing BLOCK or BIND_EXPR, - break instead of return (which loses closing '>'). - -Thu Nov 19 19:34:13 1998 Jeffrey A Law (law@cygnus.com) - - * i386.h (LEGITIMATE_CONSTANT_P): Reject CONST_DOUBLEs that are not - standard 387 constants. - - * i386.md (jump): Explicitly set "memory" attribute. - (indirect_jump, prologue_set_stack_ptr): Likewise. - (prologue_get_pc_and_set_got, pop): Likewise. - (allocate_stack_worder, blockage, return_internal): Likewise. - (return_pop_internal, nop): Likewise. - (epilogue_set_stack_ptr, leave): Likewise. - -Thu Nov 19 15:42:54 1998 Nick Clifton - - * config/arm/coff.h: Set USER_LABEL_PREFIX to "_". - -Thu Nov 19 23:20:59 1998 J"orn Rennecke - - * reload1.c (reload_reg_free_for_value_p): - Early auto_inc reloads don't conflict with outputs. - -Thu Nov 19 12:58:55 1998 Kaveh R. Ghazi - - * configure.in: Don't do AC_CHECK_HEADERS(wait.h sys/wait.h). - Instead call AC_HEADER_SYS_WAIT. - - * collect2.c: Don't provide defaults for sys/wait.h macros. - * gcc.c: Likewise. - * protoize.c: Likewise. Also, don't include sys/wait.h. - - * system.h: Include sys/wait.h and provide macro defaults. - -1998-11-19 Andreas Schwab - - * Makefile.in (mandir): Set to @mandir@. - (man1dir): New variable to hold the former value of $(mandir). - Replace all uses of $(mandir) by $(man1dir). - -Wed Nov 18 16:31:28 1998 Jim Wilson - - * reload.c (find_reloads_address_part): If have a CONST_INT, create - a new one before passing it to force_const_mem. - - * reload.c (find_reloads_toplev): Pass &x instead of NULL_PTR in - find_reloads_address call. - -Wed Nov 18 22:13:00 1998 J"orn Rennecke - - * expr.c (store_expr): Don't generate load-store pair - if TEMP is identical (according to ==) with TARGET. - -Tue Nov 17 22:25:16 1998 J"orn Rennecke - - * reload1.c (reload_reg_free_for_value_p): When considered reload - has an output, matching inputs are not sufficient to avoid conflict. - -Tue Nov 17 11:51:16 1998 Mark Mitchell - - * hash.h (hash_table_key): New type. - (hash_entry): Change `string' field to generic `key'. - (hash_table): Add `comp' and `hash' functions. - (hash_table_init): Take them as input. - (hash_table_init_n): Likewise. - (hash_lookup): Modify for generic keys. - (hash_newfunc): Likewise. - (hash_traverse): Likewise. - (string_hash): New function. - (string_compare): Likewise. - (string_copy): Likewise. - * hash.c (hash_table_init_n): Modify for generic keys. - (hash_table_init): Likewise. - (hash_lookup): Likewise. - (hash_newfunc): Likewise. - (hash_traverse): Likewise. - (string_hash): Split out from hash_lookup. - (string_compare): New function. - (string_copy): Split out from hash_lookup. - * tlink.c (symbol_hash_newfunc): Modify for new interfaces to hash - tables. - (symbol_hash_lookup): Likewise. - (file_hash_newfunc): Likewise. - (file_hash_lookup): Likewise. - (demangled_hash_newfunc): Likewise. - (demangled_hash_lookup): Likewise. - (tlink_int): Likewise. - (read_repo_file): Likewise. - (recompile_files): Likewise. - (demangle_new_symbols): Likewise. - (scan_linker_output): Likewise. - -Tue Nov 17 17:13:53 1998 J"orn Rennecke - - * flow.c (insn_dead_p): New argument NOTES. Changed all callers. - -Mon Nov 16 17:56:07 1998 David Edelsohn - - * rs6000.c (output_mi_thunk): Improve test for local branch. - -Mon Nov 16 17:56:07 1998 Franz Sirl - - * rs6000.c (output_mi_thunk): Correct test for aggregate values. - -Mon Nov 16 21:02:52 1998 J"orn Rennecke - - * reload1.c (reload_reg_free_before_p): Delete. - Changed all callers to use reload_reg_free_for_value_p instead. - (reload_reg_free_for_value_p): Handle more reload types. - A RELOAD_FOR_INPUT doesn't conflict with its - RELOAD_FOR_INPUT_ADDRESS / RELOAD_FOR_INPADDR_ADDRESS. - Add special case for OUT == const0_rtx. - Added ignore_address_reloads argument. Changed all callers. - -Mon Nov 16 02:22:29 1998 Jason Merrill - - * toplev.c (compile_file): Don't pedwarn about undefined static - functions just because we passed -Wunused. - -Mon Nov 16 04:41:41 1998 J"orn Rennecke - - * function.c (purge_addressof_1): Unshare rtl created by - store_bit_field. - -Mon Nov 16 04:23:06 1998 J"orn Rennecke - - * regmove.c (regmove_optimize): Don't do anything but - optimize_reg_copy[123] when flag_regmove is not set. - -Sat Nov 14 15:05:07 1998 Richard Henderson - - * alpha.md (addsi3, subsi3): Revise 5 Nov change to store DImode - value in paradoxical SImode result, rather than truncating midpoint. - -Fri Nov 13 22:19:23 1998 Richard Henderson - - * alpha.c (reg_not_elim_operand): New. - * alpha.h (PREDICATE_CODES): Add it. - * alpha.md (s48addq, s48subq patterns): Use it as the predicate - for the multiplicand. - -Fri Nov 13 22:50:37 1998 David Edelsohn - - * rs6000.md (movsf): Remove explicit secondary-reload-like - functionality. Only truncate SFmode store if in FPR. - (movsf splitters): Combine const_double splitters. - (movsf_hardfloat): Add GPR support. - -Fri Nov 13 11:02:11 1998 Stan Cox - - * splet.h (SUBTARGET_OVERRIDE_OPTIONS): New to - deprecate -mlive-g0 and -mbroken-saverestore. - * t-splet (MULTILIB_OPTIONS): Likewise. - - * sparc.c (sparc_flat_compute_frame_size): Correctly calc args_size - in a leaf function. Clarify total_size/extra_size relationship. - -Thu Nov 12 19:20:57 1998 Geoffrey Noer - - * i386/cygwin32.asm: Delete. - * i386/cygwin.asm: New file, renamed from cygwin32.asm. - * i386/cygwin32.h: Delete. - * i386/cygwin.h: New file, renamed from cygwin32.h. - * i386/t-cygwin32: Delete. - * i386/t-cygwin: New file, renamed from t-cygwin32. Include - cygwin.asm instead of cygwin32.asm. Remove "32" from comment. - * i386/x-cygwin32: Delete. - * i386/x-cygwin: New file, renamed from x-cygwin32. - * i386/xm-cygwin32: Delete. - * i386/xm-cygwin: New file, renamed from xm-cygwin32. Use newly - renamed cygwin_ funcs for path translations. - * i386/win32.h: Define __CYGWIN__ when -mcygwin given. - * i386/winnt.c: Remove "32" from comment about cygwin. - * i386/mingw32.h: Fix references to cygwin32.h in light of above. - * rs6000/cygwin32.h: Delete. - * rs6000/cygwin.h: New file, renamed from cygwin32.h. Add - -D__CYGWIN__ to CPP_PREDEFINES. - * rs6000/x-cygwin32: Delete. - * rs6000/x-cygwin: New file, renamed from x-cygwin32. - * rs6000/xm-cygwin32: Delete. - * rs6000/xm-cygwin: New file, renamed from xm-cygwin32. - - * configure.in: Check for cygwin* instead of cygwin32. Account - for the rename of cygwin-related config files to lose the "32"s. - * configure: Regenerate. - - * cccp.c, collect2.c, gcc.c, getpwd.c, libgcc2.c, protoize.c, - toplev.c: Change all refs to __CYGWIN32__ to __CYGWIN__. - -Wed Nov 11 12:25:19 1998 Tom Tromey - - * Makefile.in (JAVAGC): New macro. - * configure: Rebuilt. - * configure.in: Recognize --enable-java-gc argument. Subst - `JAVAGC' variable. - -Thu Nov 12 03:32:16 1998 J"orn Rennecke - - Handle equivalences that have been obscured by gcse: - - * reload1.c (reload): Handle equivalences set up in multiple places. - * local-alloc.c (reg_equiv_init_insns): New variable. - (no_equiv): New function. - (update_equiv_regs): Handle equivalences set up in multiple places. - Don't ignore an insn just because its destination is likely to be - spilled. - -Wed Nov 11 13:46:13 1998 Jim Wilson - - * except.c (expand_eh_return): Readd force_operand call lost in - Sept 15 change. - -Tue Nov 10 17:04:11 1998 David Edelsohn - - * rs6000.h (LEGITIMIZE_ADDRESS): Add missing goto on last case. - -1998-11-09 Andreas Schwab - - * dbxout.c: Check HAVE_STAB_H instead of HAVE_STABS_H. - -Mon Nov 9 20:15:19 1998 Bernd Schmidt - - * regmove.c (regmove_optimize): Fix error in last change. - -Mon Nov 9 16:37:52 1998 Andrew Cagney - - * mips.c (function_prologue): When TARGET_MIPS16, adjust the register - offset in the .mask pseudo to compensate for frame pointer adjustments. - (mips16_fp_args, build_mips16_call_stub): For little endian, do not - word swap arguments moved to/from FP registers. - * mips16.S (DFREVCMP): Reverse arguments to OPCODE. - -Mon Nov 9 09:47:06 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Mon Nov 9 02:14:14 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Mon Nov 9 03:06:24 1998 Jeffrey A Law (law@cygnus.com) - - * reload1.c (delete_output_reload_insn): If a pseudo is set multiple - times, then it can not be completely replaced. - -Mon Nov 9 00:39:02 1998 Richard Henderson - - * alpha.md (call, call_value) [OSF]: Correct alt 3 insn length. - -Sun Nov 8 17:50:30 1998 Kaveh R. Ghazi - - * gansidecl.h: Prepend a "G" to the macro wrapping this file - (to distinguish it from the macro wrapping ansidecl.h.) - Include libiberty's ansidecl.h. Remove all redundant definitions. - Define the PROTO() style macros in terms of the PARAMS() ones. - - - * calls.c (emit_library_call): Switch on ANSI_PROTOTYPES, not - __STDC__, when deciding whether to use ANSI variable args. - (emit_library_call_value): Likewise. - - * cccp.c (error): Likewise. - (warning): Likewise. - (error_with_line): Likewise. - (warning_with_line): Likewise. - (pedwarn): Likewise. - (pedwarn_with_line): Likewise. - (pedwarn_with_file_and_line): Likewise. - (fatal): Likewise. - - * cexp.y (error): Likewise. - (pedwarn): Likewise. - (warning): Likewise. - - * collect2.c (fatal_perror): Likewise. - (fatal): Likewise. - (error): Likewise. - - * combine.c (gen_rtx_combine): Likewise. - - * cpperror.c (cpp_message): Likewise. - (cpp_fatal): Likewise. - - * cpplib.c (cpp_error): Likewise. - (cpp_warning): Likewise. - (cpp_pedwarn): Likewise. - (cpp_error_with_line): Likewise. - (cpp_warning_with_line): Likewise. - (cpp_pedwarn_with_line): Likewise. - (cpp_pedwarn_with_file_and_line): Likewise. - - * cpplib.h: Don't define PARAMS() macro. - - * demangle.h: Likewise. - - * doprint.c (checkit): Switch on ANSI_PROTOTYPES, not __STDC__, - when deciding whether to use ANSI variable args. - - * emit-rtl.c (gen_rtx): Likewise. - (gen_rtvec): Likewise. - - * final.c (asm_fprintf): Likewise. - - * fix-header.c (cpp_message): Likewise. - (fatal): Likewise. - (cpp_fatal): Likewise. - - * gcc.c (concat): Likewise. - (fatal): Likewise. - (error): Likewise. - - * genattr.c (fatal): Likewise. - - * genattrtab.c (attr_rtx): Likewise. - (attr_printf): Likewise. - (fatal): Likewise. - - * gencodes.c (fatal): Likewise. - - * genconfig.c (fatal): Likewise. - - * genemit.c (fatal): Likewise. - - * genextract.c (fatal): Likewise. - - * genflags.c (fatal): Likewise. - - * genopinit.c (fatal): Likewise. - - * genoutput.c (fatal): Likewise. - (error): Likewise. - - * genpeep.c (fatal): Likewise. - - * genrecog.c (fatal): Likewise. - - * halfpic.h: Switch on ANSI_PROTOTYPES, not __STDC__, when - deciding whether to declare `tree_node' and `rtx_def'. - - * hash.h: Don't define stuff we get from gansidecl.h. - - * mips-tfile.c: Likewise. Define __proto() in terms of PARAMS(). - (fatal): Switch on ANSI_PROTOTYPES, not __STDC__, when deciding - whether to use ANSI variable args. - (error): Likewise. - - * prefix.c (concat): Likewise. - - * scan.h: Likewise. - - * system.h: Likewise. - - * toplev.c (error_with_file_and_line): Likewise. - (error_with_decl): Likewise. - (error_for_asm): Likewise. - (error): Likewise. - (fatal): Likewise. - (warning_with_file_and_line): Likewise. - (warning_with_decl): Likewise. - (warning_for_asm): Likewise. - (warning): Likewise. - (pedwarn): Likewise. - (pedwarn_with_decl): Likewise. - (pedwarn_with_file_and_line): Likewise. - (sorry): Likewise. - (really_sorry): Likewise. - - * toplev.h: Switch on ANSI_PROTOTYPES, not __STDC__, when deciding - whether to declare `tree_node' and `rtx_def'. - - * tree.c (build): Switch on ANSI_PROTOTYPES, not __STDC__, when - deciding whether to use ANSI variable args. - (build_nt): Likewise. - (build_parse_node): Likewise. - -Sun Nov 8 13:10:55 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sat Nov 7 23:34:01 1998 Kaveh R. Ghazi - - * Makefile.in (libcpp.a): Check RANLIB_TEST before runing RANLIB. - -Sat Nov 7 22:26:19 1998 David Edelsohn - - * collect2.c (main, case 'b'): Use else if. - -Sat Nov 7 15:35:25 1998 Kaveh R. Ghazi - - * configure.in (host_xm_file, build_xm_file, xm_file, tm_file): - Arrange to include gansidecl.h in {ht}config.h & tm.h just - before the config/ directory headers. - (tm_file_list, host_xm_file_list, build_xm_file_list): Handle - gansidecl.h in the list of dependencies. - - * Makefile.in (RTL_BASE_H): Don't depend on gansidecl.h. - (TREE_H, DEMANGLE_H, RECOG_H, REGS_H, libgcc2.a, stmp-multilib, - mbchar.o, collect2.o, pexecute.o, vfprintf.o, splay-tree.o, gcc.o, - gencheck.o, choose-temp.o, mkstemp.o, mkstemp.o, prefix.o, - dyn-string.o, cexp.o, cccp.o, cppmain.o, cpplib.o, cpperror.o, - cppexp.o, cppfiles.o, cpphash.o, cppalloc.o, scan-decls.o): - Likewise. - - * cccp.c: Don't include gansidecl.h. - * cexp.y: Likewise. - * collect2.c: Likewise. - * config/c4x/c4x.c: Likewise. - * config/v850/v850.h: Likewise. - * cppalloc.c: Likewise. - * cpperror.c: Likewise. - * cppexp.c: Likewise. - * cppfiles.c: Likewise. - * cpphash.c: Likewise. - * cpplib.c: Likewise. - * cppmain.c: Likewise. - * cppulp.c: Likewise. - * demangle.h: Likewise. - * doprint.c: Likewise. - * dyn-string.c: Likewise. - * eh-common.h: Likewise. - * fix-header.c: Likewise. - * frame.c: Likewise. - * gcc.c: Likewise. - * gcov.c: Likewise. - * gen-protos.c: Likewise. - * gencheck.c: Likewise. - * halfpic.h: Likewise. - * hash.c: Likewise. - * machmode.h: Likewise. - * mbchar.c: Likewise. - * prefix.c: Likewise. - * protoize.c: Likewise. - * recog.h: Likewise. - * rtl.h: Likewise. - * scan-decls.c: Likewise. - * tree.h: Likewise. - * varray.h: Likewise. - -Sat Nov 7 11:37:53 1998 Richard Henderson - - * i386.md (call_value_pop): If we're not popping anything, - defer to call_value. - (call_pop): Likewise defer to call. - -Sat Nov 7 02:49:56 1998 Richard Henderson - - * function.c (purge_addressof): Clear purge_addressof_replacements - only after processing the whole function. - -Sat Nov 7 00:54:55 1998 Jeffrey A Law (law@cygnus.com) - - * reload1.c (reload): If we can not perform a particular elimination - when we thought we could earlier, then we must always iterate through - the loop at least one more time. - -Fri Nov 6 19:37:33 1998 Richard Henderson - - * alpha.c (add_operand): Simplify the CONST_INT match. - (sext_add_operand): Correct typo in comparison by using - CONST_OK_FOR_LETTER_P. - * alpha.md (s?addq): Use sext_add_operand to allow the negative - constant alternatives to be generated. - (mulsi3, muldi3, umuldi3_highpart): Loosen constraints to allow - small constants, since the hw instructions do. - -Fri Nov 6 20:15:19 1998 Bernd Schmidt - - * reload1.c (emit_reload_insns): When rewriting the SET_DEST of a - previous insn to store directly into our reload register, make sure - that if the source of the previous insn is a reload register, its - spill_reg_store and spill_reg_stored_to values are cleared. - -Fri Nov 6 16:35:10 1998 David Edelsohn - - * rs6000.md (floatunssidf2_internal splitter): Use base register - operand, not hard-coded SP. - -Fri Nov 6 04:07:53 1998 David S. Miller - - * jump.c (calculate_can_reach_end): Fix thinko. - -Fri Nov 6 00:16:04 1998 Jeffrey A Law (law@cygnus.com) - - * reorg.c (fill_simple_delay_slots): Fix typo. - - * romp.h (LEGITIMIZE_ADDRESS): Fix typo. - -Fri Nov 6 00:10:00 1998 Jan Hubicka (hubicka@freesoft.cz) - - * i386.md (extendsidi2): Use # in the output template. - (extendsidi splitters): New splitters. - -Thu Nov 5 11:13:27 1998 Nick Clifton - - * configure.in: Use unknown-elf.h as tm_file for arm-elf - configurations. - * configure: Regenerate. - -Thu Nov 5 07:59:05 1998 David S. Miller - - * jump.c (init_label_info, delete_barrier_successors, - mark_all_labels, delete_unreferenced_labels, - delete_noop_moves, calculate_can_reach_end): New functions broken - out of jump_optimize. - (jump_optimize): Use them. - -Thu Nov 5 07:57:45 1998 Andrew MacLeod - - * except.c (expand_fixup_region_end): Make sure outer context labels - are not issued in an inner context during cleanups. - -Thu Nov 5 04:03:06 1998 Richard Henderson - - * alpha.md (addsi3, subsi3): No new temporaries once cse is - no longer expected. - -Thu Nov 5 03:29:19 1998 Richard Henderson - - * alpha.md (addsi3, subsi3): Expand to a DImode temporary so as - to expose this midpoint to CSE. - -Thu Nov 5 03:42:54 1998 David S. Miller - - * config/sparc/sparc.md (movdf_const_intreg_sp64): Enable again. - -Thu Nov 5 10:53:01 1998 Andreas Schwab - - * configure.in: Bring over gcc2 change of Nov 19 1997. - -Wed Nov 4 23:43:08 1998 Graham - - * toplev.c (output_lang_identify): Make definition dependent on - ASM_IDENTIFY_LANGUAGE. - - * print-rtl.c (spaces): Make static. - -Wed Nov 4 22:16:36 1998 Hans-Peter Nilsson - - * extend.texi: Clarify proper uses for register clobbers in asms. - -Wed Nov 4 22:16:36 1998 Bernd Schmidt - - * recog.h (enum op_type): Define. - (constrain_operands): Adjust prototype. - (recog_op_type): Declare new variable. - * recog.c (recog_op_type): New variable. - (insn_invalid_p): Allow modifying an asm statement after reload. - (extract_insn): Set up recog_op_type. - (constrain_operands): Lose INSN_CODE_NUM arg. All callers changed. - Don't compute operand types, use recog_op_type. - Use the information computed by extract_insn instead of the previous - method of finding it by insn code number. - * caller-save.c (init_caller_save): Use extract_insn, not insn_extract. - * reorg.c (fill_slots_from_thread): Likewise. - * reload1.c (reload_as_needed): Likewise. - (gen_reload): Likewise. - (inc_for_reload): Likewise. - (reload_cse_simplify_operands): Likewise. - Use the information computed by extract_insn instead of the previous - method of finding it by insn code number. - * genattrtab.c (write_attr_case): Generate call to extract_insn, not - insn_extract. - * final.c (final_scan_insn): Use extract_insn, not insn_extract. - (cleanup_operand_subregs): Use extract_insn, not insn_extract. - Use the information computed by extract_insn instead of the previous - method of finding it by insn code number. - * regmove.c (find_matches): Likewise. Change meaning of the return - value to be nonzero if the optimization can be performed, zero if - not. All callers changed. - Shorten some variable names to fix formatting problems. - (regmove_optimize): Shorten some variable names to fix formatting - problems. - Use the information computed by extract_insn instead of the previous - method of finding it by insn code number. - * regclass.c (scan_one_insn): Likewise. - (record_reg_classes): Don't compute operand types, use recog_op_type. - * reload.c (find_reloads): Lose CONSTRAINTS1 variable; use - recog_constraints instead. - -Wed Nov 4 21:37:46 1998 Jeffrey A Law (law@cygnus.com) - - * rtl.h (flow2_completed): Declare. - * flow.c (flow2_completed): Definition. - * toplev.c (rest_of_compilation): Set and clear flow2_completed - as necessary. - -Wed Nov 4 19:15:37 1998 Melissa O'Neill - - * Makefile.in (libcpp.a): Ranlib libcpp.a. - - * cppulp.c (user_label_prefix): Initialize. - -Wed Nov 4 19:07:08 1998 John Wehle (john@feith.com) - - * flow.c (mark_regs_live_at_end): Mark the stack pointer as live - at a RETURN if current_function_sp_is_unchanging is set. - -Wed Nov 4 18:16:29 1998 Herman A.J. ten Brugge - - * emit-rtl.c (try_split): Fixed error in Oct 10 patch. - -Wed Nov 4 15:11:15 1998 Geoffrey Noer - - * i386/cygwin32.h (MASK_WIN32, MASK_CYGWIN, MASK_WINDOWS, MASK_DLL, - TARGET_WIN32, TARGET_CYGWIN, TARGET_WINDOWS, TARGET_DLL): New. - (SUBTARGET_SWITCHES): Add -mno-cygwin, -mcygwin, and -mdll options. - (CPP_PREDEFINES): Don't define __CYGWIN32__ here. - (STARTFILE_SPEC): Handle -mdll, -mno-cygwin options. - (CPP_SPEC): Handle -mno-cygwin option. Define __CYWIN__ in addition - to __CYGWIN32__. - (LIB_SPEC): Handle -mno-cygwin option. - (LINK_SPEC): Handle -mdll. - -Wed Nov 4 22:56:14 1998 J"orn Rennecke - - * reload.c (find_reloads): Fix test for usage by other reload - to handle secondary reloads properly. - -Wed Nov 4 17:25:10 1998 Kaveh R. Ghazi - - * reload1.c (ELIMINABLE_REGS, NUM_ELIMINABLE_REGS): Introduce an - intermediate structure which has exactly the members provided by - ELIMINABLE_REGS. Define NUM_ELIMINABLE_REGS in terms of the - static intermediate structure. - - (init_elim_table): Xmalloc() `reg_eliminate', and initialize it - from the intermediate structure. Do the same analogous fix in - the case where ELIMINABLE_REGS is not defined. - -Tue Nov 3 20:50:03 1998 Jeffrey A Law (law@cygnus.com) - - * pa.h (SELECT_SECTION): Fix thinko. - -Tue Nov 3 17:51:36 1998 Jim Wilson - - * dwarf2out.c (output_call_frame_info): Comments on last change. - -Tue Nov 3 07:51:43 1998 Richard Earnshaw (rearnsha@arm.com) - - * arm.c (add_constant): When taking the address of an item in the - pool, get the mode of the item addressed. - - * arm.c (final_prescan_insn case INSN): If an insn doesn't - contain a SET or a PARALLEL, don't consider it for conditional - execution. - - Restore ABI compatibility for NetBSD. - * arm/netbsd.h (DEFAULT_PCC_STRUCT_RETURN): Override setting in - arm.h. - (RETURN_IN_MEMORY): Likewise. - -Mon Nov 2 11:46:17 1998 Doug Evans - - * m32r/m32r.c (m32r_expand_block_move): Fix byte count computations. - (m32r_output_block_move): Rewrite bytes < 4 handling. - -Mon Nov 2 10:10:35 1998 Kaveh R. Ghazi - - * configure.in: Call AC_FUNC_VFORK. - - * collect2.c: Define VFORK_STRING as a printable string for - error messages (either "vfork" or "fork".) If HAVE_VFORK_H is - defined, include vfork.h. If VMS is defined, define vfork() - appropriately. Remove vfork check on USG, we're using autoconf. - (collect_execute): Pass VFORK_STRING to fatal_perror instead of - checking locally what string to pass. - (scan_prog_file): Likewise. - (scan_libraries): Likewise. - - * gcc.c: Remove vfork check on USG, we're using autoconf. - Besides, no calls to vfork/fork occur in this file. - - * protoize.c: Likewise. - -Mon Nov 2 07:52:28 1998 Alexandre Oliva - - * configure.in (DEFAULT_LINKER): Renamed from LD. - (DEFAULT_ASSEMBLER): Renamed from AS; reverted Schwab's patch. - (gcc_cv_as): Try $DEFAULT_ASSEMBLER before $AS. - * configure: Rebuilt. - -Mon Nov 2 01:48:10 1998 Alexandre Oliva - - * BUGS: Fix the regexp for `more' to find the appropriate node. - Reported by Joerg Pietschmann - - * BUGS: Added link to the WWW FAQ. - -Sun Nov 1 18:27:15 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sun Nov 1 11:04:32 1998 Jeffrey A Law (law@cygnus.com) - - * From Christian Gafton: - * i386/linux.h (CPP_PREDEFINES): Add -D__i386__. - * sparc/linux.h (CPP_PREDEFINES): Add -D__sparc__. - * sparc/linux64.h (CPP_PREDEFINES): Add -D__sparc__. - -Sat Oct 31 21:42:39 1998 Mark Mitchell - - * c-common.c (c_get_alias_set): Allow all type-punning through - unions. Don't get confused about the type of a bit-field, despite - the antics of build_modify_expr. - -Sat Oct 31 22:35:29 1998 Jean-Pierre Radley - - * fixinc.sco: Parameterize #include_next values. - * fixinc/fixinc.sco: Likewise. - -Sat Oct 31 20:39:35 1998 Jeffrey A Law (law@cygnus.com) - - * toplev.c (rest_of_compilation): No longer set reload_completed. - * reload1.c (reload): Set it here. Perform instruction splitting - after reload has completed if we will be running the scheduler - again. - -Sat Oct 31 12:30:02 1998 Jeffrey A Law (law@cygnus.com) - - * jump.c (jump_optimize): Initialize mappings from INSN_UID to - EH region if exceptions are enabled and we're performing cross - jump optimizations. - (find_cross_jump): Exit loop if the insns are in different EH regions. - -Sat Oct 31 10:02:48 1998 Mark Mitchell - - * dwarf2out.c (output_call_frame_info): Use - ASM_OUTPUT_DWARF_DELTA4 for the CIE offset to match frame.c. - -Sat Oct 31 10:23:14 1998 Kaveh R. Ghazi - - Reinstall Apr 24th fix, lost during May 6th gcc2 merge: - * c-common.c (check_format_info): Don't check for the 'x' - format character twice, instead check for 'x' and 'X' - -Fri Oct 30 14:50:25 1998 Jeffrey A Law (law@cygnus.com) - - * configure.in (assembler features): Also make gas is configured if - we find it in the source tree. - -Fri Oct 30 13:23:20 1998 Richard Henderson - - * i386.c (i386_comp_type_attributes): Compare whether the - attributes are defined, not their tree nodes. - -Fri Oct 30 11:39:47 1998 Alexandre Oliva - - * configure.in (gxx_include_dir): Bitten by autoconf quoting - characters. :-( - * configure: Rebuilt. - -Fri Oct 30 10:43:29 1998 Andreas Schwab - - * configure.in: Ignore non-absolute value in $AS. - -Fri Oct 30 00:54:25 1998 Peter Jakubek - - * m68k.h (INDIRECTABLE_1_ADDRESS_P): Fix thinko. - -Fri Oct 30 00:42:34 1998 Mark Elbrecht - - * configure.in (msdosdjgpp): Set exeext and target_alias. - -Thu Oct 29 23:55:43 1998 Bernd Schmidt - - * flow.c (XNMALLOC): New macro. - (flow_int_list_blocks, basic_block_succ, basic_block_pred): New - static variables. - (add_edge, add_edge_to_label): New static functions. - (free_bb_memory): New function. - (flow_delete_insn): Delete function. - (basic_block_drops_in): Delete variable. - (find_basic_blocks): Allocate and initialize basic_block_head, - basic_block_succ. Don't allocate basic_block_drops_in. - Call free_bb_memory at the beginning. - (find_basic_blocks_1): Don't do multiple passes. - Delete code to compute basic_block_drops_in. - After calling make_edges, mark blocks reached by current block live. - Update test for unreachable live blocks. - (mark_label_ref): Delete args X, CHECKDUP. Add PRED arg. All callers - changed. - Simplify to call add_edge_to_label when a LABEL_REF is found. - (make_edges): Simplify to call add_edge_to_label instead of - mark_label_ref most of the time. - Compute here whether control drops into the next block. - (delete_unreachable_blocks): Return void. All callers changed. - Delete unreachable blocks in reverse order. - After deleting all unreachable blocks, renumber the remaining ones - and update n_basic_blocks. - (delete_block): Speed up deletion a bit. - Don't set basic_block_drops_in for deleted blocks. - (free_basic_block_vars): Don't free basic_block_drops_in. - (life_analysis_1): Update to use new edge representation. - (dump_flow_info): Delete code to print basic block info; call - dump_bb_data instead. - (compute_preds_succs): Delete code to recompute basic_block_drops_in - and uid_block_number. - Simply copy the previously computed cfg. - (dump_bb_data): New arg LIVE_INFO. All callers changed. - Print register lifetime information if LIVE_INFO is nonzero. - * basic-block.h (dump_bb_data): Adjust prototype. - * gcse.c (gcse_main): Update call to dump_bb_data. - * rtl.h (free_bb_memory): Declare. - * toplev.c (rest_of_compilation): Call free_bb_memory. - - * reload1.c (struct elim_table): Delete MAX_OFFSET member. - (update_eliminable_offsets): Don't compute it. - (set_initial_elim_offsets): Don't initialize it. - Break out some code into set_initial_label_offsets so the rest of - this function can be called from reload_as_needed. - Assume that INITIAL_FRAME_POINTER_OFFSET is defined when - ELIMINABLE_REGS isn't. - (set_initial_label_offsets): New function, broken out of - set_initial_elim_offsets. - (set_offsets_for_label): New function, broken out of set_label_offsets - and reload_as_needed. - (reload): Call the two new functions. - (reload_as_needed): Call set_initial_elim_offsets instead of - duplicating the code. Likewise for set_offsets_for_label. - - * reload1.c (choose_reload_regs): Fix typo in Oct 17 change. - (emit_reload_insns): Ensure that when we set reg_reloaded_valid for - any hard reg, reg_reloaded_dead contains valid data. - -Thu Oct 29 22:30:54 1998 Marcus Meissner - - * i386.c (i386_comp_type_attributes): Return nonzero for mismatched - "stdcall" and "cdecl" attributes. - -Thu Oct 29 19:05:17 1998 Jim Wilson - - * sched.c (update_flow_info): Add code to ! found_orig_dest case to - handle deleted no-op moves of hard registers. - * haifa-sched.c (update_flow_info): Likewise. - -Thu Oct 29 18:07:47 1998 Jeffrey A Law (law@cygnus.com) - - * mips.md (reload_{in,out}{si,di}): Emit a USE of HILO at the end - of the sequences to reload the HILO register which do not actually - reference HILO. - -Thu Oct 29 12:39:35 1998 Jim Wilson - - * c-common.c (c_get_alias_set): Handle ARRAY_REF of union field. - -Thu Oct 29 14:10:22 1998 Andrew MacLeod - - * except.c (emit_eh_context): Make the EH context register stay alive - at -O0 so stupid.c doesn't get confused. - -1998-10-29 Herman A.J. ten Brugge - - * emit-rtl.c (try_split): Do not try to split a BARRIER. - -Thu Oct 29 01:33:54 1998 Jan Hubicka - Jeffrey A Law (law@cygnus.com) - - * i386.md: Change ix86_cpu == PROCESSOR_PENTIUM to TARGET_PENTIUM. - (zero_extendsidi2): Use # in output template and handle completely by - splits. - (zero_extend splitters): New define_splits. - (ashiftrt_32): New pattern. - -Wed Oct 28 22:58:35 1998 Jason Merrill - - * tree.c (append_random_chars): New fn. - (get_file_function_name_long): Use it. - -Wed Oct 28 22:27:05 1998 Richard Henderson - - * Makefile.in (cc1): Put C_OBJS, and thence @extra_c_objs@ last. - (LIBCPP_OBJS): New. Add cppulp.o. - (cppmain, fix-header): Depend on and use libcpp.a. - * configure.in (extra_c_objs, extra_cxx_objs): Use libcpp.a instead - of the individual object files. - * objc/Make-lang.in (cc1obj): Put OBJC_OBJS, and thence @extra_c_objs@, - last. - - * cccp.c (user_label_prefix): New. - (main): Set it off -f*leading-underscore. - (special_symbol): Use it. - * cpplib.c (special_symbol): Likewise. - (cpp_handle_option): Handle -f*leading-underscore. - * cppulp.c: New file. - - * output.h (user_label_prefix): Declare it. - * dwarf2out.c (ASM_NAME_TO_STRING): Prepend user_label_prefix. - * toplev.c (f_options, main): Handle -f*leading-underscore. - - * defaults.h (ASM_OUTPUT_LABELREF): Use asm_fprintf instead of - referencing USER_LABEL_PREFIX directly. - * config/nextstep.h (ASM_OUTPUT_LABELREF): Likewise. - * m32r/m32r.h (ASM_OUTPUT_LABELREF): Likewise. - * final.c (asm_fprintf): Use user_label_prefix instead. - * arm/thumb.c (thumb_print_operand): Likewise. - - * gcc.c (default_compilers): Pass -f*leading-underscore on to - cpp wherever appropriate. - -Wed Oct 28 23:09:25 1998 Robert Lipe - - * sco5.h (SUBTARGET_SWITCHES): Add documentation for OpenServer- - specific compiler switches. - -Wed Oct 28 21:05:53 1998 Jeffrey A Law (law@cygnus.com) - - * Makefile.in (c-common.o): Depend on c-pragma.h. Use $(RTL_H) instead - of rtl.h. - -Wed Oct 28 20:52:47 1998 Kaveh R. Ghazi - - * gcc.c (EXTRA_SPECS, extra_specs): Introduce an intermediate - structure which has exactly the members provided by EXTRA_SPECS. - Xmalloc() the real `extra_specs', and initialize it from this - intermediate structure. - - * alpha.h (EXTRA_SPECS): Revert change for missing initializers. - - * mips.h (EXTRA_SPECS): Likewise. - - * sparc.h (EXTRA_SPECS): Likewise. - -Wed Oct 28 16:46:07 1998 Andreas Schwab - - * function.c (purge_addressof_1): Instead of aborting when a - bitfield insertion as a replacement for (MEM (ADDRESSOF)) does not - work just put the ADDRESSOF on stack. Otherwise remember all such - successful replacements, so that exactly the same replacements - can be made on the REG_NOTEs. Remove the special case for CALL - insns again. - (purge_addressof_replacements): New variable. - (purge_addressof): Clear it at end. - -1998-10-28 Zack Weinberg - - * c-lang.c: Declare extern char *yy_cur if USE_CPPLIB. - (lang_init): Call check_newline always. - * c-lex.c (init_parse) [USE_CPPLIB=1]: After calling - cpp_start_read, set yy_cur and yy_lim to read from - parse_in.token_buffer, so that we'll see the first #line - directive. - * cpplib.c (cpp_start_read): finclude the main input file - before processing -include/-imacros. Process -imacros and - -include separately, and handle -include by stacking a - buffer for the file in question as if it'd been #included. - * toplev.c (documented_lang_options): Recognize -H when - USE_CPPLIB is on. - -1998-10-28 Zack Weinberg - - * cpplib.c: Merge do_once into do_pragma. Break file handling - code out of do_include. - Move append_include_chain, deps_output, - file_cleanup, redundant_include_p, import_hash, - lookup_import, add_import, read_filename_string, read_name_map, - open_include_file, finclude, safe_read to cppfiles.c. - Move prototypes for deps_output, append_include_chain, - finclude to cpplib.h. Move definition of struct - file_name_list there also. - - * cppfiles.c: New file. Contains all the above functions - broken out of cpplib.c; also hack_vms_include_specification - from cccp.c and find_include_file, a new function broken out of - do_include. - - * Makefile.in (cppmain): Depend on cppfiles.o. - (fix-header): Likewise. - (cppfiles.o): New target. - * configure.in (--enable-c-cpplib): Add cppfiles.o to - extra_c_objs. Add ../cppfiles.o to extra_cxx_objs. - -Wed Oct 28 14:06:49 1998 Jim Wilson - - * dwarfout.c (dwarfout_file_scope_decl): If DECL_CONTEXT, don't abort - if pending_types is nonzero. - (dwarfout_finish): Verify pending_types is zero before finishing. - -Wed Oct 28 10:29:09 1998 Nick Clifton - - * expr.c (convert_move): Use shifts to perform the move if a - suitable extend pattern cannot be found. Code written by - Richard Henderson . - -Wed Oct 28 03:59:29 1998 Bernd Schmidt - - * regclass.c (renumber, regno_allocated): New static variables, moved - out of allocate_reg_info. - (allocate_reg_info): Move these two variables outside the function. - Move code to free memory into new function free_reg_info. - (free_reg_info): New function, broken out of allocate_reg_info. - * toplev.c (compile_file): Call free_reg_info, not allocate_reg_info. - * rtl.h (allocate_reg_info): Don't declare. - (free_reg_info): Declare. - - * final.c (cleanup_subreg_operands): ASM_INPUTs need no treatment. - -Wed Oct 28 02:38:12 1998 Jason Merrill - - * toplev.c (compile_file): Temporarily revert last change. - -Wed Oct 28 00:00:35 1998 Jason Merrill - - * c-typeck.c (convert_for_assignment): Parenthesize. - -1998-10-28 Andreas Schwab - - * reload1.c (delete_output_reload): Avoid ambigous else. - -Wed Oct 28 00:10:35 1998 Jeffrey A Law (law@cygnus.com) - - * toplev.c (compile_file): Call allocate_reg_info to free register - table memory. - * rtl.h (allocate_reg_info): Declare. - - * PROJECTS: Remove entry for local spilling. - - * final.c (cleanup_subreg_operands): New function. - (final_scan_insn): Use it. - (alter_subreg): Clear the "used" field when we turn a SUBREG into - a REG. - * reload1.c (reload): Delete CLOBBER insns and also cleanup SUBREG - operands when reload has finished. - * reload.h (cleanup_subreg_operands): Declare.. - * flow.c (life_analysis_1): No longer delete CLOBBER insns after - reload. Handled in reload itself. - -Tue Oct 27 23:32:34 1998 Bernd Schmidt - - * reload1.c (verify_initial_offsets): New function. - (reload): Call it after reload_as_needed. Also verify that the frame - size stays constant during reload_as_needed. - * i386.h (CONST_DOUBLE_OK_FOR_LETTER_P): Undo Jul 26 change. - - * reload.h (struct insn_chain): Add need_operand_change element. - * reload1.c (new_insn_chain): Clear it. - (calculate_needs_all_insns): Set it; don't overload need_reload. - (reload_as_needed): Use it. - - * reload.c (find_reloads_address): Use BASE_REG_CLASS instead of - reload_address_base_reg_class throughout. Similar for INDEX_REG_CLASS - and reload_address_index_reg_class. - (find_reloads_address_1): Likewise. - * reload.h (reload_address_base_reg_class, - reload_address_index_reg_class): Don't declare. - * reload1.c (reg_old_renumber, pseudo_previous_regs, - pseudo_forbidden_regs, bad_spill_regs_global): New static variables. - (used_spill_regs): Now static. - (reload_address_base_reg_class, reload_address_index_reg_class, - regs_explicitly_used, counted_for_groups, counted_for_nongroups, - basic_block_needs, max_needs, group_size, group_mode, max_groups, - max_nongroups, max_needs_insn, max_groups_insn, max_nongroups_insn, - forbidden_regs): - Deleted variables. - (init_reload): Delete code to compute base/index reg classes. - (reload): Delete variable J. - Delete code to manage basic_block_needs. - Don't compute regs_explicitly_used. - Allocate, initialize and free reg_old_renumber, pseudo_forbidden_regs, - pseudo_previous_regs. - Initialize bad_spill_regs_global. - Don't call order_regs_for_reload here. - Don't initialize spill_reg_order and n_spills. - Don't forbid explicitly used regs to be used for spill regs. - Change main loop to infinite loop, with explicit break statements. - Make SOMETHING_CHANGED variable local to that loop. - Don't initialize max_needs, max_groups, max_nongroups, max_needs_insn, - max_groups_insn, max_nongroups_insn, group_size, group_mode. - Make sure spilled_pseudos is cleared before calling spill_hard_reg or - new_spill_reg. - Don't call dump_needs. - Delete code to reset potential_reload_regs. - Delete code to terminate loop conditional on the global needs variables - showing no further needs. - (calculate_needs_all_insns): Return void. All callers changed. - Initialize something_needs_elimination here, not in reload. - Delete avoid_return_reg kludge. - (calculate_needs): Lose AVOID_RETURN_REG and GLOBAL args, return void. - All callers changed. - Initialize the group_mode and group_size elements of the arg CHAIN. - Delete code to manage basic_block_needs. - Operate on elements of CHAIN instead of global variables. - Delete avoid_return_reg kludge. - (find_tworeg_group): Lose GLOBAL arg, take CHAIN arg, return void. - All callers changed. - Operate on elements of CHAIN instead of global variables. - Delete special SMALL_REGISTER_CLASSES code. - Delete spill_failure code; now in new_spill_reg. - (find_group): Lose GLOBAL arg, take CHAIN arg, return void. - All callers changed. - Operate on elements of CHAIN instead of global variables. - (maybe_mark_pseudo_spilled): New static function. - (find_reload_regs): Lose GLOBAL arg, take CHAIN arg, return void. - All callers changed. - Operate on elements of CHAIN instead of global variables. - Call order_regs_for_reload here, not in reload. - Initialize spill_reg_order and n_spills. - Simplify test whether an asm insn is involved. - Delete spill_failure code; now in new_spill_reg. - Call maybe_mark_pseudo_spilled for everything marked as live in - CHAIN. Merge CHAIN's used_spill_regs into the global variable - used_spill_regs. - (dump_needs): Take CHAIN arg. No longer static, to prevent the - compiler from optimizing this function (now unused) away. - Operate on elements of CHAIN instead of global variables. - (possible_group_p): Lose MAX_GROUPS arg, take CHAIN arg. All callers - changed. - Operate on elements of CHAIN instead of global variables. - (count_possible_groups): Lose GROUP_SIZE, GROUP_MODE, MAX_GROUPS args, - take CHAIN arg. All callers changed. - Operate on elements of CHAIN instead of global variables. - (new_spill_reg): Lose MAX_NEEDS, MAX_NONGROUPS, GLOBAL args, take - CHAIN, NONGROUP args. Return void. All callers changed. - Verify caller isn't trying to spill a pseudo. - Simplify test for illegal reg, just use bad_spill_regs. - Generate better error messages. - Operate on elements of CHAIN instead of global variables. - Mark spilled register in CHAIN's used_spill_regs element. - Don't call spill_hard_reg. - (spill_hard_reg): Lose GLOBAL arg, return void. All callers changed. - Mark spilled hard regs in bad_spill_regs_global. - Mark affected pseudos in spilled_pseudos, but don't spill them. - (ior_hard_reg_set): New static function. - (finish_spills): Return int. All callers changed. - Compute spill_reg_order, n_spills and spill_regs here. Also update - regs_ever_live for regs used as spills. - For every pseudo in spilled_pseudos, spill it and mark the previous - hard reg it had in pseudo_previous_regs. Compute which hard regs - are used as spills in insns during which it is live, and retry global - register allocation. Update all life information in the - reload_insn_chain not to include pseudos without hard regs. - Call alter_reg for all affected speudos. - - (scan_paradoxical_subregs): Disable SMALL_REGISTER_CLASSES special - case, it's not clear what it's supposed to do. - - (hard_reg_use_compare): Take bad_spill_regs into account. - (pseudos_counted): New static variable. - (count_pseudo): New static function. - (order_regs_for_reload): Take CHAIN arg. All callers changed. - Initialize bad_spill_regs from bad_spill_regs_global, then merge any - hard registers explicitly used across the current insn into the set. - Compute hard_reg_n_uses taking only pseudos live across this insn - into account. - Tweak sorting of potential_reload_regs. - (compare_spill_regs): Delete function. - (reload_as_needed): Don't sort the spill_regs array, it's computed - in proper order in finish_spills. - Delete avoid_return_reg kludge. - Delete code to manage basic_block_needs. - (allocate_reload_reg): Minor speed/readability tweaks. - Operate on elements of CHAIN instead of global variables. - (choose_reload_regs): Lose AVOID_RETURN_REG arg. All callers changed. - Delete avoid_return_reg kludge. - Initialize reload_reg_used from CHAIN's used_spill_regs element. - Delete unused label FAIL. - (reload_combine): Replace reload_address_index_reg_class with - INDEX_REGS. - Don't use used_spill_regs to determine information about lifetime of - hard regs. - -Tue Oct 27 13:15:02 1998 Nick Clifton - - * toplev.c (display_help): Ignore empty target specific - options, and if -W is also specified on the command line then - display undocumented options. - - * config/arm/arm.c: Updated with changes in devo sources. - * config/arm/arm.h: Updated with changes in devo sources. - * config/arm/lib1funcs.asm: Updated with changes in devo sources. - * config/arm/lib1thumb.asm: Add ELF support. - -Tue Oct 27 16:11:43 1998 David Edelsohn - - * collect2.c (aix64_flag): New variable. - (main, case 'b'): Parse it. - (GCC_CHECK_HDR): Object magic number must match mode. - (scan_prog_file): Only check for shared object if valid header. - Print debugging if header/mode mismatch. - -Tue Oct 27 10:15:02 1998 Nick Clifton - - Added support for arm-elf-linux configuration, submitted by Philip - Blundell , and integrated this with the arm-elf - code developed by Catherine Moore . The following - files are affected: - - * configure.in: Add arm-*-linux-gnu, armv2-*-linux and arm-*-elf - targets. - - * configure: Regenerated. - - * config/arm/aout.h: Add default definitions of REGISTER_PREFIX, - USER_LABEL_PREFIX and LOCAL_LABEL_PREFIX. Make other macro - definitions conditional on their not having been already defined. - - * config/arm/lin1funcs.asm: Add ELF only macros to generate .size - and .type directives, and add "(PLT)" qualification to function - calls. - - * config/arm/linux.h: Deleted. This file is now superseded by - either linux-elf.h or linux-aout.h. - - * config/arm/linux-gas.h: Define `inhibit_libc' if cross-compiling. - (CLEAR_INSN_CACHE): New macro, currently disabled (awaiting kernel - support). - Move definitions from old linux.h file here. - - * config/arm/elf.h: New file. Generic ARM/ELF support. - - * config/arm/linux-aout.h: New file. Support for Linux with a.out. - - * config/arm/linux-elf.h: New file. Support for Linux with ELF. - - * config/arm/linux-elf26.h: New file. Support for Linux with ELF - using the 26bit APCS. - - * config/arm/unknown-elf.h: New file. Support for OS'es other - than Linux with ELF. - - * config/arm/t-arm-elf: New file. makefile fragment for arm-elf - builds. - - * config/arm/coff.h: Include aout.h for basic assembler macros. - Add support for -mstructure_size_boundary= command line option. - - * config/arm/arm.h: Add support for -mstructure_size_boundary= - command line option. Make macro definitions conditional on their - not having been already defined. - - * config/arm/arm.c: Add support for -mstructure_size_boundary= - command line option. - - -Tue Oct 27 08:56:46 1998 Andrew MacLeod - - * dwarfout.c (ASM_OUTPUT_DWARF_STRING_NEWLINE): ASM_OUTPUT_DWARF_STRING - has been changed to not include a newline. Use this macro instead. - (output_enumeral_list, const_value_attribute, name_attribute, - comp_dir_attribute, prototyped_attribute, producer_attribute, - inline_attribute, pure_or_virtual_attribute, output_inheritance_die, - dwarfout_file_scope_decl, generate_new_sfname_entry, - generate_macinfo_entry, dwarfout_init, dwarfout_finish): Use - ASM_OUTPUT_DWARF_STRING_NEWLINE macro. - -Mon Oct 26 13:35:02 1998 Richard Henderson - - * combine.c (subst): Process the inputs to a parallel asm_operands - only once. - -Mon Oct 26 13:32:31 1998 Richard Henderson - - * stmt.c (expand_asm_operands): Accept `=' or `+' at any position. - -Mon Oct 26 12:53:14 1998 Jeffrey A Law (law@cygnus.com) - - * tm.texi (ASM_OUTPUT_MAX_SKIP_ALIGN): Document. - -Mon Oct 26 00:36:58 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sun Oct 25 23:36:52 1998 Jason Merrill - - * stmt.c (expand_fixup): Set fixup->before_jump to a - NOTE_INSN_DELETED instead of a NOTE_INSN_BLOCK_BEG. - -Sun Oct 25 15:49:57 1998 Kaveh R. Ghazi - - * Makefile.in (recog.o): Depend on toplev.h. - (insn-emit.o): Depend on recog.h. - (insn-peep.o): Depend on recog.h and insn-config.h. - - * combine.c (simplify_set): Remove unused variable `scratches'. - - * final.c (final_scan_insn): Wrap declaration of variables `vlen' - and `idx' in macro conditional controlling their use. - - * genemit.c (main): Make the generated output file include - recog.h. Don't have it declare `insn_operand_constraint', since - we get it from recog.h. - - * genpeep.c (main): Make the generated output file include - insn-config.h and recog.h. - - * recog.c: Include toplev.h. - (extract_insn): Remove unused variable `p'. - - * regclass.c (fix_register): Add missing braces around initializer - for `what_option'. - (allocate_reg_info): Move variable `i' into the scope where it is - used. Change its type to `size_t'. - -Sun Oct 25 13:10:15 1998 Bernd Schmidt - - * reload.c (push_reload): When merging reloads, make sure - that reload_in_reg and reload_in are from the same reload in - all cases. - -Sun Oct 25 12:07:00 1998 Mumit Khan - - * i386/crtdll.h (CPP_PREDEFINES): Fix typo. - * i386/mingw32.h (CPP_PREDEFINES): Likewise. - -Fri Oct 23 23:42:03 1998 David Edelsohn - - * loop.c (loop_has_tablejump): New variable. - (prescan_loop): Scan for it. - (insert_bct): Replace explicit scan with use of it. - * regclass.c (regclass): Restore loop variable j. - (record_reg_classes): Deterine op_types modifiers and initialize - classes[i] before matching constraints. Handle matching - constraints 5-9. - -Fri Oct 23 13:55:48 1998 Jim Wilson - - * m32r/m32r.c (gen_split_move_double): Call alter_subreg. Delete - subreg support. - -Fri Oct 23 16:19:24 1998 Kaveh R. Ghazi - - * mips.h (EXTRA_SPECS): Add missing initializers. - -Fri Oct 23 16:08:39 1998 Kaveh R. Ghazi - - * sparc.h (EXTRA_SPECS): Add missing initializers. - (sparc_defer_case_vector): Provide a prototype. - - * svr4.h (ASM_OUTPUT_ASCII): Cast STRING_LIMIT to (long) when - comparing it to the result of a pointer subtraction. - -Fri Oct 23 15:34:14 1998 Kaveh R. Ghazi - - * alpha.c (override_options): Use ISDIGIT(), not isdigit(). Cast - the argument to (unsigned char). - - * alpha.h (EXTRA_SPECS): Add missing initializers. - (ASM_GENERATE_INTERNAL_LABEL): Ensure the argument matches the - format specifier. - -Fri Oct 23 13:12:35 1998 Jeffrey A Law (law@cygnus.com) - - * flow.c (life_analysis_1): Enable "rescan" code after reload. - (propagate_block): Delete dead code after reload. - - * sched.c (update_flow_info): Revert Oct 19, 1998 change. Brings - back Oct 15, 1998 change. - * haifa-sched.c (update_flow_info): Likewise. - * flow.c (life_analysis_1): Delete CLOBBER insns after reload. - - * mn10200.md (truncated shift): Accept constant inputs too. - -Fri Oct 23 04:06:57 1998 Richard Earnshaw (rearnsha@arm.com) - - * machmode.h (mode_mask_array): No longer const. - * rtl.c (init_rtl): Fully initialize it if EXTRA_CC_MODES defined. - -Fri Oct 23 11:19:06 1998 Martin v. Löwis - - * frame.c: Somewhat explain `FDE'. - Suggested by Brendan Kehoe - -Fri Oct 23 00:56:11 1998 Jason Merrill - - * expr.c (pending_chain): Move up. - (save_expr_status): Do save pending_chain. - (restore_expr_status): And restore it. - * function.h (struct function): Add pending_chain. - -1998-10-23 Herman A.J. ten Brugge - - * reorg.c (relax_delay_slots): Fixed test for mostly_true_jump. The - did not match the code. - -Fri Oct 23 00:07:01 1998 Bernd Schmidt - - * regclass.c (regclass): Break out some code into new function - scan_one_insn, and into regclass_init. - (init_cost): New static variable, moved out of regclass. - (regclass_init): Initialize it here, not in . - (scan_one_insn): New static function, broken out of regclass. - * recog.c (apply_change_group): Break out some code into new - function insn_invalid_p. - (insn_invalid_p): New static fn, broken out of apply_change_group. - -Thu Oct 22 22:34:42 1998 Jim Wilson - - * reload1.c (reload_as_needed): When rewrite POST_INC, verify - reg_reloaded_contents matches incremented pseudo. - - * v850/v850.c (v850_reorg): Call alter_subreg. Delete subreg support. - -Fri Oct 23 11:11:56 1998 Michael Hayes - - * rtl.def (POST_MODIFY, PRE_MODIFY): New generalized operators for - addressing modes with side effects. These are currently - placeholders for the C4x target. - -Thu Oct 22 16:46:35 1998 Bernd Schmidt - - * loop.c (express_from): Make sure that when generating a PLUS of - a PLUS, any constant expression appears on the outermost PLUS. - -Thu Oct 22 15:46:23 1998 Per Bothner (bothner@cygnus.com) - - * Makefile.in (distdir-cvs, distdir-start): Clean up so it - works if "$(srcdir)" != ".". - -Wed Oct 21 19:23:59 1998 Jim Wilson - - * expmed.c (store_bit_field): If need to add a SUBREG, then remove - existing SUBREG if we can, otherwise abort. - -Wed Oct 21 09:58:51 1998 Mark Mitchell - - * c-common.c (c_apply_type_quals_to_decl): Don't crash when - `restrict' is applied to a non-pointer variable. - -Wed Oct 21 09:18:58 1998 Mark Mitchell - - * invoke.texi: Document -flang-isoc9x. - - * Makefile.in (OBJS): Add splay-tree.o. - (c-common.o): Depend on rtl.h. - (splay-tree.o): List dependencies and provide build rule. - - * rtl.h (record_alias_subset): New function. - * alias.c: Include splay-tree.h. - (alias_set_entry): New type. - (CHECK_ALIAS_SETS_FOR_CONSISTENCY): Remove. - (DIFFERENT_ALIAS_SETS_P): Use mem_in_disjoint_alias_sets_p. - (mems_in_disjoin_alias_sets_p): New function. - (alias_set_compare): Likewise. - (insert_subset_children): Likewise. - (get_alias_set_entry): Likewise. - - * tree.h (TYPE_RESTRICT): New macro. - (TYPE_UNQUALIFIED): New manifest constant. - (TYPE_QUAL_CONST): Likewise. - (TYPE_QUAL_VOLATILE): Likewise. - (TYPE_QUAL_RESTRICT): Likewise. - (tree_type): Add restrict_flag. Reduce count of free bits. - (DECL_POINTER_ALIAS_SET): New macro. - (DECL_POINTER_ALIAS_SET_KNOWN_P): Likewise. - (tree_decl): Add pointer_alias_set. - (build_qualified_type): New function. - (build_type_variant): Define in terms of build_qualified_type. - * tree.c (set_type_quals): New function. - (make_node): Initialize DECL_POINTER_ALIAS_SET. - (build_type_attribute_variant): Use build_qualified_type and - set_type_quals. - (build_type_variant): Rename, and modify, to become... - (build_qualified_type): New function. - (build_complex_type): Use set_type_quals. - - * c-tree.h (C_TYPE_OBJECT_P): New macro. - (C_TYPE_FUNCTION_P): Likewise. - (C_TYPE_INCOMPLETE_P): Likewise. - (C_TYPE_OBJECT_OR_INCOMPLETE_P): Likewise. - (c_apply_type_quals_to_decl): New function. - (c_build_qualified_type): New function. - (c_build_type_variant): Define in terms of c_build_qualified_type. - (flag_isoc9x): Declare. - * c-typeck.c (qualify_type): Use c_build_qualified_type. - (common_type): Change to use TYPE_QUALS. - (comptypes): Likewise. - (convert_for_assignment): Likewise. - * c-aux-info.c (gen_type): Likewise. Deal with `restrict'. - * c-decl.c (flag_isoc9x): Define. - (c_decode_option): Handle -flang-isoc9x. - (grokdeclarator): Update to handle restrict. Use TYPE_QUALS, - c_build_qualified_type, etc. Use c_apply_type_quals_to_decl. - * c-lex.c (init_lex): Deal with restrict. - (init_lex): Don't treat restrict as a reserved word in - -traditional mode, or without -flang-isoc9x. - * c-lex.h (rid): Add RID_RESTRICT. - * c-parse.gperf (restrict, __restrict, __restrict__): Make - equivalent to RID_RESTRICT. - * c-parse.in (TYPE_QUAL): Update comment. - * c-common.c: Include rtl.h. - (c_find_base_decl): New function. - (c_build_type_variant): Rename, and modify, to become ... - (c_build_qualified_type): New function. - (c_apply_type_quals_to_decl): Likewise. - (c_get_alias_set): For INDIRECT_REFs, check to see if we can find - a particular alias set for the reference. - * toplev.c (documented_lang_options): Add -flang-isoc9x. - -Wed Oct 21 09:15:06 1998 Nick Clifton - - * config/arm/arm.h (TARGET_SWITCHES): Document arm specific - command line switches. - -Tue Oct 20 10:04:51 1998 Graham - - * reload.c (loc_mentioned_in_p): Add missing braces to bind - else to correct if. - -Mon Oct 19 16:34:05 1998 Tom Tromey - - * gcc.c (option_map): Added --classpath and --CLASSPATH. - -Tue Oct 20 10:59:02 1998 Gavin Romig-Koch - - * regclass.c (fix_register): Add error message. - * invoke.texi (-fcall-used-REG,-fcall-saved-REG): Note the - new error message. - -Tue Oct 20 10:12:17 1998 Kaveh R. Ghazi - - * c-decl.c (warn_missing_noreturn): New global variable. - (c_decode_option): Check for new flags -W{no-}missing-noreturn. - (finish_function): Implement missing noreturn warning. - - * c-tree.h (warn_missing_noreturn): Declare extern. - - * invoke.texi: Document new flags. - - * toplev.c (documented_lang_options): Add description. - -Tue Oct 20 22:16:11 1998 Michael Hayes - - * config/c4x/c4x.c (c4x_parallel_process): Disable until BCT - loop optimization stable for the C4x. - (c4x_rptb_info_t, c4x_dump, c4x_rptb_in_range, c4x_rptb_unjumped_loop, - c4x_rptb_find_comp_and_jump, c4x_rptb_loop_info_get, - c4x_rptb_emit_init, c4x_rptb_process): Deleted (superseded by BCT - loop optimization). - (c4x_address_conflict): Be more paranoid when packing a volatile - memref in a parallel load/store. - -Tue Oct 20 21:56:05 1998 Michael Hayes - - * config/c4x/c4x.md (repeat_block_top, repeat_block_end, - repeat_block_filler): Deleted. - (*ashlqi3_set, *ashrqi3_const_set, *ashrqi3_nonconst_clobber): - Condition code not set if destination register from 'c' class. - (*subbqi3_carry_clobber): Fix typo. - -1998-10-18 Herman A.J. ten Brugge - - * reorg.c (steal_delay_list_from_target): Check for insns that - modify the condition codes and effect the direction of the jump - in the sequence. - -Sat Oct 17 13:09:09 1998 Graham - - * function.c (purge_addressof_1): Replace call to - emit_insns_before() with emit_insn_before(). - -Mon Oct 19 19:34:03 1998 Mike Stump - - * libgcc2.c (__pure_virtual): Call __terminate instead of _exit. - -Mon Oct 19 13:26:24 1998 Bernd Schmidt - - * jump.c (sets_cc0_p): Compile only if HAVE_cc0. - -Mon Oct 19 11:40:56 1998 Jeffrey A Law (law@cygnus.com) - - * gcse.c (compute_hash_table): Correctly identify hard regs which are - clobbered across calls. - - * loop.c (scan_loop): Be more selective about what invariants are - moved out of a loop. - -Mon Oct 19 10:46:58 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Mon Oct 19 11:40:56 1998 Jeffrey A Law (law@cygnus.com) - - * libgcc2.c (eh_context_static): Do not call malloc to allocate the - static eh_context structure. - -Mon Oct 19 10:45:40 1998 Bernd Schmidt - - * combine.c (recog_for_combine): Lose PADDED_SCRATCHES arg. All - callers changed. - (try_combine): Don't update max_scratch. - * flow.c (max_scratch, num_scratch): Delete variables. - (life_analysis_1): Don't initialize max_scratch. - (propagate_block): Don't update max_scratch. - (mark_set_1): Don't increment num_scratch. - * regs.h (max_scratch): Delete declaration. - -Mon Oct 19 10:28:15 1998 Jeffrey A Law (law@cygnus.com) - - * reload1.c (reload_reg_free_before_p): Hack. Return 0 if EQUIV - is nonzero. This is temporary! - - * sched.c (update_flow_info): Handle death notes made invalid by - instruction splitting. Partially reverts Oct 15, 1998 patch. - * haifa-sched.c (update_flow_info): Likewise. - -Sun Oct 18 17:31:26 1998 Jeffrey A Law (law@cygnus.com) - - * function.c (uninitialized_vars_warning): Do not warn for a VAR_DECL - if it has a nonzero DECL_INITIAL. - -Sat Oct 17 23:18:08 1998 Kaveh R. Ghazi - - * Makefile.in (flow.o): Depend on recog.h. - - * cpplib.h (directive_table): Add missing initializiers. - (finclude): Change type of variable `bsize' to size_t. - - * cse.c (rtx_cost): Mark parameter `outer_code' with ATTRIBUTE_UNUSED. - - * dwarfout.h (dwarfout_label): Wrap prototype in macro RTX_CODE. - - * fix-header.c (lookup_std_proto): Cast the result of `strlen' to - `int' when comparing against one. - (cpp_file_line_for_message): Mark parameter `pfile' with - ATTRIBUTE_UNUSED. - (cpp_fatal): Mark parameter `pfile' with ATTRIBUTE_UNUSED. - - * flow.c: Include recog.h. - (sbitmap_copy): Cast arguments 1 & 2 of `bcopy' to (PTR). - - * function.c (thread_prologue_and_epilogue_insns): Mark parameter - `f' with ATTRIBUTE_UNUSED. - (reposition_prologue_and_epilogue_notes): Likewise. - - * genopinit.c (gen_insn): Cast argument of ctype functions to - `unsigned char'. - - * haifa-sched.c: Include recog.h. - (blockage_range): Cast result of UNIT_BLOCKED macro to (int) when - comparing against one. - - * libgcc2.a (__throw): Revert ATTRIBUTE_UNUSED change for now. - - * mips-tfile.c (parse_end): Cast the argument of ctype function to - `unsigned char'. - (parse_ent): Likewise. - (parse_input): Likewise. - - * optabs.c (init_libfuncs): Likewise. - - * protoize.c (find_rightmost_formals_list): Likewise. - - * recog.h (const_double_operand): Fix typo in prototype. - - * tlink.c (scan_linker_output): Cast the argument of ctype - function to `unsigned char'. - - * toplev.c (check_lang_option): Cast the result of `strlen' to - `int' when comparing against one. - -Sat Oct 17 13:09:09 1998 Graham - - * gcse.c (dump_cuid_table): Correct typo. - -Sat Oct 17 11:02:47 1998 Nick Clifton - - * toplev.c (display_help): Prepend '-m' to target specific - options. - (check_lang_option): Ignore text after end of first word of a - language specific option. - -Sat Oct 17 02:26:03 1998 Bernd Schmidt - - * reload1.c (reg_used_by_pseudo): New static variable. - (choose_reload_regs): Initialize it. - Use it instead of testing spill_reg_order to determine whether a - pseudo is live in a hard register across the current insn. - Fix a typo in a reference to reload_reg_rtx. - - * flow.c (propagate_block): Replace code that computes and uses - regs_sometimes_live with simpler code that just walks the set of - currently live registers. - - * Makefile.in (insn-extract.o): Fix dependencies. - * genextract.c (main): Generate includes for insn-config.h and - recog.h. - Delete generation of declarations which are now in recog.h. - * genrecog.c (main): Delete generation of definitions which are - now in recog.c. - * local-alloc.c (block_alloc): Use extract_insn and the variables - it sets up instead of looking up values by insn_code. - * recog.c (recog_operand, recog_operand_loc, recog_dup_loc, - recog_dup_num): Define here instead of generating the definition in - genrecog.c. - (recog_n_operands, recog_n_dups, recog_n_alternatives, - recog_operand_mode, recog_constraints, recog_operand_address_p): - New variables. - (extract_insn): New function. - * recog.h (extract_insn): Declare function. - (which_alternative, recog_n_operands, recog_n_dups, - recog_n_alternatives, recog_operand_mode, recog_constraints, - recog_operand_address_p): Declare variables. - * regclass.c (n_occurrences): New static function. - * reload.c (n_occurrences): Delete function. - (find_reloads): Use extract_insn. - * reload.h (n_occurrences): Delete declaration. - -Sat Oct 17 01:17:51 1998 Jeffrey A Law (law@cygnus.com) - - * reload1.c (reload_as_needed): Fix test for when to call - update_eliminable_offsets. - -Fri Oct 16 20:40:50 1998 J"orn Rennecke - - Fix consistency problems with reg_equiv_{mem,address}; - Improve reload inheritance; - - * reload.c (reload_out_reg): New variable. - (loc_mentioned_in_p, remove_address_replacements): New functions. - (remove_replacements): Deleted. - (push_reload): Set reload_out_reg[i]. - When merging, also set reload_{in,out}_reg[i], and remove - duplicate address reloads. - (combine_reloads): Copy reload_out_reg[i]. - (find_reloads): Do make_memloc substitution also when - reg_equiv_memory_loc[regno] and num_not_at_initial_offset - are both nonzero. - Include *recog_operand_loc in commutativity operand changes. - Generate optional output reloads. - Delete reference to n_memlocs. Don't set *recog_operand_loc before - processing operands. Call make_memloc in reg_equiv_address code. - Set *recog_operand_loc only after processing operands, and only - if replace is true. Return a value. - When changing address reload types for operands that didn't get - reloaded, use RELOAD_FOR_OPADDR_ADDRESS for - RELOAD_FOR_INPADDR_ADDRESS / RELOAD_FOR_OUTADDR_ADDRESS reloads. - Don't emit USEs for pseudo SUBREGs when not replacing. - (find_reloads_address): Do make_memloc substitution also when - reg_equiv_memory_loc[regno] and num_not_at_initial_offset - are both nonzero. - (find_reloads_toplev): Likewise. - Call make_memloc in reg_equiv_address code. - (debug_reload_to_stream): Add code to output reload_out_reg. - (make_memloc): Delete local variable i, ifdefed out code, and - references to memlocs and n_memlocs. - (memlocs, n_memlocs): Delete. - (push_secondary_reload): Clear reload_out_reg. - (find_reloads_address_1): Provide memrefloc argument to all calls - to find_reloads_address. - In AUTO_INC code, handle non-directly addressable equivalences properly. - * reload.h (reload_out_reg, num_not_at_initial_offset): Declare. - (find_reloads): Add return type. - (remove_address_replacements, deallocate_reload_reg): Declare. - * reload1.c (num_not_at_initial_offset): No longer static. - (delete_address_reloads, delete_address_reloads_1): Likewise. - (deallocate_reload_reg): New function. - (spill_reg_stored_to): New array. - (eliminate_regs): Don't substitute from reg_equiv_memory_loc. - (eliminate_regs_in_insn): Move assignments of previous_offset and - max_offset fields, and recalculation of num_not_at_initial_offset - into new static function: - (update_eliminable_offsets) . - (reload_as_needed): Call update_eliminable_offsets after calling - find_reloads. - Call forget_old_reloads_1 with contents of reloaded auto_inc - expressions if the actual addressing can't be changed to match the - auto_inc. - (choose_reload_regs): For inheritance, replace - reload_reg_free_before_p test with reload_reg_used_at_all test, and - remove stand-alone reload_reg_used_at_all test. - Use reload_out_reg to determine which reload regs have output reloads. - Treat reload_override_in more similar to inherited reloads. - Handle (subreg (reg... for inheritance. - For flag_expensive_optimizations, add an extra pass to remove - unnecessary reloads from known working inheritance. - Delete obsolete code for pseudos replaced with MEMs. - Handle inheritance from auto_inc expressions. - (emit_reload_insns): If reload_in is a MEM, set OLD to - reload_in_reg[j]. - Don't reload directly from oldequiv; if it's a pseudo with a - stack slot, use reload_in[j]. - Check that reload_in_reg[j] is a MEM before replacing reload_in - from reg_reloaded_contents. - Include non-spill registers in reload inheritance processing. - Also try to use reload_out_reg to set spill_reg_store / - reg_last_reload_reg. - In code to set new_spill_reg_store, use single_set to find out if - there is a single set. - Add code that allows to delete optional output reloads. - Add code to allow deletion of output reloads that use no spill reg. - At the end, set reload_override_in to oldequiv. - Also call delete_output_reload if reload_out_reg is equal to old - in oldequiv code. - Add code to call delete_output_reload for stores with no matching load. - Set / use spill_reg_stored_to. - Handle case where secondary output reload uses a temporary, but - actual store isn't found. - When looking for a store of a value not loaded in order to call - delete_output_reload, count_occurrences should return 0 for no - loads; but discount inherited input reloadill_reg_stored_to. - Do checks for extra uses of REG. Changed all - callers. - Use delete_address_reloads. - (reload): Take return value of find_reloads into account. - If a no-op set needs more than one reload, delete it. - (reload_reg_free_before_p): RELOAD_FOR_INPUT - can ignore RELOAD_FOR_INPUT_ADDRESS / RELOAD_FOR_INPADDR_ADDRESS - for the same operand. - (clear_reload_reg_in_use): Check for other reloads that keep a - register in use. - (reload_reg_free_for_value_p): Handle RELOAD_FOR_OPERAND_ADDRESS / - RELOAD_FOR_OPADDR_ADDR. - Take into account when an address address reload is only needed - for the address reload we are considering. - (count_occurrences): Use rtx_equal_p for MEMs. - (inc_for_reload): Return instruction that stores into RELOADREG. - New argument two, IN, and rtx. Changed all callers. - (calculate_needs_all_insns, reload_as_needed): - Don't clear after_call for a CLOBBER. - Keep track of how many hard registers need to be copied from - after_call, and don't clear after_call before we have seen - that much copies, or we see a different instruction. - -Fri Oct 16 10:58:23 1998 Jeffrey A Law (law@cygnus.com) - - * flow.c (find_basic_blocks_1): Do not delete unreachable blocks - after reload has completed. - -Fri Oct 16 17:26:10 1998 Dave Brolley - - * cpplib.c (cpp_get_token): Replace whitespace that occurs between - a macro name and the next token with a single blank if that whitespace - is in a macro buffer and the next token is not '('. - -Fri Oct 16 15:44:02 1998 Dave Brolley - - * cccp.c (rescan): Handle multibyte characters ending in backslash. - (rescan): Likewise. - (skip_if_group): Likewise. - (skip_to_end_of_comment): Likewise. - (macarg1): Likewise. - (discard_comments): Likewise. - (change_newlines): Likewise. - -Fri Oct 16 15:26:24 1998 Dave Brolley - - * c-lex.c (yylex): Fix unaligned access of wchar_t. - -Fri Oct 16 10:47:53 1998 Nick Clifton - - * config/arm/arm.h (TARGET_SWITCHES): Add --help documentation. - (TARGET_OPTIONS): Add --help documentation. - -Fri Oct 16 11:49:01 1998 Kaveh R. Ghazi - - * rtl.h (sets_cc0_p): Revert Oct 14 ATTRIBUTE_NORETURN change. - -Fri Oct 16 07:08:46 1998 Bruce Korb - - * fixinc/* Moved in from ../contrib directory in preparation - for integrating it into the normal build process. In particular, - fixinc/Makefile.in must be config-ed into the build directory - as fixinc/Makefile. Proposed patches to ./Makefile.in and - ./configure.in will be "in the mail" momentarily. - -Fri Oct 16 08:13:46 1998 David S. Miller - - * cse.c (cse_basic_block): Fixup hash flushing loop so we do not - accidently walk into the free list. Comment how that can happen. - (invalidate): Fix indentation. - -Thu Oct 15 23:53:29 1998 Bernd Schmidt - Jeffrey A Law (law@cygnus.com) - - * flow.c (life_analysis_1): Do not clobber regs_ever_live after - reload. Never perform rescans of the insn chain after reload. - (propagate_block): Do not delete insn or create new autoinc addressing - modes after reload. - - * jump.c (jump_optimize): Unconditionally use the code that was - previously conditional on PRESERVE_DEATH_INFO_REGNO_P. - * reload1.c (reload): When reloading is finished, delete all - REG_DEAD and REG_UNUSED notes. - (emit_reload_insns): Delete all code that was conditional on - PRESERVE_DEATH_INFO_REGNO_P. - (no_longer_dead_regs): Delete variable. - (reload_cse_delete_death_notes): Delete function. - (reload_cse_no_longer_dead): Delete function. - (reload_cse_regs_1): Delete all code to handle deletion of death - notes. - (reload_cse_noop_set_p): Likewise. - (reload_cse_simplify_set): Likewise. - (reload_cse_simplify_operands): Likewise. - (reload_cse_move2add): Likewise. - * reorg.c (used_spill_regs): Delete declaration. - (max_label_num_after_reload): Delete declaration. - (find_dead_or_set_registers): Don't assume that spill regs are - dead at a CODE_LABEL. - * rtlanal.c (dead_or_set_regno_p): Death notes are always accurate, - even after reload. - * sched.c (sched_analyze_insn): Likewise. - (update_flow_info): Likewise. - * haifa-sched.c (sched_analyze_insn): Likewise. - (update_flow_info): Likewise. - * tm.texi (PRESERVE_DEATH_INFO_REGNO_P): Delete documentation. - * toplev.c (max_label_num_after_reload): Delete variable. - (rest_of_compilation): Don't set max_label_num_after_reload. - Call life_analysis after reload_cse_regs if optimizing. - * config/gmicro/gmicro.h: Delete comment referring to - PRESERVE_DEATH_INFO_REGNO_P. - * config/i386/i386.h: Likewise. - * config/m88k/m88k.h: Likewise. - * config/m32r/m32r.h (PRESERVE_DEATH_INFO_REGNO_P): Delete definition. - * config/sh/sh.h: Likewise. - -Thu Oct 15 19:48:41 1998 David Edelsohn - - * loop.c (strength_reduce): Restore marking bct_p as - ATTRIBUTE_UNUSED. - * rs6000.c (optimization_options): Change #ifdef HAIFA to - HAVE_decrement_and_branch_on_count. - (small_data_operand): Remove TARGET_ELF condition for marking - parameters ATTRIBUTE_UNUSED. - -Thu Oct 15 11:45:51 1998 Robert Lipe - - * config/i386/sco5.h (MAX_OFILE_ALIGNMENT): Define. - (SELECT_SECTION): Resync with svr4.h. - -Thu Oct 15 12:42:13 1998 David Edelsohn - - * loop.c (strength_reduce): Undo Oct 14 change marking bct_p - ATTRIBUTE_UNUSED. - -Thu Oct 15 00:57:55 1998 Robert Lipe - - * c-pragma.c (handle_pragma_token): Test for null tree before - dereferencing TREE_CODE. - -Thu Oct 15 17:36:48 1998 Michael Hayes - - * config/c4x/c4x.c: Convert to use GEN_INT. - (c4x_parallel_process): Rework to handle new repeat loop structure. - - * config/c4x/c4x.md: Convert to use GEN_INT. - (rptb_end): Convert to use GE test. Replace uses with clobbers. - (decrement_and_branch_on_count): Likewise. - - * config/c4x/c4x.h (REPEAT_BLOCK_PROCESS): Deleted hook now that - loop.c has the desired functionality. - (rc_reg_operand): New prototype. - - * config/c4x/t-c4x: Can now build all front ends. - -Wed Oct 14 23:27:08 1998 Didier FORT (didier.fort@fedex.com) - - * fixincludes: Fix up rpc/{clnt,svr,xdr}.h for SunOS. - -Wed Oct 14 22:13:28 1998 Joel Sherrill (joel@OARcorp.com) - - * Makefile.in (stmp-fixinc): Do not install assert.h if not desired. - * config/t-rtems: Do not install assert.h -- use newlib's. - -Wed Oct 14 21:57:08 1998 J"orn Rennecke - - * combine.c (combine_instructions): When finished, call init_recog. - * regmove.c (optimize_reg_copy_3): Reject volatile MEMs. - -Wed Oct 14 16:10:22 1998 Per Bothner - - * toplev.c: If flag_syntax_only, don't open or write assembler file. - -Wed Oct 14 13:26:05 1998 Kaveh R. Ghazi - - * cppalloc.c (memory_full): Mark function prototype with - ATTRIBUTE_NORETURN. - - * demangle.h (collect_exit): Likewise. - - * fix-header.c (v_fatal, fatal): Likewise. - - * gcc.c (pfatal_with_name, pfatal_pexecute, fatal, fancy_abort): - Likewise. - - * gcov.c (print_usage): Likewise. - - * genattr.c (fatal, fancy_abort): Likewise. - - * genattrtab.c (fatal, fancy_abort): Likewise. - - * gencodes.c (fatal, fancy_abort): Likewise. - - * genconfig.c (fatal, fancy_abort): Likewise. - - * genemit.c (fatal, fancy_abort): Likewise. - - * genextract.c (fatal, fancy_abort): Likewise. - - * genflags.c (fatal, fancy_abort): Likewise. - - * genopinit.c (fatal, fancy_abort): Likewise. - - * genoutput.c (fatal, fancy_abort): Likewise. - - * genpeep.c (fatal, fancy_abort): Likewise. - - * genrecog.c (fatal, fancy_abort): Likewise. - - * libgcc2.c (__eprintf, __default_terminate, __sjthrow, - __sjpopnthrow, __throw): Likewise. - - * objc/objc-act.c (objc_fatal): Likewise. - - * protoize.c (usage, aux_info_corrupted, - declare_source_confusing): Likewise. - - * rtl.c (dump_and_abort): Likewise. - - * rtl.h (sets_cc0_p): Likewise. - - * toplev.c (float_signal, pipe_closed): Likewise. - -1998-10-14 Andreas Schwab - - * dwarf2out.c (expand_builtin_dwarf_reg_size): Look at all ranges - when generating the decision tree for the general case. - - * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Don't accept modes - wider that 12 bytes in fpu regs or wider than 8 byte in fpa regs. - -Wed Oct 14 11:14:02 1998 Kaveh R. Ghazi - - * Makefile.in (sched.o): Depend on recog.h. - - * alias.c (REG_BASE_VALUE): Cast the result of REGNO() macro to - (unsigned) when comparing against one. - (find_base_value): Likewise. - (record_base_value): Cast variable `regno' to (unsigned) when - comparing against one. Cast the result of REGNO() macro to - (unsigned) when comparing against one. - (memrefs_conflict_p): Change type of variables `r_x' and `r_y' to - unsigned. - (init_alias_analysis): Add unsigned variable `ui'. Use it as loop - variable where an unsigned index is needed. - - * caller-save.c (init_caller_save): Cast `-1' to (enum insn_code) - before comparing against one. - - * collect2.c: Add prototypes for functions `error', `fatal' and - `fatal_perror'. Make these functions take variable arguments - instead of faking it with a fixed number of args. - (write_c_file_stat): Cast the argument of ctype macro to (unsigned - char). - - * combine.c (can_combine_p): Mark parameter `pred' with - ATTRIBUTE_UNUSED. - (find_split_point): Cast variable `src' to (unsigned - HOST_WIDE_INT) when comparing against one. - (simplify_rtx): Cast 1 to (unsigned HOST_WIDE_INT) in shift. - (simplify_logical): Likewise. - (force_to_mode): Cast result of INTVAL() macro to (unsigned - HOST_WIDE_INT) when comparing against one. Cast 1 to (unsigned - HOST_WIDE_INT) in shift. - (simplify_and_const_int): Cast result of INTVAL() macro to - `unsigned HOST_WIDE_INT' when comparing against one. - (merge_outer_ops): Cast variable const0 to `unsigned - HOST_WIDE_INT' when comparing against the result of - GET_MODE_MASK() macro. - (simplify_comparison): Likewise for variable `c0'. Cast variable - `const_op' to `unsigned HOST_WIDE_INT' when comparing against - one. Cast `1' to `unsigned HOST_WIDE_INT' in shift. Cast the - result of `GET_MODE_MASK()/2' to `HOST_WIDE_INT' when comparing - against one. Cast `1' to `unsigned HOST_WIDE_INT' in shift. Cast - result of INTVAL() macro to `unsigned HOST_WIDE_INT' when - comparing against one. - (distribute_notes): Wrap variable `cc0_setter' in macro `HAVE_cc0'. - - config/mips/mips.c (gen_int_relational): Cast result of INTVAL() - macro to `unsigned HOST_WIDE_INT' when comparing against one. - (output_block_move): Cast `sizeof' expression to (int) when - comparing against one. - (function_arg): Cast BITS_PER_WORD to `unsigned' when comparing - against one. - (save_restore_insns): Cast `base_offset' to `long' to match format - specifier in fprintf. - - * config/mips/mips.h (Pmode): Cast the result of `Pmode' macro - to `enum machine_mode'. - - * flow.c (life_analysis_1): Remove unused variable `insn'. - - * gcc.c (translate_options): Move variables `j' and `k' into the - scope in which they are used. Change their types to `size_t'. - (set_spec): Cast the argument of ctype macro to `unsigned char'. - (read_specs): Likewise. - (process_command): Cast `sizeof' to (int) when comparing against one. - (do_spec_1): Cast the argument of ctype macro to `unsigned char'. - (handle_braces): Cast both sides of `==' expression to `long' to - ensure sign matching. - (main): Cast variable `i' to `int' when comparing against one. - - * gcov-io.h (__fetch_long): Change type of parameter `bytes' from - int to size_t. Cast variable `i' to size_t when comparing against - one. - - * genattrtab.c (convert_set_attr_alternative): Remove unused - parameter `insn_code'. All callers changed. - (convert_set_attr): Likewise. - - * genrecog.c (add_to_sequence): Cast result of XVECLEN() macro to - size_t when comparing against one. Likewise for variable `len'. - - * global.c (global_alloc): Cast variable `max_regno' to size_t - when comparing against one. Likewise for variable `max_allocno'. - - * jump.c (sets_cc0_p): Mark parameter `x' with ATTRIBUTE_UNUSED. - - * local-alloc.c (validate_equiv_mem_from_store): Mark parameter - `set' with ATTRIBUTE_UNUSED. - (find_free_reg): Cast `sizeof' expression to (int) when comparing - against one. - - * loop.c (count_loop_regs_set): Remove unused variable `dest'. - (strength_reduce): Mark parameter `bct_p' with ATTRIBUTE_UNUSED. - (get_condition): Cast variable `const_val' to `unsigned - HOST_WIDE_INT' when comparing against one. Cast unsigned - expression to HOST_WIDE_INT when comparing against one. - (insert_loop_mem): Mark parameter `data' with ATTRIBUTE_UNUSED. - (load_mems_and_recount_loop_regs_set): Cast variable `nregs' to - `unsigned' when comparing against one. - - * protoize.c (is_id_char): Change type of parameter `ch' to - unsigned char. - (munge_compile_params): Cast argument of ctype macro to (const - unsigned char). - (process_aux_info_file): Cast variable `aux_info_size' to int when - comparing against one. - (forward_to_next_token_char): Cast argument of ctype macro to - `const unsigned char'. - (edit_formals_lists): Likewise. - (find_rightmost_formals_list): Likewise. - (add_local_decl): Likewise. - (add_global_decls): Likewise. - (edit_fn_definition): Likewise. - (do_cleaning): Likewise. - (scan_for_missed_items): Likewise. - (edit_file): Cast variable `orig_size' to (int) when comparing - against one. - (main): Cast argument of ctype macro to `const unsigned char'. - - * recog.c (const_int_operand): Mark parameter `mode' with - ATTRIBUTE_UNUSED. - - * regclass.c (record_reg_classes): Change type of variable `c' to - `unsigned char'. Cast `char' array index to `unsigned char'. - - * reload.c (push_secondary_reload): Cast argument to - REG_CLASS_FROM_LETTER() macro to `unsigned char'. - - * reload1.c (calculate_needs): Cast `char' array index to - `unsigned char'. - (set_label_offsets): Change type of variable `i' to unsigned int. - Cast result of XVECLEN() macro to unsigned when comparing against - one. - (mark_not_eliminable): Change type of variable `i' to unsigned. - (order_regs_for_reload): Likewise. Cast `max_regno' to unsigned - when comparing against one. - (reload_as_needed): Cast macro NUM_ELIMINABLE_REGS to (int) when - comparing against one. - (choose_reload_regs): Hide unused label `fail'. - (reload_cse_simplify_operands): Cast `char' array index to - `unsigned char'. - (reload_combine_note_store): Mark parameter `set' with - ATTRIBUTE_UNUSED. Cast UNITS_PER_WORD to unsigned when comparing - against one. - (reload_cse_move2add): Remove unused variable `src2'. - - * sched.c: Include recog.h. - (sched_note_set): Remove unused parameter `b'. All callers - changed. - (split_hard_reg_notes): Likewise for parameter `orig_insn'. - (blockage_range): Cast result of UNIT_BLOCKED() macro to (int) - when comparing against one. - - * stupid.c (stupid_find_reg): Mark parameter `changes_size' with - ATTRIBUTE_UNUSED. Cast `sizeof' expression to (int) when - comparing against one. - - * unroll.c (precondition_loop_p): Remove unused parameter - `loop_end'. All callers changed. - -Tue Oct 13 22:12:11 1998 Bernd Schmidt - - * reload1.c (maybe_fix_stack_asms): New static function. - (reload): Call it. - - * reload.h (compute_use_by_pseudos): Declare. - - * reload1.c (spilled_pseudos, insns_need_reload): New variables. - (something_needs_reloads): Delete variable. - (finish_spills): New function. - (compute_use_by_pseudos): New function. - - (delete_caller_save_insns): Lose argument FIRST. All callers changed. - Use the reload_insn_chain instead of walking the rtl directly. - - (reload): Allocate and free spilled_pseudos. - Ensure that all calls of spill_hard_reg are followed by a call to - finish_spills. - Use the insns_need_reload list instead of something_needs_reloads - to find out if reload_as_needed must be called. - Clear unused_insn_chains at the end. - - (calculate_needs_all_insns): Lose FIRST parameter. All callers - changed. - Delete code to keep track of current basic block. - Walk reload_insn_chain instead of the rtl structure. Build the - insns_need_reload chain. - Remember which insns need reloading/elimination by setting the - appropriate fields in struct insn_chain, not by putting modes on the - insn. - - (calculate_needs): Lose THIS_BLOCK arg. Accept arg CHAIN instead of - arg INSN. All callers changed. - Delete declaration of struct needs. - Don't set something_needs_reloads. - Record insn needs in the CHAIN argument. - - (spill_hard_reg): Record the affected pseudos in spilled_pseudos. - - (reload_as_needed): Lose FIRST arg. All callers changed. - Walk the reload_insn_chain instead of the rtx structure. - Delete code to keep track of current basic block. - Rename one of the NEXT variables to OLD_NEXT. - - (allocate_reload_reg): Accept arg CHAIN instead of arg INSN. All - callers changed. - (choose_reload_regs): Likewise. - - (emit_reload_insns): Replace INSN and BB args with arg CHAIN. All - callers changed. - - * caller-save.c (MOVE_MAX_WORDS): New macro. Use it throughout - instead of (MOVE_MAX / UNITS_PER_WORD) computation. - (hard_regs_live, hard_regs_need_restore): Delete variables. - (n_regs_saved): Now static. - (referenced_regs, this_insn_sets): New variables. - - (setup_save_areas): Restructure the code a bit. - - (restore_referenced_regs): Delete function. - (mark_referenced_regs): New function, similar to the old - restore_referenced_regs, but mark registers in referenced_regs. - - (clear_reg_live): Delete function. - (mark_set_regs): Renamed from set_reg_live. All callers changed. - Only mark registers in this_insn_sets. - - (save_call_clobbered_regs): Rework this function to walk the - reload_insn_chain instead of using the list of instructions directly. - Delete code to keep track of register lives, compute live regs on the - fly from information in the chain. - Instead of calling restore_referenced_regs, use mark_referenced_regs, - then walk the set it computes and call insert_restore as appropriate. - - (insert_restore): Lose INSN and BLOCK args. Add CHAIN arg. All - callers changed. - Restructure the code a bit. Test hard_regs_saved instead of - hard_regs_need_restore. - (insert_save): Lose INSN and BLOCK args. Add CHAIN and TO_SAVE - args. All callers changed. - Restructure the code a bit. Use TO_SAVE to determine which regs to - save instead of more complicated test. - (insert_one_arg): Lose INSN and BLOCK args. Add CHAIN arg. All - callers changed. - Create a new insn_chain structure for the new insn and place it - into the chain. - - * rtl.texi: Update documentation to reflect that reload no longer - puts modes on the insns. - -1998-10-14 Andreas Schwab - - * function.c (purge_addressof_1): Force the first argument of a - CALL insn to memory. - -Wed Oct 14 00:38:40 1998 Jeffrey A Law (law@cygnus.com) - - * rtl.h: Delete duplicate prototypes. Add some missing - prototypes. - * rtlanal.c (for_each_rtx): Formatting tweak. - -1998-10-13 Herman A.J. ten Brugge - - * real.c (emdnorm and etoasc): Disable round to even for c4x target - to be compatible with TI compiler. - - * Makefile.in (USER_H): Add va-c4x.h to definition. - -Tue Oct 13 23:03:37 1998 Richard Henderson - - * function.c (purge_addressof_1): Fix typo in inequality: do - bitfield optimization for equal mode sizes. - * expmed.c (store_bit_field): Don't take subregs of subregs in - the movstrict case. Tidy a potential problem in the multi-word case. - (extract_bit_field): Likewise. - -Tue Oct 13 22:12:11 1998 Bernd Schmidt - - * flow.c (find_basic_blocks): Emit NOPs after normal calls in this - function. - Compute max_uid_for_flow by calling get_max_uid after the scan. - (find_basic_blocks_1): Don't emit NOPs here. - -Tue Oct 13 22:05:49 1998 Richard Henderson - - * alias.c (base_alias_check): Accept new args for the modes of the - two references. Use them to determine if an AND can overlap. Update - all callers. - (memrefs_conflict_p): Assume sizes are aligned, and uses them - to determine if an AND can overlap. - -Tue Oct 13 17:51:04 1998 Jim Wilson - - * config/m68k/m68k.h (HARD_REGNO_MODE_OK): For FP regs, add REGNO >= 16 - check. Add comment to document problems with TARGET_SUN_FPA version - of this macro. - * config/m68k/m68k.md (movxf+1): Support 'r'/'r' moves. - -Tue Oct 13 17:46:18 1998 Kaveh R. Ghazi - - * Makefile.in (gencheck.o): Depend on gansidecl.h. - - * c-common.c (print_char_table): Add missing initializers. - (scan_char_table): Likewise. - (time_char_table): Likewise. - - * c-decl.c (c_decode_option): Mark parameter `argc' with - ATTRIBUTE_UNUSED. - (declare_parm_level): Mark parameter `definition_flag' with - ATTRIBUTE_UNUSED. - - * c-lex.c (readescape): Use `(unsigned)1' in shift. - (yylex): Likewise. Cast `sizeof' to an (int) when comparing - against one. - - * calls.c (store_one_arg): Remove unused parameter `fndecl'. All - callers changed. - (emit_call_1): Mark parameters `fndecl' and `funtype' with - ATTRIBUTE_UNUSED. - (expand_call): Cast result of MIN() to (unsigned int) when - comparing against an unsigned value. - - * cccp.c (pcfinclude): Remove unused parameter `limit'. All - callers changed. - (make_definition): Remove unused parameter `op'. All callers - changed. - (create_definition): Cast REST_EXTENSION_LENGTH to (long) when - comparing against the result of pointer arithmetic. - - * config/mips/mips.h (FUNCTION_ARG_BOUNDARY): Cast to (unsigned) - when comparing against one. - - * dwarf2out.c (dwarf2out_frame_debug): Cast REGNO() and - HARD_FRAME_POINTER_REGNUM to (unsigned) when comparing against - one. - (output_die): Move variable `i' into the scope in which it is - used. Change its type to `unsigned'. - (output_die): Cast the result of `strlen' to (int) when passing it - to ASM_OUTPUT_ASCII(). - (output_pubnames): Likewise. - (output_line_info): Likewise. - - * emit-rtl.c (global_rtl): Add missing initializers. - - * explow.c (promote_mode): Mark parameter `for_call' with - ATTRIBUTE_UNUSED. - - * expmed.c (expand_shift): Cast the result of GET_MODE_BITSIZE to - `unsigned HOST_WIDE_INT' when comparing against one. - (synth_mult): Change type of variable `cost' to int. - (emit_store_flag): Use `(unsigned HOST_WIDE_INT) 1' in shift. - - * expr.c (copy_blkmode_from_reg): Cast BITS_PER_WORD to (unsigned) - when comparing against one. - (get_inner_reference): Change variable `alignment' to unsigned. - (expand_expr): Cast the result of GET_MODE_ALIGNMENT to (unsigned - int) when comparing against one. - (expand_builtin_setjmp): Change type of variable `i' to size_t. - - * fold-const.c (div_and_round_double): Cast BASE to - (HOST_WIDE_INT) when comparing against one. - - * gencheck.c: Include gansidecl.h. - (main): Mark parameter `argv' with ATTRIBUTE_UNUSED. - - * optabs.c (gen_cond_trap): Mark parameters `code', `op2' and - `tcode' with ATTRIBUTE_UNUSED. - - * real.c (edivm): Cast constant value to (unsigned long) in - expression compared against an unsigned value. - - * stmt.c (expand_return): Cast BITS_PER_WORD to (unsigned) when - comparing against one. - (expand_end_case): Cast CASE_VALUES_THRESHOLD to (unsigned int) - when comparing against one. - - * stor-layout.c (mode_for_size): Cast MAX_FIXED_MODE_SIZE to - (unsigned int) when comparing against one. Likewise for - GET_MODE_BITSIZE. - (smallest_mode_for_size): Likewise. - (save_storage_status): Mark parameter `p' with ATTRIBUTE_UNUSED. - (restore_storage_status): Likewise. - - * toplev.c (debug_args): Add missing initializer. - (f_options): Spelling correction. Add missing initializers. - (documented_lang_options): Likewise. - (debug_end_source_file): Mark parameter `lineno' with - ATTRIBUTE_UNUSED. - - * tree.c (valid_machine_attribute): Mark parameters `attr_args', - `decl' and `type' with ATTRIBUTE_UNUSED. - - * varasm.c (decode_reg_name): Cast `sizeof' expression to (int) - when comparing against one. - (assemble_variable): Mark parameter `top_level' with - ATTRIBUTE_UNUSED. - (assemble_external_libcall): Mark parameter `fun' with - ATTRIBUTE_UNUSED. - (output_constant_pool): Mark parameters `fnname' and `fndecl' with - ATTRIBUTE_UNUSED. - -Tue Oct 13 12:51:04 1998 Nick Clifton - - * config/v850/lib1funcs.asm (_udivsi3): Add .type declaration. - Replace use of r5 with use of r19. - - * config/v850/v850.h (LINK_POINTER_REGNUM): Define. - - * config/v850/v850.c (compute_register_save_size): Allow for the - fact that helper functions save all registers, not just those used - by the function. - - Replace constant 31 with macro LINK_POINTER_REGNUM. - - * config/v850/v850.md: Use 'indirect_operand' rather than - 'memory_operand' for bit test/set/clear patterns. - -Tue Oct 13 11:49:14 1998 Jason Merrill - - * mips/iris6.h (ASM_OUTPUT_WEAK_ALIAS): Call ASM_GLOBALIZE_LABEL. - * varasm.c (assemble_start_function et al): Don't call - ASM_GLOBALIZE_LABEL for weak symbols. - -Tue Oct 13 11:37:45 1998 Nick Clifton - - * cse.c (equiv_constant): Check for NULL return from - gen_lowpart_if_possible(). - -Tue Oct 13 11:24:51 1998 Jeffrey A Law (law@cygnus.com) - - * mn10200.md (addsi3, subsi3, negsi2): Only allow register operands. - - * collect2.c (main): Pass -EL/-EB through to the compiler. - -1998-10-12 Herman A.J. ten Brugge - - * expr.c (push_block): Handle targets where the stack grows - to higher addresses, but args grow to lower addresses and - ACCUMULATE_OUTGOING_ARGS is not defined. - -Tue Oct 13 08:00:52 1998 Catherine Moore - - * config/v850/v850.c (print_operand): Extend meaning - of 'c' operands to support .vtinherit. - -Tue Oct 13 21:38:35 1998 Michael Hayes - - * config/c4x/c4x.c: Convert to gen_rtx_FOO. - Added ATTRIBUTE_UNUSED to unused function arguments. - (rc_reg_operand): New predicate. - (c4x_rptb_insert): New function. - (c4x_rptb_nop_p): Recognize modified rptb_top pattern. - (c4x_optimization_options): New function. - - * config/c4x/c4x.md: Convert to gen_rtx_FOO. - (decrement_and_branch_on_count): New pattern. - (rptb_top): Modified pattern to work with BCT optimization. - - * config/c4x/c4x.h (RC_REG): New register class. - (rc_reg_operand): Define prototype. - (IS_RC_REG): New macro. - (IS_RC_OR_PSEUDO_REG): New macro. - (IS_RC_OR_PSEUDO_REGNO): New macro. - (OPTIMIZATION_OPTIONS): Define. - -Mon Oct 12 19:57:34 1998 Jason Merrill - - * collect2.c (extract_init_priority): No priority is 65535. - -Mon Oct 12 12:10:37 1998 Alexandre Oliva - - * Makefile.in (build_tooldir): New variable, same as old - $(tooldir), but without depending on $(libdir)/$(unlibsubdir). - (GCC_FOR_TARGET): Add -B$(build_tooldir)/bin/. - (bootstrap, bootstrap2, bootstrap3, bootstrap4): Likewise. - - * configure.in (gxx_include_dir): Set default based on unlibsubdir. - * Makefile.in (tooldir): Likewise. - (cccp.o, cpplib.o): Use unlibsubdir implicitly through - gxx_include_dir, includedir and tooldir. - (protoize.o, unprotoize.o): Likewise. - -Mon Oct 12 10:50:44 1998 Nick Clifton - - * config/arm/arm.md: Replace (reg 24) with (reg:CC 24). - - * config/arm/thumb.c (thumb_override_options): Add warning about - PIC code not being supported just yet. - -Sun Oct 11 16:49:15 1998 John Wehle (john@feith.com) - - * flow.c: Update comment. - (notice_stack_pointer_modification): New static function. - (record_volatile_insns): Use it. - (mark_regs_live_at_end): Mark the stack pointer as alive - at the end of the function if current_function_sp_is_unchanging - is set. - (life_analysis_1): Set current_function_sp_is_unchanging. - * function.c: Define it. - (init_function_start): Initialize it. - * output.h: Declare it. - * reorg.c (fill_simple_delay_slots, dbr_schedule): Mark - the stack pointer as alive at the end of the function if - current_function_sp_is_unchanging is set. - * i386.c (ix86_epilogue): Optimize the restoring - of the stack pointer. - -Mon Oct 12 01:22:53 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sun Oct 11 23:04:30 1998 Robert Lipe - - * c-pragma.c (handle_pragma_token): If passed a token instead - of a tree, use that as the pack value. - -Sun Oct 11 14:21:14 1998 Mark Mitchell - - * flow.c (find_basic_blocks_1): Fix prototype. - -Sun Oct 11 05:03:41 1998 Ken Raeburn - - * tree.h (DECL_NO_CHECK_MEMORY_USAGE): New macros. - (struct tree_decl): New fields no_check_memory_usage. - * c-common.c (enum attrs): Add A_NO_CHECK_MEMORY_USAGE. - (init_attributes): Register it as a new attribute. - (decl_attributes): Set flags on functions given that attribute. - * c-decl.c (duplicate_decls): Merge new attribute. - * expr.h (current_function_check_memory_usage): Declare new var. - * calls.c, expr.c, function.c, stmt.c, alpha.c, clipper.c, m88k.c, - pa.c, sparc.c: Replace uses of flag_check_memory_usage with - current_function_check_memory_usage. - * function.h: Add field to struct function. - * function.c (current_function_check_memory_usage): Define it. - (push_function_context_to, pop_function_context_from): Save and - restore it. - (expand_function_start): Set it, based on global flag and function - attribute. - - * expr.c (expand_expr, case VAR_DECL): In memory-checking code, do - check non-automatic variables, to permit detection of writes to - read-only locations in embedded systems without memory management. - * calls.c (store_one_arg): Use ARGS_SIZE_RTX to get size of argument - when emitting chkr_set_right_libfunc call, even if the argument is - BLKmode or variable-sized; don't abort. - - * optabs.c (init_optabs): Create Checker and __cyg_profile_* - symbols in Pmode, not VOIDmode. - -Sun Oct 11 01:03:05 1998 Zack Weinberg - - * cppexp.c: When forcing unsigned comparisons, cast both sides - of the operation. - - * cpphash.h: Move static declaration of hashtab[]... - * cpphash.c: ...here. - - * cpplib.c: Cast difference of two pointers to size_t before - comparing it to size_t. Cast signed to unsigned - before comparing to size_t. (FIXME: struct argdata should use - unsigned buffer sizes.) - * cpplib.h (struct cpp_reader): Declare token_buffer_size as - unsigned int. (CPP_WRITTEN): Cast return value to size_t. - (CPP_RESERVE): Parenthesize N for evaluation order, cast to - size_t before comparison. - -Sun Oct 11 00:15:29 1998 Jeffrey A Law (law@cygnus.com) - - * flow.c (find_basic_blocks): Delete "live_reachable_p" argument. - (find_basic_blocks_1): Similarly. - * output.h (find_basic_blocks): Fix prototype. - * gcse.c, toplev.c: Don't pass "live_reachable_p" argument to - find_basic_blocks anymore. - -Sat Oct 10 22:00:34 1998 Richard Henderson - - * basic-block.h (EXECUTE_IF_SET_IN_SBITMAP): New macro. - (sbitmap_free, sbitmap_vector_free): New macros. - * output.h (rtl_dump_file): Declare. - -Sat Oct 10 17:01:42 1998 Jeffrey A Law (law@cygnus.com) - - * regmove.c (optimize_reg_copy_3): Honor TRULY_NOOP_TRUNCATION. - -Fri Oct 9 22:08:05 1998 Kaveh R. Ghazi - - * fp-bit.c (SFtype): Don't implicitly use int in declaration. - (DFtype): Likewise. - (_fpdiv_parts): Remove unused parameter `tmp', all callers changed. - (divide): Remove unused variable `tmp'. - (si_to_float): Cast numeric constant to (SItype) before comparing - it against one. - -Fri Oct 9 16:03:19 1998 Graham - - * flow.c (print_rtl_with_bb): Changed type of in_bb_p to match use. - * gcc.c (add_preprocessor_option): Correct typo when allocating - memory, sizeof() argument had one too many `*'. - (add_assembler_option): Likewise. - (add_linker_option): Likewise. - * gcov.c (output_data): Likewise. - * local-alloc.c (memref_used_between_p): Likewise. - (update_equiv_regs): Likewise. - * loop.c (strength_reduce): Likewise. - * reg-stack.c (record_asm_reg_life): Likewise. - (subst_asm_stack_reg): Likewise. - * reorg.c (dbr_schedule): Likewise. - -Fri Oct 9 15:57:51 1998 Bernd Schmidt - - * flow.c (life_analysis_1): Break out some functions. - (find_basic_blocks_1): Likewise. Also move some variables out and - make them static. - Rename NONLOCAL_LABEL_LIST arg to NONLOCAL_LABELS and initialize - new static var nonlocal_label_list with it. - (active_eh_region, nested_eh_region, label_value_list, - nonlocal_label_list): New static variables. - (make_edges, delete_unreachable_blocks, delete_block): New static - functions, broken out of find_basic_blocks_1. - (record_volatile_insns, mark_regs_live_at_end, set_noop_p, - noop_move_p): New static functions, broken out of life_analysis_1. - -Fri Oct 9 15:49:29 1998 Richard Henderson - - * expmed.c (store_bit_field): Pun non-integral str_rtx modes. - Take extra care for op0 now possibly being a subreg. - (extract_bit_field): Likewise. - * function.c (purge_addressof_1): Revert Oct 4 change. Drop - the reg to memory if there is no equal sized integral mode. - * stor-layout.c (int_mode_for_mode): New function. - * machmode.h: Prototype it. - -Fri Oct 9 14:26:44 1998 Jeffrey A Law (law@cygnus.com) - - * global.c (build_insn_chain): Verify no real insns exist past the - end of the last basic block, then exit the loop. - -Fri Oct 9 11:44:47 1998 David Edelsohn - - * loop.c (insert_bct): Ensure loop_iteration_var nonzero before use. - -Thu Oct 8 21:59:47 1998 Dave Brolley - - * emit-rtl.c (init_emit_once): Call INIT_EXPANDERS. - -Thu Oct 8 22:03:45 1998 David Edelsohn - - * rs6000.h (RTX_COSTS): Add PROCESSOR_PPC604e cases. - -Thu Oct 8 17:00:18 1998 Richard Henderson - - * flow.c (find_basic_blocks): Correctly determine when a call - is within an exception region. - -Thu Oct 8 17:15:04 1998 Jeffrey A Law (law@cygnus.com) - - * toplev.c (output_file_directive): Use DIR_SEPARATOR, not '/'. - - * cpplib.h: Protect from multiple inclusions. - * cpplib.c: Fix minor formatting problems. - - * i386/xm-cygwin32.h: Only define POSIX if it is not already defined. - - * jump.c (jump_optimize): Revert accidental patch. - - * Makefile.in (cpplib.o): Use unlibsubdir. - -Thu Oct 8 12:50:47 1998 Jim Wilson - - * loop.c (get_condition): Allow combine when either compare is - VOIDmode. - -Thu Oct 8 11:31:01 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Thu Oct 8 12:21:14 1998 Richard Frith-Macdonald - - * c-lex.c (remember_protocol_qualifiers): Handle RID_BYREF. - (init_lex): Initialize ridpointers[RID_BYREF]. - * c-lex.h (enum rid): Add RID_BYREF. - * c-parse.gperf: Add RID_BYREF as a type qualifier. - * objc/objc-act.c (is_objc_type_qualifiers): Handle RID_BYREF. - (encode_type_qualifiers): Similarly. - * c-gperf.h: Rebuilt. - -Thu Oct 8 05:56:00 1998 Jeffrey A Law (law@cygnus.com) - - * c-common.c (type_for_mode): Only return TItype nodes when - HOST_BITS_PER_WIDE_INT is >= 64 bits. - * c-decl.c (intTI_type_node, unsigned_intTI_type_node): Only declare - when HOST_BITS_PER_WIDE_INT is >= 64 bits. - (init_decl_processing): Only create TItype nodes when - HOST_BITS_PER_WIDE_INT is >= 64 bits. - * c-tree.h (intTI_type_node, unsigned_intTI_type_node): Only declare - when HOST_BITS_PER_WIDE_INT is >= 64 bits. - -Thu Oct 8 05:05:34 1998 Bernd Schmidt - - * stmt.c (n_occurrences): New static function. - (expand_asm_operands): Verify that all constrains match in the - number of alternatives. - Verify that '+' or '=' are at the beginning of an output constraint. - Don't allow '&' for input operands. - Verify that '%' isn't written for the last operand. - * reload.c (find_reloads): Abort if an asm is found with invalid - constraints; all possible problems ought to be checked for earlier. - -Thu Oct 8 04:26:20 1998 Michael Hayes - - * flags.h (flag_branch_on_count_reg): Always declare. - * toplev.c (flag_branch_on_count_reg): Likewise. - * toplev.c: Fix typos. - - * real.c (c4xtoe): Remove unused variables. Add some missing parens. - (toc4x): Similarly. - -Thu Oct 8 01:25:22 1998 Richard Henderson - - * flow.c (find_basic_blocks): Calc upper bound for extra nops in - max_uids_for_flow. - (find_basic_blocks_1): Add a nop to the end of a basic block when - a trailing call insn does not have abnormal control flow. - * gcse.c (pre_transpout): New variable. - (alloc_pre_mem, free_pre_mem, dump_pre_data): Bookkeeping for it. - (compute_pre_transpout): Calculate it. - (compute_pre_ppinout): Use it to eliminate impossible placements - due to abnormal control flow through calls. - (compute_pre_data): Call compute_pre_transpout. - -Wed Oct 7 21:40:24 1998 David S. Miller - - * config/sparc/sol2-sld-64.h (ASM_CPU_SPEC): Fix typo. - -Wed Oct 7 21:19:46 1998 Ken Raeburn - - * config/mips/mips.md (tablejump_internal3, tablejump_internal4 - and matching define_insns): Tack on a `use' of the table label, so - flow analysis will recognize a tablejump. - -Wed Oct 7 17:33:39 1998 Richard Henderson - - * gcse.c (pre_insert_insn): Tweek to notice that calls do not - always end basic blocks for abnormal edge reasons. - -Wed Oct 7 14:40:43 1998 Nick Clifton - - * config/i386/i386.h: Remove definition of - HANDLE_PRAGMA_PACK_PUSH_POP. - - * config/i386/go32.h: Add definition of - HANDLE_PRAGMA_PACK_PUSH_POP. - - * config/i386/win32.h: Add definition of - HANDLE_PRAGMA_PACK_PUSH_POP. - - * config/i386/cygwin32.h: Add definition of - HANDLE_PRAGMA_PACK_PUSH_POP. - - * c-pragma.c (insert_pack_attributes): Do not insert - attributes unless #pragma pack(push,) is in effect. - -Wed Oct 7 12:10:46 1998 Jim Wilson - - * expr.c (emit_group_store): Handle a PARALLEL destination. - -Wed Oct 7 10:07:29 1998 Richard Henderson - - * gcse.c (pre_insert_insn): When a call ends a bb, insert - the new insns before the argument regs are loaded. - -Wed Oct 7 12:55:26 1998 Kaveh R. Ghazi - - * Makefile.in (c-gperf.h): Add -L KR-C -F ', 0, 0' flags to gperf. - (c-parse.gperf): Update comments describing invocation flags. - (c-gperf.h): Regenerate using gperf 2.7.1 (19981006 egcs). - -1998-10-07 Manfred Hollstein - - * reload1.c (reload): Call free before clobbering the memory - locations or constants pointers. - -Wed Oct 7 02:05:20 1998 David S. Miller - - * config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Rework - for efficiency by checking whether we need to modify the current - stack permission at all. - (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Define. - * config/sparc/sparc.c (sparc_initialize_trampoline): Emit - __enable_execute_stack libcall here too if - TRANSFER_FROM_TRAMPOLINE is defined. - * config/sparc/sparc.h: Set TARGET_ARCH32 to a constant if - IN_LIBGCC2. - -Wed Oct 7 02:27:52 1998 Jeffrey A Law (law@cygnus.com) - - * Makefile.in (DRIVER_DEFINES): Remove last change. - -Wed Oct 7 01:08:43 1998 Bernd Schmidt - - * jump.c (duplicate_loop_exit_test): Strip REG_WAS_0 notes off all - insns we're going to copy. - * regclass.c (reg_scan_mark_refs): Don't test X for NULL_RTX. - - * loop.c (count_one_set): Add prototype. - - * caller-save.c (restore_referenced_regs): Lose mode argument. - (insert_save): Lose mode argument. - (insert_restore): Lose mode argument. - (insert_one_insn): Lose mode argument. - (save_call_clobbered_regs): Lose mode argument. - (setup_save_areas): Take no argument and return void. All callers - changed. - Don't verify validity of memory addresses. - * reload.h (setup_save_ares): Adjust prototype. - (save_call_clobbered_regs): Likewise. - * reload1.c (delete_caller_save_insns): New function. - (caller_save_spill_class): Delete variable. - (caller_save_group_size): Delete variable. - (reload): Call setup_save_areas and save_call_clobbered_regs - in the main loop, before calling calculate_needs_all_insns. - Don't call save_call_clobbered_regs after the loop. - Call delete_caller_save_insns at the end of an iteration if - something changed. - Delete code to manage caller_save_spill_class. - Emit the final note before setting reload_first_uid. - Simplify test that determines whether reload_as_needed gets run. - (calculate_needs): Delete code to manage caller_save_spill_class. - -Tue Oct 6 15:42:27 1998 Richard Henderson - - * collect2.c (main): Initialize ld_file_name. - -Tue Oct 6 15:45:15 1998 Catherine Moore - - * config/sparc/sysv4.h (ASM_OUTPUT_SECTION_NAME): Don't - check for flag_function_sections. - -Tue Oct 6 20:02:31 1998 J"orn Rennecke - - * cse.c (insert_regs): Fix bug in Sep 24 change. - -Tue Oct 6 17:00:42 1998 J"orn Rennecke - - * flags.h (flag_dump_unnumbered): Declare. - * toplev.c (flag_dump_unnumbered): Don't declare. - * print-rtl.c (flags.h): Include. - (print_rtl_single): Add return value. - * rtl.h (print_rtl_single): Update declaration. - * flow.c (flag_dump_unnumbered): Don't declare. - (print_rtl_with_bb): Use return value of print_rtl_single. - -Tue Oct 6 01:36:00 1998 Bernd Schmidt - - * loop.c (count_one_set): New static function, broken out of - count_loop_regs_set. - (count_loop_regs_set): Call it. - * global.c (mark_reg_store): Handle clobbers here by not calling - set_preference. - (mark_reg_clobber): Just call mark_reg_store after ensuring SETTER - is in fact a clobber. - * integrate.c (process_reg_param): New function, broken out of - expand_inline_function. - (expand_inline_function): Call it. - - * i386.md (addsidi3_1): Delete unused variable temp. - (addsidi3_2): Likewise. - (clstrstrsi): Delete unused variable addr1. - - * rtl.h: Don't declare any functions also declared in recog.h. - - * Makefile.in (stupid.o): Update dependencies. - (global.o): Likewise. - - * global.c: Include reload.h. - (reg_becomes_live): New function. - (reg_dies): New function. - (build_insn_chain): New function. - (global_alloc): Call build_insn_chain before calling reload. - - * reload.h (struct needs): New structure definition. - (struct insn_chain): Likewise. - (reload_insn_chain): Declare variable. - (new_insn_chain): Declare function. - - * reload1.c (reload_startobj): New variable. - (reload_insn_chain): New variable. - (unused_insn_chains): New variable. - (new_insn_chain): New function. - (init_reload): Initialize reload_startobj, not reload_firstobj. - (reload): Initialize reload_firstobj. - Before returning, free everything on the reload_obstack. - - * stupid.c: Include insn-config.h, reload.h and basic-block.h. - (reg_where_dead_chain, reg_where_born_exact, reg_where_born_clobber, - current_chain): New variables. - (reg_where_born): Delete variable. - (REG_WHERE_BORN): New macro. - (find_clobbered_regs): New function. - (stupid_life_analysis): Don't allocate/free reg_where_born. - Allocate and free reg_where_born_exact, reg_where_born_clobber, - reg_where_dead_chain. - Use REG_WHERE_BORN instead of reg_where_born. - While processing the insns, build the reload_insn_chain with - information about register lifetimes. - (stupid_reg_compare): Use REG_WHERE_BORN instead of reg_where_born. - (stupid_mark_refs): Replace arg INSN with arg CHAIN. All callers - changed. - Compute and information about birth and death of pseudo registers in - reg_where_dead_chain, reg_where_born_exact and reg_where_born_clobber. - Delete code to set elements of reg_where_born. - -Mon Oct 5 22:34:30 1998 Alexandre Petit-Bianco - - * tree.def (GOTO_EXPR): Modified documentation. - * expr.c (expand_expr): Expand GOTO_EXPR into a goto or a computed - goto. - -Mon Oct 5 22:43:36 1998 David Edelsohn - - * unroll.c (loop_iteration_var, loop_initial_value, loop_increment - loop_final_value, loop_comparison_code): No longer static. - (unroll_loop): Delete loop_start_value update. - * loop.h (loop_iteration_var, loop_initial_value, loop_increment, - loop_final_value, loop_comparison_code): Extern. - (loop_start_value): Delete extern. - * loop.c (loop_can_insert_bct, loop_increment, loop_start_value, - loop_comparison_value, loop_comparison_code): Delete. - (loop_optimize): Remove initialization for deleted variables. - (strength_reduce): Delete analyze_loop_iterations call. Only call - insert_bct if flag_branch_count_on_reg set. - (analyze_loop_iterations): Delete. - (insert_bct): Remove iteration count calculation. Move checks for - viable BCT optimization to here. Obtain iteration count from - loop_iterations and correct for unrolling. Check for enough - iteration to be beneficial. Comment out runtime iteration count - case. - (insert_bct): Print iteration count in dump file. Remove - loop_var_mode and use word_mode directly. - - * rs6000.h (processor_type): Add PROCESSOR_PPC604e. - * rs6000.c (rs6000_override_options): Use it. - (optimization_options): Enable use of flag_branch_on_count_reg. - * rs6000.md (define_function_unit): Describe 604e. - -1998-10-05 Herman A.J. ten Brugge - - * loop.c (move_movables): Corrected threshold calculation for - moved_once registers. - -Mon Oct 5 21:18:45 1998 Bernd Schmidt - - * loop.c (combine_givs_p): Fix test for identical givs. - -Mon Oct 5 10:11:28 1998 Nick Clifton - - * dwarf2out.c (gen_subprogram_die): If errorcount nonzero, don't - call abort if the function is already defined. - -Mon Oct 5 10:02:36 1998 Jeffrey A Law (law@cygnus.com) - - * combine.c (simplify_rtx): Do not replace TRUNCATE with a SUBREG if - truncation is not a no-op. - -Mon Oct 5 09:02:04 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Mon Oct 5 08:19:55 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Mon Oct 5 01:07:23 1998 Torbjorn Granlund - - * expmed.c (expand_divmod): Don't widen for computing remainder - if we seem to have a divmod pattern for needed mode. - -Mon Oct 5 01:01:42 1998 Zack Weinberg - - * cpplib.c (macroexpand): Correct off-by-one error in handling - of escapes. - -Sun Oct 4 23:58:30 1998 Richard Henderson - - * combine.c (expand_field_assignment): Don't do bitwise operations - on MODE_FLOAT; pun to MODE_INT if possible. - -Sun Oct 4 18:33:24 1998 Jason Merrill - scott snyder - - * tlink.c (scan_linker_output): Recognize errors from irix 6.2 - linker. Recognize mangled names in quotes. - -Sun Oct 4 02:58:20 1998 Jakub Jelinek - - * config/sparc/sparc.md (ashldi3+1): Name it ashldi3_sp64. - (ashlsi3_const1, ashldi3_const1): New combiner patterns. - (ashrsi3_extend, ashrsi3_extend2): New combiner patterns. - (lshrsi3_extend, lshrsi3_extend2): Likewise. - -Sun Oct 4 00:23:00 1998 David S. Miller - - * function.c (purge_addressof_1): If trying to take a sub-word - integral piece of a floating point mode, put it on the stack. - -Sat Oct 3 19:01:03 1998 Richard Henderson - - * alpha/linux.h (CPP_PREDEFINES): Define __alpha__ for imake. - -Sat Oct 3 14:42:19 1998 Jason Merrill - - * PROJECTS: Remove template friends. - - * collect2.c (sort_ids): Remove unused variable. - - * tm.texi (MATH_LIBRARY): Document. - (NEED_MATH_LIBRARY): Remove. - - * varasm.c (assemble_start_function, assemble_variable, weak_finish, - assemble_alias): Do ASM_GLOBALIZE_LABEL for weak symbols, too. - -Sat Oct 3 16:14:44 1998 John Carr - - * dwarf2out.c (expand_builtin_dwarf_reg_size): Initialize - last_end to 0x7fffffff. - -Fri Oct 2 19:14:20 1998 David S. Miller - - * function.c (purge_addressof_1): Do not perform endianness - corrections on bitpos, who we call will do it for us. - -Fri Oct 2 11:52:35 1998 Jeffrey A Law (law@cygnus.com) - - * h8300.c (WORD_REG_USED): Fix typo. - (initial_offset): Use WORD_REG_USED. - - * h8300.c (handle_pragma): Fix typo. - -Fri Oct 2 10:51:35 1998 Bernd Schmidt - - * caller-save.c (insert_save_restore): Break this function up - into new functions insert_restore, insert_save and insert_one_insn. - All callers changed. - (insert_restore): New function, mostly broken out of - insert_save_restore. - (insert_save): Likewise. - (insert_one_insn): Likewise. - (restore_referenced_regs): New argument BLOCK. All callers changed. - (save_call_clobbered_regs): Don't keep track of basic block boundaries - in this function, do it in insert_one_insn instead. - - * reload1.c (reload): Break out some more pieces into separate - functions. - (dump_needs): New function, broken out of reload. - (set_initial_elim_offsets): Likewise. - (init_elim_table): Likewise. - (update_eliminables): Likewise. - - * global.c (global_alloc): Delete code to manage the scratch_list. - * local-alloc.c (qty_scratch_rtx): Delete. - (scratch_block): Delete. - (scratch_list): Delete. - (scratch_list_length): Delete. - (scratch_index): Delete. - (alloc_qty_for_scratch): Delete. - (local-alloc): Update initialization of max_qty. - Delete code to manage the scratch list. - Delete code to allocate/initialize qty_scratch_rtx. - (block_alloc): Don't allocate quantities for scratches. - Delete code to manage the scratch list. - * regs.h (scratch_list): Delete declaration. - (scratch_block): Delete declaration. - (scratch_list_length): Delete declaration. - * reload1.c (reload): Delete code to manage the scratch list. - (spill_hard_reg): Likewise. - (mark_scratch_live): Delete. - - * recog.c (alter_subreg): Delete declaration. - -1998-10-02 Andreas Jaeger - - * Makefile.in (cccp.o): Fix typo in last patch. - -Fri Oct 2 16:13:12 1998 J"orn Rennecke - - * t-sh (LIB1ASMFUNCS): Add _set_fpscr . - * config/sh/lib1funcs.asm (___set_fpscr): Add. - -Fri Oct 2 02:01:59 1998 Jeffrey A Law (law@cygnus.com) - - * regclass.c (reg_scan_mark_refs): Return immediately if passed a - NULL_RTX as an argument. - - * Makefile.in (unlibsubdir): Define. - (DRIVER_DEFINES): Use unlibsubdir. - (cccp.o, cpplib.o, protoize.o, unprotoize.o): Similarly. - (stmp-fixinc): Similarly. - -Thu Oct 1 19:58:30 1998 Bernd Schmidt - - * regmove.c (regmove_optimize): Add variable old_max_uid. - At the end of the function, update basic_block_end. - -Thu Oct 1 17:58:25 1998 David S. Miller - - * dwarf2out.c (expand_builtin_dwarf_reg_size): Use - FIRST_PSEUDO_REGISTER as upper bound for last_end, not an - arbitrary constant. - -Thu Oct 1 17:57:14 1998 Nick Clifton - - * config/arm/arm.c: Improve interworking support. - -Thu Oct 1 18:43:35 1998 J"orn Rennecke - - * reload1.c (choose_reload_regs): Fix test if reload_reg_rtx[r] was - copied from reload_out[r] . - -Thu Oct 1 19:20:09 1998 John Carr - - * dwarf2out.c (expand_builtin_dwarf_reg_size): Fix to work - with more than three size ranges. - - * flow.c (sbitmap_copy): Use bcopy to copy bitmap. - - * rtl.c (mode_name): Add a null string at the end of the array. - (mode_wider_mode): Change type to unsigned char. - (mode_mask_array): New variable. - (init_rtl): Update for mode_wider_mode type change. - - * rtl.h (mode_wider_mode): Change type to unsigned char. - (mode_mask_array): Declare. - (GET_MODE_MASK): Use mode_mask_array. - -Thu Oct 1 15:56:01 1998 Gavin Romig-Koch - - * calls.c (expand_call) : Encapsulate code into - copy_blkmode_from_reg. - * expr.c (copy_blkmode_from_reg): New function. - * expr.h (copy_blkmode_from_reg): New function. - * integrate.c (function_cannot_inline_p): We can inline - these now. - (expand_inline_function): Use copy_blkmode_from_reg - if needed. Avoid creating BLKmode REGs. - (copy_rtx_and_substitute): Don't try to SUBREG a BLKmode - object. - -Thu Oct 1 10:42:27 1998 Nick Clifton - - * config/v850/v850.c: Add function prototypes. - Add support for v850 special data areas. - - * config/v850/v850.h: Add support for v850 special data areas. - - * c-pragma.c: Add support for HANDLE_PRAGMA_PACK and - HANDLE_PRAGMA_PACK_PUSH_POP. - (push_alignment): New function: Cache an alignment requested - by a #pragma pack(push,). - (pop_alignment): New function: Pop an alignment from the - alignment stack. - (insert_pack_attributes): New function: Generate __packed__ - and __aligned__ attributes for new decls whilst a #pragma pack - is in effect. - (add_weak): New function: Cache a #pragma weak directive. - (handle_pragma_token): Document calling conventions. Add - support for #pragma pack(push,) and #pragma pack (pop). - - * c-pragma.h: If HANDLE_SYSV_PRAGMA or HANDLE_PRAGMA_PACK_PUSH_POP - are defined enable HANDLE_PRAGMA_PACK. - Move 'struct weak_syms' here (from varasm.c). - Add pragma states for push and pop pragmas. - - * c-common.c (decl_attributes): Call PRAGMA_INSERT_ATTRIBUTES - if it is defined. - - * c-lex.c: Replace occurrences of HANDLE_SYSV_PRAGMA with - HANDLE_GENERIC_PRAGMAS. - - * varasm.c: Move definition of 'struct weak_syms' into - c-pragma.h. - (handle_pragma_weak): Deleted. - - * config/i386/i386.h: Define HANDLE_PRAGMA_PACK_PUSH_POP. - - * config/winnt/win-nt.h: Define HANDLE_PRAGMA_PACK_PUSH_POP. - - * c-decl.c (start_function): Add invocation of - SET_DEFAULT_DECL_ATTRIBUTES, if defined. - - * tm.texi: Remove description of non-existent macro - SET_DEFAULT_SECTION_NAME. - - (HANDLE_SYSV_PRAGMA): Document. - (HANDLE_PRAGMA_PACK_PUSH_POP): Document. - -Wed Sep 30 22:27:53 1998 Robert Lipe - - * config.sub: Recognize i[34567]86-pc-udk as new target. - * configure.in: Likewise. - * config/i386/t-udk: New file. - * config/i386/udk.h: New file. - -Wed Sep 30 19:33:07 1998 Jeffrey A Law (law@cygnus.com) - - * reorg.c (check_annul_list_true_false): Remove unused variables. - (steal_delay_list_from_target): Add missing "used_annul" variable. - (try_merge_delay_insns): Close out half formed comment. - -Wed Sep 30 19:13:20 1998 Zack Weinberg - - * cpplib.c (macroexpand): If arg->raw_before or - arg->raw_after, remove any no-reexpansion escape at the - beginning of the pasted token. Correct handling of whitespace - markers and no-reexpand markers at the end if arg->raw_after. - - * toplev.c (documented_lang_options): Recognize -include, - -imacros, -iwithprefix, -iwithprefixbefore. - * cpplib.c (cpp_start_read): Process -imacros and -include - switches at the same time and in command-line order, after - initializing the dependency-output code. Emit properly nested - #line directives for them. Emit a #line for the main file - before processing these switches, and don't do it again - afterward. - -Wed Sep 30 18:03:22 1998 Richard Henderson - - * function.c (purge_addressof_1): Use bitfield manipulation - routines to handle mem mode < reg mode. - -Wed Sep 30 18:43:32 1998 Herman ten Brugge - - * reorg.c (try_merge_delay_insns): Account for resources referenced - in each instruction in INSN's delay list before trying to eliminate - useless instructions. Similarly when looking at a trial insn's delay - slots. - - * reorg.c (check_annul_list_true_false): New function. - (steal_delay_list_from_{target,fallthrough}): Call it and also - refine tests for when we may annul if already filled a slot. - (fill_slots_from_thread): Likewise. - (delete_from_delay_slot): Return newly-created thread. - (try_merge_delay_isns): Use its new return value. - -Wed Sep 30 18:29:26 1998 Jeffrey A Law (law@cygnus.com) - - * loop.c (check_dbra_loop): Use a vanilla loop reversal if the biv is - used to compute a giv or as some other non-counting use. - -Wed Sep 30 18:19:27 1998 Michael Hayes - - * regs.h (HARD_REGNO_CALL_PART_CLOBBERED): New macro. - * local-alloc.c (find_free_reg): Use it. - * global.c (find_reg): Likewise. - * tm.texi: Document HARD_REGNO_CALL_PART_CLOBBERED. - - * regs.h (HARD_REGNO_CALLER_SAVE_MODE): New macro. - * caller-save.c (init_caller_save): Use it. - * tm.texi: Document HARD_REGNO_CALLER_SAVE_MODE. - -Wed Sep 30 12:57:30 1998 Zack Weinberg - - * configure.in: Add --enable-cpplib option which uses cpplib - for cpp, but doesn't link cpplib into cc1. Make help text - capitalization consistent. - * configure: Rebuilt. - -Wed Sep 30 10:09:39 1998 Mark Mitchell - - * function.c (gen_mem_addressof): If the address REG is - REG_USERVAR_P make the new REG be so also. - * loop.c (scan_loop): Apply DeMorgan's laws and add documentation - in an attempt to clarify slightly. - -Wed Sep 30 09:57:40 1998 Jeffrey A Law (law@cygnus.com) - - * expr.c (expand_expr): Handle COMPONENT_REF, BIT_FIELD_REF ARRAY_REF - and INDIRECT_REF in code to check MAX_INTEGER_COMPUTATION_MODE. - -Wed Sep 30 10:13:39 1998 Catherine Moore - - * toplev.c: Fix last patch. - -Tue Sep 29 20:03:18 1998 Jim Wilson - - * loop.c (get_condition): Fix typo in May 9 change. - -Tue Sep 29 11:11:38 1998 Andrew MacLeod - - * invoke.texi (-fexceptions): Merge 2 different descriptions. - -Mon Sep 28 22:08:52 1998 Kaveh R. Ghazi - - * toplev.c (documented_lang_options): Spelling corrections. - -Mon Sep 28 19:41:24 1998 Alexandre Oliva - - * configure.in: New flags --with-ld and --with-as, equivalent - to setting LD and AS environment variables. Test whether - specified arguments are GNU commands, and report them with - checking messages. Use the specified AS for configure - tests too. - * configure: Likewise. - * acconfig.h: Add DEFAULT_ASSEMBLER and DEFAULT_LINKER. - * config.in: Likewise. - * gcc.c (find_a_file): When looking for `as' and `ld', return - the DEFAULT program if it exists. - * collect2.c (main): Use DEFAULT_LINKER if it exists. - - * gcc.c (find_a_file): The test for existence of a full - pathname was reversed. - -Mon Sep 28 17:34:35 1998 Michael Meissner - - * rs6000.h (ASM_OUTPUT_MI_THUNK): Only define on ELF systems. - * rs6000.c (output_mi_thunk): Always use a raw jump for now. - -Mon Sep 28 14:24:03 1998 Mark Mitchell - - * tree.h (TYPE_BINFO): Document. - -Mon Sep 28 12:55:49 1998 Stan Cox - - * i386-coff.h (dbxcoff.h): Added. - -Mon Sep 28 12:51:00 1998 Catherine Moore - - * toplev.c: Fix bad patch around flag_data_sections. - -Mon Sep 28 10:32:28 1998 Nick Clifton - - * reload1.c (reload): Use reload_address_index_reg_class and - reload_address_base_reg_class when setting - caller_save_spill_class. (Patch generated by Jim Wilson: - wilson@cygnus.com). - -Mon Sep 28 07:43:34 1998 Mark Mitchell - - * c-common.c (c_get_alias_set): Tighten slightly for FUNCTION_TYPEs - and ARRAY_TYPEs. Tidy up. Improve support for type-punning. - * expr.c (store_field): Add alias_set parameter. Set the - MEM_ALIAS_SET accordingly, if the target is a MEM. - (expand_assignment): Use it. - (store_constructor_field): Pass 0. - (expand_expr): Likewise. - -Mon Sep 28 07:54:03 1998 Catherine Moore - - * flags.h: Add flag_data_sections. - * toplev.c: Add option -fdata-sections. Add flag_data_sections. - (compile_file): Error if flag_data_sections not supported. - * varasm.c (assemble_variable): Handle flag_data_sections. - * config/svr4.h: Modify prefixes for UNIQUE_SECTION_NAME. - * config/mips/elf.h: Likewise. - * config/mips/elf64.h: Likewise. - * invoke.texi: Describe -fdata-sections. - -Mon Sep 28 04:15:44 1998 Craig Burley - - * invoke.texi (-ffloat-store): Clarify that this option - does not affect intermediate results -- only variables. - -Mon Sep 28 04:11:35 1998 Jeffrey A Law (law@cygnus.com) - - * cpp.texi: Update for Fortran usage from Craig. - -Fri Sep 25 22:09:47 1998 David Edelsohn - - * rs6000.c (function_arg_boundary): Revert accidental change on - September 18. - -Fri Sep 25 20:30:00 1998 Michael Meissner - - * rs6000.h (ASM_OUTPUT_MI_THUNK): Declare, call output_mi_thunk. - (output_mi_thunk): Declare. - - * rs6000.c (output_mi_thunk): Function to create thunks for MI. - (output_function_profiler): Use r12 for temp, instead of r11 so - that we preserve the static chain register. - -Fri Sep 25 14:18:33 1998 Jim Wilson - - * sdbout.c (sdbout_one_type): Don't look at TYPE_BINFO field of enums. - -Fri Sep 25 19:30:19 1998 J"orn Rennecke - - * sh.c (gen_shl_sext): Fix case 5. - -Fri Sep 25 17:35:23 1998 J"orn Rennecke - - * reload1.c (reload_combine): Re-add line that got accidentally lost. - -Fri Sep 25 10:43:47 1998 Kaveh R. Ghazi - - * cccp.c (pedwarn_with_file_and_line): For !__STDC__ case, avoid - accessing variables until they are initialized via va_arg(). - -Thu Sep 24 22:12:16 1998 David S. Miller - - * reload1.c (reload_combine): Initialize set before using. - -Thu Sep 24 18:53:20 1998 Jason Merrill - - * sdbout.c (sdbout_field_types): Don't emit the types of fields we - won't be emitting. - -Thu Sep 24 17:05:30 1998 Nick Clifton - - * config/arm/arm.md (insv): Add comment. In CONST_INT case, and - operand3 with mask before using it. Patch provided by Jim Wilson. - -Thu Sep 24 15:08:08 1998 Jakub Jelinek - - * config/sparc/sparc.c (function_value): Perform the equivalent of - PROMOTE_MODE for ARCH64. - (eligible_for_epilogue_delay): Allow DImode operations in delay - slot of a return for ARCH64. - -Thu Sep 24 22:17:54 1998 J"orn Rennecke - - * sh.md (sqrtsf2): Fix mode of sqrt. - -Thu Sep 24 21:48:51 1998 J"orn Rennecke + Rewrite SPARC backend for better code generation and + improved sparc64 support. + * config/sparc/sp64-elf.h: Set JUMP_TABLES_IN_TEXT_SECTION to + zero. + * config/sparc/sysv4.h: Likewise. + * config/sparc/sparc.c (v8plus_regcmp_p, sparc_operand, + move_operand, v8plus_regcmp_op, emit_move_sequence, + singlemove_string, doublemove_string, mem_aligned_8, + output_move_double, output_move_quad, output_fp_move_double, + move_quad_direction, output_fp_move_quad, output_scc_insn): + Remove. + (small_int_or_double): New predicate. + (gen_compare_reg): Remove TARGET_V8PLUS cmpdi_v8plus emission. + (legitimize_pic_address): Emit movsi_{high,lo_sum}_pic instead of + old pic_{sethi,lo_sum}_si patterns. + (mem_min_alignment): New generic function to replace + mem_aligned_8, which uses REGNO_POINTER_ALIGN information when + available and can test for arbitrary alignments. All callers + changed. + (save_regs, restore_regs, build_big_number, + output_function_prologue, output_cbranch, output_return, + sparc_flat_save_restore, sparc_flat_output_function_prologue, + sparc_flat_output_function_epilogue): Prettify + insn output. + (output_function_epilogue): Likewise and add code to output + deferred case vectors. + (output_v9branch): Likewise, add new arg INSN and use it to tack + on branch prediction settings. All callers changed. + (print_operand): Likewise and output %l44 for LO_SUMs when + TARGET_CM_MEDMID. + (sparc_splitdi_legitimate): New function to make sure DImode + splits can be run properly when !arch64. + (sparc_initialize_trampoline, sparc64_initialize_trampoline): + Reformat example code in comments. + (set_extends): Remove UNSPEC/v8plus_clear_high case. + (sparc_addr_diff_list, sparc_addr_list): New statics to keep track + of deferred case vectors we need to output. + (sparc_defer_case_vector): Record a case vector. + (sparc_output_addr_vec, sparc_output_addr_diff_vec, + sparc_output_deferred_case_vectors): New functions to output them. + (sparc_emit_set_const32): New function to form 32-bit constants in + registers when that requires more than one instruction. + (safe_constDI, sparc_emit_set_const64_quick1, + sparc_emit_set_const64_quick2, sparc_emit_set_const64_longway, + analyze_64bit_constant, const64_is_2insns, + create_simple_focus_bits, sparc_emit_set_const64): New functions + which do the same for 64-bit constants when arch64. + (sparc_emit_set_symbolic_const64): New function to emit address + loading for all code models on v9. + * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Do not make + %g1 fixed when arch64, unfix %g0 when TARGET_LIVE_G0. + (ALTER_HARD_SUBREG): Fix thinko, return REGNO + 1 not 1. + (SECONDARY_INPUT_RELOAD_CLASS, SECONDARY_OUTPUT_RELOAD_CLASS): Fix + inaccuracies in comments, add symbolic and text_segment operands + when TARGET_CM_MEDANY and TARGET_CM_EMBMEDANY respectively. Use + GENERAL_REGS in these cases as a temp REG is needed to load these + addresses into a register properly. + (EXTRA_CONSTRAINT): Document more accurately, remove Q case as it + is no longer used. + (GO_IF_LEGITIMATE_ADDRESS): Allow TFmode for LO_SUM on v9 since fp + quads are guaranteed to have 16-byte alignment. + (LEGITIMIZE_ADDRESS): For SYMBOL_REF, CONST, and LABEL_REF use + copy_to_suggested_reg instead of explicit LO_SUM and HIGH. + (ASM_OUTPUT_ADDR_VEC, ASM_OUTPUT_ADDR_DIFF_VEC): New macros for + deferred case vector implementation. + (ASM_OUTPUT_ADDR_VEC_ELT): Use fputc to output newline. + (ASM_OUTPUT_ADDR_DIFF_ELT): Parenthesize LABEL in macro calls. + Generate "internal label - label" instead of "label - 1b". + (PRINT_OPERAND_ADDRESS): For LO_SUM use %l44 on TARGET_CM_MEDMID. + (PREDICATE_CODES): Remove sparc_operand, move_operand, + v8plus_regcmp_op. Add small_int_or_double, input_operand, and + zero_operand. + (doublemove_string, output_block_move, output_fp_move_double, + output_fp_move_quad, output_move_double, output_move_quad, + output_scc_insn, singlemove_string, mem_aligned_8, move_operand, + sparc_operand, v8plus_regcmp_op, v8plus_regcmp_p): Remove externs. + (sparc_emit_set_const32, sparc_emit_set_const64, + sparc_emit_set_symbolic_const64, input_operand, zero_operand, + mem_min_alignment, small_int_or_double): Add externs. + * config/sparc/sparc.md: Document the many uses of UNSPEC and + UNSPEC_VOLATILE in this backend. + (define_function_unit ieu): Rename to ieu_unnamed. Add move and + unary to types which execute in it. + (define_function_unit ieu_shift): Rename to ieu0. + (define_function_unit ieu1): New, executes compare, call, and + uncond_branch type insns. + (define_function_units for type fdivs, fdivd, fsqrt): These + execute in the fpu multiply unit not the adder on UltraSPARC. + (define_expand cmpdi): Disallow TARGET_V8PLUS. + (define_insn cmpsi_insn): Rename to cmpsi_insn_sp32. + (define_insn cmpsi_insn_sp64): New, same as sp32 variant except it + allows the arith_double_operand predicate and rHI constraint when + TARGET_ARCH64. + (define_insn cmpdi_sp64, cmpsf_fpe, cmpdf_fpe, cmptf_fpe, + cmpsf_fp, cmpdf_fp, cmptf_fp, sltu_insn, neg_sltu_insn, + neg_sltu_minux_x, neg_sltu_plus_x, sgeu_insn, neg_sgeu_insn, + sltu_plus_x, sltu_plus_x, sltu_plus_x_plus_y, x_minus_sltu, + sgeu_plus_x, x_minus_sgeu, movqi_cc_sp64, movhi_cc_sp64, + movsi_cc_sp64, movdi_cc_sp64, movsf_cc_sp64, movdf_cc_sp64, + movtf_cc_sp64, movqi_cc_reg_sp64, movhi_cc_reg_sp64, + movsi_cc_reg_sp64, movdi_cc_reg_sp64, movsf_cc_reg_sp64, + movdf_cc_reg_sp64, movtf_cc_reg_sp64, zero_extendhisi2_insn, + cmp_siqi_trunc, cmp_siqi_trunc_set, sign_extendhisi2_insn, + sign_extendqihi2_insn, sign_extendqisi2_insn, + sign_extendqidi2_insn, sign_extendhidi2_insn, + extendsfdf2, extendsftf2, extenddftf2, truncdfsf2, trunctfsf2, + trunctfdf2, floatsisf2, floatsidf2, floatsitf2, floatdisf2, + floatdidf2, floatditf2, fix_truncsfsi2, fix_truncdfsi2, + fix_trunctfsi2, fix_truncsfdi2, fix_truncdfdi2, fix_trunctfdi2, + adddi3_sp64, addsi3, cmp_ccx_plus, cmp_cc_plus_set, subdi_sp64, + subsi3, cmp_minus_ccx, cmp_minus_ccx_set, mulsi3, muldi3, + muldi3_v8plus, cmp_mul_set, mulsidi3, mulsidi3_v8plus, + const_mulsidi3_v8plus, mulsidi3_sp32, const_mulsidi3, + smulsi3_highpart_v8plus, unnamed subreg mult, + const_smulsi3_highpart_v8plus, smulsi3_highpart_sp32, + const_smulsi3_highpart, umulsidi3_v8plus, umulsidi3_sp32, + const_umulsidi3, const_umulsidi3_v8plus, umulsi3_highpart_v8plus, + const_umulsi3_highpart_v8plus, umulsi3_highpart_sp32, + const_umulsi3_highpart, divsi3, divdi3, cmp_sdiv_cc_set, udivsi3, + udivdi3, cmp_udiv_cc_set, smacsi, smacdi, umacdi, anddi3_sp64, + andsi3, and_not_di_sp64, and_not_si, iordi3_sp64, iorsi3, + or_not_di_sp64, or_not_si, xordi3_sp64, xorsi3, xor_not_di_sp64, + xor_not_si, cmp_cc_arith_op, cmp_ccx_arith_op, + cmp_cc_arith_op_set, cmp_ccx_arith_op_set, cmp_ccx_xor_not, + cmp_cc_xor_not_set, cmp_ccx_xor_not_set, cmp_cc_arith_op_not, + cmp_ccx_arith_op_not, cmp_cc_arith_op_not_set, + cmp_ccx_arith_op_not_set, negdi2_sp64, cmp_cc_neg, cmp_ccx_neg, + cmp_cc_set_neg, cmp_ccx_set_neg, one_cmpldi2_sp64, cmp_cc_not, + cmp_ccx_not, cmp_cc_set_not, cmp_ccx_set_not, addtf3, adddf3, + addsf3, subtf3, subdf3, subsf3, multf3, muldf3, mulsf3, + muldf3_extend, multf3_extend, divtf3, divdf3, divsf3, negtf2, + negdf2, negsf2, abstf2, absdf2, abssf2, sqrttf2, sqrtdf2, sqrtsf2, + ashlsi3, ashldi3, unnamed DI ashift, cmp_cc_ashift_1, + cmp_cc_set_ashift_1, ashrsi3, ashrdi3, unnamed DI ashiftrt, + ashrdi3_v8plus, lshrsi3, lshrdi3, unnamed DI lshiftrt, + lshrdi3_v8plus, tablejump_sp32, tablejump_sp64, call_address_sp32, + call_symbolic_sp32, call_address_sp64, call_symbolic_sp64, + call_address_struct_value_sp32, call_symbolic_struct_value_sp32, + call_address_untyped_struct_value_sp32, + call_symbolic_untyped_struct_value_sp32, call_value_address_sp32, + call_value_symbolic_sp32, call_value_address_sp64, + call_value_symbolic_sp64, branch_sp32, branch_sp64, + flush_register_windows, goto_handler_and_restore, + goto_handler_and_restore_v9, goto_handler_and_restore_v9_sp64, + flush, all ldd/std peepholes, return_qi, return_hi, return_si, + return_addsi, return_di, return_adddi, return_sf, all call+jump + peepholes, trap, unnamed trap insns): Prettify output strings. + (define_insn anddi3_sp32, and_not_di_sp32, iordi3_sp32, + or_not_di_sp32, xordi3_sp32, xor_not_di_sp32, one_cmpldi2): + Likewise and force + implement splits for integer cases. + (define_insn return_sf_no_fpu): Likewise and allow to match when + no-fpu because of our subreg SFmode splits. + (define_insn zero_extendqihi2, zero_extendqisi2_insn, + zero_extendqidi2_insn, zero_extendhidi2_insn, + zero_extendsidi2_insn, sign_extendsidi2_insn): Likewise and use + input_operand for second operand. + (cmp_minus_cc, cmp_minus_cc_set): Likewise and use + reg_or_0_operand for operand 2 so new splits can use it. + (cmp_zero_extendqisi2, cmp_zero_extendqisi2_set, cmp_cc_plus, + cmp_cc_xor_not): Likewise and don't forget to check TARGET_LIVE_G0 + too. + (cmp_zero_extract, cmp_zero_extract_sp64): Likewise and allow + CONST_DOUBLEs for operand 2. + (define_insn move_label_di): Likewise and label distance + optimization because it no longer works with new deferred case + vector scheme. To be revisited. + (define_insn x_minus_y_minus_sltu, x_minus_sltu_plus_y): Likewise + and allow reg_or_0_operand and J constraint for second operand. + (define_insn jump): Set branch predict taken on V9. + (define_insn tablejump): Emit LABEL_REF + PLUS memory address for + new deferred case vector scheme. + (define_insn pic_tablejump_32, pic_tablejump_64): Remove. + (define_insn negdi2_sp32): Force + implement splits. + (define_insn negsi2, one_cmplsi2): Rename to negsi2_not_liveg0 and + one_cmplsi2_not_liveg0 respectively, and create expander of original + names which emit special rtl for TARGET_LIVE_G0. + (define_insn cmpdi_v8plus, scc_si, scc_di): Remove. + (define_insn seq, sne, slt, sge, sle, sltu, sgeu): Don't do + gen_compare_reg, FAIL instead. + (define_insn sgtu, sleu): Likewise and check gen_s*() return + values when trying to reverse condition codes, if they FAIL then + do likewise. + (define_insn snesi_zero, neg_snesi_zero, snesi_zero_extend, + snedi_zero, neg_snedi_zero, snedi_zero_trunc, seqsi_zero, + neg_seqsi_zero, seqsi_zero_extend, seqdi_zero, neg_seqdi_zero, + seqdi_zero_trunc, x_plus_i_ne_0, x_minus_i_ne_0, x_plus_i_eq_0, + x_minus_i_eq_0): Add new splits to perform these multi-insn cases, + set output string to # to indicate they are mandatory splits. + (define_insn pic_lo_sum_si, pic_sethi_si, pic_lo_sum_di, + pic_sethi_di, move_pic_label_si): Remove. + (define_insn movsi_low_sum, movsi_high, movsi_lo_sum_pic, + movsi_high_pic, movsi_pic_label_reg): New patterns to take their + place. + (define_expand movsi_pic_label_ref, define_insn + movsi_high_pic_label_ref, movsi_lo_sum_pic_label_ref): New + expander and insns to handle PIC label references and deferred + case vectors. + (define_insn get_pc_via_rdpc): Comment out as it is no longer + used. + (define_expand movqi, movhi, movsi, movdi, movsf, movdf, movtf): + Rewrite to not use emit_move_sequence, make use of new constant + formation code, and new splits for all multi-insn cases. + (define_insn movqi_insn): Remove sethi case, it can never happen. + Use reg_or_zero_operand instead of const0_rtx explicit test, + use input_operand instead of move_operand for source, and use + general_operand now for dest. + (define_insn movhi_insn): Similar but leave sethi case. + (define_insn lo_sum_qi, store_qi, store_hi): Remove. + (define_insn sethi_hi lo_sum_hi): Rename to movhi_high and + movhi_lo_sum respectively, prettify output string. + (define_insn movsi_zero_liveg0): New pattern to put zero into a + register when needed on TARGET_LIVE_G0. + (define_insn movsi_insn): Use general_operand and input_operand + for dest and src respectively. Simplify applicability test. + Prettify output strings, and add clr alternative for J + constraint. + (define_insn movdi_sp32_v9, movdi_sp32, define_splits for + deprecated std and reg-reg DI moves): Remove and... + (define_insn movdi_insn_sp32, movdi_insn_sp64): Replace with new + implementation which uses forced splits for all non-single insn + cases. + (define_split DI move cases on !arch64): New splits to handle all + situations of 64-bit double register DImode on 32bit, and + unaligned registers and memory addresses for all subtargets. + (define_insn movsf_const_insn, movdf_const_insn, store_sf): + Remove. + (define_insn movsf_insn, movsf_no_f_insn): Use general_operand and + input_operand for dest and src respectively, prettify output + strings. + (define_insn movdf_insn, movdf_no_e_insn, store_df, + movtf_const_insn, movtf_insn, movtf_no_e_insn, store_tf): Remove + and... + (define_insn movdf_insn_sp32, movdf_no_e_insn_sp32, + movdf_insn_sp64, movdf_no_e_insn_sp64, movtf_insn, + movtf_no_e_insn_sp32, movtf_insn_hq_sp64, movtf_insn_sp64, + movtf_no_e_insn_sp64): Replace with new + implementation which uses forced splits for all non-single insn + cases. + (define_split DF move cases): New splits in similar vein to DI + move counterparts. + (define_insn sethi_di_medlow, sethi_di_medium_pic, + sethi_di_embmedany_data, sethi_di_embmedany_text, sethi_di_sp64, + movdi_sp64_insn): Remove old v9 code model and constant loading + support insns and.. + (define_insn pic_lo_sum_di, pic_sethi_di, + sethi_di_medlow_embmedany_pic, sethi_di_medlow, losum_di_medlow, + seth44, setm44, setl44, sethh, setlm, sethm, setlo, + embmedany_sethi, embmedany_losum, embmedany_brsum, + embmedany_textuhi, embmedany_texthi, embmedany_textulo, + embmedany_textlo, movdi_lo_sum_sp64_cint, movdi_lo_sum_sp64_dbl, + movdi_high_sp64_cint, movdi_high_sp64_dbl): Replace with new + scheme, using unspecs, secondary reloads, and one to one sparc + insn to rtl insn mapping for better scheduling and code gen. + (define_expand reload_indi, reload_outdi): Reload helpers for + MEDANY and EMBMEDANY symbol address loading cases which require a + temporary register. + (define_expand movsicc): Remove v8plus_regcmp cases. + (define_insn movdi_cc_sp64_trunc, movdi_cc_reg_sp64_trunc, + cmp_zero_extendqidi2, cmp_zero_extendqidi2_set, cmp_qidi_trunc, + cmp_diqi_trunc_set): New patterns used by some of the new scc + splits on arch64. + (define_insn xordi3_sp64_dbl): New pattern used for constant + formation when crossing from 32-bit targets. + (define_insn movsi_cc_reg_v8plus, v8plus_clear_high, and helper + split): Remove. + (define_insn addx, subx): Make visible and prettify. + (define_insn adddi3_insn_sp32): Likewise and force split. + (define_insn addx_extend, subx_extend, unnamed): New patterns for + 64bit scc split usage. + (define_insn unnamed plusDI zero_extend, unnamed minusDI + zero_extend, subdi3): Force and implement splits. - * reload1.c (choose_reload_regs): Also try inheritance when - reload_in is a stack slot of a pseudo, even if we already got a - reload reg. + * final.c (final_scan_insn): Don't output labels if target + specifies ASM_OUTPUT_ADDR_{DIFF}_VEC. Do these macro operations + instead. -Thu Sep 24 21:22:39 1998 J"orn Rennecke + * reorg.c (dbr_schedule): When taking on BR_PRED notes at the end, + don't forget to walk inside SEQUENCESs too as these are what the + delay slot scheduler will create. - * reload1.c (reload_cse_regs_1): Renamed from reload_cse_regs. - (reload_cse_regs): New function body: call reload_cse_regs_1, - reload_combine, reload_cse_move2add. - When doing expensive_optimizations, call reload_cse_regs_1 a - second time after reload_cse_move2add. - (reload_combine, reload_combine_note_store): New functions. - (reload_combine_note_use): New function. - (reload_cse_move2add, move2add_note_store): New functions. +Mon Aug 10 01:21:01 1998 Richard Henderson -Thu Sep 24 18:48:43 1998 J"orn Rennecke + * alpha.md (extxl+1,+2): New patterns to work around + combine lossage. - * reload.c (find_reloads): In code to promote RELOAD_FOR_X_ADDR_ADDR - reloads to RELOAD_FOR_X_ADDRESS reloads, test for reload sharing. +Sat Aug 8 19:20:22 1998 Gary Thomas (gdt@linuxppc.org) - Properly keep track of first RELOAD_FOR_X_ADDRESS also for - more than 3 such reloads. + * rs6000.c (rs6000_allocate_stack_space): Fix typo which + caused bad assembly code to be generated. - If there is not more than one RELOAD_FOR_X_ADDRESS, don't change - RELOAD_FOR_X_ADDR_ADDR reload. +Sat Aug 8 18:53:28 1998 Jeffrey A Law (law@cygnus.com) -Thu Sep 24 17:45:55 1998 J"orn Rennecke + * netbsd.h: Fix typo. - * expr.c (store_constructor): When initializing a field that is smaller - than a word, at the start of a word, try to widen it to a full word. +Mon Aug 3 00:06:42 1998 Robert Lipe - * cse.c (cse_insn): When we are about to change a register, - remove any invalid references to it. + * config.sub: Fix typo. - (remove_invalid_subreg_refs): New function. - (mention_regs): Special treatment for SUBREGs. - (insert_regs): Don't strip SUBREG for call to mention_regs. - Check if reg_tick needs to be bumped up before that call. - (lookup_as_function): Try to match known word_mode constants when - looking for a norrower constant. - (canon_hash): Special treatment for SUBREGs. +Sun Aug 2 22:39:08 1998 Hans-Peter Nilsson -Thu Sep 24 01:35:34 1998 David S. Miller + * invoke.texi (Environment Variables): Typo: Change "ascpects" + into "aspects". + (Running Protoize): Typo: Change "ther" into "other". - * config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Define. - * config/sparc/sparc.c (sparc64_initialize_trampoline): If that is - defined, emit libcall to __enable_execute_stack. Also fix opcodes - and offsets in actual stack trampoline code so they match the - commentary and actually work. +Sun Aug 2 00:42:50 1998 Jeffrey A Law (law@cygnus.com) -Thu Sep 24 01:19:02 1998 Jakub Jelinek + * i386/netbsd.h: Undo previous change to DWARF2_UNWIND_INFO. + * m68k/netbsd.h: Likewise. + * ns32k/netbsd.h: Likewise. + * sparc/netbsd.h: Likewise. - * configure.in (sparcv9-*-solaris): Use t-sol2 and t-sol2-64 for - tmake_file. - (sparc64-*-linux): Use t-linux and sparc/t-linux64 for - tmake_file. Set extra_parts to needed crt objects. - * configure: Rebuilt. - * config/sparc/linux64.h (SPARC_BI_ARCH): Define. - (TARGET_DEFAULT): Set if default is v9 or ultra. - (STARTFILE_SPEC32, STARTFILE_SPEC64): New macros. - (STARTFILE_SPEC): Set to those upon SPARC_BI_ARCH. - (ENDFILE_SPEC32, ENDFILE_SPEC64, ENDFILE_SPEC): Likewise. - (SUBTARGET_EXTRA_SPECS, LINK_ARCH32_SPEC, LINK_ARCH64_SPEC, - LINK_SPEC, LINK_ARCH_SPEC): Likewise. - (TARGET_VERSION): Define. - (MULTILIB_DEFAULT): Define. - * config/sparc/sparc.h (CPP_CPU_DEFAULT_SPEC): Rearrange so that - mixed 32/64 bit compilers based upon SPARC_BI_ARCH work. - (CPP_CPU64_DEFAULT_SPEC, CPP_CPU32_DEFAULT_SEC): Define - appropriately. - (TARGET_SWITCHES): Allow ptr32/ptr64 options once more. - * config/sparc/sparc.c (sparc_override_options): If arch and - pointer size disagree, emit diagnostic and fix it up. If - SPARC_BI_ARCH and TARGET_ARCH32, set cmodel to CM_32. Turn off - V8PLUS in 64-bit mode. - * config/sparc/t-linux64: New file. - * config/sparc/t-sol2-64: New file. - * config/sparc/t-sol2: Adjust build rules to use MULTILIB_CFLAGS. - * config/sparc/sol2-sld-64.h (SPARC_BI_ARCH): Define. - (ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC, - CPP_CPU32_DEFAULT_SPEC, CPP_CPU64_DEFAULT_SPEC): Define. - (ASM_SPEC, CPP_CPU_SPEC): Set appropriately based upon those. - (STARTFILE_SPEC32, STARTFILE_SPEC32, STARTFILE_ARCH_SPEC): - Define. - (STARTFILE_SPEC): Set appropriately based upon those. - (CPP_CPU_DEFAULT_SPEC, ASM_CPU_DEFAULT_SPEC): Set based upon - disposition of DEFAULT_ARCH32_P. - (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC): Define. - (LINK_ARCH_SPEC, LINK_ARCH_DEFAULT_SPEC): Set based upon those. - (CC1_SPEC, MULTILIB_DEFAULTS): Set based upon DEFAULT_ARCH32_P. - (MD_STARTFILE_PREFIX): Set correctly based upon SPARC_BI_ARCH. - * config/sparc/xm-sysv4-64.h (HOST_BITS_PER_LONG): Only set on - arch64/v9. - * config/sparc/xm-sp64.h (HOST_BITS_PER_LONG): Likewise. +Sat Aug 1 17:59:30 1998 Richard Henderson -Wed Sep 23 22:32:31 1998 Mark Mitchell + * ginclude/va-alpha.h (va_list): Use a typedef, not a define. + * ginclude/va-clipper.h (va_list): Likewise. - * rtl.h (init_virtual_regs): New function. - * emit-rtl.c (init_virtual_regs): Define. - (insn_emit): Use it. - * integrate.c (save_for_inline_copying): Likewise. +Fri Jul 31 20:22:02 1998 Michael Meissner -Wed Sep 23 16:22:01 1998 Nick Clifton + * rs6000.c (rs6000_override_options): If big endian and -Os, use + load/store multiple instructions unless user overrides. - * config/arm/thumb.h: The following patches were made by Jim Wilson: - (enum reg_class): Add NONARG_LO_REGS support. - (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS, - PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Likewise. - (GO_IF_LEGITIMATE_ADDRESS): Disable REG+REG addresses before reload - completes. Re-enable HImode REG+OFFSET addresses. - (LEGITIMIZE_RELOAD_ADDRESS): Define. +Fri Jul 31 17:08:59 1998 Jeffrey A Law (law@cygnus.com) - * expmed.c (extract_bit_field): Add comment from Jim Wilson. + * ns32k/netbsd.h: Fix typo. -Wed Sep 23 13:26:02 1998 Richard Henderson +Fri Jul 31 10:23:55 1998 Doug Evans - * alpha.c (get_aligned_mem): Revert Sep 20 change. - (alpha_set_memflags, alpha_set_memflags_1): Likewise. - (alpha_align_insns): Properly calculate initial offset wrt max_align. + * m32r/m32r.h (ASM_OUTPUT_SOURCE_LINE): Always output line number + labels with .debugsym if no parallel insns. -Wed Sep 23 10:45:44 1998 Richard Earnshaw (rearnsha@arm.com) +Thu Jul 30 19:15:53 1998 Richard Henderson - * arm.c (find_barrier): Revert change of Apr 23. Handle table - jumps as a single entity, taking into account the size of the - table. + * alpha.md (fp cmp): Replicate patterns for ALPHA_TP_INSN. + (fcmov): Remove ALPHA_TP_INSN patterns -- fcmov doesn't trap. -Tue Sep 22 15:13:34 1998 Alexandre Petit-Bianco +Thu Jul 30 19:50:15 1998 David Edelsohn - * tree.def (SWITCH_EXPR): New tree node definition. + * rs6000/x-aix43 (AR_FOR_TARGET_FLAGS): Delete. + (AR_FOR_TARGET): Define. -Mon Sep 21 23:40:38 1998 Jeff Law (law@cygnus.com) +Thu Jul 30 12:29:12 1998 Mark Mitchell - * version.c: Bump for snapshot. + * dyn-string.h: New file. + * dyn-string.c: Likewise. + * Makefile.in (OBJS): Add dyn-string.o. + (dwarf2out.o): Add dyn-string.h dependency. + (dyn-string.o): List dependencies. + * dwarf2out.c: Include dyn-string.h. + (ASM_NAME_TO_STRING): Use dyn_string_append, rather than strcpy. + (addr_const_to_string): Take a dyn_string_t, not a char* as a + prototype. Use dyn_string_append rather than strcat, throughout. + (addr_to_string): Use dyn_string_t. -Mon Sep 21 22:31:14 1998 Jeff Law (law@cygnus.com) +Thu Jul 30 13:08:07 1998 Ken Raeburn - * version.c: Bump for snapshot. + Function entry/exit profiling instrumentation: + * expr.h (profile_function_entry_libfunc, + profile_function_exit_libfunc): Declare new variables. + * optabs.c: Define them here. + (init_optabs): Initialize them. + * tree.h (struct tree_decl): New flag + no_instrument_function_entry_exit. + (DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT): New accessor macro. + * c-decl.c (duplicate_decls): Merge it. + * c-common.c (enum attrs): New value A_NO_INSTRUMENT_FUNCTION. + (init_attributes): Use it for "no_instrument_function". + (decl_attributes): Handle it, for functions that have not yet been + compiled. Set decl flag. + * flags.h (flag_instrument_function_entry_exit): Declare new + variable. + * toplev.c (flag_instrument_function_entry_exit): Define it here. + (f_options): New option "instrument-functions". + * function.h (struct function): New field instrument_entry_exit. + * function.c (current_function_instrument_entry_exit): New + variable. + (push_function_context_to, pop_function_context_from): Save and + restore. + (expand_function_start): Set current_ variable, maybe emit return + label and entry profile call. + (expand_function_end): Maybe emit exit profile call. -Mon Sep 21 22:48:09 1998 Jeffrey A Law (law@cygnus.com) +Thu Jul 30 00:58:34 1998 Jeffrey A Law (law@cygnus.com) - * configure.in: Recognize i[34567]86-*-openbsd* and handle it like - NetBSD. + * i386.md (movqi): When optimizing a load of (const_int 1) into a + NON_QI_REG_P, pretend the register is SImode. -Mon Sep 21 22:05:28 1998 Jeffrey A Law (law@cygnus.com) +Wed Jul 29 23:49:23 1998 Todd Vierling - * Revert this patch. - * reload.c (find_reloads): Do not replace a pseudo with - (MEM (reg_equiv_addr)) in the initializing insn for the - pseudo. + * configure.in: Use xm-netbsd.h as the NetBSD xm file (not xm-siglist). + Accept arm32 as arm, m68k4k as m68k, mipsle as mips-dec, and any + manufacturer id for ns32k. + * configure: Regenerated. + * config/netbsd.h: When using ASM_WEAKEN_LABEL, make it global too. + * config/t-netbsd: Don't compile libgcc1-test as the fns are in libc. + * config/i386/netbsd.h: Undefine DWARF2_UNWIND_INFO, not define as 0. + * config/m68k/netbsd.h: Same. + * config/ns32k/netbsd.h: Same. + * config/sparc/netbsd.h: Same. -Mon Sep 21 20:19:41 1998 John Carr +Wed Jul 29 22:39:21 1998 Jeffrey A Law (law@cygnus.com) - * final.c (final_scan_insn): Disable tracking CC across branches. + * unroll.c (unroll_loop): Do not abort for an UNROLL_MODULO + or UNROLL_COMPLETELY loop that starts with a jump to its + exit code. -Mon Sep 21 17:15:26 1998 Andrew MacLeod +Wed Jul 29 22:18:14 1998 David Edelsohn - * expr.h (eh_rtime_match_libfunc): New extern declaration. - * optabs.c (init_optabs): Set eh_rtime_match_libfunc. - * except.c (start_catch_handler): Use eh_rtime_match_libfunc. - * libgcc2.c (__eh_rtime_match): Always return 0 if the matcher is - NULL. Only include if inhibit_libc is not defined. + * rs6000/rs6000.md (absdi2 define_split): Swap operands of MINUS. + * rs6000/rs6000.c (mask64_operand): Use HOST_BITS_PER_WIDE_INT. + (print_operand, case 'B'): Don't fall through. + (print_operand, case 'S'): Correct mask begin/end computation. + Use HOST_BITS_PER_WIDE_INT. + * rs6000/rs6000.h (CPP_PREDEFINES): Define _LONG_LONG. + (CONDITIONAL_REGISTER_USAGE): GPR13 fixed if TARGET_64BIT. + * rs6000/aix41.h (CPP_PREDEFINES): Same. + * rs6000/aix43.h (CPP_PREDEFINES): Same. -Mon Sep 21 14:10:51 1998 Jason Merrill +Wed Jul 29 11:47:10 1998 Nick Clifton - * toplev.c (rest_of_compilation): Skip compiling anything with - DECL_EXTERNAL set, not just if it has DECL_INLINE as well. + * config/arm/thumb.md (extendqisi2_insn): Remove earlyclobber + constraint from second alternative. -Mon Sep 21 13:51:05 1998 Jim Wilson +Tue Jul 28 23:29:04 1998 Jason Merrill - * flow.c (find_basic_blocks): Delete check for in_libcall_block when - prev_code is a CALL_INSN. Change check for REG_RETVAL note to - use in_libcall_block. - (find_basic_blocks_1): Delete check for in_libcall_block when prev_code - is a CALL_INSN. If CALL_INSN and in_libcall_block, then change code - to INSN. + * configure.in: Fix --without/--disable cases for local-prefix, + gxx-include-dir and checking. -Mon Sep 21 14:02:23 1998 Robert Lipe +Tue Jul 28 22:01:23 1998 David S. Miller - * i386.h (TARGET_SWITCHES): Improve doc for align-double. Fix - typo in no-fancy-math-387 description. + * configure.in (enable_haifa): Set by default for sparc64 too. + configure: Rebuilt. -Mon Sep 21 09:27:18 1998 Jeff Law (law@cygnus.com) +Tue Jul 28 23:29:04 1998 Jason Merrill - * version.c: Bump for snapshot. + * i386/cygwin32.h (VALID_MACHINE_TYPE_ATTRIBUTE): New macro. + * i386/winnt.c (associated_type): New fn. + (i386_pe_valid_type_attribute_p): New fn. + (i386_pe_check_vtable_importexport): Remove. + (i386_pe_dllexport_p): Use associated_type. + (i386_pe_dllimport_p): Likewise. -Mon Sep 21 09:24:49 1998 Stan Cox + From Antonio M. O. Neto : + * i386.c (i386_valid_type_attribute_p): Also accept + attributes for METHOD_TYPEs. - * i386-coff.h (DBX_DEBUGGING_INFO): Added. +Tue Jul 28 23:17:39 1998 Peter Gerwinski -Mon Sep 21 09:14:49 1998 Robert Lipe + * tree.c (build_range_type): Copy TYPE_SIZE_UNIT. - * i386.h (TARGET_SWITCHES): Add description fields for flags - documented in install.texi. - (TARGET_OPTIONS): Likewise. +Tue Jul 28 22:31:12 1998 Craig Burley -Mon Sep 21 01:39:03 1998 Jeff Law (law@cygnus.com) + * gcc.c: Fix commentary describing %g, %u, %U, and %O. - * version.c: Bump for snapshot. + * gcc.c (do_spec_1): Fix handling of %g%O and %U%O to prevent + them from generating a new base name for each occurrence of + a specific suffix. -Mon Sep 21 01:53:05 1998 Felix Lee +1998-07-28 Vladimir N. Makarov - * c-lex.c (init_lex): Use getenv ("LANG"), not GET_ENVIRONMENT (). - * cccp.c (main): Likewise. + * cse.c (cse_insn): Enable substitution inside libcall only for REG, + SUBREG, MEM. + * rtlanal.c (replace_rtx): Prohibit replaces in CONST_DOUBLE. - * cccp.c, collect2.c, cpplib.c, gcc.c, config/i386/xm-cygwin32.h: - Rename GET_ENVIRONMENT to GET_ENV_PATH_LIST, and fix some - macro-use bugs. + * cplus-dem.c (type_kind_t): New type. + (demangle_template_value_parm): Add type_kind_t parameter. Rely + on this parameter, rather than demangling the type again. + (demangle_integral_value): Pass tk_integral. + (demangle_template_: Pass the value returned from do_type. + (do_type): Return a type_kind_t. Pass tk_integral to + demangle_template_value_parm for array bounds. + (demangle_fund_type): Likewise. -Mon Sep 21 00:52:12 1998 Per Bothner +Mon Jul 27 00:54:41 1998 Jason Merrill - * Makefile.in (LIBS): Link in libiberty.a. - * c-common.c, gcc.c, toplev.c: Replace (some) bcopy calls by memcpy. + * tree.c (simple_cst_equal, case CONSTRUCTOR): OK if the elts are + identical. -Sun Sep 20 23:28:11 1998 Richard Henderson +Mon Jul 27 22:18:36 1998 Jeffrey A Law (law@cygnus.com) - * reload1.c (emit_reload_insns): Accept a new arg for the bb. Use - it to update bb boundaries. Update caller. - * function.c (reposition_prologue_and_epilogue_notes): Update - bb boundaries wrt the moved note. + * pa.c (move_operand): Accept CONSTANT_P_RTX. -Sun Sep 20 20:57:02 1998 Robert Lipe +Mon Jul 27 17:18:52 1998 Dave Brolley - * configure.in (i*86-*-sysv5*): Use fixinc.svr4 to patch byteorder - problems. - * configure: Regenerate. + * stor-layout.c (layout_type): Handle arrays of bits, for Chill. -Sun Sep 20 19:01:51 1998 Richard Henderson + * expr.c (get_inner_reference): Handle zero-based, unsigned, array + index conversion. - * alpha.c (alpha_sr_alias_set): New variable. - (override_options): Set it. - (alpha_expand_prologue, alpha_expand_epilogue): Use it. - (mode_mask_operand): Fix signed-unsigned comparison warning. - (alpha_expand_block_move): Likewise. - (print_operand): Likewise. - (get_aligned_mem): Use change_address. - (alpha_set_memflags, alpha_set_memflags_1): Set the alias set. - (alphaev4_insn_pipe, alphaev4_next_group): New functions. - (alphaev4_next_nop, alphaev5_next_nop): New functions. - (alpha_align_insns): Remade from old alphaev5_align_insns - to handle multiple processors. - (alpha_reorg): Call alpha_align_insns for both ev4 and ev5. - * output.h (label_to_alignment): Prototype. +Mon Jul 27 14:51:33 1998 Jeffrey A Law (law@cygnus.com) - * tree.c (new_alias_set): New function. - * tree.h (new_alias_set): Declare it. - * c-common.c (c_get_alias_set): Use it. + * mn10300.h (DEBUGGER_AUTO_OFFSET): Define. + (DEBUGGER_ARG_OFFSET): Likewise. -Sun Sep 20 12:35:55 1998 Richard Henderson + * mn10300.md (movsf): Remove last change. Not needed. - * fold-const.c (fold): Yet another COND_EXPR bug: when folding - to an ABS expr, convert an unsigned input to signed. +Mon Jul 27 14:22:36 1998 Dave Brolley -Sun Sep 20 12:14:45 1998 Jeffrey A Law (law@cygnus.com) + * c-lex.c (yylex): Fix boundary conditions in character literal and + string literal loops. - * fold-const.c (fold): Fix another type in COND_EXPR handling code. +Mon Jul 27 11:43:54 1998 Stan Cox -1998-09-20 Michael Hayes + * longlong.h (count_leading_zeros): SPARClite scan instruction was + being invoked incorrectly. - * configure.in: Add support for c4x targets. + * i386.c (ix86_prologue): Added SUBTARGET_PROLOGUE invocation. + * i386/cygwin32.h (STARTFILE_SPEC, LIB_SPEC, SUBTARGET_PROLOGUE): + Add -pg support. + * i386/win32.h: New file. Hybrid mingw32.h/cygwin32.h configuration. + * configure.in: Added i[34567]86-*-win32. + * config.sub: Likewise. * configure: Rebuilt. -Sun Sep 20 00:00:51 1998 Richard Henderson - - * combine.c (distribute_notes): If an insn is a cc0 user, only - delete it if we can also delete the cc0 setter. +Sun Jul 26 01:11:12 1998 H.J. Lu (hjl@gnu.org) -Sun Sep 20 00:22:23 1998 Michael Tiemann + * i386.h (CONST_DOUBLE_OK_FOR_LETTER_P): Return 0 when eliminating + the frame pointer and compiling PIC code and reload has not completed. - * fold-const.c (fold): Fix typo in COND_EXPR handling code. - (invert_truthvalue): Enable truthvalue inversion for - floating-point operands if -ffast-math. + * i386.c (output_to_reg): Add code to emulate non-popping DImode + case. -Sat Sep 19 23:58:07 1998 Melissa O'Neill +Sun Jul 26 01:01:32 1998 Jeffrey A Law (law@cygnus.com) - * configure.in: Disable collect2 for nextstep. Instead use - crtbegin/crtend. - * configure: Rebuilt. - * config/nextstep.h (STARTFILE_SPEC): Add crtbegin. - (ENDFILE_SPEC): Define. - (OBJECT_FORMAT_MACHO): Define. - (EH_FRAME_SECTION_ASM_OP): Define. - * crtstuff.c: Handle MACHO. + * regmove.c (regmove_optimize): Fix typo initializing regmove_bb_head. -Sun Sep 20 00:24:24 1998 Robert Lipe +Sat Jul 25 23:29:23 1998 Gerald Pfeifer - * config/i386/sco5.h (TARGET_MEM_FUNCTIONS): Define. + * Makefile.in (install-info): Only try to update the info + directory file if it exists in the first place. -1998-09-19 Torbjorn Granlund +Fri Jul 24 18:58:37 1998 Klaus Espenlaub - * fp-bit.c (pack_d): Do not clear SIGN when fraction is 0. - (_fpadd_parts): Get sign right for 0. + * rs6000.h (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Delete. -1998-09-19 Michael Hayes +Fri Jul 24 14:20:26 1998 Jeffrey A Law (law@cygnus.com) - * ginclude/varargs.h: Add support for C4x target. - * ginclude/stdargs.h: Likewise. + * mn10300.md (movqi, movhi, movsi, movsf): Correctly handle + CONST_DOUBLE source. -Sat Sep 19 12:05:09 1998 Richard Henderson +Fri Jul 24 11:17:04 1998 Nick Clifton - * alpha.c (alpha_return_addr): SET should be VOIDmode. - (alpha_emit_set_long_const): Rewrite to be callable from reload - and 32-bit hosts. - (alpha_expand_epilogue): Update for alpha_emit_set_long_const. - * alpha.md (movdi): Likewise. + * config/arm/thumb.c (thumb_print_operand): Decode %_ in asm + strings as the insertion of USER_LABEL_PREFIX. + * config/arm/thumb.h (PRINT_OPERAND_PUNCT_VALID_P): Accept _ as a + valid code. + * config/arm/thumb.md: Use %_ as a prefix to gcc library function + calls. -Sat Sep 19 07:33:36 1998 Richard Earnshaw (rearnsha@arm.com) +Thu Jul 23 18:53:20 1998 Jim Wilson - * arm.c (add_constant): New parameter address_only, change caller. - Set it nonzero if taking the address of an item in the pool. - (arm_reorg): Handle cases where we need the address of an item in - the pool. + * dbxout.c (dbxout_range_type): Only call dbxout_type_index for + already defined type. - * arm.c (bad_signed_byte_operand): Check both arms of a sum in - a memory address. - * arm.md (splits for *extendqihi_insn and *extendqisi_insn): Handle - memory addresses that are not in standard canonical form. +Thu Jul 23 13:49:41 1998 Jeffrey A Law (law@cygnus.com) -Sat Sep 19 01:00:32 1998 Michael Hayes (mph@elec.canterbury.ac.nz) + * expr.c (check_max_integer_computation_mode): Allow conversions + of constant integers to MAX_INTEGER_COMPUTATION_MODE. + (expand_expr): Likewise. - * README.C4X: New file with information about the c4x ports. - * ginclude/va-c4x.h: New file for c4x varargs support. - * config/c4x: New directory with c4x port files. +Thu Jul 23 11:12:06 1998 Alexandre Petit-Bianco -Fri Sep 18 22:52:05 1998 Jeffrey A Law (law@cygnus.com) + * expr.c (expand_expr): Expand RETURN_EXPR. - * reload.c (find_reloads): Do not replace a pseudo with - (MEM (reg_equiv_addr)) in the initializing insn for the - pseudo. +Thu Jul 23 11:00:29 1998 Jim Wilson -Fri Sep 18 23:50:56 1998 David Edelsohn + * dwarf2out.c (dwarf2out_finish): Call stripattributes on TEXT_SECTION. - * toplev.c (rest_of_compilation): Set bct_p on second call to - loop_optimize. - * loop.c (loop_optimize, scan_loop, strength_reduce): New argument - bct_p. - (strength_reduce): Only call analyze_loop_iterations and - insert_bct if bct_p set. - (check_dbra_loop): Fix typo. - (insert_bct): Use word_mode instead of SImode. - (instrument_loop_bct): Likewise. Do not delete iteration count - condition code generation insn. Initialize iteration count before - loop start. - * rtl.h (loop_optimize): Update prototype. +Wed Jul 22 19:10:00 1998 Catherine Moore - * ginclude/va-ppc.h (va_arg): longlong types in overflow area are - not doubleword aligned. + * dwarf2out.c (output_aranges): Call stripattributes + for TEXT_SECTION references. + (output_line_info): Likewise. - * rs6000.c (optimization_options): New function. - (secondary_reload_class): Only call true_regnum for PSEUDO_REGs. - * rs6000.h (OPTIMIZATION_OPTIONS): Define. - (REG_ALLOC_ORDER): Allocate highest numbered condition regsiters - first; cr1 can be used for FP record condition insns. +Wed Jul 22 14:08:54 1998 David S. Miller -Fri Sep 18 09:44:55 1998 Nick Clifton + * profile.c (branch_prob): Call allocate_reg_info after outputting + profile rtl in instrument_arcs. - * config/m32r/m32r.h (m32r_block_immediate_operand): Add to - PREDICATE_CODES. +Wed Jul 22 12:47:49 1998 Jim Wilson - * config/m32r/m32r.md: Add "movstrsi" and "movstrsi_internal" - patterns. + * fixinc.irix (math.h): Install wrapper instead of copying. - * config/m32r/m32r.c (m32r_print_operand): Add 's' and 'p' - operators. - (block_move_call): New function: Call a library routine to copy a - block of memory. - (m32r_expand_block_move): New function: Expand a "movstrsi" - pattern into a sequence of insns. - (m32r_output_block_move): New function: Expand a - "movstrsi_internal" pattern into a sequence of assembler opcodes. - (m32r_block_immediate_operand): New function: Return true if the - RTL is an integer constant, less than or equal to MAX_MOVE_BYTES. +Wed Jul 22 12:37:14 1998 Alexandre Petit-Bianco -Thu Sep 17 16:42:16 1998 Andrew MacLeod + * tree.def (EXPR_WITH_FILE_LOCATION): Defined as an 'e' expression + so WFL are expanded correctly when contained in a COMPOUND_EXPR. + * tree.h (EXPR_WFL_EMIT_LINE_NOTE): Change macro not to use + lang_flag_0. Added documentation in the flag table. - * except.c (start_catch_handler): Issue 'fatal' instead of 'error' and - re-align some code. - * libgcc2.c (__eh_rtime_match): fprintf a runtime error. Use . +Tue Jul 21 23:28:35 1998 Klaus Kaempf -Thu Sep 17 12:24:33 1998 J"orn Rennecke + * cccp.c (do_include): Fix vax c style include handling. - * regmove.c (copy_src_to_dest): Check that modes match. +Tue Jul 21 13:28:19 1998 Jason Merrill -Wed Sep 16 22:10:42 1998 Robert Lipe + * cplus-dem.c (do_type): Use demangle_template_value_parm for arrays. - * config/i386/sco5.h (SUPPORTS_WEAK): True only if targeting ELF. +Sun Jul 12 01:27:05 1998 Jason Merrill -Wed Sep 16 15:24:54 1998 Richard Henderson + * fold-const.c (non_lvalue): Don't deal with null pointer + constants here. + (fold, case COMPOUND_EXPR): Wrap a constant 0 in a NOP_EXPR. - * i386.h (PREFERRED_RELOAD_CLASS): Respect an existing class - narrower than FLOAT_REGS. +Tue Jul 21 15:49:31 1998 David Edelsohn -Wed Sep 16 17:51:00 1998 Alexandre Oliva + * rs6000.h (PREDICATE_CODES): Add CONSTANT_P_RTX. + * rs6000.md (movsi, movdi): Add CONSTANT_P_RTX. + * rs6000.c (short_cint_operand): Add CONSTANT_P_RTX. + (u_short_cint_operand): Same. + (reg_or_cint_operand): Same. + (logical_operand): Same. + (input_operand): Same. + (reg_or_short_operand): Use u_short_cint_operand. - * cpplib.c: Removed OLD_GPLUSPLUS_INCLUDE_DIR. - * cccp.c: Likewise. - * Makefile.in (old_gxx_include_dir): Removed. +Tue Jul 21 08:56:42 1998 Richard Henderson -Wed Sep 16 12:29:22 1998 Nick Clifton + * alpha.md (fix_truncdfsi2, fix_truncsfsi2): Remove the define_expands, + but keep the insns and splits. Adjust so when the ultimate destination + is memory, use cvtql. - * config/sh/sh.h: Update definition of HANDLE_PRAGMA to match - new specification. +Tue Jul 21 08:55:09 1998 Richard Henderson - * config/sh/sh.c (handle_pragma): Rename to sh_handle_pragma(). - (sh_handle_pragma): Change function arguments to match new - specification for HANDLE_PRAGMA. + * flow.c (regno_uninitialized): Fixed regs are never uninitialized. -Wed Sep 16 12:43:19 1998 Kaveh R. Ghazi +Tue Jul 21 00:31:01 1998 Jeffrey A Law (law@cygnus.com) - * gen-protos.c (parse_fn_proto): Cast argument of ISALNUM to - `unsigned char'. - (main): Mark parameter `argc' with ATTRIBUTE_UNUSED. - When generating output, initialize missing struct member to zero. + * gcc.c (do_spec): Call "error" not "warning". -Wed Sep 16 14:47:43 1998 J"orn Rennecke + * configure.in: Fix minor problems with gas feature detection code. + * configure: Rebuilt. - * regmove.c (copy_src_to_dest): Don't copy if that requires - (a) new register(s). + * gcc.c (do_spec): Issue a warning for '%[]' usage. -Wed Sep 16 01:29:12 1998 Bernd Schmidt + * Undo this change. + * gcc.c: Delete %[spec] support. + (do_spec_1, case '('): Likewise. + (do_spec_1, case '['): Call error. - * global.c (reg_allocno): Now static. - * reload1.c (reg_allocno): Delete declaration. - (order_regs_for_reload): Take no arguments. Don't treat regs - allocated by global differently than those allocated by local-alloc. +Mon Jul 20 22:34:17 1998 Richard Henderson -Wed Sep 16 01:09:01 1998 Kamil Iskra + * alpha.h (CPP_SPEC): Tidy. Hook to cpp_cpu and cpp_subtarget. + (CPP_SUBTARGET_SPEC): Default to empty string. + (CPP_AM_*, CPP_IM_*, CPP_CPU_*, CPP_CPU_SPEC): New. + (EXTRA_SPECS, SUBTARGET_EXTRA_SPECS): New. + * alpha/elf.h (LD_SPEC): Use %(elf_dynamic_linker). + * alpha/linux-elf.h (SUBTARGET_EXTRA_SPECS): New. + (LIB_SPEC): Tidy. + * alpha/linux.h (CPP_PREDEFINES): Tidy. + * alpha/netbsd-elf.h (SUBTARGET_EXTRA_SPECS): New. + * alpha/netbsd.h (CPP_PREDEFINES): Tidy. + * alpha/osf.h (CPP_PREDEFINES): Remove bits subsumed by CPP_CPU_SPEC. + * alpha/win-nt.h (CPP_PREDEFINES): Likewise. + * alpha/vsf.h (CPP_PREDEFINES): Likewise. + (CPP_SUBTARGET_SPEC): New. Do this instead of overriding CPP_SPEC. + * alpha/vxworks.h: Likewise. - * m68k/m68k.c (output_function_prologue): Reverse NO_ADDSUB_Q - condition, fix format strings. - (output_function_epilogue): Likewise. +Mon Jul 20 22:51:57 1998 Ken Raeburn - * m68k/m68k.c: Don't include directly. + * mips.md (reload_outsi): Added missing REGNO call. + (smulsi3_highpart, umulsi3_highpart): Provide prototype for + function pointer. + (mul_acc_di, mul_acc_64bit_di): Don't use match_op_dup, use + another match_operator and compare the codes. -Wed Sep 16 00:30:56 1998 Geoff Keating + * mips.h (MASK_DEBUG_E, MASK_DEBUG_I): Set to zero. - * gcse.c: New definition NEVER_SET for reg_first_set, reg_last_set, - mem_first_set, mem_last_set; because 0 can be a CUID. - (oprs_unchanged_p): Use new definition. - (record_last_reg_set_info): Likewise. - (record_last_mem_set_info): Likewise. - (compute_hash_table): Likewise. + * MIPS multiply pattern fixes: + * mips.h (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): + Add union classes for HI, LO, or HILO plus general registers. + (GENERATE_MADD): Deleted. + * mips.md (mulsi3_mult3): Don't disparage output-LO alternative. + Add TARGET_MAD to condition. + (mulsi3): Test HAVE_mulsi3_mult3, not specific flags. + (mul_acc_si): Expand GENERATE_MADD here; it's the only use. Use + "*d" for accumulator, to give preference to LO initially but not + during reload. -Tue Sep 15 22:59:52 1998 Jeffrey A Law (law@cygnus.com) +Mon Jul 20 16:16:38 1998 Dave Brolley - * rs6000.c (output_epilogue): Handle Chill. + * configure.in (enable_c_mbchar): New configure option. + (extra_cpp_objs): Always available now. - * mn10200.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Define. - * mn10300.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Define. + * cexp.y (mbchar.h): #include it. + (yylex): Handle Multibyte characters in character literals. - * combine.c (make_extraction): If no mode is specified for - an operand of insv, extv, or extzv, default it to word_mode. - (simplify_comparison): Similarly. - * expmed.c (store_bit_field): Similarly. - (extract_bit_field): Similarly. - * function.c (fixup_var_regs_1): Similarly. - * recog.c (validate_replace_rtx_1): Similarly. - * mips.md (extv, extzv, insv expanders): Default modes for most - operands. Handle TARGET_64BIT. - (movdi_uld, movdi_usd): New patterns. + * cccp.c (mbchar.h): #include it. + (main): Set character set based on LANG environment variable. + (rescan): Handle multibyte characters in comments. + (skip_if_group): See above. + (validate_else): See above. + (skip_to_end_of_comment): See above. + (macarg1): See above. + (discard_comments): See above. + (rescan): Handle multibyte characters in string and character literals. + (collect_expansion): See above. + (skip_quoted_string): See above. + (macroexpand): See above. + (macarg1): See above. + (discard_comments): See above. + (change_newlines): See above. - * pa.c (emit_move_sequence): Do not replace a pseudo with its - equivalent memory location unless we have been provided a scratch - register. Similarly do not call find_replacement unless a - scratch register has been provided. + * c-lex.c (mbchar.h): #include it. + (GET_ENVIRONMENT): New macro. + (init_lex): Set character set based on LANG environment variable. + (yylex): Handle multibyte characters in character literals. + (yylex): Handle multibyte characters in string literals. -Tue Sep 15 19:23:01 1998 Bernd Schmidt + * Makefile.in (mbchar.o): New target. + (cccp$(exeext)): @extra_cpp_objs@ is always available. + (cppmain$(exeext)): @extra_cpp_objs@ is always available. - * i386.h (PREFERRED_RELOAD_CLASS): For standard 387 constants, - return FLOAT_REGS. + * mbchar.[ch]: New files for multibyte character handling. -Tue Sep 15 19:09:06 1998 Richard Henderson +Mon Jul 20 01:11:11 1998 David S. Miller - * tree.h (BUILT_IN_CALLER_RETURN_ADDRESS): Unused. Kill. - (BUILT_IN_FP, BUILT_IN_SP, BUILT_IN_SET_RETURN_ADDR_REG): Kill. - (BUILT_IN_EH_STUB_OLD, BUILT_IN_EH_STUB, BUILT_IN_SET_EH_REGS): Kill. - (BUILT_IN_EH_RETURN, BUILT_IN_DWARF_CFA): New. - * c-decl.c (init_decl_processing): Update accordingly. - * expr.c (expand_builtin): Likewise. + * jump.c (jump_optimize): When simplifying noop moves and + PUSH_ROUNDING, fix thinko so we use same criterion for identifying + the PUSHes to rewrite in second loop as we did in the first. - * rtl.h (global_rtl): Add cfa entry. - (virtual_cfa_rtx, VIRTUAL_CFA_REGNUM): New. - (LAST_VIRTUAL_REGISTER): Update. - * emit-rtl.c (global_rtl): Add cfa entry. - (init_emit): Initialize it. - * function.c (cfa_offset): New. - (instantiate_virtual_regs): Initialize it. - (instantiate_virtual_regs_1): Instantiate virtual_cfa_rtx. - (expand_function_end): Call expand_eh_return. - * tm.texi (ARG_POINTER_CFA_OFFSET): New. +Sun Jul 19 08:23:53 1998 Kaveh R. Ghazi - * except.c (current_function_eh_stub_label): Kill. - (current_function_eh_old_stub_label): Likwise; update all references. - (expand_builtin_set_return_addr_reg): Kill. - (expand_builtin_eh_stub_old, expand_builtin_eh_stub): Kill. - (expand_builtin_set_eh_regs): Kill. - (eh_regs): Produce a third reg for the actual handler address. - (eh_return_context, eh_return_stack_adjust): New. - (eh_return_handler, eh_return_stub_label): New. - (init_eh_for_function): Initialize them. - (expand_builtin_eh_return, expand_eh_return): New. - * except.h: Update prototypes. - * flow.c (find_basic_blocks_1): Update references to the stub label. - * function.h (struct function): Kill stub label elements. + * cplus-dem.c (demangle_nested_args): Make function definition + static to match the prototype. - * libgcc2.c (in_reg_window): For REG_SAVED_REG, check that the - register number is one that would be in the previous window. - Provide a dummy definition for non-windowed targets. - (get_reg_addr): New function. - (get_reg, put_reg, copy_reg): Use it. - (__throw): Rely on in_reg_window, not INCOMING_REGNO. Kill stub - generating code and use __builtin_eh_return. Use __builtin_dwarf_cfa. +Fri Jul 17 14:58:44 1998 Richard Henderson - * alpha.c (alpha_eh_epilogue_sp_ofs): New. - (alpha_init_expanders): Initialize it. - (alpha_expand_epilogue): Use it. - * alpha.h: Declare it. - * alpha.md (eh_epilogue): New. + * alloca.c: Respect USE_C_ALLOCA. + * gencheck.c (xmalloc): Ignore __GNUC__ for definition. + * gengenrtl.c (xmalloc): Likewise. - * m68h.h (ARG_POINTER_CFA_OFFSET): New. - * sparc.h (ARG_POINTER_CFA_OFFSET): New. +Fri Jul 17 14:18:14 1998 Richard Henderson -Tue Sep 15 19:31:58 1998 Michael Meissner + * loop.h (struct induction): Add no_const_addval. + * loop.c (the_movables, reg_address_cost): New variables. + (init_loop): Init reg_address_cost. + (loop_optimize): Call end_alias_analysis. + (scan_loop): Init the_movables. + (record_giv): Init induction->no_const_addval. + (basic_induction_var) [PLUS]: Use rtx_equal_p instead of ==. + [REG]: Rearrange loop search test to catch more cases. + (general_induction_var): Return success not benefit; take an extra + argument for that. Change all callers. + (simplify_giv_expr) [PLUS]: Always combine invariants. Use sge_plus. + [MULT]: Use rtx_equal_p instead of ==. Combine simple invariants. + [default]: Search the_movables for additional combinations. + (sge_plus_constant, sge_plus): New functions. + (express_from_1): New function. + (express_from): Always define. Rewrite using express_from_1. + (combine_givs_p): Handle more cases. Ignore address cost. + (cmp_combine_givs_stats): New function. + (combine_givs_used_once, combine_givs_benefit_from): New functions. + (combine_givs): Rewrite to do best-fit combination. - * i960.h (CONST_COSTS): Fix thinko. Test flag, not the constant - flag bit mask. + * fold-const.c (operand_equal_p): Handle RTL_EXPR. + (fold): Do a complete (A*C)+(B*C) association check. -Tue Sep 15 14:10:54 1998 Andrew MacLeod +Fri Jul 17 11:21:55 1998 Jim Wilson - * except.h (struct eh_entry): Add false_label field. - (end_catch_handler): Add prototype. - * except.c (push_eh_entry): Set false_label field to NULL_RTX. - (start_catch_handler): When using old style exceptions, issue - runtime typematch code before continuing with the handler. - (end_catch_handler): New function, generates label after handler - if needed by older style exceptions. - (expand_start_all_catch): No need to check for new style exceptions. - (output_exception_table_entry): Only output the first handler label - for old style exceptions. - * libgcc2.c (__eh_rtime_match): New routine to lump runtime matching - mechanism into one function, if a runtime matcher is provided. + * function.c (fixup_var_refs_insns): Handle CLOBBER of a CONCAT. -Tue Sep 15 13:53:59 1998 Andrew MacLeod +Fri Jul 17 11:48:55 1998 Jeffrey A Law (law@cygnus.com) - * config/i960/i960.h (SLOW_BYTE_ACCESS): Change definition to 1. + * mn10300.c (MODES_TIEABLE_P): Fix typo. -Tue Sep 15 09:59:01 1998 Mark Mitchell +Fri Jul 17 03:26:12 1998 Rihcard Earnshaw (rearnsha@arm.com) - * integrate.c (copy_decl_list): Fix typo. + * tree.c (valid_machine_attribute): Only create a new type variant if + there is a decl to use it. -Tue Sep 15 04:18:52 1998 David S. Miller +Thu Jul 16 14:48:04 1998 Nick Clifton - * config/sparc/sparc.md (movdf_const_intreg_sp32): Fix length - attribute. + * gcc.c (do_spec_1): Cope with %g/%u/%U options which do not have + a suffix. -Mon Sep 14 14:02:53 1998 Jeff Law (law@cygnus.com) +Fri Jul 17 03:24:40 1998 Hans-Peter Nilsson - * version.c: Bump for snapshot. + * extend.texi (Explicit Reg Vars): Typo: change "may deleted" into "may + be deleted" -Mon Sep 14 10:33:56 1998 Jeff Law (law@cygnus.com) +Thu Jul 16 14:48:47 1998 Jeffrey A Law (law@cygnus.com) - * version.c: Bump for snapshot. + * mn10300.c (count_tst_insns): New arg oreg_countp. Callers changed. + Simplify tests for clearing an address register. + (expand_prologue): Corresponding changes. -Mon Sep 14 09:51:05 1998 Jeff Law (law@cygnus.com) + * mn10300.md (movXX patterns): Make sure the destination is an + ADDRESS_REG when substituting "zero_areg" for (const_int 0). + (logical patterns): Split into expanders + patterns. + (zero and sign extension patterns): Similarly. + (shift patterns): Similarly. - * version.c: Bump for snapshot. +Thu Jul 16 01:17:44 1998 Richard Henderson -Sun Sep 13 22:10:18 1998 David S. Miller + * loop.c (emit_iv_add_mult): Scan the entire insn list generated + for the sequence, recording base values. - * invoke.texi (C Dialect Options): Put back missing @end itemize. +Wed Jul 15 10:49:55 1998 Richard Henderson -Mon Sep 14 02:33:46 1998 Alexandre Oliva + * i386.h (CPP_CPU_SPEC): Remove -Asystem(unix). - * configure.in: Remove usage of `!' to negate the result of a - command; some common shells do not support it. +Tue Jul 14 14:15:30 1998 Nick Clifton -Sun Sep 13 19:17:35 1998 David S. Miller + * gcc.c: Remove ANSI-C ism from --help code. - * configure.in: In sparc9-sol2 config, use 'if test' not - brackets. - * configure: Rebuilt. + * toplev.c: Support --help with USE_CPPLIB. - * config/sparc/sol2-sld-64.h (SPARC_DEFAULT_CMODEL): Change to - CM_MEDANY. - (CPP_CPU_SPEC): Do not define _LP64, header files do this. - (CPP_CPU_DEFAULT_SPEC): Likewise. - * config/sparc/sol2.h (INIT_SUBTARGET_OPTABS): Get the names right - for arch64 libfuncs. +Tue Jul 14 14:46:08 1998 Jeffrey A Law (law@cygnus.com) - * config/sparc/sparc.md (goto_handler_and_restore): Allow any mode - for operand zero. + * configure.in: Rework gas feature code to work with symlink based + source trees. -Sun Sep 13 09:11:59 1998 Kaveh R. Ghazi + * extend.texi: Clarify some issues related to local variables + assigned to explicit registers. - * acconfig.h (NEED_DECLARATION_STRSIGNAL): Provide a stub. + * mn10300.md (mulsi): Turn into expander + pattern. - * collect2.c: Don't declare `sys_siglist' here. - (my_strsignal): Prototype and define new function. Use it in - place of `sys_siglist' hacks. + * mn10300.md (movsi, movsf, movdi, movdf): Remove "x" from I -> a + alternative. - * mips_tfile.c: Likewise. +Tue Jul 14 07:41:59 1998 Richard Earnshaw (rearnsha@arm.com) - * configure.in (AC_CHECK_FUNCS): Check for strsignal. - (GCC_NEED_DECLARATIONS): Likewise. + * arm/tcoff.h (USER_LABEL_PREFIX): Make it empty to match coff.h. - * system.h (strsignal): Prototype it, if necessary. - (sys_siglist): Declare it, if necessary. +Tue Jul 14 03:02:44 1998 Jeffrey A Law (law@cygnus.com) -Sun Sep 13 04:37:28 1998 David S. Miller + * version.c: Bump again to distinguish mainline tree from the + egcs-1.1 branch. - * loop.c (move_movables): While removing insn sequences, preserve - the next pointer of the most recently deleted insn when we skip - over a NOTE. +Tue Jul 14 02:20:38 1998 Jeffrey A Law (law@cygnus.com) -Sun Sep 13 08:13:39 1998 Ben Elliston + * version.c: Bump to avoid problems with old spec files during + bootstrap. - * objc/config-lang.in: Do not output the name of the selected - thread file when building the front-end. The Makefile for the - runtime library will do this. +Mon Jul 13 23:11:44 1998 David S. Miller - * objc/Make-lang.in: Do not build the runtime library or install - the Objective-C header files. The Makefile for the runtime - library will do this. + * config/sparc/sparc.c (output_scc_insn): Enclose || conditions in + parens while walking over notes. + * config/sparc/sparc.md (reg movdi split): Clean up matching + conditions. + (all DI arithop splits on 32-bit): Handle immediate arguments + correctly when they are CONST_INTs. - * objc/Makefile.in (all.indirect): Only build the front-end. - (compiler): Rename to `frontend'. - (obj-runtime): Remove target. - (copy-headers): Likewise. - (clean): No need to remove `libobjc.a' any longer. +Mon Jul 13 23:57:21 1998 Kamil Iskra -Sat Sep 12 11:37:19 1998 Michael Meissner + * m68k/m68k.h (TARGET_SWITCHES): Clear MASK_68040_ONLY for + -m68020-40, -m68020-60 and -m5200. - * rs6000.h ({ASM,CPP}_CPU_SPEC): Add support for all machines - supported with -mcpu=xxx. +Mon Jul 13 23:52:05 1998 Weiwen Liu -Fri Sep 11 23:55:54 1998 David S. Miller + * gcc.c (do_spec_1): Fix %O handling for secure temporary file + creation. - * flow.c (mark_set_1): Recognize multi-register structure return - values in CALL insns. - (mark_used_regs): Likewise. - (count_reg_sets_1): Likewise. - (count_reg_references): Likewise. - * rtlanal.c (note_stores): Likewise. - (reg_overlap_mentioned_p): Likewise. - * haifa-sched.c (check_live_1): Likewise. - (update_live_1): Likewise. - (sched_analyze_1): Likewise. - (sched_note_set): Likewise. - (birthing_insn_p): Likewise. - (attach_deaths): Likewise. +Mon Jul 13 23:42:36 1998 Ralf Corsepius - * config/sparc/sparc.md (movdf_const_intreg_sp64): Disable. + * sh/elf.h (MAX_OFILE_ALIGNMENT): Undefine before including svr4.h. -Fri Sep 11 22:57:55 1998 Eric Dumazet +Mon Jul 13 23:36:08 1998 Jim Wilson - * config/i386/sco5.h (ASM_WEAKEN_LABEL): Defined as in svr4.h. + * i386/i386.h (CPP_486_SPEC, CPP_586_SPEC, CPP_686_SPEC): New specs. + (CPP_CPU_DEFAULT_SPEC, CPP_CPU_SPEC): Use them. + (EXTRA_SPECS): Support them. + * gcc.c: Delete %[spec] support. + (do_spec_1, case '('): Likewise. + (do_spec_1, case '['): Call error. + * i386/aix386ng.h, cygwin32.h, freebsd-elf.h, gas.h, isc.h, + linux-aout.h, linux-oldld.h, linux.h, osfelf.h, osfrose.h, sco.h, + sco4.h, sco4dbx.h, sco5.h, sol2.h, sysv3.h (CPP_SPEC): Delete + %[cpp_cpu]. -Thu Sep 10 22:02:04 1998 David S. Miller +Mon Jul 13 23:31:04 1998 Andreas Schwab - * glimits.h (__LONG_MAX__): Recognize __sparcv9 too. + * m68k.c (output_scc_di): Use cmpw #0 only for address registers. -Thu Sep 10 21:19:10 1998 Jakub Jelinek +Mon Jul 13 23:26:43 1998 Jeffrey A Law (law@cygnus.com) - * configure.in: Add check for GAS subsection -1 support. - * acconfig.h (HAVE_GAS_SUBSECTION_ORDERING): Add. - * configure config.in: Rebuilt. - * config/sparc/sparc.h (CASE_VECTOR_MODE): For V9 flag_pic, use - SImode is subsection -1 works, else use DImode. - (ASM_OUTPUT_ADDR_VEC_START, ASM_OUTPUT_ADDR_VEC_END): Define if - subsection -1 works. - * config/sparc/sparc.c (sparc_output_addr_vec, - sparc_output_addr_diff_vec): Use them if defined. + * tree.h (tree_common): Note front-end dependencies on layout of + this structure. -Thu Sep 10 10:46:01 1998 Mark Mitchell +Mon Jul 13 23:18:39 1998 Craig Burley - * tree.h (DECL_ORIGIN): New macro. - * integrate.c (copy_and_set_decl_abstract_origin): New function. - (copy_decl_list): Use it. - (integrate_parm_decls): Likewise. - (integrate_decl_tree): Likewise. - * dwarf2out.c (decl_ultimate_origin): Simplify. - * dwarfout.c (decl_ultimate_origin): Likewise. - * c-decl.c (duplicate_decls): Use DECL_ORIGIN. - (pushdecl): Likewise. + * stmt.c (expand_expr_stmt): If not assigning fresh + value to last_expr_value, zero it, so old garbage + doesn't get dereferenced. -Thu Sep 10 08:01:31 1998 Anthony Green +Mon Jul 13 23:06:55 1998 Henning.Petersen@t-online.de (Henning Petersen) - * config/rs6000/rs6000.c (output_epilog): Add Java support. + * gcse.c (hash_scan_insn): Add missing argument declaration. -Thu Sep 10 14:48:59 1998 Martin von Löwis +Mon Jul 13 18:59:13 1998 Jim Wilson - * invoke.texi (C++ Dialect Options): Document -fhonor-std. + * configure.in (mips-sgi-irix5cross64, mips-sgi-irix5*): Remove + HAVE_INTTYPES_H from xm_defines. Define xm_file to mips/xm-iris5.h. + * mips/xm-iris5.h (USG): Delete. -Thu Sep 10 01:38:05 1998 Jeffrey A Law (law@cygnus.com) +Mon Jul 13 17:18:47 1998 Nick Clifton - * reg-stack.c (straighten_stack): Do nothing if the virtual stack is - empty or has a single entry. + * cccp.c (main): Add support for parsing --help. + (display_help): New function: display command line switches. - * toplev.c (rest_of_compilation): Open up the dump file for reg-stack - before calling reg_to_stack. + * cpplib.c (cpp_handle_option): Add support for parsing --help. + (display_help): New function: display command line switches. -Thu Sep 10 00:03:34 1998 Richard Henderson + * gcc.c (main): Add support for parsing --help, and passing it on + to the sub-processes invoked by gcc. + (display_help): New function: display command line switches. - * alpha.c (alphaev5_insn_pipe): Abort on default case. - (alphaev5_next_group): Swallow CLOBBERs and USEs. + * tm.texi (TARGET_SWITCHES and TARGET_OPTIONS): Document + 'description' field added to structure. - * c-tree.h (warn_long_long): Declare it. + * toplev.c: Add support for parsing --help. + Add documentation strings to command line option tables. + (display_help): New function: display comman line switches. -Wed Sep 9 23:31:36 1998 (Stephen L Moshier) +Mon Jul 13 16:15:10 1998 John Carr - * emit-rtl.c (gen_lowpart_common): Disable optimization of - initialized float-int union if the value is a NaN. + * sparc.c, sparc.h, sparc.md: New trampoline code. + Allow integer operand 1 to V8+ DImode shift instructions. + Fix bugs in V8+ wide multiply patterns. + In 32 bit mode, split DImode register moves and logical instructions. + Write V9 branch prediction flag. + Use V9 conditional move more often for scc. -Wed Sep 9 23:00:48 1998 Nathan Sidwell +Mon Jul 13 15:10:09 1998 Philippe De Muyter - * c-lex.c (real_yylex): Don't warn about long long constants if - we're allowing long long + * invoke.texi(-fno-builtin): Explain that the names of built-in + functions begin with `__builtin_', not `__'. -Wed Sep 9 21:58:41 1998 Bernd Schmidt +Mon Jul 13 19:01:52 1998 J"orn Rennecke - * except.h (current_function_eh_stub_label): Declare. - (current_function_eh_old_stub_label): Declare. - * function.h (struct function): New members eh_stub_label and - eh_old_stub_label. - * except.c (current_function_eh_stub_label): New variable. - (current_function_eh_old_stub_label): New variable. - (init_eh_for_function): Clear them. - (save_eh_status): Save them. - (restore_eh_status): Restore them. - (expand_builtin_eh_stub): Set current_function_eh_stub_label. - (expand_builtin_eh_stub_old): Set current_function_eh_old_stub_label. - * flow.c (find_basic_blocks_1): When handling a REG_LABEL note, don't - make an edge from the block that contains it to the block starting - with the label if this label is one of the eh stub labels. - If eh stub labels exist, show they are reachable from the last block - in the function. + * reload1.c (reload_reg_free_before_p): Abort for RELOAD_FOR_OUTPUT. - * reload1.c (reload): Break out several subroutines and make some - variables global. - (calculate_needs_all_insns): New function, broken out of reload. - (calculate_needs): Likewise. - (find_reload_regs): Likewise. - (find_group): Likewise. - (find_tworeg_group): Likewise. - (something_needs_reloads): New global variable, formerly in reload. - (something_needs_elimination): Likewise. - (caller_save_spill_class): Likewise. - (caller_save_group_size): Likewise. - (max_needs): Likewise. - (group_size): Likewise. - (max_groups): Likewise. - (max_nongroups): Likewise. - (group_mode): Likewise. - (max_needs_insn): Likewise. - (max_groups_insn): Likewise. - (max_nongroups_insn): Likewise. - (failure): Likewise. +Mon Jul 13 10:50:17 1998 Mark Mitchell - * print-rtl.c (print_rtx): For MEMs, print MEM_ALIAS_SET. + * cplus-dem.c (SCOPE_STRING): Remove DMGL_JAVA stuff. + (cplus_demangle_opname): Initialize work. + (demangle_template): Remove is_java_array. + (do_type): Remove DMGL_JAVA stuff. + (long_options): Remove "java". + (main): Remove 'j' option. -Wed Sep 9 13:14:41 1998 Richard Henderson +Mon Jul 13 10:19:00 1998 Jeffrey A Law (law@cygnus.com) - * loop.c (load_mems): Copy rtx for output mem. + * mn10300.h (REG_CLASS_FROM_LETTER): Map 'y' to SP_REGS. + Handle 'x' as NO_REGS for this cpu. + (REGNO_OK_FOR_BIT_BASE_P): Define. + (REG_OK_FOR_BIT_BASE_P): Define. + (GO_IF_LEGITIMATE_ADDRESS): Use them. + (REG_OK_FOR_INDEX_P): Tweak. + * mn13000.c (REG_SAVE_BYTES): Define. + (expand_epilogue, initial_offset): Use it. + (secondary_reload_class): Slightly reformat. + (output_tst): Tweak comments. + * mn10300.md: Change 'x' to 'y' for SP_REGS. Then add 'x' to many + patterns. + (addsi3): Turn into a define_expand/define_insn pair. Rework code for + three operand addition case to be more efficient. + (subsi3): Turn into a define_expand/define_insn pair. -Wed Sep 9 15:16:58 1998 Gavin Romig-Koch + * expr.c (expand_expr): Only set MEM_IN_STRUCT_P if the memory address + is not varying for REFERENCE_TYPE or when we think we might have found + an optimized access to the first element in an array. - * mips/abi64.h (LONG_MAX_SPEC): Don't set LONG_MAX for - mips1 or mips2 either. +Mon Jul 13 02:24:08 1998 David S. Miller -Wed Sep 9 12:31:35 1998 Jeffrey A Law (law@cygnus.com) + * regclass.c (reg_scan_mark_refs): New arg min_regno. Only update + regscan information for REGs with numbers greater than or equal to + this. All callers changed. + (reg_scan_update): New function to efficiently update regscan + information on the fly. + * rtl.h: Add prototype. + * jump.c (jump_optimize): Call it when we make a transformation + which generates new pseudo-REGs. - * pa.c (pa_reorg): New marking scheme for jumps inside switch - tables. - (pa_adjust_insn_length): Update to work with new marking scheme - for jumps inside switch tables. - * pa.md (switch_jump): Remove pattern. - (jump): Handle jumps inside jump tables. +Sun Jul 12 13:08:14 1998 Jeffrey A Law (law@cygnus.com) - * Makefile.in (profile.o): Depend on insn-config.h + * collect2.c (main): Use "-x c" instead of "-lang-c" for force the + compiler into C mode. -Wed Sep 9 09:36:51 1998 Jim Wilson +Sun Jul 12 01:27:05 1998 Jason Merrill - * iris6.h (DWARF2_UNWIND_INFO): Undef. + * cplus-dem.c (demangle_nested_args): Return a value. -Wed Sep 9 01:32:01 1998 David S. Miller + * tree.h (TYPE_P): New macro. - Add preliminary native sparcv9 Solaris support. - * configure.in: Recognize sparv9-*-solaris2* - * configure: Rebuilt. - * config.sub: Recognize sparcv9 just like sparc64. - * config/sparc/sol2-c1.asm config/sparc/sol2-ci.asm - config/sparc/sol2-cn.asm: Macroize so it can be shared between - 32-bit and 64-bit Solaris systems. - * config/sparc/t-sol2: Assemble those with cpp. - * config/sparc/sparc.h (TARGET_CPU_sparcv9): New alias for v9. - (*TF*_LIBCALL): If ARCH64 use V9 names. - * config/sparc/{xm-sysv4-64,sol2-sld-64}.h: New files. +Sat Jul 11 16:19:48 1998 Mark Mitchell -Wed Sep 9 01:07:30 1998 Jakub Jelinek + * cplus-dem.c (string): Move definition before work_stuff. + (work_stuff): Add volatile_type, forgetting_types, + previous_argument, and nrepeats fields. + (SCOPE_STRING): New macro. + (demangle_template): Add `remember' parameter. Add comment. + Register the `B' code type here, if remembering. Tidy. Fix crash + on NULL tmpl_argvec. Be consistent with use of tname/trawname. + (demangle_nested_args): New function. + (internal_cplus_demangle): Handle volatile-qualified member + functions. + (mop_up): Delete the previous_argument string if present. + (demangle_signature): Tidy. Handle volatile-qualified member + functions. Handle back-references using the `B' code. Use extra + parameter to demangle_template and SCOPE_STRING where appropriate. + (demangle_template_value_parm): Fix thinko; 'B' is not an integral + code. + (demangle_class): Use SCOPE_STRING. + (gnu_special): Pass additional argument to demangle_template. + Use SCOPE_STRING. + (demangle_qualified): Save qualified types for later + back-references. Handle constructors and destructors for template + types correctly. + (do_type): Tidy. Use SCOPE_STRING. Pass extra argument to + demangle_template. Use demangled_nested_args. Don't remember + qualified types here; that's now done in demangle_qualified. + Similarly for templates. + (do_arg): Improve comment. Handle 'n' repeat code. + (remember_type): Check forgetting_types. + (demangle_args): Deal with 'n' repeat codes. Tidy. + +Sat Jul 11 02:59:08 1998 Richard Earnshaw + + * arm.md (extendhisi2_mem, movhi, movhi_bytes): Propagate the volatile + and structure attribute flags to MEMs generated. + (splits for sign-extended HI & QI mode from memory): Also propagate + the volatile flag. + + * configure.in (thumb-*-coff*): Don't cause fixincludes to be run. + +Fri Jul 10 19:06:59 1998 Michael Meissner + + * varray.h: Include system.h if it hasn't already been included + before to get size_t declared. + +Fri Jul 10 12:53:58 1998 David S. Miller + + * jump.c (jump_optimize): If after_regscan and our transformations + generate new REGs, rerun reg_scan. + +Fri Jul 10 11:50:43 1998 Andrew MacLeod + + * config/i960/i960.c (i960_address_cost): MEMA operands with + positive offsets < 4096 are free. + +Fri Jul 10 12:34:37 1998 Andreas Schwab + + * config/m68k/m68k.c (const_uint32_operand): Recognize + CONSTANT_P_RTX. + (const_sint32_operand): Likewise. - * config/sparc/sparc.h (TARGET_CM_MEDMID): Fix documentation. - (CASE_VECTOR_MODE): Set to SImode even if PTR64, when MEDLOW and - not doing pic. - (ASM_OUTPUT_ADDR_{VEC,DIFF}_ELT): Check CASE_VECTOR_MODE not - Pmode. - * config/sparc/sparc.md (tablejump): Likewise, and sign extend op0 - to Pmode if CASE_VECTOR_MODE is something else. +Thu Jul 9 22:58:59 1998 Jeffrey A Law (law@cygnus.com) -Wed Sep 9 00:10:31 1998 Jeffrey A Law (law@cygnus.com) + * Makefile.in (alias.o): Depend on $(EXPR_H). - * prefix.c (update_path): Correctly handle cases where PATH is - a substring of the builtin prefix, but specifies a different - directory location. +Thu Jul 9 18:24:56 1998 J"orn Rennecke -Tue Sep 8 23:46:04 1998 Hans-Peter Nilsson + * reload1.c (choose_reload_regs): If using an equivalence from + find_equiv_reg and reg_reloaded_valid is not set for this register, + clear the associated spill_reg_store. - * expr.c: Corrected comment about what MOVE_RATIO does. - * config/alpha/alpha.h: Likewise. - * config/1750a/1750a.h: Likewise. - * config/clipper/clipper.h: Likewise. - * config/i386/i386.h: Likewise. +Thu Jul 9 18:12:49 1998 J"orn Rennecke -Tue Sep 8 22:56:12 1998 Jeffrey A Law (law@cygnus.com) + * reload1.c (emit_reload_insns): If an output reload copies only + to a secondary reload register, indicate that the secondary reload + does the actual store. - * configure.in (m68k-next-nextstep3*): Use collect2. - Similarly for x86 NeXT configurations. - * configure: Rebuilt. +Thu Jul 9 18:01:05 1998 J"orn Rennecke -Tue Sep 8 01:38:57 1998 Nathan Sidwell + * reload.c (find_equiv_reg): If need_stable_sp is set, + check if stack pointer is changed directly in a PARALLEL. - * configure.in: Don't assume srcdir is .../gcc. - * configure: Rebuilt. +Thu Jul 9 10:38:14 1998 Jeffrey A Law (law@cygnus.com) -Sat Sep 5 16:34:34 1998 John Wehle (john@feith.com) + * jump.c (duplicate_loop_exit_test): Fix thinko. - * global.c: Update comments. - (global_alloc): Assign allocation-numbers - even for registers allocated by local_alloc in case - they are later spilled and retry_global_alloc is called. - (mark_reg_store, mark_reg_clobber, - mark_reg_conflicts, mark_reg_death): Always record a - conflict with a pseudo register even if it has been - assigned to a hard register. - (dump_conflicts): Don't list pseudo registers already assigned to - a hard register as needing to be allocated, but do list their - conflicts. - * local-alloc.c: Update comment. +Thu Jul 9 01:30:37 1998 Joel Sherrill + Ralf Corsepius -Mon Sep 7 23:38:01 1998 Jeffrey A Law (law@cygnus.com) + * config/i386/rtemself.h: Updated to keep in sync with + config/i386/linux.h. - * configure.in: Check for bogus GCC_EXEC_PREFIX and LIBRARY_PATH. + * configure.in: Added sh-rtemself. * configure: Rebuilt. + * config/sh/rtems.h: Removed -D__ELF__ since it is now COFF. + * config/sh/rtemself.h: New file. -Mon Sep 7 22:41:46 1998 Michael Meissner - - * rs6000.c (rs6000_override_options): Fix name for ec603e, to add - missing 'c'. - * t-ppccomm (MULTILIB_MATCHES_FLOAT): Add support for -mcpu=xxx - for all targets that set -msoft-float. + * config/rs6000/rtems.h: Defined STARTFILE_DEFAULT_SPEC. -Mon Sep 7 23:30:07 1998 Kaveh R. Ghazi +Wed Jul 8 21:43:14 1998 Jeffrey A Law (law@cygnus.com) - * toplev.c (print_switch_values): Make static to match prototype. + * configure.in: Check if the assembler supports ".balign" and + ".p2align" and define HAVE_GAS_BALIGN_AND_P2ALIGN appropriately. + * acconfig.h (HAVE_GAS_BALIGN_AND_P2ALIGN): New tag. + * i386/gas.h (ASM_OUTPUT_ALIGN): If the assembler has support for + ".balign" then use it. -Mon Sep 7 19:13:59 1998 Jeffrey A Law (law@cygnus.com) + * print-rtl.c (print_rtx): Revert previous patch. - * configure.in: If we are unable to find the "gnatbind" program, - then do not configure the ada subdir. - * configure: Rebuilt. + * jump.c (duplicate_loop_exit_test): Do not duplicate the loop exit + test if the exit code has an insn with ASM_OPERANDS. -Sun Sep 6 14:03:58 1998 Jeff Law (law@cygnus.com) + * i386/cygwin32.h (STDIO_PROTO): Fix typo. + * m32r.h (STDIO_PROTO): Fix typo. - * version.c: Bump for snapshot. + * pa.h (LEGITIMIZE_RELOAD_ADDRESS): Handle addresses created by + LEGITIMIZE_RELOAD_ADDRESS. + * tm.texi (LEGITIMIZE_RELOAD_ADDRESS): Note that this macro must be + able to handle addresses created by previous invocations of the macro. -Sun Sep 6 13:28:07 1998 Jeff Law (law@cygnus.com) + * flow.c (find_auto_inc): Remove most recent change. Real bug was + elsewhere. - * version.c: Bump for snapshot. + * cse.c (count_reg_usage): Count registers used in addresses of + CLOBBERs. -Sun Sep 6 08:54:14 1998 Kaveh R. Ghazi +Wed Jul 8 15:08:29 1998 Jim Wilson - * Makefile.in (toplev.o): Depend on $(EXPR_H). - (insn-extract.o, insn-attrtab.o): Depend on toplev.h. + * Makefile.in (STAGESTUFF): Readd line lost during June 9 FSF merge. - * gansidecl.h: Define ATTRIBUTE_NORETURN. + * configure.in (mips64orion-*-rtems*): Use elf64.h not elfl64.h. - * genattrtab.c: Have insn-attrtab.c include toplev.h. +1998-07-08 Vladimir N. Makarov - * genextract.c: Have insn-extract.c include toplev.h. + * config/fp-bit.c (__gexf2, __fixxfsi, __floatsixf): Add function + stubs. - * rtl.h: Don't prototype `fatal_insn_not_found' and `fatal_insn'. + * toplev.c (lang_options): Add -Wlong-long, -Wno-long-long + options. + * c-decl.c (warn_long_long): Define. + (c_decode_option): Parse -Wlong-long, -Wno-long-long options. + (grokdeclarator): Add flag `warn_long_long' as guard for + warning "ANSI C does not support `long long'". + * invoke.texi: Add description of options -Wlong-long, + -Wno-long-long. + * gcc.1: The same as above. + +Wed Jul 8 02:43:34 1998 Jeffrey A Law (law@cygnus.com) - * toplev.c: Include expr.h. - (really_sorry, fancy_abort): Remove prototypes. - (set_target_switch): Add argument in prototype. - (vfatal): Mark prototype with ATTRIBUTE_NORETURN. - (v_really_sorry): Likewise. - (print_version, print_single_switch, print_switch_values): Make - static and add prototype arguments. - (decl_printable_name): Add prototype arguments. - (lang_expand_expr_t): New typedef. - (lang_expand_expr): Declare as a lang_expand_expr_t. - (incomplete_decl_finalize_hook): Add prototype argument. - (decl_name): Mark variable `verbosity' with ATTRIBUTE_UNUSED. - (botch): Likewise for variable `s'. - (rest_of_type_compilation): Mark variables `type' and `toplev' - with ATTRIBUTE_UNUSED if none of DBX_DEBUGGING_INFO, - XCOFF_DEBUGGING_INFO or SDB_DEBUGGING_INFO are defined. - (display_help): Make variable `i' an `unsigned long'. - (main): Remove unused parameter `envp'. - Cast assignment to `lang_expand_expr' to a `lang_expand_expr_t'. - Cast -1 when comparing it with a `size_t'. + * rtlanal.c (reg_overlap_mentioned_p): Handle STRICT_LOW_PART. If + either argument is CONSTANT_P, then return zero. + * reload.c (reg_overlap_mentioned_for_reload_p): Similarly. - * toplev.h (fatal, fatal_io_error, pfatal_with_name): Mark - prototype with ATTRIBUTE_NORETURN. - (fatal_insn_not_found, fatal_insn, really_sorry, - push_float_handler, pop_float_handler): Add prototypes. - (fancy_abort): Mark prototype with ATTRIBUTE_NORETURN. - (do_abort, botch): Add prototypes. + * configure.in: Also look at $srcdir/gas/configure to find a + gas version #. -Sat Sep 6 12:05:18 1998 John Carr +Wed Jul 8 00:28:22 1998 Carlo Wood - * final.c (final): If a label is reached only from a single jump, - call NOTICE_UPDATE_CC on the jump and its predecessor before - emitting the insn after the label. + * dsp16xx.h : Clean up of macro OPTIMIZATION_OPTIONS - * i386.h: Add AMD K6 support. - Change TARGET_* macros to use table lookup. - (INITIALIZE_TRAMPOLINE): Improve trampoline code. - (ADJUST_COST): Change definition to call function in i386.c. - (ISSUE_RATE): Define as 2 for anything newer than an 80486. - * i386.c: Add AMD K6 support. - Add constants for feature tests used by TARGET_* macros. - (split_di): If before reload, call gen_lowpart and gen_highpart. - (x86_adjust_cost): New function. - (put_jump_code): New function. - (print_operand): New codes 'D' and 'd'. - * i386.md: New insn types. New insn attribute "memory". - Redefine scheduling parameters to use new types and add AMD K6 - support. Explicitly set type of most insns. - (move insns): K6 prefers movl $0,reg to xorl reg,reg. Pentium - Pro and K6 prefer movl $1,reg to incl reg. - (adddi3, subdi3): Set cc_status. - (DImode shift patterns): Change label counters from HOST_WIDE_INT - to int; x86 can't have more than 2^31 DImode shifts per file. - (setcc): Combine all setcc patterns. Allow writing memory. - Combine all jump patterns using match_operator. - (*bzero): Name pattern. Emit multiple stos instructions when that - is faster than rep stos. - (xordi3, anddi3, iordi3): Simplify DImode logical patterns and - add define_split. +Tue Jul 7 21:18:14 1998 Mumit Khan -Sun Sep 6 11:17:20 1998 Dave Love + * i386/cygwin32.h (ASM_DECLARE_FUNCTION_NAME): Merge duplicate + definitions from last two patches. - * config/m68k/x-next (BOOT_LDFLAGS): Define suitably for f771 - linking. +Tue Jul 7 23:03:34 1998 J"orn Rennecke -Sat Sep 5 22:05:25 1998 Richard Henderson + * reload1.c (choose_reload_regs): Don't set reload_override_in + if EQUIV is clobbered in INSN and the reload is done after INSN. - * alpha.c (alpha_ra_ever_killed): Inspect the topmost sequence, - not whatever we're generating now. +Tue Jul 7 21:23:36 1998 J"orn Rennecke - * alpha.c (set_frame_related_p, FRP): New. - (alpha_expand_prologue): Mark frame related insns. - (alpha_expand_epilogue): Likewise, but with a null FRP. - * alpha.h (INCOMING_RETURN_ADDR_RTX): New. - * alpha.md (exception_receiver): New. - * alpha/crtbegin.asm (.eh_frame): New beginning. - (__do_frame_setup, __do_frame_takedown): New. - * alpha/crtend.asm (.eh_frame): New ending. - * alpha/elf.h (DWARF2_DEBUGGING_INFO): Define. - (ASM_SPEC): Don't emit both dwarf2 and mdebug. - (ASM_FILE_START): Don't emit .file for dwarf2. + * expr.c (emit_queue): If emitting a SEQUENCE, set QUEUED_INSN + to the first insn of the sequence. - * rtl.h (enum reg_note): Add REG_FRAME_RELATED_EXPR. - * rtl.c (reg_note_name): Likewise. - * rtl.texi (REG_NOTES): Likewise. - * dwarf2out.c (dwarf2out_frame_debug): Use it. Recognize a store - without an offset. +Tue Jul 7 21:05:25 1998 J"orn Rennecke -Sat Sep 5 14:47:17 1998 Richard Henderson + * cse.c (cse_insn): Don't make change without validation. - * i386.h (PREFERRED_RELOAD_CLASS): Standard fp constants load to TOS. - * i386.md (movsf, movdf, movxf): Validate memory address returned - from force_const_mem. Kill useless REG_EQUAL setting code. +Tue Jul 7 11:40:05 1998 Jeffrey A Law (law@cygnus.com) -Sat Sep 5 14:23:31 1998 Torbjorn Granlund + * mn10200.md (various zero/sign extension patterns): Zero and sign + extensions which use "sub" clobber cc0. - * m68k.md (zero_extendsidi2): Fix typo. +Tue Jul 7 09:12:08 1998 Jeff Law (law@cygnus.com) -Sat Sep 5 13:40:24 1998 Krister Walfridsson + * version.c: Bump for snapshot. - * configure.in: Removed references to the removed file. - * config/xm-netbsd.h: Use ${cpu_type}/xm-netbsd.h for - arm*-*-netbsd* and ns32k-*-netbsd*. - * config/i386/xm-netbsd.h: Removed unnecessary file. - * config/m68k/xm-netbsd.h: Likewise. - * config/sparc/xm-netbsd.h: Likewise. - * config/mips/xm-netbsd.h: Likewise. +Tue Jul 7 10:07:20 1998 Jeffrey A Law (law@cygnus.com) -Sat Aug 29 13:32:58 1998 Mumit Khan + * print-rtl.c (print_rtx): Use REAL_VALUE_TYPE instead of "double". - * i386/cygwin32.h (BIGGEST_ALIGNMENT): Define. - (PCC_BITFIELD_TYPE_MATTERS): Define to be 0. +Tue Jul 7 08:41:27 1998 Richard Henderson (rth@cygnus.com) - * i386/cygwin32.h (ASM_OUTPUT_SECTION_NAME): Don't check for - for exact section attributions. + * print-rtl.c (print_rtx): Only print fp values when REAL_VALUE_TYPE + is a double. - * i386/mingw32.h (CPP_PREDEFINES): Add __MSVCRT__ for msvc - runtime. - * i386/crtdll.h (CPP_PREDEFINES): Define. +Tue Jul 7 00:31:58 1998 Jeff Law (law@cygnus.com) -Sat Sep 5 03:23:05 1998 Jeffrey A Law (law@cygnus.com) + * version.c: Bump for snapshot. - * m68k.md (5200 movqi): Do not allow byte sized memory references - using address regs. - * m68k.c (output_move_qimode): Do not use byte sized operations on - address registers. +Tue Jul 7 01:03:03 1998 Mumit Khan - * Makefile.in (pexecute.o): Use pexecute.c from libiberty. Provide - explicit rules for building. Similarly for alloca, vfprintf, - choose-temp and mkstemp, getopt, getopt1, and obstack. - (INCLUDES): Add $(srcdir)/../include. - * pexecute.c, alloca.c, vfprintf.c, choose-temp.c, mkstemp.c: Delete. - * getopt.h, getopt.c getopt1.c, obstack.c, obstack.h: Likewise. + Support for dllimport and dllexport attributes for i386-pe. -Fri Sep 4 11:57:50 1998 Tom Tromey + * tree.h (DECL_NON_ADDR_CONST_P): New accessor macro. + (struct tree_decl): Add non_addr_const_p field. + * tree.c (staticp): Use. - * gcc.c (do_spec_1): [case 'o'] Account for - lang_specific_extra_outfiles. - (main): Correctly clear all slots in outfiles for - lang_specific_extra_outfiles. Set input_file_number before - calling lang_specific_pre_link. + * i386/cygwin32.h (CPP_PREDEFINES): Map __declspec(x) to GCC + attributes. + (SUBTARGET_SWITCHES): Switches to turn on/off dllimport|export + attributes. Also accept -mwindows option. + (VALID_MACHINE_DECL_ATTRIBUTE): New macro. + (MERGE_MACHINE_DECL_ATTRIBUTE): New macro. + (REDO_SECTION_INFO_P): New macro. + (DRECTVE_SECTION_FUNCTION): New macro. + (drectve_section): Cover function to implement above. + (SWITCH_TO_SECTION_FUNCTION): New macro. + (switch_to_section): Covert function to implement above. + (EXTRA_SECTIONS): Add in_drectve. + (EXTRA_SECTION_FUNCTIONS): Add in_drectve and switch_to_section. + (ENCODE_SECTION_INFO): Delete old macro and redefine as a function. + (STRIP_NAME_ENCODING): Handle new attributes. + (ASM_OUTPUT_LABELREF): New macro. + (ASM_OUTPUT_FUNCTION_NAME): New macro. + (ASM_OUTPUT_COMMON): New macro. + (ASM_OUTPUT_DECLARE_OBJECT_NAME): New macro. -Fri Sep 4 10:37:07 1998 Jim Wilson + * i386/mingw32.h (CPP_PREDEFINES): Map __declspec(x) to GCC + attributes. - * loop.c (load_mems): Fix JUMP_LABEL field after for_each_rtx call. + * i386/winnt.c (i386_pe_valid_decl_attribute_p): New function. + (i386_pe_merge_decl_attributes): New function. + (i386_pe_check_vtable_importexport): New function. + (i386_pe_dllexport_p): New function. + (i386_pe_dllimport_p): New function. + (i386_pe_dllexport_name_p): New function. + (i386_pe_dllimport_name_p): New function. + (i386_pe_mark_dllexport): New function. + (i386_pe_mark_dllimport): New function. + (i386_pe_encode_section_info): New function. + (i386_pe_unique_section): Strip encoding from name first. -Fri Sep 4 02:01:05 1998 David S. Miller +Tue Jul 7 00:50:17 1998 Manfred Hollstein (manfred@s-direktnet.de) - * config/sparc/sparc.c (output_double_int): In all V9 symbolic - cases, use xword. - (sparc_output_deferred_case_vectors): If no work to do, return. - Fix thinko in Sept 1 change. + * libgcc2.c (L_exit): Provide a fake for atexit on systems which + define ON_EXIT but not HAVE_ATEXIT. -1998-09-03 SL Baur +Tue Jul 7 00:44:35 1998 Franz Sirl - * Makefile.in: Add semicolon in BISON definition for portability. + * m68k.md (zero_extend QI to HI): Correctly handle TARGET_5200. -Thu Sep 3 13:34:41 1998 Toon Moene +Tue Jul 7 00:36:41 1998 Ulrich Drepper - * config/nextstep.c (handle_pragma): Correct name of third - argument. + * i386.c: Remove random whitespace at end of lines. -Tue Sep 1 11:30:33 1998 Nick Clifton + * i386.c (ix86_epilogue): For pentium processors, try to deallocate + 4 or 8 byte stacks with pop instructions instead of an add instruction. - * config/m32r/m32r.md: Change (reg:CC 17) to (reg:SI 17). - * config/m32r/m32r.h: Make register 17 be fixed. - * config/m32r/m32r.c: Use SImode for cc operations. +Tue Jul 7 00:30:08 1998 Klaus Kaempf -Thu Sep 3 18:17:34 1998 Benjamin Kosnik + * alpha.c: Include tree.h before expr.h. - * invoke.texi (Warning Options): Add -Wnon-template-friend - documentation. +Mon Jul 6 22:50:48 1998 Jason Merrill -Thu Sep 3 18:16:16 1998 Michael Meissner + * c-parse.in (struct_head, union_head, enum_head): New nonterminals. + (structsp): Use them. Update files generated from c-parse.in. + * extend.texi (Type Attributes): Document it. - * rs6000.c (rs6000_override_options): Add -mcpu={401,e603e}. + * c-decl.c: Add warn_multichar. + (c_decode_option): Handle -Wno-multichar. + * c-lex.c (yylex): Check it. + * c-tree.h: Declare it. + * toplev.c (lang_options): Add it. + * invoke.texi: Document it. -Thu Sep 3 18:05:16 1998 David Edelsohn +Mon Jul 6 22:47:55 1998 J"orn Rennecke - * rs6000.md (movsf): Disable explicit secondary-reload-like - functionality if TARGET_POWERPC64. - (movdf): Remove TARGET_POWERPC64 explicit secondary-reload-like - functionality. + * reload.c (find_equiv_reg): When looking for stack pointer + const, + make sure we don't use a stack adjust. -Thu Sep 3 11:41:40 1998 Robert Lipe + * reload.c (find_equiv_reg): If need_stable_sp is set, + check if stack pointer is changed directly. - * fixinc.sco: Borrow code to wrap 'bool' typedefs from tinfo.h - and term.h from fixinc.wrap. + * reload1.c (delete_dead_insn): Don't delete feeding insn + if that insn has side effects. -Thu Sep 3 09:47:31 1998 Kaveh R. Ghazi + * flow.c (find_auto_inc): Clear UNCHANGING bit of register that is + changed. - * aclocal.m4 (GCC_HEADER_STRING): New macro to detect if it is - safe to include both string.h and strings.h together. - (GCC_NEED_DECLARATION): Test STRING_WITH_STRINGS when deciding - which headers to search for function declarations. Continue to - prefer string.h over strings.h when both are not acceptable. + * reload1.c (reload_reg_free_before_p): RELOAD_FOR_OPADDR_ADDR + precedes RELOAD_FOR_OUTADDR_ADDRESS. - * acconfig.h (STRING_WITH_STRINGS): Add stub. + * gcse.c (hash_scan_insn): New argument IN_LIBCALL_BLOCK. Changed + caller. - * configure.in: Call GCC_HEADER_STRING. +Mon Jul 6 22:21:56 1998 Kamil Iskra - * system.h: Test STRING_WITH_STRINGS when deciding which headers - to include. Continue to prefer string.h over strings.h when both - are not acceptable. + * m68k.c (output_scc_di): Use cmpw #0 instead of tstl when + testing address registers on the 68000. -Wed Sep 2 23:56:29 1998 David S. Miller +Mon Jul 6 22:17:19 1998 Alasdair Baird - * config/sparc/sparc.c (output_double_int): If V9 and MEDLOW, do - not assume top 32-bits of symbolic addresses are zero if - flag_pic. + * i386.c (is_fp_test): Fix thinko. -Thu Sep 3 00:23:21 1998 Richard Henderson + * jump.c (jump_optimize): Check for CONST_INT before using INTVAL. - * ginclude/va-alpha.h: Protect entire second portion of the - file against double inclusion. +Mon Jul 6 22:14:31 1998 Richard Henderson (rth@cygnus.com) -Thu Sep 3 00:37:55 1998 Ovidiu Predescu + * print-rtl.c (print_rtx): Display the real-value equivalent of + a const_double when easy. - Added support for the Boehm's garbage collector. - * configure.in: Handle --enable-objc-gc. - * configure: Rebuilt. - * Makefile.in (CHECK_TARGETS): Add check-objc. - (check-objc): New rule. - * objc/Make-lang.in: Build a different Objective-C library that - runs with the Boehm's collector. - * objc/encoding.c (objc_round_acc_size_for_types): New function. - * objc/encoding.c: Correctly compute the size of compound types in - the presence of bitfields. Skip the variable name of the type if - any. Added support for long long. - * objc/encoding.h (_C_GCINVISIBLE): New specifier. - (_F_GCINVISIBLE): New mask. - * objc/gc.c: New file. Compute the type memory mask associated with - a class based on the runtime information. - * objc/misc.c: Added the hooks that use the Boehm's collector - allocation functions. - * objc/objc-act.c (build_class_template): Generate a new class - member (gc_object_type) to hold the class' type memory mask. - (build_shared_structure_initializer): Initialize the new member to - NULL. - (encode_complete_bitfield): New function. Generate the new - encoding. - (encode_field_decl): Generate the new encoding only for the GNU - runtime. - * objc/objc-api.h (_C_LNG_LNG, _C_ULNG_LNG): New specifiers for the - long long types. - (class_get_gc_object_type): New function to mark a pointer instance - variable as a weak pointer. - * objc/objc-features.texi: New file. - * objc/objc.h (gc_object_type): New class member. - * objc/objects.c (class_create_instance): Create a typed memory - object when compiled with Boehm's collector support. - * objc/sendmsg.c (__objc_init_install_dtable): Call - __objc_send_initialize instead of setting the initialize flag. - (__objc_send_initialize): Call __objc_generate_gc_type_description - to generate the class type memory mask. Rewrite the code that - sends the +initialize so that it is called only once (bug report - and fix from Ronald Pijnacker ). - * testsuite/objc: New testsuite for Objective-C type encoding. - * testsuite/lib/objc-torture.exp: New file. - * testsuite/lib/objc.exp: New file. + * real.h (REAL_VALUE_TO_TARGET_SINGLE): Use a union to pun types. + Zero memory first for predictability. + (REAL_VALUE_TO_TARGET_DOUBLE): Likewise. + * varasm.c (immed_real_const_1): Notice width of H_W_I == double. -Wed Sep 2 14:47:36 1998 Jim Wilson + * regclass.c (allocate_reg_info): Initialize the entire reg_data + virtual array. - * jump.c (jump_optimize): In if/then/else transformations, add - another call to modified_between_p for the jump insn. +Mon Jul 6 22:09:32 1998 Ian Lance Taylor + Jeff Law -Wed Sep 2 14:16:49 1998 Jeffrey A Law (law@cygnus.com) + * i386/cygwin32.h: Add some declaration of external functions. + (ASM_DECLARE_FUNCTION_NAME): Define. + (ASM_OUTPUT_EXTERNAL, ASM_OUTPUT_EXTERNAL_LIBCALL): Define. + (ASM_FILE_END): Define. + * i386/winnt.c (i386_pe_declare_function_type): New function. + (struct extern_list, extern_head): Define. + (i386_pe_record_external_function): New function. + (i386_pe_asm_file_end): New function. - * fix-header.c (symlink): Treat like readlink. + * cpplib.c (cpp_options_init): Initialize cplusplus_comments to 1, + matching July 18, 1995 change to cccp.c. If -traditional then + disable cplusplus_comments. -Wed Sep 2 19:30:06 1998 J"orn Rennecke +Mon Jul 6 21:28:14 1998 Jeffrey A Law (law@cygnus.com) - * dwarfout.c (fundamental_type_code): Encode 32 bit floats/doubles - as FT_float. + * combine.c (expand_compound_operation): Fix thinko in code to optimize + (zero_extend:DI (subreg:SI (foo:DI) 0)) to foo:DI. -Wed Sep 2 10:06:07 1998 Nick Clifton + * Disable the following change from gcc2. Not appropriate for egcs: - * config/nextstep.h: Update HANDLE_PRAGMA macro. - * config/h8300/h8300.h: Update HANDLE_PRAGMA macro. - * config/i960/i960.h: Update HANDLE_PRAGMA macro. + Sun Jun 7 09:30:31 1998 Richard Kenner + * reload.c (find_reloads): Give preference to pseudo that was the + reloaded output of previous insn. - * config/nextstep.c (handle_pragma): Take three arguments, as per - the new HANDLE_PRAGMA macro specification. - * config/h8300/h8300.c (handle_pragma): Take three arguments, as - per the new HANDLE_PRAGMA macro specification. - * config/i960/i960.c (process_pragma): Take three arguments, as - per the new HANDLE_PRAGMA macro specification. +Mon Jul 6 21:07:14 1998 Kaveh R. Ghazi -Wed Sep 2 09:25:29 1998 Nick Clifton + * aclocal.m4 (GCC_FUNC_PRINTF_PTR): Don't define HOST_PTR_PRINTF. + Instead, define a new macro HAVE_PRINTF_PTR which only signifies + whether we have the %p format specifier or not. - * c-lex.c (check_newline): Call HANDLE_PRAGMA before - HANDLE_SYSV_PRAGMA if both are defined. Generate warning messages - if unknown pragmas are encountered. - (handle_sysv_pragma): Interpret return code from - handle_pragma_token (). Return success/failure indication rather - than next unprocessed character. - (pragma_getc): New function: retrieves characters from the - input stream. Defined when HANDLE_PRAGMA is enabled. - (pragma_ungetc): New function: replaces characters back into the - input stream. Defined when HANDLE_PRAGMA is enabled. + * acconfig.h: Delete stub for HOST_PTR_PRINTF, add HAVE_PRINTF_PTR. + + * machmode.h (HOST_PTR_PRINTF): When determining the definition, + check HAVE_PRINTF_PTR to see whether "%p" is okay. - * c-pragma.c (handle_pragma_token): Return success/failure status - of the parse. + * mips-tfile.c: Include machmode.h to get HOST_PTR_PRINTF. - * c-pragma.h: Change prototype of handle_pragma_token(). + * Makefile.in (mips-tfile.o): Depend on machmode.h. - * varasm.c (handle_pragma_weak): Only create this function if - HANDLE_PRAGMA_WEAK is defined. +Mon Jul 6 10:42:05 1998 Mark Mitchell - * c-common,c (decl_attributes): If defined call the expression - contained within the INSERT_ATTRIBUTES macro before adding - attributes to a decl. + * jump.c (duplicate_loop_exit_test): Don't refuse to copy a + section of code just because it contains + NOTE_INSN_BLOCK_{BEG,END}. + * stmt.c (expand_end_loop): Likewise. Also, don't refuse to + move CALL_INSNs or CODE_LABELs. When moving code, don't move + NOTE_INSN_BLOCK_{BEG,END}. - * tm.texi (HANDLE_PRAGMA): Document the new version of - HANDLE_PRAGMA, which takes three arguments. - (INSERT_ATTRIBUTES): Document this new macro. +Mon Jul 6 09:38:15 1998 Mark Mitchell - * LANGUAGES: Document the new version of HANDLE_PRAGMA and the - new INSERT_ATTRIBUTES macro. + * cse.c (CSE_ADDRESS_COST): New macro, based on ADDRESS_COST, but + dealing with ADDRESSOF. + (find_best_addr): Use it. -Wed Sep 2 02:03:23 1998 David S. Miller +Mon Jul 6 09:27:08 1998 Richard Henderson - * config/sparc/sparc.md (movdf): Only generate special RTL for - LABEL_REFs when PIC. - (move_label_di): Remove. - (movdi_pic_label_ref, movdi_high_pic_label_ref, - movdi_lo_sum_pic_label_ref): New patterns for 64-bit label - references when PIC. - * config/sparc/sparc.h (ASM_OUTPUT_ADDR_VEC_ELT, - ASM_OUTPUT_ADDR_DIFF_ELT): Don't do anything special for MEDLOW, - output an .xword for all 64-bit cases. + * alpha/vms.h (TRAMPOLINE_TEMPLATE): Revert last change. -Tue Sep 1 15:55:17 1998 David S. Miller +Mon Jul 6 09:25:06 1998 Dave Love - * config/sparc/sparc.c (finalize_pic): Don't output arbitrary - alignment, use FUNCTION_BOUNDARY instead. - (sparc_output_deferred_case_vectors): Likewise. + * libgcc2.c (__eprintf): Make args consistent with prototype in + assert.h. -Mon Aug 31 17:25:41 1998 David S. Miller +Mon Jul 6 00:28:43 1998 Mark Mitchell - * config/sparc/sparc.md (movsf_const_intreg): Kill warning. - (movtf_insn_sp64, movtf_no_e_insn_sp64): Reorder alternatives. + * cse.c (cse_insn): When SETting (MEM (ADDRESSOF (X))) to Y, + don't claim that the former is equivalent to the latter. -Mon Aug 31 13:57:55 1998 Richard Henderson +Sun Jul 5 23:58:19 1998 Jeffrey A Law (law@cygnus.com) - * alpha/va_list.h: New file. - * alpha/x-alpha (EXTRA_HEADERS): New. Add va_list.h. + * cse.c (cse_insn): Second arg is an RTX now. Update all callers. + (cse_basic_block): Keep track of the current RETVAL insn for a + libcall instead of just noting that we're in a libcall. + + * combine.c (simplify_comparison): Do not commute a AND into + a paradoxical SUBREG if not WORD_REGISTER_OPERATIONS. + + * i386/freebsd-elf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Protect with + HAVE_GAS_MAX_SKIP_P2ALIGN. + * i386/linux.h: Likewise. + +Fri Jul 3 02:33:35 1998 David S. Miller + + * sparc.c (sparc_operand, move_operand, arith_operand, + arith11_operand, arith10_operand, arith_double_operand, + arith11_double_operand, arith10_double_operand, small_int, + uns_small_int): Recognize CONSTANT_P_RTX. + (output_sized_memop, output_move_with_extension, + output_load_address, output_size_for_block_move, + output_block_move, delay_operand): Remove, has not been + enabled or referenced for years. + * sparc.md (movstrsi, block_move_insn): Likewise. + * sparc.h (PREDICATE_CODES): Define. + * linux-aout.h (MACHINE_STATE_{SAVE,RESTORE}): Override with + version which uses getcc/setcc traps to save/restore condition + codes. + * linux64.h: Likewise. + * sunos4.h: Likewise. + * linux.h: Likewise. + * sol2.h: Likewise. + * sun4o3.h: Likewise. + +Fri Jul 3 02:28:05 1998 Richard Henderson + + * alpha.c (alpha_initialize_trampoline): Hack around Pmode/ptr_mode + lossage on VMS. Reported by kkaempf@rmi.de. + * alpha/vms.h (TRAMPOLINE_TEMPLATE): Add missing 0. -Mon Aug 31 14:55:02 1998 Jeffrey A Law (law@cygnus.com) +Thu Jul 2 17:41:14 1998 Nick Clifton - * NEWS: Add SCO Openserver and Unixware 7 notes. + * config/m32r/m32r.h (MUST_PASS_IN_STACK): Override default + version. - * NEWS: Fix typos. +Thu Jul 2 14:34:48 1998 David Edelsohn -Mon Aug 31 15:42:18 1998 Dave Brolley + * expr.h (STACK_SIZE_MODE): New macro. + * explow.c (allocate_dynamic_stack_space): Use it for + mode of allocate_stack pattern increment operand. + * tm.texi (STACK_SAVEAREA_MODE, STACK_SIZE_MODE): Document. + * md.texi (stack_save_block, ...): Reflect use of macro. - * varasm.c (compare_constant_1): Handle RANGE_EXPR. - (record_constant_1): Handle RANGE_EXPR. + * rs6000.h (PROMOTE_MODE): Always promote to word_mode. + (PROMOTE_FUNCTION_ARGS): Define. + (PROMOTE_FUNCTION_RETURN): Define. + (FUNCTION_VALUE): Promote to word_mode if smaller. + Convert to gen_rtx_FOO. + * rs6000.md (call_indirect): Store doubleword in 64-bit mode. + Convert to gen_rtx_FOO. + * rs6000.c: Convert to gen_rtx_FOO. + +Thu Jul 2 14:16:11 1998 Michael Meissner -Mon Aug 31 10:54:03 1998 Richard Henderson + * varray.{c,h}: New files to provide virtual array support. - * print-rtl.c (print_rtx): NOTE_INSN_LIVE has an rtx not a bitmap. - * haifa-sched.c (sched_analyze): Handle NOTE_INSN_RANGE_START - and NOTE_INSN_RANGE_END specially. - (reemit_notes): Likewise. + * Makefile.in (OBJS): Add varray.o. + (varray.o): Add new file. + (REGS_H): New variable for dependencies for files including + regs.h. Add varray.h and files it includes. Change all regs.h + dependencies to $(REGS_H). -Mon Aug 31 10:18:52 1998 Kaveh R. Ghazi + * toplev.c (x{m,re}alloc): If size is 0, allocate 1 byte. + (xcalloc): Provide frontend for calloc. + * {tree,rtl}.h (xcalloc): Add declaration. - * sparc.c (TMASK, UMASK): Use `(unsigned)1' not `1U'. - (ultrasparc_sched_init): Remove unneeded &. + * basic-block.h (REG_BASIC_BLOCK): Convert reg_n_info to be a + varray. -Mon Aug 31 10:47:16 1998 Andreas Schwab + * regs.h (toplevel): Include varray.h. + (reg_n_info): Switch to use a varray. + (REG_*): Likewise. + (allocate_reg_info): Change num_regs argument to be size_t. - * config/m68k/m68k.h (TARGET_SWITCHES): Don't remove MASK_68040 - for m68020-60, to prevent the use of fintrz. + * regclass.c (reg_info_data): New structure to remember groups of + reg_info structures allocated that are to be zeroed. + ({pref,alt}class_buffer): New statics to hold buffers + allocate_reg_info allocates for {pref,alt}class_buffer. + (regclass): Use {pref,alt}class_buffer to initialize + {pref,alt}class. + (allocate_reg_info): Switch to make reg_n_info use varrays. + Allocate buffers for the preferred and alter register class + information. Change num_regs argument to be size_t, not int. -Sun Aug 30 22:17:20 1998 Mark Mitchell + * flow.c (reg_n_info): Switch to use varrays. - * configure.in: If the native compiler is GCC use $(WARN_CFLAGS) - even in stage1. - * Makefile.in: Likewise. - * configure: Regenerated. +Thu Jul 2 10:11:47 1998 Robert Lipe -Sun Aug 30 22:15:41 1998 H.J. Lu (hjl@gnu.org) + * install.texi (sco3.2v5): Document new --with-gnu-as flag. + * config/i386/sco5.h (JUMP_TABLES_IN_TEXT_SECTION): Defined as + in other targets. + (USE_GAS): Conditionalize away native assembler usage. + * config/i386/sco5gas.h: New file. + * config/i386/t-sco5gas: New file. + * configure.in (ix86-sco3.2v5*): Use new files if --with-gnu-as - * configure.in (gxx_include_dir): Changed to - '${prefix}/include/g++'-${libstdcxx_interface}. - * configure: Rebuilt. +Thu Jul 2 08:20:00 1998 Catherine Moore -Sun Aug 30 20:19:43 1998 Hans-Peter Nilsson + * haifa-sched.c (alloc_EXPR_LIST): Change to use + unused_expr_list. - * expr.c (expand_expr): Change ">" to ">=" making MOVE_RATIO use - consistent. - * tm.texi (Costs): Say MOVE_RATIO is number of mem-mem move - *sequences* *below* which scalar moves will be used. +Thu Jul 2 14:13:28 1998 Dave Love -Sun Aug 30 17:18:43 1998 Jeffrey A Law (law@cygnus.com) + * Makefile.in (install-info): Don't use $realfile. Ignore + possible errors from the install-info program. - * collect2.c (mktemp): Delete unused declaration. +Thu Jul 2 01:53:32 1998 Alasdair Baird - * config/xm-netbsd.h: Remove unnecessary file. - * config/*/xm-netbsd.h: Do not include the generic xm-netbsd.h - file anymore, it is not needed. + * combine.c (simplify_comparison): Apply SUBREG_REG to SUBREGs. -Sun Aug 30 16:05:45 1998 Mark Mitchell +Wed Jul 1 23:06:03 1998 Richard Henderson - * convert.c (convert_to_integer): Issue an error on conversions to - incomplete types. + * i386.h (HARD_REGNO_MODE_OK): Kill spurious test. + (MODES_TIEABLE_P): Tie SImode and HImode. -Sun Aug 30 16:47:20 1998 Martin von Lvwis +1998-07-01 Andreas Jaeger - * Makefile.in: Add lang_tree_files and gencheck.h. - * configure.in: Generate them. - * gencheck.c: Include gencheck.h. + * invoke.texi (Optimize Options): Fix typo. -Sat Aug 29 21:38:24 1998 David S. Miller +Wed Jul 1 22:25:43 1998 Jim Wilson - * config/sparc/sparc.md (pic_lo_sum_di, pic_sethi_di): Rename to - movdi_lo_sum_pic and movdi_high_pic and make visible. - * config/sparc/sparc.c (legitimize_pic_address): For -fPIC, - emit these when Pmode is not SImode. - * config/sparc/linux64.h (SPARC_DEFAULT_CMODEL): Make CM_MEDLOW. + * xcoffout.c (xcoffout_begin_function): Call xcoffout_block for + the zero'th block. -Sat Aug 29 14:59:32 1998 Mumit Khan +Wed Jul 1 23:12:58 1998 Ken Raeburn - * i386/cygwin32.h (ASM_OUTPUT_SECTION_NAME): Don't emit - .linkonce directive after the first time. + * h8300.c (print_operand): Delete %L support. + * h8300.md (branch_true, branch_false): Use %= with a prefix + instead of %L for local branch labels. -Sat Aug 29 12:39:56 1998 Jeffrey A Law (law@cygnus.com) +Wed Jul 1 21:27:13 1998 J"orn Rennecke - * m68k.md (beq0_di): Generate correct (and more efficient) code when - the clobbered operand overlaps with an input. - (bne0_di): Similarly. + * reload1.c (emit_reload_insns): Use proper register classes for + SECONDARY_INPUT_RELOAD_CLASS / SECONDARY_MEMORY_NEEDED code. - * Makefile.in (INSTALL): Remove "--no-header" argument. +Wed Jul 1 21:17:36 1998 J"orn Rennecke - * NEWS: Various updates. + * reload.c (find_reloads): If there are multiple + RELOAD_FOR_INPUT_ADDRESS / RELOAD_FOR_OUTPUT_ADDRESS reloads for + one operand, change RELOAD_FOR_INPADDR_ADDRESS / + RELOAD_FOR_OUTADDR_ADDRESS for all but the first + RELOAD_FOR_INPUT_ADDRESS / RELOAD_FOR_OUTPUT_ADDRESS reloads. -Fri Aug 28 19:00:44 1998 David S. Miller +Wed Jul 1 17:23:23 1998 J"orn Rennecke - * config/sparc/sparc.c (arith_operand, const64_operand, - const64_high_operand, arith_double_4096_operand): Mark mode as - unused. - (create_simple_focus_bits): Remove unused arg highest_bit_set, all - callers changed. - (sparc_emit_set_const64): Remove unused variable i. - (sparc_splitdi_legitimate): Likewise for addr_part. - (ultra_code_from_mask): Likewise for mask. - (ultra_cmove_results_ready_p): Fixup entry modulo calc. and - reverse return values so it matches usage and comments. - (ultra_flush_pipeline): Likewise. - (ultra_fpmode_conflict_exists): Likewise, remove unused variable - this_type, and allow loads and stores of differing FP modes as - they do not create a conflict. - (ultra_find_type): Initialize fpmode to SFmode, fix - parenthesization thinkos in large conditional. - (ultrasparc_sched_init): Mark dump and sched_verbose as unused. - Init free_slot_mask after ultra_cur_hist is reset, not before. - (ultrasparc_rescan_pipeline_state): Remove unused variable ucode. - (ultrasparc_sched_reorder): Don't bzero current pipeline state, - use ultra_flush_pipeline instead, then re-init group pointer. - Fix statement with no effect. If no progress made in, and no - instructions scheduled at all, advance to new pipeline cycle else - we get into an endless loop. - (ultrasparc_adjust_cost): Remove previous arg. - * config/sparc/sparc.h (ADJUST_COST): Update to reflect that. + * regmove.c (fixup_match_2): Check that P has RTX_CLASS 'i' before + using its PATTERN. -Fri Aug 28 13:52:35 1998 Jim Wilson +Wed Jul 1 05:04:41 1998 Richard Henderson - * sparc.md (DImode, DFmode, TFmode splits): Delete self_reference - code. Use reg_overlap_mentioned_p to detect when source and - destination overlap. - (negtf2_notv9+1): Use DFmode instead of SFmode in last two operands. + * expr.c (emit_group_load, emit_group_store): Rewrite considering + the size and alignment of the structure being manipulated. + * expr.c, calls.c, function.c: Update all callers. + * expr.h: Update prototypes. + * cse.c (invalidate): Cope with parallels. -1998-08-28 Brendan Kehoe +Wed Jul 1 04:22:23 1998 Richard Henderson - * loop.c (check_dbra_loop): Pass COMPARISON_VALUE, not - COMPARISON_VAL, into invariant_p. + * sparc.c (function_arg_record_value): Take a MODE arg with which to + create the PARALLEL. Update all callers. -Fri Aug 28 15:13:25 1998 J"orn Rennecke +Wed Jul 1 04:10:35 1998 Richard Henderson - * regmove.c (regclass_compatible_p): New function. - (regmove_optimize): Use it. + * expr.c (expand_assignment, store_constructor, expand_expr): Use + convert_memory_address instead of convert_to_mode when possible. - Use NREGS parameter instead of calling max_reg_num. +Wed Jul 1 03:48:00 1998 Richard Henderson - (fixup_match_1): Don't use code = MINUS when later tieing with - a hard register is likely. + * alpha.c (alpha_initialize_trampoline): Take arguments describing + the layout. Use ptr_mode. Disable hint generation. Use gen_imb. + * alpha.h (INITIALIZE_TRAMPOLINE): Pass extra args to the init func. + (TRANSFER_FROM_TRAMPOLINE): Move ... + * alpha/osf.h: ... here. + * alpha/vms.h (INITIALIZE_TRAMPOLINE): Use alpha_initialize_trampoline. + (TRANSFER_FROM_TRAMPOLINE): Remove undef. + * alpha/win-nt.h: Likewise. + * alpha/vxworks.h: Likewise. -Fri Aug 28 14:54:07 1998 J"orn Rennecke + * alpha/linux.h: Revert gcc2 merge lossage. - * loop.c (check_dbra_loop): Fix calculation of FINAL_VALUE when - COMPARISON_VAL was normalized. +Wed Jul 1 10:56:55 1998 Andreas Schwab -Thu Aug 27 20:10:46 1998 Jeffrey A Law (law@cygnus.com) + * c-decl.c (grokdeclarator): Don't warn about implicit int in + `typedef foo = bar'. - * loop.c (check_dbra_loop): The loop ending comparison value - must be an invariant or we can not reverse the loop. +Wed Jul 1 02:12:33 1998 Robert Lipe - * loop.c (scan_loop): Count down from max_reg_num - 1 to - FIRST_PSEUDO_REGISTER to avoid calling max_reg_num each iteration - of the loop. - (load_mems_and_recount_loop_regs_set): Likewise. + * i386.c (asm_output_function_prefix): Make 686 function + prologues not issue .types for non-global labels. - * i386.c (print_operand): Remove obsolete 'c' docs. +Tue Jun 30 23:46:53 1998 Dmitrij Tejblum -Wed Aug 26 17:13:37 1998 Tom Tromey + * i386/freebsd.h (WCHAR_TYPE): Chagne to an "int". + (WCHAR_TYPE_SIZE): Update appropriately. - * gthr.h: Document __GTHREAD_MUTEX_INIT_FUNCTION. - * frame.c (init_object_mutex): New function. - (init_object_mutex_once): Likewise. - (find_fde): Call it. - (__register_frame_info): Likewise. - (__register_frame_info_table): Likewise. - (__deregister_frame_info): Likewise. +Tue Jun 30 23:16:39 1998 Jeffrey A Law (law@cygnus.com) -Thu Aug 27 15:14:18 1998 Jeffrey A Law (law@cygnus.com) + * flow.c (recompute_reg_usage): Does not return a value. + * rtl.h (recompute_reg_usage): Update prototype. - * haifa-sched.c (sched_analyze_insn): Fix thinko in last change. + * jump.c (jump_optimize): Show that the jump chain is not + valid when not optimizing. -Thu Aug 27 16:34:51 1998 J"orn Rennecke +Tue Jun 30 16:01:01 1998 Richard Henderson - * loop.c (check_dbra_loop): Enable code for reversal - of some loops without a known constant loop end. + * rtl.def (CONSTANT_P_RTX): New. + * rtl.h (CONSTANT_P): Recognize it. + * cse.c (fold_rtx): Eliminate it. + * expr.c (can_handle_constant_p): New variable. + (init_expr_once): Initialize it. + (expand_builtin): Generate CONSTANT_P_RTX if the expression is not + immediately recognizable as a constant. -Wed Aug 26 18:38:15 1998 Richard Henderson + * alpha.c (reg_or_6bit_operand): Recognize CONSTANT_P_RTX. + (reg_or_8bit_operand, cint8_operand, add_operand): Likewise. + (sext_add_operand, and_operand, or_operand): Likewise. + (reg_or_cint_operand, some_operand, input_operand): Likewise. + * alpha.h (PREDICATE_CODES): Add CONSTANT_P_RTX where needed. - * haifa-sched.c (last_clock_var): New. - (schedule_block): Initialize it. - (schedule_insn): Use it to fill insn modes with issue information. +1998-06-30 Benjamin Kosnik - * alpha.c (alpha_handle_trap_shadows): Remove do-nothing exit. - Tag trapb and next insn with TImode. - (alphaev5_insn_pipe, alphaev5_next_group, alphaev5_align_insns): New. - (alpha_reorg): Add conditional for alpha_handle_trap_shadows. - Invoke alphaev5_align_insns as appropriate. - * alpha.h (LABEL_ALIGN_AFTER_BARRIER): Was ALIGN_LABEL_AFTER_BARRIER. - (MD_SCHED_VARIABLE_ISSUE): New. - * alpha.md (attr type): Add multi. - (define_asm_attributes): New. - (prologue_stack_probe_loop, builtin_setjmp_receiver): Set type multi. - (arg_home): Likewise. - (fnop, unop, realign): New. + * dbxout.c (dbxout_type_methods): Remove warn_template_debugging. -Wed Aug 26 15:55:41 1998 Jim Wilson +Tue Jun 30 14:03:34 1998 Kaveh R. Ghazi - * iris5.h (PREFERRED_DEBUGGING_TYPE): Undef. - * iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define. + * aclocal.m4 (GCC_NEED_DECLARATION): Accept an optional second + argument, which is typically preprocessor code used to draw in + additional header files when looking for a function declaration. + (GCC_NEED_DECLARATIONS): Likewise. - * configure.in (powerpc-ibm-aix4.[12]*): Change from 4.[12].*. - (rs6000-ibm-aix4.[12]*): Likewise. - * configure: Regenerate. + * configure.in (GCC_NEED_DECLARATIONS): Add checks for getrlimit + and setrlimit, search for them in sys/resource.h. -Wed Aug 26 09:30:59 1998 Nick Clifton + * acconfig.h: Add stubs for NEED_DECLARATION_GETRLIMIT and + NEED_DECLARATION_SETRLIMIT. - * config/arm/thumb.c (thumb_exit): Do not move a4 into lr if it - already contains the return address. + * system.h: Prototype getrlimit/setrlimit if necessary. -Wed Aug 26 12:57:09 1998 Jeffrey A Law (law@cygnus.com) +Tue Jun 30 10:54:48 1998 Mark Mitchell - * calls.c (expand_call): Use bitfield instructions to extract/deposit - word sized hunks when loading unaligned args into registers. + * rtl.texi: Don't say that RTX_INTEGRATED_P is not depended + upon. - * haifa-sched.c (sched_analyze_insn): Only create scheduling - barriers for LOOP, EH and SETJMP notes on the loop_notes list. +Tue Jun 30 13:11:42 1998 Franz Sirl - * mn10300.h (RTX_COSTS): Handle UDIV and UMOD too. + * rs6000/sysv4.h (asm output): Add tabs for asm directives. -Wed Aug 26 16:35:37 1998 J"orn Rennecke +Tue Jun 30 13:11:42 1998 David Edelsohn - * loop.c (check_dbra_loop): Add some code that would allow reversal - of some loops without a known constant loop end if it were enabled. + * Makefile.in (FLAGS_TO_PASS): Set AR_FLAGS to AR_FOR_TARGET_FLAGS. -Wed Aug 26 11:08:44 1998 Gavin Romig-Koch +Tue Jun 30 08:59:15 1998 Kaveh R. Ghazi - * mips.md (lshrsi3_internal2+2): Fix type-o. + * gansidecl.h (ATTRIBUTE_UNUSED): Use __unused__ not `unused'. + Don't define NULL here. Also, remove all vestiges of autoconf + based checks for bcmp/bcopy/bzero/index/rindex. -Wed Aug 26 10:53:03 1998 Kaveh R. Ghazi + * system.h: Immediately after including stdio.h, check for and if + necessary provide a default definition of NULL. - * system.h: Include stdarg.h/varargs.h, make sure they are ordered - correctly with regards to stdio.h. +Tue Jun 30 08:22:05 1998 Michael Meissner - * calls.c: Remove stdarg.h/varargs.h. - * cccp.c: Likewise. - * cexp.y: Likewise. - * combine.c: Likewise. - * cpperror.c: Likewise. - * cpplib.c: Likewise. - * cpplib.h: Likewise. - * doprint.c: Likewise. - * emit-rtl.c: Likewise. - * final.c: Likewise. - * fix-header.c: Likewise. - * gcc.c: Likewise. - * genattr.c: Likewise. - * genattrtab.c: Likewise. - * gencodes.c: Likewise. - * genconfig.c: Likewise. - * genemit.c: Likewise. - * genextract.c: Likewise. - * genflags.c: Likewise. - * genopinit.c: Likewise. - * genoutput.c: Likewise. - * genpeep.c: Likewise. - * genrecog.c: Likewise. - * mips-tfile.c: Likewise. - * prefix.c: Likewise. - * protoize.c: Likewise. - * regmove.c: Likewise. - * toplev.c: Likewise. - * tree.c: Likewise. + * reload1.c (reload_cse_simplify_operands): Call + fatal_insn_not_found, not abort. -Wed Aug 26 05:09:27 1998 Jakub Jelinek +Tue Jun 30 02:34:02 1998 Jeffrey A Law (law@cygnus.com) - * config/sparc/sparc.c (sparc_override_options): If not - TARGET_FPU, turn off TARGET_VIS. - * config/sparc/sparc.h (TARGET_SWITCHES): Add no-vis. - (LEGITIMATE_CONSTANT_P): Allow SF/DF mode zero when TARGET_VIS. - * config/sparc/sparc.md (movsi_insn): Use fzeros not fzero. - (movdi_insn_sp64): Add VIS fzero alternative. - (clear_sf, clear_df): New VIS patterns. - (movsf, movdf expanders): Allow fp_zero_operand flat out when - TARGET_VIS. - (one_cmpldi2_sp64): Provide new fnot1 VIS alternative. + * choose-temp.c (make_temp_file): Accept new argument for the + file suffix to use. Allocate space for it and add it to the + template. + * mkstemp.c (mkstemps): Renamed from mkstemp. Accept new argument + for the length of the suffix. Update template structure checks + to handle optional suffix. + * collect2.c (make_temp_file): Update prototype. + (main): Put proper suffixes on temporary files. + * gcc.c (make_temp_file): Update prototype. + (do_spec_1): Put proper suffixes on temporary files. -Tue Aug 25 10:57:41 1998 Mark Mitchell +Tue Jun 30 00:56:19 1998 Bruno Haible - * loop.c (n_times_set, n_times_used, may_not_optimize, - reg_single_usage): Convert to varrays. All uses changed. - (insert_loop_mem): Return a value. - (scan_loop): Tweak AVOID_CC_MODE_COPIES code. - (load_mems_and_recount_loop_regs_set): Likewise. Grow the arrays, if - necessary. + * invoke.texi: Document new implicit structure initialization + warning. -Tue Aug 25 23:57:12 1998 Jeffrey A Law (law@cygnus.com) +Mon Jun 29 21:40:15 1998 J"orn Rennecke - * From Alexandre: - * configure.in: Do not set thread_file to "irix" since no such - support exists yet. + * toplev.c (flag_dump_unnumbered): Declare. + (f_options): Add dump-unnumbered. + * print-rtl.c (flag_dump_unnumbered): Define. + (print_rtx): Print only '#' for insn numbers if flag_dump_unnumbered + is nonzero. + (print_rtl): Don't output line number notes if flag_dump_unnumbered + is nonzero. + * flow.c (print_rtl_with_bb): Don't output newline after line + numbers note if flag_dump_unnumbered is nonzero. - * sparc.md (float abs/neg splits): Check reload_completed before - calling alter_subreg. +Mon Jun 29 22:12:06 1998 Jeffrey A Law (law@cygnus.com) -Tue Aug 25 19:17:59 1998 David S. Miller + * Merge from gcc2 June 9, 1998 snapshot. See ChangeLog.13 for + details. - * config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): New - function. - * config/sparc/sparc.h: Declare it. - * config/sparc/sparc.md (float abs/neg splits): Use it. - (all other splits): Handle SUBREGs properly where necessary. - (unnamed (1< - * reorg.c (fill_simple_delay_slots): Do not abort if we encounter - an insn on the unfilled_slots_list that has no delay slots. - (fill_eager_delay_slots): Similarly. + * Makefile.in (fix-header): Don't needlessly depend on cpperror.o. -Tue Aug 25 13:35:20 1998 Nick Clifton + * alias.c (CHECK_ALIAS_SETS_FOR_CONSISTENCY): Cast expansion to + void since it is evaluated in a comma list. - * config/v850/v850.c (movsi_source_operand): Treat CONSTANT_P_RTX - as an ordinary operand. + * mips.h (ASM_GENERATE_INTERNAL_LABEL): Always sprintf `NUM' + argument as a long and cast `NUM' to long to ensure it is of the + proper width. Wrap macro arguments in parens when they appear in + the expansion. -Tue Aug 25 12:54:57 1998 Jason Merrill + * sol2.h (ASM_GENERATE_INTERNAL_LABEL): Likewise. - * tree.c (valid_machine_attribute): Don't apply attributes to both - decl and type. + * sparc.h (ASM_GENERATE_INTERNAL_LABEL): Likewise. + (ASM_DECLARE_RESULT): Fix fprintf format specifier to match + function argument return type. + (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_FP_P, + REGNO_OK_FOR_CCFP_P): Use `(unsigned)' not `U'. -Tue Aug 25 12:23:20 1998 Richard Henderson + * cpplib.c (cpp_message_from_errno): Remove unneeded argument to + cpp_message. - * reload.c (operands_match_p): Handle rtvecs. + * dbxout.c: Fix the comments after an #endif to reflect the actual + condition tested in the preceding #if. - * i386.c (legitimate_pic_address_disp_p): New. - (legitimate_address_p): Use it. - (legitimize_pic_address): Use unspecs to represent @GOT and @GOTOFF. - Handle constant pool symbols just like statics. - (emit_pic_move): Use Pmode not SImode for clarity. - (output_pic_addr_const) [SYMBOL_REF]: Remove @GOT and @GOTOFF hacks. - [UNSPEC]: New, handling what we killed above. - [PLUS]: Detect and abort on invalid symbol arithmetic. - * i386.h (CONSTANT_ADDRESS_P): Remove HIGH. + * except.c (find_all_handler_type_matches): Switch to old-style + function definition. -Tue Aug 25 12:02:23 1998 Mark Mitchell + * expr.c (expand_builtin): Remove unused variable `type' twice. - * alias.c: Include output.h. - (DIFFERENT_ALIAS_SETS_P): Don't treat alias sets as - different if we're in a varargs function. - * Makefile.in (alias.o): Depend on output.h + * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Cast -1 before comparing it + to an unsigned long. -Tue Aug 25 19:20:12 1998 J"orn Rennecke + * haifa-sched.c (print_insn_chain): Remove unused function. - * sh.h (GIV_SORT_CRITERION): Delete. + * objc/objc-act.c (build_msg_pool_reference): Hide prototype and + definition. -Tue Aug 25 13:19:46 1998 Dave Brolley + * toplev.c: When testing whether to include dbxout.h, also include + it when XCOFF_DEBUGGING_INFO is defined. - * regclass.c (regclass): Use xmalloc/free instead of alloca. - * stupid.c (stupid_life_analysis): Likewise. - * reload1.c (reload): Likewise. + * unroll.c (unroll_loop): Add parentheses around assignment used + as truth value. -Tue Aug 25 05:48:18 1998 Jakub Jelinek +Mon Jun 29 12:18:00 1998 Catherine Moore - * config/sparc/sparc.c (arith_4096_operand, arith_add_operand, - arith_double_4096_operand, arith_double_add_operand): New - predicates. - * config/sparc/sparc.h (PREDICATE_CODES): Add them, declare them. - * config/sparc/sparc.md (adddi3, addsi3, subdi3, subsi3): Use - them to transform add/sub 4096 into add/sub -4096. + * config/lb1spc.asm (.div, .udiv): Replace routines. -Mon Aug 24 23:31:03 1998 David S. Miller +Mon Jun 29 09:44:24 1998 Mark Mitchell - * loop.c (scan_loop): Allocate some slop to handle pseudos - generated by move_movables. - (load_mems_and_recount_loop_regs_set): Honor AVOID_CC_MODE_COPIES - here too. + * rtl.h: Update comment about special gen_rtx variants. + * emit-rtl.c (gen_rtx): Handle MEMs using gen_rtx_MEM. -Mon Aug 24 19:45:40 1998 Jim Wilson +Sun Jun 28 20:58:51 1998 Jeffrey A Law (law@cygnus.com) - * tree.def (DECL_RESULT): Correct documentation. + * choose-temp.c (choose_temp_base): Restore original variant of + this function for compatibility. + (make_temp_file): This is the new, preferred interface to create + temporary files. + * collect2.c (choose_temp_base): Delete declaration. + (make_temp_file): Declare. + (temp_filename_length, temp_filename): Delete. + (main): Use make_temp_file to get temporary files. Use --lang-c + to force the resulting ctort/dtor file to be compiled with the C + compiler. Make sure to remove temporary files on all exit paths. + * gcc.c (make_temp_file): Provide prototype if MKTEMP_EACH_FILE is + defined. + (choose_temp_base): Only provide prototype if MKTEMP_EACH_FILE is + not defined. + (do_spec): Use make_temp_file if MKTEMP_EACH_FILE is defined. -Tue Aug 25 01:15:27 1998 J"orn Rennecke +Sun Jun 28 08:57:09 1998 Kaveh R. Ghazi - * reload1.c (reload_reg_free_before_p): New argument EQUIV; Changed - all callers. Abort for RELOAD_FOR_INSN. RELOAD_FOR_OUTADDR_ADDR: - conflicts will all RELOAD_FOR_OUTPUT reloads. + * configure.in (GCC_NEED_DECLARATIONS): Add strerror, getcwd and + getwd. - * reload1.c (reload_cse_regs_1): When deleting a no-op move that - loads the function result, substitute with a USE. + * acconfig.m4: Add stubs for NEED_DECLARATION_STRERROR, + NEED_DECLARATION_GETCWD and NEED_DECLARATION_GETWD. -Mon Aug 24 15:20:19 1998 David Edelsohn + * cccp.c: Remove strerror()/sys_nerr/sys_errlist decls. + (my_strerror): Add prototype and make it static. - * rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Use TARGET_POWERPC64 - when testing LEGITIMATE_INDEXED_ADDRESS_P DFmode and DImode. - (LEGITIMIZE_ADDRESS): Use TARGET_POWERPC64 for INDEXED fixup. - * rs6000.c (print_operand, case 'L'): Add UNITS_PER_WORD, not 4. - (print_operand, cases 'O' and 'T'): Fix typos in lossage strings. - * rs6000.md (fix_truncdfsi2_store): Remove %w from non-CONST_INT - operand. - (movdf_softfloat32, movdf_hardfloat64, movdf_softfloat64): Change - 'o' to 'm' for GPR variant constraints. + * collect2.c: Likewise. -Mon Aug 24 10:25:46 1998 Jeffrey A Law (law@cygnus.com) + * cpplib.c: Likewise. - * loop.c (scan_loop): Honor AVOID_CC_MODE_COPIES. + * gcc.c: Likewise, but keep `my_strerror' extern. - * h8300.h (STRIP_NAME_ENCODING): Fix typo. + * protoize.c: Likewise. - * sparc.md (TFmode splits): Use reg_overlap_mentioned_p to detect - when the source and destination overlap. + * pexecute.c (my_strerror): Add argument to prototype. - * stmt.c (emit_case_nodes): Change rtx_function to rtx_fn to avoid - clash with global type. + * system.h: Add prototypes for getcwd, getwd and strerror. Add + extern decls for sys_nerr and sys_errlist. Make abort decl + explicitly extern. -Mon Aug 24 00:53:53 1998 Jason Merrill + * getpwd.c: Remove decls for getwd and getcwd. - * fixinc.irix: Add curses.h handling from fixinc.wrap. +Sun Jun 28 02:11:16 1998 Jeff Law (law@cygnus.com) - * c-common.c (combine_strings): Also set TREE_READONLY. - Change warn_write_strings to flag_const_strings. - * c-decl.c, c-tree.h: Likewise. + * version.c: Bump for snapshot. -Sun Aug 23 18:39:11 1998 David S. Miller +Sat Jun 27 23:32:25 1998 Richard Henderson + + * jump.c (jump_optimize): Use side_effects_p & may_trap_p instead + of rtx_unsafe_p. Use modified_between_p instead of reg_set_between_p. + Allow FP moves to be optimized. + (rtx_unsafe_p): Delete. + +Sat Jun 27 23:02:04 1998 Richard Henderson + + * objc/archive.c: Remove prototypes. + +Sat Jun 27 22:37:05 1998 Jeffrey A Law (law@cygnus.com) + + * tm.texi (NEED_MATH_LIBRARY): Document new target macro. + + * Makefile.in (gencheck): Remove $(TREE_H) dependency. + +Sat Jun 27 20:20:00 1998 John Carr + + * dsp16xx.h (FIRST_PSEUDO_REGISTER): Add parentheses to definition. + * dsp16xx.c (next_cc_user_unsigned): New function. + Remove save_next_cc_user_code. + (print_operand): Use HOST_WIDE_INT_PRINT_* macros. + * dsp16xx.md: Call next_cc_user_unsigned instead of using + save_next_cc_user_code. + Use gen_rtx_* functions instead of gen_rtx. + +Sat Jun 27 20:18:34 1998 Franz Sirl + + * rs6000.h: Add trap_comparison_operator to PREDICATE_CODES. + +Sat Jun 27 16:45:42 1998 Jeffrey A Law (law@cygnus.com) + + * flow.c (count_reg_sets): New function. + (count_reg_sets_1, count_ref_references): Likewise. + (recompute_reg_usage): Likewise. + * rtl.h (recompute_reg_usage): Add prototype. + * toplev.c (rest_of_compilation): Call recompute_reg_usage just + before local register allocation. + +Sat Jun 27 13:15:30 1998 Richard Henderson + + * alpha.md (negsf, negdf): Revert Jan 22 change. + +Sat Jun 27 07:35:21 1998 Kaveh R. Ghazi + + * mkstemp.c: Include gansidecl.h. Rename uint64_t to gcc_uint64_t. + (mkstemp): Remove size specifier for variable `letters'. Call + gettimeofday, not __gettimeofday. + + * Makefile.in (EXPR_H): New dependency variable. + (c-typeck.o): Depend on $(EXPR_H) instead of expr.h. + (c-iterate.o): Likewise. + (gencheck): Depend on $(TREE_H) instead of tree.h, etc. + (stor-layout.o): Depend on $(EXPR_H) instead of expr.h. + (toplev.o): Likewise. Also depend on $(RECOG_H) instead of recog.h. + (varasm.o): Depend on $(EXPR_H) instead of expr.h. + (function.o): Likewise. + (stmt.o): Likewise. + (except.o): Likewise. + (expr.o): Likewise. + (calls.o): Likewise. + (expmed.o): Likewise. + (explow.o): Likewise. + (optabs.o): Likewise. + (sdbout.o): Likewise. + (dwarf2out.o): Likewise. + (emit-rtl.o): Likewise. + (integrate.o): Likewise. + (jump.o): Likewise. + (cse.o): Likewise. + (gcse.o): Likewise. Also depend on $(BASIC_BLOCK_H) instead of + basic-block.h. + (loop.o): Depend on $(EXPR_H) instead of expr.h. + (unroll.o): Likewise. + (combine.o): Likewise. + (reload.o): Likewise. + (reload1.o): Likewise. + (caller-save.o): Likewise. + (reorg.o): Likewise. + (alias.o): Don't depend on insn-codes.h. + (regmove.o): Depend on $(RECOG_H)/$(EXPR_H) instead of recog.h/expr.h. + (insn-emit.o): Depend on $(EXPR_H) instead of expr.h. + (insn-opinit.o): Likewise. + +Sat Jun 27 01:35:14 1998 Jeffrey A Law (law@cygnus.com) + + * choose-temp.c (choose_temp_base): Remove MPW bits. Use mkstemp + instead of mktemp. + * gcc.c (MKTEMP_EACH_FILE): Define. + (main): No need to call choose_temp_base if we are going to + use choose_temp_base to create each file later. + * mkstemp.c: New file. Adapted from glibc. + * Makefile.in (xgcc, colect2, protoize, unprotoize): Link in mkstemp.o. + (mkstemp.o): Add dependencies. + + * configure.in (gettimeofday): Check for its existence. + * config.in (HAVE_GETTIMEOFDAY): Define. + * configure: Rebuilt. - * config/sparc/sparc.c (sparc_emit_set_const32): If outputting a - CONST_INT, not a symbolic reference, don't use a HIGH/LO_SUM - sequence, use SET/IOR instead so CSE can see it. - * config/sparc/sparc.md (movhi_const64_special, - movsi_const64_special): New patterns necessitated by that change. - (movhi_high): Remove. - (movhi_lo_sum): Change to match an IOR. - (movdf_insn_sp32): Test TARGET_V9 not TARGET_ARCH64. - (movdf_insn_v9only): New pattern for when V9 but not ARCH64. - (movdf_insn_sp64): Test both TARGET_V9 and TARGET_ARCH64. - (movdf splits): Allow when not V9 or when not ARCH64 and integer - registers are involved. - (snesi_zero_extend split): Remove reload_completed test. - (unnamed plus and minus zero_extend sidi splits): Add it. +1998-06-26 Michael Meissner -Sun Aug 23 11:56:08 1998 Mark Mitchell + * rs6000.md (ne 0, non power case): Add missing & constraint. + Name pattern ne0. + (negative abs insns): Add pattern names. - * extend.texi: Remove description of extension to explicit - instantiation that is now endorsed by standard C++. +Fri Jun 26 17:36:42 1998 Dave Love -Sun Aug 23 09:39:09 1998 David S. Miller + * Makefile.in (install-info): Run install-info program in separate + loop. - * config/arc/arc.c (arc_initialize_pic): Remove. - * config/arc/arc.h (INITIALIZE_PIC): Similarly, this routine does - nothing on any platform and is invoked by no-one, it does not even - appear in the documentation. - * config/sparc/sparc.h (INITIALIZE_PIC): Likewise. - * config/sparc/sparc.c (initialize_pic): Likewise. - (find_addr_reg): Remove this as well, no longer referenced after - my rewrite. +Fri Jun 26 16:03:15 1998 Michael Meissner -Sun Aug 23 00:17:14 1998 Jeffrey A Law (law@cygnus.com) + * haifa-sched.c (schedule_block): Add hooks for the machine + description to reorder the ready list, and update how many more + instructions can be issued this cycle. + * tm.texi (MD_SCHED_{INIT,REORDER,VARIABLE_ISSUE}): Document. + +Fri Jun 26 11:54:11 1998 David S. Miller - * recog.c (validate_replace_rtx_group): New function. - * recog.h (validate_replace_rtx_group): Declare it. - * regmove.c (optimize_reg_copy_3): If any substitution fails, then undo - the entire group of substitutions. + * config/sparc/sparc.h (REGNO_OK_FOR_{INDEX,BASE,FP,CCFP}_P): + Explicitly mark the constant being compared against as unsigned. + * config/sparc/sparc.c (sparc_select, cpu_default, cpu_table): + Fully initialize final members. + (mem_aligned_8): Explicit init of offset to zero. + (output_function_prologue): Explicit init of n_regs to zero. + (output_function_epilogue): Likewise, and mark arg size as + unused. + (init_cumulative_args): Mark libname and indirect as unused. + (function_arg_pass_by_reference): Likewise for cum and named. + (sparc_builtin_saveregs): Likewise for arglist. + (sparc_flat_eligible_for_epilogue_delay): Likewise for slot. + +Fri Jun 26 06:58:54 1998 Richard Earnshaw (rearnsha@arm.com) + + * arm.h (SECONDARY_INPUT_RELOAD_CLASS): Only need a secondary reload + if reloading a MEM. + + * arm.h (arm_adjust_cost): Renamed bogus prototype from + arm_adjust_code. + (bad_signed_byte_operand): Add prototype. + * arm.c (arm_override_options): Make I unsigned. + (const_ok_for_arm): Add casts to the constants. + (load_multiple_operation): Don't redeclare elt in sub-block. + (arm_gen_movstrqi): Delete external declaration of optimize. + (gen_compare_reg): Declare parameter fp. + + * arm.c (final_prescan_insn): Only initialize scanbody if the insn + has a pattern. + +Fri Jun 26 09:31:24 1998 Kaveh R. Ghazi + + * alpha.c: Include system.h and toplev.h. + (cint8_operand): Mark parameter `mode' with ATTRIBUTE_UNUSED. + (const48_operand): Likewise. + (mode_width_operand): Likewise. + (mode_mask_operand): Likewise. + (mul8_operand): Likewise. + (current_file_function_operand): Likewise. + (signed_comparison_operator): Likewise. + (divmod_operator): Likewise. + (any_memory_operand): Likewise. + (alpha_return_addr): Likewise for parameter `frame'. + (alpha_builtin_saveregs): Likewise for parameter `arglist'. + (vms_valid_decl_attribute_p): Likewise for parameters `decl' and + `attributes'. + (alpha_start_function): Likewise for parameter `decl'. Use + HOST_WIDE_INT_PRINT_DEC in call to fprintf. Fix various format + specifiers. Remove unused variables `lab' and `name'. + (alpha_end_function): Mark parameter `decl' with ATTRIBUTE_UNUSED. + (check_float_value): Likewise for parameter `overflow'. + (alpha_need_linkage): Likewise for parameters `name' and `is_local'. + + * alpha.h (ASM_IDENTIFY_GCC, ASM_IDENTIFY_LANGUAGE): Define as + taking an argument. + (ASM_OUTPUT_SHORT): Cast argument to `int' in call to fprintf. + (ASM_OUTPUT_CHAR): Likewise. + (ASM_OUTPUT_BYTE): Likewise. + (PRINT_OPERAND_ADDRESS): Use HOST_WIDE_INT_PRINT_DEC in call to + fprintf. + (PUT_SDB_EPILOGUE_END): Mention argument `NAME' in definition. + Add prototypes for functions in alpha.c. + + * alpha.md (ashldi3): Add default case in switch. + +1998-06-26 Manfred Hollstein + + * Makefile.in (gcc_version, gcc_version_trigger): New macros. + (version): Initialize from $(gcc_version). + + * configure.in (version): Rename to gcc_version. + (gcc_version_trigger): New variable; call AC_SUBST for it and + emit it into the generated config.status. + * configure: Regenerate. -Sat Aug 22 23:31:00 1998 Klaus-Georg Adams (Klaus-Georg.Adams@chemie.uni-karlsruhe.de) +Thu Jun 25 12:47:41 1998 Mark Mitchell - * loop.c (load_mems): Fix initializers. + * fold-const.c (make_range): Don't go looking at TREE_OPERANDs of + nodes that are not expressions. -Fri Aug 21 23:07:46 1998 David S. Miller +Thu Jun 25 15:08:16 1998 Mark Mitchell - * config/sparc/sparc.md (TFmode splits): Handle destination - registers being referenced in the address correctly. + * invoke.texi (-fstrict-aliasing): Document. + * rtl.texi (MEM_ALIAS_SET): Document. - * expmed.c (make_tree) [CONST_INT]: Sign extend even if - TREE_UNSIGNED, when bitsize of type's mode is larger than - HOST_BITS_PER_WIDE_INT. + * flags.h (flag_strict_aliasing): Declare. + * toplev.c (flag_strict_aliasing): Define. + (f_options): Add -strict-aliasing. + (main): Set flag_strict_aliasing if -O2 or higher. -Fri Aug 21 19:31:31 1998 Alexandre Petit-Bianco + * tree.h (tree_type): Add alias_set field. + (TYPE_ALIAS_SET): New macro. + (TYPE_ALIAS_SET_KNOWN_P): Likewise. + (get_alias_set): Declare. + * tree.c (lang_get_alias_set): Define. + (make_node): Initialize TYPE_ALIAS_SET. + (get_alias_set): New function. + * print-tree.c (print_node): Dump the alias set for a type. - * tree.def (LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR): New tree nodes. - * tree.h (LABELED_BLOCK_LABEL, LABELED_BLOCK_BODY, - EXIT_BLOCK_LABELED_BLOCK, EXIT_BLOCK_RETURN, LOOP_EXPR_BODY): New - macros. - * expr.c (expand_expr): Handle LABELED_BLOCK_EXPR and - EXIT_BLOCK_EXPR. + * c-tree.h (c_get_alias_set): Declare. + * c-common.c (c_get_alias_set): New function. + * c-decl.c (init_decl_processing): Set lang_get_alias_set. -Thu Aug 20 19:43:44 1998 Jeffrey A Law (law@cygnus.com) + * expr.c (protect_from_queue): Propagate alias sets. + (expand_assignment): Calculate alias set for new MEMs. + (expand_expr): Likewise. + * function.c (put_var_into_stack): Likewise. + (put_reg_into_stack): Likewise. + (gen_mem_addressof): Likewise. + (assign_parms): Likewise. + * stmt.c (expand_decl): Likewise. + * varasm.c (make_decl_rtl): Eliminate redundant clearing of + DECL_RTL. Calculate alias set for new MEMs. + + * rtl.def (REG): Add dummy operand. + (MEM): Add extra operand to store the MEM_ALIAS_SET. + * rtl.h (MEM_ALIAS_SET): New macro. + (gen_rtx_MEM): Declare. + * emit-rtl.c (gen_rtx_MEM): New function. + * gengenrtl.c (sepcial_rtx): Make MEMs special. + + * alias.c (CHECK_ALIAS_SETS_FOR_CONSISTENCY): New macro. + (DIFFERENT_ALIAS_SETS_P): Likewise. + (canon_rtx): Propagate the alias set to the new MEM. + (true_dependence): Check the alias sets. + (anti_dependence): Likewise. + (output_dependence): Likewise. + * explow.c (stabilize): Progoate alias sets. + * integrate.c (copy_rtx_and_substitute): Likewise. + * final.c (alter_subreg): Make sure not to leave MEM_IN_STRUCT_P + in an unpredictable state. Propagate alias sets. + * reload1.c (reload): Clear MEM_ALIAS_SET for new MEMs about which + we have no alias information. + +Thu Jun 25 16:59:18 1998 Andrew MacLeod + + * except.h (CATCH_ALL_TYPE): Definition moved to eh-common.h. + (find_all_handler_type_matches): Add function prototype. + * eh-common.h (CATCH_ALL_TYPE): Definition added. + * except.c (find_all_handler_type_matches): Add function to find all + runtime type info in the exception table. + (output_exception_table_entry): Special case for CATCH_ALL_TYPE. + +Thu Jun 25 15:47:55 1998 Kaveh R. Ghazi + + * Makefile.in (xcoffout.o): Depend on toplev.h, output.h and dbxout.h. + + * config/fp-bit.c (_fpmul_parts): Move variables `x', `ylow', + `yhigh' and `bit' into the scope in which they are used. + (_fpdiv_parts): Remove unused variables `low', `high', `r0', `r1', + `y0', `y1', `q', `remainder', `carry', `d0' and `d1'. + + * rs6000.c: Move include of output.h below tree.h. Include toplev.h. + (any_operand): Mark unused parameters `op' and `mode' with + ATTRIBUTE_UNUSED. + (count_register_operand): Likewise for parameter `mode'. + (fpmem_operand): Likewise. + (short_cint_operand): Likewise. + (u_short_cint_operand): Likewise. + (non_short_cint_operand): Likewise. + (got_operand): Likewise. + (got_no_const_operand): Likewise. + (non_add_cint_operand): Likewise. + (non_logical_cint_operand): Likewise. + (mask_operand): Likewise. + (current_file_function_operand): Likewise. + (small_data_operand): Likewise for parameters `op' and `mode' but + only when !TARGET_ELF. + (init_cumulative_args): Mark parameters `libname' with + ATTRIBUTE_UNUSED. + (function_arg_pass_by_reference): Likewise for parameters `cum', + `mode' and `named'. + (expand_builtin_saveregs): Likewise for parameter `args'. + (load_multiple_operation): Likewise for parameter `mode'. + (store_multiple_operation): Likewise. + (branch_comparison_operator): Likewise. + (secondary_reload_class): Likewise. + (print_operand): Add parentheses around & operation. + (output_prolog): Mark parameter `size' with ATTRIBUTE_UNUSED. + (output_epilog): Likewise. Cast argument to fprintf to int. + (rs6000_adjust_cost): Mark parameter `dep_insn' with ATTRIBUTE_UNUSED. + (rs6000_valid_decl_attribute_p): Likewise for parameters `decl', + `attributes', `identifier' and `args'. + (rs6000_valid_type_attribute_p): Likewise for parameter `attributes'. + (rs6000_comp_type_attributes): Likewise for parameters `type1' and + `type2'. + (rs6000_set_default_type_attributes): Likewise for parameter `type'. + + * rs6000.h (RTX_COSTS): Add parentheses around & operation. + (toc_section, private_data_section, trap_comparison_operator): Add + prototypes. - * h8300.c (h8300_encode_label): Use '&' for tiny data items. - * h8300.h (TINY_DATA_NAME_P): Likewise. - (STRIP_NAME_ENCODING): Handle '&'. + * dbxout.h (dbxout_parms, dbxout_reg_parms, dbxout_syms): Add + prototypes. - * mn10200.h (REG_OK_FOR_INDEX_P): Do not check the mode of the - register (it could be accessed via an outer SUBREG). - (REG_OK_FOR_BASE_P): Likewise. - (GO_IF_LEGITIMATE_ADDRESS): Consistently use REGNO_OK_FOR_BASE_P. + * xcoffout.c: Include toplev.h, outout.h and dbxout.h. - * remove.c (optimize_reg_copy_3): Abort instead of silently generating - bogus rtl. + * xcoffout.h (stab_to_sclass, xcoffout_begin_function, + xcoffout_begin_block, xcoffout_end_epilogue, + xcoffout_end_function, xcoffout_end_block, + xcoff_output_standard_types, xcoffout_declare_function, + xcoffout_source_line): Add prototypes. - * jump.c (rtx_renumbered_equal_p): Do not consider PLUS commutative. +Thu Jun 25 09:54:55 1998 Nick Clifton -Thu Aug 20 17:35:20 1998 David S. Miller + * config/arm/arm.h (REG_ALLOC_ORDER): Add ARG_POINTER_REGNUM, + noticed by grahams@rcp.co.uk. - * config/sparc/sparc.md (movtf_insn_sp32): All memory operands - must be offsettable so the splits can be made. +Thu Jun 25 11:12:29 1998 Dave Brolley -Thu Aug 20 13:56:53 1998 Michael Meissner + * gcc.c (default_compilers): Use new | syntax to eliminate + string concatenation. - * config/i386/winnt.c: Include system.h, not stdio.h to get - sys/param.h pulled in before rtl.h in case the system defines MIN - and MAX. +Thu Jun 25 01:00:48 1998 Richard Henderson -Thu Aug 20 13:44:20 1998 David Edelsohn + * alpha.c (alpha_function_name): Delete. + (alpha_ra_ever_killed): Notice current_function_is_thunk. + (alpha_sa_mask, alpha_sa_size, alpha_does_function_need_gp): Likewise. + (alpha_start_function): Reorg from output_prologue. + (alpha_end_function): Reorg from output_epilogue. + * alpha.h (ASM_DECLARE_FUNCTION_NAME): Call alpha_start_function. + (ASM_DECLARE_FUNCTION_SIZE): New. + (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Delete. + (PROFILE_BEFORE_PROLOGUE): Set. + (ASM_OUTPUT_MI_THUNK): Remove bits now output by start/end_function. + * alpha/win-nt.h (ASM_OUTPUT_MI_THUNK): Likewise. - * rs6000.md (movqi, movhi): Add CONSTANT_P_RTX. +Thu Jun 25 01:18:47 1998 John Wehle (john@feith.com) -Thu Aug 20 13:15:11 1998 Dave Brolley + * i386/freebsd-elf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Define. - * stor-layout.c (layout_type): Compute TYPE_SIZE_UNIT correctly for - arrays of bits. - * cpplib.c (cpp_define): Handle macros with parameters. +1998-06-25 Herman A.J. ten Brugge -Wed Aug 19 21:33:19 1998 David Edelsohn + * expr.c (expand_assignment): Rework address calculation for structure + field members to expose more invariant computations to the loop + optimizer. + (expand_expr): Likewise. - * rs6000.c (rs6000_output_load_toc_table): Use ld for 64-bit. - (output_toc): Use single TOC slot or llong minimal-toc for DFmode - and DImode 64-bit. Use llong for minimal-toc SFmode and - SYMBOL_REF / LABEL_REF 64-bit. - (output_function_profiler): Use llong for profiler label and ld to - load 64-bit label address. +Wed Jun 24 22:44:22 1998 Jeffrey A Law (law@cygnus.com) -Wed Aug 19 17:52:27 1998 Nick Clifton (nickc@cygnus.com) + * local-alloc.c (block_alloc): Do not try to avoid false dependencies + when SMALL_REGISTER_CLASSES is nonzero. - * config/arm/thumb.md (extendqisi2_insn): Cope with REG + - OFFSET addressing. +Wed Jun 24 17:55:15 1998 Klaus Kaempf -Wed Aug 19 14:13:31 1998 Jeff Law (law@cygnus.com) + * alpha.md (call_vms, call_value_vms): Strip leading * from symbol. - * version.c: Bump for snapshot. +Wed Jun 24 16:27:23 1998 John Carr -Wed Aug 19 13:10:30 1998 Jeff Law (law@cygnus.com) + * expr.c (get_memory_rtx): New function. + (expand_builtin): Call get_memory_rtx for MEM arguments to builtin + string functions. - * version.c: Bump for snapshot. + * expmed.c (init_expmed): Initialize all elements of *_cost arrays. -Wed Aug 19 13:06:47 1998 Jason Merrill + * optabs.c: Use gen_rtx_FOO (...) instead of gen_rtx (FOO, ...). + * expr.c: Likewise. + * explow.c: Likewise. + * combine.c: Likewise. + * reload1.c: Likewise. + * gcse.c: Likewise. - * collect2.c (extract_init_priority): Use atoi instead of strtoul. +Wed Jun 24 15:13:01 1998 Dave Brolley -Wed Aug 19 13:51:35 1998 Hans-Peter Nilsson + * README.gnat: Add patch for new lang_decode_options interface. - * tm.texi (Misc): Fix typo "teh". +Wed Jun 24 09:14:04 1998 Andrew MacLeod - * tm.texi (PIC): Fix typo "PPIC". + * except.c (start_catch_handler): Do nothing if EH is not on. - * tm.texi (Caller Saves): Say that DEFAULT_CALLER_SAVES has no - effect when -O2 and higher. - * invoke.texi (Optimize Options): Likewise for -fcaller-saves. +1998-06-24 Manfred Hollstein -1998-08-19 Michael Hayes + * configure.in (gxx_include_dir): Initialize default value depending on + new flag --enable-version-specific-runtime-libs; remove superfluous + default initialization afterwards. + * configure: Regenerate. - * regclass.c: Changed register set documentation to be consistent - with GCC behavior. +Wed Jun 24 01:32:12 1998 David S. Miller - * final.c (final_start_function): Removed redundant test for - call_fixed_regs. + * toplev.c (rest_of_compilation): Revert May 15 change. -Wed Aug 19 13:28:41 1998 Mark Mitchell +Tue Jun 23 21:27:27 1998 Ken Raeburn - * rtl.h (rtx_function): New type. - (for_each_rtx): New function. - * rtlanal.c (for_each_rtx): Define it. + * reload.c (find_reloads): Fix check for failure to match any + alternative, to account for Mar 26 change in initial "best" cost. - * recog.c (change_t): New type. - (change_objects, change_old_codes, change_locs, change_olds): - Replace with ... - (changes): New variable. - (validate_change): Dynamically allocate room for more changes, if - necessary. Uses changes array instead of change_objects, etc. - (apply_change_group): Use changes array instead of - change_objects, etc. +Tue Jun 23 16:44:21 1998 Dave Brolley - * loop.c (loop_mem_info): New type. - (loop_mems): New variable. - (loop_mems_idx): Likewise. - (looop_mems_allocated): Likewise. - (scan_loop): Remove nregs parameter. - (next_insn_in_loop): New function. - (load_mems_and_recount_loop_regs_set): Likewise. - (load_mems): Likewise. - (insert_loop_mem): Likewise. - (replace_loop_mem): Likewise. - (replace_label): Likewise. - (INSN_IN_RANGE_P): New macro. - (loop_optimize): Don't pass max_reg_num() to scan_loop. - (scan_loop): Remove nregs parameter, compute it after any new - registers are created by load_mems. Use INSN_IN_RANGE_P and - next_insn_in_loop rather than expanding them inline. Call - load_mems to load memory into pseudos, if appropriate. - (prescan_loop): Figure out whether or not there are jumps from the - loop to targets other than the label immediately following the - loop. Call insert_loop_mem to notice all the MEMs used in the - loop, if it could be safe to pull MEMs into REGs for the duration - of the loop. - (strength_reduce): Use next_insn_in_loop. Tweak comments. + * cpplib.c (do_line): Typo broke #line directive. + (cpp_message_from_errno): New function. + (cpp_error_from_errno): Call cpp_message_from_errno. + * cpplib.h (cpp_message_from_errno): New function. -Wed Aug 19 08:29:44 1998 Richard Earnshaw (rearnsha@arm.com) +Tue Jun 23 13:38:18 1998 Andrew MacLeod - * arm.c (arm_override_options): Remove lie about ignoring PIC flag. + * libgcc2.c (__get_eh_table_version, __get_eh_table_language): New + functions to return exception descriptor information. + (find_exception_handler): Pass match_info field to runtime matcher, + not a descriptor table entry. -Wed Aug 19 07:08:15 1998 David S. Miller +Tue Jun 23 09:30:58 1998 Dave Love - * config/sparc/sparc.c (finalize_pic): Check for the correct - nonlocal_goto_receiver UNSPEC number. - * config/sparc/sparc.md (nonlocal_goto_receiver): Add comment - making note of this dependency existing in sparc.c. - (negtf2_notv9 split): Give NEG SFmode. - (negsf2): Fix insn output string. + * cpp.texi, gcc.texi: Add @dircategory, @direntry meant to + accompany previous Makefile.in (install-info) change. -Tue Aug 18 12:40:27 1998 Richard Henderson +Tue Jun 23 10:06:07 1998 Andrew MacLeod - * c-common.c (decl_attributes): Issue an error if the argument - to alias is not a string. + * eh-common.h (struct __eh_info): Remove coerced value field. + * libgcc2.c (find_exception_handler): Don't set coerced_value field. + * except.c (get_dynamic_handler_chain, get_dynamic_cleanup_chain): Use + POINTER_SIZE instead of Pmode. + (expand_start_all_catch): Call start_catch_handler() if we are not + using new style exceptions. -Tue Aug 18 10:33:30 1998 Jeffrey A Law (law@cygnus.com) +Tue Jun 23 06:45:00 1998 Catherine Moore - * haifa-sched.c (sched_analyze): Put all JUMP_INSNs on the last - pending memory flush list. + * varasm.c (assemble_variable): Remove reference to warn_bss_align. - * combine.c (can_combine_p): Allow combining insns with REG_RETVAL - notes. - (try_combine): Allow combining insns with REG_LIBCALL notes. +Mon Jun 22 23:57:31 1998 David S. Miller - * expr.c (emit_block_move): Do not call memcpy as a libcall - instead build up a CALL_EXPR and call it like any other - function. - (clear_storage): Similarly for memset. + * config/sparc/sparc.md (zero_extendhidi2, extendhisi2, + extendqihi2, extendqisi2, extendqidi2, extendhidi2, adddi3, + subdi3, negdi2, call, call_value, untyped_return, nonlocal_goto, + splits and peepholes): Change remaining generic gen_rtx calls to + specific genrtl ones. + * config/sparc/sparc.c: Likewise. + +Mon Jun 22 22:21:46 1998 Richard Henderson - * regmove.c (fixup_match_2): Do not call reg_overlap_mentioned_p - on notes. + * gcc.c (handle_braces): Recognize | between options as an or. - * Makefile.in (cplus-dem.o): Provide explicit rules for building - cplus-dem.o. +Mon Jun 22 23:13:47 1998 John Wehle (john@feith.com) - * regmove.c (optimize_reg_copy_1): Update REG_N_CALLS_CROSSED - and REG_LIVE_LENGTH as successful substitutions are made. + * i386/freebsd-elf.h (JUMP_TABLES_IN_TEXT_SECTION): Define as flag_pic. + * i386/sysv4.h (JUMP_TABLES_IN_TEXT_SECTION): Define as flag_pic. -Tue Aug 18 07:15:27 1998 Kaveh R. Ghazi + * i386.md (exception_receiver): Define. - * config/sparc/sparc.c (ultra_find_type): Add empty semicolon - statement after end of loop label. +Mon Jun 22 12:01:48 1998 Jim Wilson -Tue Aug 18 07:13:27 1998 David S. Miller + * Makefile.in (PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, + PROTOIZE_CROSS_NAME, UNPROTOIZE_CROSS_NAME): New variables. + (install-common): Use them. - * config/sparc/sparc.c (ultra_types_avail): New variable. - (ultra_build_types_avail): New function to record mask of insn - types in ready list at this cycle. - (ultrasparc_sched_reorder): Call it. - (ultra_find_type): Use it to quicken the search. Also simplif - dependency check, don't use rtx_equal_p because we know exactly - what we are looking for. + * gcse.c (add_label_notes): New function. + (pre_insert_insn): Call it. + * unroll.c (unroll_loop): Look for insns with a REG_LABEL note, and + pass the label to set_label_in_map. -Tue Aug 18 03:20:53 1998 Richard Earnshaw (rearnsha@arm.com) +Mon Jun 22 19:01:14 1998 Dave Love - * arm.h (SECONDARY_INPUT_RELOAD_CLASS): Return NO_REGS if compiling - for architecture v4. + * Makefile.in (install-info): Fix typpo in previous change. -Mon Aug 17 21:26:38 1998 David S. Miller +Mon Jun 22 11:10:00 1998 Catherine Moore - * config/sparc/sparc.md (sltu, sgeu): Don't FAIL, call - gen_compare_reg. - (movsf_const_intreg, movsf_const_high, movsf_const_lo, - movdf_const_intreg and helper splits): New patterns to move float - constants into integer registers. - (negtf2, negdf2, abstf2, absdf2): Rework using new patterns and - splits. + * varasm.c (assemble_variable): Emit alignment warning. -Mon Aug 17 11:46:19 1998 Jeffrey A Law (law@cygnus.com) +Mon Jun 22 08:18:46 1998 Kaveh R. Ghazi - * From Graham - * tree.c (build_index_type): Copy TYPE_SIZE_UNIT from sizetype - to itype. - * c-decl.c (finish_enum): Copy TYPE_SIZ_UNIT from enumtype to tem. + * Makefile.in (varasm.o): Depend on sdbout.h. + (sdbout.o): Depend on toplev.h. - * rs6000.c (secondary_reload_class): For TARGET_ELF, indicate that - a BASE_REGS register is needed as an intermediate when copying - a symbolic value into any register class other than BASE_REGS. + * collect2.c (scan_prog_file): Cast fprintf argument to `long' and + use %ld specifier. - * expr.c (move_by_pieces): No longer static. Remove prototype. - * rtl.h (move_by_pieces): Add extern prototype. - * mips.c (expand_block_move): Handle aligned straight line copy by - calling move_by_pieces. + * final.c (shorten_branches): Cast first arg of `bzero' to char *. - * expr.c (expand_expr): Allow assignments from TImode PARM_DECLs - and VAR_DECLs. + * genextract.c (main): When creating insn-extract.c, mark variable + `i' with ATTRIBUTE_UNUSED. -Mon Aug 17 10:28:52 1998 Mark Mitchell + * genpeep.c (main): When creating insn-peep.c, mark variables + `insn', `x' and `pat' with ATTRIBUTE_UNUSED. - * stmt.c (expand_end_loop): Tidy. Allow unconditional - jumps out of the loop to be treated as part of the exit test. + * objc/init.c (__objc_tree_print): Wrap function definition in + macro `DEBUG'. -Mon Aug 17 10:06:11 1998 Kaveh R. Ghazi - Jeff Law + * objc/objc-act.c (encode_array): Cast sprintf argument to `long' + and use %ld specifier. + (adorn_decl): Likewise, twice. - * Makefile.in (cplus-dep.o): Use cplus-dem.c from libiberty. - * cplus-dem.c: Delete. + * reload1.c (reload_cse_regs): Cast first arg of `bzero' to char *. - * Makefile.in (fold-const.o): Depend on $(RTL_H). + * sdbout.c: Include output.h and toplev.h. + (PUT_SDB_INT_VAL): Use HOST_WIDE_INT_PRINT_DEV to print argument + `a'. Cast `a' to HOST_WIDE_INT to force it to always be so. + (PUT_SDB_SIZE): Likewise. - * fold-const.c: Include rtl.h to get the prototype for - `set_identifier_local_value'. + * sdbout.h (sdbout_mark_begin_function): Add prototype. - * loop.c (express_from_1): Remove unused variable `tmp'. - (combine_givs): Cast the first argument of bzero to char *. + * stmt.c (check_for_full_enumeration_handling): Cast argument of + `warning' to long and use %ld specifier. - * toplev.c (display_help): Remove unused variable `looking_for_start'. + * toplev.c (main): Likewise for `fprintf'. - * c-decl.c (init_decl_processing): Remove unneeded &. + * toplev.h (output_file_directive): Add prototype. - * alpha.h (alpha_initialize_trampoline): Provide prototype. + * unroll.c (unroll_loop): Use HOST_WIDE_INT_PRINT_DEC specifier in + call to `fprintf'. + (precondition_loop_p): Likewise. - * except.c (set_exception_lang_code, set_exception_version_code): - Change parameter from `short' to `int' to avoid using a gcc - extension. + * varasm.c Include sdbout.h. + (assemble_static_space): Move sometimes-unused variable `rounded' + into the scope in which it is used. + + * mips.c (gpr_mode): Don't say `static' twice. - * except.h (set_exception_lang_code, set_exception_version_code): - Likewise for prototypes. + * cpplib.c (cpp_handle_option): Don't pass unneeded NULL to cpp_fatal. - * flow.c (count_reg_references): Remove unused variables `regno' - and `i'. + * objc/objc-act.c (init_selector): Hide prototype and definition. - * gcse.c (hash_scan_insn): Declare parameter `in_libcall_block'. + * optabs.c (gen_cond_trap): Remove unused variable `icode'. + + * regmove.c (copy_src_to_dest): Likewise for `i'. - * prefix.c (translate_name): Cast the result of `alloca'. + * mips-tfile.c (add_local_symbol): Cast width format specifier to int. + (add_ext_symbol): Likewise. + (add_file): Likewise. + (parse_def): Likewise. + (write_varray): Use HOST_PTR_PRINTF to print a pointer. Fix + remaining format specifiers and arguments. + (write_object): Likewise, several times. + (read_seek): Likewise. + (out_of_bounds): Likewise. + (allocate_cluster): Likewise. + (xmalloc): Likewise. + (xcalloc): Likewise. + (xrealloc): Likewise. + (xfree): Likewise. - * varray.h (VARRAY_FREE): Reimplement as a `do-while(0)' statement. + * mips-tdump.c (print_symbol): Likewise. + +Sun Jun 21 17:05:34 1998 Dave Love -Mon Aug 17 09:23:42 1998 Andreas Schwab + * Makefile.in (install-info): Use install-info program if + available, per GNU standard. - * config/m68k/m68k.c: Include "system.h" instead of . - Include "toplev.h". - (valid_dbcc_comparison_p): Mark mode argument as unused. - (symbolic_operand): Likewise. - (legitimize_pic_address): Likewise. - (const_uint32_operand): Likewise. - (const_sint32_operand): Likewise. - * sched.c [!INSN_SCHEDULING]: Define only dummy function - schedule_insns and comment out rest of file. +Sun Jun 21 18:56:44 1998 Jeffrey A Law (law@cygnus.com) - * m68k.c (output_move_simode_const): Use subl to move a zero into an - address register. - (output_move_[hq]imode): Likewise. + * invoke.texi: Document -mrelax for the mn10300 and mn10200. -Mon Aug 17 09:15:47 1998 Jeffrey A Law (law@cygnus.com) + * basic-block.h (init_regset_vector): Delete declaration. + * flow.c (init_regset_vector): Make it static and add a prototype. - * toplev.c (main): Enable -fstrict-aliasing for -O2 and above. - * invoke.texi: Corresponding changes. + * bitmap.h (debug_bitmap): Declare. -Mon Aug 17 02:03:55 1998 Richard Henderson + * haifa-sched.c (debug_ready_list): Make static. - * regclass.c (allocate_reg_info): Respect MIN when clearing data. + * toplev.h (fancy_abort): Declare. -Sun Aug 16 17:37:06 1998 David S. Miller +Sun Jun 21 18:30:13 1998 H.J. Lu (hjl@gnu.org) - * config/sparc/sparc.c (ultra_code_from_mask, - ultra_cmove_results_ready_p, ultra_fpmode_conflict_exists, - ultra_find_type, ultra_schedule_insn, ultra_flush_pipeline, - ultrasparc_sched_init, ultrasparc_variable_issue, - ultra_rescan_pipeline_state, ultrasparc_sched_reorder): New - functions to describe UltraSPARC pipeline exactly to Haifa. - (ultrasparc_adjust_cost): Indicate IMUL type insns have zero cost, - as there is nothing the scheduler can do about it. Indicate that - REG_DEP_OUTPUT's collide. Fixup formatting. - * config/sparc/sparc.h (RTX_COSTS): Fixup integer multiply and - divide costs on Ultra for DImode. - (MD_SCHED_INIT, MD_SCHED_REORDER, MD_SCHED_VARIABLE_ISSUE): - Define. - * config/sparc/sparc.md (ieu_unnamed function unit): Rename to - ieuN and add call_no_delay_slot to type list. - (cti function unit): New unit for branches on UltraSPARC. - (subx/addx insns): Set type to misc. - (sidi zero/sign extension insns on arch64): Set type to shift. - (sign_extendhidi2_insn): Set type to sload. + * basic-block.h (init_regset_vector): New declaration. -Sun Aug 16 13:52:00 1998 David Edelsohn + * Makefile.in (sdbout.o): Add insn-codes.h to dependency. - * rs6000.c (rs6000_stack_info): Use if == 0 for sizes. - (output_epilog): Use if != 0 for offset. - (rs6000_fatal_bad_address): Prepare for Intl. - * rs6000.h (rs6000_fatal_bad_address): Declare. - * rs6000.md (movsfcc, movdfcc): Use else if. - (elf_high): Use {liu|lis}. - (elf_low): Use {cal|la}. Remove %a template from old mnemonics. - (movsi): Use rs6000_fatal_bad_address. + * global.c: Include machmode.h amd move hard-reg-set.h before + rtl.h. -Sun Aug 16 01:53:21 1998 Richard Henderson + * haifa-sched.c (insn_issue_delay, birthing_insn_p, + adjust_priority, print_insn_chaino): New declaration. + (schedule_insns): Remove declaration. + (init_target_units, get_visual_tbl_length, + init_block_visualization): Add prototype. - * reload.c (find_equiv_reg): Reject equivalences separated - by a volatile instruction. + * integrate.c (pushdecl, poplevel): Remove declaration. -Sun Aug 16 00:21:44 1998 Franz Sirl + * rtl.h (expand_expr): Remove declaration. - * rs6000/linux.h (CPP_OS_DEFAULT_SPEC): Define. + * loop.c (oballoc): Remove declaration. + (replace_call_address): Add prototype. -Sat Aug 15 20:51:35 1998 Richard Henderson +Sun Jun 21 01:08:17 1998 Jeff Law (law@cygnus.com) - * alpha.md (movsicc): Fix mode mismatch. + * version.c: Bump for snapshot. -Sat Aug 15 20:22:33 1998 H.J. Lu (hjl@gnu.org) +Sun Jun 21 01:16:38 1998 John Wehle (john@feith.com) - * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Handle aggregated - return type. - * config/alpha/win-nt.h (ASM_OUTPUT_MI_THUNK): Likewise. + * i386.c (output_fp_conditional_move): Don't bother handling + (cc_prev_status.flags && CC_NO_OVERFLOW) since the INSN patterns + prevent this from happening. -Sat Aug 15 08:39:49 1998 David S. Miller + * i386.md (nonlocal_goto_receiver): Delete. - * config/sparc/sparc.md (movsi_lo_sum_pic_label_reg): Remove - write-only modifier from operand 1 constraint. +Sun Jun 21 00:42:20 1998 H.J. Lu (hjl@gnu.org) -Sat Aug 15 06:28:19 1998 David S. Miller + * Makefile.in (crtbeginS.o, crtendS.o): Add -fno-exceptions and + -DCRTSTUFFS_O. + (INSTALL): cd $(srcdir) before make. - * config/sparc/sparc.c (sparc_emit_set_const64_quick1): If - emitting a XOR of -1 at the end, emit a NOT instead for combine's - sake. - (sparc_emit_set_const64): Likewise, also when computing trailing - bits do not negate low_bits and make fast_int an int. + * flow.c (allocate_for_life_analysis, init_regset_vector): + Remove declaration. -Fri Aug 14 21:07:03 1998 Jeffrey A Law (law@cygnus.com) + * function.h (get_first_block_beg): New declaration. - * loop.c (add_label_notes): Do not ignore references to labels - before dispatch tables. Mirrors Apr 8 change to mark_jump_label. - * gcse.c (add_label_notes): Similarly. + * gbl-ctors.h (__do_global_dtors): Add prototype. - * pa.h (ASM_OUTPUT_MI_THUNK): Strip name encoding. + * gcov-io.h (__fetch_long): New declaration. + (__store_long): Likewise. + (__read_long): Likewise. + (__write_long): Likewise. - * m68k.md (adddi_dilshr32): One of the operands must be a register. - (adddi_dishl32): Similarly. + * gcov.c (print_usage): New declaration. -Fri Aug 14 14:12:59 1998 Jason Merrill + * Makefile.in (c-iterate.o): Depend on insn-codes.h too. - * i386.h (MODES_TIEABLE_P): Reorganize to shut up warnings. - * alias.c (memrefs_conflict_p): Add braces to shut up warnings. - * cse.c (cse_basic_block): Add parens to shut up warnings. +Sat Jun 20 00:36:16 1998 Jeffrey A Law (law@cygnus.com) -Fri Aug 14 12:58:21 1998 David S. Miller + * calls.c (expand_call): Initialize "src" and "dest". + * stmt.c (expand_return): Likewise. + * expmed.c (extract_split_bit_field): Similarly for "result" + * gcse.c (compute_hash_table): Mark first arg as unused. + * jump.c (jump_optimize): Initialize reversep. + * tree.c (make_node): Initialize length. - * config/sparc/sparc.c (sparc_emit_set_const64_quick2, - sparc_emit_set_const64_longway, const64_is_2insns, - create_simple_focus_bits, sparc_emit_set_const64): Fix more bugs - in 64-bit constant formation. - * config/sparc/sparc.md (snesi_zero_extend split): Generate - rtl for addx not subx. - (define_insn movdi_const64_special): Make available even when - HOST_BITS_PER_WIDE_INT is not 64. - (movdi_lo_sum_sp64_cint, movdi_high_sp64_cint): Remove. - (losum_di_medlow, sethm, setlo): Make op2 symbolic_operand. - (cmp_siqi_trunc_set, cmp_diqi_trunc_set): Encapsulate both - instances of operand 1 inside a QI subreg. - (xordi3_sp64_dbl): Remove '%' constraint for op1. - (one_cmpldi2_sp64): Fix output string. - (one_cmplsi2_not_liveg0): Rewrite to remove unneeded extra - alternative case. - (unnamed arch64 ashift DI): Truncate shift count if greater than - 63, not 31. + * c-common.c (check_format_info): Initialize length_char and + fci to keep -Wall quiet. -Fri Aug 14 21:52:53 1998 J"orn Rennecke + * except.c (jumpif_rtx): Put declaration and definition + inside a suitable #ifdef. + (jumpifnot_rtx): Delete dead function. - * expr.c (store_expr): Don't optimize away load-store pair - when either source or destination have a side effect. + * i386.h (output_int_conditional_move): Declare. + (output_fp_conditional_move): Likewise. + (ix86_can_use_return_insn_p): Likewise. -Fri Aug 14 16:50:10 1998 John Carr + * optabs.c (init_traps): Put prototype inside a suitable #ifdef. - * genrecog.c (add_to_sequence): Fatal error if the modes of the - operands of SET are incompatible. +Sat Jun 20 00:27:40 1998 Graham - * alpha.md: Fix max and min patterns so modes of SET operands match. + * alias.c: Include toplev.h. + * caller-save.c: Include toplev.h. + * combine.c: Include toplev.h. + * flow.c Include toplev.h. + * global.c: Include toplev.h. + * jump.c: Include toplev.h. + * local-alloc.c: Include toplev.h. + * loop.c: Include toplev.h. + * regmove.c: Include toplev.h. + * stupid.c: Include toplev.h. + * unroll.c: Include toplev.h. + * Makefile.in: Add toplev.h dependencies. -Fri Aug 14 12:22:55 1998 Ian Lance Taylor +Fri Jun 19 22:40:25 1998 Jason Merrill - * configure.in: Avoid [[ by using test and changequote. - * configure: Rebuild. + * regmove.c (copy_src_to_dest): Add decl for loop_depth. -Fri Aug 14 01:22:31 1998 David S. Miller + * svr4.h (ASM_GENERATE_INTERNAL_LABEL): Cast arg to unsigned. + * dwarf2out.c (ASM_OUTPUT_DWARF_DATA1): Likewise. + Add parens to various macros. - * rtl.def (CONSTANT_P_RTX): Fix typo in string name. +Fri Jun 19 23:22:42 1998 Bruno Haible - * config/sparc/sparc.md (seqdi_special_trunc, snedi_special_trunc, - seqsi_special_extend, snesi_special_extend, snesi_zero_extend and - split, snedi_zero_trunc and split, seqsi_zero_extend and split, - seqdi_zero_trunc and split, pic_lo_sum_di, pic_sethi_di, - movdi_cc_sp64_trunc, movdi_cc_reg_sp64_trunc, addx_extend_sp32 and - split, addx_extend_sp64, subx_extend_sp64, subx_extend and split): - Fix mismatching modes in SET operands. - (conditional move patterns): Fix formatting. - (unnamed subx arch64 pattern): Remove duplicate insn. + * c-typeck.c (pop_init_level): Warn about implicit zero initialization + of struct members. -Fri Aug 14 00:34:34 1998 David S. Miller +Fri Jun 19 23:06:33 1998 Jason Merrill - * config/sparc/sparc.c (const64_operand, const64_high_operand): - Get it right when HOST_BITS_PER_WIDE_INT is not 64. - (input_operand): Fixup test for what we accept for constant - integers. - (sparc_emit_set_const32, sparc_emit_set_symbolic_const64): Give - set VOIDmode. - (safe_constDI): Remove. - (sparc_emit_set_safe_HIGH64, gen_safe_SET64, gen_safe_OR64, - gen_safe_XOR64): New functions. - (sparc_emit_set_const64_quick1, sparc_emit_set_const64_quick2, - sparc_emit_set_const64_longway, sparc_emit_set_const64): Use - them. - * config/sparc/sparc.md (define_insn xordi3_sp64_dbl): Only make - available when HOST_BITS_PER_WIDE_INT is not 64. - (define_insn movdi_sp64_dbl, movdi_const64_special): Likewise and - move before movdi_insn_sp64 pattern. - (define_insn movdi_lo_sum_sp64_dbl, movdi_high_sp64_dbl): Remove. - (define_insn sethi_di_medlow, seth44, setm44, sethh): Use - symbolic_operand as predicate for second operand. - (DImode minus split on arch32, negsi2 expander, one_cmplsi2 - expander): Give set VOIDmode. + * varasm.c (assemble_start_function): Add weak_global_object_name. + * tree.c (get_file_function_name): Use it. -Fri Aug 14 01:45:06 1998 Mumit Khan +Fri Jun 19 22:55:14 1998 Jeffrey A Law (law@cygnus.com) - * i386/cygwin32 (DEFAULT_PCC_STRUCT_RETURN): Define. + * except.c (jumpif_rtx): Make static and add prototype. + (jumpifnot_rtx): Likewise. -Fri Aug 14 01:40:21 1998 Geoffrey Keating + * README.gnat: Add a build patch from Fred Fish. - * rs6000/linux.h (LINK_SPEC): Pass -G args to the linker. + * c-lang.c (GNU_xref_begin, GNU_xref_end): Deleted. -Fri Aug 14 01:23:23 1998 Richard Earnshaw (rearnsha@arm.com) + * Makefile.in (c-iterate.o): Depend on expr.h. - * arm/netbsd.h (TARGET_DEFAULT): Default includes software floating - point. - (CPP_FLOAT_DEFAULT_SPEC): Re-define accordingly. +Fri Jun 19 20:38:34 1998 H.J. Lu (hjl@gnu.org) -Fri Aug 14 01:19:08 1998 Robert Lipe + * except.h (emit_unwinder, end_eh_unwinder): Removed. - * install.texi: Various SCO OpenServer tweaks. + * dwarfout.c (getpwd): Add prototype. + (is_pseudo_reg, type_main_variant, is_tagged_type, + is_redundant_typedef): New declaration. + (output_decl): Add prototype for FUNC. + (type_main_variant): Make it static. + (is_tagged_type): Likewise. + (is_redundant_typedef): Likewise. -Thu Aug 13 20:14:40 1998 Jim Wilson + * expr.c (do_jump_by_parts_greater_rtx): Removed. + (truthvalue_conversion): Likewise. - * reload1.c (eliminate_regs_in_insn): Handle another case when - eliminating the frame pointer to the hard frame pointer. Add - missing ep->to_rtx check to one existing case. + * c-iterate.c: Include "expr.h". + (expand_expr): Use proper values when calling the function. - * mips/mips.md (movhi_internal2+2): Fix typo mem:SI -> mem:HI. + * explow.c (emit_stack_save): Add prototype for FCN. + (emit_stack_restore): Likewise. -Thu Aug 13 17:08:11 1998 Jason Merrill + * dwarf2out.c (getpwd): Add prototype. - * tree.h: De-conditionalize init_priority code. + * dwarf2out.h (debug_dwarf, debug_dwarf_die): New declarations. - * mips.h (NM_FLAGS): Change from -Bp to -Bn. - * collect2.c (NM_FLAGS): Change from -p to -n. + * c-typeck.c (c_expand_asm_operands): Use proper values when calling + expand_expr. - * configure.in: Turn on collect2 for mipstx39-elf. - Handle use_collect2=no properly. + * c-lex.c (yyprint): Add prototype. + (check_newline, build_objc_string): Remove declaration. - * c-common.c: De-conditionalize init_priority code. - * collect2.c (extract_init_priority, sort_ids): New fns. - (main): Call sort_ids. - Move sequence_number to file scope. + * c-tree.h (comptypes_record_hook): Removed. + (finish_incomplete_decl): New prototype. - * configure.in: Handle --enable-init-priority. - * c-common.c (attrs): Add A_INIT_PRIORITY. - (init_attributes, decl_attributes): Likewise. - * tree.h (DEFAULT_INIT_PRIORITY, MAX_INIT_PRIORITY): New macros. - * tree.c (get_file_function_name_long): Split out... - (get_file_function_name): ...from here. + * alias.c (find_base_value): Add prototype. + (true_dependence): Add prototype for function argument. -Thu Aug 13 16:09:53 1998 Martin von Loewis + * c-aux-info.c (xmalloc): Remove declaration. - * expr.c (safe_from_p): Change code to ERROR_MARK only when not - accessing nodes. +Fri Jun 19 20:23:05 1998 Robert Lipe -Thu Aug 13 15:24:48 1998 Jason Merrill + * i386.c: Include system.h. Remove redundant includes. + (optimization_options): Mark param 'size' with ATTRIBUTE_UNUSED. + (i386_cc_probably_useless_p): Likewise for 'decl', 'attributes', + 'identifier', 'args'. + (i386_valid_type_attribute_p): Likewise for 'attributes'. + (i386_comp_type_attribute_p): Likewise for 'type1', 'type2'. + (function_arg_partial_nregs): Likewise for 'cum', 'mode', 'type', + and 'named'. + (symbolic_operand): Likewise for 'mode'. + (call_insn_operand): Likewise. + (expander_call_insn_operand): Likewise. + (ix86_logical_operator): Likewise. + (ix86_binary_operator_ok): Likewise. + (emit_pic_move): Likewise. + (VOIDmode_compare_op): Likewise. + (is_mul): Likewise. + (str_immediate_operand): Likewise. + (ix86_uary_operator_ok): Likewise for 'code', 'mode', and 'operands'.yy + (asm_output_function_prefix): Likewise for 'name'. + (function_prologue): Likewise for 'file', and 'size'. + (function_epilogue): Likewise. - * toplev.c (display_help): Add braces to shut up warnings. - * tree.c (simple_cst_equal): Likewise. +1998-06-19 Jim Wilson - * fold-const.c (non_lvalue): Don't deal with null pointer - constants here. - (fold, case COMPOUND_EXPR): Wrap a constant 0 in a NOP_EXPR. + * loop.h (struct induction): Clarify comment for unrolled field. + * unroll.c (find_splittable_givs): Move set of unrolled field + after address validity check. - * c-typeck.c (initializer_constant_valid_p): Allow conversion of 0 - of any size to a pointer. +Fri Jun 19 18:38:04 1998 Michael Meissner -Thu Aug 13 12:53:13 1998 Jim Wilson + * config/fp-bit.c (INLINE): Only define if not already defined. - * i386/winnt.c (i386_pe_asm_file_end): Check TREE_SYMBOL_REFERENCED. +1998-06-19 Manfred Hollstein -Wed Aug 12 17:25:18 1998 Jeffrey A Law (law@cygnus.com) + * Makefile.in (installdirs): Loop over directories in $(libsubdir) + creating probably missing ones, instead of single if statements. - * mn10300.c (REG_SAVE_BYTES): Only reserve space for registers - which will be saved. - * mn10300.md (prologue insn): Only save registers which need saving. - (epilogue insn): Similarly. +Fri Jun 19 10:43:52 1998 Andreas Schwab - * mn10300.c, mn10300.h, mn10300.md: Remove "global zero register" - optimizations. + * c-common.c (truthvalue_conversion): Protect side effects in the + expression when splitting a complex value. + * fold-const.c (fold): Likewise. -Wed Aug 12 12:39:16 1998 Gavin Romig-Koch +Fri Jun 19 02:31:16 1998 Klaus Kaempf (kkaempf@progis.de) - * mips/mips.h (ENCODE_SECTION_INFO): Set SYMBOL_REF_FLAG for - VAR_DECL's in gp addressable sections. + * cccp.c (hack_vms_include_specification): Rewrite to handle + '#include ' correctly. -Tue Aug 11 23:02:31 1998 John Carr +Fri Jun 19 02:24:11 1998 H.J. Lu (hjl@gnu.org) - * sparc.c: Change return to ; return; in functions - returning void. - * sparc.md: Add empty semicolon statement after final label in - move expanders. + * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Defined. -Tue Aug 11 22:42:01 1998 David S. Miller +Fri Jun 19 02:10:10 1998 John Wehle (john@feith.com) - * config/sparc/sparc.md (define_insn addx_extend): Rename to - addx_extend_sp64, only allow when TARGET_ARCH64. - (define_insn addx_extend_sp32 and split): Version that works when - not TARGET_ARCH64. - (define_insn subx_extend): Likewise. - (define_split adddi3 and subdi3 with zero extension): Fixup and - correct bugs when not TARGET_ARCH64. + * i386.c (notice_update_cc): Integer conditional moves don't + affect cc0. -Tue Aug 11 16:04:34 1998 John Carr + * i386.md (movsfcc, movdfcc, movxfcc): Use emit_store_flag + to support LT, LE, GE, and GT signed integer comparisons. + (movsfcc+1, movsfcc+2, movdfcc+1, movdfcc+2, + movxfcc+1, movxfcc+2): Pattern doesn't match if the comparison + is LT, LE, GE, or GT. + (movdicc): Remove code resulting from an earlier patch which + didn't apply correctly. - * except.c (set_exception_lang_code, set_exception_version_code): - Use prototype-style definition if __STDC__, to match declaration - in except.h. +Fri Jun 19 02:00:19 1998 Richard Kenner - * genemit.c: Change FAIL and DONE macros not to use loops. + * reload1.c (reload_cse_regno_equal_p): If -ffloat-store, don't + consider a MEM in FP mode as equal. -Tue Aug 11 12:27:03 1998 Jim Wilson +Fri Jun 19 01:02:17 1998 Jeffrey A Law (law@cygnus.com) - * dwarf2out.c (ASM_OUTPUT_DWARF_ADDR_CONST): Use - ASM_OUTPUT_DWARF2_ADDR_CONST if defined. + * c-decl.c (duplicate_decls): Avoid setting TREE_ASM_WRITTEN for + duplicate declarations of a function. - * mips/mips.md (reload_outsi): Use M16_REG_P when TARGET_MIPS16. +Fri Jun 19 00:33:33 1998 H.J. Lu (hjl@gnu.org) -Tue Aug 11 18:12:53 1998 Dave Love + * config/float-i386.h: New. - * README.g77: Update from Craig. + * configure.in (i[34567]86-*-linux-*): Set float_format to i386. + +Thu Jun 18 20:11:00 1998 Jim Wilson -Tue Aug 11 04:46:01 1998 David S. Miller + * sched.c (schedule_insns): Use xmalloc not alloca for max_uid + indexed arrays. Call free at the end of the function for them. + * haifa-sched.c (schedule_insns): Likewise. - * config/sparc/sparc.c (sparc_emit_set_const32): INTVAL is of - type HOST_WIDE_INT. - (safe_constDI sparc_emit_set_const64_quick1, - sparc_emit_set_const64_quick2, sparc_emit_set_const64_longway, - analyze_64bit_constant, const64_is_2insns, - create_simple_focus_bits): Fix some bugs when compiled on real - 64-bit hosts. - (function_arg_record_value_3, function_arg_record_value_2, - function_arg_record_value): Add fully prototyped forward decls. - * config/sparc/sparc.md (define_insn cmpsi_insn_sp32): Rename back - to cmpsi_insn and use on both 64 and 32 bit targets. - (define_insn cmpsi_insn_sp64): Remove. - (define_expand zero_extendsidi2): Allow for 32-bit target too. - (define_insn zero_extendsidi2_insn): Rename to - zero_extendsidi2_insn_sp64. - (define_insn zero_extendsidi2_insn_sp32): New pattern and - associated forced split for it. +Thu Jun 18 18:16:01 1998 Jim Wilson - * config/sparc/sparc.c (const64_operand, const64_high_operand): - New predicates. - * config/sparc/sparc.h: Declare them. - (PREDICATE_CODES): Add them. - * config/sparc/sparc.md (movdi_lo_sum_sp64_dbl, - movdi_high_sp64_dbl, xordi3_sp64_dbl): Use them. + * dwarf2out.c (size_of_string): Do count backslashes. -Mon Aug 10 22:57:24 1998 John Carr +Thu Jun 18 11:43:54 1998 Nick Clifton - * config/sparc/sparc.md (define_insn jump): Output ba,pt not b,pt - in v9 case as the latter makes the Solaris assembler crash. + * config/arm/thumb.h (GO_IF_LEGITIMATE_ADDRESS): Disallow REG+REG + addressing when one register is the frame pointer or stack + pointer. Disallow REG+CONST addressing in HI mode. -Mon Aug 10 22:39:09 1998 David S. Miller +Thu Jun 18 17:30:39 1998 J"orn Rennecke - * config/sparc/sparc.c (input_operand): Do not accept a LO_SUM MEM - for TFmode when !v9. We require offsettable memory addresses. - * config/sparc/sparc.h (ALTER_HARD_SUBREG): Handle TFmode to - DFmode register number conversions. - * config/sparc/sparc.md (define_split DFmode moves): If register - is a SUBREG do alter_subreg on it before using. - (define_expand movtf): Fixup comment about alignment on v9. - (define_split TFmode moves): Don't use gen_{high,low}part, create - explicit SUBREGs instead. + * reload.c (find_reloads): Don't narrow scope of RELOAD_OTHER to + RELOAD_FOR_INSN. -Mon Aug 10 19:02:55 1998 John Carr +Thu Jun 18 09:36:50 1998 Kaveh R. Ghazi - * Makefile.in (mbchar.o): Depend on mbchar.c. + * Makefile.in (c-lang.o): Depend on output.h. -Mon Aug 10 04:28:13 1998 David S. Miller - Richard Henderson + * c-lang.c: Include output.h. - Rewrite SPARC backend for better code generation and - improved sparc64 support. - * config/sparc/sp64-elf.h: Set JUMP_TABLES_IN_TEXT_SECTION to - zero. - * config/sparc/sysv4.h: Likewise. - * config/sparc/sparc.c (v8plus_regcmp_p, sparc_operand, - move_operand, v8plus_regcmp_op, emit_move_sequence, - singlemove_string, doublemove_string, mem_aligned_8, - output_move_double, output_move_quad, output_fp_move_double, - move_quad_direction, output_fp_move_quad, output_scc_insn): - Remove. - (small_int_or_double): New predicate. - (gen_compare_reg): Remove TARGET_V8PLUS cmpdi_v8plus emission. - (legitimize_pic_address): Emit movsi_{high,lo_sum}_pic instead of - old pic_{sethi,lo_sum}_si patterns. - (mem_min_alignment): New generic function to replace - mem_aligned_8, which uses REGNO_POINTER_ALIGN information when - available and can test for arbitrary alignments. All callers - changed. - (save_regs, restore_regs, build_big_number, - output_function_prologue, output_cbranch, output_return, - sparc_flat_save_restore, sparc_flat_output_function_prologue, - sparc_flat_output_function_epilogue): Prettify - insn output. - (output_function_epilogue): Likewise and add code to output - deferred case vectors. - (output_v9branch): Likewise, add new arg INSN and use it to tack - on branch prediction settings. All callers changed. - (print_operand): Likewise and output %l44 for LO_SUMs when - TARGET_CM_MEDMID. - (sparc_splitdi_legitimate): New function to make sure DImode - splits can be run properly when !arch64. - (sparc_initialize_trampoline, sparc64_initialize_trampoline): - Reformat example code in comments. - (set_extends): Remove UNSPEC/v8plus_clear_high case. - (sparc_addr_diff_list, sparc_addr_list): New statics to keep track - of deferred case vectors we need to output. - (sparc_defer_case_vector): Record a case vector. - (sparc_output_addr_vec, sparc_output_addr_diff_vec, - sparc_output_deferred_case_vectors): New functions to output them. - (sparc_emit_set_const32): New function to form 32-bit constants in - registers when that requires more than one instruction. - (safe_constDI, sparc_emit_set_const64_quick1, - sparc_emit_set_const64_quick2, sparc_emit_set_const64_longway, - analyze_64bit_constant, const64_is_2insns, - create_simple_focus_bits, sparc_emit_set_const64): New functions - which do the same for 64-bit constants when arch64. - (sparc_emit_set_symbolic_const64): New function to emit address - loading for all code models on v9. - * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Do not make - %g1 fixed when arch64, unfix %g0 when TARGET_LIVE_G0. - (ALTER_HARD_SUBREG): Fix thinko, return REGNO + 1 not 1. - (SECONDARY_INPUT_RELOAD_CLASS, SECONDARY_OUTPUT_RELOAD_CLASS): Fix - inaccuracies in comments, add symbolic and text_segment operands - when TARGET_CM_MEDANY and TARGET_CM_EMBMEDANY respectively. Use - GENERAL_REGS in these cases as a temp REG is needed to load these - addresses into a register properly. - (EXTRA_CONSTRAINT): Document more accurately, remove Q case as it - is no longer used. - (GO_IF_LEGITIMATE_ADDRESS): Allow TFmode for LO_SUM on v9 since fp - quads are guaranteed to have 16-byte alignment. - (LEGITIMIZE_ADDRESS): For SYMBOL_REF, CONST, and LABEL_REF use - copy_to_suggested_reg instead of explicit LO_SUM and HIGH. - (ASM_OUTPUT_ADDR_VEC, ASM_OUTPUT_ADDR_DIFF_VEC): New macros for - deferred case vector implementation. - (ASM_OUTPUT_ADDR_VEC_ELT): Use fputc to output newline. - (ASM_OUTPUT_ADDR_DIFF_ELT): Parenthesize LABEL in macro calls. - Generate "internal label - label" instead of "label - 1b". - (PRINT_OPERAND_ADDRESS): For LO_SUM use %l44 on TARGET_CM_MEDMID. - (PREDICATE_CODES): Remove sparc_operand, move_operand, - v8plus_regcmp_op. Add small_int_or_double, input_operand, and - zero_operand. - (doublemove_string, output_block_move, output_fp_move_double, - output_fp_move_quad, output_move_double, output_move_quad, - output_scc_insn, singlemove_string, mem_aligned_8, move_operand, - sparc_operand, v8plus_regcmp_op, v8plus_regcmp_p): Remove externs. - (sparc_emit_set_const32, sparc_emit_set_const64, - sparc_emit_set_symbolic_const64, input_operand, zero_operand, - mem_min_alignment, small_int_or_double): Add externs. - * config/sparc/sparc.md: Document the many uses of UNSPEC and - UNSPEC_VOLATILE in this backend. - (define_function_unit ieu): Rename to ieu_unnamed. Add move and - unary to types which execute in it. - (define_function_unit ieu_shift): Rename to ieu0. - (define_function_unit ieu1): New, executes compare, call, and - uncond_branch type insns. - (define_function_units for type fdivs, fdivd, fsqrt): These - execute in the fpu multiply unit not the adder on UltraSPARC. - (define_expand cmpdi): Disallow TARGET_V8PLUS. - (define_insn cmpsi_insn): Rename to cmpsi_insn_sp32. - (define_insn cmpsi_insn_sp64): New, same as sp32 variant except it - allows the arith_double_operand predicate and rHI constraint when - TARGET_ARCH64. - (define_insn cmpdi_sp64, cmpsf_fpe, cmpdf_fpe, cmptf_fpe, - cmpsf_fp, cmpdf_fp, cmptf_fp, sltu_insn, neg_sltu_insn, - neg_sltu_minux_x, neg_sltu_plus_x, sgeu_insn, neg_sgeu_insn, - sltu_plus_x, sltu_plus_x, sltu_plus_x_plus_y, x_minus_sltu, - sgeu_plus_x, x_minus_sgeu, movqi_cc_sp64, movhi_cc_sp64, - movsi_cc_sp64, movdi_cc_sp64, movsf_cc_sp64, movdf_cc_sp64, - movtf_cc_sp64, movqi_cc_reg_sp64, movhi_cc_reg_sp64, - movsi_cc_reg_sp64, movdi_cc_reg_sp64, movsf_cc_reg_sp64, - movdf_cc_reg_sp64, movtf_cc_reg_sp64, zero_extendhisi2_insn, - cmp_siqi_trunc, cmp_siqi_trunc_set, sign_extendhisi2_insn, - sign_extendqihi2_insn, sign_extendqisi2_insn, - sign_extendqidi2_insn, sign_extendhidi2_insn, - extendsfdf2, extendsftf2, extenddftf2, truncdfsf2, trunctfsf2, - trunctfdf2, floatsisf2, floatsidf2, floatsitf2, floatdisf2, - floatdidf2, floatditf2, fix_truncsfsi2, fix_truncdfsi2, - fix_trunctfsi2, fix_truncsfdi2, fix_truncdfdi2, fix_trunctfdi2, - adddi3_sp64, addsi3, cmp_ccx_plus, cmp_cc_plus_set, subdi_sp64, - subsi3, cmp_minus_ccx, cmp_minus_ccx_set, mulsi3, muldi3, - muldi3_v8plus, cmp_mul_set, mulsidi3, mulsidi3_v8plus, - const_mulsidi3_v8plus, mulsidi3_sp32, const_mulsidi3, - smulsi3_highpart_v8plus, unnamed subreg mult, - const_smulsi3_highpart_v8plus, smulsi3_highpart_sp32, - const_smulsi3_highpart, umulsidi3_v8plus, umulsidi3_sp32, - const_umulsidi3, const_umulsidi3_v8plus, umulsi3_highpart_v8plus, - const_umulsi3_highpart_v8plus, umulsi3_highpart_sp32, - const_umulsi3_highpart, divsi3, divdi3, cmp_sdiv_cc_set, udivsi3, - udivdi3, cmp_udiv_cc_set, smacsi, smacdi, umacdi, anddi3_sp64, - andsi3, and_not_di_sp64, and_not_si, iordi3_sp64, iorsi3, - or_not_di_sp64, or_not_si, xordi3_sp64, xorsi3, xor_not_di_sp64, - xor_not_si, cmp_cc_arith_op, cmp_ccx_arith_op, - cmp_cc_arith_op_set, cmp_ccx_arith_op_set, cmp_ccx_xor_not, - cmp_cc_xor_not_set, cmp_ccx_xor_not_set, cmp_cc_arith_op_not, - cmp_ccx_arith_op_not, cmp_cc_arith_op_not_set, - cmp_ccx_arith_op_not_set, negdi2_sp64, cmp_cc_neg, cmp_ccx_neg, - cmp_cc_set_neg, cmp_ccx_set_neg, one_cmpldi2_sp64, cmp_cc_not, - cmp_ccx_not, cmp_cc_set_not, cmp_ccx_set_not, addtf3, adddf3, - addsf3, subtf3, subdf3, subsf3, multf3, muldf3, mulsf3, - muldf3_extend, multf3_extend, divtf3, divdf3, divsf3, negtf2, - negdf2, negsf2, abstf2, absdf2, abssf2, sqrttf2, sqrtdf2, sqrtsf2, - ashlsi3, ashldi3, unnamed DI ashift, cmp_cc_ashift_1, - cmp_cc_set_ashift_1, ashrsi3, ashrdi3, unnamed DI ashiftrt, - ashrdi3_v8plus, lshrsi3, lshrdi3, unnamed DI lshiftrt, - lshrdi3_v8plus, tablejump_sp32, tablejump_sp64, call_address_sp32, - call_symbolic_sp32, call_address_sp64, call_symbolic_sp64, - call_address_struct_value_sp32, call_symbolic_struct_value_sp32, - call_address_untyped_struct_value_sp32, - call_symbolic_untyped_struct_value_sp32, call_value_address_sp32, - call_value_symbolic_sp32, call_value_address_sp64, - call_value_symbolic_sp64, branch_sp32, branch_sp64, - flush_register_windows, goto_handler_and_restore, - goto_handler_and_restore_v9, goto_handler_and_restore_v9_sp64, - flush, all ldd/std peepholes, return_qi, return_hi, return_si, - return_addsi, return_di, return_adddi, return_sf, all call+jump - peepholes, trap, unnamed trap insns): Prettify output strings. - (define_insn anddi3_sp32, and_not_di_sp32, iordi3_sp32, - or_not_di_sp32, xordi3_sp32, xor_not_di_sp32, one_cmpldi2): - Likewise and force + implement splits for integer cases. - (define_insn return_sf_no_fpu): Likewise and allow to match when - no-fpu because of our subreg SFmode splits. - (define_insn zero_extendqihi2, zero_extendqisi2_insn, - zero_extendqidi2_insn, zero_extendhidi2_insn, - zero_extendsidi2_insn, sign_extendsidi2_insn): Likewise and use - input_operand for second operand. - (cmp_minus_cc, cmp_minus_cc_set): Likewise and use - reg_or_0_operand for operand 2 so new splits can use it. - (cmp_zero_extendqisi2, cmp_zero_extendqisi2_set, cmp_cc_plus, - cmp_cc_xor_not): Likewise and don't forget to check TARGET_LIVE_G0 - too. - (cmp_zero_extract, cmp_zero_extract_sp64): Likewise and allow - CONST_DOUBLEs for operand 2. - (define_insn move_label_di): Likewise and label distance - optimization because it no longer works with new deferred case - vector scheme. To be revisited. - (define_insn x_minus_y_minus_sltu, x_minus_sltu_plus_y): Likewise - and allow reg_or_0_operand and J constraint for second operand. - (define_insn jump): Set branch predict taken on V9. - (define_insn tablejump): Emit LABEL_REF + PLUS memory address for - new deferred case vector scheme. - (define_insn pic_tablejump_32, pic_tablejump_64): Remove. - (define_insn negdi2_sp32): Force + implement splits. - (define_insn negsi2, one_cmplsi2): Rename to negsi2_not_liveg0 and - one_cmplsi2_not_liveg0 respectively, and create expander of original - names which emit special rtl for TARGET_LIVE_G0. - (define_insn cmpdi_v8plus, scc_si, scc_di): Remove. - (define_insn seq, sne, slt, sge, sle, sltu, sgeu): Don't do - gen_compare_reg, FAIL instead. - (define_insn sgtu, sleu): Likewise and check gen_s*() return - values when trying to reverse condition codes, if they FAIL then - do likewise. - (define_insn snesi_zero, neg_snesi_zero, snesi_zero_extend, - snedi_zero, neg_snedi_zero, snedi_zero_trunc, seqsi_zero, - neg_seqsi_zero, seqsi_zero_extend, seqdi_zero, neg_seqdi_zero, - seqdi_zero_trunc, x_plus_i_ne_0, x_minus_i_ne_0, x_plus_i_eq_0, - x_minus_i_eq_0): Add new splits to perform these multi-insn cases, - set output string to # to indicate they are mandatory splits. - (define_insn pic_lo_sum_si, pic_sethi_si, pic_lo_sum_di, - pic_sethi_di, move_pic_label_si): Remove. - (define_insn movsi_low_sum, movsi_high, movsi_lo_sum_pic, - movsi_high_pic, movsi_pic_label_reg): New patterns to take their - place. - (define_expand movsi_pic_label_ref, define_insn - movsi_high_pic_label_ref, movsi_lo_sum_pic_label_ref): New - expander and insns to handle PIC label references and deferred - case vectors. - (define_insn get_pc_via_rdpc): Comment out as it is no longer - used. - (define_expand movqi, movhi, movsi, movdi, movsf, movdf, movtf): - Rewrite to not use emit_move_sequence, make use of new constant - formation code, and new splits for all multi-insn cases. - (define_insn movqi_insn): Remove sethi case, it can never happen. - Use reg_or_zero_operand instead of const0_rtx explicit test, - use input_operand instead of move_operand for source, and use - general_operand now for dest. - (define_insn movhi_insn): Similar but leave sethi case. - (define_insn lo_sum_qi, store_qi, store_hi): Remove. - (define_insn sethi_hi lo_sum_hi): Rename to movhi_high and - movhi_lo_sum respectively, prettify output string. - (define_insn movsi_zero_liveg0): New pattern to put zero into a - register when needed on TARGET_LIVE_G0. - (define_insn movsi_insn): Use general_operand and input_operand - for dest and src respectively. Simplify applicability test. - Prettify output strings, and add clr alternative for J + * sparc.c (sparc_builtin_saveregs): Remove unused variable `fntype'. + + * except.c (expand_builtin_eh_stub): Likewise for variable `jump_to'. + + * genrecog.c (write_subroutine): When writing insn-recog.c, mark + variables `insn', `pnum_clobbers', `x[0 .. max_depth]' and `tem' + with ATTRIBUTE_UNUSED. + + * regmove.c (copy_src_to_dest): Make function static to match its + prototype. + + * reload1.c Include hard-reg-set.h before rtl.h to get macro + HARD_CONST. Include machmode.h before hard-reg-set.h. + + * rtl.h: Prototype `retry_global_alloc' and wrap with macro + HARD_CONST to protect usage of typedef HARD_REG_SET. + + * tree.c: Prototype `_obstack_allocated_p'. + + * varasm.c: Wrap prototype of `asm_output_aligned_bss' in macro + BSS_SECTION_ASM_OP. + +Thu Jun 18 09:20:47 1998 Kaveh R. Ghazi + + * pa.c: Include system.h and toplev.h. Remove redundant code. + (call_operand_address): Mark parameter `mode' with ATTRIBUTE_UNUSED. + (symbolic_operand): Likewise. + (symbolic_memory_operand): Likewise. + (pic_label_operand): Likewise. + (fp_reg_operand): Likewise. + (pre_cint_operand): Likewise. + (post_cint_operand): Likewise. + (ireg_or_int5_operand): Likewise. + (int5_operand): Likewise. + (uint5_operand): Likewise. + (int11_operand): Likewise. + (uint32_operand): Likewise. + (ior_operand): Likewise. + (lhs_lshift_cint_operand): Likewise. + (pc_or_label_operand): Likewise. + (legitimize_pic_address): Likewise. + (hppa_legitimize_address): Likewise for parameter `old'. + (output_block_move): Likewise for parameter `size_is_constant'. + (output_function_prologue): Likewise for parameter `size'. + (output_function_epilogue): Likewise. + (return_addr_rtx): Likewise for parameter `count'. + (output_mul_insn): Likewise for parameter `unsignedp'. + (hppa_builtin_saveregs): Likewise for parameter `arglist'. + (output_bb): Likewise for parameter `operands'. + (output_bvb): Likewise. + (function_label_operand): Likewise for parameter `mode'. + (plus_xor_ior_operator): Likewise. + (shadd_operand): Likewise. + (non_hard_reg_operand): Likewise. + (eq_neq_comparison_operator): Likewise. + (movb_comparison_operator): Likewise. + (pa_combine_instructions): Likewise for parameter `insns'. + + * pa.h: Add prototypes for functions `output_deferred_plabels', + `override_options', `output_ascii', `output_function_prologue', + `output_function_epilogue', `print_operand', + `symbolic_expression_p', `reloc_needed', `compute_frame_size', + `hppa_address_cost', `and_mask_p', `symbolic_memory_operand', + `pa_adjust_cost', `pa_adjust_insn_length' and + `secondary_reload_class'. + +Wed Jun 17 22:28:48 1998 Jason Merrill + + * configure.in: Don't turn on collect2 unconditionally. + +Wed Jun 17 20:20:48 1998 Mark Mitchell + + * cse.c (cse_basic_block): Don't include NOTE insns in the count + that is used to decide whether or not it is time to erase the + equivalence table. + +Wed Jun 17 18:30:43 1998 Franz Sirl + + * rs6000/linux.h (JUMP_TABLES_IN_TEXT_SECTION): Define to zero. + +Wed Jun 17 19:05:03 1998 John Carr + + * haifa-sched.c (haifa_classify_insn): TRAP_IF is risky. + (sched_analyze_2): Allow scheduling TRAP_IF. + + * reorg.c (mark_referenced_resources): Examine operands of TRAP_IF. + + * rtl.h (TRAP_CODE): New macro. + + * rtl.def (TRAP_IF): Change second operand type to rtx. + + * optabs.c (gen_cond_trap): New function. + (init_traps): New function. + (init_optabs): Call init_traps. + * expr.h: Declare gen_cond_trap. + + * jump.c (jump_optimize): Optimize jumps to and around traps. + + * sparc.md: Define trap instructions. + + * rs6000.md: Define trap instructions. + * rs6000.c (print_operand): New code 'V' for trap condition. + (trap_comparison_operator): New function. + + * m88k.md: Update use of TRAP_IF. + + * tree.h (enum built_in_function): New function code BUILT_IN_TRAP. + * c-decl.c (init_decl_processing): New builtin __builtin_trap. + * expr.c (expand_builtin): Handle BUILT_IN_TRAP. + + * expr.c (expand_builtin): Error if __builtin_longjmp second argument + is not 1. + +Wed Jun 17 15:20:00 1998 Catherine Moore + + * reload1.c (spill_hard_reg): Check mode of register when + spilling from scratch_list. + +Wed Jun 17 16:25:38 1998 Andrew MacLeod (amacleod@cygnus.com) + + * except.c (add_new_handler): Fix bug in finding last region handler. + * libgcc2.c (find_exception_handler): Pass exception table pointer + to runtime type matcher, not the match info field. + +Wed Jun 17 15:57:48 1998 Andrew MacLeod (amacleod@cygnus.com) + + * eh-common.h (struct eh_context): Add comment for hidden use of + field dynamic_handler_chain. + * except.c (get_dynamic_handler_chain): Comment on, and use the + correct offset of the dynamic_handler_chain field. + +1998-06-17 Jim Wilson + + * mips/iris6.h (LINK_SPEC): Add -woff 131. + +1998-06-17 Jason Merrill + + * dwarf2out.c: Disable EH_FRAME_SECTION if we don't have .init. + + * configure.in: Don't disable collect2 when we have GNU ld. + +Wed Jun 17 08:38:13 1998 Jeffrey A Law (law@cygnus.com) + + * fold-const.c (make_range): Do not widen the type of the expression. + + * expr.c (check_max_integer_computation_mode): New function. + (expand_expr): Avoid integer computations in modes wider than + MAX_INTEGER_COMPUTATION_MODE. + * fold-const.c (fold): Likewise. + * tree.h (check_max_integer_computation_mode): Declare. + * tm.texi (MAX_INTEGER_COMPUTATION_MODE): Document it. + + * configure.in (nm): Make a link to "nm" in the build tree too. + + * mn10300.md (andsi3): Fix typo. + +Tue Jun 16 22:58:40 1998 Richard Henderson + + * reload1.c (reload_cse_regs): Call bzero instead of looping. + +Tue Jun 16 18:30:35 1998 Jim Wilson + + * dwarf2out.c (stripattributes): Prepend '*' to the section name. + +Tue Jun 16 16:49:26 1998 Richard Henderson + + * alpha.c (alpha_expand_prologue, alpha_expand_epilogue): New fns. + (output_prologue, output_epilogue): Merge VMS and OSF versions; + Remove anything related to the actual code generation. + (output_end_prologue): New function. + (alpha_sa_mask, alpha_sa_size): Merge VMS and OSF versions. + (alpha_does_function_need_gp): Return false for VMS. + (alpha_function_needs_gp): Make static. + (add_long_const): Delete. + (summarize_insn): Don't assume a SUBREG is of a REG. + Prototype all static functions. Rename VMS-specific global + variables vms_*. + * alpha.h (TARGET_CAN_FAULT_IN_PROLOGUE): Default to 0. + (FUNCTION_BOUNDARY): Align to cache line. + (LOOP_ALIGN, ALIGN_LABEL_AFTER_BARRIER): Align to octaword. + (FUNCTION_END_PROLOGUE): New macro. + * alpha.md (attribute length): New. Mark all insns. + (return_internal, prologue_stack_probe_loop): New patterns. + (prologue, init_fp, epilogue): New patterns. + Disable peepholes. + * linux.h (TARGET_CAN_FAULT_IN_PROLOGUE): Define. + +Tue Jun 16 17:36:35 1998 Dave Brolley + + * toplev.c (lang_options): Add -trigraphs option for cpplib. + +Tue Jun 16 23:33:24 1998 J"orn Rennecke + + * reload1.c (reload_reg_free_before_p): RELOAD_FOR_OUTADDR_ADDRESS + is earlier than RELOAD_FOR_OUTPUT_ADDRESS; RELOAD_FOR_INPADDR_ADDRESS + is earlier than RELOAD_FOR_INPUT_ADDRESS. + +Tue Jun 16 13:15:16 1998 Jim Wilson + + * libgcc1-test.c (memcpy): Define. + +Tue Jun 16 13:44:02 1998 Michael Meissner + + * genattrtab.c (struct attr_desc): Change int flags to bit + fields. Add bit fields for this being function_units_used + or *_blockage_range attributes. + (write_unit_name): New function to print a function unit name + given unit #. + (expand_units): Indicate whether this is function_units_used or + *_blockage_range attributes. + (write_toplevel_expr): Print function_units_used and + *_blockage_range attributes in a more friendly fashion. + (make_internal_attr): Indicate whether this attribute is either + function_units_used or *_blockage_range. + +Mon Jun 15 17:06:43 1998 Michael Meissner + Jim Wilson + + * regmove.c (copy_src_to_dest): Do not copy src to dest if either + the source or destination is special. + +Mon Jun 15 13:20:33 1998 Jim Wilson + + * c-decl.c (shadow_tag_warned): Use specs not declspecs in for loop. + +Mon Jun 15 07:16:29 1998 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Sat Jun 13 13:10:40 1998 Krister Walfridsson + + * config/sparc/netbsd.h (DEFAULT_PCC_STRUCT_RETURN): Undefine before + redefining it. + +Fri Jun 12 18:06:45 1998 Doug Evans + + * m32r/m32r.h (STARTFILE_SPEC): Delete crtsysc.o. + (ENDFILE_SPEC): Add -lgloss. + +Fri Jun 12 14:57:59 1998 Kaveh R. Ghazi + + * mips.c (small_int): Mark parameter `mode' with ATTRIBUTE_UNUSED. + (large_int): Likewise. + (pc_or_label_operand): Likewise. + (call_insn_operand): Likewise. + (consttable_operand): Likewise. + (m16_uimm3_b): Likewise. + (m16_simm4_1): Likewise. + (m16_nsimm4_1): Likewise. + (m16_simm5_1): Likewise. + (m16_nsimm5_1): Likewise. + (m16_uimm5_4): Likewise. + (m16_nuimm5_4): Likewise. + (m16_simm8_1): Likewise. + (m16_nsimm8_1): Likewise. + (m16_uimm8_1): Likewise. + (m16_nuimm8_1): Likewise. + (m16_uimm8_m1_1): Likewise. + (m16_uimm8_4): Likewise. + (m16_nuimm8_4): Likewise. + (m16_simm8_8): Likewise. + (m16_nsimm8_8): Likewise. + (m16_usym8_4): Likewise. + (m16_usym5_4): Likewise. + (mips_move_1word): Change type of variable `i' from int to size_t. + (mips_move_2words): Likewise. + (output_block_move): Mark parameter `libname' with ATTRIBUTE_UNUSED. + (function_arg_advance): Use HOST_PTR_PRINTF to print an address. + (function_arg): Likewise. + (function_arg_partial_nregs): Mark parameter `named' with + ATTRIBUTE_UNUSED. + (override_options): Use ISDIGIT instead of isdigit. + (mips_output_external): Mark parameter `file' with ATTRIBUTE_UNUSED. + (final_prescan_insn): Likewise for parameters `opvec' and `noperands'. + (save_restore_insns): Cast HOST_WIDE_INT arguments passed to + function `fatal' to long before printing. Use + HOST_WIDE_INT_PRINT_DEC in fprintf. Both changes done several + times in this function. + (function_prologue): Mark parameter `size' with ATTRIBUTE_UNUSED. + (function_epilogue): Likewise for parameters `file' and `size'. + Print an int with "%d" not "%ld". + (mips_select_rtx_section): Mark parameter `x' with ATTRIBUTE_UNUSED. + (mips_function_value): Likewise for parameter `func'. + (function_arg_pass_by_reference): Likewise for parameters `cum' + and `named'. + (extend_operator): Likewise for parameter `mode' + (highpart_shift_operator): Likewise. + + * mips.md (mul_acc_si): Remove unused variable `macc'. + +Fri Jun 12 09:33:44 1998 Richard Henderson + + * fold-const.c (fold): Revert last change. It breaks constant + expressions somehow. + +Fri Jun 12 10:23:36 1998 Andreas Schwab + + * expr.c (do_jump, case EQ_EXPR, NE_EXPR): When comparing complex + prevent operands from being evaluated twice. + +Fri Jun 12 00:50:27 1998 Sergey Okhapkin + + * toplev.c (lang_options): Add -remap as a preprocessor option. + +Fri Jun 12 00:30:32 1998 John Wehle (john@feith.com) + + * i386.md (cmpsi_1, cmphi_1, cmpqi_1): Remove code + which set CC_REVERSED since reload should ensure that + the operands are already the correct type. + +Thu Jun 11 17:14:15 1998 Jim Wilson + + * except.c (expand_builtin_eh_stub): Call emit_move_insn rather than + calling gen_rtx_SET. + +Thu Jun 11 18:45:49 1998 David Edelsohn + + * config/rs6000/x-aix43 (AR): Delete. + (AR_FOR_TARGET_FLAGS): Add -X32_64 here. + +Thu Jun 11 16:19:17 1998 David W. Schuler + + * config/i386/aix386ng.h (CPP_SPEC): Remove extraneous quote. + +Thu Jun 11 12:40:27 1998 Jim Wilson + + * mips.c (override_options): Replace word_mode with explicit + TARGET_64BIT check. + +Thu Jun 11 14:50:02 1998 Michael Meissner + + * regmove.c (regmove_optimize): If we can't replace the + destination in an insn that sets the source, generate an explicit + move of the source to the destination. + (copy_src_to_dest): New function. + (toplevel): Include basic-block.h. + + * Makefile.in (regmove.o): Add basic-block.h dependencies. + +Thu Jun 11 10:30:09 1998 Dave Brolley + + * toplev.c (lang_options): Add missing options (nostdinc, idirafter). + +Wed Jun 10 23:39:32 1998 Mark Mitchell + + * rtl.h (rtx_def): Improve documentation. + (MEM_IN_STRUCT_P): Likewise. + +Wed Jun 10 23:23:17 1998 Graham + + * c-decl.c (start_decl): Correct test for -Wmain. + + * c-decl.c (grokdeclarator): Remove unused variable "last". + +Wed Jun 10 14:52:27 1998 Jim Wilson + + * expr.c (expand_builtin_setjmp): Store const1_rtx in target. + (expand_builtin_longjmp): Abort if value isn't const1_rtx. + Delete code storing value in static_chain_rtx. + (expand_builtin, case BUILT_IN_LONGJMP): Pass NULL_RTX for target + to second expand_expr call. + +Wed Jun 10 13:08:41 1998 Mark Mitchell + + * mips/mips.c: Remove -mabi=o32 and -mabi=n64. + +Wed Jun 10 13:41:23 1998 Dave Brolley + + * cppmain.c (fatal): New function. + * configure.in (cpp_main): New configuration variable. + * configure: Regenerated. + * Makefile.in (CCCP): Use a configuration variable to select basex + for cccp. + (cppmain$(exeext)): Add @extra_cpp_objs@. + +Wed Jun 10 13:07:02 1998 Dave Brolley + + * objc/objc-act.c: Add cpplib declarations. + (lang_decode_option): Initialize cpplib if necessary. + (lang_decode_option): New argc/argv interface. + * tree.h (lang_decode_option): New argc/argv interface. + * toplev.c (lang_options): Add cpp options. + (main): New interface for lang_decode_option. + * gcc.c (default_compilers): Don't call cpp for a cpplib-enabled C compiler + unless -E, -M or -MM is specified. + * cpplib.h (cpp_handle_option): New function. + * cpplib.c (cpp_handle_option): New function. + (cpp_handle_options): Now calls cpp_handle_option. + * c-tree.h (c_decode_option): New argc/argv interface. + * c-lex.c (init_parse): cpplib now initialized in c_decode_option. + * c-lang.c (lang_decode_option): New argc/argv interface. + * c-decl.c: Add cpplib declarations. + (c_decode_option): New argc/argv interface. + (c_decode_option): Call cpp_handle_option. + (c_decode_option): Now returns number of strings processed. + +Wed Jun 10 09:47:13 1998 Richard Earnshaw (rearnsha@arm.com) + + * unroll.c (verify_addresses): Use validate_replace_rtx to undo the + changes. Abort if the undo fails. + +1998-06-10 Vladimir N. Makarov + + * config/rs6000/rs6000.c (output_prolog): Change locations and + directions of saving and restoring arguments of main on the stack. + +Wed Jun 10 08:56:27 1998 John Carr + + * reload1.c (reload_cse_simplify_operands): Do not call gen_rtx_REG + for each alternative. Do not replace a CONST_INT with a REG unless + the reg is cheaper. + +Wed Jun 10 02:11:55 1998 Jeffrey A Law (law@cygnus.com) + + * decl.c (init_decl_processing): Fix typo. + + * mips.c (gpr_mode): New variable. + (override_options): Initialize gpr_mode. + (compute_frame_size): Use "gpr_mode" instead of "word_mode" to + determine size and offset of general purpose registers save slots. + (save_restore_insns, mips_expand_prologue): Similarly. + + * reload.c (find_reloads_toplev): Use gen_lowpart common to convert + between constant representations when we have (SUBREG (REG)) with + REG equivalent to a constant. + +Wed Jun 10 01:39:00 1998 Juha Sarlin + + * h8300.c (get_shift_alg): Add special cases for shifts of 8 and 24. + +Tue Jun 9 22:05:34 1998 Richard Henderson + + * fold-const.c (fold): Even with otherwise constant trees, look for + opportunities to combine integer constants. + +Wed Jun 3 23:41:24 1998 John Wehle (john@feith.com) + + * i386.c (notice_update_cc): Clear cc_status.value2 in the + case of UNSPEC 5 (bsf). + + * i386.md (movsfcc, movdfcc, movxfcc): The floating point + conditional move instructions don't support signed integer + comparisons. + +Tue Jun 9 14:31:19 1998 Nick Clifton + + * config/v850/t-v850 (TCFLAGS): Add assembler options to warn of + overflows. + + * config/v850/lib1funcs.asm (__return_interrupt): Use 'addi + 16,sp,sp' ratehr than 'add 16,sp'. Patch courtesy of Biomedin + . + +Tue Jun 9 16:23:13 1998 Andrew MacLeod + + * except.c (expand_start_catch): Rename to start_catch_handler. + (expand_end_catch): Delete function. + (expand_end_all_catch): Remove catch status that expand_end_catch + use to do. + * except.h (expand_start_catch): Rename prototype. + (expand_end_catch): Delete prototype. + +Tue Jun 9 12:57:32 1998 Mark Mitchell + + * invoke.texi: Add documentation for -mips4 and -mabi=*. + +Tue Jun 9 12:12:34 1998 Klaus Kaempf (kkaempf@progis.de) + + * alpha/vms.h (EXTRA_SECTIONS): Add in_ctors and in_dtors. + (EXTRA_SECTION_FUNCTIONS): Add ctors_section and dtors_section. + (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Define. + +Tue Jun 9 12:10:27 1998 John Carr + + * haifa-sched.c (update_flow_info): Use UNITS_PER_WORD, not MOVE_MAX, + as the threshold to permit splitting memory operations. + +Tue Jun 9 12:36:16 1998 Jeffrey A Law (law@cygnus.com) + + * mips.c (gpr_mode): New variable. + (override_options): Initialize gpr_mode. + (compute_frame_size): Use "gpr_mode" instead of "word_mode" to + determine size and offset of general purpose registers save slots. + (save_restore_insns, mips_expand_prologue): Similarly. + + * Makefile.in (LIB2FUNCS_EH): Define. Just "_eh" for now. + (LIBGCC2_CFLAGS): Remove -fexceptions. + (LIB2FUNCS): Remove "_eh". + (libgcc2.a): Iterate over LIB2FUNCS_EH and build everything in + it with -fexceptions. + + * Makefile.in (local-alloc.o): Depend on insn-attr.h. + * local-alloc.c (block_alloc): Avoid creating false + dependencies for targets which use instruction scheduling. + +Tue Jun 9 02:40:49 1998 Richard Henderson + + * mips/elf.h (ASM_DECLARE_OBJECT_NAME): Define. + (ASM_FINISH_DECLARE_OBJECT): Define; + * mips/elf64.h: Likewise. + +Tue Jun 9 01:08:47 1998 Richard Henderson + + * toplev.c (flag_new_exceptions): Remove extraneous `extern'. + +Mon Jun 8 23:24:48 1998 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Mon Jun 8 23:24:58 1998 David Edelsohn + + * rs6000.md (mulsidi3): Add !TARGET_POWERPC64 constraint. + (mulsidi3_ppc64): Delete. + +Mon Jun 8 20:57:40 1998 Kaveh R. Ghazi + + * Makefile.in (varasm.o): Depend on dbxout.h. + (cse.o): Depend on toplev.h and output.h. + (gcse.o): Depend on output.h. + + * mips.c: Include system.h and toplev.h and remove redundant code. + Include output.h after tree.h so all its prototypes get activated. + * mips.md (table_jump): Remove unused variable `dest'. + + * sparc.h: Add prototype for `v8plus_regcmp_op'. + + * crtstuff.c (fini_dummy, init_dummy): Mark function definitions + with __attribute__ ((__unused__)). + (__frame_dummy): Provide prototype before use, wrap it with + EH_FRAME_SECTION_ASM_OP. + + * cse.c: Move inclusion of above local headers. + Include toplev.h and output.h. + + * dbxout.h: Add prototype for `dbxout_begin_function'. + + * final.c (final_scan_insn): Wrap variable `max_skip' in macro + ASM_OUTPUT_MAX_SKIP_ALIGN. + + * gcse.c: Include system.h and output.h. + (dump_cuid_table, dump_rd_table, dump_cprop_data, dump_pre_data): + Make extern instead of static. + (compute_can_copy): Only declare variables `reg' and `insn' when + AVOID_CCMODE_COPIES is not defined. + (record_set_info): Mark parameter `setter' with ATTRIBUTE_UNUSED. + (hash_scan_clobber): Likewise for `x' and `insn'. + (hash_scan_call): Likewise. + (record_last_set_info): Likewise for `setter'. + (mark_call): Likewise for `pat'. + (pre_insert_insn): Wrap variable `note' in macro HAVE_cc0. + + * libgcc2.c (__bb_init_prg): Replace bzero with memset and fix the + length parameter so that it multiplies the number of elements by + the sizeof(element). + + * output.h: Add prototype for `weak_finish'. + + * recog.h: Likewise for `validate_replace_src'. + + * rtl.h: Likewise for `optimize_save_area_alloca', + `fix_sched_param', `purge_addressof', `gcse_main', + `regmove_optimize', `dbr_schedule', `branch_prob' and + `end_branch_prob'. + + * toplev.h: Likewise for `set_float_handler' and + `output_quoted_string'. + + * varasm.c: Include dbxout.h. + +Mon Jun 8 18:12:06 1998 Jim Wilson + + * mips.c (mips_secondary_reload_class): Use gp_reg_p instead of + GP_REG_P. Use gr_regs instead of GR_REGS. + +Mon Jun 8 16:54:12 1998 Ken Raeburn + Jeff Law + + * Revamped multiply support for MIPS chips. + * mips.c (extend_operator): New function. + (highpart_shift_operator): Likewise. + * mips.h: Declare new functions. + (PREDICATE_CODES): Add support for new predicates. + * mips.md (mulsi3 expander): Simplify. + (mulsi_mult3): Add another constraint alternative. Support + 3 operand multiply instructions as found on various mips + parts. + (mulsi3_r4650): Delete pattern, now handled by mulsi_mult3. + (mul_acc_si): New pattern and associated splitters. + (mulsidi3 expander): Rework to use mulsidi3_64bit and + mulsidi3_internal. + (umulsidi3): New expander. + (mulsidi3_internal): Accept either sign or zero extended + operands and generate code as appropriate appropriately. + (mulsidi3_64bit): Similarly. + (smulsi3_highpart): Turn into an expander and generate code + to match new patterns. + (umulsi3_highpart): Likewise. + (xmulsi3_highpart_internal): New pattern. + (maddi patterns): Delete. Replace with: + (mul_acc_di, mul-acc_64bit_di): New patterns. + +Mon Jun 8 14:16:15 1998 Andrew MacLeod + + * eh-common.h: Remove NEW_EH_MODEL compile time flag, and replace with + flag_new_exceptions runtime flag. + (struct old_exception_table): New struct which represents what + the exception table looks like without the new model. + (NEW_EH_RUNTIME): New value used as a tag in the exception table to + flag that this is a new style table. + * except.h: Remove compile time flag NEW_EH_MODEL. + (expand_builtin_eh_stub_old): New prototype. + * tree.h (enum built_in_function): Add BUILT_IN_EH_STUB_OLD. + * expr.c (expand_builtin): New builtin func BUILT_IN_EH_STUB_OLD. + * c-decl.c (init_decl_processing): Add new builtin function + __builtin_eh_stub_old. + * final.c (final_scan_insn): Replace compile time flag NEW_EH_MODEL. + * flags.h (flag_new_exceptions): New runtime flag. + * toplev.c (flag_new_exceptions): Initialize default to 0, + -fnew-exceptions sets to 1. + * except.c (output_exception_table_entry): Output New style exception + identifier into table, and replace compile time flag NEW_EH_MODEL + with runtime flag flag_new_exceptions. + (output_exception_table): Replace compile time flag NEW_EH_MODEL. + (expand_builtin_eh_stub_old): Duplicates original functionality of + expand_builtin_eh_stub. + (expand_builtin_eh_stub): Replace compile time flag NEW_EH_MODEL. + * libgcc2.c (find_exception_handler): Remove NEW_EH_MODEL #ifdefs. + (old_find_exception_handler): New func, same as find_exception_handler + except it works on the old style exception table. + (__throw): Replace NEW_EH_MODEL. Detect new model based on presence + of identifier in the exception table, and call appropriate routines. + +Mon Jun 8 01:21:13 1998 Jason Merrill + + * function.c: Define current_function_cannot_inline. + (push_function_context_to): Save it. + (pop_function_context_from): Restore it. + * function.h (struct function): Provide it a home. + * output.h: Declare it. + * integrate.c (function_cannot_inline_p): Check it. + +Mon Jun 8 10:43:15 1998 Richard Henderson + + * expr.c (force_operand): Detect PIC address loads before + splitting arithmetic. + +Mon Jun 8 09:22:38 1998 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Mon Jun 8 02:55:56 1998 Graham + + * tree.c (tree_class_check): Add braces to eliminate ambiguous + else warning. + (tree_check): Likewise. + +Mon Jun 8 02:49:23 1998 H.J. Lu (hjl@gnu.org) + + * reg-stack.c (subst_stack_regs_pat): Make sure the top of + stack is the destination for conditional move insn. + +Mon Jun 8 01:21:13 1998 Jason Merrill + + * tree.h (TREE_VEC_END): Cast unused value to void. + + * i386.c (print_operand): Use %lx for long operand. + +Mon Jun 8 00:04:07 1998 Richard Henderson + + * alpha.c (summarize_insn): Ignore rtl slot format 'i'. + +Sun Jun 7 14:15:45 1998 John Carr + + * sol2.h (INIT_SUBTARGET_OPTABS): Use Solaris libc float/long long + conversion functions. + +Sun Jun 7 14:02:58 1998 Richard Henderson + + * toplev.c (flag_exceptions): Default to 0. + (compile_file): Remove flag_exceptions == 2 hack. + (main): Call lang_init_options. + * tree.h: Declare it. + * c-lang.c: Implement it. + * objc/objc-act.c: Likewise. + +Sun Jun 7 12:27:30 1998 David Edelsohn + + * rs6000.md (restore_stack_block): Generate MEM and specify mode. + * rs6000.h (STACK_SAVEAREA_MODE): SAVE_FUNCTION is VOIDmode. + * rs6000.c (rs6000_output_load_toc_table): Use fputs. + (output_function_profiler): Use asm_fprintf and fputs. + +Sat Jun 6 12:17:12 1998 Kaveh R. Ghazi + + * gencheck.c: Remove redundant stdio.h include. Add a definition + of xmalloc for when we are forced to link with alloca.o. + + * reload1.c (reload_reg_free_for_value_p): Use `(unsigned)1' + instead of `1U'. + + * fold-const.c (constant_boolean_node): Make definition static to + match the prototype. + +Fri Jun 5 15:53:17 1998 Per Bothner + + * gcc.c (lang_specific_pre_link): New LANG_SPECIFIC_DRIVER function. + (lang_specific_extra_outfiles): New LANG_SPECIFIC_DRIVER variable. + (do_spec, input_filename, input_filename_length): Make public. + (main): Adjust outfiles allocation by lang_specific_extra_outfiles. + Call lang_specific_pre_link befor elinking. + +Fri Jun 5 12:29:28 1998 Jeffrey A Law (law@cygnus.com) + + * haifa-sched.c (rank_for_schedule): For "equally good insns", prefer + the insn which has the most insns dependent on it. + +Fri Jun 5 09:03:22 1998 John Carr + + * alias.c (find_base_value): Avoid reading past end of reg_base_value. + +Fri Jun 5 03:05:34 1998 Richard Henderson + + * alpha.md (insxh-1): New insxl pattern for combine. + +Fri Jun 5 01:12:15 1998 H.J. Lu (hjl@gnu.org) + + * i386/i386.c (output_fp_conditional_move): New function + to output floating point conditional move. + (output_int_conditional_move): New function to output integer + conditional move. + + * i386/i386.md (movsicci+5, movhicc+5, movdicc+5): Call + output_int_conditional_move () to output int conditional move. + (movsfcc+5, movdfcc+5, movxfcc+5): Call + output_fp_conditional_move () to output floating point + conditional move. + + * i386/i386.c (put_condition_code): In INT mode, check + cc_prev_status.flags & CC_NO_OVERFLOW for GE and LT. + +Thu Jun 4 16:09:51 1998 Dave Brolley + + * dbxout.c (dbxout_type): Output arrays of bits as if + they were bitstrings for Chill + +Thu Jun 4 14:35:27 1998 David Edelsohn + + * tree.c (get_inner_array_type): New function. + * tree.h (get_inner_array_type): Prototype. + * expr.h (STACK_SAVEAREA_MODE): New macro. + * expr.c (expand_builtin_setjmp): Initialize sa_mode using + STACK_SAVEAREA_MODE. + (expand_builtin_longjmp): Likewise. + * explow.c (emit_stack_save): Likewise. + (allocate_dynamic_stack_space): Use Pmode not insn_operand_mode. + + * rs6000/aix41.h (ASM_CPU_SPEC): Define relative to ASM_DEFAULT_SPEC. + (CPP_CPU_SPEC): Define relative to CPU_DEFAULT_SPEC. + * rs6000/aix43.h: New file. + * rs6000/t-aix43: New file. + * rs6000/x-aix41: New file. + * rs6000/x-aix43: New file. + * configure.in (rs6000-ibm-aix*): Use them. + * rs6000/powerpc.h: Delete. + * rs6000/sysv4.h: Move necessary powerpc.h definitions to here, + * rs6000/netware.h: and here, + * rs6000/win-nt.h: and here. + + * rs6000/rs6000.c (processor_target_table, 620): Do not affect + MASK_POWERPC64. + (rs6000_override_options): Ignore flag_pic for AIX. + (rs6000_immed_double_const): Delete. + (u_short_cint_operand): Don't assume 32-bit CONST_INT. + (reg_or_u_short_operand): Don't assume 32-bit CONST_INT. + (num_insns_constant): mask64_operand() is 2 insns. + (logical_operand): Don't assume 32-bit CONST_INT. + (non_logical_cint_operand): Don't assume 32-bit CONST_INT. + (easy_fp_constant): Any CONST_DOUBLE_HIGH is okay for 64-bit. + (mask_constant): HOST_WIDE_INT parameter. + (non_and_cint_operand): Delete. + (mask64_operand): New function. + (and64_operand): New function. + (function_arg_advance): DImode arguments do not need special + alignment when 64-bit. + (function_arg): Likewise. + (setup_incoming_varargs): Reverse reg_size assignment. + (print_operand): HOST_WIDE_INT second parameter. + (print_operand, 'B'): New case. + (print_operand, 'M'): Fix typo in lossage string. + (print_operandm 'S'): New case. + (rs6000_stack_info): Reverse reg_size assignment. Use total_raw_size + to compute AIX push_p. Use reg_size to compute {cr,lr}_save_offset. + (rs6000_output_load_toc_table): Reverse init_ptr assignment. Use + TARGET_64BIT not TARGET_POWERPC64. Convert fprintf to fputs. + Load GOT highpart, don't add it. Add lowpart with {cal|la}. + (rs6000_allocate_stack_space): Use {cal|la}. + (output_epilog): Use {cal|la} + (output_function_profiler): Add call glue to mcount call. + Load GOT highpart, don't add it. Add lowpart with {cal|la}. + + * rs6000/rs6000.h (TARGET_SWITCHES): Add powerpc64. + (STACK_BOUNDARY): Depend on TARGET_32BIT. + (ADJUST_FIELD_ALIGN): Calculate array alignment using innermost type. + (CONST_OK_FOR_LETTER_P): Don't assume 32-bit CONST_INT. + (EXTRA_CONSTRAINTS): Remove NT 'S' and 'T'. Replace 'S' with + 64-bit mask operand. + (RS6000_SAVE_TOC): Depend on TARGET_32BIT. + (STACK_SAVEAREA_MODE): New macro. + (LEGITIMATE_CONSTANT_P): DImode okay for 64bit. + (LEGITIMIZE_RELOAD_ADDRESS): New macro. + (RTX_COSTS, AND/IOR/XOR): Reflect current machine description. + (ASM_FILE_START): Emit 64-bit ABI directive. + (ASM_DECLARE_FUNCTION_NAME): Align CSECT on doubleword in 64-bit mode. + (ASM_OUTPUT_SPECIAL_POOL_ENTRY): DImode okay for 64-bit. + (PREDICATE_CODES): Add "and64_operand" and "mask64_operand". + Delete "non_and_cint_operand". "input_operand" includes CONST_DOUBLE. + + * rs6000/rs6000.md (iorsi3, xorsi3): Use HOST_WIDE_INT for mask. + Restore define_splits. + (floatsidf2, floatunssidf2): Remove !TARGET_POWERPC64 final constraint. + (floatsidf2_internal, floatunssidf2_internal2): Likewise. + Do not specify base register operand mode. + (floatsidf2_loadaddr): Do not specify base register operand mode. + (floatsidf2_store1, floatsidf2_store2): Operand 1 must be base + register; do not specify mode. Remove !TARGET_POWERPC64 final constraint. - (define_insn movdi_sp32_v9, movdi_sp32, define_splits for - deprecated std and reg-reg DI moves): Remove and... - (define_insn movdi_insn_sp32, movdi_insn_sp64): Replace with new - implementation which uses forced splits for all non-single insn - cases. - (define_split DI move cases on !arch64): New splits to handle all - situations of 64-bit double register DImode on 32bit, and - unaligned registers and memory addresses for all subtargets. - (define_insn movsf_const_insn, movdf_const_insn, store_sf): - Remove. - (define_insn movsf_insn, movsf_no_f_insn): Use general_operand and - input_operand for dest and src respectively, prettify output - strings. - (define_insn movdf_insn, movdf_no_e_insn, store_df, - movtf_const_insn, movtf_insn, movtf_no_e_insn, store_tf): Remove - and... - (define_insn movdf_insn_sp32, movdf_no_e_insn_sp32, - movdf_insn_sp64, movdf_no_e_insn_sp64, movtf_insn, - movtf_no_e_insn_sp32, movtf_insn_hq_sp64, movtf_insn_sp64, - movtf_no_e_insn_sp64): Replace with new - implementation which uses forced splits for all non-single insn - cases. - (define_split DF move cases): New splits in similar vein to DI - move counterparts. - (define_insn sethi_di_medlow, sethi_di_medium_pic, - sethi_di_embmedany_data, sethi_di_embmedany_text, sethi_di_sp64, - movdi_sp64_insn): Remove old v9 code model and constant loading - support insns and.. - (define_insn pic_lo_sum_di, pic_sethi_di, - sethi_di_medlow_embmedany_pic, sethi_di_medlow, losum_di_medlow, - seth44, setm44, setl44, sethh, setlm, sethm, setlo, - embmedany_sethi, embmedany_losum, embmedany_brsum, - embmedany_textuhi, embmedany_texthi, embmedany_textulo, - embmedany_textlo, movdi_lo_sum_sp64_cint, movdi_lo_sum_sp64_dbl, - movdi_high_sp64_cint, movdi_high_sp64_dbl): Replace with new - scheme, using unspecs, secondary reloads, and one to one sparc - insn to rtl insn mapping for better scheduling and code gen. - (define_expand reload_indi, reload_outdi): Reload helpers for - MEDANY and EMBMEDANY symbol address loading cases which require a - temporary register. - (define_expand movsicc): Remove v8plus_regcmp cases. - (define_insn movdi_cc_sp64_trunc, movdi_cc_reg_sp64_trunc, - cmp_zero_extendqidi2, cmp_zero_extendqidi2_set, cmp_qidi_trunc, - cmp_diqi_trunc_set): New patterns used by some of the new scc - splits on arch64. - (define_insn xordi3_sp64_dbl): New pattern used for constant - formation when crossing from 32-bit targets. - (define_insn movsi_cc_reg_v8plus, v8plus_clear_high, and helper - split): Remove. - (define_insn addx, subx): Make visible and prettify. - (define_insn adddi3_insn_sp32): Likewise and force split. - (define_insn addx_extend, subx_extend, unnamed): New patterns for - 64bit scc split usage. - (define_insn unnamed plusDI zero_extend, unnamed minusDI - zero_extend, subdi3): Force and implement splits. + (floatsidf2_load): Do not specify base register operand mode. Remove + !TARGET_POWERPC64 final constraint. + (fix_truncdfsi2_internal, fix_truncdfsi2_{store,load}): Do not specify + base register operand mode. + (adddi3): Split large constants early. + (absdi3): Shift by 63, not 31. + (*mulsidi3_ppc64): New pattern. + (rotldi3): Add masking combiner patterns. + (anddi3): Add rldic{r,l} masking. Remove split of large constants + because PPC insns zero-extend. + (iordi3, xordi3): Split large constants early. + (movsi matcher): Remove S and T constraints. + (movsf const_double): Create SImode constant from TARGET_DOUBLE. + (movdf_hardfloat32): Add default abort() case. + (movdf easy_fp_const): Create DImode constant from TARGET_DOUBLE. + (movdi): Remove 64-bit constant generator. Try to convert + CONST_DOUBLE to CONST_INT. Handle TOC memory constants. + (movdi_32): Add default abort() case. + (movdi_64): Add numerous ways to split 64-bit constants. + Make catch-all define_split more optimal and never FAIL. + (movti_ppc64): Add default abort() case. + (allocate_stack): Remove operand modes. Use Pmode. + (restore_stack_block): Remove operand modes. Generate Pmode + temporary. + (save_stack_nonlocal, restore_stack_nonlocal): Generate Pmode + temporary. Save area is double Pmode. + (call_indirect_aix64, call_value_indirect_aix64): New patterns. + (call, call_value): Do not specify address operand mode. Choose + appropriate AIX ABI. + (*call_local64, *ret_call_local64): New patterns. + (*call_nonlocal_aix64, *ret_call_nonlocal_aix64): New patterns. + (*ret_call_nonlocal_aix32): Use call_value_indirect for REG. + (compare): Materialize DImode truthvalues. + +Thu Jun 4 01:26:57 1998 Craig Burley + + * expr.c (safe_from_p): Avoid combinatorial explosion + over duplicate SAVE_EXPRs by ensuring we never recurse + on one that has already been visited. + +Thu Jun 4 00:54:21 1998 Graham + + * loop.c (check_dbra_loop): Initialize final_value before + normalizing the loop. + +Wed Jun 3 20:00:04 1998 J"orn Rennecke + + * reload1.c (reload_reg_free_for_value_p): New arguments out and + reloadnum. Changed all callers. + +1998-06-03 Ulrich Drepper + + * system.h: Add _() and N_() macros in preparation for gettext. + +Wed Jun 3 11:02:24 1998 Andreas Schwab + + * c-common.c (check_format_info): Put back check for C9x `hh' + length modifier. Warn about %n format writing into const. Remove + obsolete comment. + (format_char_info): Fix comments. + + * configure.in: Set float_format to m68k for all m68k targets that + do not override LONG_DOUBLE_TYPE_SIZE. + * config/float-m68k.h: New file. + +Tue Jun 2 23:14:01 1998 Richard Henderson + + * jump.c (jump_optimize): Remove debug messages accidentally left in + with the previous change. + +Tue Jun 2 22:46:08 1998 Richard Henderson + + * expr.c (store_expr): Revert stray patch associated with + 1998-05-23 commit. + +Tue Jun 2 21:59:01 1998 Richard Henderson + + * jump.c (rtx_unsafe_p): New function. + (jump_optimize): Use it on if/then/else transformations and + conditional move transformations. + +Tue Jun 2 22:50:10 1998 Andreas Schwab + + * fold-const.c (fold, case EQ_EXPR): When folding VAR++ == CONST + or VAR-- == CONST construct a proper mask if VAR is a bitfield. + Cope with CONST being out of range for the bitfield. + +Tue Jun 2 22:28:31 1998 Bernd Schmidt + + * expr.c (emit_move_insn_1): When moving complex values in several + steps, emit a CLOBBER to show the destination dies. + +Tue Jun 2 22:17:26 1998 Jeffrey A Law (law@cygnus.com) + + * Makefile.in (site.exp): Use the object testsuite directory as + the temporary directory. + + * expr.c (expand_expr, case ADDR_EXPR): Handle taking the + address of an ADDRESSOF rtx. + +1998-06-02 Mike Stump + + * expr.c (expand_builtin_setjmp): Handle BUILTIN_SETJMP_FRAME_VALUE. + * i960.h (SETUP_FRAME_ADDRESSES, BUILTIN_SETJMP_FRAME_VALUE): Define. + * i960.md (ret, flush_register_windows): Define. + (nonlocal_goto): Likewise. Nested function nonlocal gotos don't + work yet. + * tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Document new macro. + +Tue Jun 2 14:02:38 1998 Richard Henderson + + * alpha.md (divsi3, udivsi3, modsi3, umodsi3): Enable, and work + around an OSF/1 library bug wrt sign-extension of inputs. + +Tue Jun 2 13:02:44 1998 Richard Henderson + + * vax/netbsd.h (DWARF2_UNWIND_INFO): Must be undef, not defined 0. + +Mon Jun 1 03:44:03 1998 Catherine Moore + + * config/sh/sh.h (MAX_OFILE_ALIGNMENT): Define. + + * varasm.c (assemble_variable): Augment alignment warning. + +Mon Jun 1 12:14:28 1998 Michael Meissner + + * config/fp-bit.c (_fp{add,div}_parts): Return correct IEEE result + in the presence of IEEE negative 0's. + +Sun May 31 16:11:41 1998 John Wehle (john@feith.com) + + * reload.c (find_reloads): Record the existing mode if + operand_mode == VOIDmode before replacing a register with + a constant. + * i386.md (tstsi, tsthi, tstqi, tstsf, tstdf, tstxf): Set + i386_compare_op1 to const0_rtx for the benefit of the + conditional move patterns. + (movsicc, movhicc, movsfcc, movdfcc, movxfcc, movdicc): Rewrite + based on suggestions from Jim Wilson. + +Sun May 31 00:44:02 1998 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Sun May 31 00:34:17 1998 Bruce Korb + + * Makefile.in (fixinc.sh): Update rules again. + +Sun May 31 00:27:47 1998 Jeffrey A Law (law@cygnus.com) + + * extend.texi: Bring back reference to trampoline paper. + +Sun May 31 00:22:34 1998 Ulrich Drepper + + * Makefile.in (USER_H): Add stdbool.h. + * ginclude/stdbool.h: New file. + +Fri May 29 01:48:25 1998 Jeffrey A Law (law@cygnus.com) + + * jump.c (thread_jumps): Do not look at the NOTE_LINE_NUMBER + of a non-note insn. + + * gcse.c (pre_delete): Fix code to determine the mode of + the reaching pseudo register. + +Fri May 29 01:07:28 1998 Bernd Schmidt + + * Makefile.in (GEN): Add gencheck. + (STAGESTUFF): Add tree-check.h and gencheck. + +Fri May 29 00:57:37 1998 Bruce Korb + + * Makefile.in (cstamp-h.in): Remove before trying to recreate. + (fixinc.sh): Set some additional environment variables before + calling mkfixinc.sh. + +Thu May 28 12:57:05 1998 Jeffrey A Law (law@cygnus.com) + + * reload.c (find_reloads): Do not force a reloads of match_operators. + +Thu May 28 10:22:22 1998 Andrew MacLeod + + * except.h (remove_handler): Add new prototype. + * except.c (remove_handler): New function to remove handlers + from an exception region. + * flow.c (find_basic_blocks_1): Remove handlers from regions when + handler label is deleted; remove exception regions with no handlers. + +Thu May 28 09:36:39 1998 Michael Meissner + + * except.h (rtx): Define rtx type correctly if needed. + * function.h (rtx): Likewise. + (tree): Define tree type correctly if needed. + + * c-pragma.c (toplevel): Include rtl.h. + + * stor-layout.c (toplevel): Move include of rtl.h before + except.h. + + * Makefile.in (c-pragma.o): Add except.h, rtl.h dependencies. + (tree.o): Add except.h dependency. + +Wed May 27 22:02:40 1998 Jeffrey A Law (law@cygnus.com) + + * reload1.c: Revert accidental checkin. + + * configure.lang: Fix thinko when adding a definition for + target_alias to the Makefile. + +Wed May 27 02:50:00 1998 Catherine Moore (clm@cygnus.com) + + * config/sparc/lb1spc.asm (.rem and .urem): Replace + routines. + +Wed May 27 02:48:31 1998 Richard Earnshaw (rearnsha@arm.com) + + * arm.c (arm_gen_constant): Rework to eliminate uninitialized + variable warnings. Don't generate scratch registers if only + counting insns. + (find_barrier): Eliminate unused variable SRC. + +1998-05-27 Manfred Hollstein + + * toplev.h (rtx_def): Provide global declaration to avoid + `limited scope' warnings. + +Tue May 26 23:47:52 1998 Mumit Khan + + * Makefile.in (gencheck.o): Use HOST_CC. + * i386/t-mingw32: New file. + * configure.in (i386-*-mingw32*): Use. + +Tue May 26 07:31:04 1998 Richard Earnshaw (rearnsha@arm.com) + + * arm.c (bad_signed_byte_operand): New predicate function. + * arm.h (PREDICATE_CODES): Add it to the list. + * arm.md (*extendqi[sh]i_insn): Split any addresses that ldrsb + can't handle. + (define_split): Two new splits for above insns. + + * arm.c: Include toplev.h. + (arm_override_options): Add parentheses around use of tune_flags. + (arm_split_constant): Remove unused variable. + (arm_gen_constant, arm_gen_movstrqi, add_constant): Likewise. + (output_func_prologue, arm_expand_prologue): Likewise. + (arm_canonicalize_comparison): Make I unsigned; rework constants + accordingly. Add missing parentheses around << operation. + (arm_rtx_costs): Correctly parenthesize MULT costs. Add a DEFAULT + clause. + ({load,store}_multiple_sequence): Initialize BASE_REG. + (select_dominance_cc_mode): Add DEFAULT clauses. + (broken_move): Return zero if the destination is not a register. + (arm_reorg): Move unused REGNO declaration into the dead code. + * arm.h (CANONICALIZE_COMPARISON): Ensure OP1 is updated. + +Mon May 25 22:49:56 1998 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Mon May 25 11:56:24 1998 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Mon May 25 14:00:13 1998 Dave Brolley + + * cpperror.c (v_cpp_message): Remove static prototype. + * cpplib.c (v_cpp_message): Move prototype to cpplib.h. + * cpplib.h (v_cpp_message): Add protoptype. + (stdarg.h,varargs.h): Needed for v_cpp_message prototype. + +Sun May 24 20:36:15 1998 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Sun May 24 02:08:57 1998 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +1998-05-24 Andreas Schwab + + * m68k.h: Declare more functions used in macros. + (REG_CLASS_CONTENTS): Completely embrace initializer. + * m68k.md (adddi3, subdi3): Add abort call to avoid warning + about returning no value. + * cse.c (find_best_addr): Declare p and found_better only if + needed. + * dbxout.c (dbxout_continue): Define only if DBX_CONTIN_LENGTH > 0. + * dwarfout.c (string_length_attribute): #if 0 away. + * function.c (expand_function_end): Define varible blktramp only + if needed. + * jump.c (find_insert_position): Define only if !HAVE_cc0. + * loop.c (combine_givs_p): Define variable tem only if needed. + * real.c: Comment out unused functions eabs, eround, + e{24,53,64,113}toasc and eiinfin. + +Sat May 23 23:44:53 1998 Alexandre Oliva + + * Makefile.in (boostrap2-lean, bootstrap3-lean, + bootstrap4-lean): New targets. + +Sat May 23 23:35:14 1998 Jeffrey A Law (law@cygnus.com) + + * warn_summary, test_summary: Moved into the contrib directory. + +1998-05-23 Manfred Hollstein + + * Makefile.in (ENQUIRE_CFLAGS, ENQUIRE_LDFLAGS): Move down to the end + of the Makefile. + (FLOAT_H_TEST): Likewise. + (ENQUIRE): Likewise. + (float.h-nat): Likewise. + (float.h-cross): Likewise. + (enquire): Likewise. + (enquire.o): Likewise. + (stmp-int-hdrs): Fix comment about enquire; depend upon gfloat.h. + (stmp-headers): Move actions to stmp-int-hdrs, retaining only a + no-op. + (FLOAT_H): Remove old float.h-nat version; move current definition + to CROSS_FLOAT_H location. + (all.cross): Remove comments about enquire stuff. + + * Makefile.in (all.cross): Swap $(LIBGCC) and $(STMP_FIXPROTO). + (rest.encap): Likewise. + (libgcc2.ready): Depend upon $(STMP_FIXPROTO) + + * toplev.h (tree_node): Provide global declaration to avoid + `limited scope' warnings. + +Sat May 23 23:23:35 1998 Robert Lipe + + * test_summary: Display section breaks for each entry + in a multilibbed target's output. + +1998-05-23 Richard Henderson + + * expr.c (expand_expr): For {BITFIELD,COMPONENT,ARRAY}_REF, if the + offset's mode is not ptr_mode, convert it. + +1998-05-22 Jason Merrill + + * fold-const.c (ssize_binop): New fn. + * tree.h: Declare it. + +Fri May 22 03:42:05 1998 Richard Earnshaw (rearnsha@arm.com) + + * genextract.c (print_path): Handle zero-length path as a special + case. + +Fri May 22 01:38:07 1998 Hans-Peter Nilsson + + * cplus-dem.c (MBUF_SIZE): Bumped from 512 to 32767. + +Fri May 22 00:57:00 1998 Bernd Schmidt (crux@pool.informatik.rwth-aachen.de> + + * final.c (JUMP_TABLES_IN_TEXT_SECTION): Provide a default value. + (shorten_branches, final_scan_insn): Test value of + JUMP_TABLES_IN_TEXT_SECTION instead of just testing whether it + is defined. + * tm.texi (JUMP_TABLES_IN_TEXT_SECTION): Corresponding changes. + * arm/coff.h: Define JUMP_TABLES_IN_TEXT_SECTION to 1. + * arm/tcoff.h: Likewise. + * i386/386bsd.h: Likewise. + * i386/freebsd-elf.h: Likewise. + * i386/freebsd.h: Likewise. + * i386/netbsd.h: Likewise. + * i386/ptx4-i.h: Likewise. + * i386/sysv4.h: Likewise. + * pa/pa.h: Likewise. + * rs6000/linux.h: Likewise. + * rs6000/rs6000.h: Likewise. + * sh/sh.h: Likewise. + * sparc/sp64-elf.h: Likewise. + * v850/v850.h: Likewise. + * rs6000/sysv4.h: Define JUMP_TABLES_IN_TEXT_SECTION to 0. + * i386/linux.h: Define JUMP_TABLES_IN_TEXT_SECTION to (flag_pic). + +Thu May 21 19:50:13 1998 J"orn Rennecke + + * regmove.c (gen_add3_insn): New function. + (fixup_match_2): Use it instead of calling gen_addsi3. + +Thu May 21 23:09:50 1998 Jeffrey A Law (law@cygnus.com) + + * Makefile.in (gencheck): Depend on HOST_LIBDEPS. + + * alias.c (rtx_equal_for_memref_p): Handle SCRATCH as a memory + address. + +Thu May 21 20:18:13 1998 Martin von Loewis + + * Makefile.in (TREE_H): Add tree-check.h. + (tree-check.h, gencheck): New targets. + * gencheck.c: New file. + * tree.c (tree_check, tree_class_check): New functions. + * tree.h (TREE_CHECK, TREE_CLASS_CHECK): Define. + (TYPE_CHECK, DECL_CHECK): Define. + Modify all access macros to use generated checking macros. + +Wed May 20 23:44:28 1998 John Wehle (john@feith.com) + + * acconfig.h (HAVE_GAS_MAX_SKIP_P2ALIGN): New tag. + * configure.in: Check for it. + * i386/gas.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Use it. + * final.c (uid_align, uid_shuid, label_align): Make static. + (label_align): Change type to struct label_alignment pointer. + (LABEL_TO_ALIGNMENT, shorten_branches): Update due to type change. + (LABEL_TO_MAX_SKIP): Define. + (LABEL_ALIGN_MAX_SKIP, LOOP_ALIGN_MAX_SKIP, + LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Provide defaults. + (shorten_branches): Record the maximum bytes to skip when + aligning a label. + (final_scan_insn): Use the maximum bytes to skip when aligning a label + if ASM_OUTPUT_MAX_SKIP_ALIGN is available. + * i386.h (LOOP_ALIGN_MAX_SKIP, + LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define. + * i386.c (override_options): i386_align_jumps and i386_align_loops + default to 4 if ASM_OUTPUT_MAX_SKIP_ALIGN is available. + * invoke.texi: Document new i386 align-loops and align-jumps behavior. + +1998-05-21 Mark Mitchell + + * cplus-dem.c (do_type): Handle volatile qualification. + +Thu May 21 12:23:17 1998 Per Bothner + + * function.c (init_function_start): Don't call emit_line_note if + lineno is 0. (Can happen when compiling Java .class files.) + +Thu May 21 19:50:13 1998 J"orn Rennecke + + * reload1.c (reload_reg_free_for_value_p): Fix RELOAD_FOR_INPUT + end of lifetime and RELOAD_FOR_OUTPUT start of lifetime. + +Thu May 21 19:32:27 1998 J"orn Rennecke + + * combine.c (nonzero_bits): For paradoxical subregs, take + LOAD_EXTENDED_OP into account. + +Thu May 21 11:51:15 1998 Dave Brolley + + * configure.in (extra_c_objs): Add prefix.o. + (extra_cxx_objs): Extra objects for C++ with cpplib. + * configure: Regenerate. + + * c-tree.h (get_directive_line): Different prototype for cpplib. + (GET_DIRECTIVE_LINE): Macro wrapper for get_directive_line. + + * c-lex.h (get_directive_line): Not needed here for cpplib. + + * c-lex.c (yy_cur,yy_lim,yy_get_token): Move to c-common.c. + (GET_DIRECTIVE_LINE): Move to c-common.c and rename to get_directive_line. + + * c-common.c (parse_in,parse_options,cpp_token): Declare for cpplib. + (yy_cur,yy_lim,yy_get_token,get_directive,line): Moved here from c-lex.c + +Thu May 21 09:04:42 1998 Kaveh R. Ghazi + + * gengenrtl.c (type_from_format, accessor_from_format): Change + type of parameter `c' from `char' to `int'. + +Wed May 20 22:28:34 1998 Jeffrey A Law (law@cygnus.com) + + * warn_summary, test_summary: New scripts from + Kaveh Ghazi and Alexandre Oliva respectively. + + * gcse.c (current_function_calls_longjmp): Declare. + +1998-05-20 Jason Merrill + + * dwarf2out.c (base_type_die): Use int_size_in_bytes. + +Wed May 20 01:11:02 1998 Doug Evans (devans@cygnus.com) + Jeff Law (law@cygnus.com) + + * Global CSE and constant/copy propagation. + * Makefile.in (OBJS): Add gcse.o. + (STAGESTUFF): Add *.gcse. + (gcse.o): Add dependencies. + (mostlyclean): Remove *.gcse and */*.gcse. + * gcse.c: New file. + * loop.c (loop_optimize): Move call to init_alias_analysis. + * recog.c (validate_replace_src): New function. + * toplev.c (gcse_dump): New global variable. + (flag_gcse, gcse_time): Likewise. + (compile_file): Initialize gcse_time and clean out the gcse dump + file if necessary. + (rest_of_compilation): Call gcse_main as requested. Dump RTL + after gcse if requested. + (main): Enable gcse for -O2 and above. Handle -dG. Enable gcse + dumps for -da. + * gcc.texi: Add gcse related internal documentation. + * invoke.texi: Note new command line options for gcse. + * tm.texi: Document AVOID_CCMODE_COPIES. + * mips.h (AVOID_CCMODE_COPIES): Define. + +Tue May 19 22:31:20 1998 Jeffrey A Law (law@cygnus.com) + + * Makefile.in (deduced.h): Only run scan-types if $(SYSTEM_HEADER_DIR) + exists. + (stmp-fixproto): Simlarly for running fixproto. + * cross-make (SYSTEM_HEADER_DIR): Now $(tooldir)/sys-include. + +Tue May 19 19:08:52 1998 Jim Wilson + + * config/mips/mips.c (double_memory_operand): Accept any MEM during + reload when TARGET_64BIT. + +Tue May 19 18:21:25 1998 Jim Wilson + + Finish incomplete change started by Kenner. + * configure.in (*-*-linux-gnu*): Delete NO_STAB_H from xm_defines. + (powerpcle-*-cygwin32): Delete xm_defines. + * final.c, mips-tfile.c, xcoffout.c, config/mips/mips.c: Use + HAVE_STAB_H instead of NO_STAB_H. + * config/xm-linux.h (NO_STAB_H): Delete. + (HAVE_STAB_H): Undefine. + * config/i386/xm-go32.h (NO_STAB_H): Delete. + +1998-05-19 Jim Wilson + + * dwarfout.c (dwarfout_file_scope_decl, case TYPE_DECL): Ignore + LANG_TYPE trees with DECL_SOURCE_LINE of 0. + +Tue May 19 15:07:54 1998 Todd Vierling + + * arm/netbsd.h: Ensure DWARF2_UNWIND_INFO is undefined. + +Tue May 19 17:19:16 1998 J"orn Rennecke + + * reload1.c (reload_reg_free_for_value_p): New function. + (allocate_reload_reg, choose_reload_regs): Use it. + +Tue May 19 11:51:00 1998 Andrew MacLeod (amacleod@cygnus.com) + + * except.c (expand_start_catch): Correct logic for when to + generate a new handler label, and when to use the old one. + +Tue May 19 11:08:52 1998 Kaveh R. Ghazi + + * Makefile.in (print-rtl.o): Depend on bitmap.h. + (dbxout.o): Depend on toplev.h. + ($(SCHED_PREFIX)sched.o): Likewise. + ($(out_object_file)): Likewise for system.h and toplev.h. + (cppmain.o): Depend on gansidecl.h. + (cpplib.o): Likewise. + (cpperror.o): Likewise. + (cppexp.o): Likewise. + (cpphash.o): Likewise. + (cppalloc.o): Likewise. + (fix-header.o): Depend on cpplib.h and cpphash.h. + (scan-decls.o): Depend on gansidecl.h. + + * basic-block.h (free_regset_vector): Add prototype. + + * cccp.c (check_precompiled): Mark parameter `fname' with + ATTRIBUTE_UNUSED. + (do_assert): Likewise for `op' and `keyword'. + (do_unassert): Likewise. + (do_line): Likewise for `keyword'. + (do_error): Likewise for `op' and `keyword'. + (do_warning): Likewise. + (do_ident): Likewise for `keyword'. + (do_pragma): Likewise for `limit', `op' and `keyword'. + (do_sccs): Likewise. + (do_if): Likewise for `keyword'. + (do_elif): Likewise. + (do_else): Likewise. + (do_endif): Likewise. + + * collect2.c (getenv): Remove redundant prototype. + (collect_exit, collect_execute, dump_file): Likewise. + (dump_list): Wrap prototype and definition in COLLECT_EXPORT_LIST. + (dump_prefix_list): Hide prototype and definition. + + * sparc.c: Include toplev.h. + (intreg_operand): Mark parameter `mode' with ATTRIBUTE_UNUSED. + (symbolic_memory_operand): Likewise. + (sp64_medium_pic_operand): Likewise. + (data_segment_operand): Likewise. + (text_segment_operand): Likewise. + (splittable_symbolic_memory_operand): Likewise. + (splittable_immediate_memory_operand): Likewise. + (eq_or_neq): Likewise. + (normal_comp_operator): Likewise. + (noov_compare_op): Likewise. + (v9_regcmp_op): Likewise. + (v8plus_regcmp_op): Likewise. + (extend_op): Likewise. + (cc_arithop): Likewise. + (cc_arithopn): Likewise. + (small_int): Likewise. + (uns_small_int): Likewise. + (clobbered_register): Likewise. + (legitimize_pic_address): Likewise. + (delay_operand): Likewise. + (sparc_builtin_saveregs): Remove unused variable `stdarg'. + + * sparc.h (order_regs_for_local_alloc, eligible_for_return_delay, + sparc_issue_rate, v8plus_regcmp_p): Add prototypes. + + * sparc.md (cmpdi_v8plus): Add abort for default case in switch. + + * cppalloc.c: Include gansidecl.h. + + * cpperror.c: Include stdarg.h/varargs.h and gansidecl.h. + (cpp_file_line_for_message): Mark parameter `pfile' with + ATTRIBUTE_UNUSED. + (v_cpp_message): New function. + (cpp_message): Use it. Also convert to variable arguments. + (cpp_fatal): Likewise. + (cpp_pfatal_with_name): Constify parameter `name'. + + * cppexp.c: Move gansidecl.h before cpplib.h. + * cpphash.c: Likewise. + * cpphash.h (hashf, delete_macro): Add prototypes. + + * cpplib.c: Include stdarg.h/varargs.h and move gansidecl.h before + cpplib.h. Don't include errno.h. + (update_path): Add arguments to prototype. + (cpp_fatal, cpp_file_line_for_message, cpp_message, delete_macro, + cpp_print_containing_files): Remove redundant prototypes. + (cpp_hash_cleanup, add_import, append_include_chain, + make_assertion, path_include, initialize_builtins, + initialize_char_syntax, finclude, validate_else, comp_def_part, + lookup_import, redundant_include_p, is_system_include, + read_name_map, read_filename_string, open_include_file, + check_macro_name, compare_defs, compare_token_lists, + eval_if_expression, change_newlines): Add prototype arguments. + (hashf): Remove redundant prototype. + (read_token_list, free_token_list, safe_read, xcalloc, savestring, + conditional_skip, skip_if_group): Add prototype arguments. + (fdopen): Remove redundant prototype. + (do_define, do_line, do_include, do_undef, do_error, do_pragma, + do_ident, do_if, do_xifdef, do_else, do_elif, do_endif, do_sccs, + do_once, do_assert, do_unassert, do_warning): Add prototype arguments. + (struct directive): Add prototype arguments to function pointer + member `func'. + (handle_directive): Add missing arguments to call to `do_line'. + (do_include): Mark parameters `unused1' and `unused2' with + ATTRIBUTE_UNUSED. + (do_line): Likewise for `keyword' and new parameters `unused1' and + `unused2'. + (do_error): Likewise for `keyword'. + (do_warning): Likewise. Also add missing argument `pfile' in call + to cpp_pedwarn. + (do_once): Mark parameter `keyword', `unused1' and `unused2' with + ATTRIBUTE_UNUSED. + (do_ident): Likewise for `keyword', `buf' and `limit'. + (do_pragma): Likewise. Also add missing arguments in call to do_once. + (do_sccs): Mark parameter `keyword', `buf' and `limit' with + ATTRIBUTE_UNUSED. + (do_if): Likewise for `keyword'. + (do_elif): Likewise. + (eval_if_expression): Likewise for `buf' and `length'. + (do_xifdef): Likewise for `unused1' and `unused2'. + (do_else): Likewise for `keyword', `buf' and `limit'. + (do_endif): Likewise. + (parse_name): Add missing argument `pfile' in call to cpp_pedwarn. + (cpp_handle_options): Remove superfluous NULL argument in call to + cpp_fatal. + (cpp_handle_options): Likewise. + (do_assert): Mark parameter `keyword', `buf' and `limit' with + ATTRIBUTE_UNUSED. + (do_unassert): Likewise. + (cpp_print_file_and_line): Add missing argument `pfile' in call to + cpp_file_line_for_message. + (v_cpp_error): New function. + (cpp_error): Use it. Also accept variable arguments. + (v_cpp_warning): New function. + (cpp_warning): Use it. Also accept variable arguments. + (cpp_pedwarn): Accept variable arguments. + (v_cpp_error_with_line): New function. + (cpp_error_with_line): Use it. Accept variable arguments. + (v_cpp_warning_with_line): New function. + (cpp_warning_with_line): Use it. Accept variable arguments. Hide + definition. + (cpp_pedwarn_with_line): Accept variable arguments. + (cpp_pedwarn_with_file_and_line): Likewise. + (cpp_error_from_errno): Constify parameter `name'. Add missing + argument `pfile' in call to cpp_file_line_for_message. + (cpp_perror_with_name): Constify parameter `name'. + + * cpplib.h: Define PARAMS() in terms of PROTO(). + (fatal): Remove redundant prototype. + (cpp_error, cpp_warning, cpp_pedwarn, cpp_error_with_line, + cpp_pedwarn_with_line, cpp_pedwarn_with_file_and_line, + cpp_error_from_errno, cpp_perror_with_name, cpp_pfatal_with_name, + cpp_fatal, cpp_message, cpp_pfatal_with_name, + cpp_file_line_for_message, cpp_print_containing_files): Add + arguments to prototypes. + (scan_decls, cpp_finish): Add prototypes. + + * cppmain.c: Include gansidecl.h. + (main): Remove unused variable `i'. + + * dbxout.c: Include toplev.h. + + * demangle.h (do_tlink, collect_execute, collect_exit, + collect_wait, dump_file, file_exists): Add prototype. + + * dwarf2out.c (dwarf_type_encoding_name, decl_start_label): Hide + prototype and definition. + (gen_unspecified_parameters_die): Don't assign results of call to + function new_die() to unused variable `parm_die'. + (dwarf2out_line): Mark parameter `filename' with ATTRIBUTE_UNUSED. + (dwarf2out_define): Likewise for `lineno' and `buffer'. + + * dwarfout.c (output_unsigned_leb128, output_signed_leb128): Hide + prototype and definition. + (output_die): Add prototype arguments to function pointer arg. + (output_unspecified_parameters_die): Mark parameter `arg' with + ATTRIBUTE_UNUSED. + + * except.c (output_exception_table_entry): Remove unused variable + `eh_entry'. + + * except.h (expand_fixup_region_start, expand_fixup_region_end): + Add prototypes. + + * expr.c (do_jump_by_parts_equality_rtx): Remove prototype. + + * expr.h (do_jump_by_parts_equality_rtx): Add prototype. + + * fix-header.c: Include stdarg.h/varargs.h, move gansidecl.h + before cpplib.h, include cpphash.h, remove redundant prototype of + cpp_fatal, don't define `const', add a prototype for `fatal'. + (cpp_file_line_for_message): Add missing arguments `pfile'. + (v_cpp_message): New function. + (cpp_message): Use it. + (v_fatal): New function. + (fatal, cpp_fatal): Use it. + (cpp_pfatal_with_name): Constify parameter `name'. + + * flow.c (free_regset_vector): Remove redundant prototype. + + * function.c (round_down): Wrap prototype and definition with + macro ARGS_GROW_DOWNWARD. + (record_insns): Wrap prototype and definition with + defined (HAVE_prologue) || defined (HAVE_epilogue). + + * gansidecl.h (ATTRIBUTE_PRINTF_4, ATTRIBUTE_PRINTF_5): New macros. + + * gen-protos.c: Include gansidecl.h. + (hashf): Don't make it static, constify parameter `name'. + + * genattrtab.c (check_attr_test): Change XEXP() to XSTR() to match + specifier %s in calls to function `fatal'. + + * haifa-sched.c: Include toplev.h. + (find_rgns): Remove unused variable `j'. + + * integrate.c (note_modified_parmregs): Mark parameter `x' with + ATTRIBUTE_UNUSED. + (mark_stores): Likewise. + + * jump.c (mark_modified_reg): Likewise. + + * output.h (insn_current_reference_address): Add prototype. + (eh_frame_section): Likewise. + + * print-rtl.c: Include bitmap.h. + + * reload1.c (reload): Wrap variables `note' and `next' in macro + PRESERVE_DEATH_INFO_REGNO_P. + (forget_old_reloads_1): Mark parameter `ignored' with + ATTRIBUTE_UNUSED. + (choose_reload_regs): Remove unused variable `in'. + (reload_cse_invalidate_mem): Mark parameter `ignore' with + ATTRIBUTE_UNUSED. + (reload_cse_check_clobber): Likewise. + + * rtl.h (expand_null_return, reg_classes_intersect_p): Add prototype. + (mark_elimination): Fix typo in prototype. + + * scan-decls.c: Include gansidecl.h. + + * tree.h (using_eh_for_cleanups, supports_one_only): Add prototype. + +Mon May 18 22:37:33 1998 Jeffrey A Law (law@cygnus.com) + + * function.c (identify_blocks): Fix thinko when setting the + block number for NOTE_INSN_BLOCK_END. + +Mon May 18 15:30:42 1998 Nick Clifton + + * config/v850/lib1funcs.asm: Add .text pseudo op to start of + ___udivsi3. + + * config/v850/lib1funcs.asm: Fix .size pseudo ops to use three + underscores for the prefixes to the names of the maths functions. + + * dbxout.c (dbxout_parms): Revert to using DECL_ARG_TYPE. Add + comment explaining why. + +Mon May 18 13:20:23 1998 Richard Henderson + + * tree.h (TYPE_SIZE_UNIT): New. + (struct tree_type): Add size_unit member. + * stor-layout.c (layout_type): Initialize it. + * expr.c (get_inner_reference) [ARRAY_REF]: Use it. + * tree.c (size_in_bytes, int_size_in_bytes): Likewise. + +Mon May 18 12:07:37 1998 Richard Earnshaw (rearnsha@arm.com) + + * stor-layout.c (layout_record): Fix off-by-one error when checking + length of the TYPE_BINFO vector. + +Mon May 18 10:59:23 1998 Nick Clifton + + * dbxout.c (dbxout_parms): Use TREE_ARG to compute the type of a + function parameter passed in memory. + +Mon May 18 09:02:09 1998 Robert Lipe + + * dwarfout.h, dwarf2out.h, dbxout.h, sdbout.h: New files. + Prototypes for externally used functions in respective C files. + * dwarfout.c, dbxout.c, dwarf2out.c, sdbout.c, toplev,c, + final.c: Include above files. + * Makefile.in (toplev.o): Add dependency for above four headers. + (final.o): Likewise. + (dwarfout.o, dbxout.o, dwarf2out.o, sdbout.o): Depend on four + respective header files. + +Mon May 18 01:23:33 1998 Jeffrey A Law (law@cygnus.com) + + * Makefile.in (TARGET_TOOLPREFIX): No longer define. + (AR_FOR_TARGET, RANLIB_FOR_TARGET): Define to use versions in + the build tree if they exist. + (AR, AR_FLAGS, OLDAR, OLDAR_FLAGS, RANLIB, RANLIB_TEST): Update + appropriately. + (objdir): Let configure substitute value. + (FLOAT_H): Let configure select a pre-built version from the + config subdir. + * build-make (INSTALL_TARGET, ALL): Disable, no longer needed. + * configure.in: Substitute for objdir. + + * Makefile.in (build_canonical, host_canonical): Let configure + substitute values for these variables. + * configure.in: Substitute for build_canonical, host_canonical + and target_subdir in generated Makefile. + + * output.h (find_basic_blocks): Declare. + (free_basic_block_vars, set_block_num, life_analysis): Likewise. + + * Makefile.in (BISON): Use bison from the build tree if it exists. + (FLEX): Similarly. + +Mon May 18 00:08:19 1998 Nick Clifton + + * gcc.c (SWITCH_CURTAILS_COMPILATION): Definition. + (DEFAULT_SWITCH_CURTAILS_COMPILATION): True for options -S and -c. + (process_command): If HAVE_EXECUTABLE_SUFFIX is defined then scan + command line arguments to see if an executable is not being + created, and if so - do not append the suffix. + + * tm.texi (SWITCH_CURTAILS_COMPILATION): Add description of new + driver macro. + +Sun May 17 23:59:45 1998 John Wehle (john@feith.com) + + * i386.h (ALIGN_DFmode): Delete. + (CONSTANT_ALIGNMENT): Define. + * varasm.c (force_const_mem): Use it. + +Sun May 17 19:31:05 1998 Richard Henderson + + * alpha.c (alpha_emit_conditional_branch): Clear cmp_code after + using it with swap_condition, not before. + +Sun May 17 13:44:32 1998 Jim Wilson + + * alias.c (mode_alias_check): Delete. + (true_dependence, anti_dependence, output_dependence): Revert April 21 + change. + +Sun May 17 08:45:21 1998 Krister Walfridsson + + * toplev.c (output_lang_identify): Enable prototype and definition. + +Sun May 17 01:12:27 1998 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Sat May 16 23:20:32 1998 Richard Henderson + + * alpha/osf.h (HAVE_STAMP_H): Define. + * alpha.c: Use it. + * alpha/netbsd.h, alpha/netbsd-elf.h: New files. + * configure.in (alpha*-*-netbsd*): New. + Based on patches from Paul H. Anderson . + + * configure.in (alpha*-*-linux-*): Kill xm_defines. + (alpha*-*-linux-gnulibc1*) [fixincludes]: Define. + * alpha/xm-linux.h: Remove file. + +Sat May 16 18:32:45 1998 Doug Evans + + * dbxout.c (dbxout_parms): If mode of type of parameter living + in memory doesn't match mode of DECL_RTL, make big endian correction. + +Fri May 15 21:40:06 1998 John Wehle (john@feith.com) + + * i386.md (movdi-1, movdi): Rewrite based on SI move patterns. + +Fri May 15 18:55:22 1998 Jason Merrill + + * tree.h (BINFO_SIZE, TYPE_BINFO_SIZE): New macros. + * stor-layout.c (layout_record): Set it. + +Fri May 15 18:49:30 1998 Mark Mitchell + + * toplev.c (rest_of_compilation): Don't defer nested functions. + +Fri May 15 17:42:52 1998 Bob Manson + + * config/rs6000/rs6000.c (rs6000_stack_info): Align the stack bottom + to an 8-byte boundary if info_ptr->fpmem_p. + +Fri May 15 17:36:11 1998 Bill Moyer + + * loop.c (basic_induction_var): Added test preventing + CCmode parameter passed to convert_modes(). + +Fri May 15 17:26:18 1998 Alexandre Petit-Bianco + + * expr.c (expand_expr, case EXPR_WITH_FILE_LOCATION): Save/restore + input_filename and lineno around expand_expr call. Set them to values + in WFL before expand_expr call. + +Fri May 15 12:44:57 1998 Benjamin Kosnik + + * stor-layout.c (set_sizetype): Set TYPE_NAME on bitsizetype. + +Fri May 15 07:20:03 1998 Mark Mitchell + + * fold-const.c (constant_boolean_node): New function. + (fold): Use it. + +Fri May 15 11:21:16 1998 J"orn Rennecke + + * sh.c (gen_shl_and): Don't sign extend constant for kind two. + Abort if trying to split kind 3 or 4 outside of combine. + +Fri May 15 01:47:37 1998 Jeffrey A Law (law@cygnus.com) + + * mips.c (print_operand, case 'x'): Use HOST_WIDE_INT_PRINT_HEX. + +Fri May 15 01:42:45 1998 Mumit Khan + + * objc/Make-lang.in (OBJC_O): Add missing exeext. + (libobjc.a, runtime-info.h): Likewise. + +Fri May 15 01:29:39 1998 John Wehle (john@feith.com) + + * i386.h (DATA_ALIGNMENT): Define. + +Fri May 15 05:35:37 1998 J"orn Rennecke + + * reload1.c (delete_output_reload): Ignore single USE that + was emitted for the pseudo use of this INSN. + If the no reference to REG between OUTPUT_RELOAD_INSN and INSN + remains, we can always delete OUTPUT_RELOAD_INSN. + +Thu May 14 18:38:50 1998 Jim Wilson + + * reload.c (find_reloads): Don't penalize SCRATCH output reload. + +Thu May 14 15:10:30 1998 Jeffrey A Law (law@cygnus.com) + + * Makefile.in (expr.o): Remove dependency on deleted modemap.def file. + +Thu May 14 16:30:47 1998 Andrew MacLeod + + * eh-common.h: New file for basic EH data structures. + * except.h: Various prototypes and structures for NEW_EH_MODEL. + * function.h (struct function): Add a struct eh_stack for the catch + clause stack. + * except.c (gen_exception_label): New function to generate an + exception label. + (push_eh_entry): Use gen_exception_label() and init 'label_used' field. + (push_entry): New function to push an existing entry onto a stack. + (receive_exception_label): New function to emit the code required + at the start of all catch blocks. + (struct func_eh_entry): New structure for maintaining handlers + associated with EH regions. + (new_eh_region_entry): New function to register an EH region. + (add_new_handler): New function to register a handler with a region. + (get_new_handler): Creates anew handler entry for registering. + (find_func_region): New function to convert a NOTE eh region number + to an Eh region index. + (get_first_handler): New function to get the first handler in a region. + (clear_function_eh_region): New function to release memory. + (duplicate_handlers): New function to duplicate a list of handlers. + (expand_eh_region_end): Create a new region entry node as well. + (expand_leftover_cleanups): Call receive_exception_label() and + register the cleanup as a handler to the current region. + (expand_start_catch): New function to start a catch clause. + (expand_end_catch): New function to end a catch clause. + (expand_start_all_catch): Restructure to not do the equivalent of + what expand_start_catch() does now. Push the exception region being + handled onto the catch stack. + (output_exception_table_entry): Issue an entry for each handler + associated with a region. + (set_exception_lang_code): New function for setting the language code. + (set_exception_version_code): New function to set the version number. + (output_exception_table): Output version and language codes. + (find_exception_handler_labels): Find handler labels using new scheme. + (is_exception_handler_label): New function, returns 1 if label is + present as a handler in some exception region. + (check_exception_handler_labels): Use the new scheme. + (init_eh_for_function): Initialize the catch stack. + (save_eh_status): Save the catch stack. + (restore_eh_status): Restore the catch stack. + (scan_region): Don't remove unreferenced handler label. Flow does it. + (get_reg_for_handler): New function to get the eh_context pointer + passed by __throw. + (expand_builtin_eh_stub): Changes required for NEW_EH_MODEL only. + * final.c (final_scan_insn): With NEW_EH_MODEL, add EH table + entry when processing END region rather that START region. + * flow.c (find_basic_blocks_1): Find all potential handler regions + now that we don't automatically know what the labels might be. + Let scan_region() remove unreferenced EH BEGIN/END labels. + * integrate.c (get_label_from_map): Put inlined labels onto the + permanent obstack since we don't know which ones might be exception + labels. + (save_for_inline_copying): Make new copies of all the handlers. + (expand_inline_function): Make new copies of all the handlers. + * libgcc2.c: Remove local struct decls, and include eh-common.h. + (find_exception_handler): With NEW_EH_MODEL the first matching + region we find is the right one. Add eh_info as a new parameter. + (__throw): Pass eh_info to find_exception_handler. Set handler + and pass use different regs under NEW_EH_MODEL. + +Thu May 14 12:58:21 1998 Jim Wilson + + * i960.h (hard_regno_mode_ok): Changed to function from array of + unsigned. + (HARD_REGNO_MODE_OK): Call function instead of testing bit. + * i960.c (hard_regno_mode_ok): Changed to function from array of + unsigned. + +Thu May 14 08:41:46 1998 J"orn Rennecke + + * reload.c (remove_replacements): New function. + * reload.h (remove_replacements): Declare. + * reload1.c (choose_reload_regs): Disable some reloads that + belong to inherited reloads. + +Thu May 14 02:17:17 1998 J"orn Rennecke + + * loop.c (scan_loop): Don't call move_movables for optimize_size. + + * reload1.c (merge_assigned_reloads): When merging, reset + reload_spill_index for the eliminated reload. + +Wed May 13 17:51:13 1998 Jeffrey A Law (law@cygnus.com) + + * haifa-sched.c (schedule_insns): Fix merge goof. + +1998-05-13 Jim Wilson + + * varasm.c (make_decl_rtl): Revert April 1 change. + * alpha/alpha.h, alpha/win-nt.h, arm/arm.h, i386/unix.h, i960/i960.h, + m68k/linux.h, pa/pa.h, sparc/sparc.h, vax/vax.h (ASM_OUTPUT_MI_THUNK): + Get function name from the SYMBOL_REF in the DECL_RTL, not from + DECL_ASSEMBLER_NAME. + * i386/winnt.c (gen_stdcall_suffix): Comment for questionable use of + DECL_ASSEMBLER_NAME. + +Wed May 13 13:09:19 1998 Jim Wilson + + * i386.c (notice_update_cc, output_float_compare): Disable + TARGET_CMOVE support. + +Wed May 13 15:28:59 1998 Michael Meissner + Jeff Law + + * rtlanal.c (find_reg_note): Ignore notes that are not on on + insns of class 'i'. + (find_regno_note): Likewise. + + * Makefile.in (stor-layout.o): Depend on except.h. + (varasm.o, function.o): Likewise. + (expr.o): Depend on except.h, modemap.def and hard-reg-set.h. + + * Makefile.in (HOST_RTL): Add $(HOST_PREFIX)bitmap.o. + (rtl.o, emit-rtl.o): Add dependency on bitmap.h. + ($(HOST_PREFIX_1)rtl.o): Likewise. + ($(HOST_PREFIX_1)bitmap.o): New host object. + * emit-rtl.c (toplevel): Include bitmap.h. + (gen_rtx): Handle 't' and 'b' nodes. + * print-rtl.c (print_rtx): Handle printing NOTE_INSN_LIVE notes. + Print block number for block begin/end notes. Print 't' type + nodes as a pointer. Know that the 3rd argument of live range + start/stop notes is really a range_info rtx. If type is 'b', print + out argument as a bitmap. + * rtl.c: Include bitmap.c. + (copy_rtx): Copy tree nodes as is. Copy bitmaps if type is 'b'. + (note_insn_name): Add NOTE_INSN_RANGE_{START,END}, NOTE_INSN_LIVE. + * rtl.def (RANGE_LIVE): New node to hold live information while we + recalculate the basic blocks. + (RANGE_REG, RANGE_INFO): New rtl types for live range splitting. + (RANGE_VAR): New node, to hold information saved in symbol node for New + communicating live range information to the debug output functions. + * rtl.h (rtunion_def): Add rttree and rtbit fields. + (XBITMAP, XTREE): New accessor macros. + (NOTE_LIVE_INFO): Overload NOTE_SOURCE_FILE for NOTE_INSN_LIVE notes. + (NOTE_RANGE_INFO): Similarly for NOTE_INSN_RANGE_{START,END} notes. + (NOTE_BLOCK_LIVE_RANGE_BLOCK): Define. + (NOTE_INSN_RANGE_START, NOTE_INSN_RANGE_END, NOTE_INSN_LIVE): New notes. + (RANGE_LIVE_{BITMAP,ORIG_BLOCK}): New accessor macros. + (RANGE_REG_{SYMBOL,BLOCK}_NODE, RANGE_VAR_*): New accessor macros. + (RANGE_INFO_*): Likewise. + * sched.c (sched_analyze): Keep live range start/stop notes. + (unlink_other_notes): Likewise. + * haifa-sched.c (sched_analyze): Keep live range start/stop notes. + (unlink_other_notes): Likewise. + * tree.h (BLOCK_LIVE_RANGE_{START,END,VAR_FLAG}): New accessor macros. + (BLOCK_LIVE_RANGE_FLAG): Likewise. + (DECL_LIVE_RANGE_RTL): Likewise. + (struct tree_block): Add live_range_flag, live_range_var_flag, + live_range_start and live_range_end. + (struct tree_decl): Add live_range_rtl field. + * gengenrtl.c (type_from_format): Handle 'b' and 't'. + (accessor_from_format): Likewise. + + * haifa-sched.c (schedule_block): Make verbose output line up. + Also add a blank line in printing the individual ready lists. + +Wed May 13 15:43:44 1998 Kaveh R. Ghazi + + * Makefile.in (c-lang.o): Depend on c-tree.h, c-lex.h and toplev.h. + (c-lex.o): Depend on output.h. + (c-common.o): Likewise. + (stmt.o): Likewise. + (calls.o): Likewise. + (integrate.o): Depend on toplev.h. + (regclass.o): Depend on output.h. + (final.o): Depend on reload.h. + + * c-common.c: Include output.h. + (check_format_info): Remove unused variable `integral_format'. + + * c-decl.c (print_lang_decl): Mark parameters `file', `node' and + `indent' with ATTRIBUTE_UNUSED. + (print_lang_type): Likewise. + (maybe_build_cleanup): Likewise for parameter `decl'. + (copy_lang_decl): Likewise for parameter `node'. + + * c-lang.c: Include c-tree.h, c-lex.h and toplev.h. + (lang_print_xnode): Mark parameters `file', `node' and `indent' + with ATTRIBUTE_UNUSED. + (lookup_interface): Likewise for parameter `arg'. + (is_class_name): Likewise. + (maybe_objc_check_decl): Likewise for parameter `decl'. + (maybe_objc_comptypes): Likewise for parameters `lhs', `rhs' and + `reflexive'. + (maybe_objc_method_name): Likewise for parameter `decl'. + (build_objc_string): Likewise for parameters `len' and `str'. + + * c-lex.c: Include output.h. + + * c-lex.h (position_after_white_space): Correct typo in prototype. + + * c-tree.h (finish_file, c_expand_start_cond, c_expand_start_else, + c_expand_end_cond, init_iterators): Add prototypes. + + * caller-save.c (set_reg_live): Mark parameters `reg' and `setter' + with ATTRIBUTE_UNUSED. + + * calls.c: Include output.h. + + * cccp.c (pipe_closed): Mark parameter `signo' with + ATTRIBUTE_UNUSED. + + * combine.c: Move inclusion of expr.h to after insn-config.h. + + * iris6.h (ASM_IDENTIFY_GCC, ASM_IDENTIFY_LANGUAGE): Don't define + as empty, rather define as ((void)0). + + * sparc.c (sparc_check_64): Add braces around ambiguous `else'. + Add parentheses around assignment used as truth value. + + * cplus-dem.c (squangle_mop_up): Change return type to void. + (internal_cplus_demangle): Remove unused parameter `options'. + All callers changed. + (cplus_demangle_opname): Remove function wide variable `int i' and + replace with `size_t i' at each location where it is used. + (cplus_demangle_opname): Change type of `i' from int to size_t. + + * cppexp.c (right_shift): Mark parameter `pfile' with + ATTRIBUTE_UNUSED. + + * cpphash.c (cpp_lookup): Likewise. + (cpp_hash_cleanup): Likewise. + + * cpplib.c (parse_name): Add a prototype and make it static. + (null_underflow): Mark parameter `pfile' with ATTRIBUTE_UNUSED. + (null_cleanup): Likewise for parameters `pbuf' and `pfile'. + (macro_cleanup): Likewise for parameter `pfile'. + (file_cleanup): Likewise. + + * cpplib.h (cpp_reader_init, cpp_options_init, cpp_start_read, + cpp_read_check_assertion, skip_rest_of_line): Add prototypes. + + * crtstuff.c (force_to_data, __CTOR_LIST__, force_to_data, + __DTOR_END__, __FRAME_END__): Mark with ATTRIBUTE_UNUSED. + + * cse.c (cse_check_loop_start): Mark parameter `set' with + ATTRIBUTE_UNUSED. + + * dbxout.c (flag_minimal_debug, have_used_extensions, + source_label_number): Move inside macro wrapper check against + defined (DBX_DEBUGGING_INFO) || defined (XCOFF_DEBUGGING_INFO). + + * dwarf2out.c (gen_entry_point_die): Hide prototype and definition. + + * except.h (doing_eh): Provide prototype. + + * expr.c: Move inclusion of expr.h to after insn-config.h. + + * final.c: Include reload.h. + (shorten_branches): Cast the first argument of bzero to char *. + + * fix-header.c (cpp_print_containing_files): Mark parameter + `pfile' with ATTRIBUTE_UNUSED. + (cpp_fatal): Likewise. + + * flow.c (find_basic_blocks_1): Cast the first argument of bzero + to char *. + + * genattrtab.c (make_length_attrs): Change the type of variable + `i' from int to size_t. + (zero_fn): Mark parameter `exp' with ATTRIBUTE_UNUSED. + (one_fn): Likewise. + + * genextract.c (main): When generating insn-extract.c, mark + variable `junk' with ATTRIBUTE_UNUSED. + + * gengenrtl.c (gencode): When generating genrtl.c, cast the first + argument of bzero to char*. + + * integrate.c: Include toplev.h. + + * libgcc2.c: Wrap `struct exception_table' and + `find_exception_handler' in macro DWARF2_UNWIND_INFO. + + * objc/Make-lang.in (objc-act.o): Depend on toplev.h. + + * objc/objc-act.c: Include toplev.h. + (lang_print_xnode): Mark parameters `file', `node' and `indent' + with ATTRIBUTE_UNUSED. + (finish_protocol): Likewise for parameter `protocol'. + + * output.h (declare_weak): Add prototype. + (decode_reg_name): Don't wrap with TREE_CODE macro. + (assemble_alias): Add prototype. + + * regclass.c: Include output.h. + + * reload.h (reloads_conflict): Add prototype. + + * rtl.h (print_rtl_single, mark_elimination, reg_class_subset_p, + output_func_start_profiler): Add prototypes. + + * rtlanal.c (reg_set_p_1): Mark parameters `x' and `pat' with + ATTRIBUTE_UNUSED. + + * scan-decls.c: Include scan.h. + + * scan.h (recognized_function, recognized_extern): Add prototypes. + + * stmt.c: Include output.h. + + * toplev.c (error_for_asm, warning_for_asm): Remove prototypes. + (output_lang_identify): Hide prototype and definition. + (float_signal): Mark parameter `signo' with ATTRIBUTE_UNUSED. + (pipe_closed): Likewise. + + * toplev.h (count_error, strip_off_ending, error_for_asm, + warning_for_asm): Add prototypes. + +Wed May 13 12:54:19 1998 Michael Meissner + + * toplev.c (rest_of_compilation): "Charge" final for any time + doing various cleanup operations after finishing compilation + of a function. + + * flow.c (dump_flow_info): Also print number of sets and + whether or not the pseudo is a user variable. + + * flow.c (reg_n_max): New global variable. + * regclass.c (allocate_reg_info): Keep reg_n_max up to date. + Delete regno_max variable. + * regs.h (REG_N_CHECK): Define. + (REG_N_REFS, REG_N_SETS, REG_N_DEATHS): Use REG_N_CHECK. + (REG_N_CHANGES_SIZE, REG_N_CALLS_CROSSED, REG_LIVE_LENGTH): Likewise. + (REGNO_FIRST_UID, REGNO_LAST_UID, REGNO_LAST_NOTE_UID): Likewise. + +Wed May 13 12:54:19 1998 Martin von Loewis + + * acconfig.h (ENABLE_CHECKING): Undefine. + * configure.in (--enable-checking): New option. + +Wed May 13 08:52:08 1998 J"orn Rennecke + + * reload1.c (merge_assigned_reloads): Can merge + RELOAD_FOR_INPUT_ADDRESS and RELOAD_FOR_OTHER_ADDRESS even + if RELOAD_FOR_INPUT with the same reload_reg_rtx is present. + +Tue May 12 20:05:57 1998 Jim Wilson + + * collect2.c (main): Ignore do_collecting when COLLECT_EXPORT_LIST. + +Wed May 13 03:23:45 1998 J"orn Rennecke + + * reload1.c (gen_reload): Create REG_EQUIV notes. + +Tue May 12 22:21:07 1998 J"orn Rennecke + + * reload1.c (reload): Fix check for USEs to use code of pattern. + (choose_reload_regs): Remove dead variable use_insn. + +Tue May 12 14:04:49 1998 Jeffrey A Law (law@cygnus.com) + + * pa.h (DBX_CONTIN_LENGTH): Reduce to 3000 bytes. + +Tue May 12 15:16:02 1998 Michael Meissner + + * haifa-sched.c (HAIFA_INLINE): Define to be __inline unless + already defined. + (find_insn_{,mem_}list): Use HAIFA_INLINE, not __inline. + (insn_{unit,issue_delay}): Likewise. + (blockage_range): Likewise. + (actual_hazard{,_this_instance}): Likewise. + (schedule_unit): Likewise. + (potential_hazard): Likewise. + (insn_cost): Likewise. + (swap_sort): Likewise. + (queue_insn): Likewise. + (birthing_insn_p): Likewise. + (adjust_priority): Likewise. + (get_block_head_tail): Likewise. + (init_rgn_data_dependences): Likewise. + +Tue May 12 10:27:54 1998 Klaus Kaempf + + * alpha/vms.h (COMMON_ASM_OP, ASM_OUTPUT_ALIGNED_COMMON): Define. + +Tue May 12 11:44:14 1998 Gavin Koch + + * config/mips/mips.h (ASM_OUTPUT_ALIGN): Remove trailing semi-colon. + +Tue May 12 11:38:31 1998 Gavin Koch + + * config/mips/mips.md (dslot): Move after definition of "cpu" + attribute. Handle r3900 case. + +Tue May 12 10:21:36 1998 Kaveh R. Ghazi + + * system.h: Define the STRINGIFY macro here. + * protoize.c: Not here. + * gengenrtl.c (DEF_RTL_EXPR): Use the STRINGIFY macro. + +Tue May 12 00:47:33 1998 John Wehle (john@feith.com) + + * varasm.c (assemble_variable): Compute the alignment of the data + earlier so that both initialized and uninitialized variables are + effected by DATA_ALIGNMENT. + * tm.texi (DATA_ALIGNMENT): Updated appropriately. + +Mon May 11 19:57:58 1998 Jeffrey A Law (law@cygnus.com) + + * mips.c: Prototype static functions. + +Mon May 11 17:43:03 1998 Jim Wilson + + * regmove.c (fixup_match_2, find_matches, regmove_profitable): + Add explanatory comments. + + * sparc.h (SPARC_INCOMING_INT_ARG_FIRST): Support TARGET_FLAT. + +Mon May 11 17:24:27 1998 Richard Henderson + + * sparc.md (ffsdi2): Disable. Simplify the expression as well. + +Mon May 11 13:30:44 1998 Jim Wilson + + * varasm.c (make_decl_rtl): Disable April 1 change. + +Mon May 11 09:14:41 1998 Richard Henderson + + * configure.in (alpha-*-linux-gnu): Undo lossage from gcc2 merge. + +Mon May 11 08:24:18 1998 Richard Henderson + + * alpha.h (PRINT_OPERAND_PUNCT_VALID_P): Add '`'. + * alpha.c (print_operand): Handle it. + * alpha.md (fix_truncdfsi2, fix_truncsfsi2): New patterns and + related define_splits. Also add peepholes for SImode reload + plus sign_extend lossage. + +Mon May 11 09:33:10 1998 Kaveh R. Ghazi + + * genattr.c: Include stdarg.h/varargs.h. Change function + `fatal' to use variable arguments instead of faking it with + integer parameters. Provide a prototype which also + checks the format specifiers using ATTRIBUTE_PRINTF_1. + + * genattrtab.c: Likewise. + * gencodes.c: Likewise. + * genconfig.c: Likewise. + * genemit.c: Likewise. + * genextract.c: Likewise. + * genflags.c: Likewise. + * genopinit.c: Likewise. + * genpeep.c: Likewise. + * genrecog.c: Likewise. + * genoutput.c: Likewise. Similarly for function `error'. + +Sun May 10 02:27:03 1998 Kaveh R. Ghazi + + * acconfig.h (HAVE_VOLATILE): Insert stub for autoconf. + * alocal.m4 (GCC_C_VOLATILE): New autoconf test. + * configure.in: Use GCC_C_VOLATILE. + * system.h (volatile): Define as empty if no volatile support is + available. + +Sun May 10 01:21:43 1998 Jeffrey A Law (law@cygnus.com) + + * genemit.c (output_add_clobbers): Removed unused variable 'i' from + generated function. + +Sat May 9 02:02:15 1998 Richard Henderson + + * loop.c (get_condition): Don't combine when either compare is MODE_CC. + * alpha.c (alpha_emit_conditional_branch): New function. Taken from + the body of beq; additionally set the mode of the branch to CCmode for + FP compares and not fast_math. + (alpha_emit_conditional_move): Always use a compare insn for FP + when not fast_math, as well as setting CCmode on the cmov. + * alpha.md (beq, bne, blt, et al): Call alpha_emit_conditional_branch. + + * machmode.h (COMPLEX_MODE_P): New macro. + +Sat May 9 01:53:23 1998 Richard Henderson + + * haifa-sched.c (print_exp): Fix typo. + +Fri May 8 21:48:50 1998 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Fri May 8 18:23:08 1998 Michael Meissner + + * final.c (final_scan_insn): Call fatal_insn instead of abort if + we could not split an insn when required to. + + * m32r.md ({add,sub}di3): Add define_splits and appropriate low + level insns. + (peepholes): Disable peepholes that call dead_or_set_p. + (movsi): Rewrite to handle addresses better after last change. + Add define_split to split load of addresses in large/medium modes. + (prologue): Call m32r_expand_prologue. + (movsi_{push,pop}): Generators for push/pop. + (movsi): Support PRE_{INC,DEC}, POST_INC. + (mov{di,df}): Rewrite. Always split the insns. + (movsf): Add define_split to get register load in correct mode. + (cmp_ne_small_const_insn): Use 'N' instead of 'S' constraint. + (attributes): Rewrite attributes so that type indicates both the + type and the length of the insn directly. + (all insns): Change to use new type attributes. + (debug): New attribute to convey whether -mdebug was used. + (opt_space): New attribute to convey whether -Os was used. + (function units): Loads are 3 cycles, not 2. Better classify all + insns into short/long. + (load/store/extend insns): Add separate case for load/store + indirect operations without an offset. + (divsi3): Division is a long operation, not short. + + * m32r.h (LEGITIMATE_LO_SUM_ADDRESS_P): Do not allow LO_SUM for + modes > 1 word. + (GO_IF_MODE_DEPENDENT_ADDRESS): LO_SUM is now mode dependent. + (CONST_OK_FOR_LETTER_P): Make 'N' handle reverse 8 bit compares. + (EXTRA_CONSTRAINT): Remove 'S' special support. Add 'U' for + operands with PRE_{INC,DEC}, POST_INC. + (FUNCTION_PROFILER): Call abort instead of doing nothing. + (GO_IF_LEGITIMATE_ADDRESS): Allow PRE_{INC,DEC}, POST_INC of + SImode variables. + (gen_split_move_double): Declare. + (EXTRA_CONSTRAINT): Add 'T' for memory reference with no offset. + + * m32r.c (gen_split_move_double): Fix typo. Also, don't call + emit_move_insn, build up SET's directly. + (toplevel): Include system.h, not stdio.h. + (move_double_src_operand): Allow any DF or DI mode constant. + (gen_split_move_double): Split moves of DI or DF values into the + appropriate moves, loads, or stores. Don't handle use of auto + inc/dec if using dead index. Do handle overlapping moves, etc. + (m32r_frame_info): Remove prologue_size field. + (m32r_compute_frame_size): Don't calculate prologue size. + (m32r_output_function_prologue): Change to pretty much a NOP. + (m32r_expand_prologue): Expand prologue as a series of INSNs. + (m32r_print_operand): Add support for PRE_{INC,DEC}, POST_INC. + (m32r_print_operand_address): Likewise. + +Fri May 8 14:13:21 1998 H.J. Lu (hjl@gnu.org) + + * reload1.c (emit_reload_insns): When performing expensive + optimizations, do not output the last reload insn if OLD is + not the dest of NSN and is in the src and is clobbered by INSN. + +Fri May 8 09:47:29 1998 Kaveh R. Ghazi + + * Makefile.in (genrtl.o): Depend on system.h. + * gengenrtl.c (gencode): When creating genrtl.c, have it + include system.h. + +Fri May 8 10:57:33 1998 Andreas Schwab + + * config/m68k/t-linux: Remove extra stuff already included in + config/t-linux. + +Fri May 8 09:53:24 1998 Paul Eggert + + * fixinc.wrap: Renamed from fixinc.math. Put wrapper around + curses.h if it contains `typedef char bool;', as suggested by + Manfred Hollstein . + + * configure.in: Rename fixinc.math to fixinc.wrap. + +Thu May 7 19:26:34 1998 Jim Wilson + + * gcc.c (read_specs): Handle missing blank line at end of specs file. + + * i386.md (movsicc, movhicc, movsicc_1, movhicc_1, movsfcc_1, + movdfcc_1): Disable. + +Thu May 7 15:39:14 1998 Jim Wilson + + * configure.in (enable_threads): Rename to enable_threads_flag before + main loop. Set enable_threads to enable_threads_flag inside main + loop. + +Thu May 7 17:38:03 1998 Michael Meissner + + * r6000/eabi.asm (__eabi): Restore LR in case __eabi is called + multiple times. + +Thu May 7 14:26:05 1998 Kaveh R. Ghazi + + * aclocal.m4 (GCC_FUNC_VFPRINTF_DOPRNT): New macro. + + * configure.in: Add a call to GCC_FUNC_VFPRINTF_DOPRNT. + (AC_CHECK_HEADERS): Remove unused check for varargs.h,sys/varargs.h. + (AC_CHECK_FUNCS): Remove unused check for vprintf. + + * Makefile.in: Add support for linking in vfprintf.c and doprint.c. + (cccp.o): Depend on gansidecl.h. + (cexp.o): Likewise. + + * cccp.c: Convert from using PRINTF_ALIST/PRINTF_DCL to VPROTO as + per the rest of gcc source. + * cexp.y: Likewise. Include gansidecl.h and remove all code made + redundant. + + * cccp.c: Remove checks for HAVE_VPRINTF and the associated code + used when vfprintf is missing. + * cexp.y: Likewise. + * gcc.c: Likewise. + * genattrtab.c: Likewise. + * mips-tfile.c: Likewise. + * toplev.c: Likewise. + + * vfprintf.c: New file. + * doprint.c: New file. + +Thu May 7 10:18:41 1998 Jeffrey A Law (law@cygnus.com) + + * config/linux.h (ASM_COMMENT_START): Remove from here, + * config/linux-aout.h (ASM_COMMENT_START): and here, + * config/i386/linux.h (ASM_COMMENT_START): to here, + * config/i386/linux-aout.h (ASM_COMMENT_START): and here. + * config/i386/linux-oldld.h (ASM_COMMENT_START): Define + here as '#' too. + +Thu May 7 10:55:59 1998 Andreas Schwab + + * config/m68k/m68k.md (adddi3, subdi3): Properly negate the DImode + constant. + +Wed May 6 22:32:37 1998 Robert Lipe + + * Makefile.in (dwarfout.o): Add toplev.h dependency. + * dwarfout.c, i386.c: Include toplev.h. + * toplev.h (pfatal_with_name): Add prototype. + +Wed May 6 19:02:29 1998 Jason Merrill + + * Makefile.in: Fix .SUFFIXES. + +Wed May 6 19:31:32 1998 Alan Modra + + * config/linux.h (ASM_COMMENT_START): Define as "#". + * config/linux-aout.h (ASM_COMMENT_START): Likewise. + +Wed May 6 15:51:39 1998 Jim Wilson + + * objc/Make-lang.h (objc-parse.o): Add toplev.h dependency. + * objc/objc-parse.y, objc/objc-parse.c: Regenerate. + + * toplev.c: Include toplev.h. + * Makefile.in (c-common.o, c-convert.o, c-decl.o, c-iterate.o, + c-lex.o, c-parse.o, c-pragma.o, c-typeck.o, calls.o, convert.o, + dwarf2out.o, except.o, expr.o, final.o, fold-const.o, function.o, + hash.o, profile.o, real.o, reg-stack.o, regclass.o, reload.o, + reload1.o, stmt.o, stor-layout.o, tlink.o, tree.o, varasm.o): Add + toplev.h dependency. + + * mips/mips.c (save_restore_insns): Change FRAME_POINTER_REGNUM to + HARD_FRAME_POINTER_REGNUM. + + * expr.c (target_temp_slot_level): Delete duplicate definition. + +Wed May 6 16:46:01 1998 Jeffrey A Law (law@cygnus.com) + + * stmt.c (mark_seen_cases): Make it have external linkage again. + * expr.h (mark_seen_cases): Add declaration, but only when tree.h + has been included. + + * haifa-sched.c (print_value, case SUBREG): Fix typo. + + * i386.c (output_387_binary_op): Add some braces to avoid warnings. + * i386.h (REG_CLASS_CONTENTS): Similarly. + + * toplev.c (-fsched-max): Delete flag. + (-fsched-interblock-max-blocks,-fsched-interblock-max-insns): Likewise. + * haifa-sched.c: Remove -fsched-max-N, -fsched-interblock-max-blocks-N + and -fsched-interblock-max-insns-N support. Remove INTERBLOCK_DEBUG + conditionals. + + * haifa-sched.c (find_rgns): Correctly handle reducible loops with + inner loops which are not reducible. + + * loop.c (regs_match_p): Fix typo in prototype. + + * regmove.c (try_auto_increment): Wrap declaration inside an + #ifdef AUTO_INC_DEC. + +Wed May 6 17:07:47 1998 Michael Meissner + + * final.c (output_operand_lossage): Call fatal with the operand + lossage message instead of calling abort. + +Wed May 6 15:37:27 1998 Kaveh R. Ghazi + + * c-common.c: Convert to using ctype macros defined in system.h. + * c-lex.c: Likewise. + * cccp.c: Likewise. + * collect2.c: Likewise. + * rs6000.c: Likewise. + * cpplib.c: Likewise. + * fix-header.c: Likewise. + * gcc.c: Likewise. + * gen-protos.c: Likewise. + * pexecute.c: Likewise. + * protoize.c: Likewise. + * rtl.c: Likewise. + * scan.c: Likewise. + * stmt.c: Likewise. + * tlink.c: Likewise. + * toplev.c: Likewise. + +Wed May 6 14:44:14 1998 Gavin Koch + + * config/mips/r3900.h (SUBTARGET_ASM_DEBUGGING_SPEC) : + Replace -gdwarf-2 with -g0. + +Wed May 6 11:43:18 1998 Kaveh R. Ghazi + + * Makefile.in (mips-tfile.o, mips-tdump.o): Depend on system.h. + * mips-tdump.c: Include system.h, remove redundant headers. + * mips-tfile.c: Likewise. Also, convert all ctype function calls + to calls of the macro versions defined in system.h. + + * objc/Make-lang.in (objc-act.o): Depend on system.h. + * objc/objc-act.c: Include system.h, remove redundant headers. + +Wed May 6 11:21:06 1998 Kaveh R. Ghazi + + * configure.in (AC_CHECK_FUNCS): Add isascii. + (GCC_NEED_DECLARATIONS): Add atof. + + * system.h: Provide prototypes for abort, atof, atol and sbrk here. + * rtl.c, rtl.h, toplev.c, tree.h: Not here. + +Wed May 6 10:52:49 1998 Kaveh R. Ghazi + + * system.h: Wrap time.h and sys/file.h in autoconf checks. + Provide default definitions for O_RDONLY and O_WRONLY here. + + * cccp.c, cpplib.c, fix-header.c, gcc.c, protoize.c: Not here. + +1998-05-06 Mark Mitchell + + * tree.h (IS_EXPR_CODE_CLASS): Remove bogus '3'. + +Wed May 6 06:35:38 1998 Robert Lipe + + * toplev.h: New file. Protypes for functions in toplev.c. + * tree.h, rtl.h: Deleted protos for functions in toplev.c. + * c-common.c, c-convert.c, c-decl.c, c-iterate.c, c-lex.c, + c-parse.in, c-parse.y, c-pragma.c, c-typeck.c, calls.c, + convert.c, dwarf2out.c, except.c, expr.c, final.c, fold-const.c, + function.c, hash.c, profile.c, real.c, reg-stack.c, regclass.c, + reload.c, reload1.c, stmt.c, stor-layout.c, tlink.c, tree.c, + varasm.c: Include it. + +Wed May 6 01:09:01 1998 Jeffrey A Law (law@cygnus.com) + Jim Wilson (wilson@cygnus.com) + + * haifa-sched.c (find_rgns): In no_loops case, fix test for leaf + blocks. Check for 1 successor which is the EXIT_BLOCK. + + * haifa-sched.c (find_rgns): Detect unreachable blocks, including + unreachable loops with more than one block. + +Wed May 6 08:22:24 1998 Manfred Hollstein + + * fix-header.c (write_rbrac): Add "abort" to functions which need to + be protected. + +Wed May 6 00:09:36 1998 Jeffrey A Law (law@cygnus.com) + + * Check in merge from gcc2. See ChangeLog.12 for details. + +Tue May 5 14:33:49 1998 Jim Wilson + + * c-common.c (scan_char_table): Separate 's' and 'c'. 'c' does not + accept 'a' flag. 'S' does accept 'a' flag. + (check_format_info): When pedantic, warn for m/C/S/a/A formats, + and `a' flag. + + * elf64.h (MULTILIB_DEFAULTS): Move definition after mips.h include. + +Tue May 5 10:50:39 1998 Andreas Schwab + + * config/m68k/m68k.h: Declare functions from m68k.c used in + macros and machine description. + (ASM_OUTPUT_LONG_DOUBLE): Always use `l' flag in print format for + long values. + (ASM_OUTPUT_FLOAT): Likewise. + (ASM_OUTPUT_FLOAT_OPERAND): Likewise. + +Tue May 5 01:28:12 1998 Jason Merrill + + * tree.def: Add NAMESPACE_DECL. + * dwarfout.c (type_ok_for_scope): Ignore NAMESPACE_DECLs for now. + * dwarf2out.c (push_decl_scope): Likewise. + (scope_die_for): Likewise. + * tree.c (decl_function_context): Use TREE_CODE_CLASS to determine + how to get next context level. + +Tue May 5 01:43:16 1998 Jim Wilson + + * i386.c (output_fix_trunc): Add code to emulate non-popping DImode + case. + +Tue May 5 01:15:06 1998 Jeffrey A Law (law@cygnus.com) + + * h8300.h (ADDITIONAL_REGISTER_NAMES): Add "er" registers. + + * reorg.c (fill_slots_from_thread): Update REG_DEAD/REG_UNUSED notes + for any insns skipped at the start of a block because they were + redundant. + +Mon May 4 20:23:51 1998 Jim Wilson + + * alpha.h (DBX_CONTIN_LENGTH): Decrease to 3000. + +1998-05-04 Ulrich Drepper + + * c-common.c (format_char_info): Add new field hhlen. + (print_char_table, scan_char_table, time_char_table): Initialize + hhlen field appropriately. + (char_format_info): Recognize hh modifier and lookup correct char + table entry. + +Mon May 4 19:15:29 1998 Jim Wilson + + * expr.c (expand_expr, case INDIRECT_REF): Don't optimize string + reference if this is a store. + +Mon May 4 17:25:17 1998 Richard Henderson + + * sparc.c (output_move_quad): Fix typo in mov_by_64 argument. + +Sun May 3 23:57:25 1998 Robert Lipe + + Make UnixWare 7 bootstrap support work with final shipping product. + * configure.in (i[34567]86-*-sysv5): Append, not overwrite, xm_file. + Pick up xm-siglist and xm-alloca. + (xm_defines): Add USG so dbxout will build. + * configure: Regenerate. + +Sun May 3 13:51:34 1998 Richard Henderson + + Support for official SPARC V9 ABI: + * sparc.c (sparc_override_options): Force stack bias off for !arch64. + Care for flag_pcc_struct_return default. + (output_move_quad): Rewrite to move by halves on v9 and in the + proper direction. + (move_quad_direction): New function. + (output_fp_move_quad): Use it to determine the direction of copy. + (function_arg_slotno): Return -1 for FP reg overflow as well. + (function_arg_record_value*): New functions. + (function_arg): Use them. Streamline unprototyped parameter passing. + (function_arg_pass_by_reference): Pass TCmode by reference. + (function_value): New function. + * sparc.h (PTRDIFF_TYPE, SIZE_TYPE): For -pedantic's sake, don't use + long long in 64-bit mode. + (RETURN_IN_MEMORY): v9 returns structs < 32-bytes in regs. + (DEFAULT_PCC_STRUCT_RETURN): Make the default detectable. + (BASE_RETURN_VALUE_REG): Consider complex float types for arch64. + (BASE_OUTGOING_VALUE_REG, BASE_PASSING_ARG_REG): Likewise. + (BASE_INCOMING_ARG_REG): Likewise. + (FUNCTION_VALUE): Call function_value. + (FUNCTION_OUTGOING_VALUE, LIBCALL_VALUE): Likewise. + * sparc.md (movdi_sp32_v9): Disable for arch64. + (movsf, movdf, movtf): Sort all alternatives using fp regs first. + (call_value_address_sp64): Remove register class constraints. + (call_value_symbolic_sp64): Likewise. + (nonlocal_goto): Pass label reg directly to goto_handlers. Constrain + v9 case to 32-bit constants. + (goto_handler_and_restore_v9): Provide a version for arch64. + * sparc/linux64.h (SIZE_TYPE, PTRDIFF_TYPE): Remove private definition. + * sparc/sp64-aout.h (TARGET_DEFAULT): Turn on stack bias. + (CPP_PREDEFINES): New. + * sparc/sp64-elf.h: Likewise. + (PREFERRED_DEBUGGING_TYPE): Dwarf2. + (ASM_OUTPUT_DWARF2_ADDR_CONST): New. + * sparc/sysv4.h (SIZE_TYPE, PTRDIFF_TYPE): Undo svr4.h's changes. + +Sat May 2 17:47:17 1998 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Sat May 2 01:37:29 1998 J"orn Rennecke + + * reload.c (find_reloads): Emit USEs to mark where a pseudo + is reloaded with the MEM of its stack slot. + * reload1.c (cannot_omit_stores): Delete. + (reload): Don't initialize it. + Don't apply avoid_return_reg logic to USEs. + When done, remove USEs that have a REG_EQUAL note on them. + (emit_reload_insns): Handle case where we have inherited a MEM. + (choose_reload_regs): Likewise. + (delete_output_reload): Don't use cannot_omit_stores. + +Thu Apr 30 18:59:03 1998 Jim Wilson + + * Makefile.in (cpp.info, gcc.info): Put -o option before input file. + +Thu Apr 30 16:57:34 1998 Michael Meissner + + * haifa-sched.c (print_{exp,value}): Various changes to make the + debug output easier to read. Also, use only one buffer, and make + sure the buffer we are passed in doesn't overflow. + (safe_concat): Concatenate to a buffer without overflow. + +Thu Apr 30 16:57:34 1998 Kaveh R. Ghazi + + * haifa-sched.c (alloc_{INSN,EXPR}_LIST): Make static to agree + with the prototype. + +Wed Apr 29 21:45:16 1998 J"orn Rennecke + + * sched.c (new_insn_dead_notes): Check if the register was + used in the original instruction. + * haifa-sched.c (new_insn_dead_notes): Likewise. + +Wed Apr 29 13:46:03 1998 Jim Wilson + + * dwarf2out.c (scope_die_for): If could not find proper scope, + check for and handle tagged type with incorrect TYPE_CONTEXT. + +Wed Apr 29 15:34:40 1998 John Carr + + * calls.c (expand_call): Fix recognition of C++ operator new. + + * alias.c (mode_alias_check): Disable type based alias detection. + +Wed Apr 29 15:06:42 1998 Gavin Koch + + * config/mips/elf.h (ASM_OUTPUT_DEF,ASM_WEAKEN_LABEL, + ASM_OUTPUT_WEAK_ALIAS): Define. + * config/mips/elf64.h: Same. + * config/mips/r3900.h (ASM_OUTPUT_DEF,SUPPORTS_WEAK, + ASM_WEAKEN_LABEL): Removed. + +Wed Apr 29 10:53:29 1998 Andreas Schwab + + * calls.c (expand_call): Bump the length limit on the specially + recognized function names to 17. + +Tue Apr 28 17:53:33 1998 Jim Wilson + + * ginclude/stddef.h: Add check for _MACHINE_ANSI_H_ for BSD/OS + when undefining macros at the end. + + * expr.c (expand_builtin, case BUILT_IN_MEMSET): Break if either + val or len has TREE_SIDE_EFFECTS set. + + * sparc.md (mulsidi3): Call const v8plus and v8plus routines. + (mulsidi3_v8plus, const_mulsidi3_v8plus): Delete asterisk from name. + (smuldi3_highpart): Call const v8plus routine. + (smulsi3_highpart_v8plus): Renamed from smulsidi3_highpart_v8plus. + (const_smulsi3_highpart_v8plus): New pattern. + (smulsi3_highpart_sp32): Renamed from smulsidi3_highpart_sp32. + (umulsidi3): Call const v8plus routine. + (umulsi3_highpart): Handle const before v8plus. Call const v8plus + routine. + (umulsi3_highpart_v8plus): Renamed from umulsidi3_highpart_v8plus. + (umulsi3_highpart_sp32): Renamed from umulsidi3_highpart_sp32. + +Tue Apr 28 08:55:26 1998 Michael Meissner + + * m32r.c (*_oper{and|ator}): Change enum arguments and return + values to int, so they can be prototyped even in files that don't + include rtl.h. + ({small,large}_insn_p): Likewise. + (m32r_select_cc_mode): Likewise. + (gen_compare): Likewise. + (function_arg_partial_nregs): Likewise. + (m32r_setup_incoming_varargs): Likewise. + (init_reg_tables): Add prototype. + (m32r_frame_info): Add prolog_size field. + (m32r_compute_frame_size): Calculate the size of the prologue. + (m32r_first_insn_address): Return prologue size. + (m32r_output_function_prologue): Calculate frame size before + printing out information. Print out the prologue size. + + * m32r.h: Prototype all functions in m32r.c. + (FIRST_INSN_ADDRESS): Declare, returning prologue size. + + * m32r.md (bcc functions): Cast enum's to int. + + * m32r.c (conditional_move_operand): Silence a debug message. + ({small,long}_insn): New predicates. + + * m32r.h (TARGET_M32R): New macro. + (PREDICATE_CODES): Rearrange somewhat, add small_insn/long_insn. + (HAIFA_P): Define as 1/0 depending on whether the Haifa scheduler + was selected. + (ISSUE_RATE): Define as 2. + + * m32r.md (insn_size): New attribute. + ({,rev_}branch_insn): Add .s qualifier to branches believed to be + short. + (m32r): New attribute. + + * configure.in (enable_haifa): Switch m32r to Haifa by default. + * configure: Regenerate. + + (Changes from Nick Clifton ) + * m32r.h (EXTRA_CONSTRAINT): Implement 'S' constraint to perfoirm + the equivalent of a negated 'I' constraint. + (PRESERVE_DEATH_INFO_REGNO_P): Define in order to allow peephole + optimization to work. + + * m32r.md (cmp_ne_small_const_insn): Use 'S' constraint rather + than 'I' since the value is negated. + (peephole): Add peephole optimization to cope with optimization of + divide and subtracts of the same operands. + + * m32r.c zero_and_one, emit_cond_move): Add support for MVFC. + * m32r.h: Likewise. + * m32r.md: Likewise. + + * m32r.h (PREDICATE_CODES): Add declaration of machine specific + predicates. + +Tue Apr 28 07:25:53 1998 Manfred Hollstein + + * Makefile.in (libgcc2.ready): Revert last patch (Apr 24). + +Mon Apr 27 18:39:47 1998 Nick Clifton + + * config/arm/thumb.h (GO_IF_LEGITIMATE_ADDRESS): Check against + frame_pointer_rtx not FRAME_POINTER_REGNUM. + +Mon Apr 27 18:36:28 1998 Jim Wilson + + * reg-stack.c: Revert last patch (Apr 20). + (convert_regs): Set insn to PREV_INSN (next) after do while loop. + + * m68k/lb1sf68.asm (Laddsf$3): Fix typos in mcf5200 exg code. + + * loop.c (check_dbra_loop): New locals jump, first_compare, and + compare_and_branch. Call get_condition to set first_compare. + Set compare_and_branch to number of compare/branch instructions. + Replace PREV_INSN (PREV_INSN (loop_end)) with first_compare. + Replace '2' with compare_and_branch. + +Mon Apr 27 15:53:30 1998 Andrew MacLeod + + * cplus-dem.c (demangle_qualified): Replace missing else. + +Mon Apr 27 20:22:08 1998 J"orn Rennecke + + * sh.c (gen_ashift_hi): Don't make SUBREG of a SUBREG. + +Mon Apr 27 18:23:51 1998 J"orn Rennecke + + * sh.c (sh_expand_prologue, sh_expand_epilogue): + If TARGET_DOUBLE_ALIGN, preserve 64 bit stack alignment. + * sh.h (STACK_BOUNDARY): Likewise. + +Mon Apr 27 17:22:48 1998 J"orn Rennecke + + * sh.h (LEGITIMIZE_RELOAD_ADDRESS): Define. + +Mon Apr 27 08:55:23 1998 Michael Meissner + + * system.h (abort): If abort is not defined, and neither is + USE_SYSTEM_ABORT, redefine abort to call fprintf and exit, + reporting the line and filename of the error. + + * .gdbinit: Add breakpoints on exit and fancy_abort. + + * final.c (split_double): Avoid a compiler warning if + BITS_PER_WORD is less than or equal to HOST_BIT_PER_WIDE_INT. + + * rtl.h (JUMP_{CROSS_JUMP,NOOP_MOVES,AFTER_REGSCAN}): New macros + for calling jump_optimize. + + * toplev.c (rest_of_compilation): Call jump_optimize using JUMP_* + macros, rather than 0/1's. + +Sun Apr 26 23:19:10 1998 Richard Henderson + + * alpha.h (CONST_COSTS): Zero is always free. + (RTX_COSTS): Add EV6 costs. Abort if alpha_cpu is unknown. + +Sun Apr 26 15:38:50 1998 Andreas Schwab + + * cplus-dem.c (gnu_special): Fix off-by-one bug when checking the + length in the name of a virtual table. + +Sun Apr 26 01:21:06 1998 Richard Henderson + + * alpha.c (print_operand): Don't add 'v' suffix for ALPHA_FPTM_N. + +Sat Apr 25 22:11:38 1998 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Sat Apr 25 17:17:15 1998 Jeffrey A Law (law@cygnus.com) + + * fold-const.c (fold_convert): Fix typo. + +Sat Apr 25 17:55:54 1998 John Carr + + * alias.c (alias_invariant): New variable. + (record_base_value): New argument INVARIANT. + (memrefs_conflict_p): If a register has an entry in the alias_invariant + array, try substituting that value for the register. + + * rtl.h: Declare record_base_value. + + * loop.c, unroll.c: Update callers of record_base_value. + + * alias.c (find_base_value, find_base_term): SIGN_EXTEND and + ZERO_EXTEND do not affect base values. + +Fri Apr 24 15:57:02 1998 Jeffrey A Law (law@cygnus.com) + + * dbxout.c (dbxout_type): Fix typo. + (dbxout_range_type): Another HOST_WIDE_INT_PRINT_DEC fix. + + * configure.in: Use CC_FOR_BUILD, not BUILD_CC. + +Fri Apr 24 16:11:47 1998 John Carr + + * expr.c (expand_builtin, case MEMSET): Set MEM_IN_STRUCT_P + if the argument is the address of a structure or array. + + * configure.in: Enable Haifa scheduler by default for SPARC. + +Fri Apr 24 20:55:47 1998 J"orn Rennecke + + * cse.c (cse_set_around_loop): Don't do optimization when + new pseudos are created. + +Fri Apr 24 11:00:18 1998 Jeffrey A Law (law@cygnus.com) + + * dbxout.c (dbxout_type_fields): Use HOST_WIDE_INT_PRINT_DEC + appropriately. + (dbxout_type_method_1, dbxout_type): Likewise. + (print_int_cst_octal, print_octal, dbxout_symbol): Likewise. + (dbxout_type): Fix check for when to print a type range in + octal vs decimal. + +Fri Apr 24 16:45:03 1998 J"orn Rennecke + + * (gen_shl_and, in case 1): Fix comparison with mask. + +Fri Apr 24 06:46:40 1998 Nick Clifton + + * config/arm/thumb.h (GO_IF_LEGITIMATE_ADDRESS): Disallow frame + pointer as second register in REG+REG pair. + +Fri Apr 24 09:22:23 1998 Kaveh R. Ghazi + + * c-common.c (check_format_info): Don't check for the 'x' format + character twice, instead check for 'x' and 'X' + +Fri Apr 24 08:02:30 1998 Manfred Hollstein + + * Makefile.in (libgcc2.ready): Add explicit dependency from + $(STMP_FIXPROTO) to ensure all necessary include files have + been created and to guarantee proper parallel builds. + +Fri Apr 24 04:42:35 1998 J"orn Rennecke + + * sh.c (sh_expand_prologue, in !SH3E code): Don't push an extra + register for stdarg functions. + * sh.h (current_function_varargs): Declare. + (FUNCTION_ARG): Ignore NAMED for stdarg functions. + +1998-04-23 Jim Wilson + + * frame.c, libgcc2.c (stdlib.h, unistd.h): Don't include when + inhibit_libc is defined. + + * c-aux-info.c (gen_type): Use DECL_NAME only for TYPE_DECL. + +Thu Apr 23 19:09:33 1998 Jim Wilson + + * profile.c (tablejump_entry_p): New function. + (branch_prob): Add code to recognize MIPS tablejump entry branch. + Use tablejump_entry_p in MIPS and HPPA tablejump checking code. + +Thu Apr 23 15:01:13 1998 Nick Clifton + + * config/arm/arm.c (find_barrier): Return as soon as a barrier is + found, rather than at end of the loop, after the insn has been + changed. + +Thu Apr 23 20:21:06 1998 J"orn Rennecke + + * sh.c (gen_ashift_hi): Implement right shifts via gen_ashift. + * sh.md (ashrhi3_k, lshrhi3_k, lshrhi3_m, lshrhi3, lshrhi3+1): Delete. + +Wed Apr 22 17:07:35 1998 Michael Meissner + + * loop.c (note_addr_stored): Correct function to take 2 arguments, + instead of 1. + + * rtl.def (MATCH_INSN2): Add new matching pattern. + * genrecog.c (add_to_sequence): Support MATCH_INSN2. + +Wed Apr 22 15:52:22 1998 John Carr + + * emit-rtl.c (gen_highpart): The high part of a CONST_INT is not zero + if HOST_BITS_PER_WIDE_INT is larger than BITS_PER_WORD. + + * final.c (split_double): Sign extend both halves of a split CONST_INT. + +Wed Apr 22 10:42:45 1998 Jeffrey A Law (law@cygnus.com) + + * mips.c (compute_frame_size): Change only argument to a HOST_WIDE_INT. + +Wed Apr 22 10:53:49 1998 Andrew MacLeod + + * cplus-dem.c (struct work stuff): Add field for B and K mangle codes. + (cplus_demangle_opname): Call mop_up_squangle. + (cplus_demangle): Initialize squangle info, then call + internal_cplus_demangle. (Most code moved there as well) + (internal_cplus_demangle): New function, performs most of what use + to be done in cplus_demangle, but is only called with this file. + (squangle_mop_up): New function to clean up B and K code data. + (mop_up): Set pointers to NULL after freeing. + (demangle_signature, demangle_template, demangle_class): Add + switch elements to handle K and B codes. + (demangle_prefix, gnu_special, demangle_qualified): Add + code to handle K and B codes. + (do_type, demangle_fund_type): Handle B and K codes. + (remember_Ktype): New function to store K info. + (register_Btype, remember_Btype): New functions for B codes. + (forget_B_and_K_types): New function to destroy B and K info. + +1998-04-21 Jim Wilson + + * stmt.c (check_seenlabel): When search for line number note for + warning, handle case where there is no such note. + +Tue Apr 21 20:48:37 1998 John Carr + + * genemit.c (gen_exp): Allow machine description to set mode of + MATCH_OP_DUP. + +Tue Apr 21 16:36:01 1998 John Carr + + * alias.c (mode_alias_check): New function. + (true_dependence, anti_dependence, output_dependence): Call + mode_alias_check. + +Tue Apr 21 12:05:32 1998 Jeffrey A Law (law@cygnus.com) + + * mips.h (STACK_BOUNDARY): Allow specific targets to override. + (MIPS_STACK_ALIGN): Similarly. + + * c-common.c (type_for_mode): Handle TI types. + * c-decl.c (intTI_type_node, unsigned_int_TI_type_node): Define. + (init_decl_processing): Handle TI types. + * c-tree.h (intTI_type_node, unsigned_int_TI_type_node): Declare. + + * mips.c (block_move_loop): Test Pmode == DImode instead of + TARGET_MIPS64. + (expand_block_move, save_restore_insns): Likewise. + (function_prologue, mips_expand_prologue): Likewise. + (mips_expand_epilogue): Likewise. + * mips.h (POINTER_SIZE): Allow specific targets to override. + (Pmode): Allow specific targets to override. + (FUNCTION_PROFILER): Test Pmode == DImode instead of TARGET_MIPS64. + (POINTER_BOUNDARY, FUNCTION_MODE): Likewise. + (TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE): Likewise. + (TRAMPOLINE_ALIGNMENT, INITIALIZE_TRAMPOLINE): Likewise. + (CASE_VECTOR_MODE, ASM_OUTPUT_ADDR_VEC_ELT): Likewise. + (ASM_OUTPUT_ADDR_DIFF_ELT, SIZE_TYPE, PTRDIFF_TYPE): Likewise. + * mips.md (indirect, tablejump & casesi support): Test for + Pmode == DImode instead of TARGET_MIPS64. + (call patterns): Likewise. + +Tue Apr 21 09:43:55 1998 Kaveh R. Ghazi + + * objc/sendmsg.c: Define gen_rtx_MEM() to 1, as is already done + for gen_rtx(MEM, ...). + +Tue Apr 21 02:15:36 1998 Richard Henderson + + * sparc.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Rewrite + to not be so gross, and to properly function with PIC. + +Mon Apr 20 20:44:25 1998 Jim Wilson + + * frame.c (heapsort): Rename to frame_heapsort. + + * gcc.c (do_spec_1, case '['): Move flag out of loop and initialize it. + +Mon Apr 20 12:43:09 1998 Doug Evans + + * flow.c (sbitmap_vector_alloc): Ensure sbitmaps properly aligned. + +Mon Apr 20 15:04:14 1998 John Wehle (john@feith.com) + + * i386.md (movsf_push, movdf_push, movxf_push): Allow memory + operands during and after reload. + +Mon Apr 20 22:37:50 1998 J"orn Rennecke + + * final.c (shorten_branches, init_insn_lengths): Move code + to free label_align, uid_shuid, insn_lengths, insn_addresses + and uid_align from the former function into the latter one; + Add code to clear these variables. + * sh.h (label_align): Remove declaration. + +Mon Apr 20 14:48:29 1998 Michael Meissner + + * gcc.c (lang_specific_driver): Declare prototype properly so + fatal can be passed to it without error. + + * configure.in (AC_CHECK_FUNCS): Check for strchr and strrchr. + * configure: Regenerate. + * config.in: Add #undef's for strchr and strrchr. + + * protoize.c (toplevel): If we have rindex, but not strrchr, map + rindex to strrchr. + (file_could_be_converted): Use strrchr, not rindex since rindex is + not defined on Linux systems when _POSIX_SOURCE is defined. + (file_normally_convertible): Likewise. + (process_aux_info_file): Likewise. + (main): Likewise. + + * rs6000.md (mov{sf,df} define_splits): When splitting a move of + a constant to an integer register, don't split the insns that do + the simple AND and OR operations, rather just split each word, and + let the normal movsi define split handle it further. + +Mon Apr 20 18:19:40 1998 J"orn Rennecke + + * sh.c (find_barrier): Fix bug in ADDR_DIFF_VEC handling. + (split_branches): Call init_insn_lengths. + +Mon Apr 20 07:37:49 1998 Michael Meissner + + * i386.c: Include expr.h to get the change_address prototype + declared. + +Mon Apr 20 01:00:05 1998 H.J. Lu (hjl@gnu.org) + + * reg-stack.c (subst_asm_stack_regs): Change to return the last + new insn generated by this function. + (subst_stack_regs): Likewise. + (convert_regs): Record the last newly generated insn and use + it for change_stack () instead of INSN. + +Sun Apr 19 15:41:24 1998 Manfred Hollstein + + * fix-header.c (enum special_file): Undefine enumerators if they + are already defined by include files. + * fixproto (rel_source_file in unistd.h stdlib.h): Prefix file protection + macro with '__' to not pollute user namespace. + +Sun Apr 19 02:42:06 1998 Richard Henderson + + * haifa-sched.c (queue_to_ready): Fix typo in prototype. + +Sat Apr 18 23:52:35 1998 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Sat Apr 18 18:30:22 1998 Jim Wilson + + * i386.md (fix_truncsfdi2+[123]): Add + to operand 1 constraints. + + * i386.h (CPP_CPU_DEFAULT): Renamed to CPP_CPU_DEFAULT_SPEC. + Add missing -Dpentium* options. + (CPP_CPU_SPEC): Delete redundant definition. Include cpp_cpu_default + instead of CPP_CPU_DEFAULT. + (EXTRA_SPECS): Add entry for cpp_cpu_default. + +Sat Apr 18 19:06:59 1998 David Edelsohn + + * rs6000.md (floatsidf2_loadaddr): rs6000_fpmem_offset will be + negative in a stackless frame. + * rs6000.c (rs6000_stack_info): Don't include fixed-size link area + in stackless frame size. Support 64-bit stackless frame size. + Combine fpmem offset calculations and don't add total_size to + offset if not pushing a stack frame. + +Sat Apr 18 15:41:16 1998 Jim Wilson + + * regmove.c (fixup_match_1): In three places, in flag_exceptions + check, change p to q. + +Sat Apr 18 15:30:49 1998 Jim Wilson + + * gcc.c (lang_specific_driver): Add new parm type to prototype. + (added_libraries): New file scope static variable. + (process_command): Initialize added_libraries. Pass it to + lang_specific_driver. + (main): Use added_libraries in check for no input files. + +Sat Apr 18 01:23:11 1998 John Carr + + * sparc.c, sparc.h, sparc.md, sol2.h: Many changes related to V9 + code generation. Use 64 bit instructions in 32 bit mode when + possible. Use V9 return instruction. UltraSPARC optimizations. + + * sparc.h: Change gen_rtx (CODE to gen_rtx_CODE (. + +Fri Apr 17 22:38:17 1998 Jeffrey A Law (law@cygnus.com) + + * global.c (global_alloc): Don't pass HARD_CONST (0) to find_reg, + just pass zero. That will work regardless of the size of HARD_REG_SET. + + * libgcc2.c (__floatdisf): Fix a couple typos. + +Fri Apr 17 17:28:26 1998 Jim Wilson + + * Makefile.in (mostlyclean): Delete *.mach and *.bp files. + +Fri Apr 17 16:35:35 1998 Greg McGary + + * emit-rtl.c (gen_highpart): Initialize `word' properly for pseudo. + +Fri Apr 17 14:30:37 1998 John Carr + + * emit-rtl.c (operand_subword_force): If a register can not be + accessed by words, copy it to a pseudo register. + +Fri Apr 17 14:30:37 1998 Jim Wilson + + * rs6000/vxppc.h (CPP_SPEC): Add support for mrelocatable*. + +Fri Apr 17 17:01:25 1998 Michael Meissner + + * tree.h (mark_seen_cases): Delete declaration. + +Fri Apr 17 13:32:20 1998 Jeffrey A Law (law@cygnus.com) + + * stmt.c (mark_seen_cases): Make static and add prototype. + +Fri Apr 17 11:21:43 1998 Kaveh R. Ghazi + + * frame.c: Include stdlib.h and unistd.h to possibly get various + function prototypes. The fixproto script guarantees these header + files exist on the target system. + * libgcc2.c: Likewise. + + * gthr-single.h (__gthread_mutex_lock, __gthread_mutex_trylock, + __gthread_mutex_unlock): Add __attribute__ ((__unused__)) to the + function parameters. + * libgcc2.c (__udiv_w_sdiv): Likewise. + +Thu Apr 16 22:41:02 1998 Jeffrey A Law (law@cygnus.com) + + * varasm.c (asm_output_bss): Add prototype. + (asm_output_aligned_bss): Likewise. + + * unroll.c (verify_addresses): Add prototype. + + * toplev.c: Add many prototypes. Too many to mention here. + + * stmt.c (check_seenlabel): Add prototype. + + * rtlanal.c (reg_set_p_1): Add prototype. + (reg_set_last_1): Likewise. + + * reorg.c (find_dead_or_set_registers): Add prototype. + + * regmove (try_auto_increment): Add prototype. + + * reg-stack.c (pop_stack): Add prototype. + + * recog.c (validate_replace_rtx_1): Add prototype. + (find_constant_term_loc): Likewise. + + * loop.c (regs_patch_p): Add prototype. + (add_label_notes, count_nonfixed_reads): Likewise. + (find_single_use_in_loop): Likewise. + (express_from): Surround prototype with #ifdef. + (giv_sort): Similarly. + + * jump.c (mark_modified_reg): Add prototype. + + * haifa-sched.c (is_prisky): Add prototype. + (queue_to_ready): Likewise. + + * genextract.c (gen_insn): Add prototype. + + * genemit.c (max_operand_1): Add prototype. + (max_operand_vec, print_code, gen_exp, gen_insn): Likewise. + (gen_expand, gen_explit, output_add_clobbers): Likewise. + (output_init_mov_optab): Likewise. + + * genattrtab.c (attr_hash_add_rtx): Add prototype. + (attr_hash_add_string, write_length_unit_log): Likewise. + + * genattr.c (init_range): Add prototype. + + * combine.c (sets_function_arg_p): Add prototype. + + * expr.c (store_constructor_field): Add prototype. + (get_memory_usage_from_modifier): Likewise. + + * expmed.c (synth_mult): Add prototype. + (choose_multiplier, invert_mod2n): Likewise. + + * except.c (push_eh_entry): Add prototype. + (pop_eh_entry, enqueue_eh_entry, dequeu_eh_entry): Likewise. + (call_get_eh_context, start_dynamic_cleanup): Likewise. + (start_dynamic_handler, can_throw): Likewise. + (output_exception_table_entry, scan_region): Likewise. + (eh_regs, set_insn_eh_region): Likewise. + + * dwarfout.c (decl_class_context): Add prototype. + (output_inheritance_die, type_ok_for_scope): Likewise. + + * c-lex.c (skip_white_space_on_line): Add prototype. + + * alias.c (record_set): Add prototype. + (find_base_term, base_alias_check): Likewise. + + * function.c (assign_outer_stack_local): Make static and add prototype. + + * haifa-sched.c (build_control_flow): Accept raw data as inputs + instead of computing it locally. Callers changed. + (find_rgns): Several new arguments. Callers changed. + Generally clean up and comment better. Use dominators to + identify reducible loops. Convert some flag arrays to bitmaps. + Convert most of the code to work on pred/succ lists instead of + an edge table. Add comments for future improvements. + (schedule_insns): Allocate temporary tables for flow data, call + routines to compute flow data and pass it along to children as + arguments. + (debug_control_flow): Delete. Use dump_bb_data instead. + + * basic-block.h (compute_dominators): Declare. + + * flow.c (dump_sbitmap, dump_sbitmap_vector): New debugging + functions. + * basic-block.h: Declare them. + +Thu Apr 16 13:45:51 1998 Jim Wilson + + * reg-stack.c (constrain_asm_operands): Set n_alternatives to zero if + no operands. + +Wed Apr 15 11:33:09 1998 Alexandre Petit-Bianco + + * tree.c (build_expr_wfl): Use NULL_TREE if the file name is NULL. + Propagate TREE_SIDE_EFFECTS and TREE_TYPE iff the encapsulated + node is non NULL. Cache last file name and file name identifier node. + +1998-04-15 Mark Mitchell + + * c-common.c (declare_hidden_char_array): Use TYPE_DOMAIN to get + the length of an array, not TREE_TYPE. + +Wed Apr 15 15:31:34 1998 Jeffrey A Law (law@cygnus.com) + + * flow.c (sbitmap_union_of_successors): New function. + * basic-block.h (sbitmap_union_of_successors): Declare it. + +Wed Apr 15 12:38:03 1998 Jim Wilson + + * configure.in (gnu_ld): Rename to gnu_ld_flag before main loop. + Set gnu_ld to gnu_ld_flag inside main loop. + (gas): Likewise. + +Wed Apr 15 14:50:05 1998 Dave Brolley + + * toplev.c (compile_file): Call init_parse using new interface. + (init_lex): Remove declaration. + + * c-lex.c (init_parse): Now returns char* containing filename. + +Wed Apr 15 12:37:10 1998 Jeffrey A Law (law@cygnus.com) + + * pa.h (LEGITIMIZE_RELOAD_ADDRESS): Do nothing if not optimizing. + +Wed Apr 15 12:10:18 1998 Michael Meissner + + * Makefile.in (gen{config,flags,codes,emit}): Link in host print-rtl.o. + (gen{extract,peep,opinit,output}): Likewise. + + * gen{attr,codes,config,emit,output}.c (insn_attr_name): Provide a + global definition so print-rtl.o can be linked in. + * gen{peep,recog}.c (insn_attr_name): Likewise. + +Tue Apr 14 07:30:57 1998 K. Richard Pixley + + * fixincludes: Discard empty C++ comments, as found in sys/time.h + on hpux-11.0. + +Wed Apr 15 10:47:21 1998 Andreas Schwab + + * config/m68k/m68k.md (adddi3, subdi3): Optimize for constant + operand. + +Wed Apr 15 01:21:21 1998 Jeffrey A Law (law@cygnus.com) + + * emit-rtl.c (operand_subword): Rework slightly to avoid + bogus warning from previous change. + +Tue Apr 14 23:39:13 1998 Richard Henderson + + * alpha.md: Revert Oct 27 change, as it is superseded by Kenner's + Nov 8 find_replacement change. Move decls of get_unaligned_address + * alpha.h: ... here. + +Tue Apr 14 22:00:39 1998 John Carr + + * function.c (assign_parms): Initialize unsignedp before passing + its pointer to promote_mode. + + * genattrtab.c (check_attr_test): Handle MATCH_INSN like MATCH_OPERAND. + (write_test_expr): Allow MATCH_INSN. + +Tue Apr 14 21:57:57 1998 Paul Eggert + + * install.texi: Update section on warnings that can be safely ignored. + +Tue Apr 14 14:55:16 1998 Jim Wilson + + * mips.md (reload_outdi): Change the scratch mode from DImode to + TImode. New variable scratch, used instead of operand[2] in template. + Add code for MIPS16 HILO_REGNUM case where output reg is not M16_REG_P. + +Tue Apr 14 16:19:03 1998 Michael Meissner + + * expr.c (MOVE_RATIO): Set to 3 if optimizing for space. + +Tue Apr 14 11:31:28 1998 Krister Walfridsson + + * i386/bsd386.h (ASM_OUTPUT_ALIGN): Redefine. + +Tue Apr 14 09:02:32 1998 Jeffrey A Law (law@cygnus.com) + + * svr4.h (ASM_DECLARE_OBJECT_NAME): Use HOST_WIDE_INT_PRINT_DEC. + (ASM_FINISH_DECLARE_OBJECT): Likewise. + + * Idea and part of the patch from HJ. + * Makefile.in: auto-host.h renamed from auto-config.h. All references + changed. + (distclean): Remove auto-build.h too. + * configure.in: Rename host autoconf generated file to auto-host.h. + If host != build, then run autoconf to generate auto-build.h for + the build machine and include it in build_xm_files. + Check for wait.h and sys/wait.h. + + * combine.c (simplify_rtx, case TRUNCATE): Respect value of + TRULY_NOOP_TRUNCATION. + +Mon Apr 13 11:31:49 1998 Jason Merrill + + * tree.h (BINFO_OFFSET_ZEROP): Use integer_zerop. + +Sun Apr 12 20:55:32 1998 Catherine Moore + + * invoke.texi (ld options): Include memset requirements + for options -nodstdlib and -nodefaultlibs. + +1998-04-12 Paul Eggert + + This change is from an idea suggested by Arthur David Olson. + + * c-common.c (decl_attributes, record_function_format, + check_format_info, init_function_format_info): + Add support for strftime format checking. + (enum format_type): New type. + (record_function_format): Now static, and takes value of type + enum format_type instead of int. + (time_char_table): New constant. + (struct function_format_info): format_type member renamed from is_scan. + (check_format_info): Use `warning' rather than sprintf followed by + `warning', to avoid mishandling `%' in warnings. + Change `pedwarn' to `warning', since these warnings do not necessarily + mean the program does not conform to the C Standard, as the code + need not be executed. + + * c-tree.h (record_function_format): Remove decl; no longer extern. + + * extend.texi: Add documentation for strftime format checking. + +Sun Apr 12 20:23:03 1998 Jeffrey A Law (law@cygnus.com) + + * mips/ecoffl.h: Do not include mips.h. + * mips/elf.h: Likewise. + + * configure.in (mips-*-ecoff): Do not mention mips/mips.h in tm_files. + * mips/ecoff.h: Include "mips/mips.h". + +Sat Apr 11 22:42:54 1998 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Sat Apr 11 01:24:28 1998 Jeffrey A Law (law@cygnus.com) + + * cse.c (count_reg_usage): Correctly handle REG_NONNEG notes. + (delete_trivially_dead_insns): Renamed from delete_dead_from_cse. + * toplev.c (rest_of_compilation): Call delete_trivially_dead_insns instead of delete_dead_from_cse. Also call delete_trivially_dead_insns + between loop optimization passes. + * rtl.h: Updated appropriately. + +Fri Apr 10 22:28:32 1998 Jeffrey A Law (law@cygnus.com) + + Reinstall this patch from Jason. + * function.c (push_function_context_to): Don't call init_emit. + +Fri Apr 10 13:40:20 1998 Nick Clifton + + * rtl.c (read_skip_spaces): Prevent infinite loops upon + encountering unterminated comments. + +Fri Apr 10 10:43:41 1998 Jeffrey A Law (law@cygnus.com) + + * emit-rtl.c (operand_subword): Properly handle CONST_INTs for + 64x32 cross builds. + + * configure.in: Handle --with-fast-fixincludes. + (fixincludes): If --with-fast-fixincludes, then use a different + fixincludes program by default. + * Makefile.in (fixinc.sh): New rule. + +Fri Apr 10 00:36:31 1998 H.J. Lu (hjl@gnu.org) + + * i386.md (movqi+1): Handle invalid QI register. + (movsf_push-1): Likewise. + +Thu Apr 9 16:53:59 1998 Nick Clifton + + * config/m32r/m32r.c: call_address_operand(): Only accept symbolic + addresses. + symbolic_memort_operand(), call32_operand(), int8_operand(), + int16_operand(), uint24_operand(), reg_or_int8_operand(): Removed. + Not used. + uint16_operand(): Made static. + +Thu Apr 9 01:43:04 1998 Jeffrey A Law (law@cygnus.com) + + * calls.c (expand_call): Fix typo. + +Thu Apr 9 00:18:44 1998 Dave Brolley (brolley@cygnus.com) + + * c-lex.c (finput): New global. + (init_parse): Always included. Handle !USE_CPPLIB using + code originally in compile_file. + (finish_parse): Update for CPPLIB. + * toplev.c (init_parse, finish_parse): Declare. + (finput): Delete variable. Now in front-ends. + (compile_file): Remove code which is now handled by init_parse + which is unconditionally called. Similarly for finish_parse. + +Wed Apr 8 23:13:50 1998 Gavin Koch + + * config/mips/r3900.h (ASM_OUTPUT_DEF,SUPPORTS_WEAK, + ASM_WEAKEN_LABEL): Add. + +Wed Apr 8 18:21:30 1998 Richard Henderson + + * alpha/crtbegin.asm, alpha/crtend.asm, alpha/t-crtb: New files. + * configure.in (alpha-*-linux*): Use them. + +Fri Apr 3 17:02:13 1998 Alexandre Petit-Bianco + + * tree.def (EXPR_WITH_FILE_LOCATION): New tree node definition. + * tree.h (EXPR_WFL_{NODE,FILENAME,FILENAME_NODE,LINENO, + COLNO,LINECOL,SET_LINECOL,EMIT_LINE_NOTE}): New macros. + (build_expr_wfl): New prototype declaration. + * tree.c (build_expr_wfl): New function, to build + EXPR_WITH_FILE_LOCATION nodes. + (copy_node): Don't zero TREE_CHAIN if copying a + EXPR_WITH_FILE_LOCATION node. + * print-tree.c (print_node): Handle EXPR_WITH_FILE_LOCATION. + * expr.c (expand_expr): Handle EXPR_WITH_FILE_LOCATION. + +Wed Apr 8 12:51:19 1998 Jeffrey A Law (law@cygnus.com) + + * configure.in (v850): Use t-v850. + (ix86-wrs-vxworks): Recognize 786 just like other x86 configurations. + + * protoize.c (creat, read, write): Do not declare. + + * jump.c (mark_jump_label): Record REG_LABEL notes for insns which + refer to the CODE_LABEL before a dispatch table. + + * invoke.texi: Add ARC options. + + * gcc.c (process_command): Improve error message for -o with + either -c or -S. + + * i386/x-cygwin32 (CLIB): Link in advapi32. + + * alpha.h (ASM_IDENTIFY_GCC): Define to nothing. + (ASM_IDENTIFY_LANGUAGE): Likewise. + + * i386.md (movqi recognizer): Don't perfom byte increment into + a NON_QI_REG_P. + + * configure.in (x86-dg-dgux): Run fixinc.dgux. + + * i370.h: Fix typo in GEN_INT changes. + + * bitmap.c (bitmap_element_allocate): Use "void" for arglist instead + of an empty arglist in prototype. + + * Makefile.in: Remove bytecode crud that crept back in after the + gcc2 merge. + +1998-04-08 Brendan Kehoe + + * c-lex.h (is_class_name): Fix arg type to be tree, not void. + (make_pointer_declarator, reinit_parse_for_function): Fix typo. + +Wed Apr 8 06:16:45 1998 Richard Earnshaw (rearnsha@arm.com) + + * arm.h (LEGITIMIZE_RELOAD_ADDRESS): Define. + +Wed Apr 8 00:44:18 1998 Bernd Schmidt (crux@pool.informatik.rwth-aachen.de> + + * c-lex.c (is_class_name): Delete declaration. + (whitespace_cr): Make static and add prototype. + * c-lex.h (make_pointer_declarator, reinit_parse_for_function, + yylex, get_directive_line): Turn declarations into prototypes. + (position_after_whitespace, check_newline, yyerror,, is_class_name, + forget_protocol_qualifiers, remember_protocol_qualifiers): Add + prototypes. + * genattr.c (extend_range, write_upcase, gen_attr, write_units): Add + prototypes. + * gencodes.c (gen_insn): Add prototype. + * genconfig.c (walk_insn, gen_insn, gen_expand, gen_split, + gen_peephole): Add prototypes. + * genflags.c (num_operands, gen_proto, gen_nonproto, gen_insn): Add + prototypes. + * gengenrtl.c (type_from_format, accessor_from_format, special_rtx, + special_format, find_formats, gendecl, genmacro, gendef, genlegend, + genheader, gencode): Add prototypes. + * genopinit.c (gen_insn): Add prototype. + * genoutput.c (output_prologue, output_epilogue, scan_operands, + process_template, validate_insn_alternatives, gen_insn, gen_peephole, + gen_expand, gen_split, n_occurrences): Add prototypes. + * genpeep.c (gen_peephole): Add prototype. + * loop.c (find_and_verify_loops, mark_loop_jump, prescan_loop, + reg_in_basic_block_p, consec_sets_invariant_p, libcall_other_reg, + labels_in_range_p, count_loop_regs_set, note_addr_stored, + loop_reg_used_before_p, scan_loop, replace_call_address, + skip_consec_insns, libcall_benefit, ignore_some_movables, + force_movables, combine_movables, rtx_equal_for_loop_p, move_movables, + strength_reduce, valid_initial_value_p, find_mem_givs, record_biv, + check_final_value, record_giv, update_giv_derive, basic_induction_var, + simplify_giv_expr, general_induction_var, consec_sets_giv, + check_dbra_loop, express_from, combine_givs_p, combine_givs, + product_cheap_p, maybe_eliminate_biv, maybe_eliminate_biv_1, + last_use_this_basic_block, record_initial, update_reg_last_use, + iteration_info, analyze_loop_iterations, insert_bct, + instrument_loop_bct, indirect_jump_in_function_p): Turn declarations + into prototypes. + +Tue Apr 7 21:48:52 1998 Jeffrey A Law (law@cygnus.com) + + * pa.h (LEGITIMIZE_RELOAD_ADDRESS): Define. + +1998-04-07 Ken Raeburn + + * config/mips/mips.c (siginfo): Deleted. + (override_options): Don't install SIGINFO signal handler. + +Tue Apr 7 11:58:04 1998 Jim Wilson + + * loop.c (check_dbra_loop): When normalize comparison_val, add check + to verify it is non-negative. + +Tue Apr 7 02:01:47 1998 Richard Henderson + + * alpha.c (alpha_expand_block_move): Correctly collect block offsets. + (alpha_expand_block_clear): Likewise. + +Mon Apr 6 23:36:01 1998 Richard Henderson + + * tree.h (sizetype_tab): Fix previous change for K&R. + +Mon Apr 6 22:23:29 1998 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Mon Apr 6 23:16:10 1998 Richard Earnshaw (rearnsha@arm.com) + + * configure.in (sparc-*-solaris2*): Add xm-siglist.h to xm_file. + Add USG and POSIX to xm_defines. + +Mon Apr 6 21:49:57 1998 Bob Manson + + * gcc.c: Add linker spec. + (link_command_spec): Use %(linker) instead of ld. + (main): If collect2 is requested as the linker, see if it exists; + if not, use ld instead. + + * Makefile.in (USE_COLLECT2): It's named collect2 now, not ld. + (ld): Deleted. + (install-collect2): Install as collect2, not ld. + + * configure.in(will_use_collect2): It's named collect2 now. + + * collect2: Remove checks to see if we were invoked recursively. + (collect_execute): Use _spawnvp under cygwin32. + +Mon Apr 6 17:23:41 1998 Jim Wilson + + * haifa-sched.c (build_control_flow): Set unreachable for block whose + only predecessor is itself. + +Mon Apr 6 16:08:04 1998 Kaveh R. Ghazi + + * c-parse.in: Include system.h, and remove stuff now made redundant. + * cccp.c: Likewise. + * cexp.y: Likewise. + * protoize.c: Likewise. Properly check for cpp stringification. + + * Makefile.in (c-parse.o, cccp.o, cexp.o, protoize.o, unprotoize.o): + Depend on system.h. + + * objc/Make-lang.in (objc-parse.o): Likewise. + +Mon Apr 6 14:59:58 1998 Kaveh R. Ghazi + + * gansidecl.h: Check if compiler supports __attribute__. Provide + definitions for ATTRIBUTE_UNUSED and ATTRIBUTE_PRINTF using + __attribute__ when its available. Also provide definitions for + ATTRIBUTE_PRINTF_1, ATTRIBUTE_PRINTF_2 and ATTRIBUTE_PRINTF_3 in + terms of ATTRIBUTE_PRINTF. + + * genoutput.c (process_template): Use ATTRIBUTE_UNUSED in place + of __attribute__. + +Mon Apr 6 07:17:52 1998 Catherine Moore + + * combine.c (can_combine_p): Include successor in volatile test. + +Mon Apr 6 14:16:33 1998 J"orn Rennecke + + * sh.h (CASE_VECTOR_SHORTEN_MODE): Fix logic when to set + offset_unsigned. + +Mon Apr 6 02:03:29 1998 Jeffrey A Law (law@cygnus.com) + + * objc/objc-act.c (encode_aggregate_within): Avoid GNU extensions + in prototype and definition. + +Mon Apr 6 00:48:56 1998 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Mon Apr 6 00:08:50 1998 Richard Henderson + + * alpha.c (alpha_expand_block_clear): Add missing offset arg to + alpha_expand_unaligned_store_words. + +Sun Apr 5 21:31:24 1998 John Wehle (john@feith.com) + + * i386.md (movsf_push, movsf_mem): Remove. + (movsf_push): Rename from movsf_push_nomove and move in front of + movsf. Use nonmemory_operand predicate and don't bother checking + TARGET_MOVE. + (movsf_push_memory): New pattern. + (movsf): Don't bother checking for push_operand. If TARGET_MOVE and + both operands refer to memory then force operand[1] into a register. + (movsf_normal): Change to unnamed pattern. + Likewise for movdf, movxf, and friends. + +Sun Apr 5 18:45:51 1998 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Sun Apr 5 16:31:10 1998 Richard Henderson + + * configure.in (alpha-dec-osf*): Match osf1.3 correctly. + +Sun Apr 5 16:53:37 1998 Don Bowman + + * configure.in (mips-wrs-vxworks): New target. + +Sat Apr 4 23:34:32 1998 Jeff Law (law@cygnus.com) + + * expmed.c (synth_mult): The value -1, has no zeros, so it can + never have the form ...011. + + * version.c: Bump for snapshot. + +Sat Apr 4 20:16:46 1998 Richard Henderson + + * i386.c (asm_output_function_prefix, load_pic_register): + Use ASM_GENERATE_INTERNAL_LABEL properly. + (output_pic_addr_const): Recognize %X to suppress any PIC sym suffix. + (print_operand): Ignore it. + (load_pic_register): Use it for the got load call. + * i386.md (prologue_set_got, prologue_get_pc): Likewise. + (prologue_get_pc_and_set_got): Likewise. + * i386.h: Update print_operand docs. + +Sat Apr 4 19:08:37 1998 Richard Henderson + + * i386.md (ffssi, ffshi): Rewrite as define_expands. + (ffssi_1, ffshi_1): New (unspec [] 5) support patterns. + * i386.c (notice_update_cc): Recognize unspec 5. + +Sat Apr 4 18:07:16 1998 David Mosberger-Tang (davidm@mostang.com) + + * alpha.h (PRINT_OPERAND_PUNCT_VALID_P): Accept '(' for s/sv/svi. + * alpha.c (print_operand): Handle it. + * alpha.md (fix_truncsfdi2): Use it. Add earlyclobber pattern + for ALPHA_TP_INSN. + (fix_truncdfdi2): Likewise. + +Sat Apr 4 17:42:05 1998 Richard Henderson + + * tree.h (sizetype_tab[2], sbitsizetype, ubitsizetype): Merge all + of these into a single struct, with additional [us]sizetype entries. + * stor-layout.c (set_sizetype): Initialize [us]sizetype. + * fold-const.c (size_int_wide): Don't rely on sizetype_tab being + an array. + +Sat Apr 4 17:04:41 1998 Richard Henderson + + * configure.in (alpha-*-linux-*): Undo tm_file changes from gcc2 merge. + +Sat Apr 4 13:50:01 1998 Richard Henderson + + * haifa-sched.c (split_block_insns): Don't suppress insn splitting + on subsequent passes. + + * alpha.c (hard_fp_register_operand): New function. + * alpha.h (PREDICATE_CODES): Add it. + * alpha.md (extendsidi2): Kill bogus f<-f cvtql+cvtlq case. Add an + f<-m case and accompanying define_split. + (trapb): Use a unique unspec_volatile number. + +Sat Apr 4 13:32:08 1998 Richard Henderson + + * configure.in (alpha-*-linux-gnu*): Undo Feb 3 change brought in + from gcc2 merge. + +Sat Apr 4 10:23:41 1998 Jeffrey A Law (law@cygnus.com) + + * Check in merge from gcc2. See ChangeLog.11 and ChangeLog.12 + for details. + + * haifa-sched.c: Mirror recent changes from gcc2. + +Fri Apr 3 00:17:01 1998 Jeffrey A Law (law@cygnus.com) + + * Makefile.in (insn*.o): Depend on system.h. + + * pa.c (output_global_address): Initialize base. + * pa.h (GO_IF_LEGITIMATE_ADDRESS): Initialize index. + +1998-04-03 Mike Stump + + * gthr.h: Support systems that don't have weak, but have threads. + * configure.in (*wrs-vxworks*): Use VxWorks threads by default. + * gthr-vxworks.h: New file. + * objc/thr-vxworks.h: Dummy file from thr-single.c for now. + +Thu Apr 2 18:00:52 1998 Jim Wilson + + * i386.md (movqi+1): Change alternative 1 from *r/r to *r/*rn. + +1998-04-02 Vladimir N. Makarov + + * ginclude/va-i960.h (va_end): Change void * to void. + +Thu Apr 2 13:51:10 1998 Kaveh R. Ghazi + + * Makefile.in (choose-temp.o): Depend on system.h. + + * choose-temp.c: Include system.h when IN_GCC. + +Thu Apr 2 02:37:07 1998 Joern Rennecke (amylaar@cygnus.co.uk) + Richard Henderson + + * reload.c (find_reloads_address): Try LEGITIMIZE_RELOAD_ADDRESS. + (move_replacements): New function. + * reload.h: Prototype it. + + * alpha.h (LEGITIMIZE_RELOAD_ADDRESS): New definition. + +Thu Apr 2 01:01:34 1998 Richard Henderson + + * configure (alpha-*-linuxecoff, alpha-*-linux-gnulibc1): + Run fixincludes. + + * emit-rtl.c (gen_lowpart_common): Skip count by HARD_REGNO_NREGS. + (gen_highpart): Likewise. + * final.c (alter_subreg): Allow the target to hook by-mode subreg + hard register number changes. + +Wed Apr 1 22:26:22 1998 Jeffrey A Law (law@cygnus.com) + + * fold-const.c optimze_bit_field_compare): Initialize rnbitpos, + rnbitsize, rnmode and rinner. + (make_range): Initialize type. + (fold): Initialize arg0, arg1 and varop. + + * function.c (instantiate_virtual_regs_1): Initialize offset, regnoi + and regnor. + (expand_function_start): Initialize last_ptr. + + * stor-layout.c (layout_record): Initialize desired_align. + (get_best_mode): Initialize unit. + + * tree.c (copy_node): Initialize length. + + * c-lex.c (yylex): Initialize traditional_type, ansi_type and type. + + * caller-save.c (insert_save_restore): Initialize pat, code and + numregs. + + * emit-rtl.c (push_to_sequence): Initialize top. + (push_topmost_sequence): Likewise. + + * genattrtab.c (simplify_by_exploding): Initialize defval. + + * profile.c (branch_prob): Initialize dest. + + * rtl.h (note_stores): Remove duplicate prototype. + (GEN_INT): Reinstate cast of second arg to HOST_WIDE_INT. + + * cplus-dem.c (gnu_special): Don't get confused by . + strings that are not actually lengths. + + * genattrtab.c: Make generated file use system.h, instead of + including stdio.h, etc directly. + * genextract.c, genopinit.c, genoutput.c: Likewise. + * genpeep.c, genrecog.c: Likewise. + + * genoutput.c (process_template): Mark operands in the generated + function as potentially unused if compiling with GNU CC. + + * i386/freebsd-elf.h (CPP_PREDEFINES): Update from FreeBSD folks. + + * pa.md (reload peepholes): Remove unused variable "mode". + +Wed Apr 1 17:06:19 1998 Nick Clifton + + * config/arm/thumb.h: Add super interworking support. + * config/arm/thumb.c: Add super interworking support. + * config/arm/thumb.md: Add super interworking support. + * config/arm/lib1funcs.asm: Add interworking support. + * config/arm/lib1thumb.asm: Add super interworking support. + * config/arm/t-semi: Add interworking support. + * config/arm/t-thumb: Add interworking support. + * config/arm/README-interworking: New file. + +Wed Apr 1 14:38:10 1998 Jim Wilson + + * config/mips/iris6.h (MD_EXEC_PREFIX): Set to /usr/bin/. + (MD_STARTFILE_PREFIX): Unset. + +1998-04-01 Mark Mitchell + + * varasm.c (make_decl_rtl): Update the DECL_ASSEMBLER_NAME for a + entity in a local scope. + + * fold-const.c (fold): Call truthvalue_conversion for values which + are folded to boolean type. + +Wed Apr 1 06:09:53 1998 Jeffrey A Law (law@cygnus.com) + + * 1750a.md, arm.c, clipper.c, clipper.md: Use GEN_INT consistently. + * convex.h, dsp16xx.c, fx80.md, gmicro.c, gmicro.md: Likewise. + * i370.h, i370.md, i860.c, i860.h, i860.md, i960.c: Likewise. + * i960.h, i960.md, m32r.md, m68k.md, m68kv4.h, m88k.c: Likewise. + * m88k.md, ns32k.c, ns32k.md, pdp11.c, pdp11.h, pdp11.md: Likewise. + * pyr.c, pyr.h, pyr.md, romp.c, romp.h, romp.md: Likewise. + * rs6000.md, sparc.c, sparc.h, sparc.md, spur.c, spur.md: Likewise. + * tahoe.md, vax.h, vax.md, we32k.c, we32k.h, we32k.md: Likewise. + * md.texi: Likewise. + +Wed Apr 1 08:33:44 1998 Manfred Hollstein + + * fixincludes (limits.h): Fix nested comments in Motorola's + limits.h and sys/limits.h. + +Tue Mar 31 16:57:33 1998 Jim Wilson + + * alpha.c (alpha_expand_unaligned_load): Use tgt instead of addr + as dest of expand_binop call. + + * alpha.md (extzv): Correct check for valid operand[2] values. + + * profile.c (branch_prob): Add code to recognize HPPA tablejump entry + branch. + + * toplev.c (rest_of__compilation): Call init_recog_no_volatile at end. + +Mon Mar 30 13:11:05 1998 Stan Cox + + * libgcc2.c (__main, __do_global_dtors, __do_global_ctors): + For __CYGWIN32__ use the versions in winsup/dcrt0.cc. + + * gcc.c, cccp.c, cpplib.c, collect2.c (GET_ENVIRONMENT): Added. + cygwin32 can override this to allow both unix and win32 style PATHs. + + * i386/xm-cygwin32.h (GET_ENVIRONMENT): Defined to allow win32 + style environment paths. + +Mon Mar 30 14:43:20 1998 Kaveh R. Ghazi + + * Makefile.in (cppalloc.o, cpperror.o, cppexp.o, cpphash.o, + cpplib.o, cppmain.o, fix-header.o, gcov.o, gen-protos.o, + gengenrtl.o, halfpic.o, hash.o, scan-decls.o, scan.o): Depend on + system.h. + + * cpphash.c: Include config.h. + * cppalloc.c: Include system.h. Add parameters to various + function prototypes. + * cpperror.c: Likewise. + * cppexp.c: Likewise. + * cpphash.c: Likewise. + * cpplib.c: Likewise. + * cppmain.c: Likewise. + * fix-header.c: Likewise. + * gcov.c: Likewise. + * gen-protos.c: Likewise. + * gengenrtl.c: Likewise. + * halfpic.c: Likewise. + * hash.c: Likewise. + * scan-decls.c: Likewise. + * scan.c: Likewise. + +Mon Mar 30 11:06:45 1998 Jim Wilson + + * README.gnat: Add lang_print_xnode definition. + +Mon Mar 30 11:12:24 1998 Andreas Schwab + + * config/m68k/m68k.c (standard_68881_constant_p): Don't use + fmovecr on the 68060. + +Mon Mar 30 00:21:03 1998 Jeffrey A Law (law@cygnus.com) + + * genemit.c (DONE): Rework so that it works in the true arm if + an if-else conditional. + (FAIL): Likewise. + +Sun Mar 29 12:45:23 1998 Jeffrey A Law (law@cygnus.com) + + * rs6000.c: Do not include stdioh or ctype.h anymore. + + * Makefile.in (c-typeck.o): Delete on expr.h, insn-codes.h and + $(RTL_H). + (stor-layout.o): Likewise. + * c-typeck.c: Include rtl.h and expr.h. + * stor-layout.c: Likewise. + + * cpplib.c (cpp_file_line_for_message): Delete unused parameter. + All callers changed. + (do_sccs): Wrap in an SCCS_DIRECTIVE ifdef. + * fix-header.c (cpp_file_line_for_message): Delete unused parameter. + All callers changed. + + * collect2.c (is_in_list): Wrap inside COLLECT_EXPORT_LIST ifdef. + + * local-alloc.c (reg_classes_overlap_p): Delete dead function. + + * tree.h (lang_print_xnode): Provide prototype. + +Sat Mar 28 23:50:44 1998 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Sun Mar 29 00:42:21 1998 Jeffrey A Law (law@cygnus.com) + + * objc/sendmsg.c (__objc_block_forward): Add braces for return + value if INVISIBLE_STRUCT_RETURN. + + * pa.c (arith_double_operand): Fix parens. + + * haifa-sched.c (print_pattern): Correct arg to sprintf. + + * Makefile.in (libgcc1.null): Make return type for __foo void. + +Sat Mar 28 14:37:20 1998 Jeffrey A Law (law@cygnus.com) + + * pa.h: Add declarations for many functions defined in pa.c. + + * genpeep.c (main): Remove unused variable 'i' from the generated + file. + + * genemit.c (gen_expand): Do not emit "_done" or "_fail" labels. + (gen_split): Likewise. + (main): Rework generated definitions of DONE and FAIL so that they + no longer use gotos. Avoids warnings about unused labels. + + * integrate.c (copy_rtx_and_substitute): Rework to avoid need for + unused "junk" variable. + + * genattrtab.c (write_complex_function): Add a default case in + generated switch statement to keep -W -Wall quiet. + +Sat Mar 28 10:47:21 1998 Nick Clifton + + * invoke.texi: Document more ARM and Thumb command line options. + + * config/arm/xm-thumb.h: New file. + +Sat Mar 28 01:37:33 1998 Craig Burley + + * stmt.c (expand_expr_stmt): Must generate code for + statements within an expression (gcc's `({ ... )}') + even if -fsyntax-only. + +Sat Mar 28 01:06:12 1998 Bernd Schmidt + Jeffrey A Law (law@cygnus.com) + + * basic-block.h (basic_block_computed_jump_target): Declare. + * flags.h (current_function_has_computed_jump): Declare. + * flow.c (basic_block_computed_jump_target): Define. + (flow_analysis): Allocate it. Set current_function_has_computed_jump + to 0. + (find_basic_blocks): Set current_function_has_computed_jump and + elements of basic_block_computed_jump_target to 1 as appropriate. + * function.c (current_function_has_computed_jump): Define. + * global.c (global_conflicts): Don't allocate pseudos into stack regs + at the start of a block that is reachable by a computed jump. + * reg-stack.c (stack_reg_life_analysis): If must restart, do so + immediately. + (subst_stack_regs): Undo change from Sep 4 1997. + (uses_reg_or_mem): Now unused, deleted. + * stupid.c (stupid_life_analysis): Compute + current_function_has_computed_jump. + (stupid_find_reg): Don't allocate stack regs if the function has a + computed goto. + * haifa-sched.c (is_cfg_nonregular): Delete code to determine if + the current function has a computed jump. Use the global value + instead. + +Sat Mar 28 00:21:37 1998 Jeffrey A Law (law@cygnus.com) + + * i386/freebsd.h (CPP_PREDEFINES): Remove __386BSD__. + (DWARF2_UNWIND_INFO): Define to zero. + +Fri Mar 27 16:04:49 1998 Michael Meissner + + * gcc.c (set_std_prefix): Add declaration. + (process_command): If GCC_EXEC_PREFIX is set, remove /lib/gcc-lib/ + suffix, and update the standard prefix prefix.c uses. + + * prefix.c (std_prefix): New global to hold default prefix value. + (get_key_value): Change to use std_prefix instead of PREFIX. + (translate_name): Likewise. + (update_path): Likewise. + (get_key_value): Release allocated scratch storage. + (set_std_prefix): New function to reset the standard prefix. + +Fri Mar 27 18:08:21 1998 J"orn Rennecke + + * sh.c (find_barrier): Fix calculations for alignment increase. + +Fri Mar 27 08:56:52 1998 Manfred Hollstein + + * Makefile.in (stmp-fixinc): If we're actually fixing include + files, copy gcc's assert.h into the fixed include dir. + * fixincludes (assert.h): Avoid any attempts to fix a probably + broken system specific assert.h file. + * fixproto (stdlib.h): Make sure, it'll contain a definition of + size_t. + +Fri Mar 27 00:49:46 1998 Jeffrey A Law (law@cygnus.com) + + * regclass.c (reg_scan_mark_refs): Be more selective about + when we mark a register with REGNO_POINTER_FLAG. + +Thu Mar 26 23:00:11 1998 J"orn Rennecke + + reload inheritance improvement: + * reload1.c (reg_reloaded_contents, reg_reloaded_insn): + Change meaning: index is now hard reg number. + (reg_reloaded_valid, reg_reloaded_dead): New variables. + (reload_spill_index): Content is now a hard reg number. + (reload_as_needed): Change to fit new variable meaning. + (forget_old_reloads_1, allocate_reload_reg): Likewise. + (choose_reload_regs, emit_reload_insns): Likewise. + +Thu Mar 26 18:34:13 1998 J"orn Rennecke + + * regclass.c (record_reg_classes): '?' increases cost by two. + + * reload.c (find_reloads): Double previous costs. Output + reloads cost one unit extra. + + * reload1.c (eliminate_regs): Delete LOAD_EXTENDED_OP code that + boiled down to && ! 0. + + * reload.c (find_equiv_reg): Also consider a goal offset from the + frame pointer to be constant. + +Thu Mar 26 17:34:46 1998 J"orn Rennecke + + * sh.h (OPTIMIZATION_OPTIONS): Define. + +Thu Mar 26 00:19:47 1998 Richard Henderson + + * combine.c (make_compound_operation): Simplify (subreg (*_extend) 0). + +Wed Mar 25 23:53:11 1998 Jeffrey A Law (law@cygnus.com) + + * pa.c (pa_adjust_cost): Avoid redundant calls to get_attr_type. + +Wed Mar 25 13:40:48 1998 Jim Wilson + + * c-common.c (check_format_info): Initialize type, is_type. New local + integral_format. Don't warn for 'L' when pedantic. Do warn for 'L' + when pedantic if used with integral format specifier. + +Wed Mar 25 16:09:01 1998 Michael Meissner + + * rs6000.h (FUNCTION_ARG_PADDING): Cast result to be enum + direction. + (function_arg_padding): Declare. + + * rs6000.c: Include system.h. + (function_arg_padding): Change return type to int, cast enum's to + int. + + (From Kaveh R. Ghazi ) + * collect2.c (scan_prog_file): Add explicit braces to avoid + ambiguous `else'. + + * dbxout.c (dbxout_type_fields): Add braces around empty body in + an if-statement. + (dbxout_type): Likewise. + + * rs6000.c (rs6000_override_options): Change type of `i', `j' and + `ptt_size' from int to size_t. + (rs6000_file_start): Likewise for `i'. + (rs6000_replace_regno): Add default case in enumeration switch. + (output_epilog): Remove unused variable `i'. + (rs6000_longcall_ref): Remove unused variables `len', `p', `reg1' + and `reg2'. + + * rs6000.h (ADDITIONAL_REGISTER_NAMES): Add missing braces around + initializer. + (get_issue_rate, non_logical_cint_operand): Add prototype. + (rs6000_output_load_toc_table): Likewise. + + * rs6000.md (udivmodsi4): Add explicit braces to avoid ambiguous + `else'. + +Wed Mar 25 10:05:19 1998 Nick Clifton + + * config/arm/thumb.c: New File. Support for ARM's Thumb + instruction set. + * config/arm/thumb.h: New File. Thumb definitions. + * config/arm/thumb.md: New File. Thumb machine description. + * config/arm/tcoff.h: New File. Thumb COFF support. + * config/arm/t-thumb: New File. Thumb makefile fragment. + * config/arm/lib1thumb.asm: New File. Thumb libgcc support functions. + + * configure.in: Add Thumb-coff target. + * configure: Add Thumb-coff target. + * config.sub: Add Thumb-coff target. + +Wed Mar 25 10:30:32 1998 Jim Wilson + + * loop.c (scan_loop): Initialize move_insn_first to zero. + +Wed Mar 25 01:06:49 1998 Joel Sherrill (joel@OARcorp.com) + + * config/i386/go32-rtems.h: Defined TARGET_MEM_FUNCTIONS. + * config/i386/rtems.h: Likewise. + * config/i960/rtems.h: Likewise. + * config/m68k/rtems.h: Likewise. + * config/mips/rtems64.h: Likewise. + * config/pa/rtems.h: Likewise. + * config/rs6000/rtems.h: Likewise. + * config/sh/rtems.h: Likewise. + * config/sparc/rtems.h: Likewise. + +Wed Mar 25 00:57:26 1998 Richard Kenner + + * pa.c (emit_move_sequence): If in reload, call find_replacement. + +Tue Mar 24 10:44:11 1998 Nick Clifton + + * Makefile.in (gcov$(exeext)): Support .exe extension to gcov. + + * collect2.c (find_a_file): Add debugging. + (find_a_file): Test for win32 style absolute paths if + DIR_SERPARATOR is defined. + (prefix_from_string): Add debugging. + (main): Test for debug command line switch at start of program + execution. + (main): Use GET_ENVIRONMENT rather than getenv(). + (prefix_from_env): Use GET_ENVIRONMENT. + +1998-03-24 Mark Mitchell + + * cplus-dem.c (optable): Add sizeof. + (demangle_template_value_parm): New function containing code + previously found in demangle_template. + (demangle_integral_value): New function which handles complicated + integral expressions. + (demangle_template): Use them. + +Tue Mar 24 12:13:18 1998 Kaveh R. Ghazi + + * Makefile.in (genconfig.o, genflags.o, gencodes.o, genemit.o, + genopinit.o, genrecog.o, genextract.o, genpeep.o, genattr.o, + genattrtab.o, genoutput.o): Depend on system.h. + + * genattr.c: Include system.h. Add arguments to various function + prototypes. Remove redundant prototype of read_rtx(). + * genattrtab.c: Likewise. + * gencodes.c: Likewise. + * genconfig.c: Likewise. + * genemit.c: Likewise. + * genextract.c: Likewise. + * genflags.c: Likewise. + * genopinit.c: Likewise. + * genoutput.c: Likewise. + * genpeep.c: Likewise. + * genrecog.c: Likewise. + +1998-03-24 Martin von Loewis + + * c-lang.c (lang_print_xnode): New function. + * objc/objc-act.c (lang_print_xnode): Likewise. + * print-tree.c (print_node): Call it + +Mon Mar 23 23:59:11 1998 H.J. Lu (hjl@gnu.org) + + * c-parse.in: Recognize protocol qualifiers in class + definitions for objc. + Include "output.h". + (yyerror): Remove redundant decl. + (yyprint): Fix prototype. + +Mon Mar 23 23:49:47 1998 Jeffrey A Law (law@cygnus.com) + + * cse.c (rtx_cost): Only call CONST_COSTS if it is defined. + + * stmt.c (unroll_block_trees): Free block_vector if needed. + +Mon Mar 23 23:26:42 1998 Philippe De Muyter + + * m68k/m68k.md (zero_extendqidi2, zero_extendhidi2): New patterns. + (zero_extendsidi2): Avoid useless copy. + (iordi_zext): New pattern. + (iorsi_zexthi_ashl16): Pattern reworked to avoid "0" constraint for + operand 2. + (iorsi_zext): New name for old unnamed pattern; indentation fixes. + + * m68k/m68k.md (ashldi_const): Allow shift count in range ]32,63]. + (ashldi3): Allow constant shift count in range ]32,63]. + (ashrdi_const, ashrid3, lshrdi_const, lshrdi3): Likewise. + +1998-03-22 Mark Mitchell + + * tree.h (IS_EXPR_CODE_CLASS): New macro. + +Mon Mar 23 23:18:48 1998 Jeffrey A Law (law@cygnus.com) + + * h8300.h (CONST_COSTS): Remove definition. + (DEFAULT_RTX_COSTS): Define. + +Mon Mar 23 22:58:22 1998 Joel Sherrill (joel@OARcorp.com) + + * config/sh/rtems.h: Switched from ELF to COFF. + +Mon Mar 23 14:14:20 1998 J"orn Rennecke + + * freebsd.h (ASM_OUTPUT_ALIGN): Redefine. + +Sat Mar 21 23:52:56 1998 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Sun Mar 22 00:50:42 1998 Nick Clifton + Geoff Noer + + * Makefile.in: Various fixes for building cygwin32 native toolchains. + + * objc/Makefile.in: Various fixes for building cygwin32 native toolchains. + * objc/Make-lang.in: Likewise. + + * config/i386/xm-cygwin32.h (PATH_SEPARATOR): Set to a semi-colon. + +Sun Mar 22 00:21:46 1998 R. Ganesan + + * configure.in: Handle with-PACKAGE=no correctly + +Fri Mar 20 17:36:23 1998 Kaveh R. Ghazi + + * Makefile.in (alias.o, bitmap.o, c-aux-info.o, c-common.o, + c-decl.o, c-iterate.o, c-lang.o, c-lex.o, c-pragma.o, c-typeck.o, + caller-save.o, calls.o, collect2.o, combine.o, cse.o, dbxout.o, + dwarf2out.o, dwarfout.o, emit-rtl.o, except.o, explow.o, expmed.o, + expr.o, final.o, flow.o, function.o, getpwd.o, global.o, + integrate.o, jump.o, local-alloc.o, loop.o, optabs.o, pexecute.o, + prefix.o, print-rtl.o, print-tree.o, profile.o, real.o, recog.o, + reg-stack.o, regclass.o, regmove.o, reload.o, reload1.o, reorg.o, + rtl.o, rtlanal.o, sdbout.o, stmt.o, stor-layout.o, stupid.o, + tlink.o, toplev.o, tree.o, unroll.o, varasm.o, xcoffout.o): Depend + on system.h. + + * alias.c, bitmap.c, c-aux-info.c, c-common.c, c-decl.c, + c-iterate.c, c-lang.c, c-lex.c, c-pragma.c, c-typeck.c, + caller-save.c, calls.c, collect2.c, combine.c, cse.c, dbxout.c, + dwarf2out.c, dwarfout.c, emit-rtl.c, except.c, explow.c, expmed.c, + expr.c, final.c, flow.c, function.c, gcc.c, getpwd.c, global.c, + integrate.c, jump.c, local-alloc.c, loop.c, optabs.c, pexecute.c, + prefix.c, print-rtl.c, print-tree.c, profile.c, real.c, recog.c, + reg-stack.c, regclass.c, regmove.c, reload.c, reload1.c, reorg.c, + rtl.c, rtlanal.c, sched.c, sdbout.c, stmt.c, stor-layout.c, + stupid.c, tlink.c, toplev.c, tree.c, unroll.c, varasm.c, + xcoffout.c: Include system.h. Organize include ordering so + that stdarg/varargs comes before other system headers. Remove + spurious casts of functions assured of a prototype in system.h. + +Fri Mar 20 11:19:40 1998 Stan Cox + + * reg-stack.c (pop_stack): Define. Pops any register on the + regstack and adjusts regstack. + (compare_for_stack_reg): Use pop_stack. + +Thu Mar 19 23:51:01 1998 Jeffrey A Law (law@cygnus.com) + + * configure.in (hppa1.0-hp-hpux10): Handle threads for this + config too. + +Thu Mar 19 20:30:31 1998 Philippe De Muyter + + * libgcc2.c (exit): Do not call __bb_exit_func if HAVE_ATEXIT. + + * fold-const.c (fold): Replace sign-extension of a zero extended + value by a single zero extension. + +Thu Mar 19 00:58:07 1998 Jason Merrill + + * except.c (init_eh): Do nothing. + (save_eh_status): Call init_eh_for_function, not init_eh. + * function.c (push_function_context_to): Don't call init_emit. + +Thu Mar 19 13:39:52 1998 Michael Meissner + + * rs6000/sysv4.h (RELATIVE_PREFIX_NOT_LINKDIR): Undef for System V + and EABI. + +Thu Mar 19 10:10:36 1998 Kaveh R. Ghazi + + * final.c (shorten_branches): Add parentheses around +/- in + operand of &. + + * flow.c (life_analysis): Wrap variable `i' in macro ELIMINABLE_REGS. + +Thu Mar 19 09:15:17 1998 Manfred Hollstein + + * regclass.c (memory_move_secondary_cost): Wrap uses of + SECONDARY_INPUT_RELOAD_CLASS and SECONDARY_OUTPUT_RELOAD_CLASS + with #ifdef tests. + +Thu Mar 19 09:06:35 1998 Manfred Hollstein + + * config/m68k/m68k.md (addqi3): Fix typo gen_INT vs. GEN_INT. + + * flow.c (life_analysis): #include to make sure + size_t is defined. + * cplus-dem.c (demangle_function_name): Likewise. + +Thu Mar 19 09:00:01 1998 Manfred Hollstein + + * final.c (insn_noperands): Change type to unsigned int. + (final_scan_insn): Likewise for noperands; + properly check operand number boundaries. + +Wed Mar 18 16:20:30 1998 Richard Henderson + + * alpha.md (extzv): Don't reject register operands. Fix + mode of operand 1. + +Wed Mar 18 16:14:23 1998 Richard Henderson + + * dbxout.c (dbxout_function_end): Fix last change. The correct + predicate is ASM_OUTPUT_SECTION_NAME. + +Wed Mar 18 12:43:20 1998 Jim Wilson + + * sh.md (ashlsi_c-1): Delete 3rd argument to gen_ashlsi_c. + (ashlsi): Use match_dup 1 instead of match_operand 2. + +Wed Mar 18 13:46:07 1998 Richard Kenner + + * fold-const.c (operand_equal_for_comparison_p): See if equal + when nop conversions are removed. + +Wed Mar 18 13:42:01 1998 Richard Kenner + + * expr.c (expand_expr, case COND_EXPR): If have conditional move, + don't use ORIGINAL_TARGET unless REG. + +Wed Mar 18 16:53:19 1998 J"orn Rennecke + + * netbsd.h (ASM_OUTPUT_ALIGN): Redefine. + +Wed Mar 18 12:43:20 1998 Jim Wilson + + * loop.c (struct movable): New field move_insn_first. + (scan_loop): In consec sets code, set it. Clear it otherwise. + (move_movables): In consec sets code, use it. Copy REG_NOTES from + p to i1 only if i1 does not have REG_NOTES. Delete obsolete ifdefed + out code. + +Wed Mar 18 09:52:56 1998 Richard Henderson + + * rtl.c (read_rtx): Fall back on homebrew atoll if HOST_WIDE_INT + is large, and the system doesn't provide atoll or atoq. + (atoll): New. + + * alpha/xm-vms.h (HAVE_ATOLL): Define. + Reported by Klaus Kaempf . + +Wed Mar 18 09:56:26 1998 Kaveh R. Ghazi + + * c-lang.c (finish_file): Wrap variable `void_list_node' with macro + test !ASM_OUTPUT_CONSTRUCTOR || !ASM_OUTPUT_DESTRUCTOR. + + * calls.c (emit_call_1): Wrap variable `already_popped' with macro + test !ACCUMULATE_OUTGOING_ARGS. + + * collect2.c (write_c_file_glob): Wrap function definition in + macro test !LD_INIT_SWITCH. + + * combine.c (try_combine): Wrap variables `cc_use' and + `compare_mode' in macro test EXTRA_CC_MODES. + + * cpplib.c (do_ident): Remove unused variable `len'. + (skip_if_group): Remove unused variables `at_beg_of_line' and + `after_ident'. + (cpp_get_token): Remove unused variable `dummy'. + + * dbxout.c (scope_labelno): Move static variable definition inside + the one function scope where it is used. + (dbxout_function_end): Wrap prototype and definition in + macro test !NO_DBX_FUNCTION_END. + + * dwarf2out.c (add_subscript_info): Wrap variable `dimension_number' + in macro test !MIPS_DEBUGGING_INFO. + + * expr.c (expand_builtin_setjmp): Move declaration of variable `i' + into the scope where it is used. Wrap empty else-statement body + in braces. + + * fix-header.c: Fix typo in comment. + (inf_skip_spaces): Cast results of INF_UNGET to (void). + (check_protection, main): Likewise. + + * flow.c (find_basic_blocks_1): Remove dangling comment text. + + * function.c (contains): Wrap prototype and definition in macro + test HAVE_prologue || HAVE_epilogue. + (fixup_var_refs_1): Remove unused variable `width'. + + * gen-protos.c (main): Remove unused variable `optr'. + + * haifa-sched.c (debug_control_flow): Remove unused variable `j'. + + * libgcc2.c (__udiv_w_sdiv): Provide dummy return value of 0. + (__sjpopnthrow): Remove unused variable `jmpbuf'. + (__throw): Remove unused variable `val'. + + * protoize.c: Check for a previously existing definition before + defining *_OK macros. + + * scan-decls.c (scan_decls): Remove unused variable `old_written'. + +Tue Mar 17 00:45:48 1998 J"orn Rennecke + + * vax.h (ADDR_VEC_ALIGN): Define. + +Mon Mar 16 15:57:17 1998 Michael Meissner + + * gcc.c (default_arg): Don't wander off the end of allocated + memory. + + (From Geoffrey Keating ) + * rs6000.c (small_data_operand): Ensure that any address + referenced relative to the small data area is inside the SDA. + +Mon Mar 16 12:55:15 1998 Jim Wilson + + * config/m68k/netbsd.h (ASM_SPEC): Add %{m68060}. + +Mon Mar 16 15:50:20 1998 Andrew MacLeod + + * except.h (in_same_eh_region): New prototype. + (free_insn_eh_region, init_insn_eh_region): New prototypes. + * except.c (insn_eh_region, maximum_uid): New static variables. + (set_insn_eh_region): New static function to set region numbers. + (free_insn_eh_region): New function to free EH region table. + (init_insn_eh_region): New function to initialize EH region table. + (in_same_eh_region): New function used to determine if two rtl + instructions are in the same exception region or not. + * final.c (final): Initialize the table indicating which instructions + belong in which exception region. + * genpeep.c (main): Add "except.h" to include file list in generated + file insn-peep.c. + * config/sparc/sparc.md: Add calls to 'in_same_eh_region' in 4 + peepholes involving calls and unconditional branches. + +Mon Mar 16 11:16:50 1998 Jim Wilson + + * README.gnat: New file. + +Mon Mar 16 11:14:20 1998 Andreas Schwab + + * config/m68k/m68k.c: Include for atoi. Include + "recog.h" for offsettable_memref_p. + (legitimize_pic_address): Remove unused variable `offset'. + (notice_update_cc): Change return type to void. Add default label + to switch. + (standard_68881_constant_p): Remove unused variable mode. + (print_operand): Define local variable i only if SUPPORT_SUN_FPA. + (const_int_cost): Explicitly declare as returning int. + (output_dbcc_and_branch): Change return type to void. + + * config/m68k/linux.h, config/m68k/m68k.md, config/m68k/m68k.c, + config/m68k/m68k.h: Replace gen_rtx (XXX, ...) with gen_rtx_XXX + (...). Use GEN_INT instead of gen_rtx_CONST_INT. + +Sun Mar 15 22:30:44 1998 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Fri Mar 13 11:30:12 1998 Andreas Schwab + + * config/m68k/m68k.h (CONST_OK_FOR_LETTER_P): Fix logic in range + check for 'M' constraint. + +Thu Mar 12 14:47:14 1998 Jim Wilson + + * cccp.c (create_definition): If pedantic, call pedwarn for macro + varargs feature. + +Thu Mar 12 13:43:25 1998 Bernd Schmidt + + * i386.c (ix86_logical_operator): New function. + (split_di): Ensure that when a MEM is split, the resulting MEMs have + SImode. + * i386.md (anddi3, xordi3, iordi3): New patterns. Add a define_split + to implement them. + +Thu Mar 12 15:13:16 1998 Kaveh R. Ghazi + Richard Earnshaw + Nick Clifton + + * tm.texi (DEFAULT_RTX_COSTS): Document new macro. + + * arm.h (DEFAULT_RTX_COSTS): Define instead of RTX_COSTS. + + * cse.c (rtx_cost): Provide a default case in an enumeration + switch, and call DEFAULT_RTX_COSTS if it's defined. + +Thu Mar 12 10:02:38 1998 Manfred Hollstein + + * basic-block.h (compute_preds_succs): Change return type in + prototype to void. + * flow.c (compute_preds_succs): Likewise in function definition. + + * regmove.c (find_matches): Cast char used as array index to unsigned char + to suppress warning. + +Thu Mar 12 09:39:40 1998 Manfred Hollstein + + * i386.h (RTX_COSTS): Insert braces around nested if. + (ADDITIONAL_REGISTER_NAMES): Insert braces around structured + elements. + + * gcc.c (default_compilers): Properly put brackets around array elements in + initializer. + + * getopt.c (_getopt_internal): Add explicit braces around nested if; + reformatted. + + * reg-stack.c (record_asm_reg_life): Add explicit braces around nested if's. + (record_reg_life_pat): Add explicit parens around && and || in expression. + (stack_reg_life_analysis): Add parens around assignment used as expression. + (convert_regs): Likewise. + +Thu Mar 12 09:25:29 1998 Manfred Hollstein + + * bitmap.c (bitmap_element_allocate): Remove unused parameter; + change callers accordingly. + + * cplus-dem.c (arm_special): Remove unused parameter work in prototype + and definition; change all callers accordingly. + + * except.c (init_eh): Avoid assignment of unused return value of + build_pointer_type; cast it to void, instead, and remove unused + variable type. + + * gcc.c (lang_specific_driver): Define prototype only #ifdef + LANG_SPECIFIC_DRIVER. + (temp_names): Define only #ifdef MKTEMP_EACH_FILE. + + * genoutput.c (output_epilogue): Initialize next_name to 0. + + * real.c (efrexp): #if 0 prototype and function definition. + (eremain): Likewise. + (uditoe): Likewise. + (ditoe): Likewise. + (etoudi): Likewise. + (etodi): Likewise. + (esqrt): Likewise. + + * reload.c (push_secondary_reload): Define prototype only + #ifdef HAVE_SECONDARY_RELOADS. + + * varasm.c (assemble_static_space): Define rounded only + #ifndef ASM_OUTPUT_ALIGNED_LOCAL. + +Thu Mar 12 09:11:35 1998 Manfred Hollstein + + * i386.md (andsi): Add default case in enumeration switch. + (iorsi3): Likewise. + (iorhi3): Likewise. + (xorsi3): Likewise. + +Thu Mar 12 08:37:02 1998 Manfred Hollstein + + * c-decl (finish_struct): Change type of min_align to unsigned. + + * cplus-dem.c (demangle_function_name): Change type of variable i to size_t; + remove unused variable len. + + * dwarf2out.c (reg_save): Add explicit cast of -1 to unsigned and a + comment indicating this is proper behavior. + (reg_loc_descriptor): Remove redundant comparison of unsigned variable + reg >= 0. + (based_loc_descr): Likewise. + + * enquire.c (bitpattern): Change type of variable i to unsigned. + + * final.c (output_asm_insn): Don't cast insn_noperands to unsigned. + + * flow.c (life_analysis): Change type of variable i to size_t; + remove unused variable insn. + + * gcc.c (translate_options): Change type of variables optlen, arglen and + complen to size_t. + (input_filename_length): Change type to size_t. + (do_spec_1): Change type of variable bufsize to size_t. + (main): Change type of variables i and j to size_t; + remove subblock local definition of variable i. + (lookup_compiler): Change type of second argument to size_t; + change type of variable i to size_t. + + * genemit.c (output_init_mov_optab): Change type of variable i to size_t. + + * genopinit.c (get_insn): Change type of variable pindex to size_t. + + * genrecog.c (add_to_sequence): Change type of variable i to size_t. + + * global.c (global_alloc): Change type of variable i to size_t. + + * regclass.c (init_reg_sets): Change type of variables i and j to unsigned. + + * stmt.c (expand_end_bindings): Change type of variable i to size_t. + (expand_end_case): Change type of variable count to size_t. + + * toplev.c (main): Change type of variable j to size_t. + (set_target_switch): Change type of variable j to size_t. + (print_switch_values): Change type of variable j to size_t; + remove unused variable flags. + + * varasm.c (assemble_variable): Change type of variable align to size_t. + (const_hash_rtx): Change type of variable i to size_t. + +1998-03-11 Mark Mitchell + + * dbxout.c (dbxout_type_methods): Only treat TYPE_METHODS as a + TREE_VEC if that's what it really is. + +Wed Mar 11 15:16:01 1998 Michael Meissner + + * {haifa-,}sched.c (rank_for_schedule): Only take void * arguments + as per ISO C spec. + +Wed Mar 11 12:05:20 1998 Teemu Torma + + * gthr.h: Changed the comment about return values. + * gthr-solaris.h (__gthread_once): Do not use errno; return the + error number instead of -1. + (__gthread_key_create): Any nonzero return value is an error. + * libgcc2.c (eh_context_initialize): Check for nonzero return + value from __gthread_once. + Check that the value of get_eh_context was really changed. + +Wed Mar 11 18:26:25 1998 J"orn Rennecke + + * sh.h (LOOP_ALIGN): Only align when optimizing. + * sh.c (find_barrier): Clear inc for CODE_LABELs. + When not optimizing, calculate alignment for BARRIERs directly. + +Wed Mar 11 15:07:18 1998 J"orn Rennecke + + * final.c (shorten_branches): Remove conditionalizing on + SHORTEN_WITH_ADJUST_INSN_LENGTH. + * sh.h, pa.h (SHORTEN_WITH_ADJUST_INSN_LENGTH): Remove. + +Wed Mar 11 02:37:41 1998 Jeffrey A Law (law@cygnus.com) + + * flow.c (find_basic_blocks_1): Keep the cfg accurate when removing + an unconditional jump around deleted blocks. + +Mon Mar 9 12:02:23 1998 Jim Wilson + + * profile.c (branch_prob): If see computed goto, call fatal instead of + abort. + + * config/mips/sni-svr4.h (CPP_PREDEFINE): Add -DSNI and -Dsinix. + + * configure.in (alpha-dec-osf): Add default case for osf* to switch. + Patch from Bruno Haible. + + * function.c (put_reg_into_stack): Copy MEM_IN_STRUCT_P from new. + (assign_parms): Set aggregate if hide_last_arg and last_named. + +Mon Mar 9 19:57:56 1998 J"orn Rennecke + + * final.c (shorten_branches): Initialize insn_addresses. + +Mon Mar 9 14:10:23 1998 J"orn Rennecke + + * sh.h (MUST_PASS_IN_STACK): Define. + +Sun Mar 8 13:01:56 1998 Jeffrey A Law (law@cygnus.com) + + * final.c (shorten_branches): Fix minor logic error in + ADDR_DIFF_VEC shortening support. + +Sun Mar 8 02:17:42 1998 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Sat Mar 7 00:54:15 1998 Jeffrey A Law (law@cygnus.com) + + * haifa-sched.c (is_cfg_nonregular): Change return type to + an int. No longer compute "estimated" number of edges. Use + computed_jump_p instead of duplicating the code. Fixup/add + some comments. + (build_control_flow): Returns a value indicating an irregularity + in the cfg was detected. Count the number of edges in the cfg. + allocate various edge tables. + (find_rgns): No longer look for unreachable blocks. + (schedule_insns): Do not allocate memory for edge tables here. + Free memory for edge tables before returning. Do not perform + cross block scheduling if build_control_flow returns nonzero. + * flow.c (compute_preds_succs): More accurately determine when + a block drops in. + + * basic-block.h (free_basic_block_vargs): Provide prototype. + + * cccp.c (main): Fix dumb mistakes in last change. + +Fri Mar 6 21:28:45 1998 J"orn Rennecke + + * rtl.h (addr_diff_vec_flags): New typedef. + (union rtunion_def): New member rt_addr_diff_vec_flags. + (ADDR_DIFF_VEC_FLAGS): New macro. + + * sh.c (output_branch): Fix offset overflow problems. + + * final.c (shorten_branches): Implement CASE_VECTOR_SHORTEN_MODE. + (final_scan_insn): New argument BODY for ASM_OUTPUT_ADDR_DIFF_ELT. + * rtl.def (ADDR_DIFF_VEC): Three new fields (min, max and flags). + * stmt.c (expand_end_case): Supply new arguments to + gen_rtx_ADDR_DIFF_VEC. + * 1750a.h (ASM_OUTPUT_ADDR_DIFF_ELT): New argument BODY. + * alpha.h, arc.h, clipper.h, convex.h : Likewise. + * dsp16xx.h, elxsi.h, fx80.h, gmicro.h, h8300.h : Likewise. + * i370.h, i386.h, i860.h, i960.h, m32r.h, m68k.h, m88k.h : Likewise. + * mips.h, mn10200.h, mn10300.h, ns32k.h, pa.h, pyr.h : Likewise. + * rs6000.h, sh.h, sparc.h, spur.h, tahoe.h, v850.h : Likewise. + * vax.h, we32k.h, alpha/vms.h, arm/aof.h, arm/aout.h : Likewise. + * i386/386bsd.h, i386/freebsd-elf.h : Likewise. + * i386/freebsd.h, i386/linux.h : Likewise. + * i386/netbsd.h, i386/osfrose.h, i386/ptx4-i.h, i386/sco5.h : Likewise. + * i386/sysv4.h, m68k/3b1.h, m68k/dpx2.h, m68k/hp320.h : Likewise. + * m68k/mot3300.h, m68k/sgs.h : Likewise. + * m68k/tower-as.h, ns32k/encore.h, sparc/pbd.h : Likewise. + * sh.h (INSN_ALIGN, INSN_LENGTH_ALIGNMENT): Define. + (CASE_VECTOR_SHORTEN_MODE): Define. + (short_cbranch_p, align_length, addr_diff_vec_adjust): Don't declare. + (med_branch_p, braf_branch_p): Don't declare. + (mdep_reorg_phase, barrier_align): Declare. + (ADJUST_INSN_LENGTH): Remove alignment handling. + * sh.c (uid_align, uid_align_max): Deleted. + (max_uid_before_fixup_addr_diff_vecs, branch_offset): Deleted. + (short_cbranch_p, med_branch_p, braf_branch_p, align_length): Deleted. + (cache_align_p, fixup_aligns, addr_diff_vec_adjust): Deleted. + (output_far_jump): Don't use braf_branch_p. + (output_branchy_insn): Don't use branch_offset. + (find_barrier): Remove checks for max_uid_before_fixup_addr_diff_vecs. + Remove paired barrier stuff. + Don't use cache_align_p. + Take alignment insns into account. + (fixup_addr_diff_vecs): Reduce to only fixing up the base label of + the addr_diff_vec. + (barrier_align, branch_dest): New function. + (machine_dependent_reorg, split_branches): Remove infrastructure + for branch shortening that is now provided in the backend. + * sh.md (short_cbranch_p, med_branch_p, med_cbranch_p): New attributes. + (braf_branch_p, braf_cbranch_p): Likewise. + (attribute length): Use new attributes. + (casesi_worker): Get mode and unsignednedd from ADDR_DIFF_VEC. + (addr_diff_vec_adjust): Delete. + (align_2): Now a define_expand. + (align_log): Now length 0. + +Fri Mar 6 14:41:33 1998 Michael Meissner + + * m32r.md (right): Correctly check for length == 2, not 1. + +Fri Mar 6 14:00:04 1998 Kaveh R. Ghazi + + * mips/mips.h: Prototype `machine_dependent_reorg'. + (ASM_OUTPUT_ALIGN): Remove unused variable `mask'. + +Fri Mar 6 11:43:35 1998 Joern Rennecke (amylaar@cygnus.co.uk) + + * final.c (shorten_branches): Restore accidentally removed code. + +Fri Mar 6 11:00:49 1998 Andreas Schwab + + * configure.in: Remove duplicate uses of AC_PROG_CC and + AC_PROG_MAKE_SET. + +Fri Mar 6 00:59:30 1998 Richard Henderson + + * configure.in (target_cpu_default2): Correct typo for alphapca56. + +Thu Mar 5 23:24:50 1998 Jeffrey A Law (law@cygnus.com) + Doug Evans (devans@cygnus.com) + + * haifa-sched.c (build_jmp_edges): Delete dead function. + (build_control_flow): Use cfg routines from flow.c. + (schedule_insns): Remove debugging code accidentally checked + in earlier today. + + * basic-block.h: Add external integer list structures, typdefs, + accessor macros and function declarations. Similarly for + basic block pred/succ support and simple bitmap stuff. + * flow.c: Add functions for integer list, basic block pred/succ + support and simple bitmap support. + (compute_dominators): New function to compute dominators and + post dominators. + (find_basic_blocks): Split into two functions. + (life_analysis): Likewise. + (flow_analysis): Removed. Now handled by calling find_basic_blocks, + the life_analysis from toplev.c. + * toplev.c (rest_of_compilation): Call find_basic_blocks, then + life_analysis instead of flow_analysis. + +Thu Mar 5 23:06:26 1998 J"orn Rennecke + + * jump.c (jump_optimize): Call mark_jump_label also for deleted + insns. + (mark_jump_label): Don't increment ref counts for deleted insns. + +Thu Mar 5 09:55:15 1998 Kaveh R. Ghazi + + * mips/iris6.h (TARGET_DEFAULT): Parenthesize macro definition. + + * mips/mips.c: Include stdlib.h and unistd.h. + (mips_asm_file_end): Add braces around empty body in an if-statement. + (function_prologue): Wrap variable `fnname' in + !FUNCTION_NAME_ALREADY_DECLARED. Correct format specifier in fprintf. + (mips_select_rtx_section, mips_select_section): Declare as void. + + * mips/mips.h: Add prototypes for extern functions in mips.c. + (FUNCTION_ARG_REGNO_P): Add parentheses around && within ||. + (ENCODE_SECTION_INFO): Add braces around empty body in an + if-statement. + + * mips/mips.md (movdi): Add parentheses around && within ||. + (movsf, movdf): Likewise. + (branch_zero, branch_zero_di): Add default case in + enumeration switch. + +Thu Mar 5 02:45:48 1998 Richard Henderson + + * alpha/alpha.h (TARGET_WINDOWS_NT, TARGET_OPEN_VMS): Just make them + real constants, since they can't be changed. + (TARGET_AS_CAN_SUBTRACT_LABELS): New. + * alpha/alpha.md (builtin_setjmp_receiver): Use it. + * alpha/osf.h (TARGET_AS_CAN_SUBTRACT_LABELS): New. + * alpha/osf2or3.h (TARGET_AS_CAN_SUBTRACT_LABELS): New. + * alpha/vms.h (TARGET_OPEN_VMS): New. + * alpha/win-nt.h (TARGET_WINDOWS_NT): New. + +Thu Mar 5 02:41:27 1998 Richard Henderson + + * reload.c (find_reloads): Always force (subreg (mem)) to be + reloaded if WORD_REGISTER_OPERATIONS. + +Thu Mar 5 02:14:44 1998 Richard Henderson + + * haifa-sched.c (free_list): Rename from free_pnd_lst. + (free_pending_lists): Rename free_pnd_lst uses. + (remove_dependence): Place expunged element on unused_insn_list. + (alloc_INSN_LIST, alloc_EXPR_LIST): New. Change all callers of + gen_rtx_*_LIST and alloc_rtx to use them. + (compute_block_backward_dependences): Free the reg_last_* lists. + +Thu Mar 5 00:05:40 1998 Jeffrey A Law (law@cygnus.com) + + * cccp.c (main): Avoid undefined behavior when setting pend_includes + and pend_files. + +Wed Mar 4 21:58:25 1998 Franz Sirl + + * rs6000/linux.h: Don't define DEFAULT_VTABLE_THUNKS to 1 if + USE_GNULIBC_1 is defined. + * configure.in: Add a new case powerpc-*-linux-gnulibc1 which + includes the t-linux-gnulibc1 fragment. + +Wed Mar 4 12:11:36 1998 Jim Wilson + + * mips.md (movdf_internal1a): Fix misplaced parenthesis in condition. + +Wed Mar 4 18:47:48 1998 J"orn Rennecke + + * final.c (final_scan_insn, case CODE_LABEL: Cleanup. + +Wed Mar 4 15:51:19 1998 J"orn Rennecke + + * final.c (shorten_branches): Tag the loop alignment onto the + first label after NOTE_INSN_LOOP_BEG even if there is an + intervening insn. + +Tue Mar 3 21:48:35 1998 J"orn Rennecke + + * final.c (insn_current_reference_address): + Use SEQ instead of BRANCH as argument to align_fuzz, to get a + proper alignment chain. + + * final.c (max_labelno): New static variable. + (final_scan_insn): Check max_labelno before outputting an + alignment for a label. + (shorten_branches): Remove unused variable length_align. + +Tue Mar 3 14:27:23 1998 Kaveh R. Ghazi + + * sparc.c (ultrasparc_adjust_cost): Add default case in + enumeration switch. + + * sparc.h: Add prototypes for extern functions defined in + sparc.c. + +Tue Mar 3 10:00:11 1998 Nick Clifton + + * toplev.c: Only generate .dbr file when dumping RTL if + DEALY_SLOTS is defined. + +Tue Mar 3 07:36:37 1998 Manfred Hollstein + + * reorg.c (fill_eager_delay_slots): Add new argument delay_list + in call to fill_slots_from_thread. + +Mon Mar 2 13:45:03 1998 Richard Henderson + + * alpha/linux.h (CPP_PREDEFINES): Correct connecting whitespace + to SUB_CPP_PREDEFINES. Reported by asun@saul4.u.washington.edu. + +Mon Mar 2 22:59:28 1998 J"orn Rennecke + + * final.c (insn_last_address, insn_current_align, uid_align): + New variables. + (in_align_chain, align_fuzz, align_shrink_fuzz): New functions. + (insn_current_reference_address): Likewise. + (shorten_branches, final_scan_insn): Implement LABEL_ALIGN, + LABEL_ALIGN_AFTER_BARRIER and LOOP_ALIGN target macros. + (label_to_alignment): New function. + * genattrtab.c (write_test_expr): If one of LABEL_ALIGN, + LABEL_ALIGN_AFTER_BARRIER or LOOP_ALIGN is defined, call + insn_current_reference_address instead of insn_current_address. + (or_attr_value, write_length_unit_log): New functions. + (main): Call write_length_unit_log. + (write_const_num_delay_slots): Output extra '\n'. + * alpha.h (ASM_OUTPUT_LOOP_ALIGN, ASM_OUTPUT_ALIGN_CODE): + Replace with: + (LOOP_ALIGN, ALIGN_LABEL_AFTER_BARRIER). + * i386.h, i386/osfrose.h, i386/svr3dbx.h, m68k.h, sparc.h: Likewise. + * arc.h, m32r.h (ASM_OUTPUT_LOOP_ALIGN): Replace with: + (LOOP_ALIGN). + * i960.h, m88k.h (ASM_OUTPUT_ALIGN_CODE): Replace with: + (LABEL_ALIGN_AFTER_BARRIER). + * ns32k/encore.h, ns32k/merlin.h, ns32k.h, ns32k/sequent.h: Likewise. + * ns32k/tek6000.h: Likewise. + * i386/gas.h (ASM_OUTPUT_LOOP_ALIGN, ASM_OUTPUT_ALIGN_CODE): Delete. + * i386.md (casesi+1): Use ASM_OUTPUT_ALIGN instead of + ASM_OUTPUT_ALIGN_CODE. + +Mon Mar 2 01:05:50 1998 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Mon Mar 2 00:52:18 1998 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Sun Mar 1 18:25:49 1998 Michael P. Hayes + + * reorg.c (fill_slots_from_thread): Don't steal delay list from target + if condition code of jump conflicts with opposite_needed. + + * reorg.c (fill_slots_from_thread): Mark resources referenced in + opposite_needed thread. Return delay_list even when cannot get + any more delay insns from end of subroutine. + +Sun Mar 1 18:26:21 1998 Ken Rose (rose@acm.org) + + * reorg.c (fill_slots_from_thread): New parameter, delay_list. + All callers changed. + +Sun Mar 1 18:25:37 1998 Bruno Haible + + * frame.c (start_fde_sort, fde_split, heapsort, fde_merge, + end_fde_sort): New functions for fast sorting of an FDE array. + (fde_insert): Simplified. + (add_fdes): Change argument list. + (frame_init): Use the new functions. + +Sun Mar 1 18:06:21 1998 Jeffrey A Law (law@cygnus.com) + + * ginclude/va-ppc.h (va_arg): Fix typo in long long support. + + * i386.c (reg_mentioned_in_mem): Fix dangling else statement. + + * fold-const.c (fold_range_test): Always return a value. + +Sun Mar 1 17:57:34 1998 Mumit Khan + + * config/i386/winnt.c (i386_pe_unique_section): Put read-only + data in the text section unless READONLY_DATA_SECTION is defined. + +Sun Mar 1 17:48:46 1998 Jeffrey A Law (law@cygnus.com) + + * c-parse.in (undeclared variable error): Tweak error message to + be clearer. + +Sun Mar 1 10:22:36 1998 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +1998-02-28 Mark Mitchell + + * final.c (final_scan_insn): Undo overzealous removal of `set'. + +Sat Feb 28 07:54:03 1998 Kaveh R. Ghazi + + * pa.h (CONST_COSTS): When checking the CONST_DOUBLE enumerated + case, add parentheses to specify the proper order of precedence in + the if-statement. + + * c-aux-info.c: Include string.h/strings.h. + + * pa.c: Include stdlib.h. + (pa_combine_instructions): Prototype the function. + (pa_can_combine_p, forward_branch_p, shadd_constant_p): Likewise. + (reloc_needed): Add default case for enumeration switch. + (remove_useless_addtr_insns): Remove unused variable `all'. + (hppa_expand_prologue): Add explicit braces to avoid + ambiguous `else'. + (output_function_epilogue): Remove unused variable `i'. + (output_millicode_call): Remove unused variable `link'. + (shadd_constant_p, forward_branch_p): Make the function static. + (following_call): Explicitly declare to return int. + (pa_reorg): Declare as void. + (pa_combine_instructions): Declare as static void. Add + parentheses around && within ||. + + * pa.h: Add prototypes for pa_reorg, symbolic_operand, + following_call, function_label_operand, lhs_lshift_cint_operand + and zdepi_cint_p. + + * pa.md: Add parentheses around && within ||. + + * cppalloc.c: Include stdlib.h. + + * cpperror.c (cpp_print_containing_files): Remove unused variable + `i'. Fix format specifier in fprintf. + + * cse.c (cse_around_loop): Add explicit braces to avoid + ambiguous `else'. + (delete_dead_from_cse): Wrap variable `tem' in macro HAVE_cc0. + + * expr.c (expand_expr): Add parentheses around && within ||. + + * final.c (app_enable): Replace fprintf with fputs where there are + no format specifiers and no trailing argument after the string. + Eg, when printing ASM_APP_ON/ASM_APP_OFF. + (app_disable): Likewise. + (final_end_function): Likewise. + (final_scan_insn): Likewise. Remove unused variable `set'. + (profile_function): Wrap empty if-statement body in {} brackets. + + * function.c: Include stdlib.h. + (pad_below): Wrap prototype and definition in ARGS_GROW_DOWNWARD. + (reposition_prologue_and_epilogue_notes): Add parentheses + around assignment used as truth value. + + * integrate.c (expand_inline_function): Wrap variable + `cc0_insn' in macro HAVE_cc0. + + * jump.c (jump_optimize): Wrap variable `q' in macro + HAVE_cc0. Remove unused variable `prev1'. + + * libgcc2.c (__bb_exit_trace_func): Add parentheses around && + within ||. Fix format specifier in fprintf. + (__bb_init_prg): Add parentheses around assignment used as + truth value. + + * local-alloc.c: Include stdlib.h. + (requires_inout): Add parentheses around assignment used + as truth value. + + * loop.c (analyze_loop_iterations): Wrap prototype and definition + in macro HAVE_decrement_and_branch_on_count. + (insert_bct, instrument_loop_bct): Likewise. + (move_movables): Add parentheses around assignment used as + truth value. + (consec_sets_invariant_p): Likewise. + (maybe_eliminate_biv_1): Wrap variable `new' in macro HAVE_cc0. + + * objc/objc-act.c: Include stdlib.h. + (lookup_method_in_protocol_list): Wrap empty else-statement body + in braces. + (lookup_protocol_in_reflist): Likewise. + (objc_add_static_instance): Remove unused variables `decl_expr' + and `decl_spec'. + (get_objc_string_decl): Remove unused variable `decl'. + (generate_static_references): Remove unused variables `idecl' and + `instance'. + (check_protocols): Wrap empty else-statement body in braces. + + * protoize.c: Include stdlib.h. + (substr): Add parentheses around assignment used as truth value. + (abspath): Likewise. + (shortpath): Likewise. + + * regmove.c (fixup_match_1): Add parentheses around assignment + used as truth value. + + * reload.c (push_secondary_reload): Remove unused variable `i'. + (find_reloads): Add parentheses around assignment used as truth + value. + + * reload1.c: Include stdlib.h. + + * rtl.h: Correct typo in prototype of offsettable_memref_p. + + * stmt.c (add_case_node): Add parentheses around assignment used + as truth value. + (case_tree2list): Likewise. + + * tree.c (valid_machine_attribute): Wrap variable `decl_attr_list' + in macro VALID_MACHINE_DECL_ATTRIBUTE. Wrap variable + `type_attr_list' in macro VALID_MACHINE_TYPE_ATTRIBUTE. + (merge_attributes): Add explicit braces to avoid ambiguous + `else'. + + * unroll.c (copy_loop_body): Wrap variable `cc0_insn' in + macro HAVE_cc0. + + * varasm.c: Include stdlib.h. + + * system.h: Remove sys/stat.h. + * gcc.c: Add sys/stat.h. + + * genattr.c: Wrap prototype of `free' in NEED_DECLARATION_FREE. + * genattrtab.c: Likewise. + * genconfig.c: Likewise. + * genemit.c: Likewise. + * genextract.c: Likewise. + * genflags.c: Likewise. + * genopinit.c: Likewise. + * genoutput.c: Likewise. + * genpeep.c: Likewise. + * genrecog.c: Likewise. + * tlink.c: Likewise. Also wrap `getenv' in NEED_DECLARATION_GETENV. + +Fri Feb 27 11:02:47 1998 Andreas Schwab + + * invoke.texi: Use @itemx for a secondary item in a @table. + + * config/m68k/m68k.md (movsf+1): Optimize moving a CONST_DOUBLE + zero. + +Thu Feb 26 00:13:21 1998 Ian Lance Taylor + + * choose-temp.c: Fix handling of sys/file.h to work in libiberty. + +Wed Feb 25 23:40:54 1998 Jeffrey A Law (law@cygnus.com) + + * i386.c (struct machine_function): Add new fields for PIC stuff. + (save_386_machine_status): Fix argument to xmalloc. Save pic_label_rtx + and pic_label_name. + (restore_386_machine_status): Corresponding changes. + (clear_386_stack_locals): Also clear pic_label_rtx and pic_label_name. + +Wed Feb 25 01:31:40 1998 Jeffrey A Law (law@cygnus.com) + + * c-parse.y (undeclared variable error): Tweak error message + to be clearer. + +Tue Feb 24 23:54:07 1998 Richard Henderson + + * flags.h (g_switch_value, g_switch_set): Declare. + * alpha.c (override_options): Set g_switch_value=8 if not set. + * alpha/elf.h (CC1_SPEC): New. + (ASM_SPEC): New. + (LINK_SPEC): Pass along the -G value we were given. + (LOCAL_ASM_OP): Remove. + (ASM_OUTPUT_ALIGNED_LOCAL): Output to .bss or .sbss by size. + (MAX_OFILE_ALIGNMENT): New. + (BSS_SECTION_ASM_OP, SBSS_SECTION_ASM_OP, SDATA_SECTION_ASM_OP): New. + (EXTRA_SECTIONS): Add sbss and sdata. + (SECTION_FUNCTION_TEMPLATE): New. + (EXTRA_SECTION_FUNCTIONS): Use it. + (CTORS_SECTION_FUNCTION, DTORS_SECTION_FUNCTION): Remove. + (SELECT_SECTION): Use sdata when small enough. + * alpha/linux.h (ASM_SPEC): Remove. + +Mon Feb 23 15:09:18 1998 Bruno Haible + * config.sub (sco5): Fix typo. + +Mon Feb 23 18:19:31 1998 Manfred Hollstein + + * config/t-linux (LIBGCC1, CROSS_LIBGCC1, LIBGCC1_TEST): Add macros and + set to empty. + * config/t-linux-aout (LIBGCC1, CROSS_LIBGCC1, LIBGCC1_TEST): Likewise. + * config/alpha/t-linux: Remove file. + * config/sparc/t-linux: Remove file. + * config/m68k/t-linux (LIBGCC1, CROSS_LIBGCC1): Remove. + * config/m68k/t-linux-aout (LIBGCC1, CROSS_LIBGCC1): Likewise. + * configure.in (alpha*-*-linux-gnulibc1*): Use t-linux instead of alpha/t-linux + for tmake_file. + (alpha*-*-linux-gnu*): Likewise. + (sparc-*-linux-gnulibc1*): Use t-linux instead of sparc/t-linux for tmake_file. + (sparc-*-linux-gnu*): Likewise. + +Mon Feb 23 10:47:39 1998 Robert Lipe + * collect2.c (ldd_file_name): Bracket declaration with same + manifests as use. + (full_real_ld_suffix): Deleted. Variable was calloced and + written into, but never read. + +1998-02-23 Mike Stump + + * configure.in: Add support for i386-wrs-vxworks configuration. + * i386/vxi386.h: New file. + +Sun Feb 22 21:16:51 1998 Bruno Haible + + * tree.c (contains_placeholder_p): Ensure function always returns + a value. + * sparc.md (movdi_sp64_insn): Add default case in enumeration switch. + (movsf_const_insn, movdf_const_insn, movtf_const_insn): Likewise. + +Sun Feb 22 20:58:19 1998 Jeffrey A Law (law@cygnus.com) + + * vms.h (SELECT_SECTION): Use TREE_CODE_CLASS correctly. + +1998-02-22 Paul Eggert + + * config/sparc/sol2-sld.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): + Define this new symbol. + (DWARF2_DEBUGGING_INFO, DWARF_DEBUGGING_INFO): Do not #undef. + * toplev.c (main): Do not default to DWARF2_DEBUG with -ggdb if + LINKER_DOES_NOT_WORK_WITH_DWARF2 is defined. + +Sun Feb 22 20:07:32 1998 Jim Wilson + + * iris5.h (DWARF2_UNWIND_INFO): Define to 0. + * iris5gas.h (DWARF2_UNWIND_INFO): Define to 1. + +Sun Feb 22 15:29:48 1998 Richard Henderson + + * objc/Object.m (-error): Call objc_verror with our va_list. + +Sun Feb 22 09:45:39 1998 Kaveh R. Ghazi + + * collect2.c (scan_prog_file): Completely cover uses of variable + `exports' with macro COLLECT_EXPORT_LIST. + +Sat Feb 21 20:36:23 1998 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Fri Feb 20 16:22:13 1998 Michael Meissner + + * sched.c (schedule_block): Remove code to get arguments from hard + regs into pseudos early. Same as Aug 25, 1997 change to + haifa-sched.c. + +1998-02-20 Jason Merrill + + * collect2.c (main): Still handle !do_collecting for non-AIX targets. + +1998-02-16 Mark Mitchell + + * toplev.c (rest_of_compilation): Do not defer the output of a + nested function. + +Fri Feb 20 10:39:47 1998 Michael Tiemann + + * ginclude/va-mips.h (va_arg): Remove trailing space after '\' + continuation character (line 243). + +Fri Feb 20 12:10:26 1998 Andreas Schwab + + * genrecog.c (main): Remove duplicated sentence in emitted comment. + +Thu Feb 19 22:36:53 1998 Andrey Slepuhin + David Edelsohn + + * collect2.c (XCOFF_SCAN_LIBS): Remove. + (export_flag): New variable. + (export_file): #ifdef COLLECT_EXPORT_LIST. + (import_file, exports, imports, undefined): New variables. + (libs, cmdline_lib_dirs, libpath_lib_dirs, libpath, libexts): Same. + (dump_list, dump_prefix_list, is_in_list): New functions. + (write_export_file): $ifdef COLLECT_EXPORT_LIST. + (write_import_file, resolve_lib_name): New functions. + (use_import_list, ignore_library): Same. + (collect_exit): maybe_unlink import_file and #ifdef. + (handler): Same. + (main): New variable importf, #ifdef exportf. Move parsing of + -shared before general argument parsing. Resolve AIX library + paths and import libgcc.a symbols. Treat .so shared libraries the + same as objects and .a libraries. Create alias for object_lst and + increment it instead of original pointer. Scan AIX libraries as + objects earlier instead of using scan_libraries. Perform AIX + tlink later to resolve templates instead of forking ld. + (GCC_OK_SYMBOL): Ensure symbol not in undef section. + (GCC_UNDEF_SYMBOL): New macro. + (scan_prog_file): Loop for members of AIX libraries. Handle + export/import of ctors/dtors. + (aix_std_libs): New variable. + (scan_libraries, XCOFF): Delete. + +Thu Feb 19 22:36:52 1998 Robert Lipe + + * collect2.c (full_real_ld_suffix): #ifdef CROSS_COMPILE. + +1998-02-19 Mike Stump + + * Makefile.in: Use $tooldir for sys-include to match toplevel + configure. + +Thu Feb 19 01:32:37 1998 Jeffrey A Law (law@cygnus.com) + Richard Kenner + + * emit-rtl.c (gen_lowpart_common): Suppress last change if __complex__. + + * emit-rtl.c (hard-reg-set.h): Include. + (get_lowpart_common): Don't make new REG for hard reg in a + class that cannot change size. + * Makefile.in (emit-rtl.o): Depend on hard-reg-set.h. + + * combine.c: Revert previous patch. + +1998-02-19 Paul Eggert + + * config/sparc/sol2-sld.h: New file. + * configure.in (sparc-*-solaris2*): Use it when using the + system linker. + +Thu Feb 19 00:46:59 1998 Jeffrey A Law (law@cygnus.com) + + * loop.c (force_movables): Fix typo. + +Thu Feb 19 08:26:30 1998 Manfred Hollstein + + * m88k.h: Change file pattern to match reality. + +Wed Feb 18 23:19:52 1998 Jeffrey A Law (law@cygnus.com) + + * varasm.c (output_constant_pool): Fix dumb thinko in last + change. + + * pa.h (ASM_OUTPUT_FUNCTION_PREFIX): Correctly translate from + a function name to a section name. + +1998-02-18 Doug Evans + + * tree.h (merge_machine_{type,decl}_attributes): Declare. + (split_specs_attrs, strip_attrs): Add prototypes. + * tree.c (merge_machine_{type,decl}_attributes): New functions. + * c-decl.c (duplicate_decls): Call merge_machine_decl_attributes. + Update olddecl's attributes too. + * c-common.c (strip_attrs): New function. + * c-typeck.c (common_type): Call merge_machine_type_attributes. + * varasm.c (make_function_rtl): New target macro REDO_SECTION_INFO_P. + (make_decl_rtl): Likewise. + +1998-02-18 Jim Wilson + + * c-decl.c (shadow_tag_warned): Call split_specs_attrs. + +Wed Feb 18 09:09:50 1998 Jeffrey A Law (law@cygnus.com) + + Remove this change until we can fix it correctly. + * collect2.c: Bracket declaration of 'exportf' and + 'full_real_ld_suffix'. + +Wed Feb 18 08:44:25 1998 Bernd Schmidt + + * Makefile.in (STAGESTUFF): Add genrtl.c, genrtl.h and gengenrtl. + +Tue Feb 17 23:30:20 1998 Bernd Schmidt + + * c-common.c (c_expand_start_cond, c_expand_end_cond, + c_expand_start_else): Don't warn about non-ambiguous else even if + braces are missing. + +Tue Feb 17 23:56:50 1998 Robert Lipe + + * sco5.h (ASM_OUTPUT_DOUBLE, ASM_OUTPUT_FLOAT, + ASM_OUTPUT_LONG_DOUBLE): Delete. Use the ones from i386.h + instead. + +Tue Feb 17 22:56:14 1998 Richard Henderson + + * combine.c (simplify_rtx): Obey CLASS_CANNOT_CHANGE_SIZE when + simplifying a subreg of a hard reg. + (expand_compound_operation): Likewise. + (force_to_mode): Likewise. + +Tue Feb 17 22:37:22 1998 Kaveh R. Ghazi + + * fold-const.c: Include "system.h" to get stdlib.h and stdio.h. + (lshift_double): Add parentheses around + or - inside shift. + (rshift_double): Likewise. + (size_int_wide): Explicitly set type of `bit_p' to `int'. + + * Makefile.in (fold-const.o): Depend on system.h. + + * Makefile.in (gcc.o): Depend on system.h, in accordance with last + change to gcc.c. + + * haifa-sched.c: Include "system.h" to get and . + (BLOCKAGE_RANGE): Add parentheses around arithmetic in operand of |. + (sched_note_set): Remove unused parameter `b', all callers changed. + (schedule_block): Likewise for `rgn'. + (split_hard_reg_notes): Likewise for `orig_insn'. + (check_live): Likewise for `trg'. + (update_live): Likewise. + (check_live_1): Explicitly declare variable `i' as int. + (update_live_1): Likewise. + (insn_issue_delay): Remove unused variable `link'. + (sched_analyze_2): Add default case in enumeration switch. + (schedule_insns): Remove unused variable `i'. + + * Makefile.in ($(SCHED_PREFIX)sched.o): Depend on system.h. + +Tue Feb 17 22:31:04 1998 Jeffrey A Law (law@cygnus.com) + + * loop.c (rtx_equal_for_loop_p): Add some braces to disambiguate + a dangling else clause. + +Tue Feb 17 21:28:12 1998 Gavin Koch + + * mips/mips.h (CAN_ELIMINATE): Don't eliminate the frame + pointer for the stack pointer in MIPS16 and 64BIT. + +Tue Feb 17 21:17:30 1998 J"orn Rennecke + + * rtl.h (force_line_numbers, restore_line_number_status): Declare. + * emit-rtl.c (force_line_numbers, restore_line_number_status): + New functions. + * stmt.c (struct nesting): Replace seenlabel with line_number_status. + (expand_start_case): Adjust to this change. + (check_seenlabel): New function. + (pushcase, pushcase_range, expand_endcase): Use it. + +Tue Feb 17 10:14:32 1998 J"orn Rennecke + + * i386.md (adddi3): Add =!r,0,0,X alternative. + +Mon Feb 16 16:13:43 1998 David Edelsohn + + * rs6000.h (MY_ISCOFF): Add numeric value of U803XTOCMAGIC. + * x-aix31 (INSTALL): Delete. + +Mon Feb 16 09:24:32 1998 Gavin Koch + + * mips/mips.c (mips_expand_epilogue): Update tsize_rtx if + tsize changes to something other than zero. + +Mon Feb 16 09:11:48 1998 Gavin Koch + + * ginclude/va-mips.h: Replace casts of pointers to int with + casts of pointers to __PTRDIFF_TYPE__. + +Mon Feb 16 08:17:14 1998 John Carr + + * loop.c (strength_reduce, record_biv, record_giv): Use + HOST_WIDE_INT_PRINT_DEC to print CONST_INT values. + +1998-02-16 Jason Merrill + + * tree.c (first_rtl_op): New fn. + (unsave_expr_now): Use it. + * print-tree.c (print_node): Likewise. + * tree.c (has_cleanups): New fn. + * fold-const.c (fold, case CLEANUP_POINT_EXPR): Use it. Be more + conservative about pushing the cleanup point down. + * tree.h: Declare them. + +Sun Feb 15 23:28:44 1998 Jeffrey A Law (law@cygnus.com) + + * toplev.c (flag_schedule_reverse_before_reload): Delete variable. + (flag_schedule_reverse_after_reload): Likewise. + (f_options): Remove reverse scheduling support. + * flags.h (flag_schedule_reverse_before_reload): Delete declaration. + (flag_schedule_reverse_after_reload): Likewise. + * haifa-sched.c (rank_for_schedule): Remove support for reverse + scheduling. + +Sun Feb 15 21:33:55 1998 Kaveh R. Ghazi + + * gcc.c: Get system includes, prototypes and macros via "system.h" + instead of doing it manually. Change all calls of the ctype + macros to custom versions defined in "system.h". + + * system.h: Fix return type of bcmp prototype from `void' to `int'. + Make bcopy, bcmp and bzero prototypes explicitly `extern'. + Add a prototype for getenv. + +Sun Feb 15 17:05:41 1998 Jim Wilson + + * mips/mips.h (INITIAL_ELIMINATION_OFFSET): Readd Jun 6 change. + +Sun Feb 15 15:23:15 1998 John Carr + + * alias.c: Include and . + (init_alias_analysis): Pass NULL_RTX instead of 0 to record_set. + +Sat Feb 14 11:23:09 1998 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Sat Feb 14 05:08:21 1998 Richard Earnshaw (rearnsha@arm.com) + + * arm.md (movsfcc): Also validate operands[3] when compiling hard + float. + (movdfcc): Only accept fpu_add_operand for operands[3]. + + * arm/t-semi (STMP_FIXPROTO): Define to nothing. + * arm/t-semiaof (STMP_FIXPROTO): Likewise. + +Sat Feb 14 02:02:41 1998 Jeffrey A Law (law@cygnus.com) + + * varasm.c (output_constant_pool): Bring back 'done' label inside + an appropriate #ifdef. + + * bitmap.c (bitmap_element_allocate): Wrap variable 'i' in an + appropriate #ifdef. + (bitmap_copy, bitmap_operation): Likewise. + * combine.c (combinable_i3pat): Similarly for 'src'. + * function.c (fixup_var_refs_1): Similarly for 'outerdest'. + (locate_and_pad_parm): Similarly for 'reg_parm_stack_space'. + * regclass.c (copy_cost): Similarly for 'secondary_class'. + * reload.c (make_memloc): Similarly for 'i'. + (find_reloads_address_1): Similarly for 'link'. + * reload1.c (reload): Similarly for 'previous_frame_pointer_needed'. + (emit_reload_insns): Similarly for 'second_reloadreg'. + * unroll.c (iteration_info): Similarly for 'v'. + + * caller-save.c (insert_save_restore): Remove unused variable 'i'. + * calls.c (expand_call): Similarly for 'i'. + (emit_library_call, emit_library_call_value): Similarly for 'mode'. + * fold-const.c (strip_compound_expr): Similarly for 'type'. + * function.c (fixup_var_refs_1): Similarly for 'width'. + (fixup_memory_subreg): Similarly for 'saved'. + (locate_and_pad_parm): Similarly for 'boundary_in_bytes.' + (setjmp_protect): Similarly for 'sub'. + (thread_prologue_and_epilogue_insns): Similarly for 'insn'. + * loop.c (record_giv): Similarly for 'p'. + (combine_givs): Similarly for 'temp_iv'. + (indirect_jump_in_function_p): Similarly for 'is_indirect_jump'. + * recog.c (validate_replace_rtx_1): Similarly for 'width'. + * tree.c (get_set_constructor_bytes): Similarly for 'vals'. + * unroll.c (unroll_loop): Similarly for 'copy'. + (iteration_info): Similarly for 'b'. + * varasm.c (assemble_string): Similarly for 'i'. + * i386.h (LEGITIMIZE_ADDRESS): Similarly for 'orig_x'. + +1998-02-13 Martin von Loewis + + * c-lang.c (lang_print_xnode): New function. + * objc/objc-act.c (lang_print_xnode): Likewise. + * print-tree.c (print_node): Call it + +Fri Feb 13 14:38:34 1998 Jim Wilson + + * dwarf2out.c (decl_scope_node): New type. + (decl_scope_table): Change type to use it. + (decl_scope_table_allocated, decl_scope_depth): Change type to int. + (push_decl_scope): Use new type. New locals containing_scope, i. + Add code to handle setting previous field. + (scope_die_for): Change type of local i to int. Add code to use + previous field. + (dwarf2out_init): Use new type. + +1998-02-13 Jason Merrill + + * except.c (emit_throw): Lose throw_used. + +Fri Feb 13 20:36:05 1998 J"orn Rennecke + + * sched.c (update_flow_info, REG_WAS_0): Ignore if setting insn + was deleted. + * haifa-sched.c (update_flow_info, REG_WAS_0): Likewise. + +Fri Feb 13 12:18:40 1998 Jeffrey A Law (law@cygnus.com) + + * genextract.c (main): Fix typo. + +Fri Feb 13 08:41:49 1998 Robert Lipe + + * c-lang.c (finish_file): Bracket declaration of static_ctors, + static_dtors. + + * calls.c (expand_call): Bracket declaration of 'rtx_before_call', + 'old_stack_arg_under_construction' + (emit_library_call): Bracket declaration of 'upper_bound', + 'lower_bound', 'i', 'reg_parm_stack_space' + (emit_library_call_value): Likewise. + (store_one_arg): + + * collect2.c: Include when appropriate. + Bracket declaration of 'exportf' and 'full_real_ld_suffix'. + + * emit-rtl.c (prev_cc0_setter): Remove unused variable 'link'. + + * explow.c (plus_constant_for_output_wide): Remove unused variable + 'code'. + (memory_address): Remove unused variable 'orig_x'. + + * genattrtab.c (make_canonical): Remove unreferenced label 'cond:'. + (write_const_num_delay_slots): Remove unused variable 'i'. + + * genopinit.c (main): Remove unused variables 'dummy', 'insn_ptr'. + (gen_insn): Remove unused variable 'obstack_ptr'. + + * libgcc2.c (__bb_exit_func): Remove unused variables 'ret', + 'j', 'tmp', 'i'. + (__bb_exit_trace_func): Remove unused variable 'e'. + + * optabs.c (expand_binop): Remove unused variables 'lhs', 'rhs', + 'funexp'. + (expand_unop): Remove unused variable 'funexp'. + (expand_complex_abs): Remove unused variable 'funexp'. + (init_optabs): Bracket declaration of 'j'. + (init_complex_libfuncs): Deleted. Dead static function. + + * profile.c (branch_prob): Remove unused variables 'insn', 'dest'. + + * reg-stack.c: Fix typo in proto for 'get_asm_operand_lengths' + (reg_to_stack): 'initialized', 'before_function_beg' + explicitly type as ints instead of defaulting. + (emit_swap_insn): Remove unused variable 'i2'. + (compare_for_stack_reg): Remove unused variable 'src_note'. + + * rtlanal.c (computed_jump_p): Remove unused variable 'computed_jump'. + + * sched.c (actual_hazard): Bracket declaration of 'this_cost'. + + * stmt.c (add_case_node): Add parens for assignment used as truth. + (all_cases_count): Remove unused variable 'count_high'. + (mark_seen_cases): Remove unused variable 'i'. + (check_for_full_enumeration_handling): Remove unused variable 't'. + Bracket declaration of 'all_values', 'l'. + + * tlink.c: Include , , /. + + * varasm.c (assemble_string): Remove unused variable 'i'. + (immed_double_const): Remove unused variable 'in_current_obstack'. + (immed_real_const_1): Likewise. + (output_constant_pool): Remove unreferenced label 'done'. + (output_constant): Remove unused variable 'x'. + + * i386/i386.h (ENCODE_SECTION_INFO): TREE_PUBLIC is an int, not + a string. + + * i386/sco5.h (ASM_OUTPUT_ASCII): Add parens for assignment used + as truth. + +Fri Feb 13 10:21:41 1998 J"orn Rennecke + + * combine.c (can_combine_p): Handle USEs in PARALLELs. + +Fri Feb 13 01:34:14 1998 H.J. Lu (hjl@gnu.org) + + * config/linux.h (LIB_SPEC): Add -lc for -shared if + USE_GNULIBC_1 is not defined. + * config/sparc/linux.h; Likewise. + + * config/sparc/linux64.h (LIB_SPEC): Add -lc for -shared. + + * config/alpha/linux-elf.h (LIB_SPEC): New. Defined if + USE_GNULIBC_1 is not defined. + +Fri Feb 13 01:29:29 1998 Franz Sirl + + * rs6000/sysv4.h (ENDFILE_SPEC): Add missing %(endfile_linux) + for -mcall-linux. + +Fri Feb 13 01:23:46 1998 Kaveh R. Ghazi + + * system.h: New file to get common systems includes and various + definitions and declarations based on autoconf macros. + +Fri Feb 13 00:46:19 1998 Jeffrey A Law (law@cygnus.com) + + * cccp.c (new_include_prefix): Correctly handle -I./. + +Thu Feb 12 20:16:35 1998 Michael Meissner + + * rs6000.md: Replace gen_rtx (CONST_INT,...) with GEN_INT. + +Thu Feb 12 16:45:17 1998 Robert Lipe + + * expr.c (expand_assignment): Correct typo exposed by -Wall. + offset should have been a truth value, not an assignment. + +Thu Feb 12 15:26:50 1998 Jeffrey A Law (law@cygnus.com) + + * cse.c (delete_dead_from_cse): If a libcall produces a constant + result and that result can be substituted into SET_SRC of the + insn with the REG_RETVAL note, then perform the substitution + and delete the libcall. + +Thu Feb 12 14:04:09 1998 Gavin Koch + + * mips.md (trucndihi2,truncdiqi2): Change these to support + mips16. + +Thu Feb 12 11:34:55 1998 Gavin Koch + + * mips/mips.c (movdi_operand): Direct references to symbols + that arn't mips16 consts in mips16 mode arn't valid operands. + + * mips/mips.c (mips_move_2words): Add gprel handling. + +Thu Feb 12 11:18:37 1998 Gavin Koch + + * mips.md (extendsidi2): Allow extension to/from a non-mips16 + register. + +Thu Feb 12 00:04:16 1998 Marc Lehmann + + * i386.c: Conditionally include , , and + . + +Wed Feb 11 11:43:34 1998 Kaveh R. Ghazi + + * Makefile.in (WARN_CFLAGS): New variable. + (bootstrap, bootstrap2, bootstrap3, bootstrap4): Use it. + +1998-02-11 Mark Mitchell + + * config/i386/i386.c (reg_mentioned_in_mem): Don't abort when + falling through default case in switch. + (i386_aligned_p): Likewise. + +Wed Feb 11 12:59:56 1998 Lee Iverson + + * mips/mips.h (mips_abi_string): Correct typo in comment. + +Wed Feb 11 08:29:56 1998 Gavin Koch + + * mips/mips.md (movdi): These PLUS's need to be Pmode. + +Wed Feb 11 01:47:54 1998 Kaveh R. Ghazi + + * Makefile.in (dwarf2out.o, emit-rtl.o, jump.o, cse.o, unroll.o, + reorg.o, regmove.o): Depend on insn-codes.h, it gets included + indirectly via expr.h. + +Wed Feb 11 01:44:13 1998 Richard Henderson + + * stor-layout.c (layout_type): Do upper - lower in the native type, + so as to properly handle negative indices. + +Wed Feb 11 01:35:55 1998 Robert Lipe + + * except.c (start_dynamic_cleanup): Remove unused variable 'dhc'. + (expand_eh_region_start_tree): Remove unused variable 'note'. + (exception_optimize): Remove unused variable 'regions'. + (expand_builtin_eh_stub): Remove unused variable 'temp'. + (copy_eh_entry): Deleted. Dead function. + + * expr.c (move_block_to_reg): Bracket declaration of 'pat' and + 'last' with same #if HAVE_load_multiple as use of it. + (move_block_from_reg): Likewise. + (emit_move_insn_1): Remove unused variable 'insns'. + (store_constructor): Bracket declaration of startb, endb with + #if TARGET_MEMFUNCTIONS. Remove unused variables 'set_word_size' + 'target', and 'xtarget'. + (expand_builtin_setjmp): Remove unused variables 'op0', + 'next_arg_reg', 'old_inhibit_defer_pop'. + (expand_builtin): Remove unused variable 'offset'. + (do_store_flag): Remove unused variables 'pattern', 'jump_pat'. + (emit_queue): Add parens for assignment used as conditional. + (expand_expr): Case TARGET_EXPR: Remove unused variable 'temp'. + +Wed Feb 11 01:30:49 1998 Marc Lehmann + + * i386.c: Added include for recog.h. + (override_options): Removed unused variable p. Initialized regno to + avoid warning. + (order_regs_for_local_alloc): Initialized regno to avoid warning. + (legitimize_address): Likewise for 'other'. + (i386_aligned_reg_p): Added default case with abort (). + (print_operand): Likewise. + (reg_mentioned_in_mem): Likewise. + (ix86_expand_binary_operator): Removed unused variables i & insn. + (ix86_expand_unary_operator): Removed unused variable insn. + (output_fp_cc0_set): Removed unused variable unordered_label. + +Wed Feb 11 01:23:03 1998 John F. Carr + + * i386.c, i386.h, i386.md: Change gen_rtx (X, ...) to gen_rtx_X (...). + Use GEN_INT instead of gen_rtx (CONST_INT). Make printf arguments + and format string match. + +Wed Feb 11 01:17:39 1998 Jeffrey A Law (law@cygnus.com) + + * flow.c (life_analysis): Do not consider the stack pointer live at + the end of a function if the function calls alloca. + (mark_used_regs): Similarly. + +1998-02-10 John F Carr + + * config/sparc/sparc.md (movdi_v8plus): Output stx on alternative + 1, fzero on alternative 8. + +Tue Feb 10 09:02:19 1998 Richard Kenner + + * rs6000.c (setup_incoming_varargs): Always set rs6000_sysv_varargs_p. + +Tue Feb 10 03:35:43 1998 J"orn Rennecke + + * reload.c (find_reloads_toplev): Handle arbitrary non-paradoxical + SUBREGs of CONST_INTs. + +Mon Feb 9 17:52:36 1998 John Carr + + * mips.c (print_operand, function_prologue): Make printf format + match argument type. + +Mon Feb 9 02:37:25 1998 Kaveh R. Ghazi + + * alpha.c (alpha_return_addr): Remove unused variable `first'. + (alpha_ra_ever_killed): Remove unused variables `ra' and `i'. + (output_epilog): Remove unused variable `frame_size_from_reg_save'. + +Sun Feb 8 14:56:03 1998 Richard Kenner + + * loop.c (strength_reduce): When placing increment for auto-inc + case, do comparison in loop order. + +Sun Feb 8 13:21:38 1998 John Carr + + * bitmap.c (bitmap_debug_file): HOST_PTR_PRINTF converts a pointer, + not a HOST_WIDE_INT. + + * calls.c (expand_call): Change test of expand_inline_function + return value to stop compiler warning. + + * genattrtab.c (RTL_HASH): Cast pointer to long, not HOST_WIDE_INT. + +Sun Feb 8 12:04:24 1998 Jim Wilson (wilson@cygnus.com) + Jeff Law (law@cygnus.com) + + * regmove.c: Fix various minor formatting problems. + (optimize_reg_copy_1): Stop search at CALL_INSNs if flag_exceptions + is true. Make end of basic block tests consistent through regmove.c. + (optimize_reg_copy_2, optimize_reg_copy_3): Likewise. + (fixup_match_2, fixup_match_1, regmove_optimize): Likewise. + +Sun Feb 8 01:49:18 1998 Kaveh R. Ghazi + + * gansidecl.h: Check for a conflicting macro definition before + attempting to prototype bcopy, bcmp or bzero. + +Sun Feb 8 00:09:59 1998 Jeffrey A Law (law@cygnus.com) + + * expr.c (clear_pending_stack_adjust): Handle case where a function + calls alloca, but the user has specified -fomit-fframe-pointer. + + * function.c (assign_parms): Fix typo in last change. + +Sat Feb 7 23:54:29 1998 Robert Lipe + + * gcc.c: Include /, , , + . + (free_path_suffix): Remove unreferenced static function. + (process_command): Remove unused variable temp. + (default_arg): Remove unused variable i. + (do_spec_1): Add parens for assignment used as truth value. + (main): Likewise. + (validate_all_switches): Likewise. + (main): Remove unused variables i, first_time> + + * c-common.c: Include and /. + + * calls.c (expand_call): Remove unused variables funtree, + n_regs, and tmpmode. + + * dbxout.c, except.c: Include /. + + * explow.c (plus_constant_for_output_wide): Removed unused + variable all_constant. + + * c-decl.c, genattr.c, genattrtab.c, getconfig.c, genemit.c + genextract.c, genflags.c, genopinit.c genoutput.c, genpeep.c, + genrecog.c, global.c, integrate.c , stupid.c : Include + . + + * genextract.c (walk_rtx): Remove unused variable link. + + * genrecog.c (concat): Remove unreferenced static function. + + * prefix.c: Include /, + + * stmt.c: Include . + (expand_asm_operands): Remove unused variable val1. + (expand_return): Remove unused variable block. + (pushcase): Remove unused variables l and n. + (pushcaserange): Likewise. + + * unroll.c (unroll_loop): Remove unused variable temp. + +Sat Feb 7 23:46:09 1998 Greg McGary + + * c-decl.c (pushdecl): Set DECL_ORIGINAL_TYPE once only. + +Sat Feb 7 15:11:28 1998 Kaveh R. Ghazi + + * aclocal.m4 (GCC_FUNC_PRINTF_PTR): New macro to test the printf + functions for whether they support the %p format specifier. + * acconfig.h (HOST_PTR_PRINTF): Insert stub for autoconf. + * configure.in (GCC_FUNC_PRINTF_PTR): Use it. + * configure, config.in: Rebuild. + +Fri Feb 6 14:20:16 1998 Jim Wilson + + * function.c (assign_parms): New variable named_arg, with value + depending on STRICT_ARGUMENT_NAMING. Use instead of ! last_named. + +Fri Feb 6 14:34:28 1998 Gavin Koch + + * mips/t-r3900: New - same as t-ecoff but eliminate + multilibs: mips1 and mips3. + * configure.in (tx39*): Use new mips/t-r3900. + * configure: Rebuild. + * mips/r3900.h (MULTILIB_DEFAULTS): Eliminate mips1. + +1998-02-06 Jason Merrill + + * dwarf2out.c: Add old_args_size. + (dwarf2out_args_size): Use it. + (dwarf2out_begin_prologue): Initialize it. + (dwarf2out_stack_adjust): If !asynchronous_exceptions, save up + pushed args until we see a call. + * final.c (final_scan_insn): Hand CALL_INSNs off to the dwarf2 code + before outputting them. + +1998-02-06 Kriang Lerdsuwanakij + + * cplus-dem.c (demangle_template_template_parm): New function. + (demangle_template): Handle template template parameters. + +1998-02-02 Mark Mitchell + + * calls.c (expand_call): Don't confuse member functions named + realloc, setjmp, and so forth with the standard library + functions of the same names. + +Thu Feb 5 21:59:49 1998 Jeffrey A Law (law@cygnus.com) + + * stmt.c (expand_asm_operands): Correctly identify asm statements + no output operands. + +Thu Feb 5 21:56:06 1998 Mumit Khan + + * c-common.c (decl_attributes): Flag unrecognized attribute + functions as warnings instead of as errors. + +1998-02-05 Marc Lehmann + + * integrate.c (INTEGRATE_THRESHOLD): Inline only small functions + when -Os is specified. + * toplev.c (main): Don't disable flag_inline_functions anymore when + -Os is in effect. - * final.c (final_scan_insn): Don't output labels if target - specifies ASM_OUTPUT_ADDR_{DIFF}_VEC. Do these macro operations - instead. +Fri Feb 6 00:27:36 1998 J"orn Rennecke - * reorg.c (dbr_schedule): When taking on BR_PRED notes at the end, - don't forget to walk inside SEQUENCESs too as these are what the - delay slot scheduler will create. + * regmove.c: Update. + * flags.h (flag_regmove): Declare. + * rtl.h (optimize_reg_copy_1, optimize_reg_copy_2): Don't declare. + * local-alloc.c (optimize_reg_copy_1, optimize_reg_copy_2): + Moved into regmove; changed caller. + * toplev.c (rest_of_compilation): Call regmove_optimize also for + expensive_optimizations. -Mon Aug 10 01:21:01 1998 Richard Henderson +Thu Feb 5 13:38:42 1998 Jeff Law (law@cygnus.com) - * alpha.md (extxl+1,+2): New patterns to work around - combine lossage. + * version.c: Bump for snapshot. -Sat Aug 8 19:20:22 1998 Gary Thomas (gdt@linuxppc.org) +Thu Feb 5 01:45:19 1998 J"orn Rennecke + Undo this change (the problem was actually in reload): + Fri Jan 23 23:28:59 1998 J"orn Rennecke - * rs6000.c (rs6000_allocate_stack_space): Fix typo which - caused bad assembly code to be generated. + * sh.md (movqi_i+1): New peephole. -Sat Aug 8 18:53:28 1998 Jeffrey A Law (law@cygnus.com) +Tue Feb 3 01:11:12 1998 Jeffrey A Law (law@cygnus.com) - * netbsd.h: Fix typo. + * jump.c (jump_optimize): Lose calls to modified_in_p they are + not needed anymore due to changes elsewhere in jump.c. -Mon Aug 3 00:06:42 1998 Robert Lipe + * jump.c (jump_optimize): Fix first arg to modified_in_p in + previous change. - * config.sub: Fix typo. +Mon Feb 2 19:18:14 1998 Richard Henderson -Sun Aug 2 22:39:08 1998 Hans-Peter Nilsson + * expr.c (expand_builtin_setjmp): Accept two new arguments for + the labels to branch to on first and subsequent executions. Don't + play with __dummy. Rename `setjmp' insn to `builtin_setjmp_setup', + and provide it with the jmp_buf. Use only one of + `builtin_setjmp_receiver' or `nonlocal_goto_receiver', + and provide the former with the target label. + (expand_builtin) [BUILTIN_SETJMP]: Generate a label for use by setjmp. + (expand_builtin) [BUILTIN_LONGJMP]: Split out to ... + (expand_builtin_longjmp): ... here. Recognize a `builtin_longjmp' + insn to replace all of the normal nonlocal_goto code. Don't play + with __dummy. Correct arguments to nonlocal_goto. + * expr.h (expand_builtin_setjmp): Update prototype. + * except.c (start_dynamic_handler): When using builtin_setjmp, + generate more accurate flow information. - * invoke.texi (Environment Variables): Typo: Change "ascpects" - into "aspects". - (Running Protoize): Typo: Change "ther" into "other". + * alpha.md (nonlocal_goto_receiver_osf): Delete. + (nonlocal_goto_receiver_vms): Rename to nonlocal_goto_receiver. + (builtin_longjmp, builtin_setjmp_receiver): New. + * sparc.md (update_return): Disambiguate unspec number. + (nonlocal_goto): Rearrange arguments to match caller in except.c. + (builtin_setjmp_setup): Rename from setjmp. Match and ignore the + jmp_buf operand. + * mips.md (nonlocal_goto_receiver, builtin_setjmp_receiver): Remove. + (builtin_setjmp_setup*, builtin_longjmp): New. -Sun Aug 2 00:42:50 1998 Jeffrey A Law (law@cygnus.com) +Mon Feb 2 16:43:10 1998 John Carr - * i386/netbsd.h: Undo previous change to DWARF2_UNWIND_INFO. - * m68k/netbsd.h: Likewise. - * ns32k/netbsd.h: Likewise. - * sparc/netbsd.h: Likewise. + * mips.md: Change gen_rtx (CONST_INT) to GEN_INT. -Sat Aug 1 17:59:30 1998 Richard Henderson +Mon Feb 2 13:06:47 1998 Jim Wilson - * ginclude/va-alpha.h (va_list): Use a typedef, not a define. - * ginclude/va-clipper.h (va_list): Likewise. + * vmsconfig.com: Remove bytecode references. -Fri Jul 31 20:22:02 1998 Michael Meissner +1998-01-30 Andreas Schwab - * rs6000.c (rs6000_override_options): If big endian and -Os, use - load/store multiple instructions unless user overrides. + * dwarf2out.c (dwarf2out_frame_init): Undo last change, so that + -fno-sjlj-exceptions works for a target that defines + DWARF2_UNWIND_INFO as zero. -Fri Jul 31 17:08:59 1998 Jeffrey A Law (law@cygnus.com) + * regmove.c (fixup_match_1): Undo last change which removed some + "useless" code, and add a comment explaining this. - * ns32k/netbsd.h: Fix typo. +Mon Feb 2 10:47:14 1998 Gavin Koch (gavin@cygnus.com) -Fri Jul 31 10:23:55 1998 Doug Evans + * mips.c (mips_expand_prologue): Change uses of TARGET_64BIT + to TARGET_LONG64. - * m32r/m32r.h (ASM_OUTPUT_SOURCE_LINE): Always output line number - labels with .debugsym if no parallel insns. +Mon Feb 2 10:38:41 1998 Klaus Kaempf -Thu Jul 30 19:15:53 1998 Richard Henderson + * makefile.vms: Remove bytecode references. + Create genrtl files. - * alpha.md (fp cmp): Replicate patterns for ALPHA_TP_INSN. - (fcmov): Remove ALPHA_TP_INSN patterns -- fcmov doesn't trap. +Mon Feb 2 02:08:04 1998 Michael P. Hayes -Thu Jul 30 19:50:15 1998 David Edelsohn + * jump.c (jump_optimize): Allow conditional loading of floating point + constants and constants from memory. Reinstalled modified_in_p tests. - * rs6000/x-aix43 (AR_FOR_TARGET_FLAGS): Delete. - (AR_FOR_TARGET): Define. +Mon Feb 2 01:38:39 1998 J"orn Rennecke -Thu Jul 30 12:29:12 1998 Mark Mitchell + * loop.c (get_condition): Handle sign-extended constants. - * dyn-string.h: New file. - * dyn-string.c: Likewise. - * Makefile.in (OBJS): Add dyn-string.o. - (dwarf2out.o): Add dyn-string.h dependency. - (dyn-string.o): List dependencies. - * dwarf2out.c: Include dyn-string.h. - (ASM_NAME_TO_STRING): Use dyn_string_append, rather than strcpy. - (addr_const_to_string): Take a dyn_string_t, not a char* as a - prototype. Use dyn_string_append rather than strcat, throughout. - (addr_to_string): Use dyn_string_t. +Mon Feb 2 01:22:46 1998 Hans-Peter Nilsson -Thu Jul 30 13:08:07 1998 Ken Raeburn + * expr.c (emit_push_insn): Add code to use movstrti if present. - Function entry/exit profiling instrumentation: - * expr.h (profile_function_entry_libfunc, - profile_function_exit_libfunc): Declare new variables. - * optabs.c: Define them here. - (init_optabs): Initialize them. - * tree.h (struct tree_decl): New flag - no_instrument_function_entry_exit. - (DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT): New accessor macro. - * c-decl.c (duplicate_decls): Merge it. - * c-common.c (enum attrs): New value A_NO_INSTRUMENT_FUNCTION. - (init_attributes): Use it for "no_instrument_function". - (decl_attributes): Handle it, for functions that have not yet been - compiled. Set decl flag. - * flags.h (flag_instrument_function_entry_exit): Declare new - variable. - * toplev.c (flag_instrument_function_entry_exit): Define it here. - (f_options): New option "instrument-functions". - * function.h (struct function): New field instrument_entry_exit. - * function.c (current_function_instrument_entry_exit): New - variable. - (push_function_context_to, pop_function_context_from): Save and - restore. - (expand_function_start): Set current_ variable, maybe emit return - label and entry profile call. - (expand_function_end): Maybe emit exit profile call. + * expr.c (emit_push_insn): Use same max-move-amount for movstrhi + and movstrqi as in emit_block_move (). -Thu Jul 30 00:58:34 1998 Jeffrey A Law (law@cygnus.com) +Mon Feb 2 00:09:52 1998 Toon Moene - * i386.md (movqi): When optimizing a load of (const_int 1) into a - NON_QI_REG_P, pretend the register is SImode. + * config/m68k/x-next: Remove /NextDeveloper/Headers from + the directories to fixinclude - /usr/include is a link + to it and hence its contents are fixed by default. -Wed Jul 29 23:49:23 1998 Todd Vierling +Sun Feb 1 14:15:33 1998 Franz Sirl - * configure.in: Use xm-netbsd.h as the NetBSD xm file (not xm-siglist). - Accept arm32 as arm, m68k4k as m68k, mipsle as mips-dec, and any - manufacturer id for ns32k. - * configure: Regenerated. - * config/netbsd.h: When using ASM_WEAKEN_LABEL, make it global too. - * config/t-netbsd: Don't compile libgcc1-test as the fns are in libc. - * config/i386/netbsd.h: Undefine DWARF2_UNWIND_INFO, not define as 0. - * config/m68k/netbsd.h: Same. - * config/ns32k/netbsd.h: Same. - * config/sparc/netbsd.h: Same. + * rs6000/linux.h: Define JUMP_TABLES_IN_TEXT_SECTION. -Wed Jul 29 22:39:21 1998 Jeffrey A Law (law@cygnus.com) +Sun Feb 1 13:01:15 1998 Klaus Kaempf - * unroll.c (unroll_loop): Do not abort for an UNROLL_MODULO - or UNROLL_COMPLETELY loop that starts with a jump to its - exit code. + * cccp.c (main): Predefine __VMS_VER on VMS. -Wed Jul 29 22:18:14 1998 David Edelsohn +Sun Feb 1 12:39:53 1998 J"orn Rennecke - * rs6000/rs6000.md (absdi2 define_split): Swap operands of MINUS. - * rs6000/rs6000.c (mask64_operand): Use HOST_BITS_PER_WIDE_INT. - (print_operand, case 'B'): Don't fall through. - (print_operand, case 'S'): Correct mask begin/end computation. - Use HOST_BITS_PER_WIDE_INT. - * rs6000/rs6000.h (CPP_PREDEFINES): Define _LONG_LONG. - (CONDITIONAL_REGISTER_USAGE): GPR13 fixed if TARGET_64BIT. - * rs6000/aix41.h (CPP_PREDEFINES): Same. - * rs6000/aix43.h (CPP_PREDEFINES): Same. + * expr.c (get_inner_reference): Use sbitsizetype for type sizes. + * fold-const.c (size_int): Replace with + (size_int_wide). + (make_bit_field_ref): Use bitsize_int for bit position. + * stor-layout.c (sizetype): Delete. + (sizetype_tab, sbitsizetype, ubitsizetype): Declare. + (layout_record, layout_union, layout_type): + Use bitsize_int for bit size. + (set_sizetype): New function. + (make_signed_type, make_unsigned_type): Use it. + * c-decl.c (init_decl_processing): Likewise. + * tree.h (size_int): Don't delcare, #define. + (size_int_wide, sizetype_tab, sbitsize, ubitsize): Declare. + (set_sizetype): Declare. + (bitsize_int, size_int_2, BITS_PER_UNIT_LOG, sizetype, bitsizetype): + Define. + * c-typeck.c (c_sizeof, c_sizeof_nowarn, c_size_in_bytes): + Convert result to sizetype. + (really_start_incremental_init, push_init_level): + Set type of constructor_bit_index to sbitsizetype. + (push_init_level): Use unsigned arithmetic to determine padding. + (output_init_element): Likewise. + +Sun Feb 1 03:32:07 1998 Jeffrey A Law (law@cygnus.com) + + * combine.c (simplify_shift_const): Fix typo in last change. + +Sun Feb 1 02:50:46 1998 John Carr + + * combine.c (simplify_shift_const): (lshiftrt (truncate (lshiftrt))) + is (truncate (lshiftrt)). + +Sun Feb 1 01:06:53 1998 Richard Henderson + + * alpha.c (alpha_expand_unaligned_load): Use expand_binop properly. + Make sure result winds up in TGT. + (alpha_expand_unaligned_store): Use expand_binop properly. Allow + src to be other than DImode. + (alpha_expand_unaligned_load_words): Tidy. Take an offset argument. + (alpha_expand_unaligned_store_words): Likewise. + (alpha_expand_block_move): Use REGNO_POINTER_ALIGN. Restructure so + that source and destination are separately optimized for alignment. + (alpha_expand_block_clear): Use REGNO_POINTER_ALIGN. + +Sun Feb 1 01:55:09 1998 Jeffrey A Law (law@cygnus.com) + + * mips.md (adddi3_internal_2): Be consistent with adddi3 expander + with handling of -32768. + +Sun Feb 1 01:48:18 1998 Kaveh R. Ghazi + + * aclocal.m4 (GCC_NEED_DECLARATION): Modify macro to accept a + shell variable argument instead of only hard coded functions. + (GCC_NEED_DECLARATIONS): New macro to accept multiple functions. + + * configure.in: Collapse multiple calls to AC_CHECK_FUNCS into one + call. Collapse multiple calls to GCC_NEED_DECLARATION into one + call to GCC_NEED_DECLARATIONS (new macro.) Check if we need + declarations for bcopy, bcmp and bzero. + + * acconfig.h: Add stubs for bcopy, bcmp and bzero declarations. + + * gansidecl.h: If we have bcopy but don't declare it, then do so. + Likewise for bcmp and bzero. Only define macros for bcopy, bcmp, + bzero, index and rindex if they aren't already present. + +Sat Jan 31 11:26:58 1998 Jeffrey A Law (law@cygnus.com) + + * toplev.c (close_dump_file): Wrap function prototype for + argument "func" in PROTO. + (dump_rtl): Likewise. + +Fri Jan 30 22:30:39 1998 John Carr + + * sparc.c (sparc_override_options): Make v8plus and ultrasparc set + MASK_V8PLUS. + (output_function_epilogue): Omit epilogue if nothing drops through. + (output_move_double): Suppress int ldd usage on ultrasparc and v9. + (registers_ok_for_ldd_peep): Likewise. + (print_operand): Suppress b,a on ultrasparc. Let Y accept a constant. + (ultrasparc_adjust_cost): New function. + (sparc_issue_rate): New function. + * sparc.h (MASK_VIS, TARGET_VIS): New. + (MASK_V8PLUS, TARGET_V8PLUS): New. + (TARGET_HARD_MUL32, TARGET_HARD_MUL): New. + (TARGET_SWITCHES): Add vis and v8plus. + (REG_CLASS_FROM_LETTER): Accept d and b for VIS. + (REGISTER_MOVE_COST): FP<->INT move cost 12 for ultrasparc. + (RTX_COSTS): Use TARGET_HARD_MUL. + (ADJUST_COST): Call ultrasparc_adjust_cost. + (ISSUE_RATE): New. + * sparc.md (attr type): Add sload, fpmove, fpcmove. Adjust users + of load & fp appropriately. + (supersparc function units): Adjust for Haifa. + (ultrasparc function units): Likewise. + (get_pc_via_rdpc): All v9, not just arch64. + (movdi_v8plus, movdi_v8plus+1): New. + (adddi3_sp32+1): New. + (subdi3_sp32+1): New. + (movsi_insn, movsf_const_insn, movdf_const_insn): Know VIS. + (addsi3, subsi3, anddi3_sp32, andsi3, and_not_di_sp32): Likewise. + (and_not_si, iordi3_sp32, iorsi3, or_not_di_sp32, or_not_si): Likewise. + (xorsi3_sp32, xorsi3, xor_not_di_sp32, xor_not_si): Likewise. + (one_cmpldi2_sp32, one_cmplsi2): Likewise. + (ldd peepholes): Suppress for v9. + (return_adddi): Kill redundant test. Arg1 may be arith_operand. + (return_subsi): Revmove. + +Fri Jan 30 18:30:03 1998 John F Carr + + * mips.c (save_restore_insns): Set RTX_UNCHANGING_P in register + save/restore MEM rtl. + +Fri Jan 30 09:08:16 1998 Jeffrey A Law (law@cygnus.com) + + * configure.in: Check for declaration of abort. + * acconfig.h: Corresponding changes. + * toplev.c: Use NEED_DECLARATION_ABORT to determine if abort should + be declared. + +Thu Jan 29 20:26:12 1998 Jeffrey A Law (law@cygnus.com) + + * genattrtab.c (optimize): Define in case PRESERVE_DEATH_INFO_REGNO_P + uses it. + +Thu Jan 29 09:27:56 1998 Jeff Law (law@cygnus.com) -Wed Jul 29 11:47:10 1998 Nick Clifton + * version.c: Bump for snapshot. - * config/arm/thumb.md (extendqisi2_insn): Remove earlyclobber - constraint from second alternative. +Thu Jan 29 10:12:27 1998 Jeffrey A Law (law@cygnus.com) -Tue Jul 28 23:29:04 1998 Jason Merrill + * configure.in: Check for atoq and atoll. + * rtl.c (read_rtx): Use HAVE_ATOLL and HAVE_ATOQ to select the + proper routine for converting ascii into long long values. - * configure.in: Fix --without/--disable cases for local-prefix, - gxx-include-dir and checking. +Thu Jan 29 01:28:14 1998 Klaus Kaempf -Tue Jul 28 22:01:23 1998 David S. Miller + * cccp.c (SYS$SEARCH, SYS$PARSE): Write as upper-case. - * configure.in (enable_haifa): Set by default for sparc64 too. - configure: Rebuilt. + * vmsconfig.com: Remove bytecode references. -Tue Jul 28 23:29:04 1998 Jason Merrill + * alpha/vms.h (PREFIX): Define. - * i386/cygwin32.h (VALID_MACHINE_TYPE_ATTRIBUTE): New macro. - * i386/winnt.c (associated_type): New fn. - (i386_pe_valid_type_attribute_p): New fn. - (i386_pe_check_vtable_importexport): Remove. - (i386_pe_dllexport_p): Use associated_type. - (i386_pe_dllimport_p): Likewise. + * alpha/vms.h (ASM_OUTPUT_ALIGNED_COMMON): Remove. - From Antonio M. O. Neto : - * i386.c (i386_valid_type_attribute_p): Also accept - attributes for METHOD_TYPEs. + * am-alpha.h: Don't include alloca for OPEN_VMS. -Tue Jul 28 23:17:39 1998 Peter Gerwinski + * alpha/xm-vms.h (HAVE_CPP_STRINGIFY): Define. - * tree.c (build_range_type): Copy TYPE_SIZE_UNIT. + * alpha/xm-vms.h (INCLUDE_DEFAULTS): Define. + (GCC_INCLUDE_DIR): Define. -Tue Jul 28 22:31:12 1998 Craig Burley + * make-cc.com, make-cccp.com, make-cc1.com: Removed. + * makefile.vms: New file. - * gcc.c: Fix commentary describing %g, %u, %U, and %O. + * alpha/vms.h (CPP_PREDEFINES): Remove -Dalpha. - * gcc.c (do_spec_1): Fix handling of %g%O and %U%O to prevent - them from generating a new base name for each occurrence of - a specific suffix. + * alpha.c (output_prolog): Output '.name' directive + for minimal traceback information. -1998-07-28 Vladimir N. Makarov + * alpha.c (output_prolog): Don't prepend entry point symbols + with '$' on OPEN_VMS. - * cse.c (cse_insn): Enable substitution inside libcall only for REG, - SUBREG, MEM. - * rtlanal.c (replace_rtx): Prohibit replaces in CONST_DOUBLE. +Thu Jan 29 00:25:35 1998 David S. Miller + Jeffrey A Law (law@cygnus.com) - * cplus-dem.c (type_kind_t): New type. - (demangle_template_value_parm): Add type_kind_t parameter. Rely - on this parameter, rather than demangling the type again. - (demangle_integral_value): Pass tk_integral. - (demangle_template_: Pass the value returned from do_type. - (do_type): Return a type_kind_t. Pass tk_integral to - demangle_template_value_parm for array bounds. - (demangle_fund_type): Likewise. + * rtl.c (read_rtx): Use atol/atoq based upon disposition of + HOST_WIDE_INT. + + * genattrtab.c (write_test_expr): Use HOST_WIDE_INT_PRINT_DEC + as needed. + * genemit.c (gen_exp): Likewise. + * genpeep.c (match_rtx): Likewise. + * genrecog.c (write_tree_1): Likewise. + + * c-lex.c (yyprint): Use proper format string based upon + disposition of HOST_BITS_PER_WIDE_INT. + (yylex): Put casts in right place for args to build_int_2. + +Thu Jan 29 00:24:29 1998 Jeffrey A Law (law@cygnus.com) + + * combine.c: Fix typos in Jan27 changes. + +Thu Jan 29 00:07:49 1998 Ollivier Robert + + * i386/freebsd.h (LIB_SPEC): Correctly handle -shared, -p and friends. + (LINK_SPEC): Likewise. + (STARTFILE_SPEC): Likewise. + +1998-01-28 Mike Stump + + * rtlanal.c (dead_or_set_regno_p): Ignore REG_DEAD notes after + reload completes. + * genattrtab.c (reload_completed): Define. + + * m32r.md, mips.md, mn10200.md, mn10300.md, pyr.md: Remove obsolete + comments. + +Wed Jan 28 20:11:06 1998 J"orn Rennecke + + * reload.c (push_reload): If WORD_REGISTER_OPERATIONS, reload the + SUBREG_REG if the word count is unchanged, also in the input reload + case. Disable non-applicable sanity checks. + +Wed Jan 28 20:08:26 1998 Jeffrey A Law (law@cygnus.com) + + * config/t-svr4 (TARGET_LIBGCC2_CFLAGS): Add -fPIC. + +Wed Jan 28 20:04:43 1998 Ian Lance Taylor + + * i386/t-cygwin32 (LIMITS_H_TEST, LIBGCC2_INCLUDES): Define. + +Wed Jan 28 11:45:27 1998 Per Bothner + + * dbxout.c (dbxout_type): For a RECORD_TYPE, check that TYPE_BINFO + is a TREE_VEC before trying to use it for baseclasses. + (Chill uses the same field for a different purpose.) + + * toplev.c (strip_off_ending): Generalize to endings up to 5 chars. + +Tue Jan 27 23:15:55 1998 Lassi A. Tuura + + * config.sub: More accurate determination of HP processor types. + +Tue Jan 27 23:11:11 1998 Kaveh R. Ghazi + + * c-lex.c: Include and /. Add + prototype for `handle_sysv_pragma', and make it static. Add + parentheses around assignment used as truth value. + + * combine.c (combine_instructions): Protect variable `prev' with + macro HAVE_cc0. + (can_combine_p): Protect variable `link' with AUTO_INC_DEC. + (extract_left_shift): Add parentheses around operand of &. + (merge_outer_ops): Avoid an empty body in an else-statement. + (gen_rtx_combine): Remove unused variable `i'. + + * sparc/gmon-sol2.c: Include . Make return type of + function monstartup `void'. Likewise for internal_mcount. Add + `static void' prototype for moncontrol. Reconcile sprintf format + vs. args. + + * sparc/sparc.c: Include and /. + Make return type of function_arg_slotno explicitly `int'. + (reg_unused_after): Add parentheses around assignment used as + truth value. + (save_regs): Add explicit braces to avoid ambiguous `else'. + (function_arg_slotno): Add parentheses around && within ||. + (function_arg_pass_by_reference): Likewise. + (sparc_flat_output_function_prologue): Reconcile fprintf format + vs. args. + + * svr4.h (ASM_OUTPUT_LIMITED_STRING): Add parentheses around + assignment used as truth value. + + * cplus-dem.c: Include . + (demangle_signature): Avoid an empty body in an else-statement. + (do_type): Remove unused variable `lvl'. + + * cppexp.c: Don't have depend on MULTIBYTE_CHARS. + Include /. + (cpp_lex): Remove unused variable `namelen'. + (cpp_lex): Explicitly declare `num_chars' as an int. + + * cpplib.c: Avoid duplicate inclusion of , include + instead. Explicitly declare is_system_include + returning int. + (make_assertion): Remove unused variable `kt'. + (cpp_expand_to_buffer): Hide variable `obuf'. + (output_line_command): Remove unused variables, `line_end', + `line_cmd_buf' and `len'. + (macarg): Remove unused variable `arg_start'. + (special_symbol): Remove unused variable `i'. Add parentheses + around assignment used as truth value. + (do_include): Remove unused variables `pcfname' and `retried', + hide `pcf' and `pcfbuflimit'. + (do_line): Remove unused variable `i'. + (finclude): Hide variable `missing_newline'. + (cpp_handle_options): Remove unused variable `j'. + (read_token_list): Remove unused variable `eofp'. + (cpp_error_with_line): Remove unused variable `i'. + (cpp_warning_with_line): Likewise. + (cpp_pedwarn_with_line): Explicitly declare `column' as int. + (cpp_error_from_errno): Remove unused variable `i'. + + * cse.c (invalidate): Add parentheses around assignment used as + truth value. + (find_best_addr): Move declaration of variable `our_cost' inside + the conditional macro where its used. + (fold_rtx): Avoid an empty body in an if-statement. + (cse_insn): Wrap variables `this_insn_cc0_mode' and + `this_insn_cc0' in macro HAVE_cc0. + + * dwarf2out.c: Include and /. + (ASM_OUTPUT_DWARF_DATA8): Reconcile format vs. args in fprintf's. + (output_uleb128): Likewise. + (output_sleb128): Likewise. + (output_cfi): Likewise. + (output_call_frame_info): Remove unused variables `j', `fde_size' + and `fde_pad'. + (comp_unit_has_inlines): Hide declaration as per rest of file. + (size_of_line_prolog): Correct typo in prototype. + (add_arange): Likewise. + (output_aranges): Likewise. + (add_name_and_src_coords_attributes): Likewise. + (gen_array_type_die): Likewise. + (gen_inlined_subroutine_die): Likewise. + (equate_decl_number_to_die): Remove unused variable `i'. + (print_die): Reconcile format vs. args in fprintf's. + (print_dwarf_line_table): Likewise. + (output_die): Likewise. + (output_line_info): Likewise. + (add_subscript_info): Avoid an empty body in an else-statement. + (gen_subprogram_die): Remove unused variable `fp_loc'. + + * dwarfout.c: Explicitly declare `next_pubname_number' as int. + Protect `ordering_attribute' prototype with USE_ORDERING_ATTRIBUTE + macro. Protect `src_coords_attribute' prototype with + DWARF_DECL_COORDINATES macro. Hide `output_entry_point_die' + prototype as in the rest of the file. Likewise for + `output_pointer_type_die' and `output_reference_type_die'. Remove + prototype for `type_of_for_scope'. + (output_unsigned_leb128): Reconcile format vs. args in fprintf. + (type_attribute): Add explicit braces to avoid ambiguous `else'. + + * final.c: Include and /. + (shorten_branches): Protect declaration of tmp_length with + SHORTEN_WITH_ADJUST_INSN_LENGTH and ADJUST_INSN_LENGTH macros. + (profile_function): Protect declaration of `sval' and `cxt' + variables with appropriate macros. + (final_scan_insn): Likewise for `note' variable. Add explicit + braces to avoid empty body in an if-statement. + (output_asm_insn): Move variable `i' inside macro conditional + where it is used. Add parentheses around assignment used as truth + value. + (asm_fprintf): Likewise, likewise. + + * fix-header.c (main): Remove unused variable `done'. Protect + declaration of `i' with FIXPROTO_IGNORE_LIST. + + * pexecute.c: Include . Prototype `my_strerror'. + + * print-rtl.c (print_inline_rtx): Explicitly declare the parameter + `ind'. + + * profile.c: Include /. + (instrument_arcs): Remove unused variables `note', `inverted', + `zero' and `neg_one'. + (branch_prob): Avoid empty body in an if-statement. + + * regclass.c: Include . + (reg_alternate_class): Explicitly declare parameter `regno'. + + * regmove.c (regmove_optimize): Remove unused variable `p'. Add + parentheses around assignment used as truth value. + (find_matches): Remove unused variables `output_operand' and + `matching_operand'. + (fixup_match_1): Remove statement with no effect: "if (0) ;". + + * scan.c (sstring_append): Explicitly declare `count' as int. + (scan_string): Explicitly declare parameter `init' as int. + + * sched.c: Include . + (BLOCKAGE_RANGE): Add parentheses around arithmetic in operand of |. + (rank_for_schedule): Add parentheses around assignment used as + truth value. + (schedule_block): Likewise. + (regno_use_in): Likewise. + (schedule_insns): Remove unused variable `i'. + + * toplev.c: Include and /. + (v_message_with_decl): Remove unused variable `n'. + (botch): Explicitly declare parameter `s' as char *. + (main): Add parentheses around assignment used as truth value. + + * tree.c (make_node): Protect the variable `kind' with the + GATHER_STATISTICS macro. + (real_value_from_int_cst): Move variable `e' inside conditional + macro area where it is used. + (tree_last): Add parentheses around assignment used as truth value. + (build1): Protect the variable `kind' with the GATHER_STATISTICS + macro. + (print_obstack_statistics): Reconcile format vs. args in fprintf. + Protect variables `i', `total_nodes', and `total_bytes' with the + GATHER_STATISTICS macro. + +Tue Jan 27 23:01:55 1998 Mike Stump + + * m32r.md, mips.md, mn10200.md, mn10300.md, pyr.md: Add + some comments regarding use of dead_or_set_p. + +Tue Jan 27 22:14:48 1998 Todd Vierling + + * fixincludes: Tweak fix for struct exception in math.h + +Tue Jan 27 17:21:09 1998 Gavin Koch (gavin@cygnus.com) + + * mips/mips.c (mips_expand_prologue,mips_expand_epilogue): + Change mode of registers used to add/sub from + hard_frame_pointer_rtx from word_mode to Pmode. + +Tue Jan 27 11:02:04 1998 Nick Clifton + + * v850.h (ASM_OUTPUT_ALIGNED_BSS): Use + asm_output_aligned_bss() instead of asm_output_bss(). + + * toplev.c (rest_of_compilation): Replace references to + stack_reg_dump_file and dbr_sched_dump_file with references to + rtl_dump_file. + +Tue Jan 27 10:22:13 1998 Kamil Iskra + + * tlink.c (scan_linker_output): Call fclose() for opened files. + +Tue Jan 27 05:05:26 1998 Richard Henderson + + * alpha.c (output_epilog [!VMS]): Don't tag global functions if + compiling with -fpic -- we want to be able to override symbols + properly. + (alpha_expand_block_move): Fix thinko in last change. + + * alpha.h (ASM_OUTPUT_MI_THUNK): New define. + * config/alpha/win-nt.h (ASM_OUTPUT_MI_THUNK): New define. + * config/alpha/vms.h (ASM_OUTPUT_MI_THUNK): New undef. + +Tue Jan 27 03:21:23 1998 Richard Henderson + + * alpha.md (abssf, absdf): Revert last change. + +Tue Jan 27 00:26:50 1998 John Carr + + * dwarf2out.c (dwarf2out_frame_init): Test value of DWARF2_UNWIND_INFO. + * mips/sni-svr4.h: Define DWARF2_UNWIND_INFO as 0. + +Tue Jan 27 00:07:02 1998 Jeffrey A Law (law@cygnus.com) + + * emit-rtl.c (gen_lowpart_common): Handle more case where converting + a CONST_INT into SFmode. + +Tue Jan 20 16:01:03 1998 Anthony Green + + * flags.h: New flag (optimize_size). + * toplev.c (main): Parse -Os option and set optimize_space + accordingly. + * gcc.c (default_compilers), cp/lang-specs.h, f/lang-specs.h: Define + __OPTIMIZE_SIZE__ when compiling with -Os. + * config/dsp16xx/dsp16xx.h, config/i386/i386.h, + config/i386/dgux.h, config/i960/i960.h, config/pdp11/pdp11.h, + config/v850/v850.h (OPTIMIZATION_OPTIONS): New SIZE argument + to macro. + * config/i386/i386.c (optimization_options): Accept new SIZE argument. + +Mon Jan 26 23:57:39 1998 Manfred Hollstein + + * libgcc2.c (__clear_insn_cache): On sysV68 enable the memctl + stuff only if MCT_TEXT is #define'd. + +Mon Jan 26 23:52:51 1998 Markus F.X.J. Oberhumer + + * configure.in (i*86-pc-msdosdjgpp): Treat like msdos & go32 + configurations. + +Fri Jan 23 09:39:36 1998 Nick Clifton + + * toplev.c: Add -dM command line option to dump RTL after the + machine dependent reorganization pass, if there is one. + Reorganize RTL dump code, so that only one file handle is + needed. + +Mon Jan 26 12:09:42 1998 Benjamin Kosnik + + * except.c (check_exception_handler_labels): Disable warning when + flag_syntax_only. + +Mon Jan 26 18:17:32 1998 Jim Wilson + + * sparc.c (pic_setup_code): Don't set LABEL_PRESERVE_P. + +Mon Jan 26 18:11:30 1998 J"orn Rennecke + + * c-decl.c (grokdeclarator): Get parameter tags from + last_function_parm_tags. + * dwarfout.c (output_formal_types): Set TREE_ASM_WRITTEN before + traversing the parameter types. + (output_type): No early exit for FUNCTION_TYPE / METHOD_TYPE context. + +Mon Jan 26 01:44:12 1998 Jeffrey A Law (law@cygnus.com) + + * h8300.c (print_operand): Handle CONST_DOUBLE for 'e', 'f', and + the default case. + (get_shift_alg): Fix typo. + +Sun Jan 25 22:22:04 1998 Richard Henderson + + * alpha.c (alpha_expand_block_move): Copy ADDRESSOF to reg. + +Sun Jan 25 22:14:28 1998 Richard Henderson + + * toplev.c (get_run_time): Make sure each case gets its variables. + +Sun Jan 25 22:10:21 1998 Richard Henderson + + * configure.in (build_xm_file): Add auto-config.h if host=build. + (host_xm_file_list): Don't add $(srcdir) to auto-config.h. + (build_xm_file_list): Likewise. + * configure: Rebuild. + +Sun Jan 25 22:00:25 1998 Alasdair Baird + + * recog.c (validate_replace_rtx_1): Only perform substitutions + of arguments to commutative and comparison operators once. + +Sun Jan 25 12:30:18 1998 Kaveh R. Ghazi + + * sparc.c (output_cbranch): Add default case in + enumeration switch. + + * reorg.c (insn_sets_resource_p): Correct typo in prototype. + (emit_delay_sequence): Eliminate unused parameter, all callers + changed. + (fill_simple_delay_slots): Likewise. + (fill_slots_from_thread): Likewise. + (fill_eager_delay_slots): Likewise. + (mark_referenced_resources): Add default case in enumeration switch. + (mark_set_resources): Likewise. + (rare_destination): Likewise. + (mostly_true_jump): Likewise. + (find_dead_or_set_registers): Likewise. + (redirect_with_delay_slots_safe_p): Remove unused variable `slots'. + (update_reg_unused_notes): Remove unused variable `p'. + (mark_target_live_regs): Remove unused variables `next' and + `jump_count'. + (fill_simple_delay_slots): Remove unused variable `j'. + (fill_slots_from_thread): Add parentheses around assignment used + as truth value. + (dbr_schedule): Likewise. + + * objc/Make-lang.in (objc.stage1): Depend on stage1-start. + (objc.stage2, objc.stage3, objc.stage4): Likewise. + +Sun Jan 25 12:13:47 1998 Michael Tiemann + + * cse.c (simplify_ternary_operation): Don't try to simplify + IF_THEN_ELSE expressions (created by combine) that don't use + relational operators. + +Fri Jan 23 22:48:24 1998 Jeffrey A Law (law@cygnus.com) + + * cse.c (simplify_ternary_operation): Handle more IF_THEN_ELSE + simplifications. + + * crtstuff.c (init_dummy): Keep the epilogue in the init + section for non-ELF systems. + +Fri Jan 23 23:28:59 1998 J"orn Rennecke + + * sh.md (movqi_i+1): New peephole. + +Fri Jan 23 15:39:42 1998 Jim Wilson + + * Makefile.in: Remove remaining bytecode stuff. + * emit-rtl.c, expr.c: Likewise. + +Fri Jan 23 12:41:10 1998 Nick Clifton (nickc@cygnus.com) + + * toplev.c (lang_options): Add unknown-pragma options. + +Thu Jan 22 23:43:38 1998 Per Bothner + + * dwarfout.c (byte_size_attribute): Simplify and fix - don't need + special (and incomplete) handling for Chill arrays. + +Fri Jan 23 00:27:23 1998 John Carr + + * toplev.c (get_run_time): Call sysconf(_SC_CLK_TCK), when available, + to get clock rate. + +Fri Jan 23 00:19:36 1998 Gavin Koch (gavin@cygnus.com) + + * mips.md (muldi3_internal2): Reverse test for TARGET_MIPS16. + +1998-01-22 scott snyder + + * mips.c (function_prologue): Use HARD_FRAME_POINTER_REGNUM in + .frame directive instead of FRAME_POINTER_REGNUM. + +Fri Jan 23 00:08:55 1998 Robin Kirkham + + * m68k.h (TARGET_SWITCHES): -mcpu32 now clears MASK_68881. + (MACHINE_STATE_m68010_up): Replaced __mc68332__ with __mcpu32__. + * m68k/m68k-none.h(CPP_FPU_SPEC): Update relative to TARGET_SWITCHES. + (CPP_SPEC, ASM_SPEC, CC1_SPEC): Likewise. + (CPP_SPEC): -m68332 defines both __mc68332 and __mcpu32__. + * m68k/t-m68kbare (MULTILIB_OPTIONS): Add mcpu32. + (MULTILIB_MATCHES): -m68332 now uses mcpu32 libraries, not m68000. + (MULTILIB_EXCEPTIONS): Don't build 68881 libraries for m68000, + mcpu32 or m5200. + * longlong.h: Replace __mc68332__ with __mcpu32__. + +Thu Jan 22 19:55:40 1998 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Thu Jan 22 14:47:31 1998 Jim Wilson + + * reload.c (push_reload): In WORD_REGISTER_OPERATIONS code, add test + to require the SUBREG mode to be smaller than the SUBREG_REG mode. + * reload1.c (eliminate_regs): Likewise. + +Thu Jan 22 14:49:14 1998 Jeffrey A Law (law@cygnus.com) + + * regmove.c (find_matches): Initialize matches->earlyclobber too. + +Thu Jan 22 01:40:52 1998 Richard Henderson + + * alpha.md (abssf2, absdf2): Disable in IEEE mode. + (negsf2, negdf2): Use proper subtract in IEEE mode. + +Tue Jan 20 09:29:09 1998 Jeffrey A Law (law@cygnus.com) + + * Makefile.in: Remove more bytecode stuff. + * expr.c, stmt.c, config/msdos/top.sed: Likewise. + * vax/xm-vms.h, winnt/config-nt.sed: Likewise. + * f/install.texi, objc/Make-lang.in: Likewise. + + * Makefile.in: Remove all bytecode support. + (OBJS): Make sure last entry is a real object file, not EXTRA_OBJS. + * emit-rtl.c: Remove all bytecode support. + * expr.c, expr.h function.c, integrate.c: Likewise. + * output.h, regclass.c, rtl.h, stmt.c, toplev.c: Likewise. + * tree.h, varasm.c: Likewise. + * config/m68k/m68k.h: Likewise. + * bi-*, bc-*, bytecode*: Delete bytecode related files. + * modemap.def: Likewise. + +Tue Jan 20 09:02:31 1998 Gavin Koch (gavin@cygnus.com) + + * mips/mips.md (divsi3,divdi3,modsi3,moddi3,udivsi3,udivdi3, + umodsi3,umoddi3): Handle mips16 div/mod by a constant. + +Mon Jan 19 21:57:00 1998 Richard Henderson + + * i386.md (push): Prohibit symbolic constants if flag_pic. + (movsi+1): Likewise for move to non-register. + +Mon Jan 19 11:15:38 1998 Jim Wilson + + * alpha.c (mode_mask_operand): Accept 0xffffffff on 32 bit host. + (print_operand): Handle 0xffffffff on 32 bit host. + + * configure.in (thread_file): Rename uses before main loop to + target_thread_file. Initialize to empty in main loop. Set thread_file + to target_thread_file after main loop if not set. + * configure: Rebuild. + + * genattrtab.c (find_and_mark_used_attributes): Handle CONST_INT. + (add_values_to_cover): Revert last change (which had no ChangeLog + entry). + (simplify_with_current_value_aux): Handle CONST_INT. + +Mon Jan 19 10:14:55 1998 Andreas Schwab + + * unprotoize.c: Define UNPROTOIZE first, to actually take effect. + +Mon Jan 19 10:11:52 1998 Richard Henderson + + * configure.in: Add cpp stringify test. + * acconfig.h (HAVE_CPP_STRINGIFY): New tag. + * gengenrtl.c: Use it. + * configure, config.in: Rebuild. + +Mon Jan 19 09:43:15 1998 Andreas Schwab + + * Makefile.in (genrtl.c genrtl.h): Add dummy command for GNU make. -Mon Jul 27 00:54:41 1998 Jason Merrill +Mon Jan 19 09:38:18 1998 Richard Henderson - * tree.c (simple_cst_equal, case CONSTRUCTOR): OK if the elts are - identical. + * configure.in: Find declaration for sbrk. + * acconfig.h (NEED_DECLARATION_SBRK): New tag. + * config.in, configure: Rebuild. + * mips-tfile.c: Properly protect declaration of sbrk and free. + * toplev.c: Properly protect declaration of sbrk. -Mon Jul 27 22:18:36 1998 Jeffrey A Law (law@cygnus.com) +Sun Jan 18 20:18:01 1998 Richard Henderson - * pa.c (move_operand): Accept CONSTANT_P_RTX. + * alpha.c (alpha_handle_trap_shadows): Ignore CLOBBERs. -Mon Jul 27 17:18:52 1998 Dave Brolley +Sun Jan 18 01:54:27 1998 Jeffrey A Law (law@cygnus.com) - * stor-layout.c (layout_type): Handle arrays of bits, for Chill. + * alpha/xm-winnt.h (HAS_INIT_SECTION): Undefine. - * expr.c (get_inner_reference): Handle zero-based, unsigned, array - index conversion. +Sun Jan 18 00:57:35 1998 Mike Stump -Mon Jul 27 14:51:33 1998 Jeffrey A Law (law@cygnus.com) + * configure.in (i960-wrs-vxworks): Default to latest vxworks release. - * mn10300.h (DEBUGGER_AUTO_OFFSET): Define. - (DEBUGGER_ARG_OFFSET): Likewise. +Sat Jan 17 23:41:36 1998 David S. Miller - * mn10300.md (movsf): Remove last change. Not needed. + * combine.c (force_to_mode, nonzero_bits): Correctly optimize + constant offset computations from objects with known alignment in + the presence of STACK_BIAS. -Mon Jul 27 14:22:36 1998 Dave Brolley + * varasm.c (immed_double_const): Add casts to HOST_WIDE_INT where + necessary. + (const_hash): Hash val is unsigned long. + (SYMHASH): Likewise. - * c-lex.c (yylex): Fix boundary conditions in character literal and - string literal loops. + * tree.c (TYPE_HASH): Type of hash val is unsigned long. -Mon Jul 27 11:43:54 1998 Stan Cox + * print-tree.c (print_node_brief): HOST_PTR_PRINTF format wants a + char pointer, not HOST_WIDE_INT. + (print_node): Likewise. Also hash is unsigned long not + HOST_WIDE_INT. - * longlong.h (count_leading_zeros): SPARClite scan instruction was - being invoked incorrectly. + * cse.c (canon_hash): Hash is unsigned long not HOST_WIDE_INT. - * i386.c (ix86_prologue): Added SUBTARGET_PROLOGUE invocation. - * i386/cygwin32.h (STARTFILE_SPEC, LIB_SPEC, SUBTARGET_PROLOGUE): - Add -pg support. - * i386/win32.h: New file. Hybrid mingw32.h/cygwin32.h configuration. - * configure.in: Added i[34567]86-*-win32. - * config.sub: Likewise. - * configure: Rebuilt. + * explow.c (optimize_save_area_alloca): New function for targets + where SETJMP_VIA_SAVE_AREA is true. + (allocate_dynamic_stack_space): On SETJMP_VIA_SAVE_AREA targets, + compute the amount of stack space needed should we find later that + setjmp is never called by this function, stuff rtl for this inside + a REG_NOTE of the final SET of stack_pointer_rtx. + * toplev.c (rest_of_compilation): If SETJMP_VIA_SAVE_AREA and + current_function_calls_alloca, call optimize_save_area_alloca. -Sun Jul 26 01:11:12 1998 H.J. Lu (hjl@gnu.org) +Sat Jan 17 23:22:59 1998 John Wehle (john@feith.com) - * i386.h (CONST_DOUBLE_OK_FOR_LETTER_P): Return 0 when eliminating - the frame pointer and compiling PIC code and reload has not completed. + * i386.md: Remove redundant integer push patterns. + Don't bother checking for TARGET_PUSH_MEMORY when + pushing constants or registers. - * i386.c (output_to_reg): Add code to emulate non-popping DImode - case. +Sat Jan 17 22:35:39 1998 Mumit Khan + J.J VanderHeijden -Sun Jul 26 01:01:32 1998 Jeffrey A Law (law@cygnus.com) + * pexecute.c (pexecute): New function for mingw32. Supports pipes. + (pwait): New function for mingw32. - * regmove.c (regmove_optimize): Fix typo initializing regmove_bb_head. + * gcc.c (execute): Mingw32 pexecute() supports pipes, but cygwin32 + pipe support is broken for now. -Sat Jul 25 23:29:23 1998 Gerald Pfeifer +1998-01-17 Lee Iverson - * Makefile.in (install-info): Only try to update the info - directory file if it exists in the first place. + * emit_rtl.c (init_emit_once): Ensure that potential aliasing + between frame_pointer_rtx, hard_frame_pointer_rtx, and + arg_pointer_rtx is respected in initialization. + (init_emit_once): Use gen_rtx_raw_REG() to create + return_address_pointer_rtx. -Fri Jul 24 18:58:37 1998 Klaus Espenlaub + * reorg.c: #include "expr.h" for rtx prototypes. + * Makefile.in (reorg.o): Depend on expr.h - * rs6000.h (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Delete. +Sat Jan 17 21:28:08 1998 Pieter Nagel -Fri Jul 24 14:20:26 1998 Jeffrey A Law (law@cygnus.com) + * Makefile.in (FLAGS_TO_PASS): Pass down gcc_include_dir and + local_prefix to sub-make invocations. - * mn10300.md (movqi, movhi, movsi, movsf): Correctly handle - CONST_DOUBLE source. +Sat Jan 17 21:24:16 1998 David T. McWherter -Fri Jul 24 11:17:04 1998 Nick Clifton + * objc-parse.c: Recognize protocol qualifiers in class definitions. - * config/arm/thumb.c (thumb_print_operand): Decode %_ in asm - strings as the insertion of USER_LABEL_PREFIX. - * config/arm/thumb.h (PRINT_OPERAND_PUNCT_VALID_P): Accept _ as a - valid code. - * config/arm/thumb.md: Use %_ as a prefix to gcc library function - calls. +Sat Jan 17 21:16:19 1998 Jeffrey A Law (law@cygnus.com) -Thu Jul 23 18:53:20 1998 Jim Wilson + * rtl.h: Fix typos. - * dbxout.c (dbxout_range_type): Only call dbxout_type_index for - already defined type. + * acconfig.h (NEED_DECLARATION_ATOL): New declaration to check for. + * configure.in: Check for atol. + * rtl.c (atol): Only provide the declaration if NEED_DECLARATION_ATOL. -Thu Jul 23 13:49:41 1998 Jeffrey A Law (law@cygnus.com) + * rtl.c (read_rtx): Initialize list_rtx to NULL, not NULL_RTX. - * expr.c (check_max_integer_computation_mode): Allow conversions - of constant integers to MAX_INTEGER_COMPUTATION_MODE. - (expand_expr): Likewise. + * loop.c (find_and_verify_loops): When attempting to move insns from + inside the loop outside the loop, create a BARRIER if no suitable + one was found. -Thu Jul 23 11:12:06 1998 Alexandre Petit-Bianco + * jump.c (jump_optimize): Remove Dec 17, 1997 chance in + favor of an equivalent change from gcc-2.8. - * expr.c (expand_expr): Expand RETURN_EXPR. + * i386/x-sco5 (CC): Remove trailing whitespace. -Thu Jul 23 11:00:29 1998 Jim Wilson +Sat Jan 17 21:09:46 1998 Kaveh R. Ghazi - * dwarf2out.c (dwarf2out_finish): Call stripattributes on TEXT_SECTION. + * gengenrtl.c (type_from_format): De-ANSIfy function signature. + (accessor_from_format): Likewise. + (xmalloc): New function for use when linking with alloca.o. -Wed Jul 22 19:10:00 1998 Catherine Moore +Mon Jan 5 02:53:01 1998 Bruno Haible - * dwarf2out.c (output_aranges): Call stripattributes - for TEXT_SECTION references. - (output_line_info): Likewise. + * frame.c (find_fde): Correct FDE's upper bound. -Wed Jul 22 14:08:54 1998 David S. Miller +Fri Jan 16 16:23:52 1998 Richard Henderson - * profile.c (branch_prob): Call allocate_reg_info after outputting - profile rtl in instrument_arcs. + * gengenrtl.c (DEF_RTL_EXPR): Provide a K&R compliant version. -Wed Jul 22 12:47:49 1998 Jim Wilson +Fri Jan 16 10:16:10 1998 Jeffrey A Law (law@cygnus.com) - * fixinc.irix (math.h): Install wrapper instead of copying. + * calls.c (expand_call): Move #ifdef code out of macro argument + lists. + (emit_library_call, emit_library_call_value): Likewise. -Wed Jul 22 12:37:14 1998 Alexandre Petit-Bianco +Fri Jan 16 00:46:40 1998 Jeffrey A Law (law@cygnus.com) - * tree.def (EXPR_WITH_FILE_LOCATION): Defined as an 'e' expression - so WFL are expanded correctly when contained in a COMPOUND_EXPR. - * tree.h (EXPR_WFL_EMIT_LINE_NOTE): Change macro not to use - lang_flag_0. Added documentation in the flag table. + * rtl.def (INLINE_HEADER): Fix bug exposed by gen_rtx_FOO changes. -Tue Jul 21 23:28:35 1998 Klaus Kaempf +Thu Jan 15 01:02:30 1998 Jeffrey A Law (law@cygnus.com) - * cccp.c (do_include): Fix vax c style include handling. + * version.c: Bump for snapshot. -Tue Jul 21 13:28:19 1998 Jason Merrill +Wed Jan 14 22:49:17 1998 Richard Henderson - * cplus-dem.c (do_type): Use demangle_template_value_parm for arrays. + * alias.c: Change all uses of gen_rtx(FOO...) to gen_rtx_FOO; + change gen_rtx(expr...) to gen_rtx_fmt_foo(expr...). + * caller-save.c, calls.c, combine.c, cse.c: Likewise. + * dwarf2out.c, except.c, explow.c, expmed.c, expr.c: Likewise. + * final.c, flow.c, function.c, genpeep.c, haifa-sched.c: Likewise. + * halfpic.c, integrate.c, jump.c, local-alloc.c, loop.c: Likewise. + * profile.c, recog.c, reg-stack.c, regclass.c, regmove.c: Likewise. + * reload.c, reload1.c, reorg.c, sched.c, stmt.c, stupid.c: Likewise. + * unroll.c, varasm.c: Likewise. + * config/alpha/alpha.c, config/alpha/alpha.md: Likewise. -Sun Jul 12 01:27:05 1998 Jason Merrill +Wed Jan 14 19:36:08 1998 Gavin Koch (gavin@cygnus.com) - * fold-const.c (non_lvalue): Don't deal with null pointer - constants here. - (fold, case COMPOUND_EXPR): Wrap a constant 0 in a NOP_EXPR. + * mips.h: Fix some type-o's from a previous change. -Tue Jul 21 15:49:31 1998 David Edelsohn +Wed Jan 14 01:26:05 1998 Jeffrey A Law (law@cygnus.com) - * rs6000.h (PREDICATE_CODES): Add CONSTANT_P_RTX. - * rs6000.md (movsi, movdi): Add CONSTANT_P_RTX. - * rs6000.c (short_cint_operand): Add CONSTANT_P_RTX. - (u_short_cint_operand): Same. - (reg_or_cint_operand): Same. - (logical_operand): Same. - (input_operand): Same. - (reg_or_short_operand): Use u_short_cint_operand. + * loop.c (check_dbra_loop): Make sure initial value is a + CONST_INT before trying to normalize it. -Tue Jul 21 08:56:42 1998 Richard Henderson +Tue Jan 13 23:27:54 1998 Robert Lipe (robertl@dgii.com) - * alpha.md (fix_truncdfsi2, fix_truncsfsi2): Remove the define_expands, - but keep the insns and splits. Adjust so when the ultimate destination - is memory, use cvtql. + * sco5.h (ASM_OUTPUT_SECTION_NAME): Refresh from ../svr4.h. -Tue Jul 21 08:55:09 1998 Richard Henderson +Tue Jan 13 22:47:02 1998 Herman ten Brugge - * flow.c (regno_uninitialized): Fixed regs are never uninitialized. + * cppexp.c: Include gansidecl.h -Tue Jul 21 00:31:01 1998 Jeffrey A Law (law@cygnus.com) +Tue Jan 13 22:43:35 1998 Ian Lance Taylor - * gcc.c (do_spec): Call "error" not "warning". + * svr4.h (LINK_SPEC): Never specify -h. + * ptx4.h (LINK_SPEC): Likewise. + * rs6000/sysv4.h (LINK_SPEC): Likewise. + * sparc/sol2.h (LINK_SPEC): Likewise. - * configure.in: Fix minor problems with gas feature detection code. - * configure: Rebuilt. +Tue Jan 13 22:39:40 1998 Richard Henderson (rth@cygnus.com) - * gcc.c (do_spec): Issue a warning for '%[]' usage. + * c-typeck.c (comptypes): Exit early on NULL input. - * Undo this change. - * gcc.c: Delete %[spec] support. - (do_spec_1, case '('): Likewise. - (do_spec_1, case '['): Call error. + * haifa-sched.c (schedule_insns): Correctly remove inter-block + dependencies after reload. -Mon Jul 20 22:34:17 1998 Richard Henderson +Tue Jan 13 22:22:31 1998 Franz Sirl - * alpha.h (CPP_SPEC): Tidy. Hook to cpp_cpu and cpp_subtarget. - (CPP_SUBTARGET_SPEC): Default to empty string. - (CPP_AM_*, CPP_IM_*, CPP_CPU_*, CPP_CPU_SPEC): New. - (EXTRA_SPECS, SUBTARGET_EXTRA_SPECS): New. - * alpha/elf.h (LD_SPEC): Use %(elf_dynamic_linker). - * alpha/linux-elf.h (SUBTARGET_EXTRA_SPECS): New. - (LIB_SPEC): Tidy. - * alpha/linux.h (CPP_PREDEFINES): Tidy. - * alpha/netbsd-elf.h (SUBTARGET_EXTRA_SPECS): New. - * alpha/netbsd.h (CPP_PREDEFINES): Tidy. - * alpha/osf.h (CPP_PREDEFINES): Remove bits subsumed by CPP_CPU_SPEC. - * alpha/win-nt.h (CPP_PREDEFINES): Likewise. - * alpha/vsf.h (CPP_PREDEFINES): Likewise. - (CPP_SUBTARGET_SPEC): New. Do this instead of overriding CPP_SPEC. - * alpha/vxworks.h: Likewise. + * rs6000/linux.h (CPP_PREDEFINES): Add -D__ELF__. -Mon Jul 20 22:51:57 1998 Ken Raeburn +Tue Jan 13 22:14:57 1998 Klaus Kaempf - * mips.md (reload_outsi): Added missing REGNO call. - (smulsi3_highpart, umulsi3_highpart): Provide prototype for - function pointer. - (mul_acc_di, mul_acc_64bit_di): Don't use match_op_dup, use - another match_operator and compare the codes. + * alpha/vms.h (DIR_SEPARATOR): Define. - * mips.h (MASK_DEBUG_E, MASK_DEBUG_I): Set to zero. +Tue Jan 13 22:13:04 1998 Bruno Haible - * MIPS multiply pattern fixes: - * mips.h (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): - Add union classes for HI, LO, or HILO plus general registers. - (GENERATE_MADD): Deleted. - * mips.md (mulsi3_mult3): Don't disparage output-LO alternative. - Add TARGET_MAD to condition. - (mulsi3): Test HAVE_mulsi3_mult3, not specific flags. - (mul_acc_si): Expand GENERATE_MADD here; it's the only use. Use - "*d" for accumulator, to give preference to LO initially but not - during reload. + * Makefile.in (stamp-proto): Remove. + (protoize.o, unprotoize.o): Straightforward compile. + * unprotoize.c: Define UNPROTOIZE here, not in the Makefile. -Mon Jul 20 16:16:38 1998 Dave Brolley +Tue Jan 13 21:59:39 1998 Mumit Khan - * configure.in (enable_c_mbchar): New configure option. - (extra_cpp_objs): Always available now. + * i386/cygwin32.h (STRIP_NAME_ENCODING): Define for Win32 to strip + off the trailing @[NUM] added by ENCODE_SECTION_INFO. - * cexp.y (mbchar.h): #include it. - (yylex): Handle Multibyte characters in character literals. +Tue Jan 13 21:55:06 1998 Jeffrey A Law (law@cygnus.com) - * cccp.c (mbchar.h): #include it. - (main): Set character set based on LANG environment variable. - (rescan): Handle multibyte characters in comments. - (skip_if_group): See above. - (validate_else): See above. - (skip_to_end_of_comment): See above. - (macarg1): See above. - (discard_comments): See above. - (rescan): Handle multibyte characters in string and character literals. - (collect_expansion): See above. - (skip_quoted_string): See above. - (macroexpand): See above. - (macarg1): See above. - (discard_comments): See above. - (change_newlines): See above. + * arm/netbsd.h (DWARF2_UNWIND_INFO): Define as zero for now. + * i386/netbsd.h, m68k/netbsd.h, ns32k/netbsd.h: Likewise. + * sparc/netbsd.h, vax/netbsd.h: Likewise. - * c-lex.c (mbchar.h): #include it. - (GET_ENVIRONMENT): New macro. - (init_lex): Set character set based on LANG environment variable. - (yylex): Handle multibyte characters in character literals. - (yylex): Handle multibyte characters in string literals. +Tue Jan 13 21:37:07 1998 Shigeya Suzuki - * Makefile.in (mbchar.o): New target. - (cccp$(exeext)): @extra_cpp_objs@ is always available. - (cppmain$(exeext)): @extra_cpp_objs@ is always available. + * i386/bsd386.h (DWARF2_UNWIND_INFO): Define as zero for now. - * mbchar.[ch]: New files for multibyte character handling. +Tue Jan 13 17:50:55 1998 Jim Wilson -Mon Jul 20 01:11:11 1998 David S. Miller + * configure.in (target_cpu_default, target_cpu_default2): Use double + quotes around them when testing their value. + * configure: Rebuilt. - * jump.c (jump_optimize): When simplifying noop moves and - PUSH_ROUNDING, fix thinko so we use same criterion for identifying - the PUSHes to rewrite in second loop as we did in the first. +Tue Jan 13 09:07:44 1998 John Carr -Sun Jul 19 08:23:53 1998 Kaveh R. Ghazi + * gengenrtl.c (gencode): Emit new function obstack_alloc_rtx + to allocate rtx. + (gendef): Call obstack_alloc_rtx. - * cplus-dem.c (demangle_nested_args): Make function definition - static to match the prototype. +Tue Jan 13 01:16:36 1998 Robert Lipe (robertl@dgii.com) -Fri Jul 17 14:58:44 1998 Richard Henderson + * configure.in (i[3456]86-UnixWare7-sysv5): Treat much like SVR4 + for now. - * alloca.c: Respect USE_C_ALLOCA. - * gencheck.c (xmalloc): Ignore __GNUC__ for definition. - * gengenrtl.c (xmalloc): Likewise. +Thu Dec 18 18:40:17 1997 Mumit Khan -Fri Jul 17 14:18:14 1998 Richard Henderson + * i386/mingw32.h (INCOMING_RETURN_ADDR_RTX): Delete. Use the value + of DWARF2_UNWIND_INFO, if any, from i386/cygwin32.h instead. + (STANDARD_INCLUDE_DIR): Change to /usr/local/i386-mingw32/include. - * loop.h (struct induction): Add no_const_addval. - * loop.c (the_movables, reg_address_cost): New variables. - (init_loop): Init reg_address_cost. - (loop_optimize): Call end_alias_analysis. - (scan_loop): Init the_movables. - (record_giv): Init induction->no_const_addval. - (basic_induction_var) [PLUS]: Use rtx_equal_p instead of ==. - [REG]: Rearrange loop search test to catch more cases. - (general_induction_var): Return success not benefit; take an extra - argument for that. Change all callers. - (simplify_giv_expr) [PLUS]: Always combine invariants. Use sge_plus. - [MULT]: Use rtx_equal_p instead of ==. Combine simple invariants. - [default]: Search the_movables for additional combinations. - (sge_plus_constant, sge_plus): New functions. - (express_from_1): New function. - (express_from): Always define. Rewrite using express_from_1. - (combine_givs_p): Handle more cases. Ignore address cost. - (cmp_combine_givs_stats): New function. - (combine_givs_used_once, combine_givs_benefit_from): New functions. - (combine_givs): Rewrite to do best-fit combination. +Tue Jan 13 00:44:02 1998 Jim Wilson - * fold-const.c (operand_equal_p): Handle RTL_EXPR. - (fold): Do a complete (A*C)+(B*C) association check. + * mips.md (return_internal): Change mode from SImode to VOIDmode. -Fri Jul 17 11:21:55 1998 Jim Wilson +Sat Jan 10 22:11:39 1998 J. Kean Johnston - * function.c (fixup_var_refs_insns): Handle CLOBBER of a CONCAT. + * i386/sco5.h (STARTFILE_SPEC, ENDFILE_SPEC): Correctly handle + "-static". -Fri Jul 17 11:48:55 1998 Jeffrey A Law (law@cygnus.com) +Sat Jan 10 22:04:15 1998 Stan Cox - * mn10300.c (MODES_TIEABLE_P): Fix typo. + * i386.md (movsicc_1, movhicc_1): For alternate 3 set the opcode + suffix from operand 3. -Fri Jul 17 03:26:12 1998 Rihcard Earnshaw (rearnsha@arm.com) +Sat Jan 10 21:50:16 1998 J"orn Rennecke + Jeffrey A Law (law@cygnus.com) - * tree.c (valid_machine_attribute): Only create a new type variant if - there is a decl to use it. + * regmove.c: New implementation of regmove pass. + * local-alloc.c (optimize_reg_copy_1, optimize_reg_copy_2): Remove + decls, make them have external linkage. Return a value from + optimize_reg_copy_1. + * reload.h (count_occurrences): Add decl. + * reload1.c (count_occurrences): Delete decl, make it have external + linkage. + * rtl.h (optimize_reg_copy_1, optimize_reg_copy_2): Declare. -Thu Jul 16 14:48:04 1998 Nick Clifton +Sat Jan 10 20:30:12 1998 Jeffrey A Law (law@cygnus.com) - * gcc.c (do_spec_1): Cope with %g/%u/%U options which do not have - a suffix. + * regclass.c (record_address_regs): Don't use REG_OK_FOR_BASE_P + if it is not defined. -Fri Jul 17 03:24:40 1998 Hans-Peter Nilsson +Thu Jan 8 21:06:54 1998 Richard Henderson - * extend.texi (Explicit Reg Vars): Typo: change "may deleted" into "may - be deleted" + * Makefile.in (OBJ, GEN, RTL_H): Add genrtl.[oh] bits. + * emit-rtl.c (gen_rtx): Move special code to ... + (gen_rtx_CONST_INT): New function. + (gen_rtx_REG): New function. + (*): Update all calls to gen_rtx. + * genemit.c (gen_exp): Emit calls to gen_rtx_FOO for constant FOO. + * rtl.h: Include genrtl.h; prototype CONST_INT & REG generators. + (GEN_INT): Call gen_rtx_CONST_INT. + * gengenrtl.c: New file. -Thu Jul 16 14:48:47 1998 Jeffrey A Law (law@cygnus.com) +Mon Jan 5 13:00:18 1998 John F. Carr - * mn10300.c (count_tst_insns): New arg oreg_countp. Callers changed. - Simplify tests for clearing an address register. - (expand_prologue): Corresponding changes. + * alias.c (*_dependence): Call base_alias_check before canon_rtx. + (base_alias_check): If no base found for address call canon_rtx and + try again. - * mn10300.md (movXX patterns): Make sure the destination is an - ADDRESS_REG when substituting "zero_areg" for (const_int 0). - (logical patterns): Split into expanders + patterns. - (zero and sign extension patterns): Similarly. - (shift patterns): Similarly. +Mon Jan 5 11:39:49 1998 Jeffrey A Law (law@cygnus.com) -Thu Jul 16 01:17:44 1998 Richard Henderson + * mips.c (mips_expand_prologue): Handle large frame with no outgoing + arguments for mips16. + (mips_expand_epilogue): Pass "orig_tsize" to save_restore_insns. + Don't lose if tsize is zero after handling large stack for mips16. + * mips.md (return): For trivial return, return address is in $31. - * loop.c (emit_iv_add_mult): Scan the entire insn list generated - for the sequence, recording base values. +Sun Jan 4 20:24:00 1998 Nigel Stephens -Wed Jul 15 10:49:55 1998 Richard Henderson + * mips/mips16.S: Various changes to make it work with -msingle-float + and -EL. - * i386.h (CPP_CPU_SPEC): Remove -Asystem(unix). +Sun Jan 4 14:25:18 1998 Gavin Koch + Ian Lance Taylor + Jeff Law -Tue Jul 14 14:15:30 1998 Nick Clifton + * mips.c, mips.h, mips.md: First cut at merging in mips16 + support. Major modifications throughout all three files. - * gcc.c: Remove ANSI-C ism from --help code. +Sun Jan 4 01:01:50 1998 scott snyder - * toplev.c: Support --help with USE_CPPLIB. + * configure.in: Make gthr-default.h a forwarding header instead of + a symlink. -Tue Jul 14 14:46:08 1998 Jeffrey A Law (law@cygnus.com) +Sat Jan 3 12:08:06 1998 Kaveh R. Ghazi - * configure.in: Rework gas feature code to work with symlink based - source trees. + * gcov-io.h: Include sys/types.h to ensure we get size_t. - * extend.texi: Clarify some issues related to local variables - assigned to explicit registers. + * pa.h (ASM_OUTPUT_MI_THUNK): Add missing % in fprintf. - * mn10300.md (mulsi): Turn into expander + pattern. +Fri Jan 2 23:40:09 1998 Jim Wilson (wilson@cygnus.com) + Jeffrey A Law (law@cygnus.com) - * mn10300.md (movsi, movsf, movdi, movdf): Remove "x" from I -> a - alternative. + * crtstuff.c (__frame_dummy): New function for irix6. + (__do_global_ctors): Call __frame_dummy for irix6. + * iris6.h (LINK_SPEC): Hide __frame_dummy too. -Tue Jul 14 07:41:59 1998 Richard Earnshaw (rearnsha@arm.com) +Fri Jan 2 04:57:57 1998 Weiwen Liu - * arm/tcoff.h (USER_LABEL_PREFIX): Make it empty to match coff.h. + * alpha.c (vms_valid_decl_attribute_p): Move within #if OPEN_VMS. -Tue Jul 14 03:02:44 1998 Jeffrey A Law (law@cygnus.com) +Fri Jan 2 04:34:14 1998 Richard Henderson - * version.c: Bump again to distinguish mainline tree from the - egcs-1.1 branch. + * c-decl.c (init_decl_processing): Provide proper fallback symbol + for __builtin_memset. + * expr.c (expand_builtin) [MEMSET]: Arg 3 type code is INTEGER_TYPE + not INTEGER_CST. Assert arg 3 is a constant. + + * alpha.c (mode_width_operand): Accept 64-bit modes. + (mode_mask_operand): Likewise. + (print_operand): Likewise for 'M' and 'U' codes. + (alpha_expand_unaligned_load): New function. + (alpha_expand_unaligned_store): Likewise. + (alpha_expand_unaligned_load_words): Likewise. + (alpha_expand_unaligned_store_words): Likewise. + (alpha_expand_block_move): Likewise. + (alpha_expand_block_clear): Likewise. + * alpha.h (MOVE_RATIO): New define. + * alpha.md (extxl, ext*h, ins*l, mskxl): Name them. + (insql, insxh, mskxh, extv, extzv, insv, movstrqi, clrstrqi): New. + + * alpha.h (ASM_OUTPUT_LOOP_ALIGN, ASM_OUTPUT_ALIGN_CODE): Set to 3. + (CONSTANT_ALIGNMENT, DATA_ALIGNMENT): Disable. + +Thu Jan 1 15:40:15 1998 Richard Henderson + + * configure.in: Put parenthesis around TARGET_CPU_DEFAULT's value. + * configure: Update. + +Thu Jan 1 10:49:12 1998 Jeffrey A Law (law@cygnus.com) -See ChangeLog.0 for earlier changes. + * emit-rtl.c (operand_subword): Correctly handle extracting a word + from a CONST_DOUBLE for 16bit targets with !WORDS_BIG_ENDIAN. -Local Variables: -add-log-time-format: current-time-string -End: + * mn10200.md (tstxx, cmpxx): Use "nonimmediate_operand" as predicate + for first argument. diff --git a/gcc/ChangeLog.2 b/gcc/ChangeLog-1999 similarity index 66% rename from gcc/ChangeLog.2 rename to gcc/ChangeLog-1999 index 39b4f3a0d613..add129de3d11 100644 --- a/gcc/ChangeLog.2 +++ b/gcc/ChangeLog-1999 @@ -161,7 +161,7 @@ Wed Dec 29 10:53:21 1999 Jeffrey A Law (law@cygnus.com) determining whether to provide a prototype. Remove the sys_siglist clause in the conditional. -1999-12-23 Martin v. Löwis +1999-12-23 Martin v. Löwis * fold-const.c (operand_equal_p): Use memcmp to compare string constants. @@ -319,7 +319,7 @@ Tue Dec 21 07:06:36 1999 Richard Kenner * md.texi: Add c4x constraints documentation. -1999-12-21 Martin v. Löwis +1999-12-21 Martin v. Löwis * config/i386/dgux.c (struct option): Rename to lang_independent_option. @@ -1310,7 +1310,7 @@ Tue Dec 7 19:22:06 1999 Richard Henderson (strength_reduce): Discard an iv with multiple bivs, any of which require multiple insns to increment. -1999-12-07 Martin v. Löwis +1999-12-07 Martin v. Löwis * invoke.texi (C Dialect Options): Remove -flang-c9x, add -std documentation. @@ -5502,7 +5502,7 @@ Wed Oct 13 01:44:29 1999 Carol LePage float_format and thread_file definitions. * configure: Rebuilt. -Wed Oct 13 09:25:03 1999 Niels Möller +Wed Oct 13 09:25:03 1999 Niels Möller * extend.texi (Function Names): Document types of function names. @@ -6690,7 +6690,7 @@ Thu Sep 23 08:46:21 1999 Guy Harris * gcc.1: Fix a formatting error. -Wed Sep 22 16:10:21 1999 Martin v. Löwis +Wed Sep 22 16:10:21 1999 Martin v. Löwis * install.texi (Configurations): Remove pyramid. Add fr30, i686, i786, mn10200, mn10300, pdp11, v850. @@ -6899,7 +6899,7 @@ Tue Sep 21 14:14:50 1999 Richard Henderson (merge_blocks_move_successor_nojumps): Likewise. (merge_blocks): Use eh_beg+eh_end to validate block movement. -Tue Sep 21 11:15:03 1999 Martin v. Löwis +Tue Sep 21 11:15:03 1999 Martin v. Löwis * extend.texi (Bound member functions): Document unbound pmf conversion. @@ -14466,4 +14466,7321 @@ Wed May 19 00:34:40 1999 Jeffrey A Law (law@cygnus.com) * version.c: Bump to distinguish mainline tree from the gcc-2.95 branch. -See ChangeLog.1 for earlier changes. +Tue May 18 03:53:37 1999 Craig Burley + + Improve open-coding of complex divide: + * flags.h: Declare new front-end-malleable flag. + * toplev.c: Define new flag. + * optabs.c (expand_cmplxdiv_straight): New function to do original + open-coding. + (expand_cmplxdiv_wide): New function to do new open-coding, + from Toon Moene, with changes (call to emit_barrier, dropping + of spurious `ok = 1;', plus the obvious `break;' -> `return 0;'). + (expand_binop): A bit of spacing fixing, while at it. + Use new functions instead of inlining the open-coding code. + +Tue May 18 00:51:46 1999 Krister Walfridsson + + * configure.in (arm*-*-netbsd*): Use collect2. + (i[34567]86-*-netbsd*): Likewise. + (m68k*-*-netbsd*): Likewise. + (ns32k-*-netbsd*): Likewise. + (sparc-*-netbsd*): Likewise. + (vax-*-netbsd*): Likewise. + * configure: Rebuilt. + +Tue May 18 00:21:34 1999 Zack Weinberg + + * cppspec.c: Insert -no-gcc into command line unless -gcc was + given by user. + * gcc.c (default_compilers): Define __GNUC__ and + __GNUC_MINOR__ only if -no-gcc was not given. + * objc/lang-specs.h: Likewise. + * cpp.texi: Document -x and -std options; explain that -lang + is no longer supported. Minor related corrections. + +Mon May 17 23:56:39 1999 Alexandre Oliva + + * Makefile.in (stmp-fixproto): Pass location of mkinstalldirs to + fixproto. + * fixproto: Avoid unportable constructs such as `basename' and + `mkdir -p'. Use mkinstalldirs from the environment if `mkdir -p' + fails. + + * fixinc/fixincl.c: Remove #error, it is not portable. + +Mon May 17 23:50:41 1999 Marc Espie + + * collect2.c (main): Fix typo in COLLECT2_HOST_INITIALIZATION. + +Mon May 17 19:45:41 1999 Rainer Orth + + * fixinc/fixincl.c (process): Wait for children from chain_open() + to avoid creating zombies. + + * fixinc/inclhack.tpl: Removed no-op pipe. + + * fixinc/inclhack.sh fixinc/fixincl.sh: regenerate + +Mon May 17 07:23:34 1999 Mark Mitchell + + * tree.def (TYPE_NONCOPIED_PARTS): Revise documentation to match + reality. + * expr.c (init_noncopied_parts): Don't generate initializers for + parts that don't need them. + +Mon May 17 02:56:35 PDT 1999 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Sat Oct 31 05:08:34 CET 1998 Jan Hubicka (hubicka@freesoft.cz) + + * reg-stack.c: Do not emit pop insns after cc0 setter. + (emit_pop_insn): Do not emit insn in case WHEN is NULL. + (compare_for_stack_reg): Update REG_DEAD note and + do not emit push insn. + + * i386.c: (output_float_compare): Handle new REG_DEAD notes. + +Mon May 17 01:57:37 1999 David Daney + + * i386/sol2.h (LINK_SPEC): Do not pass "-z text" to the linker + if -mimpure-text. + +1999-05-17 Andreas Schwab + + * m68k.c (standard_68881_constant_p): Don't accept -0.0 as valid + 68881 constant. + + * fold-const.c (fold_truthop): When converting a one-bit + comparison don't sign extend the constant. + + * cse.c (cse_insn): Copy SRC_CONST before putting it in the + REG_EQUAL note. + +1999-05-17 Mike Stump + + * rs6000/vxppc.h (CPP_SPEC): Fix support for vararg functions. + +Sat May 15 14:22:40 1999 Jeffrey A Law (law@cygnus.com) + + * fixinc/hackshell.tpl: Fix mis-applied patch. + * fixinc/inclhack.sh: Regenerated. + +Thu May 13 21:05:55 1999 Mark Kettenis + + * fixinc/mkfixinc.sh: Add the Hurd (*-*-gnu*) to the list of + targets that do not need any fixes. + +Sat May 15 14:12:38 1999 Michael Hayes + + * config/c4x/c4x.md (set_lo_sum+2): New splitter to load large + const_ints. + +Sat May 15 14:09:08 1999 Michael Hayes + + * config/c4x/c4x.md (decrement_and_branch_on_count): Disabled. + (doloop_begin, doloop_end): New patterns. + (*rptb_init): Added extra operands. + +Fri May 14 21:31:36 1999 Michael Hayes + + * config/c4x/c4x.md (*umulqi3_highpart_clobber): Fix operand 2 + constraints order. + +1999-05-14 Ulrich Drepper + + * fixinc/fixinc.x86-linux-gnu (FD_ZERO): Fix operand numbers in + asm input operands. + +Thu May 13 15:34:18 1999 David Edelsohn + + * rs6000.c (mask_constant): Delete. + (mask_operand): Move mask_constant() body to here. + * rs6000.h (mask_constant): Delete declaration. + * rs6000.md (nabsdi2): Reverse subtraction in splitter. + +Thu May 13 02:25:01 1999 Jeffrey A Law (law@cygnus.com) + + * cpp.texi: Fix some typos. + +Thu May 13 01:49:55 1999 Graham Stott + + * loop.c (maybe_eliminate_biv): Check regno against + max_reg_before_loop. + + * i386.c (memory_address_info): Correct the scale + factor test. + +Thu May 13 01:31:19 1999 Nick Burrett + + * arm.md (nop): Backout Apr 27 change. Ensure REGISTER_PREFIX is + applied to each register. + * aof.h (ASM_FILE_START): Define register `r0'. + +1999-05-12 20:22 -0400 Zack Weinberg + + * configure.in: Make --enable-cpp and --with-cpp-install-dir + documented options. Enable the cpp driver by default. + * configure: Rebuilt. + +Wed May 12 18:08:48 1999 David Edelsohn + Richard Henderson + + * rs6000.c (print_operand) [w]: Calculate signed constant more clearly. + (rs6000_allocate_stack_space): Print as hexadecimal value. + * rs6000.h (CONST_OK_FOR_LETTER_P): 'L' checks for a signed, + 16-bit shifted constant. Fix typo for 'P'. + (EXTRA_CONSTARINT): 'T' checks for a 32-bit mask operand. + * rs6000.md (movsi, addsi3_internal1, movdi, adddi3_internal1): + Use 'L' for shifted constant. + (anddi3_internal3): Fix typo. + (32-bit mask patterns): Use 'T'. + +Wed May 12 07:30:31 1999 Bruce Korb + + * fixinc/fixincl.c(quoted_file_exists): new procedure to ensure that + a file exists before trying to copy it into the destination + (extract_quoted_files): use that routine. + +Wed May 12 07:27:31 1999 Craig Burley + + Allow front end (like g77's) to override maintenance of errno: + * expr.c (expand_builtin): Bother with errno only if + flag_errno_math. + * flags.h: Declare flag_errno_math. + * toplev.c: Define flag_errno_math. + +Tue May 11 23:55:49 1999 Jeffrey A Law (law@cygnus.com) + + * fixproto: Change "mkdir" calls to "mkdir -p" + + * fixinc/inclhack.def (io_def_quotes): Consistently allow multiple + whitespace characters between the "define" and the name of the macro. + * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuilt. + +Tue May 11 20:46:37 1999 Richard Henderson + + * alpha.c (alpha_expand_block_move): Handle TImode registers + used with ADDRESSOF. + (alpha_expand_block_clear): Handle ADDRESSOF specially. + +1999-05-11 Ulrich Drepper + + * fixinc/fixinc.x86-linux-gnu (FD_ZERO): Remove unneccessary + memory output operand which irritates gcc. + +Tue May 11 11:45:16 1999 Dave Brolley + + * toplev.c (documented_lang_options): Add -MD, -MMD, -M and -MM for + cpplib-enabled compilers. + +Tue May 11 11:34:56 1999 Vladimir Makarov + + * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Add parentheses + around &&. + +Mon May 10 13:51:24 1999 Nick Clifton + + * tm.texi (FUNCTION_ARG): Stack element of PARALLEL must come + first. + +Tue May 11 01:32:01 1999 Jeffrey A Law (law@cygnus.com) + + * fixinc/inclhack.def (sun_auth_proto): Apply to all targets. + (sysz_stdlib_for_sun): Similarly. + * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuilt. + +Mon May 10 20:34:10 1999 Jim Wilson + + * config/mips/elf.h (UNIQUE_SECTION_P): Undef. + * config/mips/elf64.h (UNIQUE_SECTION_P): Undef. + * config/mips/mips.h (UNIQUE_SECTION_P): Define to 0. + +1999-05-10 18:21 -0400 Zack Weinberg + + * cppfiles.c (initialize_input_buffer): New function. + (finclude): Call it, if pfile->input_buffer is NULL. Accept + any character device as an input file. + (read_and_prescan): Use pfile->input_buffer and + pfile->input_speccase. + * cppinit.c (cpp_cleanup): Free pfile->input_buffer and + pfile->input_speccase. + * cpplib.h (cpp_reader): Add input_buffer, input_speccase, and + input_buffer_len members. Use memcpy in CPP_PUTS_Q. + + * cppmain.c: Buffer output in the token_buffer; throttle + number of calls to fwrite; check for errors from fwrite. + +1999-05-10 18:21 -0400 Zack Weinberg + + * cppspec.c: Treat two non-option arguments as input and + output file. Three or more non-option args is an error. + Clean up. + * gcc.c (default_compilers): Pass -$ to the preprocessor. + * objc/lang-specs.h: Likewise. + +Mon May 10 12:59:20 1999 Jeffrey A Law (law@cygnus.com) + + * optabs.c (emit_cmp_and_jump_insns): Handle the case where both + operands to the comparison are constants. + +Mon May 10 07:28:10 1999 Bruce Korb + + * fixinc/inclhack.def(arm_norcroft_hint): check before fixing + (no_double_slash): portability + (math_exception): added reminder comment + +Mon May 10 01:28:10 1999 Craig Burley + + From Fri May 7 9:31:41 1999 Donn Terry (donn@interix.com): + * varasm.c (mark_constant_pool): Add some transitive closure. + +Sun May 9 22:51:04 1999 Craig Burley + + Fix gcc.dg/990506-0.c: + * c-typeck.c (require_complete_type): Handle ERROR_MARK input. + +Sun May 9 13:19:12 1999 Jeffrey A Law (law@cygnus.com) + + * gcse.c (cprop_insn): Do not try to simplify a simple jump. + +Sun May 9 11:12:19 1999 Philip Blundell + + * config/arm/arm.h (ASM_OUTPUT_MI_THUNK): Add (PLT) to branch if + necessary. Reported by jim@federated.com. + +Sat May 8 23:05:35 1999 Jeffrey A Law (law@cygnus.com) + + * pa.h (PRINT_OPERAND_ADDRESS): Output "%r0", not "r0" for the + base register in an absolute memory address. + * pa.md (conditional moves): Avoid using immediate zero for + register zero. + +Sat May 8 06:23:21 1999 Philip Blundell + + Based on patch by Scott Bambrough: + * config/arm/arm.h (NEED_PLT_GOT): New macro. Set to 0 if not + already defined. + * config/arm/elf.h (NEED_PLT_GOT): Define to flag_pic. + * config/arm/arm.md (call_symbol, call_value_symbol et al.): If + NEED_PLT_GOT is true, add explicit "(PLT)" to generated branches. + * config/arm/arm.c (output_func_epilogue, + output_return_instruction): Likewise for calls to abort. + +Sat May 8 01:57:58 1999 Donn Terry (donn@interix.com) + + * calls.c (rtx_for_function_call): Extend function pointer being + passed to chkr_check_exec_libfunc, if needed. + +Sat May 8 01:51:50 1999 David Edelsohn + + * ginclude/stdarg.h (__va_rounded_size): Use long type for + rounding on AIX. + * ginclude/varargs.h: Likewise. + +Sat May 8 01:47:20 1999 Andreas Schwab + + * invoke.texi: Remove duplicates in the description of -d + letters. Fix use of @item vs. @itemx. + +Sat May 8 01:43:02 1999 Franz Sirl + + * rs6000.h (RS6000_VARARGS_OFFSET): Die die die. + (CUMULATIVE_ARGS): Remove varargs_offset; update commentary. + * rs6000.c (setup_incoming_varargs): Fix typo last change. + (init_cumulative_args): Remove varargs_offset references. + + * rs6000/linux.h (NO_IMPLICIT_EXTERN_C): Define. + (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Undefine. + +Sat May 8 01:34:19 1999 Andreas Schwab + + * reload1.c (gen_mode_int): New function. + (reload_cse_move2add): Use it to generate the new constants. + +Sat May 8 01:25:09 1999 Andreas Schwab + + * varasm.c (output_constant): Do nothing if -fsyntax-only. + +Fri May 7 19:10:15 1999 Vladimir Makarov + + * sparc.h (GO_IF_LEGITIMATE_ADDRESS): Prohibit REG+REG addressing + for TFmode when there are no instructions which accept REG+REG + instructions. + +Fri May 7 12:38:54 1999 Jim Wilson + + * mips/elf64.h (MAKE_DECL_ONE_ONLY, UNIQUE_SECTION_P): Define. + * mips/mips.c (mips_select_rtx_section): When TARGET_MIPS16, use + function_section instead of text_section. + * mips/mips.h (ENCODE_SECTION_INFO): Add check for UNIQUE_SECTION_P + in TARGET_MIPS16 STRING_CST handling. + +Fri May 7 09:54:11 1999 Nick Clifton + + Patch from: Nick Burrett + + * arm.c (arm_poke_function_name): New function to implement + -mpoke-function-name. + * aof.h (ASM_DECLARE_FUNCTION_NAME): Call it. + * aout.h (ASM_DECLARE_FUNCTION_NAME): Likewise. + * elf.h (ASM_DECLARE_FUNCTION_NAME): Likewise. + * arm.h: Prototype it. + (TARGET_SWITCHES): Add `no-poke-function-name'. + +Fri May 7 14:19:31 1999 Rainer Orth + + * fixinc/server.c (load_data): Cast text_size to long, adapt + format. + * fixinc/server.c (read_pipe_timeout): Declare volatile, modified + in signal handler. + (sig_handler): Add debug code. + * fixinc/server.c (run_shell): Don't \-escape cd, it breaks the + Ultrix V4.3 /bin/sh. + * fixinc/server.c (def_args): Use static instead of STATIC to + avoid redefinition error from linker iff DEBUG. + + * fixinc/hackshell.tpl: Don't strip trailing directory from + DESTDIR - that is already done + + * fixinc/fixincl.c (run_compiles): fix memory leak + +Thu May 6 20:34:00 1999 Mark Mitchell + + * resource.c (mark_referenced_resources): Make volatil + monotonically increasing. + (mark_set_resources): Likewise. + +Thu May 6 20:02:33 1999 Fred Fish + + * rs6000/xm-beos.h (HAVE_VPRINTF): Don't redefine if already defined. + (HAVE_PUTENV, HAVE_ATEXIT, HAVE_RENAME): Likewise. + +Wed May 5 20:28:32 1999 Jason Merrill + + * install.texi (Header Dirs): s/GPLUS/GPLUSPLUS/. + +Wed May 5 23:44:15 1999 J"orn Rennecke + + * unroll.c (copy_loop_body): Don't copy VTOP notes from copy_notes_from. + +Wed May 5 16:26:13 1999 Vladimir Makarov + + * function.c (purge_addressof_replacements): Rename into + purge_bitfield_addressof_replacements. + (purge_addressof_replacements): New variable. + (purge_addressof_1): Add code for changing addressof in notes for + field values which are extracted by usage MEM with narrower mode. + (purge_addressof): Initialize purge_bitfield_addressof_replacements. + +Wed May 5 07:40:02 1999 Nick Clifton + + Patch from: Nick Burrett + * config/arm/arm.h (ARM_MCOUNT_NAME): Define. + (FUNCTION_PROFILER): Remove assembler dialect dependency and use + ARM_MCOUNT_NAME. + (TRAMPOLINE_TEMPLATE): Remove assembler dialect dependency. + + * config/arm/aof.h (ARM_MCOUNT_NAME): Define. + +1999-05-05 09:58 -0400 Zack Weinberg + + * gcc.c (default_compilers): Fix brace nesting bug. + * objc/lang-specs.h: Use %i, not %g.mi, for the input file + when processing an .mi file. + +Tue May 4 13:17:55 1999 Mark Mitchell + + * resource.c (mark_set_resources): Handle UNSPEC_VOLATILE, + ASM_INPUT, TRAP_IF, and ASM_OPERANDS just like in + mark_referenced_resources. + +Mon May 3 22:38:41 1999 David Edelsohn + + * rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Change non-PowerPC + and AIX64 combination to warning. Add warning for disabling + PowerPC64 support when using 64-bit mode. + (LIB_SPEC): Do not link with libg.a in 64-bit mode. + (LINK_SPEC): Do not export libg.exp symbols in 64-bit mode. + * rs6000/rs6000.h (MY_ISCOFF): Treat import/export files as valid + XCOFF files. + (read_only_data_section, private_data_section, + read_only_private_data_section): Always align CSECTs to doubleword + boundary regardless of mode. + (TEXT_SECTION_ASM_OP): Align text CSECT on doubleword boundary in + 64-bit mode. + (DATA_SECTION_ASM_OP): Always align CSECT to doubleword boundary. + (ASM_OUTPUT_LOCAL): Use rounded size in 64-bit mode to + maintain doublword alignment. + +Mon May 3 14:45:23 1999 Jeffrey A Law (law@cygnus.com) + + * mn10200.md (btst insns): btst does not leave cc0 in a usable + state for redundant tst eliminatino. + * mn10300.md (btst insns): Likewise. + +Mon May 3 16:14:32 1999 Kaveh R. Ghazi + + * mips.h (Pmode): Revert Oct 14th change which added a cast. + +Sun May 2 14:02:21 1999 Mark Mitchell + + * tree.h (struct tree_decl): Add comdat_flag. + (DECL_COMDAT): Define it. + * toplev.c (wrapup_global_declarations): Don't output a + DECL_COMDAT function just because it's public. + +Sun May 2 15:16:42 1999 Joseph S. Myers + + * pdp11.h (TARGET_SWITCHES): Fix error in previous change. + (ASSEMBLER_DIALECT): Define. + (CONDITIONAL_REGISTER_USAGE): Rename floating point registers if + required for the UNIX assembler. + (ASM_OUTPUT_INT): Remove. The compiler will synthesize it. + (ASM_OUTPUT_ADDR_VEC_PROLOGUE): Remove. + (ASM_OPEN_PAREN, ASM_CLOSE_PAREN): Change to "[" and "]". + (TRAMPOLINE_TEMPLATE): Use ASM_OUTPUT_SHORT. + * pdp11.c (output_addr_const_pdp11): Copy of output_addr_const + adapted to output constants in octal. + * pdp11.c, pdp11.h, pdp11.md: Use output_addr_const_pdp11 instead + of output_addr_const. Output constants in octal. Use assembler + dialect alternatives where DEC and UNIX assemblers use different + instruction names. + +Sun May 2 01:15:06 PDT 1999 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Fri Apr 30 13:55:43 1999 Richard Henderson + + * va-ppc.h (__va_start_common): Let __builtin_saveregs do the work. + * rs6000.c (expand_builtin_saveregs): For V4, initialize a private + va_list struct, and return a pointer to it. + (setup_incoming_varargs): V4 save area based off virtual_stack_vars + instead of frame_pointer. + +Thu Apr 29 23:02:22 1999 Mark Mitchell + + * emit-rtl.c (start_sequence): Expand comments. + (start_sequence_for_rtl_expr): Likewise. + (push_to_sequence): Likewise. + (end_sequence): Likewise. + * expr.c (inhibit_defer_pop): Likewise. + * expr.h (inhibit_defer_pop): Likewise. + (NO_DEFER_POP): Likewise. + (OK_DEFER_POP): Likewise. + +Thu Apr 29 22:13:46 1999 Robert Lipe + + * configure.in (i?86-UnixWare7*-sysv): Set thread_file to 'posix' + --enable-threads[={yes,pthreads,posix}] is passed as a command + line parameter to configure. + * config/i386/sysv5.h (LIB_SPEC): Add support for '-pthread'. + (CPP_SPEC): Likewise. + +Thu Apr 29 17:23:59 1999 Richard Henderson + + * emit-rtl.c (operand_subword): Religiously mask and sign-extend + from 32-bits to HOST_WIDE_INT. + +Thu Apr 29 15:58:52 1999 Robert Lipe + + * fixinc/regex.c, fixinc/regex.h: Removed. Replace with... + * fixinc/gnu-regex.c, fixinc/gnu-regex.h: Imported from GDB 4.18. + * fixinc/Makefile.in (OBJ, HDR): Handle name changes from above. + (gnu-regex.o): Define REGEX_MALLOC to avoid memory leak. + * fixinc/fixincl.c: new regex.h header name + * Makefile.in: new regex.[ch] file names + +Thu Apr 29 12:53:33 1999 Richard Henderson + + * calls.c (emit_call_1): Pass rounded_stack_size to emit_call + instead of the unrounded size. + +1999-04-28 14:40 Bruce Korb + + * fixinc/mkfixinc.sh: Makesure the result shell script is writable + +Wed Apr 28 10:36:39 1999 Andreas Schwab + + * config/m68k/m68k.md (cmpsi+1): Use cmp.w when comparing a 16 bit + constant with an address register. + +Wed Apr 28 00:14:41 PDT 1999 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Tue Apr 27 19:50:25 EDT 1999 Andrew MacLeod + + * rtl.h (REG_EH_REGION): Update comment to indicate a value of -1 + indicates no throw and no nonlocal gotos. + * optabs.c (emit_libcall_block): Emit REG_EH_REGION with a value + of -1 instead of 0 to indicate a nonlocal goto won't happen either. + * flow.c (count_basic_blocks, find_basic_blocks_1): Ignore libcall + blocks, look for REG_EH_REGION note exclusively. + (make_edges): Check for REG_EH_REGION > 0 for specified handlers. + +Tue Apr 27 15:33:42 1999 David Edelsohn + + * rs6000.h (read_only_data_section, private_data_section, + read_only_private_data_section, toc_section): Align CSECT on + doubleword boundary for 64-bit target. + (DATA_SECTION_ASM_OP): Likewise. + * rs6000.c (rs6000_stack_info): Leaf procedure stack limit is 288. + +Tue Apr 27 20:19:47 1999 J"orn Rennecke + + * sh.md (insv): Use copy_addr_to_reg. + + * final.c (insn_lengths_max_uid): New variable. + (init_insn_lengths, shorten_branches): Set it. + (get_attr_lengths): Test insn uid against insn_lengths_max_uid. + +1999-04-27 08:32 -0400 Zack Weinberg + + * expr.c (emit_move_insn_1): Abort if MODE argument is invalid. + (compare): Punt if TREE_OPERAND (exp, 0) is an ERROR_MARK. + +Tue Apr 27 01:33:43 1999 Jeffrey A Law (law@cygnus.com) + + * Makefile.in (ORDINARY_FLAGS_TO_PASS): Renmaed from FLAGS_TO_PASS. + Remove "CC". + (FLAGS_TO_PASS): New variable. + +Tue Apr 27 00:36:44 1999 Nick Burrett + + * arm.md (nop): Output instruction using output_asm_insn to fix + assembler dialect problems. + +Mon Apr 26 23:55:50 1999 Robert Lipe + + * Makefile.in (fixinc.sh): Fix dependencies. + + * fixinc/inclhack.def (avoid_bool): Enable match if typedefs are + prepended by spaces. + (sco5_stat_wrappers): New fix. Make sys/stat.h C++ safe. + * fixinc/fixincl.sh, fixinc/fixincl.x, fixinc/inclhack.sh: Rebuilt. + +Mon Apr 26 23:28:54 1999 Mumit Khan + Donn Terry + + * function.c (put_var_into_stack): Change ptr_mode to Pmode + in setup for chkr_set_right_libfunc calls. + (assign_params): Likewise. + * expr.c (emit_push_insn): Change ptr_mode to Pmode in + setup for chkr_copy_bitmap_libfunc and chkr_set_right_libfunc calls. + (expand_assignment): Change ptr_mode to Pmode in + setup for chkr_add_libfunc and chkr_copy_bitmap_libfunc. + (store_expr): Change ptr_mode to Pmode in + setup for chkr_add_libfunc and chkr_copy_bitmap_libfunc. + (expand_expr): Change ptr_mode to Pmode in + setup for chkr_check_addr_libfunc. + (expand_builtin): Change ptr_mode to Pmode in + setup for chkr_check_str_libfunc, chkr_copy_bitmap_libfunc and + chkr_check_addr_libfunc. + * calls.c (rtx_for_function_call): Change ptr_mode to Pmode in + setup for chkr_check_exec_libfunc. + (expand_call): Change ptr_mode to Pmode in + setup for chkr_set_right_libfunc. + (expand_call): Change ptr_mode to Pmode in + setup for chkr_set_right_libfunc. + (store_one_arg): Change ptr_mode to Pmode in + setup for chkr_set_right_libfunc. + + * c-parse.in (absdcl1): Allow attributes in explicit typespecs. + (%expect): Update. + * c-parse.y: Regenerate. + * c-parse.c: Likewise. + * objc/objc-parse.c: Likewise. + * objc/objc-parse.y: Likewise. + +Mon Apr 26 21:17:41 1999 Jason Merrill + + * c-pragma.c (push_alignment): Don't ignore alignments greater than + 4 bytes. + (handle_pragma_token): Likewise. + + * c-pragma.c: Support for #pragma pack (push, , ). + (struct align_stack): Add id field. + (push_alignment, pop_alignment): Take id parameter. + (handle_pragma_token): Add necessary states. + * c-pragma.h (enum pragma_state): Add necessary states. + +Tue Apr 27 13:58:23 1999 Michael Hayes + + * config/c4x/c4x.md (*cmpqf, *cmpqf_noov, *cmpqi_test, + *cmpqi_test_noov): Remove ? modifier from constraints list. + (*smulqi3_highpart_clobber, *umulqi3_highpart_clobber): Swap + output strings to match new constraint ordering. + +1999-04-26 19:16 -0400 Zack Weinberg + + * cpphash.c (dump_definition): New function. + * cpphash.h: Prototype it. + + * cpplib.c (handle_directive): Don't output anything here. + Streamline. + (pass_thru_directive): Take a length, not a pointer to the + end. All callers changed. + (do_define): Handle -dD, -dN, -g3 entirely here. Streamline. + (do_include): Handle -dI here. + (do_ident): Correct to match cccp. + (do_pragma): Copy the pragma through here. + (do_assert, do_unassert): Tidy. + + * cppinit.c (cpp_finish): If -dM was specified, walk the macro + hash table and call dump_definition on all the entries. + * cppmain.c: cpp_finish may produce output. + +Mon Apr 26 15:27:33 1999 Mark Mitchell + + * toplev.c (compile_file): Move call to check_global_declarations + after output_exception_table to restore behavior as it was before + 1999-04-22 change. + +1999-04-26 10:50 -0700 Bruce Korb + + * fixinc/fixincl.c: Improve the handling of child process exits + * fixinc/server.[ch]: Export the interface for shutting down + the server process + * fixinc/inclhack.tpl: Remove unnecessary character quote + * fixinc/fixincl.sh, fixinc/inclhack.sh: Regenerate + +Mon Apr 26 10:41:42 EDT 1999 Andrew MacLeod + + * alpha.md (builtin_setjmp_receiver): Use a label_ref instead of + a code label. + +1999-04-26 09:47 -0400 Zack Weinberg + + * rtl.texi: Document the rtl classes and their relation to + formats. + +Mon Apr 26 01:02:38 1999 Richard Henderson + + * alpha.md (fix_trunc patterns): Use reg_no_subreg_operand on op0 + for less work in reload. + (movsf and movdf patterns): Put fp reg alternatives first. + +Mon Apr 26 01:55:56 1999 Marc Espie + + * configure.in (openbsd): Factorize xmake_file. + (ix86 openbsd): Trim obsolete comment. + (vax openbsd): Fix typo. + * configure: Rebuilt. + +Mon Apr 26 01:30:59 1999 Donn Terry + + * expr.c (expand_assignment): Improve test for pointer type. + +Mon Apr 26 00:26:18 1999 Richard Henderson + + * alpha.c (print_operand_address): Account for the subreg word. + +Mon Apr 26 01:08:36 1999 Toshiyasu Morita (tm@netcom.com) + + * fold-const.c (make_range): Always initialize arg0 and arg1. + (fold): Similarly for alt0 and alt1. + * function.c (fixup_var_refs_insns): Initialize insn_list. + (instantiate_virtual_regs_1): Initialize offset. + * optabs.c (expand_binop): Initialize carry_in, carry_out, op0_xhigh + and op1_xhigh. + * stmt.c (expand_end_case): Initialize minval and maxval. + +Mon Apr 26 01:02:34 1999 Nathan Sidwell + + * toplev.c (report_error_function): Reorder file stack and + function name printing. Ignore FILE parameter. + +Mon Apr 26 00:58:54 1999 Jerry Quinn + + * pa.h (architecture_type): New enum. + (pa_arch_string, pa_arch): Declare. + (MASK_PA_10, MASK_PA_20): New flags. + (TARGET_SWITCHES): Add pa-risc-2-0. Update docs for PA1.0 codegen. + (TARGET_OPTIONS): Add -march= option. + * pa.c (pa_arch, pa_arch_string): Define. + (override_options): Set them. + * pa/pa-hpux10.h (ASM_FILE_START): Output LEVEL 2.0 asm directive for + 2.0 architecture. + * invoke.texi (Option Summary, HPPA Options): Document new + architecture flags. + + * pa/pa-hpux.h, pa/pa-hpux10.h, pa/pa-hpux9.h, pa/pa-osf.h, pa.h, + pa.c, pa.md, configure.in, configure: Replace TARGET_SNAKE by + TARGET_PA_11 and MASK_SNAKE by MASK_PA_11. + +Mon Apr 26 00:28:25 1999 Theodore Papadopoulo + + * flags.h (inline_max_insns): Declare. + * integrate.c (inline_max_insns): New variable. + (function_cannot_inline_p): Use it. + * toplev.c (main): Add the flag -finline-limit-n. + (display_help): Document -finline-limit-n. + * invoke.texi: Document -finline-limit-n + +Sun Apr 25 23:03:32 1999 Richard Henderson + + * stmt.c (expand_asm_operands): Reload in-out reg-only memory operands. + +Sun Apr 25 13:06:13 1999 Richard Henderson + + * function.c (assign_parms/STACK_BYTES): Revert last change, + and that of 19 Nov. + +Sun Apr 25 12:30:50 1999 Richard Henderson + + * calls.c (emit_call_1): New arg rounded_stack_size; update callers. + Update pending_stack_adjust based on this value. + (compute_argument_block_size): Include pending_stack_adjust in + PREFERRED_STACK_BOUNDARY alignment. + * function.c (assign_parms): Don't round to PREFERRED_STACK_BOUNDARY. + +Sun Apr 25 14:38:10 EDT 1999 John Wehle (john@feith.com) + + * stupid.c (stupid_mark_refs): Generate a REG_UNUSED note + for a register which is clobbered even if the register + was used by an earlier instruction. + + * i386.md (fix_truncsfdi2, fix_truncdfdi2, + fix_truncxfdi2): Don't bother with the gen_reg_RTX. + (fix_truncsfsi2, fix_truncsfdi2, fix_truncdfsi2, + fix_truncdfdi2, fix_truncxfsi2, fix_truncxfdi2): Update + operand constraints and modes. + * i386.c (output_fix_trunc): Use HImode register to avoid + memory stalls. Call output_move_double instead of output_to_reg. + (output_to_reg): Remove. + * i386.h: Likewise. + + * i386.md (negsf2, negdf2, negxf2): Set the type + attribute to fpop. + +Sat Apr 24 23:15:57 1999 Donn Terry (donn@interix.com) + + * alpha.md (call_value_nt): Correct subscripts. + +Sat Apr 24 20:49:20 1999 Richard Henderson + + * alpha.h (PRINT_OPERAND_ADDRESS): Break out to ... + * alpha.c (print_operand_address): here. Handle subregs. + +Fri Apr 23 22:35:41 EDT 1999 John Wehle (john@feith.com) + + * acconfig.h (HAVE_GAS_FILDS_FISTS): Add. + * configure.in: Check assembler instructions. + * configure: Rebuild. + * config.in: Likewise. + * i386.md (floathisf2, floathidf2, floathixf2): New patterns. + * i386.c (print_operand): Use the proper suffix for a 387 HImode + operand. Abort if a 387 operand has an unsupported size. + +Fri Apr 23 16:57:40 1999 Richard Henderson + + * alpha.c (alpha_write_verstamp): Mark `file' unused. + * alpha.h (FUNCTION_VALUE): Use gen_rtx_REG not gen_rtx. + (LIBCALL_VALUE): Likewise. + (GO_IF_LEGITIMATE_SIMPLE_ADDRESS): Handle normal subregs. + +Fri Apr 23 14:57:33 1999 Donn Terry + + * alpha32.h (INITIALIZE_TRAMPOLINE): Get offsets right. + + * alpha.c (alpha_initialize_trampoline): Add covert_memory_address + calls as needed. + +Fri Apr 23 14:36:47 1999 Richard Henderson + + * alpha.c (alpha_expand_prologue): Don't negate frame size + for use with subq. + +Fri Apr 23 09:43:18 1999 Nick Clifton + + * print-rtl.c (print_rtx): Display LABEL_NUSES for labels. + +Thu Apr 22 23:08:37 1999 Mark Mitchell + + * toplev.h (wrapup_global_declarations): Declare. + (check_global_declarations): Likewise. + * toplev.c (wrapup_global_declarations): New function, split out + from ... + (check_global_declarations): Likewise... + (compile_file): Here. + +Thu Apr 22 22:34:41 1999 Richard Henderson + + * c-parse.in (expr_no_commas): Verify we've an expr before + calling C_SET_EXP_ORIGINAL_CODE. + +Thu Apr 22 22:22:15 EDT 1999 John Wehle (john@feith.com) + + * toplev.c (rest_of_compilation): Always set + current_function_uses_only_leaf_regs appropriately. + +Thu Apr 22 14:39:43 1999 Mumit Khan + + * i386/xm-cygwin.h (HAVE_BCOPY): Delete unneeded macro. + (HAVE_BZERO): Likewise. + (HAVE_BCMP): Likewise. + (HAVE_RINDEX): Likewise. + (HAVE_INDEX): Likewise. + (DIR_SEPARATOR_2): Define. + (GET_ENV_PATH_LIST): Turn path lists into POSIX. + (PATH_SEPARATOR): Use ':'. + +1999-04-22 Bruce Korb + + * configure.in: enable disabling of fast fixincludes + * configure: regenerate + +1999-04-21 14:55 -0400 Zack Weinberg + + * gen-protos.c: #undef abort after including system.h. + Delete defns of fancy_abort and fatal. + * fix-header.c: Delete defn of fancy_abort. + +Wed Apr 21 12:09:38 1999 Mumit Khan + + * cccp.c (simplify_filename): Always preserve leading double slash. + +Wed Apr 21 18:15:55 1999 Michael Hayes + + * config/c4x/c4x.md: Add new peepholes to remove redundant loads. + +Wed Apr 21 17:41:29 1999 Michael Hayes + + * config/c4x/c4x.md (binary patterns): Reorder alternatives + so that two operand instructions are chosen before three operand + instructions. + +Tue Apr 20 23:38:58 1999 Nathan Sidwell + + * objc/Make-lang.in (objc-parse.c): Put BISON parameters in correct + order. + + * Makefile.in (c-parse.c): Put BISON parameters in correct + order. + +Tue Apr 20 16:38:11 1999 Richard Henderson + + * alpha.md (nt_lda): New pattern. + * alpha.c (alpha_expand_prologue): Use it for large frames + under windows nt. + +Tue Apr 20 17:57:14 1999 Catherine Moore + + * config/arm/arm.md (movhi): Add check for odd offset. + +Tue Apr 20 13:14:58 EDT 1999 John Wehle (john@feith.com) + + * i386.c (output_move_double): Abort if a non-offsettable + memory operand is encountered. Delete unused code. + (find_addr_reg): Remove. + +Mon Apr 19 21:13:02 1999 Craig Burley + + * tree.def (BLOCK): Fix typo in comment. + +1999-04-19 14:51 -0400 Zack Weinberg + + * cpplib.c (output_line_command): Drop CONDITIONAL argument. + We can omit unnecessary line commands if file_change == + same_file and pfile->lineno != 0. All callers changed. + (cpp_get_token [case '\n']): Don't bump pfile->lineno if + CPP_OPTIONS (pfile)->no_line_commands is set. + * cpplib.h: Fix prototype of output_line_command. + +1999-04-18 17:46 -0400 Zack Weinberg + + * cppfiles.c (find_position, read_and_prescan): Use `unsigned + long' variables consistently to count line and column numbers. + +Sun Apr 18 15:50:33 EDT 1999 John Wehle (john@feith.com) + + * output.h (current_function_is_leaf, + current_function_uses_only_leaf_regs): Declare. + * function.c (current_function_is_leaf, + current_function_uses_only_leaf_regs): Define. + (init_function_start): Initialize current_function_is_leaf + and current_function_uses_only_leaf_regs. + * final.c (leaf_function): Don't define. + (final_start_function): Replace uses of leaf_function with + current_function_uses_only_leaf_regs. + * toplev.c (rest_of_compilation): Set current_function_is_leaf + prior to invoking local register allocation. + (rest_of_compilation): Replace uses of leaf_function with + current_function_uses_only_leaf_regs. + * dbxout.c (dbxout_symbol, dbxout_parms): Likewise. + * dwarf2out.c (add_location_or_const_vaule_attribute): Likewise. + * dwarfout.c (add_location_or_const_value_attribute): Likewise. + * sdbout.c (sdbout_symbol): Likewise. + * sparc.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Likewise. + * sparc.c (eligible_for_epilogue_delay, output_return, + sparc_return_peephole_ok): Likewise. + * sparc.md (leaf_function attribute, untyped_return): Likewise. + * i386.c (ix86_compute_frame_size): Don't align the stack + for leaf functions which don't allocate any stack slots. + * tm.texi: Update documentation. + +Sun Apr 18 02:15:09 PDT 1999 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Sun Apr 18 00:08:45 1999 Richard Henderson + + * alpha.h (GO_IF_LEGITIMATE_SIMPLE_ADDRESS): Correct last change -- + make sure FP_BASE_P registers are only used with an integer. + +Sat Apr 17 22:54:17 1999 Richard Henderson + + * alpha.h (REG_OK_FP_BASE_P): New macro. + (GO_IF_LEGITIMATE_SIMPLE_ADDRESS): Use it. + * alpha.md (adddi3+1): New insn to handle large constants off + the soft frame pointer. + (adddi3+2): Don't split soft frame pointer or arg pointer additions. + +Sun Apr 18 17:24:10 1999 Michael Hayes + + * config/c4x/c4x.c (legitimize_operands): Use rtx_cost + to determine if it is worthwhile forcing a constant into a register. + * config/c4x/c4x.h (CONST_COSTS): An integer value of 255 or 65535 + used with a logical and or an integer value of 16 or 24 used with + a right shift has zero cost on the C40. + +Sat Apr 17 21:30:11 1999 Bernd Schmidt + + * gcse.c (compute_local_properties): If setp is nonzero, clear + TRANSP instead of setting it to all ones. + +Sat Apr 17 21:10:10 1999 Jan Hubicka + + * i386.c (i386_preferred_stack_boundary_string): New global variable. + (i386_preferred_stack_boundary): New global variable. + (override_functions): Set it. Tidy option setting code. + * i386.h (TARGET_OPTIONS): New command line option. + (i386_preferred_stack_boundary_string): Declare it. + (i386_preferred_stack_boundary): Likewise. + (PREFERRED_STACK_BOUNDARY): Use i386_preferred_stack_boundary. + +Sat Apr 17 19:22:38 1999 Jan Hubicka + + * i386.c (k6_cost): Take into account the decoding time. + +Sat Apr 17 19:13:22 1999 Donn Terry + + * i386.h (PRINT_OPERAND_PUNCT_VALID_P): Allow _. + * i386.c (print_operand): New %_ operator. + (load_pic_register): Proper number of leading _ in GOT literal. + * i386.md (prologue_get_pc_and_set_got): Likewise. + * i386/unix.h (ASM_OUTPUT_MI_THUNK): Likewise. + +Sat Apr 17 19:13:07 1999 Richard Henderson + + * alpha.c (alpha_expand_prologue): Use gen_adddi3 instead of + emit_move_insn+plus_constant. For NT, don't use the stack probe + loop pointer to allocate stack space. + * alpha.md (adddi3): Always use lda to set the stack pointer. + +1999-04-17 20:11 -0400 Zack Weinberg + + * c-aux-info.c, emit-rtl.c, explow.c, expmed.c, gcse.c, + haifa-sched.c, optabs.c, reorg.c, resource.c, sched.c: Include + toplev.h for real declaration of trim_filename. + * Makefile.in: Update dependencies. + +Sat Apr 17 14:36:19 1999 Craig Burley + + * tree.c (chainon): Check for circularity only if + ENABLE_CHECKING is defined. + +1999-04-17 10:15 -0400 Zack Weinberg + + * cccp.c: Make fatal non-static. + +Sat Apr 17 23:47:24 1999 Michael Hayes + + * config/c4x/c4x.md (*andqi3_255_clobber,*andqi3_65535_clobber): + New logical and patterns using C40 bit-field insert instructions. + (*lshrqi3_24_clobber,*ashrqi3_24_clobber,*lshrqi3_16_clobber, + *ashrqi3_16_clobber): New shift patterns using C40 bit-field insert + instructions. + +1999-04-16 22:44 -0400 Zack Weinberg + + * system.h: Always prototype abort. Prototype fatal. Define + abort to call fatal, not fprintf/exit. Define a stub macro + for trim_filename. + * toplev.c: Define DIR_SEPARATOR. (trim_filename): New + function. + * toplev.h: Prototype trim_filename, and #undef system.h's stub. + + * gcc.c, genattr.c, genattrtab.c, gencodes.c, genconfig.c, + genemit.c, genextract.c, genflags.c, genopinit.c, genoutput.c, + genpeep.c, genrecog.c: Make fatal non-static. + * gcov.c, gengenrtl.c, protoize.c: #undef abort after + including system.h. + + * config/i386/dgux.h, config/m68k/xm-amix.h: Remove stale code + relating to abort. + +Sat Apr 17 11:25:44 1999 Michael Hayes + + * config/c4x/c4x.md (mulqf3_clrqf_clobber, mulqi3_clrqi_clobber): + New patterns to support parallel multiply and load of zero. + +Fri Apr 16 01:23:47 1999 Jason Merrill + + * tree.c (valid_machine_attribute): If we're modifying the + FUNCTION_TYPE within a POINTER_TYPE and we don't get a decl, + update the POINTER_TYPE. + +Fri Apr 16 00:19:31 1999 Jan Hubicka + + * i386.c (x86_adjust_cost): Move break statement to correct place. + +Thu Apr 15 23:17:33 1999 Jerry Quinn + + * pa.h (HAVE_PRE_INCREMENT, HAVE_POST_INCREMENT, + HAVE_PRE_DECREMENT, HAVE_POST_DECREMENT): Fix pa_cpu value from + 8000 to PROCESSOR_8000. + +Thu Apr 15 20:46:57 1999 Donn Terry (donn@interix.com) + + * expr.c (expand_assignment): Force pointers to proper mode if + POINTERS_EXTEND_UNSIGNED is defined. + + * xm-alpha.h (alloca.h): Add Interix to list of special machines + that don't like alloca.h, pending using autoconf results. + + * except.c (start_catch_hadler): Be sure rtime_address is Pmode + if POINTERS_EXTEND_UNSIGNED. + + * except.c (expand_eh_return): Force pointers to proper mode if + POINTERS_EXTEND_UNSIGNED. + +Thu Apr 15 23:13:35 1999 Michael Hayes + + * config/c4x/c4x.h: Tweaked comment formatting. + * config/c4x/c4x.c: Likewise. + +Thu Apr 15 02:45:19 1999 Mumit Khan + + * aclocal.m4 (GCC_FUNC_MKDIR_TAKES_ONE_ARG): Define. + * configure.in: Use. + * configure: Rebuilt. + * acconfig.h (MKDIR_TAKES_ONE_ARG): Add. + * config.in: Rebuilt. + * system.h: Use. + +Thu Apr 15 01:03:21 1999 Jan Hubicka + Jeff Law + + * i386.md (QImode add pattern): Support lea instruction. + (HImode add pattern): Likewise. + + * i386.md (ashlsi patterns): Call output_ashl instead of output_ashlsi3. + (ashlqi): Use expander, separate LEA and SAL / ADD patterns; call + output_ashl. + (ashlhi): Likewise. + * i386.h (output_ashl): Renamed from output_ashlsi3. + * i386.c (output_ashl): Likewise; support HImode and QImode operands + as well. + + * i386.md (notsi, nothi, xorsi, xorhi, and xorqi patterns): Call + memory_address_displacement_length instead of memory_address_length. + * i386.c (memory_address_info): Renamed from memory_address_length. + Accept new argument DISP_LENGTH. All callers changed. If DISP_LENGTH, + then return the displacement length. Else return length of the + entire memory address. Handle MULT case correctly. + * i386.h (memory_address_info): Update declaration. + + * i386.md (memory_bit_test): Fix paren error. + +Wed Apr 14 21:29:18 1999 Andrew Haley + + * flow.c: (make_edges): Always make edges from a basic block + to its exception handlers, even if the block ends with a jump. + +1999-04-14 23:26 -0400 Zack Weinberg + + * graph.c (node_data): Return void. Ignore result of + print_rtl_single. Change caller to match. + * integrate.c (subst_constants): Initialize op0_mode to an + invalid mode, and abort before use if it's still invalid. + (Can only happen if the RTX_CLASS, RTX_FORMAT tables are corrupted.) + * objc/objc-act.c (get_objc_string_decl, + build_selector_translation_table, generate_protocol_list, + synth_id_with_class_suffix, build_keyword_selector, + build_selector_expr, gen_declarator): Abort when the tree + structure is corrupted. + +Wed Apr 14 19:57:49 1999 Jeffrey A Law (law@cygnus.com) + + * configure.in (alpha interix): Use symbolic names to set + target_cpu_default. + * configure: Rebuilt. + + * explow.c (allocate_dynamic_stack_space): Undo last change. Use + convert_memory_address instead. + +Wed Apr 14 19:42:02 1999 Donn Terry (donn@interix.com) + + * alpha/lib1funcs.asm: New file. + * alpha/t-interix (lib1funcs.asm): Add to build. + + * explow.c (allocate_dynamic_stack_space): Correctly convert TARGET + to Pmode. + +Wed Apr 14 14:26:36 1999 John Wehle (john@feith.com) + + * i386.md (truncxfdf): Output the template supplied + by output_move_double with the correct operands. + + * i386.md (extendsfdf, extendsfxf, extenddfxf): Use + output_float_extend instead specifying '#' as the template. + * i386.c (output_float_extend): Define. + * i386.h (output_float_extend): Declare. + +Wed Apr 14 10:48:03 1999 Catherine Moore + + * config/mips/elf.h, config/mips/elf64.h + (CTORS_SECTION_ASM_OP): Define. + (DTORS_SECTION_ASM_OP): Define. + (EXTRA_SECTIONS): Define. + (INVOKE__main): Define. + (NAME__MAIN): Define. + (SYMBOL__MAIN): Define. + (EXTRA_SECTIONS_FUNCTIONS): Define. + (SECTION_FUNCTION_TEMPLATE): Define. + (ASM_OUTPUT_CONSTRUCTOR): Define. + (ASM_OUTPUT_DESTRUCTOR): Define. + (CTOR_LIST_BEGIN): Define. + (CTOR_LIST_END): Define. + (DTOR_LIST_BEGIN): Define. + (DTOR_LIST_END): Define. + (LIB_SPEC): Define. + (STARTFILE_SPEC): Define. + (ENDFILE_SPEC): Define. + * config/mips/linux.h: Undefine all of the above. + * config/mips/rtems64.h: Likewise. + * config/mips/t-r3900: Likewise. + * config/mips/t-elf: New file. + * config/mips/vxworks.h: New file. + * configure.in (mips-wrs-vxworks): Use mips/vxworks.h. + (mips*-*-*elf*): Use t-elf instead of t-ecoff. + * configure: Regenerate. + +Wed Apr 14 09:59:38 1999 Richard Henderson + + * reload1.c (emit_reload_insns): Also find equivalent mems + for subregs of pseudos. + + * alpha.c (aligned_memory_operand): Recognize the output of + LEGITIMIZE_RELOAD_ADDRESS. Examine reg_equiv_memory_loc in + the event of a pseudo. + (unaligned_memory_operand): Likewise. Don't otherwise accept + completely illegal addresses. + (normal_memory_operand): Likewise. Handle subregs of pseudos. + (get_aligned_mem): Revert previous change. Abort if we don't have a + mem. During reload, call find_replacement on all illegal memories. + (get_unaligned_address): Likewise. + * alpha.h (SECONDARY_INPUT_RELOAD_CLASS): Use !aligned_memory_operand + instead of unaligned_memory_operand. + * alpha.md: Revert extra argument to get_aligned_mem. + (reload_inqi): Use any_memory_operand in constraints. Abort if + we're not given some sort of mem. + (reload_inhi): Likewise. + (reload_outqi, reload_outhi): Likewise. + +Wed Apr 14 09:39:20 1999 Richard Henderson + + * i386.md (neghi): Use the whole register when widening the op. + +1999-04-14 12:37 -0400 Zack Weinberg + + * cpperror.c, cppexp.c, cpplib.c: Never call abort. + * cpphash.c: Only call abort when we detect corruption of the + malloc arena. + * cppmain.c: Don't define fatal or fancy_abort. + +Wed Apr 14 09:19:39 1999 Jan Hubicka + + * i386.c (x86_adjust_cost): Agi stall takes 1 cycle on Pentium, fst + requires value to be ready one extra cycle. + +Wed Apr 14 11:28:34 1999 Dave Brolley + + * config/i386/i386.c (memory_address_length): Add missing parenthesis. + +Wed Apr 14 13:59:27 1999 Martin von Loewis + + * extend.texi (Deprecated Features): New node. + * invoke.texi (-Wdeprecated): Document. + +Wed Apr 14 00:18:22 1999 Jan Hubicka + + * i386.md (SImode logical compare): Avoid outputting non-pariable testw + and testl on Pentium. + (register and memory bit tests): Likewise. + (setcc, normal and reversed conditional branches): Use shorter + sequence for testing flags stored in EAX. + + * i386.md (xorsi3): Do not output NOT instrctions on Pentium. + (xorqi3): Likewise. + (xorhi3): Likewise. + (notsi2): Likewise. + (notqi2): Likewise. + (nothi2): Likewise; do not output prefixed opcodes when possible. + + * i386.md (neghi2): Do not output prefixed opcode when possible. + (ashlhi3): Likewise. + +Wed Apr 14 00:08:46 1999 Richard Henderson + + * i386.c (memory_address_length): New function. + * i386.h (memory_address_length): Declare it. + +Tue Apr 13 22:52:04 1999 Donn Terry (donn@interix.com) + Martin Heller (Ing.-Buero_Heller@t-online.de) + + * configure.in (interix Alpha): Add. + (winnt Alpha): Use alpha32.h + (interix i386): Parallel Alpha32. + * configure: Rebuilt. + + * config/interix.h: Move common elements from i386-interix.h. + * config/i386/i386-interix.h: Delete same. + * config/alpha/alpha-interix.h: New file. + + * config/alpha/alpha32.h: New file, part fron win-nt.h. + * config/alpha/win-nt.h: Deletions (-> alpha32.h). + * config/alpha/interix.h: New file + + * config/alpha/alpha.md (interix): Comment. + + * config/alpha/xm-alpha-interix.h: New file. + + * config/alpha/t-interix: New file. + + * fixinc/mkfixinc.sh (interix/Alpha): Add. + +1999-04-13 Mike Stump + + * i386/vxi386.h (CPP_CPU_SPEC): Define appropriately for vxworks. + (CPP_PREDEFINES, LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): likewise. + +Tue Apr 13 21:01:36 1999 Jason Merrill + + * c-common.c (default_valid_lang_attribute): New fn. + (valid_lang_attribute): New callback ptr. + (decl_attributes): Call it. Move init_priority support into + C++ frontend. + +Tue Apr 13 17:47:14 1999 John Wehle (john@feith.com) + + * i386.md (movdi): Add splitter. + +Wed Apr 14 10:04:27 1999 Michael Hayes + + * config/c4x/c4x.md (storeqf_int, storeqf_int_clobber, loadqf_int, + loadqf_int_clobber): Add new patterns with corresponding splitters + to handle moves of floating point values into and out of intager + registers by using memory. + + * config/c4x/c4x.c (c4x_check_legit_addr): Disallow PRE_INC for modes + other than QFmode and QImode. + (mixed_subreg_operand): New function. + (c4x_emit_move_sequence): If moving a floating point value into or + out of an integer register, use the new patterns storeqf_int_clobber + or loadqf_int_clobber. + (reg_imm_operand, *_reg_operand): Call reg_operand instead of + register_operand. + (reg_operand, src_operand): Disallow operand if it satisifes + mixed_subreg_operand. + + * config/c4x/c4x.h (mixed_subreg_operand): Add prototype. + +Tue Apr 13 14:49:13 1999 Jan Hubicka + + * i386.c (agi_dependent): Handle push operation more correctly. + +Tue Apr 13 14:45:17 1999 Jan Hubicka + + * i386.md (anddi3): Add % constraint. + (iordi3, xordi3): Likewise. + +Tue Apr 13 14:29:58 1999 Jan Hubicka + + * i386.md (extendhisi2): Output mov instead of cw instruction for K6 + to improve decoding bandwidth. + * i386.md (extendhiqi2): Likewise. + +Tue Apr 13 14:26:31 1999 Jan Hubicka + + * i386.md (movsf_push): Handle memory to memory case too, new splitter. + (movdf_push, movxf_push): Likewise. + (movsf_push_memory, movdf_push_memory, movxf_push_memory): Remove. + +Tue Apr 13 14:14:06 1999 Jan Hubicka + + * i386.md: Do not output mov %0,reg on AMD K6. + +Tue Apr 13 12:14:07 1999 Dave Brolley + + * cppinit.c (cpp_start_read): Fix buffer overwrite. + * Makefile.in (cppinit.o): Typo in dependencies. + +Tue Apr 13 05:04:59 1999 Richard Earnshaw (rearnsha@arm.com) + + * arm.h (function prototypes for arm.c): Ifdef these out if + HAVE_CONFIG_H is not defined. + +Tue Apr 13 02:11:11 1999 Jeffrey A Law (law@cygnus.com) + + * pa.c: Avoid Using immediate zero for register zero. + * pa.md: Likewise. + + * pa.c (print_operand, case 'f'): New case for FP register or 0.0. + (print_operand, case 'r'): Use %r0 for zero value. + * pa.md (move patterns, fcmp patterns): Use new %f output arg. + + * pa.c: Use a register name, not a raw immediate in branch, + compare/clear, sub, subb, uaddcm and vshd instructions. + * pa.md: Likewise. + + * pa.md, pa.h, ee.asm, ee_fp.asm, lib2funcs.asm: Likewise. + + * pa.c: Use a register name, not a raw immediate in "bv" instructions. + * pa.md, pa.h, ee.asm, ee_fp.asm, lib2funcs.asm: Likewise. + + * pa.c: Remove space register specification in memory addresses, + except where it is actually needed. + * pa.md, pa.h, ee.asm, ee_fp.asm, lib2funcs.asm: Likewise. + +Mon Apr 12 23:34:35 1999 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Mon Apr 12 14:58:30 1999 Jan Hubicka + + * reg-stack.c (check_stack_regs_mentioned): Remove variable SIZE. + +Mon Apr 12 19:15:17 1999 Daniel Jacobowitz + + * rs6000/sysv4.h (CPP_OS_LINUX_SPEC): Add missing backslash. + +Mon Apr 12 19:11:38 1999 Mumit Khan + + * i386/cygwin.h (SUBTARGET_SWITCHES): Add -mconsole; fix + -mno-nop-fun-dllimport and minor doc fixes. + (STARTFILE_SPEC): Cygwin DLLs don't have dllcrt0. + (LINK_SPEC): Add -mconsole support. + * i386/mingw32.h (LIB_SPEC): Make libraries consistent with + Cygwin. + (LINK_SPEC): Remove. Use Cygwin's version. + (MATH_LIBRARY): Make it null. + * i386/crtdll.h (MATH_LIBRARY): Likewise. + +Fri Apr 12 15:00:52 1999 Stan Cox + + * c-decl.c (c_decode_option, start_decl, start_function, + finish_function) : Recognize -Wno-main so we can avoid warnings. + +1999-04-12 Zack Weinberg + + * cpphash.c (collect_expansion, macroexpand, + push_macro_expansion): Make the escape character in macro + buffers '\r', not '@'. Remove code to protect literal + occurrences of the escape character; '\r' cannot appear + in a macro buffer unless we put it there. + * cpplib.c (skip_comment, copy_comment, cpp_skip_hspace, + copy_rest_of_line, cpp_get_token, parse_string, + parse_assertion): '\r' might be a backslash-newline marker, or + it might be a macro escape marker, depending on + CPP_BUFFER (pfile)->has_escapes. '@' is not a special + character. + * cpplib.h: Update commentary. + +Mon Apr 12 09:30:03 1999 Richard Earnshaw (rearnsha@arm.com) + + * arm.h (target_fp_name, structure_size_string, arm_cpu_select): + Const-ify. + * arm.c (target_fp_name, structure_size_string): Const-ify. + + * arm.md (reload_inhi, reload_outhi): Make the scratch DImode. + * arm.c (arm_reload_in_hi): Handle cases when the input is still + a pseudo, make use of scratch registers for reloading the address + as appropriate. + (arm_reload_outhi): Similarly for when the output is still a pseudo. + + * riscix.h (SUBTARGET_SWITCHES): Document. + +1999-04-12 Bruce Korb + + * fixincludes: + make fixincludes behave like the scripts in fixinc/ + + * Makefile.in( stmp-fixinc ): + ensure the SHELL value is that of the make + + * fixincl/inclhack.tpl: + the file name lists ought to be restricted to "*.h" anyway + C++ files may be named .../[a-z]++/... also + Adding copyright year and attribution to output + + * fixincl/inclhack.def: + fixed broken expression + Clarify a some comments + + * fixincl/fixincl.tpl: + Clarify a some comments + Remove dead template text + Correct the counting of regular expressions + +Mon Apr 12 03:07:44 1999 Richard Henderson + + * alpha.c (aligned_memory_operand): Handle out of range stack slots. + Take a new SCRATCH argument for the occasion. Update all callers. + (get_unaligned_address): Abort on out of range stack slots. + * alpha.md (adddi3 splitter): Check s_p_rtx not REGNO. + (reload_inqi): Check for aligned mems before unaligned. + (reload_inhi): Likewise. + +Mon Apr 12 03:11:30 1999 Jeffrey A Law (law@cygnus.com) + + * flow.c (flow_delete_insn): If we delete a CODE_LABEL, also remove + it from the nonlocal_goto_handler_labels list. + * jump.c (delete_insn): Likewise. + (jump_optimize_1): Also recompute LABEL_NUSES when we are just + marking labels. + * rtl.h (remove_node_from_expr_list): Declare. + * rtlanal.c (remove_node_from_expr_list): New function. + +Mon Apr 12 02:37:02 1999 Jan Hubicka + + * reg-stack.c: Update comment, include varray.h. + (stack_regs_mentioned_data): New global variable. + (check_stack_regs_mentioned): New function. + (stack_regs_mentioned): New function. + (reg_to_stack): Initialize and free stack_regs_mentioned_data, + use stack_regs_mentioned. + (record_asm_reg_life): Change insn type cache for changed insn. + (record_reg_life): Do not change the insn mode. + (emit_pop_insn): Likewise. + (emit_swap_insn): Likewise. + (move_for_stack_reg): Likewise. + (stack_reg_life_analysis): Use stack_regs_mentioned. + (emit_swap_insn): Likewise. + (subst_stack_regs): Likewise. + (convert_regs): Likewise. + * jump.c (find_cross_jump): Use stack_regs_mentioned. + * rtl.h (stack_regs_mentioned): Declare. + +Mon Apr 12 00:57:10 1999 Theodore Papadopoulo + + * integrate.c (INTEGRATE_THRESHOLD): Sync it with the comment. + +Sun Apr 11 10:24:18 1999 Mark Mitchell + + * rtl.h (rtx_def): Update documentation for jump and call. + +Sun Apr 11 07:43:44 1999 Kaveh R. Ghazi + + * jump.c (jump_optimize_1): Make the definition static to match + the prototype. + +Sat Apr 10 22:51:53 1999 Jan Hubicka + + * flow.c (life_analysis): New parameter remove_dead_code. + (life_analysis_1): Likewise. + (propagate_block): Likewise; use it. + * output.h: Update prototype. + * toplev.c: Update calls to life_analysis. + +Sat Apr 10 22:12:12 1999 Jan Hubicka + + * recog.c (constrain_operands): Ignore unary operators when + matching operands. Recognize '5'..'9' as well. + +Sat Apr 10 21:53:02 1999 Philipp Thomas (kthomas@gwdg.de) + Richard Henderson + + * configure.in: Set target_cpu_default2 for target_alias k6. + * i386.h (TARGET_SWITCHES): Remove no- entries. + (CC1_CPU_SPEC): Likewise. + (CPP_CPU_DEFAULT_SPEC): Streamline definition. Add K6 version. + (CPP_K6_SPEC): New. + (CPP_CPU_SPEC): Add K6 variant. + (EXTRA_SPECS): Likewise. + +Fri Apr 9 11:29:17 1999 Richard Henderson + + * flow.c (merge_blocks_nomove): Rewrite to properly handle two + blocks that vanish entirely during merging. + +Sat Apr 10 20:09:55 1999 John Wehle (john@feith.com) + + * i386.md (floatsisf2, floatdisf2, floatsidf2, floatdidf2, + floatsixf2, floatdixf2, movsicc, movhicc, movsfcc, movdfcc, + movxfcc, movdicc): Remove unused register constraints from + the splitters. + + * i386.md (fixuns_truncsfsi2, fixuns_truncdfsi2, + fixuns_truncxfsi2): Delete. + + * reg-stack.c (delete_insn_for_stacker): Ensure that + the only side effects of a PARALLEL are clobbers. + (subst_stack_regs): Handle subst_stack_regs_pat deleting + a PARALLEL. + * i386.md (extendsfdf2, extenddfxf2, + extendsfxf2): Rewrite using a splitter. + * i386.c (output_op_from_reg): Remove. + * i386.h: Likewise. + +Sat Apr 10 13:09:18 1999 Nick Clifton + + * config/arm/arm.c (di_operand): Allow SUBREGs as well. + (soft_df_operand): Allow SUBREGs as well. + +Sat Apr 10 06:14:31 1999 Jan Hubicka + + * extend.texi (Assembler Instructions with C Expression Operands): + Document the i386 floating point operands. + +1999-04-10 Mike Stump + + * configure.in (*-*-vxworks): Add vxWorks thread support for all + vxWorks targets. + * configure.in (thumb-wrs-xvworks): Add vxWorks support for thumb. + * configure: Rebuilt. + +Sat Apr 10 06:04:50 1999 Donn Terry (donn@interix.com) + + * i386/t-interix: Use mostly system headers unchanged. + Use system assert.h + * fixinc/fixinc.interix: Ditto (make almost no-op). + * config/x-interix.h (_ALL_SOURCE): add -D + * config/x-interix.h (crti.o): Delete dependency. + * config/xm-interix.h (ONLY_INT_FIELDS): Define only when bootstrapping. + * i386/xm-i386-interix.h: New file. + * i386/interix.h (ASM_OUTPUT_LIMITED_STRING): Fix warnings. + * i386/i386-interix.h: Renamed from interix.h. + * configure.in (interix): Use new files. + * configure: Rebuilt. + +Sat Apr 10 05:25:28 1999 Daniel Jacobowitz + + * rs6000/sysv4.h (CPP_OS_LINUX_SPEC): Fix conditions + for -Dunix and -Dlinux, and remove duplicate definition. + Change -Asystem(linux) to -Asystem(posix). + (CPP_OS_SOLARIS_SPEC): Fix conditions for -Dunix, -Dsun, + -DSVR4, -D__EXTENSIONS__. + + * rs6000/linux.h (CPP_PREDEFINES): Remove -Dunix, + -Dlinux, -Asystem(linux), and -Asystem(unix). + +Sat Apr 10 05:14:50 1999 Mark Elbrecht + + * i386/djgpp.h (SET_ASM_OP): Define. + + * cccp.c (DIR_SEPARATOR): Move to the top of the file. + (is_dir_separator): New function. + (simplify_filename): Use it. + * collect2.c (find_a_file): Use HAVE_DOS_BASED_FILE_SYSTEM in place + of the DIR_SEPARATOR test. + Consider any file starting with a drivename to be absolute. + If the absolute filename test fails and EXECUTABLE_SUFFIX is + defined, append EXECUTABLE_SUFFIX to the file and try again. + * cppinit.c (base_name): Use HAVE_DOS_BASED_FILE_SYSTEM + in place of __MSDOS__ and _WIN32. + * cppfiles.c (simplify_pathname): Likewise. + * gcc.c (IS_DIR_SEPARATOR): Define new macro. Returns true if a + character is a directory separator. + (find_a_file): Use it. + (convert_filename): Likewise. + (process_command): Likewise. + (do_spec_1): Likewise. + (is_directory): Likewise. + (main): Likewise. + * prefix.c (IS_DIR_SEPARATOR): Define. Tests whether a character is + a directory separator. + (translate_name): Use it. + (update_path): Change DIR_SEPARATOR_2 to DIR_SEPARATOR. Fix + warning in block where '/' is changed to DIR_SEPARATOR. + * i386/xm-djgpp.h (DIR_SEPARATOR): Set to '/'. + (DIR_SEPARATOR_2): New macro. Set to '\'. + (HAVE_DOS_BASED_FILESYS): Define. + * i386/xm-mingw32.h: Updated copyright. Set + DIR_SEPARATOR_2 to '/'. Define HAVE_DOS_BASED_FILE_SYSTEM. + * i386/xm-os2.h: Likewise. + * winnt/xm-winnt.h: Likewise. + * i386/xm-dos.h: Likewise. Add copyright. + +1999-04-10 Joseph S. Myers + + * pdp11.h (TARGET_SWITCHES): Add option to vary assembler syntax. + (TARGET_DEFAULT): Possibly use UNIX syntax. + (TARGET_UNIX_ASM, TARGET_UNIX_ASM_DEFAULT): New macros. + (REGISTER_NAMES): Use "r5" instead of "fp". + (ASM_OUTPUT_ALIGN): Use ".even" directive, and abort for any + greater alignment. + * 2bsd.h (TARGET_UNIX_ASM_DEFAULT): Default to UNIX assembler + syntax for 2BSD. + * pdp11.c (output_ascii): Use working syntax for ".byte". + (print_operand_address): Use "*" instead of "@" when using UNIX + assembler syntax. + +Sat Apr 10 03:50:12 1999 Jeffrey A Law (law@cygnus.com) + + * rtl.h (rebuild_jump_labels): Declare. + * jump.c (jump_optimize_1): Renamed from jump_optimize. Make static. + Add new argument MARK_LABELS_ONLY. Quit after mark_all_labels if + requested. + (jump_optimize, rebuild_jump_labels): New wrapper functions for + jump_optimize_1. + * toplev.c (rest_of_compilation): Use rebuild_jump_labels instead of + running the entire jump optimizer. + + * rtl.h (local_alloc): Returns an integer now. + * local-alloc.c (recorded_label_ref): New file scoped variable. + (local_alloc): Initialize recorded_label_ref to zero. Return its + value when local allocation has completed. + (update_equiv_regs); If we create an equivalence for a LABEL_REF, + set recorded_label_ref. + * toplev.c (rest_of_compilation): Run the jump optimizer after + register allocation and reloading if needed. + +Fri Apr 9 21:02:57 1999 Krister Walfridsson (cato@df.lth.se) + + * i386/gas.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Fix typo. + * i386/freebsd-elf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. + +1999-04-09 Zack Weinberg + + * cpphash.c (special_symbol): When expanding __LINE__, use the + top file buffer, not the top buffer. + +Fri Apr 9 13:41:04 1999 Jim Wilson + + * Makefile.in (check-g++, check-gcc, check-g77, check-objc): Add + cd .. to TCL_LIBRARY command. + +Fri Apr 9 13:04:52 1999 Nick Clifton + + * config/arm/unknown-elf.h (SUBTARGET_CPU_DEFAULT): Only define if + not already specified. + +Fri Apr 9 11:18:55 1999 Jason Merrill + + * c-common.c (decl_attributes, A_INIT_PRIORITY): Allow arrays + of classes, too. + +Fri Apr 9 10:40:10 1999 Kaveh R. Ghazi + + * rs6000.c (rs6000_override_options, ptt, rs6000_file_start, + rs6000_float_const, rs6000_replace_regno, debug_stack_info, + rs6000_output_load_toc_table, output_prolog, output_epilog): + Const-ify a char*. + (output_mi_thunk): Likewise. Mark parameter `thunk_fndecl' with + ATTRIBUTE_UNUSED. Hide unused variables `r0', `sp', `toc', + `schain', `r12', `buf' and `labelno'. + (output_ascii): Const-ify a char*. + (rs6000_gen_section_name): Initialize variable `last_period'. + (rs6000_adjust_priority): Mark parameter `insn' with + ATTRIBUTE_UNUSED. + (rs6000_trampoline_template, rs6000_dll_import_ref, + rs6000_longcall_ref, rs6000_encode_section_info): Const-ify a char*. + + * rs6000.h (offsettable_mem_operand, optimization_options): Add + prototypes. + + * rs6000.md (movdi, define_split): Cast a value to HOST_WIDE_INT + when comparing against one. + +Thu Apr 8 19:20:18 1999 Jeffrey A Law (law@cygnus.com) + + * expr.c (expand_expr, case ARRAY_REF, COMPONENT_REF, BIT_FIELD_REF): + Do not try to optimize an aggregate address which has VOIDmode. + Mirrors March 23 change to expand_assignment. + + * flow.c (delete_unreachable_blocks): Do not require EDGE_FALLTHRU + for an edge when tidying an edge which connects consecutive basic + blocks. + + * flow.c (can_delete_label_p): Do not convert a label into a + deleted label here. + + * cse.c (flush_hash_table): New function. + (cse_insn): Flush the hash table when we encounter a volatile asm. + (cse_basic_block): Use flush_hash_table instead of doing it + inline. + + * reload1.c (reload_cse_regs_1): Flush known register values if + we encounter a volatile asm. + + * loop.c (strength_reduce): Re-enable Joern's loop improvements. + +Thu Apr 8 09:37:40 1999 Nick Clifton + + * config/arm/arm.c (arm_print_operand): Undo previous change - + always print large constants in decimal. + +Thu Apr 8 10:22:23 1999 Kaveh R. Ghazi + + * configure.in (host_xm_file, build_xm_file): Include hwint.h. + Use case statements instead of "if test -a ... -a ... -a ..." + + * machmode.h: Don't define HOST_WIDE_INT, etc. Wrap use of + HOST_WIDE_INT in #ifdef. + + * mips.h: Include hwint.h instead of providing definitions for + HOST_WIDE_INT, etc. Wrap uses of HOST_WIDE_INT in #ifdef. + +Thu Apr 8 06:16:14 1999 John Wehle (john@feith.com) + + * i386.md (truncdfsf2, truncxfsf2, + truncxfdf2): Rewrite using a splitter. + +Thu Apr 8 01:26:05 1999 Arg Haas (ahaas@neosoft.com) + Jeffrey A Law (law@cygnus.com) + + * freebsd-elf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Avoid ambiguous + else statement. + * gas.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. + * linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. + * openbsd.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. + +Wed Apr 7 22:40:19 1999 Jim Wilson + + * i960/i960.c (i960_function_prologue): Don't save static chain + pointer. + * i960/i960.h (STACK_CHAIN_REGNUM): Change from r3 to g12. + (TRAMPOLINE_TEMPLATE): Likewise. + (FRAME_POINTER_REQUIRED): Check current_function_has_nonlocal_goto. + * i960/i960.md (nonlocal_goto): Rewrite. + +Tue Apr 6 17:49:49 1999 Philip Blundell + + * config/arm/lib1funcs.asm: Test for __ELF__ not __elf__. + +Wed Apr 7 14:07:34 1999 Jeffrey A Law (law@cygnus.com) + + * h8300.c (h8300_adjust_insn_length): Also avoid recognizing + ADDR_VEC and ADDR_DIFF_VEC insns. + + * h8300.c (h8300_adjust_insn_length): Avoid trying to recognize + USE, CLOBBER or SEQUENCE insns. + + * unroll.c (unroll_loop): For HAVE_cc0 machines, adjust copy_end_luid + to account for the uncopied insn that sets cc0 at the end of the loop. + + * unroll.c (copy_loop_body): Always ensure at least two insns + are in the copied loop. + +Wed Apr 7 14:52:18 1999 Catherine Moore + + * config/mips/elf.h (MAKE_DECL_ONE_ONLY): Define. + (UNIQUE_SECTION_P): Define. + +1999-04-07 Bruce Korb + + * fixinc/inclhack.tpl & fixincl.tpl: + Remove dynamic content from generated files + +Wed Apr 7 13:16:22 1999 John Wehle (john@feith.com) + + * i386.c (output_move_memory): Remove. + * i386.h: Likewise. + + * i386.md (movsi, movhi, movstricthi, movqi, movstrictqi, + movsf, movdf, movxf, movdi): Check no_new_pseudos instead + of (reload_in_progress | reload_completed). + +Wed Apr 7 03:16:45 1999 Richard Henderson + + * alpha.c (reg_no_subreg_operand): New function. + * alpha.h (PREDICATE_CODES): Add it. + * alpha.md (floatdi?f patterns): Use it for op1. + + * alpha.c (alpha_end_function): Don't flag weak functions. + +Wed Apr 7 02:11:55 1999 Richard Henderson + + * expr.c (expand_builtin) [BUILT_IN_RETURN_ADDRESS]: Use + copy_to_mode_reg; don't force constants into a register. + +Tue Apr 6 22:55:25 1999 Richard Henderson + + * toplev.c (compile_file): Typo flow_dump -> flow2_dump. + +1999-04-06 Joseph S. Myers + + * pdp11.c (simple_memory_operand): Add default case in switch. + * pdp11.h (TARGET_SWITCHES): Add help strings. + (NOTICE_UPDATE_CC): Don't include excess argument to format. + (ASM_OUTPUT_DOUBLE_INT): Remove. + +Tue Apr 6 22:09:40 1999 Richard Henderson + + * expr.c (expand_builtin_setjmp): Put setjmp return label on + nonlocal_goto_handler_labels for flow. + +Tue Apr 6 22:05:21 1999 Jan Hubicka + Richard Henderson + + * flow.c (verify_flow_info): New function. + (find_basic_blocks): Call it if ENABLE_CHECKING. + (merge_blocks): Don't merge if there are non-deletable labels. + * toplev.c (fatal_insn): Allow a printf-style arg list. + * toplev.h (fatal_insn): Update prototype. + +Tue Apr 6 16:18:58 1999 Jan Hubicka + + * flow.c (split_edge) update correctly flow graph, disable + EDGE_CRITICAL flag on the split edge, update NUSES for new label. + +Tue Apr 6 15:47:51 1999 Richard Henderson + + * emit-rtl.c (gen_rtx_CONST_DOUBLE): Use XWINT not XINT. + Clear third and following slots, if they exist. + +Tue Apr 6 15:45:28 1999 Richard Henderson + + * flow.c (create_basic_block): Make sure the bb note is in the block. + (can_delete_note_p): Rename from delete_note_p. + (delete_insn_chain): Preserve undeleteable labels too. + (tidy_fallthru_edge): Use next_real_insn instead of confusing + inline code. + +1999-04-06 Zack Weinberg + + * cppexp.c (parse_charconst): Initialize c. + (cpp_parse_expr): Initialize rprio. + * cppfiles.c (merge_include_chains): Initialize prev. + (finclude): Set fp->line_base to fp->buf before returning. + * cpphash.c (macroexpand): Initialize token. + * cppspec.c (lang_specific_driver): Change suff to + const char *const *. + +1999-04-06 Zack Weinberg + + * cppinit.c (install_predefs): Delete function. + (cpp_start_read): Don't call install_predefs. + (cpp_handle_option): Remove case 'u' and all refs to + opts->inhibit_predefs. + (print_help): Don't mention -undef. + (initialize_builtins): Define __HAVE_BUILTIN_SETJMP__, to + match cccp. + * cpplib.h (struct cpp_options): Remove inhibit_predefs + member. + + * cccp.c (predefs): Delete variable. + (main): Remove case 'u' in argument parse loop, + 'inhibit_predefs' variable, and the code block that would + process CPP_PREDEFINES. + (initialize_builtins): Don't define __OBJC__, the driver will + do that. + + * gcc.c (default_compilers): Remove -undef from all specs that + invoke a C preprocessor. + * ch/lang-specs.h: Likewise. + * cp/lang-specs.h: Likewise. + * f/lang-specs.h: Likewise. + * objc/lang-specs.h: Likewise. + +Mon Apr 5 11:55:31 1999 Donn Terry (donn@interix.com) + + * Makefile.in (SUBDIR_FLAGS_TO_PASS): Fix misapplied patch. + +Mon Apr 5 11:51:38 1999 Jeffrey A Law (law@cygnus.com) + + * m68k.md (movdf): Hide GPR sources & destinations from regclass. + +Mon Apr 5 09:54:42 1999 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Mon Apr 5 05:55:15 1999 Bruce Korb + + * fixincl.tpl: Separate "-e" from its argument, a la + the Sat Apr 3 17:05:13 1999 fix. + * genfixes: Ensure that the server shell is _NOT_ csh. + +Mon Apr 5 03:52:30 1999 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Mon Apr 5 04:47:14 1999 Jeffrey A Law (law@cygnus.com) + + * i386.c (x86_double_with_add): Turn off for Pentium and PPro. + (small_shift_operand, output_ashlsi3): New functions. + * i386.h (small_shift_operand, output_ashlsi3): Declare. + * i386.md (ashlsi3): Simplify ahlsi3 patterns. Remove splitters + that are no longer needed. + +Sun Apr 4 04:05:04 1999 Jeffrey A Law (law@cygnus.com) + + * stmt.c (expand_loop_end): When copying the loop exit test, + do not walk into a nested loop. + +Sun Apr 4 00:14:54 1999 Jeffrey A Law (law@cygnus.com) + + * fixinc/hackshell.tpl: Skip links to directories, to avoid + removing them. + * fixinc/inclhack.tpl: Likewise. + * fixinc/fixinc.sh, fixinc/fixincl.x, fixinc/inclhack.sh: Rebuilt. + +Sat Apr 3 23:46:13 1999 David Edelsohn + + * rs6000.md (addsi3, iorsi3, xorsi3, adddi3, iordi3, xordi3, + movsi_got, movsi, movsf): Use no_new_pseudos. + * rs6000.c (rs6000_got_register): Likewise. + (offsettable_mem_opereand): Use || not |. + +Sat Apr 3 22:02:56 1999 Jeffrey A Law (law@cygnus.com) + + * acconfig.h (ENABLE_CHECKING): Remove redundant #undef. + * config.in: Rebuilt. + +Sat Apr 3 16:22:59 1999 Toshiyasu Morita (tm@netcom.com) + + * gcc.texi: Add info on regmove pass. + + * regmove.c (fixup_match_1): Consistently evaluate + HAVE_POST_INCREMENT and HAVE_POST_DECREMENT. + +Sat Apr 3 19:21:05 1999 Alexandre Oliva + + * configure.in (DEFAULT_LINKER, DEFAULT_ASSEMBLER): Use grep + instead of test and sed to check whether they're GNU programs. + * configure: Rebuilt. + +Sat Apr 3 17:57:35 1999 Alexandre Oliva + + * Makefile.in (install-headers-tar, install-headers-cpio): Avoid + problems with CDPATH. + Reported by Ralf Canis + +Sat Apr 3 13:50:16 1999 Jeffrey A Law (law@cygnus.com) + + * fixinc.x86-linux-gnu: Deleted. + +Sat Apr 3 17:05:13 1999 Alexandre Oliva + + * inclhack.tpl: Insert spaces between `sed -e' and '...'. + Reported by Kaveh R. Ghazi + * fixinc/fixincl.sh, fixinc/fixincl.x, fixinc/inclhack.sh: Regen. + +Sat Apr 3 14:54:46 1999 Craig Burley + + * tree.def (BLOCK): Fix typo in comment. + +Sat Apr 3 00:53:29 1999 John Wehle (john@feith.com) + + * i386.md (floatsisf2, floatdisf2, floatsidf2, floatdidf2, + floatsixf2, floatdixf2): Rewrite using a splitter. + +Fri Apr 2 17:36:10 1999 Nick Clifton + + * config/arm/arm.c (arm_print_operand): Print large constants in + hex rather than decimal. + +Fri Apr 2 17:23:58 1999 Nick Clifton + + * print-rtl.c (print_rtx): Use both HOST_WIDE_INT_PRINT_DEC + and HOST_WIDE_INT_PRINT_HEX to display constants. + +1999-04-02 Zack Weinberg + + * config/i386/i386.h: Document all TARGET_SWITCHES or add + explicit null initializer. + + * config/i386/cygwin.h: Document all SUBTARGET_SWITCHES. + * config/i386/dgux.h: Likewise. + * config/i386/osf1elf.h: Likewise. + * config/i386/win32.h: Likewise. + * config/i386/osfrose.h: Likewise. Drop obsolete -mno-ident option. + +Fri Apr 2 17:49:44 1999 Toshiyasu Morita + + * regmove.c (fixup_match_1): Remove now useless if (0). + +Sat Apr 3 11:37:20 1999 Michael Hayes + + * tm.texi (USE_LOAD_POST_DECREMENT, USE_LOAD_PRE_DECREMENT, + USE_STORE_POST_DECREMENT, USE_STORE_PRE_DECREMENT): Document. + (USE_LOAD_POST_INCREMENT, USE_LOAD_PRE_INCREMENT, + USE_STORE_POST_INCREMENT, USE_STORE_PRE_INCREMENT): Fix documentation. + + * rtl.h (USE_LOAD_POST_DECREMENT, USE_LOAD_PRE_DECREMENT, + USE_STORE_POST_DECREMENT, USE_STORE_PRE_DECREMENT, + USE_LOAD_POST_INCREMENT, USE_LOAD_PRE_INCREMENT, + USE_STORE_POST_INCREMENT, USE_STORE_PRE_INCREMENT): Provide default + definition. + + * expr.c (USE_LOAD_POST_INCREMENT, USE_LOAD_PRE_INCREMENT, + USE_STORE_POST_INCREMENT, USE_STORE_PRE_INCREMENT): Delete default + definition. + +Fri Apr 2 16:03:05 1999 Jeffrey A Law (law@cygnus.com) + + * fixinc.dgux, fixinc.interix, fixinc.irix, fixinc.ptx: Deleted. + * fixinc.sco, fixinc.svr4, fixinc.winnt, fixinc.wrap: Likewise. + +Fri Apr 2 15:46:25 1999 Donn Terry (donn@interix.com) + + * configure.in: Set and substitute quoted_cc_set_by_configure. + * configure: Rebuilt. + * Makefile.in (SUBDIR_FLAGS_TO_PASS): Fix quoting problem with ``. + +Fri Apr 2 14:35:45 1999 Stan Cox + + * config/i386/cygwin.h (CPP_SPEC): Use mingw_include_path instead + of a hardcoded path for -mno-cygwin. + (mingw_include_path): New. + +1999-04-02 Joseph S. Myers + + * pdp11.c: Include "recog.h". + (output_function_prologue): Remove unused variables `nregs', `i', + `offset'. + (output_function_epilogue): Remove unused variables + `may_call_alloca', `nregs', `regno', `adjust_fp'. + (output_ascii): Mark as returning void. + (print_operand_address: Likewise. + (simple_memory_operand): Remove unused variables `plus0', `plus1', + `offset'. + * pdp11.h: Declare functions `arith_operand', + `const_immediate_operand', `expand_shift_operand', + `legitimate_address_p', `notice_update_cc_on_set', `output_ascii', + `output_function_epilogue', `output_function_prologue', + `print_operand_address', `register_move_cost', + `simple_memory_operand'. + (HARD_REGNO_MODE_OK): Parenthesize `REGNO' arg. + (REGNO_REG_CLASS): Likewise. + * pdp11.md: Add explicit `int' to `static count' (in two places). + (addhi3): Add explicit braces to avoid ambiguous else. + (addqi3): Likewise. + (ashlhi3): Likewise. + +Fri Apr 2 14:17:10 1999 Jerry James + + * gcc/invoke.texi: Add documentation for additional supported + MIPS CPU types, options -mips16 and -mentry, and ABI and ISA + defaults. + +Fri Apr 2 14:12:06 1999 John Wehle (john@feith.com) + + * i386.md: Delete floating point compare, add, subtract, + multiply, and divide patterns which allowed integer + operands. + * i386.c (output_387_binary_op): Delete unused code. + (output_float_compare): Likewise. + +Fri Apr 2 11:53:37 1999 John Wehle (john@feith.com) + + * i386.md (movsf+1, movdf+1, movxf+1): Update constraints + so that SECONDARY_MEMORY_RELOAD is used. Remove dead code. + +1999-04-02 Bruce Korb + + * fixinc/mkfixinc.sh: Added support for x86-interix. + * fixinc/fixinc.interix: Fixincludes script, slight changes + from ./fixinc.interix. Untested (needs interix box). + * fixinc/inclhack.def: + Complete the change to the 'fixinc.tmp' file. + Fixed regex for finding C++ headers. + * fixincl.x, fixincl.sh, inclhack.sh: Regenerate. + +Fri Apr 2 11:36:12 1999 Jan Hubicka (hubicka@paru.cas.cz) + + * i386.c (print_operand_address, case REG): Do not use ESI addressing + mode for the K6. + + * i386.c (print_operand_address, case MULT): Use more efficient + encoding (mult (reg) (const_int 2)). + +Thu Apr 1 17:01:50 1999 Richard Henderson + + Move over patch from Bernd Schmidt from GC branch: + * emit-rtl.c (gen_rtx_CONST_DOUBLE): New function. + (gen_rtx): Call it. Tidy cases. + * rtl.h (gen_rtx_CONST_DOUBLE): Prototype it. + * gengenrtl.c: Add commentary. + (special_rtx): Also match CONST_DOUBLE. + (gencode): Emit call to memset instead of bzero. + +Fri Apr 2 12:58:26 1999 Michael Hayes + + * config/c4x/c4x.md (ashlhi3, lshrhi3, ashrhi3): Force operand 1 + into a register if shift count not constant. + (ashlhi3_reg, lshrhi3_reg, ashrhi3_reg): Ensure that operand 1 + is a register. + +Fri Apr 2 12:19:17 1999 Michael Hayes + + * config/c4x/c4x.md (*db): Enable pattern if TARGET_LOOP_UNSIGNED + is nonzero. + (movstrqi_small, movstrqi_large, *cmpstrqi): Add + modifier to address + register constraints. + (*movhi_clobber+1): Modify splitter pattern to handle destination + register that is used in the source address. + (*xorhi3_clobber): Replace AND with XOR in call to legitimize_operands. + +Fri Apr 2 12:16:15 1999 Michael Hayes + + * config/c4x/c4x.h: Added more comments. + +Fri Apr 2 11:58:22 1999 Michael Hayes + + * config/c4x/c4x.c (c4x_emit_move_sequence): Force invalid QImode + constants into memory if we get called directly from gen_move_insn + rather than emit_move_insn. + (c4x_legitimize_address): Fix up LABEL_REF addresses. + +Thu Apr 1 12:04:05 1999 Jim Wilson + + * expr.c (store_field): When check direct_store, assume all complex + modes can be directly stored. + +1999-04-01 Bruce Korb + + * fixinc/genfixes: New shell script that runs autogen + to create the generated files. + +1999-04-01 Manfred Hollstein + + * Makefile.in (cppmain$(exeext)): Depend on intl.o. Link in intl.o. + +Thu Apr 1 03:48:34 1999 H.J. Lu (hjl@gnu.org) + + * i386.c (output_fp_conditional_move): Abort for LT, LE, GE, and GT + signed integer comparisons. + + * i386.c (output_int_conditional_move): Use "enum rtx_code" for code + type. + + * i386.c (notice_update_cc): No need to check the INT mode for + conditional moves since FLOAT conditional moves don't affect cc0. + +Thu Apr 1 02:17:18 1999 Jeffrey A Law (law@cygnus.com) + + * fixinc/inclhack.def (zzz_ki_syscalls, zzz_time): Fix trigger + string to only match on hpux11. + * fixinc/fixincl.x, fixinc/inclhack.sh, fixinc/fixinc.sh: Rebuilt. + +Thu Apr 1 01:09:27 1999 Alexandre Oliva + + * fixinc/hackshell.tpl: Complete transition to fixinc.tmp. + * fixinc/inclhack.sh: Rebuilt. + + * fixinc/inclhack.def: Fix typos in c_asm.h fix. + * fixinc/fixincl.x, fixinc/inclhack.sh, fixinc/fixinc.sh: Rebuilt. + +Wed Mar 31 17:20:11 1999 Jeffrey A Law (law@cygnus.com) + + * toplev.c (rest_of_compilation): Allow dbr_schedule to write to + the dump file too. + +Wed Mar 31 12:32:43 1999 Richard Henderson + + * flow.c (find_basic_blocks): New argument `do_cleanup'. + Conditionally call delete_unreachable_blocks. + (free_basic_block_vars): Zero ENTRY/EXIT data. + (allocate_for_life_analysis): Kill. Split into... + (allocate_bb_life_data, allocate_reg_life_data): ... new functions. + (life_analysis_1): Update. + * gcse.c (gcse_main): Update find_basic_blocks call. + * toplev.c (rest_of_compilation): Likewise. + * stupid.c (stupid_life_analysis): Update life data calls. + * rtl.h, output.h: Update prototypes. + +Wed Mar 31 12:10:00 1999 Bruce Korb + + * inclhack.def (several): Added spaces in tests to ensure + correct shell syntax. Added c_asm.h fix from fixincludes. + Also corrected the corrected fix to C++ comments :-} + + * inclhack.tpl: Changed method of traversing symlink trees + so that file name matching will work correctly. + + * fixincl.c, hackshell.tpl: Fallout from above. + * fixincl.x, inclhack.sh, fixincl.sh: Rebuilt. + +Tue Mar 30 10:43:49 1999 Philip Blundell + + * config/arm/aout.h (DBX_DEBUGGING_INFO): Avoid redefinition if + dbxelf.h was previously included. + (CPP_APCS_PC_DEFAULT_SPEC): No need to undefine. + + * config/arm/linux-elf.h (FP_DEFAULT): Correctly override the + definition from arm.h. + +Wed Mar 31 10:33:37 1999 Kaveh R. Ghazi + + * Makefile.in (c-gperf.h): Generate using gperf language 'C', not + 'KR-C', so gperf uses the `const' keyword on strings. + + * c-parse.gperf (resword): Const-ify a char*. + +Wed Mar 31 01:49:31 1999 Ian Lance Taylor + + * t-rtems (LIMITS_H_TEST, LIBGCC2_INCLUDES): Define. + +Wed Mar 31 00:50:48 1999 Jeffrey A Law (law@cygnus.com) + + * system.h (STDERR_FILENO): Fix typo. + + * inclhack.def (bool): Also fix bogus bool in curses_colr/curses.h. + * fixincl.x, inclhack.sh, fixincl.sh: Rebuilt. + +Tue Mar 30 20:51:40 1999 Mark Mitchell + + * alias.c (alias_set_compare): Remove. + (record_alias_subset): Use splay_tree_compare_ints instead of + alias_set_compare. + (init_alias_once): Likewise. + * cse.c: Include splay-tree.h. + (reg_qty): Remove. + (reg_tick): Likewise. + (reg_table): Likewise. + (cse_reg_info): New structure. + (cse_reg_info_free_list): New variable. + (cse_reg_info_tree): Likewise. + (cached_regno): Likewise. + (cached_cse_reg_info): Likewise. + (all_minus_one): Remove. + (consec_ints): Likewise. + (GET_CSE_REG_INFO): New macro. + (REG_TICK): Likewise. Use throughout instead of reg_tick. + (REG_IN_TABLE): Likewise. Use throughout instead of reg_in_table. + (REG_QTY): Likewise. Use throughout instead of reg_qty. + (get_cse_reg_info): New function. + (free_cse_reg_info): Likewise. + (new_basic_block): Reinitialize cse_reg_info_tree instead of + reg_tick, all_minus_one, and consec_ints. + * Makefile.in (cse.o): Depend on splay-tree.h + +Tue Mar 30 13:19:36 1999 Jason Merrill + + * libgcc2.c (throw_helper): Just return the SP offset, rather than + a whole udata. Include args_size in the offset. + (__throw, __rethrow): Adjust. + +Tue Mar 30 11:39:27 1999 Craig Burley + + * extend.texi (Extended Asm): Delete spurious `b' before + `@end example', which was confusing texi2html. + +Tue Mar 30 00:26:34 1999 Jason Merrill + + * dwarf2out.c (output_line_info): Don't emit redundant info. + Do start a new row if the file changes and the line # doesn't. + +Mon Mar 29 15:48:39 1999 Jason Merrill + + * invoke.texi (Invoking G++, C++ Dialect Options): Update. + +Mon Mar 29 15:05:39 1999 Richard Henderson + + * except.c (start_dynamic_handler): Force jmp_buf address to + and operand before moving to memory. + +Mon Mar 29 15:11:10 1999 Craig Burley + + * invoke.texi (Code Gen Options): Attempt to clarify + -fcheck-memory-usage. Minor edits to -fprefix-function-name. + +Mon Mar 29 20:52:47 1999 J"orn Rennecke + + * loop.c (maybe_eliminate_biv): For libcalls that set a giv, skip to + end of libcall. + +Mon Mar 29 20:35:49 1999 J"orn Rennecke + + * sh.md (mulsi3): Tag an extra REG_EQUAL note to the middle insn. + +Mon Mar 29 11:50:34 1999 Jerry Quinn + + * pa.h (HAVE_PRE_INCREMENT): Disable when optimizing for a PA8000 + class machine. + (HAVE_PRE_DECREMENT, HAVE_POST_INCREMENT): Likewise. + (HAVE_POST_DECREMENT): Likewise. + +Mon Mar 29 08:24:43 1999 Bruce Korb + + * fixinc/mkfixinc.sh: Fix portability problems with old shells. + + * fixinc/README: Updated for release announcement + +Sun Mar 28 20:26:55 1999 Kaveh R. Ghazi + + * recog.h (insn_outfun, insn_operand_predicate): Add prototype + arguments. + + * rtl.h (note_stores): Likewise. + + * rtlanal.c (note_stores): Likewise. + +Sun Mar 28 15:34:28 1999 Richard Henderson + + * varasm.c (output_constant_pool): Always mark the constant pool. + +Sun Mar 28 16:09:01 1999 Jerry Quinn + + * pa.md (pa7100LCshiftmem, pa7100LCalu): Change simultaneity. Use + shift/mem ops in pa7100LCalu. + + * pa.c (pa_adjust_cost): Don't do cost adjustments on pa8000. + (pa_reorg): Don't call pa_combine_instructions on pa8000. + +Sun Mar 28 15:27:26 1999 Jeffrey A Law (law@cygnus.com) + + * reload1.c (reload): Remove accidental code duplication. + +Sun Mar 28 12:22:12 1999 Robert Lipe (robertlipe@usa.net) + + * i386/sysv5.h: New file to describe UnixWare7/SVR5. + * configure.in (i?86-UnixWare7*-sysv): Use it. + * i386/udk.h: Use sysv5.h. Now uses Dwarf-2. + +Sun Mar 28 01:15:04 1999 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Sun Mar 28 00:44:27 1999 Jeffrey A Law (law@cygnus.com) + + * sdbout.c (sdbout_symbol): Do not call build_pointer_type, build + one on the fly and do not cache the result. + + * gcc.cps, cpp.cps: Delete unwanted files. + +Sat Mar 27 23:37:40 1999 John Wehle (john@feith.com) + + * i386.md (movdicc+3, movdicc+4): Rewrite using split_di. + * i386.c (output_int_conditional_move): Delete unused code. + +Sat Mar 27 21:17:36 1999 David Edelsohn + + * rs6000/{aix41.h,aix43.h} (ASM_CPU_SPEC): Add 604e. + +Sat Mar 27 16:13:50 1999 Jeffrey A Law (law@cygnus.com) + + * flow.c (mark_used_regs): Improve handling of ASMs. + +1999-03-26 Zack Weinberg + + * Makefile.in (xcpp, cppspec.o): New targets. + (CPP_INSTALL_NAME): New macro. + (install-cpp): Install xcpp. Use CPP_INSTALL_NAME. + (all.build, start.encap): Build xcpp. + + * cppspec.c: New file, implements argument filtering for a + user-visible C preprocessor. + * cpp.sh: Removed. + +Fri Mar 26 20:41:46 1999 Jim Wilson + + * Makefile.in (stmp-fixinc): Use tooldir instead of gcc_tooldir. + +Fri Mar 26 16:02:37 1999 Nick Clifton + + * configure.in (arm-*-vxworks*): Just include arm/vxarm.h. + * configure: Regenerate. + * config/arm/vxarm.h: Define SUBTARGET_CPU_DEFAULT before + including arm/coff.h + +1999-02-16 Scott Bambrough + + * configure.in (arm*-*-linux-gnu*): Set thread_file to 'posix' if + --enable-threads[={yes,pthreads,posix}] is passed as a command + line parameter to configure. + + * configure: Regenerate. + + * gcc/config/arm/t-linux (TARGET_LIBGCC2_CFLAGS): Include -fPIC. + +Fri Mar 26 19:42:19 1999 J"orn Rennecke + + * loop.c (combine_givs): Fix index into can_combine when doing + benefit adjustment for remaining givs when having combined a giv. + +Fri Mar 26 11:38:01 1999 Nick Clifton + + * config/arm/t-arm-elf (EXTRA_MULTILIB_PARTS): Define. + +Fri Mar 26 10:48:27 1999 Nick Clifton + + * config/arm/linux-elf.h: Include dbxelf.h + +Fri Mar 26 10:43:47 1999 Nick Clifton + + * config/svr4.h: Include new header file dbxelf.h. + (DBX_DEBUGGING_INFO): Remove definition. + (DBX_USE_BINCL): Remove definition. + (DBX_BLOCKS_FUNCTION_RELATIVE): Remove definition. + (ASM_IDENTIFY_GCC): Remove definition. + (ASM_IDENTIFY_GCC_AFTER_SOURCE): Remove definition. + (ASM_OUTPUT_SOURCE_LINE): Remove definition. + (DBX_FUNCTION_FIRST): Remove definition. + (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Remove definition. + + * config/elfos.h: Include new header file dbxelf.h. + (DBX_DEBUGGING_INFO): Remove definition. + (DBX_BLOCKS_FUNCTION_RELATIVE): Remove definition. + (ASM_IDENTIFY_GCC): Remove definition. + (ASM_IDENTIFY_GCC_AFTER_SOURCE): Remove definition. + (ASM_OUTPUT_SOURCE_LINE): Remove definition. + (DBX_FUNCTION_FIRST): Remove definition. + + * config/dbxelf.h: New header file. + (DBX_DEBUGGING_INFO): Define. + (DBX_BLOCKS_FUNCTION_RELATIVE): Define. + (DBX_FUNCTION_FIRST): Define. + (DBX_USE_BINCL): Define. + (DBX_CONTIN_LENGTH): Define. + (ASM_IDENTIFY_GCC): Define. + (ASM_IDENTIFY_GCC_AFTER_SOURCE): Define. + (ASM_OUTPUT_SOURCE_LINE): Define. + (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Define. + +Fri Mar 26 01:59:15 1999 "Charles M. Hannum" + + * fold-const.c (fold_truthop): Optimize bitfield references with + different masks as long as their size and bit position are the same. + + * fold-const.c (fold_truthop): Build a type for both the lhs and + rhs and use it appropriately. + + * fold-const.c (fold_truthop): Mask the lhs and rhs after merging + adjacent bitfield references. + + * fold-const.c (fold_truthop): Verify that the lhs and rhs are + in the same bit position when optimizing bitfield references + which have the same mask. + +Thu Mar 25 22:53:27 1999 Martin von Löwis + + * gcc.texi (Copy Assignment): New node. + +1999-03-25 Zack Weinberg + + * gcc.c: Compile unconditionally all code formerly dependent + on #ifdef LANG_SPECIFIC_DRIVER. + * gccspec.c: New file with stub lang_specific_driver, + lang_specific_pre_link. + * Makefile.in: Link gccspec.o into xgcc. Add rule to compile + +Thu Mar 25 21:08:02 1999 Jason Merrill + + * gcc.texi (Temporaries): Update. + +Thu Mar 25 16:53:53 1999 Richard Henderson + + * combine.c (distribute_notes): Place REG_LABEL also where + REG_EQUAL indicates. + +Thu Mar 25 12:46:37 1999 Jim Wilson + + * a29k/a29k.h (TARGET_SWITCHES): Add doc strings. + * i960/i960.h (TARGET_SWITCHES): Add doc strings. + * invoke.texi (a29k): Add documentation for -mno-multm option. + +Thu Mar 25 14:04:54 1999 Andrew MacLeod + + * rtl.texi (RTX_FRAME_RELATED_P): Add documentation. + * rtl.h (struct rtx_def): Update comment for frame_related field. + (set_unique_reg_note): Declare prototype. + * dwarf2out.c (dwarf2out_frame_debug_expr): Split out from + 'dwarf2out_frame_debug' to handle only expressions, and process + component parts of a PARALLEL expression. + (dwarf2out_frame_debug): Process insns only, and call + new function 'dwarf2out_frame_debug_expr' for patterns. + * emit-rtl.c (set_unique_reg_note): New function to add a reg note, + but if there is an existing one, delete it first. + * expmed.c (expand_mult, expand_divmod): Use set_unique_reg_note. + * optabs.c (add_equal_note, expand_binop): Use set_unique_reg_note. + (emit_no_conflict_block, emit_libcall_block): Use set_unique_reg_note. + (expand_fix): Use set_unique_reg_note. + +Thu Mar 25 11:47:49 1999 Art Haas + + * tlink.c (symbol_hash_newfunc): Remove redundant call to + hash_newfunc. + (file_hash_newfunc, demangled_hash_newfunc): Likewise. + +Thu Mar 25 10:05:56 1999 Richard Henderson + + * i386.h (PREFERRED_STACK_BOUNDARY): Set to 128. + +1999-03-25 Philip Blundell + + Based on patch from Jim Studt : + * config/arm/linux-elf.h (STARTFILE_SPEC, ENDFILE_SPEC): Copy + definitions from config/linux.h. + (DBX_BLOCKS_FUNCTION_RELATIVE): Define to 1. + +Thu Mar 25 02:12:42 1999 Finn Hakansson + + * loop.c (strength_reduce): Correct a comment. + + * rtl.h (MEM_COPY_ATTRIBUTES): Remove unnecessary ending backslash. + +Thu Mar 25 02:02:13 1999 Axel Thimm + + * Makefile.in (RANLIB_TEST): Improve test. + +Thu Mar 25 01:15:33 1999 Donn Terry + + * combine.c (force_to_mode, case PLUS): Use sign extended mask + when masking the low bits out of a constant. + +Tue Mar 23 15:45:25 1999 Richard Earnshaw (rearnsha@arm.com) + Jeff Law + + * fold-const.c (make_range): If orig_type is unset, set it as soon + as we know the type. Remove now unnecessary set of orig_type for + conversions. + +Wed Mar 24 23:27:25 1999 Mark Elbrecht + Jeff Law + + * system.h (STDIN_FILENO): Provide default definition if one is not + provided by the system header files. + (STDOUT_FILENO, STDERR_FILENO): Likewise. + + * i386/xm-djgpp.h (COLLECT2_HOST_INITIALIZATION): New macro. + * collect2.c (main): Use it. + (pexecute_pid): New variable. Holds return value from call to pexecute. + (collect2_execute): Rework to use pexecute instead of fork. + (collect2_wait): Use pwait() instead of wait(). + + * i386/djgpp.h: Fix typo. + +Wed Mar 24 23:24:30 1999 Jeffrey A Law (law@cygnus.com) + + * fixinc/mkfixinc.sh: Recognize cygwin* instead of only + cygwin32. + +Wed Mar 24 15:44:12 1999 Nick Clifton + + * config/m32r/m32r.c (init_idents): Accept both NAME and __NAME__ + versions of attribute names and values. + (m32r_valid_machine_decl_attribute): Likewise. + (m32r_encode_section_info): Likewise. + +Wed Mar 24 21:42:15 1999 J"orn Rennecke + + * reload1.c (choose_reload_regs): If output-reloading for a + simple move insn, try to inherit an equivalence for the input. + +1999-02-24 Mike Stump + + * arm/aout.h (DBX_OUTPUT_MAIN_SOURCE_FILENAME): Fix quoting. + +1999-03-24 Jim Blandy + + * libgcc2.c (__CTOR_LIST__, __DTOR_LIST__): Initialize on all + platforms. + +Wed Mar 24 01:35:01 1999 Geoff Keating + + * fold-const.c (fold): Recognize a rotate by an unsigned amount. + +Tue Mar 23 23:32:14 1999 Jeffrey A Law (law@cygnus.com) + + * pa.md (rotlsi3): New expander. Synthesize a variable rotate + left using a variable rotate right. Provide anonymous pattern for + rotate left by a constant value. + + * expr.c (expand_assignment): Do not try to optimize an aggregate + address which has VOIDmode. + +Tue Mar 23 22:51:48 1999 Mumit Khan + Donn Terry + + * protoize.c (abspath): Preserve multiple leading slashes for + _WIN32 and Interix. + +1999-01-23 Mike Stump + + * arm/vxarm.h: Split out vxWorks support into separate headerfile + and vxify. + * arm/arm.c (cpu_defaults): Allow arm710 as default. + + * configure.in: Split out vxWorks support for Arm. + * configure: Rebuilt. + +Tue Mar 23 11:20:03 1999 Per Bothner + + * tree.c (first_rtl_op, has_cleanups): Handle GOTO_SUBROUTINE_EXPR. + +Tue Mar 23 09:00:39 1999 Nick Clifton + + * config/arm/riscix1.h (SUBTARGET_SWITCHES): Add doc string. + * config/arm/riscix1-1.h (SUBTARGET_SWITCHES): Add doc string. + +Tue Mar 23 07:50:20 1999 Mark Mitchell + + * function.c: Include hash.h. + (insns_for_mem_entry): New struct. + (put_reg_into_stack): Take an optional hash-table mapping MEMs to + the INSNs that use them. + (fixup_var_refs): Likewise. + (put_addressof_into_stack): Likewise. + (purge_addressof_1): Likewise. Keep the hash-table up to date if + we add new instructions. + (fixup_var_refs_insns): Use it to avoid searching the entire + instruction chain. + (insns_for_mem_newfunc): New function. + (insns_for_mem_comp): Likewise. + (insns_for_mem_walk): Likewise. + (compute_insns_for_mem): Likewise. + (pop_function_context_from): Pass NULL for the hash-table. + (put_var_into_stack): Likewise. + (gen_mem_addressof): Likewise. + (flush_addressof): Likewise. + (purge_addressof): Call compute_insns_for_mem to pre-compute the + hash table. + * Makefile.in (OBJS): Include hash.o. + (function.o): Depend on hash.h. + +Tue Mar 23 00:39:14 1999 Jeffrey A Law (law@cygnus.com) + + * i386/openbsd.h (TARGET_DEFAULT): Use symbolic names instead of + numbers. + * i386/netbsd.h, i386/freebsd.h: Likewise. + + * crtstuff.c: Use ANSI function definitions. Fix minor whitespace + problems. + + * i386/openbsd.h (TARGET_DEFAULT): Define. + * configure.in: Do not set TARGET_CPU_DEFAULT for x86 OpenBSD + configurations. + * configure: Rebuilt. + +Tue Mar 23 00:39:10 1999 John Wehle (john@feith.com) + + * i386/freebsd.h (TARGET_DEFAULT): Define instead + of TARGET_CPU_DEFAULT. + * i386/netbsd.h (TARGET_DEFAULT): Likewise. + +Mon Mar 22 23:52:01 1999 Mumit Khan + Donn Terry + + * sdbout.c (syms.h): Don't include on Interix. + * toplev.c (main): No sbrk on Interix. + + * configure.in: Add i386-pc-interix support. + * configure: Regenerate. + * fixinc.interix: New file. + * config/interix.h: New file. + * config/x-interix: New file. + * config/xm-interix.h: New file. + * i386/interix.h: New file. + * i386/interix.c: New file. + * i386/t-interix: New file. + +Mon Mar 22 23:41:49 1999 Jeffrey A Law (law@cygnus.com) + + * i386.h (PREFERRED_STACK_BOUNDARY): Define. + +Mon Mar 22 23:41:31 1999 John Wehle (john@feith.com) + + * i386.c (ix86_compute_frame_size): New function. + (ix86_prologue, ix86_epilogue): Use it. + * i386.h (INITIAL_ELIMINATION_OFFSET): Likewise. + * reload1.c: Provide default for PREFERRED_STACK_BOUNDARY. + +Mon Mar 22 18:06:59 1999 Jim Wilson + + * mips/mips.h (TARGET_SWITCHES, TARGET_OPTIONS): Add option doc + strings. + * mips/abi64.h (SUBTARGET_TARGET_OPTIONS): Likewise. + +Mon Mar 22 16:18:27 1999 Nick Clifton + + * config/arm/elf.h (VALID_MACHINE_DECL_ATTRIBUTE): Do not bother + passing ATTRIBUTES to arm_valid_machine_decl_attribute. + + * config/arm/coff.h (VALID_MACHINE_DECL_ATTRIBUTE): Do not bother + passing ATTRIBUTES to arm_valid_machine_decl_attribute. + + * config/arm/arm.h (DEFAULT_RTX_COSTS): Do not bother passing + OUTER_CODE to arm_rtx_costs - it is not used. + (arm_compare_fp): Delete declaration. + (FINAL_PRESCAN_INSN): Do not bother passing OPVEC or NOPERANDS to + arm_final_prescan_insn - they are not used. + (const_ok_for_op): Remove prototype. + (arm_rtx_costs): Fix prototype. + (arm_valid_machine_decl_attribute): Fix prototype. + (final_prescan_insn): Fix prototype. + + * config/arm/arm.md: Remove references to arm_compare_fp. + + * config/arm/arm.c (arm_compare_fp): Delete. + (const_ok_for_op): Make function static. Add prototype. Remove + mode parameter - it is unused. + (arm_rtx_costs): Remove outer_code parameter. + (reload_memory_operand): Declare mode parameter unused. + (power_of_two_operand): Declare mode parameter unused. + (equality_operator): Declare mode parameter unused. + (load_multiple_operation): Declare mode parameter unused. + (store_multiple_operation): Declare mode parameter unused. + (multi_register_push): Declare mode parameter unused. + (arm_valid_machine_decl_attribute): Remove attributes parameter - + it is unused. + (select_dominance_cc_mode): Remove op parameter - it is unused. + (gen_compare_reg): Remove fp parameter - it is unused. + (final_prescan_insn): Remove opvec and noperands parameters - they + are unused. + +Mon Mar 22 14:35:28 1999 Nick Clifton + + * tm.texi (MD_SCHED_INIT): Add missing closing parenthesis. + +Mon Mar 22 22:24:30 1999 J"orn Rennecke + + * reload1.c (reload_as_needed): Set reload_is_output_reload / + reload_has_output_reload for auto_inc expressions that could be + reloaded. Call forget_old_reloads for REG_INC notes. + +Mon Mar 22 21:51:57 1999 J"orn Rennecke + + * cse.c (cse_insn): Don't change the result register of a libcall. + +Mon Mar 22 21:08:59 1999 J"orn Rennecke + + * rtl.h (shallow_copy_rtx): Declare. + * rtl.c (shallow_copy_rtx): New function. + * reload.c (find_reloads_toplev): Use shallow_copy_rtx instead of + copy_rtx. + +Mon Mar 22 10:44:33 1999 Vladimir Makarov + + * config/h8300/h8300.md (adjust_length): New attribute. + (modhi3+1, andsi3+1, iorsi3+1, extzv+1, extzv+2): Change insn + default value of attribute "adjust_length" onto "no". + + * config/h8300/h8300.c (h8300_adjust_insn_length): Adjust + length only if the attribute "adjust_length" value is "yes". + Use 0 if the shift is negative. + + * final.c (shorten_branches): Check insn length after its + adjusting. + +Sun Mar 21 17:33:48 1999 Jeffrey A Law (law@cygnus.com) + + * i860.h (TARGET_SWITCHES): Add documentation for default case. + * i860/paragon.h (TARGET_SWITCHES): Add documentation for default case. + * i370.h (TARGET_SWITCHES): Add documentation for default case. + * fx80.h (TARGET_SWITCHES): Add documentation for default case. + * elxsi.h (TARGET_SWITCHES): Add documentation for default case. + * clipper.h (TARGET_SWITCHES): Add documentation for default case. + * 1750a.h (TARGET_SWITCHES): Add documentation for default case. + * pa.h (TARGET_SWITCHES): Add documentation for default case. + (TARGET_OPTIONS): Likewise for default case. + * mn10300.h (TARGET_SWITCHES): Add documentation for default case. + * h8300.h (TARGET_SWITCHES): Add documentation for default case. + + * gcse.c (dump_hash_table): Fix whitespace in declaration. + (compute_transpout): Renamed from pre_compute_transpout. + (compute_pre_*): Deleted. + (pre_expr_reaches_here_p): New argument, CHECK_PRE_COMP. All + callers changed. + (insert_insn_end_bb): Renamed from pre_insert_insn. + (pre_*): Delete unused variables. Only leave local properties and + global redundant/optimal computation points. + (alloc_pre_mem, free_pre_mem): Corresponding changes. + (compute_pre_data): Simplify and call pre_lcm to run the lazy + code motion dataflow analysis. + (pre_insert, pre_insert_copies, pre_delete): Revamp to use LCM + based redundant and optimal computation points. + + * basic-block.h (pre_lcm, pre_rev_lcm): Declare. + + * toplev.c (main): A debug option without a level defaults to + level 2. + +Sun Mar 21 12:13:01 1999 Nick Clifton + + * flow.c (can_delete_label_p): Do not allow user specified + labels to be deleted. + * dwarf2out.c (gen_label_die): Generate addresses for deleted + (programmer specified) labels. + * dwarfout.c (output_label_die): Generate addresses for deleted + (programmer specified) labels. + +1999-03-21 Manfred Hollstein + + * Makefile.in (xgcc$(exeext)): Add intl.o to list of files to be + linked with. + +Sun Mar 21 01:15:03 1999 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Sat Mar 20 22:26:23 1999 Kaveh R. Ghazi + + * sparc.h (TARGET_SWITCHES): Add null description to default case. + +Sat Mar 20 21:46:06 1999 Kaveh R. Ghazi + + * c-lex.c (yylex): Remove unused variable `bytes'. + + * flow.c (print_rtl_with_bb): Cast the return value of alloca. + + * function.c (assign_parms): Wrap variable `varargs_setup' in + macro SETUP_INCOMING_VARARGS. + (thread_prologue_and_epilogue_insns): Mark parameter `f' with + ATTRIBUTE_UNUSED. + + * local-alloc.c (no_equiv): Likewise for parameter `store'. + + * sched.c (schedule_insns): Remove unused variables `insn' and `next'. + + * tlink.c (symbol_hash_newfunc, symbol_hash_lookup, + file_hash_newfunc, file_hash_lookup, demangled_hash_newfunc, + demangled_hash_lookup, symbol_push, symbol_pop, file_push, + file_pop, tlink_init, tlink_execute, frob_extension, + obstack_fgets, tfgets, pfgets, freadsym, read_repo_file, + maybe_tweak, recompile_files, read_repo_files, + demangle_new_symbols, scan_linker_output): Add static prototype. + + (symbol_hash_newfunc, file_hash_newfunc, demangled_hash_newfunc): + Make the third argument a `hash_table_key'. + + * toplev.c (debug_start_source_file): Mark parameter `filename' + with ATTRIBUTE_UNUSED. + +Sun Mar 21 02:28:21 1999 Andreas Schwab + + * tm.texi (Varargs): Don't split argument of @item across lines. + + * invoke.texi: Fix use of @item vs @itemx. + +Sun Mar 21 09:59:54 1999 Michael Hayes + + * config/c4x/c4x.h (TARGET_SWITCHES): Add null description to + default case. + +Sat Mar 20 23:33:54 1999 Michael Hayes + + * loop.c (check_dbra_loop): Fix debug message. + +Sat Mar 20 15:54:35 1999 Michael Hayes + + * config/c4x/c4x.md (decrement_and_branch_on_count): Emit rptb_end + pattern instead of decrement_and_branch_until_zero pattern. + +Sat Mar 20 11:39:58 1999 Michael Hayes + + * config/c4x/c4x.h (TARGET_SWITCHES): Add documentation. + * config/c4x/c4x.h (TARGET_OPTIONS): Add documentation. + +Fri Mar 19 23:26:29 1999 Martin von Löwis + + * expr.c (expand_expr): Handle ERROR_MARK much earlier. + +Fri Mar 19 15:28:38 1999 Kaveh R. Ghazi + + * cccp.c (create_definition): Cast to U_CHAR* when assigning to one. + + * cppfiles.c (read_and_prescan): Likewise. + Start a #define in column 0. + + * cpplib.c (cpp_define): Cast to U_CHAR* when assigning to one. + (cpp_push_buffer): Likewise for cpp_buffer*. + (do_include): Change the type of `fbeg' and `fend' to unsigned char*. + (do_endif): Cast to char* when assigning to one. + (do_assert): Likewise. + (do_unassert): Likewise. + (cpp_read_check_assertion): Change the type of `name' to U_CHAR*. + Don't do unnecessary cast to char* anymore. + + * genrecog.c (make_insn_sequence): Cast to char** when assigning + to one. Cast the first argument of bzero to PTR. + + * loop.c (strength_reduce): Remove unused variable `note'. + + * reload1.c (new_insn_chain): Cast to struct insn_chain* when + assigning to one. + + * rtl.c (copy_rtx): Use memcpy instead of bcopy. + +Fri Mar 19 11:19:31 1999 Kaveh R. Ghazi + + * calls.c (initialize_argument_information): Mark parameters + `num_actuals' and `n_named_args' with ATTRIBUTE_UNUSED. + + * dbxout.c (dbxout_start_new_source_file): Likewise for parameter + `filename'. + (dbxout_finish): Likewise for parameters `file' and `filename'. + (dbxout_prepare_symbol): Likewise for parameter `decl'. + (dbxout_begin_function): Likewise. + + * explow.c (hard_function_value): Likewise for parameter `func'. + + * function.c (locate_and_pad_parm): Likewise for parameter `fndecl'. + + * expmed.c (expand_divmod): Omit unused argument to `expand_abs'. + * expr.c (expand_expr): Likewise. + * expr.h (expand_abs): Delete unused argument from prototype. + * optabs.c (expand_abs): Remove unused parameter `unsignedp'. + + * sdbout.c (sdbout_init): Mark parameter `syms' with ATTRIBUTE_UNUSED. + (sdbout_end_block): Likewise for parameter `n'. + + * toplev.c (debug_define): Likewise for parameters `lineno' and + `buffer'. + (debug_undef): Likewise. + + * varasm.c (named_section): Likewise for parameter 'reloc'. + (assemble_external): Likewise for parameter `decl'. + (assemble_alias): Likewise for parameter `target'. + +Fri Mar 19 01:54:30 1999 Theodore Papadopoulo + + * toplev.c (read_integral_parameter): Constify. Better control of + error messages. + (main): Use read_integral_parameter to set optimize, id_clash_len, + larger_than_size, and the debugging level. + * toplev.h (read_integral_parameter): Update prototype. + +Fri Mar 19 01:42:05 1999 Zack Weinberg + + * system.h: Use putc_unlocked, fputc_unlocked, and + fputs_unlocked only if putc_unlocked has a prototype already. + Prototype fputs_unlocked if necessary. + * configure.in: Check for prototypes of putc_unlocked and + fputs_unlocked. + * acconfig.h: Updated. + * config.in, configure: Rebuilt. + +Fri Mar 19 02:45:12 1999 Alexandre Oliva + + * Makefile.in (INTL_TARGETS): New macro. + ($(INTL_TARGETS)): Depend on generated sources; drop dependencies + on cp/parse.c and objc/objc-parse.c. + ($(srcdir)/cp/parse.c): Move to cp/Make-lang.in. + * objc/Make-lang.in ($(INTL_TARGETS)): Depend on objc/objc-parse.c. + +Thu Mar 18 22:28:53 1999 Jeffrey A Law (law@cygnus.com) + + * i860.h (TARGET_SWITCHES): Add documentation. + * i860/paragon.h (TARGET_SWITCHES): Add documentation. + * i370.h (TARGET_SWITCHES): Add documentation. + * fx80.h (TARGET_SWITCHES): Add documentation. + * elxsi.h (TARGET_SWITCHES): Add documentation. + * clipper.h (TARGET_SWITCHES): Add documentation. + * 1750a.h (TARGET_SWITCHES): Add documentation. + * pa.h (TARGET_SWITCHES): Add documentation. + (TARGET_OPTIONS): Likewise. + * mn10300.h (TARGET_SWITCHES): Add documentation. + * h8300.h (TARGET_SWITCHES): Add documentation. + +Thu Mar 18 15:58:26 1999 Nick Clifton + + * loop.c (strength_reduce): Do not perform pseudo replacements + if the loop contains volatile memory references. + +Thu Mar 18 19:09:50 1999 J"orn Rennecke + + * reload.c (find_reloads_toplev): When processing X recursively, + don't alter it destructively except by filling in constants. + +Thu Mar 18 10:14:18 1999 Kaveh R. Ghazi + + * cccp.c (default_include): Initialize structure members. + (pass_thru_directive): Change the type of 'keyword_length' to int. + (main): Cast `bindtextdomain' and `textdomain' to (void). + + * collect2.c (main): Likewise. + + * cppmain.c (main): Likewise. + + * gcc.c (main): Likewise. + + * gcov.c (main): Likewise. + + * protoize.c (main): Likewise. + + * toplev.c (main): Likewise. + +1999-03-18 Gavin Romig-Koch + + * config/mips/mips.c (mips_explicit_type_size_string): Correct + its type. + +Thu Mar 18 01:24:25 1999 Jeffrey A Law (law@cygnus.com) + + * configure.in: Use "exit 1", not "exit (1)". + * configure: Rebuilt. + +Wed Mar 17 23:17:42 1999 Mark Kettenis + + * config/t-gnu (SYSTEM_HEADER_DIR): New variable. Set to + `/include' in order to find the system's limits.h. + +Wed Mar 17 23:00:18 1999 Robert Lipe + + * fixinc/fixincl.c: Include auto-host.h instead of config.h. + * fixinc/procopen.c: Likewise. + * fixinc/regex.c: Likewise. + * fixinc/server.c: Likewise. + +Wed Mar 17 22:46:13 1999 Mark Elbrecht + Jeff Law + + * pa.md: Add real PA8000 scheduling information. + + * pa.h (processor_type): Add PROCESSOR_8000 symbol. + (ISSUE_RATE): Revamp, including PA8000 support. + * pa.c (override_options): Add 8000 as -mschedule= option. + Do not call strcmp if pa_cpu_string is null. + * pa.md (attr cpu): Add 8000. + * invoke.texi: Add documentation for PA8000 scheduling. + +Wed Mar 17 18:20:24 1999 David S. Miller + + * config/sparc/sparc.h (TARGET_SWITCHES, TARGET_OPTIONS): + Add descriptions. + * config/sparc/sp64-elf.h (SUBTARGET_SWITCHES): Likewise. + * config/sparc/splet.h (SUBTARGET_SWITCHES): Likewise. + +Wed Mar 17 14:51:19 1999 Richard Henderson + + * flow.c (compute_immediate_dominators): New function. + * basic-block.h (compute_immediate_dominators): Declare it. + + * alpha.h (HARD_REGNO_MODE_OK): Allow only 4 and 8 byte unit modes + in FP regs. + (MODES_TIEABLE_P): Define asymmetricly wrt modes illegal in FP regs. + +Wed Mar 17 14:41:41 1999 Nick Clifton + + * config/arm/aout.h (ASM_GENERATE_INTERNAL_LABEL): Fix compile + time warning. + * config/arm/arm.md: Fix various compile time warnings. + * config/arm/arm.h: Fix various compile time warnings. Add + function prototypes. + * config/arm/arm.c: Fix various compile time warnings. + (arm_override_options): Reorganize to separate tuning from + targetting. + (bit_count): New function: Return a count of the number of bits + set in a word. + +Wed Mar 17 21:29:12 1999 J"orn Rennecke + + * reload1.c (eliminate_regs): Don't keep REG_DEAD notes around for + things that were eliminated. + +Wed Mar 17 12:16:26 1999 Richard Henderson + + * function.c (fixup_var_refs_1): First try moving the expression + directly into a register. Don't separate cc0 setter and user. + +Wed Mar 17 11:20:29 1999 Dave Brolley + + * cppfiles.c (PIPE_BUF): #define PIPE_BUF if not defined already. + +Wed Mar 17 09:25:06 1999 Kaveh R. Ghazi + + * c-lex.c: Don't include setjmp.h. + (parse_float): New static function. + (pf_args): New struct. + (yylex): Use them in call to `do_float_handler'. + +1999-03-16 Andreas Schwab + + * cexp.y (yyerror): Call verror to get a useful error message. + * cexp.c: Rebuilt. + + * .gdbinit: Move command to put breakpoint at abort to end of file + so that gdb does not bail out early. + +Tue Mar 16 15:30:19 1999 Nick Clifton + + * rtl.h: Rename prototype for free_bb_memory to free_bb_mem. + +Tue Mar 16 23:40:09 1999 J"orn Rennecke + + * sh.md (movsi_i): Move t/r alternative after r/rI alternative. + +Tue Mar 16 13:44:50 1999 Jim Wilson + + * mn10200/mn10200.md (addsi3, subsi3, ashlsi3, lshrsi3, ashrsi3): + Delete emit_library_call_value declaration. + +1999-03-16 Zack Weinberg + + * cppfiles.c (read_and_prescan): Map backslash-newline to '\r' + (which cannot otherwise appear in the processed buffer) and + move it out of tokens that it appears in the middle of. + Improve performance. + (find_position): New function. + + * cpplib.c: \r (one character) indicates backslash + newline, not \\\n (two characters). It cannot appear in the + middle of a token. Call CPP_BUMP_LINE (pfile) whenever + parsing moves past \n or \r. Increment pfile->lineno whenever + a \n is placed into token_buffer. Only one mark can exist at + a time, and CPP_BUMP_LINE must not be used while it is + active. It is automatically cleared by cpp_pop_buffer and + parse_goto_mark. \r is not in is_hor_space or is_space. + + (NEWLINE_FIX, NEWLINE_FIX1, adjust_position, + update_position, count_newlines, parse_move_mark): Removed. + (parse_string, copy_comment): New functions. + (parse_name): Returns void. + (parse_set_mark, parse_clear_mark, parse_goto_mark): Take only + one argument, a cpp_reader *. Change for new marking scheme. + (skip_comment): Handle CHILL line comments too. Second + argument is now first character of comment marker; all callers + changed. Issue error for unterminated block comment here. + (cpp_skip_hspace): Recognize CHILL comments. + (copy_rest_of_line): Likewise. Call skip_comment and + parse_string directly, don't go through cpp_get_token. Emit + "/**/" for block comments if -traditional (create_definition + needs this). + (do_define): Don't play with put_out_comments. + (cpp_push_buffer): Initialize ->mark to -1. + (cpp_buf_line_and_col): Just read out the values in the buffer + structure. + (output_line_command): Use cpp_buf_line_and_col. Fix + formatting. Remove stale code. + (cpp_get_token): Break out string parsing code to + parse_string. Use skip_comment for CHILL comments too. Use + copy_comment for put_out_comments instead of dinking with + marks. Remove stale code. Don't call output_line_command + unless it's necessary. + + * cpplib.h (parse_marker): Removed. + (struct cpp_buffer): Line_base is now an unsigned char *; add + `mark' [long], remove `marks' [struct parse_marker *]. + (parse_set_mark, parse_clear_mark, parse_goto_mark): Update + prototypes. + (CPP_BUMP_LINE, CPP_BUMP_BUFFER_LINE): New macros. + * cppinit.c (is_hor_space, is_space): '\r' is not considered + whitespace. + * cppexp.c (cpp_parse_expression): Use cpp_skip_hspace, not + SKIP_WHITE_SPACE. + * cpphash.c (macarg): Disable line commands while expanding. + +Tue Mar 16 11:30:19 1999 Gavin Romig-Koch + + * c-lex.c (yylex) : Remove warning for integer literals being + larger than the largest target int. Add warning for integer + literal being larger than than its chosen type. + +Tue Mar 16 10:53:17 1999 Gavin Romig-Koch + + * invoke.texi: Add -mlong32 documentation. + * config/mips/mips.h (mips_explicit_type_size_string): New. + (TARGET_SWITCHES): Add 'long32'. + (TARGET_OPTIONS): Add 'explicit-type-size'. + (CC1_SPECS): Set -mexplicit-type-size. + (LONG_MAX_SPEC): Change a use of 'no-long64' to 'long32'. + * config/mips/abi64.h (LONG_MAX_SPEC): Same. Add 'mabi=32'. + * config/mips/mips.c (mips_explicit_type_size_string): New. + (override_options): Use it. + * config/mips/osfrose.h (CC1_SPECS): Set -mexplicit-type-size. + + * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): + Pointer size now depends on both size longs and size of GP + registers. + +Tue Mar 16 10:22:22 1999 Gavin Romig-Koch + + * config/mips/iris.h (CTORS_SECTION_ASM_OP,DTORS_SECTION_ASM_OP, + dtors_section): Use Pmode == DImode rather than TARGET_LONG64. + * config/mips/mips.c (override_options): Allow -mlong64 and + -mint64 with -mips2 or less. + * config/mips/mips.h (MASK_LONG64): Fix comment. + (POINTER_SIZE): Use Pmode == DImode rather than TARGET_LONG64. + (Pmode): Make Pmode the smaller of longs or gp registers. + * invoke.texi: Note the new size for pointers. + +Mon Mar 15 22:45:25 1999 David Edelsohn + + * rs6000.h (ASM_OUTPUT_{DOUBLE,FLOAT}): Always generate IEEE 754 + bit-pattern directly. + (ASM_OUTPUT_REG_{PUSH,POP}): Delete. + * rs6000.c (first_reg_to_save): If profiling and context needed, + allocate a reg to save static chain for all ABIs. For AIX + profiling, calculate parameter registers to save based on need. + (output_function_profiler): Save and restore static chain around + profile call for all ABIs. + +1999-03-15 Zack Weinberg + + * cppinit.c: Instead of one pending list, keep separate lists + for each category of pending option: -D/-U, -A, -include, + -imacros. Move the four partial include-path lists into the + pending block. Use head and tail pointers so we don't ever + have to reverse the lists. + + (cpp_start_read): Break out blocks of code to their own + functions: install_predefs and initialize_dependency_output. + Use path_include for C_INCLUDE_PATH and friends as well as + CPATH. Remove include_defaults gunk. Warn about the + combination of -lang-chill and -trigraphs. Optimize string + bashing. Walk each pending list once, deallocating as we go. + + (append_include_chain): Brought over from cppfiles.c. Mark + dirs as system include dirs if and only if appending to + system include path. If opts->verbose, print a notice when a + dir is dropped from the include path because it doesn't + exist. Fix memory leak: this function is not supposed to copy + its DIR argument. + + (nreverse_pending, push_pending): Removed. + (APPEND): New macro for adding to pending lists. + (path_include): Can now add to any partial include path. + (base_name): Bring over from cccp.c. + (cpp_options_init): Allocate the pending block. + (cpp_handle_option): Add --version. Exit after --help. Fix + formatting. Order -ifoo options by frequency of usage. + (install_predefs): New function, simplified version of code + that was in cpp_start_read. + (initialize_dependency_output): Likewise. Understand OBJECT_SUFFIX. + + * cppfiles.c (simplify_pathname): Export. + (merge_include_chains): Don't nreverse the lists. If + opts->verbose, print a notice when a duplicate dir is detected + and dropped from the include path. + (finclude): Fix excessive cleverness in setting + fp->system_header_p. + (actual_directory): Set x->sysp from + CPP_BUFFER (pfile)->system_header_p so that one system header + may include another with "". + (deps_output): Fix double adjustment of deps_size which would + cause all dependencies after the first two lines to be lost. + + * cpplib.c (cpp_unassert): New function. + * cpplib.h: Lay out struct cpp_pending here. Adjust + prototypes. Add include_prefix_len to struct cpp_options. + +Mon Mar 15 16:01:52 1999 Jim Wilson + + * config/misp/mips.h (REGISTER_MOVE_COST): Make the cost of moving + from HI/LO/HILO/MD into general registers the same as for one + of moving general registers to HI/LO/HILO/MD. + +Mon Mar 15 12:39:38 1999 Nick Clifton + + * config/m32r/m32r.c (init_idents): New function. Initialize + static tree nodes for m32r specific attribute identifiers. Remove + leading and trailing double underscores from the attribute names. + (m32r_valid_machine_decl_attribute): Call init_idents. + (m32r_encode_section_info): Call init_idents. + +Mon Mar 15 10:20:20 1999 Mark Mitchell + + * reload.c (find_reloads): Add a REG_LABEL note if we substitute a + LABEL_REF for something else. + +Mon Mar 15 08:24:17 1999 Kaveh R. Ghazi + + * fold-const.c (exact_real_inverse): Move variable `float_error' + into the scope where it is used. + (const_binop_1): New static function. + (cb_args): New struct. + (const_binop): Use them in call to `do_float_handler'. + (fold_convert_1): New static function. + (fc_args): New struct. + (fold_convert): Use them in call to `do_float_handler'. + +Mon Mar 15 22:50:18 1999 Michael Hayes + + * rtlanal.c (auto_inc_p): New function. + * rtl.h (auto_inc_p): Prototype it. + * reload1.c (add_auto_inc_notes): New function. + (reload): Strip REG_INC notes and call add_auto_inc_notes + for each insn to restore them correctly. + +1999-03-15 Manfred Hollstein + + * fixinc/Makefile.in (procopen.o): List the actual + dependencies. + +Sun Mar 14 16:22:10 1999 Kaveh R. Ghazi + + * cse.c (check_fold_consts): New static function. + (cfc_args): New struct. + (simplify_relational_operation): Use them in call to + `do_float_handler'. + + * toplev.c (do_float_handler): New function to wrap calls to + setjmp/set_float_handler. + + * toplev.h (do_float_handler): Add extern prototype. + + * tree.c (build_real_from_int_cst_1): New static function. + (brfic_args): New struct. + (build_real_from_int_cst): Use them in call to + `do_float_handler'. + +Sun Mar 14 01:15:06 1999 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Sat Mar 13 17:37:18 1999 Richard Henderson + + * haifa-sched.c (sched_analyze_1): Only clear reg_last_uses on a SET. + +Sat Mar 13 11:36:16 1999 Richard Earnshaw (rearnsha@arm.com) + + * arm.c (arm_split_constant): Don't try to force a constant to + memory after arm_reorg has run. + (after_arm_reorg): New static variable. + (arm_reorg): Set it. + (output_func_epilogue): Clear it. + +Fri Mar 12 20:26:32 1999 David Edelsohn + + * configure.in ({rs6000,powerpc}-ibm-aix*): Set float_format to none. + * configure: Rebuilt. + +Fri Mar 12 20:45:30 1999 J"orn Rennecke + + * unroll.c (loop_iterations): Don't return a final value for EQ + comparison loops. + +Fri Mar 12 12:35:01 1999 Jim Wilson + + * reload1.c (calculate_needs_all_insns): When ignore equivalence + setting insn, clear need_elim, need_reload, and need_operand_change. + +Fri Mar 12 07:54:43 1999 Bruce Korb + + * fixinc/fixinc.*: Some changes from the fixincl-branch + were not applied (??!!). Corrected. + + * fixinc/Makefile.in: Same thing. + +Fri Mar 12 00:51:43 1999 Jeffrey A Law (law@cygnus.com) + + * expr.c (expand_expr): Allow a CALL_EXPR with a mode wider than + MAX_INTEGER_COMPUTATION_MODE. + +Thu Mar 11 14:00:58 1999 Richard Henderson + + * alpha.h (HARD_REGNO_MODE_OK): Disallow QI/HImode in fp regs. + (MODES_TIEABLE_P): Update. + + * alpha.md (ev5_e0): Conflict loads and stores. + +Thu Mar 11 13:55:52 1999 Richard Henderson + + * machmode.h (smallest_mode_for_size): Prototype. + * stor-layout.c (smallest_mode_for_size): Remove static. + +Thu Mar 11 21:25:59 1999 J"orn Rennecke + + * loop.c (strength_reduce): Don't do biv increment -> DEST_REG giv + conversion if we don't know the lifetime. + +Thu Mar 11 20:37:59 1999 J"orn Rennecke + + * reload.1c (delete_address_reloads_1): Check for reloads of + CURRENT_INSN even if it sets DST. + +Thu Mar 11 10:29:50 1999 Jason Merrill + + * dwarf2out.c (add_AT_lbl_offset): Rename from add_AT_section_offset. + (print_die, size_of_die, value_format, output_die): Adjust. + +Thu Mar 11 10:27:42 1999 Robert Lipe + + * dwarf2out.c (TEXT_SECTION_LABEL, DEBUG_LINE_SECTION_LABEL, + DEBUG_INFO_SECTION_LABEL, ABBREV_SECTION_LABEL, + text_section_label, debug_line_section_label, + debug_info_section_label, abbrev_section_label): New. + (output_compilation_unit_header): Emit label associated + with section instead of section name itself. + (out_pubnames, output_aranges, output_line_info, + dwarf2out_finish): Likewise. + (dwarf2out_init): Build internal label names for sections + from static labels. + +Thu Mar 11 17:28:32 1999 J"orn Rennecke + + * sh.md (mulsi3): End mul.l sequence with a no-op move. + +Thu Mar 11 08:52:02 1999 Bruce Korb + + * Makefile.in: Activated fixinc/mkfixinc.sh. + * configure.in: Activated fixinc/mkfixinc.sh. + +Thu Mar 11 01:38:02 1999 Mumit Khan + + * cppfiles.c (INO_T_EQ): Handle UWIN. + + * c-common.c (decl_attributes): Flag unrecognized attribute + functions as warnings instead of as errors. + + Support for i386-pc-uwin. + * i386/uwin.h: New file. + * i386/xm-uwin.h: New file. + * i386/t-uwin: New file. + * i386/uwin.asm: New file. + * configure.in (i[3456]86-*-uwin*): Define. + Add Workaround for vfork bug when hosted on uwin. + * configure: Regenerate. + + * cccp.c (INO_T_EQ): Undefine. UWIN has inodes. + (absolute_filename): UWIN uses POSIX pathnames only. + * libgcc2.c (getpagesize): Do not define for UWIN. + (mprotect): Likewise. + * protoize.c (dirent.h): Conditionally include. + (fputc): Prototype only if it's not a macro. + +Wed Mar 10 02:49:04 1999 Jason Merrill + + * configure.in: Remove init_priority stuff. + +1999-03-11 Colin Smith + + * sdbout.c (plain_type_1): Make boolean types work better with sdb. + +Thu Mar 11 00:20:52 1999 Alexandre Oliva + + * gcc.texi: Update bug reporting instructions to match + current ezmlm list reality. + +Wed Mar 10 23:11:19 1999 Kaveh R. Ghazi + + * gcc.c (print_file_name, print_prog_name, spec_machine, + read_specs, set_spec, lookup_compiler, build_search_list, + putenv_from_prefixes, find_a_file, record_temp_file, + delete_if_ordinary, handle_braces, do_spec, do_spec_1, find_file, + is_directory, validate_switches, used_arg, default_arg, + pfatal_with_name, perror_with_name, pfatal_pexecute, fatal, error, + notice, add_preprocessor_option, add_assembler_option, + add_linker_option, process_command, execute, + unused_prefix_warnings, clear_args, fatal_error, + lang_specific_driver, user_specs, compiler, link_command_spec, + option_map, translate_options, make_temp_file, temp_name, + programname, path_prefix, machine_suffix, just_machine_suffix, + gcc_exec_prefix, standard_exec_prefix, standard_exec_prefix_1, + md_exec_prefix, md_startfile_prefix, md_startfile_prefix_1, + standard_startfile_prefix, standard_startfile_prefix_1, + standard_startfile_prefix_2, tooldir_base_prefix, tooldir_prefix, + multilib_dir, temp_filename, temp_file, command, switchstr, + infile, outfiles, input_filename, input_basename, input_suffix, + check_live_switch, main): Qualify a char* with the `const' keyword. + +Wed Mar 10 20:28:29 1999 Jeffrey A Law (law@cygnus.com) + + * lcm.c: New file. + * Makefile.in (OBJS): Add lcm.o. + (lcm.o): Add dependencies. + + * gcse.c (compute_pre_local_properties): Delete. + (compute_pre_data): Use compute_local_properties instead of + compute_pre_local_properties. + + * gcse.c: More comments, whitespace and similar fixes. + (dump_cuid_table, maybe_set_rd_gen, dump_cprop_data): Delete. + (dump_pre_data, compute_cprop_local_properties): Likewise. + (one_classic_gcse_pass): Lose unused argument. All callers changed. + (compute_hash_table, compute_expr_hash_table): Likewise. + (compute_set_hash_table, one_pre_gcse_pass, mark_call): Likewise. + (cprop_insn, cprop, one_cprop_pass): Add new argument ALTER_JUMPS. + All callers changed. Only alter jumps if ALTER_JUMPS is nonzero. + Lose unused argument. + (gcse_main): Always run a cprop pass after finishing global cse. + (compute_local_properties): New function. + (hash_scan_pat, hash_scan_insn): No longer call maybe_set_rd_gen. + (compute_cprop_data): Use compute_local_properties. + + * gcse.c: Update various comments. + (current_function_calls_longjmp): Delete declaration. + + * gcse.c (run_jump_opt_after_gcse): New variable. + (gcse_main): Returns an integer. + (hash_scan_set): Record initializations from CONST_DOUBLEs too. + (try_replace_reg): Update some comments. + (cprop_insn): Allow propagation into some JUMP_INSNs too. + * rtl.h (gcse_main): Update prototype. + * toplev.c (rest_of_compilation): If gcse_main returns nonzero, + then run a jump optimization pass. + * jump.c (delete_barrier_successors): Delete nop jumps too. + +Wed Mar 10 19:04:31 1999 J"orn Rennecke + + * sh.c (fp_arith_reg_operand): Actually test if reg is suitable + for FP arithmetic. Changed caller. + * sh.md (subsf3, subsf_i): Use fp_arith_reg_operand. + +Wed Mar 10 18:56:31 1999 J"orn Rennecke + + * reload1.c (choose_reload_regs): When inheriting from the frame + pointer, don't clobber it. + +Wed Mar 10 08:01:52 1999 Bruce Korb + + * fixinc/fixinc.*: Resync-ed with the files in this + directory. + + * fixinc/mkfixinc.sh: The machine case elements were + out-of-order. (the ix86-*-linux-gnu* entry needed to + be earlier). + +Wed Mar 10 00:01:24 1999 J"orn Rennecke + + * reload1.c (reload_combine_note_store): Fix calculation of number + of affected registers. + +Tue Mar 9 15:48:15 1999 Richard Henderson + + * flow.c (tidy_fallthru_edge): Be more careful finding the last + BARRIER of a list. Delete the cc0 setter as well as a cond jump. + +Tue Mar 9 15:26:02 1999 Hans-Peter Nilsson + + * i386.md (ashlsi3 splitter): Fix typo in last change. + +Tue Mar 9 11:35:20 1999 Richard Henderson + + * reg-stack.c (stack_reg_life_analysis): Use returnjump_p + instead of an explicit test for RETURN. + +Tue Mar 9 09:33:16 1999 Kaveh R. Ghazi + + * Makefile.in (toplev.o): Depend on $(BASIC_BLOCK_H). + + * toplev.c: Include basic-block.h. + +Tue Mar 9 02:08:17 1999 Jeffrey A Law (law@cygnus.com) + + * calls.c (load_register_parameters): New function. + (expand_call): Use it. + + * calls.c (expand_call): Slightly reorganize code. + + * calls.c (compute_argument_addresses): New function. + (rtx_for_function_call): New function. + (expand_call): Use them. + + * i386.md (zero_extendhisi2): Split into an expander and anonymous + pattern. Add new anonymous pattern for use when optimizing for + size or for the PPro. + (zero_extendqihi2, zero_extendqisi2): Likewise. + +Mon Mar 8 23:43:47 1999 Richard Henderson + + * haifa-sched.c (sched_analyze_1): Fix last change -- add clobber + dependencies to sets in the non-hard-reg case too. + +Mon Mar 8 18:55:21 1999 Marc Espie + + * config/openbsd.h (HANDLE_SYSV_PRAGMA): Define. + +Mon Mar 8 16:04:44 1999 Jim Wilson + + * local-alloc.c (combine_regs): Don't combine if we have a hard reg + for which CLASS_LIKELY_SPILLED_P is true. + + * unroll.c (loop_iterations): Only call loop_find_equiv_value if we + have a REG or SUBREG. + +Mon Mar 8 15:27:42 1999 Jeffrey A Law (law@cygnus.com) + + * i386.md (ashlsi3): Revise comments. Provide new anonymous + pattern for Pentium and PPro/PII. Reverse constraints in + generic ashlsi3 anonymous pattern. + + * calls.c (initialize_argument_info): Accept a pointer to + CUMULATIVE_ARGS. + (expand_call): Pass the address of CUMULATIVE_ARGS. + + * rs6000/xm-sysv4.h (HOST_BITS_PER_LONGLONG): Remove #if 0. + + * mn10300.h (CASE_DROPS_THROUGH): Delete. + * mn10200.h (CASE_DROPS_THROUGH): Delete. + * h8300.h (CASE_DROPS_THROUGH): Delete. + + * flow.c (merge_blocks_nomove): For HAVE_cc0 targets, make sure + to also delete the cc0 setter when deleting a conditional branch + to the next block. + +Mon Mar 8 18:47:11 1999 J"orn Rennecke + + * regmove.c (copy_src_to_dest): New argument max_old_uid. + +Mon Mar 8 08:23:00 1999 Bruce Korb + + * ChangeLog: Merged entries from fixincl-branch. + +Sun Mar 7 11:48:56 1999 Richard Henderson + + * haifa-sched.c (ENCODE_BLOCKAGE): Don't shift unit too far. + (print_exp): Special case addition of a constant. + (print_value) [CONST_INT]: Use HOST_WIDE_INT_PRINT_HEX. + +Sun Mar 7 11:21:02 1999 Richard Henderson + + * haifa-sched.c (reg_last_clobbers): New. + (reg_pending_clobbers, bb_reg_last_clobbers): New. + (compute_block_backward_dependences): Allocate memory for them. + (schedule_region): Likewise. + (sched_analyze_1): Clobbers don't interfere with one another. + They do interfere with sets ... + (sched_analyze_2): ... and uses. + (sched_analyze): Likewise. + (sched_analyze_insn): Update reg_last_clobbers appropriately. + +Sun Mar 7 08:30:37 1999 Kaveh R. Ghazi + + * gmon-sol2.c: Include config.h and system.h. Don't redundantly + include system header files. + (sccsid): Remove. + (moncontrol, monstartup, _mcleanup, internal_mcount): Prototype. + (_mcleanup): Add the `const' keyword to a char*. + (internal_mcount): Declare `etext' as a char[] not a function. + Cast `etext' to char* when calling `monstartup'. + + * sparc.c (frame_base_name, save_regs, restore_regs, + build_big_number, sparc_cmodel_string, sparc_align_loops_string, + sparc_align_jumps_string, sparc_align_funcs_string, code_model, + cpu_default, cpu_table, output_function_prologue, + output_function_epilogue, output_return, + sparc_flat_output_function_prologue, ultra_code_names, + sparc_flat_output_function_epilogue): Constify a char*. + (hypersparc_adjust_cost): Add a default case in a switch. + + * sparc.h (sparc_cmodel_string, OVERRIDE_OPTIONS, + sparc_cpu_select, sparc_align_loops_string, + sparc_align_jumps_string, sparc_align_funcs_string, + output_return): Constify a char*. + + * sparc.md (movdi): Change the comparison of HOST_BITS_PER_WIDE_INT + so that we check "== 32", instead of "!= 64". Cast a value to + HOST_WIDE_INT when comparing against one. Hide the declaration + for variable `chain'. + +Sun Mar 7 08:05:27 1999 Kaveh R. Ghazi + + * system.h (const, inline): Move the stage2 handling of these + keywords-as-macros from here... + + * gansidecl.h (const, inline): ...to here. + +Sun Mar 7 02:44:15 1999 Richard Henderson + + * recog.c (push_operand, pop_operand): VOIDmode needn't match modes. + +Sun Mar 7 01:58:47 1999 Richard Henderson + + * cse.c (canon_hash): Never reject hard regs in CCmode. + +Sun Mar 7 01:15:04 1999 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Sat Mar 6 17:18:44 1999 Richard Earnshaw (rearnsha@arm.com) + Richard Henderson + + * flow.c (make_edges): Handle casesi that jump to default branch. + If CASE_DROPS_THROUGH, force fallthru to block after casesi. + +Sat Mar 6 07:49:23 1999 Kaveh R. Ghazi + + * c-aux-info.c (data_type, affix_data_type, gen_decl, + gen_formal_list_for_type, gen_formal_list_for_func_def, gen_type): + Qualify a char* with the `const' keyword. + + * c-common.c (declare_hidden_char_array, add_attribute, if_elt, + declare_function_name, decl_attributes, format_char_info, + check_format_info, binary_op_error): Likewise. + + * cexp.y (yyerror, error, pedwarn, warning, token): Likewise. + + * gcse.c (dump_hash_table): Likewise. + + * integrate.c (function_cannot_inline_p): Likewise. + + * optabs.c: Include insn-config.h earlier. + (init_libfuncs, init_integral_libfuncs, init_floating_libfuncs): + Qualify a char* with the `const' keyword. + + * real.c (asctoe24, asctoe53, asctoe64, asctoe113, asctoe, + asctoeg, mtherr, ereal_atof): Likewise. + + * real.h (ereal_atof): Likewise. + + * sbitmap.c (dump_sbitmap_vector): Likewise. + + * sbitmap.h (dump_sbitmap_vector): Likewise. + + * stmt.c (nesting, n_occurrences, expand_start_case): Likewise. + + * toplev.c (rest_of_compilation): Likewise. + + * tree.h (function_cannot_inline_p, expand_start_case): Likewise. + +Fri Mar 5 23:16:42 1999 David Edelsohn + + * rs6000.h (ASM_OUTPUT_REG_{PUSH,POP}): Add 64-bit support and do + not overwrite AIX link register save area. + +Fri Mar 5 23:08:01 1999 J"orn Rennecke + + * reload.c (find_reloads_subreg_address): Actually create the USE + for the register, not the new memory location. + +Fri Mar 5 21:41:07 1999 J"orn Rennecke + + * reload1.c (emit_reload_insns): If pseudo that can't be replaced + with its equivalent constant, fall back to reload_in. + +Fri Mar 5 13:20:39 1999 Richard Henderson + + * Makefile.in: Delete .flow2 debugging files. + +Fri Mar 5 11:36:11 1999 Nick Clifton + + * config/arm/arm.c (arm_override_options): Change default target + cpu selection so that enabling TARGET_APCS_32 does not override + default target CPU. + +Fri Mar 5 19:26:23 1999 J"orn Rennecke + + * sh.h (SLOW_BYTE_ACCESS): Define to 1. + (BOOL_TYPE_SIZE): Define. + +Fri Mar 5 02:14:54 1999 John Wehle (john@feith.com) + + * function.c (assign_stack_temp_for_type): Abort + if mode == Blkmode and align is less than + BIGGEST_ALIGNMENT / BITS_PER_UNIT. + (assign_stack_temp_for_type): Round the size parameter + passed to assign_stack_local instead of size itself. + +Thu Mar 4 15:00:35 1999 Richard Henderson + + * flow.c (delete_unreachable_blocks): Mark blocks as they + are put on to the worklist, not as they are taken off. + +Thu Mar 4 00:05:44 1999 Jeffrey A Law (law@cygnus.com) + + * function.c (current_function_has_computed_jump): Remove duplicate + definition. + +Wed Mar 3 19:09:11 1999 Jim Wilson + + * m68k/m68020-elf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Undef. + (STARTFILE_SPEC, ENDFILE_SPEC): Define to empty string. + + * sparc/elf.h (MULDI3_LIBCALL, DIVDI3_LIBCALL, UDIVDI3_LIBCALL, + MODDI3_LIBCALL, UMODDI3_LIBCALL, STDC_0_IN_SYSTEM_HEADERS): Undef. + (INIT_SUBTARGET_OPTABS): Define to empty. + +Wed Mar 3 00:00:37 1999 J"orn Rennecke + + * sh.c (force_into): New function. + (expand_block_move): Use it. + +Tue Mar 2 10:39:43 1999 Nick Clifton + + * cccp.c (struct default_include): Add 'included' field. + (main): Set 'included' field when a default include directory + is added to the chain. If -v is specified list all default + include directories which do not get appended to the chain. + +Tue Mar 2 09:24:10 1999 Nick Clifton + + * configure.in (gxx_include_dir): Rename to + gcc_gxx_include_dir in order to prevent it being overridden by + a top level Makefile. + (gcc_tooldir): If $exec_prefix != $prefix then use the + difference between the two as the basis for gcc_tooldir. + + * configure: Rebuild. + + * Makefile.in: Rename gxx_include_dir to gcc_gxx_include_dir. + +Tue Mar 2 16:45:31 1999 J"orn Rennecke + + * unroll.c (copy_loop_body): Don't make extra copies of + NOTE_INSN_LOOP_CONT notes. + +Tue Mar 2 07:44:56 1999 Mark Mitchell + + * tree.c (save_tree_status): Don't treat functions with no context + as nested. + +Tue Mar 2 09:37:05 1999 Robert Lipe + + * Makefile.in (MAKEINFO): Use makeinfo built from sibling + tree when available. + +Tue Mar 2 10:12:48 1999 Kaveh R. Ghazi + + * alpha.c (alpha_cpu_name, alpha_cpu_string, alpha_tp_string, + alpha_fprm_string, alpha_fptm_string, alpha_mlat_string, + current_function_file): Add the `const' keyword. + (normal_memory_operand): Mark parameter `mode' with + ATTRIBUTE_UNUSED. + (alpha_expand_unaligned_load): Add a default case to a switch. + + * alpha.h (alpha_cpu_string, alpha_fprm_string, alpha_fptm_string, + alpha_tp_string, alpha_mlat_string): Add the `const' keyword. + (normal_memory_operand): Add prototype. + + * alpha.md: Cast an expression to `unsigned HOST_WIDE_INT' when + comparing against one. + +Tue Mar 2 10:00:21 1999 Kaveh R. Ghazi + + * mips.c (abort_with_insn): Make function static, add a prototype, + constify 2nd parameter and mark with ATTRIBUTE_NORETURN. + (current_function_file, mips_cpu_string, mips_isa_string, + mips_abi_string, mips_no_mips16_string, mips_entry_string, + mips_move_1word, mips_move_2words, output_block_move, load_store, + override_options, make_temp_file, mips16_fp_args): Qualify a char* + with the `const' keyword. + + * mips.h (current_function_file, mips_cpu_string, mips_isa_string, + mips_abi_string, mips_entry_string, mips_no_mips16_string, + mips_move_1word, mips_move_2words, output_block_move): Likewise. + (abort_with_insn): Remove extern prototype. + + * mips.md: Qualify a char* with the `const' keyword. + Remove many unused variables named `label'. + +Tue Mar 2 01:27:52 1999 H.J. Lu (hjl@gnu.org) + + * Makefile.in (cpp_install_dir, INSTALL_CPP, UNINSTALL_CPP): New + variables. + (install-cpp, uninstall-cpp): New targets. + (install-normal): Depend on $(INSTALL_CPP). + (uninstall): Depend on $(UNINSTALL_CPP). + * configure.in (cpp_install_dir): New, substitute. + (tmake_file): Added t-install-cpp for --enable-cpp. + * configure: Rebuilt. + * cpp.sh: New cpp script. + * config/t-install-cpp: New target fragment. + +Tue Mar 2 01:40:01 1999 Franz Sirl + Jeffrey A Law (law@cygnus.com) + + * cse.c (fold_rtx): Update comments for (const (minus (label) (label))) + case. + (cse_insn): Avoid creating a bogus REG_EQUAL note for + (const (minus (label) (label))) + (record_jump_cond): Fix mismatched paren in comment. + +Tue Mar 2 01:07:12 1999 Dan Nicolaescu + + * final.c (end_final): There are 11 words in the "main header" + structure, not 10. + +Tue Mar 2 00:09:18 1999 Marc Espie + + * extend.texi: Reference __extension__ in the index. + +Mon Mar 1 19:09:32 1999 Jim Wilson + + * Makefile.in (CROSS_FLOAT_H): Delete. + (FLOAT_H): Use float_h_file. + (rest.cross, stmp-int-hdrs): Delete gfloat.h dependency. + (gfloat.h): Delete. + (stmp-int-hdrs): Use FLOAT_H instead of gfloat.h. + (mostlyclean): Delete gloat.h reference. + (install-cross-rest, install-float-h-cross, stmp-headers): Update + comments. + * configure.in (sparcv9-*-solaris2*): Set float_format to none. + (sparc-*-solaris2*): Set float_format to none for 2.5 and higher. + (float_h_file): Set from float_format. Substitute into Makefile.in. + (float_format): No longer substitute into Makefile.in. + * cross-make (FLOAT_H): Delete. + * config/mips/t-cross64 (FLOAT_H): Delete. + * configure: Rebuilt. + +Mon Mar 1 16:36:18 1999 Jeffrey A Law (law@cygnus.com) + + * mips.md (div_trap_normal, div_trap_mips16): Require the dependent + insn to be an INSN before looking at its pattern. + +Mon Mar 1 15:03:51 1999 Jim Wilson + + * config/m68k/lb1sf68.asm (udivsi3): Change jmi to jcs. Fix comments. + * config/m68k/m68k.h (LEGITIMATE_INDEX_REG_P): Reject SIGN_EXTEND of + HImode reg when TARGET_5200. + +Mon Mar 1 21:44:30 1999 J"orn Rennecke + + From Toshiyasu Morita: + * sh.h (CACHE_LOG): SH2 has cache, too. + +Mon Mar 1 14:23:36 1999 Catherine Moore + + * toplev.c (compile_file): Disable -ffunction-sections and + debugging warning if the object format is elf. + +Mon Mar 1 11:46:25 1999 Vladimir N. Makarov + + * config/h8300/h8300.c (print_operand): Use 16 bit addressing + when the data in 8-bit area and can not be addressed by 8-bit. + +Sun Feb 28 16:40:00 1999 Richard Henderson + + * flow.c (create_basic_block): Disregard integrated bb notes. + +Sun Feb 28 15:57:06 1999 Richard Henderson + + * sparc.md (blockage, nonlocal_goto_receiver): Set length to 0. + +Sun Feb 28 14:47:53 1999 Arturo Montes + + * config/i386/t-sco5gas (crti.o): New target. + +Sun Feb 28 15:10:17 1999 David Edelsohn + + * rs6000.md (elf_high, movsi_got, *movsi_got_internal, + *movsi_got_internal_mem, GOT splitter, movdf_hardfloat32, + movdf_softfloat32, movdf_hardfloat64, movdf_softfloat64, + load_multiple, allocate_stack, call_indirect_aix32, + call_indirect_aix64, call_value_indirect_aix32, + call_value_indirect_aix64, call_indirect_nt, + call_value_indirect_nt): Use gpc_reg_operand instead of + register_operand. + +Sun Feb 28 15:10:17 1999 Michael Meissner + + * rs6000.md (one_cmplsi2, andsi3, iorsi3, xorsi3, *eqvsi3, + *andcsi3, *iorcsi3, *nandsi3, *norsi3): Add alternatives to use CR + other than cr0. + * rs6000.c (and{,64}_operand): If the user did -ffixed-cr0, don't + allow andi. or andis. which always set cr0. + +Sun Feb 28 01:15:04 1999 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Sun Feb 28 02:00:38 1999 Jeffrey A Law (law@cygnus.com) + + * invoke.texi: Update information for PA scheduling. + +Sat Feb 27 23:21:47 1999 Jerry Quinn + Mike Stump + + * pa.c (override_options): Change default to 7100LC. + + * pa.h (REG_ALLOC_ORDER): Change order to allocate left half of + float regs before right half of float regs. + +Sat Feb 27 22:48:38 1999 H.J. Lu (hjl@gnu.org) + Jeffrey A Law (law@cygnus.com) + + * frame.h: Update some comments. + * defaults.h (TARGET_ATTRIBUTE_WEAK): Define. + * crtstuff.c (__register_frame_info, __deregister_frame_info): Declare + using TARGET_WEAK_ATTRIBUTE. + (__do_global_dtors_aux): Check if __deregister_frame_info is + zero before calling it. + (__do_global_dtors): Likewise. + (frame_dummy): Check if __register_frame_info is zero before + calling it. + (__frame_dummy): Likewise. + +Sat Feb 27 19:18:24 1999 Jeffrey A Law (law@cygnus.com) + + * SERVICE: Update from the FSF. + +Sat Feb 27 14:31:22 1999 Arturo Montes + + * config/i386/t-sco5 (crti.o): New target. + * config/i386/sco5.h (STARTFILE_SPEC): Include crti.o when + linking -shared. + * configure.in (i[34567]86-*-sco3.2v5*): Add crti.o. + +Sat Feb 27 01:12:40 1999 Jeffrey A Law (law@cygnus.com) + + * md.texi (prologue,epilogue): Document named patterns. + +Fri Feb 26 19:31:25 1999 Dave Love + + * md.texi, invoke.texi: Fix unterminated @xrefs. + +Fri Feb 26 15:33:45 1999 Richard Henderson + + * genattrtab.c (simplify_knowing): Fix uninitialized read + in Feb 21 change. + + * genextract.c (main): Clear recog_operands before extracting. + +Fri Feb 26 02:24:57 1999 Jeffrey A Law (law@cygnus.com) + + * c-pragma.c (add_weak); Delete. Moved into... + * varasm.c (add_weak): New external function. + (declare_weak): If HANDLE_PRAGMA_WEAK, then add the function to + the list of weak functions. + * c-pragma (add_weak): Declare. + +Thu Feb 25 23:43:59 1999 Richard Henderson + + Flow rewrite to use basic block structures and edge lists: + + * basic-block.h (x_basic_block_head, x_basic_block_end): Kill. + (basic_block_computed_jump_target, basic_block_live_at_start): Kill. + (struct edge_def): New. + (struct basic_block_def): New. + (basic_block_info): New. + (BLOCK_HEAD, BLOCK_END): Update. + (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): New. + (uid_block_number): Kill. + (basic_block_for_insn, BLOCK_FOR_INSN): New. + (BLOCK_NUM): Update. + * flow.c (XNMALLOC): Kill. + (max_uid_for_flow): Kill. + (uid_block_number): Kill. + (uid_volatile): Turn into a bitmap. + (SET_INSN_VOLATILE): New. + (basic_block_info): New. + (entry_exit_blocks): New. + (x_basic_block_head, x_basic_block_end): Kill. + (basic_block_computed_jump_target, basic_block_live_at_start): Kill. + (flow_int_list_blocks, basic_block_succ, basic_block_pred): Kill. + (basic_block_loop_depth): Kill. + (basic_block_for_insn): New. + (find_basic_blocks): Split out initial block counting into + count_basic_blocks. Call functions split out of find_basic_blocks_1. + (count_basic_blocks): New. + (find_basic_blocks_1): Split out edge recognition, unreachable + block deletion. + (create_basic_block): New. + (compute_bb_for_insn): New. + (clear_edges): New. + (free_bb_memory): Kill. + (add_edge, add_edge_to_label): Kill. + (mark_label_ref): Kill. + (make_edges): Rewrite to use edge lists. + (make_edge, make_label_edge): New. + (mark_critical_edges): New. + (split_edge, insert_insn_on_edge): New. + (commit_one_edge_insertion, commit_edge_insertions): New. + (delete_unreachable_blocks): Rewrite to use edge lists. + Split out EH region manipulation into delete_eh_regions. + Call tidy_fallthru_edge and merge_blocks. + (delete_eh_regions): New. + (delete_note_p): New. + (delete_insn_chain): New. + (delete_block): Split out code into delete_insn_chain and + tidy_fallthru_edge. Update edge lists. + (expunge_block): New. + (flow_delete_insn): New? + (can_delete_label_p): New? + (merge_blocks_nomove, merge_blocks): New. + (tidy_fallthru_edge): New. + (calculate_loop_depth): New. + (life_analysis): Allocate and free uid_volatile. + (free_basic_block_vars): Update for new structures. + (record_volatile_insns): Use SET_INSN_VOLATILE. + (mark_regs_live_at_end): Tidy EXIT_IGNORE_STACK usage. + (mark_used_regs): Likewise. + (life_analysis_1): Use bb global_live_at_start, global_live_at_end, + local_set regsets. Use bb->aux to store new_live_at_end. Begin + life propagation from EXIT_BLOCK rather than last block. Clear + regs_ever_live after mark_regs_live_at_end. + (allocate_for_life_analysis): Update for new structures. + (propagate_block): Split out loop depth calculation to + calculate_loop_depth. + (regno_uninitialized): Use bb->global_live_at_start. + (regno_clobbered_at_setjmp): Likewise. + (dump_bb_data): Likewise. + (find_auto_inc): Use BLOCK_FOR_INSN instead of BLOCK_NUM. + (dump_flow_info): Update for new structures. + (dump_edge_info): New. + (print_rtl_with_bb): Update for new structures. + (compute_preds_succs): Do no work -- convert edge lists. + (set_block_for_insn): From corpse of old set_block_num. + (set_block_num): Call it. + + * rtl.c (note_insn_name): Add NOTE_INSN_BASIC_BLOCK. + * rtl.h (rtunion_def): Add bb entry. + (NOTE_BASIC_BLOCK): New. + (NOTE_INSN_BASIC_BLOCK): New. + + * varray.h (varray_data_tag): Add bb entry. + (VARRAY_BB_INIT, VARRAY_BB): New. + + * emit-rtl.c (emit_label_before): New. + + * except.c (expand_rethrow): Delete insns following the call to + rethrow. Put the REG_EH_RETHROW on the call. + + * jump.c (returnjump_p, returnjump_p_1): New. + + * expr.h (nonlocal_goto_handler_labels): New declaration. + * function.c (nonlocal_goto_handler_labels): Define it. + (push_function_context_to): Save it. + (pop_function_context_from): Restore it. + (init_function_start): Clear it. + (nonlocal_label_rtx_list): Kill. + * function.h (struct function): Add storage space for it. + * stmt.c (expand_nl_handler_label): Return the new label. + (expand_nl_goto_receivers): Collect a list of them in + nonlocal_goto_handler_labels. + + * Makefile.in (print-rtl.o): Depend on basic-block.h. + (flow.o): Depend on insn-flags.h. + + * function.c (thread_prologue_and_epilogue_insns): Do not + half-heartedly update bb structures. + + * toplev.c: Add flow2 dump as -dw. + (rest_of_compilation): Finish .greg before flow2. + + * graph.c (draw_edge): Handle class 3. + (print_rtl_graph_with_bb): Make abnormal edges red class 2, + change non-fall-thru but adjacent to green class 3. Update + to use new structures. + + * print-rtl.c (print_rtx): Handle NOTE_INSN_BASIC_BLOCK. + + * reg-stack.c (BLOCK_NUM): Convert to function. Abort if + block_number is -1. + (reg_to_stack): Initialize block_num to -1. + + * combine.c (set_nonzero_bits_and_sign_copies): Update reference + to basic_block_live_at_start to bb->global_live_at_start. + (try_combine): Likewise. + (reg_dead_at_p): Likewise. + * global.c (global_conflicts): Likewise. + Handle stack regs on all abnormal edges, not just computed jumps. + (mark_elimination): Update reference to basic_block_live_at_start. + (build_insn_chain): Likewise. + * haifa-sched.c (haifa_edge): Rename from edge for conflict. + (is_cfg_nonregular): Look at nonlocal_goto_handler_labels instead + of nonlocal_label_rtx_list. + (check_live_1): Update reference to basic_block_live_at_start. + (update_live_1): Likewise. + (find_pre_sched_live): Likewise. + (find_post_sched_live): Likewise. + * local-alloc.c (update_equiv_regs): Likewise. + (block_alloc): Likewise. + * reload1.c (reload, reload_combine): Likewise. + * regmove.c (mark_flags_life_zones): Likewise. + * resource.c (mark_target_live_regs): Likewise. + * sched.c (schedule_block): Likewise. + + * regclass.c (regset_release_memory): Don't free + basic_block_live_at_start. + + * unroll.c (copy_loop_body): Don't duplicate NOTE_INSN_BASIC_BLOCK. + +Thu Feb 25 21:32:34 1999 Jason Merrill + + * fixinc.wrap: Also handle struct queue in sys/stream.h. + * fixinc.svr4: Likewise. + + * dwarf2out.c (scope_die_for): Set scope_die to comp_unit_die + rather than asserting it. + +Thu Feb 25 23:33:06 1999 Kaveh R. Ghazi + + * cppexp.c (left_shift, right_shift, parse_charconst, COMPARE, + cpp_parse_expr): Replace uses of long/HOST_BITS_PER_LONG with + HOST_WIDEST_INT/HOST_BITS_PER_WIDEST_INT. + + * Makefile.in (cppmain.o, cpplib.o, cpphash.o, cppalloc.o, + cpperror.o, cppexp.o, cppfiles.o, cppinit.o, fix-header.o, + scan-decls.o): Don't depend on machmode.h. + + * cppexp.c: Don't define CHAR_BIT or HOST_BITS_PER_WIDE_INT anymore. + Replace all instances of HOST_WIDE_INT with HOST_WIDEST_INT. + + * cppfiles.c: Likewise. + + * cpplib.c: Likewise. + + * cpplib.h: Likewise. Also don't include machmode.h anymore. + +Thu Feb 25 18:46:26 1999 Richard Henderson + + * gcc.c (default_compilers): Define __FAST_MATH__ when appropriate. + * objc/lang-specs.h: Likewise. + +Thu Feb 25 16:19:43 1999 Jeffrey A Law (law@cygnus.com) + + * pa.md (call patterns): Lose unused argument to output_call. + + * print-rtl.c (print_rtl): Print /j and /c for the jump/call flags. + +1999-02-25 Zack Weinberg + + * cpphash.c (install): Rename to cpp_install, add cpp_reader* + first argument. All callers changed. + (hashtab): Removed. + (cpp_lookup, cpp_install): Change all refs to hashtab to + pfile->hashtab. + (cpp_hash_cleanup): Removed. + * cpphash.h: Adjust prototypes. + * cpplib.h (struct cpp_reader): Add hashtab pointer. + * cppinit.c (cpp_reader_init): Also allocate space for the + hashtab. + (cpp_cleanup): Delete all macros and free the hashtab. + +Thu Feb 25 21:52:54 1999 J"orn Rennecke + + * sh.h (PASS_IN_REG_P): For TARGET_HITACHI, don't pass structures + in registers. + + * expr.h (PRETEND_OUTGOING_VARARGS_NAMED): Provide default definition. + * function.c (assign_parms): Honor PRETEND_OUTGOING_VARARGS_NAMED. + * calls.c (expand_call): Likewise. + + * sh.c (sh_expand_prologue): For TARGET_HITACHI, don't push varargs / + stdarg arguments. + * sh.h (CPP_SPEC): Add -D__HITACHI__ for -mhitachi. + (FUNCTION_ARG): For TARGET_HITACHI, don't pass unnamed + arguments in registers. + (PRETEND_OUTGOING_VARARGS_NAMED): Define. + * va-sh.h (entire file): If __HITACHI__ is defined, use sh[123] + flavor varargs. + +Thu Feb 25 14:32:40 1999 Kaveh R. Ghazi + + * cse.c (dump_class): Revert last change and make the prototype + extern. + +Thu Feb 25 19:13:42 1999 J"orn Rennecke + + * rtl.h (insn_first_p): Don't declare. + * rtlanal.c (insn_first_p): Delete. + * loop.c (loop_insn_first_p): Faster implementation. + +Thu Feb 25 10:44:35 1999 Richard Earnshaw (rearnsha@arm.com) + + * arm.h (TARGET_SWITCHES): Delete deprecated switches -m[236]. + (TARGET_3, TARGET_6): Delete. + (ARM_FLAG_ARM[36]): Delete. + (CPP_CPU_ARCH_SPEC): No need to handle -m[236] any more. + (CC1_SPEC): Don't expand -m[236] into new equivalents. + (CPP_APCS_PC_SPEC): No need to handle -m[236] any more. + * arm.c (arm_override_options): Delete warnings about deprecated + options -m[236]. + + * arm.c (arm_finalize_pic): Build the label into the special pic + adjustment insn instead of issuing it separately. + * arm.md (pic_add_dot_plus_eight): Rework to contain the label + that is needed. + + * arm.md (*zeroextractqi_compare0_scratch): Delete. + (*ne_zeroextractsi): New pattern. + +Thu Feb 25 18:40:06 1999 J"orn Rennecke + + * stmt.c (expand_end_loop): Grok code emitted by + expand_exit_loop_if_false. + +Thu Feb 25 10:17:32 1999 Nick Clifton + + * config/arm/arm.c (return_in_memory): Float fields in unions + force a return in memory. + (load_multiple_sequence): Add comment explaining why two LDR + instructions can be better than an LDMIA instruction. + + * config/arm/arm.h (TARGET_SHORT_BY_BYTES): Add comment + describing the real meaning of this option. + (FIXED_REGISTERS): Default r10 to not-fixed. + (CALL_USED_REGISTERS): Default r10 to not-call-used. + (SUBTARGET_CONDITIONAL_REGISTER_USAGE): If not defined, define + as empty. + (CONDITIONAL_REGISTER_USAGE): Fix r10 if TARGET_APCS_STACK is + true. Invoke SUBTARGET_CONDITIONAL_REGISTER_USAGE after + performing other checks. + + * config/arm/arm.md (zero_extendhisi2): Undo previous change. + (extendhisi2): Undo previous change. + Also add comments describing why TARGET_SHORT_BY_BYTES can be + ignored for armv4(t) architectures. + + * config/arm/riscix.h (SUBTARGET_CONDITIONAL_REGISTER_USAGE): + Define to fix r10. + + * config/arm/riscix1-1.h + (SUBTARGET_CONDITIONAL_REGISTER_USAGE): Define to fix r10. + +Thu Feb 25 12:09:04 1999 Kaveh R. Ghazi + + * cse.c (dump_class): Make the function definition static to match + the prototype. + +Wed Feb 24 17:47:28 1999 Jim Wilson + + * dbxout.c (gstab.h): Use if CROSS_COMPILE. + + * dwarf2out.c (add_location_or_const_value_attribute): Add big + endian correction for parms passed in regs but living on the stack. + +Wed Feb 24 14:03:54 1999 Jeffrey A Law (law@cygnus.com) + + * calls.c (initialize_argument_information): New function extracted + from expand_call. + (expand_call): Use initialize_argument_information. Remove variables + which are no longer used due to cleanups. + + * calls.c (compute_argument_block_size): New function, extracted from + expand_calls. + (expand_calls): Use compute_argument_block_size. Delete + original_args_size, use unadjusted_args_size instead. + + * calls.c (precompute_arguments): New function, extracted from + expand_call. + (expand_call): Use precompute_arguments. + + * calls.c (finalize_must_preallocate): New function, extracted from + expand_call. + (expand_call): Use finalize_must_preallocate. + + * calls.c (store_one_arg): Mark "variable_size" as possibly unused. + + * regclass.c (record_reg_classes, case 'p'): Set classes appropriately. + An alternative always fails if it needs a pseudo and no suitable + register class can be found. + +Wed Feb 24 19:47:56 1999 J"orn Rennecke + + * loop.h (loop_insn_first_p): Declare. + * loop.c (loop_insn_first_p): No longer static. + * unroll.c (iteration_info): Fix comparison to + reg_iv_type->num_elements. + Before accessing reg_biv_class, check index against + max_reg_before_loop. + Fix and enable code for giv iterators. + (loop_iterations): Compare with reg_iv_type->num_elements instead + of with max_reg_before_loop. + +Wed Feb 24 19:17:11 1999 J"orn Rennecke + + * unroll.c (unroll_loop): Avoid out-of-bounds index for local_regno. + +Wed Feb 24 11:26:41 1999 Vladimir N. Makarov + + * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Don't use + PIC_OFFSET_TABLE_REGNUM for register allocation when -fPIC. + +Tue Feb 23 16:24:19 1999 Marc Lehmann + + * config/i386/i386.md: Fix typo. + +Mon Feb 22 19:36:33 1999 Andrew Cagney + + * config/mips/mips.c (mips_debugger_offset): When TARGET_MIPS16 && + frame_pointer_needed adjust frame size. + (function_prologue): Don't MIPS16 .mask GPOFFSET. Already adjusted + in .frame pseudo-op. + Frm Jim Wilson : + * mips.c (function_prologue): Adjust frame size in .frame pseudo-op + when TARGET_MIPS16 && frame_pointer_needed. + +1999-02-22 Nick Clifton + + * config/arm/arm.h: Add TARGET_CPU_strongarm1100. + Add -mno-sched command line switch to disable scheduling of + instructions into the function's prologue. + (enum processor_type): Remove. + (TARGET_OPTIONS): Add "fpe=" option to match documentation. + (struct arm_cpu_select): Replace 'set_tune_p' and 'set_arch_p' + fields with 'processors' field. + (CONDITIONAL_REGISTER_USAGE): Allow r10 to be used if stack + checking is not enabled. + (RETURN_IN_MEMORY): Always call arm_return_in_memory. + + * config/arm/arm.c (arm_cpu): Remove. + (tune_flags): Remove. + (arm_is_strong): New variable: true iff the target processor is a + StrongARM. + (arm_is_6_or_7): New variable: true iff the target processor is an + ARM6 or and ARM7. + (arm_select): Fields reorganized. + (struct processors): processor_type field removed. + (all_procs): Remove. + (all_cores): New array: Definitions of all known ARM cpu cores. + (all_architectures): New array: Definitions of all known ARM + architectures. + (streq): New macro. + (FL_SCHED): New processor flag: processor required load + scheduling. + (FL_STRONG): New processor flag: processor is a StrongARM. + (arm_override_options): Reorganized to make code clearer. + (use_return_insn): Test for "not (TARGET_APCS and + frame_pointer_needed)". + (arm_return_in_memory): Improve handling of structures. + + * config/arm/arm.md: Remove "cpu" attribute. Replace with + "is_strongarm" and "is_arm_6_or_7" attributes. + (zero_extendhisi2): Check for TARGET_SHORT_BY_BYTES before + arm_arch4. + (extendhisi2): Check for TARGET_SHORT_BY_BYTES before arm_arch4. + + * invoke.texi (ARM Options): Document -mtune= and -mfp= options. + +1999-02-22 Philip Blundell + + * config/arm/linux-gas.h (INITIALIZE_TRAMPOLINE): Replace default + definition with one including cache synchronization. + (CLEAR_INSN_CACHE): Correct syscall number and enable definition. + Move definition of inhibit_libc to... + * config/arm/xm-linux.h: ... here. + + * config/arm/t-linux: Disable multilib configurations since the + only effect for most people is to cause builds to fail. + + * config/arm/elf.h (ASM_FILE_START): Add .file directive. + (ASM_SPEC): Translate -mapcs-float to -mfloat for the assembler. + + * config/arm/linux-elf.h (DEFAULT_VTABLE_THUNKS): Define. + (HANDLE_SYSV_PRAGMA): Likewise. + (LIB_SPEC): Copy definition from generic Linux files. + (LIBGCC_SPEC): Include -lfloat if -msoft-float was given. + (FP_DEFAULT): Set to SOFT3 on 32-bit targets. + (DWARF2_DEBUGGING_INFO): Define. + (PREFERRED_DEBUGGING_TYPE): Define as DBX_DEBUG. + +Mon Feb 22 16:54:18 1999 Andrew MacLeod + + * loop.c (libcall_other_regs): Make extern. + * rtl.h (find_last_value): Add parameter to prototype. + (libcall_other_reg): Add extern declaration. + * rtlanal.c (find_last_value): Add another parameter to allow + a definition using a hardware register to be found as well. + +Mon Feb 22 13:33:47 1999 Mark Mitchell + + * cse.c (dump_class): New function. + (invalidate_memory): Fix typo in comment. + * function.c (temp_slot): Add an alias set field. + (assign_stack_temp): Only reuse slots if they will have the + same alias set as before. + (combine_temp_slots): Don't combine if -fstrict-aliasing; + that's unsafe. + * rtl.c (copy_rtx): Copy all the flags (in particular, + MEM_SCALAR_P). + +Mon Feb 22 14:13:23 1999 Vladimir N. Makarov + + * configure.in (i[34567]86-*-linux-gnu*, + i[34567]86-*-linux-gnulibc1, i[34567]86-*-linux-gnuaout*, + i[34567]86-*-linux-gnuoldld*): Use fixinc.x86-linux-gnu as + fixincludes. + + * configure: Rebuilt. + + * fixinc.x86-linux-gnu: New script for fixing asm-statements bug + on x86 linux. + + * fixinc/fixinc.x86-linux-gnu: Copy of the previous one. + + * fixinc/mkfixinc.sh (i[34567]86-*-linux-gnu*, + i[34567]86-*-linux-gnulibc1, i[34567]86-*-linux-gnuaout*, + i[34567]86-*-linux-gnuoldld*): Use fixinc.x86-linux-gnu as + fixincludes. + +Mon Feb 22 08:55:05 1999 Ovidiu Predescu + + * objc/objc-act.c (encode_type): Temporary revert to the old + behavior of encoding types as the new one seems to break the + encoding of bitfields. + +Mon Feb 22 11:40:44 1999 Craig Burley +Sat Feb 20 09:59:36 1999 Craig Burley + + * Makefile.in (all.internal, all.cross): Depend on `doc' + target, to ensure docs get made before installation. + + Decrease spurious warnings from -fsyntax-only: + * stmt.c (expand_expr_stmt): Expand expr even when -fsyntax-only. + +Mon Feb 22 10:55:00 1999 Gavin Romig-Koch + + * c-lex.c (yylex): Replace warning about integer constants being + larger than long-longs, with a warning about integer constants + being larger than the largest target integer. + +Mon Feb 22 08:35:38 1999 Craig Burley + + Fix -fsyntax-only ICEs: + * varasm.c (assemble_zeros, assemble_variable, + output_constant_def): Do nothing when -fsyntax-only. + +Fri Feb 19 18:18:56 1999 Don Bowman + + * configure.in (mips*-*-vxworks*): Enable gthreads vxworks support. + * configure: Rebuilt. + +Sun Feb 21 20:34:44 1999 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Sun Feb 21 20:35:10 1999 Jeffrey A Law (law@cygnus.com) + + * config/aoutos.h (ASM_OUTPUT_CONSTRUCTOR): Delete. + (ASM_OUTPUT_DESTRUCTOR, ASM_OUTPUT_GC_ENTRY): Likewise. + * tm.texi: Update docs for constructors and destructors. + +Sun Feb 21 17:11:18 1999 Richard Henderson + + * genattrtab.c (check_attr_value): Allow negative const_int if + negative_ok. Accept integral arithmetic operators. Accept + direct references to other attributes. Accept symbol_ref in + non-constant attributes. + (max_attr_value): Add new argument `unknownp'. Update all callers. + (or_attr_value): Likewise. + (simplify_knowing): Don't optimize if max_attr_value unknown. + (write_length_unit_log): Likewise with or_attr_value. + (find_and_mark_used_attributes): Don't fallthru case. + (write_attr_set): Pass thru all non-cond expressions. + (write_attr_value): Handle symbol_ref, attr, and arithmetic. + +Sun Feb 21 13:16:44 1999 Michael Hayes + + * regmove.c (discover_flags_reg): Use word_mode instead of SImode. + +Sun Feb 21 13:15:40 1999 Richard Henderson + + * regmove.c (discover_flags_reg): Remove cc0 code. + (mark_flags_life_zones) [HAVE_cc0]: Force use of cc0; bail if + a potential flags register was identified. + +Sat Feb 20 16:16:07 1999 Franz Sirl + + * rs6000.md (scc plus ltu): Fix typo in last change. + +Sat Feb 20 09:08:44 1999 Richard Earnshaw (rearnsha@arm.com) + + * xm-arm.h (HOST_BITS_PER_LONGLONG): Define. + +Fri Feb 19 23:02:02 1999 Richard Henderson + + * regmove.c (discover_flags_reg): New function. + (flags_set_1, mark_flags_life_zones): New functions. + (regmove_optimize): Call them. + (fixup_match_1): Use insn modes rather than sets_cc0_p. + +Fri Feb 19 22:47:01 1999 J"orn Rennecke + + * rtlanal.c (insn_first_p): Fix return value for insn == reference. + + * loop.c (strength_reduce, check_final_value, check_dbra_loop): + Use loop_insn_first_p. + +Fri Feb 19 15:49:26 1999 Michael Meissner + David Edelsohn + + * rs6000.md (scc plus eq): Fix output template. + (scc plus ltu): Fix output template and collapse variants + correcting early clobbers. + (scc plus geu): Fix output template. + (scc plus gt): Fix output template. + (scc plus gtu): Fix output template and collapse variants. + +Fri Feb 19 15:43:59 1999 Kaveh R. Ghazi + + * cppinit.c (print_help): Remove unescaped newline in string. + +Fri Feb 19 19:55:06 1999 J"orn Rennecke + + * loop.c (strength_reduce): Check for intervening jumps when + converting biv increment to giv. + +Thu Feb 18 16:36:58 1999 Per Bothner + + * tree.def (TRY_FINALLY_EXPR, GOTO_SUBROUTINE_EXPR): New tree nodes, + * expr.c (expand_expr): Support new tree nodes. + +Fri Feb 19 10:17:56 1999 Andreas Schwab + + * config/m68k/m68k.c (m68k_align_loops_string, + m68k_align_jumps_string, m68k_align_funcs_string): Add const. + * config/m68k/m68k.h (m68k_align_loops_string, + m68k_align_jumps_string, m68k_align_funcs_string): Likewise. + +Thu Feb 18 23:28:35 1999 Kaveh R. Ghazi + + * bitmap.c (bitmap_print): Qualify a char* with the `const' keyword. + + * bitmap.h (bitmap_print): Likewise. + + * c-decl.c (builtin_function, grokdeclarator, grokfield): Likewise. + + * c-lang.c (build_objc_string): Likewise. + + * c-lex.c (yyerror, extend_token_buffer): Likewise. Don't include + limits.h or ctype.h. Remove unused variable `p'. + + * c-lex.h (yyerror): Qualify a char* with the `const' keyword. + + * c-pragma.c (handle_pragma_token): Likewise. + + * c-pragma.h (handle_pragma_token): Likewise. + + * c-tree.h (build_objc_string, builtin_function, grokfield, + build_indirect_ref, lvalue_or_else, readonly_warning, error_init, + pedwarn_init): Likewise. + + * c-typeck.c (convert_for_assignment, warn_for_assignment, + push_string, warning_init, incomplete_type_error, + build_indirect_ref, lvalue_or_else, readonly_warning, + build_c_cast, spelling, push_member_name, print_spelling, + error_init, pedwarn_init, start_init): Likewise. + + * objc/objc-act.c (build_objc_string): Likewise. + + * print-tree.c (print_node_brief, print_node): Likewise. + + * tree.h (lvalue_or_else, print_node, print_node_brief): Likewise. + +Thu Feb 18 20:44:21 1999 David Edelsohn + + * regclass.c (record_reg_classes): Correctly handle 'p' constraint. + +Thu Feb 18 19:59:37 1999 Marc Espie + + * configure.in :Handle OpenBSD platforms. + * configure: Rebuilt. + * config/openbsd.h: New file. + * config/xm-openbsd.h: New file. + * config/t-openbsd: New file. + * config/t-openbsd-thread: New file. + +Thu Feb 18 18:47:09 1999 Jeffrey A Law (law@cygnus.com) + + * function.c (assign_stack_temp_for_type): Round SIZE before calling + assign_stack_local for BLKmode slots. + +Fri Feb 19 01:45:06 1999 J"orn Rennecke + + * loop.c (strength_reduce): For derived givs, replace the + giv this was derived from with its new_reg. + (recombine_givs): Don't set new_reg for derived giv. + And don't print it, print SUM instead. + +Thu Feb 18 15:52:49 1999 Jim Wilson + + * m68kelf.h (ASM_RETURN_CASE_JUMP): Add 5200 support. + +1999-02-18 Zack Weinberg + + * cpplib.c: Kill define of STDC_VALUE. Don't include output.h + or prefix.h. Change CPP_IS_MACRO_BUFFER to not refer to + macro_cleanup. + (GET_ENV_PATH_LIST, PATH_SEPARATOR, STANDARD_INCLUDE_DIR, + predefs, SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE, + CPP_WCHAR_TYPE, USER_LABEL_PREFIX, REGISTER_PREFIX, struct + cpp_pending, version_string, struct default_include, + include_defaults_array, path_include, cpp_options_init, + dump_special_to_buffer, initialize_builtins, cpp_start_read, + cpp_reader_init, nreverse_pending, push_pending, print_help, + cpp_handle_option, cpp_handle_options, cpp_finish, + cpp_cleanup): Move to cppinit.c. + (macro_cleanup, struct arglist, collect_expansion, + create_definition, compare_defs, comp_def_part, ARG_BASE, + struct argdata, macarg, change_newlines, timestamp, + monthnames, special_symbol, unsafe_chars, macroexpand, + push_macro_expansion): Move to cpphash.c. + (quote_string, check_macro_name, cpp_expand_to_buffer, + output_line_command, cpp_undef): Export. + (null_underflow, null_cleanup, handle_directive): Make static. + + * cpplib.h: Prototype now-exported functions. Adjust decls of + syntax tables so we can include cpplib.h in cppinit.c. + * cpphash.h: Prototype all functions exported by cpphash.c. + * cppinit.c: Make syntax tables initialized data if possible + (uses GCC designated-initializer extension). + * cppexp.c: Make cpp_lex static. + * Makefile.in: Move -D switches for the various include dirs + from cpplib.o rule to cppinit.o rule. Adjust dependencies. + +Thu Feb 18 13:15:56 1999 Marc Espie + + * alpha/openbsd.h: New file. + * alpha/xm-openbsd.h: New file. + * sparc/openbsd.h: New file. + * sparc/xm-openbsd.h: New file. + * m68k/openbsd.h: New file. + * m68k/xm-openbsd.h: New file. + * i386/openbsd.h: New file, originally from netbsd. + * i386/xm-openbsd.h: New file. + +1999-02-17 Zack Weinberg + + * Makefile.in: Correct dependencies for cpplib object files. + +Wed Feb 17 14:04:18 1999 Michael Meissner + + * rs6000.md ({add,sub}si3 `.'): Add alternatives to use CR other + than cr0. + +Wed Feb 17 16:59:28 1999 J"orn Rennecke + + * loop.c (strength_reduce): Don't move giv insn for biv turned giv + below scan_start. + +Wed Feb 17 10:56:24 1999 Kaveh R. Ghazi + + * tree.c (tree_node_kind_names, print_obstack_name, + get_identifier, maybe_get_identifier, build_string, + build_expr_wfl, is_attribute_p, lookup_attribute, + print_obstack_statistics, get_file_function_name_long, tree_check, + tree_class_check, expr_check): Qualify a char* with the `const' + keyword. + + * tree.h (get_identifier, maybe_get_identifier, build_string, + build_expr_wfl, is_attribute_p, lookup_attribute, + print_obstack_statistics, print_obstack_name, tree_check, + tree_class_check, expr_check): Likewise. + +Tue Feb 16 21:29:38 1999 Jeffrey A Law (law@cygnus.com) + + * i386/freebsd-elf.h, i386/gas.h, i386/linux.h: Fix minor spacing + errors. + + * calls.c (store_one_arg): Mark any slots used for the argument + as in-use immediately after we're done saving any slots which + will be overwritten by this argument. + +Tue Feb 16 21:02:07 1999 Anton Hartl + + * rs6000.md (call_value): Fix typo. + +Wed Feb 17 01:29:07 1999 J"orn Rennecke + + * loop.c (strength_reduce): Calculate maybe_dead before + calling recombine_givs. + +Wed Feb 17 00:43:12 1999 J"orn Rennecke + + * loop.c (strength_reduce): Dump biv increment -> giv conversions. + +Tue Feb 16 15:31:39 1999 Ovidiu Predescu + + * objc/objc-act.c (encode_type): Encode the type instead of + encoding the mode of the type (patch from Richard Frith-Macdonald + ). + +Tue Feb 16 10:53:51 1999 Richard Earnshaw (rearnsha@arm.com) + + * config/arm/arm.md (*zeroextractqi_compare0_scratch): Re-add load + instruction killed in previous change. Simplify mask generation. + (*zeroextractsi_compare0_scratch): Simplify mask generation. + +Tue Feb 16 09:52:26 1999 Nick Clifton + + * config/arm/arm.md (zeroextractqi_compare0_scratch): Ensure that + bitfield does not overflow a byte boundary. + +Tue Feb 16 01:37:33 1999 Charles G Waldman + + * c-common.c (shorten_compare): Get the min/max value from the + underlying type of an enumeration, not the enumerated type itself. + +Mon Feb 15 23:04:48 1999 Jeffrey A Law (law@cygnus.com) + + * jump.c: Include insn-attr.h. + (delete_computation): If reload has completed and insn scheduling + after reload is enabled, then do not depend on REG_DEAD notes. + * Makefile.in (jump.o): Depend on insn-attr.h. + +Mon Feb 15 16:57:38 1999 Richard Henderson + + * i386.md (addsi3): Allow lea for any constant_p. + +1999-02-15 Zack Weinberg + + * toplev.c (documented_lang_options): Remove -fident and + -fnoident, which are now handled by the language independent + option parser. + +1999-02-15 Zack Weinberg + + * c-common.c (UNGETC [USE_CPPLIB=1]): Do nothing if c is EOF. + * c-lex.c: Likewise. + * cpplib.c (cpp_push_buffer, cpp_pop_buffer): Use a linked + list in malloced memory for the buffer stack. + (cpp_get_token): Don't pop the last buffer off the stack. + Calls after CPP_EOF has been returned produce CPP_EOF with no + state change. + (cpp_finish): Pop last buffer here. + (do_line): Don't free ip->last_nominal_fname if it is equal to + ip->fname. + (special_symbol): If a T_CONST is the empty string, push a + single `@ ' escape instead. + (macroexpand): Special symbol buffers have escapes too. + * cpplib.h (struct cpp_buffer): Remove unused fields, add prev + buffer pointer. + (struct cpp_reader): Remove buffer_stack. Add + buffer_stack_depth. + (CPP_PREV_BUFFER, CPP_NULL_BUFFER): Buffer stack is now a + linked list. + +Mon Feb 15 14:44:53 1999 Kaveh R. Ghazi + + * cccp.c: Don't define HOST_WIDE_INT. Replace all occurrences of + WIDE_INT with WIDEST_INT. + + * cexp.y: Likewise. + Don't define unsigned_HOST_WIDE_INT, CHAR_BIT or + HOST_BITS_PER_WIDE_INT. Replace occurrences of PRINTF_PROTO_1() + style with PVPROTO() ATTRIBUTE_PRINTF_1 style macros. Replace + occurrences of "unsigned_HOST" with "unsigned HOST". Provide a + definition of variable `c89' when compiling a test binary and set it. + + * system.h: Don't define the PRINTF_PROTO_* macros. + +Mon Feb 15 11:33:51 1999 Jeffrey A Law (law@cygnus.com) + + * loop.c (mark_loop_jump): Handle LO_SUM. If we encounter something + we do not understand, mark the loop and containing loops as invalid. + +Mon Feb 15 00:40:45 1999 J"orn Rennecke + + * alias.c (init_alias_analysis): Avoid self-referential value + when setting reg_known_value from REG_EQUAL notes. + +Sun Feb 14 23:12:10 1999 Richard Henderson + + * i386.c (legitimate_address_p): Verify modes of base and index. + +Sun Feb 14 23:01:28 1999 Richard Henderson + + * i386.c (legitimate_pic_address_disp_p): Remove static. + * i386.h (LEGITIMATE_PIC_OPERAND_P): Use it instead of + open-coding cases. + +Sun Feb 14 21:03:28 1999 Jeffrey A Law (law@cygnus.com) + + * except.c (start_catch_handler): Use emit_cmp_and_jump_insns. + * explow.c (probe_stack_range): Likewise. + * expmed.c (do_cmp_and_jump): Likewise. + * expr.c (store_expr, expand_expr, expand_builtin): Likewise. + (do_tablejump): Likewise. + * stmt.c (expand_expr_stmt, expand_end_case): Likewise. + (do_jump_if_equal, emit_case_nodes): Likewise. + * optabs.c (emit_cmp_and_jump_insns): Clarify comments. If UNSIGNEDP, + then convert comparison to an unsigned code before emitting the jump. + (expand_float, expand_fix): Use emit_cmp_and_jump_insns. + +Sun Feb 14 02:24:15 1999 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Sun Feb 14 01:15:04 1999 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Sun Feb 14 00:45:50 1999 Jeffrey A Law (law@cygnus.com) + + * loop.c: Disable recent loop changes. Temporary as Joern + continues to fix problems. + +Sat Feb 13 23:29:42 1999 Richard Henderson + + * loop.c (combine_givs_used_by_other): Delete. + (combine_givs_benefit_from): Delete. + (combine_givs): Deny combination of givs only used once. Simplify + code with the death of combine_givs_benefit_from. + +Sun Feb 14 11:24:05 1999 Michael Hayes + + * loop.c (scan_loop): Call reg_in_basic_block_p before + loop_reg_used_before_p. + +Sat Feb 13 05:32:00 1999 Richard Earnshaw (rearnsha@arm.com) + + * arm.md: Use gen_rtx_FOO instead of gen_rtx (FOO, ...). + * arm.h: Likewise. + * arm.c: Likewise. + + * arm.h (TARGET_OPTIONS): Reformat for clarity. + (GO_IF_LEGITIMATE_ADDRESS): When generating PIC, references to symbols + in the constant pool aren't valid. + (LEGITIMATE_PIC_OPERAND_P): Likewise. + + * arm.c: Include "system.h", not stdio.h and string.h. + +Fri Feb 12 13:06:28 1999 Jim Wilson + + * stmt.c (expand_return): Return if optimize_tail_recursion succeeded. + (optimize_tail_recursion): Change return type from void to int. + Add return statements. + * tree.h (optimize_tail_recursion): Change prototype to match. + +Fri Feb 12 21:09:51 1999 J"orn Rennecke + + * reload.c (find_reloads_subreg_address): New function, broken out of + find_reloads_toplev. + (find_reloads_toplev, find_reloads_address_1): Use it. + +Fri Feb 12 13:20:52 1999 Jeffrey A Law (law@cygnus.com) + + * h8300.md (zero_extendhisi2 H8/300 variant): Correctly handle + extending a CONST_INT. + + * h8300.md (peephole for combining memrefs): Delete incorrect peephole. + +Fri Feb 12 18:29:11 1999 J"orn Rennecke + + * loop.c (loop_insn_first_p, biv_elimination_giv_has_0_offset): + New functions. + (maybe_eliminate_biv_1): Use biv_elimination_giv_has_0_offset. + +Fri Feb 12 16:56:10 1999 J"orn Rennecke + + * loop.c (load_mems): Don't guess how to do a load / store, use + emit_move_insn. + +Fri Feb 12 09:24:26 1999 Kaveh R. Ghazi + + * system.h: Provide a definition for HOST_WIDEST_INT, etc. + +Fri Feb 12 23:37:26 1999 Michael Hayes + + * config/c4x/c4x.c (c4x_address_cost): Revert 9 Feb change. + +Fri Feb 12 00:51:26 1999 Jeffrey A Law (law@cygnus.com) + + * reload.c (find_reloads_address_1): Fix handling of an autoincremented + pseudo which is homed in the stack. + + * mips.c (save_restore_insns): Fix loop to save/restore FP registers. + (compute_frame_size): Change loop over FP regs to be consistent + with the loop in save_restore_insns. + +Thu Feb 11 17:38:40 1999 Jim Wilson + + * i960/i960.h (OVERRIDE_OPTIONS): Warn if -mlong-double-64 is used. + (LONG_DOUBLE_TYPE_SIZE): Undef then unconditionally define to 96. + +Thu Feb 11 15:11:35 1999 Jeffrey A Law (law@cygnus.com) + + * mn10200.md (bset); Re-enable. + +Thu Feb 11 15:20:49 1999 J"orn Rennecke + + * sh.md (is_sfunc): New attribute. + * sh.h (INSN_SETS_ARE_DELAYED, INSN_REFERENCES_ARE_DELAYED): Use it. + +Thu Feb 11 01:06:49 1999 Nathan Sidwell + + * fold-const.c (range_binop): Take account of the bounded nature + of fixed length arithmetic when comparing unbounded ranges. + +Thu Feb 11 00:08:17 1999 John Wehle (john@feith.com) + + * function.c (assign_stack_temp_for_type): Clear best_p + when an exact match is found. + + * i386.h (LOCAL_ALIGNMENT): Define. + * function.c (assign_stack_local, assign_outer_stack_local): Use it. + (assign_stack_temp_for_type): New function based on assign_stack_temp. + (assign_stack_temp): Call it. + (assign_temp): Use assign_stack_temp_for_type, not assign_stack_temp. + * stmt.c: Use assign_temp, not assign_stack_temp. + * tm.texi: Document LOCAL_ALIGNMENT. + +Wed Feb 10 23:28:28 1999 Jeffrey A Law (law@cygnus.com) + + * reorg.c: Finish deleting half-deleted comment. + +Wed Feb 10 17:12:21 1999 Jim Wilson + + * emit-rtl.c (operand_subword): Sign extend REAL_VALUE_TO_TARGET_SINGLE + result. + * final.c (split_double): Sign extend REAL_VALUE_TO_TARGET_DOUBLE + result. + * real.c (endian): Delete sign extension code. + * config/m32r/m32r.md (movsf_insn+1): REAL_VALUE_TO_TARGET_SINGLE call + replaced with operand_subword call. + +Wed Feb 10 15:16:39 1999 Richard Henderson + + * alpha.md (cmov compound patterns): Delete. Jump can now + create the correct constructs in the first place. + +Wed Feb 10 11:03:22 1999 Richard Henderson + + * configure.in (alphaev6*): Fix typo in target_cpu_default2. + +Wed Feb 10 13:59:18 1999 Dave Brolley + + * mbchar.c (local_mb_cur_max): Handle the case where MB_CUR_MAX is 0. + +Wed Feb 10 10:35:05 1999 Jim Wilson + + * tmp-emsgids.c: Delete. + +Wed Feb 10 09:57:08 1999 Mark Mitchell + + * rtlanal.c (for_each_rtx): Fix declaration to conform to GNU + coding standards. + +Wed Feb 10 10:09:41 1999 Jeffrey A Law (law@cygnus.com) + + * mn10200.md (bset, bclr): Operand 0 is a read/write operand. + + * reload1.c (reload_combine_note_store): Second argument is no + longer unused/ignored. Handle multi-register hard regs. + (move2add_note_store): Simplify. + +Wed Feb 10 10:05:23 1999 Mumit Khan + + * collect2.c (collect_execute): Remove cygwin-specific code. + +Tue Feb 9 17:27:29 1999 Nathan Sidwell + + * system.h (_, N_): Remove dummy i18n macros. + * protoize.c: Move inclusion of intl.h to after system.h. + * cexp.y: Include intl.h. + * cexp.c: Rebuilt. + +Tue Feb 9 16:52:22 1999 Mumit Khan + + * i386/cygwin.h (SUBTARGET_OVERRIDE_OPTIONS): New macro to ignore + fpic/fPIC for windows32 targets. + * i386/xm-cygwin.h (GET_ENV_PATH_LIST): Replace '\\' in windows32 + paths with '/'. + * i386/mingw32.h (CPP_SPEC): Define. + (CPP_PREDEFINES): Add MINGW32 version id. + * i386/crtdll.h (CPP_PREDEFINES): Likewise. + + * Makefile.in (collect2$(exeext)): Delete redundant dependency and + add missing exeext to target. + + * gcc.c (convert_filename): Handle null filename argument. + +Wed Feb 10 15:46:10 1999 Michael Hayes + + * config/c4x/c4x.md (*movhf_noclobber, *movhi_noclobber): Use + m constraint instead of QT. + +1999-02-09 Brendan Kehoe + + * cpplib.c (special_symbol): Move IP to be declared in function + scope, rather than individual case statements. + +1999-02-09 Zack Weinberg + + * cppfiles.c (finclude): Handle pipes properly under old BSD + derivatives. + +1999-02-09 Melissa O'Neill + + * system.h: Provide fallback definitions for S_ISCHR, + S_ISSOCK, S_ISFIFO, O_NONBLOCK, and O_NOCTTY. + +1999-02-09 Zack Weinberg + + * cpplib.c (do_define): Allow redefining __STDC__ with -D. + +1999-02-09 Jim Blandy + + * configure.in: For PowerPC configurations, accept "401", "ec603e", + "740", and "750" as valid arguments to --with-cpu. + * configure: Rebuilt. + +Tue Feb 9 00:00:14 1999 Mark Kettenis + + * configure.in (i[34567]86-*gnu*): Set float_format to i386. + * configure: Rebuilt. + +Mon Feb 8 22:38:24 1999 Jeffrey A Law (law@cygnus.com) + + * rs6000.md: Revert "alternate use of crs if cr0 not available" + patches from 01-22-1999, 01-24-1999, 01-26-1999, and 02-08-1999. + +Mon Feb 8 21:36:44 1999 Richard Henderson + + * output.h (current_function_has_computed_jump): Rename from + current_function_addresses_labels. + * function.h (struct function): Likewise for addresses_labels member. + * rtl.h (FUNCTION_FLAGS_HAS_COMPUTED_JUMP): Likewise. + * function.c (current_function_has_computed_jump): Likewise. + Update all references. + * integrate.c (function_cannot_inline_p): + Test current_function_has_computed_jump instead of addresses_labels. + (initialize_for_inline): Likewise save. + (output_inline_function): Likewise restore. + + * expr.c (expand_expr): Don't reference addresses_labels variables. + * stmt.c (expand_computed_goto): Set has_computed_jump. + +1999-02-08 Michael Meissner + + This is being installed only to get it into the repository to help + with the revert, resubmit & review process for the massive rs6000.md + changes. + * rs6000.md (andsi3_internal1 splitter): Don't split if using the + rlwinm instruction. + (anddi3_internal1): Likewise. + (andsi3_internal{2,3}): Correct some insn lengths. + (anddi3*): Restore missing TARGET_POWERPC64, and don't emit old + mnemonics. + +Mon Feb 8 21:31:06 1999 Richard Henderson + + * loop.c (reg_single_usage): New file-scope variable ... + (scan_loop): ... moved out of here. Always initialize. + Test loop_has_call instead of reg_single_usage not zero. + Free reg_single_usage after strength reduction. + (count_loop_regs_set): Assume single_usage nonzero. + (combine_givs_used_by_other): Test reg_single_usage. + (load_mems_and_recount_loop_regs_set): Remove reg_single_usage + as a parameter. Assume nonzero. + +1999-02-08 Zack Weinberg + + * cpplib.c (special_symbol): Rewrite. Don't copy things + multiple times. Handle __STDC__ specially. T_CONST + indicates a constant /string/. Don't handle T_*_TYPE and + T_SPEC_DEFINED. Use cpp_buf_line_and_col instead of + adjust_position. Determine the file buffer only if needed. + (initialize_builtins): Handle __SIZE_TYPE__, + __PTRDIFF_TYPE__, __WCHAR_TYPE__, __USER_LABEL_PREFIX__, and + __REGISTER_PREFIX__ with T_CONST special hashtab entries. + Don't provide __OBJC__; the driver does that. Provide + __STDC_VERSION__, using T_CONST. Use T_STDC for + __STDC__. Give install the length of all symbols defined. + (eval_if_expression): Drop code to insert and remove the + "defined" special symbol. + + * cpplib.h: Remove SELF_DIR_DUMMY (no longer used). Remove + T_*_TYPE and T_SPEC_DEFINED from enum node_type; add T_STDC. + + * cpphash.c (install): Drop the `ivalue' parameter. Constify + the `value' parameter. All callers changed. + * cpphash.h (install): Change prototype to match. + (union hashval): Remove `ival' member. + * cppexp.c (cpp_lex): Handle `defined' here. + +Mon Feb 8 17:29:42 1999 Jeffrey A Law (law@cygnus.com) + + * pa.h (EXTRA_CONSTRAINT): Fix comment. + +Mon Feb 8 18:57:45 1999 Vladimir N. Makarov + + * c-typeck.c (check_init_type_bitfields): Use nonincremental + initialization of unions whose first member is a bitfield. + Remove unnecessary code for checking the declaration mode + after DECL_C_BIT_FIELD. + + * varasm.c (output_constructor): Additional comment about the + constructor of bitfield union initialization. + +Tue Feb 9 11:55:04 1999 Michael Hayes + + * config/c4x/c4x.md (*movhi_stik): New pattern. + (movhi): Allow some immediate constants to be directly + stored in memory. + +Tue Feb 9 11:34:15 1999 Michael Hayes + + * config/c4x/c4x.md (all call patterns): Add constraints "Ur". + (call, call_value): Force address into a register if not valid + for a call instruction. + (load_immed_address): Emit a USE of the SYMBOL_REF that is + forced into memory. + * config/c4x/c4x.c (c4x_print_operand): Fix 'C' and 'U' modifiers. + +Tue Feb 9 11:08:41 1999 Michael Hayes + + * config/c4x/c4x.c (call_address_operand, symbolic_address_operand): + Rename from call_operand and symbolic_operand respectively. All + callers changed. + * config/c4x/c4x.md (call_address_operand, symbolic_address_operand): + Likewise. + * config/c4x/c4x.h (call_address_operand, symbolic_address_operand): + Likewise. + (PREDICATE_CODES): Allow CONST, LABEL_REF for call_address_operand. + +Tue Feb 9 10:52:27 1999 Michael Hayes + + * config/c4x/c4x.c (c4x_legitimize_address): Don't generate a + LO_SUM address for HImode or HFmode but instead force address into + a register so that it is offsettable. + (c4x_emit_move_sequence): Handle LO_SUM immediate address. + +Tue Feb 9 10:46:42 1999 Michael Hayes + + * config/c4x/c4x.c (c4x_address_cost): Return cost of 1 for + REG+REG addressing if strength reduction enabled. + +Tue Feb 9 10:10:31 1999 Michael Hayes + + * config/c4x/t-c4x (LIBGCC2_CFLAGS): Delete. + (TARGET_LIBGCC2_CFLAGS): Define. + +1999-02-08 Nick Clifton + + * config/v850/v850.md: Replace \\n\\t with \\; + + * config/v850/v850.md: Enforce TARGET_LONG_CALLS option. + * config/v850/v850.c (construct_restore_jr, construct_save_jarl): + Enforce TARGET_LONG_CALLS option. + +Mon Feb 8 11:43:07 1999 Donn Terry + + * real.c (PUT_REAL) [XFmode]: Zero the balance of the structure. + +Mon Feb 8 11:37:24 1999 Marc Espie (espie@cvs.openbsd.org) + + * m88k/t-luna-gas: Remove bash dependency. + +Mon Feb 8 11:34:44 1999 Graham + + * collect2.c (xrealloc): Fix typo in last change. + +Mon Feb 8 09:13:38 1999 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Sun Feb 7 22:18:42 1999 Robert Lipe + + * tree.h (TYPE_CHECK): Make it clear to the preprocessor + that we do not want macro replacement within a character constant. + (TYPE_CHECK1): Likewise. + +Sun Feb 7 15:37:10 1999 Jason Merrill + + * tree.h (DECL_P): New macro. + +Sun Feb 7 01:15:04 1999 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Sat Feb 6 18:14:46 1999 Jeffrey A Law (law@cygnus.com) + + * mn10300.md (reload_insi): Do not earlyclobber the output operand. + + * README.g77, gcc.c, gcc.texi: Update email addresses. + * invoke.texi system.h: Likewise. + +Sat Feb 6 11:04:08 1999 Jim Wilson + + * unroll.c (find_splittable_givs): After express_from, call replace_rtx + to convert dest_reg to new_reg. + +Sat Feb 6 10:31:35 1999 Jeffrey A Law (law@cygnus.com) + + * reload1.c (reload_combine_note_store): Be more careful with + STRICT_LOW_PART, ZERO_EXTRACT and SIGN_EXTRACT. + (move2add_note_store): Likewise. + +Sat Feb 6 10:18:01 1999 Kaveh R. Ghazi + + * cppfiles.c (read_and_prescan): Cast the result of `xrealloc' to + U_CHAR* when assigning to one. Ensure the values of a ?: operator + have the same type. + + * cppinit.c (initialize_char_syntax): Use K&R function definition. + +Sat Feb 6 11:17:03 1999 Richard Earnshaw + + Support for ARM9 + * config/arm/arm.c (all_procs): Add arm9 and arm9tdmi. + * config/arm/arm.h ((TARGET_CPU_arm9, TARGET_CPUD_arm9tdmi): Define. + (TARGET_CPU_DEFAULT): Rework to support ARM9. + (CPP_CPU_ARCH_SPEC): Likewise. + (enum processor_type): Likewise. + * config/arm/arm.md (attr cpu): Add arm9. + + General scheduling changes + * config/arm/arm.c (MAX_INSNS_SKIPPED): Delete. + (max_insns_skipped): New variable. + (arm_override_options): If generating hard floating point code for + the FPA, emit code for version 3. + When optimizing for space, don't synthesize constants. + Reword several flags based on the requested processor and optimization + level. + (use_return_insn): New argument iscond, all callers changed. Don't + use a return insn if it will be conditional and that would be + expensive; eg on StrongARM. + (arm_adjust_cost): Anti- and output- dependencies normally have no + cost. + (load_multiple_sequence): Newer ARMs don't benefit from ldm if + the sequence is short. + (final_prescan_insn): Use max_insns_skipped instead of + MAX_INSNS_SKIPPED. Note whether we will make a return instruction + conditional, and aviod this if it would be expensive. + * config/arm/arm.md (scheduling attributes and function units): + Rewrite to better describe ARM8, 9 and StrongARM. + + * config/arm/arm.md (*movhi_insn_littleend): Make op0 predicate + s_register_operand. + (*ifcompare_plus_move): Use arm_rhs_operand in place of + arm_rhsm_operand. Rework constraints. + (*if_plus_move): Likewise. + (*ifcompare_move_plus): Likewise. + (*if_move_plus): Likewise. + (*ifcompre_arith_move): Likewise. + (*if_arith_move): Likewise. + (*ifcompare_move_arith): Likewise. + (*if_move_arith): Likewise. + + * config/arm/xm-netbsd.h: Don't include arm/xm-arm.h. + +1999-02-05 Michael Meissner + + * loop.c (check_dbra_loop): A store using an address giv for which + we have no life information is not reversible. + +Fri Feb 5 17:08:01 1999 Dave Brolley + + * function.c (fixup_var_refs): Scan catch_clauses too. + +Fri Feb 5 11:49:49 1999 Benjamin Kosnik + + * c-common.c (decl_attributes): Fix reserved space for init_priority. + * tree.h (MAX_RESERVED_INIT_PRIORITY): New macro. + +Fri Feb 5 12:37:05 1999 Jeffrey A Law (law@cygnus.com) + + * loop.c (strength_reduce): Clear not_every_iteration when + passing the NOTE_INSN_LOOP_CONT note. + + * haifa-sched.c (add_dependence): Do not add a dependency on a + note. + +Fri Feb 5 10:55:43 1999 Nick Clifton + + * recog.c (split_block_insns): Only call update_flow_info if + instruction scheduling is enabled. + +1999-02-05 Zack Weinberg + + * Makefile.in (gen-protos): Use libcpp.a like everyone else. + +Fri Feb 5 07:09:29 1999 J"orn Rennecke + + * loop.c (first_loop_store_insn): New file-scope variable. + (prescan_loop): Set it. + (check_dbra_loop): Check if a store depends on a register + that is set after the store. + +Fri Feb 5 06:55:15 1999 J"orn Rennecke + + * unroll.c (entire file): Remove tabs / spaces at end of lines. + Replace spaces with tabs where appropriate. + +Thu Feb 4 15:12:41 1999 J"orn Rennecke + + * loop.c (scan_loop): New argument loop_cont. Changed caller. + (strength_reduce): New argument loop_cont. Changed caller. + Before clearing not_every_iteration after a label, check if + we are not already past LOOP_CONT. + +1999-02-04 Zack Weinberg + + * cpperror.c (cpp_print_containing_files): Fix formatting + bug induced by merge. + +1999-02-04 Zack Weinberg + + * cpplib.c (initialize_char_syntax): Move to cppinit.c. + (cpp_define): Remove redundant syntax checks. + (make_assertion): Rename cpp_assert, remove redundant syntax + checks, export. + (cpp_options_init): Don't init things to zero twice. + (cpp_expand_to_buffer): Use memcpy, not a char-by-char loop. + (do_include): Kill excessively verbose #import warning that + snuck back in in the gcc2 merge. + (convert_string): Removed. + (do_line): Rewrite with simple last-name-used cache instead of + private hashtable. + (cpp_start_read): Call initialize_char_syntax here, not... + (cpp_reader_init): ...here. + (cpp_handle_options): Support the -std switch. + * cpplib.h (cpp_buffer): Add last_nominal_fname member. + (cpp_options): Add c9x flag. + Declare all the is_* tables and trigraph table here, as const. + Prototype cpp_assert and initialize_char_syntax. + * cppinit.c: New file. + * cppfiles.c (read_and_prescan): Optimize. + * Makefile.in (LIBCPP_OBJS): Add cppinit.o. + +Thu Feb 4 10:46:30 1999 Gavin Romig-Koch + + * config/mips/mips.md ([u]divmodsi4,[u]divmoddi4,[u]divsi3,[u]divdi3, + [u]modsi3,[u]moddi3) : Don't copy the "zero" argument to a register + before calling gen_div_trap. + +Wed Feb 3 21:56:27 1999 Jeffrey A Law (law@cygnus.com) + + * configure.in (hppa1.1-*-*, hppa2*-*): Use symbolic value rather + than numeric value for target_cpu_default.. + * configure: Rebuilt. + +Wed Feb 3 21:55:56 1999 Marc Espie + + * Makefile.in (xgcc$(exeext)): Remove choose-temp, pexecute and + mkstemp. Get them from libiberty. + (COLLECT2_OBJS): Similarly for choose-temp, cplus-dem and mkstemp. + (PROTO_OBJS): Similarly for choose-temp, getopt, getopt1 and pexecute. + (cplus-dem.o, pexecute.o, choose-temp.o): Remove build rules. + (mkstemp.o, getopt1.o, getopt.o): Likewise. + + * pa-gas.h (TARGET_DEFAULT): Use symbolic values rather than numeric + values. + * pa-hpux.h (LINK_SPEC): Likewise. + * pa-hpux10.h (LINK_SPEC): Likewise. + * pa-hpux9.h (LINK_SPEC): Likewise. + * pa-osf.h (LINK_SPEC): Likewise. + * pa-pro.h (TARGET_DEFAULT): Likewise. + * pa1.h (TARGET_DEFAULT): Likewise. + * pa.h (MASK_*): New defines. + (TARGET_*): Use symbolic values rather than numeric values. + (TARGET_SWITCHES): Likewise. + (TARGET_DEFAULT): Likewise. + (CPP_SPEC): Likewise. + +Wed Feb 3 21:07:38 1999 Bernd Schmidt + + * reload1.c (reload_cse_regs_1): Undo Jan 16 patch. + * reload.c (find_reusable_reload): New function, broken out of + push_reload. Add code to verify that none of the involved + outputs are subject to earlyclobbers. + (push_reload): Break out new function find_reusable_reload. + Delete "register" keyword for IN, OUT args. + +Wed Feb 3 15:51:04 1999 Gavin Romig-Koch + + * config/mips/mips.c (true_reg_or_0_operand) : New function. + * config/mips/mips.h (PREDICATE_CODES): Add true_reg_or_0_operand. + * config/mips/mips.md (div_trap,div_trap_normal,div_trap_mips16): + Use true_reg_or_0_operand for div_trap. + +Wed Feb 3 20:44:59 1999 J"orn Rennecke + + * loop.h (express_from): Declare. + (struct induction): Replace derived flag with derived_from pointer. + * loop.c (strength_reduce, record_giv, recombine_givs): Likewise. + (express_from): No longer static. + * unroll.c (find_splittable_givs): Replace derived with derived_from. + When processing an address giv with which another giv has been + combined that has also been derived from a third giv, handle like + having combined with the third giv. + Set splittable_regs_updates appropriately for derived givs. + +Wed Feb 3 15:26:58 1999 Gavin Romig-Koch + + * config/mips/mips.md (div_trap_mips16): Remove nop's after branches. + +Wed Feb 3 11:56:23 1999 Jeffrey A Law (law@cygnus.com) + + * pa.c (insn_sets_and_refs_are_delayed): New function. + * pa.h (INSN_SETS_ARE_DELAYED): Use it. + (INSN_REFERENCES_ARE_DELAYED): Likewise. + +Wed Feb 3 06:24:49 1999 Richard Earnshaw (rearnsha@arm.com) + + * config/arm/t-arm-elf (LIBGCC2_CFLAGS): Delete. + * config/arm/t-linux (LIBGCC2_CFLAGS): Delete. + (TARGET_LIBGCC2_CFLAGS): Define. + (LIBGCC2_DEBUG_CFLAGS): Define. + * config/arm/t-netbsd: Likewise. + * config/arm/t-semi: Likewise. + * config/arm/t-semiaof: Likewise. + * config/arm/t-riscix: Likewise. + +Wed Feb 3 10:59:07 1999 Andreas Schwab + + * config/m68k/m68k.c (print_operand_address): When printing a + SYMBOL_REF that ends in `.' put parentheses around it. + +Tue Feb 2 23:38:35 1999 David O'Brien + + * i386/freebsd*.h now allows '$' in label names and does not use the + PCC struct return method. + +Tue Feb 2 22:38:23 1999 Jim Wilson + + * Makefile.in: Change all uses of AR to AR_FOR_TARGET. Change all uses + of HOST_AR to AR. Likewise for AR_FLAGS, RANLIB, and RANLIB_TEST. + (RANLIB_TEST): Test to see if ranlib exists. Only test absolute file + names if host == target. + (HOST_AR, HOST_AR_FLAGS, HOST_RANLIB, HOST_RANLIB_TEST): Delete. + (AR_FLAGS_FOR_TARGET): Renamed from AR_FOR_TARGET_FLAGS. + (AR, AR_FLAGS, OLDAR, OLDAR_FLAGS, RANLIB, RANLIB_TEST): Delete rules + setting them to *_FOR_TARGET. + * cross-make (AR, AR_FLAGS, OLDAR, OLDAR_FLAGS, RANLIB, RANLIB_TEST): + Delete. + +Tue Feb 2 22:38:19 1999 Theodore Papadopoulo + + * toplev.h (read_integral_parameter): Declare. + * toplev.c (read_integral_parameter): New function. + +Fri Jan 29 21:00:56 1999 Bob Manson + + * resource.c, resource.h: New files. + * Makefile.in (OBJS): Add it. + + * haifa-sched.c (regno_use_in): Moved to rtlanal.c. + (split_block_insns): Moved to recog.c. + (update_flow_info): Make public. + * rtl.h: Declare them. + + * reorg.c: Moved the functions dealing with computing resource + usage to resource.c. + + * sched.c (regno_use_in): Moved to rtlanal.c. + (update_flow_info): Make public. + (schedule_insns): Use split_block_insns. + + * recog.c (split_block_insns): New function. + +Tue Feb 2 22:03:26 1999 David Edelsohn + + * rs6000/linux.h (LINK_START_DEFAULT_SPEC): Delete, unused. + (LINK_OS_DEFAULT_SPEC): Delete, unused. + +Tue Feb 2 20:29:34 1999 Catherine Moore + + * configure.in (arm-*-oabi): Support. + * configure: Regenerate. + * config/arm/unknown-elf-oabi.h: New file. + +Tue Feb 2 19:43:59 1999 Jeffrey A Law (law@cygnus.com) + + * i386.md (ashlsi3): Turn into a define_expand an anonymous pattern. + Make the anonymous pattern match when ! optimize_size. + (ashlsi3 size optimizer): New pattern. + + * intl/Makefile.in (uninstall): Add missing "; \". + +Tue Feb 2 18:21:23 1999 Stan Cox + + * sparc.h (TARGET_CPU_sparc86x): Added. TARGET_CPU_sparclite86x + synonym. + +Tue Feb 2 20:24:11 1999 J"orn Rennecke + + * loop.c (loop_optimize): Fix value max_uid_for_loop is reset + to after find_and_verify_loops call. + +Tue Feb 2 19:48:29 1999 J"orn Rennecke + + * (recombine_givs): Don't use a giv that's likely to be dead to + derive others. + + * loop.c (recombine_givs): Fix test for lifetime overlaps / loop + wrap around when deriving givs. + +Mon Feb 1 20:00:40 1999 Richard Henderson + + * recog.c (check_asm_operands): Treat indeterminate operand ok + results as success. Try harder to resolve a matching constraint. + * stmt.c (expand_asm_operands): Recognize when an output operand's + constraint does not allow memory. Treat indeterminate operand ok + results as failure. Try harder to resolve a matching constraint. + +Mon Feb 1 15:00:02 1999 Ken Raeburn + + Use varrays for constant-equivalence data: + + * varray.h (struct const_equiv_data): New type. + (union varray_data_tag): New element const_equiv. + (VARRAY_CONST_EQUIV_INIT, VARRAY_CONST_EQUIV): New macros. + (VARRAY_SIZE): New macro, returns number of elements. + * integrate.h: Include varray.h. + (struct inline_remap): Replace const_equiv_map, const_age_map and + const_equiv_map_size with a const_equiv_varray element. + (MAYBE_EXTEND_CONST_EQUIV_VARRAY): New macro; grows varray if + needed. + (SET_CONST_EQUIV_DATA): New macro; sets rtx and age fields + simultaneously, growing the varray if needed. + + * integrate.c (global_const_equiv_map, + global_const_equiv_map_size): Deleted, replaced by.... + (global_const_equiv_varray): New variable. + (expand_inline_function): References changed. + * integrate.h: Update declarations. + + * integrate.c (process_reg_parm, expand_inline_function, + copy_rtx_and_substitute, try_constants, subst_constants, + mark_stores): Use varray allocation and accessor macros, new + integrate.h macros, and global_const_equiv_varray. Don't + conditionalize non-NULL stores on array size; instead, expand the + array as needed. + * unroll.c (unroll_loop): Likewise. + + * unroll.c (unroll_loop): Initialize const_equiv_varray element to + zero. After allocating varray, always exit through bottom of + function, where it can be deallocated if needed. Don't explicitly + reallocate const_equiv_map storage; instead, just ensure the + varray has been initialized, and update the global reference. + +Mon Feb 1 09:40:25 1999 Kaveh R. Ghazi + + * system.h (inline, const): Handle these for stage2 (and later) gcc. + + * dwarf2out.c (inline): Don't define. + + * dwarfout.c (inline): Likewise. + +Sun Jan 31 22:04:37 1999 Richard Henderson + + * loop.c (recombine_givs): Dump recombination and derivation data. + +Sun Jan 31 20:34:29 1999 Zack Weinberg + + * flags.h: Declare flag_no_ident. + * toplev.c: Define flag_no_ident. Process -f(no-)ident here. + * c-tree.h: Don't declare flag_no_ident. + * c-decl.c: Don't define flag_no_ident. Don't process + -f(no-)ident switches here. + + * config/elfos.h (ASM_FILE_END): Output final .ident directive + only if !flag_no_ident. + * config/ptx4.h: Likewise. + * config/svr4.h: Likewise. + * config/alpha/elf.h: Likewise. + * config/arm/linux-elf.h: Likewise. + * config/i386/sco5.h: Likewise. + * config/i860/fx2800.h: Likewise. + * config/mips/gnu.h: Likewise. + * config/i386/osfrose.h: Likewise. + + * gcc.c (C specs): Map -Qn to -fno-ident. + * objc/lang-specs.h: Likewise. + +Mon Feb 1 10:52:07 1999 Michael Hayes + + * configure.in: Don't remove loop.o and unroll.o when + enable-haifa is selected. + * configure: Rebuilt. + +Sun Jan 31 13:22:02 1999 John Wehle (john@feith.com) + + * i386.md (movsicc, movhicc, movsfcc, movdfcc, + movxfcc, movdicc): Delete unconstrained alternatives. + * i386.c (output_fp_conditional_move, + output_int_conditional_move): Delete unused case. + +Sun Jan 31 01:15:04 1999 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Sun Jan 31 00:52:37 1999 Richard Henderson + + * alpha.md (mov patterns): Emit the assembler aliases mov and fmov + instead of bis and cpys. Combine alternatives where possible. + +Sat Jan 30 23:14:13 1999 Kaveh R. Ghazi + + * gcov.c (fnotice): Add missing FILE* parameter. + (function_summary): Fix format specifiers in calls to `fnotice'. + (output_data): Likewise. + + * toplev.c (fnotice): Constify char* parameter. + + * toplev.h (fnotice): Add prototype. + Wrap prototype with BUFSIZ to protect FILE* usage. + +Sun Jan 31 15:33:09 1999 Michael Hayes + + * config/c4x/c4x.h (RTX_COSTS): Explicitly define c4x costs. + +Sat Jan 30 08:27:23 1999 Jeffrey A Law (law@cygnus.com) + + * combine.c (distribute_notes): Handle REG_EH_REGION notes. + + * alias.c (fixed_scalar_and_varying_struct_p): Add "static" to + function definition. + (aliases_everything_p, write_dependence_p):Likewise. + + * install.texi: Fix merge lossages. + + * cccp.c (main): Only call setlocale (LC_MESSAGES, ...) if LC_MESSAGES + is defined. + * collect2.c (main): Likewise. + * cppmain.c (main): Likewise. + * gcc.c (main): Likewise. + * gcov.c (main): Likewise. + * protoize.c (main): Likewise. + * toplev.c (main): Likewise. + + * pa.md (parallel shift and shiftadd): Mark output of shift as an + earlyclobber. + + * loop.c: Disable recent loop changes. Temporary as Joern + continues to fix problems. + +Sat Jan 30 03:24:37 1999 J"orn Rennecke + + * loop.c (strength_reduce): Size reg_map according to reg_iv_type. + +Fri Jan 29 18:26:07 1999 Dave Brolley + + * emit-rtl.c (remove_insn): New function. + * rtl.h (remove_insn): Add prototype. + * function.c (reposition_prologue_and_epilogue_notes): Call remove_insn. + +Fri Jan 29 22:34:41 1999 J"orn Rennecke + + * loop.c (recombine_givs): Don't try to derive givs that have combined. + +Fri Jan 29 15:00:39 1999 Kaveh R. Ghazi + + * toplev.c (notice, fnotice): Check ANSI_PROTOTYPES, not __STDC__, + when declaring arguments and calling va_arg() to initialize them. + + * collect2.c (notice): Likewise. + + * loop.c (find_life_end): Use PROTO() macro in the prototype. + +Fri Jan 29 14:36:11 1999 Kaveh R. Ghazi + + * collect2.c (error): Fix typo in declaration. + + * cpperror.c (cpp_message): Likewise. + + * cpplib.c (cpp_warning): Likewise. + + * cpplib.h (cpp_notice): Use PVPROTO not VPROTO, also add + ATTRIBUTE_PRINTF_1. + + * toplev.c (error): Fix typo in declaration. + +Fri Jan 29 15:44:13 1999 J"orn Rennecke + + * loop.c (strength_reduce): Fix HAVE_cc0 handling when scanning + forward from cont dominator. + +Fri Jan 29 07:10:27 1999 Kaveh R. Ghazi + + * cccp.c (eprint_string): Constify a char*. + (notice): Likewise. Use PVPROTO not VPROTO, add ATTRIBUTE_PRINTF_1. + (vnotice): Constify a char*. + (error): Likewise. Use PVPROTO not VPROTO, add ATTRIBUTE_PRINTF_1. + (verror): Constify a char*. + (warning): Likewise. Use PVPROTO not VPROTO, add ATTRIBUTE_PRINTF_1. + (vwarning): Constify a char*. + (error_with_line): Likewise. Use PVPROTO not VPROTO, add + ATTRIBUTE_PRINTF_2. + (verror_with_line): Constify a char*. + (vwarning_with_line): Likewise. + (warning_with_line): Likewise. Use PVPROTO not VPROTO, add + ATTRIBUTE_PRINTF_2. + (pedwarn): Constify a char*. Use PVPROTO not VPROTO, add + ATTRIBUTE_PRINTF_1. + (pedwarn_with_line): Likewise with ATTRIBUTE_PRINTF_2. + (pedwarn_with_file_and_line): Likewise with ATTRIBUTE_PRINTF_4. + Also correct typo in parameter name declaration. + (make_assertion): Constify a char*. + (quote_string_for_make): Likewise. + (deps_output): Likewise. + (fatal): Likewise. Use PVPROTO not VPROTO, add + ATTRIBUTE_PRINTF_1. Use ATTRIBUTE_NORETURN not an explicit + "__attribute__ ((noreturn))". + (fancy_abort): Likewise for ATTRIBUTE_NORETURN. + (pfatal_with_name): Likewise. + (pipe_closed): Likewise. + (memory_full): Likewise. + +Fri Jan 29 00:14:55 1999 J"orn Rennecke + + * loop.c (strength_reduce): Grow set_in_loop / n_times_set / + may_not_optimize to proper size when converting biv increments + into givs. + If necessary, reallocate reg_iv_type / reg_iv_info before calling + recombine_givs. + +Thu Jan 28 23:24:08 1999 J"orn Rennecke + + * loop.c (recombine_givs): New parameter unroll_p. If set, don't + generate complex adds. Changed caller. + Don't generate adds that cost more than the original one. + (strength_reduce): Warning fixes. + +Thu Jan 28 09:41:11 1999 Jeffrey A Law (law@cygnus.com) + + * configure.in (hppa1.0-hp-hpux10*): Use t-pa. + * configure: Rebuilt. + +Wed Jan 27 23:39:53 1999 J"orn Rennecke + + * rtl.h (insn_first_p, no_jumps_between_p): Declare. + * rtlanal.c (insn_first_p, no_jumps_between_p): New function. + * loop.h (varray.h): Include. + (struct induction): Change combined_with to unsigned. + New members derived, ix and last_use. + (reg_iv_type, reg_iv_info): Now varray_type. All references changed. + (REG_IV_TYPE, REG_IV_INFO): Define. + (first_increment_giv, last_increment_giv): Declare. + * loop.c (loop_number_loop_cont): New static variable. + (loop_number_cont_dominator): Likewise. + (reg_iv_type, reg_iv_info): Now varray_type. + (first_increment_giv, last_increment_giv): New variables. + (compute_luids, verify_dominator, find_life_end): New functions. + (cmp_recombine_givs_stats, recombine_givs): Likewise. + (loop_optimize): Allocate loop_number_loop_cont and + loop_number_cont_dominator. Use compute_luids. + (find_and_verify_loops): Initialize loop_number_loop_cont and + loop_number_cont_dominator. + (strength_reduce): Try to find bivs that can be expressed as givs + of another biv, and to convert biv increments into givs. + Call recombine_givs. Handle derived givs. + (record_biv): New argument location. All callers changed. + (record_giv): Initialize derived and last_use fields. + (basic_induction_var): New argument location. All callers changed. + (combine_givs): Don't combine a DEST_REG giv with a DEST_ADDR giv. + Increment combined_with instead of setting to 1. + * unroll.c (derived_regs): New static variable. + (unroll_loop): Initialize it. + Allocate local_regno according to max_reg_num. + (copy_loop_body): Cope with derived givs. + (find_splittable_givs): Check for Givs made from biv increments. + Set derived_regs for givs. + * Makefile.in (stmt.o, loop.o, unroll.o): Depend on loop.h . + +Wed Jan 27 19:31:36 1999 J"orn Rennecke + + * function.c (purge_addressof_1): Handle case when a register + has been used in a wider mode. + +1999-01-27 Bruce Korb + + * fixinc/fixincl.c, fixinc/server.[ch]: + Removed the last of the capitalized variable and proc names. + + * fixinc/server.c: Removed the process open code. + * fixinc/procopen.c: New file containing the proc open code. + * fixinc/inclhack.tpl: Added code to bypass a readability test + when a file is not present. A problem on some systems. + * fixinc/inclhack.sh, fixinc/fixincl.sh: Regenerated. + +Wed Jan 27 11:58:18 1999 Dave Brolley + + * cpplib.h (cpp_notice): Add prototype. + +Wed Jan 27 02:20:48 1999 Jeffrey A Law (law@cygnus.com) + + * Merge gcc2 snapshot 19980929. + + * cccp.c (PRINTF_PROTO): Remove. + (PRINTF_PROTO_{1,2,3,4}: Likewise. + * cexp.y: Likewise. + * system.h: Add PRINTF_PROTO and PRINTF_PROTO_{1,2,3,4}. + + * fix-header.c (cpp_file_lin_for_message): Delete. In libcpp. + (cpp_print_containing_files, v_cpp_message, cpp_message): Likewise. + (cpp_fatal, cpp-Pfatal_with_name): Likewise. + + * gen-protos.c (hashf): Delete in cpphash.o. + * gen-protos.c (hashf): Delete in cpphash.o. + + * expr.c: Do not merge SAVE_STACKAREA_MODE changes. + * expmed.c: Likewise. + * rs6000.md: Likewise. + + * rs6000.c, rs6000.md: Do not merge formatting changes yet. + +Wed Jan 27 01:13:42 1999 Richard Henderson + + * rs6000.c (input_operand): Don't expect CONST around CONSTANT_P_RTX. + * rs6000.md (movsi, movdi): Likewise. + +Tue Jan 26 13:31:38 1999 Jim Wilson + + * function.c (expand_function_end): Pass arg_pointer_save_area to + validize_mem before using it. Emit code into a sequence. + +Tue Jan 26 13:41:38 1999 David Edelsohn + + * rs6000.md (doz + set cr and or + set cr patterns): Add missing + '#' to split patterns. Correct indentation of some new patterns. + +1999-01-26 Zack Weinberg + + * cppfiles.c (safe_read): Deleted. + (read_and_prescan): New function, replaces safe_read, converts + and/or warns about trigraphs, silently converts odd line + terminators (\r, \n\r, \r\n). Warns about no newline at EOF. + (finclude): Use read_and_prescan; turn off nonblocking mode on + the input descriptor; remove file-size-examination and + no-newline-at-EOF gunk which is longer necessary; be more + careful about checking that we've been handed a legitimate + file to read (only real files, pipes, and ttys are acceptable). + * cpplib.h (cpp_options): Rename no_trigraphs flag to + `trigraphs' and invert its sense. + (trigraph_table): Declare. + (cpp_warning_with_line): Prototype. + * cpplib.c: Remove all references to trigraph_pcp. Define + trigraph_table; initialize it in initialize_char_syntax. Open + files in nonblocking mode. s/no_trigraphs/trigraphs/ + throughout, and invert sense. Put cpp_warning_with_line back + in and export it. + +Tue Jan 26 23:21:49 1999 Michael Hayes + + * config/c4x/c4x.h (COUNTER_REGS): New register class. + * config/c4x/c4x.md (*rptb_init): Change constraints. + (rptb_end): Emit alternate looping instructions if + RC register not allocated for loop counter. + (decrement_and_branch_on_count): Allow other registers + for loop counter. + +1999-01-25 Zack Weinberg + + * cppexp.c (struct arglist): Removed. + (parse_number): Use HOST_WIDE_INT for the accumulator. + Allow two `l' suffixes unless C89. Clean up. Make static. + (parse_charconst): New function broken out of cpp_lex. + Code cleaned up drastically. Don't use a token_buffer. + (token_buffer): Removed. + (cpp_lex): Don't call parse_number on a constant string. + Use parse_charconst. + (cpp_parse_expr): Properly handle an ERROR op returned by + cpp_lex. + +1999-01-25 Zack Weinberg + + * cpplib.c: Don't include signal.h, sys/times.h, or + sys/resource.h. Don't declare localtime. + (macroexpand): Handle special symbols here. + (push_macro_expansion): Chop off the trailing '@ ' if possible + here. + (cpp_get_token): Don't do either of the above two things here. + Move `string' label just after case '"' so that wide strings + don't crash the preprocessor. + +Sun Jan 24 20:13:45 1999 David Edelsohn + + * rs6000.md (left shift + set cr patterns): Add missing '#' to + split patterns. + (move register + set cr pattern): Likewise. + (movdi, !TARGET_POWERPC64 splitters): Add back in Jan. 15th patch, + inadvertently deleted. + +Sun Jan 24 08:07:59 1999 Jeffrey A Law (law@cygnus.com) + + * stmt.c (stmt_loop_nest_empty): New function. + * tree.h (stmt_loop_nest_empty): Declare it. + * rtl.def (CALL_PLACEHOLDER): New rtx code. + +Sun Jan 24 21:24:43 1999 Michael Hayes + + * config/c4x/c4x.c (c4x_emit_move_sequence, c4x_encode_section_info): + New functions. + (c4x_check_legit_addr): Remove USE and PLUS, allow + LO_SUM, and disable SYMBOL_REF, LABEL_REF, and CONST cases. + (c4x_legitimize_address): Penalize SYMBOL_REF, LABEL_REF, and + CONST cases. Add LO_SUM. + (c4x_print_operand): Modified 'C' and 'R' cases for calls. + Added 'U' case. Remove dependence on SYMBOL_REF_FLAG. + (c4x_print_operand_address): Handle LO_SUM. + (c4x_scan_for_ldp): Delete. Hooray! + (c4x_process_after_reload): Remove call to c4x_scan_for_ldp. + Split all insns. + (c4x_immed_int_constant): Renamed from c4x_int_constant. All callers + changed. + (c4x_immed_float_constant): Renamed from c4x_float_constant. All + callers changed. + (c4x_T_constraint): Allow LO_SUM, disable SYMBOL_REF, LABEL_REF, + and CONST. + (c4x_U_constraint, symbolic_operand): New functions. + (src_operand): Allow 'I' constants in HImode. Allow LO_SUM, + disable SYMBOL_REF, LABEL_REF, and CONST. + (lsrc_operand, tsrc_operand): Call src_operand instead of + general_operand. + (c4x_operand_subword): Update comments. + + * config/c4x/c4x.c (TARGET_LOAD_ADDRESS): New macro. + (LEGITIMATE_CONSTANT_P): Allow SYMBOL_REF, LABEL_REF, CONST, + plus HIGH and LO_SUM for the C40. + (ENCODE_SECTION_INFO): Define macro. + (symbolic_operand, c4x_U_constraint, c4x_emit_move_sequence): New + prototypes. + (PREDICATE_CODES): Add symbolic_operand. + + * config/c4x/c4x.md (movqi, movgqf, movhi, movhi): Call + c4x_emit_move_sequence. + (floatunsqiqf2, fixuns_truncqfqi2): Rework emitted RTL + to avoid symbol references. + (all patterns with g constraint): Replace 'g' constraint with 'rIm'. + (set_high): Renamed from set_high_use. + (set_lo_sum): Renamed from set_ior_lo_use. + (all call patterns): Make MEM explicit in call address operands. + Modified output templates to use 'U' modifier. + +Sun Jan 24 01:15:05 1999 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Sat Jan 23 22:34:57 1999 Kaveh R. Ghazi + + * final.c (bb_str): Qualify a char* with the keyword `const'. + (add_bb_string, final_scan_insn, output_asm_insn): Likewise. + + * fix-header.c (read_scan_file): Likewise. + + * genoutput.c (output_epilogue, process_template): Likewise. + + * local-alloc.c (requires_inout, block_alloc): Likewise. + + * output.h (output_asm_insn, assemble_string): Likewise. + + * recog.c (recog_constraints, check_asm_operands, + decode_asm_operands, extract_insn, preprocess_constraints, + constrain_operands): Likewise. + + * recog.h (operand_alternative, recog_constraints, insn_template, + insn_outfun, insn_operand_constraint, insn_name): Likewise. + + * regclass.c (record_reg_classes, scan_one_insn): Likewise. + + * regmove.c (find_matches): Likewise. + + * reload.c (alternative_allows_memconst): Likewise. + + * reload1.c (constraint_accepts_reg_p, + reload_cse_simplify_operands): Likewise. + + * rtl.h (decode_asm_operands): Likewise. + + * scan.h (fn_decl): Likewise. + + * varasm.c (assemble_string): Likewise. + +Sat Jan 23 01:37:36 1999 Jeffrey A Law (law@cygnus.com) + + * configure.in (gcc_tooldir): Handle case where exec_prefix has + not been explicitly set. + * configure: Rebuilt. + + * fold-const.c (lshift_double): Mark 'prec' arguments as possibly + unused. + + * bitmap.h (bitmap_head_def): Make indx field unsigned. + + * configure.in (gcc_tooldir): When not making a relative gcc_tooldir, + use $exec_prefix/$target_alias for gcc_tooldir. + * configure: Rebuilt. + +Fri Jan 22 11:48:56 1999 Richard Henderson + + * cppp.c (xrealloc): Fix typo last change. + * cppalloc.c, gcc.c, genattr.c, genattrtab.c, gencodes.c: Likewise. + * genconfig.c, genemit.c, genextract.c, genflags.c: Likewise. + * genopinit.c, genoutput.c, genpeep.c, genrecog.c: Likewise. + +1999-01-22 Michael Meissner + + * rs6000.h (CR0_REGNO_P): New macro to test if cr0. + (CR_REGNO_NOT_CR0_P): New macro to test if cr, but not cr0. + (PREDICATE_CODES): Add cc_reg_not_cr0_operand. + (cc_reg_not_cr0_operand): Add declaration. + + * rs6000.c (cc_reg_not_cr0_operand): Return true if register is a + pseudo register, or a control register that is not CR0. + + * rs6000.md (all combiner patterns building . instructions): For + all `.' instructions that do something and set cr0, add an + alternative that does the operation, and then sets a different + flag, in order to avoid using the costly mcrf instruction and also + allow cr0 to be clobbered in asm statements. Also fix a few + patterns that used the wrong register. + + * rs6000.h (rs6000_cpu_select): Make string, names be const char *. + (rs6000_debug_name): Make const char *, not char *. + + * sysv4.h (rs6000_{abi,sdata}_name): Make const char *. + + * rs6000.c (rs6000_{debug,abi,sdata}_name): Make const char *. + (rs6000_select): Use const char * in casts. + +Fri Jan 22 07:43:01 1999 Jeffrey A Law (law@cygnus.com) + + * Makefile.in (gcc_tooldir): Move before first reference. + Let autoconf substitute in a value. + * configure.in (gcc_tooldir): Only use a relative path to the + tool directory if $exec_prefix == $prefix. + * configure: Rebuilt. + + * Makefile.in (tooldir): Replace with gcc_tooldir. + +Thu Jan 21 23:21:57 1999 Jeffrey A Law (law@cygnus.com) + + * m68k.md (ashldi_const): Disable for !TARGET_5200. Fix indentation. + (ashldi3 expander): Similarly. Update comments. + (ashrdi_const, lshrdi_const): Fix indentation. + (ashrdi3, lshrdi3): Fix indentation. Update comments. + +Thu Jan 21 21:53:36 1999 Richard Henderson + + * emit-rtl.c (try_split): Don't try to split non-instructions. + +Thu Jan 21 23:47:30 1999 Andrew MacLeod + + * expr.c (emit_push_insn): Fix dumb typo. + +Thu Jan 21 20:24:02 1999 Richard Henderson + + * rs6000.h (LEGITIMIZE_RELOAD_ADDRESS): Recognize and accept + transformations that we have performed earlier. + * alpha.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise. + + * alpha.md (prologue_stack_probe_loop): Don't do our own label + handling, call gen_label_rtx instead. + +Thu Jan 21 17:45:18 1999 Richard Henderson + + * configure.in ({rs6000|powerpc}-ibm-aix4.[12]*): Add missing `then'. + + * cccp.c (xrealloc): Call malloc given a NULL old pointer. + * collect2.c, cppalloc.c, gcc.c, genattr.c, genattrtab.c: Likewise. + * gencodes.c, genconfig.c, genemit.c, genextract.c: Likewise. + * genflags.c, genopinit.c, genoutput.c, genpeep.c: Likewise. + * genrecog.c, mips-tfile.c, protoize.c: Likewise. + +Thu Jan 21 19:44:55 1999 Michael Meissner + + * configure.in ({rs6000|powerpc}-ibm-aix4.[12]*): If + --with-gnu-ld, use x-aix41-gld instead of x-aix41 to suppress + adding -Wl,-bbigtoc to BOOT_LDFLAGS. + * configure: Regenerate. + + * config/rs6000/x-aix41-gld: New file, don't set BOOT_LDFLAGS. + +Thu Jan 21 15:48:03 1999 Dave Brolley + + * cppexp.c (cpp_lex): Allocate token_buffer dynamically. + +Thu Jan 21 14:18:04 1999 Andrew MacLeod + + * expr.c (MOVE_BY_PIECES_P): Define condition for deciding to use + move_by_pieces. + (MOVE_MAX_PIECES): Define maximum number of bytes to move at once. + (USE_LOAD_POST_INCREMENT, USE_LOAD_PRE_DECREMENT): Define defaults. + (USE_STORE_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Define defaults. + (move_by_pieces): Use new macros. + (emit_block_move): Use new macros. + (clear_by_pieces): Use new macros. + (clear_storage): Use new macros. + (emit_push_insn): Use new macros. + (expand_expr): Use new macros. + * config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_LOAD_PRE_DECREMENT): + Define. + (USE_STORE_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Define. + (MOVE_BY_PIECES_P): Define based on alignment and TARGET_SMALLCODE. + (MOVE_MAX_PIECES): Move 8 bytes on SH4. + * tm.texi(MOVE_BY_PIECES_P, MOVE_MAX_PIECES, USE_LOAD_POST_INCREMENT, + USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT, + USE_STORE_PRE_DECREMENT): Describe new macros. + +Thu Jan 21 14:13:31 1999 Vladimir N. Makarov + + * varasm.c (output_constant_pool): Use floor_log2 instead of + exact_log2 for ASM_OUTPUT_ALIGN. + + * stor-layout.c (layout_type): Do machine-dependent extra alignment. + + * emit-rtl.c (operand_subword): Handle case when a subword outside + the operand. + + * tm.texi (ROUND_TYPE_{SIZE,ALIGN}): More accurate descriptions of + the macros. + +Thu Jan 21 01:59:30 1999 Richard Henderson + + * cse.c (fold_rtx): Revert 29 Dec change. + (cse_insn): Revert 12 Jan change. + * expr.c (expand_builtin): Don't emit CONST around CONSTANT_P_RTX. + * regclass.c (reg_scan_mark_refs): Revert 29 Dec change. + * rtl.def: Likewise. + * rtl.h (CONSTANT_P): Likewise. + + * expr.c (emit_move_insn): Never try to flush CONSTANT_P_RTX + to memory. + * recog.c (immediate_operand): Accept CONSTANT_P_RTX. + * alpha.c (input_operand): Likewise. + * c4x.c (const_operand): Likewise. + + * explow.c (allocate_dynamic_stack_space): Use register_operand + instead of arith_operand, which does not exist. + + * 1750a.h: Fix comment closure. + * a29k.c (a29k_set_memflags): Fix typo in 19 Jan change. + * arc.md (one_cmplsi2_set_cc_insn): Fix set mode mismatch. + * arm.h (TARGET_SWITCHES): Fix typo. + * i370.md (anon mult and div patterns): Fix set mode mismatch. + * i860.c (output_delayed_branch): Fix operands to constrain_operands. + (output_delay_insn): Likewise. + * m88k.md (anon rotate insns): Fix set mode mismatch. + (anon BLKmode moves): Commonize and fix set mode mismatches. + * ns32k.md (udivmoddi[shq]i4_internal): Fix mode mismatch. + * romp.md (movdf): Fix typo. + +Thu Jan 21 00:29:35 1999 Nathan Sidwell + + * Makefile.in (install-common): Remove extraneous chmod for gcov + install. + +Wed Jan 20 18:15:08 1999 Dave Brolley + + * function.c (assign_parms): Save and restore setting of + TREE_USED (parm). + +Wed Jan 20 12:51:42 1999 Mark Mitchell + + * arm.md: Use MEM_COPY_ATTRIBUTES where appropriate throughout. + Pass MEM_SCALAR_P to arm_gen_store_multiple where appropriate. + +Tue Jan 19 21:20:52 1999 Richard Henderson + + * recog.c (pop_operand): New function. + * recog.h (pop_operand): Declare it. + * genrecog.c (preds): Define it. + + * expr.c (do_jump_for_compare): Handle conditional branch expanders + emitting multiple jump instructions. + * jump.c (condjump_label): New function. + * rtl.h (condjump_label): Declare it. + +Tue Jan 19 21:08:20 1999 Richard Henderson + + * expr.c (emit_move_insn_1): Revert 17 Dec change. Don't emit + clobber during or after reload. + +Tue Jan 19 16:56:03 1999 Richard Henderson + + * genoutput.c (name_for_index): New function. + (scan_operands, validate_insn_alternatives): Use it. + * genrecog.c (insn_name_ptr_size): New variable. + (make_insn_sequence): Fill in insn_name_ptr. + (merge_trees): Use it. + +Tue Jan 19 16:37:36 1999 Richard Henderson + + * i386/isc.h (TARGET_DEFAULT): Define symbolicly. + * i386/isccoff.h, i386/next.h, i386/sco.h, i386/sco5.h: Likewise. + * i386/scodbx.h, i386/sequent.h, i386.unix.h: Likewise. + +Tue Jan 19 15:00:10 1999 Jeffrey A Law (law@cygnus.com) + + * loop.c (NUM_STORES): Delete. + (loop_store_mems): Turn into an EXPR_LIST of MEMs. + (prescan_loop): Properly initialize loop_mems_idx. + (note_addr_stored): Simplify using list structure instead of + fixed sized array. + (invariant_p, check_dbra_loop, load_mems): Similarly. + + * flow.c (invalidate_from_autoinc): New function. + (mark_set_1, mark_used_regs): Use it. + + * Makefile.in (protoize.o, unprotoize.o): Depend on Makefile. + +1999-01-19 Vladimir N. Makarov + + * invoke.texi (-mlong-double-64): New option description. + +1999-01-19 Jim Wilson + + * libgcc2.c: Change all uses of LONG_DOUBLE_TYPE_SIZE to + LIBGCC2_LONG_DOUBLE_TYPE_SIZE. + (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New. Set to LONG_DOUBLE_TYPE_SIZE + if not defined. + * i960/i960.h (MULTILIB_DEFAULTS): Define to mnumerics. + (CPP_SPECS): Add -mlong-double-64 support. + (TARGET_FLAG_LONG_DOUBLE_64, TARGET_LONG_DOUBLE_64): New. + (TARGET_SWITCHES): Add -mlong-double-64 support. + (LONG_DOUBLE_TYPE_SIZE): Likewise. + (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define. + * i960/vx960-coff.h (MULTILIB_DEFAULTS): Define to msoft-float. + (CPP_SPECS): Add -mlong-double-64 support. + * i960/t-960bare (MULTILIB_OPTIONS): Add mlong-double-64. + (MULTILIB_DIRNAMES): Add ld64. + * i960/t-vxworks960 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Likewise. + +Tue Jan 19 11:54:04 1999 Jason Merrill + + * calls.c (expand_call): Strip a TARGET_EXPR if we're passing by + invisible reference. + +Tue Jan 19 14:51:36 1999 David Edelsohn + + * rs6000.c (offsettable_addr_operand): Delete. + (offsettable_mem_operand): New function. + * rs6000.h (PREDICATE_CODES): Reflect function change. + (RS6000_SAVE_TOC): Represent address as MEM. + * win-nt.h (RS6000_SAVE_TOC): Same. + * rs6000.md (indirect calls): Change offsettable address parameter + to offsettable memory parameter. + +Tue Jan 19 10:24:53 1999 Mark Mitchell + + * rtl.h (rtx_def): Update documentation. + (MEM_IN_STRUCT_P): Likewise. + (MEM_SCALAR_P): New macro. + (MEM_COPY_ATTRIBUTES): Likewise. + (MEM_SET_IN_STRUCT_P): Likewise. + * rtl.texi (MEM_SCALAR_P): Document. + * alias.c (canon_rtx): Use MEM_COPY_ATTRIBUTES. + (fixed_scalar_and_varying_struct_p): New function. Use + MEM_SCALAR_P rather than !MEM_IN_STRUCT_P. + (aliases_everything_p): Likewise. + (true_dependence): Use them. + (write_dependence_p): New function, containing code common to + anti_dependence and output_dependence. + (anti_dependence): Use it. + (output_dependence): Likewise. + * calls.c (save_fixed_argument_area): Don't clear + MEM_IN_STRUCT_P. + (expand_call): Use MEM_SET_IN_STRUCT_P. + (emit_library_call): Don't clear MEM_IN_STRUCT_P. + (emit_library_call_value): Likewise. + (store_one_arg): Use MEM_SET_IN_STRUCT_P. + * combine.c (simplify_rtx): Use MEM_COPY_ATTRIBUTES. + (make_extraction): Likewise. + (simplify_shift_const): Likewise. + (gen_lowpart_for_combine): Likewise. + * cse.c (gen_lowpart_if_possible): Use MEM_COPY_ATTRIBUTES. + * emit-rtl.c (operand_subword): Likewise. + (change_address): Likewise. + * explow.c (stabilize): Use MEM_COPY_ATTRIBUTES. + * expr.c (protect_from_queue): Use MEM_COPY_ATTRIBUTES. + (emit_group_store): Use MEM_SET_IN_STRUCT_P. + (copy_blkmode_from_reg): Likewise. + (store_field): Likewise. + (expand_expr): Remove bogus guesswork setting MEM_IN_STRUCT_P + heuristically. Use MEM_SET_IN_STRUCT_P. + (get_memory_rtx): Likewise. + * final.c (alter_subreg): Use MEM_COPY_ATTRIBUTES. + * function.c (assign_stack_temp): Clear MEM_SCALAR_P and + MEM_ALIAS_SET on newly returned MEMs. + (assign_temp): Use MEM_SET_IN_STRUCT_P. + (put_reg_into_stack): Likewise. + (fixup_var_refs1): Use MEM_COPY_ATTRIBUTES. + (gen_mem_addressof): Use MEM_SET_IN_STRUCT_P. + (assign_parms): Likewise. + (expand_function): Likewise. + * integrate.c (expand_inline_function): Likewise. + (copy_rtx_and_substitute): Use MEM_COPY_ATTRIBUTES. + * loop.c (note_addr_stored): Remove check on MEM_IN_STRUCT_P. + * optabs.c (gen_move_insn): Use MEM_COPY_ATTRIBUTES. + * print-rtl.c (print_rtx): Print /f for frame_related. + * recog.c (validate_replace_rtx_1): Use MEM_COPY_ATTRIBUTES. + * reload1.c (reload): Copy MEM_SCALAR_P as well. + * stmt.c (expand_decl): Use MEM_SET_IN_STRUCT_P. + (expand_anon_union_decl): Use MEM_COPY_ATTRIBUTES. + * varasm.c (make_decl_rtl): Use MEM_SET_IN_STRUCT_P. + (output_constant_def): Likewise. + * a29k.c (a29k_set_memflags_1): Take scalar_p. + Set MEM_SCALAR_P. + (a29k_set_memflags): Use it. + * alpha.c (get_aligned_mem): Use MEM_COPY_ATTRIBUTES. + * c4x.c (c4x_scan_for_ld): Likewise. + * h8300.c (fix_bit_operand): Likewise. + * m88k.c (legitimize_address): Likewise. + (block_move_loop): Likewise. + (block_move_no_loop): Likewise. + (block_move_sequence): Likewise. + (m88k_builtin_saveregs): Use MEM_SET_IN_STRUCT_P. + * mips/abi64.h (SETUP_INCOMING_VARARGS): Likewise. + * rs6000.c (expand_block_move_insn): Use MEM_COPY_ATTRIBUTES. + * sh.c (sh_builtin_saveregs): Use MEM_SET_IN_STRUCT_P. + * arm.h (arm_gen_load_multiple): Take scalar_p. + (arm_store_load_multiple): Likewise. + * arm.c (arm_gen_load_multiple): Likewise. + (arm_gen_store_multiple): Likewise. + (arm_gen_movstrqi): Treat MEM_SCALAR_P like MEM_IN_STRUCT_P. + +Tue Jan 19 12:30:37 1999 Andrew MacLeod + + * optabs.c (emit_libcall_block): Add a REG_EH_REGION reg note to all + calls within a libcall block to indicate no throws are possible. + * flow.c (find_basic_blocks, find_basic_blocks_1): Don't look for + libcall blocks. Don't add edges to exception handlers if we see + a REG_EH_REGION note with a value of 0. + (make_edges): Override active_eh_region vector if the call has a note + indicating the call does not throw. + +1999-01-19 Vladimir N. Makarov + + * config/rs6000/sysv4.h (CC1_SPEC): Fix correct numbers of {}. + +Tue Jan 19 06:26:30 1999 Jeffrey A Law (law@cygnus.com) + + * Makefile.in (cccp.o, cpplib.o): Depend on Makefile. + +Mon Jan 18 09:56:41 1999 Jason Merrill + + * invoke.texi (C++ Dialect Options): Document -fno-rtti. + +1999-01-18 Vladimir N. Makarov + + * invoke.texi (-mcpu=740, -mcpu=750): New options. + (-m(no-)multiple, -m(no-)string): Describe cases for PPC740 & + PPC750. + +1999-01-18 Michael Meissner + + * rs6000.h ({ASM,CPP}_CPU_SPEC): Add support for all machines + supported with -mcpu=xxx. + (processor_type): Add PROCESSOR_PPC750. + (ADJUST_PRIORITY): Call rs6000_adjust_priority. + (RTX_COSTS): Supply costs for 750 multiply/divide operations. + (rs6000_adjust_priority): Add declaration. + + * rs6000.c (rs6000_override_options): -mcpu={750,740} now sets the + processor type as 750, not 603. Allow -mmultiple and -mstring on + little endian 750 systems. + (rs6000_adjust_priority): Stub for now. + (get_issue_rate): The PowerPC 750 can issue 2 instructions/cycle. + + * rs6000.md (function/cpu attributes): Add initial ppc750 support. + + * sysv4.h (STRICT_ALIGNMENT): Don't force strict alignment if + little endian. + (CC1_SPEC): Pass -mstrict-align if little endian, and not + overridden. + (CC1_ENDIAN_{LITTLE,BIG,DEFAULT}_SPEC): Endian specific configs. + (SUBTARGET_EXTRA_SPECS): Add cc1 endian specs. + + * {sysv4,eabi}le.h (CC1_ENDIAN_DEFAULT_SPEC): Override, default is + little endian. + + * t-ppcgas (MULTILIB_*): Delete obsolete Solaris multilibs. + +Mon Jan 18 12:03:08 1999 Gavin Romig-Koch + + * config/mips/mips.md (div_trap): Split div_trap_mips16 + from div_trap. + (div_trap_normal,div_trap_mips16): Correct the length attributes. + +Mon Jan 18 11:48:28 1999 Kaveh R. Ghazi + + * cpplib.c (special_symbol): Qualify a char* with the `const' keyword. + Instead of writing to const char *buf directly, use a non-const + variable `wbuf' to allocate and write a string, then set buf = wbuf. + + * cppulp.c (user_label_prefix): Qualify a char* with the `const' + keyword. + + * dyn-string.c (dyn_string_append): Likewise. + + * dyn-string.h (dyn_string_append): Likewise. + + * final.c (end_final, output_operand_lossage, asm_fprintf): Likewise. + + * output.h (end_final, output_operand_lossage, asm_fprintf, + named_section, decode_reg_name, make_decl_rtl, user_label_prefix): + Likewise. + + * profile.c (init_branch_prob): Likewise. + + * toplev.c (set_target_switch, vmessage, + v_message_with_file_and_line, v_message_with_decl, + v_error_with_file_and_line, v_error_with_decl, v_error_for_asm, + verror, vfatal, v_warning_with_file_and_line, v_warning_with_decl, + v_warning_for_asm, vwarning, vpedwarn, v_pedwarn_with_decl, + v_pedwarn_with_file_and_line, vsorry, v_really_sorry, + open_dump_file, dump_rtl, clean_dump_file, + print_version, print_single_switch, print_switch_values, + dump_base_name, debug_args, lang_independent_options, + user_label_prefix, documented_lang_options, target_switches, + target_options, print_time, pfatal_with_name, fatal_io_error, + fatal_insn, default_print_error_function, print_error_function, + report_error_function, error_with_file_and_line, error_with_decl, + error_for_asm, error, fatal, warning_with_file_and_line, + warning_with_decl, warning_for_asm, warning, pedwarn, + pedwarn_with_decl, pedwarn_with_file_and_line, sorry, + really_sorry, botch, output_quoted_string, output_file_directive, + open_dump_file, rest_of_decl_compilation, display_help, main): + Likewise. + + * toplev.h (print_time, fatal, fatal_io_error, pfatal_with_name, + fatal_insn, warning, error, pedwarn, pedwarn_with_file_and_line, + warning_with_file_and_line, error_with_file_and_line, sorry, + really_sorry, default_print_error_function, report_error_function, + rest_of_decl_compilation, pedwarn_with_decl, warning_with_decl, + error_with_decl, error_for_asm, warning_for_asm, output_quoted_string, + output_file_directive, botch): Likewise. + + * tree.h (make_decl_rtl): Likewise. + + * varasm.c (strip_reg_name, named_section, decode_reg_name, + make_decl_rtl): Likewise. + +Mon Jan 18 11:35:49 1999 Gavin Romig-Koch + + * Makefile.in (TCL_LIBRARY): Use 'cd' to find the library + directory logically rather than physically. + +Mon Jan 18 09:05:37 1999 Kaveh R. Ghazi + + * loop.c (insert_bct): Hide the definition of variables + `increment_direction', `compare_direction', `add_iteration' and + `loop_var_mode'. + + * recog.c (mode_dependent_address_p): Mark parameter `addr' with + ATTRIBUTE_UNUSED. Mark label `win' with ATTRIBUTE_UNUSED_LABEL. + (mode_independent_operand): Mark label `lose' with + ATTRIBUTE_UNUSED_LABEL. + + * regclass.c (n_occurrences): Remove prototype and definition. + + * reload.c (find_reloads_address_1): Mark variable `tem' with + ATTRIBUTE_UNUSED. + + * reload1.c (reload): Cast the first two arguments of `bcopy' to PTR. + + * sbitmap.c (sbitmap_copy): Likewise. + + * scan-decls.c (scan_decls): Hide label `handle_comma'. + + * toplev.c (output_lang_identify): Mark prototype with + ATTRIBUTE_UNUSED. + + * tree.c (make_node): Cast the first argument of `bzero' to PTR. + (make_tree_vec): Likewise. + (build1): Likewise. + + * varasm.c (assemble_static_space): Mark variable `tem' with + ATTRIBUTE_UNUSED. + +Mon Jan 18 04:28:36 1999 Nathan Sidwell + + * Makefile.in (GCOV_INSTALL_NAME): New macro. + (install-common): Use it. + (uninstall): Use it. + (uninstall): Use correct names for protoize and unprotoize. + +Mon Jan 18 03:52:56 1999 Christian Bruel + Jeffrey A Law (law@cygnus.com) + + * flow.c (last_mem_set): Delete variable. References removed. + (mem_set_list): New variable. + (life_analysis): Initialize and finalize alias analysis. + (propagate_block); Initialize mem_set_list. Clear for CALL_INSNs. + (insn_dead_p): For a store to memory, search the entire mem_set_list + for a match. + (mark_set_1): Kill entries on the mem_set_list for aliased writes or + changes to their addresses. Add new entries to the mem_set_list for + memory writes writes. + (mark_used_regs): Kill entries on the mem_set_list which may be + referenced by a load operation. + +Mon Jan 18 01:01:02 1999 Jeffrey A Law (law@cygnus.com) + + * alias.c (base_alias_check): Add missing return for differing + symbols case. + +Mon Jan 18 00:36:13 1999 Rainer Orth + + * mips-tdump.c (print_file_desc): Handle unknown filenames and + missing local symbols. + +Sun Jan 17 21:04:31 1999 Richard Henderson + + * jump.c (rtx_renumbered_equal_p): Special case CODE_LABEL. + + * system.h (bcopy): Implement with memmove not memcpy. + +Sun Jan 17 19:23:20 1999 Jeffrey A Law (law@cygnus.com) + + * Makefile.in (cppulp.o): Add dependencies. + + * i386.md (integer conditional moves): Add missing earlyclobbers. + + * regmove.c (optimize_reg_copy_1): Undo Aug 18 change. Update + REG_N_CALLS_CROSSED and REG_LIVE_LENGH if and only if we change + where a register is live. + +Sun Jan 17 03:20:47 1999 H.J. Lu (hjl@gnu.org) + + * reg-stack.c (subst_stack_regs_pat): Abort if the destination + of a FP conditional move is not on the FP register stack. + +Sun Jan 17 01:15:04 1999 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Sat Jan 16 23:40:33 1999 Jeffrey A Law (law@cygnus.com) + + * reload1.c (reload_cse_regs_1): Do not call + reload_cse_simplify_operands for an insn with asm operands. + + * cccp.c (print_help): Fix typos. + * cpplib.c (print_help): Fix typos. + * toplev.c (f_optiosn): Fix typos. + (documented_lang_options): Fix typos. + +Sat Jan 16 21:48:17 1999 Marc Espie (Marc.Espie@openbsd.org) + + * gcc.c (do_spec_1): Fix obvious typo. + +Sat Jan 16 19:31:07 1999 Kaveh R. Ghazi + + * c-decl.c (duplicate_decls): If `warn_traditional', warn when + a non-static function declaration follows a static one. + + * invoke.texi (-Wtraditional): Document the extra check now done + by this flag. + +Sat Jan 16 15:13:46 1999 Jeffrey A Law (law@cygnus.com) + + * pa.md (shadd): Create shadd insns, even if the result of the shift is + needed without the addition. + +Sat Jan 16 10:48:16 1999 J"orn Rennecke + + * sh.md (movdf, movsf): Temporary workaround for no_new_pseudos lossage. + +Fri Jan 15 23:44:37 1999 Richard Henderson + + * sparc.c (sparc_issue): Add hypersparc/sparclite86x entries. + +Fri Jan 15 22:30:04 1999 David Edelsohn + + * rs6000.h (CONST_OK_FOR_LETTER_P): Do not assume 32-bit CONST_INT. + * rs6000.c (u_short_cint_operand, add_operand, logical_operand, + non_add_cint_operand, non_logical_cint_operand): Likewise. + (get_issue_rate): Add CPU_PPC604E case. + * rs6000.md (movdi, !TARGET_POWERPC64 splitters): Handle 64-bit hosts. + +Fri Jan 15 18:42:12 1999 Richard Henderson + + * expr.c (queued_subexp_p): Make public. + * expr.h (queued_subexp_p): Declare it. + * recog.c (asm_operand_ok): New function. + (check_asm_operands): Use it. After reload, use constrain_operands + instead. + * recog.h (asm_operand_ok): Declare it. + * stmt.c (expand_asm_operands): Use it to try harder to make + asms initially satisfy their constraints. + +Fri Jan 15 17:43:59 1999 Jeffrey A. Law + + * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Do not create + (mem (lo_sum (...)) for TFmode unless TARGET_V9. + +Sat Jan 16 12:47:15 1999 Michael Hayes + + * config/c4x/c4x.md (not_repeat_reg): Allow ldp instruction + in delay slot of RPTBD. + +Sat Jan 16 12:26:40 1999 Michael Hayes + + * config/c4x/libgcc.S (___divhi3, ___modhi3): Fix long long + divide and modulo sign problem. + +Fri Jan 15 11:02:31 1999 Michael Hayes + + * unroll.c (loop_iterations): Return 0 if the last loop insn + is not a jump insn or if the loop has multiple back edges. + +1999-01-15 Manfred Hollstein + + * configure.in (fixinc_defs): Do not define for m[68]8k-motorola-sysv{,3}; + it's working properly now. Remove comment saying "see m68k-motorola-sysv + as an example". + * configure: Regenerate using autoconf. + + * fixinc/fixincl.c (main): Do not ignore SIGCHLD. + +Thu Jan 14 22:38:41 1999 Jeffrey A Law (law@cygnus.com) + + * unroll.c (find_splittable_givs): For a DEST_ADDR giv, do not share + a register with another DEST_ADDR giv if the address is not valid. + + * pa.c (hppa_expand_epilogue): Save and restore the static chain + around the call to mcount. + + * h8300.h (ASM_OUTPUT_LABELREF): Use asm_fprintf, not fprintf. + + * stmt.c (expand_end_case): Use emit_cmp_and_jump_insns to avoid + generating non-canonical rtl. + +1999-01-14 Vladimir N. Makarov + + * config/i960/i960.c (i960_output_move_double_zero, + i960_output_move_quad_zero): New functions for moving zeros. + (i960_output_move_double, i960_output_move_quad): Additional code + for situation when moving unaligned register group. + + * config/i960/i960.h (i960_output_move_double_zero, + i960_output_move_quad_zero): The function definitions. + + * config/i960/i960.md (movdi+1, movti+1): Usage of the functions. + +1999-01-13 Vladimir N. Makarov + + * config/i960/i960.c (i960_function_prologue): New code (optimal + solution) for saving global registers in local registers. + (form_reg_groups, reg_group_compare, split_reg_group): New + functions used by the code. + (reg_group): New structure definition for the new code. + +1999-01-13 Manfred Hollstein + + * fixinc/fixincl.c (create_file): Pass file creation mask as + third parameter to "open". Use O_TRUNC flag to open instead of + explicitly unlink'ing the file. + (process): and forget about the "chmod" stuff. + +Wed Jan 13 20:12:37 1999 Richard Henderson + + * integrate.c (expand_inline_function): Recognize (mem (addressof)) + and substitute. Copy the return value from there into a new pseudo. + +Wed Jan 13 16:47:00 1999 Catherine Moore + + * config/arm.c (output_func_epilogue): Check TARGET_ABORT_NORETURN + before generating a call to abort for volatile functions. + * config/arm.h (ARM_FLAG_ABORT_NORETURN): Define. + (TARGET_ABORT_NORETURN): Define. + (abort-on-noreturn): New option. + +Thu Jan 14 13:52:42 1999 Michael Hayes + + * config/c4x/c4x.md (in_annul_slot_3): Correctly allow unarycc + and binarycc operations in 3rd annulled delay slot! + +Wed Jan 13 16:16:44 1999 Catherine Moore + + * config/arm.c (output_func_epilogue): Check TARGET_ABORT_NORETURN + before generating a call to abort for volatile functions. + * config/arm.h (ARM_FLAG_ABORT_NORETURN): Define. + (TARGET_ABORT_NORETURN): Define. + (abort-on-noreturn): New option. + +Wed Jan 13 13:30:08 1999 Kaveh R. Ghazi + + * cccp.c (xstrdup): Renamed from `savestring'. All callers changed. + Remove prototype which we get from libiberty.h. + + * collect2.c (xstrdup): Likewise. + + * genextract.c (xstrdup): Likewise for `copystr'. + (mybzero): Remove it and use `memset' instead. + + * genoutput.c (mybcopy, mybzero): Remove these. All callers changed + to use `memcpy' and `memset' instead. + + * genrecog.c (xstrdup): Renamed from `copystr'. All callers + changed. Remove prototype. + (mybcopy, mybzero): Remove these and use memcpy/memset. + +Wed Jan 13 00:59:04 1999 Jeffrey A Law (law@cygnus.com) + + * mips.h (LOAD_EXTEND_OP): Correct for SImode and CCmode moves when + generating code for TARGET_64BIT. + +Tue Jan 12 14:05:37 1999 David Edelsohn + + * rs6000.c (print_operand, cases 'm' and 'M'): Do not depend on + HOST_WIDE_INT word-size. + (rs6000_stack_info): Remove redundant alignment of fpmem. + +Tue Jan 12 14:05:37 1999 Richard Henderson + + * rs6000.c (short_cint_operand): Remove CONSTANT_P_RTX handling. + (u_short_cint_operand, reg_or_cint_operand, logical_operand): Likewise. + (input_operand): Adjust CONSTANT_P_RTX handling. + * rs6000.h (PREDICATE_CODES): Remove CONSTANT_P_RTX references. + * rs6000.md (movsi): Adjust CONSTANT_P_RTX handling. + (movhi, movqi): Remove CONSTANT_P_RTX handling. + (movdi): Adjust CONSTANT_P_RTX handling. + +1999-01-12 Manfred Hollstein + + * configure: Regenerate using autoconf. + + * fixinc/Makefile.in (INCLUDES): Add -I$(srcdir)/../../include. + * fixinc/fixincl.c (SIGCHLD): Use SIGCLD on (very) old systems. + (process): "fchmod" isn't available on all systems, use "chmod" + instead. + * fixinc/server.c: Add #include . + (STDIN_FILENO): Add default definition if no include file defines + it already. + (STDOUT_FILENO): Likewise. + +Tue Jan 12 10:23:24 1999 Stan Cox + + * mips.md (call_value_internal3c): New pattern for -mips16 -mlong-calls. + +1999-01-12 Manfred Hollstein + + * m68k/mot3300.h (ADD_MISSING_POSIX, ADD_MISSING_XOPEN): Define to + ensure all prototypes necessary for building libio will be available. + * m68k/xm-mot3300.h (ADD_MISSING_POSIX, ADD_MISSING_XOPEN): Remove + definitions here as they are not host specific. + * m88k/sysv3.h, m88k/xm-sysv3.h: Likewise. + +Tue Jan 12 02:53:46 1999 Richard Henderson + + * cse.c (cse_insn): Never prefer (const (constant_p_rtx)). + +Tue Jan 12 02:36:10 1999 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Tue Jan 12 01:30:19 1999 Richard Henderson + + * rtl.c (rtx_alloc): Use memset instead of inline loop. + + * recog.h (recog_op_alt): Declare extern. + +Tue Jan 12 00:23:31 1999 Richard Henderson + + * function.c (purge_addressof_1): If the note accesses a mem+addressof + in a wider mode than any replacement, adjust the cached replacement. + Cache trivial substitutions as well. + +Tue Jan 12 00:06:00 1999 Richard Henderson + + * Makefile.in (OBJECTS): Add sbitmap.o. + (BASIC_BLOCK_H): Add sbitmap.h. + * basic-block.h: Move simple bitmap code to sbitmap.h. + * flow.c: Move simple bitmap code to sbitmap.c. + * sbitmap.h, sbitmap.c: New files. + +Mon Jan 11 23:51:50 1999 Richard Henderson + + * alpha.h (TARGET_SWITCHES): Document switches. + (TARGET_OPTIONS): Likewise. + + * alpha/elf.h (ASM_FINISH_DECLARE_OBJECT): Use HOST_WIDE_INT_PRINT_DEC. + +Mon Jan 11 22:54:14 1999 Richard Henderson + + * tree.c (new_alias_set): Return zero if !flag_strict_aliasing. + +Mon Jan 11 22:36:01 1999 Richard Henderson + + * basic-block.h (basic_block_head): Rename to x_basic_block_head. + (basic_block_end): Rename to x_basic_block_end. + (BLOCK_HEAD, BLOCK_END): Update. + + * caller-save.c: Change basic_block_head/end references to + BLOCK_HEAD/END. + * combine.c, flow.c, function.c, gcse.c, global.c: Likewise. + * graph.c, haifa-sched.c, local-alloc.c, regclass.c: Likewise. + * regmove.c, reload1.c, reorg.c, sched.c: Likewise. + +Sat Jan 9 23:54:09 1999 Kaveh R. Ghazi + + * gcc.c (xstrerror): Renamed from my_strerror. All callers + changed. Remove prototype since we get that from libiberty.h. + + * protoize.c (xstrerror): Likewise. + +Sat Jan 9 23:22:04 1999 Kaveh R. Ghazi + + * gcc.c (read_specs): Ensure format specifiers match their arguments. + +Sat Jan 9 20:04:24 1999 Richard Henderson + + * tree.c (copy_node): Oops. That would be copy not zero + in that last change. + +Sun Jan 10 15:35:41 1999 Michael Hayes + + * config/c4x/c4x.c: Include system.h. + (c4x_caller_save_map): Disable caller save for RC. + (c4x_optimization_options): Disable scheduling before reload. + (valid_parallel_load_store) : Define return type as int. + Remove unused variable regs. + * config/c4x/c4x.h (REGISTER_MOVE_COST): Make independent of register + class. + * config/c4x/c4x.md (rotlqi3, rotrqi3): Fix up emitted RTL to + handle rotations. + (*db, decrement_and_branch_until_zero): Fix up constraints + to keep reload happy. + +Sat Jan 9 18:35:29 1999 Richard Henderson + + * tree.c (make_node): Call bzero instead of inline clear. + (copy_node, make_tree_vec, build1): Likewise. + (get_identifier): Call strlen instead of inline count. + (maybe_get_identifier): Likewise. + +Sun Jan 10 14:04:51 1999 Michael Hayes + + * config/c4x/c4x.md (in_annul_slot_3): Allow unarycc and binarycc + operations in 3rd annulled delay slot. + (*lshrqi3_const_set): Disallow c constraint for operand0. + (modhi3+1, modhi3+2): Set attribute type to multi. + * config/c4x/c4x.c (c4x_S_constraint): Removed space in middle of + != operator. + +Sat Jan 9 11:44:55 1999 Kaveh R. Ghazi + + * gansidecl.h: Allow attribute unused on labels only when we are + version 2.93 or higher. Not all versions of 2.92 have this feature. + + * version.c: Bump minor number to 93. + +Fri Jan 8 10:51:13 1999 Andreas Schwab + + * config/m68k/m68k.h: Declare output_function_epilogue. + * recog.h: Declare next_insn_tests_no_inequality. + +Fri Jan 8 01:43:53 1999 Jeffrey A Law (law@cygnus.com) + + * stmt.c (optimize_tail_recursion): New function, extracted from ... + (expand_return): Use optimize_tail_recursion. + * tree.h (optimize_tail_recursion): Declare. + + * toplev.c (compile_file): Move call to output_func_start_profiler + to after the loop to emit deferred functions. + +Thu Jan 7 19:52:53 1999 Gerald Pfeifer + + * system.h (abort): Supply more detailed information on how to + report an Internal Compiler Error. + +Thu Jan 7 09:25:58 1999 Bruce Korb (korb@datadesign.com) + + * fixinc/fixincl.c (*): More decapitalization of variables + plus some explanatory comments. + + * fixinc/Makefile.in fixinc/mkfixinc.sh: + When the fixincl program does not work for a certain system, + we substitute a shell script. Added user commentary when + this happens. + +Thu Jan 7 11:26:17 1999 Mark Mitchell + + * calls.c (store_unaligned_arguments_into_pseudos): Use xmalloc to + allocate memory that will live beyond this function. + (expand_call): Free it here. + +Thu Jan 7 03:08:17 1999 Richard Henderson + + * sparc.h (PREFERRED_RELOAD_CLASS): Select GENERAL_REGS for + integer data not destined for fp regs. + (LEGITIMIZE_RELOAD_ADDRESS): New. + +Thu Jan 7 03:03:42 1999 Stan Cox + Richard Henderson + + Support for HyperSPARC and SPARClite86x: + * sparc.h (TARGET_CPU_hypersparc, TARGET_CPU_sparclite86x): New. + (CPP_CPU32_DEFAULT_SPEC): Fix up for the new targets. + (ASM_CPU32_DEFAULT_SPEC): Likewise. + (TARGET_CPU_DEFAULT): Likewise. + (enum processor_type): Likewise. + (CPP_ENDIAN_SPEC): Handle little endian data. + (LIBGCC2_WORDS_BIG_ENDIAN): Likewise. + (ADJUST_COST): Call sparc_adjust_cost. + * sparc.c (sparc_override_options): Fix up for the new targets. + (supersparc_adjust_cost): Make static. + (hypersparc_adjust_cost): New. + (ultrasparc_adjust_cost): Make static. + (sparc_adjust_cost): New. + * sparc.md (attr cpu): Add hypersparc and sparclite86x. + (function_unit): Add hypersparc scheduling rules. + + * configure.in (with_cpu handler): Recognize hypersparc. + +Thu Jan 7 23:54:05 1999 Michael Hayes + + * config/c4x/c4x.c: Added space after negation operator. + * config/c4x/c4x.h: Likewise. + * config/c4x/c4x.md: Likewise. + +Thu Jan 7 23:39:27 1999 Michael Hayes + + * config/c4x/c4x.c (c4x_preferred_reload_class): Always return class. + +Thu Jan 7 00:29:25 1999 Bernd Schmidt + + * combine.c (num_sign_bit_copies): In NEG, MULT, DIV and MOD cases, + when a test can't be performed due to limited width of + HOST_BITS_PER_WIDE_INT, use the more conservative approximation. + Fix UDIV case for cases where the first operand has the highest bit + set. + +Thu Jan 7 00:01:38 1999 Lutz Vieweg + + * pa.h (reg_class): Add FPUPPER_REGS. + (REG_CLASS_NAMES): Similarly. + (REG_CLASS_CONTENTS): Similarly. + (REGNO_REG_CLASS): Handle FPUPPER_REGS. + (FP_REG_CLASS_P): Likewise. + (REG_CLASS_FROM_LETTER): Similarly. + (CLASS_MAX_NREGS): Similarly. + +1999-01-06 Brendan Kehoe + + * fixincludes: For HP/UX 10.20, also look in curses_colr/curses.h + for a typedef of bool. Make sure to have a copy of the file is + in place before we look to fix it. Fix typo in variable name to + FILE. + +Wed Jan 6 07:51:05 1999 Richard Henderson + + * expr.c (expand_builtin) [case BUILT_IN_CONSTANT_P]: Use + value_mode for the return mode. + +Wed Jan 6 17:55:19 1999 Robert Lipe + + * configure.in: New flag --with-dwarf2. If set, enables DWARF-2 + debugging as default. + + * config/tm-dwarf2.h: New file. + +Wed Jan 6 16:08:54 1999 Jeffrey A Law (law@cygnus.com) + + * h8300.h (ASM_OUTPUT_LABELREF): Define. + + * pa.h (DONT_RECORD_EQUIVALENCE): Kill. + * local-alloc.c (update_equiv_regs): Corresponding changes. + * tm.texi (DONT_RECORD_EQUIVALENCE): Kill. + + * calls.c (special_function_p): Push alloca test inside the large + conditional which excludes functions not at file scope or not + extern. + + * calls.c (special_function_p): New function broken out of + expand_call. + (precompute_register_parameters): Likewise. + (store_one_arg): Likewise. + (store_unaligned_argumetns_into_pseudos): Likewise. + (save_fixed_argument_area): Likewise. + (restore_fixed_argument_area): Likewise. + (expand_call): Corresponding changes. + +Thu Jan 7 00:12:24 1999 Michael Hayes + + * config/c4x/c4x.md (addqi3): If the destination operand is + a hard register other than an extended precision register, + emit addqi3_noclobber. + (*addqi3_noclobber_reload): New pattern added so that reload + will recognize a store of a pseudo, equivalent to the sum + of the frame pointer and a constant, as an add insn. + +1999-01-06 Manfred Hollstein + + * fixinc/fixincl.c: Re-indent according to the GNU standards. + fixinc/server.c: Likewise. + fixinc/server.h: Likewise. + +Wed Jan 6 10:43:29 1999 Andreas Schwab + + * config/m68k/m68k.c (const_uint32_operand): Remove CONSTANT_P_RTX + handling. + (const_sint32_operand): Likewise. + +Wed Jan 6 09:44:51 1999 Kaveh R. Ghazi + + * toplev.h: In addition to checking _JBLEN, also check if `setjmp' + is a macro when deciding if we can use `jmp_buf' in prototypes. + +Wed Jan 6 03:18:53 1999 Mark Elbrecht + + * configure.in (pc-msdosdjgpp): Set x_make to x-go32. + * configure: Rebuilt. + * i386/xm-go32.h: Define LIBSTDCXX. + * i386/x-go32: New. + * i386/go32.h (MD_EXEC_PREFIX): Define. + (FILE_NAME_ABSOLUTE_P): Define. + (LINK_COMMAND_SPEC): Define. + +Wed Jan 6 02:23:36 1999 "Charles M. Hannum" + + * expr.c (store_expr): If the lhs is a memory location pointed + to be a postincremented (or postdecremented) pointer, always + force the rhs to be evaluated into a pseudo. + +Wed Jan 6 00:54:21 1999 Geoff Keating + + * real.c (mtherr): Print more reasonable warning messages. + +Tue Jan 5 21:57:42 1999 Kaveh R. Ghazi + + * Makefile.in (gcc.o, prefix.o, cccp.o, cpplib.o): Depend on prefix.h. + + * cccp.c: Include prefix.h, don't prototype prefix.c functions. + (new_include_prefix): Constify char* parameters. + + * cppfiles.c (read_name_map): Likewise. + (append_include_chain): Likewise. Also, use a writable char* copy + of parameter `dir' which we then modify, rather than using the + parameter itself to store the new writable string. + (remap_filename): Constify some variables. Also, use a writable + char* to store an allocated string which we will be modifying. + + * cpplib.c: Include prefix.h, don't prototype prefix.c functions. + (cpp_start_read): Constify variable `str'. + + * cpplib.h (append_include_chain): Constify a char* parameter. + + * gcc.c Include prefix.h, don't prototype prefix.c functions. + (add_prefix, save_string): Constify char* parameters. + (fatal, error): Add ATTRIBUTE_PRINTF_1 to prototypes. + + * prefix.c: Include prefix.h. + (get_key_value, translate_name, save_string, update_path, + set_std_prefix): Constify various char* parameters and variables. + (save_string): Use xmalloc, not malloc. + (translate_name): Use a writable temporary variable to create and + modify a string before setting it to a const char*. + + * prefix.h: New file to prototype functions exported from prefix.c. + +Tue Jan 5 08:52:18 1999 Bruce Korb (korb@datadesign.com) + + * fixinc/fixincl.c (various): Added debug code so + Manfred can trace the processing. + + * fixinc/inclhack.def (sys/utsname.h): Provide forward declaration of + struct utsname on Ultrix V4.[35]. + + * fixinc/{fixincl.x|fixincl.sh|inclhack.sh} : Regenerated. + +Mon Jan 4 15:37:30 1999 Zack Weinberg + + * cpplib.c (skip_if_group): Split out the logic that handles + directive recognition to its own function. Don't use + parse markers; use a bare pointer into the buffer. Use + copy/skip_rest_of_line instead of doing it by hand. Remove + `return on any directive' mode which was never used, and take + only one argument. + (consider_directive_while_skipping): New function, subroutine + of skip_if_group. Logic streamlined a bit. + (conditional_skip, do_elif, do_else): Call skip_if_group with + only one argument. + +Mon Jan 4 15:27:30 1999 Zack Weinberg + + * cpplib.c (do_undef): EOF immediately after '#undef FOO' is not an + error. + +Mon Jan 4 11:55:51 1999 Jason Merrill + + * extend.texi (Bound member functions): Document. + +Mon Jan 4 11:01:48 1999 Kaveh R. Ghazi + + * mips-tdump.c (st_to_string, sc_to_string, glevel_to_string, + lang_to_string, type_to_string): Make return type const char*. + (print_symbol): Apply `const' keyword to a char*. + (print_file_desc): Cast structure member `crfd' to ulong when + comparing against one. + + * mips-tfile.c (pfatal_with_name): Apply `const' keyword to char*. + (fatal, error): Add ATTRIBUTE_PRINTF_1 to prototypes. + (progname, input_name): Apply `const' keyword to a char*. + Don't redundantly include sys/stat.h. + (alloc_info): Apply `const' keyword to a char*. + (st_to_string, sc_to_string): Likewise. + (hash_string): Cast variable `hash_string' to a symint_t when + comparing against one. + (add_string): Cast PAGE_USIZE to Ptrdiff_t when comparing against one. + Likewise cast it to long when comparing against one. + (add_local_symbol): Apply `const' keyword to a char*. + (add_ext_symbol): Likewise. + (add_unknown_tag): Likewise. + (add_procedure): Cast a printf-style field width to an int. + (add_file): Cast PAGE_USIZE to long when comparing against one. + (parse_begin): Cast a printf-style field width to an int. + (parse_bend): Likewise. + (parse_def): Likewise. + (parse_end): Likewise. + (mark_stabs): Mark parameter `start' with ATTRIBUTE_UNUSED. + (parse_stabs_common): Fix format specifier. + (parse_input): Change type of variable `i' to Size_t. + (write_object): Fix arguments to match format specifiers. + Cast variable `num_write' to long when comparing against one. + (read_seek): Cast variable `sys_read' to symint_t when comparing + against one. Fix arguments to match format specifiers. Cast + variable `size' to long when comparing against one. + (copy_object): Cast result of `sizeof' to int when comparing + against one. Fix arguments to match format specifiers. Cast + variable `ifd' to long when comparing against a signed value. + Likewise, likewise. + +Mon Jan 4 10:30:33 1999 Kaveh R. Ghazi + + * c-common.c (decl_attributes): Allow applying attribute `unused' + on a LABEL_DECL. + + * c-parse.in (label): Parse attributes after a label, and call + `decl_attributes' to handle them. + + * gansidecl.h (ATTRIBUTE_UNUSED_LABEL): Define. + + * genrecog.c (OUTPUT_LABEL, write_tree_1, write_tree): When + generating labels, mark them with ATTRIBUTE_UNUSED_LABEL. + + * invoke.texi: Note that labels can be marked `unused'. + +Sun Jan 3 23:32:18 1999 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Sun Jan 3 23:00:42 1999 Jeffrey A Law (law@cygnus.com) + + * optabs.c (emit_cmp_and_jump_insns): Use CONSTANT_P canonicalizing + RTL for a compare/jump sequence. + +Sun Jan 3 22:58:15 1999 Michael Hayes + + * optabs.c (emit_cmp_insn): Abort if asked to emit non-canonical RTL + for a target with HAVE_cc0 defined. + (emit_cmp_and_jump_insns): New function. + * expr.h (emit_cmp_and_jump_insns): Prototype it. + * loop.c (check_dbra_loop): Use it to replace calls + to emit_cmp_insn and emit_jump_insn and to canonicalize + the comparison if necessary. + * unroll.c (unroll_loop): Likewise. + +Sun Jan 3 21:01:04 1999 Rainer Orth + + * fixincludes (sys/utsname.h): Provide forward declaration of + struct utsname on Ultrix V4.[35]. + + * mips.md (div_trap): Use local labels instead of dot-relative + branches. + +Sun Jan 3 20:40:34 1999 Jeffrey A Law (law@cygnus.com) + + * pa.md (branch, negated branch): Handle (const_int 0) as first + source operand. + * pa.c (output_cbranch): Likewise. + +Sun Jan 3 03:20:38 1999 David Edelsohn + + * rs6000.c (rs6000_stack_info): Undo spurious part of last + change. + +1999-01-01 Manfred Hollstein + + * extend.texi (__builtin_constant_p): Add missing @smallexample. + +Fri Jan 1 11:48:20 1999 Jeffrey A Law (law@cygnus.com) + + * i386.md (doubleword shifts): Fix dumb mistakes in previous change. diff --git a/gcc/ChangeLog.3 b/gcc/ChangeLog-2000 similarity index 52% rename from gcc/ChangeLog.3 rename to gcc/ChangeLog-2000 index 52df96025fbf..536137bb6570 100644 --- a/gcc/ChangeLog.3 +++ b/gcc/ChangeLog-2000 @@ -1,3 +1,15269 @@ +2000-12-31 Alexandre Oliva + + * resource.c (mark_referenced_resources): Abort() before + attempting to mark a pseudo register. + (mark_set_resources): Likewise. + +2000-12-31 Philip Blundell + + * config/arm/linux-gas.h (CLEAR_INSN_CACHE): Add missing asm + operands. + +2000-12-30 Richard Henderson + + * dbxout.c (dbxout_block): Invert logic on eliding LBRAC/RBRAC. + Initialize variables properly for DBX_LBRAC_FIRST. + +2000-12-30 Richard Kenner + + * expr.c (expand_expr, case COMPONENT_REF): Fix typo in last change. + +2000-12-30 Kaveh R. Ghazi + + * builtins.c (validate_arglist): New function, use it. + +2000-12-30 Philip Blundell + + * config/arm/arm.c (arm_expand_prologue): Fix typos in error + message and comment. Note location of testcase for an unhandled + situation. + +2000-12-30 Jeffrey Oldham + + * defaults.h (BUILD_VA_LIST_TYPE): New definition. + * tree.c (build_common_tree_nodes_2): Ensure the va_list_type_node + is a copy, not an alias. + +2000-12-30 Richard Kenner + + * calls.c (calls_function_1, case CONSTRUCTOR): New case. + + * alias.c (alias_sets_conflict_p): New function. + (mems_in_disjoint_alias_sets_p): Use it. + (readonly_fields_p): Moved from expr.c; check for record type. + (objects_must_conflict_p): New function. + * calls.c (expand_call): Use assign_temp as much as possible, use + readonly variant if assigned once, and don't set memory attributes. + (emit_library_call_value_1, store_one_arg): Likewise. + * integrate.c (expand_inline_function): Likewise. + * stmt.c (expand_asm_operands, expand_return): Likewise. + * expr.c (copy_blkmode_from_reg, store_constructor): Likewise. + (store_field, save_noncopied_parts, expand_expr): Likewise. + (expand_expr_unaligned): Likewise. + (readonly_fields_p): Moved to alias.c. + (safe_from_p): Rework handling of SAVE_EXPR. + MEMs ony conflict if alias sets conflict; likewise for INDIRECT_REF. + * function.c (struct temp_slot): Delete field ALIAS_SET; add TYPE. + (assign_stack_for_temp): Use objects_must_confict_p. + Set all memory attributes from type, if specified. + (mark_temp_slot): Mark TYPE field. + * tree.h (alias_sets_conflict_p, readonly_fields_p): New decls. + (objects_must_conflict_p): Likewise. + + * stmt.c (expand_decl): Don't use assign_stack_temp in error case. + (add_case_node): No need to copy nodes anymore. + +2000-12-30 Alexandre Oliva + + * config/sh/sh.c (split_branches): Don't dereference re-computed + `beyond' before checking it's non-NULL. + +2000-12-29 Robert Lipe + + Remove COFF support from i?86-pc-sco3.2v5. + * i386/sco5.h (PREFERRED_DEBUGGING_TYPE): Change to Dwarf II. + (TARGET_ELF): Now always true. + (SUBTARGET_SWTICHES: )Remove -mcoff. + + * i386/t-sco5 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, + MULTILIB_EXCEPTION): Nuke coff. + (CRTSTUFF_T_CFLAGS_S): Deleted. + (TARGET_LIBGCC2_CFLAGS): Added. + +2000-12-29 Alexandre Oliva + + * varasm.c (output_constant_def): Don't ENCODE_SECTION_INFO + twice. Update desc->rtl and ->label, in case ENCODE_SECTION_INFO + modifies them. + +2000-12-29 Bernd Schmidt + + * ia64.c (ia64_expand_load_address): Accept additional scratch + register argument. All callers & prototype changed. + Use scratch register when generating load_symptr insns. + * ia64.md (movdi_symbolic): Clobber a scratch register. Use it + when calling ia64_expand_load_address. + (movdi): Generate movdi_symbolic with additional operand. + (load_gprel64): Use pic_offset_table_rtx instead of (reg:DI 1). + (load_symptr): Likewise. Use additional operand as a scratch + register instead of generating it here. + + * basic-block.h: Add a comment. + * flow.c (PROP_POSTRELOAD): New macro. + (update_life_info): Add it to prop_flags. + (mark_set_1): If it is set, compute REG_N_SETS for the original + register number of a hard reg. + + * emit-rtl.c (gen_raw_REG): New function. + (gen_rtx_REG, gen_reg_rtx, init_emit_once): Use it instead of + gen_rtx_raw_REG. + * print-rtl.c (print_rtx): Print ORIGINAL_REGNO. + * final.c (alter_subreg): Update it. + * regrename.c (do_replace): Likewise. Use gen_raw_REG. + * rtl.def (REG): Update comment. + * rtl.h (X0UINT, ORIGINAL_REGNO): New macros. + (gen_raw_REG): Declare. + +2000-12-29 Richard Kenner + + * tree.c (get_set_constructor_bits): Use host_integerp and + tree_low_cst. + + * local-alloc.c (update_equiv_regs): Don't use copy_rtx on PATTERN. + + * toplev.c (main): Call xmalloc_set_program_name. + * gcc.c (main): Likewise. + +2000-12-29 Philip Blundell + + * config/arm/arm.c (arm_override_options): Fix typo in warning + message. + +2000-12-29 Richard Henderson + + * config/alpha/alpha.c (alpha_expand_block_move): Initialize + src_align and dst_align in bits. Do unaligned quadword loads + if possible for BWX too. + (alpha_expand_block_clear): Initialize align in bits. Track + small leading offsets into a larger alignment. Play games with + stq_u for large 4-byte aligned blocks. Use load/mask/store + for appropreately aligned heads and tails. + +2000-12-29 Alexandre Oliva + + * function.c (assign_parms): Convert arguments passed by + reference to the right mode. + +2000-12-28 Geoffrey Keating + + * c-parse.in (select_or_iter_stmt): Use truthvalue_conversion + on the condition of a FOR statement, so that it gets typechecked + and optimized. + +2000-12-29 Alexandre Oliva + + * c-decl.c (grokdeclarator): Prevent crash in case of overflow in + array size. + + * calls.c (emit_library_call_value_1): Add to call_fusage the + stack slot assigned to argument passed by reference. + +2000-12-28 Jeffrey Oldham + + * toplev.h (extern really_sorry): Remove extern declaration for + nonexistent function. + +2000-12-28 Jeffrey Oldham + + * varasm.c (initializer_constant_valid_p): Indicate subtraction of + pointers to the same string constant is absolute. + +2000-12-28 Joseph S. Myers + + * c-common.c (enum format_type): Add strfmon_format_type. + (decl_attributes): Handle format attributes strfmon and + __strfmon__. + (FMT_FLAG_USE_DOLLAR, FMT_FLAG_ZERO_WIDTH_BAD, + FMT_FLAG_EMPTY_PREC_OK): Define. + (format_char_info): Update comment for flag_chars. + (format_flag_spec): Add skip_next_char. + (format_kind_info): Add left_precision_char. + (printf_flag_specs, scanf_flag_specs, strftime_flag_specs, + format_types): Update for these new structure members and flags. + (time_char_table): Make const. + (strfmon_length_specs, strfmon_flag_specs, strfmon_flag_pairs, + monetary_char_table): New. + (format_types): Add details of strfmon formats. + (init_function_format_info): Create default attribute for strfmon. + (check_format_info_main): Check the new flags. Handle + skip_next_char and left precision. + * toplev.c (documented_lang_options): Update description of + -Wformat. + * extend.texi: Document strfmon format attributes. Document + attribute forms such as __printf__. Clarify format_arg attribute + documentation. + * invoke.texi (-Wformat): Update for strfmon formats. + +2000-12-28 Andreas Jaeger + + * expmed.c (store_bit_field): Fix last patch. + +2000-12-28 Alexandre Oliva + + * config/sh/crt1.asm (start_l): `__SH4_SINGLE_ONLY__' was missing + the trailing `__'. + +2000-12-28 Alan Lehotsky + + * expmed.c (store_bit_field): Correctly compute smallest mode that + is sufficient to contain all bits we are storing. + +2000-12-27 Kaveh R. Ghazi + + * builtins.c (build_function_call_expr): New function. Use it + everywhere in lieu of manually constructing a CALL_EXPR. + +2000-12-27 Chandrakala Chavva + + * calls.c (store_one_arg): If parm is passed both in stack and in + register and offset is greater than reg_parm_stack_space, split + the offset and call emit_push_insn(). + +2000-12-27 Nick Clifton + + * ifcvt.c (noce_emit_store_flag): Handle jump insns that are + PARALLEL. + +2000-12-27 Alexandre Oliva + + * rtl.c (copy_most_rtx, shallow_copy_rtx): Copy frame_related + flag. + +2000-12-27 Bruce Korb + + * fixinc/Makefile.in: fix for ancient Bourne shell + * fixinc/Makefile.BEOS: obsolete + * fixinc/Makefile.DOS: obsolete + * fixinc/fixincl.sh(LINKS): use `test -d' rather than `ls' for testing + +2000-12-27 Bernd Schmidt + + * sched-deps.c (get_condition, conditions_mutex_p): New functions. + (add_dependence): Use them to avoid adding unnecessary dependencies + between conditionally executed insns. + (sched_analyze_1, sched_analyze_2, sched_analyze_insn): Don't free + dependency lists if current insn is a COND_EXEC. + +2000-12-27 Geoffrey Keating + + * config/rs6000/rs6000.md (define_attr "length"): Correct + calculation. + +2000-12-26 Kazu Hirata + + * config/h8300/h8300.c: Fix a comment typo. + (get_shift_alg): Fix a typo in the assembly code for 12-bit + ASHIFTRT in HImode. Do not output extra whitespace after one line + of assembly code. Output a tab after an opcode instead of a + space. + (emit_a_shift): Output a tab after an opcode instead of a space. + +2000-12-23 Marek Michalkiewicz + + * config/avr/avr.c (out_movqi_r_mr, out_movhi_r_mr, out_movsi_r_mr, + out_movsi_mr_r, out_movqi_mr_r, out_movhi_mr_r): Use %o instead of + %4 in output templates, do not modify operands passed by the caller. + +2000-12-23 Joseph S. Myers + + * builtins.def (BUILT_IN_LABS, BUILT_IN_LLABS, BUILT_IN_IMAXABS): + Don't define. + * builtins.c (expand_builtin): Don't handle BUILT_IN_LABS, + BUILT_IN_LLABS and BUILT_IN_IMAXABS. + * c-common.c (c_common_nodes_and_builtins): Use BUILT_IN_ABS for + builtin labs, llabs and imaxabs. + (expand_tree_builtin): Don't handle BUILT_IN_LABS, BUILT_IN_LLABS + and BUILT_IN_IMAXABS. + +2000-12-23 Joseph S. Myers + + * c-common.c (builtin_function_2): New function. + (c_common_nodes_and_builtins): Use it to define each pair (foo, + __builtin_foo) of builtins in one place. + +2000-12-22 Joseph S. Myers + + * gccbug.in: Add libgcj and preprocessor categories. + +2000-12-22 Bernd Schmidt + + * config/ia64/ia64.c (itanium_reorder): Only schedule stops in + the final scheduling pass. + +2000-12-22 Nick Clifton + + * config/arm/arm.h (struct machine_function): Add new field + 'lr_save_eliminated'. + * config/arm/arm.c (arm_compute_save_reg_mask): Do not include the + link register if its save has been eliminated. + (output_arm_prologue): Mention if the save of the link register + has been eliminated. + (output_arm_epilogue): Rename 'live_regs_mask' to + 'saved_regs_mask'. + Test 'saved_regs_mask' for the link register, not regs_ever_live. + (arm_expand_prologue): If the link register has not been saved set + lr_save_eliminated and emit a USE to prevent later passes from + scavenging it. + + * dwarf2out_frame_debug_expr: Allow the (scratch) frame + pointer to be initialized from the stack pointer plus a + constant. + +2000-12-22 Bernd Schmidt + + * regrename.c (struct du_chain): New field "earlyclobber". + (enum scan_actions): Remove unused entry "note_reference". + (enum scan_actions_name): Likewise. + (note_sets, clear_dead_regs, merge_overlapping_regs): New static + functions. + (regrename_optimize): Use them to compute unavailable regs; get + rid of the more simpleminded code we used to have here. + Use a tick array to ensure registers are allocated in a more + round-robin way. Disable code that only optimizes registers + that were seen more than once. + (referenced_regs): Remove variable. + (scan_rtx_reg): New arg "earlyclobber". All callers changed. + Store its value in newly generated du_chain structures. + Add new du_chains at the end, not the start, of the list. + Don't handle the "note_reference" action. + (scan_rtx): New arg "earlyclobber". All callers changed. + (build_def_use): Lose code to keep track of referenced regs. + +2000-12-22 Kaveh R. Ghazi + + * Makefile.in (sched-deps.o, sched-rgn.o): Fix dependency typo. + + * fp-bit.h (usi_to_float): Add prototype. + + * i386.c (ix86_expand_builtin): Delete unused label. + + * dwarf2out.c (file_info_cmp): Prototype. + (dwarf2out_line): Hide variable `old_in_use'. + + * objc-act.c (objc_fatal): Delete. + + * sched-vis.c (visualize_stall_cycles): Remove unused variable. + + * system.h (getopt): Fix error in last change. + + * varasm.c (assemble_trampoline_template): Constify. + +2000-12-22 Jason Merrill + + * collect2.c (main): Use auto_demangling. + +2000-12-22 Alexandre Oliva + + * function.c (assign_parms): Update parm's DECL_INCOMING_RTL + when optimizing PARALLEL to REG. + +2000-12-22 Graham Stott + + * reload.c (update_auto_inc_notes): New, broken out from ... + (find_reloads_address_1): ... use here, also correct possible + use of uninitialized reloadnum. + +2000-12-21 David O'Brien + + * config/freebsd.h (LIB_SPEC): remove -kthread option. + +2000-12-22 Michael Hayes + + * resource.c (mark_set_resources): Use MARK_SRC_DEST for + PRE_MODIFY and POST_MODIFY cases. + + * rtlanal.c (side_effects_p): Handle PRE_MODIFY and POST_MODIFY. + +2000-12-22 Michael Hayes + + * md.texi (Looping Patterns): New node. + +2000-12-21 Joseph S. Myers + + * gcc.texi, cpp.texi: Update last-updated dates. + +2000-12-21 Chandrakala Chavva + + * varasm.c (output_addressed_constants): Use language specific + expander on unknown nodes. + +2000-12-21 Graham Stott + + * combine.c (distribute_notes): Handle REG_NON_LOCAL_GOTO notes. + +2000-12-21 Bernd Schmidt + + * Makefile.in (out_object_file): Depend on sched-int.h. + * rtl.h (single_set_1): New macro. + (single_set_2): Renamed from single_set_1 and extra argument added. + * rtlanal.c (single_set_2): Likewise. + + * config/ia64/ia64-protos.h (get_bundle_name, ia64_issue_rate, + ia64_adjust_cost, ia64_sched_init, ia64_sched_finish, + ia64_sched_reorder, ia64_sched_reorder2, ia64_variable_issue): + Declare. + * config/ia64/ia64.c: Include "sched-int.h". + (hard_regno_rename_ok): Also disallow renaming from the various + reg_save_* regs. + (ia64_safe_itanium_requiers_unit0, ia64_safe_itanium_class, + ia64_safe_type, init_insn_group_barriers, group_barrier_needed_p, + safe_group_barrier_needed_p, fixup_errata): New static functions. + (rtx_needs_barrier): Handle bundle selector and cycle display + insns. + (emit_insn_group_barriers): Accept additional FILE * arg. All + callers changed. Rework to only generate stop bits between + basic blocks that haven't been inserted by scheduling. + (struct bundle, struct ia64_packet): New structures. + (NR_BUNDLES, NR_PACKETS): New macros. + (bundle, packets, type_names): New static arrays. + (ia64_final_schedule): New variable. + (ia64_single_set, insn_matches_slot, ia64_emit_insn_before, + gen_nop_type, finish_last_head, rotate_one_bundle, rotate_two_bundles, + cycle_end_fill_slots, packet_matches_p, get_split, find_best_insn, + find_best_packet, itanium_reorder, dump_current_packet, schedule_stop): + New static functions. + (ia64_issue_rate, ia64_sched_init, ia64_sched_reorder, + ia64_sched_finish, ia64_sched_reorder2, ia64_variable_issue): New + functions. + (ia64_reorg): Perform a final scheduling pass. + * config/ia64/ia64.h (CONST_COSTS): Slightly increase SYMBOL_REF costs. + (MAX_CONDITIONAL_EXECUTE, ADJUST_COST, ISSUE_RATE, MD_SCHED_INIT, + MD_SCHED_REORDER, MD_SCHED_REORDER2, MD_SCHED_FINISH, + MD_SCHED_VARIABLE_ISSUE): Define macros. + (ia64_final_schedule): Declare variable. + * config/ia64/ia64.md (attr itanium_class): Add some more classes. + (attr type): Account for them. + (itanium_requires_unit0): New attribute. + (function units): Rewrite. + (some splitters): Don't create scheduling barriers here. + (gr_spill_internal, gr_restore_internal): Don't predicate the + pseudo-op. + (nop_m, nop_i, nop_f, nop_b, nop_x, cycle_display, cycle_display_1, + bundle_selector): New patterns. + (insn_group_barrier): Now has an operand. + +2000-12-21 DJ Delorie + + * dwarf2out.c (simple_decl_align_in_bits): new + (field_byte_offset): Try both the type align and the + decl align, use whichever works, preferring the type align. + +2000-12-21 Joseph S. Myers + + * gccbug.in: Fix typo. + +2000-12-20 Benjamin Kosnik + + * Makefile.in (gcc_gxx_target_include_dir): Use instead of + build_tooldir and libstdcxx_incdir. + +2000-12-20 Robert Lipe + + * haifa-sched.c (schedule_block): Provide empty source statement + if not MD_SCHED_REORDER2. + +2000-12-20 Richard Henderson + + * rtl.h (REG_NON_LOCAL_GOTO): New. + * rtl.c (reg_note_name): Update. + * stmt.c (expand_goto): Emit a REG_NON_LOCAL_GOTO note. + * builtins.c (expand_builtin_longjmp): Likewise. + * flow.c (make_edges): Check for REG_NON_LOCAL_GOTO and do + not emit an edge. + +2000-12-20 Marek Michalkiewicz + + * config/avr/avr.c (out_movsi_r_mr, out_movsi_mr_r, out_movhi_mr_r): + Do not output undefined opcodes where source or destination register + overlaps with modified pointer register. Handle (X + d) addresses. + * config/avr/avr.md (*movhi, *movsi, *movsf): Correct insn length + in alternatives with memory operand. + +2000-12-20 Richard Henderson + + * c-typeck.c (build_asm_stmt): New, broken out from ... + (c_expand_asm_operands): ... here. Just do rtl expansion. + (c_expand_return): Return the new stmt node. + (c_start_case, do_case): Likewise. + * c-common.c (c_expand_expr_stmt): Likewise. + * c-common.h: Update declarations. + * c-tree.h: Likewise. + * c-semantics.c (build_stmt): Use STMT_LINENO not TREE_COMPLEXITY. + * c-parse.in (fndef): Set DECL_SOURCE_LINE to the open brace. + (nested_function, notype_nested_function): Likewise. + (compstmt): Return the compound statement not the binding level. + (lineno_labeled_stmt): Simplify. + (lineno_stmt, lineno_label): Set STMT_LINENO. + (stmt, label): Return the new stmt node. + +2000-12-20 Bernd Schmidt + + * Makefile.in (OBJS): Add sched-ebb.o. + (sched-ebb.o): New rule. + (sched-vis.o): Depend on hard-reg-set.h and $(BASIC_BLOCK_H). + (haifa-sched.o): Depend on insn-flags.h. + * haifa-sched.c: Include "insn-flags.h". + (priority): Don't access BLOCK_NUM, use the new contributes_to_priority + callback. + * rtl.h (schedule_ebbs): Declare. + * sched-int.h (struct sched_info): Add new members + contributes_to_priority and compute_jump_reg_dependencies. + * sched-rgn.c (contributes_to_priority, compute_jump_reg_dependencies): + New functions. + (region_sched_info): Add them. + * sched-vis.c: Include "hard-reg-set.h" and "basic-block.h". + * sched-ebb.c: New file. + * sched-deps.c (sched_analyze_insn): Add code to handle JUMP_INSNs. + + * flow.c (ior_reg_cond, and_reg_cond, elim_reg_cond): Properly + handle all relational operators. + +2000-12-20 Alexandre Oliva + + * final.c (output_addr_const): Use ASM_OUTPUT_SYMBOL_REF. + * tm.texi: Document it. + +2000-12-19 Benjamin Kosnik + + * Makefile.in (-DGPLUSPLUS_TOOL_INCLUDE_DIR): Use build_tooldir + instead of gcc_tooldir. + +2000-12-19 John David Anglin + + * system.h (getopt): Update prototype to match include/getopt.h. + +2000-12-19 John David Anglin + + From Jeff Law. + * pa.c (basereg_operand): Simplify. + +2000-12-19 Bernd Schmidt + + * haifa-sched.c (rm_line_notes): Arguments are now head and tail, + not block number. All callers and prototype changed. + (set_priorities): Likewise. + (save_line_notes): Add head and tail arguments; all callers and + prototype changed. + (restore_line_notes): Likewise. Don't crash on insns generated + during scheduling. + (schedule_block): Don't use BLOCK_HEAD/BLOCK_END macros. + Call MD_SCHED_INIT with additional argument. + When starting a new cycle, emit cycle_display insns if available. + Don't stop scheduling when encountering a JUMP_INSN, but add another + call to schedule_more_p in the inner loop. + Call MD_SCHED_REORDER2 after scheduling an insn. + Call MD_SCHED_FINISH once all insns are scheduled. + (sched_init): Compensate for the fact that get_block_head_tail + doesn't include leading notes. + * sched-deps.c (free_deps): Free vectors here. + * sched-rgn.c (compute_block_backward_dependencies): Not here. + (last_was_jump): New static variable. + (schedule_more_p): Test it. + (init_ready_list): Initialize it. + (can_schedule_ready_p): Set it if we have a JUMP_INSN. + + * config/i386/i386.h (MD_SCHED_INIT): Add new arg. + * config/m32r/m32r.h (MD_SCHED_INIT): Add new arg. + * config/sparc/sparc.h (MD_SCHED_INIT): Add new arg. + + * md.texi (cycle_display): Document. + * tm.texi (MD_SCHED_INIT): Document new arg. + (MD_SCHED_FINISH, MD_SCHED_REORDER2): Document. + + * flow.c (ior_reg_cond, nand_reg_cond, not_reg_cond): Rewrite + to use different representation. All callers changed. + (and_reg_cond): Renamed from nand_reg_cond; caller changed. + (init_propagate_block_info): Don't test flags to determine + whether to compute conditional lifetimes. + Adjust code for new representation of conditional lifetimes. + (mark_regno_cond_dead): Similar adjustment. + (free_reg_cond_life_info): Similar adjustment. + (elim_reg_cond): New function. + (flush_reg_cond_1): Use it. + +2000-12-19 Catherine Moore + + * reload1.c (reload_combine): Take multi-hard-regs into account + when processing CALL_INSN_FUNCTION_USAGE. + +2000-12-19 Joseph S. Myers + + * invoke.texi (-print-search-dirs): Make references to cpp refer + to cpp0 instead. + +2000-12-18 Kaveh R. Ghazi + + * fold-const.c (tree_expr_nonnegative_p): Treat truth values as + non-negative. + +Tue Dec 19 00:37:08 2000 J"orn Rennecke + + * reload.c (push_reload): When using a dying register for the reload + register in an in-out reload, use outmode if wider than inmode. + +2000-12-19 Joseph S. Myers + + * config/d30v/d30v.h (EXIT_BODY): Update comment. + +2000-12-18 Joseph S. Myers + + * config.gcc (*-*-linux*): Don't define HAVE_ATEXIT or BSTRING. + * tm.texi (EXIT_BODY): Update documentation. + * config/freebsd.h, config/netware.h, config/arm/coff.h, + config/arm/conix-elf.h, config/arm/unknown-elf.h, + config/d30v/d30v.h, config/mcore/mcore.h, config/pj/pj.h, + sparc/sp86x-aout.h: Remove definitions of HAVE_ATEXIT (some + commented out) and associated comments. + +2000-12-18 Joseph S. Myers + + * c-common.c (STD_C9L, ADJ_STD): Define. + (printf_length_specs, scanf_length_specs): Mark "ll" as standard + STD_C9L. + (T99_LL): Rename to T9L_LL. + (T99_ULL): Rename to T9L_ULL. + (print_char_table, scan_char_table): Use T9L_LL and T9L_ULL + instead of T99_LL and T99_ULL. + (check_format_info_main): Use ADJ_STD on all format standard + versions being compared. + * c-common.h: Declare warn_long_long. + * c-tree.h: Don't declare warn_long_long. + +2000-12-18 Joseph S. Myers + + * COPYING: Update to current + ftp://ftp.gnu.org/pub/gnu/Licenses/COPYING-2.0 (fixes references + to 19yy as example year in copyright notice). + +2000-12-18 Neil Booth + + * c-lex.c (cb_file_change): Treat in_system_header as strictly + boolean (0 or 1). + +2000-12-18 Neil Booth + + * cppmain.c: Update print.lineno with -P. + +2000-12-18 Neil Booth + + * c-lex.c: s/change_file/file_change. + * cpplib.h: Similarly. + * cppmain.c: Similarly. + * fix-header.c: Similarly. + * cppfiles.c (stack_include_file): Pass the buffer location and + size to cpp_push_buffer. Generate the file_change callback, + so that sysp is already set. + * cpphash.h: Add _cpp_do_file_change. + * cpplib.c (do_line): Set buffer->sysp directly. Generate the + file_change callback after setting sysp. + (_cpp_do_file_change): Handle FC_ENTER and the FC_RENAME exception + here. + (cpp_push_buffer): Don't generate a callback. Clear sysp. + (cpp_pop_buffer): Clean up logic. + +2000-12-18 Benjamin Kosnik + + * configure.in (gcc_gxx_include_dir): Simplify. + (libstdcxx_incdir): Export. + * configure: Regenerate. + * Makefile.in (PREPROCESSOR_DEFINES): Add in + GPLUSPLUS_TOOL_INCLUDE_DIR bits here.. + (libstdcxx_incdir): Add. + * cppdefault.c (GPLUSPLUS_TOOL_INCLUDE_DIR): Add search path. + +2000-12-18 Neil Booth + + * c-lex.c (lex_lineno): Remove. + (init_c_lex, c_lex): Remove lex_lineno. + (cb_change_file): Update lineno correctly, both before calling + push_srcloc and before leaving the function. + (cb_def_pragma): Set lineno before outputting diagnostics. + +Sun Dec 17 18:45:41 2000 Richard Kenner + + * print-tree.c (print_node): Print DECL_USER_ALIGN and TYPE_USER_ALIGN. + Print TYPE_MIN_VALUE and TYPE_MAX_VALUE for REAL_TYPE. + Use print_node_brief to print bounds. + +2000-12-17 Neil Booth + + * cpplib.h (struct cpp_reader): Remove references to string_pool + and temp_string_pool. + * cppinit.c (cpp_create_reader, cpp_cleanup): Similarly; using + ident_pool in place. + * cpplex.c (parse_number, unescaped_terminator_p, parse_string, + save_comment, cpp_token_as_text): Similarly. + * cpplib.c (do_define, glue_header_name, parse_assertion): Similarly. + * cppmacro.c (make_number_token, builtin_macro, lock_pools, + unlock_pools, stringify_arg, paste_tokens): Similarly. + +Sun Dec 17 12:41:48 2000 Richard Kenner + + * dwarf2out.c (loc_descriptor_from_tree, case NOP_EXPR): New case. + (loc_descriptor_from_tree, case CONVERT_EXPR): Likewise. + (loc_descriptor_from_tree, case NON_LVALUE_EXPR): Likewise. + +2000-12-17 Richard Earnshaw + + * Makefile.in (check-po): Use $(MAKE). + (risky-stage1, risky-stage2, risky-stage3, risky-stage4): Likewise. + +2000-12-17 Neil Booth + + * cppmain.c (check_multiline_token): New function. + (scan_buffer): Use it. + (cb_change_file): Restructure to avoid warning. + * cpperror.c (print_location): Initialize col. + +2000-12-14 Philipp Thomas + + * protoize.c (main): Correctly set locale categories. + * gcc.c (main): Likewise. + * cppmain.c (general_init): Likewise. + * toplev.c (main): Likewise. + * gcov.c (main): Likewise. + * collect2.c (main): Likewise. + +2000-12-17 Kaveh R. Ghazi + + * c-common.c (c_common_nodes_and_builtins): Create a + cstring_endlink, use it. Rename int_ftype_string_string to + int_ftype_cstring_cstring, string_ftype_string_int to + string_ftype_cstring_int, and string_ftype_string_string to + string_ftype_cstring_cstring. Prefer sizetype_endlink and + int_endlink to manually recreating them. Fix the prototype + set for __builtin_strspn/__builtin_strcspn. + +2000-12-12 Marek Michalkiewicz + + * config/avr/avr.c (out_set_stack_ptr): Update comment. + (print_operand): Add support for %~ and %o. + +2000-12-17 Herman A.J. ten Brugge + + * c4x.h: Add ASM_OUTPUT_DEF definition for bounded pointer code. + +2000-12-17 Neil Booth + + * c-lex.c: Move main_input_filename handling to FC_ENTER. Clean up. + * cpperror.c (print_containing_files): Get right line number. + (print_location): Output column of 1 if 0. + * cppfiles.c (stack_include_file): cpp_push_buffer handles + the callback. + * cpphash.h (_cpp_do_file_change): No longer external. + * cpplib.c (do_file_change): Now local to cpplib.c. + (do_line): Fake a buffer stack for preprocessed files. + (cpp_push_buffer): Create a file_change callback. Handle faked + buffers. + (cpp_pop_buffer): Similarly. + * cpplib.h: BUF_FAKE: New buffer type. + * cppmain.c: Update to handle correct file renaming where a + #line is the first line of the main file, and produce only + the renamed file, not the original file, as output. + +2000-12-17 Michael Hayes + + * config/c4x/c4x.md: Remove redundant @s from output patterns. + +2000-12-17 Michael Hayes + Herman A.J. ten Brugge + + * config/c4x/c4x.h (REGISTER_TARGET_PRAGMAS): Call c4x_init_pragma. + + * config/c4x/c4x-protos.h (c4x_init_pragma): New prototype. + + * config/c4x/c4x.c (c4x_init_pragma): New function. + (c_lex_func): New variable. + (c4x_parse_pragma): Use c_lex_func. + +2000-12-17 Michael Hayes + Herman A.J. ten Brugge + + * config/c4x/c4x.h (MD_INIT_BUILTINS): Add void_list_node argument + to c4x_init_builtins. + + * config/c4x/c4x-protos.h (c4x_init_builtins): Add tree argument. + + * config/c4x/c4x.c (c4x_init_builtins): Add tree argument. + (c4x_output_ascii): Fix. + +2000-12-17 Michael Hayes + Herman A.J. ten Brugge + + * config/c4x/c4x.h (MD_INIT_BUILTINS, MD_EXPAND_BUILTIN): Define. + + * config/c4x/c4x-protos.h (c4x_init_builtins): New prototype. + (c4x_expand_builtin): Likewise. + + * config/c4x/c4x.c (c4x_init_builtins): New function. + (c4x_expand_builtin): Likewise. + + * config/c4x/c4x.md (floatunsqihf2): New pattern. + (*floatqihf2_set, *fixhfqi_set, fix_trunchfqi2): Likewise. + (fixuns_trunchfqi2, toieee, frieee, *ldhf_conditional): Likewise. + (*ldhf_conditional_noov, movhfcc, trap, cond_trap_cc): Likewise. + (*toieee_movqf_clobber, *frieee_movqf_clobber): Likewise. + +2000-12-17 Michael Hayes + + * libgcc2.h: Use Wtype for SItype and DWtype for DItype in prototypes. + * libgcc2.c (__absvsi2): Use Wtype and DWtype. + (__absvdi2, __addvsi3, __addvdi3, __subvsi3): Likewise. + (__subvdi3, __mulvsi3, __mulvdi3, __negvsi2, __negvdi2): Likewise. + +2000-12-16 Alexandre Oliva + + * config/sh/sh.h (INITIALIZE_TRAMPOLINE): Enclose the block + statement in do/while(0). + +Sat Dec 16 19:56:24 MET 2000 Jan Hubicka + + * i386.md (ashrsi3_cmpno, ashrhi3_cmpno, ashrqi3_cmpno, lshrsi3_cmpno, + lshrhi3_cmpno): Remove redundant '@' from the template. + + * i386.md (cmpstrsi_1): Fix type of the compare. + + * genattrtab.c (attr_rtx_cost): New function. + (simplify_test_exp): Avoid overactive inlining; use temporary + obstacks for tests. + +Sat Dec 16 10:41:11 2000 Richard Kenner + + * diagnostic.c (finish_abort): Deleted. + (fatal): Add code from finish_abort. + (error_recursion, fancy_abort): Call fatal, not finish_abort. + (trim_filename): Remove leading "../". + * diagnostic.h (finish_abort): Deleted. + * toplev.c (crash_signal): Call fatal, not finish_abort. + + * stor-layout.c (place_field): Treat overflowing DECL_SIZE_UNIT + as if size were variable. + + * expmed.c (expand_mult): Write REG_EQUAL note with proper mode. + +2000-12-16 Neil Booth + + * tradcpp.c: T_WARNING: New. + (do_warning): New function. + (finclude): Skip past the newline and increase the line number + before calling output_line_command. + (do_line): Skip the new line after output_line_command. Don't + pre-decrement the line number. + +2000-12-15 Diego Novillo + + * i386/unix.h (ASM_OUTPUT_MI_THUNK): Fix references to + _GLOBAL_OFFSET_TABLE_ when using Intel syntax. + +2000-12-15 Jakub Jelinek + + * gcc.c (cpp_options): Pass -fno-operator-names. + * cpplib.h (struct cpp_options): Add operator_names. + * cppinit.c (cpp_create_reader): Initialize it. + (initialize_builtins): If -fno-operator-names, don't add + C++ alternate operator names. + (COMMAND_LINE_OPTIONS): Add -fno-operator-names. + (cpp_handle_option): Clear operator_names. + +2000-12-15 Jason Merrill + + * jump.c (jump_optimize_1): Don't delete the line note after the + prologue even if it seems redundant. + + * config/arm/arm.c (arm_expand_prologue): Set RTX_FRAME_RELATED_P + on all insns used to adjust the stack. + +Fri Dec 15 15:32:16 MET 2000 Jan Hubicka + + * combine.c (cant_combine_insn_p): Get around SUBREGs when determining + hardreg<->reg moves. + +Fri Dec 15 14:48:37 MET 2000 Jan Hubicka + + * genrecog.c (add_to_sequence): Remove special case for + const_int_operand. + (maybe_both_true): Return 1 when falling out of sequence when + trying to find common position in the pattern. + +Fri Dec 15 14:44:51 MET 2000 Jan Hubicka + + * integrate.c (copy_rtx_and_substitute): Copy mode too. + +Fri Dec 15 14:11:57 MET 2000 Jan Hubicka + + * flow.c (notice_stack_pointer_modification_1): Cleanup. + +2000-12-15 Alexandre Oliva + + * function.c (adjust_trampoline_addr): New function. + (trampoline_address): Call it instead of round_trampoline_addr(). + * tm.texi (TRAMPOLINE_ADJUST_ADDRESS): Document it. + +2000-12-14 Zack Weinberg + + * cppfiles.c (hack_vms_include_specification): Delete function + (not used since 1998). + +Fri Dec 15 03:37:51 2000 J"orn Rennecke + + * haifa-sched.c (sched_init): Don't put a note in front of any BARRIER. + +2000-12-14 Jim Wilson + + * alias.c (get_alias_set): Call record_component_aliases for + COMPLEX_TYPE. + (record_component_aliases): Handle COMPLEX_TYPE. + +2000-12-14 Kaveh R. Ghazi + + * fixinc/gnu-regex.c: Disable NLS. + +2000-12-14 Richard Henderson + + * config/alpha/alpha.c (alpha_emit_conditional_move): Do not swap + comparison operands when that would create non-canonical rtl. + + * config/i386/i386.md (umulsi3_highpart): Remove * from name. + (smulsi3_highpart): Likewise. + +2000-12-14 Neil Booth + + * gcc.c (cpp_options): Add -remap. + +2000-12-14 Neil Booth + + * gcc.c (cpp_options): Update to use '&'. + (struct switchstr): Change type of validated to save space. + New member 'ordering'. + (handle_braces, validate_switches): Update to handle '&'. + +2000-12-13 Laurynas Biveinis + + * fixinc/inclhack.def: skip stdio_va_list fix if __DJ_va_list + found in a header. + * fixinc/fixincl.x: regenerated. + +2000-12-13 DJ Delorie + + * config.gcc (cygwin, win32, mingw32): Use float-i386.h. + +2000-12-13 Tom Tromey + + * gcc.c (handle_braces): Handle %{ + + * function.c (assign_parms): Optimize incoming PARALLELs into + REGs if possible. + +2000-12-13 Bruce Korb + + * fixinc/Makefile.in(*): substantial rewrite to accommodate systems + that cannot handle bi-directional pipes, viz. BeOS and DOS. + * fixinc/fixlib.h(IGNORE_ARG): new macro + (STATIC): define for all of fixinc to use + * fixinc/fixfixes.c(*): eliminate unused arg warnings + * fixinc/fixtests.c(*): ditto + * fixinc/fixincl.c(start_fixer): chain_open now uses const arg list + * fixinc/gnu-regex.c: reorder some includes to avoid _GNU_SOURCE + warning. Also, eliminate the ``#ifdef emacs'' stuff. + (re_syntax_options): make global as it is declared so. + * fixinc/mkfixinc.sh: process the argument list more consistently + (beos/msdosdjgpp): set TARGETS to twoprocess vs. oneprocess + * fixinc/procopen.c(globals): include "fixlib.h" for std defs + * fixinc/server.c(globals): ditto + * fixinc/server.h(defines): ditto + +2000-12-13 Neil Booth + + * tradcpp.c (special_symbol): Improve test for definedness, + though it is still not perfect. + (do_define): Don't define illegal macro names. + +2000-12-07 Aldy Hernandez + + * config/mips/elf.h (ASM_OUTPUT_SECTION_NAME): emit @nobits + if changing into .bss section. + * config/mips/elf64.h: same. + * config/mips/iris6.h: same. + * config/mips/netbsd.h: same. + * config/mips/openbsd.h: same. + +2000-12-13 Neil Booth + + * cppfiles.c (read_name_map): Return null if open () fails. + (remap_filename): Simplify logic. Add ICE if it doesn't work + as expected. Perform secondary lookup attempt on base filename + only. + +Wed Dec 13 19:48:04 MET 2000 Jan hubicka + + * flow.c (notice_stack_pointer_modification_1): Notice midifications + using PRE_MODIFY and POST_MODIFY. + +Wed Dec 13 17:25:32 MET 2000 Jan Hubicka + + * genoutput.c (process_template): Add sanity checking for '@' templates. + +2000-12-13 Bernd Schmidt + + * simplify-rtx.c (cselib_finish): Free reg_values and used_regs + varrays. + +2000-12-12 Mike Stump + + * Makefile.in (distclean): Remove safe-ctype.c as well. + +2000-12-12 Brad Lucier + + * tradcpp.c (do_error): Cast difference of pointers to int + for error message. + +2000-12-12 Franz Sirl + + * config/rs6000/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Move from here... + * config/rs6000/sysv4.h (HANDLE_PRAGMA_PACK_PUSH_POP): ...to here. + +2000-12-12 Jim Wilson + + * rtlanal.c (may_trap_p): Check operand modes of LE, LT, GE, and GT. + +2000-12-12 Alexandre Oliva + + * configure.in: Simplify language enabling/disabling code. + * configure: Rebuilt. + * ch/config-lang.in (target_libs): Set. + (build_by_default): Set to no. + * cp/config-lang.in (target_libs): Set. + * f/config-lang.in (target_libs): Set. + * java/config-lang.in (target_libs): Set. + * objc/config-lang.in (target_libs): Set. + +2000-12-12 Neil Booth + + * tradcpp.c (enum node_type): Add T_ERROR. + (do_error): New function. + (directive_table): Add #error handler. + +2000-12-12 Franz Sirl + + * configure.in (HAVE_AS_DWARF2_DEBUG_LINE): Enable .file/.loc check + for powerpc*-*-*. + * configure: Regenerated. + * config/rs6000/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define. + * config/rs6000/rs6000.c (rs6000_unique_section): Use + STRIP_NAME_ENCODING. + +Mon Dec 11 13:51:09 2000 Jeffrey A Law (law@cygnus.com) + + * pa.c (cmpib_comparison_operator): Remove GEU and LTU. + * pa.h (PREDICATE_CODES, cmpib_comparison_operator): Corresponding + changes. + +2000-12-11 Bruce Korb + + * fixinc/fixincl.tpl: initialize all fields for warnings + * fixinc/fixincl.x: regenerate + +2000-12-11 Neil Booth + + * tradcpp.h: For tradcpp, NUL is not whitespace. + +2000-12-11 Neil Booth + + * fix-header.c (read_scan_file): Macro expansion is not a file buffer. + +2000-12-05 Marek Michalkiewicz + + * config/avr/avr.c (compare_condition, compare_sign_p): New functions. + (compare_diff_p, compare_eq_p): Call compare_condition. + (out_tsthi, out_tstsi): Call compare_sign_p. + (avr_progmem_p): Check for error_mark_node. + +2000-12-11 Neil Booth + + * cpperror.c (print_location): New function. + (print_containing_files): Simplify. + (_cpp_begin_message): Simplify and use print_location. + * cppfiles.c (stack_include_file): Update. + (_cpp_pop_file_buffer): Update. + * cpphash.h (struct cpp_buffer): New members + include_stack_listed and type. + * cpplib.c (_cpp_handle_directive): Buffer->inc is not null. + (run_directive): Take buffer type. cpp_push_buffer cannot fail. + (_cpp_do__Pragma, cpp_define, _cpp_define_builtin, cpp_undef, + handle_assertion): Update. + (cpp_push_buffer): Take a buffer type and file name. + (cpp_pop_buffer): Update. Clear include_stack_listed. + * cpplib.h (input_stack_listing_current): Remove. + (enum cpp_buffer_type): New. + (cpp_push_buffer): New prototype. + * cppmacro.c (builtin_macro): Simplify; buffer cannot be null. + * fix-header.c (read_scan_file): Update. + +2000-12-10 Robert Lipe + + * install.texi (i*86-*-sco3.2v5*): Remove information duplicated + in html version. + +2000-12-10 Richard Henderson + + * genrecog.c (find_operand): Handle 'V' format code. + (find_matching_operand): New. + (validate_pattern): Accept '=' for an in-out operand if there + is another operand with a matching constraint. + + * config/i386/i386.md (andqi_ext_0_cc): Use matching constraint + for op1 to op0. + +2000-12-10 Richard Henderson + + * genrecog.c (validate_pattern) [STRICT_LOW_PART]: Fix thinko. + +2000-12-09 Richard Henderson + + * genrecog.c (validate_pattern): Verify that ZERO_EXTRACT and + STRICT_LOW_PART as SET_DEST have in-out constraints. + +2000-12-09 Joseph S. Myers + + * c-common.c (check_function_format): Don't suggest adding format + attributes to functions with no parameter to which to add them. + +2000-12-09 Nick Clifton + + * config/arm/arm.c (arm_expand_prologue): Mark the generated + insn not the set as being DWARF2_FRAME_RELATED_P. + +2000-12-09 Laurynas Biveinis + + * Makefile.in: use $(build_exeext) for all build + system executable targets. + +2000-12-09 Laurynas Biveinis + + * install.texi: remove i[345]86-*-winnt3.5 section. + * configur.bat: removed. + * config/msdos: directory removed. + +2000-12-09 Neil Booth + + * cppfiles.c (NEVER_REREAD, DO_NOT_REREAD): Move from cpphash.h. + * cpphash.h (NEVER_REREAD, DO_NOT_REREAD, ABSOLUTE_PATH): Delete. + * cpplex.c (parse_identifier): Improve diagnostic. + (_cpp_lex_token): Return unconditionally at the end of a directive. + * cpplib.c (read_flag): Verify legality of each flag. + (end_directive): Resotre pfile->skipping before skip_rest_of_line. + (do_line): Use the new read_flag. + * cppmacro.c (struct cpp_macro, parse_arg, replace_args, + check_macro_redefinition, parse_params): Rename var_args to + variadic. + +2000-12-09 Joseph S. Myers + + * .cvsignore: Add info files. + +2000-12-08 Laurynas Biveinis + + * config/winnt: Remove obsolete directory. + * install.texi (Configurations): Remove obsolete documentation for + Windows NT. + +2000-12-08 Joseph S. Myers + + * configure.in: Don't define INSTALL_INFO. + * configure: Regenerate. + * Makefile.in (INSTALL_INFO): Remove. + (info): Depend on info files in source directory. + (cpp.info, gcc.info, c-tree.info): Build info files in source + directory. + (distclean): Don't remove info files. + (maintainer-clean): Remove info files from source directory. + (install-normal): Depend on install-info. + (install-info): Install info files from source directory, if they + exist. + * texinfo.tex: Update to version 2000-11-09.08 from ftp.gnu.org. + +2000-12-08 Alexandre Oliva + + * lcm.c (optimize_mode_switching): Check whether an insn is a NOTE + before taking its NOTE_LINE_NUMBER. + +2000-12-08 Nick Clifton + + * config/arm/arm.md (load_indirect_jump): Add pool ranges. + + * extend.texi: Document ARM "interrupt" function attribute. + Mention that the ARM also support the "naked" function + attribute. + + * config/arm/arm-protos.h (arm_current_func_type): Add + prototype. + + * config/arm/arm.h (EXCEPTION_LR_REGNUM): Define. + (struct machine_function): Add 'func_type' field. + Define bit values for 'func_type' field. + (ARM_FUNC_TYPE): New macro. + (IS_INTERRUPT): New macro. + (IS_VOLATILE): New macro. + (IS_NAKED): New macro. + (IS_NESTED): New macro. + (ARM_INITIAL_ELIMINATION_OFFSET): Use IS_VOLATILE. + + * config/arm/arm.c (isr_attribute_args): New Structure. A + list of "interrupt" function attribute modifiers. + (arm_isr_value): New Function: Returns the type of the current + interrupt function. + (arm_compute_func_type): New Function: Computes the type of + the current function. + (arm_current_func_type): New Function: Returns the type of the + current function. + (use_return_insn): Use arm_current_func_type. + (arm_valid_type_attribute_p): Accept "interrupt" function + attribute. + (arm_comp_type_attributes): Check "interrupt" attributes. + (arm_valid_machine_decl): Accept "interrupt" function + attribute. + (arm_function_ok_for_sibcall): Do not allow interrupt + functions to use sibcalls. + (arm_naked_function_p): Delete. + (print_multi_reg): Remove redundant parameter 'hat'. + (arm_compute_save_reg_mask): New Function: Compute a bit mask + of registers saved during the current function's prologue. + (output_arm_return_instruction): Use arm_current_func_type. + Generate return instruction when LR is not poppsed off the + stack. + (arm_volatile_func): Delete. + (output_arm_prologue): Use arm_current_func_type and + arm_compute_save_reg_mask. + Note presernce of interrupt functions. + (arm_output_epilogue): Use arm_current_func_type and + arm_compute_save_reg_mask. + (arm_expand_prologue): Use arm_current_func_type and + arm_compute_save_reg_mask. + (arm_init_machine_status): Initialize func_type field, if + necessary. + (thumb_expand_prologue): Use arm_current_func_type. + (output_thumb_prologue): Use arm_current_func_type. + +2000-12-08 Brad Lucier + + * tradcpp.c (do_include): Make pointer differences 64-bit clean. + +Fri Dec 8 08:23:29 2000 J"orn Rennecke + + * fp-bit.c (_fpmul_parts): Use USItype variables as inputs + for multiplies. + +2000-12-07 Mike Stump + + * Makefile.in (distclean): Remove alloca.c hashtab.c. + +2000-12-07 Zack Weinberg + + * Makefile.in (HOST_RTL): Add safe-ctype.o. + (safe-ctype.o): New rule. + * system.h: Include safe-ctype.h, not ctype.h. No need to + wrap ctype macros. + + * cpphash.h: Zap IStable and related macros. Define is_* in + terms of safe-ctype.h macros. + * cppinit.c: Delete the IStable and all related code. + + * tradcpp.c: Delete is_idchar, is_idstart, is_hor_space, and + is_space arrays. Delete initialize_char_syntax. Change all + references to the above arrays to use macros instead. + * tradcpp.h: Define is_idchar, is_idstart, is_space, and + is_nvspace in terms of safe_ctype.h's macros. + * tradcif.y: is_idchar, is_idstart are macros not arrays. + + * config/i370/i370.c, config/winnt/dirent.c, + config/winnt/fixinc-nt.c, config/winnt/ld.c: + Use uppercase ctype macros. If we included ctype.h, + include safe-ctype.h instead. + + * fixinc/fixfixes.c: Use uppercase ctype macros. Don't test + ISLOWER(c) before calling TOUPPER(c). + * fixinc/fixincl.c (extract_quoted_files): Simplify out some gunk. + * fixinc/gnu-regex.c: Include safe-ctype.h, not ctype.h. No need to + wrap ctype macros. Don't test ISUPPER(x) before calling TOLOWER(x). + +2000-12-07 DJ Delorie + + * c-decl.c (grokdeclarator): preserve previous alignments when + rebuilding array types. + +2000-12-07 Neil Booth + + * cppfiles.c (struct include_file): Move from cpphash.h. + (_cpp_never_reread): New function. + (open_file, read_include_file): Use it. + (stack_include_file): Set the buffer's sysp according to the + path in which the file was found. + (find_include_file): Don't set sysp. + (cpp_make_system_header, actual_directory): Update. + (_cpp_execute_include): Do #include_next lookup handling here, + not in cpplib.c. Use _cpp_never_reread. + * cpphash.h (struct_include_file): Remove. + (struct cpp_buffer): New member sysp. + (CPP_IN_SYSTEM_HEADER, _cpp_execute_include): Update. + (_cpp_never_reread): New. + * cpplib.c (read_line_number): Rename read_flag. Rework slightly. + (end_directive): Clear line_extension flag. + (_cpp_handle_directive): Set line_extension flag for #number. + (do_include_next): Handle path lookup in _cpp_execute_include. + (do_line): Cleanup to use read_flag. Don't allow flags in #line. + (_cpp_do_file_change): Update. + (do_pragma_once): Use cpp_never_reread. Clean up. + * cpplib.h (struct lexer_state): New member line_extension. + +2000-12-07 Richard Henderson + + * flow.c (calculate_global_regs_live): Force the stack pointer live + after reload as well. + +2000-12-07 Bruce Korb + + * fixinc/Makefile.*(exeext): the variables are exeext, the + substitution expression is build_exeext. + +2000-12-07 Neil Booth + + * c-common.c (parse_in): Make a cpp_reader *. + * cppfiles.c (_cpp_fake_include): Remove. + * cpphash.h: Similarly. + * cpplib.c (do_line): Don't call _cpp_fake_include. A valid + #line always creates a callback; FC_RENAME if there are no + #line flags. + * fix-header.c (read_scan_file): cpp_push_buffer cannot fail. + The first EOF must be our get_char buffer. + +2000-12-07 Joseph S. Myers + + * c-common.c (warn_format_security): New variable. + (check_format_info): Warn about non-literal formats with no format + arguments if either -Wformat-nonliteral or -Wformat-security is + specified. + (set_Wformat): Set warn_format_security for settings other than 1. + * c-common.h (warn_format_security): Declare. + * c-decl.c (c_decode_option): Decode -Wformat-security and + -Wno-format-security. + * invoke.texi: Document -Wformat-security. + * toplev.c (documented_lang_options): Include -Wformat-security + and -Wno-format-security. + +2000-12-07 Joseph S. Myers + + * c-common.c (check_format_info): Warn for non-constant format + strings with strftime formats if -Wformat-nonliteral. Where the + format can convert arguments, if the format is not a string + literal and there are no arguments to the format, give a different + warning message from the general non-string-literal case. + +2000-12-07 Joseph S. Myers + + * c-common.c (format_wanted_type): Add reading_from_flag. + (print_char_table): Mark %s and %S formats with flag "R". + (check_format_info_main): Set up reading_from_flag appropriately. + If aflag, always set writing_in_flag rather than relying on the + format used being a scanf format and so having it set. + (check_format_types): Check for formats reading through null + pointers. + +2000-12-07 Joseph S. Myers + + * invoke.texi (-Wformat): Document what format features are + checked. + +2000-12-06 Kazu Hirata + + * config/h8300/h8300.h: Fix formatting. + +2000-12-06 Joel Sherrill + + * config.gcc (a29k*-*-rtems*, arm*-*-rtems*, c4x-*-rtems*, + h8300-*-rtems*, hppa1.1-*-rtems, *mips*-*-rtems*): New targets. + * config.gcc (*-rtems*): Add support for gthr-rtems.h. + * gthr-rtems.h, config/a29k/rtems.h, config/arm/rtems-elf.h, + config/h8300/rtems.h, config/mips/rtems.h: New files. + +2000-12-06 Mark Kettenis + + * config.gcc: Reorganize handling of *-*-gnu*, to share target + specific make details with Linux. Update comments to clarify + the distinction between GNU/Linux and GNU/Hurd. + +Wed Dec 6 19:22:02 2000 Jeffrey A Law (law@cygnus.com) + + * contrib.texi: Fix my email address. Update Per's + list of contributions. + +2000-12-06 Rodney Brown + + * c-lex.c (cb_indent): Decorate `str' argument, unused on HP-UX. + * collect2.c (scan_libraries): Remove unused `ch'. + (COFF specific stuff): Prototype ldgetname. Declare and prototype + ldbtread and ldclose. + + * config/alpha/osf.h: Standarize copyright statement. + * config/arc/arc.h: Likewise. + * config/arm/elf.h config/arm/coff.h config/arm/aout.h: Likewise. + * config/arm/arm.c config/arm/arm.h: Likewise. + * config/elxsi/elxsi.h: Likewise. + * config/i386/sco.h: Likewise. + * config/m68k/crds.h config/m68k/hp320.h config/m68k/lynx.h: Likewise. + * config/m68k/m68kv4.h config/m68k/next21.h: Likewise. + * config/m68k/sun3.h: Likewise. + * config/m88k/dgux.h config/m88k/dguxbcs.h: Likewise. + * config/pdp11/2bsd.h config/pdp11/pdp11.h: Likewise. + * config/romp/romp.h: Likewise. + * config/rs6000/aix41.h: Likewise. + * config/sparc/sysv4.h: Likewise. + * config/we32k/we32k.c config/we32k/we32k.h: Likewise. + * fixinc/gnu-regex.c fixinc/gnu-regex.h: Likewise. + * cpplib.h cppexp.c cselib.h profile.c: Likewise. + * longlong.h: Likewise. + * libgcc2.c: Likewise. + +2000-12-06 Herman A.J. ten Brugge + + * machmode.def: Use correct definition for BITSIZE on targets where + BITS_PER_UNIT != 8. + +2000-12-06 Bruce Korb + + * fixinc/Makefile.*: Reduce differences to (ultimately) reduce + the number of them. + +2000-12-06 J. David Anglin + + * pa.c: Include expr.h before c-tree.h. + (remove_useless_addtr_insns): Use reverse_condition_maybe_unordered + instead of reverse_condition. + (print_operand): Correct predicates for GT, GE, LT and LE. Add + predicates for LTGT, UNLE, UNLT, UNGE, UNGT, UNEQ, UNORDERED and + ORDERED. + (cmpib_comparison_operator): Add GEU and LTU codes. + * pa.h (PREDICATE_CODES): Add codes for cmpib_comparison_operator. + * pa.md (bltgt, bunle, bunlt, bunge, bungt, buneq, bunordered, + bordered): New float conditional branch patterns. + +Wed Dec 6 21:03:41 2000 J"orn Rennecke + + * final.c (final_addr_vec_align): Fix clipping to BIGGEST_ALIGNMENT. + +2000-12-06 Sylvain Pion + + * cpplex.c (skip_escaped_newlines): Don't warn for spaces between + backslash and newline, when inside a comment. + +2000-12-06 Joseph S. Myers + + * invoke.texi: Use @table @samp instead of @itemize @minus for + table of language standards. Fix use of @pxref. From Zack + Weinberg. Also exclude specs documentation from generated + manpage, and create separate ENVIRONMENT section. + +2000-12-06 Michael Matz + + * gcse.c (compute_pre_data): Kill trapping expressions in + destination blocks of abnormal edges. + +2000-12-05 Richard Sandiford + + * config/mn10300/mn10300.c (mn10300_print_reg_list): Added. + (mn10300_get_live_callee_saved_regs): Likewise. + (mn10300_gen_multiple_store): Likewise. + (store_multiple_operation): Likewise. + (expand_prologue): Use mn10300_gen_multiple_store(). + * config/mn10300/mn10300-protos.h (mn10300_print_reg_list): Added. + (mn10300_get_live_callee_saved_regs): Likewise. + (mn10300_gen_multiple_store): Likewise. + (store_multiple_operation): Likewise. + * config/mn10300/mn10300.md (store_movm): Use a MATCH_PARALLEL + tied to store_multiple_operation(). + +Tue Dec 5 20:09:14 2000 Jeffrey A Law (law@cygnus.com) + + * builtins.c (expand_builtin_setjmp_setup): Set + current_function_has_nonlocal_label. + +2000-12-05 Neil Booth + + * cppfiles.c (stack_include_file): Push zero-length buffers + in case of failure. Return void, as we don't fail any more. + (read_include_file): Check for files we shouldn't re-read. + Don't return an error code; errors are implied by marking the + file NEVER_REREAD. + (_cpp_execute_include): Move the recursion and in-macro checks + here. Update for stack_include_file not failing. + * cpplib.c (cpp_push_buffer): Always succeed, since + _cpp_execute_include performs the recursion check. Tidy up. + * cpplib.h (cpp_push_buffer): Update prototype. + +2000-12-05 Alexandre Oliva + + * sched-vis.c (visual_tbl_line_length): New variable. + (get_visual_tbl_length): Set it. + (visualize_stall_cycles): Don't let stalls overrun + visual_tbl_line_length. + +2000-12-05 Geoffrey Keating + + * global.c (global_conflicts): Allow for a REG_UNUSED note + with a different mode to the REG set in the insn. + +2000-12-05 Kaveh R. Ghazi + + * Makefile.in (fixinc.sh): Pass $WARN_CFLAGS into fixinc dir. + + * fixinc/Makefile.in (FIXINC_DEFS): Add $(WARN_CFLAGS). + +2000-12-05 Bruce Korb + + * fixinc/mkfixinc.sh(*-gnu*): activate fixinc for GNU/Hurd and + GNU/Linux. + +2000-12-05 Richard Earnshaw + + * fixinc/mkfixinc.sh: Run fixinc on netbsd. + * fixinc/inclhack.def (machine/ansi.h): Run this rule on all files, + to cope with aliased copies. + * fixinc/fixincl.x: Regenerate. + +2000-12-05 Bernd Schmidt + + * sched-vis.c: Guard with #ifdef INSN_SCHEDULING. + * sched-rgn.c: Likewise. + (rgn_print_insn): Fix output. + +2000-12-05 Bruce Korb + + * fixinc/Makefile.*: make these more consistent + * fixinc/mkfixincl.sh: enable BeOS fixincludes + +2000-12-05 Richard Henderson + + * stmt.c (warn_if_unused_value): Move side effects test earlier. + +2000-12-05 Alan Modra + + * bb-reorder.c (reorder_basic_blocks): Do check for EH edges even + when using sjlj. + +2000-12-05 Richard Henderson + + * flow.c (calculate_global_regs_live): Only force stack pointer + live before reload. Force pic register live before reload. + (insn_dead_p): Don't protect pic references from deletion. + +2000-12-05 Joseph S. Myers + + * invoke.texi: Add support for using texi2pod.pl. Don't use + @multitable. + +2000-12-04 Nick Clifton + + * config/arm/arm.c (arm_override_options): Test 'insn_flags' not + 'tune_flags' for XScale nature. + Remove spurious test of HARD_FLOAT and XScale flags. + + * config/arm/arm.md (umulsidi3adddi): Restore "=&r" register + contraint, accidentally changed during XScale contribution. + + * config/arm/lib1funcs.asm (interwork_call_via_, call_via_): Do + not create these functions if the target architecture does not + support Thumb instructions. + +2000-12-04 Joseph S. Myers + + * ONEWS: New file with the current contents of NEWS up to EGCS + 1.1. + * NEWS: Generate automatically from online release notes from EGCS + 1.0 to GCC 2.95.2, using ../contrib/gennews. + +2000-12-04 Neil Booth + + * tradcif.y: Move lexptr to top of file. Add rule to handle + assertions in conditional expressions. + * tradcpp.c (parse_answer): Assertions do not need to go to + end of line in conditional directives. + (parse_assertion): Get first character of identifiers correct. + (test_assertion): New function. + * tradcpp.h (test_assertion): New prototype. + +2000-12-01 Rodney Brown + + * config.gcc: Fix typo for UnixWare 7. + +2000-12-03 Phil Edwards + + * invoke.texi: Replace `pedwarns' with clearer text. + +2000-12-04 Bruce Korb + + * fixinc/Makefile.*(clean): don't clean autogenerated files. + (mainainer-clean): clean autogenerated files + +2000-12-04 DJ Delorie + + * md.texi: Add overview, clarify match_dup and define_expand. + +2000-12-04 DJ Delorie + + * print-tree.c (print_node): Target-specific builtins print + numbers, not names. + +2000-12-04 Jason Merrill + + * stor-layout.c (int_mode_for_mode): Handle MODE_VECTOR_INT, + MODE_VECTOR_FLOAT. + + * diagnostic.c (report_problematic_module): s/function/module/. + + * c-lex.h: Remove decl for check_newline. + +2000-12-04 Gerald Pfeifer + + * README.APOLLO: Remove obsolete file. + +2000-12-04 Neil Booth + + * cppinternals.texi: New file. + +2000-12-04 Neil Booth + + * cppfiles.c (cpp_make_system_header): Take 2 booleans, + and operate on current buffer. + (cpp_read_file): Rename _cpp_read_file. + * cpplib.c (do_line, do_pragma_system_header): Update calls to + cpp_make_system_header. + * fix-header.c: Similarly. + * cpphash.h (_cpp_read_file): Move from... + * cpplib.h: ... here. + * cppinit.c (do_includes, cpp_start_read): Update appropriately. + +2000-12-03 Kaveh R. Ghazi + + * builtins.c (expand_builtin_strspn, expand_builtin_strcspn): + Handle another transformation. + +2000-12-03 Nick Clifton + + * config.gcc: Add support for StrongARM targets. + * config/arm/t-strongarm-elf: New file. + * config/arm/t-strongarm-coff: New file. + * config/arm/t-strongarm-pe: New file. + * config/arm/strongarm-pe.h: New file. + +2000-12-03 Nick Clifton + + * NEWS: Mention XScale has been added. + * config.gcc: Add support for XScale targets. + * config/arm/arm.h: Add support for XScale processor. + * config/arm/arm.c: Add support for XScale processor. + * config/arm/arm.md: Add support for XScale processor. + * config/arm/t-xscale-elf: New file. + * config/arm/t-xscale-coff: New file. + * config/arm/xscale-elf.h: New file. + * config/arm/xscale-coff.h: New file. + +2000-12-03 Richard Henderson + + * bb-reorder.c (reorder_basic_blocks): Don't check for EH edges + unless exception handling is enabled, and if not using sjlj. + + * builtins.c (expand_builtin_setjmp_setup): New. + (expand_builtin_setjmp_receiver): New. + (expand_builtin_setjmp): Split out _setup and _receiver functions. + Move argument parsing in from ... + (expand_builtin): ... here. + * except.c (receive_exception_label): Branch around receiver + unless new-style exceptions. Call expand_builtin_setjmp_receiver. + (start_dynamic_handler): Call expand_builtin_setjmp_setup. + * expr.h: Update builtin setjmp decls. + +2000-12-03 Bruce Korb + + * fixinc/mkfixinc.sh(build machine): Sometimes, there is no canonical + build machine name. Default to the target. + +2000-12-03 Laurynas Biveinis + + * Makefile.in: use $(build_canonical), not $(canonical_build). + +2000-12-03 Bernd Schmidt + + * Makefile.in (OBJS): Add sched-rgn.o. + (sched-rgn.o): New rule. * haifa-sched.c (sched_verbose): No + longer static. + (INSN_PRIORITY, INSN_COST, INSN_UNIT, INSN_REG_WEIGHT, + INSN_BLOCKAGE, UNIT_BITS, BLOCKAGE_MASK, ENCODE_BLOCKAGE, + UNIT_BLOCKED, BLOCKAGE_RANGE, MIN_BLOCKAGE_COST, + MAX_BLOCKAGE_COST): Move to sched-int.h. + (MAX_RGN_BLOCKS, MAX_RGN_INSNS, INSN_REF_COUNT, FED_BY_SPEC_LOAD, + IS_LOAD_INSN, struct haifa_edge, edge_table, NEXT_IN, NEXT_OUT, + FROM_BLOCK, TO_BLOCK, nr_edges, in_edges, out_edges, IN_EDGES, + OUT_EDGES, edgelst, struct region, nr_regions, rgn_table, + rgn_bb_table, block_to_bb, containing_rgn, RGN_NR_BLOCKS, + RGN_BLOCKS, BLOCK_TO_BB, BB_TO_BLOCK, CONTAINING_RGN, + debug_regions, find_single_block_region, find_rgns, too_large, + init_regions, current_nr_blocks, current_blocks, bitset, bitlst, + bitlst_table_last, bitlst_table_size, bitlst_table, bitset_member, + extract_bitlst, bblst, struct candidate, candidate_table, + bblst_table, bblst_size, bblst_last, IS_VALID, IS_SPECULATIVE, + SRC_PROB, target_bb, split_edges, compute_trg_info, + debug_candidate, debug_candidates, bbset, bbset_size, dom, + IS_RGN_ENTRY, IS_DOMINATED, prob, GET_SRC_PROB, edgeset, + rgn_nr_edges, rgn_edges, edgeset_size, edgeset_bitsize, + EDGE_TO_BIT, edge_to_bit, pot_split, ancestor_edges, + compute_dom_prob_ps, ABS_VALUE, INSN_PROBABILITY, + IS_SPECULATIVE_INSN, INSN_BB, MIN_DIFF_PRIORITY, MIN_PROBABILITY, + MIN_PROB_DIFF, check_live_1, update_live_1, check_live, + update_live, set_spec_fed, is_pfree, find_conditional_protection, + is_conditionally_protected, may_trap_exp, haifa_classify_insn, + is_prisky, is_exception_free, add_branch_dependences, + propagate_deps, compute_block_backward_dependences, + debug_dependencies, is_cfg_nonregular, build_control_flow, + new_edge, bb_deps, BITSET_UNION, BITSET_INTER, BITSET_DIFFER, + BITSET_INVERT, BITSET_ADD, BITSET_REMOVE, debug_regions, + UPDATE_LOOP_RELATIONS, INSN_TRAP_CLASS, WORST_CLASS, IS_REACHABLE, + CONST_BASED_ADDRESS_P, free_pending_lists, sched_target_n_insns, + target_n_insns, sched_n_insns, init_ready_list, deaths_in_region, + can_schedule_ready_p, new_ready, schedule_more_p, rgn_print_insn, + rgn_rank, region_sched_info): Move to sched-rgn.c. + (debug_reg_vector): Delete useless function. + (get_bb_head_tail): Likewise. + (insn_issue_delay, insn_cost, ready_add, get_block_head_tail, + no_real_insns_p, rm_line_notes, save_line_notes, + restore_line_notes, rm_redundant_line_notes, sched_init): No + longer static. + (rm_line_notes, save_line_notes, restore_line_notes, + schedule_block, set_priorities): Change argument to be a real + basic block, not one of haifa's "bb"s. All callers changed + (rm_other_notes): Initialize note_list here, not in + schedule_region. + (sched_finish): New function, called from schedule_insn. * * + sched-int.h (INSN_PRIORITY, INSN_COST, INSN_UNIT, INSN_REG_WEIGHT, + INSN_BLOCKAGE, UNIT_BITS, BLOCKAGE_MASK, ENCODE_BLOCKAGE, + UNIT_BLOCKED, BLOCKAGE_RANGE, MIN_BLOCKAGE_COST, + MAX_BLOCKAGE_COST): Moved here from haifa-sched.c. + (get_block_head_tail, no_real_insns_p, rm_line_notes, + save_line_notes, restore_line_notes, rm_redundant_line_notes, + rm_other_notes, insn_issue_delay, set_priorities, schedule_block, + sched_init, sched_finish, ready_add, insn_cost): Declare. + +2000-12-03 Laurynas Biveinis + Bruce Korb + + * Makefile.in: pass $(build_canonical) to mkfixinc.sh. + * fixinc/mkfixinc.sh: accept build system name as an argument. + Use it for choosing the fix build method. Use the target for + selecting special fix rules. + +2000-12-03 Bernd Schmidt + + * Makefile.in (OBJS): Add sched-deps.o. + (sched-deps.o): New rule. + * haifa-sched.c (struct deps, struct haifa_insn_data): Moved to + sched-int.h. + (INSN_DEPEND, INSN_LUID, CANT_MOVE, INSN_DEP_COUNT): Macros moved to + sched-int.h. + (SIZE_FOR_MODE): Delete unused macro. + (reg_known_equiv_p, reg_known_value, reg_pending_clobbers, + reg_pending_sets, reg_pending_sets_all, true_dependency_cache, + anti_dependency_cache, output_dependency_cache, + forward_dependency_cache): Variables moved to sched-deps.c. + (add_dependence, remove_dependence, find_insn_list, + find_insn_mem_list, add_insn_mem_dependence, flush_pending_lists, + sched_analyze_insn, sched_analyze_1, sched_analyze_2, + sched_analyze, group_leader, compute_forward_dependences, + init_deps, free_deps, init_dependency_caches, free_dependency_caches): + Functions moved to sched-deps.c. + (schedule_region): Call init_deps_global and finish_deps_global + instead of directly manipulating dependency data structures. + * sched-deps.c: New file. + (init_deps_global, finish_deps_global): New functions. + * sched-int.h (struct haifa_insn_data, struct deps): Moved here from + haifa-sched.c. + (h_i_d): Declare. + (INSN_DEPEND, INSN_LUID, CANT_MOVE, INSN_DEP_COUNT): Macros moved here + from haifa-sched.c. + + * Makefile.in (OBJS): Add sched-vis.o. + (sched-vis.o): New rule. + * haifa-sched.c (get_unit_last_insn): New function. + (sched_dump, insn_unit, actual_hazard_this_instance): No longer + static. + (schedule_block): Call visualize_alloc and visualize_free. Delete + spurious return statement. + (init_target_units, insn_print_units, get_visual_tbl_length, + init_block_visualization, print_block_visualization, safe_concat, + visualize_scheduled_inns, visualize_no_unit, visualize_stall_cycles, + print_exp, print_value, print_pattern, print_insn, target_units, + MAX_VISUAL_LINES, INSN_LEN, n_visual_lines, visual_tbl, + n_vis_no_unit, vis_no_unit): Move scheduling visualization + functions/variables... + * sched-vis.c: ...here. New file. + (visualize_alloc, visualize_free): New functions. + (visualize_scheduled_insns, visualize_stall_cycles, + print_block_visualization): Lose basic block argument. All callers + changed. + (visualize_scheduled_insns): Use new function get_unit_last_insn. + * sched-int.h (current_sched_info, sched_dump): Declare. + (init_target_units, insn_print_units, init_block_visualization, + print_block_visualization, visualize_scheduled_inns, + visualize_no_unit, visualize_stall_cycles, visualize_alloc, + visualize_free): Declare functions. + + * sched-int.h: New file. + * Makefile.in (haifa-sched.o): Depend on it. + * haifa-sched.c: Include it. + (no_real_insns_p): New function. + (current_sched_info): New static variable. + (__inline, HAIFA_INLINE): Moved to sched-int.h. + (get_block_head_tail): Minor cleanup. + (init_ready_list, can_schedule_ready_p, new_ready, schedule_more_p, + rgn_print_insn, rgn_rank): New functions, broken out of + rank_for_schedule, schedule_insn and schedule_block, where they + are now called through function pointers in current_sched_info. + (queue_insn, schedule_insn, queue_to_ready, debug_ready_list, + print_insn): To display uid and block number, call the print_insn + function pointer in current_schedule_info. + (region_sched_info): New static variable. + (sched_target_n_insns, sched_n_insns, target_n_insns): New global + variables, moved out of schedule_block. + (schedule_block): Return void. All callers changed. + Move some of the setup code into schedule_region. Get head/tail + from current_sched_info, and update it when done. + (schedule_region): Slightly rearranged, some code moved here from + schedule_block. Call no_real_insns_p to avoid doing work for a + block that consists only of notes and labels. + (schedule_insns): Initialize current_sched_info. + +2000-12-03 Neil Booth + + * cppmacro.c (funlike_invocation_p): Re-disable macros enabled + by contexts drops AFTER argument pre-expansion, so that they + remain enabled during argument pre-expansion. + (_cpp_pop_context): Unconditionally re-enable a macro when + dropping a context level. + +2000-12-03 Manfred Hollstein + + * arm/t-linux (MULTILIB_OPTIONS): Comment. + (MULTILIB_DIRNAMES): Likewise. + (EXTRA_MULTILIB_PARTS): Likewise. + (LIBGCC): Likewise. + (INSTALL_LIBGCC): Likewise. + +2000-12-02 Kaveh R. Ghazi + + * builtins.c (expand_builtin_strcat, expand_builtin_strncat, + expand_builtin_strspn, expand_builtin_strcspn): New functions. + (expand_builtin): Handle BUILT_IN_STRCAT, BUILT_IN_STRNCAT, + BUILT_IN_STRSPN and BUILT_IN_STRCSPN. + + * builtins.def (BUILT_IN_STRCAT, BUILT_IN_STRNCAT, + BUILT_IN_STRSPN, BUILT_IN_STRCSPN): New entries. + + * c-common.c (c_common_nodes_and_builtins): Declare builtin + strcat, strncat, strspn and strcspn. + (string_ftype_string_cstring): Renamed from `string_ftype_ptr_ptr'. + + * extend.texi (strcat, strcspn, strncat, strspn): Document new + builtins. + +2000-12-02 Kaveh R. Ghazi + + * builtins.c (expand_builtin_strcmp): Use const*_rtx when + expanding strcmp at compile-time. Add another transformation. + (expand_builtin_strncmp): Add more transformations. Call + expand_builtin_memcmp, not expand_builtin_strcmp, under + appropriate conditions if HAVE_cmpstrsi. + +2000-12-02 David Edelsohn + + * rs6000.md (anddi3_internal[23]): Prefer rldic? over andis + instruction. + (cr logic): Really make operands sequential. + +2000-12-02 Geoffrey Keating + + * c-common.c (combine_strings): When the ISO C standard specifies + the maximum length of a string, it doesn't include the trailing + zero byte. + + * cpplib.c (do_ifdef): Add check_eol() call. + (do_ifndef): Likewise. + +2000-12-02 Daniel Berlin + Bruce Korb + + * fixinc/*: global substitute /__MSDOS__/SEPARATE_FIX_PROC/ + * fixinc/mkfixinc.sh: prepare to use Makefile.BEOS for *-*-beos* + * fixinc/Makefile.DOS: define SEPARATE_FIX_PROC for build + * fixinc/fixfix.c(wrap_fix): avoid wrapping files that + use the "__need_" hackery. It breaks them. + * fixinc/fixincl.c(process - SEPARATE_FIX_PROC): + Sometimes on DOS and BeOS the temp output file cannot be opened. + Skip the file noisily. Ought to be fixed instead. + +2000-12-02 Bruce Korb + + From: 2000-11-19 Kaveh R. Ghazi + + * fixfixes.c (emit_gnu_type, format_write): Prototype. + (format_write, char_macro_use_fix, char_macro_def_fix): Use gcc's + custom uppercase ctype macros. + * fixincl.c (do_version): Make static and add ATTRIBUTE_NORETURN. + Use gcc's custom uppercase ctype macros. + (main): Prototype. + (machine_matches): Add static prototype and constify variable. + (create_file, test_test, egrep_test): Add static prototype. + (quoted_file_exists): Likewise, and constify parameters. + (extract_quoted_files, internal_fix, start_fixer, fix_applies, + write_replacement, test_for_changes): Add static prototype. + (write_replacement, test_for_changes): Delete excess argument to + `create_file'. + * fixtests.c (test): Make static. + * server.c (load_data, sig_handler, server_setup, find_shell): Add + static prototype. + (sig_handler): Mark parameter with ATTRIBUTE_UNUSED. + +2000-12-02 Bruce Korb + + * fixnc/mkfixinc.sh(msdosdjgpp): remove from fixincludes exception list + (per Laurynas Biveinis ) + +2000-12-02 Richard Earnshaw + + * arm.h (ARM_REGNO_OK_FOR_BASE_P, THUMB_REGNO_MODE_OK_FOR_BASE_P): New + macros. + (REGNO_MODE_OK_FOR_BASE_P): Define in terms of above. + (REGNO_OK_FOR_FOR_BASE_P): Delete. + (ARM_REG_OK_FOR_BASE_P, THUMB_REG_MODE_OK_FOR_BASE_P): New macros for + both strict and non-strict uses. + (REG_MODE_OK_FOR_BASE_P): Define in terms of above. + (ARM_REG_OK_FOR_INDEX_P, THUMB_REG_OK_FOR_INDEX_P): New macros. + (REG_OK_FOR_INDEX_P): Define in terms of above. + (REG_OK_FOR_BASE_P): Delete. + (REG_OK_FOR_PRE_POST_P): Delete. + (ARM_BASE_REGISTER_RTX_P): Renamed from BASE_REGISTER_RTX_P. + (ARM_INDEX_REGISTER_RTX_P): Renamed from INDEX_REGISTER_RTX_P. + (ARM_GO_IF_LEGITIMATE_INDEX): Renamed from GO_IF_LEGITIMATE_INDEX. + (THUMB_LEGITIMATE_OFFSET): Renamed from LEGITIMATE_OFFSET. + (ARM_GO_IF_LEGITIMATE_ADDRESS): Adjust for name changes. Use ARM + specific variants rather than general ones. Use ARM_REG_OK_FOR_BASE_P + in pre/post increment cases. + (THUMB_GO_IF_LEGITIMATE_ADDRESS): Similarly for Thumb. + (ARM_LEGITIMIZE_ADDRESS): Similarly. + (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Similarly. + * arm.c (legitimate_pic_address): Similarly. + +2000-12-02 Neil Booth + + * tradcpp.c (struct answer, parse_assertion, parse_answer, + canonicalize_text, find_answer): New. + (do_assert, do_unassert): Provide appropriate function bodies. + (union hashval): New member answers. + +2000-11-23 Marek Michalkiewicz + + * config/avr/avr.md: Document UNSPEC usage. + (*tablejump_rjmp, *tablejump_lib, *tablejump_enh, *tablejump): + Make operand 0 input only, clobber it. Use UNSPEC, not a bogus + MEM for program memory word reference. Do not add the label to + the table index in each of the asm output templates, instead ... + (casesi): ... do it in RTL. Adjust to match the above change. + +2000-12-02 Bernd Schmidt + + * c-common.c (PTRDIFF_TYPE): Provide default here, ... + * c-decl.c: ... not here. + + * haifa-sched.c (sched_dump): Renamed from dump. All users changed. + (old_max_uid): New variable. + (compute_forward_dependences): Renamed from + compute_block_forward_dependences; changed to accept block head and + tail instead of block number. Caller changed. + (free_deps, init_dependency_caches, free_dependency_caches, + init_regions, sched_init): New functions, split out from + schedule_insns and compute_block_backward_dependences. + +2000-12-02 Neil Booth + + * cppexp.c (parse_number): Update diagnostic test. + +2000-12-02 Bernd Schmidt + + * reload1.c (free_for_value_p): New function, frontend to + reload_reg_free_for_value_p. All callers of the latter now call + this function with an additional mode argument. + +2000-12-02 Gerald Pfeifer + + * install.texi (Configurations): Remove obsolete documentation for + hppa*-*-*. + +2000-12-02 Gerald Pfeifer + + * install.texi (Installation): Remove obsolete description for + libstdc++ which is now an integral part of GCC. + +2000-12-01 Jim Blandy + + * dbxout.c (dbxout_parms): Correctly describe parameters passed by + invisible reference in registers, but then spilled to the stack. + Remove code to emit a second stab for such parameters; it attempts + to describe the value's location by introducing a synthetic C++ + `reference' type, and then saying the stack slot has that + reference type. This loses type information (breaking GDB's + `ptype' command, among other things) just to describe a location + which stabs can represent correctly in other ways. + +2000-12-01 Alexandre Oliva + + * final.c (output_addr_const) : Don't assume at least one + operand is a CONST_INT. + + * config/sh/sh.c (reg_class_from_letter): Assign `k' to SIBCALL_REGS. + (machine_dependent_reorg): Split all insns. + * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Compute + reg_class_contents[SIBCALL_REGS]. + (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Add SIBCALL_REGS. + * config/sh/sh.md (calli_pcrel, call_pcrel, call_valuei_pcrel, + call_value_pcrel, call, call_value, sibcall): Match even when + not optimizing. + (sibcalli_pcrel, sibcall_pcrel): Likewise. Use constraint `k' + for call address. + (sibcalli): Likewise. + +2000-12-01 Joseph S. Myers + + * c-common.c (warn_format, warn_format_y2k, + warn_format_extra_args, warn_format_nonliteral): Define. + (check_format_info): Check warn_format_nonliteral and + warn_format_extra_args. + (check_format_info_main): Check warn_format_y2k. + (set_Wformat): New function. + * c-common.h (warn_format_y2k, warn_format_extra_args, + warn_format_nonliteral, set_Wformat): Declare. + * c-decl.c (warn_format): Remove definition. + (c_decode_option): Handle -Wformat-nonliteral, + -Wno-format-extra-args and -Wno-format-y2k, and negated versions. + Use set_Wformat. + * invoke.texi: Document these new options and -Wformat=2. + * toplev.c (documented_lang_options): Add these new options. + +2000-12-01 Joseph S. Myers + + * builtins.def (BUILT_IN_IMAXABS): Add. + * builtins.c (expand_builtin): Also abort on BUILT_IN_IMAXABS. + * c-common.c (c_common_nodes_and_builtins): Create builtin + functions __builtin_imaxabs, and plain imaxabs unless + flag_no_nonansi_builtin outside C99 mode. + (expand_tree_builtin): Handle BUILT_IN_IMAXABS. + * extend.texi: Document builtin imaxabs. + +2000-12-01 Joseph S. Myers + + * c-common.c: Include "defaults.h". + (WINT_TYPE, INTMAX_TYPE, UINTMAX_TYPE): Define. + (c_common_nodes_and_builtins): Create string_type_node, + const_string_type_node, wint_type_node, intmax_type_node, + uintmax_type_node, default_function_type, ptrdiff_type_node and + unsigned_ptrdiff_type_node. + * c-common.h (identifier_global_value): Declare. + * c-decl.c (WINT_TYPE, INTMAX_TYPE, UINTMAX_TYPE): Don't define. + (init_decl_processing): Don't create string_type_node, + const_string_type_node, wint_type_node, intmax_type_node, + uintmax_type_node, default_function_type, ptrdiff_type_node and + unsigned_ptrdiff_type_node. + (identifier_global_value): New function. + +2000-12-01 Neil Booth + + * cppinit.c (initialize): Forgotten prototype. + * cpplex.c (_cpp_lex_token): Loop until not skipping. + Always clear PREV_WHITE upon meeting a new line. + * cpplib.c (end_directive): Set pfile->skipping after + skip_rest_of_line. + * cpplib.h (cpp_reader): Remove macro_pos. + * cppmacro.c (cpp_get_line): Don't do anything special inside + macros. + (parse_arg): Add PREV_WHITE if a token appears after new lines. + (funlike_invocation_p): Save and restore the output position + over a successful check for a '('. + (enter_macro_context): Delete uses of macro_pos. + (cpp_get_token): Don't use pfile->skipping. + +2000-12-01 Phil Edwards + + * diagnostic.c: Fix typos in comments. + * diagnostic.h: Likewise. + +2000-11-30 Phil Edwards + + * rtl.texi (Machine Modes): Document BImode and OImode. + +2000-12-01 Joseph S. Myers + + * gcc.c (default_compilers): Add suffixes .mi, .cp, .ii, .FOR and + .FPP. + +2000-12-01 Joseph S. Myers + + * c-decl.c (grokdeclarator): If pedantic, warn about arrays with + incomplete element type. + (grokparms): Before checking for incomplete parameter type, check + the type isn't error_mark_node. + +2000-12-01 Jakub Jelinek + + * builtins.c (target_char_cast): New function. + (expand_builtin_strchr): Use it. + (expand_builtin_strrchr): Use it. + (builtin_memset_read_str): New function. + (expand_builtin_memset): Use target_char_cast. + Try to optimize memset with second argument nonzero using + store_by_pieces. + +2000-11-30 Marek Michalkiewicz + + * install.texi (avr): Replace incomplete list of supported MCU + types with a link to the current one ... + * invoke.texi (AVR Options): ... here. Update -mmcu= to list + all supported MCU types. Document -minit-stack= default. + Document new options -mno-tablejump, -mtiny-stack. + * md.texi (AVR family): Fix typo in 'w' constraint letter + description. Document 'q'. Update 'O'. + +2000-12-01 Bernd Schmidt + + * combine.c (cant_combine_insn_p): Only disallow insns involving + hard regs if they are reg-reg moves. + (try_combine, can_combine_p, combinable_i3pat): Delete old + SMALL_REGISTER_CLASSES tests. + +2000-12-01 Alexandre Oliva + + * config/sh/sh.c (shiftcosts): Don't get INTVAL before testing + whether X is a CONST_INT. + (addsubcosts): Likewise. + + * config/sh/sh.h (OUTPUT_ADDR_CONST_EXTRA): Use INTVAL instead of + mis-used XINT. + (ARG_POINTER_REGNUM): Set to AP_REG. + +2000-11-30 Alexandre Oliva + + * config/sh/sh.md (fpu_switch0, fpu_switch1, movpsi, fpu_switch, + splits): Only match on TARGET_SH4. + + * combine.c (try_combine): Disregard USEs when updating LOG_LINKS + of subsequent insns. + +2000-11-30 Richard Henderson + + * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Disable. + * config/alpha/alpha32.h (ASM_OUTPUT_MI_THUNK): Likewise. + +2000-11-30 Richard Henderson + + * config/alpha/elf.h (ASM_OUTPUT_SECTION_NAME): Copy elfos.h defn. + (DO_SELECT_SECTION): New. + (SELECT_SECTION): Use it. + (UNIQUE_SECTION_P): New. + (UNIQUE_SECTION): New. + +2000-11-30 Alexandre Oliva + + * c-common.c (status_warning) [! ANSI_PROTOTYPES]: Load status + from va_list before using it. + +2000-11-30 Michael Matz + + * flow.c (make_edge): Early out, if no flags to set. + (calculate_global_regs_live): Clear out garbage only when necessary. + + * simplify-rtx.c (varray_type used_regs): New. + (clear_table): Use it to only clear necessary items. + (cselib_lookup, cselib_record_set): Remember newly set items. + (cselib_update_varray_sizes, cselib_init): Initialize and grow + used_regs. + + * local-alloc.c (update_equiv_regs): New local `cleared_regs'. + Move clearing of dead regs out of insn-loop. + +2000-11-30 Richard Henderson + + * calls.c (expand_call): Emit queued insns before creating + the tail recursion sequence. + +2000-11-30 J. David Anglin + Bruce Korb + + * fixinc/inclhack.def(): prevent dual double definition protection + * fixinc/fixincl.x: regenerate + +2000-11-29 Loren J. Rittle + + * fixinc/Makefile.in (fixincl.x): Explicitly state the + location of the generated file. + +2000-11-30 Gerald Pfeifer + + * README.FRESCO: Remove obsolete file. + +2000-11-30 Mark Kettenis + + * config/t-gnu (LIBGCC1, CROSS_LIBGCC1, CRTSTUFF_T_CFLAGS, + TARGET_LIBGCC2_CFLAGS): Remove. We now use the settings from + config/t-linux for the Hurd. + +2000-11-30 Stephane Carrez + + * config/mn10200/udivmod.c, config/mn10200/divmod.c, + config/mn10200/udivmodsi4.c: Moved from here. + * config/udivmod.c, config/divmod.c, config/udivmodsi4.c: To here. + * config/mn10200/t-mn10200 (LIB2FUNCS_EXTRA): Use the generic + C division functions. + * config/m68hc11/t-m68hc11-gas (LIB2FUNCS_EXTRA): Likewise. + +Thu Nov 30 01:12:52 2000 Jeffrey A Law (law@cygnus.com) + + * pa.md (conditional moves): Avoid holes in operand list. + (mod, umod patterns): Similarly. + (variable extract/shift patterns): Similarly. + +2000-11-30 Neil Booth + + * objc/objc-act.c (lang_init, finish_file, maybe_objc_comptypes, + maybe_objc_check_decl, build_objc_string_object, + objc_declare_alias, objc_declare_class, build_message_expr, + build_protocol_expr, build_selector_expr, build_encode_expr, + get_class_ivars, start_class, start_protocol): Remove + redundant code, assuming doing_objc_thang is true. + +2000-11-29 John David Anglin + + * pa.c (restore_unscaled_index_insn_codes): Delete procedure. + (record_unscaled_index_insn_codes): Likewise. + (unscaled_index_insn_codes): Delete. + (max_unscaled_index_insn_codes_uid): Delete. + (output_function_prologue, output_function_epilogue, pa_reorg): + Don't use the unscaled index insn hack. + + * pa.md: Remove hack from all index insns to reverse the operand + order of frame and stack pointer references incorrectly created + in the reload pass. + + * function.h (emit_status): Delete member regno_pointer_flag and + rename regno_pointer_flag_length to regno_pointer_align_length. + Delete define for REGNO_POINTER_FLAG. + * integrate.h (inline_remap): Delete member regno_pointer_flag. + Add member x_regno_reg_rtx. + * rtl.h (rtx_def): Use frame_related bit to indicate register is + a pointer in REG expressions. Define REG_POINTER macro. + * alias.c (find_base_value, find_base_term): Use REG_POINTER + instead of REGNO_POINTER_FLAG. + * combine.c (nonzero_bits, num_sign_bit_copies): Likewise. + * emit-rtl.c (gen_reg_rtx): Use regno_pointer_align_length instead + of regno_pointer_flag_length. Remove code which refers to + regno_pointer_flag. + (mark_reg_pointer): Use REG_POINTER. + (free_emit_status): Remove code which refers to regno_pointer_flag. + (init_emit, mark_emit_status): Likewise. + * flow.c (dump_flow_info): Likewise. + * function.c (preserve_temp_slots): Likewise. + * integrate.c (expand_inline_function, copy_rtx_and_substitute): + Use x_regno_reg_rtx instead of regno_pointer_flag for function + pointer determination in map. + * loop.c (strength_reduce, maybe_eliminate_biv_1): Use REG_POINTER. + * predict.c (estimate_probability): Likewise. + * regclass.c (record_address_regs, reg_scan_mark_refs): Likewise. + * unroll.c (unroll_loop): Use x_regno_reg_rtx instead of + regno_pointer_flag for function pointer determination in map. + * convex.h (RTX_COSTS): Don't test regno_pointer_flag and use + REG_POINTER. + * pa.c (hppa_legitimize_address, emit_move_sequence, basereg_operand): + Use REG_POINTER. + (restore_unscaled_index_insn_codes): Revise comment. + + * expr.c (do_compare_and_jump): Add missing TYPE_MODE in statement. + +2000-11-30 Joseph S. Myers + + * extend.texi: Update documentation for attributes. + +2000-11-29 David O'Brien + + * config/alpha/elf.h (IDENT_ASM_OP): Protect the #define. + (ASM_DECLARE_OBJECT_NAME): Same. + (ASM_FILE_END): Same. + (ASM_FINISH_DECLARE_OBJECT): Same. + (ASM_IDENTIFY_GCC): Same. + (ASM_IDENTIFY_LANGUAGE): Same. + (ASM_OUTPUT_CONSTRUCTOR): Same. + (ASM_OUTPUT_DEF): Same. + (ASM_OUTPUT_DESTRUCTOR): Same. + (ASM_OUTPUT_EXTERNAL_LIBCALL): Same. + (ASM_OUTPUT_SECTION_NAME): Same. + (ASM_WEAKEN_LABEL): Same. + (BSS_SECTION_ASM_OP): Same. + (COMMON_ASM_OP): Same. + (CONST_SECTION_ASM_OP): Same. + (CONST_SECTION_FUNCTION): Same. + (CTORS_SECTION_ASM_OP): Same. + (DTORS_SECTION_ASM_OP): Same. + (ESCAPES): Same. + (FINI_SECTION_ASM_OP): Same. + (IDENT_ASM_OP): Same. + (IDENT_ASM_OP): Same. + (INIT_SECTION_ASM_OP): Same. + (INT_ASM_OP): Same. + (MAX_OFILE_ALIGNMENT): Same. + (SBSS_SECTION_ASM_OP): Same. + (SDATA_SECTION_ASM_OP): Same. + (SECTION_FUNCTION_TEMPLATE): Same. + (SELECT_SECTION): Same. + (SE_CONST_SECTION): Same. + (SIZE_ASM_OP): Same. + (SKIP_ASM_OP): Same. + (STRING_ASM_OP): Same. + (STRING_LIMIT): Same. + (TYPE_ASM_OP): Same. + (TYPE_OPERAND_FMT): Same. + +2000-11-29 Neil Booth + + * c-decl.c (c_decode_option): Don't handle -lang-objc. + * objc/lang-options.h: Remove -lang-objc. + * objc/lang-specs.h: Don't pass -lang-objc to cc1obj. + * objc/objc-act.c (lang_init_options): Set c_language. + +2000-11-29 Jakub Jelinek + + * expr.c (can_store_by_pieces): Reinitialize max_size for reverse + tests. + +2000-11-29 Neil Booth + + * c-pragma.c (init_pragma): Update for parse_in type change. + +2000-11-29 Laurynas Biveinis + + * configure.in: recognize DOS-style absolute paths. + +2000-11-29 Jakub Jelinek + + * expr.h (store_by_pieces): Add prototype. + (can_store_by_pieces): Likewise. + * expr.c (struct store_by_pieces): Renamed from clear_by_pieces. + (can_store_by_pieces): New. + (store_by_pieces): New. + (clear_by_pieces): New. + (clear_by_pieces_1): New. + (store_by_pieces_1): Renamed from clear_by_pieces, handle storing + arbitrary compiler generated constants into memory block. + (store_by_pieces_2): Renamed from clear_by_pieces_1, likewise. + * builtins.c (c_readstr): New. + (builtin_memcpy_read_str): New. + (expand_builtin_memcpy): If src is string constant and + emit_block_move would move it by pieces, compute integer constants + from the string and store it into memory block instead. + (builtin_strncpy_read_str): New. + (expand_builtin_strncpy): If N is not constant zero and c_strlen does + not return INTEGER_CST, don't optimize. + If N is larger than strlen(src) + 1, try to copy the string + including padding with store_by_pieces. + (expand_builtin_strcmp): If both arguments have side effects, don't + optimize. + (expand_builtin_fputs): If STR has side effects, don't optimize. + +2000-11-29 Richard Earnshaw + + * arm.md (sibcall, sibcall_value, sibcall_insn, sibcall_value_insn): + Add use of link register. + +2000-11-29 Joseph S. Myers + + * extend.texi: Update documentation for default format attributes. + +Tue Nov 28 21:56:45 2000 Jeffrey A Law (law@cygnus.com) + + * pa/pa-64.h (ASM_OUTPUT_SECTION_NAME): Use a hash table, not + a list, to keep track of the sections. + +2000-11-28 Nick Clifton + + * config/arm/arm.md (pic_load_addr): Split into + pic_load_addr_arm and pic_load_addr_thumb. + + * config/arm/arm.c (legitimize_pic_address): Generate either + ARM or Thumb versions of pic_load_addr. + (arm_finalize_pic): Generate either ARM or Thumb versions of + pic_load_addr. + +2000-11-28 Richard Henderson + + * calls.c (expand_call): Defer const/pure NO_DEFER_POP until + after sibcall do_pending_stack_adjust. + +Wed Nov 29 00:08:23 2000 J"orn Rennecke + + * jump.c (delete_insn): Check that REG_LABEL note actually contains + a CODE_LABEL. + +2000-11-28 Neil Booth + + * c-common.h: Remove flag_digraphs. + * c-decl.c: Remove flag_digraphs. + (c_decode_option): Don't set it. + * c-lex.c (init_c_lex): Don't do anything for digraphs. + +2000-11-28 Richard Henderson + + * c-parse.in (finish_parse): Update for parse_in type change. + (_yylex): Likewise. + +2000-11-28 Neil Booth + + * cppmacro.c (cpp_scan_buffer_nooutput): Take a boolean + indicating whether to scan all buffers on the stack or + just one. + * cppinit.c (do_includes): Update. + * cppmain.c (main): Update. + * cpplib.h: Update prototype. + +2000-11-28 Richard Henderson + + * genoutput.c (validate_insn_operands): New. + (gen_insn): Call it. + + * config/alpha/alpha.md (divmodsi_internal): Renumber operands. + (divmoddi_internal): Likewise. + * config/arm/arm.md (andsi3_compare0_scratch): Likewise. + * config/i960/i960.md (branch patterns): Likewise. + * config/ia64/ia64.md (tbit_and_0): Likewise. + (tbit_and_1, tbit_or_0, tbit_or_1): Likewise. + * config/m68k/m68k.md (zero_extract memory patterns): Likewise. + * config/mips/mips.md (divmodsi4_internal): Likewise. + (divmoddi4_internal): Likewise. + * config/rs6000/rs6000.md (call patterns): Likewise. + * config/sh/sh.md (movsi_y): Likewise. + * config/sparc/sparc.md: Comment out if 0 v8p shift pattern. + +2000-11-28 Richard Henderson + + * config.gcc: Kill residual pyramid support. + +2000-11-28 Neil Booth + + * c-lex.h (parse_in): Change parse_in to a cpp_reader *. + * c-decl.c (c_decode_option): Update to match. + * c-lex.c (init_c_lex, yyparse): Update to match. + * c-lang.c (lang_init_options): Use cpp_create_reader. + * cppinit.c (cpp_init): Rename initialize. + (cpp_reader_init): Rename cpp_create_reader. Create the + reader. Initialize cpplib if appropriate. + * cpplib.h (cpp_create_reader) New prototype. + (cpp_init, cpp_reader_init): Delete prototypes. + * cppmain.c (general_init, setup_callbacks): New functions. + (main): Use them. + * fix-header.c (scan_in): Change type to cpp_reader *. + (read_scan_file): Update for new cpplib interface and scan_in type. + + * cp/decl.c (parse_in): Change to cpp_reader *. + (lang_decode_option): Update. + * cp/lex.c (lang_init_options): Use new cpplib interface. + (init_cp_pragma, finish_parse, handle_pragma_implementation): Update. + * cp/spew.c (read_token): Update. + * objc/objc-act.c (lang_init_options): Update new cpplib interface. + +2000-11-28 Jakub Jelinek + + * loop.c (load_mems): Avoid using next_label to find end_label. If + jumping outside of the loop (other than loop end), don't hoist MEMs + out of loop. + +2000-11-28 Jan Hubicka + + * calls.c (expand_call): Don't disable tail recursion based + on the loop nest. + +2000-11-28 Neil Booth + + * tradcpp.c (enum node_type): New hash types T_ASSERT, T_UNASSERT. + (struct directive): Drop 4th argument from handlers. + (do_define, do_line, do_include, do_undef, do_else, do_elif, + do_endif): Similarly. + (do_assert, do_unassert, do_ifdef, do_ifndef): New handlers. + (do_ifxdef): Update as common handler of do_ifdef and do_ifndef. + (make_definition, make_undef): Take a const char*. + (make_assertion): New function. + (struct directive_table): Update. + (main): Handle -A command line argument. + (handle_directive): Drop fourth handler argument. + +2000-11-28 Bernd Schmidt + + * simplify-rtx.c (cselib_record_sets): Ignore sets whose destination + is anything but REG or MEM, but look inside STRICT_LOW_PART. + +Tue Nov 28 09:53:50 2000 Richard Kenner + + * system.h (IS_DIR_SEPARATOR): Use uppercase macro name. + (IS_ABSOLUTE_PATHNAME): New macro. + * gcc.c (find_a_file, process_command, do_spec_1, main): Use it. + +2000-11-28 Jakub Jelinek + + * config/i386/i386.md (truncxfsf2_2): Fix predicate. + +2000-11-27 Jim Wilson + + * reload1.c (reload): Use HOST_WIDE_INT for old_frame_size. + +2000-11-27 Matthias Klose + + * extend.texi (Nested Functions): Update URL of Usenix paper. + +2000-11-27 Mark Mitchell + + * function.c (free_after_compilation): Clear x_clobber_return_insn. + +2000-11-27 Neil Booth + + * cppinit.c (cpp_reader_init): Remove handling of warn_paste + command line options. + (cpp_handle_option): Similarly. + * cpplib.h (struct cpp_options): Remove warn_paste. + * cppmacro.c (paste_tokens): Apart from assembler, make + unpasteable token warning mandatory. + +2000-11-27 Neil Booth + + * tradcpp.c (enum pending_dir_t, struct pending_dir): New. + (main): Allocate a pending directive set of these. Use it. + Merge handling of -D and -U. Update handling of pending + directives. Free the memory after use. + +2000-11-27 Bernd Schmidt + + * flow.c (entry_exit_blocks): Add entry for cond_local_set. + (struct propagate_block_info): Add new member cond_local_set. + (propagate_block): Accept new arg cond_local_set. All callers + changed. + (init_propagate_block_info): Likewise. + (calculate_global_regs_live): Allocate & free cond_local_set. Always + rescan if there's overlap between cond_local_set and new_live_at_end. + (mark_set_1): Set bits either in cond_local_set or local_set, as + appropriate. + * basic-block.h (struct basic_block_def): New field cond_local_set. + (propagate_block, init_propagate_block_info): Update prototypes. + +Mon Nov 27 17:29:44 2000 kaz Kojima + + * gcc/config/sh/sh.md (udivsi3_i4, udivsi3_i4_single): Clobber + T register. + +2000-11-27 Richard Earnshaw + + * arm.c (select_dominance_cc_mode): Handle new way that combine + canonicalizes conditional compares. + (arm_select_cc_mode): Likewise. + * arm.md: Garbage collect some dead code. + (cmp_and, cmp_ior): New patterns. + (splitter for conditional move with inverted false): Use cond_exec + and handle unordered comparisons. + +Mon Nov 27 17:22:56 MET 2000 Jan Hubicka + + * i386.c (ix86_force_to_memory, ix86_free_from_memory): New. + * i386-protos.h (ix86_force_to_memory, ix86_free_from_memory): Declare + * i386.md (float?i?f, int/fp operations): Rewrite spliters to use + ix86_force_to_memory and ix86_free_from_memory. + +2000-11-27 Richard Earnshaw + + * arm.md (arm_adddi3, adddi_sesidi_di, adddi_zesidi_di, arm_addsi3, + arm_subsi3_insn, anddi_zesidi_di, arm_andsi3_insn, anddi_notdi_di, + anddi_notzesidi_di, anddi_notsesidi_di, arm_iorsi3, + one_cmpldi2): Merge with splitters to create define_insn_and_split + patterns. Remove redundant splits. + (peephole2 for add:SI of invalid immediate): New. + (peephole2 for minus:SI of invalid immediate): New. + (peephole2 for ior:SI of invalid immediate): New. + (peephole for merge of move and compare): Convert ot peephole2. + (addsf3, adddf3): Mark as commutative. + + * arm.md (thumb peephole for merging stack adjustments): Convert to + peephole2. + +2000-11-27 Bernd Schmidt + + * haifa-sched.c (print_pattern): Prettier output for COND_EXEC. + + * reload1.c (reload_cse_simplify_set): Pass down mode to cselib_lookup. + (reload_cse_simplify_operands): Do nothing about operands where both + the operand and the match_operand fail to give us a mode. + * simplify-rtx.c (wrap_constant): New function. + (entry_and_rtx_equal_p): Except integer constants to come wrapped in a + CONST describing the proper mode. + (rtx_equal_for_cselib_p): Pass down modes to recursive calls of + cselib_lookup. + (cselib_lookup_mem): Call wrap_constant on the rtx that is passed to + htab_find_slot_with_hash. + (cselib_lookup): Likewise. + + Based on a patch from Geoff Keating : + * loop.c (basic_induction_var): If a REG is set from something + that is not a biv, then the REG is not a biv. Even if it is + earlier set from something that is a biv. + +2000-11-27 Alexandre Oliva + + * configure.in (extra_objs): Enclose extra_headers in quotes. + * configure: Rebuilt. + +2000-11-27 Neil Booth + + * c-lex.c (cb_enter_file, cb_leave_file, cb_rename_file): + Combine into the new function cb_change_file. + (init_c_lex): Update. + * cppfiles.c (stack_include_file): Use _cpp_do_file_change. + (cpp_syshdr_flags): Delete. + * cpphash.h (_cpp_do_file_change): New prototype. + Move struct cpp_buffer here from... + * cpplib.h (struct cpp_buffer): ... here. + (enum cpp_fc_reason, struct cpp_file_loc, + struct_cpp_file_change, change_file): New. + (enter_file, leave_file, rename_file, cpp_syshdr_flags): Delete. + * cpplib.c (do_line): Update for new cb_change_file callback. + (_cpp_do_file_change): New function. + (_cpp_pop_buffer): Update to use it. + * cppmain.c (move_printer): Delete. + (main): Set up single callback cb_change_file. + (cb_enter_file, cb_leave_file, cb_rename_file): Delete. + (cb_change_file): New. + * fix-header.c (cur_file, cb_change_file): New. + (recognized_function, read_scan_file): Update. + * scan-decls.c (scan_decls): Update. + * scan.h (recognized_function): Update prototype. + +2000-11-26 Mark Mitchell + + * tree.h (mark_tree_hashtable): New function. + * tree.c (mark_tree_hashtable_entry): New function. + (mark_tree_hashtable): Likewise. + +2000-11-27 Michael Meissner + + * d30v-protos.h (srelational_si_operator): Correctly spell + function. + (urelational_si_operator): Ditto. + (relational_si_operator): Ditto. + (d30v_expand_prologue): Add prototype. + (d30v_expand_epilogue): Ditto. + + * d30v.h (OPTIMIZATION_OPTIONS): Undo November 22nd change. + + * d30v.md (movcccc_*): Delete now unused patterns. + (64 bit comparison splitters): Rewrite to use COND_EXEC instead of + IF_THEN_ELSE. + (define_cond_exec): Use 'b' to select branch flags. + +2000-11-26 Kaveh R. Ghazi + + * builtins.c (expand_builtin_strncmp, expand_builtin_strncpy): New + functions. + (expand_builtin): Handle BUILT_IN_STRNCPY and BUILT_IN_STRNCMP. + + * builtins.def (BUILT_IN_STRNCPY, BUILT_IN_STRNCMP): New entries. + + * c-common.c (c_common_nodes_and_builtins): Declare builtin + strncpy and strncmp. + + * extend.texi (strncmp, strncpy): Document new builtins. + +2000-11-26 Mark Mitchell + + * config/elfos.h (ASM_OUTPUT_SECTION_NAME): Use a hash table, not + a list, to keep track of the sections. + * tm.texi (ASM_OUTPUT_SECTION_NAME): Document the fact that the + parameter provided will always be a canonical string. + +2000-11-26 Neil Booth + + * cppmacro.c (cpp_scan_buffer_nooutput): Only scan the + current buffer. + +2000-11-26 Joseph S. Myers + + * makefile.vms: Remove EGCS references. + +2000-11-26 Ulrich Drepper + + * dwarf2out.c (output_file_names): New function. Compute minimal + combination of directory and file name table and emit them. + (output_line_info): Remove code to emit directory and file name + table and call output_file_names instead. + (file_info_cmp): Helper function to sort directory names. + +2000-11-26 Neil Booth + + * cpplib.h (struct cpp_reader): Remove lang_asm. + (struct cpp_options): Remove c89. New members lang, + extended_numbers. + * cppexp.c (parse_number): Use them. + * cpphash.h (VALID_SIGN): Use them. + * cppinit.c (set_lang, cpp_start_read): Update. + * cpplex.c (parse_string, _cpp_lex_token): Update. + * cpplib.c (_cpp_handle_directive): Update. + * cppmacro.c (parse_args): Update. + * cppmain.c (scan_buffer): Update. + +Sun Nov 26 10:02:37 2000 Richard Kenner + + * fold-const.c (fold, case CONVERT_EXPR): Always return tree of + proper type. + +2000-11-26 Neil Booth + + * Makefile.in: Remove MAYBE_CPPLIB and maybe_cpplib. + * c-decl.c: Remove parse_in declaration. + * c-lang.c: Similarly. + * c-lex.c: Similarly. + * c-parse.in: Similarly. + * c-pragma.c: Similarly. + * configure.in: Similarly. + * cp/Make-lang.in: Similarly. + * cp/spew.c: Similarly. + * cp/decl2.c: Remove check for lang-c++ option. + * cp/lang-specs.h: Remove -lang-c++ from cc1plus command line. + * cp/lex.c (lang_init_options): With cpp_reader_init, default to C++. + * c-lex.h: Add declaration of parse_in. + * cppinit.c: Call set_lang after allocating pfile->pending. + * configure: Regenerate. + +2000-11-25 Zack Weinberg + + * combine.c (try_combine): Remove redundant test. + +2000-11-25 Richard Henderson + + * c-common.h (DECL_C_HARD_REGISTER): New. + * c-decl.c (finish_decl): Set it for asm register variables. + * c-semantics.c (emit_local_var): Test it when instantiating one. + +2000-11-25 Richard Henderson + + * c-decl.c (c_expand_body): Use DECL_SOURCE_LINE rather than + lineno for the start of the function. + +2000-11-25 Richard Henderson + + * dwarf2out.c (file_table, file_table_allocated): Remove. + (file_table_allocated): Remove. + (struct file_table): New. + (decl_file_table, line_file_table): New. + (print_dwarf_line_table): Use them. + (size_of_line_prolog): Likewise. + (output_line_info): Likewise. + (add_src_coords_attributes): Likewise. + (gen_subprogram_die): Likewise. + (gen_variable_die): Likewise. + (dwarf2out_add_library_unit_info): Likewise. + (dwarf2out_line): Likewise. + (lookup_filename): Take a struct file_table argument. + (init_file_table): New. + (dwarf2out_init): Use it. + +2000-11-25 Joseph S. Myers + + * invoke.texi: Update sequence points references. + +2000-11-25 Neil Booth + + * c-common.c: Remove USE_CPPLIB conditional inclusions. + * c-common.h: Similarly. + * c-decl.c: Similarly. + * c-lang.c: Similarly. + * c-lex.c: Similarly. + * c-parse.in: Similarly. + * c-pragma.c: Similarly. + * c-pragma.h: Similarly. + * gcc.c: Similarly. + * toplev.c: Similarly. + * cp/cp-tree.h: Similarly. + * cp/decl2.c: Similarly. + * cp/lang-specs.h: Similarly. + * cp/lex.c: Similarly. + * cp/lex.h: Similarly. + * cp/spew.c: Similarly. + * java/lang-options.h: Similarly. + * objc/lang-specs.h: Similarly. + * objc/objc-act.c: Similarly. + + * configure.in: Remove configure option. + * config.in: Regenerate. + * configure: Regenerate. + +2000-11-25 Richard Henderson + + * haifa-sched.c (sched_analyze_1, sched_analyze_2, sched_analyze): + Revert 2000-11-22 change. + +2000-11-25 Bernd Schmidt + + * config/i386/i386.h (FIXED_REGS): Make the three flags registers + fixed. + +2000-11-25 Philipp Thomas + * configure.in (ALL_LINGUAS): Remove en_GB and add sv. + * configure: Rebuilt. + +2000-11-25 Jakub Jelinek + + * config/sparc/sparc.md (muldi3_v8plus): Remove H constraint. + Handle CONST_INT as second argument. + * config/sparc/sparc.c (set_extends): Remove first argument. + Properly handle AND, CONST_INT and CONST_DOUBLE, handle IOR, XOR and + MOV. + (sparc_check_64): Abort if first argument is not REG. + If it is DImode REG, look at the lower register of the register + pair. + + * config/sparc/sparc.c (load_pic_register, restore_regs, + output_return, sparc_v8plus_shift, sparc_function_profiler, + sparc_function_block_profiler, sparc_block_profiler): Fix output + formatting. + +2000-11-25 Alexandre Oliva + + * config/sh/sh.h (TARGET_NONE): New. + (TARGET_SWITCHES): For all variant-selecting switch, use + TARGET_NONE to reset all other variant-selecting switch. Added + empty strings to avoid warnings. + (TARGET_DEFAULT): Set to SH1_BIT. + + * Makefile.in ($(INTL_TARGETS)): Added $(CONFIG_H) for + insn-codes.h. + + * gcc/config/sh/sh.md (sibcalli, sibcalli_pcrel): New insns. + (sibcall_pcrel): New insn_and_split. + (sibcall, sibcall_value, sibcall_epilogue): New expands. + + * config/sh/sh.md (GOTaddr2picreg, symGOT2reg, symGOTOFF2reg, + symPLT_label2reg, call, call_value): Don't set + current_function_uses_pic_offset_table. + * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Don't mark + PIC_OFFSET_TABLE_REGNUM as call_used, so that calc_live_regs + takes it into account. + (FINALIZE_PIC): Delete, useless. + (LEGITIMATE_CONSTANT_P): Delete, unused. + * config/sh/sh.c (sh_expand_prologue): Don't use + current_function_uses_pic_offset_table. Don't special-case + PIC_OFFSET_TABLE_REGNUM. Initialize it if it's ever live and + PIC is enabled. + (sh_expand_epilogue, initial_elimination_offset): Don't + special case PIC_OFFSET_TABLE_REGNUM. + +2000-11-25 Alexandre Oliva , NIIBE Yutaka + + * config/sh/sh-protos.h (symbol_ref_operand): Declare. + * config/sh/sh.md (UNSPEC_CALLER): New constant. + (calli_pcrel, call_valuei_pcrel): Use PIC_REG. + (call_pcrel, call_value_pcrel): New insn_and_splits. + (call, call_value): Use them. + (call_site): New expand. + (sym_label2reg, symPLT_label2reg): Adjust to hold call_sites. + * config/sh/sh.h (OUTPUT_ADDR_CONST_EXTRA) [UNSPEC_CALLER]: + Output call_site label. + (PREDICATE_CODES): Added symbol_ref_operand. + * config/sh/sh.c (symbol_ref_operand): Define. + * emit-rtl.c (try_split): Propagate CALL_INSN_FUNCTION_USAGE + to CALL_INSNs in the split sequence. + +2000-11-24 Nick Clifton + + * config.gcc (v850-*-*): Define c_target_objs and + cxx_target_objs. + + * config/v850/t-v850: Define how to build v850-c.o + + * config/v850/v850.h (struct data_area_stack_element): Move + definition here from v850.c. + + * config/v850v850.c: Include gcc.h to avoid compile time + warning. + (push_data_area): Move to v850-c.c. + (pop_data_area): Move to v850-c.c. + (mark_current_function_as_interrupt): Move to v850-c.c. + (GHS_default_section_names): Allow to be exported. + (GHS_current_section_names): Allow to be exported. + (data_area_stack_elements): Allow to be exported. + (ghs_pragma_section): Move to v850-c.c. + (ghs_pragma_interrupt): Move to v850-c.c. + (ghs_pragma_starttda): Move to v850-c.c. + (ghs_pragma_startsda): Move to v850-c.c. + (ghs_pragma_startzda): Move to v850-c.c. + (ghs_pragma_endtda): Move to v850-c.c. + (ghs_pragma_endsda): Move to v850-c.c. + (ghs_pragma_endzda): Move to v850-c.c. + + * config/v850/v850-c.c: New file: Contains v850 specific + pragma parsing functions. + +2000-11-24 Nick Clifton + + * config.gcc (extra_objs): Remove duplicate description. + (c_target_objs): New variable. Contains target specific + object files for the gcc C compiler only. + (cxx_target_objs): New variable. Contains target specific + object files for the gxx C++ compiler only. + + * configure.in (c_target_objs): Substitute in the makefile. + (cxx_target_objs): Substitute in the makefile. + * configure: Regenerate. + + * Makefile.in (C_TARGET_OBJS): Define and initialize from + c_target_objs. + (CXX_TARGET_OBJS): Define and initialize from + cxx_target_objs. + (C_AND_OBJC_OBJS): Include C_TARGET_OBJS. + + * cp/Make-lang.in (CXX_C_OBJS): Include CXX_TARGET_OBJS). + + * tm.texi (REGISTER_TARGET_PRAGMAS): Add paragraph explaining + about how the use of the 'c_lex' function requires the use of + the target specific, language specific object files feature of + the configuration mechanism. + +Fri Nov 24 18:50:58 2000 Richard Kenner + + * gcc.c (process_command): Use F_OK, not R_OK. + +2000-11-24 Arno J. Klaassen + + * flow.c (print_rtl_and_abort): Remove ANSIism. + +Fri Nov 24 19:54:36 2000 Alexandre Oliva + + * config/sh/sh.h (GENERAL_REGISTER_P, + GENERAL_OR_AP_REGISTER_P, FP_REGISTER_P, XD_REGISTER_P, + FP_OR_XD_REGISTER_P, FP_ANY_REGISTER_P): New macros. Use them + all over. + (SPECIAL_REG): Renamed to SPECIAL_REGISTER_P. + * config/sh/sh.c: Use new macros. + * config/sh/sh.md: Likewise. + +Fri Nov 24 19:46:16 2000 Alexandre Oliva + + * config/sh/sh.md: Clobber MACH_REG and MACL_REG in SImode, + instead of just MACH_REG in DImode. Always refer to FPSCR_REG + in PSImode. + +Fri Nov 24 22:37:41 2000 Denis Chertykov + + * config/avr/avr.c (out_tsthi,out_tstsi): Test simplification bug + fixed. + (machine_dependent_reorg): Wrong optimization based on + NOTICE_UPDATE_CC removed. + +Fri Nov 24 19:48:09 2000 J"orn Rennecke + + * jump.c (delete_computation): Re-instate deletion of feeding insn. + (delete_insn): Look for REG_LABEL notes. + (redirect_tablejump): Delete feeding insns. + +2000-11-24 Bernd Schmidt + + * config/i386/i386.md (call_pop_0, call_pop_1, call_value_pop_0, + call_value_pop_1): Make sure operand numbers are contiguous. + + * fold-const.c (fold_range_test): Avoid crash if LHS or RHS is null. + + * reload1.c (conflicts_with_override): New function. + (emit_input_reload_insns): Use it to tighten test for validity + of substituting into output of previous insn. + + * haifa-sched.c (struct ready_list): New. + (ready_lastpos, ready_add, ready_remove_first, ready_sort): New static + functions. + (schedule_insn): Replace args READY and N_READY with a pointer to a + ready_list; return void. Use the new functions to access the ready + list. All callers changed. + (queue_to_ready, debug_ready_list): Likewise. + (schedule_block): Initialize a ready_list structure. Use new + functions to access it. + (max_priority): Remove unused variable. + (schedule_insn): Don't set it. + + * c-common.c (verify_tree): Don't recurse into CONSTRUCTORs. + + * combine.c (cant_combine_insn_p): New function. + (try_combine): Use it. + + * Makefile.in (c-common.o): Depend on $(OBSTACK_H). + * c-common.c (c-obstack.c): Include "obstack.h". + (struct reverse_tree): Delete. + (reverse_list, reverse_max_depth): Delete. + (build_reverse_tree, common_ancestor, modify_ok): Delete functions. + (struct tlist, struct tlist_cache): New. + (tlist_obstack, tlist_firstobj, warned_ids, save_expr_cache): New. + (add_tlist, merge_tlist, verify_tree, warning_candidate_p, + warn_for_collisions, warn_for_collisions_1, new_tlist): New + static functions. + (verify_sequence_points): Rewritten. + * fold-const.c (fold): Don't lose possibly important sequence + points when removing one arm of TRUTH_ORIF_EXPRs or TRUTH_ANDIF_EXPRs. + +2000-11-24 Richard Sandiford + + * gcc/cse.c (cse_insn): Removed conversion of REG_EQUIV to REG_EQUAL + when reversing a register-to-register copy. Reversal now disabled + when the previous instruction has a REG_EQUIV. + +2000-11-24 Nathan Sidwell + + * c-parse.in (unary_expr): Move VA_ARG from here ... + (primary): ... to here. + +2000-11-23 Graham Stott + + * expr.c (store_constructor): If a field is non addressable and + the target is a MEM use MEM_ALIAS_SET otherwise use get_alias_set. + +2000-11-23 Bernd Schmidt + + * flow.c (print_rtl_and_abort): New function. + (verify_wide_reg, verify_local_live_at_start): Try to dump more + information before aborting. + +2000-11-23 Alexandre Oliva + + * emit-rtl.c (gen_lowpart_common): Use word 0 if register mode + is narrower than requested mode. + (gen_highpart): Abort if register mode is narrower than + requested mode. + +2000-11-23 Graham Stott + + * cse.c (cse_insn): Initialize all regcost variables. + Fix a typo add missing '='. + Only compare costs if there is a replacement insn. + +Thu Nov 23 04:33:33 2000 Alexandre Oliva + + * final.c (output_addr_const) [LABEL_REF]: Simplify. + [MINUS]: Enclose non-CONST_INTs in parentheses. + [default]: Try OUTPUT_ADDR_CONST_EXTRA. + * tm.texi (OUTPUT_ADDR_CONST_EXTRA): Document it. + * varasm.c (decode_rtx_const) [CONST]: If it's not something + PLUS or MINUS a CONST_INT, use the whole CONST with offset 0 + instead of abort()ing. + * sh.c (output_pic_addr_const): Removed. Fixed all callers. + * sh.h (OUTPUT_ADDR_CONST_EXTRA): New. Handle the UNSPECs + formerly handled in output_pic_addr_const. + * sh.md (sym_label2reg, symPLT_label2reg): Enclose UNSPEC + operands of MINUS in CONSTs so that decode_rtx_const() will + accept them. + +Thu Nov 23 04:10:30 2000 Alexandre Oliva + + * config/sh/sh.md (mova_const): New pattern. + (GOTaddr2picreg): Use it. + * config/sh/sh.c (broken_move): Match it. + (mova_p): Don't match it. + (machine_dependent_reorg): Adjust it. + +Thu Nov 23 02:09:09 2000 Alexandre Oliva + + * config/sh/sh.h (FIRST_GENERAL_REG, LAST_GENERAL_REG): New. + Moved most register-number #defines... + * config/sh/sh.md (define_constants): ... here. Use macros to + refer to registers and unspecs. + * config/sh/sh.c: Likewise. + +Thu Nov 23 01:01:32 2000 J"orn Rennecke + + * Makefile.in (HOST_CFLAGS): Add -DGENERATOR_FILE. + (rtl.o, print-rtl.o, bitmap.o, obstack.o): Build with -DGENERATOR_FILE. + (alloca.o, vfprintf.o, ggc-none.o, errors.o): Likewise. + (splay-tree.o, hash.o): Likewise. + GCONFIG_H: New. + (rtl.o, print-rtl.o): Depend on $(GCONFIG_H) instead of $(CONFIG_H). + (bitmap.o, obstack.o, vfprintf.o, ggc-none.o, errors.o): Likewise. + (hashtab.o): Likewise. + (gcov.o): Depend on $(CONFIG_H). + * configure.in: #include insn-codes.h in tm.h. + +2000-11-22 Nick Clifton + + * config/arm/arm.c (arm_encode_call_attribute): Make 'newstr' a + const char * to avoid a compile time warning. + + * config/arm/arm.md (define_constants): Define symbolic names for + the link register, last integer register and the fake CC register. + Update patterns to use these symbolic names. + +2000-11-22 Neil Booth + + * cpplex.c (trigraph_ok): Ensure we don't warn twice. + * cpplib.h (struct cpp_buffer): New member last_Wtrigraphs. + +2000-11-22 Richard Henderson + + * haifa-sched.c (sched_analyze_1): Don't special-case calls + for clobbering registers. + (sched_analyze_2): Likewise. + (sched_analyze): Zap reg_last_uses and reg_last_sets after calls. + +2000-11-22 Chris Demetriou + Neil Booth + + * gcc.c (validate_switches): Validate multiple switches named + in '|' (or) expressions in specs. + (handle_braces): If more than 1 alternative in a '|' spec + matches, call do_spec1 just once. + +2000-11-22 Michael Meissner + + * d30v.h (TARGET_SWITCHES): Add documentation strings. + (TARGET_OPTIONS): Ditto. + (OPTIMIZATION_OPTIONS): Temporarily turn off -frename-registers if + -O3. + +Wed Nov 22 06:40:56 2000 Jeffrey A Law (law@cygnus.com) + + * pa.c (hppa_encode_label): Account for addition of encoding + character when allocating persistent space for the new label + name. + +2000-11-22 Zack Weinberg + + * Makefile.in, config.gcc, configure.in: Expunge remaining + traces of facility for running MD files through C preprocessor. + +2000-11-22 Joseph S. Myers + + * gcov.texi: Add magic comments for texi2pod.pl. + * Makefile.in: Add rules to generate and install gcov.1. + * gcov.1: New (generated) file. + +2000-11-21 Richard Henderson + + * regrename.c (scan_rtx_reg): Terminate the chain rather than + abort on mark_read with NO_REGS. + +2000-11-21 Mike Stump + + * fixinc/fixtests.c (TEST_FOR_FIX_PROC_HEAD): Fix to allow + compilation with older compilers, such as /bin/cc on SunOS. + * fixinc/fixfixes.c (FIX_PROC_HEAD): Ditto. + +2000-11-21 Richard Henderson + + * varasm.c (record_constant): Pad the constructed + constant_descriptor appropriately. + +Wed Nov 22 00:52:55 2000 J"orn Rennecke + + * rtl.h (traverse_md_constants): Declare. + (struct md_constant): Define. + * Makefile.in (HOST_RTL): Add hashtab.o . + (OBJS): Add hashtab.o . + (hashtab.o): New rule. + (rtl.o): Depends on HASHTAB_H. + * rtl.c (hashtab.h): #include. + (md_constants): New static variable. + (def_hash, def_name_eq_p, read_constants): New static functions. + (traverse_md_constants): New function. + (read_name): Do constant expansion. + (read_rtx): Recognize define_constants. + * gencodes.c (print_md_constant): New function. + (main): Emit #defines for all constant definitions encountered. + * md.texi (Constant Definitions): New node. + * gensupport.c (xcalloc): New function. + +2000-11-21 Richard Henderson + + * config/alpha/alpha.c (alpha_split_tfmode_frobsign): New. + * config/alpha/alpha-protos.h: Declare it. + * config/alpha/alpha.md (abstf_internal): Use it. + (negtf_internal): Likewise. + (andnotdi3): Unstar the name. + (movtf_internal): Add o/G alternative. + +2000-11-21 Zack Weinberg + + * stringpool.c (stringpool_statistics): Also report number and + percentage of entries which are identifiers. + +2000-11-21 Diego Novillo + + * gcse.c (hoist_expr_reaches_here_p): Do not mark expr_bb as + visited before visiting it. + +2000-11-21 Nick Clifton + + * config/arm/arm.h: Accept TARGET_CPU_arm9tdmi, + TARGET_CPU_strongarm110 and TARGET_SPU_strongarm1100. + + * config.gcc: Accept --with-cpu=arm9 and --with-cpu=arm9tdmi. + +2000-11-21 Richard Henderson + + * c-common.c (c_unsafe_for_reeval): New function. + (add_c_tree_codes): Register it. + * c-common.h: Declare it. + * tree.c (lang_unsafe_for_reeval): New hook. + (unsafe_for_reeval): Call it. + * tree.h: Declare it. + +2000-11-21 Richard Henderson + + * config/i386/i386.c (i386_simplify_dwarf_addr): Simplify @GOT + references as well. + +2000-11-21 Neil Booth + + * do_includes: Revert to using cpp_read_file. + +2000-11-21 Bernd Schmidt + + * loop.c (consec_sets_giv): If the reg we're examining is anything + but UNKNOWN_INDUCT, do nothing. + Reset the reg's type to UNKNOWN_INDUCT before returning. + + Mostly from Vladimir Makarov (vmakarov@redhat.com) + * ia64.md (attr itanium_class): Define insn types as described in + Itanium docs. + (all insn patterns): Use itanium_class, not type attributes. + Occasionally split alternatives as necessary. + (attr type): Compute from new attr itanium_class. + +2000-11-21 Kaveh R. Ghazi + + * tradcpp.c (output_line_command): Mark system headers as such in + `line' commands. + +2000-11-21 Jakub Jelinek + + * configure.in (HAVE_AS_DWARF2_DEBUG_LINE): SPARC has .file/.loc + support in as as well. + * configure: Regenerate. + +2000-11-20 Richard Henderson + + * c-lex.c (orig_filename): New variable. + (init_c_lex): Set it. Move call to cpp_start_read ... + (yyparse): ... here. New function. + * c-parse.in (yyparse_1): Rename the parser entry point. + * c-tree.h: Declare it. + +2000-11-21 Jakub Jelinek + + * expr.c (do_compare_and_jump): If op0 was replaced by promoted + integer constant, use type of op1 for comparison. + +2000-11-20 Stan Shebs + + * config/rs6000/xm-darwin.h: New file, Darwin host definitions. + * config/rs6000/x-darwin: New file, Darwin host fragment. + * config.gcc (powerpc-*-darwin*): New host. + * system.h (HAVE_DESIGNATED_INITIALIZERS): Allow this to be + overridden by a config file. + +2000-11-20 Neil Booth + + * cppmacro.c (paste_tokens): Rename from paste_payloads. + Change token type after pasting spellings. + (paste_all_tokens): Use it. + * gcc.dg/cpp/paste2.c: Update test. + * objc/execute/paste.m: New test. + +2000-11-20 Richard Henderson + + * dwarf.h (FMT_CODE): Adjust argument order; fix mapping to + dwarf_subscr_data_formats bits. + * dwarfout.c (simple_type_size_in_bits): Handle a type with + no computed size as size zero. + (field_byte_offset): Likewise. + (subscript_data_attribute): Handle a range with no upper bound. + +2000-11-20 Kaveh R. Ghazi + + * gansidecl.h (const): Check __STDC__ before undef'ing `const'. + +2000-11-20 Joseph S. Myers + + * c-typeck.c (build_conditional_expr): When merging type + qualifiers for conditional expressions between a pointer and a + pointer to a void type, merge the qualifiers on the target types + rather than the pointer type. Remove obsolete conditioned out + code. + +2000-11-20 Neil Booth + + * c-lang.c (lang_init_options): Update call to + cpp_reader_init. + * cppmain.c (main): Similarly. + * fix-header.c (read_scan_file): Similarly. + * cp/lex.c (lang_init_options): Similarly. + * objc/objc-act.c (lang_init_options): Similarly. + * cppexp.c (parse_number): Only warn for unextended C89. + * cppinit.c (set_lang): New function. + (cpp_reader_init): Take a LANG argument and pass it to set_lang. + (COMMAND_LINE_OPTIONS): New option std=c++98. + (cpp_handle_option): Use set_lang. + * cpplex.c (_cpp_lex_token): Warn pedantically if not C99. + * cppib.h (enum_c_lang): New enumeration. Update comments. + +2000-11-20 Will Cohen + + * calls.c (expand_call): Clear target only when target is in + hard register and current_function_check_memory_usage is set. + +2000-11-20 Bernd Schmidt + + * toplev.c (rest_of_compilation): Run optimize_mode_switching even + if not optimizing. + * sh.c (emit_sf_insn, emit_df_insn): Just call emit_insn. + +2000-11-19 Richard Henderson + + * crtstuff.c (force_to_data): Use array size 1 not 0. + + * dwarf2out.c (simple_type_size_in_bits): Handle a type with + no computed size as size zero. + (field_byte_offset): Likewise. + +2000-11-20 Joseph S. Myers + + * config.gcc: Fix another typo. + +2000-11-19 Richard Henderson + + * c-decl.c (grokdeclarator): Support flexible array members. + Use open-ended ranges for these and zero-length arrays. + * c-typeck.c (push_init_level): Validate the context of + initialization of a zero-length array. + * tree.c (int_fits_type_p): Be prepared for missing bounds. + * varasm.c (array_size_for_constructor): New. + (output_constructor): Use it for arrays of unspecified length. + * extend.texi (Zero Length): Mention C99 flexible array members. + Document initialization in a top-level struct as valid. + +2000-11-19 Joseph S. Myers + + * config.gcc, invoke.texi: Fix errors in spelling of "deprecated". + + * alias.c (mems_in_disjoint_alias_sets_p): Do use alias sets in + stdarg and varargs functions. + +2000-11-19 Zack Weinberg + + * gcc.c (process_command): Define 'j' variable when + MODIFY_TARGET_NAME is defined. + +2000-11-19 Richard Henderson + + * stor-layout.c (variable_size): Only put SAVE_EXPRs on pending_sizes. + +2000-11-19 Franz Sirl + + * rs6000/rs6000.c (rs6000_encode_section_info): Fix string length + calculation and allocation. + +2000-11-19 Kaveh R. Ghazi + + * builtins.c (c_getstr): Constify variable. + * gmon-sol2.c (_mcleanup): Comment out #endif labels. + * conflict.c (const_conflict_graph_arc): New typedef. + (arc_hash, arc_eq): Avoid needlessly casting away const-ness. + * cppmacro.c (builtin_macro): Likewise. + * dwarf2out.c (output_comp_unit): Constify variable. + * fix-header.c (v_fatal): Add ATTRIBUTE_PRINTF. + * protoize.c (IS_SAME_PATH_CHAR): Use TOUPPER, not toupper. + * ssa.c (ssa_rename_from_hash_function): Avoid needlessly casting + away const-ness. + * tradcpp.c (rescan, do_line, macroexpand, macarg): Use + ISALNUM/ISDIGIT/ISPRINT, not isalnum/isdigit/isprint. + * varasm.c (const_str_htab_hash, const_str_htab_eq, + compare_constant_1, record_constant_1): Constify. + +2000-11-18 Richard Henderson + + * c-decl.c (grokdeclarator): Special case the creation of an + index for a zero-length array. + * tree.c (build_index_type): Revert Oct 20 change. + +2000-11-18 Marek Michalkiewicz + + * config/avr/avr-protos.h (avr_output_addr_vec_elt): Prototype. + * config/avr/avr.c (jump_tables_size): New variable. + (function_prologue): Initialize it as 0. + (function_epilogue): Add it to function_size. + (avr_output_addr_vec_elt): New function. Count words in jump + tables in jump_tables_size. Move code ... + * config/avr/avr.h (ASM_OUTPUT_ADDR_VEC_ELT): ... from here. + Call avr_output_addr_vec_elt instead. + * config/avr/avr.md (tablejump): Remove disabled define_expand. + +2000-11-18 Mark Mitchell + + * configure.in: Make --enable-new-gxx-abi the default. + * configure: Likewise. + +2000-11-18 Kaveh R. Ghazi + + * Makefile.in (tradcpp.o, tradcif.o): Depend on tradcpp.h. + + * tradcif.y: Include tradcpp.h. Constify. Make functions static. + Move extern function declarations to tradcpp.h. + + * tradcpp.c: Likewise. + + * tradcpp.h: New file. + +2000-11-18 Joseph S. Myers + + * c-decl.c (check_for_loop_decls): New function. + * c-parse.in (for_init_stmt): New. + (select_or_iter_stmt): Use for_init_stmt. + * c-tree.h (check_for_loop_decls): New declaration. + +2000-11-18 Neil Booth + + * cppinit.c: Update comments. + (cpp_reader_init): Make -imacro and -include use the standard + #include "" search path. + (do_includes): New function. + +2000-11-18 Ben Elliston + + * config/sh/crt1.asm (start_l): Move PC-relative move instruction + out of a branch delay slot. + +2000-11-17 Richard Henderson + + * config/alpha/elf.h (PREFERRED_DEBUGGING_TYPE): Set to DWARF2_DEBUG. + (ASM_SPEC): Disable and enable .mdebug based on -gstabs. + (ASM_FILE_START): Only write out ecoff .file directive if + emitting mdebug debugging. + +2000-11-17 Richard Henderson + + * configure.in (HAVE_AS_DWARF2_DEBUG_LINE): New. Detect + whether as accepts .file/.loc and produces dwarf2 line info. + * dwarf2out.c (DWARF2_ASM_LINE_DEBUG_INFO): Default on if + the assembler supports it. + * config.in, configure: Regenerate. + +2000-11-17 Richard Henderson + + * fixinc/mkfixinc.sh: Don't disable fixincludes for any linux*. + +2000-11-17 Jim Wilson + + * config/ia64/ia64.c (emit_insn_group_barriers, case CALL_INSN): + Don't clear need_barrier is next_insn is a CALL_INSN, or has + instruction type B or UNKNOWN. + +2000-11-17 Neil Booth + + * cpperror.c (print_file_and_line): Don't display line number if 0. + +2000-11-17 Zack Weinberg + + * ggc.h: Delete ggc_add_string_root and ggc_mark_string. Add + digit_vector and digit_string. + * stringpool.c (digit_vector): New. + (ggc_alloc_string): Use digit_string. + + * stmt.c (digit_strings): Delete. + (init_stmt): Do not initialize digit_strings. + (expand_asm_operands): Use ggc.h's digit_string macro. + * toplev.c (mark_file_stack): Delete. + (compile_file): Don't call init_tree_codes. + (main): No need to make the file stack a GC root. + * tree.c (init_tree_codes): Delete. + * tree.h (init_tree_codes): Delete. + + * c-lex.c: Don't include ggc.h. + (mark_splay_tree_node, mark_splay_tree): Delete. + (init_c_lex): No need to ggc_strdup string constant. Don't add + file_info_tree to GGC roots. + (cb_enter_file, cb_rename_file): No need to ggc_strdup + ip->nominal_fname. + + * Makefile.in (c-lex.o): No longer depends on $(GGC_H). + + * dbxout.c (dbxout_init), + dwarf2out.c (dwarf2out_line), + ggc-common.c (ggc_mark_rtx_children, ggc_mark_trees), + varasm.c (mark_const_hash_entry, mark_pool_constant, init_varasm_once), + xcoffout.c (xcoffout_source_file), + i386.c (load_pic_register): + Delete call(s) to ggc_add_string_root and/or ggc_mark_string. + + * except.c (create_rethrow_ref), + profile.c (init_edge_profiler), + toplev.c (compile_file), + varasm.c (named_section, assemble_static_space, + assemble_trampoline_template, output_constant_def, force_const_mem), + i386.c (load_pic_register), + ia64.c (ia64_encode_section_info), + rs6000.c (rs6000_emit_load_toc_table, create_TOC_reference, + rs6000_emit_prologue, rs6000_emit_epilogue), + rs6000.md (load_toc_aix_si, load_toc_aix_di): + Change ggc_alloc_string (var, -1) to ggc_strdup (var). + + * profile.c (output_func_start_profiler), + tree.c (make_node), + i386.c (load_pic_register): No need to ggc_strdup string constant. + +2000-11-17 Hans-Peter Nilsson + + * Makefile.in (config.status): Depend on config.gcc. + * configure.in : Move + contents of loop into config.gcc, removing autoconf quoting. + Fix changequote bug for alpha*-*-vxworks*. + * configure: Regenerate. + * config.gcc: New. + +2000-11-16 Zack Weinberg + + * c-parse.in (if_prefix): Find the filename and line number at + $-2 and $-1 respectively. + * diagnostic.c (error_recursion): Add missing newline, use + fputs, translate string. + +2000-11-16 Zack Weinberg + + * stringpool.c: New file. + * ggc-common.c (ggc_mark_string_ptr, ggc_add_string_root): Delete. + (ggc_alloc_string): Now in stringpool.o. + * ggc-page.c, ggc-simple.c: Do not define or allocate empty_string. + * ggc.h: Delete prototype of ggc_add_string_root. #define + ggc_add_string_root and ggc_mark_string to nothing. Prototype + init_stringpool and stringpool_statistics. + (ggc_alloc_string): Returns a const char *. + * tree.c (hash_table, do_identifier_warnings): Delete. + (init_obstacks): Don't initialize the identifier hash table. + (get_identifier, maybe_get_identifier, start_identifier_warnings, + set_identifier_size): Now in stringpool.c. + * tree.h (struct tree_string): Constify pointer field. + (approx_sqrt): Prototype. + + * Makefile.in (stringpool.o): Add rule, mention in OBJS. + + * toplev.c (approx_sqrt): New function. + (compile_file): Call stringpool_statistics if mem_report is on. + (main): Call init_stringpool. + + * builtins.c (c_strlen), c-decl.c (finish_decl), c-lex.c + (process_directive), c-typeck.c (constructor_asmspec, struct + initializer_stack, start_init), except.c (create_rethrow_ref), + stmt.c (digit_strings), toplev.c (decode_f_option), tree.c + (built_in_filename), varasm,c (in_named_name, + assemble_static_space, struct constant_descriptor, struct + deferred_string, struct pool_constant, force_const_mem), + i386.c (pic_label_name, global_offset_table_name), rs6000.c + (rs6000_emit_prologue, rs6000_emit_epilogue) : Constify a char *. + + * c-common.c (combine_strings): Combine strings in scratch + buffer, then pass to build_string. + * optabs.c (init_libfuncs), profile.c (init_edge_profiler, + output_func_start_profiler), stmt.c (init_stmt), alpha.c + (alpha_need_linkage), arm.c (arm_encode_call_attribute), + i386.c (load_pic_register), ia64.c (ia64_encode_section_info), + rs6000.c (rs6000_encode_section_info): Create string in + scratch buffer, then pass to ggc_alloc_string. + + * stmt.c (expand_asm_operands): If we must adjust the + constraint strings, do so by creating a new one, not by + modifying the old one in place. Constify some char *s. + * config/pa/pa.c (hppa_encode_label): Drop unnecessary second + argument. Create string in scratch buffer, then pass to + ggc_alloc_string. + * config/pa/pa-protos.h: Update prototype. + * config/pa/elf.h, config/pa/pa.h, config/pa/som.h: + hppa_encode_label takes only one argument. + +2000-11-16 Kaveh R. Ghazi + + * mcore.c (mcore_expand_prolog): Call xmalloc/xrealloc, not + malloc/realloc. + + * cpplib.c (glue_header_name): Likewise. + + * fixincl.c (run_compiles, start_fixer): Likewise. + + * fixlib.c (load_file_data): Likewise. + + * mkdeps.c (munge): Likewise. + +2000-11-17 Hans-Peter Nilsson + + * defaults.h [EH_FRAME_SECTION_ASM_OP] (EH_FRAME_SECTION): Remove + trailing ';'. Fix formatting. + +2000-11-16 Jim Wilson + + * config/ia64/ia64.h (MASK_INLINE_DIV_LAT, MASK_INLINE_DIV_THR): + Shift masks left by one to avoid conflict. + + * config/ia64/ia64.c (ia64_encode_section_info): Disallow decls with + DECL_EXTERNAL set. + +2000-11-16 Nick Clifton + + * config/arm/arm.c (output_arm_prologue): Note nested functions. + (arm_expand_prologue): For nested functions preserve the + static chain register during stack frame creation. + + * config/arm/arm.h (STATIC_CHAIN_REGNUM): Change to 12. + (ARM_INITIAL_FRAME_ELIMINATION_OFFSET): For a nested function + with a stack frame there is a 4 byte gap between the arg + pointer and the hard frame pointer (used to preserve the + static chain register during stack frame creation). + +2000-11-16 DJ Delorie + + * rtl.c (read_rtx): Provide suitable names for unnamed + define_insn and define_insn_and_split patterns, based on file + and line numbers. + +2000-11-15 Neil Booth + + * cpplib.c (start_directive, end_directive): New functions. + (_cpp_handle_directive, run_directive): Use them. + (_cpp_handle_directive): Don't -Wtraditional on indented + null directives. + (_cpp_push_buffer): Don't re-clear was_skipping. + * cpplib.h (struct cpp_reader): New member la_saved. + * cppmacro.c (cpp_get_token): Don't interpret _Pragma in + directives. + + gcc.dg/cpp/_Pragma1.c: Update. + gcc.dg/cpp/_Pragma2.c: New test. + +2000-11-15 Mark Mitchell + + * toplev.c (wrapup_global_declarations): Don't write out + artificial static variables that aren't needed. + +2000-11-15 Bernd Schmidt + + * ia64.c (struct group): New structure. + (last_group): New static array. + (group_idx): New static variable. + (emit_group_barrier_after, errata_find_address_regs, errata_emit_nops): + New static functions. + (emit_insn_group_barriers): Initialize and keep track of group_idx + and last_group. + Call errata_emit_nops if TARGET_B_STEP or TARGET_A_STEP. + Replace all calls to emit_insn_after that emit a group barrier to use + emit_group_barrier_after. + * ia64.h (MASK_B_STEP): New. + (other MASK_XXX macros): Renumbered. + (TARGET_B_STEP): New. + (TARGET_SWITCHES): Add -mb-step. + +2000-11-15 Fred Fish + + * fixinc/mkfixinc.sh (fixincludes): Add *-*-beos* to list of + machines for which fixincludes is not needed. + * config/i386/x-beos (STMP_FIXPROTO): Don't run fixproto. + +2000-11-15 Jason Merrill + + * diagnostic.c (finish_abort): New fn. + (fancy_abort, error_recursion): Use it. + * toplev.c (crash_signal): Likewise. + * diagnostic.h: Declare it. + +2000-11-13 Andrew Haley + + * tree.c (build_type_no_quals): New function. + * tree.h (build_type_no_quals): Declare. + * c-common.c (c_get_alias_set): When considering type + compatibility for pointer types, ignore cv-qualifiers anywhere in + a pointer chain. + +2000-11-15 Graham Stott + + * regrename.c (scan_rtx_rtx): Skip to the next chain on + encountering a terminated chain. + +2000-11-14 Mark Mitchell + + * configure.in: Move check for V3 above check for C++ header-file + directory. + * configure: Regenerated. + +2000-11-14 DJ Delorie + + * config/v850/v850.c: Remove obstacks. + +Tue Nov 14 21:54:31 2000 Marek Michalkiewicz & Denis Chertykov + + * config/avr/avr.c (avr_case_values_threshold): New. + (avr_override_options): Set it depending on options, make it large + when not optimizing to work around "unable to generate reloads". + + * config/avr/avr.h (TARGET_SWITCHES): Add -mno-tablejump option. + (EXTRA_SECTION_FUNCTIONS): Make the .progmem.gcc_sw_table section + executable if not AVR_MEGA. Make sure jump tables are word-aligned. + (JUMP_TABLES_IN_TEXT_SECTION): Define as 0, not 1. + (ASM_OUTPUT_ADDR_VEC_ELT): Optimize, use "rjmp" if not AVR_MEGA. + (avr_case_values_threshold): Declare as extern int. + (CASE_VALUES_THRESHOLD): Define as avr_case_values_threshold. + + * config/avr/avr.md (tablejump): Removed. + (*tablejump_rjmp): New for jump tables made from "rjmp" instructions. + (*tablejump_lib, *tablejump_enh, *tablejump): Change to expect the + index in the table, not multiplied by 2. + (casesi): Change to match the above insns. Always enable. + + * config/avr/libgcc.S (__tablejump__): Rename to __tablejump2__. + Change to expect the word address of the table, multiply it by 2 + here and not in the caller. Change "adiw" to faster "inc". + +2000-11-14 Neil Booth + + * cppexp.c (parse_defined): Call cpp_get_token not + _cpp_get_token. + (lex): Similarly. + * cpplex.c (cpp_output_line): Similarly. + * cpplib.c (glue_header_name, do_line, do_ident, + parse_answer, parse_assertion): Similarly. + (_cpp_handle_diretive): Don't save to lookaheads + when processing directives. + * cppmacro.c (parse_arg, expand_arg): Call cpp_get_token not + _cpp_get_token. + (funlike_invocation_p): Don't save to lookaheads + when pre-expanding arguments. + (_cpp_get_token): Delete. + (cpp_get_token): Merge contents of _cpp_get_token. + +2000-11-14 Jakub Jelinek + + * builtins.c (expand_builtin_setjmp): Set + current_function_calls_setjmp. + (expand_builtin_longjmp): Set current_function_calls_longjmp. + + * config/sparc/sparc.md (builtin_setjmp_setup): New expand. + (do_builtin_setjmp_setup): New insn. + +Tue Nov 14 12:34:56 2000 Richard Kenner + + * tree.c (get_unwidened): Use host_integerp and tree_low_cst. + (int_fits_type_p): For variable bounds, call force_fit_type. + +2000-11-14 Jakub Jelinek + + * varasm.c (struct deferred_string): New structure. + (const_str_htab): New variable. + (STRHASH): New macro. + (mark_const_str_htab_1, mark_const_str_htab, const_str_htab_hash, + constr_str_htab_eq, const_str_htab_del): New functions. + (output_constant_def): Add DEFER argument, defer string + constants until mark_constant_pool time if requested. + (mark_constant_pool): Walk the insn chain even if const_str_htab is + not empty. + (mark_constants): If a SYMBOL_REF for deferred string is found, + output it and remove from hash table. + (output_addressed_constants): Set DEFER to 0 in call to + output_constant_def. + * rtl.h (STRING_POOL_ADDRESS_P): Define. + (output_constant_def): Adjust prototype. + * expr.c (expand_expr): Set DEFER to 1 in call to output_constant_def. + +2000-11-14 Chandrakala Chavva + + * optabs.c (expand_complex_ab):: Use overflow-trapping optabs for + signed types if flag_trapv. + +2000-11-14 Zack Weinberg + + * tradcpp.c, tradcif.y: Update FSF mailing address, delete + reference to GPLv1. + +2000-11-14 Joseph S. Myers + + * c-common.h (CTI_C_SIZE_TYPE): Update comment. + +2000-11-14 Jakub Jelinek + + * varasm.c (struct varasm_status): Change x_const_rtx_sym_hash_table + to array of pool_constnat pointers. + (struct pool_constant): Add next_sym and label members. + (struct pool_sym): Remove. + (init_varasm_status): Change pool_sym into pool_constant. + (mark_pool_constant): Mark pc->label string as well. + (mark_pool_sym_hash_table): Remove. + (mark_varasm_status): Remove it from caller as well. + (free_varasm_status): Don't free pool_sym structures. + (force_const_mem): Don't allocate pool_sym structure, instead + fill pool->label and chain it into rtx_sym hash table. + (find_pool_constant, mark_constant_pool): Use pool_constant instead + of pool_sym. + +2000-11-14 Jakub Jelinek + + * reload1.c (emit_input_reload_insns): Honor forcing of constants + into memory by PREFERRED_RELOAD_CLASS NO_REGS. + +2000-11-14 Michael Matz + + * dominance.c: New file. + * Makefile.in (OBJS): Add dominance.o. + + * flow.c (compute_flow_dominators): Remove. + (compute_immediate_dominators): Remove. + (compute_immediate_postdominators): Remove. + * basic-block.h: Remove their prototypes. + (calculate_dominance_info): Add prototype. + + * dce.c (eliminate_dead_code): Change calls to above functions. + Don't compute dominators but only immediate dominators. + * flow.c (flow_loops_find): Change callers. + * gcse.c (compute_code_hoist_data): Likewise. + * haifa-sched.c (schedule_insns): Likewise. + * ifcvt.c (if_convert): Likewise. + * ssa.c (convert_to_ssa): Likewise, and only compute immediate + dominators. + +2000-11-14 Richard Henderson + + * stmt.c (warn_if_unused_value): Don't warn if the expression + has side effects. + + * c-typeck.c (c_sizeof): Fold result to c_size_type_node. + (c_sizeof_nowarn, c_alignof, c_alignof_expr): Likewise. + +2000-11-13 Franz Sirl + + * loop.c (basic_induction_var): Revert accidental checkin. + +2000-11-13 Hans-Peter Nilsson + + * c-lex.c (cb_leave_file): Harmonize conditions and order of + statements to those of process_directive for (action == act_pop). + + * collect2.c (main): Pass on -B options from COLLECT_GCC_OPTIONS. + + * local-alloc.c (equiv_init_movable_p): References to CC0 are not + movable. + +2000-11-13 Joseph S. Myers + + * c-parse.in (stmts_and_decls): Deprecate use of label at end of + compound statement. + +2000-11-13 Neil Booth + + * cpplex.c (_cpp_lex_token): CPP_COMMENT and true CPP_EOF + cases return without MI check. + * cpplib.c (do_diagnostic): Take boolean of whether to + print the directive name. + (do_error, do_warning): Update. + (do_pragma_dependency): Use it. + * cpplib.h (VARARGS_FIRST): Delete. + (struct cpp_token): Delete integer. + * cppmacro.c (enter_macro_context): Move disabled check + to _cpp_get_token. + (_cpp_get_token): Simplify into a single loop. + +2000-11-13 Richard Earnshaw + + * configure.in: Use 'test -f' not '[ -e'. + * configure: Regenerated. + +2000-11-13 DJ Delorie + + * config/mn10300/mn10300.md (store_movm): Note which registers are + really used or clobbered. + +2000-11-13 Joseph S. Myers + + * c-parse.in (ends_in_label): Remove from %union and %type. + (decls, stmts, lineno_stmt_or_labels, xstmts, + lineno_stmt_or_label, stmt_or_label): Remove. + (stmts_and_decls, lineno_stmt_decl_or_labels_ending_stmt, + lineno_stmt_decl_or_labels_ending_decl, + lineno_stmt_decl_or_labels_ending_label, + lineno_stmt_decl_or_labels_ending_error, + lineno_stmt_decl_or_labels, compstmt_contents_nonempty, + lineno_stmt, lineno_label): New. + (compstmt_nostart): Use compstmt_contents_nonempty. + +2000-11-13 Joseph S. Myers + + * c-common.c (boolean_increment): New function. + * c-common.h (enum c_tree_index): Add CTI_C_BOOL_TYPE, + CTI_C_BOOL_TRUE and CTI_C_BOOL_FALSE. + (c_bool_type_node, c_bool_true_node, c_bool_false_node): Define. + (boolean_increment): Declare. + * c-convert.c (convert): Allow for BOOLEAN_TYPE. + * c-decl.c (init_decl_processing): Create boolean nodes. + (finish_struct): Allow for _Bool bitfields. + * c-parse.in (reswords): Add _Bool. + (rid_to_yy): Allow for RID_BOOL. + * c-typeck.c (default_conversion): Make booleans promote to int. + (convert_arguments, build_unary_op, build_modify_expr, + convert_for_assignment): Allow for booleans. + * ginclude/stdbool.h: Make conforming to C99. + +2000-11-13 Joseph S. Myers + + * c-parse.in (c99_block_start, c99_block_end, + c99_block_lineno_labeled_stmt): New. + (simple_if, do_stmt_start): Use c99_block_lineno_labeled_stmt. + (stmt): Split off selection and iteration statements into... + (select_or_iter_stmt): New. Use c99_block_lineno_labeled_stmt. + +2000-11-13 Joseph S. Myers + + * invoke.texi (-Wtrigraphs, -fdump-translation-unit, -save-temps, + -time): Update. + +2000-11-13 Richard Earnshaw + + * arm.md (mulsidi3adddi, umulsidi3adddi): Revert previous change. + Rewrite to avoid use of match_dup. Don't try to tie registers that + are not in the same mode. + +2000-11-13 Joseph S. Myers + + * invoke.texi: Update lists of languages and suffixes supported. + +2000-11-13 Joseph S. Myers + + * configure.in: Take toplevel configure arguments from the + environment to create configargs.h and substitute + gcc_config_arguments, taking account of any existing configargs.h + if reconfiguring. + * configure: Regenerate. + * gccbug.in: Include toplevel configure arguments in gccbug. + +2000-11-13 Richard Earnshaw + + * varasm.c (struct constant_descriptor): Put CONTENTS inside a + union to make it well-aligned. Update all uses. + +2000-11-13 Joseph S. Myers + + * c-parse.in (initelt): Give appropriate pedantic warnings, + depending on flag_isoc99, for non-ISO syntax and for C99 syntax + outside C99 mode. + (designator): If pedantic, pedwarn for a designator specifying a + range of elements. + * c-typeck.c (set_init_index, set_init_label): Don't pedwarn for + these cases. + * extend.texi: Document the C99 syntax as the preferred syntax, + and the pre-2.5 syntax as obsolete. Mention use of designator + lists for nested subobjects. + +2000-11-13 Joseph S. Myers + + * diagnostic.c (vbuild_message_string, output_do_printf, vnotice): + Add ATTRIBUTE_PRINTF. + * tradcpp.c (v_message, warning, error, fatal, error_with_line): + Add ATTRIBUTE_PRINTF*. + +2000-11-12 Mark Mitchell + + * function.c (assign_parms): When calling put_var_into_stack, make + sure that there are no hidden pending sequences. + +2000-11-12 Kaveh R. Ghazi + + * builtins.c (expand_builtin): Handle BUILT_IN_INDEX and + BUILT_IN_RINDEX. Add missing checks for BUILT_IN_STRCHR and + BUILT_IN_STRRCHR. + + * builtins.def (BUILT_IN_INDEX, BUILT_IN_RINDEX): New entries. + + * c-common.c (c_common_nodes_and_builtins): Declare index and + rindex when nonansi builtins are allowed. + + * extend.texi (index, rindex): Document new builtins. + +2000-11-12 Mark Mitchell + + * configure.in: Turn on libstdc++ V3 by default. + * configure: Regenerated. + + * fixinc/mkfixinc.sh: Use the ordinary fixincludes on Solaris. + +2000-11-12 Jakub Jelinek + + * reload1.c (set_label_offsets): Go inside of PARALLELs. + +2000-11-12 Joseph S. Myers + + * invoke.texi: Clean up option summary. + +2000-11-12 Nick Clifton + + * config/mcore/mcore.c: Fix comment formating, and adjust sequence + of #include headers. + +2000-11-12 Marc Espie + + * configure.in: Fix filds test. + * configure: Regen. + +2000-11-12 Mark Mitchell + + * jump.c (delete_computation): Don't assume that just because an + instruction sets a register, that register is dead. + +2000-11-12 Neil Booth + + * cppexp.c: Don't worry about pfile->skipping. + * cpplib.c (struct if_stack): Make was_skipping unsigned char. + (cpp_handle_directive): Save pfile->skipping in struct cpp_buffer + for handled directives. + (skip_rest_of_line): Use _cpp_lex_token after popping contexts + and releasing lookaheads. + (do_ifdef, do_ifndef, do_if): Use buffer->was_skipping. + (do_else, do_elif, push_conditional): Update logic. + (do_endif): Set buffer->was_skipping rather than pfile->skipping. + (unwind_if_stack): Inline into cpp_pop_buffer. + (cpp_push_buffer): Clear ifs->was_skipping for cpp_handle_directive. + * cpplex.c (_cpp_lex_token): Clear skipping on EOF. Handle + multiple-include optimisation. + * cpplib.h (struct cpp_buffer): New member was_skipping. + * cppmacro.c (_cpp_get_token): Loop whilst pfile->skipping. This + works because skipping == 0 in directives. + (_cpp_release_lookahead): Renamed from release_lookahead. + (cpp_get_token): No need to check skipping as _cpp_get_token does + this for us. No need to handle MI optimisation. + +Sat Nov 11 21:14:02 2000 Mark P Mitchell + + * fixinc/inclhack.def (sunos_matherr_decl): Bypass matherr + declarations that use `__MATH_EXCEPTION' in their prototypes, too. + * fixinc/fixincl.x: Regenerated. + +2000-11-11 Bruce Korb + + * fixinc/inclhack.def (avoid_bool_type): avoid commenting out #endif + (avoid_wchar_t_type): ditto + * fixinc/fixinc.irix: obsoleted + +2000-11-11 Zack Weinberg + + * configure.in: Don't add $outputs to all_lang_makefiles. Add + $srcdir/$s/Makefile.in if it exists. + * configure: Regenerate. + +Sat Nov 11 18:41:20 2000 Mark P Mitchell + + * fixinc/mkfixinc.sh: Use the ordinary fixincludes on IRIX. + +2000-11-11 Jason Merrill + + * function.c (assign_parms): If TREE_ADDRESSABLE is set, try to + give the parm a register and then call put_var_into_stack. + * stmt.c (expand_decl): Likewise. + +2000-11-11 Joseph S. Myers + + * gcc.texi: Adjust wording. + +2000-11-11 Mark Mitchell + + * fixinc/inclhack.def (avoid_wchar_t_type): New fix. + * fininc/fixincl.x: Regenerated. + +2000-11-11 Joseph S. Myers + + * invoke.texi: Correct spelling of -foptimize-register-move. + +2000-11-11 Neil Booth + + Remove CPP_PLACEMARKERs. + + * cppexp.c (lex): Don't handle CPP_PLACEMARKER. + * cpplex.c (_cpp_lex_token): Rename skip_newlines to next_bol + * cpplib.c (skip_rest_of_line, check_eol, cpp_push_buffer): + Similarly. + * cpplib.h: Remove CPP_PLACEMARKER. + (struct lexer_state): Rename skip_newlines to next_bol. + * cppmacro.c (stringify_arg): Don't handle CPP_PLACEMARKER. + Simplify prev_white handling as a result. + (paste_all_tokens): Don't worry about CPP_PLACEMARKERs. + (parse_arg): Empty arguments are now empty, not CPP_PLACEMARKERs. + (parse_args): Similarly. Update argument count tests. + (enter_macro_context): Return 2 to indicate an empty macro. + (replace_args): Don't bother pre-expanding an empty argument. + Handle placemarkers and ## extension during pre-expansion. + (cpp_get_token): Handle empty macro expansions. Don't worry + about CPP_PLACEMARKERs. + (_cpp_create_definition): Empty macros are now empty. + (cpp_macro_definition): Don't special case empty macros. + * scan-decls.c: Don't bother with CPP_PLACEMARKERs. + * c-lex.c: Similarly. + +2000-11-11 Joseph S. Myers + + * gcc.texi, invoke.texi: Add new section discussing language + standards; link to it where appropriate; refer to ISO C instead of + ANSI C. + +2000-11-11 Alexandre Oliva + + * builtins.c (std_expand_builtin_va_start): Take PARM_BOUNDARY + into account. + + * config/sh/sh.h (MODES_TIEABLE_P): Don't tie SFmode to other FP + modes. + +2000-11-10 Joseph S. Myers + + * gcc.texi, gcov.texi: Update dates and version numbers. + +2000-11-10 Zack Weinberg + + * configure.in: Remove AC_PROG_LEX and AC_PROG_YACC. Look for + flex and bison, specifically, first in a unified build and + then installed on the system. + * Makefile.in: Set BISON to @BISON@, FLEX to @FLEX@. Rename + LEXFLAGS to FLEXFLAGS. Adjust ORDINARY_FLAGS_TO_PASS to + match. + + (collect2.o, gcc.o, prefix.o, toplev.o, alloca.o, intl.o, + cppdefault.o): Remove pointless sed munging of source file + name. + +2000-11-10 Bernd Schmidt + + * reload.c (find_reloads_address_1, case POST_MODIFY): Use RELOAD_OTHER + for address reloads. Push replacements for REG_INC notes. + (regno_clobbered_p): New arg SETS. Examine SETs if it's nonzero. All + callers changed. + * reload1.c (choose_reload_regs): Registers set in the insn can't be + used for RELOAD_OTHER reloads. + +2000-11-10 Mark Mitchell + + * c-dump.h: New file. + +2000-11-10 Kaveh R. Ghazi + + * alpha.c (check_float_value): Use memcpy, not bcopy. + * arm.c (output_move_double): Likewise. + * arm.md: Likewise. + * m88k.c (legitimize_operand): Likewise. + * m88k.h (ORDER_REGS_FOR_LOCAL_ALLOC): Likewise. + * m88k.md: Likewise. + * mips.c (override_options): Likewise. + * mips.md: Likewise. + * romp.c (output_fpops): Likewise. + * rs6000.c (rs6000_override_options): Likewise. + * sh.md: Likewise. + * vax.c (check_float_value): Likewise. + + * emit-rtl.c (copy_rtx_if_shared, init_emit_once): Likewise. + * expmed.c (synth_mult): Likewise. + * final.c (add_bb_string): Likewise. + * genattr.c (main): Likewise. + * genattrtab.c (attr_string, simplify_cond, copy_rtx_unchanging): + Likewise. + * jump.c (thread_jumps): Likewise. + * prefix.c (save_string): Likewise. + * real.h (REAL_VALUE_FROM_CONST_DOUBLE): Likewise. + * regclass.c (init_reg_sets, init_reg_sets_1): Likewise. + * reload1.c (reload, eliminate_regs): Likewise. + +2000-11-10 Joseph S. Myers + + * gcc.texi (Service): Update to reflect current practice and + location of the GNU service directory. + +2000-11-09 Bernd Schmidt + + * regrename.c (build_def_use): Mark contents of REG_INC notes as + needing replacement. + + * config/ia64/ia64.md (extendsfdf2, extendsftf2, extenddftf2): Emit + a no-op move if regs are equal. + * toplev.c (rest_of_compilation): Do the noop moves elimination pass + when calling jump after post-reload splitting. + +2000-11-09 Jan van Male + + * c-tree.texi: Fix typos. + * extend.texi: Likewise + * gcov.texi: Likewise + * rtl.texi: Likewise + * tm.texi: Likewise + +2000-11-09 Hans-Peter Nilsson + + * c-lex.c [! NO_IMPLICIT_EXTERN_C] (cb_enter_file): Check + in_system_header and flags[1] before dereferencing flags[2]. + +2000-11-09 Matthew Hiller + + * reload1.c (reload_combine): Fixed calculation of + first_index_reg, last_index_reg. + +2000-11-09 Mark Mitchell + + * c-dump.c (dequeue_and_dump): Dump function bodies. + + * Makefile.in (C_AND_OBJC_OBJS): Add c-dump.o. + (c-dump.o): New target. + * c-common.h (flag_dump_translation_unit): New variable. + (C_TYPE_QUALS): New macro. + (strip_array_types): New function. + (DECL_C_BIT_FIELD): New macro. + (SET_DECL_C_BIT_FIELD): Likewise. + (CLEAR_DECL_C_BIT_FIELD): Likewise. + (dump_info_p): New typedef. + (dump_tree_fn): Likewise. + (lang_dump_tree): New variable. + (dump_node_to_file): New function. + * c-common.c (flag_dump_translation_unit): Define it. + (strip_array_types): New function. + * c-decl.c (c_decode_option): Handle -fdump-translation-unit. + * c-lang.c (finish_file): Call dump_node_to_file if + flag_dump_translation_unit. + * c-semantics.c (mark_rtl_for_local_static): Fix typo in comment. + * c-tree.h (DECL_C_BIT_FIELD): Remove declaration. + * c-dump.c: New file. + +2000-11-09 Christopher Faylor + + * config/i386/cygwin.h: Add mingw startfile prefix. + +2000-11-09 Richard Henderson + + * flow.c (invalidate_mems_from_set): Split out from ... + (mark_set_1): ... here. + (try_pre_increment_1): Use it. Use propagate_block_delete_insn + instead of turning insn into a NOTE_INSN_DELETED. + +2000-11-10 Joseph S. Myers + + * extend.texi, invoke.texi: Move documentation of builtin versions + of C library functions to one place and update. + +2000-11-09 Richard Henderson + + * fold-const.c (fold): Compare TYPE_MAIN_VARIANT rather than + the types themselves to discover type equivalence. + +2000-11-09 Mike Stump + + * Makefile.in (distclean): Remove a few extra leftovers. + +2000-11-09 Richard Henderson + + * recog.c (validate_replace_rtx_1): Consider subregs when + replacing a register with a constant inside a sign/zero_extend. + + * config/alpha/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define. + +2000-11-09 Geoffrey Keating + + * c-decl.c (finish_struct): When a structure is completed, + check all its variant types for completeness. + +2000-11-09 Neil Booth + + * cpphash.c: Move cpp_defined here from cpplib.c. + * cpplib.c: Update comments, move cpp_defined to cpphash.c. + * cpplex.c (_cpp_lex_token): Don't leave the lexer at EOL. + * cppmacro.c (cpp_get_token): Update comments, no need now + to catch the CPP_EOF meaning EOL case. + +2000-11-08 Geoffrey Keating + + * config/sparc/sparc.c (sparc_va_arg): When the required alignment + is more than that provided, copy to a temporary. + +2000-11-09 Alexandre Oliva + + * mklibgcc.in (EXTRA_MULTILIB_PARTS): Prevent `make' from + interpreting $out as a macro assignment. + * Makefile.in (T_TARGET): New auxiliary macro and target. + (all): Add a target right in the beginning, so that we don't build + T_TARGET by default. + +2000-11-09 Graham Stott + + * config/i386/i386.md (mmx_pinsrw): Output operands in correct + order for -mintel-syntax. Remove comment now that the operand + order has been checked. + (mmx_pextrw): Likewise. + (mmx_pshufw): Likewise. + +2000-11-09 Jakub Jelinek + + * builtins.c (c_strlen): Use TREE_STRING_LENGTH - 1 for max. + (c_getstr): New function. + (expand_builtin_strstr): Do nothing if -fcheck-memory-usage. + If both arguments are constant string, optimize out. + (expand_builtin_strchr, expand_builtin_strrchr): New functions. + (expand_builtin_strpbrk): Use c_getstr, do nothing if + -fcheck-memory-usage. + (expand_builtin_fputs): Likewise. + (expand_builtin_strcmp): Add MODE argument. + Use even if !HAVE_cmpstrsi. + Optimize the case when both arguments are constant strings. + (expand_builtin): Adjust expand_builtin_strcmp caller. + Call expand_builtin_strchr and expand_builtin_strrchr. + * c-common.c (c_common_nodes_and_builtins): Add strchr and strrchr + builtins. + * builtins.def (BUILT_IN_STRRCHR): Add. + +2000-11-08 Gerald Pfeifer + + * fixinc/gnu-regex.c: Rename EGCS LOCAL markers to GCC LOCAL. + +2000-11-09 Joseph S. Myers + + * calls.c (expand_call, emit_library_call_value_1), collect2.c + (scan_prog_file), config/a29k/a29k.c (print_operand), + config/sparc/sparc.c (order_regs_for_local_alloc): Use memcpy () + instead of bcopy (). + * real.h: Use memcmp () instead of bcmp (). + * config/m88k/m88k.c (m88k_layout_frame), config/sh/sh.c + (split_branches), config/sparc/sparc.c (ultra_flush_pipeline, + ultrasparc_sched_init, ultrasparc_sched_reorder), + config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Use memset () + instead of bzero (). + * config/vax/xm-xms.h (FILE_NAME_NONDIRECTORY): Use strrchr () + instead of rindex (). + * configure.in: Don't check for bzero, bcmp, index or rindex. + * configure, config.in: Regenerate. + * system.h: Don't include declarations for bzero, bcmp, index or + rindex. + * config/i386/xm-beos.h, config/rs6000/xm-beos.h: Don't define + bzero, bcmp, index or rindex. + +Wed Nov 8 21:58:20 2000 Christopher Faylor + + * config/i386/cygwin.h: Add -no-win32 switch. Separate -mno-cygwin + include and library paths from -mcygwin case. Parameterize some + declarations to avoid warnings. Use standard locations for include and + lib dirs. + +2000-11-08 Nick Clifton + + * config/arm/arm.md (mulsidi3adddi): Change output operand + constraint from "=&" to "+&". + (umulsidi3adddi): Change output operand constraint from "=&" to + "+&". + +2000-11-08 Richard Henderson + + * flow.c (init_propagate_block_info): Protect the rtx stored in + mem_set_list from modification by find_auto_inc. + (mark_set_1): Likewise. + +2000-11-08 Neil Booth + + Move directive handling into the lexer itself. + + * cpplex.c (_cpp_lex_token): Handle directives directly. + In the case of a directive interrupting a function-like + macro invocation, use extra_char since read_ahead is + used to store the '#'. Return a CPP_EOF in this case. + * cppmacro.c (parse_arg): No need to handle CPP_DHASH any more. + (cpp_get_token): Don't handle directives here. + * cpplib.h: Remove CPP_DHASH token type. + +Wed Nov 8 21:53:41 MET 2000 Jan Hubicka + + * regmove.c (combine_stack_adjustments_for_blocks): Recognize pushes + formed using PRE_MODIFY too. + +2000-11-08 Mark Mitchell + + * c-tree.texi (VAR_DECL): Describe representation of GCC's + extension for placing variables in particular registers. + + * c-tree.texi (FUNCTION_TYPE): Clarify TYPE_ARG_TYPES for + unprototyped C functions with no parameters. + +2000-11-08 Jakub Jelinek + + * config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): Cast DELTA to int + before passing to fprintf. + +2000-11-08 Jakub Jelinek + + * function.c (expand_function_start): Cast GET_MODE_SIZE to + HOST_WIDE_INT before negating it. + +2000-11-08 Jakub Jelinek + + * expr.c (expand_expr) [ADDR_EXPR]: Handle when op0 is RETURN_DECL + passed in multiple non-contiguous locations. + +2000-11-08 Gerald Pfeifer + + * README.gnat: Remove file. + +2000-11-08 Alexandre Oliva + + * mklibgcc.in (EXTRA_MULTILIB_PARTS): Generate multilib parts + in-place. + +2000-11-07 Richard Henderson + + * dwarfout.c (INSN_LABEL_FMT): Remove. + (output_label_die): Use ASM_GENERATE_INTERNAL_LABEL. + (dwarfout_label): Remove. + * dwarfout.h: Remove it's prototype. + * dwarf2out.c (INSN_LABEL_FMT): Remove. + (gen_label_die): Use ASM_GENERATE_INTERNAL_LABEL. + (dwarf2out_label): Remove. + * dwarf2out.h: Remove it's prototype. + * final.c (final_scan_insn): Don't call dwarf[2]out_label. + +2000-11-07 Richard Henderson + + * config/ia64/fde-glibc.c (find_fde_for_dso): Do a binary + search on the unwind region section. + + * config/ia64/ia64.md (movbi): Add r/r alternative. + (cmovdi_internal_astep): Describe all combinations of register + classes for sources & destinations; remove matching constraints. + (cmovdi_internal): Likewise. + + * gcc.c (default_compilers) [@cpp-output]: Add -fpreprocessed. + +2000-11-07 Richard Henderson + + * c-lang.c (start_cdtor, finish_cdtor): New functions. + (finish_file): Use them in building constructor/destructor functions. + + * config/alpha/alpha.h (HAS_INIT_SECTION, LD_INIT_SWITCH, + LD_FINI_SWITCH): Move ... + * config/alpha/osf.h: ... here. + * config/alpha/alpha-interix.h: Don't undef them. + +2000-11-07 Jeffrey Oldham + + * config/mips/t-iris6 (FPBIT): New. Added so that __unorddf2 is + included in libgcc.a. + (DPBIT): Likewise. + (dp-bit.c): Likewise. + (fp-bit.c): Likewise. + +2000-11-07 Nick Clifton + + * config/m88k/m88k.h (GLOBAL_ASM_OP): Add missing tab. + (INTERNAL_ASM_OP): Add missing tab. + +2000-11-07 Joseph S. Myers + + * alias.c (init_alias_analysis), calls.c (expand_call, + emit_library_call_value_1), combine.c (init_reg_last_arrays), + cse.c (new_basic_block), dbxout.c (dbxout_type), diagnostic.c + (init_output_buffer, set_diagnostic_context), dwarf2out.c + (equate_decl_number_to_die, build_abbrev_table), emit-rtl.c + (init_emit_once), fold-const.c (mul_double, div_and_round_double), + function.c (assign_parms), gcse.c (compute_can_copy, + alloc_gcse_mem, alloc_reg_set_mem, record_one_set, + compute_hash_table, compute_set_hash_table, + compute_expr_hash_table), genattrtab.c (optimize_attrs), global.c + (global_alloc, global_conflicts), haifa-sched.c (compute_trg_info, + clear_units, schedule_block), integrate.c (initialize_for_inline, + expand_inline_function), jump.c (thread_jumps), local-alloc.c + (local_alloc), loop.c (combine_movables, count_loop_regs_set, + load_mems_and_recount_loop_regs_set), print-tree.c (debug_tree), + regclass.c (init_reg_sets, init_reg_sets_1, regclass, + record_reg_classes, allocate_reg_info), reload.c + (get_secondary_mem, remove_address_replacements, find_reloads), + reload1.c (reload, set_initial_label_offsets, finish_spills, + reload_as_needed, choose_reload_regs_init, + reload_cse_simplify_operands), reorg.c (dbr_schedule), sbitmap.c + (sbitmap_zero), simplify-rtx.c (simplify_plus_minus), ssa.c + (rename_registers), stmt.c (expand_end_case), unroll.c + (unroll_loop), varray.c (varray_grow), objc/objc-act.c: Use memset + () instead of bzero (). + +2000-11-07 Neil Booth + + * cp/lang-specs.h: Fix -save-temps specs under USE_CPPLIB. + +2000-11-07 Kaveh R. Ghazi + + * c-common.c (combine_strings): Only warn about long strings for C. + +Tue Nov 7 19:44:30 2000 J"orn Rennecke + + * combine.c (distribute_notes): Fix typo in last change. + +2000-11-07 Geoff Keating + + * config/rs6000/rs6000.md (movdi_internal32+1): Use + operand_subreg_force rather than gen_rtx_SUBREG. + (movdi_internal32+2): Likewise. + +2000-11-07 Philip Blundell + + * configure.in (arm*-*-linuxaout*): Obsolete, deleted. + * config/arm/linux-aout.h: Likewise. + * configure: Regenerate. + +2000-11-07 Philipp Thomas + + * ABOUT-GCC-NLS: Remove the patch for gettext as it has been + accepted my the gettext maintainer. + +2000-11-07 Kaveh R. Ghazi + + * builtins.c (expand_builtin_strpbrk): New function. + (expand_builtin): Handle BUILT_IN_STRPBRK. + + * builtins.def (BUILT_IN_STRPBRK): New entry. + + * c-common.c (c_common_nodes_and_builtins): Declare builtin + strpbrk. + +2000-11-07 David O'Brien + + * config/alpha/freebsd.h: New file -- FreeBSD/alpha architecture file. + * POTFILES.in: Add config/alpha/freebsd.h + * configure.in: Add alpha*-freebsd support. + * configure: Regenerate. + +2000-11-07 Joseph S. Myers + + * tree.c (build_common_tree_nodes_2): Make va_list_type_node be a + copy of ptr_type_node rather than ptr_type_node itself. + +Tue Nov 7 06:29:24 2000 J"orn Rennecke + + * combine.c (recog_for_combine): Allocate uninitialized vector with + rtvec_alloc. + * recog.c (apply_change_group): Likewise. + +Tue Nov 7 06:24:02 2000 J"orn Rennecke + + * flow.c (verify_local_live_at_start): Back out last change. + * combine.c (distribute_notes): When parts of a hard reg are + neither set nor referenced in PLACE, search backwards for a + place to put a REG_UNUSED note; if none found, ask for flow + info refresh. + +Mon Nov 6 20:08:13 2000 J"orn Rennecke + + * reload1.c (eliminate_regs_in_insn): Allow a set to be a PARALLEL + with (clobber (match_scratch...)). + +2000-11-06 Neil Booth + + * c-lex.c (init_c_lex): If cpp_start_read fails, exit with + error status. + +2000-11-06 Neil Booth + + * tradcpp.c (special_symbol): Assign an null string rather + than writing to an unallocated buffer. + +2000-11-06 Neil Booth + + * cpplex.c (_cpp_equiv_tokens): Check arg_no in the + CPP_MACRO_ARG case. + +2000-11-06 Neil Booth + + * c-lex.c (c_lex): Replace tok.val.aux with tok.val.c or + tok.val.arg_no as appropriate. + * cppexp.c (lex): Similarly. + * cpplex.c (_cpp_lex_token, cpp_spell_token, cpp_output_token, + cpp_equiv_tokens, cpp_can_paste, cpp_avoid_paste): Similarly. + * cppmacro.c (stringify_arg, replace_args, lex_expansion_token, + cpp_macro_definition): Similarly. + * cpplib.h (struct cpp_token): Replace aux with c and arg_no. + +2000-11-06 Jakub Jelinek + + * config/sparc/sparc.md (adddi3): If operands[2] is 4096 and + operands[1] is constant, calculate the sum and generate movdi. + (addsi3): Similarly. Use SImode in call to arith_4096_operand. + (subsi3): Use SImode in call to arith_4096_operand. + +2000-11-06 Jakub Jelinek + + * config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): On sparc64 we need to + adjust %o1, not %o0 if the return type is large structure. + +2000-11-06 Jakub Jelinek + + * config/sparc/sparc.md (smulsi3_highpart_v8plus, ashldi3_v8plus+1, + update_return, flush, flushdi, ffssi2, ffsdi2): Fix output formatting. + +Sat Sep 23 19:10:20 2000 Denis Chertykov & Marek Michalkiewicz + + * expmed.c (expand_divmod): For signed divide by 2, prefer + a branch and fewer shifts if branches are very cheap. + +2000-11-05 Joseph S. Myers + + * Makefile.in: Remove all targets related to building + distributions and diffs, or INSTALL. + * INSTALL, install1.texi: Remove. + * configure.in: Remove mention of distdir. + * configure: Regenerate. + * objc/Make-lang.in: Remove mention of distdir. + +2000-11-04 Neil Booth + + * cpp.texi: Update for _Pragma. + +2000-11-04 Joseph S. Myers + + * gcc.texi (Contributing): Update URL for projects web page. + +2000-11-04 Neil Booth + + * cpplex.c (parse_string): Don't allow multiline strings in + #include family directives. + +2000-11-04 Neil Booth + + * cpplib.c (do_line): Only warn pedantically if not reading + preprocessed input. + +2000-11-04 Alexandre Oliva + + * calls.c (emit_call_1) [sibcall_pop]: Use n_popped instead of + RETURN_POPS_ARGS(). + +2000-11-03 Zack Weinberg + + * builtins.c (expand_builtin_strlen): Remove unused mode + argument. + * gcc.c (process_command): Remove unused variable. + * fold-const.c: Include expr.h. + * recog.c: Include reload.h. + * Makefile.in (recog.o, fold-const.o): Update deps. + +2000-11-02 Geoffrey Keating + + * fixinc/gnu-regex.c: Change 'CYGNUS LOCAL' to 'EGCS LOCAL'. + +Fri Nov 3 13:41:04 2000 Mark P Mitchell + + * config/mips/iris6.h (SUBTARGET_CC1_SPEC): Remove -static + handling. + (STARTFILE_SPEC): Likewise. + (LINK_SPEC): Likewise. + +2000-11-03 Kaveh R. Ghazi + + * Makefile.in (fold-const.o): Depend on $(GGC_H), not ggc.h. + (toplev.o): Likewise for $(LOOP_H)/loop.h and $(REGS_H)/regs.h. + (simplify-rtx.o): Likewise for $(GGC_H)/ggc.h. + +2000-11-03 Joseph S. Myers + + * c-decl.c (duplicate_decls, copy_lang_decl), dwarfout.c + (dwarfout_line), gcc.c (main, save_string), tree.c (init_obstacks, + perm_calloc, get_identifier, maybe_get_identifier, + real_value_from_int_cst, simple_cst_equal), varasm.c + (assemble_name, assemble_real, immed_real_const_1, + compare_constant_1, decode_rtx_const, output_constant_pool): Use + strrchr () instead of rindex (). Use memcmp () instead of bcmp + (). Use memcpy () instead of bcopy (). Use memset () instead of + bzero (). + +2000-11-03 Nathan Sidwell + + * cppfiles.c (open_file): If already read, then don't reopen. + Immediately close an empty file. + +2000-11-01 Bernd Schmidt + + * expr.h (fold_builtin): Move declaration... + * tree.h (fold_builtin): ... here. + +Fri Nov 3 05:41:07 2000 J"orn Rennecke + + * flow.c (verify_local_live_at_start): Allow hard regs to die. + +2000-11-02 Neil Booth + +config: + * a29k/a29k.h, a29k/unix.h, a29k/vx29k.h, + alpha/alpha-interix.h, alpha/alpha.h, alpha/linux.h, + alpha/openbsd.h, alpha/osf.h, alpha/vms.h, alpha/vxworks.h, + alpha/win-nt.h, arc/arc.h, arm/arm.h, arm/conix-elf.h, + arm/linux-aout.h, arm/linux-elf.h, arm/netbsd.h, arm/riscix.h, + arm/riscix1-1.h, arm/semiaof.h, arm/unknown-elf-oabi.h, arm/vxarm.h, + c4x/rtems.h, clipper/clix.h, convex/convex.h, d30v/d30v.h, + elxsi/elxsi.h, fr30/fr30.h, h8300/h8300.h, i370/linux.h, i370/mvs.h, + i370/oe.h, i386/386bsd.h, i386/aix386ng.h, i386/beos-elf.h, + i386/bsd386.h, i386/crtdll.h, i386/cygwin.h, i386/dgux.h, + i386/djgpp-rtems.h, i386/djgpp.h, i386/freebsd-aout.h, i386/freebsd.h, + i386/gnu.h, i386/i386-interix.h, i386/i386.h, i386/linux-aout.h, + i386/linux-oldld.h, i386/linux.h, i386/lynx-ng.h, i386/lynx.h, + i386/mach.h, i386/mingw32.h, i386/moss.h, i386/netbsd.h, + i386/netware.h, i386/next.h, i386/openbsd.h, i386/osf1elf.h, + i386/osfelf.h, i386/osfrose.h, i386/ptx4-i.h, i386/rtems.h, + i386/rtemself.h, i386/sco.h, i386/sco4.h, i386/sco4dbx.h, i386/sco5.h, + i386/scodbx.h, i386/sequent.h, i386/sol2.h, i386/sun.h, i386/sysv3.h, + i386/sysv4.h, i386/uwin.h, i386/vsta.h, i386/vxi386.h, i386/win-nt.h, + i386/win32.h, i860/fx2800.h, i860/i860.h, i860/mach.h, i860/sysv3.h, + i860/sysv4.h, i960/i960.h, i960/rtems.h, i960/vx960-coff.h, + ia64/ia64.h, ia64/linux.h, m32r/m32r.h, m68k/3b1.h, m68k/3b1g.h, + m68k/a-ux.h, m68k/altos3068.h, m68k/amix.h, m68k/apollo68.h, + m68k/crds.h, m68k/ctix.h, m68k/dpx2.h, m68k/hp2bsd.h, m68k/hp320.h, + m68k/hp3bsd.h, m68k/hp3bsd44.h, m68k/isi.h, m68k/linux-aout.h, + m68k/linux.h, m68k/lynx-ng.h, m68k/lynx.h, m68k/m68kemb.h, + m68k/m68kv4.h, m68k/mot3300.h, m68k/netbsd.h, m68k/news.h, + m68k/next.h, m68k/openbsd.h, m68k/pbb.h, m68k/plexus.h, m68k/rtems.h, + m68k/rtemself.h, m68k/sun2.h, m68k/sun3.h, m68k/sun3mach.h, + m68k/tower-as.h, m68k/tower.h, m68k/vxm68k.h, m88k/dgux.h, + m88k/dolph.h, m88k/luna.h, m88k/m88k-aout.h, m88k/m88k-coff.h, + m88k/openbsd.h, m88k/sysv3.h, m88k/sysv4.h, mips/bsd-4.h, + mips/bsd-5.h, mips/dec-bsd.h, mips/dec-osf1.h, mips/gnu.h, + mips/iris3.h, mips/iris5.h, mips/iris6.h, mips/linux.h, mips/mips.h, + mips/netbsd.h, mips/news4.h, mips/news5.h, mips/nws3250v4.h, + mips/openbsd.h, mips/osfrose.h, mips/rtems64.h, mips/sni-svr4.h, + mips/svr3-4.h, mips/svr3-5.h, mips/svr4-4.h, mips/svr4-5.h, + mips/ultrix.h, ns32k/encore.h, ns32k/merlin.h, ns32k/netbsd.h, + ns32k/ns32k.h, ns32k/pc532-mach.h, ns32k/pc532.h, ns32k/sequent.h, + ns32k/tek6000.h, ns32k/tek6100.h, ns32k/tek6200.h, pa/pa-hiux.h, + pa/pa-hpux.h, pa/pa-hpux7.h, pa/pa-linux.h, pa/pa-osf.h, + pa/pa-pro-end.h, pa/pa.h, pa/rtems.h, pj/linux.h, pj/pj.h, + romp/romp.h, rs6000/aix.h, rs6000/aix31.h, rs6000/aix41.h, + rs6000/aix43.h, rs6000/beos.h, rs6000/eabi.h, rs6000/eabisim.h, + rs6000/linux.h, rs6000/lynx.h, rs6000/mach.h, rs6000/rtems.h, + rs6000/sysv4.h, rs6000/vxppc.h, sh/elf.h, sh/linux.h, sh/rtems.h, + sh/rtemself.h, sh/sh.h, sparc/aout.h, sparc/elf.h, sparc/linux-aout.h, + sparc/linux.h, sparc/linux64.h, sparc/lite.h, sparc/litecoff.h, + sparc/liteelf.h, sparc/lynx-ng.h, sparc/lynx.h, sparc/netbsd.h, + sparc/openbsd.h, sparc/pbd.h, sparc/rtems.h, sparc/rtemself.h, + sparc/sol2-sld-64.h, sparc/sol2.h, sparc/sp64-aout.h, + sparc/sp64-elf.h, sparc/sp86x-aout.h, sparc/sp86x-elf.h, + sparc/sparc.h, sparc/sysv4.h, sparc/vxsim.h, sparc/vxsparc.h, + v850/rtems.h, vax/netbsd.h, vax/openbsd.h, vax/ultrix.h, vax/vax.h, + vax/vaxv.h, vax/vms.h, we32k/we32k.h + + Replace -A() with -A=, the new assertion syntax. + +Thu Nov 2 21:52:35 2000 J"orn Rennecke + + * combine.c (distribute_notes): Use rtx_equal_p to check elim_i2 / + elim_i1. + In REG_DEAD handling: When handling parts of multi-hard-reg hard + registers, increment the loop counter by the size of the parts; + use recursion to handle individual parts. + +2000-11-02 Neil Booth + + * configure.in: Make integrated CPP the default. + * configure: Regenerate. + +Thu Nov 2 19:20:12 2000 J"orn Rennecke + + * reload.c (find_equiv_reg): Test all hard registers for membership + in the requested class. + +2000-11-02 Joseph S. Myers + + * collect2.c (main, write_c_file_stat), gcc.c (translate_options, + process_command, main), gcov.c (open_files, output_data), tlink.c + (frob_extension, scan_linker_output), toplev.c + (file_name_nondirectory): Use strchr () and strrchr () instead of + index () and rindex (). + +2000-11-02 Joseph S. Myers + + * c-common.c (get_flag_spec, check_format_info_main, + check_format_types): Use strchr () instead of index (). Compare + against error_mark_node instead of comparing the TREE_CODE against + ERROR_MARK. + +2000-11-02 Zack Weinberg + + Integrated CPP. + + * c-lex.c (init_c_lex): Update cpp_start_read call. + (cb_ident): Update for new callback prototype. + (cb_def_pragma): Update for new cpp_get_token prototype. + (c_lex): Similarly. Use cpp_get_line. + + * c-parse.in (finish_parse): Update for new cpp_finish + prototype. + + * cp/lex.c (finish_parse): Similarly. + +2000-11-01 Geoff Keating + + * machmode.def: Add V16QImode. + +2000-11-01 Richard Henderson + + * dwarf2out.c (loc_descriptor_from_tree): Check for null result + from rtl_for_decl_location. + (add_location_or_const_value_attribute): Likewise. + +2000-11-01 Neil Booth + + * cpplib.c (run_directive): Use correct line number for output + of _Pragma. Remember any in-progress directive. + + * gcc.dg/cpp/vararg2.c, gcc.dg/cpp/_Pragm1.c: New tests. + +2000-11-01 Richard Henderson + + * stmt.c (expand_start_null_loop): Set continue_label. + +2000-11-01 Bernd Schmidt + + * builtins.c (fold_builtin_constant_p, fold_builtin): New functions. + (expand_builtin_constant_p): Move parts of the code into + fold_builtin_constant_p. + (expand_builtin_strlen): Move parts of the code into fold_builtin. + * expr.h (fold_builtin): Declare. + * fold-const.c (fold): Handle builtin calls. + + * c-typeck.c (build_function_call): Call fold on the CALL_EXPR. + +2000-11-01 Richard Henderson + + * stmt.c (expand_start_null_loop): New. + (expand_end_null_loop): New. + * c-semantics.c (genrtl_do_stmt): Use them. + * tree.h: Declare them. + +2000-11-01 Richard Henderson + + * cppmain.c (scan_buffer): Don't avoid paste for assembly. + +2000-11-01 Neil Booth + + * c-parse.in (_yylex): Remove CPP_BACKSLASH case. + * cp/spew.c: Similarly. + * cpplex.c (_cpp_lex_token): Backslashes are now CPP_OTHER. + * cppmacro.c (stringify_arg): Similarly. + * cpplib.h (CPP_BACKSLASH): Delete. + +2000-10-31 Kaveh R. Ghazi + + * builtins.c (expand_builtin_strstr): New function. + (expand_builtin): Handle BUILT_IN_STRSTR and BUILT_IN_STRCHR. + + * builtins.def (BUILT_IN_STRSTR, BUILT_IN_STRCHR): New entries. + + * c-common.c (c_common_nodes_and_builtins): Declare builtin strstr + and builtin strchr. + +2000-10-31 Richard Henderson + + * config/i386/i386.c (fcmov_comparison_operator): Check for + CCFPmode or CCFPUmode instead of CCmode. + (ix86_expand_fp_movcc): Call ix86_expand_setcc for most + unordered operations as well. + +2000-10-31 Richard Henderson + + * c-semantics.c (genrtl_do_stmt): Use integer_zerop instead + of integer_zero_node. + +2000-10-31 Richard Henderson + + * c-semantics.c (genrtl_do_stmt): Special case do/while(0). + +2000-10-31 Nick Clifton + + * config/arm/unknown-elf.h (UNIQUE_SECTION_P): Do not allow + -fdata-sections to override the section attribute of a DECL. + +2000-10-31 Chris Demetriou + + * libgcc2.c (__shtab): Remove __shtab variable. + * libgcc-std.ver (GCC_3.0): Remove __shtab from symbol list. + * Makefile.in (LIB2FUNCS): Remove _shtab from list of library + members. + +2000-10-31 Jim Wilson + + * defaults.h (ASM_OUTPUT_DEBUG_LABEL): New. + * tm.texi (ASM_OUTPUT_DEBUG_LABEL): Document. + * dwarf2out.c (dwarf2out_begin_block): Use ASM_OUTPUT_DEBUG_LABEL + instead of ASM_OUTPUT_INTERNAL_LABEL. + (dwarf2out_end_block, dwarf2out_label): Likewise. + * final.c (final_scan_insn, case NOTE_INSN_DELETED_LABEL): Likewise + * config/ia64/ia64.h (ASM_OUTPUT_DEBUG_LABEL): Define. + +2000-10-31 Richard Henderson + + * dwarf2out.c (struct dw_loc_descr_struct): Add dw_loc_addr. + (size_of_locs): Set it. + (output_loc_operands): Use it to compute branch displacement. + (int_loc_descriptor): New. + (mem_loc_descriptor): Dereference memory in the proper size. + Use DW_OP_plus_uconst when possible. Use int_loc_descriptor. + (loc_descriptor_from_tree): New. + (rtl_for_decl_location): Break out from ... + (add_location_or_const_value_attribute): ... here. + (add_bound_info): Use loc_descriptor_from_tree. + +2000-10-31 Neil Booth + + * cpp.texi: Update for new command line assertion syntax. + * cpplib.c (cpp_define): Simplify a bit. + (cpp_assert, cpp_unassert): Use handle_assertion. + (handle_assertion): New function; accept new command line + syntax with '='. + * testsuite/gcc.dg/cpp/assert3.c: New tests. + +2000-10-31 Neil Booth + + * cppmacro.c (STDC_0_IN_SYSTEM_HEADERS): Define to 0 if + undefined. Remove #ifdef check. + * config/i386/sol2.h, config/rs6000/sol2.h, config/sparc/sol2.h: + Define STDC_0_IN_SYSTEM_HEADERS to 1. + +2000-10-31 Jan Hubicka + Jakub Jelinek + + * config/i386/i386.h: Clarify CCNOmode description in comment. + (EXTRA_CC_MODES): Remove CCRCmode. + * config/i386/i386.c (ix86_comparison_operator): Remove CCRCmode. + (put_condition_code, ix86_match_ccmode): Likewise. + (ix86_cc_mode): Likewise. Fix comment. + (ix86_expand_strlensi_unroll_1): *rc patterns are gone. + * config/i386/i386.md: Add unspec 12 description. + (adddi3 split): Use unspec 12 instead of CCRCmode. + (addsi3_carry_rc): Remove. + (addsi3_cc, addqi3_cc): New patterns. + (addsi_3): Swap operands, match CCZmode. + (addsi_4): Rewritten. + (addsi_5): Renamed from addsi_6. + (addsi_6): Removed. + (addhi_3): Swap operands, match CCZmode. + (addhi_4): Rewritten. + (addhi_5): Renamed from addhi_6. + (addhi_6): Removed. + (addqi_3): Swap operands, match CCZmode. + (addqi_4): Rewritten. + (addqi_5): Renamed from addqi_6. Use =q constraint for clobber. + (subsi3_carry_rc): Removed. + (iorqi_3): Use =q constraint for clobber. + (xorqi_cc_2): Likewise. + (negdi2_1 split): Don't use CCRCmode, use ltu instead of gtu. + (x86_movsicc_0_m1_rc): Removed. + (cmp?i peepholes): Remove neg. Use CCGCmode instead of CCRCmode. + +2000-10-31 Joseph S. Myers + + * c-typeck.c (build_unary_op): If pedantic, pedwarn for increment + and decrement of complex types. + +2000-10-31 Kaveh R. Ghazi + + * builtins.c (expand_builtin_fputs): When deleting NOP calls to + builtin fputs, ensure we still evaluate the stream in case it + has side-effects. + +2000-10-31 Jakub Jelinek + + * expr.c (do_store_flag): Pass operand_mode instead of GET_MODE (op0) + to expand_shift. + +Tue Oct 31 15:33:27 2000 J"orn Rennecke + + * sh-protos.h (reg_no_subreg_operand, emit_fpscr_use): Don't declare. + (fp_extended_operand, emit_fpscr_use): Likewise. + * sh.c (reg_no_subreg_operand, fp_extended_operand): Delete functions. + (fpul_operand): New function. + * sh.h (PREDICATE_CODES): Remove reg_no_subreg_operand and + fp_extended_operand. Add fpul_operand. + * sh.md (mulsf3, mulsf3_i4): Use fp_arith_reg_operand for "f" operands. + (mulsf3_ie, macsf3, cmpgtsf_t, cmpeqsf_t, ieee_ccmpeqsf_t): Likewise. + (cmpgtsf_t_i4, cmpeqsf_t_i4, ieee_ccmpeqsf_t_4, negsf2): Likewise. + (negsf2_i, sqrtsf2, sqrtsf2_i, abssf2, abssf2_i, adddf3): Likewise. + (adddf3_i, subdf3, subdf3_i, muldf3, muldf3_i, divdf3): Likewise. + (divdf3_i): Likewise. + (floatsisf2): Likewise. Use fpul_operand for 'y' operand. + (floatsisf2_i4, floatsisf2_ie, fix_truncsfsi2): Likewise. + (fix_truncsfsi2_i4, fixsfsi, floatsidf2, floatsidf2_i): Likewise. + (fix_truncdfsi2, fix_truncdfsi2_i, extendsfdf2): Likewise. + (extendsfdf2_i4, truncdfsf2, truncdfsf2_i4): Likewise. + +2000-10-31 Bernd Schmidt + + * config/i386/i386.c (ix86_init_builtins): Correct return type + building v4hi_ftype_v4hi_int_int tree node. + (ix86_expand_builtin): Use correct operand numbers 0 and 1. + Copy operand 0 into a Pmode register, don't generate a MEM rtx. + + * config/i386/i386.md (sse_movntdi): Use mmx register constraint + for operand 1. + (mmx__uavgv8qi3): Correct insn mnemonic. + (mmx_psadbw): Correct insn mnemonic. Use V8QI mode for operands 1 and 2. + (mmx_punpckhwd): Correct insn mnemonic. + (mmx_punpckhdq): Likewise. + (mmx_punpcklwd): Likewise. + (mmx_punpckldq): Likewise. + (prefetch): Use immediare_operand and 'n' constraint for operand 1. + Renumber case labels to match the _mm_prefetch constants defined in + xmmintrin.h. + + * recog.c (split_all_insns): Don't try to call cleanup_subreg_operands + if the splitter didn't emit new insns. + Make sure we call cleanup_subreg_operands even when splitting the last + insn in a basic block. + + * invoke.texi (Debugging Options): Describe -do. + * toplev.c (enum_dump_file_index): New entry DFI_postreload. + (dump_file): Likewise. + (rest_of_compilation): Split .greg dump into .greg and .postreload. + +2000-10-30 Neil Booth + + * cppfiles.c (stack_include_file): Check for stacked contexts + here. + * cpphash.h (_cpp_do__Pragma): New prototype. + * cppinit.c (cpp_reader_init): Add _Pragma keyword to hash table. + + * cpplex.c (skip_escaped_newlines): Only process trigraphs and + escaped newlines if !(buffer->from_stage3). + (_cpp_lex_token): Warn about missing newlines iff + !buffer->from_stage3. + + * cpplib.c (get__Pragma_string, destringize, + _cpp_do__Pragma): New functions. + (run_directive): Set output_line for _Pragma to avoid line + markers in output. Set from_stage3 and prevent macro expansion + for _Pragma and command-line options. Check buffer exhaustion. + (cpp_push_buffer): Don't check for stacked macro contexts, as + this is perfectly legitimate for _Pragma. Move the check to + stack_include_file instead. Set from_stage3 iff buffer is + preprocessed input. + + * cpplib.h (struct cpp_buffer): Make warned_cplusplus_comments + unsigned. New boolean from_stage3. + (struct spec_nodes): Add n__Pragma. + + * cppmacro.c (enter_macro_context): Flip sense of return value. + (_cpp_get_token): Handle _Pragma operator. + +2000-10-30 Phil Edwards + + * gcc.texi: The C++ standard isn't "draft" anymore. + +2000-10-30 Mark Mitchell + + * cppmacro.c (builtin_macro): Use NT_VOID, not T_VOID. + +2000-10-29 Neil Booth + + * cpplib.c (skip_rest_of_line): Use _cpp_get_token. + +2000-10-29 Joseph S. Myers + + * toplev.c, flags.h, fold-const.c, real.c, rtl.c, + fixinc/inclhack.def: Change comments mentioning C9X to refer to + C99 instead. + + * invoke.texi: Document that -V will only work for very similar + versions of driver and compiler. + +2000-10-29 Neil Booth + + * cppmacro.c (_cpp_create_definition): Optimize the case of + a macro defined to itself. + +2000-10-29 Neil Booth + + * cpplex.c (save_comment): Don't store new lines in C++ comments. + +2000-10-29 Michael Hayes + + * integrate.c (copy_insn_list): Copy the unchanging flag for calls. + +2000-10-28 Geoffrey Keating + + * cpphash.c (cpp_forall_identifiers): Add context variable + for callback routine. + * cppmain.c (dump_macro): Update to match cpp_forall_identifiers + change. + (main): Call cpp_forall_identifiers with null context. + * cpplib.h (cpp_forall_identifiers): Update prototype. + + * cppmain.c: Make `parse_in' and `print' static. + +2000-10-28 Alan Modra + + * c-decl.c (finish_function): Clear c_function_name_declared_p. + +2000-10-28 Richard Henderson + + * regrename.c (scan_rtx_address): Frob action, not class, + when trying to disable optimization. + +2000-10-28 Mark Mitchell + + * c-semantics.c (make_rtl_for_local_static): Don't clobber + DECL_ASSEMBLER_NAME. + +2000-10-28 Joseph S. Myers + + * configure.in: Determine and substitute gcc_version_full. + * configure: Regenerate. + * gccbug.in: Use it to give full version. Don't allow + confidential PRs. + +2000-10-28 Richard Henderson + + * recog.c (split_all_insns): Run cleanup_subreg_operands + after reload. + + * regrename.c (regrename_optimize): Verify that all registers of + a multiple register mode are available. + (scan_rtx_address): Accept the mode of the address; all callers + changed. + + * cpplib.c (run_directive): Fix prototype. + +2000-10-28 Bernd Schmidt + + * reload.c (find_reloads): Distinguish "wins" so that we know whether + a given operand won because of a matching constraint or not; then use + that information to compute goal_alternative_matched properly. + * reload1.c (choose_reload_regs): Never set reload_override_in for an + optional reload. + + * config/ia64/ia64.h (RTX_COSTS): A few more entries, and a more + accurate value for MULT. + * config/ia64/ia64.c (ia64_print_operand): Require probability to be + 2% or > 98% before using static branch prediction bits. + +2000-10-28 Neil Booth + + New macro expander. + + * cpplib.c (struct answer): New. + (struct if_stack): Use cpp_lexer_pos rather than line and col. + Rename cmacro mi_cmacro. + (struct directive, KANDR, STDC89, EXTENSION, COND, IF_COND, INCL, + IN_I): New directive and flags. + (skip_rest_of_line, check_eol, run_directive, glue_header_name, + parse_answer, parse_assertion, find_answer): New functions. + (parse_ifdef, detect_if_not_defined, validate_else): Remove. + (lex_macro_node): New function to replace parse_ifdef and + get_define_node. + + (_cpp_handle_directive): New function, combines _cpp_check_directive + and _cpp_check_linemarker. + + (do_define, do_undef, parse_include, do_include, do_import, + do_include_next, read_line_number, do_line, do_ident, do_pragma, + do_pragma_once, do_pragma_poison, do_pragma_dependency): + Update for new token getting interface. + + (do_ifdef, do_ifndef, do_if, do_else, do_endif, push_conditional) + : Update for new multiple-include optimisation technique. + (do_elif): Don't forget to invalidate controlling macros. + + (unwind_if_stack, cpp_defined, cpp_push_buffer, cpp_pop_buffer): Update. + (parse_assertion, parse_answer, find_answer, _cpp_test_assertion): + Functions to handle assertions with the new token interface. + (do_assert, do_unassert): Use them. + + (cpp_define, _cpp_define_builtin, cpp_undef, cpp_assert, cpp_unassert): + Use run_directive. + + (_cpp_init_stacks): Register directive names. Don't register special + nodes. + + * cpperror.c (print_containing_files, _cpp_begin_message): Update to + new position recording regime. + (cpp_ice, cpp_fatal, cpp_error, cpp_error_with_line, cpp_warning, + cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line, + cpp_pedwarn_with_file_and_line): Update for _cpp_begin_message changes. + (cpp_type2name): Move to cpplex.c. + + * cppexp.c (parse_charconst): spec_nodes is no longer a pointer. + (parse_defined): Update to handle new multiple include optimisation + method. Remove poisoned identifier warning. + (parse_assertion, TYPE_NAME): Delete. + (lex): Update for multiple include optimisation, removal of + CPP_DEFINED, to use _cpp_test_assertion for assertions and + cpp_token_as_text. + (_cpp_parse_expr): Update for MI optimisation, and to use op_as_text. + (op_as_text): New function, to wrap cpp_token_as_text. + + * cppfiles.c (stack_include_file, _cpp_pop_file_buffer): + Update for MI optimisation. + (_cpp_execute_include): Take a token rather than 3 arguments. Fix + segfault on diagnostic. + (_cpp_compare_file_date): Take a token rather than 3 args. + (cpp_read_file): Work correctly for zero-length files. + + * cpphash.c (_cpp_init_macros, _cpp_cleanup_macros): Rename + _cpp_init_hashtable and _cpp_cleanup_hashtable. + (cpp_lookup): Place identifiers at front of identifier pool + for _cpp_lookup_with_hash. + (_cpp_lookup_with_hash): Require identifiers to be at the front of + the identifier pool. Commit the memory if not already in the + hash table. + + * cppinit.c (cpp_reader_init): Move cpp_init_completed test to top. + Initialize various members of cpp_reader, memory pools, and the + special nodes. + (cpp_printer_init): Delete. + (cpp_cleanup): Update. + (struct builtin, builtin_array, initialize_builtins): Update for new + hashnode definition and builtin handling. + (cpp_start_read, cpp_finish): Don't take or initialize a + printer. Update. + + * cpplib.h (cpp_printer, cpp_toklist, CPP_DEFINED, BOL, + PASTED, VAR_ARGS, BEG_OF_FILE, IN_DIRECTIVE, KNOWN_DIRECTIVE, + T_VOID, T_SPECLINE, T_DATE, T_FILE, T_BASE_FILE, T_INCLUDE_LEVEL, + T_TIME, T_STDC, T_OPERATOR, T_POISON, T_MACRO, T_ASSERTION): Delete. + (struct cpp_pool, struct cpp_macro, struct cpp_lexer_pos, + struct cpp_lookahead, CPP_DHASH, enum mi_state, enum mi_ind, + NO_EXPAND, VARARGS_FIRST, struct cpp_token_with_pos, + struct toklist, struct cpp_context, struct specnodes, + TOKEN_LOOKAHEAD, TOKEN_BUFFSIZE, NODE_OPERATOR, NODE_POISONED, + NODE_BUILTIN, NODE_DIAGNOSTIC, NT_VOID, NT_MACRO, NT_ASSERTION, + enum builtin_type, cpp_can_paste): New. + (struct cpp_token): Delete line and col members. + (struct cpp_buffer): New member output_lineno. + (struct lexer_state): Delete indented, in_lex_line, seen_dot. + Add va_args_ok, poisoned_ok, prevent_expansion, parsing_args. + (struct cpp_reader): New members lexer_pos, macro_pos, directive_pos, + ident_pool, temp_string_pool, macro_pool, argument_pool, string_pool, + base_context, context, directive, mi_state, mi_if_not_defined, + mi_lexed, mi_cmacro, mi_ind_cmacro, la_read, la_write, la_unused, + mlstring_pos, macro_buffer, macro_buffer_len. + Delete members mls_line, mls_column, token_list, potential_control_macro, + temp_tokens, temp_cap, temp_alloced, temp_used, first_directive_token, + context_cap, cur_context, no_expand_level, paste_level, contexts, args, + save_parameter_spellings, need_newline, . + Change type of date, time and spec_nodes members. + Change prototypes for include and ident callbacks. + (struct cpp_hashnode): Change type of name. Remove union members + expansion and code. Add members macro, operator and builtin. + + (cpp_token_len, cpp_token_as_text, cpp_spell_token, cpp_start_read, + cpp_finish, cpp_avoid_paste, cpp_get_token, cpp_get_line, + cpp_get_output_line, cpp_macro_definition, cpp_start_lookahead, + cpp_stop_lookahead): New prototypes. + (cpp_printer_init, cpp_dump_definition): Delete prototypes. + + (U_CHAR, U, ustrcmp, ustrncmp, ustrlen, uxstrdup, ustrchr, ufputs): + Move from cpphash.h. + + * cpphash.h (U_CHAR, U, ustrcmp, ustrncmp, ustrlen, uxstrdup, ustrchr, + ufputs): Move to cpplib.h. + (enum spell_type, struct token_spelling, _cpp_token_spellings, TOKEN_SPELL, + TOKEN_NAME, struct answer, FREE_ANSWER, KANDR, STDC89, EXTENSION, + COND, EXPAND, INCL, COMMENTS, IN_I, struct directive, directive_handler, + struct spec_nodes, _cpp_digraph_spellings, _cpp_free_temp_tokens, + _cpp_init_input_buffer, _cpp_grow_token_buffer, _cpp_init_toklist, + _cpp_clear_toklist, _cpp_expand_token_space, _cpp_expand_name_space, + _cpp_equiv_tokens, _cpp_equiv_toklists, _cpp_process_directive, + _cpp_run_directive, _cpp_get_line, _cpp_get_raw_token, _cpp_glue_header_name, + _cpp_can_paste, _cpp_check_directive, _cpp_check_linemarker, + _cpp_parse_assertion, _cpp_find_answer): Delete. + (VALID_SIGN, ALIGN, POOL_FRONT, POOL_LIMIT, POOL_BASE, POOL_SIZE, + POOL_USED, POOL_COMMIT, struct cpp_chunk, _cpp_lex_token, _cpp_init_pool, + _cpp_free_pool, _cpp_pool_reserve, _cpp_pool_alloc, _cpp_next_chunk, + _cpp_lock_pool, _cpp_unlock_pool, _cpp_test_assertion, + _cpp_handle_directive, DSC): New. + (struct include_file): New member defined. + + (DO_NOT_REREAD, _cpp_begin_message, _cpp_execute_include, + _cpp_compare_file_date): Update. + (_cpp_pop_context, _cpp_get_token, _cpp_free_lookaheads, _cpp_push_token): New. + (_cpp_init_macros, _cpp_cleanup_macros): Rename to _cpp_init_hashtable, + _cpp_cleanup_hashtable. + + * Makefile.in: Remove cppoutput.c. + + * cppoutput.c: Delete + + * fixheader.c (read_scan_file): Update for new cpp_get_token + prototype. + (recognized_function): New argument LINE. + + * scan-decls.c (skip_to_closing_brace, scan_decls): Update for + new cpp_get_token prototype. + + * scan.h (recognized_function): Update prototype. + + * po/POTFILES.in: Remove cppoutput.c. + +2000-10-27 Mark Mitchell + + * c-typeck.c (check_init_type_bitfields): Remove. + (constructor_incremental): Likewise. + (struct constructor_stack): Remove incremental bit. + (struct initializer_stack): Likewise. + (start_init): Don't play with constructor_incremental. + (finish_init): Likewise. + (really_start_incremental_init): Likewise. + (push_init_level): Likewise. + (pop_init_level): Likewise. + (output_init_level): Likewise. + (output_pending_init_elements): Likewise. + +2000-10-21 Mike Coleman + + * c-pragma.c (handle_pragma_pack): Initialize align to -1. + Improve error messages. Correct parsing of + #pragma pack(pop [,id]). Do not check the user-supplied + alignment if we're popping. + + * gcc.dg/pack-test-1.c: New test case. + * gcc.dg/pack-test-2.c: New test case. + * gcc.dg/pack-test-1.h: New file. + +2000-10-27 Neil Booth + + * cpp.texi: Update. + +2000-10-27 Kelley Cook + + * invoke.texi: Document -mintel-syntax + +2000-10-27 Richard Henderson + + * invoke.texi: Document -frename-registers. Add it to -O3. + * toplev.c (rest_of_compilation): Run regrename before ifcvt2. + (enum dump_file_index, dump_file): Update order. + (main): Set flag_rename_registers at -O3. + +2000-10-27 Richard Henderson + + * config/alpha/alpha.h (enum reg_class): Add PV_REG. + (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Update. + (REG_CLASS_FROM_LETTER): Assign it to 'c'. + * config/alpha/alpha.md (call_osf_1): Use it. + (call_value_osf_1): Likewise. + + * config/ia64/ia64.c: Revert 10-23 patch. + (ia64_hard_regno_rename_ok): New. + * config/ia64/ia64-protos.h: Declare it. + * config/ia64/ia64.h (HARD_REGNO_RENAME_OK): Use it. + +2000-10-27 Bernd Schmidt + Richard Henderson + + * regrename.c: Rewrite to handle multi-register modes and + cond_exec instructions. + * Makefile.in (regrename.o): Update dependencies. + * recog.h (struct operand_alternative): Add is_address. + * recog.c (preprocess_constraints) [case 'p']: Set it. + +2000-10-27 Zack Weinberg + + * configure.in: If not NO_MINUS_C_MINUS_O, substitute + OUTPUT_OPTION with '-o $@'. Make zlibdir, zlibinc relative to + top level. Kill oldstyle_subdirs. Do not include + $srcdir/$s/Makefile.in in all_lang_makefiles, but do include + $outputs. Do not run configure.lang from config.status. + Rearrange warning-flag logic to correspond to what the + makefile wants. Put special vax stage1 options in + @stage1_flags@ not @stage1_warn_cflags@. Don't do anything + with extra_c_objs, extra_cxx_objs, or extra_cpp_objs. + (--enable-c-cpplib): AC_SUBST(maybe_cpplib) with "libcpp.a" if + switch is given, nothing otherwise. + * configure.lang: Delete. + + * Makefile.in: Expunge all traces of extra_c_objs, + extra_cxx_objs, and extra_cpp_objs. Set MAYBE_CPPLIB from + @maybe_cpplib@. Add $(MAYBE_CPPLIB) to C_AND_OBJC_OBJS. Set + warning options via a three level scheme so that -pedantic and + -Wtraditional are not used for non-C front ends: LOOSE_WARN, + STRICT1_WARN, STRICT2_WARN -> $(@D)-warn, GCC_WARN_CFLAGS -> + WARN_CFLAGS. Distinguish STAGE1_CFLAGS from BOOT_CFLAGS. + Add -I$(@D) and -I$(srcdir)/$(@D) to INCLUDES. + Set OUTPUT_OPTION, ZLIB, ZLIBINC. Do not set P, + LANG_FLAGS_TO_PASS. Add OUTPUT_OPTION to all object-file + generation rules. Wrap all rules that change the current + directory in parentheses; pmake doesn't spawn a new shell for + each command. Expunge all references to $(P). When one + command depends on another and they're run all at once, use && + to separate them, not ;. Add libgcc_s$(SHLIB_EXT) to files + deleted on make clean. Force OUTPUT_OPTION='-o $@' in stage2 + and beyond. + + * objc/Make-lang.in: Wrap all rules that change the current + directory in parentheses. Expunge all references to $(P). + When one command depends on another and they're run all at + once, use && to separate them, not ;. Add OUTPUT_OPTION to + all object-file generation rules. Delete obsolete variables. + * objc/Makefile.in: Delete. + +2000-10-27 Jakub Jelinek + + * calls.c (expand_call): If sibcall_failure is set during pass 1, + clear tail_call_insns as well. + +2000-10-27 Nick Clifton + + * config/arm/arm-protos.h (arm_function_ok_for_sibcall): Add + prototype. + +2000-10-26 Richard Henderson + + * calls.c (expand_call): Supress sibcall if we have a + BLKmode return in registers. + +2000-10-26 Bernd Schmidt + + * ia64.h (PREFERRED_RELOAD_CLASS): Force floating point constants + into memory. + +2000-10-26 Nathan Sidwell + + * tree.c (make_node, case 't'): Set alignment to that of + char_type_node. + * expr.c (move_by_pieces_ninsns): Abort if some length remains. + +2000-10-25 Mark Mitchell + + * Makefile.in (site.exp): Define HAVE_LIBSTDCXX_V3. + * configure.in (enable-libstdcxx-v3): Arrange to have + HAVE_LIBSTDCXX_V3 substituted into the output files. + +2000-10-25 Richard Henderson + + * recog.c (constrain_operands): Initialize which_alternative + before no alternatives early exit. + + * cse.c (find_comparison_args): Check that we can reverse a + comparison if needed before accepting the substitution. + + * reload.c (find_reloads_address_part): Kill rtx obstack hackery. + + * simplify-rtx.c (simplify_relational_operation): Sign extend + low words before sign extending to high words. + +2000-10-25 Nick Clifton + + * config/mcore/mcore.c: Include config.h before system.h. + +2000-10-25 Ray Essick + + * config/mcore/mcore.md (return): Force function epilogue to + always be generated to work around epilogue suppression bug in + M*Core backend. + +2000-10-25 Joseph S. Myers + + * c-decl.c (grokdeclarator): Move warning for qualified void + return types with -pedantic to when the function type is + constructed. At -W, warn in general for qualified function return + types, except for volatile void. + * invoke.texi: Document this new warning at -W. + +2000-10-25 Neil Booth + + * cpp.texi: Update with implementation-defined behavior and + internal limits. + +2000-10-25 Jakub Jelinek + + * stor-layout.c (layout_type): If TYPE_ALIAS_SET was already set on the + incomplete type force it into alias set 0. + +Wed Oct 25 01:02:44 EDT 2000 John Wehle (john@feith.com) + + * alias.c: Include basic-block.h. + (loop_p): New function. + (mark_constant_function): Use it. + * Makefile.in (alias.o): Update dependencies. + +2000-10-24 Aldy Hernandez + + * config/mn10300/mn10300.c (secondary_reload_class): Treat pseudos + like memory. + +2000-10-24 Jim Wilson + + * expmed.c (store_bit_field): Move integer pun code down after + code that calls emit_move_insn for entire register move. + * stor-layout.c (compute_record_mode): Revert Mar 25, Aug 18, and + Oct 20 changes. Only store mode in TYPE_MODE if RECORD_TYPE. + +2000-10-24 Richard Henderson + + * rtlanal.c (rtx_unstable_p, rtx_varies_p): Don't consider pic + register stable if PIC_OFFSET_TABLE_REG_CALL_CLOBBERED. + +2000-10-24 Aldy Hernandez + + * gcse.c (cprop_insn): do not propagate constants into jump_insn + for machines with CC0 more than once. + +2000-10-24 Richard Henderson , Aldy + + * config/mn10300/mn10300.h (PREFERRED_RELOAD_CLASS): Treat + pseudos just like memory. + +2000-10-24 Alexandre Oliva + + * combine.c (distribute_notes): Discard REG_LIBCALL and REG_RETVAL + when deleting libcall sequence collapsed to a single instruction. + +2000-10-24 Andrew Haley + + * expr.c (do_store_flag): Don't crash if either side of a + comparison is error_mark_node. + +2000-10-24 Jakub Jelinek + + * sibcall.c (purge_mem_unchanging_flag): New function. + (optimize_sibling_and_tail_recursive_calls): Call it. + +2000-10-24 Philipp Thomas + + * Makefile.in (check-po): New target for doing checks in the po + subdir if all languages configured. + (CHECK_TARGETS): Add @CHECK_PO@, replaced with check-po via + configure if NLS is enabled. + * configure.in: If NLS is enabled, substitute CHECK_PO by check-po, + otherwise leave empty. + * configure: Regenerate. + +2000-10-23 Diego Novillo + + * i386.c (print_operand): Handle new 'A' formatting code. + 387 opcodes need suffixes even with -mintel-syntax. + Check for explicit size override (codes 'b', 'w' and 'k'). + (print_operand_address): Check if register prefix is needed when + emitting `ds' segment override. + * i386.h: Add comment about new 'A' formatting code. + * i386.md (jump and call patterns): Emit absolute references using %A. + +2000-10-23 Richard Henderson + + * config/ia64/ia64.c (ia64_expand_prologue): Mark extra + output registers as fixed. + (ia64_function_epilogue): Undo output fixation. + +2000-10-23 Richard Henderson + + * config/alpha/alpha.md: Add names for all unnamed insns; use + define_insn_and_split in some obvious places. + (lda): Remove. + (zero_extendqihi2): Use an expander w/ nonimmediate_operand for BWX. + (zero_extendqisi2, zero_extendqidi2): Likewise. + (zero_extendhisi2, zero_extendhidi2): Likewise. + (abs splitters): Fix match_scratch operand number. + (bcc_reverse): Swap pc & label instead of non-canonical compare. + +2000-10-23 Jim Wilson + + * ia64.c (ia64_print_operand, case 'r'): Correct comment. Handle + CONST_INT. + * ia64.md (cmpsi_adjusted): Use %r3. + (cmpdi_adjusted): Likewise. + +2000-10-23 Diego Novillo + + * config/i386/att.h (ASM_FILE_START): Define. + +2000-10-23 Diego Novillo + + * config/i386/linux.h (ASM_FILE_START): Define. + +Wed Oct 18 11:16:40 2000 Donald Lindsay + + * gcc/configure.in: m68k-coff tm_file should not have libgloss.h, + since this (only) drags in a crt0.o reference that the .ld files + also introduce. + +2000-10-23 Geoff Keating + + * reload1.c (reload_reg_reaches_end_p): A RELOAD_OTHER can + overwrite the value in a RELOAD_FOR_INPUT and other kinds of + reloads just like an RELOAD_FOR_OUTPUT would. + + * local-alloc.c (update_equiv_regs): Add an abort(). When + deleting or moving insns, update reg_equiv[regno].init_insns. + +2000-10-23 Mark Mitchell + + * c-tree.texi: Improve documentation for IF_STMTs and related + conditional statements. + +2000-10-22 Mark Mitchell + + * expr.c (do_preexpand_calls): Remove. + (same_from_p): Don't use CALL_EXPR_RTL. + (expand_expr): Don't call preexpand_calls, or use CALL_EXPR_RTL. + (preexpand_calls): Remove. + * tree.c (first_rtl_op): Remove CALL_EXPR case. + (unsave_expr_1): Likewise. + * tree.def (CALL_EXPR): Give it only two slots. + * tree.h (CALL_EXPR_RTL): Remove. + +2000-10-21 Chandrakala Chavva + + * libgcc-std.ver (__addvsi3, __addvdi3, __subvsi3, __subvdi3, + __mulvsi3, __negvsi2, __negvdi2, __absvsi2, __absvdi2, __mulvdi3): + New functions. + +2000-10-22 Alexandre Oliva + + * calls.c (combine_pending_stack_adjustment_and_call): Don't + adjust stack when unadjusted_alignment ends up as zero. + +2000-10-22 Joseph S. Myers + + * fixinc/genfixes: Remove EGCS reference. + * install.texi: Remove EGCS reference. + * INSTALL: Regenerate. + +2000-10-22 Mark Mitchell + + * tree.h (TYPE_IS_SIZETYPE): Add more documentation. + +2000-10-21 Joseph S. Myers + + * diagnostic.c: Remove EGCS reference in comment. + +Sat Oct 21 08:24:25 2000 Richard Kenner + + * loop.c (strength_reduce): Fix error in last change. + +2000-10-20 David Edelsohn + + * Makefile.in (SHLIB_NM_FLAGS): New. + (libgcc.mk): Pass it. + * mklibgcc.in (libgcc.map): Use it. + + * rs6000/t-aix43 (SHLIB_EXT, SHLIB_LINK, SHLIB_LIBS, + SHLIB_MKMAP, SHLIB_MAPFILES, SHLIB_NM_FLAGS): New. + +2000-10-20 Kaveh R. Ghazi + + * mips.h (REG_CLASS_FROM_LETTER): Cast array arg to unsigned char. + + * sparc.c (load_pic_register): Delete unused varaible. + + * libgcc2.c (__addvsi3): Delete unused variable. + + * libgcc2.h (__absvsi2, __absvdi2, __addvsi3, __addvdi3, + __subvsi3, __subvdi3, __mulvsi3, __mulvdi3, __negvsi2, + __negvdi2): Prototype. + + * ssa.c (apply_delayed_renames): Avoid undefined operation. + + * toplev.c (display_target_options): Make static to match + prototype. Delete empty declaration. + +2000-10-20 Tom Tromey + + * cppspec.c (DEFAULT_WORD_SWITCH_TAKES_ARG): Added -MF and -MT. + * gcc.c (DEFAULT_WORD_SWITCH_TAKES_ARG): Added -MF and -MT. + +Fri Oct 20 17:05:49 2000 Richard Kenner + + * expr.c (expand_expr, case SAVE_EXPR): Set RTX_UNCHANGING_P on + returned MEM. + (expand_expr_unaligned, case ARRAY_REF): Check that index is + a constant before comparing it; use tree_low_cst. + * tree.c (save_expr): Set TREE_READONLY. + (substitute_expr): Return inside of NON_LVALUE_EXPR. + (build, build1): Set TREE_READONLY if all operands are. + (build_index_type): If upper bound is a negative number, lower + bound is zero and sizetype is unsigned, use upper bound of one and + lower of zero. + +2000-10-20 David Edelsohn + + * gcc.c (process_command, main): Use "because" instead of + "since" in error messages. + +Fri Oct 20 13:33:16 2000 Richard Kenner + + * stor-layout.c (compute_record_mode): Use tree_low_cst. + Don't use mode of field for record unless sizes are the same. + (layout_type, case ARRAY_TYPE): Remove special bounds handling + previously added for Ada; also change to using host_integerp + and tree_low_cst. + + * loop.c (strength_reduce): Show when new register made for + giv is known to be a pointer and its aligment if so and known. + (loop_dump_aux): Show VERBOSE parameter unused. + + * gcse.c (set_hash_table_size): Now unsigned. + * sdbout.c (template_name_p): Add "const" to avoid warnings. + (sdbout_record_type_name, plain_type_1, sdbout_symbol): Likewise. + (sdbout_one_type, sdbout_parms, sdbout_reg_parms): Likewise. + (sdbout_end_epilogue): Remove variable NAME. + * system.h (getopt): Add default definition. + * config/alpha/alpha.c (print_operand): Don't continue processing + after issuing error. + (summarize_insn): Avoid use of UL in constant. + + * function.c (locate_and_pad_parm): Use host_integerp and tree_low_cst. + + * fold-const.c (force_fit_type): Unsigned values can overflow + if they are sizetype. + (int_const_binop): Don't use cache if overflows. + +2000-10-20 Richard Henderson + + * function.c (locate_and_pad_parm): Zero alignment_pad. + + * regrename.c (rr_replace_reg): Rewrite to use recog_data to + perform substitutions, and apply_change_group to see if it worked. + +Fri Oct 20 13:33:16 2000 Richard Kenner + + * dwarf2out.c (add_bound_info): Also ignore COND_EXPR. + + * combine.c (struct undo): Change int to unsigned int. + (do_SUBST_INT): Args are unsigned int. + (make_extraction, force_to_mode): Use proper type when forming mask. + (make_field_assignment): Likewise. + +2000-10-20 Joseph S. Myers + + * c-common.c (check_format_info_recurse): Extract string constant + initializers from non-volatile constant arrays and check them as + formats. + * c-typeck.c (decl_constant_value): Don't check pedantic or check + for DECL_MODE (decl) != BLKmode. + (decl_constant_value_for_broken_optimization): New function which + includes these checks. + (default_conversion, convert_for_assignment, digest_init): Use + decl_constant_value_for_broken_optimization instead of + decl_constant_value. + +2000-10-20 Mark Mitchell + + * tree.h (DECL_ALIGN_UNIT): New macro. + +2000-10-14 Marek Michalkiewicz + + * config/avr/avr-protos.h (avr_output_bld): New. + (out_shift_with_cnt): Add t_len argument. + * config/avr/avr.c (avr_num_arg_regs): Remove -mpack-args. + (output_movqi, output_movhi, output_movsisf): Optimize loading + any constant with exactly one bit set to NO_LD_REGS. + (out_shift_with_cnt): Optimize output code for size or speed, + depending on optimize_size. Handle small shift counts as well + (if not hand-optimized in ?sh??i3_out). Shifts can be done + with or without a scratch register, with help of __tmp_reg__ + or __zero_reg__ if necessary. Add T_LEN argument to pass the + length of TEMPLATE in words, return total insn length in *LEN. + (ashlqi3_out, ashrqi3_out, lshrqi3_out): Change all calls to + out_shift_with_cnt to work with the above change. + (ashlhi3_out, ashlsi3_out, ashrhi3_out, ashrsi3_out, lshrhi3_out, + lshrsi3_out): Likewise. Optimize more known shift count cases. + Remove cases already well optimized in out_shift_with_cnt. + (avr_output_bld): New function. + * config/avr/avr.h (MASK_PACK_ARGS, TARGET_PACK_ARGS): Remove. + (TARGET_SWITCHES): Remove -mpack-args backward compatibility. + * config/avr/avr.md (*reload_inqi, *reload_inhi, *reload_insi): + Add reload_completed to insn condition - only for peepholes. + (ashlqi3, ashrqi3, lshrqi3): Correct insn length for shift counts + in a register or memory. + (ashlhi3, ashlsi3, ashrhi3, ashrsi3, lshrhi3, lshrsi3): Likewise. + Do not require a scratch register. + (*ashlhi3_const, *ashlsi3_const, *ashrhi3_const, *ashrsi3_const, + *lshrhi3_const, *lshrsi3_const): New insns and matching peepholes. + Optimize shifts by known count using a scratch register, but only + if one is still available after register allocation. + +2000-10-20 J. David Anglin + + * t-vax: New file. Don't build modules from libgcc1.c. + +Fri Oct 20 00:57:00 EDT 2000 John Wehle (john@feith.com) + + * alias.c: (mark_constant_function): Don't check pure functions. + Initialize and end alias analysis. + (nonlocal_mentioned_p): Rename from nonlocal_reference_p. + Don't make a special exception for recursion. Handle + UNSPEC_VOLATILE. Don't assume ASM_OPERANDS is non-local + unless it's volatile. + + * local-alloc.c (equivalence): New structure. + (reg_equiv): Define. + (contains_replace_regs): Remove array and use + field in reg_equiv. + (memref_referenced_p): Likewise. + (no_equiv): Likewise. + (update_equiv_regs): Likewise. + + (equiv_init_varies_p, + equiv_init_movable_p): New functions. + (update_equiv_regs): Use them. Use rtx_varies_p + instead of function_invariant_p. Process insns + from end to beginning. Allow a REG_EQUIV insn + within the same loop as a use to be moved, also + allow it to be moved out of a loop. Update + REG_DEAD notes when substituting into an insn. + +2000-10-19 Jim Wilson + + * c-decl.c (start_decl): Check for error_mark_node type before using + COMPLETE_TYPE_P. + (finish_decl): Likewise. Don't give an error if decl type is + already error_mark_node. + + * haifa-sched.c (compute_trg_info): Add explanatory comments. + New local update_blocks. Use update_blocks to remove duplicates + when computing update blocks. Check for bblst_table overflow. + (schedule_block): Add explanatory comment. Reduce bblst_size by + factor of 2. + * config/ia64/ia64.md (movdi_symbolic): Document loss of REG_LABEL + notes. + +2000-10-19 Chandrakala Chavva + + * libgcc2.c (_mulvsi3): Change variables u and v to a and b. + +2000-10-19 Chandrakala Chavva + + * expmed.c: Minor corrections in comments. + * invoke.texi: Added desciption for the new option -ftrapv. + +2000-10-19 Chandrakala Chavva + + * libgcc2.c: Added the missing #endif. + +Thu Oct 19 14:25:11 MET DST 2000 Jan Hubicka + + * i386.h (CONST_OK_FOR_LETTER): Re-add 'N'; document. + +2000-10-18 Chandrakala Chavva + + * expmed.c (expand_mult): Don't do synth_mult optimization for -ftrapv. + Use smulv_optab for -ftrapv. + (expand_mult_highpart): Use unsigned multiply. + (expand_divmod): Special-case division by -1. + For EXACT_DIV_EXPR, do right shift first, then the multiply. + For complex divide, use abs with unsigned result. + * expr.c (force_operand): Use unsigned multiply. + (expand_expr): Use overflow-trapping optabs for signed types if + flag_trapv. + If flag_trapv, don't generate a recursive call with EXPAND_SUM + if the type is signed and the original call wasn't EXPAND_SUM or + EXPAND_INITIALIZER. + * expr.h (addv_optab, subv_optab, smulv_optab, sdivv_optab): Declare. + (negv_optab, absv_optab): Declare. + * flags.h (flag_trapv): Declare. + * genopinit.c (optabs): Add entries for addv_optab, subv_optab, + smulv_optab, sdivv_optab, negv_optab and absv_optab. + (gen_insn): Interpret '$P' as requiring an integer mode, + including partial integer modes. + * loop.c (emit_iv_add_mult): Use unsigned expand_mult_add. + (product_cheap_p): Use unsigned expand_mult. + * optabs.c (addv_optab, subv_optab, smulv_optab, sdivv_optab): Define. + (negv_optab, absv_optab): Define. + (expand_binop): Use overflow-trapping optabs for signed types if + flag_trapv. + Handle negv_optab libe neg_optab. + (expand_abs): Take result_unsignedp argument instead of unsignedp one. + Use overflow-trapping optabs for signed result if flag_trapv. + (expand_complex_abs): Use overflow-trapping optabs for signed types if + flag_trapv. + Don't open-code complex absolute-value operation for flag_trapv. + (init_optabs): Initialize addv_optab, subv_optab, smulv_optab, + sdivv_optab, negv_optab and absv_optab. + * toplev.c (flag_trapv): Define. + (lang_independent_options f_options): Include flag_trapv. + * tree.h (TYPE_TRAP_SIGNED): Define. + * libgcc2.c (__addvsi3, __addvdi3, __subvsi3,__subvsi3, __subvdi3, + __mulvsi3, __negvsi2, __negvdi2, __absvsi2, __absvdi2, __mulvdi3): + New functions. + * Makefile.in: add _absvsi2 _absvdi2 _addvsi3 _addvdi3 _subvsi3 + _subvdi3 _mulvsi3 _mulvdi3 _negvsi2 _negvdi2. + +2000-10-18 Geoffrey Keating + David V. Henkel-Wallace + + * config/i386/t-netware: Bring in from the Red Hat tree. + * config/i386/netware.h: Likewise. + * config/netware.h: Likewise. + * config/rs6000/netware.h: Delete. + * configure.in: Add i[34567]86-*-netware. + * configure: Hand-edit to match configure.in change. + +2000-10-18 Mark Mitchell + + * c-common.h (flag_no_builtin): Declare. + (flag_no_nonansi_builtin): Likewise. + (c_common_nodes_and_builtins): Change prototype. + * c-common.c (flag_no_builtin): New variable. + (flag_no_nonansi_builtin): Likewise. + (c_common_nodes_and_builtins): Remove parameters. Adjust + accordingly. + * c-decl.c (flag_no_builtin): Remove. + (flag_no_nonansi_builtin): Likewise. + (init_decl_processing): Adjust call to + c_common_nodes_and_builtins. + +2000-10-18 Marc Espie + + * tm.texi (LIBGCC_SPEC): Synch with reality. + +2000-10-18 Joseph S. Myers + + * c-common.c (check_format_types): Check for writing through a + NULL pointer argument. + +2000-10-18 Hans-Peter Nilsson + + * tm.texi (Exception Region Output): Document + DWARF_CIE_DATA_ALIGNMENT. + * dwarf2out.c (DWARF_CIE_DATA_ALIGNMENT): Wrap definition in + #ifndef. + [ENABLE_CHECKING] (reg_save): Abort if offset is not a multiple of + DWARF_CIE_DATA_ALIGNMENT. + +2000-10-18 Michael Hayes + + * basic-block.h (struct loop): Delete fields pre_header_root + and pre_header_trace and replace with pre_header_edges + and num_pre_header_edges. + * flow.c (flow_loop_dump): Dump pre_header_edges. + (flow_loops_free): Free pre_header_edges. + (flow_loop_pre_header_scan): Calculate pre_header_edges. + +2000-10-18 Gerald Pfeifer + + * contrib.texi: Update references to steering committee members + and Jeff Law's entry. + +2000-10-18 Joseph S. Myers + + * c-common.c (CPLUSPLUS_STD_VER, C_STD_VER, C_STD_NAME): Define. + (maybe_read_dollar_number, check_format_info_main): Use them for + pedantic warning messages. + +2000-10-18 Joseph S. Myers + + * c-common.c (check_format_info_main): Minor cleanup: move + variables into inner scopes; initialize declarations where + appropriate; don't hardcode "scanf" name on warning for zero + width. + +2000-10-17 Mark Mitchell + + * c-common.c (back_end_hook): New variable. + * c-common.h (back_end_hook): Declare it. + * c-lang.c (finish_file): Use it. + + * emit-rtl.c (init_emit_once): Initialize the const_int_htab + earlier. + +2000-10-18 Jan Hubicka + + * i386.c (ix86_comparison_operator, put_condition_code, + ix86_match_ccmode, ix86_cc_mode): Handle CCRCmode. + (ix86_expand_strlensi_unroll_1): Use CCRCmode. + * i386.h (EXTRA_CC_MODES): Add CCRCmode. + * i386.md (adddi and negdi splitter): Use CCRCmode. + (add?i_3, add?i_4, add?i_5): Use CCRCmode; swap operands + (subsi3_carry): add '*' + (addsi3_carry_rc, subsi3_carry_rc, x86_movsicc_0_m1_rc): New. + (cmp to add peep2): Use CCRCmode; swap operands. + +2000-10-18 Kazu Hirata + + * h8300.c: Fix a comment typo. + (round_frame_size): New. + (compute_saved_regs): Likewise. + (push): Likewise. + (pop): Likewise. + (push_order): Remove. + (pop_order): Likewise. + (function_prologue): Rearrange code for readability. + (function_epilogue): Likewise. + + * config/h8300/h8300.md: Remove an unnecessary sign_extend + expander that is used when not optimizing. Output a tab after + each assembly insns. + + * reorg.c: Fix formatting. + +2000-10-17 Joern Rennecke + + * reload1.c (move2add_note_store): Check for simple + auto-inc in destination. + +2000-10-17 Michael Chastain + + * config/i386/i386-aout.h: define INT_ASM_OP. + +Tue Oct 17 20:11:08 2000 Alan Modra + + * pa.c (print_operand): Handle case 'c' for .vtable_inherit + +Tue Oct 17 20:05:51 2000 Martin Buchholz + + * i370.md: Fix spelling typo. + +2000-10-17 Franz Sirl + + * function.c (locate_and_pad_parm): Don't align stack unconditionally. + Fixes execute/20001017-1.c on powerpc-linux-gnu. + + * expr.c (store_constructor): Apply MEM_ALIAS_SET to MEMs only. + * rs6000/rs6000.c (rs6000_hash_constant): Use X0INT to access a + LABEL_REF. + + * rs6000/rs6000.h (NO_DOLLAR_IN_LABEL, DOLLARS_IN_IDENTIFIERS, + ENCODE_SECTION_INFO, ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Move from + here... + * rs6000/aix.h: ...to here. + * rs6000/linux.h (ASM_APP_ON, ASM_APP_OFF): Define to Linux-style. + +2000-10-17 Jakub Jelinek + + * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Reload gp if needed. + + * config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): Always use call, make + sure linker can relax even the delay slot mov %g1,%o7, fix output + formating. + +2000-10-17 Kazu Hirata + + * config/h8300/h8300.md: Remove an unnecessary zero_extend + expander that is used when not optimizing. Output a tab after + each assembly insns. + +2000-10-17 Chandrakala Chavva + + * gcc.c: New options --target-help. + (process_command): Added code to parse this new option. + * toplev.c (display_target_options): New function to support the + above new option. + * cppinit.c (new_pending_directive) : New option OPT_target__help. + (cpp_handle_option): Support this new option. + * invoke.texi: Added notes about --target-help option. + +2000-10-17 Graham Stott + + * config/i386/i386.md (testqi_1): Add missing operand prefix + for operand 0. + * config/i386/i386-protos.h: Add missing prototype. + +2000-10-17 Diego Novillo + + * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Symbol + _GLOBAL_OFFSET_TABLE should not have a $ prefix when + using -mintel-syntax. + +2000-10-17 Joseph S. Myers + + * c-common.c (FMT_FLAG_DOLLAR_MULTIPLE): Define. + (format_types): Use it for printf. + (maybe_read_dollar_number): Add parameter for the kind of format + involved. Warn for multiple use for arguments if this is + inappropriate for the kind of format involved. + (check_format_info_main): Update calls to maybe_read_dollar_number. + +2000-10-17 J. David Anglin + + * inclhack.def (hpux_maxint): Also apply fix to values.h. + * fixincl.x: Rebuilt. + +2000-10-17 Alexandre Oliva + + * genrecog.c (write_switch): Return the first condition that needs a + label. + +2000-10-17 Bernd Schmidt + + * c-tree.h (warn_sequence_point): Move declaration to... + * c-common.h (warn_sequence_point): ... here. + * c-decl.c (warn_sequence_point): Move definition to... + * c-common.c (warn_sequence_point): ... here. + (struct reverse_tree): New. + (reverse_list, reverse_max_depth): New static variables. + (build_reverse_tree, common_ancestor, modify_ok + verify_sequence_points): New functions. + (c_expand_expr_stmt): Call verify_sequence_points if -Wsequence-point. + * c-typeck.c (check_modify_expr): Delete. + (build_modify_expr): Don't call it. + +2000-10-17 Joseph S. Myers + + * c-common.h (warn_missing_format_attribute): New variable. + * c-decl.c (warn_missing_format_attribute): New variable. + (c_decode_option): Decode -Wmissing-format-attribute and + -Wno-missing-format-attribute. + * c-common.c (check_function_format): If + -Wmissing-format-attribute, give a warning where a vprintf or + vscanf function is called by a function without its own printf or + scanf attribute. + * toplev.c (documented_lang_options): Add + -Wmissing-format-attribute. + * invoke.texi: Document -Wmissing-format-attribute. + +2000-10-17 Marc Espie + + * invoke.texi (-shared): Insist on requiring code generation flags + to be used along with -shared, and document the subtle failure that + may occur otherwise. + +2000-10-16 J. David Anglin + + * pa.md (return_internal): Move `use' after `return'. + +2000-10-16 Theodore Papadopoulo + + * machmode.def: Correct comment. + +2000-10-16 Rodney Brown + + * print-rtl.c (print_rtx_head): Constify. + * rtl.h (print_rtx_head): Similarly. + + * config/pa/pa/pa-protos.h (output_64bit_and, output_64bit_ior): + Constify char * return value. + * config/pa/pa/pa.c + (output_64bit_and, output_64bit_ior): Constify char * return value. + (pa_can_combine_p): Make static. + (function_arg): Decorate unused `named' argument. Fix comment typo. + (function_arg_partial_nregs): Decorate unused `named' argument. + +2000-10-16 Joseph S. Myers + + * c-common.c (format_check_results): New structure. + (finish_dollar_format_checking): Adjust to take a + format_check_results * parameter. + (check_format_info, check_format_info_recurse, + check_format_info_main): Split check_format_info into three + functions, the main checking going in check_format_info_main. + Recurse when any reduction of the format string argument towards a + string literal is done; go down both branches of a conditional + expression. Don't warn for extra format arguments or empty format + strings if they only occur in some branches of a conditional + expression. + +2000-10-16 Kazu Hirata + + * config/h8300/h8300.c: Remove obstack. Include ggc.h. + +2000-10-16 Jakub Jelinek + + * rtlanal.c (may_trap_p): Check operand modes of COMPARE. + +2000-10-15 Diego Novillo + + * i386.md (*movsi_or): Switch operand order for intel syntax. + +2000-10-14 Joseph S. Myers + + * PROBLEMS: Remove. + + * gcc.texi (Contributing): Update. + +2000-10-13 Diego Novillo + + * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Output final jump using + appropriate assembler dialect. + +2000-10-13 Alexandre Oliva + + * c-common.c (c_expand_builtin): PARAMS-ize prototype. + +2000-10-12 Marek Michalkiewicz + + * config/avr/avr.c (output_movhi, output_movsisf): Fix loading + constants 1 and 2 to NO_LD_REGS. + +2000-10-13 Kaveh R. Ghazi + + * Makefile.in (c-parse.c, tradcif.c): Create atomically. + + * objc/Make-lang.in (objc-parse.c): Likewise. + +2000-10-13 Richard Earnshaw + + * arm.c: Include obstack.h + (minipool_obstack, minipool_startobj): Define. + (arm_add_gc_roots): Initialize them. + (create_fix_barrier): Use our new obstack. + (push_minipool_barrier, push_minipool_fix): Likewise. + (arm_reorg): Release obstack memory. + +2000-10-13 Jakub Jelinek + + * config/sparc/sparc.md (nonlocal_goto_receiver): Remove. + (prologue, exception_receiver, builtin_setjmp_receiver): New + patterns. + * config/sparc/sparc.h (FINALIZE_PIC): Remove. + * config/sparc/sparc-protos.h (finalize_pic): Remove. + (load_pic_register): New prototype. + * config/sparc/sparc.c (pic_setup_code): Remove. + (finalize_pic): Rename to... + (load_pic_register): ...this function. + Don't look for nonlocal_goto_receivers and emit pic setup code + directly. Don't check current_function_uses_pic_offset_table. + +2000-10-13 Richard Earnshaw + + * tree.h (struct obstack): Declare. + +2000-10-12 Mark Mitchell + + Remove obstacks. + * Makefile.in (ggc-callbacks.o): Remove target. + (flow.o): Depend on GGC_H. + * alias.c (init_alias_analysis): + Remove ggc_p conditionals. + (end_alias_analysis): Likewise. + * basic-block.h (init_flow): New function. + (allocate_reg_life_data): Declare. + * bb-reorder.c (function_obstack): Replace with ... + (flow_obstack): ... new variable. + (fixup_reorder_chain): Use it. + * c-decl.c (ggc_p): Remove. + (caller-save.c): Don't call oballoc/obfree. + * combine.c (struct + undobuf): Remove storage. + (try_combine): Don't call oballoc. + (undo_all): Don't call obfree. + * cse.c (insert): Use xmalloc, not + oballoc. + (cse_main): Adjust accordingly. + * dwarf2out.c (save_rtx): Remove + obstack code. + (dwarf2out_init): Remove ggc_p conditionals. + * emit-rtl.c (rtl_obstack): Remove. + (gen_rtx_CONST_INT): Remove ggc_p conditionals. + (make_insn_raw): Likewise. + (emit_insn_before): Likewise. + (emit_insn_after): Likewise. + (emit_insn): Likewise. + (gen_sequence): Likewise. + (copy_insn_1): Remove handling of `b' RTL components. + (init_emit_once): Remove ggc_p conditionals. + * except.c (create_rethrow_ref): Don't fool with obstacks. + (add_partial_entry): Likewise. + (call_get_eh_context): Likewise. + (begin_protect_partials): Likewise. + (protect_with_terminate): Likewise. + * explow.c + (plus_constant_wide): Likewise. + * expr.c (init_expr_once): + Likewise. + (emit_block_move): Likewise. + (clear_storage): Likewise. + (expand_expr): Likewise. + * flow.c (function_obstack): Remove. + (flow_obstack): New variable. + (flow_firstobj): Likewise. + (create_base_block): Use the flow_obstack. + (split_block): Likewise. + (split_edge): Likewise. + (calculate_global_regs_live): Likewise. + (allocate_bb_life_data): Make it static. Likewiwse. + (init_flow): New function. + (size_int_type_wide): Remove ggc_p conditionals. + * function.c + (push_function_context_to): Don't call save_tree_status. + (pop_function_context_from): Or restore_tree_status. + (assign_stack_local_1): Don't call push_obstacks. + (find_fixup_replacement): Use xmalloc. + (fixup_var_refs_insns): Free the storage. + (insns_for_mem_walk): Don't mess with obstacks. + (instantiate_decls): Likewise. + (trampoline_address): Likewise. + (expand_function_end): Likewise. + * function.h (sturct function): + Remove obstack-related variables. + (save_tree_status): Don't declare. + (restore_tree_status): Likewise. + * gcse.c (compute_can_copy): + Don't call oballoc/obfree. + * genattrtab.c (operate_exp): Remove + ggc_p conditionals. + (simplify_cond): Likewise. + (simplify_test_exp): Don't mess with obstacks. + (optimize_attrs): Likewise. + * gengenrtl.c (gendef): Don't include + ggc_p conditionals. + * ggc-callbacks.c (ggc_p): Remove. + * ggc-none.c (ggc_p): Remove. + * ggc.h (ggc_p): Don't declare. + * integrate.c (save_for_inline): Don't mess with obstacks. + (integrate_decl_tree): Likewise. + (output_inline_function): Likewise. + * lists.c + (init_EXPR_INSN_LIST_cache): Likewise. + * loop.c (temp_obstack): + Remove. + (rtl_obstack): Likewise. + (init_loop): Don't mess with obstacks. + (reg_address_cost): Free BIVs and GIVs. + (check_insns_for_bivs): Use xmalloc, not oballoc. + (find_mem_givs): Likewise. + (record_biv): Likewise. + (general_induction_var): Likewise. + (product_cheap_p): Likewse. + * optabs.c (init_one_libfunc): Remove + ggc_p conditional. + * print-tree.c (debug_tree): Don't use + oballoc/obfree. + (print_node): Likewise. + * profile.c (output_func_start_profiler): + Remove call to temporary_allocation. + * reload1.c + (eliminate_regs_in_insn): Don't mess with obstacks. + * resource.c + (mark_target_live_regs): Use xmalloc. + (free_resource_info): Free the memory. + * rtl.c (rtl_obstack): + Remove. + (rtvec_alloc): Don't mess with obstacks. + (rtx_alloc): Likewise. + (rtx_free): Remove. + (copy_rtx): Don't handle `b' cases. + (read_rtx): Use a local rtl_obstack. + * rtl.h (oballoc): Remove. + (obfree): Likewise. + (pop_obstacks): Likewise. + (push_obstacks): Likewise. + (allocate_bb_life_data): Likewise. + (allocate_reg_life_data): Likewise. + (rtx_free): Likewise. + * sdbout.c (sdbout_queue_anonymous_type): + Use tree_cons, not saveable_tree_cons. + * simplify-rtx.c + (cselib_init): Don't mess with obstacks. + * stmt.c + (mark_block_nesting): Mark the label_chain. + (epxand_label): Use ggc_alloc, not oballoc. + (clear_last_expr): Don't mess with obstacks. + (expand_decl_cleanup): Likewise. + (expand_dcc_cleanup): Likewise. + (expand_dhc_cleanup): Likewise. + (expand_anon_union_decl): Likewise. + (add_case_node): Use xmalloc, not oballoc. + (free_case_nodes): New function. + (expand_end_case): Call it. + * stor-layout.c (layout_type): Don't + mess with obstacks. + (layout_type): Likewise. + * toplev.c (wrapup_global_declarations): + Likewise. + (compile_file): Remove ggc_p conditionals. + (rest_of_compilation): Call init_flow. Remove ggc_p conditionals. + (decode_f_option): Remove ggc_p conditionals. + * tree.c + (function_maybepermanent_obstack): Remove. + (maybepermanent_obstack): Likewise. + (function_obstack): Likewise. + (tmeporary_obstack): Likewise. + (momentary_obstack): Likewise. + (temp_decl_obstack): Likewise. + (saveable_obstack): Likewise. + (rtl_obstack): Likewise. + (current_obstack): Likewise. + (expression_obstack): Likewise. + (struct obstack_stack): Likewise. + (obstack_stack): Likewise. + (obstack_stack_obstack): Likewise. + (maybepermanent_firstobj): Likewise. + (temporary_firstobj): Likewise. + (momentary_firstobj): Likewise. + (temp_decl_firstobj): Likewise. + (momentary_function_firstobj): Likewise. + (all_types_permanent): Likewise. + (struct momentary_level): Likewise. + (momentary_stack): Likewise. + (init_obstacks): Remove initialization of removed obstacks. + (save_tree_status): Remove. + (restore_tree_status): Likewise. + (temporary_allocation): Liekwise. + (end_temporary_allocation): Liekwise. + (resume_temporary_allocation): Likewise. + (saveable_allocation): Likewise. + (push_obstacks): Likewise. + (push_obstacks_nochange): Likewise. + (pop_obstacks): Likewise. + (allocation_temporary_p): Likewise. + (permanent_allocation): Likewise. + (preserve_data): Likewise. + (preserve_initializer): Likewise. + (rtl_in_current_obstack): Likewise. + (rtl_in_saveable_obstack): Likewise. + (oballoc): Likewise. + (obfree): Likewise. + (savealloc): Likewise. + (expralloc): Likewise. + (print_obstack_name): Likewise. + (debug_obstack): Likewise. + (object_permanent_p): Likewise. + (push_momentary): Likewise. + (perserve_momentary): Likewise. + (clear_momentary): Likewise. + (pop_momentary): Likewise. + (pop_momentary_nofree): Likewise. + (suspend_momentary): Likewise. + (resume_momentary): Likewise. + (make_node): Don't set TREE_PERMANENT. + (copy_node): Remove ggc_p conditionals. Don't set TYPE_OBSTACK. + Don't set TREE_PERMANENT. + (get_identifier): Remove ggc_p conditionals. + (build_string): Likewise. + (make_tree_vec): Likewise. + (build_decl_list): Remove. + (build_expr_list): Likewise. + (tree_cons): Remove ggc_p conditionals. + (decl_tree_cons): Remove. + (expr_tree_cons): Likewise. + (perm_tree_cons): Likewise. + (temp_tree_cons): Likewise. + (saveable_tree_cons): Likewise. + (build1): Remove ggc_p conditionals. + (build_parse_node): Likewise. + (build_type_attribute_variant): Don't mess with obstacks. + (build_type_copy): Likewise. + (type_hash_canon): Likewise. + (build_pointer_type): Likewise. + (build_reference_type): Likewise. + (build_index_type): Likewise. + (build_range_type): Likewise. + (dump_tree_statistics): Don't print obstack information. + * tree.h + (struct tree_common): Remove permanent_flag. + (TREE_PERMANENT): Remove. + (TREE_SET_PERMANENT): Likewise. + (TYPE_OBSTACK): Likewise. + (struct tree_type): Remove obstack. + (oballoc): Remove. + (savealloc): Likewise. + (build_decl_list): Likewise. + (build_expr_list): Likewise. + (perm_tree_cons): Likewise. + (temp_tree_cons): Likewise. + (saveable_tree_cons): Likewise. + (decl_tree_cons): Likewise. + (expr_tree_cons): Likewise. + (suspend_momentary): Likewise. + (allocation_temporary_p): Likewise. + (resume_momentary): Likewise. + (push_obstacks_nochange): Likewise. + (permanent_allocation): Likewise. + (push_momentary): Likewise. + (clear_momentary): Likewise. + (pop_momentary): Likewise. + (end_temporary_allocation): Likewise. + (pop_obstacks): Likewise. + (push_obstacks): Likewise. + (pop_momentary_nofree): LIkewise. + (preserve_momentary): Likewise. + (saveable_allocation): Likewise. + (temporary_allocation): Likewise. + (resume_temporary_allocation): Likewise. + (perserve_initializer): Likewise. + (debug_obstack): Likewise. + (rtl_in_current_obstack): Likewise. + (rtl_in_saveable_obstack): Likewise. + (obfree): Likewise. + * varasm.c (current_obstack): Remove. + (saveable_obstack): Remove. + (rtl_obstack): Remove. + (immed_double_const): Don't mess with obstacks. + (immed_real_cons): Likewise. + (output_constant_def): Likewise. + (init_varasm_status): Use xcalloc. + (mark_pool_constant): Mark the pool constant itself. + (free_varasm_status): Free memory. + (decode_rtx_const): Call bzero directly, rather than expanding it + inline. + (record_rtx_const): Don't mess with obstacks. + (force_const_mem): Likewise. + * config/arm/arm.c (arm_encode_call_attribute): Remove ggc_p + conditionals. + (aof_pic_entry): Likewise. + * config/ia64/ia64.c (ia64_encode_section_info): Likewise. + * config/m32r/m32r.c (m32r_encode_section_info): Likewise. + * config/pa/pa.c (saveable_obstack): Remove. + (rtl_obstack): Likewise. + (current_obstack): Likewise. + (output_call): Don't mess with obstacks. + (hppa_encode_label): Remove ggc_p conditionals. + * config/romp/romp.c (get_symref): Don't mess with obstacks. + * config/rs6000/rs6000.c (output_toc): Remove ggc_p conditional. + (rs6000_encode_section_info): Likewise. + * config/sh/sh.c (get_fpscr_rtx): Likewise. + +Thu Oct 12 16:02:31 MET DST 2000 Jan Hubicka + + * i386.md (adddi3, subdi3 splitters): Update for new pattern. + (addsi3_cc, addqi3_cc, subsi3_cc): Remove + (addsi3_carry): Canonicalize. + (addqi_5): Remove '*'. + (sbb pattern): Canonicalize. + + * i386.md (cmp to inc/add peep2): New. + +2000-10-12 Richard Earnshaw + + * bb-reorder.c (reorder_basic_blocks): Allocate an aux block for + the exit block. + +2000-10-12 Joseph S. Myers + + * gcc.texi: Merge in contents of README.TRAD and TESTS.FLUNK. + * README.TRAD, TESTS.FLUNK: Remove. + +2000-10-12 Joseph S. Myers + + * c-common.c (decl_attributes): Don't allow strftime formats with + first_arg_num nonzero. + (check_format_info): Set wanted_type and wanted_type_name to zero + before they are possibly assigned and used. + +2000-10-12 Joseph S. Myers + + * c-common.c (scanf_flag_specs): Add flags ' and I. + (strftime_flag_pairs): Disallow any pair of the _, - and 0 flags, + or the ^ and # flags together. + (scan_char_table): Handle the ' and I flags. + (format_types): Add ' and I flags for scanf. + +2000-10-12 Joseph S. Myers + + * c-common.c (print_char_table): Use the unpromoted type for + lengths "h" and "hh" with conversions dioxXu. + (check_format_types): Apply the default argument promotions where + the wanted type is not a pointer target. + +2000-10-11 Michael Meeks + Joseph S. Myers + + * c-typeck.c (check_modify_expr): New function. + (build_modify_expr): Call it if warn_sequence_point. + * c-decl.c (warn_sequence_point): New variable. + (c_decode_option): Handle -Wsequence-point and + -Wno-sequence-point. Enable -Wsequence-point as part of -Wall. + * c-tree.h (warn_sequence_point): Declare. + * invoke.texi (-Wsequence-point): Document. + * toplev.c (documented_lang_options): Add -Wsequence-point and + -Wno-sequence-point. + Original work by Michael Meeks, 16 Jun 1998. + +Wed Oct 11 06:15:41 2000 Richard Kenner + + * tree.c (get_narrower): Don't look at precision of field if + not laid out yet. + +Tue Oct 10 23:14:33 2000 Denis Chertykov + + * config/avr/avr.c (valid_machine_decl_attribute): Allow `extern' + declaration for data with "progmem" attribute. + +2000-10-09 Marek Michalkiewicz + + * config/avr/avr.c (out_shift_with_cnt): Use AS2 macro. + Correct insn length if shift count is a memory operand. + * config/avr/avr.md: New define_peephole2 to use *reload_inqi. + (*iorhi3_clobber): Change lo8 to hi8. + (zero_extendhisi2): Change %B0 to %A1. + (ashlhi3, ashrhi3): Correct insn length. + (andhi3, abssf2, extendqisi2, extendhisi2): Change "cc" + from "clobber" to "set_n" in some alternatives. + +2000-10-10 Jakub Jelinek + + * reload1.c (calculate_needs_all_insns): If deleting an instruction, + remove its insn_chain structure as well. + +2000-10-09 J. David Anglin + + * dbxout.c (dbxout_source_line): Remove extra tab. + +2000-10-09 Hans-Peter Nilsson + + * config/elfos.h (UNIQUE_SECTION): Apply STRIP_NAME_ENCODING on name. + +2000-10-09 Richard Henderson + + * Makefile.in (LANG_LIB2FUNCS): Remove. + (LIB2FUNCS): Remove _pure. + (LIB2ADD): Remove LANG_LIB2FUNCS. + (stage_a): Don't set LANG_LIB2FUNCS. + * libgcc2.c (__terminate): Mark noreturn. + (__pure_virtual): Remove. + * mklibgcc.in: Remove LIB2ADD .txt processing. + +2000-10-09 Richard Earnshaw + + * arm.md (push_multi): Revert unintended change. + +2000-10-09 Richard Earnshaw + + * arm.c: Miscellaneous white space and comment clean-ups. No + functional change. + * arm.md: Likewise. + +2000-10-09 Kaveh R. Ghazi + + * c-common.c (c_expand_builtin_printf): Set the TREE_TYPE of a new + STRING_CST by calling combine_strings. + +2000-10-09 Richard Earnshaw + + * arm.c (thumb_expand_movstrqi): Rewrite to support SSA form. + (thumb_output_move_mem_multiple): Support new insn format. + * arm.md (movmem12b): Use SSA compatible format. + (movmem8b): Likewise. + +2000-10-09 Richard Earnshaw + + * arm.md (predicable): New attribute, default to "no". + (all patterns): Mark as predicable if appropriate. + (conditional execution splits): Split using predication format. + (define_cond_exec): Define. + * arm.c (arm_print_operand): handle insn predicate. + +2000-10-09 Gerald Pfeifer + + * README.NS32K: Remove file. + +2000-10-09 Gerald Pfeifer + + * README-bugs: Remove file. + +2000-10-08 Philipp Thomas + * aclocal.m4 (AM_GNU_GETTEXT): Fix non portable use of == operator + for test. + * configure: Rebuilt. + +2000-10-08 Philipp Thomas + * aclocal.m4 (AM_WITH_NLS): When not using included gettext, + disable catalog building if no suitable program was found. + Move warning message from here + (AM_GNU_GETTEXT): To here. + * configure: Rebuilt. + +2000-10-08 Philipp Thomas + * aclocal.m4 (GCC_PATH_PROG): New. Like AC_PATH_PROG but uses + different cache variables. + (GCC_PATH_PROG_WITH_TEST): New. Like AM_PATH_PROG_WITH_TEST but + uses different cache variables. + (AM_WITH_NLS): Use GCC_PATH_PROG and GCC_PATH_PROG_WITH_TEST. + * configure: Regenerated. + +2000-10-08 Richard Henderson + + * Makefile.in (libgcc.mk): Pass SHLIB_EXT, not SHLIB_LIBS. + * configure.in (sparc*-*-solaris*): Use t-slibgcc{,-sld}. + * mklibgcc.in: Consider SHLIB_LINK the entire shlib build command. + Use SHLIB_EXT. + + * config/t-linux (SHLIB_EXT): New. + (SHLIB_LINK): Use the entire build command, with substitutions. + (SHLIB_LIBS): Remove. + * config/alpha/t-osf4: Likewise. + * config/mips/t-iris6: Likewise. + * config/sparc/t-sol2: Likewise, but move shlib stuff... + * config/sparc/t-slibgcc-sld: ...here. + * config/sparc/t-slibgcc: New file. + +2000-10-08 Joseph S. Myers + + * tm.texi (INTMAX_TYPE, UINTMAX_TYPE): Define. + * c-common.h (enum c_tree_index): Add CTI_INTMAX_TYPE and + CTI_UINTMAX_TYPE. + (intmax_type_node, uintmax_type_node): Define. + * c-common.c (decl_attributes): If pedantic, warn if `mode' + attributes create a type wider than intmax_t. + (T_IM, T_UIM): Define properly. + * c-decl.c (INTMAX_TYPE, UINTMAX_TYPE): Define if not already + defined. + (init_decl_processing): Initialize intmax_type_node and + uintmax_type_node. + * c-lex.c (lex_number): When pedantic and warning for integer + constants that are too large, in C99 mode warn for those that have + a type wider than long long. + +2000-10-08 Joseph S. Myers + + * c-common.c (FMT_FLAG_ARG_CONVERT, FMT_FLAG_SCANF_A_KLUDGE, + FMT_FLAG_FANCY_PERCENT_OK): Define. + (format_char_info): Add flag "4" to comment. + (format_flag_spec, format_flag_pair): New structures. + (format_kind_info): Add additional fields to control format + checking. + (printf_flag_specs, printf_flag_pairs, scanf_flag_specs, + scanf_flag_pairs, strftime_flag_specs, strftime_flag_pairs): New + arrays. + (time_char_table): Use "4" flag to handle %Ey. + (format_types): Add entries for new fields. + (get_flag_spec): New function. + (check_format_info): Increase size of flag_chars[] to 256. + Control format checking using the new fields of a format_kind_info + and the new tables; remove all conditionals on printf_format_type, + scanf_format_type or strftime_format_type. Handle all details of + bad combinations of flags (including width, precision and strftime + modifiers) through data rather than ad hoc code. Handle all + details of standard versions in which flags appeared through + data. Use the "4" flag. + +2000-10-07 Will Cohen , Kazu Hirata + + * config/h8300/h8300.md: Remove the memory alternative and correct + the insn lengths in the templates for sign extension and zero + extension. + +2000-10-07 Richard Henderson + + * calls.c (expand_call): Disallow sibcalls to noreturn functions. + * flow.c (make_edges): Revert last change. + + * config/alpha/alpha.h (FUNCTION_OK_FOR_SIBCALL): Don't test + TREE_THIS_VOLATILE. + * config/pa/pa.h (FUNCTION_OK_FOR_SIBCALL): Likewise. + +2000-10-06 David O'Brien + + * config/alpha/elf.h: Standardize the formatting. + +2000-10-06 David O'Brien + + * config/alpha/elf.h: Protect the ASM_OUTPUT_IDENT definition with an + #undef. + +2000-10-06 Richard Henderson + + * function.c (diddle_return_value): Examine + current_function_return_rtx instead of the DECL_RESULT. + (expand_function_end): Handle reloading DECL_RESULT from memory + into a hard register. Query promote_mode for sign of mismatched + modes. + +2000-10-06 Vladimir Makarov + + * haifa-sched.c (schedule_insns): Fix typo in freeing + forward_dependency_cache. + +2000-10-06 Alexandre Oliva + + * config/sh/sh.md (calli_pcrel, call_valuei_pcrel): Add + `TARGET_SH2' as a condition. + +2000-10-06 Vladimir Makarov + + * haifa-sched.c (anti_dependency_cache, output_dependency_cache, + forward_dependency_cache): New variables. + (add_dependence, remove_dependence): Use anti_dependency_cache and + output_dependency_cache. + (compute_block_forward_dependences): Use forward_dependency_cache. + (schedule_insns): Allocate and free memory for anti/output/forward + dependencies caches. + +2000-10-06 Alexandre Oliva + + * config/sh/sh.md (call, call_value): Use `TARGET_SH2' instead of + `! TARGET_SH1'. Reindent. + +2000-10-06 Kaveh R. Ghazi + + * builtins.c (is_valid_printf_arglist, expand_builtin_printf): + Move functions from here ... + + * c-common.c (is_valid_printf_arglist, c_expand_builtin_printf): + ... to here. + (c_expand_builtin): New function. + (init_function_format_info): Don't set `check_function_format_ptr'. + (c_common_nodes_and_builtins): Set built_in_class type for + printf/__builtin_printf to BUILT_IN_FRONTEND. + (c_expand_expr): Handle CALL_EXPRs that are front-end builtins. + + * c-common.h (build_function_call): Declare. + + * expr.c (expand_expr): Pass builtins with class BUILT_IN_FRONTEND + to `lang_expand_expr' rather than `expand_builtin'. + + * tree.c (check_function_format_ptr): Delete. + + * tree.h (check_function_format_ptr): Likewise. + +2000-10-06 Hans-Peter Nilsson + + * dwarf2out.c (build_cfa_loc): Correct to use DW_OP_regx or + DW_OP_bregx when cfa->reg > 31. + + * frame-dwarf2.c (decode_stack_op) [case DW_OP_regx]: Add missing + break. + +2000-10-05 Richard Henderson + + * c-decl.c (warn_missing_noreturn): Remove. + (c_expand_body): Don't set or check can_reach_end. + * c-tree.h (warn_missing_noreturn): Move ... + * flags.h: ... here. + (can_reach_end): Remove. + * flow.c (check_function_return_warnings): New. + (make_edges): No edge to exit for noreturn sibcalls. + * function.c (expand_function_end): Save the return value + clobber instruction. + (mark_function_status): Mark it. + * function.h (struct function): Add x_clobber_return_insn. + * jump.c (can_reach_end): Remove. + (calculate_can_reach_end): Remove. + (jump_optimize_1): Don't call it. + * output.h (check_function_return_warnings): Declare. + * toplev.c (warn_missing_noreturn): Move from c-decl.c + (rest_of_compilation): Call check_function_return_warnings. + +2000-10-05 Richard Henderson + + * Makefile.in (NM_FOR_TARGET): New. + (libgcc.mk): Pass SHLIB_MKMAP, SHLIB_MAPFILES. + (libgcc.a, stmp-multilib): Pass NM_FOR_TARGET. + * mklibgcc.in: If SHLIB_MKMAP, build libgcc.map. Depend the + shared library build on that and EXTRA_MULTILIB_PARTS. + * mkmap-flat.awk: New file. + * mkmap-symver.awk: New file. + * libgcc-std.ver: New file. + * config/libgcc-glibc.ver: New file. + * config/ia64/libgcc-ia64.ver: New file. + * config/t-linux (SHLIB_MKMAP, SHLIB_MAPFILES): New. + (SHLIB_LINK): Add --version-script. + * config/ia64/t-ia64 (SHLIB_MAPFILES): Add libgcc-ia64.ver. + * config/mips/t-iris6 (SHLIB_MKMAP, SHLIB_MAPFILES): New. + * config/sparc/t-sol2 (SHLIB_MKMAP, SHLIB_MAPFILES): New. + (SHLIB_LINK): Add -M. + +2000-10-05 Richard Henderson + + * Makefile.in (LIB2FUNCS): Add _clz. + * libgcc2.c (__ffsdi2): Use count_trailing_zeros. + (__clz_tab): Put in its own unit, non-static. + * libgcc2.h: Always include longlong.h. + + * longlong.h [alpha] (count_leading_zeros): Use cmpbge with + a zero instead of -1. + (count_trailing_zeros): Likewise. + +2000-10-05 Richard Henderson + + * config/alpha/alpha.c (alpha_emit_setcc): Don't swap GT tests + when second op1 is const0_rtx. Validate op0 as a register. + * config/alpha/alpha.md (setcc_internal): Don't allow constants + in the first argument of the compare. + (setcc_swapped_internal): Likewise. + (setne_internal): Likewise. + +2000-10-05 Geoff Keating + + * tree.c (tree_size): New function split out of copy_node. + (make_node): Remove obstack handling. Use tree_size. + (copy_node): Use tree_size. + * tree.h: Prototype tree_size. + +2000-10-05 Richard Henderson + + * diagnostic.c (output_format): Add missing break. + +2000-10-05 Jim Wilson + + * function.c (fixup_var_refs_1, case SET): When gen_move_insn returns a + SEQUENCE, call emit_insn_before, copy PATTERN and REG_NOTES of last + sequence insn to INSN, and delete last sequence insn. + +2000-10-05 Phil Edwards + + * gcc.c (main): Include generated configargs.h header + and use arguments in '-v' output. + +Thu Oct 5 16:16:57 2000 Richard Kenner + + * gcc.c: Move data on prefixes forward in file and reorganize. + (md_exec_prefix, md_startfile_prefix, md_startfile_prefix_1): + Always define, but make null if no value. + (static_specs): Add "md_exec_prefix", "md_startfile_prefix", + and "md_startfile_prefix_1". + (main): Check whether md_exec_prefix and the others are the + null string rather than whether the macro is defined. + +Thu Oct 5 19:04:18 2000 J"orn Rennecke + + * (convert_move): Use zero_extendpsisi2 to do an unsigned extension + from PSImode to SImode. + +2000-10-05 Jakub Jelinek + + * emit-rtl.c (gen_lowpart_common) [REAL_ARITHMETICS]: Fix conversion + from float to integral mode with HOST_BITS_PER_WIDE_INT 64. + * dwarf2out.c (add_const_value_attribute): Divide by 4, not + sizeof(long). + +Thu Oct 5 09:31:31 2000 Richard Kenner + + * fold-const.c (fold, case MINUS_EXPR, case EQ_EXPR): Perform + negation in proper type.a + +2000-10-04 Richard Henderson + + * configure.in (enable-shared): New. + * Makefile.in (LIBGCC_DEPS): Depend on EXTRA_PARTS as well. + (libgcc.mk): Pass SHLIB_LINK, SHLIB_LIBS, SHLIB_MULTILIB to mklibgcc. + * mklibgcc.in: Use them to link shared a libgcc. + * config/t-linux (SHLIB_LINK, SHLIB_LIBS): New. + * config/alpha/t-ieee (SHLIB_MULTILIB): New. + * config/mips/t-iris6 (SHLIB_LINK, SHLIB_LIBS): New. + * config/sparc/t-sol2 (SHLIB_LINK, SHLIB_LIBS): New. + + * configure.in (alpha-osf*): Use t-osf and x-osf. + * config/alpha/t-osf: New file. + * config/alpha/t-osf4: New file. + * config/alpha/x-osf: New file. + * config/alpha/x-alpha: Remove file. + +2000-10-04 Will Cohen + + * c-typeck.c (process_init_element): Added warning for zero-length + array. + + * extend.texi (Zero Length): State that static initializers for + zero-length arrays are not allowed. + +Mon Oct 2 14:50:14 MET DST 2000 Jan Hubicka + + * rtlanal.c (single_set_1): Do not require USE and CLOBBERs + to come last. + +2000-10-03 Michael Hayes + + * config/float-c4x.h: New. + * configure.in (c4x-*): Set float_format to c4x. + * configure: Regenerate. + +2000-10-02 Kaveh R. Ghazi + + * configure.in (sparc-*-solaris2*): Disable 32-to-64 cross + compilation for solaris versions 2.7 and greater. + +2000-10-02 Marc Espie + + * config/alpha.h (WORD_SWITCH_TAKES_ARG): add -rpath to default, + instead of redefining from scratch. + +2000-10-02 David O'Brien + + * config/i386/freebsd.h (NO_PROFILE_COUNTERS): Define. + +2000-10-01 Mark Mitchell + + * config/ns32k/genix.h: Remove. + * config/ns32k/x-genix: Likewise. + * config/ns32k/xm-genix.h: Likewise. + * config/fx80: Remove all filee in directory. + * config/pyr: Likewise. + * config/tahoe: Likewise. + * config/gmicro: Likewise. + * config/spur: Likewise. + * configure.in: Remove configury bits for above targets. + * configure: Regenerated. + + * configure.in: Don't configure chill by default. + * configure: Regenerated. + + * c-decl.c (c_expand_body): Don't generate RTL if flag_syntax_only. + (lang_mark_false_label_stack): Remove. + * c-lex.c (init_c_lex): Add file_info_tree as GC root. Allocate + string in GC area. + (mark_splay_tree_node): New function. + (mark_splay_tree): Likewise. + * except.c (mark_eh_status): Only call lang_mark_false_label_stack + if it exists. + * ggc-callbacks.c (lang_mark_false_label_stack): Remove. + * ggc-common.c (lang_mark_false_label_stack): Change type. + * ggc.h (ggc_alloc_string): Add comment. + (ggc_strdup): New function. + +Sat Sep 23 19:10:20 2000 Denis Chertykov + + * config/avr/avr.h (BRANCH_COST): Define as 0. + + * config/pdp11/pdp11.c: #include "tree.h" added. + +2000-09-30 Marek Michalkiewicz + + * config/avr/avr.c (ashlhi3_out, ashlsi3_out, ashrhi3_out, + ashrsi3_out, lshrhi3_out, lshrsi3_out): Optimize more cases + with known shift count. + * config/avr/avr.md (ashlsi3, ashrsi3, lshrsi3): + New alternative for shift count 2 with no scratch register. + (ashlhi3, ashlsi3): Change "cc" attribute from "clobber" to + "set_n" for shift counts 1 and 2. + +2000-09-30 Geoff Keating + + * config/rs6000/rs6000.md (movsi_to_cr): Remove the USE. Calculate + the mask value from the individual SET operations. + (return_internal_si): Move the USE after the RETURN. + (return_internal_di): Likewise. + (return_and_restore_fpregs_si): Likewise. + (return_and_restore_fpregs_di): Likewise. + (return_eh_si): Likewise. + (return_eh_di): Likewise. + * config/rs6000/rs6000.c (mtcrf_operation): Don't look for, + or check, the USE. + (rs6000_emit_prologue): Don't emit the USE for movsi_to_cr. + Don't generate a PARALLEL around a single operation movsi_to_cr. + Generate the RETURN first in any PARALLELs. + + * rtlanal.c (single_set_1): Use fatal_insn to display the + invalid insn. Check for more cases when a USE or CLOBBER occurs + before a SET. + * Makefile.in: Update dependencies for rtlanal.o. + +2000-09-30 Joseph S. Myers + + * i386.c: Move include of "config.h" to before that of . + +2000-09-30 Joseph S. Myers + + * c-tree.texi, contrib.texi, gcc.texi, install.texi, invoke.texi: + Consistently use @email for formatting email addresses. + +2000-09-29 Richard Henderson + + * cse.c (notreg_cost): New argument outer. + (COST): Pass in SET to notreg_cost + (COST_IN): New. + (fold_rtx): Use COST_IN. Prefer constants when costs + are the same. + +2000-09-29 David Edelsohn + + * fixinc/inclhack.def (broken_cabs): Generalize regex. + * fixinc/fixincl.x: Regenerate. + +2000-09-29 Franz Sirl + + * loop.c (check_final_value): A GIV is not replaceable if used + before set. + +Fri Sep 29 10:04:12 2000 Jeffrey A Law (law@cygnus.com) + + * version.c: Bump to gcc-2.97. + +Frs Sep 29 13:37:59 MET DST 2000 Jan Hubicka + + * final.c (final_scan_insn): Remove extra extract_insn call; + Use caching for constrain_operands. + (cleanup_subreg_operands): Use caching for extract_insn. + * recog.c (constrain_operands_cached): New. + * recog.h (constrain_operands_cached): Declare. + * i386.c (ix86_attr_length_immediate_default, + ix86_attr_length_address_default, ix86_agi_dependant): Cache + extract_insn call. + + * recog.c (asm_noperands): Tweak. + (extract_insn): Do not call asm_noperads for non-asm instructions. + +Fri Sep 29 13:20:42 MET DST 2000 Jan Hubicka + + * recog.c (recog_memoized): Rename to recog_memoized_1. + * recog.h (recog_memoized): Rename to recog_memoized_1. + (recog_memoized): New macro. + * rtl.h (single_set): Rename to single_set_1 + (single_set): New macro. + * rtlanal.c (single_set): Rename to single_set_1; expect clobbers + to be last. + + * i386.md (strmovsi_1, strmovhi_1 strmovqi_1): + Do not use match_dup of input operands at outputs. + Use register_operand for memory expression. + (rep_movsi): Put use last, canonicalize. + Use register_operand for memory expression. + (rep_movqi): Put use last. + Use register_operand for memory expression. + (strsetsi_1, strset_hi_1, strsetqi_1): Do not use match_dup + of input operands at outputs. Use register_operand for memory + expression. + (rep_stossi): Put use last; canonicalize; fix match_dup in + the address expression + (rep_stosqi): Likewise. + (memcmp expander): Update calls. + (cmpstrsi_nz_1, cmpstrsi_1, strlensi_1): Avoid match_dups in + the clobbers. + + * i386.md (fp_jcc_3, fp_jcc_4, jp_fcc_5): if_then_else operand is + VOIDmode. + (fp_jcc_4, fp_jcc_3): Refuse unordered comparisons. + +2000-09-28 David O'Brien + + * config/i386/freebsd-aout.h: New, FreeBSD a.out config file. + Contains the old contents of config/i386/freebsd.h + * config/i386/freebsd.h: Now the ELF rather than a.out config file. + Contains the old contents of config/i386/freebsd-elf.h + * config/i386/freebsd-elf.h: Retire this file -- contents moved to + config/i386/freebsd.h. + * configure.in: Adjust for above changes. + * po/POTFILES.in: Likewise. + * po/en_GB.po: Likewise. + * po/gcc.pot: Likewise. + * configure: Rebuilt. + +2000-09-28 Franz Sirl + + * doloop.c (doloop_modify): Prevent delete_insn() from + deleting too much. Prefer loop->top over loop->start as + target for the new JUMP insn. + (doloop_valid_p): Ignore loop with exit_count != 0. + +2000-09-28 Philipp Thomas + + * invoke.texi (i386 Options): Add athlon to table of possible + choices for -mcpu=. + +2000-09-28 Gabriel Dos Reis + + * diagnostic.h (output_clear_message_text): New function. + (output_message_text): New macro. + + * diagnostic.c (clear_text_info): Rename to + output_clear_message_text. + (output_clear): Adjust. + (output_finish): Rename to output_finalize_message. Tweek. + (output_to_stream): Adjust. + +2000-09-28 Neil Booth + + * cpperror.c (_cpp_begin_message): Do the test for suppression + of warnings and pedantic warnings before the "is a warning an + error" tests. + * cppinit.c (cpp_handle_option): Remove surplus \n. + * cpplex.c (ON_REST_ARG): Delete. + (skip_block_comment): Initialize prevc. + (parse_args): Improve error messages. + (maybe_paste_with_next): Use CONTEXT_VARARGS rather + than ON_REST_ARG. + * cpplib.c (cpp_push_buffer): Fix grammar in message. + * cppmain.c (main): Set callbacks for #ident and #pragma + only if no_output option is false. + (do_pragma_implementation): Only call the #pragma handler + if it is set in the cpp_reader structure. + +Wed Sep 27 14:00:07 2000 Donald Lindsay + + * integrate.c (copy_insn_list): if an ignored return value + is being clobbered, skip cloning that into the inline copy. + +2000-09-27 Joseph S. Myers + + * extend.texi, invoke.texi, gcc.texi, install.texi: Consistently + use @uref for formatting URLs. + +2000-09-27 Mark Elbrecht + + * config/i386/djgpp.h (UNIQUE_SECTION): Constify the variables + name and prefix. + +Tue 26-Sep-2000 18:25:38 BST Neil Booth + + * gcc.c (cpp_options): Add spec for -ftabstop=. + (invoke_as): New spec that handles invoking as. + Update specs to handle -save-temps and -traditional. + * ch/lang-specs.h, f/lang-specs.h, java/lang-specs.h: + Use invoke_as. + * cp/lang-specs.h, objc/lang-specs.h: Update to use + invoke_as, and handle -save-temps and -traditional (if + appropriate). + +2000-09-26 Jakub Jelinek + + * config/sparc/sparc.c (sparc_emit_set_const64): Don't abort when + op0 is a SUBREG. + (function_arg_slotno): Accept TImode/CTImode. + * config/sparc/sparc.h (MIN_UNITS_PER_WORD): If IN_LIBGCC2 define + to UNITS_PER_WORD. + +2000-09-26 Michael Hayes + + * flow.c (flow_loop_pre_header_scan): Punt if loop enters + from entry block. + +2000-09-25 Jim Wilson + + * config/ia64/ia64.h (INDEX_REG_CLASS): Define to GENERAL_REGS. + (REGNO_OK_FOR_INDEX_P): Define to REGNO_OK_FOR_BASE_P. + (LEGITIMATE_ADDRESS_DISP): Use LEGITIMATE_ADDRESS_REG. + (REG_OK_FOR_INDEX): Define to REG_OK_FOR_BASE_P. + +Tue 26-Sep-2000 00:16:22 BST Neil Booth + + * cpplex.c (parse_args): Don't set VOID_REST flag. + (CONTEXT_VARARGS): New flag. + (maybe_paste_with_next): Set context earlier in loop. Use + it. Do varargs test with CONTEXT_VARARGS flag. + (push_arg_context): Set CONTEXT_VARARGS flag if we're + pushing an argument context for a varargs argument. + * cpplib.h (VOID_REST): Delete. + * gcc.dg/cpp/vararg1.c: Add test case. + +2000-09-25 Branko Cibej + + * flags.h: Declare warning flag warn_system_headers. + * toplev.c: Define it. + (W_options): Add option -Wsystem-headers. + * diagnostic.c (count_error): Test warn_system_headers. + * invoke.texi: Add description for -Wsystem-headers. + * cpplib.h (cpp_options): New member warn_system_headers. + * cpphash.h (CPP_PEDANTIC, CPP_WTRADITIONAL): Don't test + CPP_IN_SYSTEM_HEADER. + * cpplib.c (do_import, do_pragma_once): Likewise. + * cpperror.c (_cpp_begin_message): Test warn_system_headers + and CPP_IN_SYSTEM_HEADER. + * cppinit.c (handle_option): Recognize -Wsystem_headers. + (print_help): Describe -Wsystem_headers. + * cpplex.c (lex_line): Reorganize condition so that warnings + about C++ comments in system headers can be enabled. Remove + label do_line_comment. + +Mon 25-Sep-2000 23:38:27 BST Neil Booth + + * cpplex.c (save_comment): Only store the initial '/' + now. + (lex_token): Combine handling of the two comment types. + Pass everything but the initial '/' to save_comment. + +Mon 25-Sep-2000 23:31:45 BST Neil Booth + + * cpphash.h (_cpp_digraph_spellings, _cpp_process_directive, + _cpp_can_paste): New library-internal prototypes. + * cpplex.c (dump_param_spelling, output_line_command, + output_token, cpp_scan_buffer, cpp_scan_buffer_nooutput, + cpp_printf, cpp_output_list): Move to cppoutput.c. + (process_directive, can_paste, digraph_spellings): Add _cpp_ prefix. + * cppmacro.c (dump_macro_args, cpp_dump_definition) Move to + cppoutput.c. + * cppoutput.c (dump_macro_args, cpp_dump_definition, output_token, + dump_param_spelling, output_line_command, cpp_scan_buffer, + cpp_scan_buffer_nooutput, cpp_printf, cpp_output_list): Moved + from elsewhere. + * Makefile.in: Add cppoutput.c. + * po/POTFILES.in: Add cppoutput.c. + +2000-09-25 Richard Henderson + + * config/ia64/ia64.c (ia64_print_operand): Define 'e' as 64-n. + * config/ia64/ia64.md (rotrsi3): Allow variable rotates; don't + split until after reload. + (rotlsi3, rotldi3): New. + +2000-09-25 Gabriel Dos Reis + + * diagnostic.c (output_last_position): Define. + (set_real_maximum_length): Tweek. + * diagnostic.h (output_last_position): Declare. + +2000-09-25 Kazu Hirata + + * config/i386/i386.c: Fix formatting. + +2000-09-24 Alan Lehotsky + + * emit-rtl-c (gen_lowpart_common): Accept non-paradoxical SUBREG when + UNITS_PER_WORD is small. + +2000-09-25 Joseph S. Myers + + * c-common.c (format_char_info): Add flags2; update comments. + (print_char_table, scan_char_table, time_char_table): Split some + flags out into flags2. + (check_format_info): Use flags2 for those flags, for identifying + the initial character of a scanf scanset, and for identifying + printf formats where the '0' flag is ignored with precision. + +2000-09-25 Hans-Peter Nilsson + + Changes below marked "here" add TABs on either or both sides, + covering start of line, up to any operand for all noted .*ASM.*_OP + definitions. All callers changed. + * tm.texi: Make documented *_ASM.*_OP:s include spacing + (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, SHARED_SECTION_ASM_OP, + BSS_SECTION_ASM_OP, SHARED_BSS_SECTION_ASM_OP, INIT_SECTION_ASM_OP, + ASM_BYTE_OP, FINI_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP, + ASM_STABS_OP, ASM_STABD_OP, ASM_STABN_OP). + Fix typos in description for LONG_LONG_TYPE_SIZE and + FINI_SECTION_ASM_OP. + * crtstuff.c (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Explain + why these defaults don't have leading spacing. + * dbxout.c (ASM_STABS_OP, ASM_STABN_OP): Here. + * dwarf2out.c (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP, + UNALIGNED_DOUBLE_INT_ASM_OP, SECTION_ASM_OP, ASM_BYTE_OP): Here. + * dwarfout.c (FILE_ASM_OP, VERSION_ASM_OP, + UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP, ASM_BYTE_OP, + PUSHSECTION_ASM_OP, POPSECTION_ASM_OP): Here. + * defaults.h (ASM_STABD_OP, EH_FRAME_SECTION_ASM_OP): Here. + * varasm.c (ASM_STABS_OP): Here. + * xcoffout.h (ASM_STABS_OP): Here. + * config/elfos.h (IDENT_ASM_OP, ASM_BYTE_OP, SET_ASM_OP, + SKIP_ASM_OP, ALIGN_ASM_OP, COMMON_ASM_OP, LOCAL_ASM_OP, + INT_ASM_OP, ASCII_DATA_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP, + STRING_ASM_OP): Here. + * config/freebsd.h (IDENT_ASM_OP): Here. + * config/linux-aout.h (SET_ASM_OP): Here. + * config/linux.h (SET_ASM_OP): Here. + * config/lynx.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, + INT_ASM_OP): Here. + * config/netbsd.h (TYPE_ASM_OP, SIZE_ASM_OP, SET_ASM_OP): Here. + * config/nextstep.h (EH_FRAME_SECTION_ASM_OP, ALIGN_ASM_OP): Here. + * config/openbsd.h (TYPE_ASM_OP, SIZE_ASM_OP, SET_ASM_OP): Here. + * config/psos.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, + INT_ASM_OP): Here. + * config/ptx4.h (IDENT_ASM_OP, ASM_BYTE_OP, SET_ASM_OP, + SKIP_ASM_OP, ALIGN_ASM_OP, COMMON_ASM_OP, LOCAL_ASM_OP, + INT_ASM_OP, ASCII_DATA_ASM_OP, CONST_SECTION_ASM_OP, + CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP, + FINI_SECTION_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP STRING_ASM_OP): Here. + * config/svr3.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP, + CONST_SECTION_ASM_OP, ASM_BYTE_OP): Here. + * config/a29k/udi.h (INT_ASM_OP): Here. + * config/alpha/alpha-interix.h (CONST_SECTION_ASM_OP, + CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INT_ASM_OP, + SET_ASM_OP): Here. + * config/alpha/alpha.h (TEXT_SECTION_ASM_OP, + READONLY_DATA_SECTION_ASM_OP, DATA_SECTION_ASM_OP, + UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP, + UNALIGNED_DOUBLE_INT_ASM_OP, ASM_STABS_OP, ASM_STABN_OP, + ASM_STABD_OP): Here. + * config/alpha/elf.h (IDENT_ASM_OP, SKIP_ASM_OP, ALIGN_ASM_OP, + COMMON_ASM_OP, INT_ASM_OP, ASCII_DATA_ASM_OP, + CONST_SECTION_ASM_OP, CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, + BSS_SECTION_ASM_OP, SBSS_SECTION_ASM_OP, SDATA_SECTION_ASM_OP, + INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP, TYPE_ASM_OP, + SIZE_ASM_OP, STRING_ASM_OP): Here. + * config/alpha/vms.h (LINK_SECTION_ASM_OP, + READONLY_SECTION_ASM_OP, LITERALS_SECTION_ASM_OP, + CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, COMMON_ASM_OP): Here. + * config/arc/arc.h (ASM_BYTE_OP, SET_ASM_OP): Here. + (PUSHSECTION_ASM_OP): Define this, not PUSHSECTION_FORMAT. + * config/arm/aof.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): + Here. + * config/arm/aout.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, + BSS_SECTION_ASM_OP, SET_ASM_OP): Here. + * config/arm/coff.h (INT_ASM_OP): Here. + * config/arm/conix-elf.h (UNALIGNED_WORD_ASM_OP): Here. + * config/arm/elf.h (TYPE_ASM_OP, SIZE_ASM_OP, INT_ASM_OP): Here. + * config/arm/linux-elf.h (IDENT_ASM_OP, CONST_SECTION_ASM_OP, + INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Here. + * config/arm/unknown-elf.h (UNALIGNED_WORD_ASM_OP): Here. + * config/avr/avr.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, + ASM_BYTE_OP, TYPE_ASM_OP, SIZE_ASM_OP, WEAK_ASM_OP, + STRING_ASM_OP): Here. Update documentation copy in comments. + * config/c4x/c4x.h (ASM_STABS_OP, BSS_SECTION_ASM_OP): Here. + * config/clipper/clipper.h (TEXT_SECTION_ASM_OP, + DATA_SECTION_ASM_OP): Here. + * config/clipper/clix.h (BSS_SECTION_ASM_OP, INIT_SECTION_ASM_OP): + Here. + * config/convex/convex.h (TEXT_SECTION_ASM_OP, + DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP): Here. + * config/d30v/d30v.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, + BSS_SECTION_ASM_OP): Here. + * config/fr30/fr30.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, + BSS_SECTION_ASM_OP): Here. + * config/fx80/fx80.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): + Here. + * config/gmicro/gmicro.h (TEXT_SECTION_ASM_OP, + DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP): Here. + * config/h8300/h8300.h (ASM_WORD_OP): Here. + * config/i370/i370.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, + BSS_SECTION_ASM_OP): Here. + * config/i386/aix386.h (INIT_SECTION_ASM_OP): Here. + * config/i386/bsd.h (ASM_BYTE_OP): Here. + * config/i386/cygwin.h (SET_ASM_OP, INT_ASM_OP): Here. + * config/i386/dgux.h (CONST_SECTION_ASM_OP): Here. + * config/i386/djgpp.h (IDENT_ASM_OP, INT_ASM_OP, SET_ASM_OP): + Here. + * config/i386/freebsd-elf.h (SET_ASM_OP): Here. + * config/i386/freebsd.h (TYPE_ASM_OP, SIZE_ASM_OP, INT_ASM_OP): + Here. + * config/i386/i386-coff.h (CTORS_SECTION_ASM_OP, + DTORS_SECTION_ASM_OP, INT_ASM_OP): Here. + * config/i386/i386-interix.h (STRING_ASM_OP, CONST_SECTION_ASM_OP, + CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INT_ASM_OP, + SET_ASM_OP): Here. + * config/i386/i386elf.h (BSS_SECTION_ASM_OP): Here. + * config/i386/netbsd.h (INT_ASM_OP): Here. + * config/i386/openbsd.h (INT_ASM_OP): Here. + * config/i386/osfrose.h (TYPE_ASM_OP, SIZE_ASM_OP, SET_ASM_OP, + IDENT_ASM_OP): Here. + * config/i386/sco5.h (ALIGN_ASM_OP, ASCII_DATA_ASM_OP, + ASM_BYTE_OP, IDENT_ASM_OP, COMMON_ASM_OP, SET_ASM_OP, + LOCAL_ASM_OP, INT_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP, STRING_ASM_OP, + SKIP_ASM_OP, GLOBAL_ASM_OP): Here. + * config/i386/seq-sysv3.h (SHARED_SECTION_ASM_OP, + SHARED_BSS_SECTION_ASM_OP): Here. + * config/i386/sequent.h (SHARED_SECTION_ASM_OP): Here. + * config/i386/sun386.h (ASM_BYTE_OP, TEXT_SECTION_ASM_OP, + DATA_SECTION_ASM_OP): Here. + * config/i386/svr3gas.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP, + CONST_SECTION_ASM_OP): Here. + * config/i386/sysv3.h (INIT_SECTION_ASM_OP): Here. + * config/i386/unix.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, + BSS_SECTION_ASM_OP): Here. + * config/i860/bsd-gas.h (ASCII_DATA_ASM_OP): Here. + * config/i860/bsd.h (ASCII_DATA_ASM_OP): Here. + * config/i860/fx2800.h (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP, + BSS_ASM_OP): Here, but use trailing spaces. + * config/i860/i860.h (ASM_BYTE_OP, TEXT_SECTION_ASM_OP, + DATA_SECTION_ASM_OP): Here. + * config/i860/paragon.h (ASCII_DATA_ASM_OP, BSS_SECTION_ASM_OP): + Here. + * config/i860/sysv3.h (ASCII_DATA_ASM_OP, CTORS_SECTION_ASM_OP, + DTORS_SECTION_ASM_OP, TDESC_SECTION_ASM_OP): Here. + * config/i860/sysv4.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, + TDESC_SECTION_ASM_OP): Here. + * config/i960/i960-coff.h (CTORS_SECTION_ASM_OP, + DTORS_SECTION_ASM_OP, INT_ASM_OP): Here. + * config/i960/i960.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): + Here. + * config/ia64/ia64.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, + BSS_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP, + UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP, + UNALIGNED_DOUBLE_INT_ASM_OP): Here. + * config/ia64/sysv4.h (ASM_BYTE_OP, STRING_ASM_OP, SKIP_ASM_OP, + COMMON_ASM_OP, ASCII_DATA_ASM_OP, INIT_SECTION_ASM_OP, + FINI_SECTION_ASM_OP, CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, + SDATA_SECTION_ASM_OP, SBSS_SECTION_ASM_OP): Here. + * config/m32r/m32r.h (SCOMMON_ASM_OP): Here. + * config/m68hc11/m68hc11.h (GLOBAL_ASM_OP): Here. + * config/m68k/auxas.h (BYTE_ASM_OP, WORD_ASM_OP, LONG_ASM_OP, + SPACE_ASM_OP, ALIGN_ASM_OP, GLOBAL_ASM_OP, SWBEG_ASM_OP, + SET_ASM_OP): Here. + * config/m68k/coff.h (BSS_SECTION_ASM_OP, CTORS_SECTION_ASM_OP, + DTORS_SECTION_ASM_OP, INT_ASM_OP): Here. + * config/m68k/crds.h (BSS_SECTION_ASM_OP): Here. + * config/m68k/dpx2.h (ASM_BYTE_OP, GLOBAL_ASM_OP): Here. + * config/m68k/hp320.h (ASCII_DATA_ASM_OP, GLOBAL_ASM_OP): Here. + * config/m68k/linux.h (BSS_SECTION_ASM_OP): Here. + * config/m68k/lynx.h (BSS_SECTION_ASM_OP): Here. + * config/m68k/m68k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, + GLOBAL_ASM_OP): Here. + * config/m68k/m68kelf.h (SWBEG_ASM_OP, BSS_ASM_OP, + BSS_SECTION_ASM_OP): Here. + * config/m68k/m68kv4.h (BSS_ASM_OP): Here. + * config/m68k/mot3300.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, + ASCII_DATA_ASM_OP, SET_ASM_OP, CTORS_SECTION_ASM_OP, + DTORS_SECTION_ASM_OP, GLOBAL_ASM_OP, ASM_BYTE_OP, ALIGN_ASM_OP, + SKIP_ASM_OP): Here. + * config/m68k/newsgas.h (SET_ASM_OP): Here. + * config/m68k/rtemself.h (INIT_SECTION_ASM_OP, + FINI_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP): Here. + * config/m68k/sgs.h (BYTE_ASM_OP, WORD_ASM_OP, LONG_ASM_OP, + SPACE_ASM_OP, ALIGN_ASM_OP, GLOBAL_ASM_OP, SWBEG_ASM_OP, + SET_ASM_OP, UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP): Here, + but use trailing spaces. + * config/m68k/tower-as.h (TEXT_SECTION_ASM_OP, + DATA_SECTION_ASM_OP, GLOBAL_ASM_OP, INIT_SECTION_ASM_OP, + FINI_SECTION_ASM_OP, CONST_SECTION_ASM_OP, BSS_SECTION_ASM_OP): + Here. + * config/m88k/dgux.h (FINI_SECTION_ASM_OP, INIT_SECTION_ASM_OP, + CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Here. + * config/m88k/m88k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, + CONST_SECTION_ASM_OP, TDESC_SECTION_ASM_OP, CTORS_SECTION_ASM_OP, + DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP, + IDENT_ASM_OP, FILE_ASM_OP, SECTION_ASM_OP, SET_ASM_OP, + GLOBAL_ASM_OP, ALIGN_ASM_OP, SKIP_ASM_OP, COMMON_ASM_OP, + BSS_ASM_OP, FLOAT_ASM_OP, DOUBLE_ASM_OP, INT_ASM_OP, SHORT_ASM_OP, + CHAR_ASM_OP, ASCII_DATA_ASM_OP, SBSS_ASM_OP, SCOMM_ASM_OP, + SDATA_SECTION_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP, INTERNAL_ASM_OP, + VERSION_ASM_OP, UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP, + PUSHSECTION_ASM_OP, POPSECTION_ASM_OP, REQUIRES_88110_ASM_OP, + ASM_BYTE_OP): Here. + * config/m88k/openbsd.h (SET_ASM_OP): Here. + * config/m88k/sysv4.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP, + CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Here. + * config/mcore/mcore-elf.h (UNALIGNED_INT_ASM_OP, + UNALIGNED_SHORT_ASM_OP, CTORS_SECTION_ASM_OP, + DTORS_SECTION_ASM_OP): Here. + * config/mcore/mcore-pe.h (CTORS_SECTION_ASM_OP, + DTORS_SECTION_ASM_OP, INT_ASM_OP): Here. + * config/mips/elf.h (TYPE_ASM_OP, SIZE_ASM_OP, + BSS_SECTION_ASM_OP): Here. + * config/mips/elf64.h (TYPE_ASM_OP, SIZE_ASM_OP): Here. + * config/mips/iris5.h (ABICALLS_ASM_OP): Here. + * config/mips/iris6.h (TYPE_ASM_OP, SIZE_ASM_OP, + POPSECTION_ASM_OP, BSS_SECTION_ASM_OP, CONST_SECTION_ASM_OP_32, + CONST_SECTION_ASM_OP_64, CTORS_SECTION_ASM_OP, + DTORS_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP): Here. + * config/mips/mips.c (ABICALLS_ASM_OP): Here. + * config/mips/mips.h (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP): + Here. + * config/mips/netbsd.h (TYPE_ASM_OP, SIZE_ASM_OP, WEAK_ASM_OP): + Here. + * config/mips/osfrose.h (SET_ASM_OP): Here. + * config/mips/sni-svr4.h (ABICALLS_ASM_OP): Here. + * config/ns32k/encore.h (SHARED_SECTION_ASM_OP): Here. + * config/ns32k/merlin.h (SHARED_SECTION_ASM_OP): Here. + * config/ns32k/ns32k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): + Here. + * config/ns32k/sequent.h (SHARED_SECTION_ASM_OP): Here. + * config/ns32k/tek6000.h (SHARED_SECTION_ASM_OP): Here. + * config/pa/pa-64.h (INT_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP): Here. + * config/pa/pa.h (ASM_STABS_OP, ASM_STABN_OP): Here. + * config/pj/pj.h (SET_ASM_OP, BSS_SECTION_ASM_OP): Here. + * config/pyr/pyr.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): + Here. + * config/romp/romp.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): + Here. + * config/rs6000/rs6000.h (SET_ASM_OP): Here. + * config/rs6000/sol2.h (ASM_STABN_OP): Here. + * config/rs6000/sysv4.h (SKIP_ASM_OP, LOCAL_ASM_OP, LCOMM_ASM_OP): + Here. + * config/sh/sh.h (SET_ASM_OP, BSS_SECTION_ASM_OP, + UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP): Here. + * config/sparc/linux.h (COMMON_ASM_OP): Here. + * config/sparc/linux64.h (COMMON_ASM_OP, + UNALIGNED_DOUBLE_INT_ASM_OP): Here. + * config/sparc/litecoff.h (BSS_SECTION_ASM_OP, + CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INT_ASM_OP): Here. + * config/sparc/lynx.h (BSS_SECTION_ASM_OP): Here. + * config/sparc/pbd.h (ASM_INT_OP): Here. + * config/sparc/sp64-elf.h (UNALIGNED_LONGLONG_ASM_OP): Here. + * config/sparc/sparc.h (ASM_BYTE_OP, TEXT_SECTION_ASM_OP, + DATA_SECTION_ASM_OP, IDENT_ASM_OP): Here. + * config/sparc/sun4gas.h (UNALIGNED_DOUBLE_INT_ASM_OP, + UNALIGNED_INT_ASM_OP, UNALIGNED_SHORT_ASM_OP): Here. + * config/sparc/sysv4.h (STRING_ASM_OP, COMMON_ASM_OP, SKIP_ASM_OP, + UNALIGNED_DOUBLE_INT_ASM_OP, UNALIGNED_INT_ASM_OP, + UNALIGNED_SHORT_ASM_OP, PUSHSECTION_ASM_OP, POPSECTION_ASM_OP, + TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP, + CONST_SECTION_ASM_OP, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP, + CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, + EH_FRAME_SECTION_ASM_OP): Here. + * config/sparc/vxsim.h (COMMON_ASM_OP): Here. + * config/spur/spur.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): + Here. + * config/tahoe/tahoe.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): + Here. + * config/v850/v850.h (SCOMMON_ASM_OP, ZCOMMON_ASM_OP, + TCOMMON_ASM_OP): Here. + * config/vax/vax.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): + Here. + * config/we32k/we32k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, + ASM_BYTE_OP): Here. + +2000-09-25 Richard Henderson + + * expmed.c (store_bit_field): Adjust last change to not consider + any word-sized field naturally aligned. + +2000-09-24 Richard Henderson + + * config/alpha/alpha.c (alpha_emit_conditional_branch): Handle + TFmode unordered compares properly. Revalidate integer compare + operands. + (alpha_emit_setcc): New. + (alpha_emit_conditional_move): Revalidate integer compare operands. + * config/alpha/alpha-protos.h: Update. + * config/alpha/alpha.md (cmpdi): Allow general operands. + (sne): Use alpha_emit_setcc. + (seq, slt, sle, sgt, sge, sltu, sleu, sgtu, sgeu): Likewise. + (sunordered, sordered): New. + +2000-09-24 Richard Henderson + + * config/ia64/ia64-protos.h: Update. + * config/ia64/ia64.c (call_multiple_values_operation): Remove. + (ia64_expand_call): New. + (ia64_expand_prologue): Emit an alloc if we need extra input + registers. + (ia64_expand_epilogue): New arg sibcall_p; don't emit the return + instruction if true. + (struct reg_flags): Add is_sibcall. + (rtx_needs_barrier): A sibcall does not use CFM et al. Ignore USEs. + (emit_insn_group_barriers): Set flags.is_sibcall. Remove hacks + for CODE_FOR_gr_spill_internal/CODE_FOR_gr_restore_internal. + * config/ia64/ia64.h (PREDICATE_CODES): Update. + * config/ia64/ia64.md (call): Use ia64_expand_call. + (call_value): Likewise. + (sibcall, sibcall_value): New. + (call patterns): Remove extra expanders; tidy. + (sibcall_epilogue): New. + (set_bsp): Remove the extra USE. Put the operand inside the UNSPEC. + +2000-09-24 Richard Henderson + + * emit-rtl.c (gen_lowpart_common): Use trunc_int_for_mode. + + * sibcall.c (skip_pic_restore): New. + (identify_call_return_value): Use it. + +2000-09-24 Mark Mitchell + + * c-tree.texi: Moved here from cp/ir.texi. Documented nested + functions. Generalize to handle both C and C++. + * Makefile.in (c-tree.info): New target. + (info): Add c-tree.info. + +Sun Sep 24 09:15:48 2000 Richard Kenner + + * expr.c (store_field): If BITSIZE is negative, use size of type. + (expand_expr, case COMPONENT_EXPR): Likewise. + +Sun 24-Sep-2000 11:40:23 BST Neil Booth + + * cpplex.c: Update TODO comment. + * cpplib.c (do_error, do_warning): Merge common code of + do_error and do_warning into do_diagnostic. Use it. + (do_diagnostic): New function. + * cpplib.h: Fix comment typo. + +2000-09-24 Joseph S. Myers + + * c-common.c (check_format_info): Warn for a wide character string + used as a non-wide format argument. + +2000-09-24 Joseph S. Myers + + * builtins.def (BUILT_IN_LLABS): Add. + * builtins.c (expand_builtin): Also abort on BUILT_IN_LLABS. + * c-common.c (c_common_nodes_builtins): Create builtin functions + __builtin_llabs, and plain llabs unless no_nonansi_builtins + outside of C99 mode. + (expand_tree_builtin): Handle BUILT_IN_LLABS. + +Sat 23-Sep-2000 22:39:18 BST Neil Booth + + * cpphash.h (CPP_RESERVE, CPP_PUTS_Q, CPP_PUTS, CPP_PUTC_Q, + CPP_PUTC, DUMMY_TOKEN, NO_DUMMY_TOKEN): Delete. + * cpplex.c (_cpp_expand_token_space, _cpp_init_toklist, + _cpp_free_toklist): No need to worry about extra dummy token + at the start of token lists any more. + (trigraph_ok): Only warn outside comments. + (skip_block_comment): Set and clear lexing_comment. + (skip_line_comment): Take a cpp_reader not cpp_buffer. + Set and clear lexing_comment. + (parse_number): Handle leading '.' indicated by pfile->seen_dot. + (check_long_token): Delete. + (lex_percent, lex_dot): New subroutines of lex_token to + handle lexing of '.' and '%' without lookback. + (lex_token): Use lex_dot and lex_percent. + (lex_line): Don't check for LIST_OFFSET. + (_cpp_init_input_buffer): Update for new _cpp_init_toklist. + * cpplib.c (_cpp_parse_assertion): Similarly. + (cpp_push_buffer): Initialize extra_char. + * cpplib.h (LIST_OFFSET): Delete. + (struct cpp_buffer): New member extra_char. + (struct lexer_state): New members lexing_comment and seen_dot. + +2000-09-23 Jason Merrill + + * config/rs6000/x-aix41 (CLIB): Define here. + * config/rs6000/t-aix43: Not here. + * config/rs6000/t-aix41: Or here. Remove. + * configure.in: Don't use it. + +2000-09-22 Jason Merrill + + * configure.in: Add test for HAVE_LD_DWARF_LINKONCE. + * toplev.c: Use it to initialize flag_eliminate_dwarf2dups. + * config.in: Regenerate. + + * configure.in: Fix checks for assembler features when using a + one-tree assembler that has not yet been built. + Fix --disable-threads. + +2000-09-19 Geoff Keating + + * stmt.c (expand_asm_operands): Allow # in constraints. + +2000-09-22 Jason Merrill + + * c-lex.c (skip_white_space): Just treat CRs as horizontal whitespace. + + * dbxout.c (dbxout_symbol_name): Just use DECL_NAME for + function-local names. + +2000-09-22 Brad Lucier + Mark Mitchell + + * toplev.c (warn_disabled_optimization): Declare new warning flag. + * flags.h (warn_disabled_optimization): Add it here. + * gcse.c (gcse_main): Add warning when disabled. + * invoke.texi: Document -Wdisabled-optimization. + +2000-09-21 Jason Merrill + + * dwarf2out.c (add_const_value_attribute): Multiply by length, not 4. + + * dwarf2out.c (tree_add_const_value_attribute): New fn. + (gen_variable_die): Call it for non-definitions. + + * dwarf2out.c (die_struct): Add die_mark field. + (mark_dies, unmark_dies): New fns. + (clear_die_sizes): Remove. + (print_die): Check die_symbol rather than die_offset. + (build_abbrev_table, output_pubnames, output_aranges): Check + die_mark rather than die_offset. + (output_comp_unit): Move calc_die_sizes after build_abbrev_table. + Call mark_dies. + +Thu 21-Sep-2000 18:19:05 BST Neil Booth + + * cppfiles.c (lookup_include_file): Rename to open_file. + Always create a splay tree value, even on syscall failures. + Negative entries indicated by fd == -2. + Re-open files closed in the meantime. + (_cpp_fake_include): Create a negative splay tree entry. + (find_include_file, cpp_read_file): Update for function name + change. + * gcc.gd/cpp/mi4.c: Testcase. + +2000-09-21 Nick Clifton + + * config/arm/t-arm-elf (MULTILIB_DIRNAMES): Enable multilibs for + ARM and THUMB modes. + + * config/mcore/mcore.c: Fix compile time warnings. + * config/mcore/mcore-protos.h: Fix compile time warnings. + +2000-09-20 J. David Anglin + + * configure.in: Correct test of gcc_cv_glibc. + * configure: Rebuilt. + * config.in: Rebuilt. + +2000-09-20 Kaveh R. Ghazi + + * builtins.c (expand_builtin_fputs): Also expand when length!=1. + (expand_builtin): Handle BUILT_IN_FWRITE. + + * builtins.def (BUILT_IN_FWRITE): New entry. + + * c-common.c (c_common_nodes_and_builtins): Declare __builtin_fwrite. + +Wed Sep 20 15:39:14 2000 Richard Kenner + + * gcc.c (modify_target): New variable and struct. + (process_command): Handle MODIFY_TARGET_NAME. + * tm.texi (MODIFY_TARGET_NAME): Add documentation for new macro. + * config/pa/pa.h (MODIFY_TARGET_NAME): New macro. + + * c-decl.c (finish_decl): Add else's to avoid referencing + TYPE_DOMAIN of an ERROR_MARK. + +Wed Sep 20 21:44:31 2000 Denis Chertykov + + * config/avr/avr.c (adjust_insn_length): Adjust lengths of + `reload_in*' insns. + +2000-09-19 Marek Michalkiewicz + + * config/avr/avr.md (neghi2): Add alternative for input and output + operands in different registers, as in negsi2. + (*negsi2): Remove '*' from the name. Use "movw" if available. + +2000-09-19 Jim Wilson + + * config/ia64/crtbegin.asm (__dso_handle): Delete use of + HAVE_GAS_HIDDEN macro. + +Tue 19-Sep-2000 22:38:57 BST Neil Booth + + * cpplex.c (lex_line): Drop the EOF token for unknown + directives in assembler. + +2000-09-19 David Edelsohn + + * configure.in: Allow enable_threads_flag value of "aix". Define + thread_file as "aix" for AIX 4.3 and above. + * configure: Regenerated. + + * gthr-aix.h: New file. + + * rs6000/t-aix43: Replace soft-float multilib with pthread. + Remove 403 processor multilib match. Fix rios2 processor multilib + match. + + * rs6000/aix.h (ASM_DECLARE_FUNCTION_NAME): Use function_section + to return to appropriate csect. + +2000-09-19 Kaveh R. Ghazi + + * builtins.c (is_valid_printf_arglist, expand_builtin_printf): New + functions. + (expand_builtin_fputs): Set `target' parameter for `expand_expr'. + (expand_builtin): Handle BUILT_IN_PUTCHAR, BUILT_IN_PUTS and + BUILT_IN_PRINTF. + + * builtins.def (BUILT_IN_PUTCHAR, BUILT_IN_PUTS, BUILT_IN_PRINTF): + New entries. + + * c-common.c (init_function_format_info): Handle __builtin_printf. + Set `check_function_format_ptr'. + (c_common_nodes_and_builtins): Set `puts_ftype' and + `printf_ftype'. Declare __builtin_putchar, __builtin_puts, + __builtin_printf and printf. + + * tree.c, tree.h (check_function_format_ptr): Declare. + +Tue 19-Sep-2000 18:26:57 BST Neil Booth + + * cppfiles.c (read_include_file): Take no special action for + zero-length files. + +2000-09-19 Bernd Schmidt + + * final.c (insn_current_reference_address): Use INSN_SHUID of seq + rather than that of branch. + (shorten_branches): Don't increment insn_current_address twice. + + Undo most of the Wed Jan 27 23:39:53 1999 patch: + * loop.h (struct induction): Delete members derived, ix and last_use. + (struct loop_ivs): Delete members first_increment_giv and + last_increment_giv. + * loop.c (verify_dominator, find_life_end, cmp_recombine_givs_stats, + recombine_givs): Delete functions. + (find_and_verify_loops): Don't initialize cont_dominator. + (strength_reduce): Lose code to try to find bivs that can be + expressed as givs of another biv, and to convert biv increments + into givs. + Lose loop_scan_start variable, always use loop->scan_start. + Don't call recombine_givs. Don't handle derived givs. + (record_giv): Don't initialize derived and last_use fields. + (biv_eliminiation_giv_has_0_offset): Lose code to handle derived + givs. + * unroll.c (derived_regs): Delete static variable. + (unroll_loop): Don't initialize it. + (copy_loop_body): Lose code to handle derived givs. + (find_splittable_givs): Don't check for givs made from biv + increments. + Don't set derived_regs. + + Fix misapplied earlier patch: + * config/sh/sh.md (floatsisf_ie): Reenable. Remove explicit reference + to fpul. + (floatsisf2): Generate floatsisf_ie by default. + (floatsisf_i4): Conditional on TARGET_SH4. + + (floatsisf2, floatsidf2, extendsfdf2): Also use reg_no_subreg_operand + predicate for the expanders. + +2000-09-19 Richard Henderson + + * config/i386/i386.h (CPP_CPU_SPEC): Define i586 and i686 symbols + in addition to pentium and pentiumpro symbols. + (CPP_CPU_DEFAULT_SPEC): Likewise. + + * c-typeck.c (c_expand_asm_operands): Restore the output tree + after expanding. + + * stmt.c (expand_expr_stmt): Only call warn_if_unused_value + if the tree has side effects. + (warn_if_unused_value): Do not warn about void constructs. + + * c-decl.c (poplevel): Invoke warn_about_unused_variables. + + * unroll.c (copy_loop_body): Update LABEL_NUSES before + calling invert_jump. + +2000-09-18 Geoff Keating + + * combine.c (can_combine_p): Don't substitute an ASM_OPERANDS + into anything. + +2000-09-18 Kaveh R. Ghazi + + * Makefile.in (c-common.o): Depend on diagnostic.h. + + * c-common.c: Include diagnostic.h. + (tfaff): Delete. + (status_warning): New function. + (check_format_info, maybe_read_dollar_number, check_format_types, + finish_dollar_format_checking, check_function_format): Accept a + `status' parameter. All callers changed. + + * c-common.h (check_function_format): Accept a `status' parameter. + + * c-typeck.c: Update call to `check_function_format'. + +2000-09-18 Richard Henderson + + * c-decl.c (c_expand_body): Call mark_varargs before + expand_function_start. + +2000-09-18 Geoff Keating + + * config/rs6000/eabi-cn.asm: Use /**/ to delimit comments, not #. + * config/rs6000/eabi-ci.asm: Likewise. + +2000-09-18 Richard Henderson + + * emit-rtl.c (init_emit_once): Initialize const_tiny_rtx + for BImode. + +2000-09-18 Jim Wilson + + * unroll.c (loop_iterations): Pass increment to extend_for_giv_value + before passing it to fold_rtx_mult_add. + + * unroll.c (final_giv_value): Pass increment through + extend_value_for_giv before passing it to emit_iv_add_mult. + + * function.c (fixup_var_refs_1, case ZERO_EXTRACT): If we have a + paradoxical subreg, then directly substitute the replacement and + return. + +Mon 18-Sep-2000 22:12:44 BST Neil Booth + + * cpp.texi: Update documentation, including some clarifications, + the treatment of various newline combinations, and space between + backslash and newline. + +Mon Sep 18 21:00:47 2000 J"orn Rennecke + + * sdbout.c (PUT_SDB_DEF, PUT_SDB_TAG, PUT_SDB_EPILOGUE_END): + Replace ASM_OUTPUT_LABELREF with assemble_name. + +Mon Sep 18 20:26:50 2000 J"orn Rennecke + + * sh.c (addsubcosts): CONST is not cheap. + (find_barrier): For Sh1, take alignment after jumps into account. + +2000-09-15 Andrew Haley + + * toplev.c (rest_of_compilation): Call purge_hard_subreg_sets to + remove all SETs of SUBREGs of hard registers. + * function.c (purge_hard_subreg_sets): New function. + (purge_single_hard_subreg_set): New function. + * rtl.h: (purge_hard_subreg_sets): New function. + +2000-09-18 Richard Henderson + + * config/ia64/ia64-protos.h: Update. + * config/ia64/ia64.c (signed_inequality_operator): New. + (ia64_expand_compare): New. + (ia64_register_move_cost): Handle PR_REGS moves. + (ia64_secondary_reload_class): Require a GR when moving to a PR. + (struct reg_write_state): Add written_by_and/or. + (struct reg_flags): Add is_and/or. + (rws_update): Set them. + (rws_access_regno): Test them to allow parallel comparisons. + (rtx_needs_barrier): Recognize parallel comparisons. + (emit_insn_group_barriers): Set prev_insn after a call stop bit. + Call recog_memoized; ignore pred_rel_mutex. + (emit_predicate_relation_info): Don't call find_basic_blocks here. + (ia64_reorg): Do it here instead. + * config/ia64/ia64.h: s/CCmode/BImode/g + (MODES_TIEABLE_P): Don't tie BImode. + (PREFERRED_RELOAD_CLASS): Do not reload operations into AR regs. + (CONST_COSTS): Pick sensible values for CONST_INT based on context. + (RTX_COSTS): Make multiply 4 insns. + (MEMORY_MOVE_COST): New. + (PREDICATE_CODES): Update. + * config/ia64/ia64.md: s/CCmode/BImode/g + (movcci, movbi): New. + (andbi3, andcmbi3, iorbi3, iorcmbi3, one_cmplbi2): New. + (cmpsi_and_0, cmpsi_and_1, cmpsi_andnot_0, cmpsi_andnot_1): New. + (cmpdi_and_0, cmpdi_and_1, cmpdi_andnot_0, cmpdi_andnot_1): New. + (tbit_and_0, tbit_and_1, tbit_and_2, tbit_and_3): New. + (cmpsi_or_0, cmpsi_or_1, cmpsi_orcm_0, cmpsi_orcm_1): New. + (cmpdi_or_0, cmpdi_or_1, cmpdi_orcm_0, cmpdi_orcm_1): New. + (tbit_or_0, tbit_or_1, tbit_or_2, tbit_or_3): New. + (mulsi, muldi): Use xmpy not xma. + (cmpbi): New. + (movcc, movcc_internal): Remove. + (branch expanders): Use ia64_expand_compare. + (setcc expanders): Likewise. + (cmov insns): Use move_operand and ia64_move_ok. + (pred_rel_mutex): Use unspec not unspec_volatile. Prevent the + scheduler from moving it past a use. + * config/ia64/build.hacks: Remove. + +Mon 18-Sep-2000 19:21:35 BST Neil Booth + + * cpphash.h (HASHSTEP): Take character rather than pointer + to character. + (_cpp_check_directive, _cpp_check_linemarker): Update prototypes. + + * cpphash.c (cpp_loookup): Update for new HASHSTEP. + + * cpplex.c (auto_expand_name_space, trigraph_replace, + backslash_start, handle_newline, parse_name, INIT_TOKEN_STR, + IMMED_TOKEN, PREV_TOKEN_TYPE, PUSH_TOKEN, REVISE_TOKEN, + BACKUP_TOKEN, BACKUP_TRIGRAPH, MIGHT_BE_DIRECTIVE, + KNOWN_DIRECTIVE): Delete. + + (handle_newline, check_long_token, skip_escaped_newlines, + unterminated): New functions. + (ACCEPT_CHAR, SAVE_STATE, RESTORE_STATE): New macros. + + (parse_identifier): Was parse_name, new implementation. + (skip_line_comment, skip_block_comment, skip_whitespace, + parse_number, parse_string, trigraph_ok, save_comment, + adjust_column, _cpp_get_line): New implementations. + + (lex_token): New function. Lexes a token at a time, looking + forwards. Contains most of the guts of the old lex_line. + (lex_line): New implementation, using lex_token to obtain + individual tokens. + (cpp_scan_buffer): Use the token's line, not the list's line. + + * cpplib.c (_cpp_check_directive, _cpp_check_linemarker): + New implementations. + (do_assert): Don't bother setting the answer's list's line. + (cpp_push_buffer): Initialize new pfile and read_ahead members + of struct cpp_buffer. + + * cpplib.h (cppchar_t): New typedef. + (struct cpp_buffer): read_ahead, pfile and col_adjust are + new members. + (struct lexer_state): New structure that determines the state + and behavior of the lexer. + (IN_DIRECTIVE, KNOWN_DIRECTIVE): New macros. + (struct cpp_reader): New member "state". Rename + multiline_string_line and multiline_string_column. Delete + col_adjust, in_lex_line members. + (CPP_BUF_COLUMN): Update. + +2000-09-18 Richard Henderson + + * combine.c (simplify_comparison): Shift a NOT out of a single + bit test. + + * combine.c (if_then_else_cond): Canonicalize BImode true to + STORE_FLAG_VALUE. + * explow.c (trunc_int_for_mode): Likewise. + + * combine.c (combine_simplify_rtx): Use gen_unary to distribute + the NOT for De Morgan's rule. + * simplify-rtx.c (simplify_unary_operation): Simplify a BImode NOT + of a comparison to the reverse comparison. + + * combine.c (try_combine): Allow split to create a single insn. + + * machmode.def: Add BImode. Add a column for bitsize. + * machmode.h (DEF_MACHMODE): Adjust for extra column. + (GET_MODE_BITSIZE): Use it. + * rtl.c (DEF_MACHMODE): Adjust for extra column. + (mode_bitsize): New. + (mode_mask_array): Use bitsize. + * combine.c (combine_simplify_rtx): Require inner and outer + modes to match on nonzero_bits optimizations. + +2000-09-18 Bernd Schmidt + + * reload1.c (forget_old_reloads_1): If a hard reg is stored, clear + its entry in spill_reg_store. + * config/sh/lib1funcs.ams (movstr_i4 functions): Always compile in. + * sh.c (reg_no_subreg_operand): New function. + * sh-protos.h (reg_no_subreg_operand): Declare it. + * sh.h (PREDICATE_CODES): Add it. + * sh.md (floatsisf2_i4, floatsidf2_i, extendsfdf2_i4): Use it for + input operand that needs to be in fpul. + (fix_truncsfsi2, fix_truncsfsi2_i4): Use register_operand for output. + * sh.c (find_barrier): Take into account that machine_dependent_reorg + might add new insns. + +2000-09-18 Alexandre Oliva + + * config/sh/sh.c (sh_expand_prologue): Mark GOTaddr2picreg as + MAYBE_DEAD. + (sh_expand_epilogue): Take the PIC register into account when + computing the frame size. + + * config/sh/sh.c (nonpic_symbol_mentioned_p): Check LABEL_REFs. + * config/sh/sh.md (sym_label2reg, symPLT_label2reg): Protect + LABEL_REFs with a PIC-safe unspec. + +2000-09-18 Joseph S. Myers + + * c-common.c (check_format_info): Properly save the argument + number and parameter for $ operand number formats in case width + and precision arguments are also used. Allow printf width and + precision arguments to have operand numbers even if none was + specified for the main format, since this is OK for %*.*m. Only + object to missing $ operand number if the format used requires an + argument. + +2000-09-18 Joseph S. Myers + + * c-common.c (format_char_info): Add 'W' flag to comment. + (print_char_table, scan_char_table): Use it. + (check_format_info): Use the 'W' flag to determine whether a + format argument is written into. + +2000-09-18 Joseph S. Myers + + * c-common.c (check_format_types): Reorganize and clean up, + checking earlier for ERROR_MARKs and making cur_type into its + TYPE_MAIN_VARIANT where convenient. + +2000-09-18 Joseph S. Myers + + * gcc.c (cpp_options): Add specs for __STDC_HOSTED__. + +2000-09-18 Bernd Schmidt + + * optabs.c (emit_libcall_block): Set CONST_CALL_P for the call. + + * i386-protos.h (ix86_init_builtins, ix86_expand_builtin): Declare. + * i386.c (struct builtin_description): New. + (bdesc_comi, bdesc_2arg, bdesc_1arg): New arrays. + (mmx_reg_operand): Declare MODE arg as unused. + (ix86_expand_sse_comi, ix86_expand_sse_compare, safe_vector_operand, + ix86_expand_unop1_builtin, ix86_expand_unop_builtin, + ix86_expand_binop_builtin, ix86_expand_store_builtin, + ix86_init_builtins, ix86_expand_builtin): New functions. + * i386.h (ix86_builtins): New enumeration. + (MD_INIT_BUILTINS, MD_EXPAND_BUILTIN): New macros. + * i386.md (attr length_immediate): 0 for mmx/sse types. + (attr prefix_0f): 1 for mmx/sse types. + (setcc_2): Remove "*" so we get gen_setcc_2. + (emms): Account for changed register numbering. Set "memory" attr + to unknown. + (sfence): Set "memory" attr to unknown. + +2000-09-18 Andreas Jaeger + + * configure.in: Define _GNU_SOURCE only when using the GNU C + Library. + * configure: Regenerated. + * config.in: Regenerated. + +2000-09-17 Mark Mitchell + + * cppinit.c (cpp_init): Don't use ANSI prototypes. + * flow.c (flow_dump_loop): Likewise. + (flow_loops_dump): Likewise. + + * c-typeck.c (c_start_case): Fix typo. + +2000-09-17 Joseph S. Myers + + * c-decl.c (grokdeclarator): Don't give a warning about defaulting + to int for plain complex which defaults to complex double. Do + warn about defaulting to complex double if pedantic. Warn about + complex integer types if pedantic. Warn about complex types if + pedantic and not in C99 mode. + * c-typeck.c (build_unary_op): If pedantic, warn about use of ~ + for complex conjugation. + +2000-09-17 Joseph S. Myers + + * contrib.texi: Update my entry. + +Sun Sep 17 18:48:32 2000 Denis Chertykov + + * config/avr/avr.md (mcu_enhanced): New attribute. + (mcu_mega): Likewise. + (extendhisi2): Use mcu_enhanced. + (zero_extendhisi2): Likewise. + (call_insn): Use mcu_enhanced and mcu_mega. + (call_value_insn): Likewise. + (*sbrx_branch): Use mcu_mega. + (*sbrx_and_branchsi): Likewise. + (*sbrx_and_branchhi): Likewise. + (*tablejump_lib): Likewise. + +Sun Sep 17 10:46:17 2000 Richard Kenner + + * alias.c (true_dependence): Allow non-unchanging read to conflict + with unchanging write. + + * expr.c (store_constructor_field): Accept ALIAS_SET arg. + (store_constructor): Pass alias_set to it. + + * c-decl.c (grokdeclarator): Reorder tests to avoid looking at + TYPE_MAIN_VARIANT of ERROR_MARK. + * c-lex.c (readescape): Avoid using printf syntax we don't recognize. + + * simplify-rtx.c (simplify_unary_operation): Add cases + FLOAT_EXTEND and FLOAT_TRUNCATE to ones that return 0. + +2000-09-17 Bernd Schmidt + + * expr.h (emit_library_call, emit_library_call_value): Delete + declarations. + * rtl.h (enum libcall_type): New. + (emit_library_call, emit_library_call_value): Change fn_type arg to + be of type enum libcall_type. + * calls.c: Likewise for the function definitions. Several callers + throughout changed to use the new enumeration appropriately. + (emit_library_call_value_1): Likewise. Put back code to make libcall + blocks of equal form, but only use it for the two new higher + enumeration values. + +2000-09-16 Mark Mitchell + + Convert the C front-end to use function-at-a-time mode. + * c-common.h: Include splay-tree.h. + (C_DECLARED_LABEL_FLAG): New macro. + (struct language_function): Add x_scope_stmt_stack and + x_function_name_declared_p. + (RECHAIN_STMTS): Move definition. + (lang_statement_code_p): Likewise. + (lang_expand_stmt): Likewise. + (lang_expand_decl_stmt): New variable. + (lang_expand_function_end): Likewise. + (current_scope_stmt_stack): New function. + (add_decl_stmt): Likewise. + (add_scope_stmt): Likewise. + (mark_stmt_tree): Likewise. + (struct c_lang_decl): New structure. + (DECL_SAVED_TREE): Define. + (c_mark_lang_decl): New function. + (c_expand_start_cond): Change prototype. + (c_finish_then): New function. + (c_finish_else): Likewise. + (current_function_name_declared): Remove. + (set_current_function_name_declared): Likewise. + (mark_c_language_function): Declare. + (case_compare): Likewise. + (c_add_case_label): Likewise. + (c_expand_expr): Likewise. + (c_safe_from_p): Likewise. + * c-common.c (lang_expand_function_end): New variable. + (struct if_elt): Add if_stmt. + (c_expand_start_cond): Add the if-statement to the statement-tree, + rather than generating RTL. + (c_finish_then): New function. + (c_expand_start_else): Don't generate RTL. + (c_finish_else): New function. + (c_expand_expr_stmt): Don't generate RTL. + (statement_code_p): Add SCOPE_STMT. + (case_compare): New function. + (c_add_case_label): Likewise. + (mark_stmt_tree): Likewise. + (c_mark_lang_decl): Likewise. + (mark_c_language_function): Likewise. + (c_expand_expr): Likewise. + (c_safe_from_p): Likewise. + * c-decl.c (c_stmt_tree): New variable + (c_scope_stmt_stack): Likewise. + (c_function_name_declared_p): Likewise. + (lang_expand_expr_stmt): Remove. + (poplevel): Don't call output_inline_function for nested + functions. + (pushdecl): Don't set DECL_CONTEXT for a local declaration of an + `extern' function. + (redeclaration_error_message): Change means of computing whether + or not a function is nested. + (lookup_label): Don't call label_rtx. + (init_decl_processing): Add more GC roots. + (start_decl): Add DECL_STMTs to the statement-tree, rather than + calling rest_of_decl_compilation. + (finish_decl): Don't call expand_decl. + (store_parm_decls): Begin the statement-tree, but don't generate + RTL. + (finish_function): Tie off the statement-tree. Call c_expand_body + if appropriate. + (c_expand_body): New function. + (push_c_function_context): Save more information. + (pop_c_function_contxt): Likewise. + (copy_lang_decl): Now that we use DECL_LANG_SPECIFIC, copy it. + (lang_mark_tree): Mark it. + (current_stmt_tree): Adjust. + (current_scope_stmt_stack): New function. + (do_case): Remove. + (set_current_name_declared): Likewise. + (c_begin_compound_stmt): Define. + (c_expand_decl_stmt): Likewise. + * c-lang.c: Include rtl.h and expr.h. + (lang_init): Set more language-specific hooks. + * c-lex.c: Include expr.h. + * c-parse.in: Changes throughout to add statements to the + statement-tree, rather than generating RTL after every statement. + * c-semantics.c (lang_expand_decl_stmt): Define. + (add_decl_stmt): New function. + (add_scope_stmt): Likewise. + (finish_stmt_tree): Tweak. + (genrtl_expr_stmt): Likewise. + (genrtl_decl_stmt): Handle local labels, and call + lang_expand_decl_stmt if required. + (genrtl_for_stmt): Fix line-number handling. + (genrtl_case_label): Handle cleanups. + (genrtl_asm_stmt): Don't call combine_strings. + (genrtl_compound_stmt): Simplify. + (expand_stmt): Handle SCOPE_STMTs. + * c-tree.h (struct lang_decl): New structure. + (C_DECLARED_LABEL_FLAG): Remove. + (c_begin_compound_stmt): Declare. + (c_expand_decl_stmt): Likewise. + (c_expand_start_case): Rename to c_start_case. + (c_finish_case): New function. + * c-typeck.c (start_init): Tweak setting of + constructor_incremental. + (c_expand_asm_operands): Tweak error-handling. Add to the + statement-tree. + (c_expand_return): Add to the statement-tree. + (c_expand_start_case): Rename to ... + (c_start_case): ... this. + (struct c_switch): New type. + (switch_stack): New variable. + (do_case): Simplify. + (c_finish_case): New function. + * dependence.c: Include expr.h. + (enum dependence_type): Change spelling of enumerals. + (check_node_dependence): Adjust. + * expr.h (lang_safe_from_p): Declare. + (safe_from_p): Likewise. + * expr.c (lang_safe_from_p): New variable. + (safe_from_p): Give it external linkage. Use lang_safe_from_p. + * stmt.c (expand_expr_stmt): Avoid clobberring of last_expr_type. + * toplev.c (rest_of_decl_compilation): Robustify. + * tree.c (contains_placeholder_p): Likewise. + * Makefile.in: Update dependencies. + * objc/objc-act.h: Adjust calculation of value for dummy_tree_code. + * objc/objc-act.c: Include rtl.h, expr.h, and c-common.h. + (objc_expand_function_end): New function. + (finish_method_def): Use it. + (init_objc): Initialize more language-specific hooks. + * objc/Make-lang.in: Update dependencies. + +2000-09-16 Geoffrey Keating + + * configure.in: Define macros that affect features before + testing for features. Don't define _XOPEN_SOURCE. + * configure: Regenerated. + * config.in: Regenerated. + +Sat Sep 16 19:42:50 EDT 2000 John Wehle (john@feith.com) + + * rtlanal.c (rtx_varies_p): Volatile asms vary. + (rtx_unstable_p): Restructure code. Volatile asms + are unstable. + +Sat Sep 16 14:35:55 2000 Richard Kenner + + * function.h (no_debugging_symbols): New field. + * integrate.c (save_for_inline): Renamed from save_for_inline_nocopy. + Initialize no_debugging_symbols. + (output_inline_function): Save and restore write_symbols and set from + no_debugging_symbols. + * toplev.c (rest_of_compilation): Call save_for_inline. + * tree.h: Update comment. + + * stor-layout.c (place_field): Don't do anything if field or + its type are ERROR_MARK. + +Sat Sep 16 19:14:00 2000 Laurynas Biveinis + + * cppfiles.c (purge_cache): Use munmap only if MMAP_THRESHOLD defined. + (read_include_file): Ensure inc->mmaped is initialized. + +2000-09-16 Richard Henderson + + * cppiles.c (purge_cache): Use PTR not caddr_t. + +2000-09-16 Hans-Peter Nilsson + + * gcc.c: In description for %{ + + * configure.in: Always define _GNU_SOURCE to make interfaces + visible that were hidden by only defining _GNU_SOURCE. + * configure: Regenerated. + +Sat 16-Sep-2000 08:13:45 BST Neil Booth + + * cpplex.c (push_macro_context): Set an argument's level after + calling parse_args. We could loop infinitely otherwise. + +2000-09-15 Tom Tromey + + * configure, config.in: Rebuilt. + * configure.in: Check for iconv.h. Define _XOPEN_SOURCE. + +2000-09-15 Greg McGary + + * cppmacro.c (check_trad_stringification): Check token + text pointers against limit before dereferencing. + +2000-09-15 Joseph S. Myers + + * c-common.c (format_wanted_type): New structure. + (check_format_types): New function. + (check_format_info): Pass all checking of types of format + arguments, including width and precision arguments, to this new + function. + +2000-09-15 Gerald Pfeifer + + * BUGS: Remove file. + +2000-09-15 Jakub Jelinek + + * config/alpha/alpha.c (override_options): ev6 cache latencies + from Richard Henderson. Don't allow -mmemory-latency=L0. + + * config/alpha/alpha.h (TARGET_CPU_EV5, TARGET_CPU_EV6): Define. + (TARGET_OPTIONS): Add tune=. + (alpha_tune_string): Declare. + * config/alpha/alpha.c (override_options): Add cpu_table. + Use alpha_cpu_string first to set both alpha_cpu and target_flags + and then alpha_tune_string to set alpha_cpu only. + Replace tests for PROCESSOR_EV* with TARGET_CPU_EV* tests. + * config/alpha/elf.h (ASM_FILE_START): Likewise. + * config/alpha/osf.h (ASM_FILE_START): Likewise. + * config/alpha/openbsd.h (ASM_FILE_START): Likewise. + +Fri Sep 15 19:45:55 MET DST 2000 Jan Hubicka + + * i386-protos.h (no_comparison_operator, uno_comparison_operator): + Remove. + (ix86_comparison_operator, ix86_cc_mode): Declare + * i386.h (CCGC, CCGCO): New modes. + (SELECT_CC_MODE): Move offline to .... + * i386.c (ix86_cc_mode): .... here; use new modes. + (ix86_comparison_operator): New. + (fcmov_comparison_operator): Ensure proper mode. + (put_condition_mode): More sanity checking. + (ix86_match_ccmode): Handle new modes. + (ix86_expand_fp_compare): GEU requires CCmode. + (ix86_expand_strlensi_unroll_1): Use emit_cmp_and_jump_insn instead of + doing it by hand. + * i386.md (cmp?i_ccz_1): Remove + (cmp?i_ccno_1): Use ix86_match_ccmode. + (cmp?i_minus_1): New. + (cmpsi_1): New expander. + (cmpqi_ext_1): Use match_ccmode + (cmpqi_ext_3): New expander. + (cmpqi_ext_3_insn): Rename from cmpqi_ext_3. + (cmpqi_ext_4): Use match_ccmode. + (add?i_?): Use match_ccmode. + (add?i_6): New. + (test?i_ccz_1): Remove + (test?i_1): New. + (testsi_ccno_1, testqi_ccz_1, testqi_ext_ccno_0): New expander. + (testqi_ext_0): Use ix86_match_ccmode. + (*xorqi_cc_ext_1): Use ix86_match_ccmode. + (xorqi_cc_ext_1): New expander. + (shift patterns): Use CCGOCmode for all shifts except for sar. + (setcc_?, jcc_?, miv?icc_nic): Use ix86_comparison_operator. + (setcc_3, jcc_3, miv?icc_c): Remove. + +2000-09-15 Will Cohen + + * dwarf2out.c (add_const_value_attribute): Changed array into a + xmalloced object, so it exists after function exit. + (free_AT): Added case for dw_val_class_float to free allocated + memory. + +2000-09-15 Kazu Hirata + + * config/i386/i386.md: Fix a comment typo. + * gcc.c: Fix formatting. + +2000-09-15 Bernd Schmidt + + * optabs.c (emit_libcall_block): If target is a user variable, + copy to a temporary first. + * expr.c (convert_move): When generating a libcall, make a libcall + block. + * calls.c (emit_library_call_value_1): Don't create a libcall + sequence here; our caller will in most cases do it. + + * sh.h (SECONDARY_INPUT_RELOAD_CLASS): Handle moving T, MACL or + MACH into FPUL. + (SECONDARY_OUTPUT_RELOAD_CLASS): Similar case. + * sh.md (reload_outsf): Generate recognizable patterns for + TARGET_SH3E. + (floatsisf2, floatsisf2_ie, floatsisf2_i4, fix_truncsfsi2, + fix_truncsfsi2_i4, fixsfsi, floatsidf2, floatsidf2_i, fix_truncdfsi2, + fix_truncdfsi2_i, extendsfdf2, extendsfdf2_i4, truncdfsf2, + truncdfsf2_i4): Change not to use explicit references to fpul. + (floatsisf2_ie): Remove USE of fpscr. + (floatsisf2): Change default expansion to match this. + (fix_truncsfsi2_i4_2, fix_truncdfsi2_i4 & splitters): Comment out + unused patterns. + +2000-09-15 Richard Henderson + + * expmed.c (store_bit_field): Consider naturally aligned + memory for direct reference. + +2000-09-15 Richard Henderson + + * config/alpha/alpha.c (alpha_expand_unaligned_load): Force all + AND addresses into alias set 0. + (alpha_expand_unaligned_store): Likewise. + (alpha_expand_unaligned_load_words): Likewise. + (alpha_expand_unaligned_store_words): Likewise. + +2000-09-15 Bernd Schmidt + + * config/sh/sh.h (CPP_SPEC): For -m4-nofpu, define __SH4_NOFPU__. + * config/sh/lib1funcs.asm (movstr_i4): Also compile if __SH4_NOFPU__ + is defined. + * config/mips/mips.c (mips_va_arg): Args passed by reference have a + rsize of UNITS_PER_WORD. + +Fri 15-Sep-2000 06:49:07 BST Neil Booth + + * cpplex.c (ON_REST_ARG): Correct the test. + (maybe_paste_with_next): Duplicate a token that fail pasting, + and clear its PASTE_LEFT flag, so that nested pasting attempts + do not occur. + +2000-09-14 Richard Henderson + + * calls.c (precompute_register_parameters): Use COSTS_N_INSNS, not 2. + * cse.c (rtx_cost): Likewise. + * optabls.c (expand_binop): Likewise. + (expand_twoval_binop, prepare_cmp_insn): Likewise. + * regclass.c (copy_cost): Likewise. + * reload1.c (reload_cse_move2add): Likewise. + +2000-09-14 Joseph S. Myers + + * c-parse.in (reswords): Add _Complex. + +2000-09-14 J. David Anglin + + * gcc.1: Delete documentation for -undef preprocessor option. + +2000-09-14 Alexandre Oliva + + * config/sh/sh.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP, + STARTFILE_SPEC, ENDFILE_SPEC): Remove define. + * config/sh/elf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): + Remove undefine before config/elfos.h. + * config/sh/t-sh (EXTRA_MULTILIB_PARTS): Comment out. + +2000-09-14 Kazu Hirata + + * invoke.texi (H8/300 Options): Add -ms2600. + * config/h8300.c (h8300_init_once): Output an error when -ms2600 + is used without -ms. + * config/h8300.h (TARGET_MAC): New. + (TARGET_SWITCHES): Add -ms2600 and -mno-s2600. + (CONDITIONA_REGISTER_USAGE): Disable the mac register on any + machine other than H8S/2600. + * config/h8300.md: Accept mac instructions on the H8S/2600 instead + of the H8S/2000. + +2000-09-14 Alexandre Oliva , Bernd Schmidt + + * reload.c (find_reloads_address_1): Generate reloads for auto_inc + pseudos that refer to the original pseudos, not only to their + equivalent memory locations. + +Thu Sep 14 12:10:16 2000 Richard Kenner + + * expr.c (expand_expr, case COMPONENT_EXPR): Copy memory attributes + when making new MEM. + + * Makefile.in (LN): Remove duplicate definition. + +2000-09-12 Bernd Schmidt + + From Joern Rennecke: + * local-alloc.c (update_equiv_regs): If there is no REG_EQUAL note + on an insn and function_invariant_p returns nonzero for the source, + add a REG_EQUAL note. + +Thu Sep 14 00:51:57 EDT 2000 John Wehle (john@feith.com) + + * alias.c (memrefs_conflict_p): An ADDRESSOF doesn't + conflict with frame_pointer_rtx. + +2000-09-13 Kazu Hirata + + * loop.c: Fix formatting. + * loop.h: Likewise. + +2000-09-13 Richard Henderson + + * config/ia64/ia64.md (divsf3): New. + (divsf3_internal_lat, divsf3_internal_thr): New. + (divdf3, divdf3_internal_lat, divdf3_internal_thr): New. + (divtf3, divtf3_internal_lat, divtf3_internal_thr): New. + (adddf3_trunc, subdf3_trunc, muldf3_trunc): New. + (madddf4_trunc, msubdf4_trunc, nmuldf3_trunc): New. + (nmadddf4_alts, nmadddf4_trunc): New. + (addtf3_truncsf, addtf3_truncdf, subtf3_truncsf): New. + (subtf3_truncdf, multf3_truncsf, multf3_truncdf): New. + (multf3_truncsf_alts, multf3_truncdf_alts): New. + (maddtf4_truncsf, maddtf4_truncdf, maddtf4_alts_truncdf): New. + (msubtf4_truncsf, msubtf4_truncdf, nmultf3_truncsf): New. + (nmultf3_truncdf, nmaddtf4_truncsf, nmaddtf4_truncdf): New. + (nmaddtf4_truncdf_alts): New. + (recip_approx): Don't predicate. + +2000-09-13 Richard Henderson + + * config/ia64/lib1funcs.asm (__divsf3): Protect fnorm.s with p6. + +2000-09-13 Stephane Carrez + + * flags.h (flag_dump_rtl_in_asm): Declare. + * toplev.c (flag_dump_rtl_in_asm): Define. + (decode_d_option): Set flag_dump_rtl_in_asm and flag_print_asm_name + if -dP is specified. + * rtl.h (print_rtx_head): Declare. + * print-rtl.c (print_rtx_head): Define. + (print_rtx): Print the string pointed to by print_rtx_head + at beginning of each dump line. + (print_rtl): Likewise. + (print_rtl_single): Likewise. + * final.c (final_scan_insn): Dump the insn in the assembly + file for debugging. + * gcc.1: Document -dP option. + * invoke.texi (Debugging Options): Likewise. + +2000-09-13 Stephane Carrez + + * md.texi (Machine Constraints): Document the 68HC11 constraints. + * install.texi (Configurations): Document the 68HC11&68HC12 port. + * invoke.texi (Option Summary, M68hc1x Options): Document the options. + +Tue Sep 12 13:51:13 2000 Denis Chertykov + + * config/avr/avr.h (ASSEMBLER_DIALECT): New macro declared. + * config/avr/avr.md (*movstrqi_insn): Cleanup output template. + (*clrstrqi): Likewise. + (xorhi3,xorsi3,absqi2): Likewise. + (one_cmplhi2,one_cmplsi2): Likewise. + (addsi3): Two stupid constraint alternatives removed. + (extendhisi2): Use `movw' for enhanced avr cores. + (zero_extendhisi2): Likewise. + +Wed Sep 13 02:31:23 EDT 2000 John Wehle (john@feith.com) + + * alias.c (find_base_term): Use frame_pointer_rtx + when handling an ADDRESSOF. + + * cse.c (canon_hash): Handle USE of BLKmode memory. + (cse_insn): Outgoing arguments for a libcall don't + affect any recorded expressions. + +2000-09-12 Tom Tromey + + * configure, config.in: Rebuilt. + * configure.in: Check for iconv, nl_langinfo, langinfo.h. + +2000-09-12 Jakub Jelinek + + * c-lex.c (lex_string): Use charwidth to compute bytemask. + * expr.c (expand_expr): Don't optimize constant array references + initialized with wide string constants. + +2000-09-13 Michael Hayes + + * loop.c (note_set_pseudo_multiple_uses): Correct. + +2000-09-12 Jim Wilson + + * ifcvt.c (noce_process_if_block): If A and B are the same, and no + else block, and X has side-effects, then fail. + +2000-09-12 Greg McGary + + * config/mips/mips-protos.h + (trap_cmp_op, mips_gen_conditional_trap): New func decls. + * config/mips/mips.h (ISA_HAS_COND_TRAP): New macro. + (PREDICATE_CODES): Add "trap_cmp_op". + * config/mips/mips.c + (trap_cmp_op, mips_gen_conditional_trap): New functions. + * config/mips/mips.md (trap, conditional_trap): New patterns. + +2000-09-12 Bernd Schmidt + + * flow.c (try_pre_increment_1): Don't do anything to sets of the stack + pointer. + +2000-09-12 Kaveh R. Ghazi + + * builtins.c (built_in_decls): New array. + (expand_builtin_fputs): New function. + (expand_builtin): Handle BUILT_IN_FPUTC and BUILT_IN_FPUTS. + + * builtins.def (BUILT_IN_FPUTC, BUILT_IN_FPUTS): New members. + + * c-common.c (c_common_nodes_and_builtins): Handle fputc/fputs. + + * tree.h (built_in_decls): New array. + +Tue Sep 12 08:53:57 2000 Jeffrey A Law (law@cygnus.com) + + * convex.md: Use "+" instead of "=" for outputs wrapped in a + STRICT_LOW_PART. + * i370.md, i386.md, ns32k.md, sh.md, vax.md: Likewise. + +2000-09-12 Kazu Hirata + + * haifa-sched.c: Fix formatting. + + * genattrtab.c: Fix formatting. + + * unroll.c: Fix formatting. + +2000-09-12 Bruce Korb + + * fixinc/fixfixes.c: make a type for the fix procedure & use it, + remove obsolete code + * fixinc/fixincl.c: Use PARAMS, not _P_. Add no-op default to switch. + * fixinc/fixincl.tpl: make non-exported arrays static scope + * fixinc/fixincl.x: regenerate + * fixinc/fixlib.h: Use PARAMS, not _P_ + * fixinc/fixtests.c: make a type for the test proc & use it + * fixinc/server.h: Use PARAMS, not _P_ + +2000-09-12 Kaveh R. Ghazi + + * c-typeck.c (process_init_element): Avoid union init warnings on + floating point zero. Don't crash on unions containing structs. + +2000-09-12 Alexandre Oliva + + * config/sh/sh.h (PREDICATE_CODES): Add CONST_DOUBLE to + general_movsrc_operand, and remove CONST_INT from + general_movdst_operand. + +2000-09-12 Bernd Schmidt + + * cse.c (approx_reg_cost): If SMALL_REGISTER_CLASSES, return INT_MAX + if a reference to non-fixed hardreg is seen. Otherwise, count hard + regs with a higher cost. + (preferrable): Deal with cases where either cost or regcost is + MAX_COST. + (cse_insn): Use MAX_COST rather than 10000. Always initialize + regcost values. + (COSTS_N_INSNS): Move definition... + * rtl.h: ...here. + (MAX_COST): New macro. + * loop.c (init_loop): Use COSTS_N_INSNS macro instead of hardcoded + constant. + +2000-09-11 Mark Mitchell + + * c-common.h (genrtl_clear_out_block): Remove. + * c-semantics.c (genrtl_clear_out_block): Remove. + (genrtl_while_stmt): Don't call it. + (genrtl_for_stmt): Likewise. + +2000-09-11 Zack Weinberg + + * cppfiles.c: Move all default-#defines to top of file. + (open_include_file): Replace by lookup_include_file. + (read_with_read, read_file): Merged into read_include_file. + (stack_include_file, purge_cache): New functions. + (close_cached_fd): Delete. + (lookup_include_file, read_include_file, _cpp_pop_file_buffer): + Cache the in-memory buffer, not the file descriptor. + + * cpphash.h (struct include_file): Add buffer, st, refcnt, + mapped fields. + (xcnew): New utility macro. + (DO_NOT_REREAD, NEVER_REREAD): Move up by struct include_file. + * cpplib.h (struct cpp_buffer): Remove mapped field. + +2000-09-11 Zack Weinberg + + * cpplex.c (parse_string): Accept backslash space newline as a + line continuation. + (lex_line): Likewise. + (_cpp_get_token): Remove hard limit on macro nesting. + +2000-09-12 Philipp Thomas + + * aclocal.m4 (AM_WITH_NLS): Don't force use of included gettext. + * configure: Rebuilt. + +2000-09-13 Michael Hayes + + * flow.c (split_block): Fix update of registers live at + end of split block. + +Tue Sep 12 01:51:38 MET DST 2000 Jan Hubicka + + * i386.md (add?i_3, add?i_5): New. + (add?i_4): Rename from add?i_3; Fix compare pattern. + (sub?i_3, xor?i_3, ior?i_3): New. + + * genrecog.c (write_tree): Output code to clear insn_extract cache. + * genattrtab.c (write_attr_case): Gen call to extract_insn_cache + instead of extract_insn and extract_constrain_insn_cache instead of + extract_insn and constrain_operands. + * recog.c (extract_insn_cached, extract_constrain_insn_cached): + New functions. + (extract_insn): Clear which_alternative. + (constrain_operands): Set which_alternative to -1 when failed. + * recog.h (extract_constrain_insn_cached, extract_insn_cached): + Declare. + +2000-09-11 Matthew Hiller + + * config/h8300/h8300.md (movstrictqi): Changed constraint modifier + on operand 0 to '+'. + (movstricthi): Likewise. + +2000-09-12 Michael Hayes + + * loop.h (LOOP_IVS): New macro. + (REG_IV_TYPE, REG_IV_INFO): Add ivs argument. + (struct loop_ivs): New. + (struct loop_info): Add ivs field. + (reg_iv_type, reg_iv_info): Delete prototype. + (reg_biv_class, loop_iv_list): Likewise. + * loop.c (record_biv, find_life_end): Pass loop argument. + (reg_iv_type): Remove global array and use + field in loop_regs structure within loop_ivs structure. + (reg_iv_info, reg_biv_class, loop_iv_list): Likewise. + (first_increment_giv, last_increment_giv): Use entry in + loop_ivs structure. + (record_initial): Pass ivs pointer. + * unroll.c (copy_loop_body, remap_split_bivs): Add loop argument. + +2000-09-12 Michael Hayes + + * loop.h (LOOP_REGS): New macro. + (struct loop_regs): New. + (struct loop_info): Add regs field. + * loop.c (set_in_loop): Remove global array and store + in loop_regs structure as part of loop_info structure. + (n_times_set, may_not_optimize): Likewise. + (reg_single_usage, moved_once): Likewise. + (count_one_set): Add regs argument. + (combine_movables, rtx_equal_for_loop_p, combine_givs): Likewise. + (set_pseudo_multiple_uses): Pass regs pointer. + +2000-09-12 Michael Hayes + + * unroll.c (iteration_info): Subsume into loop_iterations. + * loop.h (loop_info): New field iv. + +2000-09-12 Michael Hayes + + * basic-block.h (LOOP_TREE, LOOP_PRE_HEADER, LOOP_EDGES): New. + (LOOP_EXITS_DOMS, LOOP_ALL): Likewise. + (flow_loops_update): New prototype. + (flow_loops_find): Add flags to prototype. + (struct loop): Add `pre_header_root' and `pre_header_trace' fields. + * flow.c (flow_loop_pre_header_scan): New. + (flow_loop_dump): Dump pre-header root and trace and exit dominators. + (flow_loop_free): Free pre-header root and trace and exit dominators. + (flow_loops_find): New argument flags. + (flow_loops_update): New function. + * toplev.c (rest_of_compilation): Add flag argument to flow_loops_find. + +2000-09-12 Michael Hayes + + * basic-block.h (split_block, update_bb_for_insn): New prototypes. + * flow.c (split_block, update_bb_for_insn): New functions. + +2000-09-11 Richard Henderson + + * cse.c (fold_rtx): Honor NO_FUNCTION_CSE. + +2000-09-11 Richard Henderson + + * config/ia64/ia64-protos.h (fr_nonimmediate_operand): Declare. + * config/ia64/ia64.c (fr_nonimmediate_operand): New. + (ia64_override_options): Prevent optimizing division for both + latency and throughput. + (rtx_needs_barrier): Handle frcpa. + * config/ia64/ia64.h (MASK_INLINE_DIV_LAT): New. + (MASK_INLINE_DIV_THR, TARGET_INLINE_DIV_LAT): New. + (TARGET_INLINE_DIV_THR, TARGET_INLINE_DIV): New. + (TARGET_SWITCHES): Add -minline-divide-min-latency and + -minline-divide-max-throughput. + (PREDICATE_CODES): Update. + * config/ia64/ia64.md (extendsidi2): Remove * from f case. + (zero_extendsidi2): Likewise. Fix typo in f case insn. + (extendsfdf2): Add cases for gr<->fr and fr<->mem. + (extendsftf2): Likewise. + (extenddftf2): Likewise. + (fix_trunctfdi2_alts): New. + (fixuns_trunctfdi2_alts): New. + (madd*4): Rename from madd*3. + (divsi3, modsi3, udivsi3, umodsi3): New. + (divsi3_internal): New. + (divdi3, moddi3, udivdi3, umoddi3): New. + (divdi3_internal_lat, divdi3_internal_thr): New. + (multf3_alts, maddtf4_alts, nmaddtf4_alts): New. + (recip_approx): New. + +2000-09-11 Alexandre Oliva + + * print-rtl.c (debug_call_placeholder_verbose): New variable. + (print_rtx) [CALL_PLACEHOLDER]: Dump all call sequences if it is + set. + * integrate.c (copy_rtx_and_substitute): Don't share + LEAF_REG_REMAPpable registers with the inlined function. Don't + share the function value with calling sequences. + +2000-09-11 Jakub Jelinek + + * c-decl.c (do_case): Fix a typo. + + * combine.c (simplify_if_then_else): Don't convert a == b ? b : a + to a if the comparison is floating mode and not -ffast-math. + * simplify-rtx.c (simplify_ternary_operation): Likewise. + +Mon Sep 11 20:07:48 2000 J"orn Rennecke + + * sh.h (INITIALIZE_TRAMPOLINE): Remove stray call to + gen_ic_invalidate_line. + +2000-09-11 Philip Blundell + + * config/arm/elf.h (SUBTARGET_CPP_SPEC): Don't define `arm_elf'. + +Mon Sep 11 10:48:41 2000 Ulrich Drepper + + * install.texi (LANGUAGES): Update to include new languages. + * INSTALL: Rebuilt. + +2000-09-11 DJ Delorie + + * gcc.c (main): Don't warn about unused -B prefixes + (unused_prefix_warnings): remove + +2000-09-11 Kazu Hirata + + * final.c: Fix formatting. + + * integrate.c: Fix formatting. + +2000-09-11 Geoff Keating + + * alias.c (memrefs_conflict_p): An ADDRESSOF does conflict, sorry. + +2000-09-11 Bernd Schmidt + + * reload.c (regno_clobbered_p): Fix thinko in previous change. + +2000-09-10 Stephane Carrez + + * gcc.1: Document 68hc11 specific options. + +2000-09-10 Geoff Keating + + * config/rs6000/sysv4.h (MASK_LONG_DOUBLE_128): Define. + (TARGET_LONG_DOUBLE_128): Define. + (SUBTARGET_SWITCHES): Add -mlong-double-64 and -mlong-double-128. + (LONG_DOUBLE_TYPE_SIZE): Redefine. + (MAX_LONG_DOUBLE_TYPE_SIZE): Define. + (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on definition + of __LONG_DOUBLE_128__. + (CPP_SYSV_SPEC): Define __LONG_DOUBLE_128__ if -mlong-double-128 + passed. + (CPP_LONGDOUBLE_DEFAULT_SPEC): Define. + (CPP_SYSV_DEFAULT_SPEC): Define. + (SUBTARGET_EXTRA_SPECS): Add cpp_longdouble_default. + (INIT_TARGET_OPTABS): Define. + + * config/rs6000/aix.h (RS6000_ITRUNC): Moved from rs6000.h. + (RS6000_UITRUNC): Likewise. + (INIT_TARGET_OPTABS): New macro. + * config/rs6000/rs6000.c (rs6000_trunc_used): Delete. + (trunc_defined): Delete. + (output_prolog): Don't output .extern definitions for fp->int + conversion routines, ASM_OUTPUT_EXTERNAL_LIBCALL will do it. + * config/rs6000/rs6000.h (rs6000_trunc_used): Delete. + (trunc_defined): Delete. + (RS6000_ITRUNC): Moved to aix.h. + (RS6000_UITRUNC): Likewise. + * config/rs6000/rs6000.md (fix_truncdfsi2): Fail if it would + only emit a libcall. + (fixuns_truncdfsi2): Delete. + (trunc_call): Delete. + (trunc_call_rtl): Delete. + +2000-09-10 Zack Weinberg + + * varasm.c (make_decl_rtl): Restore leading star on + DECL_ASSEMBLER_NAME set for decls with an asmspec. + +2000-09-10 Zack Weinberg + + * c-pragma.c (handle_pragma_pack): Correct parsing logic so it + won't give a spurious error for '#pragma pack()'. Simplify + control flow for readability. 'reset' action is not necessary. + +2000-09-10 Zack Weinberg + + * defaults.h: Provide default definitions for: CHAR_TYPE_SIZE, + SHORT_TYPE_SIZE, INT_TYPE_SIZE, LONG_TYPE_SIZE, + LONG_LONG_TYPE_SIZE, WCHAR_TYPE_SIZE, FLOAT_TYPE_SIZE, + DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE, and WCHAR_UNSIGNED. + + * cppexp.c, dwarfout.c, dwarf2out.c, emit-rtl.c, final.c, optabs.c, + profile.c, sdbout.c, tradcif.y, tree.c: + Include defaults.h if not already included. + Don't define the above macros. + + * Makefile.in: Update dependencies. + +2000-09-10 Mark Mitchell + + * c-common.h (add_stmt): Change prototype. + (RECHAIN_STMTS): New macro. + (CASE_LABEL_DECL): Likewise. + (genrtl_case_label): Change prototype. + (c_expand_start_case): Remove prototype. + (build_case_label): Change prototype. + (decl_constant_value): Declare. + * c-common.c (check_case_value): Handle C++'s extensions to C + semantics. + * c-commnon.def (CASE_LABEL): Add room for the CASE_LABEL_DECL + field. + * c-parse.in (stmt): Adjust handling of return statements and case + laels. + * c-semantics.c (add_stmt): Return the new statement. + (genrtl_return_stmt): Take the RETURN_STMT as input, not the + returned expression. Directly generate RTL, rather than calling + c_expand_return. + (genrtl_switch_stmt): Don't call c_expand_start_case. + (build_case_label): Take the LABEL_DECL as input, too. + (genrtl_case_label): Just call add_case_node. + (expand_stmt): Adjust calls to genrtl_return_stmt and + genrtl_case_label. + * c-tree.h (c_expand_start_case): Declare. + * c-typeck.c (decl_constant_value): Give it external linkage. + (c_expand_return): Don't call expand_return or expand_null_return; + use genrtl_return_stmt instead. + * stmt.c (struct nesting): Remove num_ranges field. + (add_case_node): Give it external linkage. + (expand_start_case): Don't set num_ranges. + (expand_start_case_dummy): Don't clear it. + (pushcase): Rely on add_case_node to handle `default' labels. + (add_case_node): Handle `default' labels. + * tree.c (tree_int_cst_compare): New function. + * tree.h (tree_int_cst_compare): Declare. + (add_case_node): Likewise. + +2000-09-10 Richard Henderson + + * c-parse.in: Revert last change. + (init_reswords): Do not enter disabled keywords into the ridpointers + table, modulo objc weirdness. + (_yylex): Return the canonical spelling for a keyword. + +2000-09-10 Philip Blundell + + * config/arm/arm.h (CPP_ISA_SPEC): Don't define `arm' or `thumb'. + * config/arm/linux-elf.h (CPP_PREDEFINES): Don't define `__arm__'. + +Sun Sep 10 14:30:28 EDT 2000 John Wehle (john@feith.com) + + * alias.c (find_base_term): Handle ADDRESSOF. + (memrefs_conflict_p): An ADDRESSOF doesn't conflict. + +2000-09-10 Denis Chertykov + + * genoutput.c (output_insn_data): Translate to \n\ while + outputting templates with many lines. + +2000-09-10 Stephane Carrez + + * libgcc2.h: Use LONG_LONG_TYPE_SIZE instead of MIN_UNITS_PER_WORD + to decide whether 64-bit support must be generated. + +2000-09-10 Richard Henderson + + * c-parse.in (asm patterns): Fix volatile check. + +2000-09-09 Kaveh R. Ghazi + + * cppmacro.c (check_trad_stringification): New function. + (save_expansion): If -Wtraditional, warn about stringification of + macro arguments. + +2000-09-11 Michael Hayes + + * loop.h (struct loop_mem_info): Move from loop.c + (struct loop_info): Add fields store_mems, mems, mems_idx, + mems_allocated, unknown_address_altered, + unknown_constant_address_altered, num_mem_sets, and + first_loop_store_insn. + + * loop.c (loop_store_mems): Replace with field in loop_info struct. + (loop_mems, loop_mems_idx, loop_mems_allocated): Likewise. + (unknown_address_altered, unknown_constant_address_altered): Likewise. + (num_mem_sets): Likewise. + (replace_loop_mems, replace_loop_regs): New. + (struct loop_replace_args): New. + (load_mems): Use replace_loop_mems. + (try_copy_prop): Use replace_loop_regs. + (replace_loop_reg, replace_loop_mem): Use loop_replace_args structure. + +2000-09-09 Stephane Carrez + + * configure.in: Recognize m6811-elf and m6812-elf. + * configure: Regenerate. + +2000-09-09 Geoff Keating + + * recog.c (validate_replace_rtx_1): Correct MODE parameter in call + to operand_subword. + +2000-09-10 Michael Hayes + + * loop.c (struct movables): New. + (num_movables): Move into struct movables. + (the_movables): Change type to struct movables. + (ignore_some_movables): Change struct movable arg to struct movables. + (force_movables, combine_movables, regs_match_p): Likewise. + (rtx_equal_for_loop_p, move_movables): Likewise. + (scan_loop): Change movables to be of type struct movables. + Replace last_movable with field in movables structure. + +2000-09-08 Zack Weinberg + + * c-pragma.c: Don't elide entire file if !HANDLE_GENERIC_PRAGMAS. + (init_pragma): Avoid warning if pfile happens to be unused. + * c-pragma.h: Never define HANDLE_GENERIC_PRAGMAS. Never + define init_pragma to nothing. Always prototype + init_pragma. Prototype dispatch_pragma if !USE_CPPLIB. + + * c-lex.c (process_directive): Always call dispatch_pragma. + Initialize entering_c_header to 0. + +2000-09-08 Stephane Carrez + + * config/m68hc11/m68hc11.md: New file, machine description for + 68HC11 & 68HC12. + * config/m68hc11/m68hc11.h: New file, definitions for 68HC11 & 68HC12. + * config/m68hc11/m68hc11.c: New file, functions for 68HC11 & 68HC12. + * config/m68hc11/m68hc12.h: New file, definitions for 68HC12. + * config/m68hc11/m68hc11-protos.h: New file. + * config/m68hc11/m68hc11-crt0.S: New file, startup code. + * config/m68hc11/t-m68hc11-gas: New file, makefile fragment. + * config/m68hc11/xm-m68hc11.h: New file, target defs. + * config/m68hc11/larith.asm: New file, libgcc routines. + +2000-09-08 Stephane Carrez + + * Makefile.in (DPBIT_FUNCS): Add _usi_to_df. + (FPBIT_FUNCS): Add _usi_to_sf. + * config/fp-bit.c (usi_to_float): New function. + * config/fp-bit.h (L_usi_to_sf, L_usi_to_df): Define. + (usi_to_float): Add appropriate #define. + +2000-09-08 Bernd Schmidt + + * i386-protos.h (sse_comparison_operator, mmx_reg_operand): Declare + new functions. + * i386.c (sse_comparison_operator, mmx_reg_operand): New functions. + * i386.md (attr "type"): Add sse and mmx types. + (attr "memory"): Handle them without a crash. + (movsi_1, movdi_2): Allow MMX regs. + (movdi splits): Don't split moves involving MMX regs. + (setcc_4): Remove '*' from pattern name so we get a gen_setcc4. + (movv4sf_internal, movv4si_internal, movv8qi_internal, + movv4hi_internal, movv2si_internal, movv8qi, movv4hi, movv2si, + movv4sf, movv4si, pushv4sf, pushv4si, pushv8qi, pushv4hi, pushv2si, + sse_movaps, sse_movups, sse_movmskps, mmx_pmovmskb, mmx_maskmovq, + sse_movntv4sf, sse_movntdi, sse_movhlps, sse_movlhps, sse_movhps, + sse_movlps, sse_loadss, sse_movss, sse_storess, sse_shufps, + addv4sf3, vmaddv4sf3, subv4sf3, vmsubv4sf3, mulv4sf3, vmmulv4sf3, + divv4sf3, vmdivv4sf3, rcpv4sf2, vmrcpv4sf2, rsqrtv4sf2, vmrsqrtv4sf2, + sqrtv4sf2, vmsqrtv4sf2, sse_andti3, sse_nandti3, sse_iorti3, + sse_xorti3, maskcmpv4sf3, maskncmpv4sf3, vmmaskcmpv4sf3, + vmmaskncmpv4sf3, sse_comi, sse_ucomi, sse_unpckhps, sse_unpcklps, + smaxv4sf3, vmsmaxv4sf3, sminv4sf3, vmsminv4sf3, cvtpi2ps, cvtps2pi, + cvttps2pi, cvtsi2ss, cvtss2si, cvttss2si, addv8qi3, addv4hi3, + addv2si3, ssaddv8qi3, ssaddv4hi3, usaddv8qi3, usaddv4hi3, subv8qi3, + subv4hi3, subv2si3, sssubv8qi3, sssubv4hi3, ussubv8qi3, ussubv4hi3, + mulv4hi3, smulv4hi3_highpart, umulv4hi3_highpart, mmx_pmaddwd, + mmx_iordi3, mmx_xordi3, mmx_anddi3, mmx_nanddi3, mmx_uavgv8qi3, + mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pextrw, mmx_pshufw, + eqv8qi3, eqv4hi3, eqv2si3, gtv8qi3, gtv4hi3, gtv2si3, umaxv8qi3, + smaxv4hi3, uminv8qi3, sminv4hi3, ashrv4hi3, ashrv2si3, lshrv4hi3, + lshrv2si3, mmx_lshrdi3, ashlv4hi3, ashlv2si3, mmx_ashldi3, + mmx_packsswb, mmx_packssdw, mmx_packuswb, mmx_punpckhbw, + mmx_punpckhwd, mmx_punpckhdq, mmx_punpcklbw, mmx_punpcklwd, + mmx_punpckldq, emms, sfence, ldmxcsr, prefetch, stmxcsr, sse_clrti, + mmx_clrdi): New patterns. + +2000-09-08 Richard Earnshaw + + * arm.c: Don't include tm.h directly. + +Fri Sep 8 14:34:56 MET DST 2000 Jan Hubicka + + * recog.c (validate_replace_rtx_1): Fix confusion about equality + testing; simplify subregs of constants and nested subregs. + +2000-09-08 Alexandre Oliva + + * config/sh/sh.md (symPLT_label2reg): Use operand3 for PIC reg. + +2000-09-08 Bernd Schmidt + + * combine.c (combine_simplify_rtx): Try to simplify VEC_SELECT of a + VEC_CONCAT. + * rtl.texi (description of USE): Add note about possible pitfalls + with this rtx. + From Richard Henderson: + * reload1.c (choose_reload_regs): Compute need_mode properly. + +2000-09-07 Richard Henderson + + * config/ia64/lib1funcs.asm (__divsi3): Use .s1 for frcpa. + (__modsi3, __umodsi3): Likewise. + (__udivsi3): Likewise. Normalize the TFmode values. + +2000-09-07 Geoff Keating + + * config/rs6000/sol-c0.c (_start): Declare `termfunc' parameter + with a prototype. + * config/rs6000/rs6000.h (RS6000_ARG_SIZE): Use cast to suppress + warning. + +Fri Sep 8 03:26:38 2000 J"orn Rennecke + + * sh.md (cmpeqsi_ior_t, cmpeqsi_and_t): Remove. + (cmpeqdi_t): Add output pattern. + (cmpeqdi_t+1): Don't split when not optimizing. + Restore proper splitting operation. + +2000-09-07 Richard Henderson + + * c-lex.c (process_directive): If not HANDLE_GENERIC_PRAGMAS, + do not call dispatch_pragma. + +2000-09-07 Jim Wilson + + * reload.c (push_reload): Use CLASS_CANNOT_CHANGE_MODE_P in addition + to CLASS_CANNOT_CHANGE_MODE. + * config/ia64/ia64.h (CLASS_CANNOT_CHANGE_MODE_P): True only if the + mode classes are different. + +2000-09-07 Zack Weinberg + + * cpplib.h (struct cpp_options): Add user_label_prefix member, + left out of commit which removed cppulp.c. + +2000-09-07 Richard Henderson + + * bb-reorder.c (fixup_reorder_chain): Add jump in new block + after switch for CASE_DROPS_THROUGH. + +2000-09-07 Richard Henderson + + * loop.c (strength_reduce): Call check_ext_dependant_givs. + Properly extend the biv initial value for the giv. + (record_biv): Zero ext_dependant. + (record_giv): New argument ext_val. Update all callers. + (general_induction_var): Likewise. + (consec_sets_giv): Likewise. + (simplify_giv_expr): Likewise. Fill in ext_val if we find + a sign-extend, zero-extend, or truncate. + (combine_givs_p): Make sure modes are compatible. + (check_ext_dependant_givs): New. + (extend_value_for_giv): New. + * loop.h (struct induction): Add ext_dependant. + * unroll.c (iteration_info): Extend the biv initial value for the giv. + (find_splittable_givs): Likewise. + (final_giv_value): Likewise. + +2000-09-07 Zack Weinberg + + * c-pragma.h: Define HANDLE_GENERIC_PRAGMAS if + REGISTER_TARGET_PRAGMAS is defined. Duplicate some + definitions from cpplib.h. + * cpplib.h: Don't typedef struct cpp_reader if c-pragma.h has + already done it. + * tm.texi: Document HANDLE_PRAGMA as no longer supported. Add + documentation for REGISTER_TARGET_PRAGMAS. + + * c-lex.c: Include cpplib.h before c-pragma.h. Define a + default-pragma callback to implement -Wunknown-pragmas if + USE_CPPLIB. + * c-parse.in: Move all includes to top of file. + * c-pragma.c: Include cpplib.h before c-pragma.h. Include + tm_p.h. + (dispatch_pragma): Put the namespace in the -Wunknown-pragmas + warning. + (init_pragma): If REGISTER_TARGET_PRAGMAS is defined, call it. + + * arm.h, arm-protos.h, arm.c, + c4x.h, c4x-protos.h, c4x.c, + h8300.h, h8300-protos.h, h8300.c, + i370.h, i370-protos.h, i370.c, + i960.h, i960-protos.h, i960.c, + sh.h, sh-protos.h, sh.c, + v850.h, v850-protos.h, v850.c: Convert HANDLE_PRAGMA-based + pragmata scheme to use REGISTER_TARGET_PRAGMAS instead. + + * d30v.h: Don't mention HANDLE_PRAGMA in comment. Add + multiple include guard. + * i370.md (untyped_call): Use GEN_CALL. + (umodsi3): Remove unused variable. + * sh/elf.h: Don't undef HANDLE_SYSV_PRAGMA. + * v850.c (output_move_single, output_move_double): Constify + return value. + (print_operand): Constify a char *. + * v850.h (struct small_memory_info): Constify name member. + +2000-09-07 Kazu Hirata + + * config/h8300.h: Fix comment typos. + * config/h8300/h8300.md: Likewise. + * config/h8300/lib1funcs.asm: Likewise. + +Thu 07-Sep-2000 21:29:00 BST Neil Booth + + * Makefile.in: Remove references to cppulp.{c,o}. + * cppinit.c (initialize_builtins, cpp_start_read, + cpp_handle_option): Update to use cpp_options structure. + * cppulp.c: Remove. + +2000-09-07 Joseph S. Myers + + * c-common.c (time_char_table): Allow %#b and %#h. + +2000-09-07 Herman A.J. ten Brugge + + * reorg.c (find_end_label): If the basic block reorder pass moves the + return insn to some other place try to locate it again and put our + end_of_function_label there. + * reorg.c (relax_delay_slots): Check if find_end_label created a + new label that invalidates the current optimazation. + +2000-09-07 Catherine Moore + + * unroll.c (unroll_loop): Check for unconditional jumps + to loop continuation. Delete if n_iterations is 1. + (ujump_to_loop_cont): New routine. + +2000-09-07 Bernd Schmidt + + * rtl.c (class_narrowest_mode): Add entries for MODE_VECTOR_INT and + MODE_VECTOR_FLOAT. + * reload.c (regno_clobbered_p): Accept new arg, MODE, and use it + to handle multiword modes correctly. All callers and the declaration + changed. + +2000-09-06 Mark Mitchell + + * c-common.h (prep_stmt): Declare. + (lang_expand_stmt): Likewise. + * c-decl.c (lang_expand_stmt): Remove. + * c-semantics.c (lang_expand_stmt): Define. + (prep_stmt): New function. + (expand_stmt): Handle common statement types here. + +2000-09-07 Niibe Yutaka , Kaz Kojima , Alexandre Oliva + + * configure.in (sh-*-linux*): Added. + * configure: Rebuilt. + * config/sh/t-linux: New file. + * config/sh/sh.h (USERMODE_BIT): Define. + (TARGET_USERMODE): Likewise. + (TARGET_SWITCHES): New switches for the bits above. + (INITIALIZE_TRAMPOLINE): Call __ic_invalidate in USERMODE. + * config/sh/linux.h: New file. + * config/sh/lib1funcs.asm (GLOBAL): Don't prefix symbols with + underscore on linux. + (L_sdivsi3, L_udivsi3): Define for linux. + (L_ic_invalidate): Define. + * invoke.texi (SH Options): Document -musermode. + +2000-09-07 Alexandre Oliva + + * config/sh/sh.h (OVERRIDE_OPTIONS): Don't disable function + CSE unless generating PIC. + + * config/sh/sh.md (symPLT_label2reg): Force the initialization of + the PIC register. + +2000-09-06 H.J. Lu (hjl@gnu.org) + + * Makefile.in (clean_s1): Depend on stage_b. + (clean_s2): Depend on stage_d. Don't remove $(VOL_FILES) in + stage2. They are used for "make compare". + +2000-09-06 Mark Mitchell + + Move statement-tree facilities from C++ to C front-end. + * c-common.h (c_tree_index): Add CTI_VOID_ZERO. + (void_zero_node): New macro. + (struct stmt_tree_s): New type. + (stmt_tree): New typedef. + (struct language_function): New type. + (last_tree): New macro. + (last_expr_type): Likewise. + (walk_tree_fn): New typedef. + (current_stmt_tree): New function. + (begin_stmt_tree): Likewise. + (add_stmt): Likewise. + (finish_stmt_tree): Likewise. + (statement_code_p): Likewise. + (lang_statement_code_p): New variable. + (walk_stmt_tree): New function. + (STMT_IS_FULL_EXPR_P): New macro. + * c-common.c (lang_statement_code_p): New variable. + (c_common_nodes_and_builtins): Initialize void_zero_node. + (statement_code_p): New function. + (walk_stmt_tree): Likewise. + * c-decl.c (language_function): Rename to ... + (c_language_function): ... this. Include language_function. + (push_c_function_context): Adjust accordingly. + (pop_c_function_context): Likewise. + (mark_c_function_context): Likewise. + (current_stmt_tree): Define. + * c-semantics.c (begin_stmt_tree): New function. + (add_stmt): Likewise. + (prune_unused_decls): Likewise. + (finish_stmt_tree): Likewise. + +2000-09-06 Herman A.J. ten Brugge + + * flow.c (insn_dead_p): Detect dead memory stores with auto increments. + +2000-09-06 Kazu Hirata + + * calls.c: Fix formatting. + +2000-09-06 Graham Stott + + * config/i386/i386.h (ADDRESS_COST): Fix typo. + +2000-09-06 Zack Weinberg + + Integrated preprocessor. + + * Makefile.in: Remove all references to c-parse.gperf, + c-gperf.h, and c-parse.h. Remove -d from yacc command line + generating c-parse.c. Update dependencies. + * c-parse.gperf, c-gperf.h: Delete. + + * c-common.c: Don't define parse_options, cpp_token, yy_cur, + yy_lim, or yy_get_token. Don't define get_directive_line if + USE_CPPLIB. + * c-common.h: Add multiple include guard. Define RID values + for every keyword in C, C++, and Objective-C. Put all the + modifiers first. + (struct c_fileinfo, get_fileinfo, dump_time_statistics): New. + * c-decl.c (c_decode_option): Handle -lang-objc here. + (print_lang_identifier): Handle C_IS_RESERVED_WORD case. + (grokdeclarator): Adjust for new RID scheme. + (extract_interface_info): New stub. + * c-lang.c: Don't declare yy_cur or parse_options. + (lang_init_options): Call cpp_init. Don't call + cpp_options_init. + (lang_init): Don't call check_newline if USE_CPPLIB. + + * c-lex.c: Don't include c-parse.h. Do include timevar.h. + Elide lots of unnecessary code if USE_CPPLIB. Delete code + rendered unnecessary by new architecture. Move routines not + shared with C++ to c-parse.in. Maintain a local idea of the + line number. Handle C++ as well as C. + [USE_CPPLIB]: Declare and register callbacks for #ident and + for entering/leaving files. + (init_c_lex, c_lex): Are now the entry points to this file. + (check_newline): Break out directive handling to + process_directive. + (read_ucs, is_extended_char, utf8_extend_token): Moved here + from C++ front end. + (readescape, parse_float): Overhaul. + (lex_number, lex_string, lex_charconst): Break out of c_lex + (n'ee yylex). + (get_fileinfo, update_header_times, dump_one_header, + dump_time_statistics): New and/or moved here from C++. + Support per-file data needed by C++ and per-header timing + statistics (C++ only, at the moment). + * c-lex.h: Update prototypes. Add multiple include guard. + * c-tree.h (struct lang_identifier): Add rid_code field. + (C_IS_RESERVED_WORD, C_RID_CODE): New. + + * c-parse.in: Include c-pragma.h. Remove unnecesary calls to + reinit_parse_for_function and/or position_after_white_space. + (save_filename, save_lineno): Look ahead before saving. + (label -> identifier ':'): Save file and line before shifting ':'. + (reservedwords): No need to call get_identifier. + (init_parse, finish_parse, yyerror, yylex, yyprint, + make_pointer_declarator): Are now here for C/ObjC. + (rid_to_yy): Conversion table from RID constants to Yacc codes. + + * c-pragma.c: Rewrite parsing logic to fit with cpplib's + #pragma registry. Provide dummy implementation of that + interface if !USE_CPPLIB. + * c-pragma.h: Update to match. + + * flags.h: Add multiple include guard. + (flag_detailed_statistics): Moved here from C++. + * toplev.c: Define flag_detailed_statistics. + + * gcc.c (C specs): Use %(trad_capable_cpp) for -E|-M|-MM case + #if USE_CPPLIB. + * timevar.def (TV_CPP, TV_LEX): New. + * timevar.h: Add multiple include guard. + + * objc/lang-specs.h: Use %(trad_capable_cpp) for -E|-M|-MM case + #if USE_CPPLIB. + * objc/objc-act.c: Don't mention yy_cur or parse_options. + Initialize cpplib properly. Force lineno to 0 after first + call to check_newline. Don't handle -lang-objc here. + Move forget_protocol_qualifiers and remember_protocol_qualifiers here. + +2000-09-06 David Edelsohn + + * rs6000.md: Correct function unit definitions for cr_logical and + mtjmpr. + (sCOND): Additionally fail for sgt, slt, sge, sle if !TARGET_POWER + and use portable method for >=0 and floating point >=. Remove + associated matchers. + +2000-09-06 Mark Mitchell + + * extend.texi: Mark named return value extension as deprecated. + +2000-09-06 Geoff Keating + + * config/rs6000/rs6000.c (rs6000_reverse_condition): Return + the result. + +2000-09-06 Gabriel Dos Reis + + * toplev.c (display_help): Fix thinko in documentation. + + * diagnostic.h (output_buffer::indent_skip): New fields. + (output_indentation): New macro. + + * diagnostic.c (output_indent): New function. + (output_set_prefix, clear_diagnostic_info): Use. + (output_emit_prefix): Predict future indentation. + +2000-09-06 DJ Delorie + + * Makefile.in (stage_*): add more dependencies to ensure parallel + builds build correctly + +2000-09-06 Manfred Hollstein + + * Makefile.in (bootstrap-lean): Depend on bootstrap-lean_g, + not bootstrap-lean_f. + +2000-09-06 Andreas Schwab + + * mklibgcc.in: Emit rule for libgcc-stage-start. + * Makefile.in (stage1-start, stage2-start, stage3-start, + stage4-start): Don't handle libgcc here, use libgcc.mk instead. + +2000-09-06 Bernd Schmidt + + * local-alloc.c (local_alloc): Ignore CLASS_LIKELY_SPILLED. + (update_equiv_regs): Likewise, except for the mn10200 kludge. + (combine_regs): Likewise. + + * Makefile.in (cse.o): Depend on $(BASIC_BLOCK_H). + * cse.c: Include "basic-block.h". + (struct table_elt): New field REGCOST. + (CHEAP_REG): Delete macro. + (COST): Return 0 for REGs. + (approx_reg_cost_1, approx_reg_cost, preferrable): New functions. + (notreg_cost): Return 0 for appropriate SUBREGs. + (COSTS_N_INSNS): Return N * 2. + (rtx_cost): Return 0 for REGs, and use cost of nested rtx for cheap + SUBREGs. + (CHEAPER): Use new function preferrable. + (insert): Initialize REGCOST member. + (find_best_addr): Use approx_reg_cost for estimation of register + usage. + (cse_insn): Likewise. + * loop.c (iv_add_mult_cost): New function. + (add_cost, shift_cost, mult_cost): Delete variables. + (init_loop): Don't initialize add_cost; reduce copy_cost by half. + (strength_reduce): Use iv_add_mult_cost instead of fixed add_cost. + Make code that detects autoinc opportunities slightly less optimistic. + (simplify_giv_expr): If expression contains other reg that is also a + giv, only increment benefit if this is the only use of that reg. + (consec_sets_giv): Take that change into account. + (combine_givs): Slightly more verbose output. + + * i386.h (RTX_COSTS): For MULT, return true cost of multiplication, + not the cost of an equivalent shift. + * sh-protos.h (addsubcosts): Declare. + * sh.c (addsubcosts): New function. + * sh.h (CONST_COSTS): If CONST_OK_FOR_I, then return 0. + (RTX_COSTS): Tweak. Use addsubcosts. + (ADDRESS_COST): Return higher cost for reg+reg addressing. + +2000-09-06 Geoff Keating + + * config/rs6000/rs6000.c (validate_condition_mode): New function. + (branch_comparison_operator): Call validate_condition_mode to + abort rather than returning 0. + (branch_positive_comparison_operator): New function. + (scc_comparison_operator): Call validate_condition_mode to abort + rather than returning 0. + (ccr_bit): Call validate_condition_mode. Update for + new branch scheme. + (print_operand): Delete %C modifier. Update %E case + to use EQ bit not SO bit. + (rs6000_reverse_condition): New function. + (rs6000_generate_compare): New function. + (rs6000_emit_sCOND): New function. + (rs6000_emit_cbranch): New function. + (output_cbranch): The length of a long branch insn is + now only 8 bytes. Add validate_condition_mode. Use + rs6000_reverse_condition. Remove cror generation. + + * config/rs6000/rs6000.h: Update comments. + (PREDICATE_CODES): Add new predicate. Update codes used + by branch_comparison_operator and scc_comparison_operator. + * config/rs6000/rs6000-protos.h: Add prototypes for + new external functions. + * config/rs6000/rs6000.md: Add new scheduling parameters + for cr_logical instructions. Change length of branch + instructions. + (bCOND patterns): Call rs6000_emit_cbranch. + (sCOND patterns): Call rs6000_emit_sCOND. + (branch patterns): Change lengths to 4. + (cr logical patterns): New. + +2000-09-06 Richard Henderson + + * config/i386/i386.md (call_pop): Fix test for setting + current_function_uses_pic_offset_table. + (call, call_value_pop, call_value): Likewise. + +2000-09-06 Zack Weinberg + + * timevar.c (timevar_add): Delete. + (timevar_get): Also count time since the selected timer was + last updated. Do not examine the timevar stack if the + selected timer is standalone. + +2000-09-05 J. David Anglin + + * gthr-dce.h (__gthread_objc_mutex_deallocate): Free mutex->backend. + +2000-09-05 Jason Merrill + + * c-decl.c (finish_incomplete_decl): Don't call complete_array_type + for 'extern' arrays. + +2000-09-05 Richard Henderson + + * config/ia64/lib1func.asm (__divtf3): Rebundle for Itanium. + Eliminate final copy from non-trapping case. + (__divdf3, __divsf3): Likewise. + +2000-09-05 Richard Henderson + + * config/ia64/ia64.md (mulhi3): Fix typo last change. + * config/ia64/lib1func.asm (__divdi3, __udivdi3, __umodsi3): Likewise. + +2000-09-03 Donn Terry , Laurynas Biveinis + + * Makefile.in: Restructure bootstrap stages to allow clean + restart after failure. + +2000-09-05 Richard Henderson + + * config/ia64.md (movsi and movdi patterns): Allow moves from + 8-bit constants to AR registers. + +2000-09-05 Richard Henderson + + * config/ia64/ia64.md (mulhi3): New. + +2000-09-05 Richard Henderson + + * config/ia64/ia64.h (INIT_TARGET_OPTABS): Remove. + * config/ia64/lib1funcs.asm (__divdi3): Update from Intel IA-64 + Optimization Guide, minimum latency alternative. + (__moddi3, __udivdi3, __umoddi3): Likewise. + (__divsi3, __modsi3, __udivsi3, __umodsi3): Likewise. + +2000-09-05 Bruce Korb + + * fixinc/fixincl.c (load_file): always read header files + with sizes that are a multiple of the page size. + & use libiberty's getpagesize for determining that. + +2000-09-05 Alexandre Oliva + + * gcse.c (hash_string_1): Add prototype. + * cse.c (canon_hash_string): Likewise. + +2000-09-04 Craig Newell + + * gcc.c: Undefine "__WCHAR_TYPE__" before redefining it. + +2000-09-04 Andreas Schwab + + * Makefile.in (STAGESTUFF): Remove libgcc. + (stage1-start, stage2-start, stage3-start): Copy the contents of + the libgcc directory explicitly. + (mostlyclean): Clean libgcc. + +2000-09-04 Andrew Haley + + * dwarf2out.c: (stack_adjust_offset): New prototype. + +Wed Jan 1 00:23:59 MET 1997 Jan Hubicka + + * combine.c (make_extraction): Fix rtx_cost comparison to + match the comment. + +Wed Jan 1 00:17:32 MET 1997 Jan Hubicka + + * i386.md (pushsi2, pushhi2, pophi2, swapsf, swapdf, + umulsi3_highpart, smulsi3_highpart, testqi_ccno_1, xorqi_ext_1): + Add '*' to insn pattern name. + +2000-09-04 Jakub Jelinek + + * cpplex.c (ON_REST_ARG): Check VAR_ARGS flag of current context, + use posn - 1 to index into tokens array. + (maybe_paste_with_next): Adjust caller. + +2000-09-03 Geoff Keating + + * invoke.texi: Document the -mvxworks option for rs6000 ELF. + + * config/rs6000/rs6000.h: Update various comments about XER_REGNO. + (REGNO_REG_CLASS): Use symbolic register + names. + +2000-09-03 Richard Earnshaw + + * arm.c (final_prescan_insn): If the form of a jump insn isn't + recognized, don't try to conditionally execute it. + +Sun Sep 3 13:10:56 2000 Denis Chertykov + + * config/avr/avr.md ("*tablejump_lib"): New pattern. + (call_value_insn): Right length claculation. + (call_insn): Likewise. + +2000-09-02 Marek Michalkiewicz + + * config/avr/avr-protos.h, config/avr/avr.c (unique_section, + gas_output_limited_string, gas_output_ascii, output_movqi, + output_movhi, out_movqi_r_mr, out_movqi_mr_r, out_movhi_r_mr, + out_movhi_mr_r, out_movsi_r_mr, out_movsi_mr_r, output_movsisf, + out_tstsi, out_tsthi, ret_cond_branch, ashlqi3_out, ashlhi3_out, + ashlsi3_out, ashrqi3_out, ashrhi3_out, ashrsi3_out, lshrqi3_out, + lshrhi3_out, lshrsi3_out, output_reload_inhi, output_reload_insisf, + out_shift_with_cnt, ptrreg_to_str, cond_string, encode_section_info): + Add "const" as needed to remove warnings. + + * config/avr/avr.c (avr_override_options, avr_init_once, + function_prologue, function_epilogue, frame_pointer_required_p, + class_likely_spilled_p, order_regs_for_local_alloc, + avr_address_cost, avr_ret_register): Use K&R style arguments. + (initial_elimination_offset, gas_output_limited_string): + Remove ATTRIBUTE_UNUSED from the used arguments. + (output_mov*, out_mov*_r_mr, out_mov*_mr_r, output_reload_insisf): + Use local variables src, dest, base to access operands[]. + Rename reg_dest to reg_src if that's what it is. + (output_movhi, output_movsisf): Optimize loading 8-bit immediate + constants to LD_REGS if reg_was_0. + (output_reload_insisf): Change arg 3 to insn length and set it. + (out_movhi_r_mr, out_movhi_mr_r): Use in/out for more efficient + access to 16-bit I/O register pairs. + (avr_address_cost): Lower cost for the above case. + (out_tsthi): Use "or" (faster) instead of "sbiw" if the operand + may be clobbered, also for LD_REGS. + (adjust_insn_length): Correct insn length for iorhi3 and iorsi3 + with a CONST_INT. + + * config/avr/avr.h (PTRDIFF_TYPE): Make signed. + + * config/avr/avr.md: Change all uses of the TEST_HARD_REG_CLASS + macro to test_hard_reg_class function. + (*movsi, *movsf): Change "cc" attribute from "clobber" to "none" + for loading immediate constants to LD_REGS. + (andsi3, cmphi, cmpsi): Add return statements to avoid warnings. + + +Sat Sep 2 13:58:23 2000 Marek Michalkiewicz + + * config/avr/avr.md ("*negsi2"): substitute %@ to __zero_reg__ + * config/avr/libgcc.S: Lost part of the previous patch. + +2000-08-31 J. David Anglin + + * gthr-dce.h (__gthread_objc_mutex_allocate): Create a pthread_mutex_t + object before calling pthread_mutex_init. + +2000-09-02 Alexandre Oliva + + * config/sh/t-elf, config/sh/crt1.asm, config/sh/crti.asm, + config/sh/crtn.asm: New files. + * config/sh/t-sh (EXTRA_MULTILIB_PARTS): Set. + (crt1.o, crti.o, crtn.o): New targets. + * configure.in [sh-*-elf*, sh-*-rtemself*] (tmake_file): Added + sh/t-elf. + * configure: Rebuilt. + * config/sh/sh.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP, + STARTFILE_SPEC, ENDFILE_SPEC, CRT_CALL_STATIC_FUNCTION): Define. + * config/sh/elf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): + Undefine for config/elfos.h to redefine. + (STARTFILE_SPEC, ENDFILE_SPEC): Redefine after config/elfos.h. + +2000-09-02 Alexandre Oliva , Niibe Yutaka , Kaz Kojima + + * config/sh/sh-protos.h (nonpic_symbol_mentioned_p, + legitimize_pic_address, output_pic_addr_const): Declare. + * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Fix PIC register. + (PREFERGOT_BIT, TARGET_PREFERGOT): Likewise. + (TARGET_SWITCHES): New switch -mprefergot. + (OVERRIDE_OPTIONS): Set flag_no_function_cse unless -mprefergot. + (PIC_OFFSET_TABLE_REGNUM): Define. + (GOT_SYMBOL_TABLE): Likewise. + (LEGITIMIZE_ADDRESS): Use legitimize_pic_address. + (ENCODE_SECTION_INFO): Define. + (FINALIZE_PIC): New macros. + (LEGITIMATE_PIC_OPERAND_P, SYMBOLIC_CONST_P): New macro. + (ASM_OUTPUT_INT, ASM_OUTPUT_SHORT): Use output_pic_addr_const. + * config/sh/sh.c (print_operand_address): Use output_pic_addr_const. + (prepare_move_operands): Call emit_pic_move or + emit_pic_const_move if appropriate. + (output_far_jump): For PIC, use braf and output long offset. + (machine_dependent_reorg): + (sh_expand_prologue): Save and initialize the PIC register. + (sh_expand_epilogue): Restore it. + (initial_elimination_offset): Account for it. + (nonpic_symbol_mentioned_p): New function. + (legitimize_pic_address): Likewise. + (output_pic_addr_const): Likewise. + * config/sh/sh.md (calli_pcrel, call_valuei_pcrel): New insns. + (call, call_value): Use them. + (GOTaddr2picreg, sym_label2reg, symGOT2reg, symGOTOFF2reg, + symPLT_label2reg): New expands. + * invoke.texi (SH Options): Document -mprefergot. + +2000-09-01 Alexandre Oliva + + * rtl.h (ASM_OPERANDS_INPUT_CONSTRAINT_EXP): New macro. + * gcse.c (hash_string_1): New function. + (hash_expr_1) : Disregard filename and line number. + (expr_equiv_p) : Likewise. + * cse.c (rtx_cost): Don't increase the cost of ASM_OPERANDS. + (canon_hash_string): New function. + (canon_hash) : Disregard filename and line number. + (exp_equiv_p) : Likewise. + (fold_rtx): Use ASM_OPERANDS accessor macros. + * emit-rtl.c (copy_insn_1): Likewise. + * integrate.c (copy_rtx_and_substitute): Likewise. + * stmt.c (expand_asm_operands): Likewise. Give an + ASM_OPERANDS rtx the mode of the output reg being set from it. + +2000-09-01 Fred Fish + + * fix-header.c (write_rbrac): Add putc and getc to list of + functions to protect against prior definition as a macro. + +2000-09-01 Joseph S. Myers + + * c-common.h (enum c_tree_index): Add CTI_C_SIZE_TYPE. + (c_size_type_node): Define. + * c-decl.c (init_decl_processing): Initialize c_size_type_node. + * c-common.c (enum format_lengths, enum format_std_version, + format_length_info, format_type_detail, BADLEN, NOLENGTHS, + format_kind_info, printf_length_specs, scanf_length_specs, T89_I, + T99_I, T89_L, T99_LL, TEX_LL, T89_S, T89_UI, T99_UI, T89_UL, + T99_ULL, TEX_ULL, T89_US, T89_F, T99_F, T89_D, T99_D, T89_LD, + T99_LD, T89_C, T99_SC, T99_UC, T89_V, T94_W, TEX_W, T94_WI, + TEX_WI, T99_ST, T99_SST, T99_PD, T99_UPD, T99_IM, T99_UIM, + format_types): Define. + (format_char_info, print_char_table, scan_char_table, + time_char_table): Rearrange for new organization of information + about format length modifiers and standard versions. + (T_ST): Redefine to use c_size_type_node. + (check_format_info): Obtain information about length modifiers and + standard versions from tables. Adjust warning message wordings. + Use the name from the user's program for `ll' and `hh' length + modifiers in warning messages. Use more informative names for + wanted types where available (for wchar_t, wint_t, size_t, signed + size_t, ptrdiff_t, unsigned ptrdiff_t, intmax_t and uintmax_t). + +2000-09-01 Jim Wilson + + * calls.c (emit_call_1): Add REG_NORETURN note to call if ECF_NORETURN. + * combine.c (distribute_notes): Handle REG_NORETURN. + * rtl.c (reg_note_name): Add REG_NORETURN. + * rtl.h (enum reg_note): Likewise. + + * config/ia64/ia64-protos.h (emit_safe_across_calls): Renamed from + ia64_file_start. + * config/ia64/ia64.c (emit_safe_across_calls): Likewise. + (rtx_needs_barrier): Handle unspec_volatile 8 and 9. + (emit_predicate_relation_info): Handle conditional calls with + REG_NORETURN. + * config/ia64/ia64.h (ASM_FILE_START): Call emit_safe_across_calls + instead of ia64_file_start. + * config/ia64/sysv4.h (ASM_FILE_START): Likewise. + * config/ia64/ia64.md (safe_across_calls_all, + save_across_calls_normal): New patterns. + + * loop.c (check_final_value): Check for biv use before checking for + giv use. Check for both biv and giv uses. Always set last_giv_use + if there is a giv use. + +2000-09-01 Richard Henderson + + * config/ia64/ia64.md (mulsi3): Use grfr_register_operand. + (madddi3): Likewise. + (maddsi3): New. + +Fri Sep 1 10:59:47 2000 Richard Kenner + + * expr.c (clear_storage): Don't use emit_move_insn unless + either BLKmode or proper size. + (store_constructor): Don't call clear_storage if REG of wrong size. + + * flow.c (init_propagate_block_info): Don't mark frame dead at end + of function if returns wiht stack pointer depressed. + +2000-09-01 Andrew Haley + + * dwarf2out.c (stack_adjust_offset): New function. + (dwarf2out_stack_adjust): Break out stack adjust logic into + new stack_adjust_offset function. Look inside parallels and + sequences for stack adjustments. + +2000-08-31 Jeff Law + + * arm.md: Use no_new_pseudos to determine when it is safe + to create new pseudo registers. + + * arm.c (legitimize_pic_address): Use no_new_pseudos to determine + when we can safely allocate new registers. + +2000-08-31 Geoffrey Keating + + * stmt.c (expand_asm_operands): Twiddle generating_concat_p + so that CONCATs are not generated for ASMs. + * emit-rtl.c (gen_reg_rtx): Don't generate CONCATs when + not generating_concat_p. + * function.c (pop_function_context_from): Reset + generating_concat_p. + (prepare_function_start): Likewise. + * rtl.c (generating_concat_p): Define. + * rtl.h (generating_concat_p): Declare. + * toplev.c (rest_of_compilation): No CONCATs after RTL generation. + +2000-08-22 Philipp Thomas + Masanobu Yuhara + + * gmicro.h (TARGET_SWITCHES): Add descriptions and mark them + for translation. + +2000-08-30 Greg McGary + + * Makefile.in (fixinc.sh): Pass CC, CFLAGS and LDFLAGS to mkfixinc.sh + * fixinc/Makefile.in (fixincl): Pass $(LDFLAGS) to $(CC). + * fixinc/mkfixinc.sh: Pass $CC, $CFLAGS and $LDFLAGS to $MAKE. + +2000-08-30 Greg McGary + + * tree.h (struct tree_int_cst): Wrap low and high in a sub-struct. + (TREE_INT_CST_LOW, TREE_INT_CST_HIGH): Access through sub-struct. + (TREE_INT_CST): New macro. + * varasm.c (const_hash, compare_constant_1, record_constant_1): + Use new macro TREE_INT_CST. + +Wed 30-Aug-2000 23:18:59 BST Neil Booth + + * contrib.texi: Add self. + +2000-08-30 Alexandre Oliva + + * config/sh/sh.md (cmpeqsi_ior_t, cmpeqsi_and_t): New insns. + (cmpeqdi_t splitter): Use cmpeqsi_and_t instead of emitting jumps + and labels. + +2000-08-30 J. David Anglin + + * fixinc/gnu-regex.c: Don't define `const'. + +Tue Aug 29 22:09:59 2000 Richard Kenner + + * expr.c (store_constructor): Allow variable bounds of array type. + (expand_expr): Don't blow up if type is ERROR_MARK. + * varasm.c (output_constructor): Don't access lower bound of array + type unless need it if index is supplied (so it can be a variable + if no index is supplied). + Use tree_low_cst; use HOST_WIDE_INT for sizes; change BITPOS to POS. + Other minor cleanups. + +2000-08-29 J. David Anglin + + * Makefile.in: Revamp handling of cflags to allow different WARN_CFLAGS + for compilations in stage 1 and subsequent stages, respectively. + * configure.in (vax): Add compiler-dependent CFLAGS for stage 1. + * configure: Rebuilt. + * x-vax, x-vax-gcc: Deleted. + +2000-08-29 Zack Weinberg + + * c-common.c (declare_function_name): Use func_id_node, + function_id_node, and pretty_function_id_node. Do not make + __func__ visible at file scope. + * c-common.h (c_tree_index): Add CTI_FUNCTION_ID, + CTI_PRETTY_FUNCTION_ID, and CTI_FUNC_ID. + (function_id_node, pretty_function_id_node, func_id_node): New + macros. + * c-decl.c (init_decl_processing): Initialize function_id_node, + pretty_function_id_node, and func_id_node. + (c_make_fname_decl): Correct comment. + + * tree.h (struct tree_identifier): Constify pointer member. + + * c-decl.c (pushdecl, implicit_decl_warning): Constify a char *. + * c-pragma.h (struct weak_syms): Constify name and value members. + (add_weak): Constify arguments. + + * calls.c (special_function_p): Constify a char *. + (expand_call): Remove variable which is initialized and then + never used. + * dependence.c (struct def_use, struct induction, struct subscript): + Constify 'variable' member. + (get_low_bound, have_induction_variable): Constify char * argument. + (find_induction_variable): Add braces to avoid dangling else. + (classify_dependence): Constify char * arrays. + * profile.c (output_func_start_profiler): Constify a char *. + * stor-layout.c (finalize_record_size): Constify a char *. + * tree.c (is_attribute_p): Constify a char *. + * varasm.c (add_weak, remove_from_pending_weak_list): Constify argument. + + * varasm.c (make_function_rtl, make_decl_rtl): Rearrange code + for comprehensibility. Do not call get_identifier if we did + not change the DECL_ASSEMBLER_NAME of the decl. Use alloca to + create temporary string constants, not ggc_alloc_string. No + need to copy result of ASM_FORMAT_PRIVATE_NAME. Use const + char * to hold IDENTIFIER_POINTERs. + +2000-08-29 Richard Henderson + + * config/ia64/ia64.md (muldi3): Use grfr_register_operand + for the inputs. + +2000-08-29 Richard Henderson + + * reload.c (push_secondary_reload): Allow class == reload_class + if we're using a reload_in/out pattern. + + * config/ia64/ia64.md (reload_inti): Use a TImode scratch. Use + the half that does not conflict with the reload register. + (reload_outti): Likewise. + +2000-08-29 Kazu Hirata + + * reload.c: Fix formatting. + + * stmt.c: Fix formatting. + + * gcc.c: Fix formatting. + +2000-08-29 Zack Weinberg + + * flags.h (time_report, mem_report): New global flags. + * toplev.c: Define time_report and mem_report. + (f_options): Add -ftime-report and -fmem-report. + (compile_file): Turn on time_report if quiet_flag is off. + Call ggc_print_statistics at very end if mem_report is on. + * timevar.c (TIMEVAR_ENABLE): Examine time_report, not quiet_flag. + + * ggc-common.c (ggc_print_statistics): Rename to + ggc_print_common_statistics; all callers changed. Scale + quantities above 10K to kilobytes and above 10M to megabytes. + * ggc-page.c (ggc_page_print_statistics): Rename to + ggc_print_statistics. Report memory consumed by internal data + structures for each allocation bucket. Scale quantities above + 10K to kilobytes and above 10M to megabytes. + * ggc-simple.c: Prototype debug_ggc_tree to avoid warning. + Cast PTR_KEY(p) to unsigned long in fprintf call to avoid warning. + Define tally_leaves always. + (ggc_print_statistics): New function. + * ggc.h: Adjust for renamed functions. + +Wed Aug 30 00:11:42 2000 Denis Chertykov + + * config/avr/avr.md ("*movsf","*movsi"): Pass NULL to + output_movsisf instead of which_alternative. + + * config/avr/avr.c (output_reload_inhi): Check for NULL ponter. + +Tue Aug 29 22:29:58 2000 Denis Chertykov & Marek Michalkiewicz + + * config/avr/avr-protos.h: (avr_output_ascii) Removed. + (avr_progmem_p): New prototype. + (output_movsisf): Prototype declaration changed. + (output_movqi): New prototype. + (output_movhi): New prototype. + (call_insn_operand): Likewise. + (final_prescan_insn): Likewise. + (avr_simplify_comparision_p): Likewise. + (avr_normalize_condition): Likewise. + (compare_eq_p): Likewise. + (out_shift_with_cnt): Likewise. + (const_int_pow2_p): Likewise. + (output_reload_inhi): Prototype declaration changed. + + * config/avr/avr.c: (debug_hard_reg_set): Prototype declared. + (ldi_reg_rtx): New. rtx for r31. + (avr_init_stack): Initialize as "__stack". + (function_prologue): Use it. + Replace all TARGET_ENHANCED with AVR_ENHANCED. + (avr_mcu_name): Initialize as "avr2". + (avr_enhanced_p, avr_mega_p): New variables. + (mcu_types, avr_override_options): Handle all known MCU types. + Also handle avr1 (only preprocess, assemble and link). + (print_operand): Using of `%K' in output template removed. + (out_movqi_r_mr): Optimized. + (out_movhi_r_mr): Likewise. + (output_movqi): New function. + (output_movhi): Likewise. + (out_movsi_r_mr): Optimized. + (output_movsisf): Compute insn length for `adjust_insn_length' + (out_movqi_mr_r): Optimized. + (out_movhi_mr_r): Optimized. + (adjust_insn_length): Use output_movsisf, output_movqi, + output_movhi for insn length adjusting. + (reg_unused_after): Use dead_or_set_p. + (preferred_reload_class): Now haven't any restriction. + (reg_was_0): New function. + (io_address_p): Likewise. + (const_int_pow2_p): Likewise. + (output_reload_inhi): Likewise. + (output_reload_insisf): Likewise. + + * config/avr/avr.h (MULTILIB_DEFAULTS): Define. + (LIB_SPEC): Use -lc for all supported devices. + (LIBGCC_SPEC): Use -lgcc for all supported devices. + (AVR_MEGA): Define as avr_mega_p. + (AVR_ENHANCED): New, define as avr_enhanced_p. + (TARGET_SWITCHES): Remove -menhanced, now handled by -mmcu=... + (CPP_SPEC, LINK_SPEC): Handle all known MCU types. + (CRT_BINUTILS_SPECS): Handle all known MCU types. + Rename gcrt1-*.o to make file names unique on 8.3 filesystems. + (EXTRA_SPECS): Add CPP_AVR[1-5]_SPEC. + (ASM_SPEC): Pass -mmcu=... to the assembler. + Change all -DAVR_* to -D__AVR_*__. + (INIT_TARGET_OPTABS), config/avr/libgcc.S: + Rename library functions to start with two underscores. + (ASM_OUTPUT_COMMON): Outputs `.comm VAR,VAR-SIZE,1' to avoid + alignment. + (ASM_WEAKEN_LABEL): Declared for __attribute__((weak)). + (SUPPORTS_WEAK): Likewise. + (LDI_REG_REGNO): New. Register r31 will be used as temporary + register for loading constants to r0-r14. + + * config/avr/avr.md: Replace all TARGET_ENHANCED with + AVR_ENHANCED. + (*mov_r_sp): Removed. Handled by output_movhi. + (*mov_sp_r): Likewise. + (*mov_sp_r_no_interrupts): Likewise + (*mov_sp_r_tiny): Likewise. + (*movqi): Use output_movqi. + (*reload_inqi): New. + (*movhi): Use output_movhi. + (*reload_inhi): New. + (*negsi2): Optimized. + (*negsf2): Likewise. + Added peepholes (define_peephole2) for loading constants to r0-r14 + and for using `cpse' command. + + * config/avr/libgcc.S: Rename library functions to start with two + underscores. + Add support for enhanced core. + (_moqhi3): Fix typo, now _modqi3. + (__divsi_raw): Use __zero_reg__ as loop counter, smaller by 1 word. + (__prologue_saves__): Remove test for stack adjust by 0. + (__tablejump__): New. + + * config/avr/t-avr: Build libgcc2 with -mcall-prologues. + Add multilib support. + +Tue Aug 29 15:17:54 EDT 2000 John Wehle (john@feith.com) + + * loop.c (prescan_loop): Don't check unknown_address_altered + when deciding if insert_loop_mem is safe. Add BLKmode MEMs + to loop_store_mems as necessary. + (loop_invariant_p): Don't check unknown_address_altered + or unknown_constant_address_altered. + +2000-08-29 J. David Anglin + + * vax.md (sltu, sgeu): Delete sltu and sgeu insn patterns. + +2000-08-29 Zack Weinberg + + * cpperror.c (print_file_and_line): If line is (unsigned int)-1, + print just the filename. + * cpplex.c (_cpp_run_directive): Add additional argument, the + name to give the synthetic buffer. This defaults to + translated "". + * cpplib.c (cpp_define, cpp_undef, cpp_assert, cpp_unassert): + Adjust to match. + (_cpp_define_builtin): New function. + * cppinit.c (initialize_builtins): Use _cpp_define_builtin. + * cpphash.h: Update prototypes. + + * tradcpp.c (main): Process -D and -U simultaneously, in the + order they appeared on the command line. + +2000-08-29 Kaveh R. Ghazi + + * c-decl.c (define_label): Call warning_with_file_and_line and + error_with_file_and_line instead of plain warning or error. + + * c-parse.in (label): Use save_filename/save_lineno to ensure + correct values for calls to define_label. + +2000-08-29 Mark Mitchell + + * calls.c (expand_call): Don't create a VAR_DECL just to throw it + away. + * expr.c (expand_expr, case TARGET_EXPR): Don't call + mark_addressable. + * tree.h (get_file_function_name): Remove two duplicate + declarations. + +2000-08-28 Kazu Hirata + + * tree.c: Fix formatting. + + * xcoffout.c: Fix formatting. + +2000-08-28 Jason Merrill + + * dwarf2out.c (attr_checksum): Also ignore DW_AT_producer. + +2000-08-28 Daniel Berlin + + * dwarf2out.c (dwarf2out_finish): Don't bother calling + break_out_includes if it won't do anything. + +2000-08-28 Richard Henderson + + * reload.c (push_secondary_reload): Revert 2000-08-16 change. + (find_reloads): Likewise. + * config/alpha/alpha.md (reload_inqi): Revert 2000-08-11 change. + (reload_inhi): Likewise. + +2000-08-28 Richard Henderson + + * config/i386/i386.c: Don't error on EXTRA_CONSTRAINT defined. + (call_insn_operand): Don't expect a surrounding mem. + (constant_call_address_operand): Likewise. + * config/i386/i386.h (PREDICATE_CODES): Update. + * config/i386/i386.md (call patterns): Move the match_operand + for the call destination inside the mem. + +2000-08-28 Richard Henderson + + * local-alloc.c (requires_inout): Don't use reserved range for + EXTRA_CONSTRAINTS; use anything not matched by REG_CLASS_FROM_LETTER. + * recog.c (asm_operand_ok): Likewise. + (preprocess_constraints, constrain_operands): Likewise. + * regclass.c (record_reg_classes): Likewise. + * reload.c (find_reloads): Likewise. + * reload1.c (maybe_fix_stack_asms): Likewise. + (reload_cse_simplify_operands): Likewise. + * stmt.c (expand_asm_operands): Likewise. + + * md.texi: Update constraints documentation. + * tm.texi (EXTRA_CONSTRAINT): Update. + +2000-08-28 Daniel Berlin + + * dwarf2out.c (DIE_LABEL_PREFIX): Remove leading "__". + (print_die): If we don't know the offset of the + target die, try the symbol. Add a trailing newline. + (reverse_all_dies): New fn. + (dwarf2out_finish): Call it. + (break_out_includes): Reorganize for clarity. + (add_sibling_attributes): Don't call reverse_die_lists. + (output_comp_unit): Rename from output_comdat_comp_unit. Use for + primary CU, too. + * flags.h: Add flag_eliminate_dwarf2_dups. + * toplev.c (f_options): Support -feliminate-dwarf2-dups. + +2000-08-28 Jason Merrill + + * dwarf2.h (DW_TAG_GNU_BINCL, DW_TAG_GNU_EINCL): New tags. + * dwarf2out.c: #include "md5.h". + (DIE_LABEL_PREFIX): New macro. + (dw_val_struct): Add 'external' flag to val_die_ref. + (add_AT_die_ref, AT_ref): Adjust. + (AT_ref_external, set_AT_ref_external): New fns. + (build_abbrev_table): Call set_AT_ref_external. + (value_format): Call AT_ref_external. + (die_struct): Add die_symbol field. + (new_die): Clear it. + (dwarf_tag_name): Handle BINCL/EINCL. + (dwarf2out_start_source_file): Add BINCL DIE. + (dwarf2out_end_source_file): Add EINCL DIE. + (push_new_compile_unit, pop_compile_unit, clear_die_sizes): New fns. + (loc_checksum, attr_checksum, die_checksum): New fns. + (is_type_die, is_comdat_die, is_symbol_die): New fns. + (compute_section_prefix, assign_symbol_names): New fns. + (gen_internal_sym, output_die_symbol, output_symbolic_ref): New fns. + (output_die): Call output_die_symbol and AT_ref_external. + (output_comdat_comp_unit): New fn, split out from... + (dwarf2out_finish): ...here. Also call add_sibling_attributes for + secondary CUs. + (output_pubnames, output_aranges): Abort if we see entries from + secondary CUs. + * toplev.h: Declare file_name_nondirectory. + * toplev.c (file_name_nondirectory): New fn, moved from C++ frontend. + (rest_of_type_compilation): Call dwarf2out_decl if at toplevel. + (debug_start_source_file): Call dwarf2out_start_source_file + regardless of debug verbosity. + (debug_end_source_file): Similarly. + * tree.h: Declare clean_symbol_name. + * tree.c (clean_symbol_name): Split out from... + (get_file_function_name_long): ...here. + + * dwarf2out.c (new_loc_descr): Use calloc. + (splice_child_die): Remove the die from the right parent. + (gen_struct_or_union_die): Don't add AT_name to a specification DIE. + +Mon Aug 28 19:02:13 2000 Richard Kenner + + * toplev.c (decode_g_option): Don't give warning for unknown -g + option; return 0 instead. + (main): If -g option is not recognized by front end or + language-independent code, give warning. + +2000-08-28 Greg McGary + + * config/i386/i386-protos.h (ix86_expand_compare): Add extern decl. + * config/i386/i386.c (ix86_expand_compare): Remove `static'. + * config/i386/i386.md (trap, conditional_trap): New insn & expand. + +2000-08-27 Greg McGary + + * cpplex.c (parse_string): Don't look for backslash + before first char in `namebuf'. + * loop.c (strength_reduce): Skip NOTEs. + +2000-08-27 Jason Merrill + + * c-decl.c (duplicate_decls): Don't set TREE_STATIC or clear + DECL_EXTERNAL on a local extern. Don't set DECL_IGNORED_P or + TREE_ASM_WRITTEN, either. + (finish_decl): Adjust. + +2000-08-28 Philipp Thomas + + * ABOUT-GCC-NLS: Remove gettext patches from Paul Eggert as + they have been incorporated into the gettext CVS. Change the text to + reflect the current status of NLS. Add instructions for accessing + the gettext CVS and add the patch from Martin v. Loewis. + +2000-08-27 Geoff Keating + + * config/rs6000/rs6000.md (movdi_internal64+5): Make SUBREG-safe + by using gen_lowpart_common. + (movdi_internal64+6): Likewise. + +2000-08-26 Alexandre Oliva + + * tm.texi (FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): + Document. + + * config/mn10300/mn10300.h (DBX_REGISTER_NUMBER): Remap register + numbers to the ranges used by GDB. + +2000-08-25 Richard Henderson + + * config/ia64/ia64.h (struct machine_function): Add n_varargs. + * config/ia64/ia64.c (ia64_compute_frame_size): Use it. + (ia64_expand_prologue): Likewise. + (ia64_setup_incoming_varargs): Set it. Properly skip the current + argument for stdargs. + +2000-08-25 Jason Merrill + + * integrate.c (expand_inline_function): Pull out the original decl. + +2000-08-25 Jim Wilson + + * cse.c (cse_insn): Don't pass label subtraction to force_const_mem. + + * function.c (gen_mem_addressof): Clear MEM_ALIAS_SET if no decl. + +2000-08-25 Greg McGary + + * flow.c (dump_edge_info): Use ARRAY_SIZE. + * config/alpha/alpha.c (alpha_expand_block_move): Likewise. + +2000-08-25 Richard Earnshaw + + * arm.h (STRUCT_VALUE): Define to 0, not NULL. + +Fri Aug 25 12:52:49 EDT 2000 John Wehle (john@feith.com) + + * i386.c (ix86_find_base_term): New. + * i386-protos.h (ix86_find_base_term): Prototype. + * i386.h (FIND_BASE_TERM): Define. + * alias.c (find_base_term): Use it. + * tm.texi (FIND_BASE_TERM): Document it. + + * alias.c (true_dependence, write_dependence_p): Unchanging + memory can't conflict with non-unchanging memory. + + * alias.c (memrefs_conflict_p): A BLKmode reference + to a symbol (or CONST_INT address) always conflicts + with a reference to another symbol. + +2000-08-25 Joseph S. Myers + + * c-common.c (time_char_table): Don't allow width and flags with + "z" format. + +2000-08-25 Jakub Jelinek + + * config/i386/i386.c (ix86_expand_branch): Treat GE and GEU the same + way as LT and LTU when the second operand has 0 in low word. + +2000-08-26 Michael Hayes + + * basic-block.h (struct loop): Rename `exits' field to + `exit_edges'. Add `entry_edges' and `num_entries' fields. + + * flow.c (flow_loop_exit_edges_find): Rename from flow_loop_exits_find. + (flow_loop_entry_edges_find): Add. + (flow_edge_list_print): Rename from flow_exits_print. + (flow_loops_find): Call flow_loop_entry_edges_find. + (flow_loop_dump): Dump entry_edges list. + (flow_loops_free): Free entry_edges. + +2000-08-26 Michael Hayes + + * loop.c (loop_dump_aux, debug_loop): New functions. + (LOOP_BLOCK_NUM_1, LOOP_BLOCK_NUM, LOOP_INSN_UID): New macros. + + * flow.c (flow_loops_dump): Add callback parameter. + (flow_loop_dump): Add callback parameter and call it. Move + loop note debugging code to loop_dump_aux. + + * basic-block.h (flow_loop_dump): Add callback parameter + (flow_loops_dump): Likewise. + + * toplev.c (rest_of_compilation): Add NULL callback function pointer + to call to flow_loops_dump. + +2000-08-26 Michael Hayes + + * loop.c (count_loop_regs_set): Replace start and end arguments + with loop argument. All callers udated. + +2000-08-26 Michael Hayes + + * loop.c (constant_high_bytes): Delete. + +2000-08-26 Michael Hayes + + * loop.c (prescan_loop): Move checks for NOTE_INSN_LOOP_CONT + and NOTE_INSN_LOOP_VTOP to... + (find_and_verify_loops) ...here. + +Fri Aug 25 04:21:13 2000 Alexandre Oliva + + * crtstuff.c (CRT_CALL_STATIC_FUNCTION): Define default. + (fini_dummy, init_dummy): Use it. + +Fri 25-Aug-2000 08:03:27 BST Neil Booth + + * cpplex.c (is_macro_disabled): Caller has already checked + that we're not a preprocessed file. + +2000-08-24 Mark Mitchell + + * Makefile.in (C_AND_OBJC_OBJS): Remove c-iterate.o. + (c-iterate.o): Remove target. + * gcc/c-common.h (enum rid): Remove RID_ITERATOR. + * gcc/c-decl.c (init_decl_processing): Remove call to init_iterators. + (finish_decl): Don't handle iterators. + (grokdeclarator): Likewise. + * gcc/c-parse.gperf: Remove __iterator and __iterator__ keywords. + * gcc/c-gperf.h: Regenerated. + * gcc/c-iterate.c: Removed. + * gcc/c-lex.c (init_lex): Don't handle iterators. + * gcc/c-parse.in (primary): Remove pop_iterator_stack call. + (compstmt_primary_start): Remove push_iterator_stack call. + (stmt): Don't allow iterator statements. Replace iterator_expand + with expand_expr_stmt. + (all_iter_stmt): Remove. + (all_iter_stmt_simple): Likewise. + (all_iter_stmt_with_decl): Likewise. + * gcc/c-tree.h (ITERATOR_P): Remove. + (ITERATOR_BOUND_P): Likewise. + (init_iterators): Remove declaration. + (iterator_expand): Likewise. + (iterator_for_loop_start): Likewise. + (iterator_for_loop_end): Likewise. + (iterator_for_loop_record): Likewise. + (push_iterator_stack): Likewise. + (pop_iterator_stack): Likewise. + * gcc/c-typeck.c (decl_constant_value): Don't check ITERATOR_P. + (readonly_warning): Likewise. + * gcc/tree.h (ITERATOR_BOUND_P): Don't mention it. + +2000-08-24 Jim Wilson + + * c-common.c (decl_attributes, case A_ALIGN): Revert last change. + Copy type in a TYPE_DECL, just like pushdecl does. + +2000-08-24 Richard Henderson + + * toplev.c (main): Enable flag_reorder_blocks at -O2. + +2000-08-24 Zack Weinberg + + * ggc-page.c (alloc_page): If HAVE_MMAP_ANYWHERE and we're + asked for one page, allocate GGC_QUIRE_SIZE of them and put + the extras on the free list. + (release_pages): Clean up. + (ggc_set_mark): Don't adjust G.allocated here... + (sweep_pages): ... do it here. + +2000-08-24 Zack Weinberg + + * cppfiles.c (read_include_file): Rearrange initializations. + +2000-08-24 Richard Henderson + + * stmt.c (expand_asm_operands): Treat EXTRA_CONSTRAINT like g or X. + + * config/ia64/ia64-protos.h: Update. + * config/ia64/ia64.c (gr_register_operand): New. + (fr_register_operand, grfr_register_operand): New. + (gr_nonimmediate_operand, grfr_nonimmediate_operand): New. + (grfr_reg_or_8bit_operand): New. + (gr_reg_or_0_operand): Rename from reg_or_0_operand and + use gr_register_operand. + (gr_reg_or_5bit_operand, gr_reg_or_6bit_operand): Likewise. + (gr_reg_or_8bit_operand, gr_reg_or_8bit_adjusted_operand): Likewise. + (gr_reg_or_8bit_and_adjusted_operand): Likewise. + (gr_reg_or_14bit_operand, gr_reg_or_22bit_operand): Likewise. + (fr_reg_or_fp01_operand): Likewise. + (not_postinc_memory_operand): New. + (ia64_split_timode): Remove unused variables. + (rtx_needs_barrier): Check arguments to cmpxchg. + (builtin_description): Remove. + (bdesc_2argsi, bdesc_2argdi): Remove. + (ia64_init_builtins): Declare all builtins directly. + (ia64_expand_fetch_and_op): Rewrite to be called from + ia64_expand_builtin directly. Use expand_binop and co. + (ia64_expand_op_and_fetch): Likewise. + (ia64_expand_compare_and_swap): Likewise. + (ia64_expand_binop_builtin): Remove. + (ia64_expand_lock_test_and_set): New. + (ia64_expand_lock_release): New. + (ia64_expand_builtin): Use them. + * config/ia64/ia64.h (CONSTRAINT_OK_FOR_S): New. + (EXTRA_CONSTRAINT): Use it. + (PREDICATE_CODES): Update. + * config/ia64/ia64.md (*): Use gr_register_operand and co. + (mf): Indicate that we set memory as well as use it. + (fetchadd_acq_si): Show memory being modified as well. + (fetchadd_acq_di, cmpxchg_acq_si, cmpxchg_acq_di): Likewise. + (val_compare_and_swap_si, val_compare_and_swap_di): Remove. + (lock_test_and_set_si, lock_test_and_set_di): Remove. + (fetch_and_add_si, fetch_and_sub_si, fetch_and_or_si): Remove. + (fetch_and_and_si, fetch_and_xor_si, fetch_and_nand_si): Remove. + (fetch_and_add_di, fetch_and_sub_di, fetch_and_or_di): Remove. + (fetch_and_and_di, fetch_and_xor_di, fetch_and_nand_di): Remove. + (add_and_fetch_di, sub_and_fetch_di, or_and_fetch_di): Remove. + (and_and_fetch_di, xor_and_fetch_di, nand_and_fetch_di): Remove. + (add_and_fetch_si, sub_and_fetch_si, or_and_fetch_si): Remove. + (and_and_fetch_si, xor_and_fetch_si, nand_and_fetch_si): Remove. + * config/ia64/ia64intrin.h (*): Cast result to the appropriate + return type. Pretty print definitions. + +2000-08-24 Jim Wilson + + * config/ia64/ia64.md (movdi): Don't call gen_movdi_symbolic if + we have a SYMBOL_REF with SYMBOL_REF_FLAG set. + +2000-08-24 Jason Merrill + + * dwarf2out.c (AT_flag, AT_int, AT_unsigned, AT_string, AT_ref, + AT_loc, AT_addr, AT_lbl): Abort on unsuitable input. + (get_AT_low_pc, get_AT_hi_pc, get_AT_string, get_AT_flag, + get_AT_unsigned, get_AT_ref): Don't call them if get_AT fails. + +2000-08-24 Greg McGary + + * optabs.c (init_optabs): Initialize fixtab, fixtrunctab, floattab, + and extendtab within their proper array boundaries. + * emit-rtl.c (init_emit_once): Pass `const_tiny_rtx' with bounds + for the entire array. + + * config/arm/arm.c (arm_override_options): Use ARRAY_SIZE. + * config/alpha/alpha.c (alpha_lookup_xfloating_lib_func): Likewise. + * config/avr/avr.c (order_regs_for_local_alloc): Likewise. + * config/fr30/fr30.c (fr30_print_operand): Likewise. + * config/i386/dgux.c (output_options): Likewise. + * config/i386/dgux.h (ASM_FILE_START): Likewise. + * config/m88k/m88k.c (output_options): Likewise. + * config/m88k/m88k.h (ASM_FILE_START): Likewise. + * config/mcore/mcore.c (mcore_output_inline_const_forced, + layout_mcore_frame, handle_structs_in_regs): Likewise. + * config/mips/mips.c (output_block_move): Likewise. + * config/rs6000/rs6000.c (rs6000_override_options, + rs6000_file_start): Likewise. + * config/sparc/sparc.c (sparc_add_gc_roots): Likewise. + * fixinc/fixfixes.c (FIX_TABLE_CT): Likewise. + * fixinc/fixtests.c (TEST_TABLE_CT): Likewise. + * builtins.c (expand_builtin_setjmp): Likewise. + * expr.c (safe_from_p): Likewise. + * flow.c (life_analysis): Likewise. + * fold-const.c (size_int_type_wide): Likewise. + * gcc.c (translate_options, init_spec, set_spec, main): Likewise. + * genattrtab.c (make_length_attrs): Likewise. + * genopinit.c (gen_insn): Likewise. + * genrecog.c (NUM_KNOWN_PREDS, NUM_SPECIAL_MODE_PREDS): Likewise. + * global.c (global_alloc): Likewise. + * local-alloc.c (find_free_reg): Likewise. + * mips-tdump.c (print_symbol): Likewise. + * mips-tfile.c (parse_def, parse_input): Likewise. + * reload1.c (NUM_ELIMINABLE_REGS): Likewise. + * stmt.c (expand_nl_goto_receiver): Likewise. + * stor-layout.c (set_sizetype): Likewise. + * varasm.c (decode_reg_name): Likewise. + * toplev.c (decode_f_option, decode_W_option, + set_target_switch, print_switch_values): Likewise. + (NUM_ELEM): Remove macro. + (display_help, main): s/NUM_ELEM/ARRAY_SIZE/ + +2000-08-24 Greg McGary + + * tree.h (enum tree_index): New member `TI_MAIN_IDENTIFIER'. + (MAIN_NAME_P, main_identifier_node): New macros. + * c-common.c (c_common_nodes_and_builtins): Init main_identifier_node. + * c-decl.c (start_decl, grokdeclarator, start_function, + store_parm_decls, finish_function): Use MAIN_NAME_P. + * config/avr/avr.c (function_prologue, function_epilogue): Likewise. + * config/i386/cygwin.h (SUBTARGET_PROLOGUE): Likewise. + * config/i386/win32.h (SUBTARGET_PROLOGUE): Likewise. + * config/pdp11/pdp11.c (output_function_prologue): Likewise. + +2000-08-24 Greg McGary + + * cppfiles.c (actual_directory): Don't write beyond `dir' + when it contains "". + * real.c (asctoeg): Stay within bounds of etens[][]. + +2000-08-24 Kaveh R. Ghazi + + * dependence.c (dependence_string, direction_string, + dump_one_node, dump_node_dependence): Hide unused identifiers. + (get_low_bound, normalize_coefficients): Match definition to + static prototype. + (get_one_coefficient): Initialize variables `value0_is_idx' and + `value1_is_idx'. + (ziv_test, gcd_test): Mark parameters with ATTRIBUTE_UNUSED. + (ziv_test): Delete variable `idx', use parameter `sub' instead. + (direction_merge): Avoid automatic aggregate initialization. + (have_dependence_p): Use `src' not `dest' to set `src_idx'. + Initialize variables `dest_idx' and `src_idx'. + (end_dependence_analysis): Avoid C89 style function definition. + +2000-08-24 Joseph S. Myers + + * c-common.c (time_char_table): Don't allow width with %F. + (check_format_info): Don't allow "Z" length with scanf. + +2000-08-24 Gabriel Dos Reis + + * diagnostic.c (finish_diagnostic): Define. + (output_do_printf): Use wrap_text instead of output_add_string. + (default_print_error_function): Avoid embedded '\n'. + + * diagnostic.h (flush_diagnostic_buffer): Declare. + +2000-08-23 Alexandre Oliva + + * dependence.c: Replace `[][]' with `[][MAX_SUBSCRIPTS]'. + +2000-08-23 Hans-Peter Nilsson + + * Makefile.in (GCC_PASSES): Add specs. + +2000-08-23 Jim Wilson + + * frame.h (IA64_UNW_EHANDLER, IA64_UNW_UHANDLER): New. + * config/ia64/frame-ia64.c (__get_personality): Return zero if neither + EHANDLER nor UHANDLER bit is set. + (__get_except_table): Likewise. + +2000-08-23 Nick Clifton + + * config/arm/lib1funcs.asm: Replace upper case condition codes + with lower case versions. + + * config/arm/arm.h (STRUCT_VALUE): Define. + (STRUCT_VALUE_REGNUM): Delete. + +2000-08-23 Zack Weinberg + + * cpphash.h (IN_I): New flag for directive table. + * cpplib.c (DIRECTIVE_TABLE): Mark #define, #undef, #ident, and + #pragma with IN_I. + (_cpp_check_directive): If -fpreprocessed, execute directives + marked with IN_I. Issue no warnings in this case. + * cpplex.c (_cpp_get_token): Expand no macros if -fpreprocessed. + +2000-08-23 Joseph S. Myers + + * c-common.c (print_char_table): Allow 'I' flag with %d, %i and + %u. + (check_format_info): Support printf 'I' flag; warn about it with + -pedantic. + +2000-08-23 Richard Earnshaw (rearnsha@arm.com) + + * arm.c (arm_expand_prologue): Ensure that the stack-adjustment + barrier can't be ignored by the alias analysis code. + +2000-08-12 Eli Zaretskii + + * fixinc/inclhack.def (sysv68_string): Fix the Sed script so it + works inside fixincl. + +Wed Aug 23 04:55:48 2000 Alexandre Oliva + + * simplify-rtx.c (simplify_rtx): Don't pass VOIDmode to + simplify_relational_operation() unless both operands are of + VOIDmode. + * cse.c (fold_rtx): Likewise. + +Tue Aug 22 23:53:27 EDT 2000 John Wehle (john@feith.com) + + * rtlanal.c (rtx_unstable_p): The pic register is stable + (within one function) and the actual rtx should be used + when checking the registers. + (rtx_addr_can_trap_p): Pic memory addresses can't trap. + + * alias.c (true_dependence, write_dependence_p): Fix + bug in previous patch. + + * i386.c (ix86_GOT_alias_set): New. + (legitimize_pic_address): Use it. + + * rtlanal.c (rtx_unstable_p): An unchanging MEM is + only stable if its address is stable. + (rtx_varies_p): An unchanging MEM can't vary if + its address doesn't vary. + +2000-08-22 Kaveh R. Ghazi + + * c-parse.in (unop +): Restrict -Wtraditional warnings to user code. + +2000-08-22 J. David Anglin + + * vax.h (ASM_SPEC): Pass `-J' to assembler. + * x-vax-gcc: New file for bootstrapping with gcc. + * x-vax: Use X_CFLAGS rather than X_CPPFLAGS to pass `-J'. + * configure.in: Use x-vax-gcc with gcc. + * configure: Rebuilt. + +Tue Aug 22 21:21:05 2000 J"orn Rennecke + + * toplev.c (rest_of_compilation): Rebuild label notes after + post-reload splitting pass if new labels have been created. + +2000-08-22 Gabriel Dos Reis + + * diagnostic.h (output_buffer_state): New macro. + * diagnostic.c (diagnostic_for_decl, sorry, + default_print_error_function, output_do_verbatim, + report_diagnostic, report_problematic_module): Use it. + (wrap_text): Tweak. + (output_format): Use wrap_text instead of maybe_wrap_text. + +2000-08-22 Nick Clifton + + * config/arm/lib1funcs.asm (ARM_DIV_MOD_BODY): New macro. + Common code for ARM divide and modulus functions. + (THUMB_DIV_MOD_BODY): New macro. Thumb equivalent of + ARM_DIV_MOD_BODY. + (FUNC_END): New macro: Common code at the end of the division and + modulo functions. + (THUMB_FUNCTION_START): New macro: Common code at the start of + Thumb functions. + (__divsi3, __udivsi3, __modsi3, __umodsi3): Use new macros. + +Tue Aug 22 20:34:52 2000 Kaz Kojima + + * config/sh/sh.md (cmpeqdi_t splitter): Fix a reverse testing. + + * config/sh/sh.c (prepare_scc_operands): Apply force_reg to + sh_compare_op1 when the mode is DImode and sh_compare_op1 isn't + const0_rtx. + +2000-08-22 Nick Clifton + + * config/arm/lib1funcs.asm (__umodsi3): Before performing any + restorative additions, test for bottom bits of IP being set, + rather than relying upon the RORs not matching. + (__modsi3): Ditto. + +2000-08-22 David Edelsohn + + * aix.h (ASM_DECLARE_FUNCTION_NAME): Call named_section() or + text_section() as appropriate instead of emitting text csect + pseudo-op directly. + (TEXT_SECTION_ASM_OP): Only require default 32-bit alignment. + (UNIQUE_SECTION): Define macro. + (ASM_OUTPUT_SECTION_NAME): Define macro. + * rs6000.c (rs6000_override_options): Disable -ffunction-sections + on AIX if debugging and -fdata-sections always. + +2000-08-22 Steven King + + * config/float-i386.h (LDBL_EPSILON): Remove __convert_long_double + machinery. + (LDBL_MAX): Same here. + +2000-08-22 Richard Henderson + + * flow.c (tidy_fallthru_edge): Update b->end properly. + +2000-08-22 Stan Cox + + * Makefile.in (OBJS): Add dependence.o. + * dependence.c: New file. + +2000-08-22 Alexandre Oliva , John David Anglin + + * calls.c (check_sibcall_argument_overlap_1): Adjust for + ARGS_GROW_DOWNWARD. + (check_sibcall_argument_overlap): Likewise. + +2000-08-22 Alexandre Oliva + + * invoke.texi (SH Options): Document -m4-nofpu, + -m4-single-only, -m4-single, -m4, -mbigtable, -mfmovd, + -mhitachi, -mnomacsave, -misize, -mpadstruct, -mspace. + +2000-08-22 Joseph S. Myers + + * c-common.c (check_format_info): Give the 'some locales' warning + for strftime %Ey rather than the unconditional 'only last 2 digits + of year' one. + +2000-08-22 Richard Henderson + + * alias.c (init_alias_analysis): Do not register + struct_value_incoming_rtx or static_chain_rtx as pointing + to stack memory. + +Tue Aug 22 01:44:43 2000 Jeffrey A Law (law@cygnus.com) + + * protoize.c (munge_compile_params): Fix typo and formatting buglets. + +2000-08-22 Gabriel Dos Reis + + * diagnostic.h (report_problematic_module): Declare. + * diagnostic.c (report_problematic_module): New function. + (report_error_function): Tweak. + +Tue Aug 22 02:31:26 2000 Richard Kenner + + * stmt.c (expand_goto_internal, fixup_gotos): Only check + TYPE_RETURNS_STACK_DEPRESSED for FUNCTION_TYPE. + +2000-08-21 Richard Henderson + + * flow.c (calculate_global_regs_live): Mark frame pointer live + everywhere before reload. + +2000-08-21 Jim Wilson + + * real.c (ereal_from_int, ereal_from_uint, significand_size): Handle + INTEL_EXTENDED_IEEE_FORMAT. + (toe64): Delete INTEL_EXTENDED_IEEE_FORMAT support. Unconditionally + clear last two bytes of output FP value. + +2000-08-21 Graham Stott + + * config/ia64/ia64.h (REDO_SECTION_INFO_P): Change decl to DECL. + +2000-08-21 Jakub Jelinek + + * unroll.c (loop_find_equiv_value): If ret is modified between + insn and loop_start, ret might not be equivalent to reg. + +2000-08-21 Joseph S. Myers + + * c-common.c (init_dollar_format_checking, + maybe_read_dollar_number, finish_dollar_format_checking): New + functions. + (dollar_arguments_used, dollar_arguments_count, + dollar_first_arg_num, dollar_max_arg_used, dollar_format_warned): + New variables. + (check_format_info): Support $ formats for scanf and printf width + and precision. Always increment format_chars to advance past the + '*' of precision, not just when the format parameters are + available to check. + +2000-08-21 Kaveh R. Ghazi + + * mips.c (block_move_loop, expand_block_move, + function_arg_partial_nregs, save_restore_insns, function_prologue, + mips_expand_prologue, RA_MASK): Avoid using the `U' integer + constant suffix. + (function_arg_advance, function_arg): Match argument to format + specifier `%p'. + +2000-08-21 Nix + + * gcc.c (do_spec_1): Implement %j spec flag. + Remove dead comment. + + * gcc.texi (The Configuration File): Document HOST_BIT_BUCKET. + * system.h (HOST_BIT_BUCKET): Default to "/dev/null". + * config/i386/xm-dos.h (HOST_BIT_BUCKET): Define as "NUL". + * config/i386/xm-os2.h, config/winnt/winnt.h: Likewise. + + * protoize.c (munge_compile_params): Use HOST_BIT_BUCKET (if + writable) instead of hardcoded value. + + * toplev.c (compile_file): Output to a file even if -fsyntax-only. + + * gcc.c, config/i386/xm-dos.h, config/i386/xm-os2.h: Kill + MKTEMP_EACH_FILE. + + * gcc.c (cc1_options): Do not process -o or run the assembler if + -fsyntax-only. + * objc/lang-spec.h: Likewise. + +2000-08-21 Eli Zaretskii + + * fixinc/fixincl.c (fix_with_system): Pipe the output of + "external" fixes through `cat', to avoid truncating the input + file by redirection. + +2000-08-21 Jakub Jelinek + + * config/i386/i386.md (lea_general_1): Copy insn condition to split + condition. + (lea_general_2, lea_general_3): Likewise. + +2000-08-21 Kaveh R. Ghazi + + * c-decl.c (duplicate_decls, define_label): Restrict -Wtraditional + warnings to user code. + + * c-lex.c (readescape, yylex): Likewise. + + * c-typeck.c (store_init_value, process_init_element): Likewise + (c_expand_start_case): Format. + +2000-08-18 Maciej W. Rozycki + + * mips/linux.h (LINK_SPEC): Use %(endian_spec). + + * mips/mips.h: Change LINKER_ENDIAN_SPEC to ENDIAN_SPEC + and linker_endian_spec to endian_spec. + (ENDIAN_SPEC): Add %{EB} and %{EL}. + (LINK_SPEC): Remove %{EB} and %{EL}. + (ASM_SPEC): Likewise. Use %(endian_spec). + +2000-08-21 Joseph S. Myers + + * c-tree.h (flag_hosted): Move declaration from here... + * c-common.h (flag_hosted): ... to here. + (flag_noniso_default_format_attributes): New declaration. + * c-decl.c (flag_noniso_default_format_attributes): New variable. + (c_decode_option): Set it appropriately for options choosing + language standard variant. + * c-common.c (init_function_format_info): Only provide default + format attributes if flag_hosted. Only provide the gettext + formats if flag_noniso_default_format_attributes. Update + comments. + (check_format_info): Disable treatment of %a as a scanf flag in + C99 mode. + +2000-08-21 Joseph S. Myers + + * c-common.c (scan_char_table): Add 'w' to flags for all formats + except 'n'. + (check_format_info): Set 'wide' for scanf format widths. Warn for + a zero scanf width. Make the check for writing into a constant + object at the first level of indirection; at later levels, warn if + any type qualifiers are encountered. + +Mon Aug 21 07:41:12 2000 Jeffrey A Law (law@cygnus.com) + + * reload.c (reload_inner_reg_of_subreg): New function broken out of + push_reload. + (push_reload): Use reload_inner_reg_of_subreg. + (combine_reloads): Do not combine reloads if the input reload + is a SUBREG in which the inner part will need reloading. + + * global.c (global_alloc): Avoid passing dumpfile argument to + reload routines. + * toplev.c (rest_of_compilation): Likewise. + * reload.h (reload): Remove dumpfile argument. Callers changed. + (debug_reload, debug_reload_to_stream): Move prototypes here. + * rtl.h (reload): Remove dumpfile argument. + * reload.c (debug_reload): Remove prototype. + (debug_reload_to_stream): Likewise. + * reload1.c: Avoid passing dumpfile around, rely on rtl_dump_file + instead. + +2000-08-21 Gabriel Dos Reis + + * diagnostic.c (context_as_prefix): Export. + (need_error_newline): Remove. + (lang_diagnostic_starter, lang_diagnostic_finalizer): New objects. + (error_module_changed, record_last_error_module, + error_function_changed, record_last_error_function): New functions. + (initialize_diagnostics): Default initialize + lang_diagnostic_starter, lang_diagnostic_finalizer. + (init_output_buffer): Tweak. + (file_name_as_prefix): New function. + (announce_function, default_print_error_function, + report_error_function, set_diagnostic_context): Tweak. + +2000-08-21 Richard Earnshaw + + * flow.c (init_propagate_block_info): Handle SUBREG in a jump + condition expression. + +2000-08-20 Richard Henderson + + * flow.c (merge_blocks_nomove): Don't seek back past the bb note. + +2000-08-20 Zack Weinberg + + * cppinit.c (cpp_init): Set global flag when called. + (cpp_reader_init): Bomb out if cpp_init hasn't been called. + +Sun Aug 20 01:41:35 2000 Dennis Chernoivanov + + * cpplex.c (cpp_scan_buffer): Move `output_line_command' just + before `process_directive' so that newlines won't be missed + for directives. + (cpp_printf): Increment `print->lineno' when newline is emitted. + + * cppmain.c (cb_ident): Likewise. + (cb_define): Likewise. + (cb_undef): Likewise. + (cb_include): Likewise. + (cb_def_pragma): Likewise. + (dump_macros_helper): Likewise. + +2000-08-20 Richard Henderson + + * config/ia64/ia64.c (emit_insn_group_barriers): Stop if ar.lc + assigned before a loop. + + * config/ia64/ia64.md (ashlsi3): Zero extend the shift count. + (ashrsi3, lshrsi3): Likewise. + +2000-08-20 Gabriel Dos Reis + + * c-lang.c: #include diagnostic.h + (c_tree_printer): New function. + (lang_init): Initialize lang_printer. + + * Makefile.in (c-lang.o): Depends on diagnostic.h + +2000-08-20 Gabriel Dos Reis + + * c-errors.c (pedwarn_c99): Adjust call to report_diagnostic. + + * diagnostic.c (default_diagnostic_starter, + default_diagnostic_finalizer): New functions. + (diagnostic_for_asm, diagnostic_for_decl): Tweak. + (pedwarn, pedwarn_with_file_and_line, error, + error_with_file_and_line, fatal, warning, + warning_with_file_and_line): Adjust call to report_diagnostic. + (report_diagnostic): Rework. + (set_diagnostic_context): New function. + + * diagnostic.h (struct diagnostic_context): New data structure. + (diagnostic_message, diagnostic_argument_list, + diagnostic_file_location, diagnostic_line_location, + diagnostic_is_warning, diagnostic_starter, diagnostic_finalizer, + diagnostic_finalizer, diagnostic_auxiliary_data): New macros. + (set_diagnostic_context): Declare. + (report_diagnostic): Change prototype. + +Sun 20-Aug-2000 09:25:45 BST Neil Booth + + * fix-header.c (main): Initialize cpplib. + +2000-08-19 Michael Meissner + + * ifcvt.c (find_if_block): Do not assume that a THEN block has any + instructions in it before checking for indirect jumps. + + * ifcvt.c (find_if_block): Do not consider a THEN block that ends + in an indirect jump as a potential for conditional execution. + + * d30v.h (d30v_init_expanders): Don't declare here. + * d30v-protos.h (d30v_init_expanders): Declare here with a valid + prototype. + +Sat 19-Aug-2000 21:11:45 BST Neil Booth + + * cpp.texi: Add @section for assertions. + +Sat Aug 19 12:37:08 EDT 2000 John Wehle (john@feith.com) + + * loop.c (scan_loop): Use CONST_CALL_P instead of + checking for REG_LIBCALL / REG_RETVAL. + +Sat Aug 19 09:18:47 2000 Jeffrey A Law (law@cygnus.com) + + * reload1.c (reload_as_needed): Accept dumpfile argument, + pass it to emit_reload_insns. + (emit_reload_insns): Add new dumpfile argument. If non-null + then dump the reloads for each insn into the dumpfile. + (reload): Pass dumpfile to reload_as_needed. + + * invoke.texi: Clean up linux-gnu vs linux comments. + +2000-08-19 Richard Henderson + + * config/ia64/ia64.c (reg_or_5bit_operand): New. + (ia64_depz_field_mask): New. + * config/ia64/ia64.h (CONSTRAINT_OK_FOR_R): New. + (PREDICATE_CODES): Update. + * config/ia64/ia64.md: Update commentary. + (depz_internal): New. + (ashlsi3): Implement directly. + (ashrsi3, lshrsi3): Simplify; rely on extv and extzv for constants. + (ashldi3): Use shladd. + * config/ia64/ia64-protos.h: Update. + +2000-08-18 Zack Weinberg + + * toplev.c (independent_decode_option): Always process -g. + Remove third argument, now unused. Adjust caller to match. + +2000-08-18 Richard Henderson + + * combine.c (make_compound_operation): Break after creating + the extraction. + +2000-08-18 Zack Weinberg + + * cpplib.c (cpp_register_pragma_space): Just return if the + namespace is already registered. + +2000-08-18 Ray Essick & Nick Clifton + + * config/mcore/mcore.md (rotlsi3): Allow allow rotations by a + constant amount. Do not generate ROTL instruction. + +Fri Aug 18 16:22:20 2000 Alexandre Oliva + + * config/sh/elf.h: Do not include sh/sh.h. + * config/sh/rtems.h: Likewise. + * config/sh/rtemself.h: Do not include sh/elf.h. + * configure.in: Get them included with `tm_file's. + * configure: Rebuilt. + + * config/sh/sh.md (fpu_switch0, fpu_switch1): Simplify. + * config/sh/sh.c (fpscr_set_from_mem): Use them. + +Fri Aug 18 14:23:18 2000 Richard Kenner + + * stor-layout.c (compute_record_type): Don't use mode of single + field as mode of record if not integer mode of same type. + + * regmove.c (perhaps_ends_bb_p): New function. + (optimize_reg_copy_1, optimize_reg_copy_2): Call it. + (optimize_reg_copy_3, fixup_match_2, regmove_optimize): Likewise. + (fixup_match_1): Likewise. + (fixup_match_1, combine_stack_adjustments_for_block): Add casts to + avoid signed/unsigned warnings. + + * function.c (fixup_var_refs_1, case MEM): Update CODE after + updating X. + +Fri 18-Aug-2000 18:33:45 BST Neil Booth + + * cpphash.h: Use HAVE_DESIGNATED_INITIALIZERS. + (_cpp_trigraph_map): Declaration moved from cpplex.c + + * cppinit.c: Define _cpp_trigraph_map. Use UCHAR_MAX + 1 + instead of 256. Use consistent test for designated initializers. + (cpp_init): Initialize trigraph_map. + (initialize_standard_includes, parse_option): Use memcmp + instead of strncmp. + + * cpplex.c (init_trigraph_map): Remove. + (trigraph_ok, trigraph_replace, lex_line): Refer to + _cpp_trigraph_map. + + * cpplib.c (str_match, WARNING, ERROR, ICE): Delete. + (do_unassert): Remove unused "next" local. + + * system.h (HAVE_DESIGNATED_INITIALIZERS): New prototype. + +2000-08-18 Emmanuel Marty + + * arm/lib1funcs.asm (_umodsi3 THUMB VARIANT): Restore deleted return + insn. + +2000-08-17 Richard Henderson + + * config/ia64/ia64.c (spill_restore_mem): Handle emitting + the first insn in a sequence. + +Thu Aug 17 22:40:05 EDT 2000 John Wehle (john@feith.com) + + * alias.c (true_dependence, write_dependence_p): A read + involving a label_ref or the constant pool doesn't create + a dependency. + + * rtl.h (unchanging): Improve documentation. + +2000-08-17 Rodney Brown + + * cse.c (insert_regs): Remove unused `regno'. + +2000-08-17 Neil Booth + + * (cppinit.c) merge_include_chains: Use remove_dup_dir, + remove_dup_dirs. If qtail == brack, remove brack not + qtail. + (remove_dup_dir, remove_dup_dirs): New functions. + +2000-08-17 Neil Booth + + * cppinit.c (cpp_cleanup): Free include dir chains. + * cpplib.c (do_undef): Let _cpp_free_definition make the node void. + (do_unassert): Free the assert with _cpp_free_definition. + * cppmacro.c (_cpp_free_definition): Free memory allocated for + assertions. Make the node a T_VOID node. + +2000-08-17 Neil Booth + + * cppinit.c (path_include, append_include_chain): + Remove 2nd parameter (struct cpp_pending *). + (path_include, initialize_standard_includes, cpp_handle_option): + Update callers appropriately. + (cpp_handle_option): Use pend. + +2000-08-17 Neil Booth + + * cppinit.c (sort_options): Remove, put functionality in + cpp_init. + (cpp_init): New. + (initialize_builtins): Free memory. + (cpp_start_read): Move init_IStable to cpp_init. + + * cpplib.h (cpp_init): New prototype. + * cppmain.c (main): Call cpp_init. + +Thu Aug 17 13:20:32 EDT 2000 John Wehle (john@feith.com) + + * rtlanal.c (rtx_unstable_p): Use CONSTANT_P. + (rtx_unstable_p, rtx_varies_p): Process vectors. + +2000-08-16 Niibe Yutaka , Kaz Kojima + + * config/sh/lib1funcs.asm (GLOBAL): Define. Use for all + references to GLOBAL symbols. Use LOCAL where appropriate. + +2000-08-16 Kaveh R. Ghazi + + * configure.in (*-ibm-aix4.[12]*): Delete test for gnu ld. Always + use t-aix41 when host == target. + +2000-08-16 Richard Henderson + + * reload.c (push_secondary_reload): Revert last change. + If we use a reload_in/out pattern, make the when the same + as the primary reload. + (find_reloads): Likewise. + +2000-08-16 Manfred Hollstein + + * configure.in (libstdcxx-v3): Fix test. + * configure: Regenerate. + +Wed Aug 16 08:10:32 2000 Richard Kenner + + * calls.c (calls_function_1, expand_call): Only test + TYPE_RETURNS_STACK_DEPRESSED for FUNCTION_TYPE. + * function.c (thread_prologue_and_epilogue_insns): Likewise. + +2000-08-16 Richard Henderson + + * combine.c (simplify_shift_const): Revert previous two + changes. If SHIFT_COUNT_TRUNCATED, crop the shift count + before the main loop. + +2000-08-15 Richard Henderson + + * combine.c (simplify_shift_const): Bound shift count when + combining shifts. + +Tue Aug 15 17:33:05 2000 Richard Kenner + + * calls.c (ECF_SP_DEPRESSED): New macro. + (calls_function_1): Treat calling sp-depressed function as alloca. + (emit_call_1): Don't adjust SP if calling sp-depressed function. + (expand_call): Set ECF_SP_DEPRESSED if TYPE_RETURNS_STACK_DEPRESSED. + If sp-depressed, ensure block saves and restores SP. + * fold-const.c (extract_muldiv): Only check TYPE_IS_SIZETYPE + for INTEGER_TYPE. + * function.c (keep_stack_depressed): New function. + (thread_prologue_and_epilogue_insns): Call it. + * print-tree.c (print_node): Use HOST_WIDE_INT_PRINT_UNSIGNED + to print DECL_OFFSET_ALIGN. + Print no-force-blk and transparent-union flags properly. + * stmt.c (expand_goto_internal): Don't restore stack if last block + and function returns with sp depressed. + (fixup_gotos): Likewise. + (save_stack_pointer): New function, from code in expand_decl. + (expand_decl): Call new function. + * tree.h (TYPE_IS_SIZETYPE): Call INTEGER_TYPE_CHECK. + (TYPE_RETURNS_STACK_DEPRESSED): New macro. + (save_stack_pointer): New declaration. + + * diagnostic.c (fatal_function): New variable. + (set_fatal_function): New function. + (fatal): Call it. + * diagnostic.h (set_fatal_function): New declaration. + +2000-08-15 William Cohen + + * config/sh/elf.h (DWARF2_DEBUGGING_INFO): Defined. + (PREFERRED_DEBUGGING_TYPE): Set to dwarf2 info. + (DWARF2_ASM_LINE_DEBUG_INFO): Defined. + +2000-08-15 Richard Henderson + + * flow.c (mark_used_reg): Set reg_cond_reg appropriately. + +2000-08-15 Richard Earnshaw + + * arm.c (arm_function_ok_for_sibcall): New function. + * arm.h (FUNCTION_OK_FOR_SIBCALL): Define. + * arm.md (call expanders): Don't check here for calls that can't + be sibling calls. + +2000-08-15 Richard Earnshaw + + * arm.md (splits generating cond_exec): Disable. + +2000-08-15 Richard Earnshaw + + * arm/linux-elf.h (text_section): Delete declaration. + +2000-08-15 Richard Earnshaw + + ARM support for unordered FP operations. + * arm-protos.h (arm_comparison_operator): Declare. + * arm.c (arm_comparison_operator): New function. + (arm_select_cc_mode): Add unordered comparison codes. + (get_arm_condition_code): Likewise. + (arm_final_prescan_insn): Can't handle unordered jumps that can't + be done in one insn. + * arm.h (PREDICATE_CODES): Add arm_comparison_operator. + * arm.md (all uses of comparison_operator): Replace with + arm_comparison_operator. + (bunordered, bordered, bugt, bunlt, bunge, bunle, buneq, bltgt): New + expands. + (arm_buneq, arm_bltgt, arm_buneq_reversed, arm_bltgt_reveresed): New + patterns. + +Tue Aug 15 00:36:36 2000 Ovidiu Predescu + + * gthr-posix.h: Conditionally include ; include + from libobjc/. + +2000-08-14 Richard Henderson + + * config/i386/i386.c (legitimize_pic_address): Use Pmode + for all CONSTs. + +2000-08-14 Richard Henderson + + * configure.in (ia64-*): Set float_format for i386 long double. + + * real.c (GET_REAL): Treat 128-bit INTEL_EXTENDED_IEEE_FORMAT + as we would for i386 XFmode. + (PUT_REAL): Likewise. + (endian, ereal_atof, real_value_truncate): Likewise. + (ereal_isneg, toe64, etens, make_nan): Likewise. + * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Likewise. + + * config/ia64/ia64-protos.h: Update. + * config/ia64/ia64.c (general_tfmode_operand): New. + (destination_tfmode_operand): New. + (tfreg_or_fp01_operand): New. + (ia64_split_timode): New. + (spill_tfmode_operand): New. + (ia64_expand_prologue): Use TFmode not XFmode. + (ia64_expand_epilogue): Likewise. + (ia64_function_arg): Likewise. + (ia64_function_arg_advance): Likewise. + (ia64_return_in_memory): Likewise. + (ia64_function_value): Likewise. + (ia64_print_operand): Likewise. + (ia64_register_move_cost): Set GR<->FR to 5. + (ia64_secondary_reload_class): Get GR for TImode memory op. + * config/ia64/ia64.h (ROUND_TYPE_SIZE): Remove. + (ROUND_TYPE_ALIGN): Remove. + (LONG_DOUBLE_TYPE_SIZE): Set to 128. + (INTEL_EXTENDED_IEEE_FORMAT): Define. + (HARD_REGNO_NREGS): Use TFmode, not XFmode. + (HARD_REGNO_MODE_OK): Likewise. Disallow TImode in FRs. + (MODES_TIEABLE_P): Use TFmode, not XFmode. + (CLASS_MAX_NREGS): Likewise. + (ASM_OUTPUT_LONG_DOUBLE): Output by 4 byte hunks. + (PREDICATE_CODES): Update. + * config/ia64/ia64.md (movti): New. + (movti_internal): Use a clobber for memory alternatives. + (reload_inti, reload_outti): New. + (movsfcc_astep): Predicate properly. + (movdfcc_astep): Likewise. + (movxf): Remove. + (movtf): New. + (extendsftf2, extenddftf2): New. + (trunctfsf2, trunctfdf2): New. + (floatditf2, fix_trunctfdi2): New. + (floatunsditf2, fixuns_trunctfdi2): New. + (addtf3, subtf3, multf3, abstf2): New. + (negtf2, nabstf2, mintf3, maxtf3): New. + (maddtf3, msubtf3, nmultf3, nmaddtf3): New. + (cmptf): New. + (fr_spill): Use TFmode, not XFmode. + (fr_restore): Likewise. + * config/ia64/lib1funcs.asm (__divtf3): New. + * config/ia64/t-ia64 (LIB1ASMFUNCS): Add it. + +2000-08-14 Kaveh R. Ghazi + + * cse.c (fold_rtx): Avoid empty body in an if-statement. + + * doloop.c (doloop_iterations_max, doloop_modify): Avoid using the + `U' integer constant suffix. + + * dwarf2out.c (add_subscript_info): Avoid empty body in an + else-statement. + + * sparc/sol2.h (__enable_execute_stack): Prototype. + +2000-08-14 David Edelsohn + + * collect2.c: Remove use of AIX import file. + + * longlong.h: Test ARCH_PWR not ARCH_POWER. + + * rs6000.c (print_operand, case 'E'): Add else. + +2000-08-14 Richard Henderson + + * config/ia64/ia64.md (movdi): Delay calling ia64_expand_load_address. + (movdi_symbolic): New. + +2000-08-14 Jim Wilson + + * config/ia64/ia64.h (ASM_SPEC): Pass -mconstant-gp and -mauto-pic + to GNU as. For Intel as, pass -M const_gp and -M no_plabel. + * config/ia64/linux.h (ASM_SPEC): Pass -mconstant-gp and -mauto-pic + to GNU as. + +2000-08-14 Richard Henderson + + * expr.c (emit_group_load): Don't force constants into registers. + Special case source already in the correct mode. + +2000-08-14 Zack Weinberg + + * configure.in: Accept *-*-linux* not just *-*-linux-gnu*. + * fixinc/inclhack.def: Likewise. + * fixinc/mkfixinc.sh: Likewise. + * configure: Regenerate. + * fixinc/fixincl.x: Regenerate. + * install.texi: Document equivalence of linux and linux-gnu. + +Mon Aug 14 18:51:44 2000 J"orn Rennecke + + * cse.c (insert_regs): Also in REG case: When finding an invalid + value, and we make a new quantity, make sure that it won't be + mistaken by for a valid one by mention_regs. + +2000-08-13 Ralf Gütlein + + * h8300.md: Remove obsolete peepholes. + +2000-08-13 Kazu Hirata + + * invoke.texi (H8/300 Options): Fix typos. + * config/h8300.c: Fix formatting. + * config/h8300.h: Fix comment typos. + (OVERRIDE_OPTIONS): Fix formatting. + + * function.c: Fix formatting. + + * cse.c: Fix formatting. + +2000-08-13 Geoff Keating + + * flow.c (attempt_auto_inc): Remove unused variable `bb'. + (attempt_auto_inc): Suppress parentheses warning. + * function.c (put_reg_into_stack): Remove unused variable `unsigned_p'. + * loop.c (load_mems): Remove `u' suffix in two places. + * config/rs6000/rs6000.c: Remove unnecessary `u' suffixes from + hex constants. + * config/rs6000/rs6000.h: Likewise. + * config/rs6000/sol-c0.c: Prototype some functions. Remove the + __eabi dummy routine. + * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Remove unused + variable `buf_ptr'. + + * config/rs6000/rs6000.c (rs6000_select_section): Rewrite to + not put stuff in .sdata unnecessarily. + (rs6000_unique_section): New function. + * config/rs6000/rs6000-protos.h: Add rs6000_unique_section. + * config/rs6000/sysv4.h (UNIQUE_SECTION): Define. + + * c-typeck.c (build_array_ref): Don't complain about non-lvalue + arrays in C99. Don't try to look at DECL_REGISTER of a + COMPONENT_REF. Don't complain twice about the same error. + + * fixinc/inclhack.def (aix_pthread): New fix. + (aix_sysmachine): New fix. + * fixinc/fixincl.x: Regenerate. + + * expr.c (expand_expr): Call convert_modes when turning a large + multiply into a small one. + +2000-08-12 Geoff Keating + + * tree.h (DECL_OFFSET_ALIGN): Make the off_align field of + the tree structure an exponent rather than an explicit alignment + so it doesn't overflow. + (SET_DECL_OFFSET_ALIGN): New macro. + * stor-layout.c (place_union_field): Use SET_DECL_OFFSET_ALIGN + rather than DECL_OFFSET_ALIGN. + (place_field): Likewise. + * expmed.c (store_bit_field): Abort on align==0 to avoid + antisocial machine behavior. + +2000-08-12 Richard Henderson + + * sibcall.c (uses_addressof): Accept both addressof and + current_function_internal_arg_pointer inside a mem. + (optimize_sibling_and_tail_recursive_call): Fail tail recursion + if current_function_uses_addressof. + * stmt.c (expand_return): Kill tail recursion and HAVE_return + optimizations. + +2000-08-11 Richard Henderson + + * config/ia64/ia64.md (addsi3): Remove expander. + (subsi3, mulsi3, negsi2, one_cmplsi2): Likewise. + (*addsi3_shladd): New. + +2000-08-11 Richard Henderson + + * config/ia64/ia64.c (do_spill): Pass cfa offset to move expander. + (do_restore): Likewise. + (gen_movdi_x, gen_fr_spill_x, gen_fr_restore_x): New. + (ia64_expand_prologue, ia64_expand_epilogue): Use them. + (rtx_needs_barrier): Track actual bit manipulation for + ar.unat moves, gr_spill, and gr_restore. + (emit_insn_group_barriers): Special case gr_spill/gr_restore. + (process_set): Don't handle varargs spills. + * config/ia64/ia64.md (gr_spill): Accept cfa offset. Emit + .mem.offset here instead of in process_set. + (gr_restore): Likewise. + +2000-08-11 Richard Henderson + + * config/ia64/ia64.h (PROMOTE_MODE): Only extend to SImode. + +2000-08-11 Mark Elbrecht + + * gcc.texi (The Configuration File): Document + COLLECT2_HOST_INITIALIZATION, GCC_DRIVER_HOST_INITIALIZATION, and + UPDATE_PATH_HOST_CANONICALIZATION. + +2000-08-11 Kaveh R. Ghazi + + * c-parse.in (cast_expr): Avoid -Wstrict-prototype warnings for + unprototyped function pointer casts on integer constants. + +2000-08-11 Laurynas Biveinis + + * fixproto: Recognize DOS paths with drive letters as absolute paths. + +2000-08-11 Nathan Sidwell + + * extend.texi (Volatiles): Fix typos. + +2000-08-11 Kazu Hirata + + * flow.c: Fix formatting. + +2000-08-11 Richard Henderson + + * reload.c (push_secondary_reload): When invoking a reload_{in,out} + pattern, always allocate a tertiary scratch register. + + * config/alpha/alpha.md (reload_inqi): Use a DImode scratch. + (reload_inhi): Likewise. + +2000-08-11 Richard Henderson + + * function.c (put_reg_into_stack): Allow type to be NULL. + (schedule_fixup_var_refs): Likewise. + (gen_mem_addressof): Allow decl to be NULL. + (put_addressof_into_stack): Likewise. + + * flow.c (merge_blocks_nomove): Be more careful about + locating the beginning of block A. + + * combine.c (simplify_shift_const): Obey SHIFT_COUNT_TRUNCATED. + +Thu Aug 10 22:47:09 2000 Ovidiu Predescu + + * configure.in: + * configure: + * gthr-posix.h: + * config.in: Reverted the check for . + +2000-08-10 Chris Demetriou + + * mips/elf.h (CTOR_SECTION_NAME, DTOR_SECTION_NAME): New + macros define the name of CTOR and DTOR sections. + (CTOR_LIST_BEGIN, CTOR_LIST_END, DTOR_LIST_BEGIN, + DTOR_LIST_END): Change to use attributes to specify + sections. + * mips/elf64.h (CTOR_SECTION_NAME, DTOR_SECTION_NAME, + (CTOR_LIST_BEGIN, CTOR_LIST_END, DTOR_LIST_BEGIN, + DTOR_LIST_END): Same as in mips/elf.h. + +2000-08-10 Drew Moseley + + * config/mn10300/mn10300.h: Added no-crt0 option for explicitly + disabling just crt0.o. + +2000-08-10 Richard Earnshaw & Nick Clifton + + * arm.h (CPP_SPEC): Use sub-spec cpp_interwork. + (CPP_INTERWORK_SPEC, CPP_INTERWORK_DEFAULT_SPEC): New sub-specs. + (EXTRA_SPECS): Add them. + * arm/lib1funcs.asm: Support builds for interworking. + Use macros to eliminate duplicated pieces of code. + +2000-08-10 Kazu Hirata + + * h8300.c (expand_a_rotate): New. + (emit_a_rotate): Likewise. + (h8300_adjust_insn_length): Add support for the rotate insns. + * h8300.md (rotlqi3): New. + (*rotlqi3_1): Likewise. + (rotlhi3): Likewise. + (*rotlhi3_1): Likewise. + (rotlhi3): Likewise. + (*rotlhi3_1): Likewise. + * h8300-proto.h: Add prototypes for expand_a_rotate and + emit_a_rotate. + + * h8300.c: Fix comment typos. + (dosize): Declare the variable amount as unsigned. + (get_shift_alg): Fix a comparison between signed and unsigned. + (emit_a_shift): Likewise. + (h8300_adjust_insn_length): Simplify the code. + + * c-decl.c: Fix formatting. + +2000-08-10 Kaveh R. Ghazi + + * c-lex.c (parse_float, yylex): For -Wtraditional, issue a + warning about non-traditional numeric constant suffixes. + + * cppexp.c (parse_number): Likewise. + + * invoke.texi: (-Wtraditional): Document new behavior. + +Thu Aug 10 00:11:04 2000 Ovidiu Predescu + + * gthr-posix.h: Include auto-host.h. Conditionally include + . + * configure.in: Check for the header file. + * config.in: Added define for HAVE_SCHED_H. + +2000-08-09 Kaveh R. Ghazi + + * c-typeck.c (process_init_element): For -Wtraditional, warn about + initialization of unions. + + * invoke.texi (-Wtraditional): Document new behavior. + +2000-08-09 Zack Weinberg + + * configure.in (--enable-c-cpplib): Uncomment. Use AC_DEFINE + instead of extra_c_flags. + (--enable-c-mbchar): Use AC_DEFINE instead of extra_c_flags. + * configure: Regenerate. + * config.in: Regenerate. + + * cpperror.c (cpp_type2name): New function. + * cpplex.c (lex_line): If we issued an error for an invalid + preprocessing directive, discard that logical line. + * cpplib.c (do_line): Call a hook function if the current file + is renamed by #line. + (do_ident): Pass the contents of the string, not the entire + token, to the callback function. + * cpplib.h (CPP_LAST_PUNCTUATOR): New #define. + (cb.rename_file): New hook function. + (cb.ident): Adjust prototype. + (cpp_type2name): Prototype. + * cppmacro.c (dump_macro_args): Correct precedence lossage. + + * cppmain.c (cb_ident): Update for changed interface. + (cb_rename_file): New function. + (main): Set rename callback. + +2000-08-09 Alexandre Oliva + + * caller-save.c (mark_referenced_regs): Mark partially-overwritten + multi-word registers. + +2000-08-08 Joseph S. Myers + + * c-common.c (combine_strings, check_format_info): Refer to ISO C + or ISO C89 instead of ANSI C. + * c-decl.c (grokdeclarator, xref_tag, finish_struct, + build_enumerator, do_case): Likewise. + * c-lex.c (parse_float, yylex): Likewise. + * c-parse.in: Likewise. + * c-typeck.c (common_type, build_array_ref, build_binary_op, + build_unary_op, pedantic_lvalue_warning, build_conditional_expr, + build_c_cast, convert_for_assignment, set_init_index, + set_init_label, c_expand_start_case): Likewise. + * toplev.c (documented_lang_options, display_help): Likewise. + +2000-08-08 Kazu Hirata + + * h8300.c: Fix formatting. + * h8300.h: Likewise. + * h8300.md: Likewise. + (movsi_h8300hs): Fix formatting of the resulting assembly code. + + * reload1.c: Fix formatting. + +2000-08-08 Rodney Brown + + * alpha/alpha.c (alpha_emit_xfloating_libcall): + Use GEN_CALL_VALUE define. + * alpha/alpha.md (untyped_call): Use GEN_CALL define. + * clipper/clipper.md (untyped_call): Likewise. + * dsp16xx/dsp16xx.md (untyped_call): Likewise. + * fx80/fx80.md (untyped_call): Likewise. + * mips/mips.md (untyped_call): Likewise. + * ns32k/ns32k.md (untyped_call): Likewise. + * pa/pa.md (untyped_call): Likewise. + * romp/romp.md (untyped_call): Likewise. + * sparc/sparc.md (untyped_call): Likewise. + +2000-08-08 Jason Eckhardt + + * config/i860/i860.c (singlemove_string): Do not generate assembler + pseudo instructions that must be expanded (that is, with signed + constants larger than 16 bits). + +2000-08-08 Richard Henderson + + * flow.c (life_analysis): Only turn off PROP_LOG_LINKS and + PROP_AUTOINC at -O0. Don't collect alias info at -O0. + (init_propagate_block_info): Don't kill memory stores at -O0. + (mark_set_1, mark_used_regs): Likewise. + +2000-08-08 David Edelsohn + + * rs6000.c (optimization_options): Decorate 'level' as + ATTRIBUTE_UNUSED. + (mask64_operand): Remove sign-extend thinko. + (rldic_operand): New function. + (load_multiple_operation): regno's are unsigned ints. + (store_multiple_operation): Likewise. + (lmw_operation): Likewise. + (stmw_operation): Likewise. + (includes_lshift_p): shift_mask is unsigned int. + (includes_lshift64_p): New function. + (addrs_ok_for_quad_peep): unsigned int reg1. + (print_operand): Consistently add "else" after + output_operand_lossage(). + (print_operand, case 'b'): Fold in case 'W'. + (print_operand, case 'W'): Print rldic MB value. + (output_epilogue): Update Objective-C language string. + (output_toc): unsigned HOST_WIDE_INT low, compare unsigned. + * rs6000.h (PREDICATE_CODES): Add rldic_operand. + * rs6000.md (ashldi3): Add rldic instruction. + (iordi3, xordi3): Remove redundant "else if CONST_DOUBLE". + (cmpsi_internal2, cmpdi_interal2): Use 'b' output template + modifier. + +2000-08-08 Richard Henderson + + * config/ia64/ia64-protos.h: Remove duplicates. Update + for massive code rearrangements. + * config/ia64/ia64.c (ia64_arpfs_regno): Remove. + (ia64_rp_regno, ia64_fp_regno, ia64_input_regs): Remove. + (ia64_local_regs, ia64_need_regstk): Remove. + (ar_ccv_reg_operand): New. + (ia64_gp_save_reg): New. + (struct ia64_frame_info): Combine most of the size elements; + add new gr save elements. + (find_gr_spill): New. + (next_scratch_gr_reg): New. + (mark_reg_gr_used_mask): New. + (ia64_compute_frame_size): Rewrite. Allocate special AR regs + to GR backing store regs when possible. + (ia64_initial_elimination_offset): New. + (ia64_rap_fp_offset): Remove. + (save_restore_insns): Remove. + (setup_spill_pointers): New. + (finish_spill_pointers): New. + (spill_restore_mem): New. + (do_spill, do_restore): New. + (ia64_expand_prologue): Rewrite to use them. + (ia64_expand_epilogue): Likewise. + (ia64_direct_return): Update for current_frame_info changes. + (ia64_function_prologue): Simplify .prologue emission. Emit + .spill when needed. + (ia64_setup_incoming_varargs): Don't ever emit rtl. + (ia64_dbx_register_number): New. + (ia64_initialize_trampoline): New. + (ia64_secondary_reload_class): Request GR_REGS for integer + arithmetic destined for FR_REGS. + (ia64_init_machine_status): Don't reset return_address_pointer_rtx. + (ia64_mark_machine_status): Mark ia64_gp_save. + (rws_access_regno): Rename from rws_access_reg; don't treat + predicates specially. + (rws_access_reg): New. Update all callers. + (rtx_needs_barrier): Remove dead unspecs. + (ia64_epilogue_uses): Mark ar.pfs and ar.unat live on exit. + (ia64_encode_section_info): Silence signed/unsigned warnings. + (spill_offset, sp_offset, spill_offset_emitted): Remove. + (tmp_reg, tmp_saved): Remove. + (process_set): Rewrite to expect complicated bits via + REG_FRAME_RELATED_EXPR. + (ia64_expand_fetch_and_op): Use emit_move_insn; be explicit + in the use of ar.ccv; never set RTX_UNCHANGING_P. + (ia64_expand_op_and_fetch): Likewise. + (ia64_expand_compare_and_swap): Likewise. + (ia64_expand_builtin): Likewise. + * config/ia64/ia64.h (AR_UNAT_REGNUM): New. + (FIRST_PSEUDO_REGISTER): Update. + (AR_M_REGNO_P): Update. + (FIXED_REGS): Don't mark three local registers as used. + (EXTRA_CC_MODES): New. + (SELECT_CC_MODE): New. + (HARD_REGNO_NREGS): Allow DImode in p0; handle CCImode. + (HARD_REGNO_MODE_OK): Disallow CCImode from non-predicates. + (FRAME_GROWS_DOWNWARD): Unset. + (STARTING_FRAME_OFFSET): Zero. + (ELIMINABLE_REGS): Eliminate from the soft to hard frame pointer. + (INITIAL_ELIMINATION_OFFSET): Defer to out of line function. + (HARD_FRAME_POINTER_REGNUM): New. + (CAN_DEBUG_WITHOUT_FP): Define. + (TRAMPOLINE_TEMPLATE): Remove. + (TRAMPOLINE_SIZE): Lower to 32. + (TRAMPOLINE_ALIGNMENT): Lower to 64. + (INITIALIZE_TRAMPOLINE): Defer to out of line function. + (PREDICATE_CODES): Update. + (struct machine_function): Add ia64_gp_save. + * config/ia64/ia64.md: Purge unused unspecs. + (movsi patterns): Allow moves to/from AR_M_REGS. + (movdi patterns): Allow moves to/from p0. + (call patterns): Move most setjmp hackery to ia64_gp_save_reg. + (gr_spill, gr_restore): Indicate ar.unat read/written. + (nonlocal_goto): Don't pass old frame_pointer. + (nonlocal_goto_receiver): Remove. + (exception_receiver): New. + (builtin_setjmp_setup): New. + (builtin_setjmp_receiver): New. + * config/ia64/lib1funcs.asm (__ia64_save_stack_nonlocal): Bundle. + (__ia64_nonlocal_goto): Bundle. Don't kill r7. + (__ia64_restore_stack_nonlocal): Likewise. + (__ia64_trampoline): New. + * config/ia64/sysv4.h (DBX_REGISTER_NUMBER): Defer to out of line + function. + * config/ia64/t-ia64 (LIB1ASMFUNCS): Add __trampoline. + +2000-08-08 Richard Henderson + + * frame.h (ia64_frame_state): Add my_psp. + * libgcc2.c (ia64_throw_helper): Add throw_sp argument. + (__throw): Pass it in. Don't clobber r7. + * config/ia64/frame-ia64.c (init_ia64_reg_loc): Mark inline. + (execute_one_ia64_descriptor) [mem_stack_v]: Sets psp.when + and nothing to do with sp. + (normalize_reg_loc): Use frame->my_psp. + (frame_translate): Handle frame-pointer-less functions. Set + spill_base correctly, in absence of being told. + (__build_ia64_frame_state): New sp argument. Fill in frame->my_sp. + (__ia64_backtrace_helper): New sp argument. Use + builtin_return_address instead of label addresses. + (print_record) [mem_stack_v]: No size member. + +2000-08-08 Richard Henderson + + * regclass.c (choose_hard_reg_mode): Iterate over all CC modes. + +2000-08-08 Richard Henderson + + * tm.texi (LOCAL_REGNO): Document. + * flow.c (LOCAL_REGNO, EPILOGUE_USES): Provide default. + (mark_regs_live_at_end): Don't mark LOCAL_REGNO registers. + * reload1.c (reload): Likewise when considering nonlocal labels. + + * config/ia64/ia64.h (LOCAL_REGNO): New. + * config/sparc/sparc.h (LOCAL_REGNO): New. + +2000-08-08 Joseph S. Myers + + * c-lex.c (yylex): Don't allow integer suffixes 'LUL', 'Ll', 'lL'. + +2000-08-07 Nick Clifton + + * config/mips/mips.c: Fix compile time warning messages. + * config/mips/mips-protos.h: Add prototype for equality_op. + + * mn10300.h (TARGET_SWITCHES): Document `-mam33'. + +2000-08-07 Graham Stott + + * mn10300.md: Use nonimmediate_operand instead of general_operand + on output operands. + + * mn10300.h (PREFERRED_RELOAD_CLASS): Limit memory reloads. + +2000-08-07 Alexandre Oliva + + * sh.h (EXTRA_CONSTRAINT_Q): Adjust to GNU Coding Standards. + * sh.c (expand_block_move): Break long lines. + (expand_ashiftrt, fpscr_set_from_mem): Likewise. + * sh.md (mulsi3): Likewise. + (movdi): Adjust spacing. + +2000-08-07 Richard Henderson + + * expmed.c (store_bit_field): Don't require MEM_IN_STRUCT_P. + * expr.c (emit_group_store): Don't set it. + +2000-08-07 Kazu Hirata + + * invoke.texi (Options for Debugging Your Program or GCC): Remove + duplicate entries for 'w' and 'z'. + + * flow.c: Fix a comment typo. + +Sun Aug 6 23:47:35 2000 Ovidiu Predescu + + * c-parse.in: Changed the language string for Objective-C to "GNU + Objective-C". + +Sun Aug 6 11:54:03 2000 Ovidiu Predescu + + * gthr-posix.h: Integrated Chris Ball's changes + to improve the Posix thread support for Objective-C. + +2000-08-06 Joseph S. Myers + + * c-common.h (enum c_tree_index): Add CTI_SIGNED_SIZE_TYPE and + CTI_UNSIGNED_PTRDIFF_TYPE. + (signed_size_type_node): Define. + (unsigned_ptrdiff_type_node): Define. + * c-decl.c (init_decl_processing): Create the + signed_size_type_node and unsigned_ptrdiff_type_node types. + * c-common.c (T_SC): Define. + (T_SST): Define. + (T_UPD): Define. + (print_char_table): Use T_SST for %zd, %zi, %zn. Use T_UPD for + %to, %tu, %tx, %tX. Allow %hhn (T_SC). Add "c" to the flags for + %s and %p. + (scan_char_table): Use T_SC for %hhd, %hhi, %hhn. Use T_SST for + %zd, %zi, %zn. Use T_UPD for %to, %tu, %tx, %tX. Add "c" to the + flags for %c, %s and %[. + (check_format_info): Only allow leniency for signedness of targets + of character pointers (when pedantic) for formats flagged with + "c", so for strings but not for %hh formats. When pedantic, don't + allow character pointers to substitute for void pointers if a + second level of indirection is present. + +2000-08-06 Kazu Hirata + + * invoke.texi (Options for Debugging Your Program or GCC): Update + the names of dump files. + + * h8300.c (dosize): Rearrange code for conciseness. + (split_adds_subs): Likewise. + + * loop.c: Fix formatting. + + * dwarf2out.c: Fix formatting. + + * tm.texi (FUNCTION_ARG_PARTIAL_NREGS): Fix a typo. + + * expr.c: Fix formatting. + +2000-08-06 Kaveh R. Ghazi + + * rs6000.c (rs6000_maybe_dead): Prototype. + +2000-08-06 Richard Henderson + + * stmt.c (expand_goto): Do virtual_stack_vars_rtx replacement for + HAVE_nonlocal_goto as well. + * config/i960/i960.md (nonlocal_goto): Don't do it here. + * config/pj/pj.md (nonlocal_goto): Likewise. + +2000-08-07 Michael Hayes + + * loop.c (try_swap_copy_prop): New function. + (load_mems): Rename copies to load_copies and add new regset + store_copies. Check for sets of shadow registers and mark + in store_copies. Call try_swap_copy_prop for registers + marked in store_copies. + +Sun Aug 6 00:54:42 2000 Ovidiu Predescu + + * objc/objc-act.c: New command line option -fconstant-string-class + to allow specifying a user defined constant string class, + different from NXConstantString. + + * toplev.c: Moved the Objective-C specific options to + objc/lang-options.h. + + * objc/lang-options.h: Moved the Objective-C specific options from + toplev.c. Added -fconstant-string-class. + +2000-08-05 Chris Demetriou + + * mips/elf.h (CTOR_LIST_BEGIN, CTOR_LIST_END, + DTOR_LIST_BEGIN, DTOR_LIST_END): change type of + __CTOR_LIST__ from func_ptr array to just func_ptr, to + avoid extra alignment imposed on arrays. + * mips/elf64.h (CTOR_LIST_BEGIN, CTOR_LIST_END, + DTOR_LIST_BEGIN, DTOR_LIST_END): Likewise. + + * mips.h: Clean up comments and spacing near MASKs. + (TARGET_UNIX_ASM): Delete. + (MASK_MIPS16, MASK_NO_CHECK_ZERO_DIV, MASK_CHECK_RANGE_DIV, + MASK_UNINIT_CONST_IN_RODATA): Change values to make mask + values contiguous. + +2000-08-05 Joseph S. Myers + + * c-common.c (print_char_table): Add entries for the X/Open ' + format flag (print decimals with locale's thousands grouping + character). Make %C expect wint_t. + (check_format_info): If pedantic, warn when the %n$ operand + number form is used. Allow for the ' flag; warn about it if + pedantic. + +2000-08-05 Zack Weinberg + + * i386.h (FUNCTION_OK_FOR_SIBCALL): Not OK if DECL's return + type is a float mode, cfun->decl's return type is not, and + TARGET_FLOAT_RETURNS_IN_80387. + +2000-08-04 Andreas Schwab + + * cppmain.c (cb_def_pragma): Skip the first two tokens from the + token list, which are always `#' and `pragma'. + +2000-08-04 Zack Weinberg + + * tree.c (tree_expr_nonnegative_p): Move to... + * fold-const.c: ... here. Also handle BIND_EXPR and RTL_EXPR. + (rtl_expr_nonnegative_p): New. + * tree.h: Add prototype for rtl_expr_nonnegative_p. + + * real.h (CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH, CONST_DOUBLE_MEM, + CONST_DOUBLE_CHAIN: Move to... + * rtl.h: ...here. Use XCINT/XCEXP. + + * Makefile.in: Remove toplev.o from OBJS. Add rule to make + libbackend.a; add libbackend.a to STAGESTUFF. Add BACKEND + variable. Use BACKEND when linking cc1, not OBJS. Add BACKEND + to VOL_FILES. + + * objc/Make-lang.in (cc1obj): Link with $(BACKEND). + +2000-08-05 Herman A.J. ten Brugge + + * config/c4x/c4x.md (return_indirect_internal): New. + * config/c4x/c4x.c (c4x_expand_epilogue): Use it. + +2000-08-04 Joseph S. Myers + + * c-common.c (time_char_table): Mark up formats added in C99 and + make other corrections. %D and %g were added in C99. %Og is an + extension. %EX is permitted. %R, %T, %n, %r, %t were added in + C99. %e was added in C99. %Oj is an extension. %G and %z are in + C99 rather than GNU extensions, but %OG and %Oz are extensions. + %h was added in C99. %C was added in C99. %OY and %OC are + extensions. Add the C99 format %F. + (check_format_info): If pedantic and not in C99 mode, warn for C99 + formats, %E and %O. + +Fri Aug 4 23:01:58 2000 J"orn Rennecke + + * function.c (schedule_fixup_var_refs): New function, broken out + of put_reg_into_stack. + (put_reg_into_stack): Use it. + (put_var_into_stack): In CONCAT case, fixup up references for + components only after fixing up references to the whole concat. + +2000-08-04 Rodney Brown + + * alias.c (mark_constant_function): Use INSN_P. + (init_alias_analysis): Likewise. + * combine.c (combine_instructions): Use INSN_P. + (can_combine_p): Likewise. + (try_combine): Likewise. + (distribute_notes): Likewise. + (distribute_links): Likewise. + * cse.c (cse_around_loop): Use INSN_P. + (invalidate_skipped_block): Likewise. + (cse_set_around_loop): Likewise. + (cse_end_of_basic_block): Likewise. + (delete_trivially_dead_insns): Likewise. + * emit-rtl.c (unshare_all_rtl_again): Use INSN_P. + (unshare_all_rtl_1): Likewise. + (next_cc0_user): Likewise. + (try_split make_insn_raw): Likewise. + (remove_unnecessary_notes): Likewise. + * final.c (shorten_branches): Use INSN_P. + (leaf_renumber_regs): Likewise. + (leaf_renumber_regs_insn): Likewise. + * flow.c (find_label_refs): Use INSN_P. + (verify_wide_reg): Likewise. + (notice_stack_pointer_modification): Likewise. + (count_or_remove_death_notes): Likewise. + (verify_flow_info): Likewise. + (clear_log_links): Likewise. + * function.c (fixup_var_refs_insns): Use INSN_P. + (compute_insns_for_mem): Likewise. + * gcse.c (alloc_gcse_mem): Use INSN_P. + (compute_sets): Likewise. + (compute_hash_table): Likewise. + (classic_gcse): Likewise. + (cprop): Likewise. + (insert_insn_end_bb): Likewise. + (delete_null_pointer_checks_1): Likewise. + * global.c (expand_preferences): Use INSN_P. + (build_insn_chain): Likewise. + * graph.c (node_data): Use INSN_P. + * haifa-sched.c (priority): Use INSN_P. + (rm_line_notes): Likewise. + (rm_other_notes): Likewise. + (find_insn_reg_weight): Likewise. + (init_target_units): Likewise. + (schedule_block): Likewise. + (compute_block_forward_dependences): Likewise. + (debug_dependencies): Likewise. + (set_priorities): Likewise. + * integrate.c (function_cannot_inline_p): Use INSN_P. + (save_parm_insns): Likewise. + (copy_insn_list): Likewise. + * jump.c (mark_all_labels): Use INSN_P. + (never_reached_warning): Likewise. + * lcm.c (optimize_mode_switching): Use INSN_P. + * local-alloc.c (validate_equiv_mem): Use INSN_P. + (memref_used_between_p): Likewise. + (update_equiv_regs): Likewise. + (block_alloc): Likewise. + (no_conflict_p): Likewise. + * loop.c (scan_loop): Use INSN_P. + (find_and_verify_loops): Likewise. + (count_loop_regs_set): Likewise. + (loop_reg_used_before_p): Likewise. + (strength_reduce): Likewise. + (recombine_givs): Likewise. + (check_dbra_loop): Likewise. + (load_mems): Likewise. + (try_copy_prop): Likewise. + * print-rtl.c (print_rtx): Use INSN_P. + * recog.c (find_single_use): Use INSN_P. + * reg-stack.c (stack_regs_mentioned): Use INSN_P. + (next_flags_user): Likewise. + (swap_rtx_condition): Likewise. + * regmove.c (mark_flags_life_zones): Use INSN_P. + (optimize_reg_copy_1): Likewise. + (optimize_reg_copy_2): Likewise. + (optimize_reg_copy_3): Likewise. + (reg_is_remote_constant_p): Likewise. + (fixup_match_2): Likewise. + (regmove_optimize): Likewise. + (fixup_match_1): Likewise. + * regrename.c (build_def_use): Use INSN_P. + (replace_reg_in_block): Likewise. + (consider_use): Likewise. + * reload.c (find_equiv_reg): Use INSN_P. + * reload1.c (reload): Use INSN_P. + (maybe_fix_stack_asms): Likewise. + (calculate_needs_all_insns): Likewise. + (reload_as_needed): Likewise. + (emit_output_reload_insns): Likewise. + (delete_address_reloads_1): Likewise. + (reload_cse_regs_1): Likewise. + (reload_combine): Likewise. + (reload_cse_move2add): Likewise. + * reorg.c (redundant_insn): Use INSN_P. + (dbr_schedule): Likewise. + * resource.c (find_dead_or_set_registers): Use INSN_P. + (mark_target_live_regs): Likewise. + * rtlanal.c (reg_used_between_p): Use INSN_P. + (reg_referenced_between_p): Likewise. + (reg_set_between_p): Likewise. + (reg_set_p): Likewise. + (single_set): Likewise. + (multiple_sets): Likewise. + (find_last_value): Likewise. + (reg_set_last): Likewise. + (find_reg_note): Likewise. + (find_regno_note): Likewise. + * sibcall.c (sequence_uses_addressof): Use INSN_P. + * simplify-rtx.c (cselib_process_insn): Use INSN_P. + * ssa.c (find_evaluations): Use INSN_P. + (rename_block): Likewise. + (rename_equivalent_regs): Likewise. + * unroll.c (loop_find_equiv_value): Use INSN_P. + (set_dominates_use): Likewise. + * varasm.c (mark_constant_pool): Use INSN_P. + (mark_constants): Likewise. + * config/alpha/alpha.c (alpha_does_function_need_gp): Use INSN_P. + (alphaev4_next_group): Likewise. + (alphaev5_next_group): Likewise. + * config/c4x/c4x.c (c4x_process_after_reload): Use INSN_P. + (c4x_rptb_rpts_p): Likewise. + * config/mips/mips.c (mips16_optimize_gp): Use INSN_P. + * config/rs6000/rs6000.c (uses_TOC): Use INSN_P. + (rs6000_adjust_priority): Likewise. + * config/sh/sh.c (sh_loop_align): Use INSN_P. + (machine_dependent_reorg): Likewise. + (split_branches): Likewise. + * config/tahoe/tahoe.c (tahoe_cmp_check): Use INSN_P. + +Fri Aug 4 11:43:49 2000 John Wehle (john@feith.com) + + * combine.c (recog_for_combine): Remove the old notes + prior to attempting to recognize the new pattern. + (distribute_notes): Ignore REG_NONNEG notes. + +2000-08-04 Chandrakala Chavva + + * varasm.c (output_constructor): Add .align 0 for packed vars. + +2000-08-04 J. David Anglin + + * configure.in: Use default thread_file even when enable_threads is + yes or dce because hpux10.20 pa port uses MULTILIB implementation. + * configure: Rebuilt. + + * gthr-dce.h (__gthread_objc_condition_allocate): Fix typo. + +2000-08-04 Donn Terry (donnte@microsoft.com) + + * prefix.c (translate_name): Don't strip trailing DIR_SEPARATOR. + +2000-08-04 Mark Elbrecht + + * i386/x-djgpp: Delete code that conditionally modifies target_alias. + Delete code that conditionally modifies 'version'. + Delete X_CPPFLAGS. Add comment for SYSTEM_HEADER_DIR. + * i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): New macro. + * gcc.c (main): Use it. + * config/i386/xm-djgpp.h (UPDATE_PATH_HOST_CANONICALIZE): New macro. + * prefix.c (update_path): Use it. + * i386/djgpp.h (STANDARD_INCLUDE_DIR): Define. + (MD_EXEC_PREFIX): Set to '/dev/env/DJDIR/bin/'. + (ASM_OUTPUT_SECTION_NAME): Add code attribute to sections containing + code. + (SUPPORTS_WEAK, SUPPORTS_ONE_ONLY): Default to true. + (SUBTARGET_SWITCHES): Adjust. + (WCHAR_UNSIGNED, WCHAR_TYPE_SIZE, WCHAR_TYPE): Undefine before + defining. + (WINT_TYPE, SIZE_TYPE, PTRDIFF_TYPE): Define. + +2000-08-04 Joseph S. Myers + + * c-common.h (flag_isoc94): Declare. + * c-decl.c (flag_isoc94): Define. + (c_decode_option): Set flag_isoc94 as appropriate. + * c-common.c (T_PD, T_IM, T_UIM): Define. + (format_char_info): Add tlen and jlen. + (print_char_table): Add entries for %t and %j. Allow %zn. Allow + %F. Allow %lf. + (scan_char_table): Add entries for %t and %j. Allow %F. Allow + %l[. + (time_char_table): Add NULL entries for %t and %j. + (check_format_info): Allow for %t and %j. Warn for %F if pedantic + and not C99. Warn for %lc, %ls and %l[ if pedantic and not C94. + Warn for printf %lf if pedantic and not C99. Don't warn for empty + precision. Allow precision argument to be unsigned int. If + pedantic, warn for %p passed an argument not a pointer to possibly + qualified void or a possibly qualified character type, and for + pointer targets of the wrong sign, except for character pointers. + +2000-08-04 Joseph S. Myers + + * ginclude/stddef.h: Don't declare wint_t unless __need_wint_t. + * c-common.h (enum c_tree_index): Add CTI_WINT_TYPE. + (wint_type_node): Define. + * c-decl.c (WINT_TYPE): Define. + (init_decl_processing): Create the wint_type_node type. + * c-common.c (T_WI): Define. + (print_char_table): Use T_WI for %lc format. + +2000-08-04 Bruce Korb + + * fixinc/: Verified that the MSDOS patch does not break + the UNIX functionality and applied the next three patches + from July: + +2000-07-28 Eli Zaretskii + + * fixinc/fixfixes.c (main) [__MSDOS__]: Avoid overwriting the + output file with the temporary one by appending ".X" to generate + the temporary fuile's name. If the output file already has an + extension, replace it with ".X". + + * fixinc/fixincl.c (fix_with_system) [__MSDOS__]: Use $ORIGDIR, + not $DESTDIR, to find applyfix. Use sprintf instead of snprintf; + reallocate the command buffer while copying the command-line + argument. Redirect the output directly to the temporary file, + instead of going through another temporary file. + (process): Close the temporary file before unlinking it. + (machine_matches) [__MSDOS__]: If the machine doesn't match, set + the FD_SKIP_TEST flag. Pay attention to the FD_MACH_IFNOT flag. + (run_compiles): Pass p_fixd argument to machine_matches, as it + expects. + + * fixinc/fixincl.sh: Export ORIGDIR. If $DJDIR is set in the + environment, assume there are no symlinks in the include + directory. When cleaning up the DONE files, look for them + case-insensitively. Don't try to remove symlinks if they aren't + there. + + * fixinc/fixlib.c (make_raw_shell_str): Accept new argument smax; + all callers changed. Declare pz "const char *", to avoid compiler + warnings. + + * fixinc/fixlib.h (ENV_TABLE): Get ORIGDIR from the environment. + Change prototype of make_raw_shell_str. + +2000-07-27 Eli Zaretskii + + * fixinc/fixincl.c [__MSDOS__]: Don't include "server.h". + (initialize) [__MSDOS__]: Use tempnam. + (initialize): Don't use SIGPIPE if it is not defined. + + * fixinc/fixfixes.c (main) [__MSDOS__]: freopen for stdout should + return stdout. + +2000-07-25 Bruce Korb + + * fixinc/fix*.[ch]: substantially reworked to make it possible + to run this program without using fork(2) or pipe(2) (i.e. in + a DOS environment). + +2000-08-04 Joseph S. Myers + + * cppdefault.h (WINT_TYPE): Define. + * cppinit.c (builtin_array): Define __WINT_TYPE__. + * tradcpp.c (initialize_builtins): Define __WINT_TYPE__. + * tm.texi (NO_BUILTIN_WINT_TYPE, WINT_TYPE): Document. + +Fri Aug 4 06:53:46 2000 Clinton Popetz + + * (mips_legitimate_address_p): Don't allow register+offset + if the offset is large and negative, and we are compiling + for 64 bit registers. + +2000-08-04 Herman A.J. ten Brugge + + * gencodes.c (main): Define CODE_FOR_nothing as the last possible + insn_code_number + 1. + +2000-08-04 Kazu Hirata + + * h8300.c (function_prologue): Rearrange code for conciseness. + (function_epilogue): Likewise. + * h8300.h (OK_FOR_U): Fix formatting. + + * cse.c: Fix a comment typo. Fix formatting. + +2000-08-03 Richard Henderson + + * config/i386/i386.md (return_indirect_internal): New. + * config/i386/i386.c (ix86_expand_epilogue): Use it. + +2000-08-03 Zack Weinberg + + * cpplex.c (parse_name): Might have to glue a CPP_OTHER token + before the name. + (lex_line): Glue @ onto the beginning of identifiers and + string constants, in Objective-C mode. + (output_token, spell_token): Handle CPP_OSTRING. + (can_paste, maybe_paste_with_next): Handle pasting @ onto the + beginning of a NAME or a STRING, in objc mode. + + * cpplib.c (get_define_node): Do not permit identifiers that + begin with @ to be #defined. + * cppmacro.c (CAN_PASTE_AFTER): Add CPP_OTHER. + * cpplib.h (TTYPE_TABLE): Add CPP_OSTRING. + + * c-lang.c, objc/objc-act.c (build_objc_string): Delete. + * c-tree.h (build_objc_string): Delete prototype. + * objc/objc-tree.def: Delete OBJC_STRING_CST. + * c-lex.c (yylex): Use build_string for all three kinds of strings. + + * c-parse.in, objc/objc-act.c: Update commentary. + +2000-08-03 Mark Mitchell + + * extend.texi: Fix typo in last change. + + * extend.texi: Add commentary on statement-expressions and their + interactions with C++. + +2000-08-03 Nick Clifton + + * dwarf2.h (DW_LANG_Java): Change value to 0x000b. + * dwarf.h (LANG_JAVA): Change value to 0x000b. + +2000-08-03 Anthony Green + + * dwarf2out.c (gen_compile_unit_die): Add java language support. + (add_bound_info): Check for java language. + (is_java): New function. + * dwarfout.c (output_compile_unit_die): Ditto. + * dwarf.h (dwarf_source_language): Add java source language type. + * dwarf2.h (dwarf_source_language): Ditto. + +Thu Aug 3 20:32:25 MET DST 2000 Jan Hubicka + + * reg-stack.c (subst_stack_regs_pat): Use replace_reg to swap + operands. + + * i386.c (ix86_expand_branch): Mode of comparison in + IF_THEN_ELSE is VOIDmode. + +Thu Aug 3 10:05:53 2000 Akiko Matsushita + + * gengenrtl.c, rtl.c: Avoid #elif. + +2000-08-03 Michael Poole + + * tm.texi (Register Classes): Clarify order of sub-initializers + in REG_CLASS_CONTENTS. + +Thu Aug 3 15:53:03 2000 J"orn Rennecke + + From SAITOH Masanobu: + * sh.h (ASM_OUTPUT_REG_PUSH): Fix syntax. + +2000-08-03 David Billinghurst + + * config/i386/cygwin.h: Remove -remap from CPP_SPEC since this option + is not supported by tradcpp and isn't actually needed for cygwin. + +2000-08-03 Kazu Hirata + + * h8300.c: Fix a comment typo. + * h8300.h (OK_FOR_U): Accept a 32-bit constant address on H8S. + + * jump.c: Fix formatting. + + * toplev.c: Fix formatting. + +Thu Aug 3 01:05:32 2000 Jeffrey A Law (law@cygnus.com) + + * flow.c (find_auto_inc): Verify that we've got a REG before + peeking at its regno. Fail, don't abort if we can't find + the increment of the desired register. + + * pa.md (shadd height reduction patterns/splitters): Remove. + +2000-08-02 Jim Wilson + + * config/ia64/ia64-protos.h (flag_ssa): Declare. + * config/ia64/ia64.md (movti_internal, movti_internal+1): New. + +2000-08-02 Mark Mitchell + + * dce.c: Remove all uses of assert. + * dwarf2out.c: Likewise. + * dwarfout.c: Likewise. + * ssa.c: Likewise. + +2000-08-02 Zack Weinberg + + * gcc.h (lang_specific_driver): Constify second argument. + * gcc.c (translate_options, process_command, main): Likewise. + Constify variables to match. Cast second argument to + pexecute. + + * cppspec.c, gccspec.c: Adjust type of second argument to + lang_specific_driver, and update code as necessary. + +2000-08-02 Jakub Jelinek + + * loop.c (scan_loop): Ensure update_end label does not + go away until reg_scan_update is run. + +2000-08-02 Zack Weinberg + + * c-common.h: Prototype min_precision and c_build_qualified_type here... + * c-tree.h: ... not here. + * errors.h: Prototype fancy_abort. + + * emit-rtl.c (gen_lowpart_common): Move variable 'c' into + HOST_BITS_PER_WIDE_INT == 64 ifdef block. + * regrename.c (regrename_optimize): Make control flow explicit. + (replace_reg_in_block): Initialize reg_use to 0. + + * i386.c (legitimate_address_p): Rename error label to + report_error to avoid namespace clash. + +2000-08-02 Kazu Hirata + + * fold-const.c: Fix formatting. + +Wed Aug 2 16:26:15 MET DST 2000 Jan Hubicka + + * i386.c (legitimate_address_p): Accept other bases than + pic_offset_table_rtx for GOTOFF constructs. + +Wed Aug 2 15:59:34 MET DST 2000 Jan Hubicka + + * i386.md (shift to lea splitter): Use const_int_operand. + +2000-08-02 Zack Weinberg + + * cppexp.c, cppinit.c, cpplex.c, cpplib.c, cppmacro.c, + cppspec.c: Do not use 'legal' or 'illegal' in error messages + and comments. + + * cppmain.c (cb_define, cb_undef): Don't generate any output + if not done_initializing. + * cpplex.c (maybe_paste_with_next): When the token after a ## + is an omitted rest argument, only delete the token before it + if that token is a comma. Do not warn about bogus token + pastes for , ## rest_arg. + + * cpp.texi: Update. + * cpp.1: Regenerate. + +2000-08-02 Fred Fish + + * config/i386/beos-elf.h (STARTFILE_SPEC): Add i386-mcount.o + when user gives -p option. Add init_term_dyn.o for BeOS 5.0 + and later. + + * config/i386/beos-elf.h (INCLUDE_DEFAULTS): Add additional + Be directories to search path. + + Remove support for __declspec(dllimport) and __declspec(dllexport). + This is leftover cruft from the earlier BeOS gcc port when BeOS + used Microsoft's PE object file format. + * configure.in (i*86-*-beoself): Remove extra_objs=winnt.o. + * config/i386/t-beos (winnt.o): Remove Makefile frag. + * config/i386/beos-elf.h (TARGET_NOP_FUN_DLLIMPORT): Remove. + (VALID_MACHINE_DECL_ATTRIBUTE): Remove. + (VALID_MACHINE_TYPE_ATTRIBUTE): Remove. + (MERGE_MACHINE_DECL_ATTRIBUTES): Remove. + (REDO_SECTION_INFO_P): Remove. + (ASM_EXPORT_DECL): Remove. + (ASM_DECLARE_FUNCTION_NAME): Remove. + (ASM_DECLARE_OBJECT_NAME): Remove. + (ASM_OUTPUT_ALIGNED_COMMON): Remove. + (ASM_OUTPUT_ALIGNED_DECL_COMMON): Remove. + (ASM_OUTPUT_ALIGNED_LOCAL): Remove. + (STRIP_NAME_ENCODING): Remove. + + Remove support for obsolete version of BeOS that is no longer + supported by Be. + * configure.in (i*86-*-beospe*): Remove. + * config/i386/beos-pe.h: Remove. + +2000-08-01 Jeffrey Oldham + Mark Mitchell + + * Makefile.in (OBJS): Added dce.o. + (ssa.o): Updated target to include ssa.h. + (flow.o): Likewise. + (toplev.o): Likewise. + (dce.o): Created target. + * basic-block.h: Added comments. + (INVALID_BLOCK): Added definition. + (connect_infinite_loops_to_exit): Added declaration. + Moved SSA declarations to ssa.h. + * flow.c: Added inclusion of ssa.h. + (struct depth_first_search_dsS, depth_first_search_ds): + Added definitions. + (compute_immediate_postdominators): Added definition. + (connect_infinite_loops_to_exit): Likewise. + (flow_dfs_compute_reverse_init): Likewise. + (flow_dfs_compute_reverse_add_bb): Likewise. + (flow_dfs_compute_reverse_execute): Likewise. + (flow_dfs_compute_reverse_finish): Likewise. + * rtl.h (rtx/in_struct): Added use to determine insn necessity. + (LABEL_P): Added definition. + (JUMP_P): Likewise. + (NOTE_P): Likewise. + (BARRIER_P): Likewise. + (JUMP_TABLE_DATA_P): Likewise. + (INSN_DEAD_CODE_P): Likewise. + * ssa.c: Replaced inclusions with ssa.h inclusion. + (CONVERT_HARD_REGISTER_TO_SSA_P): Moved to ssa.h. + (rename_registers): Removed unnecessary variables. + * ssa.h: Created by moving declarations from ssa.c and + basic-block.h. + * timevar.def: Defined TV_DEAD_CODE_ELIM. + * toplev.c: Added ssa.h inclusion. + (dump_file_index): Added DFI_dce. + (dump_file): Added "dce" entry. + Defined flag_ssa. + (f_options): Added dce entry. + * invoke.texi: Document -fdce. Emphasize experimental status of + -fssa. + * dce.c: New file. + +2000-08-01 Zack Weinberg + + * cpperror.c (v_message): Split into _cpp_begin_message and + v_message macro. All callers updated. + (_cpp_begin_message): Do inhibit_errors/inhibit_warnings + checks here. + + * cppfiles.c (cpp_syshdr_flags): New function. + (read_include_file): Don't call cpp_output_tokens. Call + enter_file hook. + * cppinit.c (dump_macros_helper): Moved to cppmain.c. + (cpp_reader_init): Don't initialize token_buffer. Call + _cpp_init_internal_pragmas. + (cpp_cleanup): Don't clear token_buffer. + (cpp_start_read): Don't worry about output from -D processing. + Don't call cpp_output_tokens. + (cpp_finish): Don't dump macros here. Don't call + cpp_output_tokens. + * cppmacro.c (_cpp_dump_definition): Rename + cpp_dump_definition. Write directly to a FILE *. + (dump_funlike_macro): Delete. + (dump_macro_args): New. + + * cpplex.c (TOKEN_LEN): Convert to inline function. + (_cpp_grow_token_buffer, safe_fwrite, cpp_output_tokens, + cpp_scan_line, _cpp_dump_list): Delete. + (cpp_printf, cpp_output_list): New. + (output_line_command): Don't worry about entering or leaving files. + (cpp_scan_buffer): Just output each token as we hit it. + (process_directive): Don't call cpp_output_tokens. + (_cpp_glue_header_name): Don't use token_buffer. + (output_token, dump_param_spelling): Write directly to a FILE *. + + * cpplib.c (pass_thru_directive, dump_macro_name, + pragma_dispatch, do_pragma_gcc): Delete. + (do_define, do_undef, parse_include, do_line, do_ident, do_pragma, + do_pragma_poison, cpp_pop_buffer): Call the appropriate hook + functions. + (do_error, do_warning, pragma_dependency): Call + _cpp_begin_message, then cpp_output_list. + (cpp_register_pragma, cpp_register_pragma_space, + _cpp_init_internal_pragmas): New. + (do_pragma): Walk the pragmas table here. + (do_pragma_once, do_pragma_poison, do_pragma_system_header, + do_pragma_dependency): Return void. + (do_pragma_implementation): Moved to cppmain.c. + + * cpplib.h: Update prototypes. + (struct cpp_reader): Remove printer, token_buffer, + token_buffer_size, and limit. Add struct cb, and pragmas. + (struct cpp_printer): Remove last_id and written. + (CPP_WRITTEN, CPP_PWRITTEN, CPP_SET_WRITTEN, + CPP_ADJUST_WRITTEN): Delete. + * cpphash.h: Update prototypes. + (ufputs): New wrapper. + + * cppmain.c (cb_define, cb_undef, cb_include, cb_ident, + cb_enter_file, cb_leave_file, cb_def_pragma): New functions. + (main): Set up callbacks. Register #pragma implementation. + Dump macros from here. + +2000-08-01 Geoff Keating + + * rtl.h (enum reg_note): Add REG_MAYBE_DEAD. + * rtl.c (reg_note_name): Add REG_MAYBE_DEAD. + * flow.c (propagate_one_insn): Allow deletion of prologue/epilogue + insns if they have a REG_MAYBE_DEAD note attached. + * config/rs6000/rs6000.c (rs6000_maybe_dead): New function. + (rs6000_emit_load_toc_table): TOC loads may go dead. + +2000-08-01 Jim Wilson + + * config/ia64/ia64.c (ia64_function_arg): Fix last change. Verify + type exists before using it. Use number of words as alignment + otherwise. + (ia64_function_arg_partial_nregs, ia64_function_arg_advance, + ia64_va_arg): Propagate ia64_function_args changes here. + +2000-08-01 Richard Henderson + + * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Care for null DECL. + * config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise. + +2000-08-01 Bernd Schmidt + + From Joern Rennecke: + * sh.h (CPP_SPEC, TARGET_SWITCHES): Add m4-nofpu. + * sh.md (udivsi3, divsi3): Don't use libcalls that use the FPU + unless TARGET_SH3E is set. + * t-sh (MULTILIB_MATCHES): Add m2=m4-nofpu. + + * sh.md (ashlsi3_d, ashlsi3_k): Remove, replace with + (ashlsi3_std): New pattern. + (ashlsi3 expander): Use it for TARGET_SH3. + * sh.c (gen_ashift): Use it instead of ashlsi3_k. + +Tue Aug 1 12:34:21 MET DST 2000 Jan Hubicka + + * loop.c (canonicalize_condition): Use destination, not source to + determine SET's mode. + +2000-07-31 Mark Mitchell + + * flow.c (clear_log_links): Fix typo. + +Mon Jul 31 22:19:24 2000 Jeffrey A Law (law@cygnus.com) + + * loop.c (check_dbra_loop): Make change from July 17, 2000 work + on targets which need more than one insn for a compare/cbranch + operation. + +2000-07-31 Jim Wilson + + * config/ia64/ia64.c (ia64_function_arg): Use alignment not size + when computing offset. + +Mon Jul 31 20:35:50 2000 Denis Chertykov + + * genpeep.c (main): Handle DEFINE_PEEPHOLE2. + +2000-07-31 Geoff Keating + + * flow.c (clear_log_links): Nuke global_live_at_start and + global_live_at_end data, since if the log_links stuff is invalid + so is global_live_at_*. + +2000-07-31 Richard Henderson + + * tm.texi (Addressing Modes): Clarify PRE/POST_MODIFY descriptions. + +2000-07-31 Jakub Jelinek + + * cpplex.c (_cpp_get_line): If index is 0, return line 0 col 0. + (_cpp_get_token): Don't macro expand a just pasted token if it + was pasted at no_expand_level. + +2000-07-31 Zack Weinberg + + * cppmacro.c (find_param, count_params, save_expansion): + Permit 'defined' as a macro parameter name. + +2000-07-31 Zack Weinberg + + * Makefile.in: Rename cpp to cpp0, tradcpp to tradcpp0, and + xcpp to cpp throughout. + (native): Remove unnecessary dependency on cpp. + + * gcc.c (trad_capable_cpp, C specs): Rename cpp to cpp, + tradcpp to tradcpp0. + (.i spec): Add missing output-file spec to cc1 command line. + * objc/lang-specs.h: Rename cpp to cpp0 and/or tradcpp to tradcpp0. + +2000-07-31 Zack Weinberg + + * c-decl.c (mesg_implicit_function_declaration): Init to -1. + (implicit_decl_warning): New function. + (implicitly_declare): Use it. + * c-typeck.c (build_external_ref): Use implicit_decl_warning + to complain about implicit decls of builtins. + + * c-lang.c (lang_init): Set mesg_implicit_function_declaration + based on pedantic && flag_isoc99, if not already set. + * c-tree.h: Declare mesg_implicit_function_declaration. + Prototype implicit_decl_warning. + +2000-07-30 Jeffrey D. Oldham + + * Makefile.in (ssa.o): Updated header files in dependences. + * basic-block.h: Added compute_immediate_postdominators declaration. + * config/i386/i386.h (CONVERT_HARD_REGISTER_TO_SSA_P): Added + definition. + * flow.c (compute_immediate_dominators): Updated comment. + (compute_immediate_postdominators): Added definition. + * rtl.h (HARD_REGISTER_P): Added definition. + * ssa.c: Include additional header files. + (assert): Added definition. + (ssa_rename_to_lookup): Added to reimplement ssa_rename_to to + include select hard registers. + (ssa_rename_to_insert): Likewise. + (ssa_rename_from_initialize): Likewise. + (ssa_rename_from_lookup): Likewise. + (original_register): Likewise. + (ssa_rename_from_insert): Added to reimplement ssa_rename_from to + include select hard reigsters. + (ssa_rename_from_traverse): Likewise. + (ssa_rename_from_free): Likewise. + (ssa_rename_from_print): Likewise. + (ssa_rename_from_print_1): Likewise. + (ssa_rename_from_hash_function): Likewise. + (ssa_rename_from_equal): Likewise. + (ssa_rename_from_delete): Likewise. + (simplify_to_immediate_dominators): Removed in favor of + flow.c:compute_immediate_dominators. + (find_evaluations_1): Modified to work with hard registers. + (insert_phi_node): Likewise. + (insert_phi_nodes): Likewise. + (struct rename_set_data): Updated prev_reg comment. + (create_delayed_rename): Modified to work with hard registers. + (RENAME_NO_RTX): Updated comment. + (apply_delayed_renames): Modified to work with hard registers. + (rename_insn_1): Likewise and added handling of CLOBBER rtls. + (rename_block): Updated to use revised ssa_rename_to interface. + (rename_registers): Updated to use revised ssa_rename_to and + ssa_rename_from interface. + (convert_to_ssa): Revised to use compute_immediate_dominators and + deal with hard registers. + (make_regs_equivalent_over_bad_edges): Modified to work with hard + registers. Added check for illegal unification of hard register. + (make_equivalent_phi_alternatives_equivalent): Modified to work + with hard registers. + (compute_conservative_reg_partition): Likewise. + (coalesce_if_unconflicting): Modified to work with hard registers + and check for conflicting hard registers. + (mark_phi_and_copy_regs): Revised loop to work only on pseudo + registers. + (rename_equivalent_regs_in_insn): Modified to work with hard + registers. + (record_canonical_element_1): Added definition. + (check_hard_regs_in_partition): Added definition. + (convert_from_ssa): Added data structure deallocation and check + for illegal hard register unification. + (conflict_hard_regs_p): Added definition. + * toplev.c (rest_of_compilation): Added comment. + +2000-07-31 Anthony Green + + * config/ia64/crtbegin.asm (__EH_FRAME_BEGIN__): Align correctly. + +2000-07-31 Jason McMullan + + * builtins.c (expand_builtin_apply): Don't defer pop during + argument setup. + +2000-07-31 Herman A.J. ten Brugge + + * calls.c (combine_pending_stack_adjustment_and_call): Only use + preferred_unit_stack_boundary when it is > 1. + +2000-07-31 Joseph S. Myers + + * c-common.c (init_function_format_info): Add C99 format functions + in C99 mode. + + * c-decl.c (get_parm_info): Don't treat 'const void', 'volatile + void' or 'register void' as being the special case of 'void' alone + in a parameter list. + + * c-typeck.c (build_c_cast): Change -Wcast-qual pedwarn for + discarding qualifiers into a plain warning. + +2000-07-31 Kazu Hirata + + * combine.c: Fix formatting. + + * h8300.md: Fix formatting. + + * local-alloc.c: Fix formatting. + + * h8300.c (get_shift_alg): Remove the variable alg. + (emit_a_shift): Rearrange code to improve readability. + + * h8300.md (movsi_h8300hs): Rearrange code to improve readability. + + * h8300.h (MODES_TIEABLE_P): Accept a combination of QImode and + HImode on all architectures and a combination of HImode and SImode + on H8/300H and H8S. + + * h8300.c (split_adds_subs): Rearrange code for conciseness. + +Mon Jul 31 12:27:55 MET DST 2000 Jan Hubicka + + * i386.md (addsi to lea splitter, ashlqi3_1_lea): Fix bugs + in my last checkin. + +Mon Jul 31 10:41:01 MET DST 2000 Jan Hubicka + + * recog.c (extract_insn): Set operand_mode according to + operand if match_operand is VOIDmode. + +Mon Jul 31 10:36:38 MET DST 2000 Jan Hubicka + + * recog.c (validate_replace_rtx_1): Do not abort for (nil) expression. + +2000-07-31 Geoff Keating + + * c-parse.in (extdefs): Call ggc_collect between external + definitions. + +2000-07-30 Michael Hayes + Richard Henderson + + * Makefile.in (OBJS): Add doloop.o. + * doloop.c: New file. + + * final.c (insn_current_reference_address): Return 0 before final. + * flags.h (flag_branch_on_count_reg): Fix typos in commentary. + * jump.c (any_uncondjump_p): Likewise. + * loop.c (indirect_jump_in_function): Make static. + (strength_reduce): Call doloop_optimize. + (insert_bct, instrument_loop_bct): Remove. + * loop.h (doloop_optimize): Prototype. + * recog.c (split_all_insns): Split all INSN_P. + * toplev.c (flag_branch_on_count_reg): Default on. + + * config/c4x/c4x.c (c4x_optimization_options): Don't set + flag_branch_on_count_reg. + * config/i386/i386.c (override_options): Likewise. + * config/rs6000/rs6000.c (optimization_options): Likewise. + + * config/i386/i386.md (decrement_and_branch_on_count): Remove. + (doloop_end): New. + (dbra_ge): Remove, as well as all it's splitters. + + * config/rs6000/rs6000.md (decrement_and_branch_on_count): Remove. + (doloop_end): New. + + * config/ia64/ia64-protos.h (ar_lc_reg_operand): Declare. + (ia64_register_move_cost): Declare. + * config/ia64/ia64.c (ar_lc_reg_operand): New. + (struct ia64_frame_info): Add ar_size. + (ia64_compute_frame_size): Set it. + (save_restore_insns): Save and restore ar.lc. + (ia64_register_move_cost): New, moved from header file. Handle + application registers. + (REG_AR_PFS, REG_AR_EC): Remove. Replace with AR_*_REGNUM numbers. + (emit_insn_group_barriers): Special case doloop_end_internal. + (ia64_epilogue_uses): Mark ar.lc live at end. + * config/ia64/ia64.h (AR_CCV_REGNUM, AR_LC_REGNUM): New registers. + (AR_EC_REGNUM, AR_PFS_REGNUM): New registers. + (FIRST_PSEUDO_REGISTER): Make room. + (AR_M_REGNO_P, AR_I_REGNO_P, AR_REGNO_P): New. + (FIXED_REGISTERS, CALL_USED_REGISTERS): Update. + (REG_ALLOC_ORDER): Update. + (HARD_REGNO_MODE_OK): Update. + (REGISTER_NAMES): Update. + (enum reg_class): Add AR_M_REGS and AR_I_REGS. + (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update. + (REGNO_REG_CLASS): Update. + (LEGITIMATE_ADDRESS_DISP): Displacement range is 9 bits, not 10. + (REGISTER_MOVE_COST): Move out of line. + (PREDICATE_CODES): Update. + * config/ia64/ia64.md (movdi patterns): Handle ar register classes. + (addsi3_plus1_alt, adddi3_plus1_alt): New. + (shladd_elim splitter): Allow constants in the predicate. + (doloop_end, doloop_end_internal): New. + +2000-07-30 Richard Henderson + + * genattrtab.c (struct insn_def): Add lineno member. + (struct insn_ent): Likewise. + (struct attr_desc): Likewise. + (struct delay_desc): Likewise. + (struct function_unit_op): Likewise. + (struct function_unit): Likewise. + (check_attr_value): Use message_with_line. + (check_defs): Likewise. + (expand_units): Likewise. + (check_attr_test): Take a lineno argument. + (gen_attr): Likewise. + (gen_insn): Likewise. + (gen_delay): Likewise. + (gen_unit): Likewise. + (main): Give it to them. + (convert_set_attr_alternative): Take an insn_def argument + instead of num_alt and insn_index. + (convert_set_attr): Likewise. + (write_test_expr): Protect INSN_ADDRESSES load + with INSN_ADDRESSES_SET_P. + +2000-07-30 Richard Henderson + + * flow.c (init_propagate_block_info): Use pc_set. + +Sun Jul 30 20:58:34 MET DST 2000 Jan Hubicka + + * i386.md (*lea_general_[123]) New insns and splits. + (addsi3 to lea splitter): Handle other modes too. + (shlsi3 to lea splitter): Likewise. + (addhi_1_lea, shlhi_1_lea): New patterns. + (addhi_1, shlhi_1): Conditionize by PARTIAL_REG_STALL. + +Sun Jul 30 20:51:25 MET DST 2000 Jan Hubicka + + * recog.c (general_operand, nonimmediate_operand): Accept + any mode for VOIDmode CONSTANT_P operands. + +Sun Jul 30 20:42:21 MET DST 2000 Jan Hubicka + + * gcse.c (try_replace_reg): Use validate_replace_rtx_subexp + instead of replace_rtx. + * recog.c (validate_replace_rtx_subexp): New function. + * recog.h (validate_replace_rtx_subexp): Declare. + +Sun Jul 30 20:38:26 MET DST 2000 Jan Hubicka + + * combine.c (simplify_set, make_extraction, make_compound_operation + make_field_assignment): Use full mask instead of GET_MODE_MASK (mode) + as force_to_mode argument. + +Sun Jul 30 20:30:41 MET DST 2000 Jan Hubicka + + * combine.c (if_then_else_cond): Be sure that mode fits in + HOST_WIDE_INT. + +Sun Jul 30 20:27:36 MET DST 2000 Jan Hubicka + + * combine.c (record_promoted_value): Allow bitsize of mode + to be equivalent to HOST_BITS_PER_WISE_INT. + +Sun Jul 30 20:25:21 MET DST 2000 Jan Hubicka + + * function.c (assign_stack_local_1, assign_stack_temp_for_type): + Do not call gen_mode_alignment when mode is BLKmode. + +Sun Jul 30 20:21:54 MET DST 2000 Jan Hubicka + + * loop.c (express_from_1): Fix call of simplify_gen_binary. + +Sun Jul 30 20:08:37 MET DST 2000 Jan Hubicka + + * simplify-rtx.c (simplify_relational_operation): Verify that mode == + VOIDmode implies both operands to be VOIDmode. + (simplify_ternary_operation): Compute properly the mode of comparison. + * combine.c (combine_simplify_rtx): Likewise. + +2000-07-25 Michael Hayes + + * basic-block.h (struct loops): New field rc_order. + * flow.c (flow_loops_cfg_dump): Dump rc_order if computed. + (flow_loops_free): Free rc_order. + (flow_depth_first_order_compute): New parameter rc_order. + (flow_loops_find): Allocate rc_order and swap usage with + dfs_order. + +2000-07-30 Herman A.J. ten Brugge + Michael Hayes + + * config/c4x/c4x.md (set_ldp_prologue): Add for RTL prologue/epilogue. + (push_st, push_dp, pop_st, pop_dp, popqi_unspec): Likewise. + (nodb_call, return_from_epilogue): Likewise. + (return_from_interrupt_epilogue, prologue, epilogue): Likewise. + * config/c4x/c4x.c (c4x_expand_prologue, c4x_expand_eplilogue): Add. + * config/c4x/c4x-protos.h (c4x_interrupt_function_p): Add. + (c4x_expand_prologue, c4x_expand_epilogue): Likewise. + (c4x_valid_type_attribute_p): Likewise. + * config/c4x/c4x.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Delete. + (FUNCTION_BLOCK_PROFILER_EXIT): Convert to emit RTL. + +2000-07-30 Michael Hayes + + * config/c4x/c4x.c (c4x_emit_move_sequence): Use loadqi_big_constant + and loadhi_big_constant if applicable. + * config/c4x/c4x.md (loadqi_big_constant, loadhi_big_constant): Tweak + and add new splitter.s + +2000-07-30 Michael Hayes + + * config/c4x/c4x.c (c4x_rptb_insert): Make more robust. + +2000-07-30 Michael Hayes + + * config/c4x/c4x.h (ASM_FORMAT_PRIVATE_NAME): Output $ in label. + +2000-07-30 Michael Hayes + + * config/c4x/c4x.h (IS_XXX_REGNO): Rewrite to avoid unsigned warnings. + +2000-07-30 Michael Hayes + + * config/c4x/libgcc.S (divqf3): Improve accuracy. + +2000-07-27 Mark Mitchell + + Put phi nodes after NOTE_INSN_BASIC_BLOCK. + * rtl.h (NOTE_INSN_BASIC_BLOCK_P): New macro. + * bb-reorder.c (get_next_bb_note): Use NOTE_INSN_BASIC_BLOCK_P. + (get_prev_bb_note): Likewise. + (remove_scope_notes): Likewise. + * flow.c (commit_one_edge_insertion): Likewise. + (merge_blocks_nomove): Likewise. + (verify_flow_info): Likewise. + * gcse.c (insert_insn_end_bb): Likewise. + * reg-stack.c (emit_swap_insn): Likewise. + * ssa.c (first_insn_after_basic_block_note): New function. + (insert_phi_node): Use it. + (rename_block): Likewise. + (eliminate_phi): Likewise. + (make_regs_equivalent_over_bad_edges): Likewise. + (make_equivalent_phi_alternatives_equivalent): Likewise. + (for_each_successor_phi): Likewise. + (convert_from_ssa): Modify phi-node deletion algorithm. + +2000-07-29 Andreas Jaeger + + * configure.in (mips*-*-linux*): Use mips*el to check for little + endian MIPS, add tmake_file. + + * config/mips/linux.h (TARGET_VERSION): Use GNU/Linux. + (SUBTARGET_CPP_SPEC): Default MIPS_ISA is 1. + Patches by Maciej W. Rozycki . + +2000-07-28 Richard Henderson + + * config/ia64/ia64.c (ia64_print_operand): Fix typos. + Sign extend mode size before negating. + +2000-07-28 Richard Henderson + + * emit-rtl.c (gen_lowpart_common): Add missing 'c' variable. + +2000-07-28 Bernd Schmidt + + * cse.c (canon_hash): Handle PRE_MODIFY/POST_MODIFY. + (cse_insn): Likewise. + (addr_affects_sp_p): Likewise. + * expr.c (move_by_pieces): Likewise. + (clear_by_pieces): Likewise. + * gcse.c (oprs_unchanged_p): Likewise. + * haifa-sched.c (sched_analyze_2): Likewise. + * recog.c (offsettable_address_p): Likewise. + * regclass.c (record_address_regs): Likewise. + * reload.c (find_reusable_reload): Likewise. + (push_reload): Likewise. + (operands_match_p): Likewise. + (decompose): Likewise. + (find_reloads_address_1): Likewise. + (find_inc_amount): Likewise. + * reload1.c (elimination_effects): Likewise. + * resource.c (mark_set_resources): Likewise. + * flow.c (attempt_auto_inc): New function; mostly broken out + of find_auto_inc. + (find_auto_inc): Split into two functions and enhanced to + generate POST_MODIFY. + * rtl.def (PRE_MODIFY, POST_MODIFY): Adjust comment. + * rtl.h (count_all_occurrences): Declare. + (HAVE_{PRE,POST}_MODIFY_{DISP,REG}): Provide default of 0 if not + defined. + * rtlanal.c (count_all_occurrences): New function. + * tm.texi (HAVE_POST_MODIFY_DISP, HAVE_PRE_MODIFY_DISP, + HAVE_POST_MODIFY_REG, HAVE_PRE_MODIFY_REG): Document. + + * config/ia64/ia64-protos.h (destination_operand): Declare. + * config/ia64/ia64.c (destination_operand): New function. + (ia64_print_operand): Handle POST_MODIFY. + (rtx_needs_barrier): Likewise. + * config/ia64/ia64.h (HAVE_POST_MODIFY_DISP): Define to 1. + (HAVE_POST_MODIFY_REG): Define to 1. + (MAX_REGS_PER_ADDRESS): Change to 2. + (GO_IF_LEGITIMATE_ADDRESS): Accept POST_MODIFY too. + (LEGITIMATE_ADDRESS_REG): New helper macro. + (LEGITIMATE_ADDRESS_DISP): Likewise. + (PREDICATE_CODES): Add entry for destination_operand. + * config/ia64/ia64.md (all mov patterns): Use destination_operand + predicate for operand 0. + +2000-07-28 Kaveh R. Ghazi + + * dwarf2out.c: Indent #error directive. + + * gbl-ctors.h: Fix typo in comment. + (__do_global_ctors): Prototype. + + * gcse.c (record_one_set, pre_delete): Remove unused variables. + + * rs6000.c (rs6000_maybe_dead): Delete unused prototype. + (print_operand): Initialize variable `t'. + +2000-07-27 Aldy Hernandez + + * config/arm/arm.md ("call_value"): removed constraints. + Constraints are ignored in expanders. + (*call_value_reg): split =rf into various constraints. + (*call_value_mem): same + (*call_value_symbol): same + (*sibcall_value_insn): same + +2000-07-28 Philipp Thomas + + * install.texi (--enable-nls): Change the description of the NLS + related configure options to match the current state. + (--with-included-gettext): Likewise. + (--enable-maintainer-mode): New description added. + * extend.texi (-fstrict-prototype): Add missing '.'. + +2000-07-27 Jim Wilson + + * dwarf2out.c (gen_decl_die): Don't call gen_abstract_function if + DECL_INITIAL (decl) == NULL_TREE. + +2000-07-27 Alexandre Oliva + + * Makefile.in (INSN_ATTR_H): New macro. Replace all dependencies + on insn-attr.h with it. + * genattr.c: Generate `#include "insn-addr.h"' if HAVE_ATTR_length. + * insn-addr.h: New header. + (insn_addresses_): Renamed from insn_addresses. + (INSN_ADDRESSES_DEFN, INSN_ADDRESSES, INSN_ADDRESSES_ALLOC, + INSN_ADDRESSES_FREE, INSN_ADDRESSES_SET_P, INSN_ADDRESSES_SIZE, + INSN_ADDRESSES_NEW): New macros. + * genattrtab.c (write_test_expr): Use new macros. + * final.c (insn_addresses, init_insn_lengths): Likewise. + (align_fuzz, shorten_branches): Likewise. + (final): Likewise. Do not reject new insns if their addresses + have been added to INSN_ADDRESSES. + * config/arm/arm.c, config/avr/avr.c: Use new macros. + * config/h8300/h8300.c, config/i370/i370.c: Likewise. + * config/m88k/m88k.c, config/pa/pa.c, config/pa/pa.md: Likewise. + * config/sparc/sparc.c, config/sparc/sparc.md: Likewise. + * config/sh/sh.c: Likewise. + (output_branchy_insn): Use INSN_ADDRESSES_NEW. + + * Makefile.in (bootstrap): Move -BstageN/ back to the beginning. + +2000-07-27 Andrew Cagney + + * gcc.c (struct prefix_list): Add member priority. + (enum path_prefix_priority): Declare. + (add_prefix): Replace ``first'' with ``priority''. Append new + entry but keep list in priority order. + (process_command): Update. Pass PREFIX_PRIORITY_B_OPT or + PREFIX_PRIORITY_LAST to add_prefix. + (process_command): Move include kludge - foo/stageN - to before + foo/include. + +2000-07-27 Jason Merrill + + * dwarf2out.c (gen_typedef_die): Abort if we get identical + TREE_TYPE and DECL_ORIGINAL_TYPE on a typedef. + +2000-07-27 RodneyBrown + + * expr.h (get_alias_set, lang_get_alias_set): Delete prototypes. + * tree.h (get_alias_set, lang_get_alias_set): Prototype. + +2000-07-27 Joseph S. Myers + + * c-decl.c (finish_function): Don't treat 'main' specially unless + flag_hosted. In C99 mode, return 0 from 'main' unless + DEFAULT_MAIN_RETURN is otherwise defined. + + * c-decl.c (store_parm_decls): In C99 mode, pedwarn for function + parameters defaulting to int in an old-style function definition. + +2000-07-27 Kaveh R. Ghazi + + * c-parse.in (string): For -Wtraditional, warn about string + concatenation only once per line. + +Thu Jul 27 09:25:17 2000 Akiko Matsushita + + * pa/x-pa-hpux: Add -D_HIUX_SOURCE to FIXPROTO_DEFINES + for HI-UX/WE2 systems. + +2000-07-24 Bruce Korb + + * fixincl/fixfixes.c(emit_gnu_type): rewrote to *rely* on GCC + defining the __xxx_TYPE__ macros. + * fixincl/fixincl.tpl(gnu_type_map): now obsolete + * fixincl/fixlib.h: don't need to include "tm.h" anymore + * fixincl/inclhack.def(type_map): now obsolete + +Thu Jul 27 11:54:17 2000 Andrew Cagney + + * cpp.texi: Append a trailing full-stop to xrefs where needed. + +2000-07-26 Dave Pitts + + * i370.c: Remove LONGEXTERNAL ifdef from alias_number. Added hash + routine constants. + (mvs_hash_alias): New function. + (mvs_add_alias): Change argument spacing. + (mvs_need_alias): Change aliasing criteria. Added documentation. + (mvs_get_alias): Change to use hashed name. The hashed name prevents + CSECT name collisions. + (mvs_check_alias): Likewise. + (handle_pragma): Change documentation. + * i370.md (mulsi3, divsi3, udivsi3, modsi3, umodsi3): Changed gen_rtx + mode from SImode to DImode. + (iorhi3): Changed LTORG size for insn. + +Wed Jul 26 19:44:05 2000 Hans-Peter Nilsson + + * reload.c (find_reloads_toplev): Reload a paradoxical subreg of a + mem if the address is a mode_dependent_address_p. + +2000-07-26 Kazu Hirata + + * h8300.c (print_operand): Print ":8" when the 'R' operand is + suitable for 8-bit absolute. + * h8300.h (EIGHTBIT_CONSTANT_ADDRESS_P): New. + (OK_FOR_U): Add a case for the 8-bit constant address on the + H8/300H. + +Wed Jul 26 19:26:21 2000 Hans-Peter Nilsson + + * varasm.c (assemble_variable) [! defined(ASM_OUTPUT_ALIGNED_COMMON) + && ! defined (ASM_OUTPUT_ALIGNED_BSS]): Also test + ! defined(ASM_OUTPUT_ALIGNED_DECL_COMMON) before complaining about + lack of implemented alignment. + +2000-07-26 Geoffrey Keating + + * emit-rtl.c (gen_lowpart_common) [REAL_ARITHMETIC]: Handle + cross-compiling between 64-bit and 32-bit machines. + +2000-07-27 Richard Henderson + + * config/ia64/ia64.md (movqicc_astep, movqi_internal_astep): New. + (movhicc_astep, movhi_internal_astep): New. + (movsicc_astep, movsi_internal_astep): New. + (movdicc_astep, movdi_internal_astep): New. + (movsfcc_astep, movsf_internal_astep): New. + (movdfcc_astep, movdf_internal_astep): New. + (movxfcc_astep, movxf_internal_astep): New. + (cmovdi_internal_astep, cmovsi_internal_astep): New. + Unify the cmov[ds]i splitters. + +2000-07-27 Rodney Brown + + * real.c (asctoeg): Rename `error' label to unexpected_char_error + +2000-07-26 Nick Clifton + + * config/arm/vxarm.h (CPP_PREDEFINES): Remove definition of + __arm__. Allow it to be defined by CPP_ISA_SPEC in arm.h + + * dwarf2out.c (dwarf2out_frame_debug_expr): Accept SEQUENCE as + well as PARALLEL blocks in FRAME_RELATED_EXPR notes. + +2000-07-26 Alexandre Oliva + + * c-decl.c (finish_enum): Convert enumerations that fit in an + `int' to `int'. + (build_enumerator): In pedantic mode, cast to `int' those that + don't. + +2000-07-25 Rodney Brown + + * config/alpha/osf.h (SIZE_TYPE, PTRDIFF_TYPE): New. + +Tue Jul 25 23:08:33 2000 J"orn Rennecke + + * sh.md (cmpgtdi_t): Must be split. + (cmpgtdi_t+1): New splitter. + +2000-07-25 Zack Weinberg + + * cpplib.c (_cpp_check_directive): Issue -Wtraditional + warnings for indented directives even if we are skipping. + +2000-07-25 Nathan Sidwell + + * invoke.texi (strict-prototypes): Remove. + * extend.texi (Deprecated Features): Add strict-prototypes. + (Backwards Compatibility): New node. + +2000-07-25 Jakub Jelinek + + * config/i386/i386.md (andsi_1+1): Allow HImode. + (andsi_1+2): Require q_regs_operand. + +2000-07-25 Jakub Jelinek + + * config/i386/i386.md (call_pop): Check operands[0], + not operands[1]. Only check SYMBOL_REF_FLAG for a SYMBOL_REF. + (call): Likewise. + (call_value_pop): Only check SYMBOL_REF_FLAG for a SYMBOL_REF. + (call_value): Likewise. + +2000-07-25 Zack Weinberg + + * toplev.c (pipe_closed): Delete. + (crash_signal): New. Generate ICE for a fatal signal. + (float_signal): Call crash_signal outside a float-handler + block, not abort. + (main): Install crash_signal as handler for core-dumping signals. + +2000-07-25 David Edelsohn + + * rs6000.c (print_operand, case 'T'): New case. + + * rs6000.md (call_indirect_aix32): Convert to expander of + scheduled instructions. + (call_indirect_aix64): Likewise. + (call_value_indirect_aix{32,64}): Likewise. + (call, call_value): Invoke expanders for AIX. Fall through to + matchers for SysV. + (call_indirect_nonlocal_aix{32,64}): New patterns (ctr and lr). + (call_value_indirect_nonlocal_aix{32,64}): New patterns. + (call_nonlocal_aix32): Remove CALL_LONG alternative. Operand 1 + only "g" constraint. + (call_nonlocal_aix64): Likewise. + (call_value_nonlocal_aix{32,64}): Likewise. + (call_nonlocal_sysv): New pattern for ctr, lr, and symbolic + operands. + (call_value_nonlocal_sysv): New pattern. + (indirect_jump{si,di}): Use new 'T' modifier. + (tablejump{si,di} matchers): Likewise. + (return_internal_{si,di}): Likewise. + (return_eh_{si,di}): Likewise. + +2000-07-24 Richard Henderson + + * config/ia64/ia64.c (ia64_print_operand): Handle "%,". + * config/ia64/ia64.h (PRINT_OPERAND_PUNCT_VALID_P): Likewise. + * config/ia64/ia64.md (movdi_internal): Use it. + +2000-07-24 Zack Weinberg + + * cppexp.c: Warn about unary + if -Wtraditional. + * cpplex.c (lex_line): Always set BOL on the first token of a line. + +2000-07-24 Michael Meissner + + * d30v.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Delete references to + unsupported macro. + +2000-07-24 Nick Clifton + + * config/arm/arm.c (emit_multi_reg_push): Generate a + REG_FRAME_RELEATED_NOTE that is compatible with the code in + dwarf2out_debug_frame_expr. + +2000-07-24 Jason Merrill + + * dwarf2out.c: Complain if DWARF2_DEBUGGING_INFO is defined without + UNALIGNED_INT_ASM_OP. + (def_cfa_1): Don't emit def_cfa_register or def_cfa_offset to adjust + a location expression. + (dwarf2out_frame_debug_expr): Lose cfa_old_reg stuff. Don't + assume indirect access if we're saving the CFA address exactly. + + * Makefile.in (bootstrap): Move -BstageN/ to the end. + +2000-07-24 Jakub Jelinek + + * tradcpp.c (main): Update max_include_len for cpp_include_defaults + as well. + +2000-07-24 Michael Meissner + + * invoke.texi (D30V Options): Add d30v options. + +Mon Jul 24 02:04:52 2000 Jeffrey A Law (law@cygnus.com) + + * gcse.c (alloc_pre_mem): Do not alloc TRANSPOUT, it is not + needed by our gcse pass anymore. + (free_pre_mem): Corresponding changes. + (compute_pre_data): Do not call compute_transpout anymore. + + * gcse.c (alloc_avail_expr_mem): Kill unused 'u_bitmap'. + (free_avail_expr_mem, alloc_pre_mem, free_pre_mem): Corresponding + changes. + + * gcse.c (free_pre_mem): Do not free ANTLOC and AE_KILL here. + (compute_pre_data): Do it here instead. + + * gcse.c (alloc_pre_mem, free_pre_mem): Delete unused bitmap + 'temp_bitmap'. + (pre_delete): Corresponding changes. + +2000-07-23 Mark Mitchell + + * c-semantics.c (make_rtl_for_local_static): Use TREE_ASM_WRITTEN + to figure out whether or not a variable has already been emitted. + +Sun Jul 23 14:49:12 2000 Jason Eckhardt + + * config/i860/i860.md (untyped_call expander): Use GEN_CALL + instead of gen_call. + +Sun Jul 23 11:52:03 2000 George Helffrich (george@gly.bris.ac.uk) + + * dbxout.c (dbxout_type, case COMPLEX_TYPE): Fix length field in stab. + +2000-07-23 Kazu Hirata + + * h8300.c: Fix formatting. + +2000-07-23 Joseph S. Myers + + * c-typeck.c (c_expand_start_case): Change -Wtraditional pedwarn + for `long' switch expression into a plain warning. + + * c-lex.c (init_lex): Keep the "inline" keyword in C99 mode. + (yylex): Don't pedwarn for "inline" in C99 mode. + + * bitmap.c (debug_bitmap_file): Cast pointers to PTR for printing + with %p. + * ggc-page.c (debug_print_page_list, alloc_page, free_page, + ggc_alloc): Likewise. + * bb-reorder.c (dump_scope_forest_1): Likewise. + +2000-07-22 Aldy Hernandez + + * reload.c (find_reloads_toplev): Add new parameter + "address_reloaded". + (find_reloads): Add new parameter to find_reloads_toplev calls. + +2000-07-22 Jeffrey Oldham + + * collect2.c (main): Typo fixed. + * diagnostic.c: Typo fixed. + * dwarf2out.c (dwarf2out_frame_debug_expr): Typo fixed. + * eh-common.h: Typo fixed. + * emit-rtl.c (start_sequence): Typo fixed. + * flow.c (find_label_refs): Typo fixed. + (calculate_global_regs_live): Typo fixed. + (mark_regno_cond_dead): Typo fixed. + (create_edge_list): Typos fixed. + (verify_edge_list): Typo fixed. + * ggc-common.c (ggc_mark_rtx_children): Typo fixed. + * loop.c (strength_reduce): Typo in function name fixed. + * rtl.h: Added comments. Typo in function name fixed. + * rtlanal.c: Typo in function name fixed. + (insn_dependant_p): Rename to ... + (insn_dependent_p): ... this. + (computed_jumo_p): Typo fixed. + +2000-07-22 Kaveh R. Ghazi + + * system.h (__FUNCTION__): Wrap definition in #ifndef. + +2000-07-21 David Edelsohn + + * rs6000.h (SIZE_TYPE): Define. + +2000-07-21 Mark Mitchell + + * ssa.c (rename_insn_1): Don't rename registers that are + CLOBBERed. + +2000-07-21 Zack Weinberg + + * diagnostic.c (trim_filename, fancy_abort): Moved here from + rtl.c. + (fatal_function, set_fatal_function): Removed. + (fatal): Don't prepare for or call the fatal_function. + (diagnostic_lock, error_recursion): New. + (diagnostic_for_decl, report_diagnostic): Guard against + re-entering the error reporting routines. + (fancy_abort): Assume function is not NULL. + + * errors.c (fancy_abort): New. Assume function is not NULL. + * tradcpp.c (fancy_abort): Assume function is not NULL. + + * system.h: Provide default definition of __FUNCTION__. + * rtl.h: Use __FUNCTION__ not __PRETTY_FUNCTION__ throughout. + Always use __FUNCTION__ in definition of abort. + * tree.h: Likewise. + * varray.h: Likewise. + * toplev.h: Likewise. Don't prototype set_fatal_function. + +2000-07-20 Geoff Keating + + * config/rs6000/aix43.h (CPP_SPEC): Define __LONG_MAX__ correctly + in 64-bit mode. + * glimits.h: Don't do #if defined for ARCH_PPC. + + * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): All + constants of size no larger than a pointer should go in the TOC. + Add 'MODE' parameter. + (LEGITIMIZE_RELOAD_ADDRESS): Add MODE parameter to + ASM_OUTPUT_SPECIAL_POOL_ENTRY_P. + (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Likewise. + * config/rs6000/aix.h (SELECT_RTX_SECTION): Likewise. + * config/rs6000/netware.h (SELECT_RTX_SECTION): Likewise. + * config/rs6000/rs6000.c (constant_pool_expr_1): Likewise. + (rs6000_legitimize_address): Likewise. + (rs6000_emit_move): Likewise. + (rs6000_select_rtx_section): Likewise. + (output_toc): Deal properly with outputting small constants like + HImode, and SFmode in 32-bit mode, and DFmode in 64-bit mode. + * config/rs6000/sysv4.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Add + MODE parameter. Put small constants in the TOC. + + * config/rs6000/rs6000.c (easy_fp_constant_p): All constants are + easy in SImode. + (rs6000_emit_move): When reload calls us with an illegitimate + address, exit early. Move the change_address calls to one place + at the end of the routine. Merge the SImode and DImode expanders. + When called by reload to put an integer into a FP register, force + it to memory. + + * config/rs6000/rs6000.c (struct toc_hash_struct): Add 'key_mode' + field. + (rs6000_hash_constant): Hash mode too. + (toc_hash_function): Allow for key_mode. + (toc_hash_eq): Structures are different if key_mode differs. + (output_toc): Add 'mode' parameter. Save key_mode. + * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY): + Pass 'mode' parameter. + * config/rs6000/rs6000-protos.h (output_toc): Add 'mode' param. + + * config/rs6000/rs6000.c (output_toc): Use RS6000_OUTPUT_BASENAME + for vtable references. + + * config/rs6000/rs6000.h (PREFERRED_RELOAD_CLASS): If we have a + choice, don't put integer values in FP regs. + +Thu Jul 20 18:13:52 2000 Jeffrey A Law (law@cygnus.com) + + * flow.c (verify_flow_info): Revamp code to verify that the + head and end of each basic block are in the insn chain. + +Thu Jul 20 18:02:35 2000 Michael Matz + + * gcse.c (record_one_set): Prepend instead of append onto + reg_set_table, making it O(n) instead O(n^2). + * lcm.c (compute_antinout_edge,compute_laterin,compute_available): + Use a queue instead of a stack as worklist. + +2000-07-20 Kazu Hirata + + * h8300.c (two_insn_adds_subs_operand): Fix a typo. + * h8300.h (OK_FOR_T): New. + (EXTRA_CONSTRAINT): Support OK_FOR_T. + * h8300.md: Use inc/dec.[wl] for increment/decrement + by 1 and 2 in HI and SI modes. + +2000-07-20 Jim Wilson + + * config/ia64/ia64.h (ASM_OUTPUT_MI_THUNK): Handle DELTA values + larger than 14 bits. + +2000-07-20 Zack Weinberg + + * cppmacro.c (CAN_PASTE_AFTER): New macro. + (count_params): Don't set GNU_REST_ARGS on anything. + (save_expansion): Set PASTE_LEFT only on tokens for which + CAN_PASTE_AFTER is true, or which are named operators. + + * cpplex.c (parse_args): Distinguish between a rest argument + given one empty argument, and a rest argument given zero arguments. + (maybe_paste_with_next): Look for VOID_REST tag, and trigger + deletion of previous token based on that. + (get_raw_token): Flatten some control structure. + + * cpplib.h (CPP_LAST_EQ): Correct. + (VOID_REST): New token flag. + (GNU_REST_ARGS): Delete. + + * tradcpp.c (main): Don't munge -D options. + (make_definition): Bring -D handling in line with cpplib. + (do_define): Strip all leading whitespace from macro definitions. + +2000-07-20 David Billinghurst + + * Makefile.in (tradcpp): Depend on intl.o and version.o. + +2000-07-20 Bruce Korb + + * fixincl/check.tpl: strip the platform specific types before testing + * fixincl/fixfixes.c(gnu_type_fix): use platform specific types + * fixincl/fixincl.tpl: use platform specific types + * fixincl/fixlib.h: include the platform specific types + * fixincl/inclhack.def(gnu_types): don't supply the types + * fixincl/fixincl.x: regen + +2000-07-19 Jim Wilson + + * config/ia64/ia64.h (HARD_REGNO_MODE_OK): Don't allow XFmode in + GR_REGS. + +2000-07-19 Zack Weinberg + + * tradcpp.c (rescan): Do not recognize directives when the # + is indented. + +2000-07-19 Zack Weinberg + + Implement C++ named operators. + + * cpplib.h (TTYPE_TABLE): Move CPP_MIN and CPP_MAX into block + of operators allowed in #if and having an _EQ variant. Add + CPP_MIN_EQ, CPP_MAX_EQ, and CPP_DEFINED. + (cpp_token flags): Add NAMED_OP. + (enum node_type): Add T_OPERATOR. + (struct cpp_hashnode): Add code slot to value union. + * cpphash.h (spec_nodes): Remove n_defined. + + * cpplex.c (lex_line): Convert T_OPERATOR nodes to their proper types. + (spell_token, can_paste, maybe_paste_with_next): Handle named operators. + (is_macro_disabled): Tweak error messages. + + * cpplib.c (get_define_node): Disallow all named operators as + macro names. Tweak error messages. + (_cpp_init_stacks): Don't set up spec_nodes->n_defined. + + * cppinit.c (builtin_array): Add entries for the named operators. + * cppexp.c (lex): Check for CPP_DEFINED token. + (priority table): Add entries for CPP_MIN and CPP_MAX. + (_cpp_parse_expr): Handle CPP_MIN and CPP_MAX. + +2000-07-19 Bernd Schmidt + + * gcse.c (INSN_CUID): If ENABLE_CHECKING, abort if the uid is + larger than the array of cuids. + (alloc_gcse_mem): Use uid_cuid rather than INSN_CUID when computing + cuids. + +2000-07-19 Bruce Korb + + * fixinc/fixincl.c: Convert to using a table of environment variables + and activate the auto-edit marker on the fixed output files. + * fixinc/fixlib.h: Define the environment table + * fixinc/fixincl.sh: export the ${INPUT} dir + * fixinc/check.tpl: likewise + +2000-07-18 Zack Weinberg + + * gcc.c (.h spec): Fix typo. + +Wed Jul 19 01:22:15 CEST 2000 Marc Espie + + * Makefile.in: Fix tradcif.c path. + +2000-07-18 Zack Weinberg + + * cpplib.h (TTYPE_TABLE): Rearrange to use only two per-entry + macros, not five. + + * cpphash.h (TOKEN_NAME): New macro. + (_cpp_spell_operator): Deleted. + (token_spellings): Now _cpp_token_spellings. + + * cppexp.c: Use TOKEN_NAME or TYPE_NAME, not _cpp_spell_operator. + * cpplex.c: Use OP and TK macros when expanding the + TTYPE_TABLE. Eliminate token_names. For non-OPERATOR tokens, + store the stringification of the enumeration name (CPP_CHAR, + etc.) in the name slot of token_spellings. + Use TOKEN_NAME and/or TOKEN_SPELL, do not reference + token_spellings directly. + * cpplib.c: Use TOKEN_SPELL. + + * cpplex.c (_cpp_push_token): If the token being pushed back + is the previous token in this context, just subtract one from + context->posn. + * cppmacro.c (save_expansion): Clear aux field when storing a + placemarker. + +2000-07-18 Jakub Jelinek + + * cpplex.c (cpp_scan_buffer): Output line command even at the stop + buffer, provided it is not NULL. + +2000-07-18 Alexandre Oliva + + * c-decl.c (duplicate_decls): Do not call make_var_volatile() in + case of invalid volatile re-declaration. + +2000-07-18 Jakub Jelinek + + * calls.c (store_arg): Return nonzero if sibcall_failure is desired. + (expand_call): Adjust caller. + +2000-07-17 Gabriel Dos Reis + + * diagnostic.h (report_diagnostic): Change prototype. + + * diagnostic.c (output_do_verbatim, diagnostic_for_asm, + diagnostic_for_decl): Change prototype. + (error_with_decl, warning_with_decl, pedwarn_with_decl, warning, + error, warning, error_with_file_and_line, + warning_with_file_and_line, pedwarn_with_file_and_line, fatal): + Adjust call to report_diagnostic, diagnostic_for_decl. + (error_for_asm, warning_for_asm): Adjust call to diagnostic_for_asm. + (output_verbatim, verbatim): Adjust call to output_do_verbatim. + + * c-errors.c (pedwarn_c99): Adjust call to report_diagnostic. End + varaible argument list. + +2000-07-17 Zack Weinberg + + * cpphash.c: Don't include hashtab.h. Most macro-handling code + moved to cppmacro.c. + (hash_HASHNODE, eq_HASHNODE, _cpp_dump_macro_hash, + dump_hash_helper): Delete. + (expand_hash, higher_prime_number, _cpp_lookup_with_hash, + cpp_forall_identifiers): New. Implement specialized version of + Vlad's expandable hash table. + (cpp_lookup): Use new functions. + (_cpp_init_macros, _cpp_cleanup_macros): Adjust for new + implementation. + * cppmacro.c: New file. + * cppinit.c (dump_macros_helper): New. + (cpp_finish): Iterate over the identifier table directly. + * cpplex.c (parse_name): Calculate the hash of the identifier + while we scan it. Use _cpp_lookup_with_hash when we can. + + * cpphash.h: Update prototypes. + (xcnewvec, HASHSTEP): New helper macros. + * cpplib.h: Update prototypes. + * Makefile.in (LIBCPP_OBJS): Add cppmacro.o. + (cppmacro.o): New rule. + (cpphash.o): Update deps. + + * cppmain.c: Do not set pfile->printer if no_output is on. + +2000-07-15 Neil Booth + + * cpplib.c: Change all directive-handler functions to return + void, not int. + * cpphash.h: Update typedefs. + +2000-07-17 Geoffrey Keating + + * configure: Regenerate. + + * extend.texi (Extended Asm): Mention that a memory clobber + does not count as a side-effect. + + * unroll.c (copy_loop_body): Fix one instance of using host + arithmetic on the target; fixes loop-4 on a 32-bit -> 64-bit + cross-compile. + + * tlink.c (scan_linker_output): Tweak for output of AIX ld. + +2000-07-17 Richard Henderson + + * config/ia64/ia64.md (movdi): Split out load address code. + New post-reload splitter for symbolic operands. + (movdi_internal): Abort if we didn't split symbolic operands + when we should have. + * config/ia64/ia64.c (ia64_expand_load_address): New, from movdi bits. + (ia64_reorg): Split insns when not optimizing. + * config/ia64/ia64-protos.h (ia64_expand_load_address): Declare. + +Mon Jul 17 23:43:26 MET DST 2000 Jan Hubicka + + * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Use LONG_DOUBLE_TYPE_SIZE + instead of MAX_LONG_DOUBLE_TYPE_SIZE to decide output format. + +2000-07-17 Chandrakala Chavva + + * loop.c (check_dbra_loop) : Changed loop_continue to loop->cont. + +2000-07-17 Jason Merrill + + * Makefile.in (clean): Remove libgcc directory. + + * configure.in (-Wno-long-long check): Use higher-level macros. + +2000-07-17 Zack Weinberg + + * simplify-rtx.c (simplify_binary_operation): Recognize + (compare (gt[u] (cc) 0) (lt[u] (cc) 0)). + (simplify_ternary_operation): Do not examine MODE_BITSIZE of + a CONST_INT, it will always be zero. + +2000-07-17 Chandrakala Chavva + + * loop.c (check_dbra_loop) : Return if more than one condition is + present to control the loop. + +Mon Jul 17 08:26:35 2000 Clinton Popetz + + * mips.c (mips_expand_prologue): Don't calculate the last argument + register unless we need it. When we are calculating this, make + sure FUNCTION_ARG is giving us a REG. + +2000-07-17 Stephane Carrez + + * flow.c (libcall_dead_p): Use single_set to verify the insn + has only one set and get for analysis. + (propagate_one_insn): Don't pass the PATTERN of the insn. + +2000-07-17 Mark Klein + + * pa.c (emit_hpdiv_const): Update to match new pattern for udivsi3. + +2000-07-17 J. David Anglin + + * Makefile.in (TARGET_GETGROUPS_T): New configuration variable. + * configure.in (TARGET_GETGROUPS_T): Evaluate. + * sys-protos.h (getgroups): Use TARGET_GETGROUPS_T for array type + of second argument of getgroups. + * configure, config.in: Rebuilt. + +2000-07-17 Geoffrey Keating + + * simplify-rtx.c (simplify_relational_operation): Two signed + values with equal high words are less/greater than each other if + their low words are less/greater when considered as unsigned. + +Mon Jul 17 02:37:06 2000 Marc Espie + + * configure.in (vax-*-openbsd): Change to new style configuration, + add collect2/float_format information. + * configure: Rebuilt. + * config/vax/openbsd1.h: New. + * config/vax/openbsd.h: New. + * config/vax/t-openbsd: New. + +2000-07-17 Chip Salzenberg + + * c-common.c (shorten_compare): Quiet warnings about unsigned + comparisons with zero when they occur in a system header. + +2000-07-17 Joseph S. Myers + + * invoke.texi (-pedantic): Refer to ISO C instead of ANSI C, and + update to describe current practice. + + * glimits.h (LLONG_MIN, LLONG_MAX, ULLONG_MAX): Define for C99. + + * contrib.texi, cpp.texi, extend.texi, invoke.texi: Update + references to C9X. Change references to -fstd and -flang-isoc9x + to refer to -std. + + * c-common.c (scan_char_table): Allow "z" length modifiers on + diouxXn formats. + (check_format_info): Use TYPE_DOMAIN on the type matched against + for "z" formats, to retrieve the language size_t rather than the + internal one. + + * c-common.c (check_format_info): Do not make a pedantic objection + to the 'L' length modifier if used with a floating point type + character. + + * c-lex.c (yylex): Don't pedwarn for hexadecimal floating point + constants in C99 mode. + +2000-07-17 Kazu Hirata + + * h8300.md: Fix the format of mac. + (movsi_h8300hs): Output a tab after stmac instead of a space. + + * h8300.c (two_insn_adds_subs_operand): Improve code for detecting + profitable adds/subs sequences. + + * fold-const.c: Fix comment typos. + +2000-07-16 Laurynas Biveinis + + * cppfiles.c (read_name_map): Set map_list_ptr->map_list_map to NULL. + +2000-07-16 Kaveh R. Ghazi + + * fixinc/fixfixes.c (emit_gnu_type): Avoid string concatenation. + +2000-07-16 Neil Booth + + * cpplex.c: Update comments. + * README.Portability: Small update. + +2000-07-16 Neil Booth + + * README.Portability: Small update. + +2000-07-15 Richard Henderson + + * config/ia64/ia64-protos.h (ia64_move_ok): Prototype. + * config/ia64/ia64.c (ia64_move_ok): New function. + * config/ia64/ia64.md (movqi, movqi_internal): Use it. + (movhi, movsi, movdi, movsf, movdf, movxf): Likewise. + +2000-07-15 Zack Weinberg + + * cpphash.c (save_expansion): Clear PREV_WHITE on tokens + immediately following a paste operator. + * cppinit.c (sort_options): New function (only for HOST_EBCDIC). + (cpp_reader_init): Call it, if HOST_EBCDIC. + (cpp_handle_options): Do not sort option list here. + (handle_option): Rename to cpp_handle_option and export. + * cpplex.c (cpp_scan_buffer_nooutput, cpp_scan_buffer): Use + _cpp_get_token directly. + (cpp_scan_line): Return 0 at EOF, 1 otherwise. + * cpplib.c (cpp_push_buffer): Don't set new->lineno to 1. + * cpplib.h: Prototype cpp_handle_option. Update prototype of + cpp_scan_line. + +2000-07-15 Richard Henderson + + * fold-const.c (extract_muldiv): Don't optimize past an unsigned + cast around an expression. Tidy other unsigned tests. + +2000-07-15 Gabriel Dos Reis + + * diagnostic.c (doing_line_wrapping, line_wrapper_printf, notice, + v_error_with_decl, v_warning_with_decl, v_pedwarn_with_decl): Remove. + (v_message_with_decl): Rename to ... + (format_with_decl): ... this. Tweak + (diagnostic_for_decl): New function. + (fatal_io_error): Use verbatim in lieu of notice. + (announce_function): Use verbatim. + (default_print_error_function): Likewise. + (error_with_decl, warning_with_decl, pedwarn_with_decl): Use new + infratructure. + +2000-07-15 Kaveh R. Ghazi + + * mips.c (function_arg_pass_by_reference): Don't do automatic + aggregate initialization. + (machine_dependent_reorg): Initialize variable `mode'. + + * mips.md (absdi2): Change variable `regno1' to unsigned int. + (reload_indi): Rename loword/hiword to lo_word/hi_word to avoid + conflicts with sys/param.h macro of the same name. + (reload_outdi): Likewise. + +2000-07-15 Michael Meissner + + * fold-const.c (fold): When optimizing FOO++ == CONST into ++FOO + == CONST + INCREMENT, don't overwrite the tree node for FOO++, + create a new node instead. + +2000-07-15 Neil Booth + + * README.Portability: Correct example about calling a function + through a pointer to function. Format wide paragraphs. + +2000-07-15 Michael Meissner + + * README.Portability: Update integer suffixes and function + prototype sections. + +2000-07-15 Neil Booth + + * README.Portability: Small update. + +2000-07-15 Neil Booth + + * README.Portability: New file. + +Fri Jul 14 18:13:53 2000 Mark P Mitchell + + * INSTALL: Give special instructions for building GCC on Irix 6. + * config/mips/x-iris6 (CC): Don't set it. + (OLDCC): Likewise. + +2000-07-14 Jason Merrill + + * dwarf2out.c (dwarf2out_frame_debug_expr): If we store the CFA + register in the stack and later in another register, use the new + register. + +Fri Jul 14 10:25:53 2000 Clinton Popetz + + * config/mips/mips.md: (absdi2): Handle sign_extend for + second operand. + +2000-07-14 Nathan Sidwell + + * cpplib.c (do_pragma_dependency): Tidy warning messages. + +2000-07-14 Zack Weinberg + + * .cvsignore: Correct typo. + +2000-07-13 Mark Mitchell + + * .cvsignore: Add generated YACC files. + * objc/.cvsignore: New file. + +2000-07-14 Neil Booth + + * cpplex.c (adjust_column): New function. + (skip_whitespace): Use it. + (skip_block_comment): Use it, and warn about /*/* with + -Wcomments. + +2000-07-14 Neil Booth + + * cpphash.c (struct macro_info): Add new members. + (_cpp_free_definition): Delete the macro directly. + (count_params): Return void, with first token of + expansion in struct macro_info on success. + (parse_define): Return int. Hoist syntax checking from + save_macro_expansion. Leave call to save_expansion to + _cpp_create_definition. + (alloc_macro): Needs just 2 arguments. + (free_macro): Delete. + (save_expansion): Don't perform syntax check. + (_cpp_create_definition): Call save_expansion. + +2000-07-13 Kaveh R. Ghazi + + * genrecog.c (write_header): Split long string. + + * cpphash.c (macro_info): Don't use the `signed' keyword. + + * system.h (alloca): Prototype if __GNUC__ && __SIZE_TYPE__. + +2000-07-13 Jakub Jelinek + + * calls.c (stored_args_map): New variable. + (check_sibcall_argument_overlap_1): New. + (check_sibcall_argument_overlap): New. + (expand_call): Initialize stored_args_map. + Call check_sibcall_argument_overlap. + +2000-07-13 Bruce Korb + + * fixinc/fixfixes.c: move EXIT_BROKEN to header, add sub-expr max count + (emit_gnu_type): utility procedure for gnu_type_fix + (gnu_type_fix): implement various pre-processor guards around + standard types so these types can be defined over and over + * fixinc/fixincl.tpl: add a "gnu_type_map" that forces the standard + types alluded to above will have GNU-compliant base types + * fixinc/fixlib.h: add EXIT_BROKEN define and the gnu_type_map struct + * fixinc/inclhack.def: add test_text entries and utilize the new + "gnu_types" fix for the ptrdiff_t, size_t and wchar_t types. + * fixinc/fixincl.x: regenerate + +2000-07-12 Gabriel Dos Reis + + * diagnostic.c (vline_wrapper_message_with_location, + v_message_with_file_and_line, v_error_with_file_and_file, + v_error_for_asm, v_warning_for_asm, vfatal, + v_warning_with_file_and_line, v_pedwarn_with_file_and_line, + vsorry, verror, vwarning, vpedwarn): Remove. + (diagnostic_for_asm): New function. + (pedwarn, error, warning, pedwarn_with_file_and_line, + error_with_file_and_line, warning_with_file_and_line, sorry, + error_for_asm, warning_for_asm, fatal): Reimplement. + (finish_diagnostic): Clear diagnostic info as well. + +2000-07-13 Neil Booth + + * c-common.h (flag_digraphs): New. + * c-decl.c (c_decode_option): Set flag_digraphs as appropriate. + * c-lex.c (yylex): Use flag_digraphs to decide whether to + honor digraphs. + +2000-07-13 Zack Weinberg + + * gcc.c (do_spec_1): Add new %B operator. + (set_input): Prepare for %B. + + (link_command_spec): Move up with the other tm.h- + overrideable specs. Factor out the portion conditional on + LINK_LIBGCC_SPECIAL into a new spec, %(link_libgcc). + (struct compiler): Just have a single spec string. All users + updated. + (default_compilers): Remove unnecessary braces. + (static_specs): Update. + + (trad_capable_cpp, cpp_options, cc1_options, asm_options): New + named specs. + (C and assembly specs): Use the new named specs, as appropriate. + + * objc/lang-specs.h: Use the new named specs. + Remove unnecessary braces. + +2000-07-12 Zack Weinberg + + * gcc.c (execute): If a subprocess gets a fatal signal, report + strsignal() of the signal number, and ask for a bug report. + Do not do this for SIGPIPE if there's already been an error. + + * tradcpp.c: Don't include signal.h. Don't catch SIGPIPE. + Delete pipe_closed. + + * tradcif.c: Remove. + +2000-07-12 Zack Weinberg + + * final.c (profile_function): Do not emit profile counters in + the data section, if NO_PROFILE_COUNTERS is defined. + * tm.texi: Document NO_PROFILE_COUNTERS. Update doc for + FUNCTION_PROFILER. + + * config/i386/linux.h (NO_PROFILE_COUNTERS): Define. + (FUNCTION_PROFILER): Just emit a call to mcount. + +2000-07-12 Zack Weinberg + + * tradcpp.c (main): Rename 'perror' label to 'sys_error'. + + * cppexp.c, cpphash.c, cpphash.h, cppinit.c, cpplex.c, + cpplib.c, cpplib.h: Eradicate all traces of code dependent on + traditional, lang_chill, or lang_fortran. + + * cppfiles.c: #undef strcmp to suppress warning about macros + used without arguments. + (_cpp_execute_include): Use f, not fname, in "No include path" + error. + (_cpp_pop_file_buffer): New function. + * cpplib.c: Don't include . + (cpp_push_buffer): Set line_base and lineno in new buffer. + (cpp_pop_buffer): Use _cpp_pop_file_buffer. + + * cpplex.c: Move all prototypes and structure declarations to the + top of the file. Properly parenthesize some macro arguments. + (cpp_scan_line): New function. + (special_symbol [case T_INCLUDE_DEPTH]): Use pfile->include_depth, + don't need to walk up the stack counting. + +2000-07-12 Kaveh R. Ghazi + + * c-common.c (combine_strings): Emit a pedantic warning when a + string length is greater than the minimum ANSI C is required + to support. + +Wed Jul 12 13:24:30 2000 Jeffrey A Law (law@cygnus.com) + + * pa/xm-pa64.h (NO_SYS_SIGLIST): Kill. + * d30v/xm-d30v.h (NO_SYS_SIGLIST): Kill. + +2000-07-12 Kaveh R. Ghazi + + * c-decl.c (define_label): Warn about identifier conflicts with + labels in traditional C. + + * c-parse.in (unop +): Warn about the unary plus operator for + traditional C. + + * c-typeck.c (store_init_value): Warn about automatic aggregate + initialization for traditional C. + + * invoke.texi (-Wtraditional): Document new warnings. + +2000-07-12 Gabriel Dos Reis + + * Makefile.in (c-errors.o): Fix thinko in dependency. + +2000-07-12 Zack Weinberg + + * gcc.c (C specs [!USE_CPPLIB]): Invoke tradcpp if any of + -traditional, -ftraditional, or -traditional-cpp was given. + Do not pass -traditional to the preprocessor. + (.S spec): Likewise. Don't bother defining __ASSEMBLER__, the + preprocessor does it automatically. + * objc/lang-specs.h: Likewise. Don't bother defining __OBJC__. + + * ch/lang-specs.h: Always use tradcpp. Do not pass + -traditional, -trigraphs, or -pedantic to the preprocessor. + * f/lang-specs.h (.F spec): Likewise. Don't bother defining + _LANGUAGE_FORTRAN. + +2000-07-12 Zack Weinberg + + * cppexp.c (LOGICAL): Delete macro. + (_cpp_parse_expr): Do not use UNARY for unary +. Implement || + and && directly. + + * cpphash.c (HASHSIZE): Increase to 4096. + (struct hashdummy): Add hash field. + (eq_HASHNODE): Compare unreduced hashes, then lengths, then + the string values using memcmp. + (cpp_lookup): Set dummy.hash. + +Wed Jul 12 13:15:16 2000 Marc Espie + + * configure.in (m88k-openbsd): Express configuration using new fragment + style. + * configure: Rebuilt. + * m88k/aout-dbx.h: New. + * m88k/openbsd.h: New. + * m88k/xm-openbsd.h: New. + +2000-07-12 Kaveh R. Ghazi + + * expr.c (expand_expr): Return const0_rtx, not error_mark_node. + +2000-07-12 Richard Henderson + + * reload.c (push_secondary_reload): Make sure to add the new + reload at the end, after acquiring secondary memory. + +2000-07-12 Kaveh R. Ghazi + + * cpplex.c (is_macro_disabled): Use CPP_WTRADITIONAL. + + * c-decl.c (set_current_function_name_declared, anon_aggr_type_p, + lang_expand_stmt): Mark parameters with ATTRIBUTE_UNUSED. + + * c-parse.in (stmt): Delete unused variables. + + * convert.c (convert_to_vector): Likewise. + + * gensupport.c (process_rtx): Declare attr as `rtvec' not `rtx'. + + * tree.c (finish_vector_type): Prototype. + +2000-07-12 Bruce Korb + + * fixinc/fixfixes.c: use xmalloc + * fixinc/fixincl.c(initialize): set program name for xmalloc + * fixinc/fixlib.c(must_malloc): obsolete + (is_cxx_header): no longer used - disabled + (skip_quote): inserted and disabled for future use + * fixinc/fixlib.h: reflects above + * fixinc/fixtests.c: removed dinkleberries + +2000-07-12 Neil Booth + + * cpphash.h: (TOKEN_SPELL) Pulled from cpplex.c. + * cpplex.c (TOKEN_SPELL) Move to cpphash.h. + + * cpphash.c: (struct macro_info, alloc_macro, free_macro, + struct toklist_dummy): New. + (cpp_free_definition): Free macros with free_macro. + (count_params): Don't save parameter spellings. Save macro + information in a struct macro_info. + (parse_define): Don't allocate a token list. + (save_expansion): Allocate the macro's token list, and + save parameter spellings if necessary. Use TOKEN_SPELL. + (cpp_create_definition): Make list const. + +2000-07-12 Gabriel Dos Reis + + * c-typeck.c (pedwarn_c99): Move to + * c-errors.c: ... Here. + * toplev.h (verror, vwarning, vpedwarn): Remove prototypes. + * diagnostic.c (verror, vwarning, vpedwarn): Make static. + * Makefile.in (C_AND_OBJC_OBJS): Include c-errors.o + (c-errors.o): List dependency. + +2000-07-12 Mark Mitchell + + * c-parse.c: Remove. + * c-parse.h: Likewise. + * c-parse.y: Likewise. + * objc/objc-parse.c: Likewise. + * objc/objc-pasre.y: Likewise. + +2000-07-11 Rodney Brown + + * gcc.texi: Fix minor typos + * extend.texi: Fix minor typos + +2000-07-11 Marc Espie + + * collect2.c (main): Recognize .lo as object files. + +2000-07-11 J. David Anglin + + * pa.c (hppa_encode_label): Store labels in gc memory when ggc_p is + true. + + * aclocal.m4 (AC_FUNC_MMAP_ANYWHERE): Extend test to detect systems + with MAP_ANONYMOUS and MAP_ANON. + * configure, config.in: Rebuilt. + +2000-07-12 Gabriel Dos Reis + + * diagnostic.c (save_output_state): Remove. + (restore_output_state): Likewise. + (clear_text_info): New function. + (clear_diagnostic_info): Likewise. + (output_text_length, is_starting_newline, output_prefix, + line_wrap_cutoff, ideal_line_wrap_cutoff, prefix_was_emitted_for, + prefixing_policy, output_buffer_ptr_to_format_args): New macros + (set_real_maximum_length, output_set_maximum_length, + output_set_prefix, output_get_prefix, output_set_maximum_length, + output_destroy_prefix, init_output_buffer, + reshape_diagnostic_buffer, output_space_left, output_emit_prefix, + output_add_newline, output_add_character, output_add_space, + output_append_r, output_append, wrap_text, output_format, + output_do_printf, output_printf, output_do_verbatim, + output_verbatim, verbatim): Use them. + (output_clear): Split into cleat_text_info and + clear_diagnostic_info. + (struct output_state): Move to... + + * diagnostic.h: ...Here + (struct output_buffer): Adjust. + +2000-07-11 Zack Weinberg + + * cpplex.c (parse_name): No longer inline (premature optimization). + (do_pop_context): Fold into pop_context. + (pop_context): Returns int. + (lex_next): Hoist test for end of directive into pop_context. + (push_macro_context): Returns int; takes just reader and token. + Hoist test for excessive nesting to caller. + (push_arg_context): Returns void; takes just reader and token. + Do not call stringify_arg or get_raw_token. + (get_raw_token): Convert tail recursion through push_arg_context + to a loop at this level. Call stringify_arg here if appropriate. + (maybe_paste_with_next): Convert tail recursion to a while loop. + Hoist test of paste_level to caller. + + (stringify_arg): Push arg context at beginning. + (cpp_get_token): Split out core into _cpp_get_token. Call + process_directive here. Throw away CPP_PLACEMARKER tokens. + (_cpp_get_token): Convert tail recursion through + push_macro_context to a loop at this level. + (_cpp_glue_header_name, is_macro_disabled, stringify_arg, + _cpp_get_raw_token): Use _cpp_get_token. + (_cpp_skip_rest_of_line): Drop the context stack directly; do + not call pop_context. + (_cpp_run_directive): Call lex_next directly. + + * cpphash.h: Prototype _cpp_get_token. + * cppexp.c (lex): Use it. + * cpphash.c (parse_define): Use it. + * cpplib.c (get_define_node, do_undef, parse_include, + read_line_number, do_line, do_ident, do_pragma, do_pragma_gcc, + do_pragma_implementation, do_pragma_poison, do_pragma_dependency, + parse_ifdef, validate_else): Use it. + (cpp_push_buffer): Tweak error message; abort if anyone tries + to push a buffer while macro expansions are stacked. + +2000-07-11 Donn Terry + + * cpplex.c (free_macro_args, save_token): Cast arg of free + and/or xrealloc to PTR. + (_cpp_init_input_buffer): Clear all fields of the base context. + +Tue Jul 11 15:28:21 CDT 2000 Clinton Popetz + + * gensupport.c (process_rtx): Make rtl checking stop + complaining about the define_insn while it is being + converted from a define_insn_and_split. + +Tue Jul 11 16:26:17 2000 Clinton Popetz + + * config/mips/mips.c (simple_memory_operand): Access the + INTVAL of the address, not it's containing MEM. + +2000-07-11 Bruce Korb + + * fixinc/fixtests.c(double_slash): obsolete + (else_endif_label): likewise + * fixinc/inclhack.def(irix_multiline_cmnt): obsolete + (libc1_ifdefd_memx): correct initial comment + and omit the #if/#endif pair from the memxxx declarations + * fixinc/fixincl.x: regen + +2000-07-11 Kaveh R. Ghazi + + * cpplex.c (T, I, S, C, N): Avoid non-constant initializers. + +2000-07-11 Neil Booth + + * cpp.texi: Update. + +2000-07-11 Neil Booth + + * cppinit.c: (cpp_reader_init): Allow digraphs by default. + (handle_option): Set digraphs according to standard. + Merge OPT_lang_c89 handler with OPT_std_c89. + + * cpplex.c: (lex_line, can_paste): Honor digraphs in + accordance with the digraphs flag. + + * cpplib.h: (struct cpp_options): New option digraphs. + +2000-07-10 Hans-Peter Nilsson + Bruce Korb + + * fixinc/inclhack.def (libc1_ifdefd_memx): New fix. + * fixinc/fixincl.x: Regenerate. + * fixinc/tests/base/testing.h: Add testcase. + +2000-07-10 Richard Henderson + + * config/ia64/ia64.c (got_symbolic_operand): New. + (symbolic_operand, move_operand): Revert 0701 change. + * config/ia64/ia64.h (PREDICATE_CODES): Update. + * config/ia64/ia64-protos.h (got_symbolic_operand): Declare. + * config/ia64/ia64.md (movdi): Revert 0701 wrt symbolic_operand; + split the offset into a 14-bit low part instead of a 13-bit low part. + (load_fptr): Mark the mem as unchanging. + (load_symptr): Use got_symbolic_operand. + +2000-07-10 Nick Clifton + + * libgcc2.c (next_stack_level): Cast result of computation to + (void **) so that the assignment does not generate a warning. + +2000-07-10 Chandrakala Chavva + + * flags.h : Add new variable flag_single_precision_constant. + * toplev.c (display_help) : Add -fsingle-precision-constant option. + (flag_single_precision_constant): New. + * c-lex.c (yylex): Convert floating point constant to single + precision constant. + * invoke.texi : Add documentation for this new option. + +2000-07-10 Gabriel Dos Reis + + * diagnostic.c (output_octal): Second parameter is unsigned. + (output_long_octal): Likewise. + (output_hexadecimal): Likewise. + (output_long_hexadecimal): Likewise. + (output_format): Adjust arguments extraction. Tweak. + (output_verbatim, verbatim): End variable argument list. + (report_diagnostic): Improve documentation. + +2000-07-10 Benjamin Chelf + + * c-common.h (build_stmt): Declare. + (build_continue_stmt): Likewise. + (build_break_stmt): Likewise. + (build_return_stmt): Likewise. + + * c-decl.c (do_case): Rewrite to do what previously done in + c-parse.in. + + * c-semantics.c (build_stmt): Define. + (build_return_stmt): Likewise. + (build_break_stmt): Likewise. + (build_continue_stmt): Likewise. + (build_case_label): Likewise. + + * c-parse.in (BREAK): Change to build tree, then generate RTL. + (CONTINUE): Likewise. + (RETURN): Likewise. + (CASE): Likewise. + (DEFAULT): Likewise. + + * c-parse.y: Regenerate. + * c-pasre.c: Likewise. + +2000-07-09 Jason Merrill + + * expr.c (expand_expr): Bail earlier if we get an error_mark_node. + + * tree.h (STRIP_NOPS): Check for error_mark_node. + (STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Likewise. + (dwarf2out_*): Remove duplicate declarations. + + * c-decl.c (duplicate_decls): Copy DECL_ABSTRACT_ORIGIN from + DECL_ABSTRACT_ORIGIN, not DECL_ORIGIN. + +2000-07-10 Gabriel Dos Reis + + * diagnostic.c (wrap_text): New function. + (maybe_wrap_text): Likewise. + (output_add_string): Use it. + (output_format): Likewise. + (count_error): Use verbatim instead of notice. + (report_error_function): Likewise. Don't use plain fprintf. + (finish_diagnostic): New function. + (output_do_verbatim): Tweak. Commonalize functionalities in + output_verbatim and verbatim. + (output_verbatim): Adjust. + (verbatim): Likewise. + (report_diagnostic): Define. + + * diagnostic.h (report_diagnostic): Prototype. + +2000-07-09 Zack Weinberg + + * cppexp.c (_cpp_parse_expr): Don't use unary plus. + +2000-07-09 Neil Booth + + * cpphash.h: ISvspace, is_vspace, is_nvspace: New. + IShspace, ISspace: Update. + + * cppinit.c: ISTABLE: Update. + V: New. + + * cpplex.c (IS_HSPACE, S_NEWLINE): Remove. + (IS_DIRECTIVE): Rename KNOWN_DIRECTIVE. + (skip_block_comment, skip_line_comment, parse_string, + lex_line): Use is_vspace rather than IS_NEWLINE. + (skip_whitespace, lex_line): Clean up to use is_nvspace. + (lex_line): Use KNOWN_DIRECTIVE. Any kind of directive + gets a BOL flag. + (lex_next): Unconditionally stop if within a directive. + Treat directives within macro invocations as directives + (after parse_args emits error), not as the argument. + +2000-07-09 Gabriel Dos Reis + + * diagnostic.c (diagnostic_args): New macro. + (diagnostic_msg): Likewise. + (output_formatted_integer): Likewise. + (output_state): New data type. + (digit_buffer): Make global. + (output_add_integer): Rename to output_decimal. Squeeze + digit_buffer. + (output_long_decimal, output_unsigned_decimal, + output_long_unsigned_decimal, output_octal, output_long_octal, + output_hexadecimal, output_long_hexadecimal): New functions. + (output_append_r): New function. + (output_append): Tweak. + (output_flush_on): Rename to output_to_stream. + (output_format): Change prototype. Improve documentation. Handle + more format specifiers. + (build_location_prefix): Rename to context_as_prefix. + (output_notice): Rename to output_do_printf. + (output_printf): Tweak. + (line_wrapper_printf): Likewise. + (vline_wrapper_message_with_location): Adjust call to renamed + functions. + (v_message_with_decl): Likewise. + (default_print_error_function): Likewise. + (save_output_state): New function. + (restore_output_state): Likewise. + (output_do_verbatim): Likewise. + (output_verbatim): Define. + (verbatim): Likewise. + + * diagnostic.h (printer_fn): Change return type from void to int. + Improve documentation. + (output_add_integer): Rename to output_decimal. + (output_flush_on, output_format): Don't export. + (output_verbatim, verbatim): Declare. + +2000-07-08 Toon Moene + + * fold-const.c (extract_muldiv) case PLUS_EXPR, MINUS_EXPR: + Check whether c divides op1 exactly if operation is not + multiplication. + +2000-07-08 Richard Henderson + + * final.c (final): Do not abort when reg-stack introduces + a new insn. + +2000-07-08 Zack Weinberg + + * cpplib.h (struct cpp_name): Now struct cpp_string. + (CPP_INT, CPP_FLOAT, CPP_NUMBER, CPP_COMMENT, + CPP_HEADER_NAME): Change to type S. + (struct cpp_token): Rename 'name' field to 'str'. Add 'node' + field, a cpp_hashnode *. All references to val.name updated + to use val.str or val.node as appropriate. + (struct cpp_reader): Add spec_nodes field. + (cpp_idcmp): Now cpp_ideq; takes a token * and a char *. + + * cpphash.h (struct spec_nodes): New. + (enum spell_type): Reorder. Only SPELL_STRING tokens use + val.str. All references to 'spelling > SPELL_NONE' updated to + match. + + (CPP_IN_SYSTEM_HEADER): Check pfile->buffer and + pfile->buffer->inc are not NULL before dereferencing them. + + * cpplex.c (parse_name): Take a pointer to the current token, + plus current position and limit as args; return the new + position; don't copy the text of a name into the string + buffer, instead call cpp_lookup and store the node pointer. + If extending a token, copy out the text of the old into a + scratch buffer, append the new, look that up and store the new + node pointer. Inline. + (maybe_paste_with_next): If the result of paste is a NAME, + then look up the pasted text and store its node pointer. + (lex_line): Adjust for new parse_name interface. + Check for L"str", L'str' using spec_nodes->n_L. + (spell_token): SPELL_IDENT tokens have their spelling in + val.node->name. Handle SPELL_STRING tokens that don't have + string delimiters. + (_cpp_expand_name_space, + (can_paste): Check for L ## "str" using spec_nodes->n_L. + (cpp_get_token, special_symbol): No need to call cpp_lookup. + (cpp_idcmp): Now cpp_ideq; take a token * and a const char *; + return 1=equal 0=not, not a tristate. + + * cpphash.c (var_args_str): Delete. + (find_param): Compare node fields directly. + (is__va_args__): Use CPP_PEDANTIC. Just compare + token->val.node with spec_nodes->n__VA_ARGS__. + (dump_funlike_macro): Don't use var_args_str. + + * cpplib.c (_cpp_check_directive): Just walk through + spec_nodes->dirs comparing pointers. + (get_define_node, do_pragma_poison, detect_if_not_defined, + parse_ifdef): The identifier has already been looked up. + (do_ifdef, do_ifndef): parse_ifdef won't return a poisoned + node. + (do_if): Only call detect_if_not_defined at beginning of file. + (_cpp_parse_assertion): Only copy string pointers for + SPELL_STRING tokens. + (pragma_dispatch): Take a node pointer and examine its name + field. + (_cpp_init_stacks): Also initialize the spec_nodes structure. + + * cppinit.c (cpp_reader_init): Call _cpp_init_stacks after + _cpp_init_macros. + (cpp_cleanup): Free pfile->spec_nodes. Call _cpp_cleanup_* in + reverse order from the corresponding _cpp_init_* routines. + + * cppexp.c (parse_number, parse_charconst, parse_defined, + lex): Check val.node->type instead of calling cpp_defined. + Use spec_nodes entries where appropriate. + + * fix-header.c, scan-decls.c: Update for interface changes. + +2000-07-08 Geoffrey Keating + + * config/rs6000/rs6000.c (rs6000_emit_move): Fix conditions for + emitting aux_truncdfsf2. + +2000-07-03 Donn Terry (donnte@microsoft.com) + + * cppinit.c (print_help): split overlong line into ISO C89 + maximum chunks. + +2000-07-07 Zack Weinberg + + * cppexp.c: Update all code for new lexer interface. + (op_t, operator codes, struct token, tokentab2, op_to_str): Remove. + (struct suffix, vsuf_1, vsuf_2, vsuf_3, op_to_prio): New. + * cpplex.c (token_names): Trim leading CPP_ from names; make + the strings unsigned. + (_cpp_spell_operator): New. + (is_macro_disabled): Disable all macros if rescanning + preprocessed text. + (_cpp_get_directive_token): Remove. + + * cppinit.c: Don't set no_macro_expand. + * cpplib.c (read_line_number, do_line): Check only for EOF, + not VSPACE. + * cpphash.h: Update prototypes. + * cpplib.h (CPP_VSPACE): Remove. + (struct cpp_reader): Remove no_macro_expand. + +2000-07-08 Neil Booth + + * cpphash.c (is__va_args__): New function. + (count_params): Fix line reported in error messages. Use + is__va_args__. Don't return ')' on error. Flag GNU style + rest args macro definitions. + (parse_define): Check macro name is not __VA_ARGS__. + (save_expansion): Check identifier in non-varargs-macro is + not __VA_ARGS__. Don't flag GNU_VARARGS. + * cpplex.c (parse_args): Accept no argument iff GNU_REST_ARGS. + (maybe_paste_with_next): Use per-macro GNU_REST_ARGS rather + than per-token GNU_VARARGS. + * cpplib.h (GNU_VARARGS): Remove. + (GNU_REST_ARGS): New. + +Sat Jul 8 01:38:25 MET DST 2000 Jan Hubicka + + * i386.md (call_pop, call, call_value_pop): Do not set + current_function_uses_pic_offset_table for calls to static + functions or indirect calls. + +2000-07-07 Jim Wilson + + * config/ia64/ia64.c (rws_access_reg): New local write_count. If + is_predicate_reg, then take max write_count of register pair. + +2000-07-07 Kaveh R. Ghazi + + * tradcpp.c (main): Rename label `include' to `add_include' to + avoid conflicts with variable `include' in traditional C. + +2000-07-07 Jakub Jelinek + + * integrate.c (copy_insn_list): Remove REG_LABEL notes. + +2000-07-07 Jakub Jelinek + + * sibcall.c (uses_addressof): Add INMEM argument, check for + current_function_internal_arg_pointer outside of MEM rtxs in addition + to ADDRESSOFs. + (sequence_uses_addressof): Update caller. + +2000-07-07 Zack Weinberg + + * tradcpp.c (initialize_builtins): Honor NO_BUILTIN_SIZE_TYPE + and friends. + +2000-07-07 Kaveh R. Ghazi + + * system.h (UNION_INIT_ZERO): New macro for initializing union + members in structs. + + * cpplex.c (placemarker_token, eof_token): Use UNION_INIT_ZERO. + +2000-07-07 Neil Booth + + * cpp.texi: Update. + +Fri Jul 7 07:47:35 2000 Jeffrey A Law (law@cygnus.com) + + * final.c (final): Detect out of bounds array access to + the insn_lengths array. + +2000-07-07 Kazu Hirata + + * fold-const.c (fold): Fix a comment typo. + +2000-07-07 Neil Booth + + * cpp.texi: Update to new lexer. + +2000-07-06 Zack Weinberg + + * tradcpp.c: New file. + * tradcif.y: New file. + * tradcif.c: New generated file. + + * Makefile.in: Add rules to build tradcpp.o, tradcif.o, + $(srcdir)/tradcif.c. Add tradcpp to STAGESTUFF and + dependencies of C. Install tradcpp from install-common, in + $(libsubdir). + +2000-07-06 Zack Weinberg + + * cppinit.c: Include cppdefault.h. Refer to + cpp_GCC_INCLUDE_DIR and cpp_GCC_INCLUDE_DIR_len, not directly + to GCC_INCLUDE_DIR and its length. + (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE, + USER_LABEL_PREFIX, REGISTER_PREFIX, struct default_include, + STANDARD_INCLUDE_DIR, STANDARD_INCLUDE_COMPONENT): Move to + cppdefault.h. + (include_defaults_array): Move to cppdefault.c. + + * cppdefault.h: New file. + * cppdefault.c: New file. + + * Makefile.in (LIBCPP_OBJS): Add cppdefault.o. + (cppinit.o): Don't apply $(PREPROCESSOR_DEFINES) to this file. + (cppdefault.o): New rule; apply $(PREPROCESSOR_DEFINES) to + this file. + +Thu Jul 6 18:30:36 2000 Richard Kenner + + * reload.c (push_reload): When seeing if can reuse a register, + check extra registers against widest of INMODE and OUTMODE. + +2000-07-06 Neil Booth + + * cpplib.c: (_cpp_parse_assertion): Perform hash lookups + based on full length of predicate. + +2000-07-06 Hans-Peter Nilsson + + * timevar.c: [HAVE_SYS_RESOURCE_H]: Include . + [NEED_DECLARATION_GETRUSAGE]: Declare getrusage. + +2000-07-05 Kazu Hirata + + * h8300-proto.h: Fix formatting. + * h8300.c: Likewise. + * h8300.h: Likewise. + +2000-07-05 Jim Wilson + + * config/ia64/ia64.h (HARD_REGNO_MODE_OK): If FR_REGNO_P, disallow + CCmode. + +2000-07-05 Rodney Brown + + * invoke.texi: Fix minor typos + * md.texi: Fix minor typos + +2000-07-05 Zack Weinberg + + * cpplib.c (_cpp_parse_assertion): Fix buffer overrun. + +2000-07-04 Zack Weinberg + + * cpplex.c: Don't include sys/mman.h. + (cpp_push_buffer, cpp_pop_buffer): Moved to cpplib.c. + + * cpplib.c: Include sys/mman.h and obstack.h. + (cpp_push_buffer): Moved from cpplex.c; allocate buffers on an + obstack. + (cpp_pop_buffer): Moved from cpplex.c; free buffers from an obstack. + (_cpp_unwind_if_stack): Now static, unwind_if_stack. Don't + bother freeing if stack entries (they will be freed with their buffer). + (do_endif): Free if stack entries from the buffer obstack. + (push_conditional): Allocate if stack entries from the buffer obstack. + + (find_answer): Rename to _cpp_find_answer. + (do_assert, do_unassert): Update. + + * cpphash.h: Update prototypes. + (xobnew): New convenience macro. + * cpplib.h (struct cpp_reader): Add hash_ob and buffer_ob fields. + Update comments. + (struct cpp_hashnode): Remove disabled field. + + * cppinit.c: Don't include hashtab.h or splay-tree.h. + (report_missing_guard): Moved to cppfiles.c. + (cpp_reader_init): Call cpp_init_stacks, cpp_init_macros, + cpp_init_includes. + (cpp_cleanup): Call cpp_cleanup_stacks, cpp_cleanup_macros, + cpp_cleanup_includes. Don't destroy hashtab or + all_include_files here. + (cpp_finish): Use _cpp_report_missing_guards. + + * cppfiles.c (report_missing_guard): Moved from cppinit.c. + (_cpp_init_include_table): Rename _cpp_init_includes. + (_cpp_cleanup_includes, _cpp_report_missing_guards): New. + + * cppexp.c (parse_assertion): Update for new name of + find_answer. + + * Makefile.in (cpplib.o, cpphash.o, cppinit.o): Update deps. + +2000-07-04 Zack Weinberg + + * cpplib.c (do_ident): s/VSPACE/EOF/ + +2000-07-05 Neil Booth + + * cpplex.c: Fix trigraph replacement within strings. + +2000-07-04 Kaveh R. Ghazi + + * rs6000/aix.h (ASM_GENERATE_INTERNAL_LABEL): Fix format specifier. + + * xcoffout.c (assign_type_number): Constify. + (xcoffout_source_file): Add static prototype. Don't needlessly + cast away const-ness. + +2000-07-04 Jason Merrill + + * frame.h (frame_state): Move base_offset to end. + +Mon Jul 3 21:31:43 2000 Clinton Popetz + + * calls.c (emit_library_call_value_1): Revert previous change. + +2000-07-03 Zack Weinberg + + * fix-header.c (struct partial_proto): Remove unnecessary fields. + (recognized_extern, recognized_function, read_scan_file): + Update for new scheme. + (check_protection): It's still a multiple include guard even + if it doesn't always trigger. + * scan-decls.c (skip_to_closing_brace, scan_decls): Update for + new scheme. + * scan.h: Declare struct cpp_token. Update prototypes. + +2000-07-03 Neil Booth + Zack Weinberg + + Complete overhaul of the lexer and macro expander. + + * cpphash.c (object_defn, funct_defn, push_macro_expansion, + arg, arglist, argdata, reflist, collect_objlike_expansion, + collect_funlike_expansion, collect_params, + warn_trad_stringify, trad_stringify, duplicate_arg_p, add_pat, + unsafe_chars, macarg, compare_defs, special_symbol, + scan_arguments, stringify, funlike_macroexpand, + _cpp_quote_string, monthnames): Delete. + (cpp_lookup, _cpp_free_definition, dump_funlike_macro, + _cpp_create_definition, _cpp_dump_definition, + dump_hash_helper): Adjust. + (find_param, count_params, parse_define, var_args_str, + check_macro_redefinition, save_expansion): New. + + * cpplex.c (skip_block_comment, skip_line_comment, parse_name, + parse_string, output_line_command, trigraph_replace, + lex_line, cpp_push_buffer, cpp_pop_buffer, cpp_output_tokens, + cpp_scan_buffer_nooutput, cpp_scan_buffer, cpp_free_toklist, + cpp_idcmp, _cpp_get_directive_token, _cpp_init_input_buffer, + _cpp_skip_rest_of_line): Modify. + + (maybe_macroexpand, skip_comment, copy_comment, skip_string, + find_position, null_warning, bump_column, expand_name_space, + pedantic_whitespace, _cpp_output_list, _cpp_slice_toklist, + _cpp_squeeze_toklist, _cpp_scan_until, _cpp_skip_hspace, + _cpp_parse_name, _cpp_lex_token, cpp_get_non_space_token, + _cpp_prescan): Delete. + + (dump_param_spelling, process_directive, lex_next, + is_macro_disabled, stringify_arg, expand_context_stack, + output_token, make_string_token, alloc_number_token, + special_symbol, duplicate_token, maybe_paste_with_next, + can_paste, prevent_macro_expansion, restore_macro_expansion, + get_temp_token, release_temp_tokens, quote_string, + token_names, token_spellings, _cpp_expand_name_space, + _cpp_glue_header_name, _cpp_reserve_name_space, + digraph_spellings, trigraph_ok, skip_whitespace, save_comment, + placemarker_token, eof_token, cpp_context, macro_args, + get_raw_token, parse_arg, parse_args, save_token, + push_arg_context, push_macro_context, pop_context, + do_pop_context, free_macro_args, _cpp_get_line, + _cpp_run_directive): New. + + * cpplib.c (validate_else, parse_include, push_conditional, + pass_thru_directive, read_line_number, parse_ifdef, + detect_if_not_defined, _cpp_check_directive, do_define, + do_undef, do_include, do_import, do_include_next, do_error, + do_warning, do_ident, do_pragma, pragma_dispatch, gcc_pragmas, + top_pragmas, do_pragma_gcc, do_pragma_implementation, + do_pragma_poison, do_pragma_system_header, + do_pragma_dependency, do_sccs, do_ifdef, do_ifndef, do_else, + dl_elif, do_endif, _cpp_unwind_if_stack, do_assert, + do_unassert, cpp_define, cpp_undef, cpp_assert, cpp_unassert, + cpp_defined): Update for new scheme. + (strtoul_for_line, get_define_node, dump_macro_name, + _cpp_check_linemarker, _cpp_parse_assertion): New. + (_cpp_handle_directive, do_pragma_default): Delete. + + * cpphash.h (struct predicate): Now struct answer. + (enum spell_type, struct token_spelling, struct directive, + directive_handler): New. + Update prototypes. Remove unused macros. + * cpplib.h: Update prototypes. Remove unused macros, + structure definitions, and fields. + + * cpperror.c (print_containing_files, v_message): Adjust. + * cppexp.c (parse_assertion, lex, parse_escape, + _cpp_parse_expr): Adjust. + * cppfiles.c (open_include_file, _cpp_execute_include, + _cpp_compare_file_date, cpp_read_file, read_include_file): + Adjust. + * cppinit.c (dump_special_to_buffer): Delete. + (append_include_chain, merge_include_chains, cpp_reader_init, + cpp_cleanup, initialize_builtins, builtin_array, cpp_start_read, + cpp_finish, handle_option, print_help): Adjust. + * cppmain.c (main): Adjust. + +2000-07-03 Zack Weinberg + + * cppspec.c (lang_specific_driver): Use double quotes in error + message. + +Mon Jul 3 16:53:43 2000 Clinton Popetz + + * calls.c (emit_library_call_value_1): Use valreg instead + of hard_libcall_value. + +2000-07-03 Geoff Keating + + * config/rs6000/rs6000.c (rs6000_emit_move): New function. + * config/rs6000/rs6000-proto.h: Prototype rs6000_emit_move. + * config/rs6000/rs6000.md (movsi): Use rs6000_emit_move. + (movhi): Likewise. + (movqi): Likewise. + (movdf): Likewise. + (movsf): Likewise. + (movdi): Likewise. + (movti): Likewise. + + * expmed.c (expand_mult_highpart): Use op1 instead of wide_op1 when + mode instead of wider_mode is being used. + +2000-07-03 Jakub Jelinek + + * config/i386/i386.md (movstrictqi_xor): Use 'q' constraint instead + of 'r'. Use q_regs_operand. + (andsi_1+2): Use q_regs_operand. + +2000-07-03 Jakub Jelinek + + * builtins.c (get_memory_rtx): Always put into alias set 0. + +2000-07-03 Nick Clifton + + * config/arm/arm.md: Fix post increment and pre increment + peepholes so that they do not generate UNPREDICATBLE opcodes. + (ie ones where the increment clobbers the source/destination). + +2000-07-01 Marek Michalkiewicz + + * config/avr/avr.c (out_adj_frame_ptr): Make "frame pointer + change too big for -mtiny-stack" a warning, if larger than 63. + (out_set_stack_ptr): Change the logic so -mno-interrupts is + always safe to use on possible future devices. + (function_prologue): Write SPH before SPL, for consistency. + If interrupt_func_p true, we know we have enabled interrupts. + (avr_num_arg_regs): New function. Round up to even number of + bytes if no -mpack-args or if calling a libgcc function. + (function_arg, function_arg_advance): Use it. + (output_movsisf, ashlsi3_out, ashrsi3_out, lshrsi3_out): + Output "movw" if available. + (out_tsthi, out_tstsi, ashlqi3_out, lshrqi3_out): Change uses + of TEST_HARD_REG_CLASS macro to test_hard_reg_class function. + (asm_output_section_name): Add blanks for consistent output. + (encode_section_info): Set TREE_READONLY for progmem data to + avoid gas warnings about changed section attributes. + (avr_hard_regno_mode_ok): Force non-QImode data to start in + even numbered registers on devices with "movw". + * config/avr/avr.h (MASK_*): Define bits for target_flags. + (TARGET_SWITCHES): Mark help strings for translation. + Add new -mpack-args and -menhanced switches. + (TARGET_OPTIONS): Mark help strings for translation. + (progmem_section): Add section attributes. + * config/avr/avr.md (*movhi, call_insn, call_value_insn): + Output "movw" if available. + (mulqi3, mulqihi3, umulqihi3, mulhi3, *tablejump_enh): + New patterns. + * config/avr/libgcc.S (_mulqi3, _divqi3): Update to the new + call convention (arguments aligned on even registers). + (_cleanup, _exit): Make weak symbols libc can override. + +2000-07-03 Kaveh R. Ghazi + + * fp-bit.h: New file. + + * fp-bit.c: Move common code, prototypes, etc into fp-bit.h. + Comment #endif statements. + (__thenan_sf, __thenan_df): Add missing braces around initializer. + +Mon Jul 3 00:32:47 2000 Jeffrey A Law (law@cygnus.com) + + * gcse.c (compute_pre_data): Compute ae_kill using other local + properties instead of calling compute_ae_kill. + + * alias.c (init_alias_analysis): Do not call + prologue_epilogue_contains until after reload has completed. + +2000-07-02 Benjamin Chelf + + * c-common.h (genrtl_begin_compound_stmt): Remove declaration. + (genrtl_finish_compound_stmt): Likewise. + (genrtl_compound_stmt): Change to return void. + + * c-semantics.c (genrtl_begin_compound_stmt): Remove function and + move code from here to ... + (genrtl_compound_stmt): ... here. + (genrtl_finish_compound_stmt): Remove. + (expand_stmt): Add comment. + +2000-07-02 Zack Weinberg + + * c-typeck.c (build_indirect_ref): Use COMPLETE_OR_VOID_TYPE_P + and VOID_TYPE_P. + +2000-07-02 Jakub Jelinek + + * cpplib.h (struct cpp_reader): New field include_depth. + (struct cpp_printer): Rename last_bsd to last_id. + * cppfiles.c (read_include_file): Bump include_depth. + * cpplex.c (cpp_pop_buffer): Decrement include_depth. + (output_line_command): Output correct #line if a header + is including itself and is not protected against multiple inclusion. + Use include_depth instead of buffer_stack_depth, last_id instead of + last_bsd. + * cppinit.c (cpp_start_read): Initialize last_id instead of + last_bsd. + +2000-07-01 Benjamin Chelf + + * Makefile.in (C_AND_OBJC_OBJS): Added c-semantics.o. + (c-semantics.o): New target. + + * c-common.h (TREE_LANG_FLAG_?): Added documentation. + (genrtl_do_pushlevel): Moved from cp/cp-tree.h. + (genrtl_clear_out_block): Likewise. + (genrtl_goto_stmt): Likewise. + (genrtl_expr_stmt): Likewise. + (genrtl_decl_stmt): Likewise. + (genrtl_if_stmt): Likewise. + (genrtl_while_stmt): Likewise. + (genrtl_do_stmt): Likewise. + (genrtl_return_stmt): Likewise. + (genrtl_for_stmt): Likewise. + (genrtl_break_stmt): Likewise. + (genrtl_continue_stmt): Likewise. + (genrtl_scope_stmt): Likewise. + (genrtl_switch_stmt): Likewise. + (genrtl_case_label): Likewise. + (genrtl_begin_compound_stmt): Likewise. + (gerntl_finish_compound_stmt): Likewise. + (genrtl_compound_stmt): Likewise. + (genrtl_asm_stmt): Likewise. + (genrtl_decl_cleanup): Likewise. + (DECL_ANON_UNION_ELEMS): Likewise. + (emit_local_var): Likewise. + (make_rtl_for_local_static): Likewise. + (expand_cond): Likewise. + (expand_stmt): Likewise. + (c_expand_return): Likewise. + (c_expand_start_case): Likewise. + (do_case): Likewise. + (COMPOUND_STMT_NO_SCOPE): Likewise. + (c_expand_asm_operands): Likewise. + (NEW_FOR_SCOPE_P): New macro. + (expand_expr_stmt_fn): New type. + + (set_current_function_name_declared): Likewise. + (current_function_name_declared): Likewise. + (lang_expand_stmt): Likewise. + (stmts_are_full_exprs_p): Likewise. + (anon_aggr_type_p): Likewise. + (lang_expand_expr_stmt): Likewise. + (build_case_label): Likewise. + + * c-decl.c (lang_expand_expr_stmt): Initialize. + (stmts_are_full_exprs_p): Define. + (current_function_name_declared): Likewise. + (do_case): Likewise. + (lang_expand_stmt): Likewise. + (set_current_function_name_declared): Likewise. + (anon_aggr_type_p): Likewise. + + * c-semantics.c: New file. + (expand_cond): Moved from cp/semantics.c. + (genrtl_do_pushlevel): Likewise. + (genrtl_clear_out_block): Likewise. + (genrtl_goto_stmt): Likewise. + (genrtl_expr_stmt): Likewise. + (genrtl_decl_stmt): Likewise. + (genrtl_if_stmt): Likewise. + (genrtl_while_stmt): Likewise. + (genrtl_do_stmt): Likewise. + (genrtl_return_stmt): Likewise. + (genrtl_for_stmt): Likewise. + (genrtl_break_stmt): Likewise. + (genrtl_continue_stmt): Likewise. + (genrtl_scope_stmt): Likewise. + (genrtl_switch_stmt): Likewise. + (genrtl_case_label): Likewise. + (genrtl_begin_compound_stmt): Likewise. + (genrtl_finish_compound_stmt): Likewise. + (genrtl_compound_stmt): Likewise. + (genrtl_asm_stmt): Likewise. + (genrtl_decl_cleanup): Likewise. + (make_rtl_for_local_static): Moved from cp/decl.c. + (emit_local_var): Likewise. + (expand_stmt): Define. + + * c-tree.h: (c_expand_asm_operands): Moved to c-common.h. + (c_expand_return): Likewise. + (c_expand_start_case): Likewise. + +2000-07-01 Richard Henderson + + * config/ia64/ia64.c (symbolic_operand): Reject CONST expressions + with the low 13 bits set. + (move_operand): Check for CONST|SYMBOL_REF|LABEL_REF directly. + * config/ia64/ia64.md (movdi): Likewise. Expand a CONST with one + of the low 13 bits into a CONST plus an adddi3. + (load_symptr): Set RTX_UNCHANGING_P. + 2000-06-30 Mark Mitchell * Makefile.in (c-common.o): Don't depend on c-tree.h or c-lex.h. @@ -16856,5 +32122,3 @@ Mon Jan 3 02:54:40 2000 Hans-Peter Nilsson * expmed.c (emit_store_flag): Prevent losing a pending stack adjust the same way we prevent losing queued increments. - -See ChangeLog.2 for earlier changes. diff --git a/gcc/ChangeLog.6 b/gcc/ChangeLog-2001 similarity index 57% rename from gcc/ChangeLog.6 rename to gcc/ChangeLog-2001 index 8e1510d00937..c2ee9b024af2 100644 --- a/gcc/ChangeLog.6 +++ b/gcc/ChangeLog-2001 @@ -19205,4 +19205,14441 @@ Sun Jul 1 11:53:52 2001 Richard Kenner (check_for_label_ref): New function. (cse_basic_block): Don't check new_label_ref; call check_for_label_ref. -See ChangeLog.5 for earlier changes. +2001-06-30 Zack Weinberg + + * rtl.def (DEFINE_INSN, DEFINE_INSN_AND_SPLIT, DEFINE_PEEPHOLE): + Change output-template slot to format 'T'. + * rtl.h (XTMPL): New. + * read-rtl.c (read_escape): New function. + (read_quoted_string, read_braced_string): Use it. + (read_rtx): Set star_if_braced from the format string. + Use XTMPL where appropriate. + * genoutput.c (gen_insn, gen_peephole): Use XTMPL to get the + template string. + + * rtl.c: Include errors.h for sake of rtl_check_failed* routines. + Document 'T' in rtx format strings. + * Makefile.in (rtl.o, $(HOST_PREFIX_1)rtl.o): Depend on errors.h. + * errors.c (internal_error): Add missing ": " at end of string. + + * i860.md: Change triple backslashes to double backslashes at + ends of lines in output templates. + * ns32k.md: Remove stray backslash-newline in output template. + +2001-06-29 Nick Clifton + + * gcc.c (process_command): Append a DIR_SEPARATOR to a path + specified by the -B switch, if doing so would create a valid + directory name. + * doc/invoke.texi: Document changed behavior of -B. + +2001-06-29 DJ Delorie + + * simplify-rtx.c (simplify_subreg): When simplifying a CONCAT, at + least get rid of the CONCAT if we can't simplify further. + +Fri Jun 29 12:27:24 2001 Jeffrey A Law (law@cygnus.com) + + * simplify-rtx.c (simplify_rtx): Use swap_commutative_operands_p. + + * doc/gcc.texi (Passes): Update due to recent -fdce -> -fssa-dce + changes. Fix documentation for SSA DCE pass. + + * ssa-dce.c (ssa_eliminate_dead_code): Renamed from + eliminate_date_code. + * ssa.h (ssa_eliminate_dead_code): Corresponding changes. + * timevar.def (TV_SSA_DCE): Renamed from TV_DEAD_CODE_ELIM. + * toplev.c (DFI_ssa_dce): Renamed from DFI_dce. + (dump_file_info): Similar changes. + (flag_ssa_dce): Similarly + (f_options): Similar changes. + (rest_of_compilation): Corresponding changes. + * doc/invoke.texi: Update as option is now -fssa-dce instead + of -fdce. Update dump file name. + + * ssa-dce.c (note_inherently_necessary_set): New function. + (find_inherently_necessary): Use it. Do not consider + NOTEs, CODE_LABELs or BARRIERS are necessary. Improve + handling of asms and unspecs. + (delete_insn_bb): Only delete INSNs, CALL_INSNs or JUMP_INSNs. + +2001-06-29 Joseph S. Myers + + * target.h (struct gcc_target): Add comp_type_attributes and + set_default_type_attributes. + * target-def.h (TARGET_COMP_TYPE_ATTRIBUTES, + TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Define. + (TARGET_INITIALIZER): Update. + * doc/tm.texi (COMP_TYPE_ATTRIBUTES, TARGET_COMP_TYPE_ATTRIBUTES, + SET_DEFAULT_TYPE_ATTRIBUTES, TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): + Update documentation of old target macros to describe new target + hooks. + * tree.c (make_node): Use target.set_default_type_attributes. + (default_comp_type_attributes, + default_set_default_type_attributes): New functions. + * tree.h (default_comp_type_attributes, + default_set_default_type_attributes): Declare. + * c-typeck.c (COMP_TYPE_ATTRIBUTES): Don't define. + (comptypes): Use target.comp_type_attributes. + * config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h + (arc_comp_type_attributes, arc_set_default_type_attributes, + COMP_TYPE_ATTRIBUTES, SET_DEFAULT_TYPE_ATTRIBUTES): Remove + functions and macros with default behavior. + * config/m32r/m32r-protos.h, config/m32r/m32r.c, + config/m32r/m32r.h (m32r_comp_type_attributes, + m32r_set_default_type_attributes, COMP_TYPE_ATTRIBUTES, + SET_DEFAULT_TYPE_ATTRIBUTES): Likewise. + * config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c, + config/m68hc11/m68hc11.h (m68hc11_comp_type_attributes, + m68hc11_set_default_type_attributes, COMP_TYPE_ATTRIBUTES, + SET_DEFAULT_TYPE_ATTRIBUTES): Likewise. + * config/ns32k/ns32k-protos.h, config/ns32k/ns32k.c, + config/ns32k/ns32k.h (ns32k_comp_type_attributes, + COMP_TYPE_ATTRIBUTES): Likewise. + * config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c, + config/rs6000/rs6000.h (rs6000_comp_type_attributes, + rs6000_set_default_type_attributes, COMP_TYPE_ATTRIBUTES, + SET_DEFAULT_TYPE_ATTRIBUTES): Likewise. + * config/d30v/d30v.h (COMP_TYPE_ATTRIBUTES, + SET_DEFAULT_TYPE_ATTRIBUTES): Remove commented out macro + definitions. + * config/i386/i386.h (SET_DEFAULT_TYPE_ATTRIBUTES): Likewise. + * config/ns32k/ns32k.h (SET_DEFAULT_TYPE_ATTRIBUTES): Likewise. + * config/arm/arm.c (arm_comp_type_attributes, + arm_set_default_type_attributes): Make static. + (TARGET_COMP_TYPE_ATTRIBUTES, TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): + Define. + * config/arm/arm.h (COMP_TYPE_ATTRIBUTES, + SET_DEFAULT_TYPE_ATTRIBUTES): Don't define. + * config/arm/arm-protos.h (arm_comp_type_attributes, + arm_set_default_type_attributes): Don't declare. + * config/i386/i386.c (ix86_comp_type_attributes): Make static. + (TARGET_COMP_TYPE_ATTRIBUTES): Define. + * config/i386/i386.h (COMP_TYPE_ATTRIBUTES): Don't define. + * config/i386/i386-protos.h (ix86_comp_type_attributes): Don't + declare. + +2001-06-28 Jan van Male + + * predict.c (dump_prediction): Eliminate fprintf warning. + +2001-06-28 Diego Novillo + + * flow.c (dump_bb): Remove unused third argument to call + to fprintf when displaying the basic block header. + +2001-06-28 Michael Hayes + Jeff Law + + * Makefile.in (OBJS): Add df.o + (df.o): Add dependencies. + * basic-block.h (flow_depth_first_order_compute): Declare. + * flow.c (flow_depth_first_order_compute): No longer declare. + Make external. + * df.c, df.h: New files. + +2001-06-28 Zack Weinberg + + * config/i386/i386.md: Global update to use new string syntax + where it will improve readability. Warning fixes: + (*truncdfsf2_2): Abort if which_alternative is not 0 or 1. + (*adddi_1_rex64, *adddi_2_rex64, *adddi_3_rex64, + *adddi_4_rex64, *adddi_5_rex64): Cast 1 to unsigned int. + + * read-rtl.c: Syntactic sugar for C embedded in strings in + machine descriptions. + (read_string): Break inner loop into separate function. Takes + an int. Dispatch to read_quoted_string or read_braced_string + as appropriate. Automatically insert a leading star on braced + strings if STAR_IF_BRACED is true. + (read_quoted_string, read_braced_string): New functions. + * doc/rtl.texi, doc/md.texi: Document new syntax. Update + examples to match. + + * rtl.c: Split RTL reader (read_rtx, read_skip_spaces, + traverse_md_constants, fatal_with_file_and_line, + fatal_expected_char, read_name, read_string, def_hash, + def_name_eq_p, read_constants, and related data) to its own + file. Weed out now-unnecessary #includes. + * read-rtl.c: New file. + * Makefile.in (HOST_RTL): Add read-rtl.o. + (read-rtl.o): New rule. + (rtl.o, $(HOST_PREFIX_1)rtl.o): Update dependencies. + * doc/gcc.texi (Passes): Talk briefly about the support + library used by genfoo. + * doc/rtl.texi (Reading RTL): read_rtx is not available in the + compiler itself. + +2001-06-28 Stan Shebs + + * config/darwin.h (REGISTER_TARGET_PRAGMAS): Define. + * config/darwin-c.c: New file. + * config/darwin-protos.h: Declare new functions. + * config/rs6000/t-darwin (darwin-c.o): New rule. + * config.gcc (powerpc-*-darwin*): Define c_target_objs and + cxx_target_objs. + * doc/extend.texi (Pragmas): New section. + +Thu Jun 28 20:13:11 CEST 2001 Jan Hubicka + + * flow.c (try_merge_block): Rename to try_optimize_cfg; + do basic simplifications on the CFG. + (is_forwarder_block_p, can_fallthru, try_redirect_by_replacing_jump, + try_simplify_condjump): New. + (redirect_edge_and_branch): Try replace jump insn. + (flow_delete_insn): Handle deleting of ADDR_VEC insns. + + * basic-block.h (FALLTHRU_EDGE, BRANCH_EDGE): New macros. + +Thu Jun 28 11:19:42 2001 Jeffrey A Law (law@cygnus.com) + + * ssa-dce.c (eliminate_dead_code): Properly handle control + dependencies implied by PHI nodes. + + * ssa-dce.c (eliminate_dead_code): Remove fake edges from the + CFG after dead code elimination is complete. + +2001-06-28 Rainer Orth + + * gthr-posix.h [LIBOBJC]: Add weak definitions of + sched_get_priority_max, sched_get_priority_min. + +2001-06-28 Gabriel Dos Reis + + * diagnostic.c (default_print_error_function): Tweak. + (report_error_function): Likewise. + * toplev.h (default_print_error_function): Move to... + * diagnostic.h: ...here. Add a `diagnostic_context *' parameter. + * tree.h (print_error_function): Move to... + * diagnostic.h: ...here. Add a `diagnostic_context *' parameter. + +Thu Jun 28 06:16:45 2001 Richard Kenner + + * expr.c (expand_assignment): When have varying-length object, + make MEM a BLKmode. + (expand_expr, case ADDR_EXPR): Use SAVE_EXPR_RTL after putting + SAVE_EXPR stack in case we had a SUBREG. + +Thu Jun 28 10:31:06 CEST 2001 Jan Hubicka + + * i386.md (cmp?i): Simplify; refuse immediate operand + in alternative 0 + * i386.c (cmpsi_operand): Refuse constants. + + * i386.md (movsi_insv_1, movsi_insv_1_rex64): Allow immediate operand. + + * flow.c (block_label, redirect_edge_and_branch): Split out from .... + (split_edge) .... here; + +2001-06-28 Neil Booth + + * i386/i386.c (ix86_valid_type_attribute_p): Give external + linkage, move declaration to... + * i386/i386-protos.h: ...here. + +2001-06-27 H.J. Lu (hjl@gnu.org) + + * build-make (CC): Removed. + (HOST_CC): Set to $(CC_FOR_BUILD). + (HOST_CFLAGS): Replace $(CFLAGS) with $(CFLAGS_FOR_BUILD). + Fix a typo in comments. + + * configure.in: Set CFLAGS to $(CFLAGS_FOR_BUILD) when + generating auto-build.h for canadian cross compile. Set CC + to `"${CC_FOR_BUILD}"' instead of just `${CC_FOR_BUILD}'. + Save/restore CFLAGS. + * configure: Regenerated. + +2001-06-27 Jim Wilson + + * emit-rtl.c (gen_highpart): Call validize_mem. + +2001-06-27 Bruce Korb + + * fixinc/inclhack.def(hpux11_cpp_pow_inline): new, but real similar to + hpux10_cpp_pow_inline. Not similar enough. + (solaris_mutex_init): renamed. PTHREAD_*_INITIALIZER is a problem for + all Solaris versions. This fix patches MUTEX and COND initializers, + the RWLOCK one will wait for someone to complain. For now, anyway. + (uw7_byteorder_fix): It was looking for the byteorder.h file in the + wrong directory. + +2001-06-27 Stan Shebs + + * objc/objc-act.c (handle_impent): Rewrite to be more portable + and to use ASM_DECLARE_CLASS_REFERENCE. + * config/darwin.h (ASM_DECLARE_CLASS_REFERENCE): Rename from + undocumented DECLARE_CLASS_REFERENCE, add file argument. + * doc/tm.texi (ASM_DECLARE_CLASS_REFERENCE): Document. + +Wed Jun 27 18:01:09 2001 Jeffrey A Law (law@cygnus.com) + + * simplify-rtx.c (simplify_rtx): Canonicalize commutative expressions + by putting complex operands first and constants second. + +2001-06-27 Gabriel Dos Reis + + * diagnostic.h: Add documentation. Make macros polymorphic. + * diagnostic.c (ideal_line_wrap_cutoff): Remove + definition. Replace with diagnostic_line_cutoff. + (prefixing_policy): Remove. Replace with diagnostic_prefixing_rule. + +2001-06-27 Joseph S. Myers + + * doc/c-tree.texi, doc/contrib.texi, doc/cpp.texi, + doc/cppinternals.texi, doc/extend.texi, doc/gcc.texi, + doc/gcov.texi, doc/install-old.texi, doc/install.texi, + doc/invoke.texi, doc/md.texi, doc/rtl.texi, doc/tm.texi: Replace + . at end of sentences preceded by a capital letter with @.. + +2001-06-26 Daniel Berlin + + * doc/invoke.texi: Add description of max-gcse-passes param. + + * gcse.c (gcse_main): Use MAX_GCSE_PASSES instead of MAX_PASSES. + (MAX_PASSES): Remove now unneeded macro. + + * params.h (MAX_GCSE_PASSES): New macro, to get parameter value of + max-gcse-passes param. + + * params.def (PARAM_MAX_GCSE_PASSES): New parameter, controlling + maximum number of GCSE passes to run. Defaults to 1 (which is what + MAX_PASSES in gcse.c used to be). + +2001-06-27 Neil Booth + + * system.h (TARGET_ESC): Move to ... + * defaults.h (TARGET_ESC): ... here. + * target-def.h (TARGET_VALID_DECL_ATTRIBUTE, + TARGET_VALID_TYPE_ATTRIBUTE): Default to a no-op handler. + * tree.c (default_valid_attribute_p): New. + (valid_machine_attribute): Handlers can not be NULL. + * tree.h (default_valid_attribute_p): New. + * doc/tm.texi: Document TARGET_ESC. + * cp/decl2.c (import_export_class): Update. + +2001-06-26 Bruce Korb + + * gcc/fixinc/fixincl.c(initialize): In very strict ANSI, you cannot + use preprocessing directives inside a string literal. Fixed. + +2001-06-26 Jim Wilson + + * doc/tm.texi (MAX_LONG_DOUBLE_TYPE_SIZE, INTEL_EXTENDED_IEEE_FORMAT): + Document. + +2001-06-27 Joseph S. Myers + + * doc/cpp.texi, doc/cppinternals.texi, doc/extend.texi, + doc/gcc.texi, doc/install.texi, doc/invoke.texi, doc/md.texi, + doc/tm.texi: Use @: where necessary when a full stop does not end + a sentence. + +2001-06-27 Joseph S. Myers + + * doc/gcc.texi, doc/install.texi, doc/invoke.texi: Remove trailing + whitespace. + +2001-06-26 Joseph S. Myers + + * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi, doc/gcc.texi, + doc/install.texi, doc/invoke.texi, doc/objc.texi, doc/rtl.texi, + doc/tm.texi: Use two spaces after ends of sentences. + +2001-06-26 Daniel Berlin + + * toplev.c (display_help): Fix param thinko. + * Makefile.in: Fix params.h dependencies. + +2001-06-26 Gabriel Dos Reis + + * toplev.c (decode_f_option): Adjust setting. + (toplev_main): Call diagnostic_initialize. Remove call to + reshape_diagnostic_buffer._ + + * diagnostic.h (struct output_buffer): Add new field format_decoder. + (diagnostic_format_decoder): New macro. + (diagnostic_prefixing_rule): Likewise. + (diagnostic_line_cutoff): Likewise. + (set_message_prefixing_rule): Remove. + + * diagnostic.c (lang_printer): Remove. + (diagnostic_message_length_per_line): Likewise. + (current_prefixing_rule): Likewise. + (initialize_diagnostics): Rename to... + (diagnostic_initialize): ...this. Tweak. + (default_initialize_buffer): Remove. + (reshape_diagnostic_buffer): Likewise. + (init_output_buffer): Adjust prefixing rule setting. + (output_format): Use format_decoder from the output_buffer. + + * c-lang.c (c_init): Adjust tree formatter setting. + +2001-06-26 Rainer Orth + + * config/i386/sol2.h (CPP_SPEC): Pass -P for .S files. + +2001-06-26 Neil Booth + + * Makefile.in (TARGET_H, TARGET_DEF_H): New. + (c-decl.o, tree.o, c-typeck.o, $(out_object_file)): Update. + * c-decl.c (duplicate_decls): Use function pointer. + * c-typeck.c (common_type): Similarly. + * tree.c (valid_machine_attribute): Similarly. + (merge_machine_type_attributes): Rename merge_type_attributes. + (merge_machine_decl_attributes): Rename merge_decl_attributes. + (merge_dllimport_decl_attributes): New function. + * tree.h (merge_machine_type_attributes): Rename merge_type_attributes. + (merge_machine_decl_attributes): Rename merge_decl_attributes. + (merge_dllimport_decl_attributes): New prototype. + * target.h: New. + * target-def.h: New. + +doc: (Joseph Myers) + * doc/gcc.texi, doc/tm.texi: Update documentation. + +cp: Make-lang.in: Update dependencies. + * spew.c: Include target.h. + (duplicate_decls): Call target function. + * decl2.c: include target.h + (import_export_class): Use existence of target function pointer. + * typeck.c: Include target.h. + (qualify_type_recursive): Rename variable. Call target function. + (type_after_usual_arithmetic_conversions): Similarly. + (common_type): Similarly. + +config: * 1750a/1750a.c, a29k/29k.c, alpha/alpha.c, arc/arc.c, arm/arm.c, + avr/avr.c, c4x/c4x.c, clipper/clipper.c, convex/convex.c, + d30v/d30v.c, dsp16xx/dsp16xx.c, elxsi/elxsi.c, fr30/fr30.c, + i370/i370.c, i386/i386.c, i860/i860.c, i960/i960.c, ia64/ia64.c, + m32r/m32r.c, m68hc11/m68hc11.c, m68k/m68k.c, m88k/m88k.c, + mips/mips.c, mn10200/mn10200.c, mn10300/mn10300.c, ns32k/ns32k.c, + pa/pa.c, pdp11/pdp11.c, pj/pj.c, romp/romp.c, rs6000/rs6000.c, + sh/sh.c, sparc/sparc.c, v850/v850.c, vax/vax.c, we32k/we32k.c) + : Include target.h and target-def.h. Define target. + + * arc/arc-protos.h (arc_valid_machine_decl_attribute): Remove. + * arc/arc.c (arc_valid_machine_decl_attribute): Rename + arc_valid_decl_attribute, make static. + * arc/arc.h (VALID_MACHINE_TYPE_ATTRIBUTE): Remove. + * arm/arm-protos.h (arm_valid_machine_decl_attribute, + arm_valid_type_attribute_p, arm_pe_valid_machine_decl_attribute, + arm_pe_merge_machine_decl_attributes): Remove. + * arm/arm.c (arm_valid_machine_decl_attribute_p): Rename + arm_valid_decl_attribute_p, make static. + (arm_pe_valid_decl_attribute_p): Move from pe.c. + * arm/pe.c (arm_pe_valid_machine_decl_attribute_p): Move to arm.c. + (arm_pe_merge_machine_decl_attributes): Move to tree.c. + * arm/arm.h (VALID_MACHINE_TYPE_ATTRIBUTE): Remove. + * arm/coff.h (VALID_MACHINE_DECL_ATTRIBUTE): Remove. + * arm/elf.h (VALID_MACHINE_DECL_ATTRIBUTE): Remove. + * arm/pe.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): New. + (VALID_MACHINE_TYPE_ATTRIBUTE, VALID_MACHINE_DECL_ATTRIBUTE): Remove. + * avr/avr-protos.h (valid_machine_type_attribute, + valid_machine_decl_attribute): Remove. + * avr/avr.c (valid_machine_type_attribute, + valid_machine_decl_attribute): Rename and make static. + * avr/avr.h (VALID_MACHINE_TYPE_ATTRIBUTE, + VALID_MACHINE_DECL_ATTRIBUTE): Remove. + * c4x/c4x-protos.h (c4x_valid_type_attribute_p): Remove. + * c4x/c4x.c (c4x_valid_type_attribute_p): Make static. + * c4x/c4x.h (VALID_MACHINE_TYPE_ATTRIBUTE): Remove. + * d30v/d30v.h: Remove obsolete comments. + * h8300/h8300-protos.h (h8300_valid_machine_decl_attribute): Remove. + * h8300/h8300.c (h8300_valid_machine_decl_attribute): Rename, make + static. + * h8300/h8300.h (VALID_MACHINE_DECL_ATTRIBUTE): Remove. + * i386/cygwin.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define. + (i386_pe_merge_decl_attributes, MERGE_MACHINE_DECL_ATTRIBUTES, + i386_pe_valid_type_attributes_p): Remove. + * i386/i386-protos.h (ix86_valid_decl_attribute_p, + ix86_valid_type_attribute_p): Remove. + * i386/i386.c (ix86_valid_decl_attribute_p): Remove. + (ix86_valid_type_attribute_p): Make static. + * i386/i386.h (VALID_MACHINE_DECL_ATTRIBUTE, + VALID_MACHINE_TYPE_ATTRIBUTE): Remove. + * i386/winnt.c (i386_pe_merge_decl_attributes): Move to tree.c. + * ia64/ia64-protos.h (ia64_valid_type_attribute): Remove. + * ia64/ia64.c (ia64_valid_type_attribute): Make static. + * ia64/ia64.h (VALID_MACHINE_TYPE_ATTRIBUTE): Remove. + * m32r/m32r-protos.h (m32r_valid_machine_decl_attribute): Remove. + * m32r/m32r.c (m32r_valid_decl_attribute): Make static. + * m32r/m32r.h (VALID_MACHINE_DECL_ATTRIBUTE): Remove. + * m68hc11/m68hc11-protos.h (m68hc11_valid_decl_attribute_p, + m68hc11_valid_type_attribute_p): Remove. + * m68hc11/m68hc11.c (m68hc11_valid_decl_attribute_p): Remove. + (m68hc11_valid_type_attribute_p): Make static. + * m68hc11/m68hc11.h (VALID_MACHINE_DECL_ATTRIBUTE, + VALID_MACHINE_TYPE_ATTRIBUTE): Remove. + * mcore/mcore-protos.h (mcore_valid_machine_decl_attribute, + mcore_merge_machine_decl_attribute): Remove. + * mcore/mcore.c (mcore_valid_machine_decl_attribute): Rename, + make static. + (mcore_merge_machine_decl_attributes): Move to tree.c. + * mcore/mcore.h (VALID_MACHINE_DECL_ATTRIBUTE, + VALID_MACHINE_TYPE_ATTRIBUTE): Remove. + (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define. + * ns32k/ns32k-protos.h (ns32k_valid_decl_attribute_p, + ns32k_valid_type_attribute_p): Remove. + * ns32k/ns32k.c (ns32k_valid_decl_attribute_p): Remove. + (ns32k_valid_type_attribute_p): Make static. + * ns32k/ns32k.h (VALID_MACHINE_DECL_ATTRIBUTE, + VALID_MACHINE_TYPE_ATTRIBUTE): Remove. + * rs6000/rs6000-protos.h (rs6000_valid_decl_attribute_p, + rs6000_valid_type_attribute_p): Remove. + * rs6000/rs6000.c (rs6000_valid_decl_attribute_p): Remove. + (rs6000_valid_type_attribute_p): Make static. + * rs6000/rs6000.h (VALID_MACHINE_DECL_ATTRIBUTE, + VALID_MACHINE_TYPE_ATTRIBUTE): Remove. + * sh/sh-protos.h (sh_valid_machine_decl_attribute): Remove. + * sh/sh.c (sh_valid_machine_decl_attribute): Rename, make static. + * sh/sh.h (VALID_MACHINE_DECL_ATTRIBUTE): Remove. + * v850/v850-protos.h (v850_valid_machine_decl_attribute): Remove. + * v850/v850.c (v850_valid_machine_decl_attribute): Rename, make static. + * v850/v850.h (VALID_MACHINE_DECL_ATTRIBUTE): Remove. + +2001-06-26 Vladimir Makarov + + * glimits.h (USHRT_MAX): Use unsigned suffix if int can not hold + it. + +2001-06-26 Gabriel Dos Reis + + * diagnostic.h (struct diagnostic_context): Add new field. + (lang_diagnostic_starter, lang_diagnostic_finalizer): Remove + declaratons. + (global_dc): Declare. + * diagnostic.c (global_diagnostic_context): New variable. + (global_output_buffer): Remove. + (global_dc): Define. + (lang_diagnostic_starter, lang_diagnostic_finalizer): Remove + definitions. + (initialize_diagnostics): Adjust initialization. + (set_diagnostic_context): Adjust setting. + +2001-06-26 Rainer Orth + + * config/mips/iris5.h (UNALIGNED_INT_ASM_OP, + UNALIGNED_SHORT_ASM_OP): Define. + * config/mips/iris6.h (UNALIGNED_INT_ASM_OP, + UNALIGNED_SHORT_ASM_OP): Undef. + +Tue Jun 26 12:40:12 CEST 2001 Jan Hubicka + + * i386.md (float_truncate splitter, and to mov splitters): Add + reload_completed; fix operand predicate. + + * haifa-sched.c (sched_init): Do not split insns. + * toplev.c (rest_of_compilation): Call split_all_insns before + sched1 pass; simplify condition of post-reload splitter; + call split_all_insn before sched2 pass. + +2001-06-26 Gabriel Dos Reis + + * diagnostic.h (diagnostic_prefixing_rule_t): New enum type. + (set_message_prefixing_rule): Adjust prototype. + * diagnostic.c (current_prefixing_rule): Adjust type. + +2001-06-26 Neil Booth + + * defaults.h: Default escape sequences to ASCII. + * config/i370/i370.h: Adjust for ASCII default. + * config/1750a/1750a.h: Remove escape sequence definitions. + * config/a29k/a29k.h: Similarly. + * config/alpha/alpha.h: Similarly. + * config/arc/arc.h: Similarly. + * config/arm/arm.h: Similarly. + * config/avr/avr.h: Similarly. + * config/c4x/c4x.h: Similarly. + * config/clipper/clipper.h: Similarly. + * config/convex/convex.h: Similarly. + * config/d30v/d30v.h: Similarly. + * config/dsp16xx/dsp16xx.h: Similarly. + * config/elxsi/elxsi.h: Similarly. + * config/fr30/fr30.h: Similarly. + * config/h8300/h8300.h: Similarly. + * config/i386/i386.h: Similarly. + * config/i860/i860.h: Similarly. + * config/i960/i960.h: Similarly. + * config/ia64/ia64.h: Similarly. + * config/m32r/m32r.h: Similarly. + * config/m68hc11/m68hc11.h: Similarly. + * config/m68k/m68k.h: Similarly. + * config/m88k/m88k.h: Similarly. + * config/mcore/mcore.h: Similarly. + * config/mips/mips.h: Similarly. + * config/mn10200/mn10200.h: Similarly. + * config/mn10300/mn10300.h: Similarly. + * config/ns32k/ns32k.h: Similarly. + * config/pa/pa.h: Similarly. + * config/pdp11/pdp11.h: Similarly. + * config/pj/pj.h: Similarly. + * config/romp/romp.h: Similarly. + * config/rs6000/rs6000.h: Similarly. + * config/sh/sh.h: Similarly. + * config/sparc/sparc.h: Similarly. + * config/v850/v850.h: Similarly. + * config/vax/vax.h: Similarly. + * config/we32k/we32k.h: Similarly. + * doc/tm.texi: Update documentation. + +2001-06-26 Gabriel Dos Reis + + * diagnostic.c (digit_buffer): Remove as global. Move to... + * diagnostic.h (struct output_buffer): ... here. + * diagnostic.c (output_formatted_integer): Adjust use of digit_buffer. + +2001-06-25 Steve Ellcey + + * config.gcc (ia64*-*-hpux*): Add ia64/hpux_longdouble.h to tm_file. + Define tmake_file to include ia64/t-hpux. + * real.c (INTEL_EXTENDED_IEEE_FORMAT): Test for value instead of + testing to see if it is defined. + * real.h (INTEL_EXTENDED_IEEE_FORMAT): Likewise. Default to 0 if + undefined. + * config/ia64/hpux_longdouble.h: New. + * config/ia64/ia64.c (hfa_element_mode): Add comment about incorrect + handling of long doubles. + (ia64_function_arg, ia64_function_value): Add checks for TFmode + and INTEL_EXTENDED_IEEE_FORMAT. + * config/ia64/ia64.h (INTEL_EXTENDED_IEEE_FORMAT): Define to one. + (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK, LIBCALL_VALUE): Add checks for + TFmode and INTEL_EXTENDED_IEEE_FORMAT. + * config/ia64/ia64.md (all TFmode patterns): Test + INTEL_EXTENDED_IEEE_FORMAT in condition. + (floatdidf2, floatdisf2): New, for !INTEL_EXTENDED_IEEE_FORMAT. + * config/ia64/quadlib.c: New. + * config/ia64/t-hpux: New. + * config/i386/i386.h (INTEL_EXTENDED_IEEE_FORMAT): Define to one. + +2001-06-25 Jim Wilson + + * config/i960/t-960bare (i960-c.o): Add missing header dependencies. + * config/i960/t-vxworks960: Likewise. + +2001-06-25 Dale Johannesen + + * bitmap.c (bitmap_last_bit_set): Fix a non-c89 usage (null actual + argument to macro). + +Mon Jun 25 11:10:51 CEST 2001 Jan Hubicka + + * i386.md (movsi_insv_1, movsi_insv_1_rex64): Fix constraints. + +2001-06-25 Joseph S. Myers + + * doc/c-tree.texi, doc/contrib.texi, doc/extend.texi, + doc/gcc.texi, doc/gcov.texi, doc/install.texi, doc/invoke.texi, + doc/md.texi, doc/rtl.texi, doc/tm.texi: Be more consistent about + the use of "GCC" and related terms. + * doc/gcc.1, doc/gcov.1: Regenerate. + +2001-06-24 Joseph S. Myers + + * doc/extend.texi, doc/gcc.texi, doc/install-old.texi, + doc/invoke.texi, doc/md.texi, doc/rtl.texi, doc/tm.texi: Remove + uses of @refill. + +Sun Jun 24 21:21:49 CEST 2001 Jan Hubicka + + * (movsi_insv_1, movsi_insv_1_rex64): Allow immediate operand. + +2001-06-24 Richard Henderson + + * builtins.c (expand_builtin_expect_jump): Disable if the + expression can't be re-evaluated. + +2001-06-24 Nick Clifton + + * config/arm/arm.c (arm_compute_save_reg_mask): For FIQ interrupt + handlers examine register r0-r7, for other interrupt handlers + examine r0-r12. If the interrupt handler is not a leaf function + save all call clobbered registers. + (arm_output_epilogue): If the prologue has pushed the IP register, + restore it here. + (Arm_expand_prologue): For interrupt functions that need the frame + pointer, push the IP register before it is corrupted. + + * config/arm/arm.h (ARM_SIGN_EXTEND): Fix compile time warnings + about the use of signed and unsigned quantities in a conditional. + +2001-06-23 Richard Henderson + + * config/alpha/crtfastmath.c: New file. + * config/alpha/t-crtfm: New file. + * config/alpha/elf.h (ENDFILE_SPEC): Use crtfastmath.o. + * config/alpha/osf.h (ENDFILE_SPEC): Likewise. + * config/alpha/t-crtbe (EXTRA_PARTS): Add pieces defined here. + * config.gcc (alpha-{linux,freebsd,netbsd,osf}): Use alpha/t-crtfm; + do not set extra_parts here. + +2001-06-24 Joseph S. Myers + + * doc/install-old.texi: Remove more documentation of configure + options. + * doc/install.texi: Add it here. + +Sat Jun 23 19:40:05 CEST 2001 Jan Hubicka + + * i386-protos.h (emit_i387_cw_initialization): Declare. + * i386.md (movsi_insv_1): Remove '*'. + (fix_trunc?f?i2): Revamp to use control word parameters. + (fix_trunc?i_1): Likewise; update splitters. + (fix splitter): Remove. + * i386.c (MAX_386_STACK_LOCALS): set to 3. + (emit_i387_cw_initialization): New function. + (output_fix_trunc): Do not initialize control word; + kill dead code; simplify. + +2001-06-23 Neil Booth + + * cppmacro.c (make_string_token): Avoid warning. + (cpp_macro_definition): Prepend the macro name. Update + comments. + * cppmain.c (cb_define, dump_macro): Update for changes + to cpp_macro_definition. + +Sat Jun 23 10:20:03 CEST 2001 Jan Hubicka + + * flow.c (attempt_auto_inc, try_pre_increment_1): Fix typo. + +Sat Jun 23 01:23:59 CEST 2001 Jan Hubicka + + * flow.c (mark_set_1, attempt_auto_inc, mark_used_reg, + try_pre_increment_1): compute REG_FREQ using bb->frequency. + + * regclass.c (loop_cost): Kill. + (frequency): New global variable. + (record_operand_costs): Replace loop_cost by frequency. + (scan_one_insn): Likewise. + (regclass): Likewise; set frequency according to bb->frequency. + + * flow.c (split_edge): Set frequency. + +Sat Jun 23 01:16:42 CEST 2001 Jan Hubicka + + * predict.c (block_info_def): Add nvisited. + (propagate_freq): Count nvisited; re-queue delayed blocks; handle + irreducible regions. + + * flow.c (dump_edge_info): Dump the probability of edge. + (combine_predictions_for_insn): Dump the basic block. + +2001-06-22 Joseph S. Myers + + * doc/gcc.texi: Update documentation of source files of C + compiler. + +2001-06-22 Richard Henderson + + * doc/invoke.texi (-funsafe-math-optimizations): Document its + possible effects at link time. + +2001-06-22 Diego Novillo + + * basic-block.h (dump_edge_info): Declare. + (clear_edges): Declare. + (mark_critical_edges): Declare. + * flow.c (dump_edge_info): Remove static declaration. + (clear_edges): Ditto. + (mark_critical_edges): Ditto. + (free_basic_block_vars): Only clear edges and free basic block + array if basic_block_info is not NULL. + * ssa.c (compute_dominance_frontiers): Remove static declaration. + * ssa.h (compute_dominance_frontiers): Declare. + +2001-06-22 Toshiyasu Morita (toshiyasu.morita@hsa.hitachi.com) + + * predict.c: (expected_value_to_br_prob): Check for const_true_rtx + instead of const1_rtx for true case. + +2001-06-22 David Mosberger + + * config/ia64/crtfastmath.c: New file. + * config/ia64/t-ia64 (EXTRA_PARTS): Include it. + * config/ia64/linux.h (ENDFILE_SPEC): New. + +2001-06-22 Toshiyasu Morita + + * config/h8300/h8300.c (asm_file_start): Remove reference to + "release F-1". + +2001-06-22 Joseph S. Myers + + * c-common.c (verify_tree): Check for x being NULL. + * doc/c-tree.texi: Document COMPOUND_BODY of an empty + COMPOUND_STMT. + Fixes PR c/3259. + +2001-06-22 DJ Delorie + + * config/arm/arm.h (struct machine_function): Remove ra_rtx. + * config/arm/arm.c (arm_mark_machine_status): Remove ra_rtx. + (arm_return_addr): Use get_hard_reg_initial_val et al. + * config/d30v/d30v.h (struct machine_function): Remove ra_rtx. + * config/d30v/d30v.c (d30v_mark_machine_status): Remove ra_rtx. + (d30v_return_addr): Use get_hard_reg_initial_val et al. + * config/rs6000/rs6000.h (struct machine_function): Remove ra_rtx. + * config/rs6000/rs6000.c (rs6000_override_options): Don't set + mark_machine_status. + (rs6000_mark_machine_status): Remove. + (rs6000_return_addr): Use get_hard_reg_initial_val. + (rs6000_ra_ever_killed): Use has_hard_reg_initial_val. + * config/v850/v850.h (INIT_EXPANDERS): Delete. + * config/v850/v850.c (struct machine_function): Delete. + (v850_init_machine_status): Delete. + (v850_mark_machine_status): Delete. + (v850_free_machine_status): Delete. + (v850_return_addr): Use get_hard_reg_initial_val. + (v850_init_expanders): Delete. + +Fri Jun 22 19:20:59 CEST 2001 Jan Hubicka + + * predict.c (estimate_bb_frequencies): Do not handle conditional + jumps jumping to fallthru basic block as conditional jumps. + +Fri Jun 22 19:11:28 CEST 2001 Jan Hubicka + + * regs.h (struct reg_info_def): Add freq field. + (REG_N_REFS): Update comment. + (REG_FREQ): New. + * regclass.c (scan_one_insn): Update REG_FREQ. + * flow.c (mark_set_1): Update REG_FREQ, make REG_N_SETS unweighted. + (attempt_auto_inc): Likewise. + (mark_used_reg): Likewise. + (try_pre_increment_1): Likewise. + * local-alloc.c (struct qty): Add freq field. + (alloc_qty): Set freq. + (update_equiv_regs): Set REG_FREQ. + (QTY_CMP_PRI): Use freq. + (combine_regs): Update qty->freq. + * global.c (struct allocno): Update comment for n_refs; + add freq field. + (local_reg_freq): New array. + (global_alloc): Update freq field; + allocate and initialize local_reg_freq. + (allocno_compare): Use freq field. + (find_reg): Likewise. + * reload1.c (count_pseudo): Use freq isntead of n_refs. + (count_spilled_pseudo): Likewise. + + * tm.texi (GCOV_TYPE_SIZE): Document. + * basic-block.h (gcov_type): Define. + (struct edge_def): Use gcov_type for count field. + (struct basic_block_def): Likewise. + * defaults.h (GCOV_TYPE_SIZE): Define. + * final.c (end_final): Use GCOV_TYPE_SIZE. + * flow.c (dump_edge_info, dump_flow_info, dump_bb): Print count fields + using HOST_WIDEST_INT_PRINT_DEC. + * gcov-io.h (__fetch_gcov_type, __store_gcov_type, __read_gcov_type, + __write_gcov_type): New. + (store_long): Remove. + * gcov.c (gcov_type): Set default. + (struct adj_list): Use gcov_type for arc_count. + (bb_info): Use gcov_type for succ_count, pred_count and exec_count. + (create_program_flow_graph): Read arc_count properly. + (solve_program_flow_graph): 'total' is gcov_type. + (output_data): Line_counts is gcov_type, print it properly. + * libgcc2.c (struct bb): Counts is gcov_type. + (__bb_exit_func): Use __read_gcov_type and __write_gcov_type. + * profile.c (LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE): Set default. + (GCOV_TYPE_SIZE): Define. + (struct bb_info): succ_count and pred_count is gcov_type. + (compute_branch_probabilities): Use __read_gcov_type, + print read edges to the dump file. + (total): Is gcov_type. + (gen_edge_profiler): Use GCOV_TYPE_SIZE. + +2001-06-14 Andrew Haley + + * optabs.c (emit_libcall_block): When using non-call exceptions, + don't mark libcalls never throwing. + +2001-06-21 Stan Shebs + + * objc/objc-act.c (hash_init): Use xcalloc. + +2001-06-21 Richard Henderson + + * flow.c (entry_exit_blocks): Initialize frequency. + (split_block): Copy it. + (dump_flow_info): Dump it. + +Thu Jun 21 22:15:10 2001 J"orn Rennecke + + * sh.c (barrier_align): Also recognize branch-around-a-jump-sequence + from machine-depedent_reorg for purposes of alignment supression + when no delay slot insn has been added. + +2001-06-21 Neil Booth + + * cppmacro.c (make_string_token): Null terminate. + +2001-06-21 DJ Delorie + + * config/alpha/alpha.h (struct machine_function): Remove. + * config/alpha/alpha.c (integrate.h): Include. + (override_options): Don't set up machine_status hooks. + (alpha_init_machine_status): Remove. + (alpha_mark_machine_status): Remove. + (alpha_free_machine_status): Remove. + (alpha_return_addr): Use get_hard_reg_initial_val. + (alpha_gp_save_rtx): Likewise. + (alpha_ra_ever_killed): Use has_hard_reg_initial_val. + +2001-06-20 Aldy Hernandez + + * config/sh/sh.md (interrupt_function): Use + current_function_interrupt. + (define_delay): Schedule in delay slot if TARGET_SH3, even if it is + an interrupt function. + + * config/sh/sh.h (current_function_interrupt): Define extern. + + * config/sh/sh.c (current_function_interrupt): New global. + (sh_expand_prologue): Set current_function_interrupt. + +2001-06-21 Phil Edwards + + * doc/install.texi: Add 'c' to list of --enable-languages choices. + +2001-06-21 DJ Delorie + + * integrate.c (mark_hard_reg_initial_vals): Check for NULL. + + * integrate.c (ggc.h): Include. + (initial_value_pair, initial_value_struct, + setup_initial_hard_reg_value_integration): Add prototypes. + (expand_inline_function): Call + setup_initial_hard_reg_value_integration. + (has_func_hard_reg_initial_val, get_func_hard_reg_initial_val, + get_hard_reg_initial_val, has_hard_reg_initial_val): New functions + to keep track of values present at the start of a function. + (mark_hard_reg_initial_vals): New, for gc. + (setup_initial_hard_reg_value_integration): New. Sets up pseudo + mappings for initial values. + (emit_initial_value_sets): New. Emits code to set initial value + pseudos. + * integrate.h: Add prototypes for new functions. + * function.h (struct function): Add hard_reg_initial_vals field. + * function.c (integrate.h): Include. + (mark_function_status): Call + mark_hard_reg_initial_vals. + * toplev.c (integrate.h): Include. + (rest_of_compilation): Call emit_initial_value_sets. + +2001-06-21 Stan Shebs + + * doc/contrib.texi, doc/cpp.texi, doc/cppinternals.texi, + doc/extend.texi, doc/gcc.texi, doc/install.texi, doc/invoke.texi, + doc/objc.texi, doc/tm.texi: Use the correct name "Objective-C" + everywhere instead of "Objective C". + +2001-06-21 Joseph S. Myers + + * doc/c-tree.texi, doc/contrib.texi, doc/extend.texi, + doc/gcc.texi, doc/install-old.texi, doc/install.texi, + doc/invoke.texi, doc/rtl.texi: Consistently use "front end" and + "back end" as nouns and "front-end" and "back-end" as adjectives. + +Wed Jun 20 21:53:35 CEST 2001 Jan Hubicka + + * predict.c (estimate_probability): Fix loop bounds. + +Wed Jun 20 19:10:48 CEST 2001 Jan Hubicka + + * toplev.c (rest_of_compilation): Run mark_constant_function + before profile-arcs. + +Wed Jun 20 19:08:18 CEST 2001 Jan Hubicka + + * predict.c (estimate_loops_at_level, propagate_freq + estimate_bb_frequencies, count_to_freqs): New functions. + (estimate_probability): Call estimate_bb_frequencies. + * basic-block.h (basic_block_def): Add field "freq". + (BB_FREQ_MAX): New constant. + +Wed Jun 20 17:02:50 2001 J"orn Rennecke + + * sh.c (barrier_align): Don't ask for alignment when seeing a + branch-around-a-jump from machine_dependent_reorg. + +Wed Jun 20 08:35:02 2001 Jeffrey A Law (law@cygnus.com) + + * ssa.c (rename_block): Update parameter to remove_phi_alternative + (convert_from_ssa): Do create REG_DEAD and REG_UNUSED notes when + re-running life analysis. + +2001-06-20 Stan Shebs + + * objc/objc-act.c (hash_init): Assume xmalloc always succeeds, + also use memset to clear the hash tables. + (hash_enter): Assume xmalloc always succeeds. + (hash_add_attr): Ditto. + (continue_class): Ditto. + +2001-06-20 Michael Meissner + + * builtins.c (predict.h): Include. + (expand_builtin_expect): Update comment. + (expand_builtin_expect_jump): New function to expand + __builtin_expect inside of a conditional jump expansion. + + * expr.c (do_jump): Special case __builtin_expect (, 0) and + __builtin_expect (, 1). + + * Makefile.in (builtins.o): Depend on $(PREDICT_H). + + * rtl.h (expand_builtin_expect_jump): Add prototype. + +2001-06-19 Geoffrey Keating + + * doc/rtl.texi (Machine Modes): Correct description of + floating-point modes on machines with non-8-bit bytes. + +2001-06-19 Bernd Schmidt + + * regmove.c (optimize_reg_copy_3): Do nothing if previous insn + carries a REG_EQUIV note. If it carries REG_EQUAL, delete the + note. + +Tue Jun 19 07:53:52 2001 Jeffrey A Law (law@cygnus.com) + + * ssa.c (remove_phi_alternative): Remove declaration. No longer + static. Second argument is a pointer to a basic block structure, + not a basic block index. + (convert_to_ssa): Do not remove dead code. + (convert_from_ssa): Do not remove dead code to create death notes. + * ssa.h (remove_phi_alternative): Declare. + + * flow.c (delete_unreachable_blocks): Fix patch error in + previous change (call to find_unreachable_blocks was lost). + + * ssa.c (ssa_uses): Remove definition. + (apply_delayed_renames): Don't grow ssa_uses. + (rename_block): Remove comment related to ssa_uses. + (rename_registers): Do not initialize ssa_uses. + (convert_from_ssa): Do not free ssa_uses. + + * ssa-dce.c: Renamed from dce.c. + * Makefile.in (OBJS): Replace dce.o with ssa-dce.o + (dependencies): Replace dce.c with ssa-dce.c and dce.o with + ssa-dce.o. + +2001-06-19 Eric Christopher + + * emit-rtl.c (gen_lowpart_common): Do not assume that SFmode + and DFmode are UNITS_PER_WORD and 2*UNITS_PER_WORD. Use + GET_MODE_BITSIZE instead of GET_MODE_SIZE/UNITS_PER_WORD. + +Tue Jun 19 01:52:27 2001 J"orn Rennecke + + * sh.c (output_branch): Delete bogus code. + + * sh.c (initial_elimination_offset): + Fix FROM == RETURN_ADDRESS_POINTER_REGNUM case. + +Mon Jun 18 12:50:49 2001 Jeffrey A Law (law@cygnus.com) + + * flow.c (find_unreachable_blocks): New function. + (delete_unreachable_blocks): Use find_unreachable_blocks. + * basic-block.h (find_unreachable_blocks): Declare. + + * dce.c (eliminate_dead_code): Fix formatting glitch. + +2001-06-18 Jason Merrill + + * c-common.h (RETURN_NULLIFIED_P): New macro. + * c-semantics.c (genrtl_return_stmt): Check it. + + * expr.c (clear_storage): Set TREE_NOTHROW on the decl for memset. + (emit_block_move): Likewise. + +Mon Jun 18 17:27:24 CEST 2001 Jan Hubicka + + * unroll.c: Include predict.h. + (unroll_loop): Drop prediction notes on preconditioning. + * predict.def (PRED_LOOP_PRECONDITIONG, PRED_LOOP_CONDITION): + New; add comments on the others. + * Makefile.in: (unroll.o): Add dependency on predict.h. + * loop.c (strength_reduce): Fix branch prediction. + +Mon Jun 18 17:26:56 CEST 2001 Jan Hubicka + + * stmt.c (emit_case_nodes): Optimize test whether index is in given + interval. + +Mon Jun 18 15:43:10 CEST 2001 Jan Hubicka + + * predict.c (estimate_probability): Do not bail out early + when note is present. + (combine_predictions_for_insn): Fix note removal code. + +2001-06-18 Ben Elliston + + * except.c (resolve_fixup_regions): Initialize "cleanup". + +2001-06-17 Neil Booth + + * tm.texi: Document STDC_0_IN_SYSTEM_HEADERS. + +Sat Jun 16 20:20:39 2001 Richard Kenner + + * expr.c (expand_expr, case ADDR_EXPR): If taking address of SAVE_EXPR, + use put_var_into_stack. + +2001-06-16 Franz Sirl + + * gccspec.c (lang_specific_driver): If compiling ObjC, add + -shared-libgcc when necessary. + * Makefile.in (gccspec.o): Compile with DRIVER_DEFINES. + +2001-06-16 Daniel Berlin + + * bitmap.h: Add dump_bitmap, bitmap_zero, bitmap_union_of_diffs, + bitmap_a_or_b, bitmap_a_and_b, bitmap_first_set_bit, + bitmap_last_set_bit. All for compatibility with sbitmap's. + + *bitmap.c (bitmap_zero): New function. + (bitmap_union_of_diffs): New function. + (bitmap_first_set_bit): New function. + (bitmap_last_set_bit): New function. + +2001-06-16 Neil Booth + + * cpp.texi, invoke.texi: Update. + * cpp.1, gcc.1: Regenerate. + +Sat Jun 16 12:45:20 CEST 2001 Jan Hubicka + + * i386.md (minsf): Fix splitter. (PR fortran/3191) + +2001-06-16 Neil Booth + + * doc/cpp.texi: Update. + * doc/cpp.1: Regenerate. + +2001-06-15 Loren J. Rittle + + * doc/install.texi: Use correct markup hints. + +Fri Jun 15 18:05:22 2001 Richard Kenner + + * function.c (gen_mem_addressof): Handle case where DECL is SAVE_EXPR. + + * explow.c (expr_size): If DECL and size specified, use it. + +2001-06-15 Zack Weinberg + + * doc/cpp.texi: Formatting corrections. + Correct buggy example of use of __GNUC__ etc. + Clarify $ in identifiers. + * doc/cpp.1: Regenerate. + +Fri Jun 15 19:35:38 CEST 2001 Jan Hubicka + + * optabs.c (expand_twoval_binop): Avoid undefined behavior. + +2001-06-15 Rainer Orth + + * doc/install.texi (Specific, alpha*-*-*): Fixed Tru64 UNIX + etc. spelling. + (Specific, alpha-*-osf1): Renamed to alpha*-*-osf*. + Added Tru64 UNIX V5.1 bootstrap hints. + (Specific, alpha*-*-osf*): Removed old section, obsolete. + +2001-06-15 Andreas Jaeger + + * doc/install.texi (Specific): Mention that glibc cannot be + compiled with GCC 3.0. + +2001-06-14 Andrew Haley + + * combine.c (nonzero_bits): Don't optimize away division by + zero. + +2001-06-15 Zack Weinberg + + * doc/cpp.texi: Revised and brought up to date. + * doc/cpp.1: Regenerate. + +2001-06-15 Loren J. Rittle + + * doc/install.texi: Update --enable-threads to match reality. + +2001-06-15 Michael Hayes + + * doc/install.texi: Update for C4x. + * README.C4X: Remove. + +2001-06-14 Joseph S. Myers + + * doc/c-tree.texi, doc/contrib.texi, doc/extend.texi, + doc/gcc.texi, doc/install.texi, doc/invoke.texi, doc/md.texi, + doc/objc.texi, doc/rtl.texi, doc/tm.texi: Fix spelling and typos. + Consistently use "built-in" and "bit-field". Minor logical markup + improvements. + * doc/gcc.1: Regenerate. + +2001-06-14 Richard Henderson + + * config/mips/mips.md (exception_receiver): New. + +2001-06-14 Daniel J. Berlin + + * doc/gcc.texi: Update passes documentation to be more in tune + with reality. + +Thu Jun 14 15:38:28 CEST 2001 Jan Hubicka + + * i386.c (ix86_expand_prologue): Fix merging conflict. + +2001-06-14 Joseph S. Myers + + * doc/c-tree.texi, doc/contrib.texi, doc/extend.texi, + doc/gcc.texi, doc/gcov.texi, doc/install-old.texi, + doc/invoke.texi, doc/md.texi, doc/rtl.texi, doc/tm.texi: Use more + logical markup. Use TeX quotes and dashes. Use @dots{} and + @minus{}. Avoid spaces inside @var. Update last modification + date in gcc.texi. + * doc/gcc.1, doc/gcov.1: Regenerate. + +Thu Jun 14 12:44:15 CEST 2001 Jan Hubicka + + * i386.c (x86_accumulate_outgoing_args, x86_prologue_using_move, + x86_epilogue_using_move): New global variables. + (override_options): Enable ACCUMULATE_OUTGOING_ARGS if preferred. + (ix86_emit_save_regs_using_mov): New static function. + (ix86_expand_prologue, ix86_expand_epilogue): Use moves if preferred. + * i386.h (MASK_MMX, MASK_SSE, MASK_SSE2, MASK_128BIT_LONG_DOUBLE, + MASK_MIX_SSE_I387): Renumber. + (MASK_NO_ACCUMULATE_OUTGOING_ARGS): New. + (x86_accumulate_outgoing_args, x86_prologue_using_move, + x86_epilogue_using_move): Declare. + (TARGET_PROLOGUE_USING_MOVE, TARGET_EPILOGUE_USING_MOVE): New. + +2001-06-13 John David Anglin + + * inclhack.def (hpux10_cpp_pow_inline): New hack. + +2001-06-13 Richard Henderson + + * ifcvt.c (dead_or_predicable): Fix return value last patch. + +2001-06-13 Mark Mitchell + + * NEWS: Remove. + +2001-06-13 Richard Henderson + + * ifcvt.c (cond_exec_get_condition): Use reversed_comparison_code. + (cond_exec_process_if_block, dead_or_predicable): Likewise. + +2001-06-13 Rainer Orth + + * mips-tfile.c (copy_object): Always pass indexNil for symbol + table index. + +2001-06-13 Kazu Hirata + + * config/h8300/h8300.h (OK_FOR_T): Remove. + (EXTRA_CONSTRAINT): Do not use OK_FOR_T. + * config/h8300/h8300.md: Remove alternatives involving inc and dec + in the helper patterns for addhi3 and addsi3. + +2001-06-13 Phil Edwards + + * doc/contrib.texi: Link to libstdc++'s thanks.html for now. + +2001-06-13 Zack Weinberg + + * Makefile.in: Move _bb and __gcc_bcmp to LIB2FUNCS_ST. + * libgcc-std.ver: Take out __bb* and __gcc_bcmp. + + * config/t-slibgcc-elf-ver, config/t-slibgcc-sld, + config/alpha/t-osf4, config/mips/t-iris6: Extract all + references to @shlib_map_file@, @shlib_objs@, or + @shlib_base_name@ to Makefile variables. + Bump soname version of libgcc to 1. + +2001-06-13 Joseph S. Myers + + * doc/install.texi: Use more logical markup. Include @node + commands in the source when generating any non-HTML. + +2001-06-13 Joseph S. Myers + + * README: Remove. Some of the contents moved to ../README. + +2001-06-13 Alexandre Oliva + + * doc/install.texi (--enable-shared): List package names + recognized by GCC. + +2001-06-13 Alexandre Oliva + + * doc/install.texi (ix86-*-solaris*): Removed, outdated. + (*-*-solaris*): Document problem in /bin/sh that affects + configuring libraries. + (sparc-*-solaris*): Recommend GNU binutils 2.11.1 or vendor tools. + (*-sun-solaris2.8): Document linker problem that explains why + libjava is disabled by default. + +2001-06-09 Mark Mitchell + + Revert this patch: + * toplev.c (rest_of_compilation): Remove dead code before + purge_addressof. + +2001-06-12 Alexandre Oliva + + Reverted: + 2001-06-07 Nathan Sidwell + * configure.in (sparc*-*-*): Check assembler R_SPARC_UA32 support. + * configure: Rebuilt. + +2001-06-12 Jim Wilson + + * loop.c (strength_reduce): Move bl->all_reduced set before + check_ext_dependant_givs call. + (check_ext_dependant_givs): Clear bl->all_reduced when ignoring givs. + +2001-06-12 Alexandre Oliva + + * doc/extend.texi (Function Attributes): Document SH's sp_switch + and trap_exit. + +2001-06-13 Joseph S. Myers + + * doc/invoke.texi: Use more logical markup. Use TeX quotes, + dashes and @dots{}. + +2001-06-12 Richard Henderson + + * config/i386/i386.c (ix86_expand_prologue): Always use + gen_pro_epilogue_adjust_stack; update arguments. + (ix86_expand_epilogue): Likewise. + (ix86_emit_epilogue_esp_adjustment): Remove. + (ix86_adjust_cost): Remove pro_epilogue_adjust_stack hack. + * config/i386/i386.md (pro_epilogue_adjust_stack): Use a BLKmode + clobber of scratch memory instead of a modification of EBP as the + barrier. Update all peepholes to match. + +2001-06-12 Joseph S. Myers + + * doc/gcc.texi: Change the font used for @def... commands to a + fixed width font. + * doc/extend.texi: Use more logical markup. Use "built-in" + instead of "builtin". Use @deftypefn to mark up built-in + functions; specify their types in the @deftypefn and not in the + descriptive text. Use TeX quotes and dashes. Add more index + entries. + +2001-06-12 lars brinkhoff + + * gcc.texi (HOST_BITS_PER_LONGLONG): Document. + (DIR_SEPARATOR_2): Likewise. + +2001-06-12 Joseph S. Myers + + * doc/install.texi (--exec-prefix, --bindir, --libdir, + --with-slibdir, --infodir, --mandir, --with-cpp-install-dir): + Document. + (--enable-cpp): Change to document --disable-cpp instead; update + to reflect current default. + (--without-fast-fixincludes): Remove documentation. + (Final install): Document installation directories in more + detail. Document use of make dvi. + +Tue Jun 12 19:01:43 CEST 2001 Jan Hubicka + + * recog.c (validate_replace_rtx_1): Fix previous patch. + +Tue Jun 12 17:25:39 CEST 2001 Jan Hubicka + + * recog.c (validate_replace_rtx_1): Do plus_constant call always. + +Tue Jun 12 17:24:07 CEST 2001 Jan Hubicka + + * simplify-rtx.c (simplify_subreg): Allow volatile memory + to be subregged in case we don't have move instruction. + +Tue Jun 12 12:20:12 CEST 2001 Jan Hubicka + + * loop.c: Include predict.h + (strength_reduce): Drop branch prediction note in case + number of iterations is known. + * predict.def (PRED_LOOP_ITERATIONS): new. + * Makefile.in (loop.o): Add dependency on predict.h + +2001-06-12 Kaveh R. Ghazi + + * c-decl.c (grokdeclarator): Use INTEGRAL_TYPE_P. + + * c-typeck.c (c_start_case): Likewise. + +2001-06-12 Mark Mitchell + + * expr.c (store_field): Don't set MEM_ALIAS_SET for a field + in a structure at a variable address. + +2001-06-12 Joseph S. Myers + + * doc/gcov.texi: Use more logical markup. + +2001-06-11 Mark Mitchell + + * unroll.c (initial_reg_note_copy): Use PUT_REG_NOTE_KIND and + REG_NOTE_KIND, not PUT_MODE and GET_MODE. + (final_reg_note_copy): Remove REG_WAS_0 notes that are no longer + valid. + +2001-06-11 Stan Shebs + + * config/darwin.h (ASM_FILE_END): Remove decl of language_string. + +2001-06-11 Stephane Carrez + + * config/m68hc11/m68hc11.md ("*lshrdi3_const32"): Mark the clobber + as an early clobber to make sure it is not used by reload in + one of the operands. + +2001-06-11 Mark Mitchell + + * doc/c-tree.texi: Update information about flag_honor_std. + * doc/install.texi: Note that binutils is required on HPUX 11. + * doc/invoke.texi (-fhonor-std): Note that -fno-honor-std is + now the default. + + * config/mips/abi64.h (RETURN_IN_MEMORY): Fix handling of + variable-sized types. + +2001-06-11 Joseph S. Myers + + * doc/md.texi: Use TeX dashes and quotes. + +2001-06-11 Joseph S. Myers + + * doc/rtl.texi: Reference manual chapter about trees. + +2001-06-11 Rainer Orth + + * config/mips/iris6.h (NO_BUILTIN_WINT_TYPE): Define. + (WINT_TYPE): Override. + (WINT_TYPE_SIZE): Likewise. + (SUBTARGET_CPP_SIZE_SPEC): Define __WINT_TYPE__ as appropriate. + + * config/sparc/sol2.h (WINT_TYPE): Define. + (WINT_TYPE_SIZE): Likewise. + + * config/sparc/sol2-sld-64.h (NO_BUILTIN_WINT_TYPE): Define. + (WINT_TYPE): Override. + (WINT_TYPE_SIZE): Likewise. + (CPP_ARCH32_SPEC): Add __WINT_TYPE__ definition. + (CPP_ARCH64_SPEC): Likewise. + +2001-06-11 Richard Henderson + + * unwind-dw2-fde.c (__deregister_frame_info): Don't play games + with alias attribute. + + * config/linux.h (CPLUSPLUS_CPP_SPEC): Use %(cpp) not $(cpp_cpu). + * config/alpha/linux.h (CPLUSPLUS_CPP_SPEC): Likewise. + +2001-06-11 Franz Sirl + + * config/rs6000/linux.h (CPLUSPLUS_CPP_SPEC): New. + +2001-06-11 Stan Shebs + + * config/darwin.c (darwin_encode_section_info): Rewrite to simplify + and fix coding mistakes. + +2001-06-11 Nick Clifton + + * config/m32r/m32r.md (movstrsi_internal): Do not expect a + return string from m32r_output_block_move. + * config/m32r/m32r-protos.h: Make m32r_output_block_move a + void function. + * config/m32r/m32r.h (INT32_P): Rename to UNIT32_P and remove + integer overflow. + (ROUND_ADVANCE): Remove signed/unsigned conflict. + * config/m32r/m32r.c: Declare prototypes for static functions. + (move_src_operand): Replace INT32_P with UINT32_P. + (function_arg_partial_nregs): Fixed signed/unsigned conflict + in initialisation of 'size'. + (m32r_sched_reord): Remove redundant declarations of 'code'. + (m32r_output_block_move): Change to a void function. + (m32r_encode_section_info): Cast return of + TREE_STRING_POINTER to avoid compile time warning. + +2001-06-11 Richard Henderson + + * config/alpha/osf5.h (TARGET_LD_BUGGY_LDGP): New. + * config/alpha/alpha.h (TARGET_LD_BUGGY_LDGP): Default. + (struct machine_function): Add gp_save_rtx. + * config/alpha/alpha.c (alpha_mark_machine_status): Mark it. + (alpha_gp_save_rtx): New. + * config/alpha/alpha-protos.h: Declare it. + * config/alpha/alpha.md (exception_receiver): Make an expander. + Use alpha_gp_save_rtx if TARGET_LD_BUGGY_LDGP. + +2001-06-11 Richard Henderson + + * config/alpha/osf.h (LINK_SPEC): Hide _GLOBAL_* symbols. + +2001-06-11 Rainer Orth + + * configure.in: Align --help messages. + Remove trailing full stops. + Consistently use lower case. + Fix DWARF 2 spelling. + * configure: Rebuilt. + +2001-06-11 Rainer Orth + + * config/alpha/alpha.h (CPP_SPEC): Don't define __LANGUAGE_C and + variants for .cpp/.cp/.c++ files. + Move definition of __LANGUAGE_C_PLUS_PLUS ... + (CPLUSPLUS_CPP_SPEC): ... here. + +Mon Jun 11 15:47:45 CEST 2001 Jan Hubicka + + * jump.c (duplicate_loop_exit_test): Fix loop header heuristics. + +2001-06-11 Joseph S. Myers + + * c-decl.c (store_parm_decls): When comparing types in an + old-style function declaration with those from a previous + prototype, compare the unqualified versions of parameter types. + Fixes PR c/3116. + +2001-06-11 Joseph S. Myers + + * doc/objc.texi: Use more logical markup. Use TeX dashes. + +2001-06-11 Joseph S. Myers + + * doc/c-tree.texi: Use more logical markup. + +2001-06-11 Joseph S. Myers + + * c-decl.c (xref_tag): Don't return previous tags of wrong type. + +2001-06-11 Aldy Hernandez + + * loop.c (scan_loop): Do not combine asm statements. + +2001-06-11 Michael Hayes + + * simplify-rtx.c (simplify_subreg): Fix offset calculation + for complex values within a CONCAT. + +2001-06-11 Joseph S. Myers + + * doc/install.texi: Update details of what components are included + in the GCC distribution. Update default directory for g++ + includes. Update documentation relating to old libio. Adjust + documentation on DejaGnu environment variables. Remove + documentation of --enable-cpplib. + +2001-06-11 Joseph S. Myers + + * doc/contrib.texi: Fix alphabetical order. Fix typos. Improve + markup. + +2001-06-10 Richard Henderson + + * ifcvt.c (life_data_ok): New. + (merge_if_block): Use it to determine whether to update + global_live_at_end. + (if_convert): Set it. + +2001-06-10 Richard Henderson + + * config/alpha/osf5.h (ASM_OLDAS_SPEC): Add -c. + +2001-06-10 Alexandre Oliva + + * doc/invoke.texi (MN10300 Options): Document -mno-crt0. + (SH Options): Document -mieee. + * doc/install.texi (Final install): Remove obsolete information + about installing cross compilers. + * doc/gcc.1: Rebuilt. + +2001-06-10 Richard Henderson + + * config/alpha/alpha.c (override_options): Set align_loops, + align_jumps, and align_functions. + * config/alpha/alpha.h (FUNCTION_BOUNDARY): Set to 32 bits. + (LOOP_ALIGN, LABEL_ALIGN_AFTER_BARRIER): Remove. + +2001-06-11 Michael Hayes + + * emit-rtl.c (gen_lowpart_common): Do not assume that SFmode and DFmode + are one and two words in size. + +2001-06-10 Richard Henderson + + * doc/invoke.texi (Optimization Options): Document -fpeephole2. + (Code Generation Options): Document -fnon-call-exceptions. + +2001-06-10 Mark Kettenis + + * config/i386/gnu.h (MD_FALLBACK_FRAME_STATE_FOR): Undefine. + +2001-06-10 Stephane Carrez + + * m68hc11.md (peepholes): Remove unused and wrong peepholes. + +2001-06-10 Mark Mitchell + Gabriel Dos Reis + + * Makefile.in (c-parse.o): Depend on diagnostic.h + (dwarf2out.o): Likewise. + + * dwarf2out.c: #include diagnostic.h + + * toplev.h (warningcount, errorcount, sorrycount): Remove + declarations. + + * toplev.c (warningcount, errorcount, sorrycount): Remove + definitions. + + * diagnostic.h (struct output_buffer): Reorder fields. + (diagnostic_kind_count): New macro. + (errorcount, warningcount, sorrycount): Define as macros. + (diagnostic_report_warnings_p): New macro. + (output_state): Add diagnostic_count field. + + * diagnostic.c (warningcount, errorcount, inhibit_warnings): + Remove tentative declaration. + (count_error): Use diagnostic_report_warnings_p. + + * c-parse.in: #include diagnostic.h + +2001-06-10 Stephane Carrez + + * config/m68hc11/m68hc11.md ("extendhisi2"): Fix constraints to + prefer a memory for operand 1. + ("*addsi3"): Fix constraints, the '!' was too strong. + ("*addsi3_split"): Accept soft register and split accordingly. + +2001-06-10 Stephane Carrez + + * config/m68hc11/m68hc11-protos.h (m68hc11_initialize_trampoline): + Move definition in the RTX_CODE section. + +2001-06-10 Stephane Carrez + + * config/m68hc11/m68hc11.h (RETURN_ADDR_RTX): Define the return + address as relative to the argument pointer. + +Sun Jun 10 10:58:53 CEST 2001 Jan Hubicka + + * predict.def (PRED_OPCODE): Place before call and error_return. + +Sun Jun 10 10:00:17 CEST 2001 Jan Hubicka + + * predict.def (PRED_CALL, PRED_ERROR_RETURN): New. + * predict.c (estimate_probability): Calculate dominance + information; improve detection of NORETURN heuristics; + add call/error_return heuiristics; tweak comparison heuristics + to recognize -1. + +2001-06-09 Alexandre Oliva + + * doc/invoke.texi (C Dialect Options): Document -aux-info. + (Debugging Options): Document -print-multi-directory and + -print-multi-lib. + * doc/gcc.1: Rebuilt. + + * toplev.c (independent_decode_option): Require `=' between + `-aux-info' and filename in the same argument. + * gcc.c: Don't pass -aux-info=filename twice. + +2001-06-09 Mark Mitchell + + * expr.c (expand_expr, case ARRAY_REF): Do not replace + an array element with the known initializing value if it has + side-effects. + + * toplev.c (rest_of_compilation): Remove dead code before + purge_addressof. + +2001-06-09 Neil Booth + + * cppinit.c (print_help): Document -fpreprocessed. + * invoke.texi: Similarly. + +Sun Jun 10 00:35:37 CEST 2001 Jan Hubicka + + * predict.def: New file. + * predict.h: New file. + * predict.c: Include predict.h. + (predictor_info): New structure and array. + (predict_edge, predict_insn): Rewrite; make global. + (predict_edge_def, predict_insn_def): New global functions. + (dump_prediction, combine_predictions_for_insns): New + static functions. + (estimate_probability): Change calls to predict_edge + to predict_edge_def and calls to predict_insn to predict_insn_def; + combine probabilities. + (expected_value_to_br_prob): Behave as predictor. + * rtl.h (REG_BR_PRED): Update coment. + (invert_br_probabilities): New. + * jump.c: Include predict.h + (duplicate_loop_exit_test): Drop branch prediction notes. + (invert_jump): Use invert_br_probabilities. + * Makefile.in: Add dependency on predict.h for jump and predict pass. + * ifcvt.c (dead_or_predicable): Use invert_br_probabilities. + * combine.c (distribute_notes): Handle BR_PRED. + +Sat Jun 9 23:29:41 CEST 2001 Jan Hubicka + + * predict.c (predict_insn, predict_edge): New static functions. + (estimate_probability): Revamp to use new functions; + fix loop header heruistics; add loop exist heruistics + +2001-06-09 Alexandre Oliva + + * config.gcc: Re-enable bi-arch sparc on Solaris 7 and above. + +2001-06-09 Peter Jakubek + + * config/m68k/m68k.md (ashrdi_const): Fix right shift by 16. + +2001-06-09 John David Anglin + + * vax.h (NOTICE_UPDATE_CC): Set CC_NO_OVERFLOW in cc_status.flags + for integer operations that don't update C bit. + +2001-06-09 Nicola Pero + + * gthr-posix.h (__gthread_objc_init_thread_system): If + pthread_key_create fails, it's not clear what the return value is. + This obvious fix makes sure it always returns -1 if a problem + occurs. + +2001-06-09 Joseph S. Myers + + * doc/gcc.texi: Use @defcodeindex for the index of options. Add + more index entries. Use more logical markup where appropriate. + Use TeX quotes and dashes. + +2001-06-09 Benjamin Kosnik + + * unwind-pe.h: Conditionally qualify references to abort with + std::. + +2001-06-09 Julian Foad + + * doc/invoke.texi: Remove superfluous text. + +2001-06-08 Richard Henderson + + * config/alpha/linux.h (CPLUSPLUS_CPP_SPEC): New. + (LIB_SPEC): Mirror config/linux.h version. + +2001-06-08 Richard Henderson + + * except.c (get_exception_pointer, get_exception_filter): Take a + struct function. Update all callers. + * except.h (get_exception_pointer): Update declaration. + * expr.c (expand_expr): Update get_exception_pointer call. + * integrate.c (expand_inline_function): Remap the exception pointer + from callee to caller. + +2001-06-08 Mark Mitchell + + * c-decl.c (grokdeclarator): Make the TREE_TYPE for declarations + accurately reflect its cv-qualification. + * c-typeck.c (type_lists_compatible_p): Ignore the top-levl + cv-qualifiers on function types. + +2001-06-08 Mark Mitchell + + * basic-block.h: Improve comments. + * except.c (expand_eh_region_end_allowed): Remove redundant call + to do_pending_stack_adjust. + * flow.c (life_analysis): Fix typo in comment. + (calculate_global_regs_live): Add documentation. + (mark_set_1): Likewise. + (debug_regset): Likewise. + * doc/rtl.texi (cond_exec): Document it. + +Fri Jun 8 21:52:51 CEST 2001 Jan Hubicka + + * i386.h (CONST_COSTS): set cost of constants representable in + immediate fields to 0. + +Fri Jun 8 21:34:54 CEST 2001 Jan Hubicka + + * function.c (diddle_return_value): Kill code to determine + return value before expand_function_end. + (expand_function_end): Delay call to clobber_return_register + after fucntion return value is computed. + + Re-install temporary reverted patch: + * toplev.c (rest_of_compilation): Call split_all_insns + before reg-stack and shorten-branches. Do shorten-branches + after reg-stack. + * final.c (shorten_branches): Remove insn splitting code. + +2001-06-08 Joseph S. Myers + + * doc/gcc.texi, doc/invoke.texi: Add index of command line + options. Use @opindex to index them rather than other indexing + commands. Use @var{...} instead of <...>. Avoid spaces in names + inside @var. Don't use @kindex to index escape sequences in + source code. + +2001-06-08 Jason Merrill + + * stmt.c (current_nesting_level): New fn. + * tree.h: Declare it. + * c-semantics.c (genrtl_compound_stmt): Use it. + + * dbxout.c (dbxout_symbol): Use DECL_RTL_SET_P. + +2001-06-08 Jakub Jelinek + + * jump.c (mark_modified_reg): Allow jump threading if condition + codes are represented by a hard register. + +2001-06-08 Jakub Jelinek + + * config/ia64/ia64.c (ia64_function_arg): Use [SDT]Fmode as gr_mode + for complex floats passed to unprototyped functions. + +2001-06-08 Mark Mitchell + + * except.c (expand_eh_region_end_allowed): Call + do_pending_stack_adjust as necessary. + +Fri Jun 8 14:16:33 CEST 2001 Jan Hubicka + + * function.c (clobber_return_register): Clobber the pseudo return + register too. + + * sibcall.c (skip_unreturned_value): New function. + (call_ends_block_p): Use it. + + * recog.c (split_insn): Break out from ... + (split_all_insns): ... here; do not use basic block information + when it is broken. + +Thu Jun 7 18:27:53 CEST 2001 Jan Hubicka + + * simplify-rtx.c (simplify_subreg): Fix verification of + combined subreg. + +2001-06-08 Rainer Orth + + * config/mips/mips.h (CPP_SPEC): Simplify .s/.S handling. + Don't define _LANGUAGE_C and variants for .cpp/.cp/.c++ files. + Move definition of _LANGUAGE_C_PLUS_PLUS ... + (CPLUSPLUS_CPP_SPEC): ... here. + Fixes PRs c++/3047, target/441. + +2001-06-08 Gerald Pfeifer + + * doc/install.texi2html (MAKEINFO): Keep value if set already. + +2001-06-08 Joseph S. Myers + + * doc/gcc.texi: Add trailing slash to URL. + +2001-06-07 Stan Shebs + + * config/darwin.h (ENCODE_SECTION_INFO): Define. + (REDO_SECTION_INFO_P): Ditto. + (STRIP_NAME_ENCODING): Ditto. + (ASM_DECLARE_OBJECT_NAME): Use ENCODE_SECTION_INFO. + (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Ditto. + (ASM_OUTPUT_LABELREF): Use STRIP_NAME_ENCODING. + (GEN_LAZY_PTR_NAME_FOR_SYMBOL): Ditto. + * config/darwin.c: No longer include c-tree.h. + (machopic_classify_ident): Rewrite to use symbol encoding. + (lookup_name_darwin): Remove. + (machopic_non_lazy_ptr_name): Handle encoded symbols. + (machopic_stub_name): Use STRIP_NAME_ENCODING. + (machopic_validate_stub_or_non_lazy_ptr): Ditto. + (machopic_finish): Ditto, remove test of decl. + (update_non_lazy_ptrs): New function. + (darwin_encode_section_info): New function. + * config/darwin-protos.h: Declare it. + * config/rs6000/rs6000.c (machopic_output_stub): Use + STRIP_NAME_ENCODING. + +2001-06-07 Mark Mitchell + + * tree.h (DECL_SOURCE_FILE): Improve documentation. + (DECL_SOURCE_LINE): Likewise. + +2001-06-07 Loren J. Rittle + + * config/alpha/elf.h (MAKE_DECL_ONE_ONLY): Copy definition + from config/elfos.h. + +2001-06-07 Phil Edwards + + * linux.h (CPLUSPLUS_CPP_SPEC): Move -D_GNU_SOURCE to here. + * pa/pa-linux.h: Allow CPLUSPLUS_CPP_SPEC to remain. + +2001-06-08 Joseph S. Myers + + * doc/contrib.texi: Add copyright notice. + +2001-06-08 Joseph S. Myers + + * doc/md.texi: Use four digit years in copyright notice. + +2001-06-08 Joseph S. Myers + + * config.gcc: For $target_alias of athlon-*, set + target_cpu_default2=5. + +Thu Jun 7 16:17:40 2001 Richard Kenner + + * global.c (build_insn_chain): Allow ADDR_VEC or ADDR_DIF_VEC after + end of last block if last real insn is a JUMP_INSN. + +2001-06-07 Joseph S. Myers + + * NEWS: Regenerate. + +2001-06-07 Rainer Orth + + * gthr-posix.h (__gthread_objc_thread_detach): Simply cast + pthread_t to objc_thread_t. + (__gthread_objc_thread_id): Likewise. + +2001-06-07 Rainer Orth + + * alpha/osf5.h (CPP_XFLOAT_SPEC): Override default definition. + (ASM_OLDAS_SPEC): Likewise. + + * alpha/osf.h (CPP_XFLOAT_SPEC): Define. + (CPP_SUBTARGET_SPEC): Use it. + (ASM_OLDAS_SPEC): Define. + (ASM_SPEC): Use it. + (SUBTARGET_EXTRA_SPECS): Define, declare the new specs above. + +2001-06-07 Rainer Orth + + * config/alpha/alpha.c (alpha_va_arg): Handle TFmode, TCmode args, + passed by reference. + +2001-06-07 Joseph S. Myers + + * doc/tm.texi (TARGET_SWITCHES, TARGET_OPTIONS): Adjust markup. + Document use of N_(...), and show it in examples. Note that + documentation should be added to invoke.texi. Avoid an overfull + hbox. + +Thu Jun 7 17:09:50 CEST 2001 Jan Hubicka + + * toplev.c (rest_of_compilation): Revert previous patch. + * final.c (shorten_branches): Likewise. + +2001-06-07 Gerald Pfeifer + + * pself.c, pself1.c, pself2.c, pself3.c, pself4.c, pself5.c: + Remove. + +2001-06-07 Joseph S. Myers + + * doc/install-old.texi: Remove more obsolete documentation. + +Thu Jun 7 13:20:14 CEST 2001 Jan Hubicka + + * expr.c (copy_blkmode_from_reg): Fix operand_subword_force call. + +Thu Jun 7 12:12:58 CEST 2001 Jan Hubicka + + * toplev.c (rest_of_compilation): Call split_all_insns + before reg-stack and shorten-branches. Do shorten-branches + after reg-stack. + * final.c (shorten_branches): Remove insn splitting code. + +2001-06-07 Nathan Sidwell + + * configure.in (sparc*-*-*): Check assembler R_SPARC_UA32 support. + * configure: Rebuilt. + +2001-06-07 Andreas Jaeger + + * emit-rtl.c (operand_subword): Remove unused variable. + +Wed Jun 6 14:51:05 CEST 2001 Jan Hubicka + + * i386.md (floatdi?f): Avoid usinf of SSE instructions + if TARGET_64BIT is false. + (floatdi?f_i386_only): New insn. + (floatdi?f_i386): Disable for !TARGET_64BIT. + + * (min?f, max?f splitters): Handle case where + operands are cross-matched. + + * i386.h (HI_REGISTER_NAMES): Remove redundant definition + (MMX_REGISTER_NAMES): Kill. + (PRINT_OPERAND): Fix comment. + (PRINT_REG): Likewise. + * i386.c (print_reg): Kill support for 'm' CODE; simplify. + (print_operand): Update comment; kill 'm'. + + * i386.c (x86_branch_hints): New global variable + (print_operand): Support outputting of branch prediction hints. + * i386.md (conditional jump patterns): Add branch prediction hints + to the template. + * i386.h (x86_branch_hints): Declare + (TARGET_BRANCH_PREDICTION_HINTS): New macro. + (PRINT_OPERAND_FUNCT_VALID_P): New. + * final.c (final_forward_branch_p): New function. + +2001-06-06 Richard Henderson + + * flow.c (mark_used_reg): Clean up looping over multiple hard + registers. Do conditional life bits across multiple hard regs. + +2001-06-05 Jeffrey D. Oldham + + * reload1.c (reload): Revert Schmidt's change so all USEs are not + deleted during reload. + +2001-06-05 Mark Mitchell + + * c-semantics.c (genrtl_scope_stmt): Write out nested inline + functions here, instead of ... + * c-decl.c (c_expand_body): ... here. + +2001-06-05 David O'Brien + + * config.gcc, config/sparc/bsd.h: Do not directly include + sparc/sparc.h. Instead do it via tm_file. + +2001-06-05 Richard Henderson + + * dwarf2.h (DW_EH_PE_aligned): New. + * dwarf2asm.c (eh_data_format_name): Name it. + (dw2_asm_output_encoded_addr_rtx): Align for it. + * dwarf2out.c (output_call_frame_info): Handle it for personality + routine and LSDA pointers. + + * unwind-pe.h (DW_EH_PE_aligned): New. + (base_of_encoded_value): Handle it. + (read_encoded_value_with_base): Likewise. + * unwind-dw2-fde.c (base_from_object): Likewise. + (get_cie_encoding): Likewise. + + * config/alpha/elf.h: Remove ecoff commentary. + * config/alpha/osf.h (ASM_PREFERRED_EH_DATA_FORMAT): New. + +2001-06-05 David O'Brien + + * config.gcc, config/i386/bsd386.h: Do not directly include + i386/386bsd.h. Instead do it via tm_file. + +2001-06-05 David O'Brien + + * elfos.h (USING_ELFOS_H): Identify the use of elfos.h in the same + way svr4.h does. + +2001-06-05 Pascal Obry + + * configure.in: Quote $enable_win32_registry in case the value has + spaces in it. + * configure: Ditto. + +2001-06-05 Mark Mitchell + + * print-rtl.c (xspaces): Remove. + (print_rtx): Use printf field-width, rather than xpsaces, to + indent. + * toplev.c (main): Disable sibling-call optimization if we are + handling exceptions. + +2001-06-05 Bernd Schmidt + + * reload1.c (reload): Delete all USEs generated during reload. + +2001-06-05 scott snyder + + * gccbug.in: Fix typo. + +2001-06-05 Andreas Jaeger + + * builtins.def: Fix definition of __builtin_cosf, it uses float as + parameter and return value. + +2001-06-04 Anthony Green + + * config/sparc/elf.h (CPP_PREDEFINES): Don't assert cpu or + machine. This is now done in sparc.h. + +2001-06-05 Nathan Sidwell + + Correct CVS resurrection of invoke.texi. + * doc/invoke.texi: Document new tree dump flags. + +2001-06-05 Joseph S. Myers + + * c-typeck.c (build_c_cast): Use TYPE_MAIN_VARIANT when checking + for casting an aggregate to its own type. Fixes PR c/2735. + +2001-06-05 Joseph S. Myers + + * doc/texinfo.tex: Update to version 2001-05-24.08. + +2001-06-05 Nathan Sidwell + + * c-common.h (flag_dump_translation_unit): Remove. + (enum tree_dump_index): Define. + (TDF_ADDRESS, TDF_SLIM): New #defines. + (dump_node_to_file): Remove. + (dump_node): Make extern. Add flags. + (dump_flag, dump_enabled_p, dump_begin, dump_end, + dump_switch_p): Prototype. + * c-common.c (flag_dump_translation_unit): Remove. + * c-decl.c (c_decode_option): Remove -fdump-translation-unit + logic. Use dump_switch_p. + * c-dump.h (struct dump_info): Add node and user fields. + (dump_pointer): Declare. + * c-dump.c (dump_node): Make extern. Add flags. + (SOL_COLUMN, EOL_COLUMN, COLUMN_ALIGNMENT): New #defines. + (dump_new_line, dump_maybe_newline): Use them. + (dump_pointer): New function. + (dequeue_and_dump): Check TDF_SLIM before dumping a _DECL's + chain or function's body. Dump address, if TDF_ADDRESS set. + (dump_flag): Define. + (dump_node_to_file): Remove. + (struct dump_file_info): New struct. + (dump_files): New array. + (dump_begin, dump_end, dump_enabled_p, dump_switch_p): Define. + * c-lang.c (finish_file): Adjust dumping. + * toplev.h (dump_base_name): Make extern. + * invoke.texi: Document new flags. + +2001-06-04 Mark Mitchell + + * c-tree.h (lang_decl): Add pending_sizes fields. + * c-decl.c (store_parm_decls): Save pending_sizes away for nested + functions. + (c_expand_body): Expand them. + (lang_mark_tree): Mark lang_decl:pending_sizes. + * function.c (expand_pending_sizes): New function, broken out + from ... + (expand_function_start): ... here. + * tree.h (expand_pending_sizes): Declare it. + +2001-06-04 Loren J. Rittle + + * doc/install.texi: Update FreeBSD information. Generalize + and update information for alpha-based platforms using ELF. + +2001-06-04 John David Anglin + + * c-decl.c (get_parm_info): Use INTEGRAL_TYPE_P. + (store_parm_decls): Likewise. + * c-typeck.c (convert_arguments): Likewise. + +2001-06-04 Richard Henderson + + * sibcall.c (optimize_sibling_and_tail_recursive_call): Suppress + optimization if current_function_calls_setjmp. + +2001-06-04 Joseph S. Myers + + * doc/c-tree.texi: Fix documentation of TREE_STRING_LENGTH for + wide strings. + +Mon Jun 4 20:44:25 CEST 2001 Jan Hubicka + + * simplify-rtx.c (simplify_subreg): Fix combining of + paradoxical subregs. + +Mon Jun 4 20:15:25 CEST 2001 Jan Hubicka + + * rtlanal.c (rtx_unsable_p): ADDRESSOF is stable. + (no_labels_between_p): Short circuit case beg==end. + +Mon Jun 4 20:03:05 CEST 2001 Jan Hubicka + + * rtlanal.c (operand_preference): Fix preference for objects. + +Mon Jun 4 20:00:40 CEST 2001 Jan Hubicka + + * gcse.c (handle_avail_expr): Be prepared to handle single_set + parallels. + +Mon Jun 4 19:59:46 CEST 2001 Jan Hubicka + + * combine.c (if_then_else_cond): Use simplify_subreg instead + of operand_subword. + * integreate.c (sub_constants): Likewise. + +Mon Jun 4 19:59:12 CEST 2001 Jan Hubicka + + * emit-rtl.c (constant_subword): Deprecate; remove most of code + and use simplify_gen_subreg. + +Mon Jun 4 19:55:23 CEST 2001 Lars Brinkhoff + + * sibcall.c (skip_copy_to_return_value): recognize the situation + when the called function's return value is copied into an + intermediate pseudo, and then into the calling functions return + value register. + +Mon Jun 4 16:50:33 CEST 2001 Jan Hubicka + + * simplify_rtx.c (simplify_subreg): Keep subregs on return values, + check CLASS_CANNOT_CHANGE_MODE before avoiding subreg on hard reg, + in case register wasn't OK previously, accept it now; allow + subregs of frame pointer if reload completed and frame pointer + is not needed. + + * combine.c (sombine_simplify_rtx): Fix comment; + use subreg_lowpart_offset instead of subreg_lowpart_p + (gen_lowpart_for_combine): Use subreg_lowpart_offset. + * rtl.h (subreg_lowpart_parts_p): Kill. + (subreg_lowpart_offset, subreg_highpart_offset): Declare. + * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset. + * emit-rtl.c (gen_lowpart_SUBREG): Use subreg_lowpart_offset; + (gen_lowpart_common): Likewise. + (subreg_lowpart_p): Likewise. + (subreg_lowpart_parts_p): Kill. + (subreg_lowpart_offset, subreg_highpart_offset): New function. + + * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg + to simplify SUBREG and REG. + (gen_highpart): Use simplify_gen_subreg for all simplifications. + + * emit-rtl.c (gen_realpart, gen_imagpart): Do not handle + CONCAT specially. + + * rtlanal.c (replace_regs): Use simplify_gen_subreg + +Mon Jun 4 09:21:19 2001 Richard Kenner + + * doc/c-tree.texi (ARRAY_REF): Say what type of expression must be. + (ARRAY_RANGE_REF): Added description. + + * tree.def (ARRAY_RANGE_REF): New code. + * alias.c (handled_component_p, can_address_p): Handle it. + * dwarf2out.c (loc_descriptor_from_tree): Likewise. + * explow.c (set_mem_attributes): Likewise. + * expr.c (expand_assignment, get_inner_reference): Likewise. + (expand_expr, expand_expr_unaligned, do_jump): Likewise. + * fold-const.c (operand_equal_p): Likewise. + * tree.c (staticp, stabilize_reference): Likewise. + * varasm.c (decode_addr_const): Likewise. + +Sun Jun 3 21:59:51 2001 Richard Kenner + + * reload.c (reload_inner_reg_of_subreg): Return 1 for PLUS. + (push_reload): Handle non-REG in reload_inner_reg_of_subreg case. + +2001-06-03 kaz Kojima + + * gcc/config/sh/sh.c (print_operand_address, print_operand): Call + mark_constant_pool_use before output_addr_const. + (struct pool_node): New field wend. + (add_constant): Note a sequence of constants that are referenced + by a given label. + (pool_window_label, pool_window_last): New variables. + (dump_table): Emit a unspec_volatile representing the end of a + sequence of constants. + (mark_constant_pool_use): New function. + * gcc/config/sh/sh.md (UNSPECV_WINDOW_END): New constant. + (consttable_2): Add the second operand which flags whether + this consttable entry was used or not. + (consttable_4, consttable_8, consttable_sf, consttable_df): + Likewise. + (consttable_window_end): New insn. + +2001-06-03 Alexandre Oliva + + * insn-addr.h (INSN_ADDRESSES_NEW): Make insn_uid__ unsigned. + Reformat according to coding standards. + + Warning removal. + * config/sh/sh.c (print_operand_address): Cast INTVAL to int. + (shl_and_kind): Cast wide constant. + (gen_far_branch): Define as static, as in declaration. + (barrier_align): Compute cache-line length as unsigned. Add + parentheses in initial credit computation. + (rounded_frame_size): Add parentheses. + (permanent_obstack): Remove declaration. Include ggc.h for + declaration of ggc_add_root_rtx(). + (get_free_reg): Removed declaration of unused variable reg. + (legitimize_pic_address): Mark mode argument as unused. + +2001-06-03 Igor Shevlyakov + + * config/sh/sh.c (output_branch): Support for insn with lenght + attr 12 & 16 which represents cond branches outside +-4096 range. + +2001-06-03 Alexandre Oliva + + * config/sh/lib1funcs.asm (ic_invalidate): Align the + cache-mirroring sequence. Add nops. + +2001-06-03 Joseph S. Myers + + * doc/install-old.texi: Remove more old installation + documentation. + * doc/install.texi: Add relevant parts here. + +2001-06-03 Gerald Pfeifer + + * doc/install.texi2html: New script. + +2001-06-03 David Edelsohn + + * doc/install.texi: Update AIX information again. + +2001-06-02 Joseph S. Myers + + * doc/gcc.texi, doc/install-old.texi: Remove old system-specific + installation documentation. + * doc/install.texi: Move it to here. + +2001-06-02 Joseph S. Myers + + * doc/install.texi: Clean up Texinfo markup. + +2001-06-02 Joseph S. Myers + + * doc/cpp.texi, doc/cppinternals.texi, doc/gcc.texi: Move contents + to just after title page. + +2001-06-02 Joseph S. Myers + + * doc/install-old.texi: Remove documentation of some configuration + options. + * doc/install.texi: Add relevant parts of this documentation here. + +2001-06-02 Gerald Pfeifer + + * contrib.texi: Updated entries for Mark Mitchell, Joseph S. Myers, + Gerald Pfeifer, Bernd Schmidt, and Dean Wakerley. + +Sat Jun 2 12:23:51 CEST 2001 Jan Hubicka + + * i386.md (all uses of ext_register_operand): Make sure they are + VOIDmode; replace all uses outside zero_extend. + (and?i splitters): Use ext_register_operands. + (test?i peep2): Remove ignored constraints. + * i386.c (ext_register_operand): Check that operand is + either pseudo or hard or 'Q' register. + +Sat Jun 2 06:53:50 2001 Richard Kenner + + * tree.h (struct record_layout_info_s): New field unpadded_align. + (set_lang_adjust_rli): New declaration. + * stor-layout.c (layout_decl): If DECL is packed, but at alignment + it would have if not packed, do not downgrade DECL_ALIGN. + (lang_adjust_rli, set_lang_adjust_rli): New. + (start_record_layout): Initialize new field unpadded_align. + (debug_rli): Display it. + (place_union_field, place_field): Set it. + (layout_type, case RECORD_TYPE): Call via lang_adjust_rli if set. + + * print-tree.c (print_node): Don't print "regdecl" when bit doesn't + mean that; use proper names instead. + Print DECL_NO_STATIC_CHAIN. + + * except.c (expand_builtin_frob_return_addr): Add missing call + to convert_memory_address #ifdef POINTERS_EXTEND_UNSIGNED. + (expand_builtin_eh_return): Likewise. + (expand_eh_return): Clean up ptr_mode != Pmode cases. + +2001-06-01 Jan van Male + + * doc/invoke.texi: Remove references to papers about sequence points + to readings.html, refer to that page. + +2001-06-01 Gerald Pfeifer + + * README: Update references to installation instructions. + +2001-06-01 Laurent Guerby + Gerald Pfeifer + + * doc/install.texi: Define srcdir when sources come from CVS. + Significantly improve markup. Wrap overly long lines + +2001-06-01 DJ Delorie + + * c-tree.texi, contrib.texi, cpp.texi, cppinternals.texi, + extend.texi, fdl.texi, gcov.texi, invoke.texi, md.texi, + objc.texi, rtl.texi, tm.texi, texinfo.tex, gcc.1, cpp.1, + gcov.1: Move to doc subdirectory. + * install.texi: Move to doc/install-old.texi. + * gcc.texi: Move to doc, refer to install-old.texi. + * Makefile.in: Reflect move of docs to doc/. + * f/Make-lang.in: Ditto. + * java/Make-lang.in: Ditto. + * doc/.cvsignore: New. + +2001-05-31 Jan van Male + + * invoke.texi: use two spaces between command options, eliminate + some 'overfull hboxes' + +2001-06-01 Hans-Peter Nilsson + + * Makefile.in (s-mlib): Make backtick-commands always succeed. + (DRIVER_DEFINES): Ditto. + +2001-05-31 Richard Henderson + + * gcc.c (init_gcc_specs): When linking against libgcc_s.so, + also link against libgcc.a. + +2001-05-31 Geoff Keating + + * config/mips/mips.h (ASM_OUTPUT_ASCII): Convert to function. + * config/mips/mips.c (mips_output_ascii): New function. + * config/mips/mips-protos.h (mips_output_ascii): Prototype. + + * config/mips/mips.h (DWARF_CIE_DATA_ALIGNMENT): Force to 4. + +Thu May 31 19:09:53 CEST 2001 Jan Hubicka + + * flow.c (set_block_for_new_insns): Remove bogus shortcut. + * i386.c (ix86_expand_int_movcc): Force one of operands to be register. + +2001-05-31 Rodney Brown + + * install.texi (Configuration): Add html links for --with-gnu-as & + --with-gnu-ld and refer to them from hppa & SCO triplets. + (Specific): Link back to with-gnu-ld for all ELF platfoms. + (Specific): Reword AVR binutils recommendation. + +2001-05-30 Zack Weinberg + + * ggc-page.c (size_lookup): Increase minimum allocation size + to eight bytes. + (ggc_print_statistics): Report size of each bin in bytes, not + as its order; there is no longer a direct relationship. + +2001-05-31 Jan van Male + + * extend.texi: Fix formating of examples, eliminate some + 'overfull hboxes'. + * gcc.texi: Eliminate some 'overfull hboxes'. + * invoke.texi: Use two spaces between command options, eliminate + some 'overfull hboxes'. + +2001-05-30 Richard Henderson + + * dwarf2out.c (dwarf2out_finish): Don't emit DW_AT_stmt_list at -g1. + +2001-05-30 Tom Tromey + + * gcc.c (do_spec_1): In `%O' case, if we computed saved_suffix, + use it in the new association. + +2001-05-30 Loren J. Rittle + John David Anglin + + * gthr-posix.h (__gthread_active_ptr): Cast function pointer + to target type to allow ISO C++ compiler to accept it. + * gthr-dce.h (__gthread_active_ptr): Likewise. + * gthr-solaris.h (__gthread_active_ptr): Likewise. + +2001-05-30 Neil Booth + + * cpplex.c (_cpp_lex_token): Revert patch of 16 May 2001 + so that we do accept comments in preprocessed input. + +2001-05-30 Neil Booth + + * cpphash.c (alloc_node): Cast allocated pointer. + +2001-05-30 Gordon Sadler + + * invoke.texi (Option Summary): Remove -isystem-c++ from options. + +2001-05-29 Stan Shebs + + * gcc.texi: Add links for information about Objective-C. + +2001-05-29 Nathan Sidwell + + * configure.in (gcc_version): Remove unrequired \ on ". (Solaris + /bin/sed fails on [^\"]). + (configargs.h): Likewise. + +2001-05-29 Hartmut Schirmer + + * config/sh/sh.h (IDENT_ASM_OP): End with TAB, not LF. + +2001-05-28 Stan Shebs + + * objc/objc.gperf: Remove, no longer used. + +2001-05-28 Joseph S. Myers + + * c-tree.texi, contrib.texi, cpp.texi, extend.texi, gcc.texi, + gcov.texi, install.texi, md.texi, objc.texi, rtl.texi, tm.texi: + Remove trailing whitespace. + +2001-05-28 Gerald Pfeifer + + * doc/install.texi (Specific): http://reality.sgi.com/ariel/freeware/ + became http://freeware.sgi.com/. + +2001-05-27 Geoffrey Keating + + * local-alloc.c (update_equiv_regs): Don't eliminate constant + expressions at -O0. + +2001-05-27 Stan Shebs + + * objc/objc-act.c: Add/fix various comments. + (init_selector): Remove, no longer used. + (build_msg_pool_reference): Ditto. + (objc_debug): Ditto. + +2001-05-27 Neil Booth + + * c-decl.c (init_decl_processing): + Don't call start_identifier_warnings. + * flags.h (warn_id_clash, id_clash_len): Remove. + * stringpool.c: Don't include flags.h. + (scan_for_clashes, do_identifier_warnings, + start_identifier_warnings): Remove. + * toplev.c (warn_id_clash, id_clash_len): Remove. + (display_help): Don't document -Wid-clash. + (decode_W_option): Print warning on -Wid-clash. + * tree.h (start_identifier_warnings): Remove. + * invoke.texi: Remove documentation of -Wid-clash. + +2001-05-27 Kaveh R. Ghazi + + * fixinc/fixtests.c: Declare entries in ENV_TABLE. + +2001-05-27 Bruce Korb + + * fixinc/check.tpl(HACK) add and use a Scheme variable + (has no test text): error out if no "test_text" is defined + * fixinc/fixincl.tpl: likewise + (FIXIDX): make it an enumeration so we minimize diffs + * fixinc/inclhack.def: re-alphabetize and add sort instructions + * fixinc/fixincl.x: regenerate + * fixinc/tests/base/stdio.h: test output got moved due to + the alphabetizing + * README-fixinc: rewrite (mostly) + +2001-05-27 Neil Booth + + * cpplib.c (run_directive): Set pfile->directive. + +2001-05-23 Theodore Papadopoulo + + * c-tree.texi: Reformat the manual as a single chapter now + included by gcc.texi. + * gcc.texi: Include c-tree.texi. Merge all indexes. + * Makefile.in (dvi): Add generation for the cppinternals + documentation. Added dependencies on fdl.texi and c-tree.texi + where appropriate. Use TEXI2DVI instead of custom tex calls. + (info): Added dependencies on fdl.texi and c-tree.texi where + appropriate. Remove the target c-tree.info. + +2001-05-27 Lars Brinkhoff + + * combine.c (try_combine): Fix typo in comment. + * expr.c (expand_expr): Likewise. + * config/i370/i370.md (untyped_call): Likewise. + +2001-05-26 Bruce Korb + + * fixinc/fixtests.c(stdc_0_in_system_headers_test): Must return "FIX" + when fixincl is operating in test mode + * fixinc/inclhack.def(AAB_dgux_int_varargs) : aesthetics + (AAB_ultrix_limits): remove redundant text + (AAB_ultrix_memory): ditto + (AAB_ultrix_string): ditto + (djgpp_wchar_h): fix the test text + (irix_stdio_va_list): add test text + (irix_limits_const): add a testing output file (limits.h is overwritten) + (strict_ansi_not_ctd): put limits.h second in list for same reason + (solaris27_mutex_init): test text needed selection text, too + + * fixinc/fixtests.c(stdc_0_in_system_headers_test): Must return "FIX" + when fixincl is operating in test mode + +2001-05-26 Philip Blundell + + * config/c4x/c4x-protos.h: Use GCC_C_PRAGMA_H in place of _C_PRAGMA_H. + * config/i960/i960-protos.h: Likewise. + * config/i370/i370-protos.h: Likewise. + * config/h8300/h8300-protos.h: Likewise, + * config/sh/sh-protos.h: Likewise. + * config/v850/v850-protos.h: Likewise. + +2001-05-26 Philip Blundell + + * config/arm/arm-protos.h: Use GCC_C_PRAGMA_H in place of _C_PRAGMA_H. + +2001-05-25 Zack Weinberg + + * toplev.c (debug_args, f_options, W_options): Mark + descriptions for translation. + (display_help): Translate descriptions on output. + + * cp/lang-options.h, f/lang-options.h, java/lang-options.h, + objc/lang-options.h: Mark descriptions for translation. + + * aclocal.m4: Quote final argument of patsubst. Use + 3-argument form of AC_DEFINE. Restore quotes to [] while + using AC_FD_CC. + * configure.in: Remove unnecessary changequote calls. + * configure, config.in: Regenerate. + +2001-05-25 Sam TH + + * basic-block.h: Fix header include guards. + * bitmap.h c-dump.h c-lex.h c-pragma.h c-tree.h collect2.h + cppdefault.h cpphash.h cpplib.h defaults.h diagnostic.h errors.h + except.h flags.h gcc.h gcov-io.h graph.h gstab.h gthr-aix.h + gthr-dce.h gthr-posix.h gthr-rtems.h gthr-single.h gthr-solaris.h + gthr-vxworks.h gthr-win32.h gthr.h hard-reg-set.h hwint.h + insn-addr.h libgcc2.h mbchar.h mkdeps.h params.h prefix.h real.h + rtl.h sbitmap.h system.h timevar.h toplev.h tradcpp.h tsystem.h + varray.h version.h: Likewise. + * config/dbxelf.h config/fp-bit.h config/arm/arm-protos.h + config/arm/arm.h config/c4x/c4x-protos.h + config/h8300/h8300-protos.h config/h8300/h8300.h + config/i370/i370-protos.h config/i370/i370.h + config/i960/i960-protos.h config/mcore/mcore.h + config/mips/mips-protos.h config/sh/sh-protos.h config/sh/sh.h + config/v850/v850-protos.h config/v850/v850.h: Likewise. + * fixinc/fixlib.h fixinc/server.h: Likewise. + +2001-05-25 Stacey Sheldon + + * config/arc/initfini.c (.init): Fix typo. + +2001-05-25 Geoffrey Keating + + * config/rs6000/rs6000.md (fseldfsf4): Correct mode of operand 4. + +2001-05-25 Rainer Orth + + * i386/i386.h (CC1_CPU_SPEC): Clarify -m486 etc deprecation messages. + +2001-05-25 Richard Henderson + + * libgcc-std.ver: Export XFmode and TFmode versions of symbols. + +2001-05-25 Richard Henderson + + * config.gcc (all gnu and linux): Use t-slibgcc-elf-ver with t-linux. + (i386-*-solaris2): Use t-slibgcc-elf-ver or t-slibgcc-sld. + (sparc*-*-solaris2): Likewise. + * config/t-linux: Remove shared libgcc macros. + * config/t-slibgcc-elf-ver: Move from sparc/t-slibgcc. + * config/t-slibgcc-sld: Move from sparc/t-slibgcc-sld. + +2001-05-25 Loren J. Rittle + + * config.gcc (*-*-freebsd*): Report bad configuration. + +2001-05-25 David Edelsohn + + * xcoffout.h (DBX_OUTPUT_GCC_MARKER): Do not emit any marker. + + * config/rs6000/aix.h (USER_LABEL_PREFIX): AIX symbols do not have + any prefix. + (ASM_OUTPUT_LABELREF): Delete. + +2001-05-25 Rainer Orth + + * fixinc/inclhack.def (strict_ansi_not, strict_ansi_not_ctd, + strict_ansi_only): Don't run if stdc_0_in_system_headers. + * fixinc/fixincl.x: Regenerate. + * fixinc/fixtests.c (stdc_0_in_system_headers_test): New function. + (FIX_TEST_TABLE): Declare it. + * fixinc/fixlib.h: Include config.h. + +2001-05-25 Rainer Orth + + * fixinc/inclhack.def (alpha___assert): Change char * args to + const char * on Tru64 UNIX to avoid excessive warnings from + assert.h. + * fixinc/fixincl.x: Regenerate. + +2001-05-25 Geoff Keating + + * dbxout.c (dbxout_symbol): Invert previous patch, which was + outputting a tag only for variable-size records. + +2001-05-25 Jeff Knaggs + + * config/alpha/alpha.md (movtf_internal): Use reg_overlap_mentioned_p + instead of rtx_equal_p for early clobber test. + +2001-05-26 Mark Mitchell + + * builtins.def: Encode additional information, such as names and + types, here. + * builtin-types.def: New file. + * builtins.c (built_in_names): Adjust use of DEF_BUILTIN. + (built_in_decls): Likewise. Don't explicitly initialize global + data to NULL. + (expand_builtin_mathfn): Handle float and long double variants of + math builtins. + (expand_builtin): Likewise. + * c-common.c (c_common_nodes_and_builtins): Make it table-driven. + (expand_tree_builtin): Handle long, long long, float, and long + double variants of math functions. + * c-common.h (c_tree_index): Remove some unused nodes. + (void_ftype): Remove. + (void_type_ptr): Likewise. + (int_ftype_int): Likewise. + (ptr_ftype_sizetype): Likewise. + * c-decl.c (init_decl_processing): Remove creation of DWARF + builtins. + * defaults.h (MD_INIT_BUILTINS): Provide default definition. + * tree.h (built_in_function): Adjust definition of DEF_BUILTIN. + * Makefile.in (c-common.o): Depend on builtin-types.def. + +2001-05-25 Dale Johannesen + + * config/rs6000/t-darwin: Fix dependencies for darwin.o. + +2001-05-25 Neil Booth + + * c-parse.in (notype_initdcl): Remove redundant line. + +2001-05-25 Rainer Orth + + * aclocal.m4: Fixed typo. + (gcc_AC_HEADER_STDBOOL): Define. + (gcc_AC_C__BOOL): Define. + * configure.in: Use them. + (AC_CHECK_HEADERS): Remove stdbool.h + * configure, config.in: Regenerate. + +2001-05-25 Richard Henderson + + * function.c (expand_function_start): Don't abort on PARALLEL + returns from hard_function_value. + +2001-05-25 Richard Henderson + + * config/i386/i386.md: Revert previous change. Do not apply + the peephole if the components do not die after the sequence. + +2001-05-25 Joseph S. Myers + + * c-parse.in (array_declarator): New. Handle C99 constructs. + Don't restrict [*] declarators to C only. + (after_type_declarator, parm_declarator_starttypename, + parm_declarator_nostarttypename, notype_declarator, + direct_absdcl1): Use it. + * c-decl.c (build_array_declarator, set_array_declarator_type): + New functions. Warn that [*] isn't properly implemented; pedwarn + for [*] outside C99 mode if pedantic rather than giving a hard + error. + (grokdeclarator): Handle static and type qualifiers in parameter + array declarators. + * c-tree.h (build_array_declarator, set_array_declarator_type): + Declare. + * extend.texi (Attribute Syntax): Document attributes in parameter + array declarators. + +2001-05-25 Mark Mitchell + + * config/i386/i386.md: Make sure cmpstr peepholes do not + affect liveness information. + +2001-05-24 Mark Mitchell + + * c-typeck.c (digest_init): Issue error messages about + invalid constants, not warnings. + +2001-05-24 Mark Mitchell + + * invoke.texi (-fno-builtin): Document that this is always on + in C++. + +2001-05-24 Philip Blundell + + * doc/install.texi (arm*-*-linux-gnu): Say that binutils 2.10 is + required. + +2001-05-24 Philip Blundell + + * config/arm/arm.c (output_return_instruction): Correctly handle + interworking and interrupt functions. + +2001-05-24 Philip Blundell + + * config/arm/arm.h (TARGET_SWITCHES): Correct misleading help for + -m{no-}sched-prolog. Fix typos and improve formatting. + +2001-05-24 Philip Blundell + + * invoke.texi (ARM Options): Improve wording slightly. Add + documentation for more options, including those for Thumb mode. + Don't mention options that don't exist or are unimplemented. + (Thumb Options): Delete; merged into above section. + +2001-05-24 Geoff Keating + + * config/rs6000/linux.h (SIGNAL_FRAMESIZE): Define. + (MD_FALLBACK_FRAME_STATE_FOR): Use it. + +Thu May 24 19:47:19 CEST 2001 Jan Hubicka + + * simplify-rtx.c (simplify_subreg): Fix CONCAT simplification; + fix hard register simplification. + +Thu May 24 00:15:17 2001 Rainer Orth + + * sparc/sol2.h (CPLUSPLUS_CPP_SPEC): Add all of CPP_SPEC instead + of just copying CPP_CPU_SPEC. + +Thu May 24 15:56:48 CEST 2001 Jan Hubicka + + * i386.c (incdec_operand): Accept only 1 and -1. + +2001-05-23 Kelley Cook + + * Makefile.in: Move many of the *_H definitions eariler in the + file, so that rules in t-* files that use them for + dependencies will work in a parallel build. + * config/i386/t-cygwin (winnt.o): Depend on $(CONFIG_H). + +2001-05-23 Richard Henderson + + * integrate.c (expand_inline_function): Handle CONCAT DECL_RESULT. + +2001-05-23 Neil Booth + + * cpp.texi: Update for handling of charconsts. + * cpplex.c (maybe_read_ucs): Don't accept D800-DFFF. Update + diagnostics. Skip to the end if the UCS is too short. + (cpp_interpret_charconst): Long charconsts issue a warning + not an error. + +2001-05-23 Richard Henderson + + * doc/install.texi (alpha-linux): Require binutils 2.11. + +2001-05-23 Neil Booth + + * c-lex.c (read_escape, read_ucs): Delete. + (lex_string): Use cpp_parse_escape. + * cpplex.c (read_ucs): Rename maybe_read_ucs. Do nothing + if not C++ or not C99. Warn if traditional. + (parse_escape): Rename cpp_parse_escape. Make the bitmask + unsigned. Warn for out-of-range escape sequences here. + Update to use maybe_read_ucs. + (cpp_interpret_charconst): Don't warn here. + * cpplib.h (cpp_parse_escape): New exported function. + +2001-05-23 Joseph S. Myers + + * extend.texi (Attribute Syntax): Clarify application of + attributes to parameters declared as functions or arrays. + +2001-05-23 Jason Merrill + + * dbxout.c (dbxout_type_methods): Do still group methods by name. + +2001-05-23 Zack Weinberg + + * diagnostic.c (vnotice): Kill. + (fnotice): Call vfprintf directly. + (diagnostic_for_decl, output_do_verbatim, output_verbatim, + verbatim, set_diagnostic_context): Rename string argument to + indicate that it is run through gettext. + (vbuild_message_string, build_message_string, output_do_printf): + Rename string argument to indicate that it is NOT run through + gettext. + (output_printf, diagnostic_for_decl, fatal_io_error, sorry, + output_do_verbatim, set_diagnostic_context, fnotice, _fatal_insn): + Run msgid argument through gettext. + (default_print_error_function): Run constant strings through + gettext when nothing else will. + (fatal_error, internal_error, error_recursion): Use fnotice. + Present complete sentences to gettext. + +2001-05-23 Mark Mitchell + + * jump.c (mark_jump_label): Fix thinko in 2001-05-19 change. + +2001-05-23 Richard Henderson + + * function.c (expand_function_start): Always use a pseudo + for the function result value. + +2001-05-22 Richard Henderson + + * config/mips/iris6.h (EH_FRAME_SECTION_ASM_OP): Give the + section pointer alignment. + + * doc/install.texi (alpha-linux): Require binutils >= 2.10. + + * unwind-dw2-fde.c (__deregister_frame_info): Stringize use + of __USER_LABEL_PREFIX__. + +2001-05-22 Richard Henderson + + * unwind-dw2-fde.c (__deregister_frame_info): Stubbify in favor of... + (__deregister_frame_info_bases): New. + * unwind-dw2-fde.h: Declare it. + * libgcc-std.ver: Export it. + * crtstuff.c (__do_global_dtors_aux): Call it if we would have + called __register_frame_info_bases. + +2001-05-22 Loren J. Rittle + + * config/freebsd.h (FBSD_CPP_PREDEFINES): Use #endif/#if pair + instead of #elif (which is OK for this case but not in general). + +2001-05-22 Andrew MacLeod + + * builtins.c (expand_builtin_longjmp): A longjmp can be a call too. + * config/ia64/ia64.md (nonlocal_goto): Reverse label and frame pointer + parameters to __ia64_nonlocal_goto. Flag as NO_RETURN. + * config/ia64/ia64.c (ia64_expand_epilogue): Make sure we are issuing + "r2" to the assembly file. Only issue allocs with nonzero parameters. + +2001-05-22 Loren J. Rittle + David O'Brien + + * config/freebsd.h (LIB_SPEC): Key the exact setting to + configure-time options and target version of FreeBSD. Set-up + to match architectural change in threading support. Correctly + report when -pthread option is not supported by configure-time + options. + (FBSD_CPP_PREDEFINES): Move from architecture-specific files + and extend to encode target version number in run-time setting + of __FreeBSD__ macro to match the system compiler. + (CPP_PREDEFINES): Likewise. + (PREFERRED_DEBUGGING_TYPE): Change to DWARF2_DEBUG. + + * config/alpha/freebsd.h (CPP_PREDEFINES): Moved to common freebsd.h. + * config/i386/freebsd.h (CPP_PREDEFINES): Likewise. + +2001-05-22 Loren J. Rittle + David O'Brien + + * config.gcc (the unlabeled system switch statement): Add + generic configuration section to handle *-*-freebsd*. Also, + to match the system compiler, default to threading support (it + may be disabled with the standard --disable-threads + configuration-time switch). + (i[34567]86-*-freebsd* in machine-specific section): Use it. + (alpha*-*-freebsd* in machine-specific section): Likewise. + + * config/freebsd3.h: New file to expose FBSD_MAJOR macro (3). + * config/freebsd4.h: New file to expose FBSD_MAJOR macro (4). + * config/freebsd5.h: New file to expose FBSD_MAJOR macro (5). + * config/freebsd6.h: New file to expose FBSD_MAJOR macro (6). + * config/freebsd-nthr.h: New file to expose FBSD_NO_THREADS macro. + +2001-05-22 Loren J. Rittle + David O'Brien + + * config/t-freebsd (TARGET_LIBGCC2_CFLAGS): Add -fPIC. + * config/t-freebsd-thread (TARGET_LIBGCC2_CFLAGS): Add + -pthread instead setting macro. + +2001-05-22 Richard Henderson + + * crtstuff.c (__register_frame_info_bases): Declare. + (frame_dummy): Use it, if CRT_GET_RFIB_TEXT or CRT_GET_RFIB_DATA. + (__do_global_dtors_aux, __do_global_dtors): Streamline. + + * config/i386/linux.h (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): New. + (CRT_GET_RFIB_DATA): New. + * config/i386/sysv4.h: Likewise. + * config/i386/sco5.h: Likewise. + (ASM_PREFERRED_EH_DATA_FORMAT): New. + +2001-05-22 Richard Henderson + + * rtl.c (read_string): Break out from ... + (read_rtx): ... here. + +2001-05-22 Gerald Pfeifer + + * doc/install.texi (Specific): Remove a bogus and duplicate part + copied from the end of the document. + +2001-05-22 Bernd Schmidt + + * Makefile.in (LIBGCC_DEPS): Correct LIB1ASMSRC dependency. + +2001-05-22 Gerald Pfeifer + + * install.texi: Remove obsolete information on SunOS as well as + i386-sun-sunos4, i860-intel-osf1, and powerpcle-*-solaris2*. + (Installing GNU CC on the Sun): Remove section. + +2001-05-22 Alexandre Oliva + + * cppfiles.c (remove_component_p): Don't assume lstat/stat will + keep errno unchanged on success. + +2001-05-22 Joseph S. Myers + + * c-lex.c (lex_number): If pedantic and not C99, pedwarn exactly + once for hexadecimal floats, whether or not they contain a decimal + point. Don't let the setting of pedantic otherwise affect the + parsing of hexadecimal floats. + +2001-05-22 Gerald Pfeifer + + * README.ACORN: Remove obsolete file. + +2001-05-22 Jan Hubicka + + * combine.c (gen_binary): Use swap_commutative_operands_p + (simplify_comparison): Likewise. + * expmed.c (emit_store_flag): Likewise. + * expr.c (compare_from_rtx): Likewise. + (do_compare_rtx_and_jump): Likewise. + * optabs.c (emit_cmp_and_jump_insn): Revert last patch; abort + if not emitting a branch and operands want swapping. + +2001-05-22 Neil Booth + + * c-lex.c (c_lex): Just cast cpp's hashnode to gcc's one. + * stringpool.c: (IS_FE_IDENT, make_identifier): Delete. + (maybe_get_identifier): Update. + * tree.h (make_identifier): Delete. + +2001-05-21 Richard Henderson + + * combine.c (subst): Do not substitute for a register as + a destination subreg/strict_low_part/zero_extract. + + * combine.c (simplify_comparison): Update op1 after constant + extension. + * recog.c (const_int_operand): Accept only constants valid + for the given mode. + * genrecog.c: Update comments wrt const_int_operand. + + * emit-rtl.c (init_emit_once): Zero unused memory in a + CONST_DOUBLE. + +2001-05-21 Mark Mitchell + + * tree.h (type_num_arguments): Declare it. + * tree.c (type_num_arguments): New function. + +2001-05-21 Richard Henderson + + * dwarf2out.c (current_funcdef_number): Move outside dwarf2 + conditional ifdef. + +2001-05-21 Geoff Keating + + * config/rs6000/rs6000.md (maxsf3): Use rs6000_emit_minmax. + (maxsf3+1): Delete. + (minsf3): Use rs6000_emit_minmax. + (minsf3+1): Generalize to handle both SMIN and SMAX. Use + rs6000_emit_minmax. + (movsfcc): Use rs6000_emit_cmove. + (fselsfsf4): Don't compare a CONST_INT with a floating-point value. + Don't generate emit_fselsfsf4. + (fseldfsf4): Likewise. + (maxdf3): Use rs6000_emit_minmax. + (maxdf3+1): Delete. + (mindf3): Use rs6000_emit_minmax. + (mindf3+1): Generalize to handle both SMIN and SMAX. Use + rs6000_emit_minmax. + (movdfcc): Use rs6000_emit_cmove. + (fseldfdf4): Don't compare a CONST_INT with a floating-point value. + Don't generate emit_fselsfsf4. + (fselsfdf4): Likewise. + * config/rs6000/rs6000.c (zero_fp_constant): New predicate. + (min_max_operator): New predicate. + (rs6000_emit_cmove): New function. + (rs6000_emit_minmax): New function. + * config/rs6000/rs6000-protos.h: Prototype new functions. + * config/rs6000/rs6000.h (PREDICATE_CODES): Add zero_fp_constant + and min_max_operator. + + * config/rs6000/rs6000.c (output_cbranch): Handle all + conditional types in the switch statement. + +2001-05-21 Mark Mitchell + + * c-decl.c (finish_decl): Don't set DECL_C_HARD_REGISTER for + non-register variables. + * extend.texi: Document that asm-specifications do not make sense + for non-static local variables. + +2001-05-21 Jason Merrill + + * dbxout.c (MINIMAL_DEBUG, flag_minimal_debug): Lose. + (dbxout_type_fields): Lose minimal_debug support. + (dbxout_type_methods, dbxout_type): Likewise. + +2001-05-17 Andrew Haley + + * config/rs6000/linux.h (MD_FALLBACK_FRAME_STATE_FOR): New. + +2001-05-21 Richard Henderson + + * dwarf2out.c (DEBUG_FRAME_SECTION): Rename from FRAME_SECTION. + Update all users. + +2001-05-20 Richard Henderson + + * dwarf2out.c (DEBUG_ABBREV_SECTION, DEBUG_ARANGES_SECTION, + DEBUG_MACINFO_SECTION, DEBUG_LOC_SECTION, DEBUG_PUBNAMES_SECTION, + DEBUG_STR_SECTION): Rename from s/DEBUG_//. Update all users. + * dwarfout.c (DEBUG_SFNAMES_SECTION, DEBUG_SRCINFO_SECTION, + DEBUG_MACINFO_SECTION, DEBUG_PUBNAMES_SECTION, DEBUG_ARANGES_SECTION): + Likewise. + * config/mips/iris6.h (DEBUG_SFNAMES_SECTION, DEBUG_SRCINFO_SECTION, + DEBUG_MACINFO_SECTION, DEBUG_PUBNAMES_SECTION, DEBUG_ARANGES_SECTION, + DEBUG_FRAME_SECTION, DEBUG_ABBREV_SECTION): Rename as above. + (DEBUG_LOC_SECTION, DEBUG_STR_SECTION): New. + * config/ia64/ia64.h (DEBUG_ABBREV_SECTION, DEBUG_ARANGES_SECTION, + DEBUG_PUBNAMES_SECTION): Rename as above. + (DEBUG_MACINFO_SECTION, DEBUG_LOC_SECTION, DEBUG_STR_SECTION): New. + +2001-05-20 Richard Henderson + + * optabs.c (emit_cmp_and_jump_insns): Don't swap commutative + operands unless the operation is commutative. + +2001-05-20 Kaveh R. Ghazi + + * fold-const.c (tree_expr_nonnegative_p): Detect more non-negative + cases. + +2001-05-21 Joseph S. Myers + + * extend.texi: Clarify documentation of extensions included in ISO + C99. Prefer C99 terminology and syntax to old GNU terminology and + syntax. Add more index entries. Document mixed declarations and + code as an extension in C89 mode. Warn about future changes to + semantics of inline functions. Fixes PR other/930. + +Sun May 20 16:39:24 2001 Richard Kenner + + * expr.c (expand_expr, case ARRAY_REF): Don't fold constant + access if EXPAND_CONST_ADDRESS or EXPAND_INITIALIZER. + (expand_expr, case COMPONENT_REF): Do copy if misaligned even + if EXPAND_CONST_ADDRESS or EXPAND_INITIALIZER. + + * stmt.c (expand_decl): Set mode, alignment, and sizes for CONST_DECL. + +2001-05-20 Richard Henderson + + * sched-deps.c (sched_analyze_insn): Force volatile memory reads + to be output before a branch. + +2001-05-20 Richard Henderson + + * Makefile.in (dwarf2asm.o): Depend on $(TREE_H). + +2001-05-20 Richard Henderson + + * config/i386/att.h (ASM_SHORT, ASM_LONG): Add trailing \t. + (ASM_DOUBLE): Remove. + * config/i386/bsd.h, config/i386/sco5.h: Likewise. + * config/i386/sun386.h: Likewise. + + * config/i386/i386.h (UNALIGNED_SHORT_ASM_OP): New. + (UNALIGNED_INT_ASM_OP, INT_ASM_OP): New. + + * config/i386/cygwin.h (INT_ASM_OP): Remove. + * config/i386/freebsd-aout.h, config/i386/i386-aout.h: Likewise. + * config/i386/i386-coff.h, config/i386/i386-interix.h: Likewise. + * config/i386/netbsd.h, config/i386/openbsd.h: Likewise. + + * config/i386/cygwin.h: Adjust uses of ASM_LONG for trailing \t. + * config/i386/djgpp.h, config/i386/i386.h: Likewise. + * config/i386/i386elf.h, config/i386/ptx4-i.h: Likewise. + * config/i386/sco5.h, config/i386/svr3gas.h: Likewise. + * config/i386/sysv4.h, config/i386/vsta.h: Likewise. + * config/i386/win32.h: Likewise. + +2001-05-20 Joseph S. Myers + + * invoke.texi: Add more options to summary list. + +2001-05-20 Joseph S. Myers + + * invoke.texi: Document meaning of -pedantic when -std=gnu* is + used. Fixes PR c/2291. + * gcc.1: Regenerate. + +2001-05-20 Stephane Carrez + + * config/m68hc11/m68hc11.c (m68hc11_override_options): Ignore + the -fpic and -fPIC options, clear flag_pic. + +2001-05-20 Neil Booth + + * hashtable.c (calc_hash): Fix HASHSTEP definition. + * stringpool.c (make_identifier): No statistics here anymore. + * objc-act.c (steup_string_decl): Remove redundant check. + +2001-05-20 Neil Booth + + * Makefile.in (OBJS, LIBCPP_OBJS, LIBCPP_DEPS, + cpplib.o, cpphash.o, fix-header): Update. + (hashtable.o): New target. + * c-common.h: Include cpplib.h. Define C_RID_CODE and + struct c_common_identifier here. + * c-lang.c (c_init_options): Update. Call set_identifier_size. + * c-lex.c (c_lex): Update. + * c-pragma.h: Update. + * c-tree.h (struct lang_identifier): Contain c_common_identifier. + Delete rid_code. + (C_RID_CODE): Delete. + * cpphash.c: Rewrite to use hashtable.c. + * cpphash.h: Update include guards. + (struct cpp_reader): Remove hashtab. + hash_ob and buffer_ob are no longer pointers. Add hash_table + and our_hashtable. + (HASHSTEP, _cpp_init_hashtable, _cpp_lookup_with_hash): Delete. + (_cpp_cleanup_hashtable): Rename _cpp_destroy_hashtable. + (_cpp_cleanup_stacks): Rename _cpp_init_directives. + * cppinit.c (cpp_create_reader): Update. + * cpplex.c (cpp_ideq, parse_identifier, cpp_output_token): Update. + (cpp_interpret_charconst): Eliminate warning. + * cpplib.c (do_pragma, do_endif, push_conditional, + cpp_push_buffer, cpp_pop_buffer): Update. + (_cpp_init_stacks): Rename cpp_init_directives. + (_cpp_cleanup_stacks): Remove. + * cpplib.h: Update include guards. Include tree-core.h and c-rid.h. + (cpp_hashnode, cpp_token, NODE_LEN, NODE_NAME, + cpp_forall_identifiers, cpp_create_reader): Update. + (C_RID_CODE, cpp_make_node): New. + (c_common_identifier): New identifier node for C front ends. + * cppmain.c (main): Update. + * fix-header.c (read_scan_file): Update. + * flags.h (id_clash_len): Make unsigned. + * ggc.h (ggc_mark_nonnull_tree): New. + * hashtable.c: New. + * hashtable.h: New. + * stringpool.c: Update comments and copyright. Update to use + hashtable.c. + * toplev.c (approx_sqrt): Move to hashtable.c. + (id_clash_len): Make unsigned. + * toplev.h (ident_hash): New. + * tree.c (gcc_obstack_init): Move to hashtable.c. + * tree.h: Include hashtable.h. + (IDENTIFIER_POINTER, IDENTIFIER_LENGTH): Update. + (GCC_IDENT_TO_HT_IDENT, HT_IDENT_TO_GCC_IDENT): New. + (struct tree_identifier): Update. + (make_identifier): New. +cp: + * cp-tree.h (struct lang_identifier, C_RID_YYCODE): Update. + (C_RID_CODE): Remove. + * lex.c (cxx_init_options): Call set_identifier_size. Update. + (init_parse): Don't do it here. +objc: + * objc-act.c (objc_init_options): Call set_identifier_size. Update. + +Sat May 19 18:23:04 2001 Richard Henderson + + * except.c (dw2_build_landing_pads): Use word_mode, not Pmode, + as ncessary. + (expand_eh_return): Convert between word_mode and Pmode. + * unwind-dw2.c (extract_cie_info): Do not assume words and pointers + are the same size. + (execute_stack_op): Likewise. + (execute_cfa_program): Likewise. + (uw_frame_state_for): Likewise. + (uw_update_context_1): Likewise. + * unwind.inc (_Unwind_Reason_Code): Likewise. + * config/mips/mips.h (EH_RETURN_DATA_REGNO): Define. + (EH_RETURN_STACKADJ_RTX): Likewise. + * config/mips/mips.c (compute_frame_size): Make space for saving + EH return registers. + (mips_expand_epilogue): Handle EH stack adjustments. + * config/mips/mips.md (eh_return): New pattern. + (eh_set_lr_si): Likewise. + (eh_set_lr_di): Likewise. + Add splitter to perform EH return after reload. + +2001-05-19 Mark Mitchell + + * jump.c (mark_jump_label): Tidy previous change. + +2001-05-19 Bruce Korb + + * fixinc/genfixes: no need for two warnings + * fixinc/Makefile.in: open stdin for those building with a closed one. + +2001-05-19 Mark Mitchell + + * jump.c (jump_optimize_1): Tidy. + (mark_jump_label): When changing the label in a LABEL_REF, change + update any REG_EQUAL notes as well. + +2001-05-19 Joseph S. Myers + + * c-parse.in (parm_declarator): Split into + parm_declarator_starttypename and parm_declarator_nostarttypename. + (parm_declarator_starttypename, parm_declarator_nostarttypename): + New. Allow parenthesized sub-declarators which don't begin with a + TYPENAME. Fixes PR c/166. + +2001-05-19 Mark Mitchell + + * defaults.h (TARGET_ALLOWS_PROFILING_WITHOUT_FRAME_POINTER): New + macro. + * tm.texi (TARGET_ALLOWS_PROFILING_WITHOUT_FRAME_POINTER): + Document it. + * toplev.c (main): If the target does not allow profiling without + a frame pointer, issue an error message. + * config/i386/linux.h (TARGET_ALLOWS_PROFILING_WITHOUT_FRAME_POINTER): + Define it to false. + +Sat May 19 07:53:42 2001 Richard Kenner + + * recog.c (general_operand): Modify last change to allow it if reload + has completed. + +Sat May 19 10:23:54 CEST 2001 Jan Hubicka + + * recog.c (general_operand): Prohibit nonzero subreg bytes on + subregs containing mem. + +Sat May 19 09:40:45 2001 Denis Chertykov + + * regrename.c (regrename_optimize): frame pointer register can + use a few hardregs. + +2001-05-18 Jason Merrill + + * README.DWARF: Move into dwarfout.c. + +2001-05-18 Dale Johannesen + + * config/rs6000/rs6000.c (secondary_reload_class): Fix Darwin + specific misuse of r0 as a reload address. + +Fri May 18 22:42:04 CEST 2001 Jan Hubicka + + * combine.c (combine_simplify_rtx): Clear op0_mode if simplification + succeeded. + +Fri May 18 07:26:34 2001 Richard Kenner + + * genrecog.c (enum decision_type): Add DT_elt_zero-wide_safe. + (add_to_sequence): Make that decision type. + (maybe_both_true_2, nodes_identical_1, factor_tests): Use it. + (write_switch, write_cond, debug_decision_2): Likewise. + + * dbxout.c (dbxout_type): Use host_integerp and fix typo in testing + for INTEGER_TYPE. + (dbxout_symbol, case TYPE_DECL): Don't generate tag for records of + variable size. + +2001-05-18 Stan Shebs + + * configure.in (gcc_cv_as_eh_frame): Cope with old assemblers. + * configure: Regenerate. + +2001-05-18 Per Bothner + + Changes needed for java/jvspec.c + * gcc.h (n_infiles, outfiles): Add declarations. + * gcc.c (n_infiles, outfiles): Mske no longer static. + +Fri May 18 10:14:42 2001 Jeffrey A Law (law@cygnus.com) + + * config/pa/som.h (EXCEPTION_SECTION): Define. + +2001-05-18 Daniel Berlin + + * dwarf2out.c: Add dw_loc_list_ref, a reference to a location + list. + Add have_location_lists, a variable to determine whether we need a + .debug_loc section or not. + (enum dw_val_class): Add dw_val_class_loc_list. + (dw_val_struct): Add val_loc_list. + (dw_loc_list_struct): New structure, represents location lists. + (new_loc_list): New function, return a new location list, given + the range and location expression. + (add_loc_descr_to_loc_list): New function, add a location + expression to a location list, given the expression and range. + (output_loc_list): New function, output a location list. + (gen_internal_sym): Modified to take symbol prefix, so we can + reuse it for location list symbols. + (add_AT_loc_list): New function, add a location list to a DIE at + the named attribute. + (AT_loc_list): New function, return the location list reference + for a given attribute, if it's a location list. + (print_die): Handle dw_val_class_loc_list. + (size_of_die): Ditto. + (value_format): Ditto. + (output_die): Ditto. + (output_location_lists): New function, output all of the location + lists for a DIE and it's children. + (dwarf2out_finish): Call output_location_lists if we have location + lists. + + +Fri May 18 15:39:16 CEST 2001 Jan Hubicka + + * gcse.c (try_replace_reg): First try global replace, later try to + simplify the expression. + + * gcse.c (find_used_regs): Change calling convention; work via + note_uses. + (cprop_insn): Update call of find_used_regs; work for CALL_INSNs too. + +2001-05-18 Bernd Schmidt + + Revert + 2001-02-09 Nick Clifton + * config/arm/arm.md: Change output constraint on post inc + load/store multiple patterns to be a read/write constraint. + +2001-05-18 Mark Mitchell + + * basic-block.h (struct basic_block_def): Add documentation about + what a basic block is, and what the various fields are used for. + * flow.c (calculate_globlal_regs_live): Add documentation about + how the algorithm works, and how we know that it will terminate. + Check that the inductive assumption that guarantees termination + actually holds. + (mark_used_regs): Treat conditionally set registers as used. + (debug_regset): Add comment. + * rtl.texi (cond_exec): Add documentation. + + * function.c (expand_function_start): Avoid creating BLKmode + pseudos. + +2001-05-17 Mark Mitchell + + * dwarf2out.c (output_comp_unit): Always output a compilation-unit + DIE, even if it has no children. + (dwarf2out_finish): Always output the line-number table, even if + it has no content. + +2001-05-18 David Edelsohn + + * rs6000.md (movsfcc,movdfcc): Remove NE case. + +2001-05-17 Bruce Korb + + * fixinc/fixincl.tpl: rewritten as an AutoGen version 5 template + * fixinc/genfixes: emit a warning if AutoGen is out of date + +2001-05-17 Brendan Conoboy + Bruce Korb + + * fixinc/fixincl.sh(FIXINC): accept local directory if fixincl not + found in fixinc directory. Facilitates binary distributions. + +2001-05-17 Jeffrey Oldham + + * dbxout.c (dbxout_symbol_location): For CONCAT, skip types not + COMPLEX_TYPE. + +Thu May 17 19:42:39 2001 Mark Kettenis + + * dwarf2out.c (modified_type_die): Equate qualified type to die. + +Thu May 17 23:19:46 CEST 2001 Jan Hubicka + + * integrate.c (copy_rtx_and_substitute): Use simplify_gen_subreg. + (simplify_subreg): Handle complex types represented as CONCAT. + + * recog.c (validate_replace_rtx_1): Properly canonicalize expression + * rtl.h (swap_commutative_operands_p): Declare. + * rtlanal.c (swap_commutative_operands_p): New. + (operand_preference): New static function. + + * combine.c (combine_simplify_rtx): Use swap_commutative_operands_p. + (gen_binary): Likewise. + * optabs.c (emit_cmp_and_jump_insns, emit_conditional_move): Likewise. + * simplify-rtx.c (simplify_gen_binary, + simplify_gen_relational): Likewise. + +Thu May 17 20:43:36 CEST 2001 Jan Hubicka + + * cse.c (fold_rtx): Use simplify_subreg. + + * simplify-rtx.c (simplify_replace_rtx): Use simplify_gen_subreg. + (simplify_gen_subreg): New. + (simplify_rtx): Use simplify_subreg. + * rtl.h (simplify_gen_subreg): Declare. + +2001-05-17 Mark Mitchell + + * doc/install.texi: Update Solaris information. + + * except.h (protect_cleanup_actions): Remove it. + (lang_protect_cleanup_actions): Declare it. + * except.c (protect_cleanup_actions): Remove it. + (lang_protect_cleanup_actions): New variable. + (init_eh): Don't make protect_cleanup_actions a GC root. + (expand_eh_region_and_cleanup): Call + lang_protect_cleanup_actions. + (output_function_exception_table): Remove unused `align' + variable. + * varasm.c (assemble_external): Abort if we have not yet + opened the assembly output file. + +Thu May 17 11:54:50 2001 Jeffrey A Law (law@cygnus.com) + + * except.c (sjlj_emit_function_enter): Call assemble_external_libcall + for eh_personality_libfunc. + +Thu May 17 19:48:00 CEST 2001 Jan Hubicka + + * recog.c (validate_replace_rtx_1): Use "TO" mode if not VOIDmode + when calling simplify_subreg. This is needed to allow replacing + of expression of one mode by expression of different mode. + +Thu May 17 19:40:03 CEST 2001 Jan Hubicka + + * simplify-rtx.c (simplify_subreg): Avoid creating of incorrect subregs. + +2001-05-17 Bernd Schmidt + + * expr.c (protect_from_queue): Protect against subsequent calls to + emit_queue. + (expand_expr, case ADDR_EXPR): Prevent protect_from_queue from being + too clever. + +Thu May 17 18:17:34 CEST 2001 Jan Hubicka + + * simplify_rtx.c (simplify_subreg): Fix simplification of nested subregs. + +2001-05-17 Gerald Pfeifer + + * gccbug.in (CATEGORIES): Add "bootstrap". + +Thu May 17 16:59:41 CEST 2001 Jan Hubicka + + * simplify-rtx.c (simplify_subreg): Break out from ... + * combine.c (combine_splify_rtx) ... here and ... + * recog.c (validate_replace_rtx_1): ... here; + * rtl.h (subreg_lowpart_parts_p, simplify_subreg): Declare. + * emit-rtl.c (subreg_lowpart_parts_p): Break out from ... + (subreg_lowpart_p): ... here. + +2001-05-17 Bernd Schmidt + + * stmt.c (expand_asm_operands): For inout operands, make sure + the substitution of '=' for '+' makes it into the rtl. + + * reload1.c (delete_output_reload): Call eliminate_regs on substed. + (reload_as_needed): Call update_eliminable_offsets a bit later. + +2001-05-17 Gerald Pfeifer + + * gcc.texi (gccbug): Refer to the web pages for detailed information + on GNATS. + +2001-05-16 Zack Weinberg + + * libgcc1-test.c, libgcc1.c, config/i386/perform.h: Delete file. + + * Makefile.in: Delete variables: OLDCC, CCLIBFLAGS, OLDAR, + OLDAR_FLAGS, LIBGCC1, LIBGCC1_TEST, CROSS_LIBGCC1, + LIB1FUNCS, and LIB1FUNCS_EXTRA. Delete rules: libgcc1-test, + libgcc1-test.o. Clarify commentary now that libgcc1 no longer exists. + * cross-make: Don't set LIBGCC1. + * mklibgcc.in: Delete all code for building from libgcc1.c. + Always honor LIB1ASMFUNCS if set. + + * crtstuff.c, floatlib.c, longlong.h, config/fp-bit.c, + config/arc/lib1funcs.asm, config/arm/lib1funcs.asm, + config/d30v/libgcc1.asm, config/fr30/lib1funcs.asm, + config/h8300/lib1funcs.asm, config/i386/cygwin.asm, + config/i386/uwin.asm, config/m68hc11/larith.asm, + config/m68k/lb1sf68.asm, config/mcore/lib1.asm, + config/mn10200/lib1funcs.asm, config/sh/lib1funcs.asm, + config/sparc/lb1spc.asm, config/sparc/lb1spl.asm, + config/v850/lib1funcs.asm, config/c4x/libgcc.S: + Delete or update references to libgcc1 in commentary. + + * config/t-libc-ok, config/t-linux, config/t-linux-aout, + config/t-netbsd, config/a29k/t-a29kbare, config/a29k/t-vx29k, + config/alpha/t-interix, config/alpha/t-osf, config/alpha/t-vms, + config/arc/t-arc, config/arm/t-arm-aout, config/arm/t-arm-coff, + config/arm/t-arm-elf, config/arm/t-linux, config/arm/t-pe, + config/arm/t-semi, config/arm/t-strongarm-coff, + config/arm/t-strongarm-elf, config/arm/t-strongarm-pe, + config/arm/t-xscale-coff, config/arm/t-xscale-elf, config/avr/t-avr, + config/c4x/t-c4x, config/d30v/t-d30v, config/fr30/t-fr30, + config/h8300/t-h8300, config/i386/t-beos, config/i386/t-cygwin, + config/i386/t-i386elf, config/i386/t-interix, config/i386/t-netware, + config/i386/t-next, config/i386/t-rtems-i386, config/i386/t-sol2, + config/i960/t-960bare, config/i960/t-vxworks960, config/ia64/t-ia64, + config/m32r/t-m32r, config/m68hc11/t-m68hc11-gas, config/m68k/t-lynx, + config/m68k/t-m68kbare, config/m68k/t-m68kelf, + config/m68k/t-mot3300-gald, config/m68k/t-mot3300-gas, + config/m68k/t-next, config/m68k/t-vxworks68, config/m88k/t-bug, + config/m88k/t-dgux, config/m88k/t-dgux-gas, config/m88k/t-dguxbcs, + config/m88k/t-luna, config/m88k/t-luna-gas, config/m88k/t-m88k, + config/m88k/t-m88k-gas, config/m88k/t-sysv4, config/mcore/t-mcore, + config/mcore/t-mcore-pe, config/mips/t-bsd, config/mips/t-bsd-gas, + config/mips/t-cross64, config/mips/t-ecoff, config/mips/t-elf, + config/mips/t-iris6, config/mips/t-r3900, config/mips/t-svr3, + config/mips/t-svr3-gas, config/mips/t-svr4, config/mips/t-svr4-gas, + config/mips/t-ultrix, config/mn10200/t-mn10200, + config/mn10300/t-mn10300, config/pa/t-linux, config/pa/t-linux64, + config/pa/t-pa, config/pa/t-pa64, config/pa/t-pro, + config/pdp11/t-pdp11, config/pj/t-pj, config/rs6000/t-aix43, + config/rs6000/t-beos, config/rs6000/t-darwin, config/rs6000/t-newas, + config/rs6000/t-ppccomm, config/rs6000/t-rs6000, config/sh/t-linux, + config/sh/t-sh, config/sparc/t-chorus-elf, config/sparc/t-elf, + config/sparc/t-sol2, config/sparc/t-sp86x, config/sparc/t-sparcbare, + config/sparc/t-sparclite, config/sparc/t-splet, + config/sparc/t-sunos41, config/sparc/t-vxsparc, + config/sparc/t-vxsparc64, config/v850/t-v850: + Don't set any of LIBGCC1, CROSS_LIBGCC1, or LIBGCC1_TEST. + + * config/alpha/alpha.h, config/i386/i386.h, config/i860/i860.h: + Don't set FLOAT_VALUE_TYPE, FLOAT_ARG_TYPE, INTIFY, or FLOATIFY. + * config/d30v/d30v.h: Don't mention LIBGCC_NEEDS_DOUBLE, + FLOAT_VALUE_TYPE, FLOAT_ARG_TYPE, FLOATIFY, INTIFY, + nongcc_SI_type, nongcc_word_type, or perform_* + * config/i860/fx2800: Don't define perform_umodsi3 or perform_modsi3. + + * config/i386/386bsd.h, config/i386/beos-elf.h, + config/i386/linux-aout.h, config/i386/linux-oldld.h, + config/i386/linux.h, config/i386/mach.h, config/i386/netbsd.h, + config/i386/openbsd.h, config/i386/osfrose.h, config/i386/rtemself.h: + Don't include i386/perform.h. + + * config/a29k/t-a29k, config/arm/t-semiaof, config/i370/t-i370, + config/i370/t-linux, config/i370/t-mvs, config/i370/t-oe, + config/i386/t-djgpp, config/i386/t-i386bare, config/i386/t-vsta, + config/ia64/t-hpux, config/mips/t-mips, config/mips/t-mips-gas, + config/mips/t-osfrose, config/sparc/t-sp64, config/sparc/t-sunos40, + config/vax/t-openbsd, config/vax/t-vax: Delete. + + * config.gcc: Remove references to deleted files. + (arm-semi-aof): Use arm/t-semi for tmake_file. + + * gcc.texi, install.texi, invoke.texi, tm.texi: + Delete or rewrite text which is no longer relevant now that + libgcc1 no longer exists. + + * config/t-openbsd, config/alpha/t-interix, config/i386/t-interix: + No need to set INSTALL_ASSERT_H. (Missed in previous sweep.) + +2001-05-16 Wolfgang Bangerth + Bruce Korb + + * fixinc/inclhack.def(solaris27_mutex_init): Fix broken mutex + initializer + +2001-05-16 Zack Weinberg + + * i386.md: Add two peepholes to clean up code generated by + cmpstr* expanders. + +2001-05-16 Richard Henderson + + * dwarf2asm.c (eh_data_format_name): Add names for "pointer size" + variants of non-absolute encodings. + + * config/i386/i386.h (ASM_PREFERRED_EH_DATA_FORMAT): New. + + * libgcc-std.ver (_Unwind_Find_FDE, __register_frame_info_bases, + __register_frame_info_table_bases): Export. + +2001-05-16 Richard Henderson + + * except.c (eh_data_format_name): Move to ... + * dwarf2asm.c: ... here. Use designated initializers if available. + (dw2_asm_output_encoded_addr_rtx): Accept varargs commentary. + * dwarf2asm.h: Update declarations. + * dwarf2out.c (output_cfi) [DW_CFA_set_loc]: If for_eh, mind + ASM_PREFERRED_EH_DATA_FORMAT. + (output_call_frame_info): Likewise. Use 'L' augmentation for + the LSDA encoding. + + * unwind-dw2-fde.h (struct fde_vector): New. + (struct old_object): Rename from struct object. + (struct object): New. + (__register_frame_info_bases): Declare. + (__register_frame_info_table_bases): Declare. + (struct dwarf_fde): Remove explicit pc_begin/pc_range members. + * unwind-dw2-fde.c (objects): Remove. + (unseen_objects, seen_objects): New. + (__register_frame_info_bases): New. + (__register_frame_info): Use it. + (__register_frame_info_table_bases): New. + (__register_frame_info_table): Use it. + (__deregister_frame_info): Rewrite for changed object struct. + (base_from_object, get_cie_encoding, get_fde_encoding): New. + (fde_unencoded_compare): Rename from fde_compare; uninline. + (fde_single_encoding_compare, fde_mixed_encoding_compare): New. + (start_fde_sort): Adjust for new definition of fde_vector. + (fde_insert): Likewise. + (end_fde_sort): Likewise. Select comparison function based + on properties of the object. + (fde_split): Take object and fde_compare_t arguments. + (frame_heapsort, fde_merge): Likewise. + (classify_object_over_fdes): Rename from count_fdes. Handle + encoded pointers. Collect encoding, mixed_encoding, and pc_begin + for the object. + (add_fdes): Handle encoded pointers. + (init_object): Rename from frame_init. Update for new struct object. + (linear_search_fdes): Rename from search_fdes. Handle encoded + pointers. + (binary_search_unencoded_fdes): Broken out from _Unwind_Find_FDE. + (binary_search_single_encoding_fdes): New. + (binary_search_mixed_encoding_fdes): New. + (search_object): New. + (_Unwind_Find_FDE): Update for new struct object. Fill in + the dwarf_eh_bases. + * unwind-dw2.c: Include unwind-pe.h. Constify all pointers + iterating over EH data. + (_Unwind_FrameState): Remove saw_lsda, addr_encoding. Add + fde_encoding, lsda_encoding. + (read_uleb128, read_sleb128): Remove. + (read_encoded_pointer): Remove. All callers use read_encoded_value. + (extract_cie_info): Set lsda_encoding from 'L' augmentation. + (uw_frame_state_for): Don't set bases.func. Handle encoded fde + pointers. + * unwind-pe.h: Add "struct" to _Unwind_Context references. + +2001-05-16 Neil Booth + + * cppexp.c (lex): Use NODE_NAME and NODE_LEN. + * cpphash.c (_cpp_lookup_with_hash): Similarly. + * cpplex.c (cpp_ideq, parse_identifier, cpp_token_len, + cpp_spell_token, cpp_output_token): Similarly. + * cpplib.c (lex_macro_node, do_undef, do_pragma, + do_pragma_poison, parse_assertion, do_assert): Similarly. + * cppmacro.c (builtin_macro, parse_args, funlike_invocation_p, + save_parameter, _cpp_create_definition, check_trad_stringification, + cpp_macro_definition): Similarly. + * cppmain.c (cb_define, cb_undef, dump_macro): Similarly. + * c-lex.c (cb_undef, c_lex): Similarly. + * fix-header.c (recognized_function): Similarly. + * cpplib.h (NODE_LEN, NODE_NAME): New. + (cpp_hashnode): Rename length len. + +Wed May 16 13:41:10 2001 Jeffrey A Law (law@cygnus.com) + + * pa32-regs.h (HARD_REGNO_MODE_OK): Allow TI/TFmode values in + GPRs. + +2001-05-16 Andreas Jaeger + + * Makefile.in (toplev.o): Add dependency on dwarf2asm.h. + + * toplev.c: Include dwarf2asm.h for prototype of + dw2_output_indirect_constants. + +Wed May 16 19:53:53 CEST 2001 Jan Hubicka + + * stmt.c (expand_asm_operands): Be able to offload addressof + expression to memory. (PR optimization/185) + +Wed May 16 18:53:23 CEST 2001 Jan Hubicka + + * combine.c (combine_simplify_rtx): Set op0_mode to VOIDmode after + applying distributive law. + +2001-05-16 John David Anglin + + * pa-hpux10.h (THREAD_MODEL_SPEC): Define. + + * gthr-dce.h (UNUSED): Attribute unused macro. + (__gthread_key_dtor): Make arguments UNUSED. + (__gthread_key_delete): Revise for compatibility with DRAFT4 + implementation. + +2001-05-16 David Edelsohn + + * doc/install.texi: Update AIX information. + * README.RS6000: Remove obsolete file. + +2001-05-16 Jakub Jelinek + Nathan Sidwell + + * gcc.c (give_switch): Don't write before start of string. + Always append suffix. + +2001-05-16 Nathan Sidwell + + * cpplex.c (_cpp_lex_token, '/' case): Comments can't appear + after stage3. + +2001-05-16 Gerald Pfeifer + + * README.ALTOS: Remove obsolete file. + +2001-05-16 Neil Booth + + * c-lex.h (save_and_forget_protocol_qualifiers, + forget_protocol_qualifiers, remember_protocol_qualifiers): + Remove deleted functions' prototypes. + +2001-05-16 Neil Booth + + * c-parse.in (methodtype): New production. + (methoddef, methodproto): Collapse separate '-' and '+' + handlers into 1. + +2001-05-16 Neil Booth + + * c-common.h (RID_FIRST_PQ): New. + * c-parse.in (objc_pq_context): New. + (objc parser): Set objc_pq_context rather than calling + remember_protocol_qualifiers and forget_protocol_qualifiers. + Don't call save_and_forget_protocol_qualifiers. + (yylexname): Handle objc protocol qualifiers here. + * stringpool.c (struct str_header): Replace with sp_hashnode. + (SP_EMPTY, SP_LEN, SP_TREE, SP_STR, SP_VALID): New. + (alloc_string): Rename alloc_ident. Use the SP_ accessors. + Allocate an IDENTIFIER_NODE for each identifier. + (FORALL_STRINGS, set_identifier): Delete. + (FORALL_IDS, expand_string_table, stringpool_statistics): Update. + (ggc_alloc_string): Use an obstack. + (get_identifier, maybe_get_identifier, mark_string_hash): Update. + * tree.h: Update comments. + (set_identifier): Delete. + * objc/objc-act.c (N_PQ, saved_pq, saved_not_pq, + save_and_forget_protocol_qualifiers, forget_protocol_qualifiers, + remember_protocol_qualifiers): Delete. + +Tue May 15 22:14:09 2001 Jeffrey A Law (law@cygnus.com) + + * flow.c (life_analysis): After life analysis is complete, do + an optional scan over insns looking for REG_LABEL notes that + reference a deleted label. + (propagate_block_delete_insn): Verify INOTE is a CODE_LABEL + before peeking at LABEL_NUSES. + +2001-05-15 Richard Henderson + + * unwind-sjlj.c (_Unwind_GetDataRelBase): New. + (_Unwind_GetTextRelBase): New. + +2001-05-15 Mark Mitchell + + * config/sparc/sol2.h (CPLUSPLUS_CPP_SPEC): Define. + +2001-05-15 Geoffrey Keating + + * objc/objc-act.c (handle_class_ref): Use rest_of_decl_compilation + so that CHOOSE_SECTION gets used. + + * config/rs6000/sysv4.h (ASM_PREFERRED_EH_DATA_FORMAT): Treat + TARGET_RELOCATABLE like flag_pic for now. + +2001-05-15 David Edelsohn + + * rs6000.md (movdi splitter): Sign extend more efficiently. + * rs6000.c (reg_or_arith_cint_operand): Redefine 64-bit constant + to "long long" valid on 32-bit and 64-bit hosts. + (logical_operand): Cast trunc_int_for_mode return value. + (rs6000_emit_move): Shift macro to encapsulate variable. + (rs6000_va_start): Use HOST_WIDE_INT_PRINT_DEC. + (rs6000_emit_{prologue,epilogue}): EH regno is unsigned but + plus_constant requires signed argument. + +2001-05-15 Loren J. Rittle + + * gthr-posix.h: Make additional pthread-* functions weak. + +Tue May 15 13:51:32 CEST 2001 Jan Hubicka + + * recog.c (apply_change_group): Avoid unneeded validating. + +2001-05-14 David Edelsohn + + * rs6000.c (num_insns_constant_wide): Constants are sign-extended. + (num_insns_constant): CONST_INT can be 64-bits. + +2001-05-14 Stan Shebs + + * config/darwin.h (LIB_SPEC): Just use -lSystem. + (LIBGCC_SPEC): Don't define. + +2001-05-14 Richard Henderson + + * configure.in (gcc_cv_as_eh_frame): New test. + * config.in, configure: Rebuild. + * gcc.c (init_spec): Honor USE_AS_TRADITIONAL_FORMAT. + +2001-05-14 Andrew MacLeod + + * config/ia64/lib1funcs.asm (__divtf3): Fix incorrect bits in + extended precision divide. + +2001-05-14 Andrew MacLeod + + * config/ia64/ia64.c (rtx_needs_barrier): Call rtx_needs_barrier + for RETURNS as well. + +Mon May 14 17:34:48 CEST 2001 Jan Hubicka + + * i386.h (TARGET_64BIT): Define to constant if !TARGET_BI_ARCH + (CPP_CPU??_SIZE_TYPE): New. + (CPP_CPU??_SPEC, CPP_CPUCOMMON_SPEC): Break out from... + (CPP_CPU_SPEC): ... here; support choosing of CPU. + (EXTRA_SPECS): Add cpp_cpu??, cpp_cpu??sizet, cpp_cpucommon. + (MAX_LONG_TYPE_SIZE, MAX_BITS_PER_WORD): Define to 32 for 32bit-only + compiler. + * i386.c (override_options): Add sorry about not suported modes. + +Mon May 14 08:56:47 2001 Jeffrey A Law (law@cygnus.com) + + * config/pa/som.h (NM_FLAGS): Remove. + (ASM_OUTPUT_FUNCTION_PREFIX): No longer truncate subspace names. + (ASM_OUTPUT_SECTION_NAME): Remove. + (MAKE_DECL_ONE_ONLY, ASM_WEAKEN_LABEL): Likewise. + +2001-05-14 Mark Mitchell + + * regrename.c (regrename_optimize): Do not rename registers to + leaf registers. + +2001-05-14 Alexandre Oliva + + * rtl.texi (CALL_INSN_FUNCTION_USAGE): Note that (and when) it may + contain MEMs. Remove useless distinction about clobbering + registers. + +2001-05-13 Geoff Keating + + * config/rs6000/rs6000.h (EXCEPTION_SECTION): Move to... + * config/rs6000/aix.h (EXCEPTION_SECTION): ... here. + * config/rs6000/sysv4.h (CONST_SECTION_ASM_OP): Delete. + (ASM_PREFERRED_EH_DATA_FORMAT): Define. + (EXCEPTION_SECTION): Define. + +2001-05-13 Zack Weinberg + + * libgcc2.c, libgcc2.h: Restore __eprintf. Label as used for + binary backward compat only. + * Makefile.in (LIB2FUNCS_ST): New. Put _eprintf here, not + in LIB2FUNCS. Pass it to mklibgcc. + * mklibgcc.in: Handle LIB2FUNCS_ST. + + * Makefile.in (installdirs): Don't create $(gcc_tooldir). + +2001-05-13 Alexandre Oliva + + * tm.texi (THREAD_MODEL_SPEC): Document it. + * gcc.c (main): Use it. + * config/rs6000/aix43.h (THREAD_MODEL_SPEC): Define it. + * config/rs6000/aix51.h (THREAD_MODEL_SPEC): Likewise. + +2001-05-13 Franz Sirl + + * rtl.h (SYMBOL_REF_WEAK): New macro. + * rtlanal.h (rtx_addr_can_trap): Use it, a weak SYMBOL_REF can trap. + * varasm.c (make_decl_rtl): Mark SYMBOL_REF weak if necessary. + * rtl.texi (SYMBOL_REF_WEAK): Document it. + * gcc.texi: Remove wrong description. + +2001-05-13 Mark Mitchell + + * Makefile.in (STAMP): New macro. + Replace all uses of `touch' with $(STAMP). + * fixinc/Makefile.in: Likewise. + +Sun May 13 07:26:34 2001 Richard Kenner + + * configure.in: ldopen is never in -lexc, so don't test for it. + Add test for exc_resume in -lexc for Ada. + * configure: Regenerated. + +2001-05-12 Richard Henderson + + * dwarf2asm.c (size_of_encoded_value): New function. + * dwarf2asm.h: Declare it. + * except.c (output_function_exception_table): Align the TType + array only as wide as the encoding. + +2001-05-12 Zack Weinberg + + * extend.texi: Document #pragma GCC java_exceptions. + +2001-05-12 Neil Booth + + * c-parse.in (bison parser, init_reswords): Remove uses of + doing_objc_thang. + * c-tree.h (doing_objc_thang): Remove. + +2001-05-12 Neil Booth + + * cpplex.c (_cpp_lex_token): Ensure we warn at most once + about files not ending in newlines. + +2001-05-12 Neil Booth + + * dwarfout.c (dwarfout_init): Add cast. + * sched-deps.c (sched_analyze_insn): Remove unused vars. + * unwind-dw2-fde.c (_Unwind_Find_FDE): Flag unused parameter so. +cp: + * method.c (build_mangled_C99_name): Remove unused prototype. + +2001-05-12 Alexandre Oliva + + * config/arm/arm.h (TARGET_PTRMEMFUNC_VBIT_LOCATION): Use delta. + +2001-05-12 Alexandre Oliva + + * defaults.h (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define. + * tm.texi (TARGET_PRTMEMFUNC_VBIT_LOCATION): Document. + +2001-05-11 Richard Henderson + + * defaults.h (ASM_PREFERRED_EH_DATA_FORMAT): New. + * dwarf2asm.c (dw2_force_const_mem, dw2_output_indirect_constant_1, + dw2_output_indirect_constants, dw2_asm_output_encoded_addr_rtx): New. + * dwarf2asm.h (dw2_asm_output_encoded_addr_rtx): Prototype. + (dw2_output_indirect_constants): Prototype. + * dwarf2out.c (dwarf2out_begin_prologue): Generate + current_function_func_begin_label if we'll need it for EH. Exit + early for IA64_UNWIND_INFO. + * except.c: Get DW_EH_PE_* defines from dwarf2.h. + (eh_data_format_name): Update for indirect references. + (output_function_exception_table): Care for IA64_UNWIND_INFO. + Handle ASM_PREFERRED_EH_DATA_FORMAT. + * except.h (MUST_USE_SJLJ_EXCEPTIONS): IA64_UNWIND_INFO needn't + define HAVE_eh_return etc. + * final.c (final_start_function): Always call dwarf2out_begin_prologue. + (final_end_function): Don't call output_function_exception_table. + * toplev.c (compile_file): Call dw2_output_indirect_constants. + (rest_of_compilation): Invoke output_function_exception_table + for ia64 before assemble_end_function. + * tm.texi (ASM_PREFERRED_EH_DATA_FORMAT): Document. + (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Document. + + * unwind-dw2.c (_Unwind_GetTextRelBase, _Unwind_GetDataRelBase): New. + * unwind.h: Declare them. + * libgcc-std.ver: Export them. + * unwind-pe.h: New file. + + * config/alpha/elf.h (ASM_PREFERRED_EH_DATA_FORMAT): New. + + * config/ia64/fde-glibc.c: Use "struct unw_table_entry" + instead of "fde". + (find_fde_for_dso): Extract DT_PLTGOT. + (_Unwind_FindTableEntry): Rename from __ia64_find_fde; return + the segment and gp as well. + * config/ia64/frame-ia64.c: Remove file. + * config/ia64/frame-ia64.h: Remove file. + * config/ia64/unwind-ia64.c: New file. + * config/ia64/unwind-ia64.h: New file. + * config/ia64/ia64.h (ASM_OUTPUT_EH_CHAR): Remove. + (ASM_OUTPUT_EH_SHORT, ASM_OUTPUT_EH_INT): Remove. + (ASM_OUTPUT_EH_DOUBLE_INT): Remove. + (ASM_PREFERRED_EH_DATA_FORMAT): New. + (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): New. + (IA64_UNWIND_INFO): Re-enable. + (HANDLER_SECTION): Remove. + (EH_RETURN_DATA_REGNO): New. + * config/ia64/ia64.md (exception_receiver): Remove. + * config/ia64/t-glibc (LIB2ADDEH): Re-enable. + * config/ia64/t-ia64 (LIB2ADDEH): Re-enable. + +2001-05-11 Richard Henderson + + * config/ia64/ia64.c (group_barrier_needed_p): Don't allow + calls and jumps to be bundled together. + (ia64_reorg): Emit a break after a noreturn call that ends + a function. + * config/ia64/ia64.md (break_f): New. + +2001-05-12 Neil Booth + + * c-lex.c (lex_charconst): Convert into a simple wrapper + around cpp_interpret_charconst, to which most of the code + body is moved. + * cppexp.c (MAX_CHAR_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE, + MAX_LONG_TYPE_SIZE, MAX_INT_TYPE_SIZE, MAX_CHAR_TYPE_MASK, + MAX_WCHAR_TYPE_MASK, parse_escape, parse_charconst): Remove. + (lex): Use cpp_interpret_charconst. + * cpplex.c (parse_escape, read_ucs, cpp_interpret_charconst, + hex_digit_value): New functions. + (MAX_CHAR_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): New macros. + * cpplib.h (cpp_interpret_charconst): New prototype. + * Makefile.in: Update. + +2001-05-12 Dean Wakerley + + * doc/install.texi: New file. Converted to texinfo from the HTML + documentation in wwwdocs/htdocs/install. + +Fri May 11 15:50:13 2001 Jeffrey A Law (law@cygnus.com) + + * gcse.c (insert_insn_end_bb): Do not search for assignments to + non-argumment registers that are mentioned in CALL_INSN_FUNCTION_USAGE. + + * toplev.c (compile_file): Move comment for opening output + file to just before the code that opens the output file. + +2001-05-11 Jakub Jelinek + + * regmove.c (regmove_optimize): Suppress the optimization for + unchanging destination register. Add comment above function. + +2001-05-11 Zack Weinberg + + * Makefile.in: Exterminate all references to assert.h. + * cross-make: Likewise. + * assert.h: Delete. + * configure.in: Correct commentary. + * configure: Regenerate. + + * libgcc-std.ver, libgcc2.c, libgcc2.h, sys-protos.h: + Remove __eprintf. + + * config/t-freebsd, config/t-linux, config/t-linux-aout, + config/t-netbsd, config/t-rtems, config/x-linux, + config/i386/t-beos, config/mcore/t-mcore, config/mcore/t-mcore-pe: + No need to override INSTALL_ASSERT_H. + + * fixinc/fixinc.dgux, fixinc/fixinc.interix, fixinc/fixinc.ptx, + fixinc/fixinc.svr4, fixinc/fixinc.winnt, fixinc/fixinc.wrap, + fixinc/fixincl.sh: Don't install assert.h into objdir/include. + +2001-05-11 Graham Stott + + * combine.c (simplify_comparison): Fix typo. + +2001-05-11 Mark Mitchell + + * loop.h (struct movables): Remove `num'. + * loop.c (scan_loop): Don't set it. Use count_insns_in_loop. + Adjust call to strength_reduce. + (num_unmoved_movables): New function. + (move_movables): Don't set movables->num. + (strength_reduce): Compute the number of instructions in the loop + here, rather than in the caller. + (check_dbra_loop): Always clear reversible_mem_store if there + are any memory sets. + (loop_regs_scan): Don't count instructions here. + (count_insn_in_loop): New function. + +2001-05-11 Mark Mitchell + + * optabs.c (emit_libcall_block): Don't mark calls as CONST_CALL_P. + +2001-05-11 Neil Booth + + * c-common.c (finish_label_expr): New function, lifted from + from cp/semantics.c. + * c-common.h (finish_label_expr, lookup_label): New prototypes. + * c-parse.in: Move 3 blocks of parser code into new functions. + * c-typeck.c (simple_asm_stmt, c_cast_expr): New functions. + * c-tree.h (simple_asm_stmt, c_cast_expr): New prototypes. + (lookup_label): Remove. + +2001-05-11 Alexandre Oliva + + * config/mn10300/t-mn10300 (dp-bit.c, fp-bit.c): Don't define + FLOAT_BIT_ORDER_MISMATCH. + +2001-05-10 David Edelsohn + + * expr.c (emit_push_insn): Convert PUSH_ROUNDING argument to + bytes. Reported by Kazu Hirata . + +2001-05-10 David Edelsohn + + * expr.c (emit_group_load): extract_bit_field requires a REG or + MEM as an argument. + +Thu May 10 14:45:44 2001 Jeffrey A Law (law@cygnus.com) + + * cse.c (cse_insn): Mostly remove first hunk of code which collapsed + a computed jump into an unconditional jump. + In second hunk of code for collapsing computed and conditional jumps + into unconditional jumps, reemit the jump in additional cases. + + * jump.c (jump_optimize_1): Do not wrap the new jump target + inside a LABEL_REF; gen_jump will do that automatically. + +2001-05-10 Toon Moene + + * dwarf2out.c (mem_loc_descriptor): Do not pass constant pool + contents for a SYMBOL_REF in case of floating point constants. + +2001-05-10 DJ Delorie + + * c-common.c (combine_strings): Widen strings in a + host-endian-independent way. + +2001-05-10 Joseph S. Myers + + * c-parse.in: Remove many shift/reduce conflicts. Update + %expect values. + (declspecs_nosc_nots_nosa_noea, declspecs_nosc_nots_nosa_ea, + declspecs_nosc_nots_sa_noea, declspecs_nosc_nots_sa_ea, + declspecs_nosc_ts_nosa_noea, declspecs_nosc_ts_nosa_ea, + declspecs_nosc_ts_sa_noea, declspecs_nosc_ts_sa_ea, + declspecs_sc_nots_nosa_noea, declspecs_sc_nots_nosa_ea, + declspecs_sc_nots_sa_noea, declspecs_sc_nots_sa_ea, + declspecs_sc_ts_nosa_noea, declspecs_sc_ts_nosa_ea, + declspecs_sc_ts_sa_noea, declspecs_sc_ts_sa_ea, declspecs_ts, + declspecs_nots, declspecs_ts_nosa, declspecs_nots_nosa, + declspecs_nosc_ts, declspecs_nosc_nots, declspecs_nosc, declspecs, + maybe_type_quals_setattrs, typespec_nonattr, typespec_attr, + typespec_reserved_nonattr, typespec_reserved_attr, + typespec_nonreserved_nonattr, maybe_setattrs, structsp_attr, + structsp_nonattr, components_notype, component_notype_declarator, + absdcl1_ea, absdcl1_noea, direct_absdcl1, absdcl_maybe_attribute, + firstparm, setspecs_fp): New + (typed_declspecs, reserved_declspecs, typed_typespecs, + reserved_typespecquals, declmods, typespec, typespecqual_reserved, + typed_declspecs_no_prefix_attr reserved_declspecs_no_prefix_attr + declmods_no_prefix_attr, nonempty_type_quals, structsp, + type_quals): Remove. Users updated. + (initdecls, notype_initdecls, after_type_declarator, + parm_declarator, notype_declarator, absdcl1, components, ivars): + Don't allow attributes at the start of a declarator; include them + in the production containing the declarator instead. Always + require type specifiers before trying to redeclare a typedef name. + (typename): Allow for attributes but warn that they are ignored. + (parmlist, firstparm, setspecs_fp): Include attributes in + parmlist; suck them off the parser stack in firstparm using + setspecs_fp. + +Thu May 10 09:17:42 2001 Jeffrey A Law (law@cygnus.com) + + * ifcvt.c (merge_if_block): Use any_uncondjump_p, not simplejump_p + to determine if a block has an unconditional jump at its end. + + * jump.c (jump_optimize_1): When converting a conditional jump + to an unconditional jump, build the jump using gen_jump instead + of just modify operands in-place. + +2001-05-09 Zack Weinberg + + * cppinit.c (cpp_post_options): Shut off macro expansion if + -fpreprocessed. + * cpplib.c (_cpp_handle_directive): If -fpreprocessed, accept + IN_I directives only if the # is in column 1 and the directive + name begins in column 2. + * cppmain.c (scan_buffer): Insert a space between # and an + identifier, when that identifier is a directive name. + + * tradcpp.c (struct file_buf): Add a pointer to the next entry + in the header search path. + (enum node_type): Add T_INCLUDE_NEXT. + (directive_table): Add entry for include_next. + (do_include_next): New function. + (process_include): New routine, broken out of do_include. + (finclude): Insert 'nhd' argument, to be copied into + next_header_dir of the new buffer. + (main): Adjust to match. + * gsyslimits.h, limity.h: Un-indent #include_next. + +2001-05-09 Joseph S. Myers + + * objc.texi: Move from ../libobjc/objc-features.texi. Adjust for + inclusion as a chapter of the GCC manual. + * gcc.texi: Include objc.texi. + * fdl.texi: Use @unnumberedsec for the addendum. + * Makefile.in ($(srcdir)/gcc.info, gcc.dvi): Update dependencies. + +Wed May 9 16:01:41 CEST 2001 Jan Hubicka + + * i386.md (DImode move splitters): Use !MMX and !SSE for the condition. + +Wed May 9 10:40:25 2001 Alexandre Oliva + + * regclass.c (scan_one_insn): Update REG_N_REFS when optimizing + handling of two-address insns. + +Wed May 9 10:36:18 2001 Alexandre Oliva + + * Makefile.in (NM_FOR_TARGET): Look for ./nm, then + ../binutils/nm-new instead of ../binutils/nm. + +Wed May 9 12:15:46 CEST 2001 Jan Hubicka + + * i386.md (movdi splitter): Fix the splitting condition + (float_extenddftf splitter): Fix mode. + +Wed May 9 12:05:39 CEST 2001 Jan Hubicka + + * genrecog.c (write_switch): Avoid outputting of switch for + types wider than int. + +2001-05-03 Andrew Haley + + * reload1.c (copy_eh_notes): New function. + (emit_input_reload_insns): Call it. + (emit_output_reload_insns): Call it. + +2001-05-07 Zack Weinberg + + * config.gcc (i[34567]86-*-sco3.2v4*, i[34567]86-*-sco*): + Delete stanzas. + * config/i386/sco.h, config/i386/sco4.h, config/i386/scodbx.h, + config/i386/sco4dbx.h, config/i386/x-sco4: Delete file. + + * optabs.c: Delete #ifdef BROKEN_LDEXP block. + +2001-05-07 John David Anglin + + * pa.md (interspace_jump): Revise comment. + (builtin_longjmp): Block initial setup insns from delay slot of + interspace branch. + (builtin_setjmp_receiver): New expander to save and restore PIC + register. + + * som.h (NM_FLAGS): Remove `-n' sort option. Revise comment. + +Mon May 7 09:30:14 2001 Jeffrey A Law (law@cygnus.com) + + * toplev.c (compile_file): Set up the output file before we call + the various initializers for the compiler. + + * except.c (sjlj_mark_call_sites): Do not search for assignments to + non-argumment registers that are mentioned in CALL_INSN_FUNCTION_USAGE. + + * pa.h (MAX_LONG_TYPE_SIZE): Should be 32, not 64. + * pa-64.h (*_TYPE_SIZE): Undefine before redefining. + +2001-05-06 Zack Weinberg + + * Makefile.in (tradcpp0): Correct typo in dependency list. + +2001-05-06 Geoff Keating + + * config/rs6000/rs6000.c (rs6000_emit_prologue): Don't save + the link register if we're not going to use it. + + * config/rs6000/rs6000.c (output_profile_hook): Fix a warning. + (output_function_profiler): Likewise. + +2001-05-07 Alan Modra + + * pa.c (compute_frame_size): 64-bit frame marker is 16 bytes. + +2001-05-06 Alexandre Oliva + + * unroll.c (loop_iterations): Don't sign-extend abs_diff; + zero-extend it. Make abs_inc unsigned. + + * optabs.c (expand_binop): Sign-extend xop0 and xop1 from the + widest mode in narrowing and widening operations. + + * config/mips/mips.md: Sign extend CONST_INTs. + +2001-05-06 Andreas Jaeger + + * invoke.texi (Option Summary): Add -momit-leaf-frame-pointer + (i386 Options): Document -momit-leaf-frame-pointer. + +2001-05-06 Neil Booth + + * c-typeck.c (internal_build_compound_expr): Check for + array to pointer conversion just once. + +2001-05-05 Richard Henderson + + * integrate.c (copy_insn_list): Substitute NOTE_EXPECTED_VALUE. + +2001-05-05 Richard Henderson + + * except.c (remove_fixup_regions): Adjust REG_EH_REGION notes + to the parent of the fixup region. + +2001-05-05 Jakub Jelinek + + * gcc.c (cpp_options): Define __NO_INLINE__ unless we are honoring + "inline" keyword. + * cpp.texi (__NO_INLINE): Document it. + +2001-05-05 Neil Booth + + * cppfiles.c (struct include_file): New member err_no. + (find_or_create_entry): Set it. + (open_file): Don't set fds to -2. Instead, use err_no to + remember previous errors, if any. + +2001-05-05 Stephane Carrez + + * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Optimize moves + between X and Y by using sequences of xgdx and xgdy. + +2001-05-05 Stephane Carrez + + * config/m68hc11/m68hc11.md ("*logicalsi3_silshr16"): Use '?' instead + of '!' for the 'D' alternative ('!' is too strong). + ("*logicalsi3_silshl16"): Likewise. + ("movstricthi"): Accept 'A' when 'd' constraint, remove spurious '+'. + ("movstrictsi"): Remove spurious '+'. + ("movstrictqi"): Don't accept 'A' and remove spurious '+'. + ("tstqi_1", "*lshrqi3_const1"): Put 'm' constraint before 'd'. + ("subqi3"): Disparage with '!' the 'x' and 'y' registers to avoid + a reload to them. + +2001-05-04 David Edelsohn + + * calls.c (store_one_arg): Don't divide align by BITS_PER_UNIT. + +2001-05-04 Lars Brinkhoff + + * simplify-rtx.c (simplify_binary_operation): Simplify ~a + 1 + into -a. + +2001-05-04 Franz Sirl + + * config/rs6000/rs6000.md (ashldi3 splits): Guard with + TARGET_POWERPC64. + +2001-05-04 Stephane Carrez + + * config/m68hc11/m68hc11.md (lshrhi3_const1): Fix shift of + soft register, use ror instead of rol. + +2001-05-04 Stephane Carrez + + * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Take + into account pre/post increment decrement for 68HC12. + Fix other problems in replacement and fix call to reg_mentioned_p. + +2001-05-04 Stephane Carrez + + * config/m68hc11/larith.asm (L_regs_frame): New for _.frame. + Put the soft registers in bss for 68HC12. + (L_regs_d3_4): New for _.d3 and _.d4. + (L_regs_d5_6): Likewise. + (L_regs_d1_2): Likewise. + * config/m68hc11/t-m68hc11-gas (T_CPPFLAGS): Compile new parts. + +2001-05-04 Stephane Carrez + + * config/m68hc11/m68hc11.h (CPP_SPEC): Pass -D__HAVE_SHORT_DOUBLE__ + to the pre-processor when -fshort-double is specified. + * config/m68hc11/m68hc11.2 (CPP_SPEC): Likewise. + +2001-05-04 Stephane Carrez + + * config/m68hc11/larith.asm (divmodhi4): Empty for 68HC12. + (__mulsi3): Rewrite for 68HC12. + * config/m68hc11/m68hc11.md (divmodhi4): Use idivs for 68HC12. + Mark 'x' constraint with earlyclobber to prevent a + RELOAD_FOR_OTHER_ADDRESS to go in it. + (mulhi3_m68hc12): New pattern. + (mulhi3_m68hc11): Rename of mulhi3. + (mulhi3): New expand for 68HC12 optimisation. + (umulhisi3, mulhisi3): New patterns for 68HC12. + +2001-05-04 Stephane Carrez + + * config/m68hc11/m68hc11.md (*tbne, *tbeq): New patterns for 68HC12. + (extendqisi2, extendqihi2, extendhisi2): Use sex for 68HC12. + (uminqi3, umaxqi3, uminhi3, umaxhi3): New pattern for 68HC12. + +2001-05-04 Stephane Carrez + + * config/m68hc11/m68hc11.h (CONST_COSTS): Make the cost of + constants cheap after reload. + * config/m68hc11/m68hc11.c (m68hc11_shift_cost): Shift by 16 and 32 + are cheap. + (m68hc11_rtx_costs): Cost of multiplication by 65536 is expensive + so that gcc prefers a shift by 16. + (m6811_cost, m6812_cost): Make the shift cheap compared to an add. + +2001-05-04 Nick Clifton + + * config/arm/elf.h (ASM_OUTPUT_ALIGNED_COMMON): Define. + +2001-05-04 Kaveh R. Ghazi + + * alpha.h: NULL_PTR -> NULL. + * arm.c: Likewise. + * arm.h: Likewise. + * avr.h: Likewise. + * c4x.c: Likewise. + * c4x.h: Likewise. + * i386.c: Likewise. + * i386.md: Likewise. + * i860.c: Likewise. + * ia64.c: Likewise. + * m68hc11.h: Likewise. + * rs6000.h: Likewise. + * sh.c: Likewise. + * sh.h: Likewise. + * sparc.h: Likewise. + * v850.c: Likewise. + + * expr.c: Likewise. + * final.c: Likewise. + * gcc.c: Likewise. + * recog.c: Likewise. + +2001-05-04 Kaveh R. Ghazi + + * i386.c (ix86_emit_restore_regs_using_mov, ix86_save_reg): Change + `bool' parameter to `int'. + + * hash.c (hash_lookup): Likewise. + + * hash.h (hash_lookup): Likewise. + + * tlink.c (symbol_hash_lookup, demangled_hash_lookup): Likewise. + +Fri May 4 13:10:03 CEST 2001 Jan Hubicka + + * i386.c (x86_initialize_trampoline): Fix mode of constant. + +2001-05-03 Geoff Keating + + * invoke.texi (i386 Options): Delete references to -malign-jumps, + -malign-loops, -malign-functions. + * i386.c (ix86_align_funcs): Delete. + (ix86_align_loops): Delete. + (ix86_align_jumps): Delete. + (override_options): Mark -malign-* as obsolete. Emulate their + behavior with the -falign-* options. Default -falign-* from + the processor table. + * i386.h (FUNCTION_BOUNDARY): Define to 16; revert Richard Kenner's + patch of Wed May 2 13:09:36 2001. + (LOOP_ALIGN): Delete. + (LOOP_ALIGN_MAX_SKIP): Delete. + (LABEL_ALIGN_AFTER_BARRIER): Delete. + (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Delete. + +2001-05-04 Andreas Jaeger + + * except.h: Add prototype declaration for + expand_builtin_init_dwarf_reg_sizes. + +2001-05-03 Geoffrey Keating + + * Makefile.in (site.exp): Set TESTING_IN_BUILD_TREE. + +2001-05-03 Stephane Carrez + + * config/m68hc11/m68hc11.md ("bitcmpqi"): New pattern for bitb + instruction. + ("bitcmpqi2"): New pattern for bit-extract and test. + ("bitcmphi"): New pattern for bitb/bita instructions. + +2001-05-03 Joseph S. Myers + + * gccbug.in: Use a temporary directory when the mktemp command is + not available. + +2001-05-03 Stephane Carrez + + * config/m68hc11/m68hc11.h (STATIC_CHAIN_REGNUM): Use soft z register + instead of _.d1. + (INITIALIZE_TRAMPOLINE): Call it. + (TRAMPOLINE_SIZE): Define according to 68HC11/68HC12. + (TRAMPOLINE_TEMPLATE): Remove. + * config/m68hc11/m68hc11.c (m68hc11_initialize_trampoline): New. + * config/m68hc11/m68hc11-protos.h (m68hc11_initialize_trampoline): + Declare. + +2001-05-03 David O'Brien + + * config/t-freebsd: Don't install "assert.h" in gcc. Compile crtbeginS.o + and crtendS.o with PIC. + +2001-05-03 Stephane Carrez + + * config/m68hc11/larith.asm (__mulqi3): Fix multiplication of two + negative numbers. + (___subdi3, ___adddi3): Use x instead of y as index register. + (__init_bss_section, __map_data_section): Optimize for 68HC12. + (__memset, __memcpy): Likewise. + (regs): Put the soft registers in bss for 68HC12. + (abort): Use trap to abort for 68hc12. + (__mulhi3, __mulhi32): Use emul for 68hc12. + (__mulsi3): Avoid to use the tmp soft register for 68hc12. + +2001-05-03 Stephane Carrez + + * config/m68hc11/m68hc11.h (LIMIT_RELOAD_CLASS): Don't define. + * config/m68hc11/m68hc11-protos.h (limit_reload_class): Remove. + * config/m68hc11/m68hc11.c (limit_reload_class): Remove. + (m68hc11_override_options): Remove setting of flag_no_nonansi_builtin. + Set 68HC12 min offset to -65536. + (print_operand): Put parenthesis arround the operand if it refers + to a symbol having the same name as a register. + (m68hc11_z_replacement): When z register is replaced by its + equivalent soft register, force the insn to be re-recognized. + (m68hc11_check_z_replacement): Fix the test when destination is + the index register and z dies in the insn. + (m68hc11_reorg): Remove the REG_DEAD notes beforce recomputing them. + +2001-05-03 Stephane Carrez + + * config/m68hc11/m68hc11.c (m68hc11_override_options): Initialize + costs according to processor variant. + (m68hc11_shift_cost): New function to compute shift costs. + (m68hc11_rtx_costs): Define costs according to processor variant. + (m6811_cost): Costs for 68HC11. + (m6812_cost): Costs for 68HC12. + (COSTS_N_INSNS): Remove. + + * config/m68hc11/m68hc11.h (RTX_COSTS): New. + (DEFAULT_RTX_COSTS): Remove. + (CONST_COSTS): Define costs according to OUTER_CODE. + (processor_costs): New struct to define costs. + (m68hc11_cost): Pointer to current costs. + +2001-05-03 Stephane Carrez + + * config/m68hc11/m68hc11.md (*addhi3_68hc12): Fix generation + and use m68hc11_notice_keep_cc when using leax/leay. + (addhi3 split): Reject split if the insn is handled by + leax/leay above. + * config/m68hc11/m68hc11.c (m68hc11_split_move): For 68HC12 the + push must be handled in a special way if the source operand uses + sp as index register. + (m68hc11_notice_keep_cc): New function. + (m68hc11_gen_movhi): Use it when an insn changes a register but + not the flags. + (m68hc11_gen_movqi): Fix move for 68HC12. + * config/m68hc11/m68hc11-protos.h (m68hc11_notice_keep_cc): Declare. + +2001-05-03 Stephane Carrez + + * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use LCT_CONST + and don't pass operands[0] to emit_library_call_value. + +2001-05-03 Stephane Carrez + + * config/m68hc11/m68hc11.md (tsthi_1): Use cpd for 68HC12. + (zero_extendsi split): Simplify and use (zero_extendhi). + (*addhi3): Remove 'w' constraint since stack pointer is handled + by (addhi3_sp). + (*ashlhi3_2): Operand 2 is clobbered use '+' for its constraint. + (*ashlhi3, *ashrhi3, *lshrhi3): Likewise. + (*ashrhi3_const): Fix shift by 7. + (*lshrsi3_const16): Fix template. + (call, call_value): Fix constraint and predicate. + +2001-05-03 Stephane Carrez + + * config/m68hc11/m68hc11.md (X_REGNUM, D_REGNUM): New constant. + (Y_REGNUM, SP_REGNUM, PC_REGNUM, A_REGNUM, B_REGNUM): Likewise. + (CC_REGNUM): Likewise. + (*unnamed splits): Use above constants instead of hard coded numbers. + (*adcq, *subcq, *addsi_carry, *rotlqi3_with_carry): Likewise. + (*rotlhi3_with_carry, *rotrhi3_with_carry): Likewise. + (*return_16bit, *unnamed peepholes): Likewise. + +2001-05-03 David O'Brien + + * config.gcc(rs6000-ibm-aix|powerpc-ibm-aix): Do not include + rs6000/rs6000.h twice. + +2001-05-03 Mark Elbrecht + + * config/i386/djgpp.h (CPP_PREDEFINES): Define __GO32__. + (CPP_SPEC): Conditionally define MSDOS and GO32. + (SUBTARGET_SWITCHES): Ignore -mbnu210 and -mno-bnu210. + (SUBTARGET_OVERRIDE_OPTIONS): Warn that -mbnu210 and -mno-bnu210 are + ignored. + (SUPPORTS_WEAK, SUPPORTS_ONE_ONLY): Remove. + +2001-05-03 Alexandre Oliva + + * config/mn10300/mn10300.md: Sign-extend GEN_INT operands. + +2001-05-03 Mark Mitchell + + * integrate.h (struct inline_remap): Add leaf_reg_map table. + * integrate.c (expand_inline_function): Use xcalloc to allocate + memory. + (copy_rtx_and_substitute): Use the leaf_reg_map for leaf + registers. + +2001-05-03 Mark Mitchell + + * c-dump.c (dequeue_and_dump): Don't look at DECL_ASSEMBLER_NAME + if it is not set. + +2001-05-03 Alexandre Oliva + + * config/mn10300/mn10300.h (LINK_SPEC): Pass --relax to the + linker if -mrelax is given. + (TARGET_SWITCHES): Document -mrelax. + + Re-installed 2001-01-09's patch: + * hwint.h (HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT): Use long long + if it's wider than long and the target's long is wider than the + host's. + +2001-05-02 David O'Brien + + * config.gcc, config/rs6000/aix51.h, config/rs6000/mach.h: Do not + directly include rs6000/rs6000.h. Instead do it in tm.h. + +2001-05-02 Stan Shebs + + * objc/objc-act.c (STRING_OBJECT_CLASS_NAME): Default to + NSConstantString for NeXT-style runtimes. + (STRING_OBJECT_GLOBAL_NAME): New macro. + (enum objc_tree_index): Add values OCTI_CNST_STR_GLOB_ID and + OCTI_STRING_CLASS_DECL. + (constant_string_global_id): New macro. + (string_class_decl): Ditto. + (setup_string_decl): New function. + (build_objc_string_object): Use it to build a NeXT runtime + compatible string initializer. + +2001-05-02 Jakub Jelinek + + * tradcpp.c (do_define): Make sure we don't walk past limit. + +2000-05-01 Franz Sirl + + * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow any stack + offsets if not REG_OK_STRICT. + + * config/rs6000/rs6000.h (REG_OK_STRICT_FLAG): New macro. + (INT_REG_OK_FOR_INDEX_P): Likewise. + (INT_REG_OK_FOR_BASE_P): Likewise. + (REG_OK_FOR_INDEX_P): Use INT_REG_OK_FOR_INDEX_P. + (REG_OK_FOR_BASE_P): Use INT_REG_OK_FOR_BASE_P. + (LEGITIMATE_OFFSET_ADDRESS_P): Use INT_REG_OK_FOR_INDEX_P and + INT_REG_OK_FOR_BASE_P instead of REG_OK_FOR_INDEX_P and + REG_OK_FOR_BASE_P. Take an additional parameter. + (LEGITIMATE_INDEXED_ADDRESS_P): Likeewise. + (LEGITIMATE_INDIRECT_ADDRESS_P): Likewise. + (LEGITIMATE_LO_SUM_ADDRESS_P): Likewise. + (GO_IF_LEGITIMATE_ADDRESS): Move code into new function + rs6000_legitimate_address() and use it. + * config/rs6000/rs6000.c: Update all callers. + (rs6000_legitimate_address): New function. + +2001-05-02 David Edelsohn + + * config/rs6000/rs6000.c (rs6000_emit_move): Merge + special_constant conditional blocks together. + +2001-05-02 Dale Johannesen + + * config/rs6000/rs6000.h (RS6000_ARG_SIZE): Remove unused NAMED + parameter. + (STRICT_ARGUMENT_NAMING): Define. + * config/rs6000/rs6000.c (function_arg_advance, function_arg, + function_arg_partial_nregs, setup_incoming_varargs): Remove + args logic which depends on "named" now that STRICT_ARGUMENT_NAMING + is defined. + +Wed May 2 13:09:36 2001 Richard Kenner + + * config/i386/i386.h (FUNCTION_BOUNDARY): Result is unsigned. + + * function.c (fixup_var_regs_1, case SUBREG): Use promoted mode + for replacement. + + * expr.c (store_field): Do nothing except elaborate side-effects if + zero-bit field. + +2001-05-02 Kaveh R. Ghazi + + * c-lex.c: NULL_PTR -> NULL. + * cse.c: Likewise. + * emit-rtl.c: Likewise. + * gcse.c: Likewise. + * genpeep.c: Likewise. + * jump.c: Likewise. + * mips-tdump.c: Likewise. + * reload1.c: Likewise. + * rtlanal.c: Likewise. + * stmt.c: Likewise. + * stor-layout.c: Likewise. + * toplev.c: Likewise. + +2001-05-01 Per Bothner + + * expr.c (expand_expr): When compiling LABELED_BLOCK_EXPR, + call do_pending_stack_adjust before emiting label. + +2001-05-01 Mark Mitchell + + * extend.texi: Fix typo. + +2001-05-01 Stan Shebs + + * objc/objc-act.c (build_module_descriptor): Clear DECL_CONTEXT + of UOBJC_MODULES_decl. + (generate_strings): Clear DECL_CONTEXT of new decl nodes. + (generate_descriptor_table): Ditto. + (generate_protocols): Ditto. + (generate_protocol_list): Ditto. + (generate_classref_translation_entry): Ditto. + +2001-05-01 Jeffrey Oldham + + * invoke.texi (Optimize Options): Add documentation for `--param + max-delay-slot-insn-search' and `--param + max-delay-slot-live-search' and reorder --param section. + * params.def: Modify initial comment. + * params.h (param_info): Add `help' member. + * toplev.c (lang_independent_params): Include `help' description. + (display_help): Print --param parameters. + +2001-05-01 Zack Weinberg + + * config.gcc: Don't default xmake_file to ${cpu_type}/x-${cpu_type}. + Remove references to deleted files. + (*-*-openbsd): No need to override xmake_file. + (*-*-sysv4): Treat like *-*-sysv. + + * configure.in: Probe for ldopen in various places, and set up + collect2 to be linked with them if found. + Don't dink with Windows registry stuff unless $host_os is a + Win32 os name. Check to see if we need -ladvapi32. + * configure: Regenerate. + + * Makefile: Get rid of CLIB and HOST_CLIB. + Substitute in COLLECT2_LIBS and link collect2 against its contents. + * build-make: Get rid of HOST_CLIB. + + * config/a29k/x-unix, config/alpha/x-osf, config/i386/x-aix, + config/i386/x-osfrose, config/m68k/x-dpx2, config/mips/x-iris3, + config/mips/x-mips, config/mips/x-osfrose, config/mips/x-sony, + config/mips/x-sysv, config/rs6000/x-aix31, config/rs6000/x-aix41, + config/rs6000/x-rs6000: Delete. + + * config/i386/x-cygwin, config/m68k/t-aux, config/mips/x-iris: + Don't set CLIB. + + 24 x-host fragments remain, 0 x-cpu, 3 top level. + +2001-05-01 Zack Weinberg + + * aclocal.m4 (gcc_AC_C_CHAR_BIT): Correct test program. + * configure: Regenerate. + +2001-05-01 Angela Marie Thomas + + * Makefile.in (install-headers): Remove redundant dependency. + +2001-05-01 Nathan Sidwell + + * c-tree.texi (USING_STMT): Document. + +2001-05-01 Kaveh R. Ghazi + + * bitmap.c: Change NULL_PTR to NULL or "(rtx*)0". + * c-common.c: Likewise. + * c-decl.c: Likewise. + * combine.c: Likewise. + * rs6000.c: Likewise. + * except.c: Likewise. + * explow.c: Likewise. + * expr.c: Likewise. + * fold-const.c: Likewise. + * function.c: Likewise. + * gcc.c: Likewise. + * gcse.c: Likewise. + * integrate.c: Likewise. + * loop.c: Likewise. + * objc/objc-act.c: Likewise. + * recog.c: Likewise. + * reg-stack.c: Likewise. + * reload.c: Likewise. + * reload1.c: Likewise. + * simplify-rtx.c: Likewise. + * stmt.c: Likewise. + * varasm.c: Likewise. + +2001-05-01 Gabriel Dos Reis + + * diagnostic.def: New file. + * diagnostic.h (diagnostic_t): New enum. + * Makefile.in (diagnostic.o): Depend on diagnostic.def + +2001-04-30 Zack Weinberg + + * tsystem.h: Test only POSIX for availability of string.h + and time.h. + * config.gcc (all systems): If USG appeared in xm_defines, + change it to POSIX. If both USG and POSIX appeared, just + delete USG. Remove unnecessary quotes around xm_defines + settings. + (m68k-crds-unos*): Don't #define unos - tested nowhere. + (m68k-apple-aux*): Don't #define AUX - tested nowhere. + (alpha*-*-linux*ecoff*, powerpc-*-linux*libc1, + powerpc-*-linux*): No need to set xm_defines - handled by + global settings for *-*-linux*. + +2001-04-30 Zack Weinberg + + * dbxout.c, mips-tfile.c, config/mips/mips.c, xcoffout.c: + Always include gstab.h, not system stab.h. Don't provide + default definitions of N_CATCH or N_OPT. Always use the + gstab.h variant of STAB_CODE_TYPE. + * final.c: Don't include stab.h/gstab.h at all, or provide + defaults for N_SLINE and N_SOL. + + * xcoffout.c: Can assume N_MAIN, N_DSLINE, N_BSLINE, N_BINCL, + N_EINCL, N_EXCL, N_M2C, N_SCOPE, N_CATCH, and N_OPT are + available. + * sdbout.c: Always include gsyms.h instead of system syms.h. + + * configure.in: No need to check for stab.h. + * configure, config.in: Regenerate. + * Makefile.in (final.o): Don't depend on gstab.h. + +2001-04-30 Mark Mitchell + Richard Henderson + + * extend.texi: Improve documentation of volatile asms. + +2001-04-30 Mark Mitchell + + * c-tree.texi: Fix thinko. + * gcc.texi: Likewise. + +2001-04-30 Richard Henderson + + * c-common.c (c_promoting_integer_type_p): New function, from the + corpse of old macro. Properly promote too-small enumerations and + booleans. Adjust all callers. + * c-common.h (C_PROMOTING_INTEGER_TYPE_P): Remove. + (c_promoting_integer_type_p): Declare. + * c-decl.c: Adjust C_PROMOTING_INTEGER_TYPE_P invocations. + * c-typeck.c: Likewise. + (default_conversion): Remove now redundant boolean check. + +2001-04-30 Jan Hubicka + Richard Henderson + + * regmove.c (try_apply_stack_adjustment): Remove now redundant + sanity checks. + (combine_stack_adjustments_for_block): Don't combine stack + allocation followed by deallocations. Handle grow-up stacks. + +2001-04-30 Mark Mitchell + + * fdl.texi: New file. + * c-tree.texi: Use the GFDL. + * gcc.texi: Likewise. + +2001-04-30 Stan Shebs + + * invoke.texi: Add a section documenting Objective-C options. + +2001-04-27 Andrew Haley + + * emit-rtl.c (try_split): Copy EH notes to sequence. + +2001-04-30 Mark Mitchell + + * regmove.c (record_stack_memrefs): Catch all references to the + stack pointer. + +2001-04-29 Toomas Rosin + + * Makefile.in (stmp-fixinc): quote shell assignment values + +2001-04-29 Kaveh R. Ghazi + + * c-aux-info.c: NULL_PTR->NULL in calls to `concat'. + + * gcc.c: Likewise. + + * prefix.c: Likewise. + +2001-04-28 Stan Shebs + + * objc/objc-act.c (handle_class_ref): Rewrite to flush target + specific code and use new macro ASM_DECLARE_UNRESOLVED_REFERENCE. + * config/darwin.h (ASM_DECLARE_UNRESOLVED_REFERENCE): Define. + * tm.texi (ASM_DECLARE_UNRESOLVED_REFERENCE): Document. + + * config/darwin.h (STANDARD_EXEC_PREFIX): Don't define. + (NEXT_OBJC_RUNTIME): Define. + +Sat Apr 28 21:02:58 CEST 2001 Jan Hubicka + + * rtl.h (simplify_gen_relational): Add cmp_mode parameter. + * simplify-rtx.c (simplify_gen_relational): Likewise. + + * simplify-rtx.c (simplify_replace_rtx): Handle relationals and MEMs. + + * i386.h (VALID_SSE_REG_MODE): Accept MMX modes if SSE2 + * i386.md (movsi_1, movdi2, movdi_1_rex64): Handle SSE2 moves. + + * i386.md (negsf2, negdf2, abssf2, absdf2): Force operands to + registers in SSE case; fix handling of the immediates. + (negsf2_ifs, abssf2_ifs): Tweak constraints; require + operands to be in regsiters before reload. + (negdf2_ifs, absdf2_ifs): Likewise; disable for 64bit + (negdf2_ifs_rex64, absdf2_ifs_rtx64): New. + (abstf,absxf,negtf,negxf splitters): Compute + properly the regnum for x86_64. + (avsdf2_if_rex64): New. + +Sat Apr 28 10:36:23 2001 Jeffrey A Law (law@cygnus.com) + + * flow.c (propagate_block_delete_insn): Handle deletion of ADDR_VEC + and ADDR_DIFF_VEC insns when the proceeding CODE_LABEL was put + into the constant pool. + * jump.c (jump_optimize_1): Remove barrier successors after all + the LABEL_NUSES counds have been computed. + (delete_barrier_successors): When deleting a tablejump insn, also + delete the jump table it uses. + * varasm.c (force_const_mem): Set LABEL_PRESERVE_P when forcing a + label into memory. + +2001-04-28 Martin Kalen + + * pa.c (FRP): Remove erroneous white space in macro definition. + +2001-04-28 Andreas Jaeger + + * invoke.texi: Use XX-bit instead of XXbit or XX bit where + appropriate. + * extend.texi: Likewise. + * tm.texi: Likewise. + +2001-04-28 Andreas Jaeger + + * md.texi: Use XX-bit instead of XXbit or XX bit where + appropriate. + +2001-04-28 Jens Schweikhardt + + * gcc.c (process_command): Allow -l lib in addition to -llib + for POSIX compliance. This fixes PR c/2347. + + * invoke.texi: Update section on Link Options accordingly. + +2001-04-27 Zack Weinberg + + * function.c (purge_addressof_1): Remove the duplicate + if (code == SET) block. Fold the two if (code == ADDRESSOF) + blocks together. + +2001-04-28 Jason Merrill + + * except.c (expand_eh_region_start): Don't start a new block. + (expand_eh_region_end): Don't end a block. + * stmt.c (expand_end_bindings): Don't end EH blocks. + (expand_decl_cleanup): Starting an EH region won't change the block. + (mark_block_as_eh_region, mark_block_as_not_eh_region): Lose. + (is_eh_region): Lose. + * tree.h: Adjust. + +2001-04-27 Jeffrey Oldham + + * except.c (expand_eh_region_end_cleanup): word_mode, not Pmode. + + * collect2.c (main): Add `-L' case to remove duplicate entries. + (is_in_args): New function to check for a duplicate argument. + * defaults.h (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES): New macro. + * tm.texi (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES): New documentation. + * config/mips/iris6.h (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES): + Define to be nonzero. + +2001-04-27 Andreas Jaeger + Richard Henderson + + * md.texi (Machine Constraints): Document additional i386 + constraints and fix description of "A". + +Fri Apr 27 10:43:49 2001 Jeffrey A Law (law@cygnus.com) + + * tm.texi (TARGET_MEM_FUNCTIONS): Update text. + +2001-04-27 Jason Merrill + + * except.c (get_exception_filter): word_mode, not Pmode. + +2001-04-26 Geoffrey Keating + + * config/sparc/sparc.md (movsf_no_f_insn): Add more alternatives + common to other movsf patterns. Move up so that in future + people who change the other patterns will change it too. + (movsf_lo_sum): Allow even for soft-float; add appropriate + constraints. + (movsf_high): Likewise. + (movsf_high+1): Allow even for soft-float. + + * function.c (expand_function_end): Always clobber the + return registers, even if there is no return label. + +Thu Apr 26 20:28:21 CEST 2001 Jan Hubicka + + * (ix86_expand_fp_movcc): Re-enable SSE conditional move generation. + +Thu Apr 26 19:20:28 CEST 2001 Jan Hubicka + + * i386.md (abs/neg splitter): Fix calculation of sign bit for TFmodes + (pushqi2_rex64, pushhi2_rex64): Add. + +2001-04-26 Andrew Haley + + * except.c (expand_eh_region_end_cleanup): Force pending stack + adjust before emitting label that branches around cleanup code. + +2001-04-26 H.J. Lu (hjl@gnu.org) + + * config.gcc (mips*-*-linux*): Add elfos.h to tm_file. + + * config/mips/ecoff.h (STARTFILE_SPEC): Undefine before + define. + * config/mips/elf64.h (MAX_OFILE_ALIGNMENT): Likewise. + (ASM_OUTPUT_SECTION_NAME): Likewise. + (ASM_WEAKEN_LABEL): Likewise. + (UNIQUE_SECTION): Likewise. + (ASM_OUTPUT_CONSTRUCTOR): Likewise. + (ASM_OUTPUT_DESTRUCTOR): Likewise. + * config/mips/elf.h (MAX_OFILE_ALIGNMENT): Likewise. + (ASM_OUTPUT_SECTION_NAME): Likewise. + (ASM_WEAKEN_LABEL): Likewise. + (UNIQUE_SECTION): Likewise. + (ASM_OUTPUT_CONSTRUCTOR): Likewise. + (ASM_OUTPUT_DESTRUCTOR): Likewise. + * config/mips/linux.h (HANDLE_SYSV_PRAGMA): Likewise. + * config/mips/mips.h (DBX_CONTIN_LENGTH): Likewise. + (ASM_FILE_START): Likewise. + (ASM_OUTPUT_SOURCE_LINE): Likewise. + (ASM_DECLARE_OBJECT_NAME): Likewise. + (ASM_FILE_END): Likewise. + (ASM_DECLARE_FUNCTION_NAME): Likewise. + (ASM_OUTPUT_INTERNAL_LABEL): Likewise. + (ASM_GENERATE_INTERNAL_LABEL): Likewise. + (ASM_OUTPUT_CASE_LABEL): Likewise. + (ASM_OUTPUT_SKIP): Likewise. + (ASM_OUTPUT_ASCII): Likewise. + (ASM_OUTPUT_IDENT): Likewise. + (READONLY_DATA_SECTION): Likewise. + (EXTRA_SECTIONS): Likewise. + (EXTRA_SECTION_FUNCTIONS): Likewise. + (SELECT_RTX_SECTION): Likewise. + (SELECT_SECTION): Likewise. + + * config/mips/linux.h (INVOKE__main): Undefine. + (CTOR_LIST_BEGIN): Likewise. + (CTOR_LIST_END): Likewise. + (DTOR_LIST_BEGIN): Likewise. + (DTOR_LIST_END): Likewise. + (SET_ASM_OP): Defined it to ".dummy". + (ASM_OUTPUT_DEF): Defined. + (ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL): Defined. + +2001-04-26 Nick Clifton + + * config/arm/arm.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Define, if the + assembler supports .p2align. + +2001-04-26 Nathan Sidwell + + * c-lex.c (c_lex): Remove # from %o diagnostic formatting. + +2001-04-26 Jakub Jelinek + + * integrate.c (expand_inline_function): Check for error_mark_node + in actual argument. + +2001-04-26 Jakub Jelinek + + * config/i386/i386.h (CC1_CPU_SPEC): Fix deprecation warnings for + -m386 and -m486. + +2001-04-26 Alexandre Oliva + + * configure.in (configargs.h): Define thread_model. + * configure: Rebuilt. + * gcc.c (main): Print it with -v. + +2001-04-25 Joseph S. Myers + + * invoke.texi: Document -Wmissing-braces, -dumpspecs, + -dumpmachine, -dumpversion, -fmem-report and -ftime-report. + * gcc.1: Regenerate. + +2001-04-25 Rainer Orth + + * dwarfout.c (is_pseudo_reg, type_main_variant, is_tagged_type, + is_redundant_typedef): Use static inline instead of inline static. + +Wed Apr 25 18:21:01 2001 Christopher Faylor + + * config/i386/cygwin.h: Move W32API search to LINK_SPEC to ensure that + this directory is always searched. + +2001-04-25 Richard Henderson + + * config/i386/i386.c (ix86_expand_epilogue): Properly compute size + of registers to restore along non eh_return path. + +2001-04-25 Jakub Jelinek + + * c-format.c (check_format_info_recurse): Handle + PLUS_EXPR for format string. + +2001-04-25 Jakub Jelinek + + * config/ia64/ia64.h (CC1_SPEC): Define. + * config/ia64/linux.h (CC1_SPEC): Define. + +Wed Apr 25 17:09:50 2001 J"orn Rennecke + + * emit-rtl.c (constant_subword): Also do sign extension in + BITS_PER_WORD == 16 case. + +2001-04-25 Jason Merrill + + * loop.c (try_swap_copy_prop): Go back to checking insn. + +2001-04-25 Jakub Jelinek + + * emit-rtl.c (subreg_hard_regno): Only do HARD_REGNO_MODE_OK check + if check_mode is nonzero. + +2001-04-25 Jakub Jelinek + + * config/i386/i386.c (ix86_expand_int_movcc): If overlap between + out and comparison sequence has been detected, put result into + proper temporary pseudo. + +2001-04-24 Zack Weinberg + + * Makefile.in (LIB2FUNCS): Remove _varargs and __dummy. + * libgcc-std.ver: Remove __builtin_saveregs, __dummy, and __empty. + * libgcc2.c: Remove __dummy and __builtin_saveregs. + * libgcc2.h: Don't prototype __builtin_saveregs or __dummy. + * config/i860/varargs.asm: New file - preserve i860 __builtin_saveregs + for future reference. + +2001-04-24 Jason Merrill + + * except.c (reachable_handlers): Step out one level from a RESX. + + * except.c (struct eh_region): Rename 'last' to 'resume'. + (mark_eh_region, duplicate_eh_region_1): Adjust. + (expand_eh_region_end_cleanup): Remember the jump, not the barrier. + (build_post_landing_pads): Likewise. + (expand_end_catch, expand_eh_region_end_allowed): Don't set it. + (expand_eh_region_end_must_not_throw): Likewise. + (connect_post_landing_pads): Thread (only) regions with non-deleted + resume insns. + + * except.c (expand_eh_region_end_cleanup): Save the EH return data + registers around the cleanup. + (get_exception_filter): New fn. + (finish_eh_generation): Use it. + +2001-04-24 Nathan Sidwell + + * c-semantics.c (add_scope_stmt): Don't call + current_scope_stmt_stack multiple times. + +2001-04-24 Zack Weinberg + Nathan Sidwell + + Lazy __FUNCTION__ generation. + * c-common.h (RID_FUNCTION_NAME, RID_PRETTY_FUNCTION_NAME, + RID_C99_FUNCTION_NAME): New _RIDs. + (CTI_FUNCTION_ID, CTI_PRETTY_FUNCTION_ID, CTI_FUNC_ID): Remove. + (CTI_FUNCTION_NAME_DECL, CTI_PRETTY_FUNCTION_NAME_DECL, + CTI_C99_FUNCTION_NAME_DECL, CTI_SAVED_FUNCTION_NAME_DECLS): New + global tree slots. + (function_id_node, pretty_function_id_node, func_id_node): Remove. + (c99_function_name_decl_node, function_name_decl_node, + pretty_function_name_decl_node, saved_function_name_decls): + Declare. + (struct language_function): Remove x_function_name_declared_p. + (make_fname_decl): Remove a parameter. + (declare_function_names): Remove prototype. + (start_fname_decls, finish_fname_decls): Prototype. + (fname_as_string): Likewise. + (fname_string, fname_decl): Likewise. + * c-common.c (make_fname_decl): Adjust. + (struct fname_var_t): New struct. + (fname_vars): New static array. + (declare_function_name): Remove. + (start_fname_decls, finish_fname_decls): New functions. + (fname_as_string): New function from remnants of + declare_function_name. + (fname_string, fname_decl): New functions. + + * c-decl.c (c_function_name_declared_p): Remove. + (init_decl_processing): Don't generate __FUNCTION__ et al ids, + don't call declare_function_name. Call start_fname_decls. + (c_make_fname_decl): Adjust parameters. Generate the name. Don't + clobber the line number. Call finish_decl. + (start_function): Call start_fname_decls. + (finish_function): Call finish_fname_decls. + Remove c_function_name_declared_p. + (push_c_function_context): Don't push c_function_name_declared_p. + (pop_c_function_context): Don't pop c_function_name_declared_p. + (c_begin_compound_stmt): Don't check c_function_name_declared_p. + * c-parse.in (STRING_FUNC_NAME, VAR_FUNC_NAME): New tokens. + (program): Call finish_fname_decls for C. + (primary): Add VAR_FUNC_NAME. + (reswords): Add slots for __FUNCTION__ et al. + (rid_to_yy): Add mappings for __FUNCTION__ et al. + (yylexname): If it's a STRING_FUNC_NAME generate the function name + now. Don't look for VAR_DECLs containing __FUNCTION__ et al. + * c-semantics.c (prune_unused_decls): Remove. + (finish_stmt_tree): Don't call prune_unused_decls. + (genrtl_decl_stmt): Don't prune unused decls here. + +2001-04-24 Nick Clifton + + * dwarf2out.c (mem_loc_descriptor): If a SYMBOL_REF is in the + constant pool, use the pool's SYMBOL_REF instead. + + * config/v850/v850.h (STRICT_ALIGNMENT): Always set, even for the + v850e. + +2001-04-23 Joseph S. Myers + + * c-convert.c (convert): When converting to a BOOLEAN_TYPE, avoid + passing nested NOP_EXPRs to fold. + +Mon Apr 23 14:32:12 CEST 2001 Jan Hubicka + + * reg-stack.c (emit_swap_insn): Do not get pass CALL_INSNs. + +2001-04-22 Mark Mitchell + + * loop.c (loop_delete_insns): Add prototype. + +2001-04-23 Phil Edwards + + * configure.in: Remove ENABLE_STD_NAMESPACE. + * config.in: Regenerated. + * configure: Regenerated. + +2001-04-22 Stan Shebs + + * config.gcc (powerpc-*-darwin*): Move the flag in xm-darwin.h + into xm_defines. + * config/rs6000/xm-darwin.h: Remove file. + +2001-04-22 Kaveh R. Ghazi + + * collect2.c (main): Use concat in lieu of xmalloc/sprintf. + (write_c_file_stat): Likewise. + + * dbxout.c (dbxout_init): Likewise. + + * profile.c (output_func_start_profiler): Likewise. + +2001-04-22 Philipp Thomas + + * ABOUT-GCC-NLS: Now that gettext 0.10.37 is out, + require it instead of the CVS version. + * cpperror.c (v_message): Put a blank before the macro + body to not confuse exgettext. + +2001-04-21 Mark Mitchell + + * flow.c (proagate_one_insn): Remove useless assignment. + * jump.c (delete_insn): Tidy. + * loop.c (try_copy_prop): When deleting an instruction with a + REG_RETVAL note, delete the entire libcall sequence. + (loop_delete_insns): New function. + * unroll.c (initial_reg_note_copy): Copy INSN_LIST notes, even if + we're not substituting into them yet. + +2001-04-21 Kazu Hirata + + * config/h8300/h8300.c (general_operand_src): Fix a comment typo. + + * config/sparc/sparc.c (sparc_flat_eligible_for_epilogue_delay): + Fix a comment typo. + * config/i960/i960.c (signed_arith_operand): Likewise. + + * calls.c (expand_call): Fix a comment typo. + +2001-04-20 Zack Weinberg + + * configure.in: Probe for times, clock, struct tms, and clock_t. + * configure, config.in: Regenerate. + * timevar.c: Replace ifdef forest in get_time with (relatively) + straightforward series of checks based on autoconf's probes. + +Fri Apr 20 12:24:50 2001 Jeffrey A Law (law@cygnus.com) + + * config/pa/som.h (NM_FLAGS): Define. + +2001-04-20 Bernd Schmidt + + * ia64.h (MD_SCHED_REORDER, MD_SCHED_REORDER2): Pass CLOCK to called + function. + * ia64-protos.h (ia64_sched_reorder): Additional arg for clock. + * ia64.c (nop_cycles_until): New function. + (prev_cycle, prev_first, last_issued): New static variables. + (ia64_sched_reorder): Additional arg for clock. + On final scheduling pass, emit extra NOPs as needed. + Set prev_first and prev_cycle. + (ia64_sched_reorder2): Pass clock arg down to ia64_sched_reorder. + (ia64_variable_issue): Set last_issued. + +2001-04-20 Alexandre Oliva + + * config/i386/i386.c (ix86_expand_int_movcc, + ix86_expand_strlensi_unroll_1): Sign-extend CONST_INTs. + +2001-04-20 Geoff Keating + + * config/rs6000/rs6000.md (ctrsi_internal1, ctrsi_internal2, + ctrsi_internal3, ctrsi_internal4, ctrsi_internal5, + ctrsi_internal6, ctrdi_internal1, ctrdi_internal2, + ctrdi_internal3, ctrdi_internal4, ctrdi_internal5, + ctrdi_internal6): In the short-branch case, this insn is only 4 + bytes long. Reported by Reza Yazdani . + +2001-04-20 Jakub Jelinek + + * reg-stack.c (check_asm_stack_operands): Issue error if "=t" resp. + "=u" is used together with "st" resp. "st(1)" clobber. + +2001-04-20 Jakub Jelinek + + * gcse.c (gcse_main): Fix comment typo. + (delete_null_pointer_check): Likewise. + (hash_scan_set): Don't consider sets with REG_EQUIV MEM notes. + * cse.c (cse_insn): Likewise. + * function.c (fixup_var_refs_insns_with_hash): The sequence is + toplevel. + +2001-04-19 Zack Weinberg + + * toplev.c: Excise all code for the undocumented -dm option. + (float_signal): Call signal just once, unconditionally. + +2001-04-19 Geoff Keating + + * fold-const.c (fold): Use first_rtl_op rather than + TREE_CODE_LENGTH when looping over parameters of a tree. + Correct strange grouping in test for evaluated SAVE_EXPR. + +Thu Apr 19 19:15:26 2001 Jeffrey A Law (law@cygnus.com) + + * config/pa/pa-linux.h (CPLUSPLUS_CPP_SPEC): Undefine. + * config/pa/pa.h (CPLUSPLuS_CPP_SPEC): Define. + + * config/pa/som.h (ASM_OUTPUT_FUNCTION_PREFIX): Truncate subspace + name at 32 total characters. + (ASM_OUTPUT_SECTION_NAME): Similarly. Also, only support placing + functions in named sections -- data items can still go into unique + sections, but they have normal names (ie $LIT$ and $DATA$). + + * config/pa/som.h (SUPPORTS_INIT_PRIORITY): SOM does not support + INIT_PRIORITY. + +2001-04-19 DJ Delorie + + * config/alpha/vms.h: Change OBJECT_SUFFIX and EXECUTABLE_SUFFIX + to TARGET_OBJECT_SUFFIX and TARGET_EXECUTABLE_SUFFIX. + * config/i386/cygwin.h: Likewise. + * config/i386/mingw32.h: Likewise. + * config/vax/vms.h: Likewise. + * config/i386/djgpp.h: Remove NO_AUTO_EXE_SUFFIX. + + * config/alpha/xm-vms.h: Change OBJECT_SUFFIX and EXECUTABLE_SUFFIX + to HOST_OBJECT_SUFFIX and HOST_EXECUTABLE_SUFFIX. + * config/i386/xm-cygwin.h: Likewise. + * config/i386/xm-djgpp.h: Likewise. + * config/i386/xm-mingw32.h: Likewise. + * config/vax/xm-vms.h: Likewise. + + * mkdeps.c (deps_add_default_target): Use TARGET_OBJECT_SUFFIX + instead of OBJECT_SUFFIX. + * collect2.c (find_a_file): Look for files matching the extension + HOST_EXECUTABLE_SUFFIX instead of EXECUTABLE_SUFFIX. + * gcc.c (DEFAULT_SWITCH_CURTAILS_COMPILATION): Depend on + TARGET_EXECUTABLE_SUFFIX. + (find_a_file): Use HOST_EXECUTABLE_SUFFIX. + (make_relative_prefix): Likewise. + (convert_filename): Use TARGET_ suffixes throughout. Remove + NO_AUTO_EXE_SUFFIX. + (process_command): Likewise. + (do_spec_1): Likewise. + * java/lang.c (init_parse): Likewise. + + * gcc.texi : Document four new options matching the pattern + (HOST|TARGET)_(OBJECT|EXECUTABLE)_SUFFIX. Remove documentation + for deleted macros OBJECT_SUFFIX and EXECUTABLE_SUFFIX. Remove + documentation for NO_AUTO_EXE_SUFFIX. + +2001-04-19 Mark Mitchell + + * toplev.h (struct lang_hooks): Allow decode_option to indicate + that language-independent processing should not be done. + * toplev.c (main): Adjust accordingly. + + * rtl.texi (jump_insn): Expand on JUMP_LABEL documentation. + * loop.c (load_mems): Handle a NULL JUMP_LABEL for a JUMP_INSN. + + * mips.md (reload_outputdi): Require that operand0 be a + general_operand. + +2001-04-19 Jakub Jelinek + + * invoke.texi (-Wshadow): Clarify. + +2001-04-18 Mark Mitchell + + * loop.c (load_mems): Examine all the instructions in the loop + before concluding that all jumps branch to the first instruction + after the loop. + +Wed Apr 18 20:32:03 2001 Christopher Faylor + + * config/i386/xm-cygwin.h (CPP_SPEC): Fix typo. + +2001-04-18 Jakub Jelinek + + * cpp.texi (-Wwhite-space): Remove. + (-Wall): -Wall does not imply -Wwhite-space. + +2001-04-17 Zack Weinberg + + * dbxout.c (dbxout_init): If DBX_OUTPUT_GCC_MARKER is defined, + use it instead of blindly generating a .stabs. + * xcoffout.h: Define DBX_OUTPUT_GCC_MARKER so we put the type + in the right place. + * xcoffout.c: Don't bother defining default for N_CATCH. + (UNKNOWN_STAB): Use internal_error. + (stab_to_sclass): Remove now-unnecessary aborts. + Remove #if 0'ed case N_BROWS. Add #ifdef N_OPT block. + +Tue Apr 17 21:41:11 2001 Jeffrey A Law (law@cygnus.com) + + * jump.c (mark_all_labels): Canonicalize the tail recursion + label attached to CALL_PLACEHOLDER insns. + +2001-04-17 Kaveh R. Ghazi + + * output.h (dump_flow_info, free_basic_block_vars, + which_alternative): Delete redundant prototypes. + + * rtl.h (bss_section): Likewise. + +2001-04-17 Loren J. Rittle + + * dbxout.c (N_OPT): Define if not available from + +2001-04-17 John David Anglin + + * vax.h (PROMOTE_PROTOTYPES): Define for compatibility with system + libraries and native K&R compilers. + +2001-04-16 Kaveh R. Ghazi + + * c-typeck.c (convert_arguments): Don't check for width changes + with -Wtraditional. + + * invoke.texi (-Wtraditional): Update documentation. + +2001-04-16 Zack Weinberg + + * toplev.c (output_lang_identify): Delete. + (compile_file): Don't call ASM_IDENTIFY_GCC or ASM_IDENTIFY_LANGUAGE. + Don't generate gcc2_compiled. label. Don't emit a nop if profiling. + If IDENT_ASM_OP is defined, emit an .ident "GCC (GNU) " + after calling ASM_FILE_END. + + * dbxout.c (dbxout_init): Don't call ASM_IDENTIFY_GCC_AFTER_SOURCE. + Instead, unconditionally emit an N_OPT stab with string equal + to STABS_GCC_MARKER, which defaults to "gcc2_compiled." + + * defaults.h: Don't provide default for ASM_IDENTIFY_LANGUAGE. + + * config/dbxelf.h, config/freebsd.h, config/nextstep.h, + config/psos.h, config/ptx4.h, config/1750a/1750a.h, + config/alpha/alpha.h, config/alpha/elf.h, config/arc/arc.h, + config/arm/aof.h, config/arm/coff.h, config/arm/elf.h, + config/arm/linux-elf.h, config/avr/avr.h, config/d30v/d30v.h, + config/dsp16xx/dsp16xx.h, config/h8300/h8300.h, + config/i370/i370.h, config/i386/beos-elf.h, + config/i386/osf1elf.h, config/i386/osfrose.h, + config/ia64/sysv4.h, config/m68k/3b1.h, config/m68k/auxgas.h, + config/m68k/crds.h, config/m68k/hp320.h, config/m68k/m68kv4.h, + config/m68k/mot3300.h, config/m68k/news.h, config/m68k/sgs.h, + config/m68k/tower-as.h, config/mcore/mcore-elf.h, + config/mips/iris6.h, config/mips/osfrose.h, + config/mips/sni-svr4.h, config/pa/som.h, config/pdp11/pdp11.h, + config/sparc/sp64-elf.h: + Delete definitions of any or all of: ASM_IDENTIFY_GCC, + ASM_IDENTIFY_GCC_AFTER_SOURCE, and ASM_IDENTIFY_LANGUAGE. + + * config/elfos.h, config/freebsd.h, config/linux.h, + config/alpha/elf.h, config/arm/linux-elf.h, config/i386/i386elf.h, + config/i386/ptx4-i.h, config/mips/gnu.h, config/mips/linux.h, + config/sparc/linux.h, config/sparc/linux64.h: Delete definitions + of ASM_FILE_START which merely emit a .version directive. Delete + definitions of ASM_FILE_END which merely emit an .ident directive. + + * config/avr/avr.h, config/vax/vax.h: Delete definition of + ASM_IDENTIFY_GCC and move part of its logic into + ASM_FILE_START. + + * config/i386/att.h, config/i386/gas.h, config/i386/linux.h, + config/sparc/linux-aout.h: Don't emit .version directive in + ASM_FILE_START. + + * config/i386/dgux.c, config/m88k/m88k.c, config/sh/sh.c + (output_file_start): Correct comment. + + * config/i386/osfrose.h: Don't emit trailing .ident directive. + * config/m68k/mot3300.h: Override STABS_GCC_MARKER to "gcc2_compiled%" + to match gdb. + * config/pa/lib2funcs.asm: Delete gcc_compiled. label. + * config/rs6000/aix.h: Correct comment. + + * config/i386/i386afe.h: Delete. + * config.gcc: Remove references to i386afe.h. + + * tm.texi: Delete documentation of ASM_IDENTIFY_GCC. The + other macros deleted by this patch were undocumented. + +Mon Apr 16 08:03:48 2001 Jeffrey A Law (law@cygnus.com) + + * pa.md (reload_outdi): Operand 0 must be a non hard register. + + * pa.c (secondary_reload_class): SAR<->FP copies require a + secondary register. + + * install.texi (mips-mips-bsd): Update list of functions + required to include memmove. + * tm.texi (TARGET_MEM_FUNCTIONS): Update list of implicitly + used functions to include memmove. + +2001-04-15 Toon Moene + + * i386.md (sqrtdf2): SFmode should be DFmode. + +2001-04-15 Alexandre Oliva + + * gcse.c (compute_ld_motion_mems): ASM outputs aren't moveable. + (find_moveable_store): Likewise. + +2001-04-15 Jim Wilson + + * function.c (expand_function_end): Handle PARALLEL real_decl_rtl. + +Sat Apr 14 16:24:19 CEST 2001 Jan Hubicka + + * i386.md (ashldi3_1_rex64): Add 'J' to the constraints + (ashrdi3_1_rex64): Change 'n' constraint to 'J'. + +2001-04-14 Alexandre Oliva + + * config/mn10300/mn10300.md (cmpsi): Tell reload to disregard the + first alternative. + +2001-04-14 Alan Modra + + * pa.c (force_mode): New function. + (emit_move_sequence): Use it instead of generating new rtx_REGs. + +2001-04-13 Jim Wilson + + * config/ia64/ia64.c (ia64_expand_epilogue): Emit alloc if sibcall_p. + (first_instruction): New static variable. + (rtx_needs_barrier): Return 1 for alloc. + (init_insn_group_barriers): Set first_instruction. + (rws_sum): Delete duplicate definition. + (group_barrier_needed_p): Return 0 when first_instruction true. + (safe_group_barrier_needed_p): Save and restore first_instruction + around group_barrier_needed_p call. + +Fri Apr 13 21:40:28 2001 Loren J. Rittle + + * expr.h (enum libfunc_index): Add LTI_memmove. + (memmove_libfunc): Define macro. + * optabs.c (init_optabs): Initialize memmove_libfunc. + * expr.c (expand_assignment): Use memmove_libfunc instead of + memcpy_libfunc. + +2001-04-13 Alan Modra + + * pa.h (GO_IF_LEGITIMATE_ADDRESS): Disallow PIC LO_SUM + fp mode addresses. + +2001-04-13 Kaveh R. Ghazi + + * Makefile.in (reg-stack.o): Depend on reload.h. + (insn-attrtab.o): Depend on flags.h. + + * genattrtab (main): Include flags.h in insn-attrtab.c. + + * reg-stack.c: Include reload.h. + + * sparc.h (flag_pic): Delete redundant declaration. + + * output.h (flag_pic): Likewise. + + * tree.h (pedantic): Likewise. + +2001-04-13 Kaveh R. Ghazi + + * Makefile.in (toplev.o, jump.o, regmove.o): Depend on reload.h + + * jump.c, regmove.c, toplev.c: Include reload.h. + + * reload.h (reload_cse_regs): Declare. + + * rtl.h (find_equiv_reg, operands_match_p, safe_from_earlyclobber, + reload_cse_regs, init_reload, mark_home_live, reload, + init_caller_save): Delete redundant prototypes. + +2001-04-13 Kaveh R. Ghazi + + * Makefile.in (ssa.o, regclass.o): Depend on $(EXPR_H). + + * regclass.c, ssa.c: Include expr.h. + + * rtl.h (memory_address, force_reg, emit_queue, emit_move_insn, + gen_move_insn): Delete redundant declarations. + +2001-04-13 Franz Sirl + + * Makefile.in (CFLAGS, BOOT_CFLAGS): Partly revert 2000-10-27 patch. + (stage1_build): Instead pass down STAGE1_CFLAGS here. Pass down + MAKEINFO and MAKEINFOFLAGS too. + (stage4_build): Correctly order -B flags. + +2001-04-13 Alan Modra + + * pa.c (hppa_init_pic_save): Set rtx_unchanging for + PIC_OFFSET_TABLE_SAVE_RTX. + (zdepi_cint_p): Describe zdepi insn. + Formatting and white space fixes throughout file. + + * pa.c (uint32_operand): Don't use long constant >= 2^32. + (emit_move_sequence): Use HOST_WIDE_INT constants. Don't worry + about 32->64 bit sign extension if 32 bit HOST_WIDE_INTs. + (compute_movstrsi_length): Make `align' unsigned to avoid warning. + (output_64bit_and): Use plain `int's for shift counts. + (output_64bit_ior): Likewise. + (function_arg_partial_nregs): Use unsigned vars to avoid warnings. + * pa.h (CONST_OK_FOR_LETTER_P): Use HOST_WIDE_INT constants for case + `N', and simplify. + + * pa-hpux10.h (NEW_HP_ASSEMBLER): Define to 1. + * pa-hpux11.h (NEW_HP_ASSEMBLER): Likewise. + * pa.h (LEGITIMATE_CONSTANT_P) Collapse two defines depending on + NEW_HP_ASSEMBLER into one. Kill warnings. + + * pa-gas.h: Delete file. + * config.gcc: Match `parisc' as well as `hppa' for cpu_type=pa. + Add new targets hppa*64*-*-linux* and parisc*64*-*-linux*. Update + hppa*-*-linux*. For all pa targets, remove pa/gas.h from tm_file, + instead setting MASK_GAS | MASK_JUMP_IN_DELAY in target_cpu_default2. + + * config/pa/mill32.S: New file. + * config/pa/mill64.S: New file. + * config/pa/t-linux (LIBGCC1, CROSS_LIBGCC1, LIB1ASMFUNCS, + LIB1ASMSRC, CRTSTUFF_T_CFLAGS_S, TARGET_LIBGCC2_CFLAGS): Define. + * config/pa/t-linux64: New file. + * config/pa/t-pa64 (CROSS_LIBGCC1): Change to libgcc1-asm.a + (LIB1ASMFUNCS, LIB1ASMSRC): Define. + (TARGET_LIBGCC2_CFLAGS): Add -Dpa64=1 -DELF=1. + + * elfos.h (SELECT_SECTION): Undef before defining. + * pa-linux.h (LINUX_DEFAULT_ELF, PTRDIFF_TYPE, CPP_SPEC): Remove. + (LIB_SPEC): Remove -lmilli. + (DBX_REGISTER_NUMBER): Remove. + (PREFERRED_DEBUGGING_TYPE, DWARF2_ASM_LINE_DEBUG_INFO, + (DWARF2_UNWIND_INFO, ASM_SPEC, LINK_SPEC, FUNCTION_OK_FOR_SIBCALL, + NO_PROFILE_COUNTERS, SELECT_RTX_SECTION, INCOMING_RETURN_ADDR_RTX, + DWARF_FRAME_RETURN_COLUMN, STRING_ASM_OP, TEXT_SECTION_ASM_OP, + DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP, ASM_FILE_START, + ASM_OUTPUT_DEF, ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT, + ASM_OUTPUT_LABEL, ASM_GLOBALIZE_LABEL, ASM_DECLARE_FUNCTION_NAME, + TARGET_GAS): Define. + * pa.c (output_arg_descriptor): Disable for TARGET_ELF32. + (function_arg): If TARGET_ELF32, pass fp args in both general and fp + regs if we don't have a prototype. + * pa.md (canonicalize_funcptr_for_compare): Not for TARGET_ELF32. + * pa.h (TARGET_ELF32): Default to 0 if undefined. + (EH_RETURN_DATA_REGNO, EH_RETURN_STACKADJ_RTX, + EH_RETURN_HANDLER_RTX): Define. + * pa32-regs.h (DBX_REGISTER_NUMBER): Remove unnecessary test. + (DWARF_FRAME_REGNUM): Define. + * pa64-regs.h (DWARF_FRAME_REGNUM): Define. + * pa32-linux.h: New file. + * pa64-linux.h: New file. + + * pa-64.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define. + (ASM_OUTPUT_DOUBLE_INT): Format, protect macro with do..while. + (LINK_SPEC, LIB_SPEC, MD_EXEC_PREFIX, MD_STARTFILE_PREFIX, + NEW_HP_ASSEMBLER, ASM_FILE_START, OBJECT_FORMAT_ELF, + DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_FORMAT, + DWARF2_ASM_LINE_DEBUG_INFO, USE_CONST_SECTION, CONST_SECTION_ASM_OP, + CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP, + FINI_SECTION_ASM_OP, EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, + READONLY_DATA_SECTION, CONST_SECTION_FUNCTION, CTORS_SECTION_FUNCTION, + DTORS_SECTION_FUNCTION, ASM_OUTPUT_SECTION_NAME, MAKE_DECL_ONE_ONLY, + UNIQUE_SECTION_P, UNIQUE_SECTION, INT_ASM_OP, ASM_OUTPUT_CONSTRUCTOR, + ASM_OUTPUT_DESTRUCTOR, TYPE_ASM_OP, SIZE_ASM_OP, ASM_WEAKEN_LABEL, + TYPE_OPERAND_FMT, ASM_DECLARE_RESULT): Move to.. + * pa64-hpux.h: New file. + (ASM_FILE_START): Correct typo. + (PREFERRED_DEBUGGING_FORMAT): Rename to PREFERRED_DEBUGGING_TYPE. + * config.gcc: Modify for above. + +Fri Apr 13 00:09:22 EDT 2001 John Wehle (john@feith.com) + + * jump.c (jump_optimize_1): Don't delete dead stores here. + * toplev.c (rest_of_compilation): Call delete_trivially_dead_insns + prior to running jump optimize before cse2. + +2001-04-12 Richard Henderson + + * Makefile.in (regmove.o): Depend on except.h. + * regmove.c: Include it. + +2001-04-12 Stan Shebs + + * objc/objc-act.c: Remove all code ifdefed with the never-used + macro OBJC_INT_SELECTORS. + * config/d30v/d30v.h: Remove commented-out ref to OBJC_INT_SELECTORS. + * tm.texi: Remove doc for OBJC_INT_SELECTORS. + +Thu Apr 12 18:13:37 2001 Rodney Brown + + * config/pa/quadlib.c: Add prototypes. + +2001-04-12 Kaveh R. Ghazi + + * bitmap.h (debug_bitmap): Delete redundant prototype. + + * rtl.h (get_frame_size): Likewise. + +2001-04-12 Jim Wilson + + * config/ia64/ia64.md (extendsfdf2, extendsftf2, extenddftf2): Simplify + to just emit an fnorm. + +2001-04-12 Kaveh R. Ghazi + + * c-common.h (truthvalue_conversion, type_for_mode, + type_for_size): Delete redundant declarations. + + * c-lex.h (is_class_name): Likewise. + + * c-tree.h (pedantic, convert, getdecls, gettags, + global_bindings_p, init_decl_processing, insert_block, + maybe_build_cleanup, poplevel, print_lang_decl, + print_lang_identifier, print_lang_type, pushdecl, pushlevel, + set_block, incomplete_type_error, build_function_call, + lvalue_or_else, mark_addressable): Likewise. + + * expr.h (expand_tree_builtin): Likewise. + +2001-04-12 Mark Mitchell + + * invoke.texi: Document --param max-gcse-memory. + +2001-04-12 Kaveh R. Ghazi + + * configure.in (errno): Check for declaration. + * configure, config.in: Regenerated. + + * system.h (errno): Only declare if not already done. + +2001-04-12 Alexandre Oliva + + * recog.c (general_operand, immediate_operand, + nonmemory_operand): Require CONST_INTs to be sign-extended + values for their modes. + +2001-04-12 Alexandre Oliva + + * expmed.c (store_bit_field): Truncate CONST_INTs. + (expand_mult_highpart, expand_divmod): Likewise. + * expr.c (convert_modes, store_field): Likewise. + * integrate.c (expand_inline_function): Use promote_mode() to + determine whether to convert_modes() an argument as signed + or unsigned. + * optabs.c (expand_binop): Get CONST_INT operands + sign-extended for their appropriate modes. + * stmt.c (emit_case_nodes): Convert node values to the + appropriate mode. + (expand_end_case): Convert minval and range to the appropriate + mode. + * unroll.c (loop_iterations): Truncate abs_diff to the mode of + the iteration variable. + * varasm.c (immed_double_const): Don't require words to be + narrower than host wide ints to properly sign-extend + CONST_INTs. + +2001-04-12 kaz Kojima + + * sh.md (builtin_setjmp_receiver): New expander. + +2001-04-12 David Edelsohn + + * config/rs6000/rs6000.c (rs6000_emit_move): Do not + special-case HOST_BITS_PER_WIDE_INT != 32. Use same criteria + for generating CONST_INT and CONST_DOUBLE. + +2001-04-12 Alexandre Oliva + + * config/rs6000/rs6000.c (logical_operand): CONST_INTs are + already sign-extended. + (rs6000_emit_prologue): Make register iterator signed. + (rs6000_emit_epilogue): Likewise. + * config/rs6000/rs6000.md (addsi3, adddi3): Sign-extend high + and low. + (movsf split, movdf split): Sign-extend CONST_INTs. + (movdi splits): Likewise. + +2001-04-12 Kelley Cook + + * config-lang.in (lang_dirs): Add in zlib. + +2001-04-11 Alexandre Oliva + + * config/i386/i386.md: Apply trunc_int_for_mode() to GEN_INT + operands that make it to RTL. + +2001-04-11 Stan Shebs + + Add Darwin (Mac OS X kernel) native support. + * config.gcc (powerpc-*-darwin*): Add native bits. + * config/darwin.c: New file, generic Darwin support functions. + * config/darwin.h: New file, generic Darwin definitions. + * config/darwin-protos.h: New file, generic Darwin prototypes. + * rs6000/darwin.h: New file, Darwin for PowerPC. + * rs6000/t-darwin: New file, Darwin makefile fragment. + * rs6000/rs6000.h (OBJECT_MACHO): New macro. + (TARGET_MACHO): Ditto. + (rs6000_abi): Add ABI_DARWIN. + (RS6000_REG_SAVE): Add ABI_DARWIN case. + (RS6000_SAVE_AREA): Ditto. + (FP_ARG_MAX_REG): Ditto. + (RETURN_ADDRESS_OFFSET): Ditto. + * rs6000/rs6000.c (rs6000_legitimize_address): Add TARGET_MACHO + cases. + (rs6000_emit_move): Add ABI_DARWIN cases. + (print_operand): Ditto. + (first_reg_to_save): Ditto. + (rs6000_stack_info): Ditto, also align stack by 16 instead of 8. + (debug_stack_info): Ditto. + (rs6000_emit_prologue): Ditto. + (rs6000_emit_epilogue): Ditto. + (output_profiler_hook): Ditto. + (output_function_profiler): Ditto. + (rs6000_add_gc_roots): Call machopic_add_gc_roots if TARGET_MACHO. + (output_mi_thunk): Add TARGET_MACHO case. + (add_compiler_stub): Ditto. + (output_compiler_stub): Ditto. + (no_previous_def): Ditto. + (output_call): Ditto. + (machopic_output_stub): Ditto. + (rs6000_machopic_legitimize_pic_address): Ditto. + (toc_section): Ditto. + * rs6000/rs6000.md (addsi3_high): New TARGET_MACHO pattern. + (macho_high): Ditto. + (macho_low): Ditto. + (movsi_low): Ditto. + (load_macho_picbase): Ditto. + (call): Add TARGET_MACHO case to modify function. + (call_value): Ditto. + (call_nonlocal_sysv): Add ABI_DARWIN case. + (call_value_nonlocal_sysv): Ditto. + * rs6000/rs6000-protos.h (rs6000_machopic_legitimize_pic_address): + Add prototype. + (machopic_output_stub): Ditto. + * ginclude/stddef.h: Test _BSD_WCHAR_T_DEFINED_. + +2001-04-11 Mark Mitchell + + * dwarf2out.c (modified_type_die): Don't create new types here. + * tree.h (get_qualified_type): New function. + (build_qualified_type): Adjust comment. + * tree.c (get_qualified_type): New function. + (build_qualified_type): Use it. + +2001-04-11 Kaveh R. Ghazi + + * cpp.texi (-Wtraditional): Update description. + + * invoke.texi (-Wtraditional): Likewise. + +2001-04-11 Jim Wilson + + * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Return 128 if argument + requires more than 64 bits of alignment. + +2001-04-11 Neil Booth + + * cpplib.c (do_line): Sanity check iff enable checking. + +2001-04-11 Richard Henderson + + * Makefile.in (insn-recog.o): Depend on toplev.h. + (insn-emit.o, doloop.o): Likewise. + * genrecog.c, genemit.c: Include toplev.h in generated file. + * doloop.c: Include toplev.h. + +2001-04-11 Mark Mitchell + + * Makefile.in (gcse.o): Depend on params.h. + * gcse.c: Include params.h. + (gcse_main): Don't do GCSE if doing so will take inordinate + amounts of memory. + * params.def (PARAM_MAX_GCSE_MEMORY): New parameter. + * params.h (MAX_GCSE_MEMORY): New macro. + +2001-04-11 Kaveh R. Ghazi + + * Makefile.in (insn-output.o): Depend on $(EXPR_H). + + * genoutput.c (output_prologue): Include expr.h in insn-output.c. + +2001-04-11 Kaveh R. Ghazi + + * output.h (assemble_real): Declare if REAL_VALUE_TYPE is defined. + + * real.h (ereal_atof, real_value_truncate, target_isnan, + target_isinf, target_negative, assemble_real, debug_real): Delete + redundant prototypes. + + * Makefile.in (ifcvt.o): Depend on toplev.h. + + * c-semantics.c: Include expr.h. + + * ifcvt.c: Include toplev.h. + + * expr.h (rtx_equal_p): Delete prototype. + + * rtl.h (exact_log2_wide, floor_log2_wide, permalloc, + protect_from_queue, gen_jump, gen_beq, gen_bge, gen_ble, + eliminate_constant_term, expand_complex_abs, find_single_use, + make_tree, init_expr_once, init_optabs, supports_one_only): + Likewise. + + * tree.h (exact_log2_wide, floor_log2_wide, expand_null_return, + rest_of_type_compilation, emit_queue, do_pending_stack_adjust, + expand_assignment, store_expr, emit_line_note_after, + emit_line_note_force, split_specs_attrs, label_rtx): Likewise. + + * toplev.h (exact_log2_wide, floor_log2_wide): Add prototype. + + * sparc-protos.h: Delete redundant prototypes. + +2001-04-11 Vladimir Makarov + + * reload.c (push_reload): Add condition missed in SUBREG byte + offset patch. + +Wed Apr 4 00:28:23 2001 Rainer Orth + + * sparc/sol2-sld-64.h (STARTFILE_SPEC): Added missing blank. + +Wed Apr 11 14:06:10 CEST 2001 Jan Hubicka + + * i386.md (floatsisf_sse): Fix output template + * i386.c (ix86_expand_fp_movcc) + + * reg-stack.c (emit_pop_insn): Handle complex modes. + (move_for_stack_reg): Emit proper move mode. + (subst_stack_regs_pat): Handle complex modes. + +2001-04-11 Jakub Jelinek + + * cpplex.c (_cpp_lex_token): Only warn if -Wcomment. + +2001-04-10 Richard Henderson + + * libgcc2.h (__terminate_func_ptr): Remove typedef. + (__pure_virtual, __terminate, __terminate_set_func, + __default_terminate, __throw_type_match, __empty, + __get_eh_context, __get_eh_info, __get_dynamic_handler_chain, + __eh_rtime_match, __unwinding_cleanup, __rethrow, + __sjthrow, __sjpopnthrow, __eh_alloc, __eh_free): + Remove prototypes of deleted functions. + +2001-04-10 Kaveh R. Ghazi + + * c-typeck.c (convert_arguments): -Wtraditional now activates + -Wconversion warnings, except for changes in signed-ness. + Detect complex<->int & int<->complex conversions as well. + + * invoke.texi (-Wtraditional): Document it. + +Tue Apr 10 17:45:50 2001 Richard Kenner + + * gcse.c (update_ld_motion_stores): Don't use variable I for an insn. + * flow.c (set_block_for_new_insns): Remove needless cast and + properly check for unset block number. + +2001-04-10 Andrew MacLeod + + * function.c (purge_single_hard_subreg_set): Only check REGNO if + the subreg was a hard register. Pseudos are left as subregs. + +2001-04-09 Franz Sirl + + * Makefile.in (LIB2FUNCS_STATIC_EXTRA): New macro. + (LIB2ADD_ST): New macro, pass it to mklibgcc. + * mklibgcc.in (libgcc2_st_objs): New variable, set it from LIB2ADD_ST. + (libgcc_st_objs): New, set from libgcc2_st_objs. Use it for libgcc.a. + * config/rs6000/t-ppccomm (LIB2FUNCS_STATIC_EXTRA): New macro. + +2001-04-09 Bo Thorsen + + * config/i386/i386.md: "TARGET_64BIT && TARGET_64BIT": Removed one. + +2001-04-09 Andrew MacLeod + + * output.h (set_block_num): Missed it earlier, remove deprecated + prototype. + +2001-04-09 Andrew MacLeod + + * gcse.c (oprs_unchanged_p): Pass basic_block to load_killed_in_block_p. + (load_killed_in_block_p): Change bb parameter from int to basic_block. + (oprs_not_set_p): Pass basic_blocks instead of ints as parameters. + (handle_rd_kill_set): Change bb parameter from int to basic_block. + (compute_kill_rd): Pass basic_blocks instead of ints as parameters. + (expr_killed_p): Change bb parameter from int to basic_block, pass + basic_blocks instead of ints as parameters. + (compute_ae_kill): Pass basic_blocks instead of ints as parameters. + (expr_reaches_here_p_work, expr_reaches_here_p): Change bb parameter + from int to basic_block, pass basic_blocks instead of ints as parms. + (pre_expr_reaches_here_p_work, pre_expr_reaches_here_p): Change bb + parameter from int to basic_block, pass basic_blocks instead of ints. + (process_insert_insn): Pass basic_blocks instead of ints as parameters. + (insert_insn_end_bb): Change bb parameter from int to basic_block, + pass basic_blocks instead of ints. + (pre_edge_insert, pre_insert_copy_insn, pre_insert_copies): Pass + basic_blocks instead of ints as parameters. + (pre_delete): Pass basic_blocks instead of ints as parameters. + (hoist_expr_reaches_here_p): Change bb parameter from int to + basic_block, pass basic_blocks instead of ints. + (hoist_code): Pass basic_blocks instead of ints as parameters. + (reg_set_info, store_ops_ok, store_killed_after, store_killed_before): + Change bb parameter from int to basic_block. + (build_store_vectors): Pass basic_blocks instead of ints as parameters. + (insert_insn_start_bb): Change bb parameter from int to basic_block, + pass basic_blocks instead of ints. + (insert_store): Pass basic_blocks instead of ints as parameters. + (replace_store_insn, delete_store): Change bb parameter from int to + basic_block, pass basic_blocks instead of ints. + (store_motion): Pass basic_blocks instead of ints as parameters. + +2001-04-09 Andrew MacLeod + + * basic-block.h (set_new_block_for_insns): New Prototype. + (set_block_num): Delete prototype. + * flow.c (set_block_num): Remove obsolete function. + (set_block_for_new_insns): Set BB for single or multiple insns. + * gcse.c (handle_avail_expr): Use set_block_for_new_insns. + (process_insn_end_bb): Use set_block_for_new_insns or + set_block_for_insn instead of set_block_num. + (pre_insert_copy_insn): Use set_block_for_new_insns. + (update_ld_motion_stores): Use set_block_for_new_insns. + (insert_insn_start_bb): Use set_block_for_new_insns. + (replace_store_insn): Use set_block_for_new_insns. + +2001-04-09 Andrew MacLeod + Jeff Law + + * alias.c (get_addr): Externalize. + (canon_true_dependence): New function. Behaves like true_dependance + except it already assumes a MEM has been canonicalized. + * flags.h (flag_gcse_lm, flag_gcse_sm): New optimization flags. + * gcse.c (struct ls_expr): Add load/store expressions structure. + (modify_mem_list, canon_modify_mem_list): New variable. + (gcse_main): Initialize & finalize alias analysis. Use enhanced + load motion and store motion if requested. + (alloc_gcse_mem): Allocate space for modify_mem_list array. + (free_gcse_mem): Free the modify_mem_list array. + (oprs_unchanged_p): Use load_killed_in_block_p. + (gcse_mems_conflict_p, gcse_mem_operand): New variables. + (mems_conflict_for_gcse_p): New function. Don't kill loads + with stores to themselves if its in the load/store expression list. + (load_killed_in_block_p): New function. + (canon_list_insert): New Function. + (record_last_mem_set_info): Keep a list of all instructions which + can modify memory for each basic block. + (compute_hash_table, reset_opr_set_tables): Clear modify_mem_list. + (oprs_not_set_p): Use load_killed_in_block_p. + (mark_call, mark_set, mark_clobber): Use record_last_mem_set_info. + (expr_killed_p): Use load_killed_in_block_p. + (compute_transp): Do not pessimize memory references. + (pre_edge_insert): Update stores for a load motion expression. + (one_pre_gcse_pass): Check loads/stores for extra load motion. + (ldst_entry): Find or create a ldst_expr structure. + (free_ldst_entry): Free memory for an individual item. + (free_ldst_mems): Free entire load/store expression list. + (print_ldst_list): Print debug info. + (find_rtx_in_ldst): Try to find an rtx expression in the ldst list. + (enumerate_ldsts): Assign integer values to each entry in list. + (first_ls_expr): First expression in the list. + (next_ls_expr): Next expression in the list. + (simple_mem): Check if expression qualifies for ld/st expression list. + (invalidate_any_buried_refs): Remove from expression list if its + used in some other way we don't understand. + (compute_ld_motion_mems): Find all potential enhanced load motion + expression. + (trim_ld_motion_mems): Remove any expressions which are invalid. + (update_ld_motion_stores): Copy store values to registers for loads + which have been moved. + (regvec, st_antloc, num_store): New global statics. + (reg_set_info): Marks registers as set. + (store_ops_ok): Verfies registers expressions are valid in a block. + (find_moveable_store): Look for moveable stores in a pattern. + (compute_store_table): Find stores in a function worth moving, maybe. + (load_kills_store): Check dependence of a load and store. + (find_loads): Find any loads in a pattern. + (store_killed_in_insn): Check if a store is killed in an insn. + (store_killed_after): Check is store killed after an insn in a block. + (store_killed_before): Check is store killed before an insn in a block. + (build_store_vectors): Generate the antic and avail vectors. + (insert_insn_start_bb): Insert at the start of a BB, update BLOCK_HEAD. + (insert_store): Add a store to an edge. + (replace_store_insn): Replace a store with a SET insn. + (delete_store): Delete a store insn. + (free_store_memory): Free memory. + (store_motion): Perform store motion. + * invoke.texi: Add documentation for -fcse-lm and -fgcse-sm. + * rtl.h (get_addr, canon_true_dependence): Add prototypes. + * toplev.c (flag_gcse_lm, flag_gcse_sm): New Variables. + (f_options): Add gcse-lm and gcse-sm. + +Mon Apr 9 16:18:03 CEST 2001 Jan Hubicka + + * i386.c (expand_fp_movcc): Fix condition reversal code. + + * i386.c (ix86_register_move_cost): Fix handling of reformating penalty + * i386.h (INTEGER_CLASS_P, MAYBE_INTEGER_CLASS_P): New. + (CLASS_MAX_NREGS): Use it. + + * i386.h (HARD_REGNO_NREGS): Handle properly TF and TCmodes on 64bit; + handle properly complex values. + (CLASS_MAX_NREGS): Likewise; update comment. + +2001-04-05 Bernd Schmidt + + * ia64.c (ia64_flag_schedule_insns2): New variable. + (ia64_override_options): Initialize it. Clear + flag_schedule_insns_after_reload. + (ia64_reorg): Only do scheduling if ia64_flag_schedule_insns2. + +Mon Apr 9 15:09:13 CEST 2001 Jan Hubicka + + * i386.md (truncdfsf2_*): Add i387->int/sse reg alternatives; + Do not require source to match destination anymore; + Add abort to the nontrivial cases that should be handled by split. + (fix_trunc?fdi): Add SSE case for x86_64. + (floatdi?f): Likewise. + (floatdi?f_sse): New. + (fix_trunc?fdi_sse): New. + +2001-04-09 Richard Sandiford + + * dwarfout.c (DEBUG_ARANGES_BEGIN_LABEL): New label. + (DEBUG_ARANGES_END_LABEL): Ditto. + (dwarfout_init): Generate length and version fields at the start + of the .debug_aranges info. Insert DEBUG_ARANGES_BEGIN_LABEL + after the length field. + (dwarfout_finish): Insert DEBUG_ARANGED_END_LABEL at the end of + the .debug_aranges info. + +Sun Apr 8 00:43:27 CEST 2001 Jan Hubicka + + * i386.c (call, call_value): Make sure that resulting call_insn + does have proper second operand. + +Sun Apr 8 22:50:49 2001 Christopher Faylor + + * config/i386/xm-cygwin.h (GET_ENV_PATH_LIST): Eliminate obsolete + function. Remove include of sys/cygwin.h. + +Sun Apr 8 22:20:27 2001 Christopher Faylor + + * config/i386/cygwin.h (STARTFILE_SPEC): search */lib/w32api by default. + (CPP_SPEC): Always search */include/w32api for header files. + (ASM_OUTPUT_SECTION_NAME): Avoid testing NULL DECL. + (LINK_SPEC): Add "cyg" to the library search prefixes. + +2001-04-08 Philip Blundell + + * config/arm/arm.h (ASM_OUTPUT_LABELREF): Use asm_fprintf. + +2001-04-08 Neil Booth + + * cpperror.c (print_location): Don't special case . + (_cpp_begin_message): Handle WARNING_SYSHDR the same as + WARNING, but we don't check if we're in system headers. + * cpplib.h (enum error_type): WARNING_SYSHDR: New. + * cpplib.c (do_warning): Warn in system headers. + +2001-04-07 Mumit Khan + + * mbchar.c: Include config.h first. + +2001-04-07 Zack Weinberg + + * config.gcc: Set default for xmake_file at top, not bottom. + Change places that set xmake_file to "none" to set to the + empty string instead, or remove them entirely if there is no + default xmake_file for this cpu_type. Remove references to + deleted files. + + * config/x-lynx, config/convex/x-convex, config/elxsi/x-elxsi, + config/i386/x-isc, config/i386/x-isc3, config/i386/x-ncr3000, + config/i386/x-next, config/i386/x-sco, config/i386/x-sysv3, + config/i386/x-vsta, config/i860/x-sysv4, config/m68k/x-amix, + config/m68k/x-apollo68, config/m68k/x-ccur, config/m68k/x-crds, + config/m68k/x-hp2bsd, config/m68k/x-mot3300, config/m68k/x-mot3300-gas, + config/m68k/x-tower, config/m88k/x-sysv4, config/mips/x-dec-osf1, + config/mips/x-sni-svr4, config/mips/x-ultrix, config/romp/x-mach, + config/romp/x-romp, config/rs6000/x-beos, config/rs6000/x-lynx, + config/rs6000/x-mach, config/rs6000/x-sysv4, config/sparc/x-sysv4: + Delete. + + * config/a29k/x-unix, config/i386/x-aix, config/i386/x-osf1elf, + config/i386/x-osfrose, config/m68k/x-dpx2, config/mips/x-iris3, + config/mips/x-mips, config/mips/x-osfrose, config/mips/x-sony, + config/mips/x-sysv, config/rs6000/x-aix31: + Just set CLIB to -lld or -lmld, as appropriate. + + * config/arm/x-riscix, config/i370/x-oe, config/i386/x-dgux, + config/i386/x-sco4, config/i386/x-sco5, config/m68k/x-hp320, + config/m68k/x-hp320g, config/m68k/x-next, config/m88k/x-dgux, + config/mips/x-iris, config/pa/x-pa: + Just set (some of) FIXPROTO_DEFINES, STMP_FIXPROTO, + OTHER_FIXINCLUDES_DIRS. + + * config/i386/x-djgpp: Don't set LN or LN_S. + * config/m88k/x-dolph: Don't define __m88k__. + * config/m88k/x-tekXD88: Don't set AR_FLAGS. + * config/pa/x-pa-mpeix: Just set up quadlib.asm. + * config/i860/fx2800.h: No need to #undef SVR4. + + 38 x-host fragments remain, 2 x-cpu. + +2001-04-07 Herman A.J. ten Brugge + + * c4x.h (HARD_REGNO_NREGS): HCmode mode uses 2 regs not 4. + +2001-04-06 Neil Booth + + * cpplib.c (cpp_push_buffer): Give stdin buffers the name . + +2001-04-06 Neil Booth + + * configure.in: Add check for lstat. + * configure, config.in: Regenerate. + * cppinit.c (append_include_chain): Make empty path ".". + * cpplib.c (do_line): Don't simplify #line paths. + * cppfiles.c (remove_component_p): New function. + (find_or_create_entry): Acknowledge stat () errors during + path simplification. + (handle_missing_header): Don't simplify paths. + (_cpp_simplify_pathname): Don't simplify VMS paths. Return + the empty path untouched. Don't leave a trailing '/'. + +2001-04-06 Benjamin Kosnik + + * cppdefault.c (GPLUSPLUS_BACKWARD_INCLUDE_DIR): Add. + * Makefile.in (-DGPLUSPLUS_BACKWARD_INCLUDE_DIR): Add. + +2001-04-06 Neil Booth + + * cppfiles.c (open_file): Fail directories silently, but + with an errno of NOENT set. + (read_include_file): Move the common exit code to the sole + caller. Return an int indicating success or failure. Let + open_file handle directories. + (stack_include_file): If read_include_file fails, + push a "null" buffer. + +2001-04-05 DJ Delorie + + * function.h (virtuals_instantiated): Declare. + * function.c: (virtuals_instantiated): Make global. + * calls.c (emit_library_call_value_1): Use + virtual_outgoing_args_rtx only if it hasn't been instantiated. + Otherwise, use the stack pointer directly. + +Thu Apr 5 19:13:33 CEST 2001 Jan Hubicka + + * i386.c (x86_initialize_trampoline): New global function. + * i386.h (TRAMPOLINE_SIZE): Size is 23 for x86_64. + (INITIALIZE_TRAMPOLINE): Move offline. + * i386-protos.h (x86_initialize_trampoline): Declare. + +Thu Apr 5 19:02:15 CEST 2001 Jan Hubicka + + * i386.md (movdi_1_rex64): Allow SSE->SSE reg move. + (lea_0): Rename to lea_1. + (lea_1_zext, lea_1_rex64, lea_2_rex64): New patterns. + (lea_general_?): Allow SImodes on TARGET_64BIT + (lea_general_?_zext): New patterns. + (call_1, call_1_rex64): Fix. + +Thu Apr 5 19:00:15 CEST 2001 Jan Hubicka + + * i386.c (ix86_split_long_move): Use PUT_MODE instead of change_address. + +Thu Apr 5 18:25:56 CEST 2001 Jan Hubicka + + * i386.c (function_arg): Return constm1_rtx for last argument. + (ix86_expand_prologue): Update gen_call calls. + * i386.h (FUNCTION_BLOCK_PROFILER_EXIT): Likewise. + * i386.md (call_pop): Likewise. + (call): Second operand is VOIDmode. + (call_0): Likewise; Support 64bits. + (call_exp): New expander. + (call_1): Get to the sync. + (call_1_exp): New pattern. + (call_value): Support 64bit. + (call_value_exp): New pattern. + (untyped_call): Update gen_call call. + (call_value_pop): Disable for 64bit. + (call_value_0_rex64): New pattern. + (call_value_1_rex64): Likewise. + +2001-04-05 Bo Thorsen + + * i386.md: Don't allow "builtin_setjmp_receiver" for TARGET_64BIT. + +Thu Apr 5 13:44:17 2001 J"orn Rennecke + + * i386.md (*andsi_1+3): If used after reload, make sure the operand + satisfies ANY_QI_REG_P. + +2001-04-05 Bernd Schmidt + + * config/ia64/ia64.c (rtx_needs_barrier): A PARALLEL can contain + ASM_OPERAND. + + * sched-deps.c (sched_analyze_insn): Revert more of the March 27 + change. + +2001-04-04 Zack Weinberg + + * config.gcc: Remove default for xm_file. Clean up local + machine type handling. Remove settings of xm_file to + something that doesn't exist. In the big switch, set xm_file, + don't append to it (the value before the big switch is always + null). Don't force build_xm_file or host_xm_file to have a value. + * configure.in: Remove default for xm_file. Do not special + case $cpu/xm-$cpu.h not existing. + * configure: Regenerate. + +2001-04-04 Diego Novillo + + * simplify-rtx.c (simplify_binary_operation): Check for overflow + when folding integer division and modulo operations. + +2001-04-04 Andrew MacLeod + + * dwarf2out.c (output_cfi): Add 'for_eh' parameter, use PTR_SIZE + instead of DWARF2_ADDR_SIZE for EH addresses. + (output_call_frame_info): Use PTR_SIZE instead of DWARF2_ADDR_SIZE for + EH addresses. + +2001-04-04 Richard Henderson + + * config/ia64/ia64.h (IA64_UNWIND_INFO): Disable. + * config/ia64/t-glibc (LIB2ADDEH): Disable. + * config/ia64/t-ia64 (LIB2ADDEH): Disable. + +2001-04-04 Richard Henderson + + * configure.in (gcc_cv_as_leb128): Escape "." in regexp. + * configure: Rebuilt. + +2001-04-04 Jakub Jelinek + + * gcse.c (delete_null_pointer_checks_1): Add delete_list argument, + push insns to delete to it instead of deleting them. + (delete_null_pointer_checks): Delete insns from delete_list after + all delete_null_pointer_checks_1 passes are done. + +2001-04-04 Richard Henderson + + * configure.in (gcc_cv_as_leb128): Tweek minor number extraction. + * configure: Rebuilt. + +2001-04-04 Zack Weinberg + + * expr.h: Remove #ifdef FUNCTION_CONVERSION_BUG logic. + * config/romp/xm-romp.h: Delete. + +2001-04-04 Bernd Schmidt + + * sched-deps.c (sched_analyze_insn): Partially revert March 27 + change. + +2001-04-04 Herman A.J. ten Brugge + + * emit-rtl.c (mark_label_nuses) Increment the label uses for + all labels present in rtx. + (try_split) Call new function for all split insns. + +2001-04-04 Jakub Jelinek + + * recog.c (validate_replace_rtx_1): Instead of aborting just make + sure the change won't be validated. + +Wed Apr 4 00:45:38 EDT 2001 John Wehle (john@feith.com) + + * rtl.h (set_noop_p): Declare. + * flow.c (set_noop_p): Move from here ... + * rtlanal.c (set_noop_p): ... to here and enhance. + * cse.c (delete_trivially_dead_insns): Use it. + * gcse.c (hash_scan_set): Likewise. + * jump.c (delete_noop_moves): Likewise. + * recog.c (split_all_insns): Likewise. + +2001-04-04 Alan Modra + + * dwarf2out.c (dwarf2out_frame_debug_expr): Support adjusting + stack pointer via a LO_SUM. Ditto for setting a temp register + used to save to the stack. Set cfa_temp when setting fp, and + allow matches to cfa_temp in addition to cfa_store when saving + regs. Handle POST_INC and LO_SUM register stores. Document the + changes and errors in rule 12 doco. + + * pa.c (set_reg_plus_d, store_reg, load_reg): Return last insn. + (actual_fsize, local_fsize, save_fregs): Move for store_reg to see. + (load_reg): Move closer to epilogue code. + (DO_FRAME_NOTES): Define to control the following.. + (FRP): Define to set RTX_FRAME_RELATED_P on insns. + (hppa_expand_prologue): Use FRP and REG_FRAME_RELATED_EXPR + notes as necessary. + (hppa_expand_epilogue): Likewise. + +2001-04-03 Richard Henderson + + * configure.in (gcc_cv_as_leb128): Reject gas before 2.11. + * configure: Rebuild. + +2001-04-03 Richard Henderson + + * rtl.h (LCT_THROW): New. + * calls.c (emit_library_call_value_1): Handle it. + * except.c (connect_post_landing_pads): Use it. + +2001-04-03 Zack Weinberg + + * gansidecl.h: Delete file. + * configure.in: Change all refs to gansidecl.h to use + ansidecl.h. Adjust *_file_list so they know where ansidecl.h + lives. + * configure: Regenerate. + + * Makefile.in (intl.o): Don't depend on gansidecl.h. + * defaults.h: s/gansidecl.h/ansidecl.h/ in comment. + * ggc.h, config/fr30/fr30.h, config/mcore/mcore.c: + Don't include gansidecl.h. + * intl.c, main.c, version.c, fixinc/fixlib.h, + fixinc/procopen.c, fixinc/server.c: Include ansidecl.h not + gansidecl.h. + +Tue Apr 3 19:41:21 CEST 2001 Jan Hubicka + + * i386.c (ix86_force_to_memory, ix86_free_from_memory): + Update for 64bit. + +2001-04-03 Zack Weinberg + + * config/i386/xm-beos.h, config/i386/xm-isc.h, + config/i386/xm-next.h, config/i386/xm-sco.h, + config/i386/xm-sco5.h, config/m68k/xm-plexus.h, + config/m88k/xm-m88k.h: Delete. + + * config/i386/xm-djgpp.h: Don't define __MSDOS__. + * config/romp/xm-romp.h: Don't define bcopy. + * config/rs6000/xm-beos.h: Don't define bcopy, HAVE_VPRINTF, + HAVE_PUTENV, HAVE_RENAME, or USE_C_ALLOCA. + + * config.gcc: Remove references to deleted files. + + 14 xm-host.h remain, 1 xm-cpu.h. + +2001-04-03 Jakub Jelinek + David S. Miller + Andrew MacLeod + + Use byte offsets in SUBREGs instead of words. + + * alias.c (nonlocal_mentioned_p): Use subreg_regno function. + * caller-save.c (mark_set_regs): Change callers of subreg_hard_regno + to pass new argument. + (add_stored_regs): Use subreg_regno_offset function. + * calls.c (expand_call): For non-paradoxical SUBREG take endianess + into account. + (precompute_arguments): Use gen_lowpart_SUBREG. + * combine.c (try_combine): Replace explicit XEXP with SUBREG_REG. + (combine_simplify_rtx): Rework to use SUBREG_BYTE. + (simplify_set): Rework to use SUBREG_BYTE. + (expand_field_assignment): Use SUBREG_BYTE. + (make_extraction): Use SUBREG_BYTE. + (if_then_else_cond): Use SUBREG_BYTE. + (apply_distributive_law): Use SUBREG_BYTE and fixup subreg comments. + (gen_lowpart_for_combine): Compute full byte offset. + * cse.c (mention_regs): Use SUBREG_BYTE. + (remove_invalid_subreg_refs): Rework to use SUBREG_BYTE. + (canon_hash): Use SUBREG_BYTE. + (fold_rtx): Pass SUBREG_BYTE div UNITS_PER_WORD to operand_subword. + (gen_lowpart_if_possible): Formatting. + * dbxout.c (dbxout_symbol_location): Compute SUBREG hard regnos + correctly. + * dwarf2out.c (is_pseudo_reg): Fixup explicit XEXP into SUBREG_REG + (mem_loc_descriptor): Fixup explicit XEXP into SUBREG_REG + (loc_descriptor): Fixup explicit XEXP into SUBREG_REG + * dwarfout.c (is_pseudo_reg): Fixup explicit XEXP into SUBREG_REG + (output_mem_loc_descriptor): Fixup explicit XEXP into SUBREG_REG + (output_loc_descriptor): Fixup explicit XEXP into SUBREG_REG + * emit-rtl.c (gen_rtx_SUBREG): New function, used to verify + certain invariants about SUBREGs the compiler creates. + (gen_lowpart_SUBREG): New function. + (subreg_hard_regno): New function to get the final register number. + (gen_lowpart_common): Use SUBREG_BYTE. + (gen_imagpart): Spacing nits. + (subreg_realpart_p): Use SUBREG_BYTE. + (gen_highpart): Use SUBREG_BYTE. + (subreg_lowpart_p): Always compute endian corrected goal offset, + even at the byte level, then compare against that. + (constant_subword): New function, pulled out all constant cases + from operand_subword and changed second argument name to offset. + (operand_subword): Detect non REG/SUBREG/CONCAT/MEM cases early + and call constant_subword to do the work. Return const0_rtx if + looking for a word outside of OP. + (operand_subword_force): Change second arg name to offset. + * expmed.c (store_bit_field): Use SUBREG_BYTE. + (store_split_bit_field): Use SUBREG_BYTE. + (extract_bit_field): Use SUBREG_BYTE. + (extract_split_bit_field): Use SUBREG_BYTE. + (expand_shift): Use SUBREG_BYTE. + * expr.c (store_expr, expand_expr): Use gen_lowpart_SUBREG. + * final.c (alter_subreg) Use subreg_hard_regno and SUBREG_BYTE. + * flow.c (set_noop_p): Use SUBREG_BYTE. + (mark_set_1): Remove ALTER_HARD_SUBREG. Use subreg_regno_offset instead. + * function.c (fixup_var_refs_1): Fixup explicit XEXP into a SUBREG_REG. + (fixup_memory_subreg): Use SUBREG_BYTE and remove byte endian + correction code. + (optimize_bit_field): Use SUBREG_BYTE. + (purge_addressof_1): Use SUBREG_BYTE. + (purge_single_hard_subreg_set): Use subreg_regno_offset function. + (assign_params): Mark arguments SUBREG_PROMOTED_VAR_P if they are + actually promoted by the caller and PROMOTE_FOR_CALLS_ONLY is true. + * gengenrtl.c (special_rtx): Add SUBREG. + * global.c (mark_reg_store): Use SUBREG_BYTE. + (set_preference): Rework to use subreg_regno_offset and SUBREG_BYTE. + * ifcvt (noce_emit_move_insn): Use SUBREG_BYTE. + * integrate.c (copy_rtx_and_substitute): Use SUBREG_BYTE and make sure + final byte offset is congruent to subreg's mode size. + (subst_constants): Use SUBREG_BYTE. + (mark_stores): Use subreg_regno_offset function. + * jump.c (rtx_renumbered_equal_p, true_regnum): Use subreg_regno_offset + function and SUBREG_BYTE. + * local-alloc.c (combine_regs): Use subreg_regno_offset function. + (reg_is_born): Use subreg_hard_regno. + * recog.c (valid_replace_rtx_1): Use SUBREG_BYTE and remove byte + endian correction code. Don't combine subregs unless resulting + offset aligns with type. Fix subreg constant extraction for DImode. + Simplify SUBREG of VOIDmode CONST_DOUBLE. + (general_operand): Remove dead mode_altering_drug code. + (indirect_operand): Use SUBREG_BYTE. + (constrain_operands): Use subreg_regno_offset function. + * reg-stack.c (get_true_reg): Use subreg_regno_offset function. + * regmove.c (regmove_optimize): Use SUBREG_BYTE. + (optimize_reg_copy_3): Use gen_lowpart_SUBREG. + * regs.h (REG_SIZE): Allow target to override. + (REGMODE_NATURAL_SIZE): New macro which target can override. + * reload.c (reload_inner_reg_of_subreg): subreg_regno should be used + on the entire subreg rtx. + (push_reload): Use SUBREG_BYTE in comments and code. + (find_dummy_reload): Use subreg_regno_offset. Only adjust offsets + for hard registers inside subregs. + (operands_match_p): Use subreg_regno_offset. + (find_reloads): Use SUBREG_BYTE and only advance offset for subregs + containing hard regs. + (find_reload_toplev): Use SUBREG_BYTE. Remove byte endian + corrections when fixing up MEM subregs. + (find_reloads_address_1): Use SUBREG_BYTE, subreg_regno, and + subreg_regno_offset where appropriate. + (find_reloads_subreg_address): Use SUBREG_BYTE. Remove + byte endian corrections when fixing up MEM subregs. + (subst_reloads): When combining two subregs, make sure final + offset is congruent to subreg's mode size. + (find_replacement): Use SUBREG_BYTE and subreg_regno_offset. + (refers_to_regno_for_reload_p): Use subreg_regno. + (reg_overlap_mentioned_for_reload_p): Use subreg_regno_offset. + * reload1.c (eliminate_regs) Use SUBREG_BYTE. Remove byte endian + correction code for memory subreg fixups. + (forget_old_reload_1): Use subreg_regno_offset. + (choose_reload_regs): Use subreg_regno. + (emit_input_reload_insns): Use SUBREG_BYTE. + (reload_combine_note_store): Use subreg_regno_offset. + (move2add_note_store): Use subreg_regno_offset. + * resource.c (update_live_status, mark_referenced_resources): Use + subreg_regno function. + (mark_set_resources): Use subreg_regno function. + * rtl.h (SUBREG_WORD): Rename to SUBREG_BYTE. + (subreg_regno_offset, subreg_regno): Define prototypes. + (subreg_hard_regno, constant_subword, gen_rtx_SUBREG): Newi functions. + (gen_lowpart_SUBREG): Add prototype. + * rtl.texi (subreg): Update to reflect new byte offset representation. + Add mentioning of the effect that BYTES_BIG_ENDIAN has on subregs now. + * rtlanal.c (refers_to_regno_p): Use subreg_regno. + (reg_overlap_mentioned_p): Use subreg_regno. + (replace_regs); Make sure final offset of combined subreg is + congruent to size of subreg's mode. + (subreg_regno_offset): New function. + (subreg_regno): New function. + * sched-vis.c (print_value): Change SUBREG_WORD to SUBREG_BYTE. + * sdbout.c (sdbout_symbol): Compute offset using alter_subreg. + * stmt.c (expand_anon_union_decl): Use gen_lowpart_SUBREG. + * tm.texi (ALTER_HARD_SUBREG): Remove, it is now dead. + (SUBREG_REGNO_OFFSET): Describe SUBREG_REGNO_OFFSET overrides. + * config/a29k/a29k.c (gpc_reg_operand): Use subreg_regno. + (a29k_get_reloaded_address): Use SUBREG_BYTE. + (print_operand): Use SUBREG_BYTE. + * config/alpha/alpha.c (print_operand_address): Use SUBREG_BYTE. + * config/arm/arm.c (arm_reload_in_hi): Use SUBREG_BYTE. + (arm_reload_out_hi): Use SUBREG_BYTE. + * config/d30v/d30v.c (d30v_split_double): Use subreg_regno_offset + instead of SUBREG_WORD. + (d30v_print_operand_memory_reference): Use subreg_regno_offset. + * config/dsp16xx/dsp16xx.md (extendqihi2, zero_extendqihi2): Fix + SUBREG creation to use byte offset. + * config/h8300/h8300.md (Unnamed HImode zero extraction and 16bit + inverted load insns): Fix explicit rtl subregs to use byte + offsets. + * config/i370/i370.md (cmpstrsi, movstrsi, mulsi3, divsi3, + udivsi3, umodsi3): Generate SUBREGs with byte offsets. + * config/i860/i860.c (single_insn_src_p): Use SUBREG_BYTE. + * config/i860/i860.md (mulsi3_big): Fixup explicit SUBREGs in rtl + to use byte offsets. + (unnamed fmlow.dd insn): Fixup SUBREGS to use byte offsets. + * config/i960/i960.md (extendhisi2): Generate SUBREGs with byte + offsets, also make sure it is congruent to SUBREG's mode size. + (extendqisi2, extendqihi2, zero_extendhisi2, zero_extendqisi2, + unnamed ldob insn): Generate SUBREGs with byte offset. + (zero_extendqihi2): SUBREG's are byte offsets. + * config/m68hc11/m68hc11.c (m68hc11_gen_lowpart): Use SUBREG_BYTE. + (m68hc11_gen_highpart): Use SUBREG_BYTE. + * config/m68k/m68k.md (zero_extendhisi2, zero_extendqihi2, + zero-extendqisi2): Generate SUBREGs with byte offset. + (umulsidi3, mulsidi3, subreghi1ashrdi_const32, + subregsi1ashrdi_const32, subreg1lshrdi_const32): Fixup explicit + subregs in rtl to use byte offsets. + * config/m88k/m88k.md (extendsidi2): fixup subregs to use byte offset. + * config/mips/mips.c (mips_move_1word): Use subreg_regno_offset. + (mips_move_2words): Use subreg_regno_offset. + (mips_secondary_reload_class): Use subreg_regno_offset. + * config/mips/mips.md (DImode plus, minus, move, and logical op + splits): Fixup explicit subregs in rtl to use byte offsets. + * config/mn10200/mn10200.c (print_operand): Use subreg_regno function. + * config/mn10300/mn10300.c (print_operand): Use subreg_regno function. + * config/ns32k/ns32k.md (udivmoddisi4): Fix explicit subregs in + rtl to use byte offsets. + * config/pa/pa.c (emit_move_sequence): Use SUBREG_BYTE. + * config/pa/pa.md (floatunssisf2, floatunssidf2, mulsi3): fix explicit + subregs to use byte offsets. + * config/pdp11/pdp11.md (zero_extendhisi2, modhi3, modhi3+1): + Fixup explicit subregs in rtl to use byte offsets. + * config/romp/romp.c (memory_offset_in_range_p): Use SUBREG_BYTE + and remove byte endian correction code. + * config/sh/sh.c (output_movedouble): Use subreg_regno. + (gen_ashift_hi): Use SUBREG_BYTE. + (regs_used): Use subreg_regno_offset. + (machine_dependent_reorg): Use subreg_regno_offset. + * config/sh/sh.h (INDEX_REGISTER_RTX_P): Use SUBREG_BYTE. + * config/sh/sh.md (DImode and DFmode move splits): Use subreg_regno. + (movdf_i4): Subregs are byte offsets now. + * config/sparc/sparc.c (ultra_find_type): Use SUBREG_BYTE. + * config/sparc/sparc.h (ALTER_HARD_SUBREG): Removed. + (REGMODE_NATURAL_SIZE): Override. + (REG_SIZE): For SUBREG check float mode on SUBREG_REG's mode. + * config/sparc/sparc.md (TFmode move splits): Generate SUBREGs + with byte offsets. + (zero_extendhisi2, zero_extendqidi2_insn, extendhisi2, + extendqihi2, sign_extendqihi2_insn, sign_extendqisi2_insn, + extendqidi2): Generate SUBREGs with byte offsets, also make sure + it is congruent to SUBREG's mode size. + (smulsi3_highpart_v8plus): Fix explicit subregs in rtl to use byte + offsets. + (cmp_siqi_trunc, cmp_siqi_trunc_set, cmp_diqi_trunc, + cmp_diqi_trunc_set, lshrdi3_v8plus+1, lshrdi3_v8plus+2, + lshrdi3_v8plus+3, lshrdi3_v8plus+4): Use proper + SUBREG_BYTE offset for non-paradoxical subregs in patterns. + * config/v850/v850.c (print_operand, output_move_double): Use + subreg_regno function. + +2001-04-03 Alexandre Oliva + + * configure.in (target_subdir): Use target_alias, not target. + * configure: Rebuilt. + + * config/sh/crtn.asm (init, fini): Restore r15 from r14, not the + other way round. + * config/sh/crti.asm: Fix typos in comments. + +2001-04-03 Alan Modra + + * pa.h: Revise comments for TARGET_NO_SPACE_REGS and + TARGET_FAST_INDIRECT_CALLS. + * pa.c (override_options): TARGET_NO_SPACE_REGS is now OK with + -fPIC. Don't warn. + (return_addr_rtx): Short circuit export stub matching when + TARGET_NO_SPACE_REGS. + (output_millicode_call): For out of range calls, make -fPIC + take precedence, then TARGET_PORTABLE_RUNTIME, then ble. Don't + return before delay slot checks when TARGET_PORTABLE_RUNTIME. + * pa.md: Modify length attr calculation of all millicode insns to + match above. + +2001-04-02 Geoffrey Keating + + * configure.in (gcc_cv_as_leb128): Correct name of cache variable. + Require at least 2.11 in the version test. Specifically check + for and reject GAS version 2.10.90. + * configure: regenerate. + +2001-04-03 Alan Modra + + * pa.c (override_options): Remove PIC profiling warning. + (hp_profile_labelno): Delete. + (hp_profile_label_rtx): Delete. + (hp_profile_label_name): Delete. + (pa_add_gc_roots): Remove reference to hp_profile_label_rtx. + (output_function_prologue): Remove profiling code and all tests on + profile_flag. Move store of PIC_OFFSET_TABLE_REGNUM now that + merge_sp_adjust_with_store can work for PIC and profiling. + (hppa_expand_epilogue): Remove profile_flag test. + (hppa_can_use_return_insn_p): Likewise. + (hppa_init_pic_save): Emit before tail_recursion_reentry, and + cater for PROFILE_HOOK. + (hppa_profile_hook): New function. + * pa.h (FUNCTION_PROFILER): Now does nothing. + (PROFILE_HOOK): Define. + (hppa_profile_hook): Declare. + (PROFILE_BEFORE_PROLOGUE): Delete. + (ASM_OUTPUT_REG_PUSH): Delete. + (ASM_OUTPUT_REG_POP): Delete. + * pa.md (call_profiler): Turn it into a call insn, and don't `use' + r24. Accept function name operand, and use this and a locally + generated label to calculate pc-rel offset to func start. + +2001-04-02 Kaveh R. Ghazi + + * $(HOST_PREFIX_1)errors.o, $(HOST_PREFIX_1)ggc-none.o, + ggc-common.o, ggc-simple.o, ggc-page.o, ggc-none.o: Depend on + $(SYSTEM_H). + +2001-04-03 Alan Modra + + * dwarf2out.c (dwarf2out_frame_debug_expr): Move errant HIGH and + LO_SUM cases to where they belong. + +2001-04-02 Richard Henderson + + * except.h (lang_eh_type_covers): Mark extern. + (lang_eh_runtime_type): Likewise. + +2001-04-02 Zack Weinberg + + * genattr.c, gencheck.c, gencodes.c, genconfig.c, genflags.c, + gengenrtl.c: Wrap generated header in multiple-include guard. + Improve error checking. + +2001-04-02 Kaveh R. Ghazi + + * configure.in: Don't check for putenv. + * configure: Regenerate. + * gcc.c (putenv): Don't define. + * vax/xm-vms.h: Handle putenv. + +2001-04-02 Jakub Jelinek + + * ifcvt.c (noce_emit_move_insn): New. + (noce_try_store_flag, noce_try_store_flag_constants, + noce_try_store_flag_inc, noce_try_store_flag_mask, + noce_try_cmove, noce_try_cmove_arith, noce_try_minmax, + noce_try_abs): Use it. + (noce_process_if_block): Likewise. + For STRICT_LOW_PART, take mode from its SUBREG. + +2001-04-02 Jakub Jelinek + + * fold-const.c (fold): Before optimizing unsigned comparison with + 0x7fffffffU, make sure arg0 is integral type. + +2001-04-02 Joseph S. Myers + + * c-tree.texi: Document representation of wide strings. + +2001-04-01 Richard Henderson + + * except.h (expand_builtin_dwarf_fp_regnum): Declare. + +Sun Apr 1 11:49:05 CEST 2001 Jan Hubicka + + * i386.md: remove obsoleted comments. + (adddi_?): Rename to adddi_?_rex64; disable for 32bit. + (x86_movsicc_0_m1_rex64): Rename to x86_movdicc_0_m1_rex64; + fix output template. + +2001-03-31 Marek Michalkiewicz + + * config/avr/libgcc.S (__mulhi3): Optimize previous change. + +2001-03-30 Bernd Schmidt + + * loop.c (load_mems): When generating a load from a pseudo, update + REGNO_LAST_UID. + +Fri Mar 30 17:36:43 CEST 2001 Jan Hubicka + + * i386.c (ix86_split_long_move): Use change address to compensate + stack pointer change in push instruction. + +Fri Mar 30 00:31:00 CEST 2001 Jan Hubicka + + * i386.md (sse_movdfcc_eq): Fix constraint (sse_mov?fcc splitter): Use operands_match_p + instead of rtx_equal_p; fix the output template. + +Fri Mar 30 00:21:41 CEST 2001 Jan Hubicka + + * i386.c (ix86_expand_setcc): Support 64bit. + (ix86_expand_int_movcc): Likewise. + * i386.md (movdicc_rex64, x86_movsicc_0_m1_rex64, movdicc_c_rex64): + New patterns. + + * i386.md (allocate_stack_worker): Turn to expander. + (allocate_stack_worker_1, allocate_stack_worker_rex64): New insns. + + * i386.c (print_reg): Do not print x86_64 style regs on IA-32 + +2001-03-29 Richard Henderson + + * libgcc2.c [L__main]: Include unwind-dw2-fde.h instead of frame.h. + +2001-03-28 Matthew Hiller + + * config/mn10300/mn10300.md (cmpsi): Fix first alternative's + output template. + + * MAINTAINERS: Added self. + +2001-03-28 Richard Henderson + + * Makefile.in (cs-tconfig.h): Depend on CONFIG_H, not GCONFIG_H. + Use ALL_CFLAGS not HOST_CFLAGS for sjlj detection. + +2001-03-28 Jim Wilson + + * config/ia64/ia64.md (movtf): Change DImode to TFmode in calls to + operand_subword. + +2001-03-28 Kaveh R. Ghazi + + * toplev.h (fatal_error): Add ATTRIBUTE_NORETURN. + + * tradcif.y (yyerror): Likewise. Add format specifier in call to + `error'. + + * tradcpp.c (macroexpand): Likewise for call to `error_with_line'. + +2001-03-28 DJ Delorie + + * Makefile.in (stage1_build): Revert CFLAGS patch. + +2001-03-28 Marek Michalkiewicz + + * config/avr/libgcc.S (__mulhi3): Correct tests to exit the loop + when multiplier or multiplicand is zero. + +2001-03-28 Bernd Schmidt + + * cselib.c (hash_rtx): Don't do tail recursion elimination by hand. + + * config/ia64/ia64.c (update_set_flags): New function, broken out of + rtx_needs_barrier. + (set_src_needs_barrier): Likewise. + (rtx_needs_barrier): For SET case, use these two functions. Rework + PARALLEL case to handle all inputs before all outputs. + (emit_insn_group_barriers): Call init_insn_group_barriers only if we + saw a label and no stop bit since then. + (maybe_rotate, process_epilogue): Add prototypes. + +2001-03-28 Richard Henderson + + * config/rs6000/rs6000.h (EPILOGUE_USES): Use TARGET_AIX, + not TARGET_TOC for special toc restore handling. + * config/rs6000/rs6000.md (eh_return): Likewise. + +2001-03-28 Richard Henderson + + * config/sparc/sparc.c (eligible_for_epilogue_delay): False if + current_function_calls_eh_return. + (output_function_epilogue): Handle eh_return. + * config/sparc/sparc.h (DOESNT_NEED_UNWINDER): Remove. + (EH_RETURN_DATA_REGNO): New. + (EH_RETURN_STACKADJ_RTX): New. + (EH_RETURN_HANDLER_RTX): New. + * config/sparc/sparc.md (call/short branch peepholes): Check + can_throw_internal instead of in_same_eh_region. + + * config/rs6000/rs6000.c (rs6000_stack_info): Allocate space + for eh_return data registers. + (rs6000_emit_prologue): Save eh_return data registers. + (rs6000_emit_epilogue): Force inline restores if eh_return. + Restore eh_return data registers. Mind EH_RETURN_STACKADJ_RTX. + * config/rs6000/rs6000.h (rs6000_stack_t): Add ehrd_offset. + (EH_RETURN_DATA_REGNO, EH_RETURN_STACKADJ_RTX): New. + (EPILOGUE_USES): True for TOC_REGISTER if calls_eh_return and + the target uses one. + * config/rs6000/rs6000.md (eh_epilogue, eh_reg_restore): Remove. + (return_eh_si, return_eh_di): Remove. + (eh_return): New, from corpse of eh_epilogue. + (eh_set_lr_si, eh_set_lr_di): New. + + * config/i386/i386.c (general_no_elim_operand): Disallow virtual regs. + (ix86_save_reg): If maybe_eh_return, true for EH_RETURN_DATA_REGNOs. + True for pic register if current_function_calls_eh_return. + (ix86_expand_epilogue): Change "emit_return" argument into "style". + Handle eh_return requirements. + * config/i386/i386.h (EH_RETURN_DATA_REGNO): New. + (EH_RETURN_STACKADJ_RTX): New. + * config/i386/i386.md (exception_receiver): Remove. + (eh_return, eh_return_1): New. + * config/i386/linux.h (MD_FALLBACK_FRAME_STATE_FOR): New. + + * config/alpha/alpha.c (alpha_sa_mask): Add EH_RETURN_DATA_REGNOs. + (alpha_mark_machine_status): No eh_epilogue_sp_ofs ... + (alpha_expand_epilogue): ... use EH_RETURN_STACKADJ_RTX instead. + * config/alpha/alpha.h (machine_function): Remove eh_epilogue_sp_ofs. + (EH_RETURN_DATA_REGNO): New. + (EH_RETURN_STACKADJ_RTX, EH_RETURN_HANDLER_RTX): New. + * config/alpha/alpha.md (eh_epilogue): Remove. + (exception_receiver): Use $26 for ldgp input. + * config/alpha/linux.h (MD_FALLBACK_FRAME_STATE_FOR): New. + +2001-03-28 Richard Henderson + + * except.c: Rewrite entirely for IA-64 ABI exception handling. + * except.h: Likewise. + + * Makefile.in (LIB2ADDEH): Mention unwind-dw2*.c + (LIB2ADDEHDEP): New. + (LIB2FUNCS_EH): Remove. + (LIB2ADD): Remove LIB2ADDEH. + (libgcc.mk): Pass LIB2ADDEHDEP, don't pass LIB2FUNCS_EH. + (LIBGCC_DEPS): Use LIB2ADDEHDEP. + (crt{begin,end}[S].o): Likewise. + (except.o): Update includes. + * mklibgcc.in: Remove LIB2FUNCS_EH, add LIB2ADDEH, LIB2ADDEHDEP. + (libgcc2_c_dep): Use LIB2ADDEHDEP. + + * basic-block.h (struct basic_block_def): Remove eh_beg, eh_end. + * bb-reorder.c (reorder_basic_blocks): Don't disable for EH. + * builtins.def (BUILT_IN_EH_RETURN_DATA_REGNO): New. + * builtins.c (expand_builtin): Implement it. + [BUILT_IN_EH_RETURN]: Update for nr arguments change. + * c-common.c (c_common_nodes_and_builtins): Declare it. + * c-decl.c (init_decl_processing): Update __builtin_eh_return. + * calls.c (libfunc_nothrow): Remove. + (emit_library_call_value_1): Don't call it. + * crtstuff.c: Include unwind-dw2-fde.h instead of frame.h. + * dwarf2.h (dwarf_call_frame_info): Add dwarf2.1 elements. + (DW_EH_PE_*): New defines for pointer encoding in .eh_frame. + * dwarf2out.c (struct dw_fde_struct): Add uses_eh_lsda, funcdef_number. + (current_funcdef_number): Globalize. + (output_call_frame_info): Emit frame data if an lsda is needed. + Generate augmentation for personality routine. Don't play with + difference symbols. + (dwarf2out_begin_prologue): Record funcdef_number. + * dwarf2out.h (current_funcdef_number): Declare. + * expr.c (expand_expr): Update for except.h name changes. + Remove POPDCC_EXPR, POPDHC_EXPR. Add EXC_PTR_EXPR. + * expr.h (LTI_throw, LTI_rethrow): Remove. + (LTI_sjthrow, LTI_sjpopnthrow, LTI_terminate): Remove. + (LTI_eh_rtime_match): Remove. + (LTI_unwind_resume, LTI_eh_personality): Add. + (LTI_unwind_sjlj_register, LTI_unwind_sjlj_unregister): Add. + * final.c (final): Don't call check_exception_handler_labels, + init_insn_eh_region, or free_insn_eh_region. + (final_scan_insn): Always emit debug labels for + NOTE_INSN_EH_REGION notes. + * flags.h (flag_new_exceptions): Remove. + * flow.c (entry_exit_blocks): Remove eh_beg, eh_end. + (record_active_eh_regions): Remove. + (count_basic_blocks): Check all instructions for REG_EH_REGION. + Use can_throw_internal. + (find_basic_blocks_1): Likewise. + (move_stray_eh_region_notes): Remove. + (find_label_refs): No eh_return_stub_label. + (make_edges): Likewise. No init/free_eh_nesting_info. Handle RESX. + (make_eh_edge): No eh_nest_info. Update for reachable_handlers + changes. + (delete_unreachable_blocks): Don't track deleted handlers. + (flow_delete_block): Use maybe_remove_eh_handler. + (delete_eh_regions): Remove. + (merge_blocks): Don't check for eh region match. + (mark_regs_live_at_end): Handle EH_RETURN_DATA_REGNO, + EH_RETURN_STACKADJ_RTX, EH_RETURN_HANDLER_RTX. + (init_propagate_block_info): Disable dead frame store optimization + when current_function_calls_eh_return. + (dump_bb): Don't print eh_beg, eh_end. + * function.c (fixup_var_refs): No catch_clauses. + (expand_function_end): Likewise. Call expand_eh_return before + the return register use. Call sjlj_emit_function_exit_after. + (expand_function_start): Force pseudo DECL_RESULT if sjlj exceptions. + * function.h (struct function): Add calls_eh_return, uses_eh_lsda. + * ifcvt.c (dead_or_predicable): Remove eh region check. + * integrate.c (function_cannot_inline_p): Disallow __builtin_eh_return. + Don't check for EH vs parameters. + (expand_inline_function_eh_labelmap, eif_eh_map): Remove. + (expand_inline_function): Call duplicate_eh_regions. + (copy_insn_list): Don't handle NOTE_INSN_EH_REGION_BEG/END. + (copy_insn_notes): Remap REG_EH_REGION notes. + (copy_rtx_and_substitute): Remove SYMBOL_REF_NEED_ADJUST check. + * integrate.h (struct inline_remap): Add local_return_label. + * jump.c (jump_optimize_1): Don't init/free_insn_eh_region, nor + check_exception_handler_labels, nor exception_optimize. + (find_cross_jump): No EH region check. + * optabs.c (init_optabs): Update for changed eh libfuncs. + * rtl.def (RESX): New. + * rtl.h (SYMBOL_REF_NEED_ADJUST): Remove. + * stmt.c (expand_decl_cleanup): Simplify using_eh_for_cleanups_p + checks. Update for except.h name changes. + (expand_cleanups): Likewise. + (expand_dcc_cleanup, expand_dhc_cleanup): Remove. + * toplev.c (dump_file_index, dump_file): Add .02.eh dump. + (compile_file): Call init_eh before init_optabs. Don't + output_exception_table here. + (rest_of_compilation): Call convert_from_eh_region_ranges, + convert_to_eh_region_ranges, output_function_exception_table. + Don't emit_eh_context. + * tree.def (POPDHC_EXPR, POPDCC_EXPR): Remove. + (EXC_PTR_EXPR): New. + + * md.texi (eh_epilogue): Remove. + (eh_return): Document. + * tm.texi (EH_RETURN_DATA_REGNO): Document. + (EH_RETURN_STACKADJ_RTX, EH_RETURN_HANDLER_RTX): Document. + + * eh-common.h: Remove file. + * frame-dwarf2.c, frame.c, frame.h: Remove files. + * libgcc2.c (L_eh): Remove. + + * unwind-dw2-fde.c: New file, largely copied from frame.c. + * unwind-dw2-fde.h: New file. + * unwind-dw2.c: New file, largely cribbed from frame-dwarf2.c. + * unwind-sjlj.c, unwind.h, unwind.inc: New files. + * libgcc-std.ver: Update for eh symbols. + +2001-03-27 Richard Henderson + + * regmove.c (perhaps_ends_bb_p): Use can_throw_internal to + reduce false positives. + (regmove_optimize): Disable if flag_non_call_exceptions. + + * stmt.c (expand_return): Remove always true predicate. + (expand_decl_cleanup_no_eh): Remove dead code. + + * sched-deps.c (sched_analyze_insn): Consolidate scheduling + barrier code. Add a scheduling barrier if a non-call insn + can throw internally. + + * rtlanal.c (rtx_addr_can_trap_p): Virtual registers cannot trap. + Auto-inc addresses trap only if their base register does. + + * except.c (can_throw_internal): Rename from can_throw. + * except.h, resource.c: Update references. + + * integrate.c (copy_insn_list): Use returnjump_p. + (copy_insn_notes): Recurse for CALL_PLACEHOLDER. + + * function.h (struct function): Move all boolean valued fields + to single bit fields at the end of the struct. + + * bb-reorder.c, dwarf2out.c, except.c, except.h, flow.c, + jump.c, toplev.c: + Rename asynchronous_exceptions to flag_non_call_exceptions. + + * gthr-single.h (UNUSED): New. Distinguish between how C + and C++ mark unused function arguments. Use throughout. + + * Makefile.in (cs-tconfig.h): Copy USING_SJLJ_EXCEPTIONS + value to target configuration header. + * configure.in (CONFIG_SJLJ_EXCEPTIONS): New. + * config.in, configure: Rebuild. + * except.h (USING_SJLJ_EXCEPTIONS): New. Define based on + configuration and target defines. + (exceptions_via_longjmp): Remove. + * dwarf2out.c, except.c, final.c, toplev.c, config/ia64/ia64.c: + Use USING_SJLJ_EXCEPTIONS instead of exceptions_via_longjmp. + + * except.h (flag_non_call_exceptions): Move ... + * flags.h: ... here. + + * combine.c (distribute_notes) [REG_EH_REGION]: If non-call + exceptions, put the note on the trapping instruction. + + * flags.h (flag_new_exceptions): Remove. + * toplev.c: Don't set it. + * final.c: Don't check it. + * except.c: Provide stub definition. + + * flow.c (tidy_fallthru_edges): Don't combine complex edges. + (calculate_global_regs_live): Kill call-clobbered registers + across exception edges. + * reg-stack.c (convert_regs_1): Kill the entire target stack + across non-call exception edges. + + * flow.c (cleanup_cfg): Take no argument. + * output.h, sibcall.c, toplev.c: Update all calls. + +2001-03-27 Kaveh R. Ghazi + + * configure.in: Don't check for bcopy. + * configure, config.in: Regenerate. + + * system.h: Don't define or prototype bcopy, instead poison it. + +2001-03-27 Richard Henderson + + * function.c (expand_function_start): Set DECL_REGISTER on + a pseudo used for DECL_RESULT. + + * rtl.h (LCT_NORETURN): New. + * calls.c (emit_library_call_value_1): Handle it. + +2001-03-27 Stan Shebs + + * objc/objc-act.c (objc_init): Use dump_base_name. + (gen_declaration): Clear the buffer arg. + (gen_declaration_1): New function, body of gen_declaration. + (adorn_decl): Call gen_declaration_1 instead of gen_declaration. + (gen_method_decl): Ditto, plus always clear buffer arg. + (error_with_ivar): Simplify. + (warn_with_method): Ditto. + (build_message_expr): Don't clear buffers. + (dump_interface): Ditto. + (objc_debug): Ditto. + (build_keyword_selector): Clear the buffer by only zeroing + the first element. + (objc_implementation_context): Declare. + (start_class): Warn about missing @end. + (finish_objc): Ditto. + +2001-03-28 John David Anglin + + * reload1.c (eliminate_regs): Don't abort on MEM USEs. + +2001-03-27 Kaveh R. Ghazi + + * Makefile.in (SYSTEM_H): Define. + Depend on $(SYSTEM_H), not system.h. + + * objc/Make-lang.in: Depend on $(SYSTEM_H), not system.h. + +2001-03-27 Jim Wilson + + * final.c (final_scan_insn, case NOTE_INSN_BASIC_BLOCK): Call + IA64_UNWIND_EMIT. + * config/ia64/ia64.c (block_num, need_copy_state): New static vars. + (process_epilogue): New static function. + (process_set): Call process_epilogue instead of emitting .restore + directly. + (process_for_unwind_directive): Handle NOTE_INSN_BASIC_BLOCK. + + * flow.c (struct reg_cond_life_info): New fields orig_condition + and stores. + (init_propagate_block_info): Set new fields. + (mark_regno_cond_dead): Set and use new fields. + (flush_reg_cond_reg_1): Likewise. + (and_reg_cond, case AND): Check for redundant AND conditions. + (mark_used_reg): Delete unnecessary clears before freeing splay trees. + Set new fields. + +2001-03-27 Neil Booth + + * cppmacro.c (stringify_arg): Null terminate strings. + +2001-03-27 Zack Weinberg + + * config.gcc (m68hc11-*-*, m68hc12-*-*): Convert to new tm.h + inclusion style. xm-m68hc11.h no longer exists. + * config/m68hc11/xm-m68hc11.h: Delete file. + * config/m68hc11/m68hc12.h: Convert to new tm.h inclusion style. + + * config/m68hc11/m68hc11.h: Convert to new tm.h inclusion style. + Don't define GCC_VERSION, N_, or PARAMS; don't include + gansidecl.h or stdio.h. Define inhibit_libc here. + Make code conditioned on #if GCC_VERSION > 2095 unconditional. + Delete code conditioned on #if GCC_VERSION == 2095. + + * config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c: + Make code conditioned on #if GCC_VERSION > 2095 unconditional. + Delete code conditioned on #if GCC_VERSION == 2095. + +2001-03-27 Kaveh R. Ghazi + + * system.h: Include symcat.h. + (STRINGIFY): Don't define. + + * configure.in: Adjust comment. + + * builtins.c: Use STRINGX, not STRINGIFY. + * gencheck.c: Likewise. + * gengenrtl.c: Likewise. + * protoize.c: Likewise. + + * cpplex.c: Don't include symcat.h. + * cpplib.c: Likewise. + + * gansidecl.h (HAVE_STRINGIZE): Don't define. + +2001-03-27 Alan Modra + + * c-typeck.c (digest_init): Fold init expression. + +2001-03-26 Kaveh R. Ghazi + + * sbitmap.c (sbitmap_copy): Call memcpy, not bcopy. + +2001-03-27 Alan Modra + + * except.c (eh_regs): Save results of build_pointer_type to a temp + as FUNCTION_VALUE macro may evaluate its args multiple times. + +2001-03-26 Mark Mitchell + + * c-common.h (DECL_NUM_STMTS): New macro. + * c-decl.c (duplicate_decls): Copy DECL_NUM_STMTS, not + DECL_FRAME_SIZE. + (pushdecl): Likewise. + * c-semantics.c (add_stmt): Update DECL_NUM_STMTS. + * integrate.c (expand_inline_function): Don't check + DECL_FRAME_SIZE. + * print-tree.c (print_node): Don't print it. + * toplev.c (rest_of_compilation): Don't try to inline when + flag_no_inline is on. + * tree.h (DECL_FRAME_SIZE): Remove. + (tree_decl): Adjust accordingly. + +2001-03-26 Kaveh R. Ghazi + + * combine.c (try_combine): Use memcpy, not bcopy. + + * genattrtab.c (expand_units): Likewise. + +Mon Mar 26 15:55:08 CEST 2001 Jan Hubicka + + * i386.md (push mem DI peep2): New. + (mov 0, mov -1 peep2): Handle 64bit. + (lea to arithmetics peep2): Handle 64bit leas. + (rsp arithmetics to push/pop peep2s): New. + + * i386.md (truncdfsf2_3, trunctfsf2_2): Change predicate to memory_operand. + +Mon Mar 26 14:35:18 CEST 2001 Jan Hubicka + + * i386.c (struct machine_function): Add save_varrargs_registers. + (ix86_save_varrargs_registers): New macro. + (ix86_frame_layout): Support 64bit; support red zones and varrargs area. + (ix86_expand_prologue): Likewise. + (ix86_emit_epilogue_esp_adjustement): Likewise. + (ix86_expand_epilogue): Likewise. + * i386.md (pro_epilogue_adjust_stack): Turn to expander; support 64bit. + (pro_epilogue_adjust_stack_1): New insn. + (pro_epilogue_adjust_stack_rex64): Likewise. + * i386.h (MASK_NO_RED_ZONE): New constant. + (TARGET_RED_ZONE): New macro. + (TARGET_OPTIONS): Add "red-zone" and "no-red-zone" + (RED_ZONE_SIZE): New constant. + (RED_ZONE_RESERVE): New constant. + +2001-03-25 Kaveh R. Ghazi + + * toplev.c (set_float_handler): Use memcpy, not bcopy. + +2001-03-25 Kazu Hirata + + * config/h8300/h8300.md (umodqi3): Output a tab instead of a + space. + (modqi3): Likewise. + (umodhi3): Likewise. + (modhi3): Likewise. + +2001-03-25 Kaveh R. Ghazi + + * mkconfig.sh (DEFINES): Handle entries with '='. + + * config.gcc: Don't use i370/xm-mvs.h or ns32k/xm-pc532-min.h. + Set xm_defines to MACRO=value instead. + + * i370/xm-mvs.h: Delete. + + * ns32k/xm-pc532-min.h: Likewise. + +Sun Mar 25 15:01:40 CEST 2001 Jan Hubicka + + * i386.md (ashldi3, ashrdi3, lshrdi3): Change predicates to + shiftdi_operand; + use ix86_expand_binary_operator + (?sh??i_?): Disable for 64bit. + * i386.h (PREDICATE_CODES): Add shiftdi_operand. + * i386.c (shiftdi_operand): New predicate. + + * (ashldi3_1_rex64, ashldi3_cmp_rex64, ashlsi3_1_zext, ashlsi3_cmp_zext, + ashrdi3_63_rex64, ashrdi3_1_one_bit_rex64, ashrdi3_1_rex64, + ashrdi3_one_bit_cmp_rex64, ashrdi3_cmp_rex64, ashrsi3_31_zext, + ashrsi3_1_one_bit_zext, ashrsi3_1_zext, ashrsi3_one_bit_cmp_zext, + ashrsi3_cmp_zext, lshrdi3_1_one_bit_rex64, lshrdi3_1_rex64, + lshrdi3_cmp_one_bit_rex64, lshrdi3_cmp_rex64, lshrsi3_1_one_bit_zext, + lshrsi3_1_zext, lshrsi3_cmp_one_bit_zext, lshrsi3_cmp_zext, + rotlsi3_1_one_bit_rex64, rotldi3_1_rex64, + rotlsi3_1_one_bit_zext, rotlsi3_1_zext, rotrdi3_1_one_bit_rex64, + rotrdi3_1_rex64, rotrsi3_1_one_bit_zext, rotrsi3_1_zext): New patterns. + (rotldi3, rotrdi3): New expanders. + +Sun Mar 25 14:25:33 CEST 2001 Jan Hubicka + + * i386.md (movstrsi): Move offline. + (movstrdi): New. + (strmovdi_rex64): New. + (strmov?i): Accept 64bit. + (strmov?i_rex64): New. + (strmov?i_rex_1): New. + (strmov?i_1): Disable for 64bit. + (rep_mov?i_rex64): New. + (rep_mov?i): Disable for 64bit. + (clrstrsi): Move offline. + (strset?i_rex64): New. + (strset?i: Accept 64bit. + (rep_stos?i): Disable for 64bit. + (rep_stos?i_rex64): New. + (strset?i_rex_1): New. + (strset?i_1): Disable for 64bit. + (cmpstrsi): Accept 64bit. + (cmpstrsi_nz_1): Rename to cmpstrqi_nz_1; Disable for 64bit. + (cmpstrqi_nz_rex_1): New. + (cmpstrsi_1): Rename to cmpstrqi_1; Disable for 64bit. + (strlensi): Move offline. + (strlendi): New. + (strlenqi_1): Disable for 64bit; fix constraints. + (strlenqi_rex_1): New. + * i386.c (ix86_adjust_counter): New static function. + (ix86_zero_extend_to_Pmode): Likewise. + (ix86_expand_aligntest): Likweise. + (ix86_expand_strlensi_unroll_1): Make static; update for 64bit. + (ix86_expand_movstr): New global function. + (ix86_expand_clrstr): New global function. + (ix86_expand_strlen): New global function. + * i386-protos.h (ix86_expand_movstr, ix86_expand_clrstr, + ix86_expand_strlen): Declare. + (ix86_expand_strlensi_unroll_1): Delete. + +Sat Mar 24 23:15:19 CET 2001 Jan Hubicka + + * i386.md (cmpdi): Fix operand predicates. + (cmpdi_ccno_1_rex64, cmpdi_minus_1_rex64, cmpdi_1_rex64, + cmpdi_1_insn_rex64): New patterns. + (adddi3): Turn to expander. + (adddi3_1, adddi3_carry_rex64, adddi3_cc_rex64): New patterns. + (addsi3_carry_zext): New pattern. + (adddi_?_rex64): New patterns and splitters. + (addsi_?_zext): New patterns. + (subsi3_carry_zext): New pattern. + (subdi_?_rex64): New patterns and splitters. + (iorsi_?_zext): New patterns. + (iordi_?_rex64): New patterns and splitters. + (iorsi_?_zext): New patterns. + (iorsi_?_zext_imm): New patterns. + (xorsi_?_zext): New patterns. + (xordi_?_rex64): New patterns and splitters. + (xorsi_?_zext): New patterns. + (negdi*): New patterns. + (one_cmpldi*): Likewise. + (one_cmplsi*_zext, negsi*_zext): Likewise. + (testqi_ext_3_rex64): New pattern. + +Sat Mar 24 21:13:28 CET 2001 Jan Hubicka + + * i386-protos.h (ix86_split_long_move): Return void. + * i386.c (ix86_split_to_parts): Handle 64bit target. + (ix86_split_long_move): Likewise. + * i386.md (all calls to ix86_split_long_move): Update. + +2001-03-23 Richard Henderson + + * config/mips/iris4.h (ASM_OUTPUT_ASCII): Rename local variables + to avoid shadowing arguments. + +2001-03-23 Jakub Jelinek + + * varasm.c (make_decl_rtl): Don't append var_labelno discriminator + to variable names where DECL_NAME is different from + DECL_ASSEMBLER_NAME. + +2001-03-23 Jim Wilson + + * varasm.c (make_decl_rtl): Add TREE_PUBLIC check to abort test. + (assemble_alias): Call make_decl_rtl. + +Fri Mar 23 16:59:08 2001 J"orn Rennecke + + * stor-layout.c (layout_type): Give OFFSET_TYPE a MODE_INT type. + +2001-03-23 Bryce McKinlay + + * extend.texi: Document the "java_interface" attribute. + +2001-03-22 Zack Weinberg + + * mkconfig.sh: Use a subshell with redirected stdout, + instead of closing stdout and confusing commands that run + afterward. Throw away output of cmp. + +2001-03-22 Gordon Sadler + + * Makefile.in (stage1_build): Pass CFLAGS to stage1_build. + +Thu Mar 22 22:15:59 CET 2001 Jan Hubicka + + * i386.md (zero_extendsidi2_32): Break out from ... + (zero_extendsidi2): ... here ; turn to expander. + (zero_extendsidi2_rex64): New. + (extendsidi2_32): Break out from ... + (extendsidi2): ... here ; turn to expander. + (extendsidi2_rex64): New. + (zero_extendhidi2, zero_extendqidi2, extendhidi2, extendqidi2): New. + (trunc?f?f splitters): Add 64bit versions. + +Thu Mar 22 21:41:16 CET 2001 Jan Hubicka + + * i386.md (pushsi, pushsi2_prologue): Disable. + (pushsi2_rex64): New. + (movabs?i_1_rex64, movabs?i_2_rex64): New. + (movqi_ext_1): Disable for 64bit. + (movqi_ext_1_rex64): New. + (pushdi2_rex64): New pattern, peep2s and splitter. + (pushdi2_prologue_rex64): New pattern. + (popdi1_epilogue_rex64, popdi1, movdi_xor_rex64, movdi_or_rex64): + Likewise. + (movdi splitters): Disable for 64bit. + (movdi_1_rex64): New pattern, peep2s and splitters. + (swapdi): New pattern. + (pushsf): Disable for 64bit. + (pushsf_rex64): New pattern and splitter. + (pushdf_nointeger): Disable for 64bit. + (pushdf_integer): Handle the 64bit case. + (pushtf): Likewise; update splitters. + +2001-03-22 Richard Henderson + + * mkconfig.sh: Include insn-flags.h. + * Makefile.in (CONFIG_H): Include insn-flags.h. + (lots of objects): Remove insn-codes.h and insn-flags.h. + + * alias.c, bb-reorder.c, calls.c, do-loop.c, flow.c, haifa-sched.c, + integrate.c, jump.c, loop.c, predict.c, profile.c, reg-stack.c, + regmove.c, reorg.c, a29k/a29k.c, alpha/alpha.c, arc/arc.c, arm/arm.c, + avr/avr.c, clipper/clipper.c, convex/convex.c, d30v/d30v.c, + dsp16xx/dsp16xx.c, fr30/fr30.c, h8300/h8300.c, i370/i370.c, + i386/i386.c, i860/i860.c, ia64/ia64.c, m32r/m32r.c, m68hc11/m68hc11.c, + m68k/m68k.c, m88k/m88k.c, mcore/mcore.c, mn10200/mn10200.c, + mn10300/mn10300.c, ns32k/ns32k.c, pa/pa.c, pdp11/pdp11.c, + pj/pj.c, romp/romp.c, rs6000/rs6000.c, sh/sh.c, sparc/sparc.c, + v850/v850.c, vax/vax.c: + Don't include insn-flags.h. + + * diagnostic.c, expr.h, reload.c, toplev.c: + Don't include insn-codes.h. + + * builtins.c, combine.c, except.c, explow.c, expmed.c, expr.c, + final.c, function.c, optabs.c, recog.c, reload1.c, stmt.c, + c4x/c4x.c, i960/i960.c, mips/mips.c: + Don't include insn-codes.h or insn-flags.h. + + * genemit.c, genopinit.c, genoutput.c: Don't include insn-codes.h + or insn-flags.h in the generated code. + * genflags.c (gen_proto): Use "struct rtx_def *" instead of "rtx". + (main): Forward declare struct rtx_def. + +2001-03-22 Joseph S. Myers + + * invoke.texi (-ffast-math): Remove duplicate line about + __FAST_MATH__. + + * gcc.texi: Remove more obsolete documentation of bugs and + installation problems. + +2001-03-21 Kazu Hirata + + * config/h8300/h8300.md (movsi_h8300hs): Split the 2nd alternative + into two parts. + +2001-03-20 Jason Merrill + + * collect2.c (is_ctor_dtor): Always use '_' in the file fn names, + not '.' or '$'. + * tree.c (FILE_FUNCTION_FORMAT): Likewise. + * varasm.c (CHKR_PREFIX): Likewise. + +Wed Mar 21 14:27:11 2001 Richard Kenner + + * gcse.c (hash_scan_set): An expression is not anticipatible if it + is part of a multi-SET insn. + + * cse.c (find_comparison_args): Remove previous change. + * ifcvt.c (noce_process_if_block): When moving an insn, remove any + REG_EQUAL notes. + + * config/i386/i386.md (conditional_trap): Remove warning. + + * recog.c (push_operand): Fix error in last change that caused + undefined symbol on many targets. + + * sdbout.c: #include ggc.h. + (sdbout_init): Move to end of file. + Call ggc_add_tree_root for anonymous_types. + (sdbout_symbol): Use DECL_NAME for local, not DECL_ASSEMBLER_NAME. + (sdbout_one_type): Use DECL_NAME for field name. + * Makefile.in (sdbout.o): Show includes ggc.h. + +Wed Mar 21 20:33:26 CET 2001 Jan Hubicka + + * i386.c (override_options): Default ix86_regparm to REGPARM_MAX. + (override_options): Use properlimits for preferred_stack_boundary. + (ix86_valid_type_attribute_p): Disable stdcall and cdecl attributes + on x86_64. + (ext_register_operand): Accept DImode. + (load_pic_register): Abort on 64bit. + (gen_push): Use Pmode instead of SImode. + (ix86_save_reg): Pic reg is never used on 64bit. + (ix86_expand_prologue): Likewise. + (ix86_emit_save_regs): Use Pmode instead of SImode. + (legitimate_address_p): Check displacement for 64bit. + (print_operand): Avoid outputting of (%rip) on 64bit. + (print_operand_address): Output (%rip) where possible. + (split_di): Abort on 64bit registers. + (ix86_expand_branch): DImode comparison is simple for x86_64. + (memory_address_length): Recognize memory addresses formed using + PRE/POST modify. + (ix86_data_alignment, ix86_local_alignment): Align arrays to 16 bytes + for x86_64. + * i386.h (TARGET_USE_SAHF): Disable for 64bit. + +Wed Mar 21 18:51:19 CET 2001 Jan Hubicka + + * recog.c (push_operand): Recognize new format of push instructions. + +Wed Mar 21 10:53:57 CET 2001 Jan Hubicka + + * i386.md (pushqi1): New. + * i386-protos.h (x86_64_general_operand, x86_64_szext_general_operand, + x86_64_nonmemory_operand, x86_64_szext_nonmemory_operand, + x86_64_immediate_operand, x86_64_immediate_operand, + x86_64_zext_immediate_operand): Declare. + * i386.c (x86_64_general_operand, x86_64_szext_general_operand, + x86_64_nonmemory_operand, x86_64_szext_nonmemory_operand, + x86_64_immediate_operand, x86_64_immediate_operand, + x86_64_zext_immediate_operand): define. + * i386.h (PREDICATE_CODES): Add new predicates. + +Wed Mar 21 10:25:13 CET 2001 Jan Hubicka + + * i386.md (pophi1, popqi1, pushqi1): Remove. + + * expr.c (emit_single_push_insn): New function. + (move_by_pieces): Accept NULL as destination for push instructions. + (gen_push_operand): Kill. + (emit_push_insn): Pass NULL when pushing; avoid updating of + stack_pointer_delta. + * expr.h (gen_push_operand): Kill. + +Tue Mar 20 20:15:06 2001 Richard Kenner + + * rtl.texi (COMPARE): Clarify documentation and reference section + on comparisons. + +2001-03-20 Stan Shebs + + * objc/objc-act.c (get_static_reference): Use NULL_TREE. + (get_object_reference): Ditto. + (error_with_ivar): Use error_with_file_and_line. + (warn_with_method): Use warning_with_file_and_line. + +2001-03-20 Tom Tromey + + * libgcc-std.ver: Added __fixunssfsi and __fixunsdfsi. + +2001-03-20 Mark Mitchell + + * tree.c (set_decl_assembler_name): Set DECL_ASSEMBLER_NAME for + variables that are TREE_PUBLIC, even if not TREE_STATIC. + +2001-03-20 DJ Delorie + + * Makefile.in (install-libgcc): Pass complete list of variables. + (install-multilib): Ditto. + +2001-03-20 David Billinghurst + + * config/i386/cygwin.h: Declare ctor_section, dtor_section + drectve_section, switch_to_section. + + * winnt.c: Declare functions associated_type, gen_stdcall_suffix, + i386_pe_dllexport_p, i386_pe_dllimport_p, i386_pe_mark_dllexport, + i386_pe_mark_dllimport. + +2001-03-20 David Billinghurst + + * config/i386/cygwin.h: Include Declare and constify + functions i386_pe_*. + + * config/i386/winnt.c: Include "tm_p.h" and "toplev.h" Constify + i386_pe_* functions with char * arguments. + +2001-03-20 Alexandre Oliva + + * config/sh/sh.md (movsf_ie): Fix output patterns for fpul load + and store. + (movsi_ie): Introduce fpul store. + +2001-03-20 Alan Modra + + * Makefile.in (OBJS): Remove hashtab.o. + +2001-03-19 Stan Shebs + + * objc/objc-act.c (maybe_objc_method_name): Remove, never called. + * c-lang.c (maybe_objc_method_name): Ditto. + * c-tree.h (maybe_objc_method_name): Remove decl. + +2001-03-19 Tom Tromey + + * gcc.c (init_gcc_specs): Fix comment. + +2001-03-19 Mark Mitchell + + Compute DECL_ASSEMBLER_NAME lazily. + * tree.h (DECL_ASSEMBLER_NAME): Compute it lazily. + (DECL_ASSEMBLER_NAME_SET_P): New macro. + (SET_DECL_ASSEMBLER_NAME): Likewise. + (COPY_DECL_ASSEMBLER_NAME): Likewise. + (set_decl_assembler_name): Declare. + (lang_set_decl_assembler_name): Likewise. + * tree.c (lang_set_decl_assembler_name): New variab.e + (set_decl_assembler_name): New function. + (init_obstacks): Set lang_set_decl_assembler_name. + (build_decl): Don't set DECL_ASSEMBLER_NAME. + * c-decl.c (duplicate_decls): Use SET_DECL_ASSEMBLER_NAME, + COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME + where it's not necessary. + (builtin_function): Likewise. + (finish_decl): Likewise. + * dbxout.c (dbxout_type_methods): Likewise. + * ggc-common.c (ggc_mark_trees): Likewise. + * profile.c (output_func_start_profiler): Likewise. + * varasm.c (make_decl_rtl): Likewise. + + * cse.c (find_comparison_args): Update documentation. Fix + mishandling of COMPARE operations. + + * tree.def (ABS_EXPR): Add documentation. + * fold-const.c (fold): Improve folding of ABS_EXPRs. + +2001-03-19 Zack Weinberg + + * Makefile.in (hash.o): Depend on $(GCONFIG_H), not $(CONFIG_H). + +2001-03-19 Jakub Jelinek + + * crtstuff.c (init_dummy): Use CRT_END_INIT_DUMMY if defined. + Remove ia32 linux PIC kludge and move it... + * config/i386/linux.h (CRT_END_INIT_DUMMY): ...here. + +Mon Mar 19 18:53:54 CET 2001 Jan Hubicka + + * i386.md (absdf2 expander): Fix 64bit case. + +2001-03-19 Brad Lucier + + * Makefile.in: Have splay-tree.o depend on $(GCONFIG_H). + +2001-03-16 Andrew Haley + + * config/ia64/libgcc-ia64.ver: Add __ia64_backtrace. + +2001-03-19 Gerald Pfeifer + + * README.X11: Remove obsolete file. + +2001-03-18 Anthony Green + + * config/pj/pj.h: Remove some trailing commas. + (ASM_SPEC): Use -EB and -EL, not -mb and -ml. + +2001-03-18 Richard Henderson + + * defaults.h (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Move from ... + * calls.c: ... here. + * combine.c, expr.c, final.c, function.c toplev.c: Don't provide + defaults for them here. + +2001-03-17 Anthony Green + + * config/pj/lib1funcs.S: Fix broken comment. + * config/pj/pj.h (LOCAL_LABEL_PREFIX): Prefix internal + labels with '.'. + +2001-03-18 Joseph S. Myers + + * gcc.texi: Remove obsolete information relating to build and + installation problems with enquire or the Pyramid C compiler. + +2001-03-17 Richard Henderson + + * dwarf2out.c (queue_reg_save): New. + (flush_queued_reg_saves, clobbers_queued_reg_save): New. + (dwarf2out_frame_debug_expr): Call queue_reg_save instead of + dwarf2out_reg_save. + (dwarf2out_frame_debug): Call flush_queued_reg_saves when needed. + (cfa, cfa_store, cfa_temp): Make static. + * final.c (final_scan_insn): Always call dwarf2out_frame_debug. + +2001-03-17 Richard Henderson + + * integrate.h (struct inline_remap): Add local_return_label. + * integrate.c (expand_inline_function): Initialize it and emit + it after copy_insn_notes. + (copy_insn_list): Don't store local_return_label here. + (copy_insn_notes): New function split out from copy_insn_list. + +2001-03-17 Richard Henderson + + * dwarf2out.c (lookup_filename): Emit .file if the assembler + is generating .debug_line. + (dwarf2out_init): Add main_input_filename to the file table first. + * configure.in (as_dwarf2_debug_line): Test with file number 1 + instead of file number 0. + +Sat Mar 17 11:52:34 2001 Richard Kenner + + * combine.c (undobuf): Remove field previous_undos; all refs deleted. + (gen_rtx_combine): Deleted; all references changed as appropriate. + (gen_unary): Deleted; all refs changed to call simplify_gen_unary. + + * print-tree.c (print_node): Print DECL_NONADDRESSABLE_P. + +2001-03-17 David Billinghurst + + * config/i386/xm-cygwin.h: Include + + * config/ia64/ia64.c (ia64_compute_frame_size): If reg_fp is zero, + then set it to LOC_REG (79) instead of aborting. + +2001-03-16 Phil Edwards + + * gccbug.in: Remove high priority. + +2001-03-16 Richard Henerson + + * aclocal.m4 (gcc_AC_EXAMINE_OBJECT): Substitute leading od + output with a space instead of deleting it. + * configure: Regenerate. + +2001-03-16 Zack Weinberg + + * aclocal.m4 (gcc_AC_EXAMINE_OBJECT): New utility macro which + handles the gory details of converting an object file into + something that's safe to grep. + (gcc_AC_C_COMPILE_BIGENDIAN): Rename to + gcc_AC_C_COMPILE_ENDIAN. Use gcc_AC_EXAMINE_OBJECT. Put + newlines at either end of the string we're looking for. + Make 'checking ...' message less stilted. + (gcc_AC_C_FLOAT_FORMAT): Use gcc_AC_EXAMINE_OBJECT. Handle + ARM in-memory layout and its hypothetical converse. Don't + define HOST_FLOAT_WORDS_BIG_ENDIAN unless it's different from + HOST_WORDS_BIG_ENDIAN. + + * configure.in: Adjust for renamed macro. Move + gcc_AC_C_FLOAT_FORMAT below gcc_AC_C_COMPILE_ENDIAN. + * configure, config.in: Regenerate. + +2001-03-16 Laurynas Biveinis + + * fixinc/Makefile.in: Set SHELL. + +2001-03-16 Laurynas Biveinis + + * fixinc/fixincl.c (fix_with_system): Quote file names before + passing them to shell. + +2001-03-16 Laurynas Biveinis + + * Makefile.in: Use fix-header$(build_exeext) instead + of fix-header. + +2001-03-16 Richard Henderson + + * dwarf2out.c: Revert most of 2000-11-25 and 2001-01-24 changes. + (LN_PROLOG_AS_LABEL, LN_PROLOG_END_LABEL): New. + (size_of_line_prolog): Remove. + (output_line_info): Compute prologue size via label difference. + (lookup_filename): Return "unspecified" for and . + + * configure.in (HAVE_AS_DWARF2_DEBUG_LINE): Require that the + assembler error when redefining file numbers. + * config.in, configure: Rebuild. + + * dwarf2asm.c (dw2_asm_output_data): Mask data to the output size. + (dw2_asm_output_data_uleb128): Use space not tab after .uleb128. + (dw2_asm_output_delta_uleb128): Likewise. + (dw2_asm_output_delta_sleb128): Similarly. + (dw2_asm_output_data_sleb128): Similarly. Print number in decimal. + +2001-03-16 Michael Meissner + + * mips.h (BITMASK_HIGH): Replacement for 0x80000000 that avoids + warnings. + (BITMASK_UPPER16): Replacement for 0xffff0000 that avoids + warnings. + (BITMASK_LOWER16): Replacement for 0x0000ffff. + + * mips.c (save_restore_insns): Use BITMASK_UPPER16/BITMASK_LOWER16 + instead of 0xffff0000/0x0000ffff to avoid warnings about constants + being unsigned in ISO C and signed in traditional. + (expand_prologue): Ditto. + (RA_MASK): Use BITMASK_HIGH to avoid warnings. + + * mips.md (divmodsi4,divmodsi4): Use BITMASK_HIGH to avoid + warnings. + (divsi3,divdi3): Ditto. + (modsi3,moddi3): Ditto. + (fix_truncdfsi2,fix_truncdfdi2): Ditto. + (fix_truncsfsi2,fix_truncsfdi2): Ditto. + (movsi split): Use BITMASK_UPPER16/BITMASK_LOWER16 to avoid + warnings. + +Fri Mar 16 14:47:57 CET 2001 Jan Hubicka + + * i386.c (ix86_expand_fp_movcc): Do not attempt to construct + SSE based conditional moves on LTGT/UNEQ conditions; + Canonicalize EQ to NE. + * i386.md (sse_mov?fcc): Disallow EQ and NE in IEEE mode. + (sse_mov?fcc_ne): New. + + * i386-protos.h (sign_extended_value, zero_extended_value): Declare. + +2001-03-16 Alexandre Oliva + + * config/sh/sh.c (sh_expand_prologue): Insns that set up the PIC + register may be dead. + +2001-03-16 Brad Lucier + + * Makefile.in (hash.o): Depend on CONFIG_H. + +2001-03-15 Mark Mitchell + + * dwarf2out.c (rtl_for_decl_location): Use DECL_RTL_IF_SET. + +2001-03-15 Richard Henderson + + * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): New. + (ASM_OUTPUT_DWARF_PCREL): New. + * config/ia64/hpux.h (ASM_OUTPUT_DWARF_OFFSET): Remove. + +2001-03-16 Alexandre Oliva + + * cppfiles.c (stack_include_file): Use MAX of sysp. + +2001-03-15 Steve Ellcey + + * config.gcc (ia64*-*-hpux*): New case. + * config/ia64/hpux.h: New file for HP-UX support. + * config/ia64/t-hpux: New file for HP-UX support. + +2001-03-16 Bruce Korb , Alexandre Oliva + + * fixinc/inclhack.def (irix_stdio_va_list): New. + * fixinc/fixincl.x: Rebuilt. + +2001-03-15 Richard Henderson + + * dwarf2asm.c (dw2_asm_output_offset): Use ASM_OUTPUT_DWARF_OFFSET + if provided by the target. + (dw2_asm_output_pcrel): Likewise with ASM_OUTPUT_DWARF_PCREL. + (dw2_asm_output_addr): New. + * dwarf2asm.h (dw2_asm_output_addr): Declare. + * dwarf2out.c (output_cfi): Use it for program addresses. + (output_call_frame_info, output_die): Likewise. + (output_aranges, output_line_info): Likewise. + +2001-03-15 Bruce Korb + + * gcc.c(main): make more rigorous + * collect2.c(main): guard against ignoring SIGCHLD + * protoize.c(main): ditto + * gcc/fixinc/fixincl.c(initialize): ditto + +2001-03-15 Mark Mitchell + + * sdbout.c (sdbout_symbol): Use DECL_RTL_SET_P, SET_DECL_RTL. + (sdbout_parms): Likewise. + +Thu Mar 15 12:57:14 2001 Jeffrey A Law (law@cygnus.com) + + * reload1.c (reload_cse_simplify_set): For LOAD_EXTEND_OP, do not + "widen" a destination that is already wider than a word. Also do + not widen if LOAD_EXTEND_OP is NIL for the given mode. + +2001-03-15 Bernd Schmidt + + * config/ia64/ia64.c (ia64_sched_reorder): Remove debugging aids. + +Thu Mar 15 11:30:31 EST 2001 John Wehle (john@feith.com) + + * i960.h (ROUND_TYPE_SIZE_UNIT): Fix typo. + +Thu Mar 15 11:24:29 EST 2001 John Wehle (john@feith.com) + + * i960.h (i960_maxbitalignment, + i960_last_maxbitalignment): Declare. + * i960.c (i960_maxbitalignment, + i960_last_maxbitalignment): Make global. + (process_pragma): Delete. + (i960_pr_align, i960_pr_noalign): Move from here ... + * i960-c.c: ... to this new file. + * t-960bare (i960-c.o): New rule. + * t-vxworks960 (i960-c.o): Likewise. + * config.gcc (i960-*-*): Define c_target_objs and + cxx_target_objs. + +2001-03-15 Bernd Schmidt + + * cselib.c (hash_rtx): For REG and MEM, just use value of expression + without adding in rtx code and mode. + + * alias.c (init_alias_analysis): Don't use any rtx whose value + varies as a known value. + Delete a superfluous test. + + * config/ia64/ia64.c (maybe_rotate): New function, broken out of + ia64_sched_reorder. + (ia64_sched_reorder): Call maybe_rotate; also rotate after + scheduling a stop bit. + (ia64_emit_nops): Correctly handle ASMs. + +2001-03-15 Mark Mitchell + + * varasm.c (assemble_variable): Use DECL_RTL_SET_P. + +2001-03-15 Neil Booth + + * cpp.texi: Update documentation for -include and -imacros. + * cppfiles.c (struct include_file): Remove "defined" memeber. + (find_or_create_entry): Make a copy of the file name, and + simplify it. + (open_file): Update to ensure we use the simplified filename. + (stack_include_file): Don't set search_from. + (cpp_included): Don't simplify the path name here. + (find_include_file): New prototype. Call search_from to + get the start of the "" include chain. Don't simplify the + filenames here. + (_cpp_execute_include): New prototype. Move diagnostics to + do_include_common. Update. + (_cpp_pop_file_buffer): Don't set defined. + (search_from): New prototype. Use the preprocessor's cwd + for files included from the command line. + (read_name_map): Don't simplify the pathname here. + * cpphash.h (enum include_type): New. + (struct buffer): Delete search from. New search_cached. + (_cpp_execute_include): Update prototype. + * cppinit.c (do_includes): Use _cpp_execute_include. + * cpplib.c (do_include_common): New function. + (do_include, do_include_next, do_import): Use it. + +2001-03-14 Mark Mitchell + + * varasm.c (assemble_alias): Use DECL_ASSEMBLER_NAME, not the + contents of the RTL, to determine the name of the object. + +2001-03-14 Mark Mitchell + + * tree.h (DECL_RTL): Allocate RTL lazily. + (SET_DECL_RTL): New macro. + (DECL_RTL_SET_P): Likewise. + (COPY_DECL_RTL): Likewise. + (DECL_RTL_IF_SET): Likewise. + * varasm.c (make_decl_rtl): Add assertions about the kind of + declaration we are processing. + * c-decl.c (duplicate_decls): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc. + (start_decl): Likewise. + (finish_decl): Likewise. + * c-semantics.c (emit_local_var): Likewise. + * calls.c (expand_call): Likewise. + * dbxout.c (dbxout_symbol): Likewise. + * emit-rtl.c (unshare_all_rtl): Likewise. + (unshare_all_decls): Likewise. + (reset_used_decls): Likewise. + * expr.c (store_constructor): Likewise. + (safe_from_p): Likewise. + (expand_expr): Likewise. + * function.c (put_var_into_stack): Likewise. + (instantiate_decls_1): Likewise. + (assign_parms): Likewise. + (expand_function_start): Likewise. + (expand_function_end): Likewise. + * ggc-common.c (gcc_mark_trees): Likewise. + * integrate.c (function_cannot_inline_p): Likewise. + (copy_decl_for_inlining): Likewise. + (expand_inline_function): Likewise. + (integrate_parm_decls): Likewise. + (integrate_decl_tree): Likewise. + * print-tree.c (print_node): Likewise. + * reg-stack.c (stack_result): Likewise. + * stmt.c (label_rtx): Likewise. + (expand_return): Likewise. + (expand_decl): Likewise. + (expand_decl_cleanup): Likewise. + (expand_anon_union_decl): Likewise. + * toplev.c (check_global_declarations): Likewise. + (rest_of_decl_compilation): Likewise. + * tree.c (simple_cst_equal): Likewise. + * objc/objc-act.c (generate_static_references): Likewise. + +2001-03-14 Zack Weinberg + + * aclocal.m4 (gcc_AC_C_CHARSET, gcc_AC_C_COMPILE_BIGENDIAN, + gcc_AC_C_FLOAT_FORMAT): New macros. + * configure.in: Add AC_PROG_CPP after CC tests; + gcc_AC_C_CHARSET and gcc_AC_C_FLOAT_FORMAT after the sizeof + tests; and gcc_AC_C_COMPILE_BIGENDIAN after gcc_AC_C_CHAR_BIT. + * configure, config.in: Regenerate. + + * config/a29k/xm-a29k.h, config/arc/xm-arc.h, + config/arm/xm-arm.h, config/c4x/xm-c4x.h, + config/convex/xm-convex.h, config/d30v/xm-d30v.h, + config/i370/xm-linux.h, config/i370/xm-oe.h, + config/ia64/xm-ia64.h, config/m32r/xm-m32r.h, + config/m68k/xm-m68k.h, config/mips/xm-mips.h, + config/pa/xm-linux.h, config/pa/xm-pa.h, + config/rs6000/xm-lynx.h, config/rs6000/xm-mach.h, + config/rs6000/xm-rs6000.h, config/rs6000/xm-sysv4.h, + config/sparc/xm-sparc.h, config/vax/xm-vax.h, + config/we32k/xm-we32k.h: Delete. + + * config/i370/xm-mvs.h, config/m88k/m88k.h, + config/romp/xm-romp.h, config/rs6000/xm-beos.h, + config/vax/xm-vms.h: Don't define any of: + HOST_FLOAT_FORMAT, HOST_EBCDIC, HOST_WORDS_BIG_ENDIAN + + * config/rs6000/aix.h: Define COLLECT_EXPORT_LIST here. + + * config.gcc: Remove references to deleted files. + (i370-*-opened*): Use i370/xm-mvs.h (which now defines only + FATAL_EXIT_CODE, which is the same between oe and mvs). + +2001-03-14 DJ Delorie + Vladimir Makarov + + * config/i960/i960.c (i960_function_prologue): Compute size of + frame according to number of registers actually saved there. + +2001-03-14 Richard Henderson + + * expr.c (emit_move_insn_1): Fix else if around #endif. + +Wed Mar 14 22:39:12 CET 2001 Jan Hubicka + Vojtech Pavlik + + * md.texi (machine constraints): Document 'Q', 'R', 'e' and 'Z' + constraints. + +Wed Mar 14 22:26:10 CET 2001 Jan Hubicka + + * i386.c (ix86_cmodel_string, ix86_cmodel): Define. + (override_options): Parse cmodel string. + (x86_64_sign_extended_value, x86_64_zero_extended_value): New. + * i386.h (TARGET_OPTIONS): Add "cmodel". + (EXTRA_CONSTRAINT): Recognize 'e' and 'Z'. + (enum cmodel): New. + (ix86_cmodel_string, ix86_cmodel): Declare. + +Wed Mar 14 22:26:54 CET 2001 Jan Hubicka + + Spot by Matt Kraai: + * i386.h (GENERAL_REG_P): Add missing REG_P. + +2001-03-14 Laurynas Biveinis + + * configure.in: Use $gcc_cv_as instead of $as. + * configure: Regenerated. + +2001-03-14 Neil Booth + + * cppfiles.c (stack_include_file): Only increase the include + count if we actually process the file properly, as opposed + to treating it as length zero. Only call read_include_file + if not DO_NOT_REREAD. Handle the -H include file output + here. + (read_include_file): Remove now redundant DO_NOT_REREAD check. + (cpp_included, find_include_file): Simplify pathnames after + remapping them. If remapping, don't use the remapped file + name's buffer as our scratch buffer. + (cpp_pop_file_buffer): Replace the multiple include macro + only if it isn't yet set. + (read_name_map): Simplify remapped names when reading in. + (remap_filename): Move code to code path that uses it. + (_cpp_simplify_pathname): Return the input pointer. + * cpphash.h (_cpp_simplify_pathname): Update prototype. + +2001-03-14 Mark Mitchell + + * expr.c (expand_expr): Revove bogus conditional. + +Wed Mar 14 19:29:50 CET 2001 Jan Hubicka + + * expr.c (emit_move_insn_1): Guard PUSH_ROUNDING use by ifdef. + +2001-03-14 Jakub Jelinek + + * reg-stack.c (stack_result): Unconditionally use + FUNCTION_OUTGOING_VALUE resp. FUNCTION_VALUE. + +Wed Mar 14 16:36:25 CET 2001 Jan Hubicka + + * expr.c (emit_move_insn_1): Split push of complex value when + no suitable push instruction exist. + + * i386.md (QImode move/add/shift patterns): Use ANY_QI_REG_P + instead of QI_REG_P. + +Tue Mar 13 22:22:04 2001 Richard Kenner + + * alias.c (handled_component_p, can_address_p): New functions. + (get_alias_set): Use them. + +2001-03-13 Jim Wilson + + * config/ia64/ia64.c (find_gr_spill): Subtract frame_pointer_needed + from 80 in try_locals code. + (ia64_expand_prologue): Add comment pointing to find_gr_spill change. + +2001-03-13 Zack Weinberg + + * aclocal.m4 (gcc_AC_COMPILE_CHECK_SIZEOF, gcc_AC_C_CHAR_BIT, + gcc_AC_C_LONG_LONG): New. + * configure.in: Use them. Probe the size of short, int, long, + and long long/__int64 if we have them. Move all the AC_C_* + checks together, except gcc_AC_C_CHAR_BIT which has to go + after AC_CHECK_HEADERS(limits.h). + Take hwint.h out of host_xm_file and build_xm_file. + + * hwint.h: Unconditionally define HOST_BITS_PER_CHAR, + HOST_BITS_PER_SHORT, HOST_BITS_PER_INT, HOST_BITS_PER_LONG, + and HOST_BITS_PER_LONGLONG in terms of SIZEOF_* and CHAR_BIT. + Move the HOST_WIDEST_INT setup logic here from system.h. + Provide HOST_WIDEST_INT even if HOST_BITS_PER_LONGLONG is not + defined. + * system.h: Include hwint.h after limits.h. HOST_WIDEST_INT + is now handled by hwint.h. + + * config/alpha/xm-alpha-interix.h, config/alpha/xm-vms.h, + config/c4x/xm-c4x.h, config/i370/xm-oe.h, + config/ia64/xm-ia64.h: Don't define any of: + HOST_BITS_PER_LONG, HOST_BITS_PER_CHAR, HOST_BITS_PER_SHORT, + HOST_BITS_PER_LONGLONG. + + * config/alpha/xm-alpha.h, config/dsp16xx/xm-dsp16xx.h, + config/h8300/xm-h8300.h, config/mips/iris6.h, + config/mn10200/xm-mn10200.h, config/pa/xm-pa64hpux.h, + config/sparc/xm-sp64.h: Delete. + * config.gcc: Remove references to deleted files. + + * config/arm/xm-arm.h, config/mips/xm-mips.h: Don't define + HOST_FLOAT_FORMAT to IEEE_FLOAT_FORMAT. + * config/i370/xm-linux.h: Clarify floating-point situation in + a comment. + +2001-03-13 Neil Booth + + * cppfiles.c (NO_INCLUDE_PATH): New macro. + (find_include_file): Decide here which part of the include + chain to start the search. Complain about an empty include + chain in all cases apart from an abolsute file name. + (_cpp_execute_include): Don't choose the search chain here. + Don't call handle_missing_include in the case of an empty + include chain. + (_cpp_compare_file_date): Don't choose the search chain here. + * cpplib.c (do_include_next): Move the in-main-file diagnostic + here from _cpp_execute_include. Behave like #include if + we're in the main file. + +2001-03-13 Kaveh R. Ghazi + + * system.h (malloc, realloc, calloc, strdup): Only poison these + tokens when IN_GCC is defined. + +Tue Mar 13 14:38:44 CET 2001 Jan Hubicka + + * i386.md (abs?f expander): Support SSE case. + (abd?f_if): Add new "USE"; add splitters. + +2001-03-13 Kaveh R. Ghazi + + * cpp.texi (poison): Explain the macro expansion exception. + +2001-03-13 Jakub Jelinek + + * expr.c (store_expr): Add dont_store_target. If temp is already in + target before copying to reg, don't store it into target again. + +2001-03-12 Neil Booth + + * cppinternals.texi: Update for file handling. + +2001-03-12 Jeffrey Oldham + + * emit-rtl.c (remove_unnecessary_notes): Reverse Richard Kenner's + 2001-02-24 which broke building the Java library. + * function.c (identify_blocks): Likewise. + (all_blocks): Likewise. + * integrate.c (integrate_decl_tree): Likewise. + * print-tree.c (print_node): Likewise. + * tree.h (BLOCK_NUMBER): Likewise. + (struct tree_block): Likewise. + +2001-03-12 David Edelsohn + + * rs6000/aix51.h (CPP_SPEC, CPLUSPLUS_CPP_SPEC): Fix typo in + __WCHAR_TYPE__ definition. + (WCHAR_TYPE_SIZE): #undef before #define. + +2001-03-12 Neil Booth + + * cppfiles.c: Update comments. + (destroy_include_file_node): Rename destroy_node. + (find_or_create_entry): New function. + (open_file, _cpp_fake_include): Use it. + (handle_missing_header): New function, broken out of + _cpp_execute include. Don't segfault if there is no + system or quoted path. + (_cpp_execute_include): Use handle_missing_header. + +2001-03-12 Jeffrey Oldham + + * jump.c (reversed_comparison_code_parts): Reverse Jan Hubricka's + 2001-02-28 patch because it breaks arm-linux and mips-sgi-irix6.5. + +Mon Mar 12 14:05:32 2001 Richard Kenner + + * flow.c (insn_dead_p): Don't consider two memrefs equivalent + unless anti_dependence says they are. + * alias.c (objects_must_conflict): If neither has a type specified, + they must conflict. + +2001-03-12 Neil Booth + David Billinghurst + + * config/mips/iris5.h: Change WCHAR_TYPE to int. + +Mon Mar 12 16:32:21 CET 2001 Jan Hubicka + + * i386.md (trunctfdf2_2): Rename missnamed pattern. + (*_one_bit): Remove type on the match_operand in attributes. + +Mon Mar 12 16:27:56 CET 2001 Jan Hubicka + + * i386.c: Commit forgotten hunk in previous patch. + (regclass_map): Add extended registers. + (dbx_register_map): Add missing frame register. + +Mon Mar 12 15:41:08 CET 2001 Jan Hubicka + + * i386.md (all XFmode patterns except swapxf): Disable for 64bit. + + * i386.md (x86_sahf_1): Disable for 64bit. + (popsi*, pophi*): Likewise. + (pushqi, pushhi): Likewise. + (movdi, pushdi): Likewise. + (zero extend DImode splitter): Likewise. + (adddi, minusdi splitter): Likewise. + (umulsidi): Likewise. + (umulsi): New. + (mulsidi): Disable for 64bit + (lshift:DI/ashift:DI): Disable for 64bit. + (loop patterns): Likewise. + (call_pop, call_value_pop expanders and patterns): Likewise. + (prologue_get_pc): Likewise. + (leave): Likewise. + (fcmovDI pattern and splitter): Likewise. + (movdfcc_1_rex64): New. + +Mon Mar 12 15:16:36 CET 2001 Jan Hubicka + + * i386.h (VALID_FP_MODE_P): XFmode is invalid on x86_64. + (MODES_TIEABLE_P): QImodes and DImodes are tiable on x86_64. + (HARD_REGNO_CALLER_SAVE_MODE): Save QImodes as QImodes for x86_64. + (STATIC_CHAIN_REGNUM): Set to r10 for x86_64. + (PIC_OFFSET_TABLE_REGNUM): Set to INVALID_REGNUM for x86_64. + (LIMIT_RELOAD_CLASS): Avoid limiting of QImodes on x86_64. + (SECONDARY_OUTPUT_RELOAD_CLASS): No need to QImodes. + (PUSH_ROUNDING): x86_64 rounds to 64bits. + (CONSTANT_ADDRESS_P): Accept CONST_DOUBLE. + (REGPARM_MAX): Set to 6 for x86_64. + (SSE_REGPARM_MAX): Set to 16 for x86_64. + * i386.c (hard_regno_mode_ok): QImodes can be in all general purpose + registers. + + * (patterns that does use upper halves): Update constraints + 'q' to 'Q' and 'r' to 'R'. + (cmpqi_ext_1): Disable for 64bit. + (cmpqi_ext_3_insn): Likewise. + (movqi_extzv_1): Likewsie. + (addqi_ext_1): Liekwsie + (testqi_ext_1): Liekwsie + (andqi_ext_1): Liekwsie + (xorqi_ext_1): Liekwsie + (cmpqi_ext_1_rex64): New. + (cmpqi_ext_3_insn_rex64): Likewise. + (movqi_extzv_1_rex64): Likewsie. + (addqi_ext_1_rex64): Liekwsie + (testqi_ext_1_rex64): Liekwsie + (andqi_ext_1_rex64): Liekwsie + (xorqi_ext_1_rex64): Liekwsie + +2001-03-11 Zack Weinberg + + * configure.in: Move check for unsigned enumerated bitfields + to macro in aclocal.m4. Disable it for now. + * configure, config.in: Regenerate. + * system.h: Don't do anything with ONLY_INT_FIELDS. Use the + unsigned-int form of ENUM_BITFIELD() unless being compiled by GCC. + * varasm.c (struct rtx_const): Use ENUM_BITFIELD(). Move enum + kind above its first use. + + * config/xm-interix.h, config/alpha/xm-alpha.h, + config/i370/xm-linux.h, config/i386/xm-beos.h, + config/i386/xm-mingw32.h, config/mips/xm-mips.h, + config/pa/xm-pa.h, config/pa/xm-pa64hpux.h, + config/rs6000/xm-beos.h, config/rs6000/xm-sysv4.h, + Don't define ONLY_INT_FIELDS under any circumstances. + + * config/pa/xm-pa.h: Don't define __BSD_NET2__. + + * config/pa/xm-pahpux.h, config/pa/xm-papro.h, + config/sparc/xm-sysv4.h: Delete - now identical with some + other xm header. + * config.gcc (hppa targets): Replace xm-pahpux.h and + xm-papro.h with implicit xm-pa.h. + (sparc targets): Replace xm-sysv4.h with implicit or explicit + xm-sparc.h. + +2001-03-12 Aldy Hernandez + + * reload1.c (reload_cse_simplify): Call reload_cse_simplify_set + before reload_cse_noop_set_p. + +2001-03-11 Zack Weinberg + + * config.gcc: Where xm-host.h used to include another + xm-host.h, list the nested header directly in xm_file. Remove + references to deleted files. Can now use sparc/xm-sp64.h for + sparcv9-*-solaris*. + + * config/xm-linux.h, config/arm/xm-linux.h, + config/i386/xm-dos.h, config/i386/xm-gnu.h, + config/i386/xm-linux.h, config/i386/xm-openbsd.h, + config/i860/xm-fx2800.h, config/m68k/xm-atari.h, + config/m68k/xm-linux.h, config/m68k/xm-sun3.h, + config/sparc/xm-linux.h, config/sparc/xm-sysv4-64.h: + Delete. + + * config/alpha/xm-alpha-interix.h: Don't include alpha/xm-alpha.h. + * config/mips/xm-iris5.h: Don't include mips/xm-mips.h. Don't + bother to wrap #undef in #ifdef. + * config/pa/xm-linux.h, config/rs6000/xm-sysv4.h: + Don't include xm-linux.h. + * config/sparc/xm-sp64.h: Don't include sparc/xm-sparc.h. + + * configure.in: Wrap regexps using [] in changequote block. + Use expr : not echo | grep. Simplify regexps. + * configure: Regenerate. + + 56 xm-files remain, 22 xm-arch. + +2001-03-11 Kaveh R. Ghazi + + * mips-tfile.c: Cast arg to PTR when specifier is HOST_PTR_PRINTF. + (__proto, PTR_T, CPTR_T): Delete, use PARAMS/PTR instead. + (local_index, local_rindex): Delete, use strchr/strrchr instead. + (copy_object): Fix format specifier vs argument mismatch. + + * mips-tdump.c: Make local functions static. + (rindex): Don't #undef. + (__proto, PTR_T, CPTR_T): Delete, use PARAMS/PTR instead. + (fatal, fancy_abort): Delete. + (read_seek): Avoid signed/unsigned compare. + +Sun Mar 11 17:01:41 2001 Richard Kenner + + * combine.c (try_combine): Fix error in change to try original + register. + (gen_rtx_combine): Do same as gen_rtx for now. + +2001-03-11 Zack Weinberg + + * configure.in: AC_SUBST xm_defines. + * configure: Regenerate. + * Makefile.in: Set DEFINES=$(xm_defines) when building + tconfig.h. + +2001-03-11 Neil Booth + + * cppfiles.c (INCLUDE_LEN_FUDGE, ENOMEM): Delete. + (cpp_included, find_include_file): Update. + (_cpp_compare_file_date): Make else unconditional. + +2001-03-10 kaz Kojima + + * config/sh/sh.h (LEGITIMATE_PIC_OPERAND_P): Defined. + +2001-03-10 Toshiyasu Morita + + * config/sh/sh.md (umulhisi3_i, mulhisi3_i): Fix mnemonics. + * config/sh/lib1funcs.asm (mulsi3): Convert mulu to mulu.w. + +Sat Mar 10 22:42:05 2001 Alexandre Oliva + + * tree.c (build_common_tree_nodes_2): Don't copy va_list_type_node + if it's a record type. + +Sat Mar 10 17:52:54 2001 Christopher Faylor + + * config/i386/cygwin.h: Make ../w32api a system directory. Reorganize + mingw includes slightly. + +2001-03-10 Kaveh R. Ghazi + + * system.h (malloc, realloc, calloc, strdup, bzero, bcmp, rindex): + #undef token before poisoning it. + +2001-03-10 Kaveh R. Ghazi + + * alpha.c (check_float_value): Use memcpy, not bcopy. + + * m32r.c (m32r_sched_reorder): Likewise. + + * vax.c (check_float_value): Likewise. + +2001-03-10 Neil Booth + + * toplev.c (file_name_nondirectory): Remove. + * toplev.h: Similarly. + * dwarf2out.c (compute_section_prefix): Use lbasename instead + of file_name_nondirectory. + +Sat Mar 10 10:36:45 2001 Richard Kenner + + * mips-tdump.c (read_seek): Call xmalloc, not malloc. + * mips-tfile.c: Don't #undef rindex; not used. + +Sat Mar 10 14:34:59 CET 2001 Jan Hubicka + + * i386.h (DBX_REGISTER_NUMBER): Return proper values for 64bits. + (dbx64_register_map): Declare. + (RETURN_ADDR_RTX): Fix for 64bit. + (DWARF_FRAME_RETURN_COLUMN): Set to 16 for 64bit. + (INCOMING_FRAME_SP_OFFSET): Set to 8. + * i386.c (dbx64_register_map): New global array. + * beos-elf.h, freebsd.h, i386-interix.h, i386elf.h, + linux.h (DBX_REGISTER_REGNUMBER): Use dbx64_register_map + for 64bits. + +2001-03-10 Neil Booth + + * cppfiles.c (search_from): Use lbasename. + * mkdeps.c (deps_add_default_target): Use lbasename. + +2001-03-09 Kaveh R. Ghazi + + * fixinc/server.c (load_data, run_shell): Use xmalloc, xrealloc & + xcalloc in lieu of malloc, realloc & calloc. + + * gencheck.c (xmalloc): Use really_call_malloc, not malloc. + + * gengenrtl.c (xmalloc): Likewise. + + * gensupport.c (xcalloc, xrealloc, xmalloc): Use the + really_call_* memory allocation routines. + + * stmt.c (check_for_full_enumeration_handling): Use + really_call_calloc, not calloc. + + * system.h (really_call_malloc, really_call_calloc, + really_call_realloc): Define. + (malloc, realloc, calloc, strdup, bzero, bcmp, rindex): Poison. + +Fri Mar 9 18:39:19 2001 Jeffrey A Law (law@cygnus.com) + + * pa.md (builtin_longjmp): Rework slightly to work for PA64 too. + +2001-03-09 Nicola Pero + + * configure: Rebuilt. + * configure.in: Only use `lang_requires' for languages athat are + actually enabled. + +2001-03-09 Joseph S. Myers + + * invoke.texi: Fix typo. + * gcc.1: Regenerate. + +2001-03-09 Zack Weinberg + + * configure.in: Prune nonexistent files from build_xm_file, + xm_file, and host_xm_file lists. Warn unless they're + $cpu/xm-$cpu.h. + Don't generate *config.h here. + AC_SUBST all variables needed to generate *config.h. + * configure: Regenerate. + * mkconfig.sh: New helper script, from code removed from + configure.in. + * Makefile.in: Zap all MALLOC variables - no longer used + anywhere, and malloc.c doesn't exist. + Substitute in variables needed to generate *config.h. + Stop lying about the dependencies contained in CONFIG_H and + GCONFIG_H. + (HCONFIG_H, TCONFIG_H, TM_P_H): New variables. + (config.h, hconfig.h, tconfig.h, tm_p.h, cs-config.h, + cs-hconfig.h, cs-tconfig.h, cs-tm_p.h): New rules. + (all .o): Add dependencies on $(HCONFIG_H), $(TCONFIG_H), + $(TM_P_H), etc. as appropriate. + + * config.gcc: Zap references to deleted files. + * ggc-none.c: Don't include rtl.h or tm_p.h. + + * config/i386/xm-beos.h, config/i386/xm-dgux.h, + config/i386/xm-djgpp.h, config/i386/xm-dos.h, + config/i386/xm-gnu.h, config/i386/xm-i386-interix.h, + config/i386/xm-linux.h, config/i386/xm-linux.h, + config/i386/xm-next.h, config/i386/xm-openbsd.h, + config/i386/xm-sun.h, config/i386/xm-sysv3.h: + Don't include i386/xm-i386.h. + + * config/elxsi/xm-elxsi.h, config/i386/xm-bsd386.h, + config/i386/xm-i386.h, config/i860/xm-i860.h, + config/i960/xm-i960.h, config/mcore/xm-mcore.h, + config/mn10300/xm-mn10300.h, config/ns32k/xm-ns32k.h, + config/pj/xm-pj.h, config/sh/xm-sh.h, config/v850/xm-v850.h: + Delete (empty except comments, #includes of other deleted + files, and macros used nowhere). + +Fri Mar 9 20:05:27 CET 2001 Jan Hubicka + + * i386.h (MAX_WCHAR_TYPE_SIZE): New constant to keep tradcpp + independent on TARGET_FLAGS. + +Fri Mar 9 19:52:52 CET 2001 Jan Hubicka + + * i386.h (FIRST_PSEUDO_REGISTER): Set to 53. + + (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ONES): Add + extended ones. + (CONDITIONAL_REGISTER_USAGE): Set proper values according to + TARGET_64BIT. + (FIRST_REX_INT_REG, LAST_REX_INT_REG, FIRST_REX_SSE_REG, + LAST_REX_SSE_REG): define. + (enum reg_class): Add 'LEGACY_REGS' + (REG_CLASS_CONTENTS): Likewise; add extended registers. + (SSE_REGNO_P): Recognize extended registers. + (ANY_QI_REG_P, REX_INT_REGNO_P, REX_INT_REG_P): New. + (REG_CLASS_FROM_LETTER): Add 'R' and 'Q'. + (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P, + REG_OK_FOR_BASE_NONSTRICT_P): Recognize REX registers. + (REG_OK_FOR_STRREG_NONSTRICT_P, REG_OK_FOR_STRREG_STRICT_P, + REG_OK_FOR_STRREG_P): Remove. + (HI_REGISTER_NAMES): Add extended registers. + (ADDITIONAL_REGISTER_NAMES): Likewise. + (QI_REGISTER_NAMES): Add 8bit extended registers. + (DEBUG_REG): Support extended registers. + * i386.c (regclass_map): Add extended registers. + (dbx_register-map): Likewise. + (svr4_dbx_register_map): Likewise. + (print_reg): Support extended registers. + (print_operand): Support 64bit operands. + +Fri Mar 9 19:37:46 CET 2001 Jan Hubicka + + * i386.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Set to 128bit for x86_64 + (BOOL_TYPE_SIZE, SHORT_TYPE_SIZE, INT_TYPE_SIZE, + FLOAT_TYPE_SIZE, LONG_TYPE_SIZE, MAX_LONG_TYPE_SIZE, + DOUBLE_TYPE_SIZE, LONG_LONG_TYPE_SIZE): New constants. + (BITS_PER_WORD, UNITS_PER_WORD, POINTER_SIZE, PARM_BOUNDARY, + STACK_BOUNDARY): Set properly for 64bits. + (MAX_BITS_PER_WORD, MIN_UNITS_PER_WORD): New constants. + (EMPTY_FIELD_BOUNDARY): Define using BITS_PER_WORD. + (BIGGEST_FIELD_ALIGNMENT): Set to 128 for 64bits. + (MOVE_MAX): Set to 16. + (MOVE_MAX_PIECES): 8 for 64bit. + (Pmode): Set to SImode. + +Fri Mar 9 09:00:36 2001 Mike Stump + + * cselib.c (hash_rtx): Ensure that hash isn't zero upon return. + +Fri Mar 9 17:38:08 CET 2001 Jan Hubicka + + * i386.h (mask_64bit): New constant. + (target_64bit): New macro. + (target_options): Add '64'/'32' + (target_default): Define. + * cygwin.h freebsd-aout.h i386-interix.h i386.h i386elf.h isc.h + isccoff.h netbsd.h next.h openbsd.h p sco.h sco5.h scodbx.h sequent.h + unix.h win32.h (TARGET_DEFAULT): Rename to TARGET_SUBTARGET_DEFAULT. + +Thu Mar 8 23:36:56 2001 Jeffrey A Law (law@cygnus.com) + + * config/pa/som.h (MAKE_DECL_ONE_ONLY, ASM_WEAKEN_LABEL): Disable. + +Thu Mar 8 23:29:37 2001 John Wehle (john@feith.com) + + * rtlanal.c (rtx_varies_p): Check operand 0 of a + LO_SUM unless for_alias is set. + +2001-03-08 Stan Shebs + + * objc/objc-act.c: Fix old typos in comments, add comments for + various functions. + (hash_init): Fix file name in error message. + (hash_enter): Ditto. + (hash_add_attr): Ditto. + (continue_class): Ditto. + +2001-03-08 Bruce Korb + + gcc.c(main): ensure SIGCHLD handling is set to SIG_DFL so that + wait4() can receive the signal. + +Thu Mar 8 21:09:10 2001 Rainer Orth + + * fixinc/inclhack.def (AAB_dgux_int_varargs): Don't use HTML + entities. + * fixinc/fixincl.x: Regenerate. + +Thu Mar 8 21:09:10 2001 Rainer Orth + + * fixinc/inclhack.def (AAA_standards): Undo breakage + on Tru64 UNIX. + * fixinc/fixincl.x: Regenerate. + +2001-03-08 Richard Henderson + + * configure.in (HAVE_AS_LEB128): New assembler check. + * configure, config.in: Rebuilt. + +Thu Mar 8 19:54:04 CET 2001 Jan Hubicka + + * reg-stack.c (move_for_stack_reg): Avoid non-poping fst for + TFmode too. + +2001-03-08 Kaveh R. Ghazi + + * config/ns32k/xm-pc532-min.h, config/we32k/xm-we32k.h: Delete + references to the MAXPATHLEN macro. + + * config/alpha/xm-alpha.h, config/arm/xm-arm.h, + config/i386/xm-cygwin.h, config/xm-linux.h: Delete references to + the POSIX macro. + + * config/i386/xm-gnu.h, config/xm-gnu.h, + config/alpha/xm-openbsd.h, config/i386/xm-openbsd.h, + config/m68k/xm-openbsd.h, config/mips/xm-openbsd.h, + config/sparc/xm-openbsd.h, config/xm-openbsd.h: Delete empty + and/or unused files. + + * config.gcc: Define POSIX in xm_defines as appropriate in lieu of + doing so in various xm-*.h files. + +Thu Mar 8 06:32:50 2001 Richard Kenner + + * config/i386/i386.md (clrstrsi): Call ix86_set_move_mem_attrs. + +2001-03-08 Alexandre Oliva + + * configure.in (enable_shared): Support per-package shared-library + enabling. + * configure: Rebuilt. + +2001-03-07 David Edelsohn + + * rs6000.md (cr logic): Add original POWER mnemonic alternative + for crnot. Set operands[5] in splitter. + +2001-03-07 Kaveh R. Ghazi + + * config/i370/xm-mvs.h, config/i370/xm-oe.h, + config/i386/xm-beos.h, config/i386/xm-mingw32.h, + config/m88k/xm-m88k.h, config/mips/xm-iris6.h, + config/mips/xm-openbsd.h, config/pa/xm-pa64hpux.h, + config/pa/xm-pahpux.h, config/rs6000/xm-beos.h, + config/rs6000/xm-darwin.h, config/rs6000/xm-mach.h, + config/rs6000/xm-rs6000.h, config/xm-interix.h: Delete references + to the USG macro. + + * config/vax/xm-vaxv.h, config/a29k/xm-unix.h, + config/i370/xm-i370.h, config/i386/xm-dgux.h, + config/i386/xm-sun.h, config/i386/xm-sysv3.h, + config/m68k/xm-tower.h, config/m68k/xm-aux.h, + config/m68k/xm-hp320.h, config/m68k/xm-amix.h, + config/m68k/xm-altos3068.h, config/m68k/xm-mot3300.h, + config/m68k/xm-m68kv.h, config/m88k/xm-openbsd.h, + config/mips/xm-nws3250v4.h, config/mips/xm-sysv.h, + config/mips/xm-iris3.h, config/mips/xm-iris4.h, config/xm-svr3.h, + config/xm-svr4.h, config/sparc/xm-pbd.h, config/clipper/xm-clix.h: + Delete unused and/or empty files. + + * config.gcc: Define USG in xm_defines as appropriate. Define + POSIX in lieu of xm-svr4.h. Delete all references to the SVR3 + macro. Remove deleted xm-* files from $xm_files variable. + +2001-03-07 Tom Tromey + + * configure: Rebuilt. + * configure.in: Allow config-lang.in to set `lang_requires' to list + of other required languages. + +2001-03-07 Andrew MacLeod + + * config/a29k/a29k.c (print_operand): Free a29k_last_prologue_insn + after its emitted. + (output_prologue): Use xmalloc not oballoc. + (output_epilog): Free a29k_first_epilogue_insn when finished. + * confif/a29k/a29k.h (PREDICATE_CODES): Remove shift_constant_operand. + +2001-03-07 Brad Lucier + + * builtins.c (expand_builtin_mathfn): Check + flag_unsafe_math_optimizations, not flag_fast_math. + (expand_builtin): Likewise + * combine.c (combine_simplify_rtx): Likewise. + (simplify_if_then_else): Likewise. + * cse.c (fold_rtx): Likewise. + * flags.h: Remove flag_fast_math. Add + flag_unsafe_math_optimizations and flag_trapping_math. + * fold-const.c (negate_expr): Check + flag_unsafe_math_optimizations, not flag_fast_math. + (invert_truthvalue): Likewise. + (fold): Likewise. Before associating operands, check that + code == MULT_EXPR, not code != MULT_EXPR. + * ifcvt.c (noce_try_minmax): Check + flag_unsafe_math_optimizations, not flag_fast_math. + (noce_operand_ok): Check flag_trapping_math, not flag_fast_math. + * invoke.texi: Document -funsafe-math-optimizations and + -fno-trapping-math. Change documentation for -ffast-math. + * jump.c (reversed_comparison_code_parts): Likewise. + (rtx_equal_for_thread_p): Likewise. + * optabs.c (emit_conditional_move): Likewise. + * simplify-rtx.c (simplify_binary_operation): Likewise. + (simplify_relational_operation): Likewise. + (simplify_ternary_operation): Likewise. + * toplev.c: Remove flag_fast_math. Add flag_trapping_math and + flag_unsafe_math_optimizations. Remove fast-math entry from f_options. + Add trapping-math and unsafe-math-optimizations entries to f_options. + (set_fast_math_flags): New, sets flags for -ffast-math. + (set_no_fast_math_flags): New, sets flags for -fno-fast-math. + (decode_f_option): Add code to handle -ffast-math and -fno-fast-math. + * toplev.h: Declare set_fast_math_flags and set_no_fast_math_flags. + + * config/alpha/alpha.c (alpha_emit_conditional_branch): Likewise. + (alpha_emit_conditional_move): Initialize local_fast_math to + flag_unsafe_math_optimizations, not flat_fast_math. + * config/c4x/c4x.c (c4x_override_options): Call set_fast_math_flags + instead of setting flag_fast_math to 1. + * config/convex/convex.md: Check flag_unsafe_math_optimizations, + not flag_fast_math. + * config/i386/i386.c (override_options): Likewise + * config/i386/i386.md: Likewise. + * config/m68k/m68k.md: Likewise. + * config/mips/mips.md: Likewise. + * config/rs6000/rs6000.c (validate_condition_mode): Likewise. + (rs6000_generate_compare): Likewise. + +2001-03-07 Laurynas Biveinis + + * Makefile.in: Set RANLIB to @RANLIB@. + Remove RANLIB_TEST. + +2001-03-07 Laurynas Biveinis + + * fixinc/inclhack.def (djgpp_wchar_h): New test. + * fixinc/fixincl.x: Regenerated. + +2001-03-07 Richard Henderson + + * config/alpha/alpha.md (call_osf_1_noreturn): New pattern. + +2001-03-07 Richard Henderson + + * emit-rtl.c (remove_unnecessary_notes): Verify proper nesting + of block notes and exception handling notes. + + * lists.c (init_EXPR_INSN_LIST_cache): Don't check initialized. + * toplev.c (rest_of_compilation): Call init_EXPR_INSN_LIST_cache ... + (compile_file): ... here. + +2001-03-06 Kaveh R. Ghazi + + * fixinc/Makefile.in (FIXINC_DEFS): Add -DHAVE_CONFIG_H. + + * fixinc/gnu-regex.c: Don't include auto-host.h since we get + config.h now. Include libiberty.h to handle alloca. + +2001-03-06 Zack Weinberg + + * c-parse.in (yylexname): New function, split out of _yylex. + (objc_rid_sans_at): New table. + (init_reswords): Initialize it. + (_yylex): Give labels clearer names. Handle CPP_ATSIGN by + retrieving the next token and checking it for significance as + an ObjC keyword or string constant. + + * cpplex.c (_cpp_lex_token): Just return CPP_ATSIGN for '@'. + * cpplib.h (TTYPE_TABLE): Add CPP_ATSIGN, drop CPP_OSTRING. + + * c-lex.c, c-parse.in, cppmacro.c, cpplex.c: Remove references + to CPP_OSTRING. + +2001-03-06 Stephen L Moshier + + * config/m68k/m68k.c (const_uint32_operand): Accept any + const_int on a 32-bit host. + +2001-03-06 Nicola Pero + + * objc/objc-act.c (init_objc): Set save_lang_status, + restore_lang_status, and mark_lang_status. + +2001-03-06 Krister Walfridsson + + * dwarf2asm.c (dw2_asm_output_delta): Fix smallest_mode_for_size call. + +2001-03-06 Neil Booth + + * cppinternals.texi: Update. + +2001-03-06 Kaveh R. Ghazi + + * config/a29k/xm-a29k.h, config/a29k/xm-unix.h, + config/alpha/xm-alpha.h, config/arc/xm-arc.h, config/arm/xm-arm.h, + config/c4x/xm-c4x.h, config/clipper/xm-clix.h, + config/convex/xm-convex.h, config/d30v/xm-d30v.h, + config/dsp16xx/xm-dsp16xx.h, config/elxsi/xm-elxsi.h, + config/h8300/xm-h8300.h, config/i370/xm-i370.h, + config/i370/xm-linux.h, config/i370/xm-mvs.h, config/i370/xm-oe.h, + config/i386/xm-i386.h, config/i860/xm-i860.h, + config/i960/xm-i960.h, config/ia64/xm-ia64.h, + config/m32r/xm-m32r.h, config/m68k/xm-m68k.h, + config/m88k/xm-m88k.h, config/mcore/xm-mcore.h, + config/mips/xm-mips.h, config/mn10200/xm-mn10200.h, + config/mn10300/xm-mn10300.h, config/ns32k/xm-ns32k.h, + config/pa/xm-linux.h, config/pa/xm-pa.h, config/pa/xm-pa64hpux.h, + config/pa/xm-pahpux.h, config/pa/xm-papro.h, config/pj/xm-pj.h, + config/romp/xm-romp.h, config/rs6000/xm-beos.h, + config/rs6000/xm-lynx.h, config/rs6000/xm-rs6000.h, + config/rs6000/xm-sysv4.h, config/sh/xm-sh.h, + config/sparc/xm-sparc.h, config/sparc/xm-sysv4.h, + config/v850/xm-v850.h, config/vax/xm-vax.h, config/vax/xm-vms.h, + config/we32k/xm-we32k.h: Delete HOST_BITS_PER_* definitions which + match the defaults provided in hwint.h. + + * config/i386/xm-lynx.h, config/m68k/xm-lynx.h, + config/sparc/xm-lynx.h, config/xm-std32.h: Delete files. + + * config.gcc (xm_file): Don't set to files which are deleted. + + * hwint.h: Provide default values for HOST_BITS_PER_*. No longer + guard this file against these macros being undefined. + +2001-03-06 Zack Weinberg + + * objc/objc-act.c (objc_add_static_instance): Set DECL_INITIAL + and DECL_DEFER_OUTPUT on the decl we create, before calling + rest_of_decl_compilation. + +2001-03-06 Zack Weinberg + + * aclocal.m4 (AM_GNU_GETTEXT): Don't AC_REQUIRE + AC_FUNC_ALLOCA. + * configure, config.in: Regenerate. + * config.gcc: Remove references to deleted files. + + * genattr.c, genattrtab.c, genextract.c, genoutput.c, + genrecog.c, rtl.c: Do not use alloca anywhere. + + * Makefile.in, build-make, system.h, config/x-interix, + config/x-svr4, config/xm-interix.h, config/xm-openbsd.h, + config/alpha/xm-alpha.h, config/alpha/xm-vms.h, + config/arc/xm-arc.h, config/arm/xm-arm.h, + config/d30v/xm-d30v.h, config/dsp16xx/xm-dsp16xx.h, + config/h8300/xm-h8300.h, config/i370/x-oe, + config/i370/xm-linux.h, config/i386/x-aix, config/i386/x-beos, + config/i386/x-ncr3000, config/i386/x-sco5, + config/i386/xm-dgux.h, config/i860/x-sysv4, + config/i960/xm-i960.h, config/m32r/xm-m32r.h, + config/m68k/x-crds, config/m68k/x-dpx2, config/m68k/x-hp320, + config/m68k/x-hp320g, config/m69k/x-mot3300, + config/m68k/x-mot3300-gas, config/m68k/xm-amix.h, + config/m68k/xm-hp320.h, config/m68k/xm-m68kv.h, + config/m68k/xm-mot3300.h, config/m88k/x-dolph, + config/m88k/x-sysv4, config/m88k/x-tekXD88, + config/m88k/xm-m88k.h, config/mcore/xm-mcore.h, + config/mips/x-iris, config/mips/x-iris3, + config/mips/x-sni-svr4, config/mips/x-sysv, + config/mips/xm-iris6.h, config/mips/xm-mips.h, + config/mips/xm-nws3250v4.h, config/pa/x-hpux, + config/pa/x-pa-mpeix, config/pa/xm-pa.h, + config/pa/xm-pa64hpux.h, config/pa/xm-pahpux.h, + config/pa/xm-papro.h, config/romp/xm-romp.h, + config/rs6000/x-aix31, config/rs6000/x-aix41, + config/rs6000/x-beos, config/rs6000/x-lynx, + config/rs6000/x-mach, config/rs6000/x-rs6000, + config/rs6000/x-sysv4, config/rs6000/xm-rs6000.h, + config/rs6000/xm-sysv4.h, config/sh/xm-sh.h, + config/sparc/x-sysv4, config/sparc/xm-linux.h, + config/sparc/xm-pbd.h, config/sparc/xm-sparc.h, + config/vax/xm-vms.h: Eradicate all references to alloca and + related stuff. + + * config/xm-alloca.h, config/clipper/x-clix, + config/i386/xm-sysv4.h, config/i860/x-fx2800, + config/i860/x-sysv3, config/m88k/x-sysv3, + config/sparc/xm-sol2.h, config/we32k/x-we32k: Delete + (contained only alloca related hacks). + + * config/i386/xm-beos.h, config/rs6000/xm-beos.h: Just define + USE_C_ALLOCA. + +2001-03-05 Brad Lucier + + * invoke.texi: Document __FAST_MATH__. + +2001-03-05 Kaveh R. Ghazi + + * crtstuff.c: Restore include of auto-host.h. + +2001-03-05 Fergus Henderson + + Put main() in a separate file, so that the language + front-end can use a different main(). + + * main.c: New. + * toplev.c: (main): Rename as toplev_main. + * toplev.h: Declare toplev_main. + * Makefile.in (OBJS): add toplev.o. + (BACKEND): remove toplev.o, add main.o. + +2001-03-04 Neil Booth + + * cppfiles.c (search_from): Special case the empty string. + +2001-03-04 Neil Booth + + * cppfiles.c (_cpp_execute_include): Don't make a null-terminated + copy of the filename. Don't use CPP_PREV_BUFFER. Don't call + strlen or strcpy; we already know the length. + (_cpp_compare_file_date): Similarly. + * cpphash.h (struct cpp_reader): Delete done_initialising. + (CPP_PREV_BUFFER): Delete. + * cppinit.c (cpp_start_read): Don't set done_initialising. + * cpplex.c (parse_string): Guarantee null-termination. + (_cpp_equiv_toklists): Remove. + * cpplib.c (glue_header_name): Null-terminate. + (do_line): Don't leak memory. + * cpplib.h (BT_WEAK): Delete. + * cppmain.c (cb_ident): Strings are now null-terminated. + +2001-03-04 Laurynas Biveinis + + * gcc.c (convert_filename): Append executable suffix + if NO_AUTO_EXE_SUFFIX is not defined. + * gcc.texi: Document NO_AUTO_EXE_SUFFIX. + * config/i386/djgpp.h: Define NO_AUTO_EXE_SUFFIX. + +2001-03-03 David O'Brien + + from 2000-09-06 Zack Weinberg + * c-parse.gperf, c-gperf.h: Delete. + (c-gperf.h was accidently re-added to the CVS repo in the rev + 1.16 commit by tromey) + +2001-03-03 Neil Booth + + * cpplex.c (_cpp_lex_token): Don't warn about directives in + macro arguments when looking for the '('. + * cppmacro.c (funlike_invocation_p): Set parsing_args to + 2 when really parsing arguments; 1 when looking for '('. + Always restore the lexer position. + +2001-03-03 Neil Booth + + * longlong.h (umul_ppmm): Don't use a multiline string. + +2001-03-03 John David Anglin + + * fixinc/fixlib.h (t_bool): Add identifier `t_bool' in typedef. + * fixinc/server.c (read_pipe_timeout): Use enum t_bool instead of + t_bool in declaration because pcc can't combine volatile with typedef + types. + +Sat Mar 3 19:47:13 CET 2001 Jan Hubicka + + * i386.c (ix86_expand_fp_compare): Delay creating of scratch register + until when it is really needed. + (ix86_expand_compare): Update call of ix86_expand_fp_compare. + * i386.h (PREDICATE_CODES): Add all codes for sse_comparison_operator + * i386.md (float?i?f splitter): Don't force source operand to memory + for SSE. + (sse_movdfcc): Fix constraint. + (sse_movdfcc splitter): Handle properly the second alternative. + +2001-03-03 Neil Booth + + * cpplex.c (parse_string): Unconditionally pedwarn. + +2001-03-03 Neil Booth + + * cpp.texi: Update. + * cppexp.c (parse_number): Update. + * cpplex.c (parse_string): Pedwarn if multiline string does not + result from a system header's macro. + * cpplib.h (sys_objmacro_p): Rename sys_macro_p. + * cppmacro.c (sys_objmacro_p): Rename sys_macro_p. Return true + for function-like macros too. + * c-lex.c (lex_number): Update. + +2001-03-03 Richard Henderson + + * dwarf2out.c (output_call_frame_info): Fix augmentation length. + +Sat Mar 3 04:17:17 2001 J"orn Rennecke + + * combine.c (try_combine): If split with mode-changed scratch + register didn't work, try the original mode. + +Sat Mar 3 03:46:47 2001 J"orn Rennecke + + * tm.texi: Change STRUCT_FORCE_BLK to MEMBER_TYPE_FORCES_BLK. + * config/c4x/c4x.h: Likewise. + * stor-layout.c (compute_record_mode): Likewise. + (layout_type, case ARRAY_TYPE): Use MEMBER_TYPE_FORCES_BLK. + +2001-03-02 Zack Weinberg + + * configure.in: Kill tm.h. Include the files in the $tm_file + list in all three of config.h, hconfig.h, tconfig.h, after the + relevant set of xm_files. Put TARGET_CPU_DEFAULT in all + three, include insn-codes.h in all three (#ifndef GENERATOR_FILE). + * configure: Regenerate. + * Makefile.in (clean): Don't delete tm.h. + + * system.h: If SUCCESS_EXIT_CODE and FATAL_EXIT_CODE are not + defined, set them from EXIT_SUCCESS and EXIT_FAILURE. If + those are not defined, set SEC and FEC to 0 and 1. + * gcc.texi: Update to match. + + * crtstuff.c: Include tconfig.h, not auto-host.h and tm.h. + * config/fp-bit.c, config/m68k/aux-crt2.asm, + config/m68k/aux-crtn.asm, config/m68k/aux-mcount.c: + Include tconfig.h, not tm.h. + + * config/xm-lynx.h, config/xm-std32.h, + config/a29k/xm-a29k.h, config/a29k/xm-unix.h, + config/alpha/xm-alpha.h, config/arc/xm-arc.h, + config/avr/xm-avr.h, config/c4x/xm-c4x.h, + config/clipper/xm-clix.h, config/convex/xm-convex.h, + config/d30v/xm-d30v.h, config/dsp16xx/xm-dsp16xx.h, + config/elxsi/xm-elxsi.h, config/fr30/xm-fr30.h, + config/h8300/xm-h8300.h, config/i370/xm-linux.h, + config/i386/xm-i386.h, config/i860/xm-i860.h, + config/i960/xm-i960.h, config/ia64/xm-ia64.h, + config/m32r/xm-m32r.h, config/m68hc11/xm-m68hc11.h, + config/m88k/xm-m88k.h, config/mcore/xm-mcore.h, + config/mips/xm-mips.h, config/mn10200/xm-mn10200.h, + config/mn10300/xm-mn10300.h, config/ns32k/xm-ns32k.h, + config/pa/xm-linux.h, config/pa/xm-pa.h, + config/pa/xm-pa64hpux.h, config/pa/xm-pahpux.h, + config/pa/xm-papro.h, config/pdp11/xm-pdp11.h, + config/pj/xm-pj.h, config/romp/xm-romp.h, + config/rs6000/xm-beos.h, config/rs6000/xm-rs6000.h, + config/rs6000/xm-sysv4.h, config/sh/xm-sh.h, + config/sparc/xm-sparc.h, config/sparc/xm-sysv4.h, + config/v850/xm-v850.h, config/vax/xm-vax.h, + config/we32k/xm-we32k.h: + Don't include tm.h. + Don't define SUCCESS_EXIT_CODE or FATAL_EXIT_CODE. + + * config/i370/xm-i370.h, config/i370/xm-mvs.h, + config/i370/xm-oe.h: Don't include tm.h. Don't define + SUCCESS_EXIT_CODE. + * config/vax/xm-vms.h: Don't include tm.h. + + * config/xm-lynx.h, config/avr/xm-avr.h, + config/fr30/xm-fr30.h, config/pdp11/xm-pdp11.h, + Delete; made empty by above changes. + * config/i386/xm-lynx.h, config/m68k/xm-lynx.h, + config/rs6000/xm-lynx.h, config/sparc/xm-lynx.h: + Don't include config/xm-lynx.h or tm.h. + + * config/xm-gnu.h: Don't include fcntl.h. + * config/sparc/xm-lynx.h: Don't include sys/types.h and + sys/wait.h. + * config/clipper/xm-clix.h, config/vax/xm-vax.h: Don't define isinf. + +2001-03-02 Richard Henderson + + * tm.texi (File Framework): Document UNALIGNED_SHORT_ASM_OP, + UNALIGNED_INT_ASM_OP, and UNALIGNED_DOUBLE_INT_ASM_OP. + +2001-03-02 Richard Henderson + + * Makefile.in (OBJS): Add dwarf2asm.o. + * dwarf2asm.c, dwarf2asm.h: New files. + * dwarf2out.c (*): Use them. + (size_of_uleb128, size_of_sleb128): Remove. + (output_uleb128, output_sleb128): Remove. + (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP): Remove. + (UNALIGNED_DOUBLE_INT_ASM_OP, ASM_BYTE_OP): Remove. + (UNALIGNED_OFFSET_ASM_OP, UNALIGNED_WORD_ASM_OP): Remove. + (FDE_LABEL, LINE_NUMBER_BEGIN_LABEL, LINE_NUMBER_END_LABEL): New. + (ASM_OUTPUT_DWARF_DATA1, ASM_OUTPUT_DWARF_DELTA1): Remove. + (ASM_OUTPUT_DWARF_DATA2, ASM_OUTPUT_DWARF_DELTA2): Remove. + (ASM_OUTPUT_DWARF_DATA4, ASM_OUTPUT_DWARF_DELTA4): Remove. + (ASM_OUTPUT_DWARF_DATA, ASM_OUTPUT_DWARF_DELTA): Remove. + (ASM_OUTPUT_DWARF_ADDR, ASM_OUTPUT_DWARF_ADDR_DATA): Remove. + (ASM_OUTPUT_DWARF_ADDR_DELTA, ASM_OUTPUT_DWARF_ADDR_CONST): Remove. + (ASM_OUTPUT_DWARF_OFFSET4, ASM_OUTPUT_DWARF_OFFSET): Remove. + (ASM_OUTPUT_DWARF_CONST_DOUBLE): Remove. + (ASM_OUTPUT_DWARF_NSTRING, ASM_OUTPUT_DWARF_STRING): Remove. + (dwarf2out_frame_debug): Remove unused variables. + (output_loc_operands): Don't abort on 8 byte constants if + host integers are wide enough. + (output_symbolic_ref): Remove. + (size_of_die): Don't assume 4 byte host integers. + (output_line_info): Use ASM_GENERATE_INTERNAL_LABEL for begin + and end labels. + (add_const_value_attribute) [CONST_INT]: Verify we're not doing + something stupid with HOST_WIDE_INT to long truncation. + [CONST_DOUBLE]: Likewise. + + * config/arm/conix-elf.h (UNALIGNED_WORD_ASM_OP): Remove. + (ASM_OUTPUT_DWARF2_ADDR_CONST, ASM_OUTPUT_DWARF_ADDR_CONST): Remove. + * config/arm/unknown-elf.h: Likewise. + * config/rs6000/aix.h (UNALIGNED_SHORT_ASM_OP): New. + (UNALIGNED_INT_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): New. + (ASM_OUTPUT_DWARF_ADDR_VAR, ASM_OUTPUT_DWARF_DELTA_VAR): Remove. + (ASM_OUTPUT_DWARF_DELTA2, ASM_OUTPUT_DWARF_DELTA4): Remove. + (ASM_OUTPUT_DWARF_DELTA, ASM_OUTPUT_DWARF_ADDR_DELTA): Remove. + (ASM_OUTPUT_DWARF_ADDR, ASM_OUTPUT_DWARF_DATA4): Remove. + (ASM_OUTPUT_DWARF_DATA2, ASM_OUTPUT_DWARF_OFFSET4): Remove. + (ASM_OUTPUT_DWARF_OFFSET): Remove. + * config/rs6000/sysv4.h (ASM_OUTPUT_DWARF_ADDR): Remove. + * config/sparc/sp64-elf.h (UNALIGNED_DOUBLE_INT_ASM_OP): New. + (UNALIGNED_LONGLONG_ASM_OP, ASM_OUTPUT_DWARF_ADDR): Remove. + (ASM_OUTPUT_DWARF_ADDR_CONST, ASM_OUTPUT_DWARF_REF): Remove. + +2001-03-02 John David Anglin + + * cselib.c (hash_rtx): Cast enums to unsigned int. + +2001-03-02 John David Anglin + + * print-rtl.c (print_rtx): Cast enums to int for comparison. + * c-decl.c (grokdeclarator): Cast enums to int for comparison and + shifts. + * c-format.c (C_STD_VER): Cast to int for comparisons. + (check_function_format): Cast various enums to int for &. + (maybe_read_dollar_number): Likewise. + (check_format_info): Likewise. + (check_format_info_main): Likewise. + * expr.c (emit_move_insn_1): Cast enums to unsigned int for comparison. + (safe_from_p): Likewise. + * varasm.c (const_hash): Cast enum to int for %. + * emit-rtl.c (init_emit_once): Use int loop variable to work around + pcc enum problems with < and ++ operators. + * regclass.c (init_reg_sets_1): Cast enums for comparison. + (choose_hard_reg_mode): Use unsigned int to iterate over CCmodes. + (regclass_init): Change enum class to int to iterate over reg_classes. + * genrecog.c (merge_trees): Cast enums for comparison. + * rtl.h (GET_CODE): Cast to enum rtx_code. + (PUT_CODE): Cast to ENUM_BITFIELD(rtx_code). + (GET_MODE): Cast to enum machine_mode. + (PUT_MODE): Cast to ENUM_BITFIELD(machine_mode). + (GET_NOTE_INSN_NAME): Cast enum to int. + * tree.h (TREE_CODE): Cast to enum tree_code. + (TREE_SET_CODE): Cast VALUE to ENUM_BITFIELD(tree_code). + * timevar.c (timevar_print): Change loop variable id from enum to + unsigned int. + * fixinc/fixincl.c (VLEVEL): Cast enums in comparison to unsigned int. + * config/i386/i386.md: Use PUT_MODE for mode assignment. + * toplev.c (compile_file): Cast enum DFI to int. + (decode_d_option): Likewise. + +Fri Mar 2 12:18:13 2001 Christopher Faylor + + * cppinit.c (append_include_chain): Mark "after" include file name list + as a system directory. + * cpp.texi: Document new behavior. + +Fri Mar 2 11:59:43 CET 2001 Jan Hubicka + + * ifcvt.c (noce_operand_ok): Handle properly unarry operations. + +2001-03-02 Neil Booth + + * cppfiles.c (struct include_file): Update. + (stack_include_file): Use search_from. + (cpp_included, find_include_file): Update. + (cpp_execute_include): Update. ptr->name may not be + null terminated. Use the new search_from member variable + of cpp_buffer. + (_cpp_compare_file_date): Similarly. + (search_from): New function, similar to actual_directory. + (actual_directory): Delete. + (remap_filename): Update. loc->name may not be null terminated. + (struct file_name_list): Rename search_path. Update. + * cpphash.h (struct cpp_buffer): Delete actual_dir. New members + search_from and dir. + (struct cpp_reader): Remove actual_dirs. + * cppinit.c (struct cpp_pending): Update for renamed objects. + (append_include_chain, remove_dup_dir, remove_dup_dirs, + merge_include_chains, cpp_destroy, cpp_start_read): Similarly. + * cpplib.h (struct cpp_options): Similarly. + +2001-03-01 Zack Weinberg + + * config/xm-lynx.h, config/xm-std32.h, config/a29k/xm-a29k.h, + config/a29k/xm-unix.h, config/alpha/xm-alpha.h, + config/arc/xm-arc.h, config/arm/xm-arm.h, config/c4x/xm-c4x.h, + config/clipper/xm-clix.h, config/convex/xm-convex.h, + config/d30v/xm-d30v.h, config/dsp16xx/xm-dsp16xx.h, + config/elxsi/xm-elxsi.h, config/fr30/xm-fr30.h, + config/h8300/xm-h8300.h, config/i370/xm-i370.h, + config/i370/xm-linux.h, config/i370/xm-mvs.h, + config/i370/xm-oe.h, config/i386/xm-aix.h, + config/i386/xm-i386.h, config/i386/xm-osf.h, + config/i860/xm-i860.h, config/i960/xm-i960.h, + config/ia64/xm-ia64.h, config/m32r/xm-m32r.h, + config/m68k/xm-m68k.h, config/m88k/xm-m88k.h, + config/mcore/xm-mcore.h, config/mips/xm-mips.h, + config/mn10200/xm-mn10200.h, config/mn10300/xm-mn10300.h, + config/ns32k/xm-ns32k.h, config/pa/xm-linux.h, + config/pa/xm-pa.h, config/pa/xm-pa64hpux.h, + config/pa/xm-pahpux.h, config/pa/xm-papro.h, + config/pj/xm-pj.h, config/romp/xm-romp.h, + config/rs6000/xm-beos.h, config/rs6000/xm-rs6000.h, + config/rs6000/xm-sysv4.h, config/sh/xm-sh.h, + config/sparc/xm-sparc.h, config/sparc/xm-sysv4.h, + config/v850/xm-v850.h, config/vax/xm-vax.h, + config/vax/xm-vms.h, config/we32k/xm-we32k.h: + Do not define TRUE or FALSE. + + * config/i386/xm-aix.h, config/i386/xm-osf.h: Delete; made + empty by above change. + * config.gcc: Remove references to these files. + + * configure.in: Detect stdbool.h. + * configure, config.in: Regenerate. + * system.h: Include stddef.h here if available. + Set HAVE__BOOL based on GCC_VERSION and __STDC_VERSION__. + Then set up a sensible boolean type at the very end. + + * combine.c, cse.c, expr.c, fold-const.c, gensupport.c, + config/mcore/mcore.c: Rename variables named 'true' and/or 'false'. + + * hash.h: Delete 'boolean' typedef and related #undefs. + + * function.c, ggc-common.c, hash.h, hash.c, tlink.c: Replace + all uses of 'boolean' with 'bool'. + +2001-03-01 John David Anglin + + * cpplib.c (_cpp_init_stacks): Cast enum for comparison. + * cppexp.c (lex): Cast enums for comparison. + * cppinit.c (parse_option): Cast enum for comparison. + * cpplex.c (cpp_spell_token): Cast enums to int for minus. + (cpp_output_token): Likewise. + (cpp_can_paste): Cast enums for comparsion and plus/minus. + (cpp_avoid_paste): Cast enums for minus and comparison. + +2001-03-01 Zack Weinberg + + * gcc.c, objc/lang-specs.h: Add zero initializer for cpp_spec + field to all array elements. + +2001-03-01 Zack Weinberg + + * cpphash.h (struct cpp_reader): Add print_version field. + * cppinit.c (cpp_handle_option): For -v, -version, and --version, + just set print_version and other flags as appropriate. + (cpp_post_options): Print version here if print_version is set. + + * toplev.c (exit_after_options): New flag. + (independent_decode_option): Don't exit here; just set + exit_after_options. + (main): Exit after calling lang_hooks.post_options if + exit_after_options is true. + + * cppinit.c (append_include_chain): Drop never-used case QUOTE. + (merge_include_chains): Adjust comment to match code. + +2001-03-01 Zack Weinberg + + * stringpool.c (set_identifier): New function. + * tree.h: Prototype it. + + * c-parse.in: Kill D_YES. If compiled for objc, call + save_and_forget_protocol_qualifiers from init_reswords. + * objc/objc-act.c (remember_protocol_qualifiers, + forget_protocol_qualifiers): Don't diddle C_IS_RESERVED_WORD. + Swap out the non-keyword IDENTIFIER_NODEs for keyword ones, or + vice versa. + (save_and_forget_protocol_qualifiers): New function. + * c-lex.h: Prototype save_and_forget_protocol_qualifiers. + +2001-03-01 Diego Novillo + + * c-semantics.c (prune_unused_decls): Return error_mark_node + instead of (tree) 1 to stop traversing the tree chain. + +2001-03-01 Bernd Schmidt + + Fix a problem introduced by Kenner's Feb 18 change. + * toplev.c (rest_of_compilation): Disable flag_cse_follow_jumps and + flag_cse_skip_blocks only temporarily, not for ever. + +Thu Mar 1 09:49:58 2001 Jeffrey A Law (law@cygnus.com) + + * config/pa/som.h (ASM_IDENTIFY_GCC): Define. + (ASM_IDENTIFY_GCC_AFTER_SOURCE): Likewise. + + * pa.c (emit_move_sequence): Verify operand0 is a hard register + before determining its register class. + +2001-03-01 Bernd Schmidt + + * config/ia64/ia64.c (ia64_hard_regno_rename_ok): Disallow renaming + from reg 4 if current_function_calls_setjmp. + (gen_nop_type): New function. + (ia64_emit_nops): New function. + (ia64_reorg): Call it. + (ia64_sched_reorder): Move code that rotates bundles up a bit. + + * reload1.c (eliminate_regs_in_insn): Restrict the special case + code not to try to optimize adds with anything but a REG destination. + + * sched-int.h (struct haifa_insn_data): Add new member priority_known. + (INSN_PRIORITY_KNOWN): New accessor macro. + * haifa-sched.c (priority): Use it instead of testing priority against + zero. + +2001-02-28 DJ Delorie + + * config/m68k/m68k.h (MOVE_BY_PIECES_P): Avoid pushing bytes, + since that doesn't work the way gcc wants on a generic m68k. + +2001-02-28 Richard Henderson + + * caller-save.c (save_call_clobbered_regs): Fix typo in + comparison last change. + +Wed Feb 28 19:31:42 CET 2001 Jan Hubicka + + * i386.c (pentium4_cost): New. + (m_PENT4): New macro. + (x86_push_memory, x86_movx,x86_cmove, x86_deep_branch, x86_use_sahf + x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8 + x86_integer_DFmode_moves, x86_partial_reg_dependency, + x86_memory_mismatch_stall): Add Pentium4 + (x86_use_q_reg, x86_use_any_reg): Kill. + (override_options): Add pentium4. + (incdec_operand): Return 0 for pentium4. + (ix86_issue_rate): Add PROCESSOR_PENTIUM4 and PROCESSOR_ATHLON. + * i386.h (x86_use_q_reg, x86_use_any_reg): Kill. + (TARGET_PENTIUM4): Define. + (enum processor_type): Add PROCESSOR_PENTIUM4. + (CPP_CPU_DEFAULT_SPEC): Add pentium4 support. + * i386.md (attribute "cpu"): Add pentium4. + * invoke.texi (march): Add pentium4. + +Wed Feb 28 19:28:06 CET 2001 Jan Hubicka + + * i386.md (sse_mov?fcc*): New patterns and splitters. + * i386.c (ix86_expand_movcc): Work post-reload; recognize + the SSE based conditional moves. + +Wed Feb 28 19:18:23 CET 2001 Jan Hubicka + + * i386.md (attribute mode): Add "TI". + (movsf_1): Add pxor support; remove constant propagation splitter. + (movdf_integer): Likewise. + (movdf_nointeger): Likewise. + (movxf constant prop splitter): Handle all modes; update for SSE. + * i386.h (CONST_DOUBLE_OK_FOR_LETTER): Add 'H' for SSE constants. + * i386.c (standard_80387_constant_p): Rewrite. + (standard_sse_constant_p): New. + * i386-protos.h (standard_sse_constant_p): New. + +Wed Feb 28 19:05:37 CET 2001 Jan Hubicka + + * i386.md (sse_setccsf, sse_setccdf): New. + (sse_cmp* patterns): Use '%D' instead of outputtting condition + flag directly. + * i386.c (sse_comparison_operator): Accept the supported unordered + comparses; be ready for fast_math. + (print_operand): Support 'D'. + +Wed Feb 28 18:54:51 CET 2001 Jan Hubicka + + * jump.c (reversed_comparison_code): Kill. + +Wed Feb 28 18:50:15 CET 2001 Jan Hubicka + + * toplev.c (rest_of_compilation): Do post-reload splitting unconditionally + for STACK_REGS + +Wed Feb 28 18:47:37 CET 2001 Jan Hubicka + + * i386.md (sse_andti3, sse_nandti_3, sse_xorti3): Add SSE2 versions; + add missing '%' in constraints. + +Wed Feb 28 17:24:24 CET 2001 Jan Hubicka + + * c-common.c (build_common_tree_nodes): Build intTI_type_nodes + for HOST_BITS_PER_WIDE_INT == 32 too. + +Wed Feb 28 17:22:35 CET 2001 Jan Hubicka + + * caller-save.c (reg_save_code, reg_restore_code): Index by mode, not + NREGS. + (insert_save, insert_restore): New parameter save_mode. + (init_caller_save): Update initialization of reg_save_code + and reg_restore_code. + (save_call_clobbered_regs): Compute save_modes and update calls to + reg_save_code and reg_restore_code. + (insert_restore): Unsignetize numbers; use save_modes to choose mode + of spill; update use of reg_restore_code. + (insert_save): Likewise. + * i386.h (HARD_REGNO_CALLER_SAVE_MODE): Update. + * c4x.h (HARD_REGNO_CALLER_SAVE_MODE): Update. + * regs.h (HARD_REGNO_CALLER_SAVE_MODE): Likewise. + +Wed Feb 28 17:19:28 CET 2001 Jan Hubicka + + * ifcvt.c (noce_emit_store_flag, noce_try_store_flag_constants, + noce_try_store_flag_inc, noce_try_store_flag_mask, + noce_try_cmove_arith): + Use reversed_comparison_code instead of reverse_comparison and + can_reverse_comparison_p. + +Wed Feb 28 17:17:29 CET 2001 Jan Hubicka + + * jump.c (reversed_comparison_code_parts): Allow reversal of + unordered compares in -ffast-math mode; reverse ordered compares + for FP even w/o -ffast-math. + +2001-02-27 Richard Henderson + + * print-rtl.c (print_rtx) [i]: Don't print field five on + NOTEs other than NOTE_INSN_DELETED_LABEL. + +2001-02-27 Zack Weinberg + + * mips/xm-iris4.h: Delete #if 0 block (there since before 1997). + * pa/xm-linux.h, pa/xm-pa.h, pa/xm-papro.h: Don't declare errno. + +2001-02-27 Diego Novillo + + * c-common.c (walk_stmt_tree): Visit the chain of the current tree + even if walk_subtrees is 0. + * c-semantics.c (prune_unused_decls): Return a non-null value to + stop traversing the tree chain. + +2001-02-27 DJ Delorie + + * config/m68k/m68k.c (output_function_prologue): Save the new CFA + register, *then* define it as the new CFA. + +Tue Feb 27 16:49:13 2001 Jeffrey A Law (law@cygnus.com) + + * pa.c (override_options): Promote -fpic to -fPIC. + (legitimize_pic_address): Simplify due to removal of + small PIC as a code generation option. + (secondary_reload_class): Similarly. + * pa.h (GO_IF_LEGITIMATE_ADDRESS): Similarly. + (PRINT_OPERAND_ADDRESS): Similarly. + * pa.md (various patterns): Similarly. + (small pic lo_sum pattern): Remove. + +Tue Feb 27 16:01:13 CET 2001 Jan Hubicka + Fergus Henderson + + * md.texi (min, max): Document + +Tue Feb 27 15:51:35 CET 2001 Jan Hubicka + + * i386.md (movsf, movdf): Use movaps for reg-reg moves if + TARGET_PARTIAL_REG_DEPENDENCY. + (truncdfsf2_1_sse, truncdfsf2_2): Penalize the fpreg->mem case. + +Tue Feb 27 15:36:48 CET 2001 Jan Hubicka + + * i386.md (mins*, maxs*): New patterns, expanders and splitters. + +2001-02-26 Jeffrey Oldham + + * mips.c (mips_make_temp_file): Fix thinko in last change. + +2001-02-26 Jason Eckhardt + + * combine.c (known_cond): Do not reverse the condition when + SMAX/UMAX is being considered and the condition is for equality + or inequality. + + * testsuite/gcc.c-torture/execute/20010221-1.c: New test. + +2001-02-26 Philip Blundell + + * config.gcc: Remove obsolete targets "arm*-*-linuxoldld" and + "armv2-*-linux". + * config/arm/linux-elf.h: Remove historical relics related to + above configurations. + * config/arm/linux-oldld.h: Delete. + * config/arm/linux-elf26.h: Delete. + +2001-02-26 Jason Merrill + + * c-decl.c (finish_decl): Set DECL_DEFER_OUTPUT on tentative file-scope + definitions. + * toplev.c (rest_of_decl_compilation): Check DECL_DEFER_OUTPUT to + recognize a tentative definition. Lose obsolete code. + + * toplev.c (wrapup_global_declarations): Don't emit DECL_COMDAT + variables unless necessary, either. + +2001-02-25 Richard Henderson + + * ifcvt.c (struct noce_if_info): Add test_bb. + (noce_get_alt_condition): New. + (noce_try_minmax, noce_try_abs): New. + (noce_operand_ok): New. + (noce_process_if_block): Use them. + * rtlanal.c (may_trap_p): NEG and ABS can never trap. + +Sun Feb 25 14:26:17 2001 Christopher Faylor + + * config/i386/cygwin.h (CPP_SPEC): Add missing space before w32api + include. + +2001-02-25 Zack Weinberg + + * config.gcc: Put back pa/t-openbsd and rs6000/t-openbsd. + * config/mips/mips.c (mips_make_temp_file): Set temp_filename + properly. + (mips_asm_file_end): Free temp_filename here. + +Sun Feb 25 08:34:23 2001 Richard Kenner + + * config/i386/i386-protos.h (ix86_set_move_mem_attrs): Move decl. + * config/i386/i386.c (ix86_set_move_mem_attrs_1): Fix typo. + + * config/i386/i386.md (movstrsi): Handle FAIL case. + +2001-02-25 Neil Booth + + * cppinit.c (builtin_array): Update. + (init_builtins): Flag builtins to warn if redefined or + undefined. Define __GXX_WEAK as a normal macro. + * cpplib.c (do_undef): Warn if flagged NODE_WARN. + * cpplib.h (NODE_WARN): New flag. + * cppmacro.c (builtin_macro): Remove handling of __GXX_WEAK__. + Handle __STDC__ as a builtin only on Solaris. + (warn_of_redefinition): Renamed from check_macro_definition. + Reverse sense of test. Always warn if NODE_WARN. + (_cpp_create_definition): Use warn_of_redefinition. Flag + any macro beginning with "__STDC_" to require a mandatory + warning if redefined or undefined. + +2001-02-24 Zack Weinberg + + * xm-interix.h, xm-lynx.h, alpha/xm-vms.h, convex/xm-convex.h, + i370/xm-i370.h, i370/xm-linux.h, i370/xm-mvs.h, i370/xm-oe.h, + i386/xm-beos.h, i386/xm-dos.h, i386/xm-mingw32.h, + i860/xm-i860.h, m68k/xm-3b1.h, m68k/xm-amix.h, m68k/xm-aux.h, + m68k/xm-crds.h, m68k/xm-mot3300.h, m88k/xm-sysv3.h, + mips/xm-mips.h, rs6000/xm-beos.h, vax/xm-vms.h: + Don't define any of: + USE_PROTOTYPES, vfork, mktemp, SVR3, NO_SYS_PARAMS_H, + P_tmpdir, MVS, NO_DBX_FORMAT, USE_STDARGS, STDC_HEADERS, + NO_PRECOMPILES, i860, __PTR_TO_INT, __INT_TO_PTR, rindex, + index, FULL_PROTOTYPES, AUX, R_OK, W_OK, X_OK, F_OK, + STACK_DIRECTION, MIPS, MAX_READ_LEN, MAX_WRITE_LEN. + + * alpha/xm-alpha.h, clipper/xm-clix.h, d30v/xm-d30v.h, + fr30/xm-fr30.h, i370/xm-linux.h: Remove commented-out macro + definitions. + + * m68k/xm-3b1.h, m68k/xm-crds.h, m88k/xm-sysv3.h: + Delete now-empty file. + + * alpha/vms.h: Define NEED_ATEXIT here... + * alpha/xm-vms.h: ...not here. + + * i386/cygwin.h: Don't define PARAMS. + * mips/mips.c: Don't prototype mktemp. Don't define + P_tmpdir. Use make_temp_file to create temporary files. + Don't be clever and delete temporary files early. + * config.gcc: Drop references to deleted files. Don't define + FULL_PROTOTYPES. + * gcc.texi: Don't mention USE_PROTOTYPES. + +Sat Feb 24 20:25:29 2001 Richard Kenner + + * config/i386/i386.c (ix86_set_move_mem_attrs): New function. + (ix86_set_move_mem_attrs_1): Likewise. + * config/i386/i386-protos.h (ix86_set_move_mem_attrs): New declaration. + * config/i386/i386.md (movstrsi): Call it. + +2001-02-24 Zack Weinberg + + * config.gcc: Expunge references to alpha/t-pe, pa/t-openbsd, + x-linux-aout, i386/t-go32, t-osf, m68k/x-m68kv, + ns32k/xm-netbsd.h, rs6000/t-openbsd, rs6000/t-xnewas, + rs6000/x-aix41-gld. These are nonexistent, empty, or obsolete. + + (i750a-*-*): Error here if hosting on i750a. + (alpha*-*-winnt*, ix86-*-winnt3*): Remove stanzas entirely. + + * x-linux-aout, xm-freebsd.h, i386/beos-pe.h, ns32k/xm-netbsd.h: + Remove (empty modulo comments). + + * 1750a/xm-1750a.h, alpha/config-nt.sed, alpha/win-nt.h, + alpha/xm-winnt.h, i386/config-nt.sed, i386/os2.h, + i386/t-winnt, i386/win-nt.h, i386/xm-freebsd.h, i386/xm-os2.h, + i386/xm-winnt.h, m68k/x-alloca-c, m88k/x-dguxbcs, + mips/x-netbsd, mips/x-nws3250v4, rs6000/t-xnewas, + rs6000/t-xrs6000, rs6000/xm-cygwin.h: Remove (obsolete) + + * i386/crtdll.h, i386/cygwin.h, i386/mingw32.h: + Remove reference to winnt.h in comment. + * rs6000/t-newas, rs6000/t-rs6000: Override LIBGCC1_TEST to null. + +2001-02-24 Franz Sirl + + * loop.c (check_dbra_loop): A biv has uses besides counting if it is + used to set another biv. + +Sat Feb 24 06:45:21 2001 Richard Kenner + + * tree.h (BLOCK_DEAD): New macro. + (struct tree_block): New flag, dead_flag. + * print-tree.c (print_node, case 'b'): Print missing fields. + * emit-rtl.c (remove_unnecessary_notes): Set BLOCK_DEAD. + * function.c (identify_blocks): Enable test for misplaced notes. + (all_blocks): Skip BLOCK_DEAD blocks. + * integrate.c (integrate_decl_tree): Likewise. + + * errors.c (internal_error, trim_filename): New functions. + (fancy_abort): Call internal_error. + * errors.h (internal_error, trim_filename): New declarations. + +2001-02-24 Alexandre Oliva + + * config/mn10300/mn10300.h (DBX_REGISTER_NUMBER): Reverted + 2000-08-26's patch. + (EXTRA_CONSTRAINT): Formatting changes. + +2001-02-23 Kaveh R. Ghazi + + * rtl.c (rtl_check_failed_code2): Fix typo in last change. + +2001-02-23 Per Bothner + + * gcc.c (record_temp_file, pfatal_with_name, error): Make non-static, + so they can be called from java/jvspec.c. + * gcc.h (record_temp_file, pfatal_with_name, error): Declare. + +Sat Feb 24 03:32:50 CET 2001 Jan Hubicka + + * i386.c (ix86_frame): New structure. + (ix86_compute_frame_size): Kill. + (ix86_compute_frame_layout): New. + (ix86_save_reg): New. + (ix86_can_use_return_insn_p): Use frame layout stuff. + (ix86_expand_prologue): Likewise. + (ix86_expand_epilogue): Likewise. + (ix86_initial_elimination_offset): Likewise. + (ix86_nsaved_regs): Use ix86_save_reg. + (ix86_emit_save_regs): Likewise. + +Sat Feb 24 03:30:38 CET 2001 Jan Hubicka + + * flow.c (find_sub_basic_blocks): New function. + (split_block): Be ready for basic block introduced by CODE_LABEL. + (commit_one_edge_insertion): Call find_sub_basic_block. + + * flow.c (make_edges): Add edge from entry for blocks starting with + label having ALTERNATE_NAME + +Sat Feb 24 03:19:42 CET 2001 Jan Hubicka + + * function.c (epilogue_done): Be ready for first basic block not + containing PROLOGUE_END note. + (reposition_prologue_and_epilogue_notes): Avoid placing + PROLOGUE_END note between BASIC_BLOCK. + +Sat Feb 24 03:17:09 CET 2001 Jan Hubicka + + * loop.c (canonicalize_condition): Move to reversed_comparison_code. + +2001-02-21 DJ Delorie + + * config/i960/i960.h (FRAME_POINTER_REQUIRED): Revert removal of + check for current_function_has_nonlocal_goto from 1999-11-12. + +Fri Feb 23 15:28:39 2001 Richard Kenner + + * diagnostic.c (trim_filename): No longer static. + * toplev.h (trim_filename): Declare. + * rtl.c (rtl_check_failed_bounds): Call internal_error. + (rtl_check_failed_type1, rtl_check_failed_type2): Likewise. + (rtl_check_failed_code1, rtl_check_failed_code2): Likewise. + (rtvec_check_failed_bounds): Likewise. + * tree.c (tree_check_failed, tree_class_check_failed): Likewise. + + * convert.c (convert_to_integer): Don't do unsigned unless result or + both inputs are unsigned. + + * fold-const.c (fold_convert): Don't call size_int_type_wide if + input overflows. + + * c-decl.c (set_block): Set NAMES and BLOCKS from BLOCK. + + * varasm.c (output_constant): Recompute CODE after lang-specific fn. + +2001-02-23 Jeffrey Oldham + + * Makefile.in (resource.o): Add params.h dependence. + * params.def (MAX_DELAY_SLOT_LIVE_SEARCH): New parameter. + * params.h (MAX_DELAY_SLOT_LIVE_SEARCH): Likewise. + * resource.c: Add dependence on params.h. + (current_live_regs): Fix explanatory comment. + (find_basic_block): Add new parameter to permit limiting search + for a BARRIER. + (mark_target_live_regs): Add new argument to find_basic_block call. + (incr_ticks_for_insn): Likewise. + +2001-02-23 Gabriel Dos Reis + + * diagnostic.c (output_to_stream): Rename to + output_buffer_to_stream. Loses the stream parameter. + (init_output_buffer): Set diagnosic_buffer's stream. + (flush_diagnostic_buffer): Adjust. + (default_print_error_function): Likewise. + (finish_diagnostic): Likewise. + (verbatim): Likewise. + + * diagnostic.h (struct output_buffer): Add `stream' field. + (output_buffer_attached_stream): New macro. + +2001-02-23 Jakub Jelinek + + * fold-const.c (extract_muldiv) [case PLUS_EXPR]: If not MULT_EXPR, + check if either operand is divisible by C. + (multiple_of_p): Handle LSHIFT_EXPR with small constant shift. + If type is signed, consider negative numbers as well. + +2001-02-22 Richard Henderson + + * config/ia64/crtbegin.asm (.fini): Use pc-relative relocs to + reach .text instead of gp-relative relocs. + * config/ia64/crtend.asm (.init): Likewise. + +2001-02-22 Andreas Jaeger + + * extend.texi (C++ Attributes): Fix typo. + +2001-02-21 David Mosberger + + * config/ia64/ia64.c (ia64_epilogue_uses): For syscall_linkage + functions, drop current_function_args_info.words test. + (ia64_compute_frame_size): Mark syscall_linkage functions as + using eight input registers. + +2001-02-21 Loren J. Rittle + Bruce Korb + + * fixinc/inclhack.def (freebsd_gcc3_breakage): new fix + * fixinc/README: Document how to convert sed substitutions + to format style c_fix-es. + * fixinc/fixincl.x: regen + +2001-02-21 Jeffrey D. Oldham + + * gcc.c: Add comment explaining how to add a command-line option. + Add title to specs language comment. + +2001-02-21 Jeffrey Oldham + + * gcc.c (cc1_options): Add "-param". + (DEFAULT_WORD_SWITCH_TAKES_ARG): Likewise. + (option_map): Likewise. + * toplev.c (display_help): Add entry for "--param". + (independent_decode_option): Fix typographical error. + +Wed Feb 21 18:57:28 CET 2001 Catherine Moore + Bernd Schmidt + Jan Hubicka + + * i386.c (function_arg_advance): Pass SSE arguments in registers. + (function_arg): Likewise. + +Wed Feb 21 18:12:41 CET 2001 Jan Hubicka + + * i386.md (mmx_lshrdi3, mmx_ashldi3): Guard by unspec. + +2001-02-21 Kazu Hirata + + * config/h8300/h8300.md (iorsi3): Do not output an extra newline + character. + (xorsi3): Likewise. + +Wed Feb 21 17:35:24 CET 2001 Jan Hubicka + + * flow.c (init_propagate_block_info): Canon address and use single_set + for killing dead memory stores. + +2001-02-21 Jeffrey Oldham + + * Makefile.in (reorg.o): Add params.h dependence. + * params.def: Fix typographical error in comment. + (MAX_DELAY_SLOT_INSN_SEARCH): New parameter. + * params.h: Modify introductory comment. + (MAX_DELAY_SLOT_INSN_SEARCH): New parameter. + * reorg.c: Add dependence on params.h. + (redundant_insn): Add parameterized throttle for search. + (fill_simple_delay_slots): Add a comment explaining a variable. + Move conditional out of loop, simplifying code. + (fill_eager_delay_slots): Fix typographical error in comment. + +2001-02-20 Aldy Hernandez + + * tm.texi (REVERSE_CONDEXEC_PREDICATES_P): New macro documentation. + + * flow.c (ior_reg_cond): Use REVERSE_CONDEXEC_PREDICATES_P macro. + (REVERSE_CONDEXEC_PREDICATES_P): Define macro. + +2001-02-21 Jason Merrill + + * tree.h (DECL_UNINLINABLE): Move from C++ frontend. + (struct tree_decl): Add uninlinable bitfield. + * c-decl.c (duplicate_decls): Set it. + * integrate.c (function_cannot_inline_p): Check it. + + * dwarf2out.c (add_name_and_src_coords_attributes): Don't add + DW_AT_MIPS_linkage_name to abstract methods. + (dwarf2out_abstract_function): Emit class context before calling + set_decl_abstract_flags. Don't clear DECL_ABSTRACT. + (gen_subprogram_die): Remove obsolete code. + (gen_member_die): Don't include clones in the member list. + (gen_decl_die): Emit abstract info for clone origin. + * dwarfout.c (output_type): Don't include clones in the member list. + * dbxout.c (dbxout_type_methods): Ignore abstract methods. + * toplev.c (note_deferral_of_defined_inline_function): Don't clear + DECL_ABSTRACT on a function that already has it set. + + * dwarf2out.c (gen_formal_types_die): Also accept a FUNCTION_DECL. + (get_subprogram_die): Pass it in. + +2001-02-21 Richard Earnshaw + + * flow.c (mark_set_1): Make not_dead unsigned long. For + non-pseudos, use it as a bitmask of the hard regs that + don't die. + +2001-02-21 Neil Booth + + * cppfiles.c: Update comments. + (_cpp_read_file): Don't check for NULL filenames any more. + * cppinit.c (cpp_start_read): Don't do canonicalization of + in_fname and out_fname. Use the passed file name exclusively. + (_cpp_handle_options): Don't treat "-" as a command line option, + but as a normal filename. + (_cpp_post_options): Canonicalize in_fname and out_fname. + * cppmain.c (printer_init): Don't check out_fname for NULL. + * c-lex.c (orig_filename): Rename cpp_filename for clarity. + (init_c_lex): Update, and use "" to represent stdin to CPP. + (yyparse): Update. + +2001-02-20 Will Cohen + + * config/pa/quadlib.c (_U_Qfcnvfxt_quad_to_usgl): New function. + * config/pa/long_double.h (FIXUNS_TRUNCTFSI2_LIBCALL): Added. + (INIT_TARGET_OPTABS): Use FIXUNS_TRUNCTFSI2_LIBCALL for + fixunstfsi_libfunc. + +2001-02-20 Stan Shebs + + * config/rs6000/rs6000.c (output_cbranch): Output branches + on separate lines instead of using ';' to separate. + +2001-02-20 Neil Booth + + * cppinit.c (set_lang): Move builtin handling to... + (init_builtins): ...here. + (_cpp_create_reader): Move call to set_lang. + +2001-02-20 Mark Mitchell + + * stmt.c (expand_return): If an attempt is made to return the + error_mar_node, treat the return like a return without a value. + +2001-02-19 Zack Weinberg + + * sibcall.c (skip_copy_to_return_value): Call + identify_call_return_value here, and return orig_insn if it + returns zero. Hardret and softret arguments now unnecessary. + (call_ends_block_p): Don't call identify_call_return_value here. + + * ggc-common.c (ggc_mark_rtx_children): No need to mark 'S' or + 's' slots in RTXen. + * ggc-page.c, ggc-simple.c (ggc_mark_if_gcable): Delete function. + * ggc.h (ggc_mark_if_gcable): Delete prototype. + +Mon Feb 19 20:30:16 2001 Jeffrey A Law (law@cygnus.com) + + * pa.c (move_operand): Accept code to load the address of a + symbol out of the DLT as a valid move operand. + (print_operand, case 'A'): New to handle generating a DLT + reference for a LO_SUM expression. + * pa.h (EXTRA_CONSTRAINT): Handle 'A' for DLT LO_SUM references. + * pa.md (movsi, movdi patterns): Allow DLT LO_SUM references. + +2001-02-19 Joseph S. Myers + + * README, cpp.texi, gcc.texi, version.c: Update version number to + 3.1. + * cpp.1, gcov.1, gcc.1: Regenerate. + +2001-02-19 Neil Booth + + * cppfiles.c (stack_include_file): Generate dependencies + here, and manage include_count here too. + (PRINT_THIS_DEP): Delete. + (_cpp_execute_include): Do not generate dependencies here, + apart from the case of a missing header. Do not manage + include_count. + (_cpp_read_file): Leave dependency generation to + stack_include_file. + +Mon Feb 19 10:17:47 2001 Jeffrey A Law (law@cygnus.com) + + * config.gcc (hppa*64*-*-hpux11*): Add MASK_GAS to + target_cpu_default. Remove dead assignment to + target_cpu_default. + +Mon Feb 19 16:47:39 CET 2001 Jan Hubicka + + * regclass.c (contains_reg_of_mode): Make global. + (init_reg_sets): Remove contains_reg_of_mode; take into account + CLASS_MAX_NREGS when looking for the proper mode. + (dump_regclass): Dump only classes considered for the pseudo. + (regclass): Use contains_reg_of_mode. + +Mon Feb 19 16:45:42 CET 2001 Jan Hubicka + + * gcc.c (do_spec_1): 'n' for printing notices. + * i386.h (CC1_CPU_SPEC): Notice deprecated options as deprecated. + +Mon Feb 19 15:51:30 CET 2001 Jan Hubicka + + * reg-stack.c (next_flags_user): Use current_block->end + (swap_rtx_condition): Look for next user if flags don't die; + give up on CALL_INSNs; use current_block->end. + +Mon Feb 19 08:27:21 2001 Richard Kenner + + * sibcall.c (call_ends_block_p): New function. + (optimize_sibling_and_tail_recursive_call): Use it. + +2001-02-18 Kazu Hirata + + * config/h8300/h8300.md: Update copyright. + (andsi3): Do not output an extra newline character. + +Sun Feb 18 15:45:17 2001 Richard Kenner + + * toplev.c (note_deferral_of_defined_inlined_function): Argument + FNDECL may be unused. + + * toplev.c (rest_of_compilation): Don't have CSE skip blocks or + follow jumps after first run. + If -fexpensive-optimizations rerun CSE after GCSE and iterate until + it doesn't change any jumps. + +Sun Feb 18 17:05:50 2001 Jeffrey A Law (law@cygnus.com) + + * Makefile.in (rtlanal.o): Depend on hard-reg-set.h. + ($HOST_PREFIX_1)rtlanal.o: Remove rules for building + (mostlyclean): Corresponding changes. + * rtlanal.c (hard-reg-set.h): Include. + (rtx_unstable_p): Do not treat the argument pointer specially + if it is not a fixed register. + (rtx_varies_p, rtx_addr_can_trap_p): Similarly. + +Sun Feb 18 15:45:17 2001 Richard Kenner + + * sibcall.c (optimize_sibling_and_tail_recursive_call): Compare + against last real insn in basic block. + Rework to avoid gotos. + + * Makefile.in (gcse.o): Now includes ggc.h. + * gcse.c: Include ggc.h. + (want_to_gcse_p): Verify expression can be in SET as valid insn. + (try_replace_reg): Remove warning of uninitialize variable. + (process_insert_insn): Call invalid_insn_p to validate insn. + * recog.c (insn_invalid_p): Now global. + See if can make valid by adding CLOBBERs of SCRATCH only and do if so. + * recog.h (insn_invalid_p): New declaration. + + * jump.c (jump_optimize_1): Only define reversed_code #ifdef HAVE_trap. + + * config/sparc/sparc.c (eligible_for_epilogue_delay): Don't put + assignments from FP constants since 'Y' output code can't handle it. + (eligible_for_sibcall_delay): Likewise. + + * flow.c (print_rtl_and_abort_fcn): Renamed from print_rtl_and_abort. + Call fancy_abort directly, passing args. + (print_rtl_and_abort): Now a macro, like fancy_abort. + + * final.c (output_operand_lossage): Use internal_error, not error. + +2001-02-18 Shane Nay + + * mips.c (mips_expand_prologue) Add REG_MAYBE_DEAD to + structure shift insns. + +2001-02-18 Mark Mitchell + + * invoke.texi (-fsquangle): Remove documentation. + (-fname-mangling-version): Likewise. + +2001-02-18 Lars Brinkhoff + + * optabs.c (expand_abs): Remove reference to + HAVE_contitional_arithmetic. + * combine.c (simplify_set): Likewise. + +2001-02-18 Richard Henderson + + * ifcvt.c (dead_or_predicable): Don't move code if eh regions + would be disrupted. + +2001-02-18 Richard Henderson + + * config/ns32k/ns32k.h (ADJSP): Upcase arguments. + + * config/alpha/alpha.md (movsi_fix): Fix typo in pattern name. + + * reload1.c (reload_cse_simplify_set): Fix typo. + +Sun Feb 18 09:30:09 2001 Richard Kenner + + * diagnostic.c (_fatal_insn): Decrement errorcount. + + * invoke.texi (-I): Add note avoiding use for system header files. + + * rtl.h (add_clobbers): Remove duplicate declaration. + * recog.h (added_clobbers_hard_reg_p): New declaration. + * genemit.c (struct clobber_pat): New field has_hard_reg. + (gen_insn): Record if added clobbers clobber hard reg. + (gen_split): Avoid unused warning if number of operands is 0. + (output_added_clobbers_hard_reg_p): New function. + (main): Call it. + +2001-02-18 Alan Modra + + * pa.c (hppa_expand_prologue): Simplify code storing return + pointer. For large (>=8k) frames with a post_store, adjust stack + pointer by 8k-64 first rather than by 64. When testing with + VAL_14_BITS_P, always use the actual value rather than the value + negated. Add blockage to prevent scheduling of spills before + stack frame has been created. + (hppa_expand_epilogue): Simplify code loading return pointer. + Allow a slightly larger range for merge_sp_adjust_with_load case. + When testing with VAL_14_BITS_P, always use the actual value. + + * pa.c (pa_adjust_insn_length): Check that block move + pattern is a set before looking at operands. + +2001-02-17 Mark Mitchell + + * fold-const.c (fold_binary_op_with_conditional_arg): New + function, split out from ... + (fold): ... here. + * tree.def (COND_EXPR): Document the use of VOID_TYPE for + conditional arms that throw exceptions. + + * print-tree.c (print_node): Do not use BLOCK_CHAIN when we're not + looking at a BLOCK. + +2001-02-17 Kaveh R. Ghazi + + * aclocal.m4 (gcc_AC_CHECK_DECL): Before attempting the test, + define HAVE_DECL_* to 1 to mask potential backup declarations. + * configure: Regenerated. + +2001-02-17 Mark Mitchell + + * invoke.texi (-Woverloaded-virtual): Clarify documentation. + +2001-02-17 Richard Henderson + + * reload1.c (reload_cse_simplify_set): Respect LOAD_EXTEND_OP + when replacing a memory load with a register. + +Sat Feb 17 14:48:30 2001 Richard Kenner + Jan Hubicka + + * recog.c (validate_replace_src_1): New. + (validate_replace_src_data): Likewise. + (validate_replace_src): Use note_uses. + * rtl.h (note_uses): Declare. + * rtlanal.c (note_uses): New. + +Sat Feb 17 10:52:34 CET 2001 Jan Hubicka + + * reg-stack.c (stack_def): Make field reg unsigned. + (remove_regno_note): Unsignetize parameter. + +2001-02-16 Jes Sorensen + + * ia64.c (errata_emit_nops): Add VOIDmode as second argument to + shladd_operand() call. + +2001-02-16 Bruce Korb + Rodney Brown + + * fixinc/mkfixinc.sh: Use C fixincludes for UnixWare 7. + * fixinc/inclhack.def: Add fixinc.svr4 patterns with matching + machine restrictions + * fixinc/fixincl.x: regen + +Fri Feb 16 12:41:30 2001 Richard Kenner + + * gcse.c (hash_scan_set): If cprop, see if REG_EQUAL or REG_EQUIV. + Don't CSE a nop. + (hash_scan_insn): Clean up calls to hash_scan_set. + (compute_kill_rd): REGNO now unsigned. + (try_replace_reg): Rework to use simplify_replace_rtx. + (cprop_jump, cprop_cc0_jump): Likewise. + (cprop_insn): Call find_reg_equal_equiv_note. + Reflect changes to cprop_jump and cprop_cc0_jump. + + * recog.c (validate_replace_src): Replace in operands of + ZERO_EXTRACT in SET_DEST. + + * cse.c (new_label_ref): New variable. + (insert): Set it instead of recorded_label_ref. + (cse_basic_block): Set recorded_label_ref if new_label_ref use, has + CODE_LABEL for this function, and not already in REG_LABEL note. + +2001-02-16 Jeffrey Oldham + + * resource.c (mark_referenced_resources): Fix typo in introductory + comment. + * config/mips/abi64.h (SUBTARGET_TARGET_OPTIONS): Fix typo in + string constant. + +2001-02-16 Jason Merrill + + * dwarf2out.c (add_bound_info): Don't crash if SAVE_EXPR_RTL is + NULL. + (gen_subprogram_die): Don't abort on seeing a second definition if + the previous one was abstract. Don't replace an abstract instance + in the lookup table. + + * dwarf2out.c (dwarf2out_abstract_function): Rename from + gen_abstract_function. + * dwarf2out.h: Declare it. + * toplev.c (note_outlining_of_inline_function): New fn. + * toplev.h: Declare it. + * integrate.c (output_inline_function): Call it. + * c-decl.c (duplicate_decls): Call it when redefining an extern + inline. Don't inline the new defn. + + * tree.h (BLOCK_CHAIN): Use BLOCK_CHECK. + +2001-02-16 Gerald Pfeifer + + * .gdbinit: Rename to gdbinit.in. + * gdbinit.in: New file, + * configure.in: Generate .gdbinit from gdbinit.in. + * configure: Regenerated. + * Makefile.in (distclean): Always remove .gdbinit. + +2001-02-16 Jakub Jelinek + + * objc/objc-act.c (start_class): Register implemented_classes with + GC. + +2001-02-16 Neil Booth + + * cppfiles.c (_cpp_make_system_header): Generate a file + change callback. + +2001-02-15 Jim Meyering + + * Makefile.in (install-common): Don't depend on installdirs here. + Instead, make each of the lang.install-common targets (e.g., + c++.install-common in cp/Make-lang.in) depend on it. + (install-driver): Depend on installdirs. + +Thu Feb 15 21:30:26 2001 Richard Kenner + + * flow.c (tidy_fallthru_edge): Never end block on line number NOTE. + + * function.c (assign_parms): Set RTX_UNCHANGING_P in pseudo when we + do in memory. + +2001-02-15 Mark Mitchell + + * invoke.texi (--param): Document. + +Thu Feb 15 15:16:38 2001 Alexandre Oliva + + * config/sh/sh.h (BOOL_TYPE_SIZE): Don't define. + +Thu Feb 15 10:52:31 CET 2001 Jan Hubicka + + * i386.md (extendsfdf2_2): Fix constraints. + +Thu Feb 15 09:46:21 CET 2001 Jan Hubicka + + * i386.md (fop_df_3 splitter): Fix operand number. + +Wed Feb 14 12:37:37 CET 2001 Jan Hubicka + + * invoke.texi (-mreg-alloc): Nuke. + * i386.c (ix86_reg_alloc_order, regs_allocated, + order_regs_for_local_alloc): Nuke. + (override_options): Kill reg_alloc code. + * i386.h (TARGET_OPTIONS): Kill reg-alloc. + (REG_ALLOC_ORDER): SSE goes before I387. + (ORDER_REGS_FOR_LOCAL_ALLOC): Kill. + (ix86_reg_alloc_order): Likewise. + * i386-protos.h (ix86_reg_alloc_order): Kill. + +2001-02-14 Richard Henderson + + * toplev.c (f_options): Clarify -fschedule-insns2 documentation. + +Wed Feb 14 11:59:58 CET 2001 Jan Hubicka + + * i386.h (RETURN_IN_MEMORY): Fix formating; reject TFmodes + +Wed Feb 14 11:12:38 CET 2001 Jan Hubicka + + * i386-protos.h (ix86_memory_move_cost): Move offline. + * i386.c (ix86_register_move_cost): Compute properly cost of + SSE, MMX and i387 instructions. + (*_cost): Add costs of SSE/MMX moves. + (ix86_memory_move_cost): Move offline from ....; Likewise. + * i386.h (MEMORY_MOVE_COST): .... here; + (struct processor costs): Add new fields to represent costs + of SSE/MMX moves. + +Wed Feb 14 10:08:26 CET 2001 Jan Hubicka + + * regclass.c (init_reg_sets_1): Reinstall the optimization of + move_cost together with Matt Kraai's fix. + +2001-02-14 Jeffrey Oldham + + * Makefile.in (OBJS): Add params.o. + +2001-02-14 Richard Henderson + DJ Delorie + + * jump.c (jump_optimize_1): When we delete a conditional jump + preceding a non-conditional jump to effectively the same place, + make sure that the combined jump skips any clobber insns between + the two labels. + +2001-02-14 Jeffrey Oldham + + * gcc.c (do_spec_1): Fix off-by-one error for '%M' case. + +2001-02-14 Mark Mitchell + + * Makefile.in (toplev.o): Depend on params.h. + (intergate.o): Likewise. + (params.o): New target. + * flags.h (inline_max_insns): Remove. + * integrate.c: Include params.h. + Use MAX_INLINE_INSNS instead of inline_max_insns. + * params.c: New file. + * params.h: Likewise. + * params.def: Likewise. + * toplev.c: Include params.h. + (lang_independent_params): New variable. + (decode_f_option): Use the param machinery instead of setting + max_inline_insns. + (independent_decode_option): Handle "--param name=value". + (main): Register language-independent parameters. + +Wed Feb 14 11:13:45 CET 2001 Jan Hubicka + + * i386.md (pushsf, pushdf_nointeger): Fix constraint. + +2001-02-14 Richard Henderson + + * regclass.c (init_reg_sets_1): Revert last two changes. + +2001-02-14 Jakub Jelinek + + * stor-layout.c (is_pending_size, put_pending_size): New functions. + (variable_size): Call put_pending_size. + * tree.h (is_pending_size, put_pending_size): Add prototypes. + * fold-const.c (extract_muldiv): If SAVE_EXPR is on the pending + sizes list, put newly created SAVE_EXPR there as well. + +2001-02-14 Jakub Jelinek + + * config/ia64/ia64.c (last_group): Only 2 entries are needed. + (errata_find_address_regs): load_group has only 2 entries. + (errata_emit_nops): Likewise. shladd is not problematic. + Clear last_group if nop was emitted. + (fixup_errata): load_group has only 2 entries. + Optimize. + +2001-02-14 Neil Booth + + * c-lex.c (lex_number): Only warn traditionally for U suffix + outside system macros. + * cppexp.c (parse_number): Similarly. + * cpplib.h (NODE_SYSHDR, cpp_sys_objmacro_p): New. + * cppmacro.c (struct cpp_macro): New member node. + (parse_args): Only warn about missing rest args if not + a system macro. + (funlike_invocation_p): Similarly for uninvoked funlike macros. + (cpp_sys_objmacro_p): New. + (_cpp_create_definition): Store the node with the macro defn. + Remember if the macro is defined in a system header. + +2001-02-13 DJ Delorie + + * configure.in (check_languages): determine languages to check + * Makefile.in (check-c++): alias for check-g++ + (check-f77): alias for check-g77 + (CHECK_TARGETS): depend on configured languages + +Wed Feb 14 01:13:59 CET 2001 Jan Hubicka + + * i386.md (fixsfsi2, fixdfdi2): Fix previous patch again. + (sqrtsf2): Use TARGET_SSE instead of TARGET_SSE2) + (sqrtsf2 patterns): Use 'x' instead of 'Y'. + (sqrtextendsfdf2): Disable for SSE2. + +Wed Feb 14 00:19:28 CET 2001 Jan Hubicka + + * i386.md (fixsfsi2, fixdfdi2): Fix previous patch again. + (sqrtsf2): Use TARGET_SSE instead of TARGET_SSE2) + (sqrtsf2 patterns): Use 'x' instead of 'Y'. + (sqrtextendsfdf2): Disable for SSE2. + +Wed Feb 14 00:11:20 CET 2001 Jan Hubicka + + * i386.md (movsfcc_1): Support integer cmove instruction. + (movdfcc_1): Likewise; new splitter. + +Tue Feb 13 23:19:27 CET 2001 Jan Hubicka + + * i386.c (output_fp_compare): Support SSE. + (prepare_fp_compare_args): SSE comparisons always support memory. + * i386.h (TARGET_CMOVE): SSE imply cmove. + * i386.md (cmp?f2): Enable for SSE too. + (cmpfp_i*): Support SSE. + (cmpfp_i_sse): New. + (cmpfp_i_sse_only): New. + (s*, b* fp expanters): Enable for SSE too. + (fp_jcc_1_sse, fp_jcc_1_sse_only, fp_jcc_2_sse, fp_jcc_2_sse_only): + New patterns. + +Tue Feb 13 23:05:42 CET 2001 Jan Hubicka + + * regclass.c (init_reg_sets_1): Silence warning. + +Tue Feb 13 22:03:07 CET 2001 Jan Hubicka + + * i386.md (sqrt?f2): Change to expander. + (sqrt?f2_1, sqrt?f2_sse_only, sqrt?f2_i387): New. + +Tue Feb 13 15:42:05 2001 Richard Kenner + + * rtlanal.c (find_reg_equal_equiv_note): New function. + * simplify-rtx.c (simplify_gen_unary, simplify_gen_ternary): New fns. + (simplify_gen_relational, simplify_replace_rtx): Likewise. + * rtl.h: Add declarations for above functions. + +Tue Feb 13 21:09:11 CET 2001 Jan Hubicka + + * cse.c (cse_main): Converts ifdefs on PIC_OFFSET_TABLE_REGNUM to + conditionals. + * defaults.h (PIC_OFFSET_TABLE_REGNUM): Default to INVALID_REGNUM. + * emit-rtl.c (init_emit_once): Convert ifdefs to conditionals. + * flow.c (mark_regs_live_at_end): Likewise. + (calculate_global_regs_live): Likewise. + * gcse.c (compute_hash_table): Likewise. + (compute_kill_rd): Likewise. + * resource.c (mark_target_live_regs): Likewise. + * rtl.h (INVALID_REGNUM): New macro. + +Tue Feb 13 20:59:22 CET 2001 Jan Hubicka + + * i386.md (fixsfsi2, fixdfdi2): Fix previous patch. + +Tue Feb 13 16:32:20 CET 2001 Jan Hubicka + + * i386.md (fixsfsi2, fixdfdi2): Force operand to register + for SSE. + +Tue Feb 13 14:53:16 CET 2001 Jan Hubicka + + * i386.md (add?f3, sub?f3, mul?f3, dif?f3): Enable for TARGET_SSE(2) + too. + (fop_sf_comm, fop_df_comm, fop_sf_1, fop_df_1): Support SSE. + (fop_sf_comm_sse, fop_df_comm_sse): New patterns. + (fop_sf_1_sse, fop_df_1_sse): New patterns + (fop_*): Disable float_extend and float patterns for SSE compilation. + * i386.c (output_387_binary_op): Support SSE. + +Tue Feb 13 14:16:34 CET 2001 Jan Hubicka + + * i386.md (dummy_extendsfdf2): Support SSE2 + (extendsfdf2): Enable if 80387 or SSE2. + (extendsfdf2_1): Support SSE2. Disable if SSE2 is avialble + and no MIX_I387_SSE2 + (extendsfdf2_1_sse_only): New pattern. + (truncdfsf2): Enable if SSE2 or 80387; Always use SSE only version + of SSE. + (truncdfsf2_1): Support SSE. + (truncdfsf2_2): Support SSE. + (truncdfsf2_2_1_sse): New pattern. + (fixtruncsfsi2): Always use SSE if available. + (fix_truncsfsi_sse): New pattern. + (fix_truncdfsi_sse): New pattern. + (floatsis?f2): Support SSE. + (floatsidf2_i387): New pattern. + (floatsidf2_sse): Likewise. + +Tue Feb 13 07:52:04 2001 Richard Kenner + + * configure.in: Use "have_gnat" variable, not "gnat". + * configure: Regenerated. + + * config/sparc/sparc.c (function_value): Treat all non-record + aggregate types like used to treat UNION_TYPE. + +Tue Feb 13 13:31:33 CET 2001 Jan Hubicka + + * i386.c (print_reg): Use ANY_FP_REG instead of FP_REG + * i386.h (MASK_128BIT_LONG_DOUBLE): Renumber + (MASK_SSE2): New. + (MASK_MIX_SSE_I387): New. + (TARGET_SSE): SSE2 imply SSE. + (TARGET_SSE2, TARGET_MIX_SSE_I387): New. + (TARGET_SWITCHES): Add "sse2", "mix-sse-i387". + (enum reg_class): Add new classes. + (REG_CLASS_NAMES): Likewise. + (REG_CLASS_CONTENTS): Likewise. + (ANY_FP_REG_P, ANY_FP_REGNO_P, SSE_REG_P, SSE_FLOAT_MODE): New macros. + (REG_CLASS_FROM_LETTER): 'x' and 'y' is SSE_REGS only when SSE is + supported. Add 'Y' to be SSE_REGS when SSE2 is supported. + (CLASS_MAX_NREGS): Use new macros. + (REGISTER_MOVE_COST): Rewrite using SECONDARY_MEMORY_MAYBE_NEEDED. + * i386.md (pushsf, movsf): Support SSE. + (pushdf_nointeger, pushdf_integer, pushdf): Support SSE, update + splitters to use ANY_FP_REGNO_P. + (movdf_nointeger, movdf_integer): Likewise. + +2001-02-13 Alexandre Oliva + + * combine.c (UWIDE_SHIFT_LEFT_BY_BITS_PER_WORD): New macro. + (try_combine): Use it. + +Tue Feb 13 11:37:06 CET 2001 Jan Hubicka + + * i386.h (SSE_CLASS_P, MMX_CLASS_P, MAYBE_FLOAT_CLASS_P, + MAYBE_SSE_CLASS_P, MAYBE_MMX_CLASS_P): New macros. + (PREFERRED_RELOAD_CLASS, SECONDARY_MEMORY_NEEDED): Move offline. + (REGISTER_MOVE_COST): Likewise. + * i386-protos.h (ix86_secondary_memory_needed, + ix86_preferred_reload_class, ix86_register_move_cost): Declare. + * i386.c (ix86_secondary_memory_needed, + ix86_preferred_reload_class, ix86_register_move_cost): New function. + +Die Feb 13 11:04:25 CET 2001 Jan Hubicka + + * i386.h (VALID_FP_MODE_P, VALID_INT_MODE_P): New. + (HARD_REGNO_MODE_OK): Move offline to .... + * i386.c (ix86_hard_regno_mode_ok) ... here; + refuse all incorrect modes. + * i386-protos.h (ix86_hard_regno_mode_ok): Declare. + +2001-02-13 Richard Henderson + + * sparc.md (cmp_cc_arith_op_set): Don't use match_dup on the + entire operator; replicate that and match_dup the operands. + (cmp_ccx_arith_op_set): Likewise. + (cmp_cc_arith_op_not_set): Likewise. + (cmp_ccx_arith_op_not_set): Likewise. + +2001-02-13 Alexandre Oliva + + * explow.c (trunc_int_for_mode): Sign-extend value to mode. + +2001-02-12 Geoffrey Keating + + * config/rs6000/sysv4.h (MASK_NO_BITFIELD_WORD): New macro. + (TARGET_NO_BITFIELD_WORD): New macro. + (SUBTARGET_SWITCHES): Add -mbit-word, -mno-bit-word options. + (BITFIELD_NBYTES_LIMITED): Define based on TARGET_NO_BITFIELD_WORD. + +Mon Feb 12 18:13:26 2001 Richard Kenner + + * cselib.c: New file, from simplify-rtx.c. + * simplify-rtx.c: Remove cselib parts. + * Makefile.in: Add cselib.o. + +2001-02-12 Geoffrey Keating + + * config/rs6000/rs6000.c (rs6000_float_const): Remove warning. + (setup_incoming_varargs): Remove warning. + + * config/rs6000/rs6000.c (validate_condition_mode): When + flag_fast_math, allow floating-point conditionals to be reversed. + (rs6000_generate_compare): When flag_fast_math, don't generate + cror operations for FP conditionals. + + * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Handle + -mcall-i960. + (ASM_SPEC): Likewise. + (CC1_ENDIAN_LITTLE_SPEC): Likewise. + (CC1_SPEC): Likewise. + (LINK_TARGET_SPEC): Likewise. + (CPP_ENDIAN_SPEC): Likewise. + * Makefile.in (check-consistency): New target. + +2001-02-12 Joseph S. Myers + + * c-decl.c (grokdeclarator): In C99 mode, give the more specific + "return type defaults" warning for functions with return type + defaulting to int. + * c-lang.c (c_init): In C99 mode, enable warnings for implicit + function declarations by default rather than only when pedantic. + +Mon Feb 12 17:28:48 CET 2001 Jan Hubicka + + * regclass.c (init_reg_sets_1): Optimize calculation of move_cost + arrays. + +2001-02-12 Nathan Sidwell + + * extend.texi (Deprecated): Deprecate new initializer lists. + +2001-02-12 Nathan Sidwell + + * mkdeps.c (deps_add_default_target): Robustify. Add + basename component only. + * cpp.texi (-M): Describe how default target is generated. + * invoke.texi (-M): Likewise. + +2001-02-12 Kazu Hirata + + * toplev.c (push_float_handler): Remove. + (pop_float_handler): Remove. + * toplev.h: Remove prototypes for the above functions. + +2001-02-12 Jakub Jelinek + + * c-common.c (constant_fits_type_p): New function. + (convert_and_check): Use it. + +2001-02-11 Mark Mitchell + + * Makefile.in (GXX_ABI_FLAG): Don't define. + * configure.in (--enable-new-gxx-abi): Remove option. + * config.in: Regenerated. + * configure: Likewise. + +2001-02-12 Alexandre Oliva + + * lcm.c (compute_earliest): Let EXIT_BLOCK be handled as a regular + basic block. + (optimize_mode_switching) [NORMAL_MODE]: Set up EXIT_BLOCK as a + regular basic block, and arrange for all edges into it to switch + to normal mode. + +2001-02-11 Gerald Pfeifer + + * Makefile.in (distclean): Do not remove .gdbinit. + +2001-02-11 Mark Mitchell + + * Makefile.in (gcc.o): Fix typos. + (protize.o): Likewise. + (unprotoize.o): Likewise. + +2001-02-11 Richard Henderson + + * tree.c (build1): Check for null operand in last change. + +2001-02-11 Richard Henderson + + * fold-const.c (split_tree): Don't assume a constant isn't splittable. + (fold): Don't assume a constant isn't foldable. + * tree.c (build): Set TREE_CONSTANT for an expression with no + side-effects and constant operands. + (build1): Likewise. + +2001-02-10 Richard Henderson + + * jump.c (squeeze_notes): Revert 2000-05-12 change. + +2001-02-10 Anthony Green + + * cpp.texi (Standard Predefined): Add documentation for + __OPTIMIZE_SIZE__. + + * c-common.c (combine_strings): Improve warning message. + +2001-02-10 Geoffrey Keating + + * config/rs6000/sysv4.h (LINK_TARGET_SPEC): Use two dashes for + --oformat. + * config/rs6000/sysv4le.h (LINK_TARGET_SPEC): Likewise. + +Fri Feb 9 15:05:27 2001 Christopher Faylor + + * config/i386/t-cygwin (T_CPPFLAGS): Use correct location for + CYGWIN_CROSS_DIR. + +2001-02-09 Alexandre Oliva + + * config/sh/sh.md (sibcalli, sibcalli_pcrel, sibcalli): Set + fp_mode attribute. + +2001-02-09 Nick Clifton + + * config/arm/arm.md: Change output contraint on post inc + load/store multiple patterns to be a read/write contraint. + +2001-02-09 Neil Booth + + * gcc.c (cpp_options): Delete .d files on error. Don't delete + .o files when using the -M options. + +2001-02-08 Franz Sirl + David Edelsohn + + * config/rs6000/rs6000.c (output_toc): Allow 32-bit targets to + handle DImode constants. Use one TOC entry for SImode and smaller + constants, aligned properly. + +2001-02-08 Jason Merrill + + * config/arm/arm.c (arm_expand_prologue): Do tell the dwarf2 backend + about the SP adjustment for saving the static chain pointer. + * dwarf2out.c (dwarf2out_frame_debug_expr): Use the specified + offset when setting a temporary CFA register. + +2001-02-08 Chandrakala Chavva + + * config.gcc : New targets, i386-*-chorusos*, sparc-*-chorusos*, + powerpc-*-chorusos* . + * config/rs6000/chorus.h : New file. + * config/i386/chorus.h : New file. + * config/sparc/chorus.h : New file. + * config/sparc/t-chorus-elf : New file. + +2001-02-08 David Edelsohn + + * config/rs6000/rs6000.h (ASM_OUTPUT_SYMBOL_REF): Move from here ... + * config/rs6000/aix.h (ASM_OUTPUT_SYMBOL_REF): ... to here. + * config/rs6000/aix51.h (CPLUSCPLUS_CPP_SPEC): Define it. + (__WCHAR_TYPE__): Correct macro name. + +2001-02-08 Richard Henderson + + * config/i386/i386.c (ix86_frame_pointer_required): New. + (ix86_setup_frame_addresses): New. + (struct machine_function): Add accesses_prev_frame. + * config/i386/i386.h (FRAME_POINTER_REQUIRED): Call + ix86_frame_pointer_required. + (SUBTARGET_FRAME_POINTER_REQUIRED): New. + (SETUP_FRAME_ADDRESSES): New. + * config/i386/i386-protos.h: Update. + * config/i386/sco5.h (SUBTARGET_FRAME_POINTER_REQUIRED): Rename + from FRAME_POINTER_REQUIRED. + * config/i386/svr3gas.h: Likewise. + * config/i386/sysv3.h: Likewise. + * config/i386/v3gas.h: Likewise. + +2001-02-08 Richard Henderson + + * config/sparc/sparc.c (function_arg_record_value_3): Fix + calculation of the number of integer registers required. + (function_arg_record_value): Likewise. + +2001-02-08 Jason Merrill + + * diagnostic.c (internal_error): Say "confused" after 1 error, not + two. Print file and line with "confused" message. + + * dwarf2out.c (dwarf2out_line): Include filename in -dA output. + +Thu Feb 8 11:21:28 2001 Richard Kenner + + * rtlanal.c (remove_node_from_expr_list): Correctly update PREV. + +2001-02-08 Bernd Schmidt + + * final.c (cleanup_subreg_operands): The address of a MEM can + contain SUBREGs. + + * config/ia64/ia64.c (ia64_variable_issue): Call group_barrier_needed_p + for asms, too. + +2001-02-08 Joseph S. Myers + + * gcc.texi (Incompatibilities): Update documentation of + preprocessing numbers. + +2001-02-07 Jakub Jelinek + + * c-decl.c (finish_enum): Revert part of 2000-01-05 change. + +2001-02-07 Mark Mitchell + + * config/rs6000/aix43.h (CPLUSCPLUS_CPP_SPEC): Define it. + + * defaults.h (CPLUSPLUS_CPP_SPEC): New macro. + * gcc.c (struct compiler): Add cpp_spec field. + (input_file_compiler): New variable. + (do_spec_1): Allow a particular compiler to handle `%C' + specially. + (main): Store the current compiler in input_file_compiler. + * tm.texi (CPLUSPLUS_CPP_SPEC): Document. + +2001-02-07 Zack Weinberg + + * cpphash.h (struct spec_nodes): Add n_true and n_false. + * cppinit.c (cpp_create_reader): Initialize them. + (append_include_chain): cxx_aware arg might be unused. + * cppexp.c (lex): In C++ mode, recognize 'true' and 'false' + keywords and give them their phase 7 meaning. Pedwarn about + this unless '__bool_true_false_are_defined' is defined. + +2001-02-07 Alexandre Oliva + + * lcm.c (optimize_mode_switching): Emit mode_set before the + JUMP_INSN of an abnormal edge. + +2001-02-07 Bernd Schmidt + + * builtins.c (expand_builtin_setjmp_receiver): Emit an ASM_INPUT as + a scheduling barrier at the end. + + * tm.texi (MD_INIT_BUILTINS, MD_EXPAND_BUILTIN): Document. + +2001-02-07 Alexandre Oliva + + * config/sh/sh.md (reload_outsf): Removed. + (movsf_ie): Introduce constraints for FPUL loads and stores. + (reload_insf): Broaden the output constraint. + + * config/elfos.h (INT_ASM_OP): Don't define it if it's already + defined. + * config/sh/sh.h (INT_ASM_OP, ASM_OUTPUT_CONSTRUCTOR, + ASM_OUTPUT_DESTRUCTOR): Copy definitions from config/elfos.h. + +2001-02-06 Chandrakala Chavva + + * final.c: Revert my previous changes. + * output.h: Make profile_label_no extern. + * config/rs6000/rs6000.c (output_profile_hook): Use standard functions + for generating label. + +2001-02-06 Laurynas Biveinis + + * config/i386/djgpp.h: Add comments about standard paths. + (MD_EXEC_PREFIX): Undefine before defining. + (MD_STARTFILE_PREFIX): New. + +2001-01-30 Bruce Korb + + fixinc/fixincl.c(process): Emit error message only if appropriate :) + (load_file): do not rely on load_file_data() to close file pointer + fixinc/fixlib.c(load_file_data): do not close passed in file pointer + fixinc/inclhack.def(irix_limits_const): add test_text + +2001-02-06 Neil Booth + + * cppexp.c (parse_defined): Improve diagnostics for invalid + syntax. + +2001-02-06 Neil Booth + + * cppmacro.c (cpp_get_token): Avoid pasting after a builtin. + +2001-02-06 Mark Mitchell + + * config/rs6000/rs6000.h (ASM_OUTPUT_SYMBOL_REF): Define. + * config/rs6000/rs6000-protos.h (rs6000_output_symbol_ref): Declare. + * config/rs6000/rs6000.c (VTABLE_NAME_P): New macro. + (rs6000_output_symbol_ref): New function. + (output_toc): Use VTABLE_NAME_P. + +Tue Feb 6 07:54:51 2001 Richard Kenner + + * print-tree.c (print_node, case PARM_DECL): + Print DECL_ARG_TYPE and DECL_ARG_TYPE_AS_WRITTEN. + + * stor-layout.c (reference_types_internal): New variable. + (internal_reference_types): New function. + (layout_type, case REFERENCE_TYPE): Make Pmode if internal. + * tree.h (internal_reference_types): New declaration. + + * cse.c (find_best_addr): Fix typo in computing cost. + +Mon Feb 5 21:56:16 2001 Richard Kenner + + * combine.c (nonzero_bits, case PLUS): If pointers extend unsigned + and this is the sum of a pointer and a constant, we know the result + did not overflow. + (num_sign_bit_copies, case PLUS): Likewise. + * explow.c (convert_memory_address): Remove opposite SUBREG. + * function.c (instantiate_new_reg): New function (from common code). + (instantiate_virtual_regs_1): Call it. + For PLUS, handle if (plus (subreg (virt-reg) (const_int)) + if pointers sign- or zero-extend. + * simplify-rtx.c (simplify_unary_operation, case ZERO_EXTEND): + If pointers extend unsigned, use inside of SUBREG. + (simplify_unary_operation, case SIGN_EXTEND): Likewise, if sign extend. + +2001-02-05 Benjamin Kosnik + + * Makefile.in (-DGPLUSPLUS_TOOL_INCLUDE_DIR): Change to target + subdir of gcc_gxx_include_dir. + (gcc_gxx_target_include_dir): Remove. + +2001-02-05 Jeffrey Oldham + + * dwarf2out.c: Revise DWARF2 Abbreviation Glossary comments. + (dwarf2out_frame_debug_expr): Revise introductory comments to add + a high-level description. + +2001-02-05 Chandrakala Chavva + + * final.c: Move the declaration of profile_label_no to ... + * output.h: ... here. + * function.c (expand_function_start): Call PROFILE_HOOK. + * config/rs6000/aix.h: Define PROFILE_HOOK. + * config/rs6000/rs6000-protos.h: output_profile_hook new. + * config/rs6000/rs6000.c (output_profile_hook): Define. + (output_prolog): Do nothing for ABI_AIX as it is taken care by + output_profile_hook. + tm.texi : Explain new macro PROFILE_HOOK. + +2001-02-06 Hans-Peter Nilsson + + * extend.texi (Extended Asm): Do not say that semicolon is always + a valid line-breaking character for GNU assemblers. Use + newline-tab as the most commonly supported syntax. Use + newline-tab rather than semicolon in multi-insn examples. + +2001-02-05 Franz Sirl + + * Makefile.in (gcc_gxx_target_include_dir): Use $(target_alias). + +2001-02-05 Franz Sirl + David Edelsohn + + * config/rs6000/rs6000.c (rs6000_return_addr): Use PIC + code for AIX, even without flag_pic. + +2001-02-05 Jakub Jelinek + + * c-typeck.c (common_type): push and pop binding level around + calling common_type on function parameters. + +Mon Feb 5 14:30:37 2001 Christopher Faylor + + * config/i386/cygwin.h (CPP_SPEC): Add missing space after -idirafter. + +Mon Feb 5 11:23:16 2001 Richard Kenner + + * config/mips/mips.c (override_options): Fix typo in last change. + (mips_make_temp_file): Call fatal_io_error, not pfatal_with_name. + (mips_asm_file_end): Likewise; also pass more args to fatal_io_error. + +2001-02-05 Nathan Sidwell + + * invoke.texi (-fdump-class-layout): Document. + (-fdump-translation-unit): Use `=' as filename separator. + +2001-02-05 Mark Mitchell + + * Makefile.in (s-mlib): Don't build multilibs if + --disable-multilib. + (DRIVER_DEFINES): Adjust accordingly. + (gcc.o): Likewise. + (protoize.o): Likewise. + (unprotoize.o): Likewise. + * configure.in: Recognize --enable-multilib. + +2001-02-04 Mark Mitchell + + * Makefile.in (DRIVER_DEFINES): Fix quoting. + + * Makefile.in (site.exp): Always set HAVE_LIBSTDCXX_V3. + * configure.in: Remove --enable-libstdcxx_v3 support. + * configure: Regenerated. + +Sun Feb 4 15:52:44 2001 Richard Kenner + + * config/avr/avr.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): + Call abort instead of fatal. + (TRAMPOLINE_TEMPLATE): Call internal_error instead of fatal. + * config/dsp16xx/dsp16xx.h (FUNCTION_PROFILER): Likewise. + (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Likewise. + (TRAMPOLINE_TEMPLATE, INITIALIZE_TRAMPOLINE): Likewise. + (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Likewise. + * config/rs6000/rs6000.h (RETURN_ADDRESS_OFFSET): Likewise. + + * diagnostic.h (set_internal_error_function): Renamed. + * toplev.h (internal_error): Renamed from fatal. + (pfatal_with_name): Deleted. + (fatal_io_error): Now has printf-style arguments. + * diagnostic.c (pfatal_with_name): Deleted. + (fatal_io_error): Rework to have args in printf-style. + (set_internal_error_function): Renamed from set_fatal_function. + (internal_error): Renamed from fatal. + (error_recursion, fancy_abort): Call internal_error instead of fatal. + * dwarf2out.c (get_cfa_from_loc_descr): Likewise. + * emit-rtl.c (gen_realpart, gen_imagpart): Likewise. + * expr.c (check_max_integer_computation_mode, expand_expr): Likewise. + * flow.c (verify_flow_info): Likewise. + * config/arm/arm.c (thumb_unexpanded_epilogue): Likewise. + * config/mips/mips.c (save_restore_insns): Likewise. + + * except.c (duplicate_eh_handlers): Call abort instead of fatal. + * flow.c (verify_flow_info): Likewise. + * config/arm/arm.c (thumb_load_double_from_address): Likewise. + * config/avr/avr.c (pttreg_to_str, unique_section): Likewise. + (avr_normalize_condition): Likewise. + * config/c4x/c4x.c (c4x_emit_libcall, c4x_valid_operands): Likewise. + * config/dsp16xx/dsp16xx.c (dsp16xx_reg_class_from_letter): Likewise. + (limit_reload_class, double_reg_to_memory): Likewise. + (print_operand_address, emit_1600_code_shift): Likewise. + (gen_tst_reg, gen_compare_reg): Likewise. + * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Likewise. + * config/dsp16xx/dsp16xx.c (dsp16xx_invalid_register_for_compare): + Deleted. + * config/dsp16xx/dsp16xx.md (unnamed cmphi): Call abort instead of it. + + * c-parse.in (methoddef): Call fatal_error instead of fatal. + * objc/objc-act.c (build_ivar_chain): Likewise. + * dwarfout.c (dwarfout_init): Call fatal_io_error instead of + pfatal_with_name. + * graph.c (clean_graph_dump_file): Likewise. + * profile.c (init_branch_prob): Likewise. + * objc/objc-act.c (objc_init): Likewise. + + * config/arm/arm.c (arm_override_options): Make errors non-fatal. + * config/avr/avr.c (avr_override_options): Likewise. + * config/c4x/c4x.c (c4x_expand_prologue): Likewise. + * config/dsp16xx/dsp16xx.c (function_prologue): Likewise. + * config/h8300/h8300.c (h8300_init_once): Likewise. + * config/mips/mips.c (override_options): Likewise. + * config/i386/i386.c (override_options): Likewise, rework. + * config/m68k/m68k.c (override_options): Likewise. + + * config/dsp16xx/dsp16xx.c (print_operand): Call output_operand_lossage + instead of fatal. + * config/mips/mips.c (print_operand): Likewise. + * hash.c (hash_allocate): Don't check for failure returns from + obstack functions that can't fail. + (hash_table_init_n, hash_table_init): Likewise; also now return void. + * hash.h (hash_table_init_n, hash_table_init): Now return void. + * objc/objc_act.c (objc_check_decl): Remove unneeded fatal call. + (get_object_reference): Likewise. + +2001-02-04 Nick Clifton + + * config/arm/arm.c (all_cores): Add 710T, 720T, 740T, 940T, 9e, + StrongARM1110, 10TDMI, and 1020T. + +2001-02-04 Kaveh R. Ghazi + + * mips.h (MULTILIB_ISA_DEFAULT): Don't use #elif. + +2001-02-04 Alexandre Oliva + + * config/sh/sh.md (movdf load split): Pass register number to + FP_OR_XD_REGISTER_P. + +2001-02-04 Mark Mitchell + + * cppinit.c (BC): New macro. + (builtin_array): Add __GXX_WEAK__. + * cpplib.h (builtin_type): Add BT_WEAK. + * cppmacro.c (builtin_macro): Handle BT_WEAK. + * defaults.h (SUPPORTS_ONE_ONLY): Define. + * varasm.c (SUPPORTS_ONE_ONLY): Do not define. + +2001-02-03 Jakub Jelinek + + * cppinit.c (append_include_chain): Honor NO_IMPLICIT_EXTERN_C. + +2001-02-03 Neil Booth + + * cpphash.h: Rename _ALIGN POOL_ALIGN. + * cpplex.c (new_chunk, _cpp_pool_reserve): Update. + +2001-02-03 Neil Booth + + * cpphash.h: Rename ALIGN _ALIGN. + * cpplex.c (new_chunk, _cpp_pool_reserve): Update. + +Fri Feb 2 23:15:29 2001 Christopher Faylor + + * config/i386/cygwin.h (CPP_SPEC): Reorganize YA to better handle cross + compilation environment. + * config/i386/t-cygwin (T_CPPFLAGS): Define CYGWIN_CROSS_DIR to allow + control over location of cygwin includes and libs. + +2001-02-03 Michael Hayes + + * md.texi (Standard Names): remove reference to spur.md. + +2001-02-03 Michael Hayes + + * c4x.c (group1_reg_operand, group1_mem_operand, arx_reg_operand, + c4x_arn_reg_operand, c4x_arn_mem_operand): Do not check register + number before reload. + (c4x_adjust_cost): Return zero before reload. + * c4x.md (load_immed_address+1, load_immed_address+2): Do not + split before reload. + +2001-02-03 Herman A.J. ten Brugge + + * c4x.c (c4x_hard_regno_rename_ok): New. + * c4x-protos.h (c4x_hard_regno_rename_ok): New. + * c4x.h (HARD_REGNO_RENAME_OK): Define. + +Fri Feb 2 20:03:50 2001 Richard Kenner + + * diagnostic.h: Add missing "extern" in all declarations. + +2001-02-02 Alex Samuel + + * Makefile.in (gcc_gxx_target_include_dir): Generate dynamically + as for gcc_gxx_include_dir. + +2001-02-02 Neil Booth + + * cpp.texi, invoke.texi: Update -Wtraditional documentation. + +2001-02-02 Alexandre Oliva + + * config/sh/sh.c (output_far_jump): Don't use braf on SH1. Emit + label before alignment to be used as the braf base address. + * config/sh/sh.md (length): Use longer lengths for SH1 PIC far + branches. + (casesi_jump_2): Require at least TARGET_SH2. + + * config/float-sh.h (LDBL_EPSILON, LDBL_MIN, LDBL_MAX): Prevent + truncation to 32-bit doubles on -m3e and -m4-single-only. + +2001-02-02 Mark Mitchell + + * gcc.c (init_gcc_specs): New function. Make -shared-libgcc + the default when building a shared object. + (init_spec): Use it. + * testsuite/lib/g++.exp: Include the directory where libgcc + is located to the LD_LIBRARY_PATH list. + * invoke.texi (-shared-libgcc): Document the cases in which + GCC defaults to using the shared libgcc. + +2001-02-02 Alexandre Oliva + + * config/fp-bit.h (MAX_USI_INT, MAX_SI_INT): Don't assume + unsigned is wide enough. + (BITS_PER_SI): New. + * config/fp-bit.c (_fpmul_parts): Don't assume 32-bits SI. + (si_to_float): Likewise. + (float_to_si, float_to_usi): Use BITS_PER_SI. + +2001-02-01 Jeffrey Oldham + + * dwarf2out.c: Added explanation of abbreviations. + (def_cfa_1): Added comments listing DWARF2 instructions. + (cfa_temp_reg): Removed in favor of cfa_temp. + (cfa_temp_value): Removed in favor of cfa_temp. + (cfa_temp): New global variable. + (dwarf2out_frame_debug_expr): Added extensive introductory + comments explaining the function's transformations. Revised to + use cfa_temp. Added some rtx checking. Generalize IOR case. + (dwarf2out_frame_debug): Revised to use cfa_temp. + (output_aranges): Cast as "unsigned" to avoid warning. + * rtl.texi (RTX_FRAME_RELATED_P): Revise entry to emphasize better + explain which instructions must be marked. + +2001-02-01 Richard Henderson + + * local-alloc.c (update_equiv_regs): Copy INSN_CODE to the + new instruction. + +2001-02-01 Alexandre Oliva + + * config/sh/crt1.asm (main_k): Modified so that start calls + ___setup_argv_and_call_main. + +2001-02-01 Neil Booth + + * cpphash.h (struct cpp_buffer): Move saved_flags from cpp_reader. + * cpplex.c (_cpp_lex_token): New token picks up the saved flags, + and AVOID_LPASTE is cleared on meeting an unescaped newline. + * cppmacro.c (builtin_macro): Set builtin flags here. + (paste_all_tokens): Preserve AVOID_LPASTE on pasted token. + (replace_args): Clarify intent. + (cpp_get_token): Macro expansion tokens get the saved flags. + Update. + * cppmain.c (scan_buffer): Remove now-redundant print.printed + check. + +2001-02-01 Jeffrey Oldham + + * config/mips/iris6.h (SUPPORTS_INIT_PRIORITY): Reverse change of + 2001-Jan-29. + +Thu Feb 1 07:22:41 2001 Richard Kenner + + * builtins.c (expand_builtin_alloca): allocate_dynamic_stack_space + returns Pmode pseudo, but we need ptr_mode. + * explow.c (allocate_dynamic_stack_space): Use plus_constant. + Remove bogus conversions; use HOST_WIDE_INT for size. + Don't use TARGET if wrong mode. + + * config/i386/i386.c (ix86_compute_frame_size): Allow + stack_alignment_needed to be non-default even if size is zero. + +2001-01-31 Alan Modra + + * pa.c (hppa_init_pic_save): New function. + * pa.h (hppa_init_pic_save): Declare. + * pa.md (call, call_value, sibcall, sibcall_value): Use + the above instead of duplicated code. + + * pa.c (hppa_encode_label): Correct size of alloca buffer + so we don't overrun it. Correct leading `*' case. + * pa.h (STRIP_NAME_ENCODING): Simplify now that we don't + need to handle `*@'. + (FUNCTION_NAME_P): Likewise. + +2001-01-31 Richard Henderson + + * config.gcc (alpha-osf5): Use float-i128.h. + + * config/float-i128.h (FLT_EVAL_METHOD, DECIMAL_DIG): Define. + * config/float-i32.h: Likewise. + * config/float-i64.h: Likewise. + * config/float-sh.h: Likewise. + * config/float-sparc.h: Likewise. + +2001-01-31 DJ Delorie + + * expmed.c (extract_bit_field): allow non-integral modes if we + want to extract a whole register from itself. + +2001-01-31 Jakub Jelinek + + * c-typeck.c (set_init_index): If first is equal to last, assume as + if it was not a range at all. + +2001-01-31 Alexandre Oliva + + * config/fp-bit.c: Include tm.h. + (float_to_si): Don't assume SImode is 32-bits wide. + (float_to_usi): Likewise. + +2001-01-31 Joseph S. Myers + + * c-parse.in (structsp): Pedwarn when "enum foo" refers to an + incomplete type. + (typename): Call pending_xref_error after parsing typed_typespecs. + * c-decl.c (lookup_tag): Give error immediately rather than + leaving it pending if the tag of the wrong type is in the same + binding level. + (xref_tag): Don't pedwarn for forward declarations of enum types + here. + * gcc.texi (Actual Bugs): Remove entry for misuse of struct, union + and enum tags. + +2001-01-31 Alexandre Oliva + + * config/float-sparc.h (LDBL_MAX) [sparc32]: Fix typo. + +2001-01-31 Neil Booth + + * cpplib.c (T_ELIF): Move to STDC89, not that it matters. + (_cpp_handle_directive): Suggest not using #elif with -Wtraditional. + +2001-01-31 Neil Booth + + * cpphash.h (struct cpp_reader): New saved_flags. + * cppmacro.c (cpp_get_token): Use saved_flags to remember + to avoid a paste after a pasted token. + +2001-01-31 Alexandre Oliva + + * libgcc2.h (Wtype_MAX, Wtype_MIN): Define. + * libgcc2.c (__fixunssfSI, __fixunsdfSI, __fixunsxfSI): Use + Wtype_MIN instead of LONG_MIN. + +2001-01-30 Jeffrey Oldham + + * fixinc/fixincl.tpl: Add 2001 to copyright. Change name of + README file. + * fixinc/fixincl.x: Regenerated. + * fixinc/inclhack.def (irix_limits_const): New definition to + convert "const" to "__const" in limits.h. + +2001-01-30 Jeffrey Oldham + + * fixinc/genfixes (AG): Fix "autogen4" thinko. + +2001-01-30 Herman A.J. ten Brugge + + * regmove.c (try_auto_increment): Change REG_DEAD into REG_UNUSED + when register dies in the insn. + +2001-01-30 Neil Booth + + * diagnostic.c (fatal): Fix word wrap. + +2001-01-30 Alexandre Oliva + + * combine.c (try_combine): Fix SUBREG setting for + HOST_BITS_PER_WIDE_INT >= 2 * BITS_PER_WORD. + +2001-01-30 Franz Sirl + + * jump.c (comparison_dominates_p): Don't try to handle UNKNOWN + comparison codes. + +2001-01-30 Neil Booth + + * c-decl.c (c_expand_body): Check TYPE_SIZE_UNIT (ret_type) + is not NULL. + * toplev.c (decode_W_option): Update warn_larger_than + unconditionally for each processed switch. + +2001-01-30 John David Anglin + + * pa.c (pa_init_machine_status): Initialize pic_offset_table_save_rtx + to NULL_RTX. + (hppa_expand_prologue): Delete code to save pic offset table register + in the function prologue. + * pa.h (PIC_OFFSET_TABLE_SAVE_RTX): Correct type in comment. + * pa.md (call, call_value, sibcall, sibcall_value): Save the pic offset + table register at the beginning of the function after the prologue. + +2001-01-29 lars brinkhoff + + * tm.texi (PUSH_ROUNDING): Remove duplicate lines. + +2001-01-29 John David Anglin + Jeff Law + + * pa.md (return): Revise comment for trivial return. + (return_internal): Non-trivial return pattern for non-PIC code. + (return_internal_pic): Non-trivial return pattern for PIC code. + It uses the PIC register to ensure it is restored after + function calls. + (epilogue): Generate appropriate return for PIC and non-PIC code. + +Mon Jan 29 23:53:14 2001 Christopher Faylor + + * config/i386/cygwin.h: Fix -mno-cygwin search path for link. + +2001-01-29 DJ Delorie + + * combine.c (if_then_else_cond): Pass the correct mode to + operand_subword() for constants. + +Mon Jan 29 20:38:19 2001 Christopher Faylor + + * config/i386/cygwin.h: Add w32api to include search. Search different + directories in a cross-build environment. + +2001-11-29 Tim Josling + + * tree.h (TYPE_STUB_DECL): Add documentation. + +2001-11-29 Laurynas Biveinis + + * sdbout.c (sdbout_one_type): Skip types with indeterminate size. + (sdbout_field_types): Likwise. Fix use of host_integerp. + +2001-01-29 Thomas Pfaff + + * mingw32.h: Override STARTFILE_SPEC and LINK_SPEC declared in + cygwin.h. + +2001-01-29 Jeffrey Oldham + + * config/mips/iris6.h (SUPPORTS_INIT_PRIORITY): Revise definition + to use flag_gnu_linker. + +2001-01-29 Neil Booth + + * cpplib.c (T_BAD_DIRECTIVE): Remove. + (_cpp_init_stacks): Loop from 0 to N_DIRECTIVES - 1. + +2001-01-29 Joseph S. Myers + + * tree.c, tree.h (build_parse_node): Remove; was identical to + build_nt. + * c-lang.c (start_cdtor), objc/objc-act.c + (build_module_descriptor): Use build_nt instead of + build_parse_node. + +2001-01-29 Jakub Jelinek + + * config/i386/i386.md (addqi_1_lea): Fix mode (QI instead of HI). + (testqi_1, andqi_2): If widening to SImode, make sure CONST_INT does + not have any upper bits set. + +2001-01-29 Phil Edwards + + * COPYING.LIB: Update to LGPL 2.1 from the FSF. + +2001-01-28 Kaveh R. Ghazi + + * stmt.c (estimate_case_costs): Use integer_minus_one_node. + + * tree.c (build_common_tree_nodes_2): Set integer_minus_one_node. + + * tree.h (tree_index): Add new element TI_INTEGER_MINUS_ONE. + (integer_minus_one_node): Define. + +2001-01-28 Alexandre Oliva + + * Makefile.in (bootstrap2-lean): Fix typo. + +2001-01-28 Neil Booth + + * cpphash.c (_cpp_cleanup_hashtable, _cpp_lookup_with_hash) + : Don't set fe_value. + * cpplib.h (AVOID_LPASTE): New flag. + (struct cpp_hashnode): Remove fe_value. + * cpplex.c (cpp_avoid_paste): Don't paste '.' with a number. + * cppmacro.c (builtin_macro): Don't set flags here. + (replace_args): Set AVOID_LPASTE flag on first token of an + argument, and the token following it. + (cpp_get_token): Set AVOID_LPASTE flag on first token of a + macro expansion, and on the token following it. Do it for + builtins too. + * cppmain.c (scan_buffer): Avoid pasting only flagged tokens. + +2001-01-27 Richard Henderson + + * config/alpha/t-ieee: Remove multilibbing. + (TARGET_LIBGCC2_CFLAGS): Add -mieee. + +2001-01-27 Kaveh R. Ghazi + + * configure.in: Arrange to include defaults.h in [ht]config.h/tm.h. + + * Makefile.in: Remove all dependencies on defaults.h. + * builtins.c: Don't include defaults.h. + * c-common.c: Likewise. + * c-decl.c: Likewise. + * c-pragma.c: Likewise. + * c-typeck.c: Likewise. + * combine.c: Likewise. + * i386.c: Likewise. + * frame-ia64.c: Likewise. + * cppexp.c: Likewise. + * crtstuff.c: Likewise. + * dbxout.c: Likewise. + * dwarf2out.c: Likewise. + * dwarfout.c: Likewise. + * emit-rtl.c: Likewise. + * except.c: Likewise. + * expr.c: Likewise. + * final.c: Likewise. + * frame-dwarf2.c: Likewise. + * libgcc2.c: Likewise. + * optabs.c: Likewise. + * profile.c: Likewise. + * sdbout.c: Likewise. + * toplev.c: Likewise. + * tradcif.y: Likewise. + * tree.c: Likewise. + * varasm.c: Likewise. + +2001-01-27 Kaveh R. Ghazi + + * builtins.c (expand_builtin_fputs): Use size_one_node when + transforming into fwrite. + +2001-01-27 Joseph S. Myers + + * extend.texi (Attribute Syntax): New section. + +2001-01-27 Michael Sokolov + + * fixproto: Correctly install synthesized unistd.h and stdlib.h when + they didn't need fixing. + +2001-01-27 Janis Johnson + + * config.gcc (i[34567]86-sequent-{ptx4*,sysv4*}): Use usegas.h + if appropriate. + * config/ptx4.h: Several fixes to build on DYNIX/ptx v4.[456], and + to remove macro definitions that are duplicated from elfos.h. + +2001-01-27 Richard Henderson + + * config/i386/sco5gas.h: Move ... + * config/usegas.h: ... here. + * config.gcc (i[34567]86-*-sco3.2v5) [tm_file]: Update. + +2001-01-27 Jakub Jelinek + + * c-typeck.c (struct constructor_stack): Add range_stack member. + (really_start_incremental_init): Clear it. + (push_init_level): Save constructor_range_stack and clear it if + pushing explicit braces. + (pop_init_level): abort if constructor_range_stack is nonzero at + explicit closing brace. Restore saved constructor_range_stack if + not implicit. + +2001-01-27 Alexandre Oliva + + * expr.c (emit_move_insn): Add REG_EQUAL note when constant loaded + into register was forced into memory. + +2001-01-27 Alexandre Oliva + + * Makefile.in: Remove uses of + before $(MAKE). + +2001-01-26 Richard Henderson + + * stmt.c (cost_table): Remove. + (COST_TABLE, cost_table_initialized): New. + (estimate_case_costs): Use the later instead of the former. + (balance_case_nodes): Likewise. + +2001-01-26 Richard Henderson + + * alias.c (objects_must_conflict_p): Read-only slots may not + conflict despite having the same type. + +2001-01-27 Michael Hayes + + * loop.c (loop_giv_reduce_benefit): Copy mode size into + int variable. + (check_ext_dependant_givs): Initialize u_start_val and + u_end_val. + (load_mems): Make last_max_reg unsigned. + (try_swap_copy_prop): Use INSN_P and initialize set. + +Fri Jan 26 23:22:58 2001 Denis Chertykov + + * README.AVR : Removed. + +Fri Jan 26 11:37:26 2001 Jeffrey A Law (law@cygnus.com) + + * pa-64.h (text_section): Remove declaration. + + * pa.md (return_internal): Remove mode on PIC register use. + +2001-01-25 lars brinkhoff + + * tm.texi (DATA_ALIGNMENT, LOCAL_ALIGNMENT, ASM_OPEN_PAREN, + ASM_CLOSE_PAREN): fix typos. + +2001-01-25 Mark Mitchell + + * acconfig.h: Define `const' to the empty string if neither + __STDC__ nor __cplusplus is defined. + * config.in: Regenerated. + +2001-01-25 David Edelsohn + + * config.gcc (rs6000-ibm-aix[5-9]*): Change to aix51.h. + * collect2.c (main): Delete importf. Add ".obj" file extension. + (GCC_CHECK_HDR): Handle AIX V5 new magic number. + (aix_std_libs): Add additional AIX libraries to skip. + * config/rs6000/aix.h (MY_ISCOFF): Add AIX V5 new magic number. + * config/rs6000/aix51.h: New file. + +2001-01-25 Michael Hayes + + * loop.c (loop_call_insn_emit_before, loop_call_insn_hoist): New. + (loop_insn_emit_before): No longer static. + (move_movables): Replace emit_insn_after with loop_insn_emit_after. + (loop_givs_rescan, load_mems): Likewise. + (check_dbra_loop): Replace emit_insn_before with loop_insn_emit_before. + (maybe_eliminate_biv_1): + (move_movables): Replace emit_call_insn_before with + loop_call_insn_hoist. + * loop.h (loop_insn_emit_before): Add. + * unroll.c (copy_loop_body): Replace emit_insn_before with + loop_insn_emit_before. + +2001-01-25 Neil Booth + + * diagnostic.c (fatal): Request preprocessed source. + +Thu Jan 25 02:01:16 2001 J"orn Rennecke + + * c-decl.c (duplicate_decls): If different_binding_level is nonzero, + olddecl has argument types and newdecl has none, use the argument + types from olddecl. + +2001-01-24 Ulrich Drepper + + * dwarf2out.c (prefix_of): New function. Determine longest common + prefix of the two arguments. The units are whole path components. + (output_file_names): When adding a new directory find the one entry + with the longest common prefix already in the list. Artificially + generate entry if there is none for this prefix. + Fix test to check whether the zeroth directory entry is used. + +Wed Jan 24 23:51:55 2001 J"orn Rennecke + + * reload1.c (reload_reg_free_for_value_p): New parameter start_regno. + Changed all callers. Take it into account when deciding if a + previously loaded value matches. + +2001-01-24 Richard Henderson + + * reload.c (find_reloads_subreg_address): Fail the substitution + if the resulting address is insufficiently aligned. + +2001-01-24 DJ Delorie + + * combine.c (combine_simplify_rtx): If the modes are all VOIDmode, + check the original operand's mode also. + * simplify-rtx.c (simplify_ternary_operation): Ditto. + +2001-01-24 Joseph S. Myers + + * c-parse.in (cast_expr): Move compound literals from here ... + (primary): ... to here. Use standard terminology "compound + literal" instead of "constructor expression". + +2001-01-24 Joseph S. Myers + + * gcc.1, cpp.1: Regenerate. + +2001-01-24 Alexandre Oliva + + * calls.c (emit_library_call_value_1): Memory slot for + pass-by-reference argument should have the mode of the argument, + not of the pointer to it. + +2001-01-24 Tom Tromey + + * gcc.texi (G++ and GCC): Mention gcj manual. + (Standards): Link to section of manual mentioning gcj/Java + compatibility. + +2001-01-24 Jakub Jelinek + + * cppfiles.c (_cpp_read_file): Add to dependencies if requested. + * cppinit.c (cpp_start_read): Remove deps_add_dep call. + * tradcpp.c (main): Add -imacros or -include'd dependencies + for -M*. + * cpp.texi (-M, -MM): Document -M -include behavior. + +2001-01-24 Roger Collins + + * config/i386/xm-i386.h: Make __i386__ a boolean macro. + +2001-01-24 Will Cohen + + * config/mips/abi64.h (RETURN_IN_MEMORY): Always take into account + whether registers are 32 bits or 64 bits in size. + +2001-01-24 Ben Elliston + + * config/m32r/m32r.h (PREDICATE_CODES): Remove m32r_not_same_reg. + +2001-01-24 Richard Henderson + + * config/alpha/alpha.md (builtin_longjmp_internal): New. + (builtin_longjmp): Use it instead of emit_indirect_jump. + +2001-01-23 John David Anglin + + * bb-reorder.c (make_reorder_chain_1): Handle case where + jump edge goes to the same block as the fallthru edge. + +2001-01-23 Jim Wilson + + * dwarf2out.c (dwarf2out_line): Make last_file_num be unsigned. + * frame.h (__ia64_personality_v1): Add prototype. + * libgcc2.c (ia64_throw_helper): Change personality declaration to + prototype form. Add void * cast to first argument to personality + call. + * real.c (e113toe): Surround with INTEL_EXTENDED_IEEE_FORMAT ifdefs. + (asctoe113): Likewise. + * config/ia64/frame-ia64.c: Include eh-common.h. + * config/ia64/ia64-protos.h (sdata_section, sbbs_section): Add + prototypes. + * config/ia64/ia64.c (emit_insn_group_barriers): Add ATTRIBUTE_UNUSED + to dump parameter. + (itanium_split_issue): Add prototype. + (gen_nop_type): Ifdef out. + (find_best_packet): Initialize best_packet. + (ia64_encode_section_info): New local string. Use for ggc_alloc_string + result. + * config/ia64/ia64.h (ASM_OUTPUT_LONG_DOUBLE): Use 0L not 0. + * config/ia64/ia64.md (bsp_value): Add explicit stop bit at start. + (flushrs): Add explicit stop bit at end. + * config/ia64/lib1funcs.asm (__ia64_restore_stack_nonlocal): Change + trailing \ to >. + +2001-01-23 Chris Demetriou + + * libgcc-std.ver (GCC_3.0): Add __terminate_func_set to list + of EH symbols. + * libgcc2.c (__terminate_func): Make variable static. + (__terminate_set_func): New function to set __terminate_func. + * libgcc2.h (__terminate_func_ptr): New typedef. + (__terminate_set_func): New function. + +2001-01-23 Richard Henderson + + * flow.c (init_propagate_block_info): Don't consider unchanging + memories for dead frame store elimination. + +2001-01-23 Richard Henderson + + * varasm.c (UNIQUE_SECTION): Move default implementation ... + * defaults.h: ... here. + +2001-01-24 Michael Hayes + + * c4x.h (TARGET_LOAD_DIRECT_MEMS): Define. + +2001-01-23 Neil Booth + + * c-lex.c (lex_charconst): Fix typo: s/p/str. + +2001-01-23 Franz Sirl + + * rs6000.h (rs6000_return_addr): Move prototype from here... + * rs6000-protos.h (rs6000_return_addr): ...to here. + (rs6000_init_expanders): Delete prototype. + +2001-01-23 Nick Clifton + + * invoke.texi: Replace , with \, inside @gccoptlist macros. + (Spec Files): Document %B and %j and %. and %v3 and %M and + %{S*&T} spec switches. + +2001-01-24 Herman A.J. ten Brugge + + * c4x.c (c4x_r11_set_p): Calculate rtx code correctly. + +2001-01-23 Chris Demetriou + Neil Booth + + * cpperror.c: Merge handlers of PEDWARN and WARNING. + Have -Werror make pedantic warnings errors, like the + rest of GCC. + +2001-01-23 Phil Edwards + + * c-tree.texi (IDENTIFIER_LENGTH): Fix typo. + +2001-01-23 Jakub Jelinek + + * integrate.h (struct inline_remap): Add compare_src, compare_mode. + * integrate.c (expand_inline_function): Initialize them. + (subst_constants): If changing COMPARE so that both its arguments + will be VOIDmode and the comparison mode will be lost, note + compare_mode. Use the recorded compare_mode to optimize + IF_THEN_ELSE. + +2001-01-23 Jason Merrill + + * dwarf2out.c (new_die): Use xcalloc. + (output_die): Abort rather than emit a local reference to offset 0. + +2001-01-17 Andrew Haley + + * libgcc2.c (get_reg_addr): Don't abort if we haven't got a copy + of a saved register; return NULL instead. + (copy_reg): Take a pointer to a source register rather than a + frame_state. + (next_stack_level): Remember the address in the stack frame of all + saved registers. + Use the saved register pointer array as the source of the CFA. + (throw_helper): Rewrite. Unwind once rather than twice and keep + track of saved registers as we go. + +2001-01-23 Herman A.J. ten Brugge + + * c4x-protos.h (c4x_legitimize_reload_address): Remove. + * c4x.c (c4x_legitimize_reload_address): Remove. + * c4x.h (LEGITIMIZE_RELOAD_ADDRESS): Rewrite to generate correct + reload address for ldp(k) insn. + +Mon Jan 22 20:53:47 2001 Jeffrey A Law (law@cygnus.com) + + * pa.md (return_internal): Add a USE of the PIC register to ensure + it is restored after each call. + (return expander): Corresponding changes. + +2001-01-22 Franz Sirl + + * rs6000.h (INIT_EXPANDERS): Delete. + (RETURN_ADDR_RTX): Call rs6000_return_addr(). + * rs6000.c (rs6000_override_options): Call *_machine_status from + here... + (rs6000_init_expanders): ...instead of here. Delete. + (rs6000_mark_machine_status): New function. + (rs6000_init_machine_status): Use xcalloc. + (rs6000_return_addr): Generate RTX for the return address. + (rs6000_ra_ever_killed): New, check if LR was ever destroyed. + (rs6000_stack_info): Use it. + +2001-01-22 Thomas Pfaff + + * gthr-win32.h: Include errno.h to get a declaration for + EINVAL and _mingw.h if the target is mingw32. + +2001-01-22 Andres Felipe Vargas + + * cpp.texi: Correct typos. + +Mon Jan 22 13:59:09 2001 Richard Kenner + + * explow.c (probe_stack_range): Ensure value passed to + stack_check_libfunc is ptr_mode, not Pmode. + +Mon Jan 22 16:53:06 2001 J"orn Rennecke + + * recog.c (validate_replace_rtx_1): In ZERO_EXTEND / SIGN_EXTEND + case, don't use operand_subword to calculate a SUBREG that is + wider than a word. + + * rtl.texi: Comparisons yield 0 or STORE_FLAG_VALUE. + +2001-01-22 Herman A.J. ten Brugge + + * c4x.c (c4x_valid_rptb_p, c4x_label_ref_used_p): New functions. + (c4x_rptb_insert): Call c4x_valid_rptb_p to check if repeat block is + valid. If not replace it by equivalent insns. + +2001-01-22 Herman A.J. ten Brugge + + * c4x.c (c4x_check_legit_addr): Only check CONST. Not if CONST + contains SYMBOL_REF, LABEL_REF and CONST_INT. + (c4x_U_constraint, symbolic_address_operand): Likewise. + (c4x_immed_float_constant): Do not check if CONST_DOUBLE is in + memory. + (c4x_r11_set_p, c4x_check_laj_p): New functions. + * c4x-protos.h (c4x_check_laj_p): Add prototype. + * c4x.md (in_annul_slot_3): Do not allow auto-increment in last + anulling slot because of silicon bug. + (laj, lajv): Call c4x_check_laj_p to check for silicon bug. + +2001-01-22 Alan Modra + + * cppexp.c (parse_charconst): Change `mask' type to agree + with parse_escape. + +2001-01-21 Richard Henderson + + * config/i386/i386.c (ix86_asm_file_end): Disable putting + pic_label_name in a linkonce section. + +2001-01-17 Philipp Thomas + + * aclocal.m4 (AM_WITH_NLS): Add -lintl to LIBS if gettext was + found in libintl. + * configure: Regenerate. + +Sun Jan 21 02:38:56 2001 J"orn Rennecke + + * expmed.c (synth_mult, expand_mult_highpart, expand_divmod): Guard + uses of shift_cost, shiftadd_cost and shiftsub_cost with bound checks. + +Sun Jan 21 09:44:17 2001 Denis Chertykov + + * config/avr/avr.c (ret_cond_branch): New argument (reverse) added. + If REVERSE nonzero then condition code in X must be reversed. + (encode_section_info): Optimize if/else. + (avr_function_value): Fix formatting. + + * config/avr/avr.md (branch): Call to ret_cond_branch changed. + (difficult_branch): Likewise. + (rvbranch): Likewise. + (difficult_rvbranch): Likewise. + + * config/avr/avr-protos.h (ret_cond_branch): Prototype changed. + + * config/avr/libgcc.S: Fix comment. + +2001-01-20 Michael Sokolov + + * sdbout.c (PUT_SDB_DEF): Fix after last bogus change. + +2001-01-20 Michael Sokolov + + * cppinit.c (INO_T_EQ): Don't use #elif, fix formatting. + +2001-01-20 Michael Sokolov + + * aclocal.m4 (gcc_AC_FUNC_STRSTR): New macro. + * configure.in (gcc_AC_FUNC_STRSTR): Add invokation. + * configure, config.in: Regenerate. + * Makefile.in (STRSTR, HOST_STRSTR, USE_HOST_STRSTR): New variables. + (LIBDEPS, HOST_LIBDEPS, LIBS, HOST_LIBS): Add strstr handling. + (strstr.o, $(HOST_PREFIX_1)strstr.o): New rules. + (doprint.o): New rule. + +2001-01-20 Joseph S. Myers + + * c-typeck.c (digest_init): Handle boolean types as scalars. + +Sat Jan 20 12:46:57 2001 Richard Kenner + + * stmt.c (expand_return): Don't return anything if size is zero. + Delete redundant assignment to BYTES. + * expr.c (move_block_from_reg): Do nothing if NREGS is zero. + +2001-01-20 Marek Michalkiewicz + + * config/avr/avr.h (INIT_TARGET_OPTABS): Remove most of it, was + the same as the default library function names. + * config/avr/avr.md: Document special characters after '%'. + (mulqi3, mulhi3, mulsi3): Call libgcc.S functions ourselves, + knowing which of the call-used registers are really clobbered. + (divmodqi4, udivmodqi4, divmodhi4, udivmodhi4, divmodsi4, udivmodsi4): + New. Both quotient and remainder from one libgcc.S call. + * config/avr/libgcc.S: Optimize mul/divmod for the new insns above, + clobber as few registers as possible. + * config/avr/t-avr (LIB1ASMFUNCS): Adjust for the above changes. + +2001-01-20 Neil Booth + + * cppmacro.c (funlike_invocation_p): Don't move back up to the + context of the top of the stack. + +2001-01-20 Jakub Jelinek + + * function.c (fixup_var_refs): Move CALL_PLACEHOLDER handling... + (fixup_var_refs_insns): ...here. + +2001-01-20 Zack Weinberg + + * function.c (fixup_var_refs_insns): Break up into + fixup_var_refs_insn [body of loop], fixup_var_refs_insns + [loop over entire insn list], and fixup_var_refs_insns_with_hash + [loop over hash table entries]. + (fixup_var_refs): Adjust calls to fixup_var_refs_insns and/or + fixup_var_refs_insns_with_hash, to match above changes. + +2001-01-19 John David Anglin + + * Makefile.in (ORDINARY_FLAGS_TO_PASS): Add MAKEOVERRIDES variable. + (libgcc.a): Likewise. + (stmp-multilib): Likewise. + (STAGE2_FLAGS_TO_PASS): Likewise. + +2001-01-19 Alexandre Oliva + + * config/sh/sh.c (prepare_move_operands) [PIC]: Use operands[0] as + temporary if no_new_pseudos. + +2001-01-19 Neil Booth + + * cppinternals.texi: Update. + +2001-01-19 Richard Earnshaw + + * arm.c (arm_init_builtins): Re-enable builtins. + +Fri Jan 19 13:02:56 2001 Richard Kenner + + * rtl.texi (SET, CLOBBER): Document PARALLEL as SET_DEST possibility. + * flow.c (mark_set_1, case PARALLEL): Don't require BLKmode, allow + element to be null, and always expect an EXPR_LIST. + * rtlanal.c (reg_overlap_mentioned_p, note_stores): Likewise. + * sched-deps.c (sched_analyze_1): Likewise. + * sched-rgn.c (check_live_1, update_live_1): Likewise. + + * regclass.c (max_set_parallel): New variable. + (reg_scan): Take it into account in computation of max_parallel. + (reg_scan_mark_refs, case SET): Compute it. + + * alias.c (rtx_equal_for_memref_p, case ADDRESSOF): Don't assume + args are REG. + * expr.c (store_constructor): Don't look at MEM_ALIAS_SET unless MEM. + * function.c (assign_parms): Use INTVAL for a CONST_INT. + +2001-01-19 Jason Merrill + + * dwarf2out.c (gen_subprogram_die): Don't reuse the in-class decl + for the abstract instance of an inline function. + +Fri Jan 19 14:31:35 2001 Alexandre Oliva + J"orn Rennecke + + * reload1.c (move2add_note_store): Treat all registers directly or + indirectly derived from a base register as members of the same set + of values. + (reload_cse_move2add): Adjust accordingly. Take mode and offset + of base register into account. + +Fri Jan 19 09:18:42 2001 J"orn Rennecke + + * alias.c (find_base_value): Recognize TRUNCATE. + (record_set): In PLUS case, invalidate if other summand is also a + base value. + +Thu Jan 18 06:43:04 2001 Richard Kenner + + * flow.c (mark_set_1, case PARALLEL): New case; rework to allow + entry to be EXPR_LIST. + * rtlanal.c (reg_overlap_mentioned_p): Allow PARALLEL in SET to + be an EXPR_LIST (but not null, which other code doesn't allow). + (note_stores): Properly handle PARALLEL in SET. + Recursively call for top-level PARALLEL. + * sched-deps.c (sched_analyze_1): Handle EXPR_LIST in PARALLEL in SET. + * sched-rgn.c (check_live_1, update_live_1): Likewise. + + * config.gcc (rs6000-ibm-aix*, rs6000-bull-bosx): Add rs6000/aix.h. + +2001-01-18 Neil Booth + + * cpplib.c (_cpp_handle_directive): Use buffer->was_skipping, + not pfile->skipping (== 0). + +2001-01-17 Nick Clifton + + * config/rs6000/rs6000.c: Add prototypes for {init|free}_ + machine_status. + +2001-01-17 Jim Wilson + + * invoke.texi (IA-64 options): Improve. + +2001-01-17 Tom Tromey + + * invoke.texi (Optimize Options): Use `{}' to around @samp + argument. + +2001-01-17 Aldy Hernandez + + * invoke.texi (-fno-guess-branch-probability): New option. + +Wed Jan 17 13:26:34 2001 Richard Kenner + + * combine.c (try_combine): Don't set i3_subst_into_i2 for + case of making new double-word constant. + Revert last change: instead just test i3_subst_into_i2. + +2001-01-17 Jakub Jelinek + + * config/i386/i386.md (cmpqi_minus_1): Use {b} for QImode operation. + Use q constraints instead of r. + +Tue Jan 16 22:23:04 2001 Alan Modra (alan@linuxcare.com.au) + + * config/pa/pa.h (PIC_OFFSET_TABLE_REGNUM_SAVED): Remove. + (machine_function): Define. + (PIC_OFFSET_TABLE_SAVE_RTX) : Define. + * config/pa/pa.c (pa_init_machine_status, pa_mark_machine_status, + pa_free_machine_status): New functions. + (override_options): Set {init,mark,free}_machine_status to above. + (hppa_expand_prologue): Use PIC_OFFSET_TABLE_SAVE_RTX instead of + PIC_OFFSET_TABLE_REGNUM_SAVED. + * config/pa/pa.md: Use PIC_OFFSET_TABLE_SAVE_RTX instead of + PIC_OFFSET_TABLE_REGNUM_SAVED throughout. + * config/pa/pa32-regs.h (CONDITIONAL_REGISTER_USAGE): Remove + references to PIC_OFFSET_TABLE_REGNUM_SAVED. + * config/pa/pa64-regs.h (CONDITIONAL_REGISTER_USAGE): Likewise. + +2001-01-15 DJ Delorie + + * Makefile.in (gcov.1): Protect against texi2pod/pod2man failing. + (cpp.1): Ditto. + (gcc.1): Ditto. + +Tue Jan 16 17:20:43 2001 Richard Kenner + + * flow.c (propagate_one_insn): Make trying to delete a prologue + or epilogue insn an ICE, not a warning. Allow doing this if + the current function returns with stack pointer depressed. + + * combine.c (try_combine): If i3_subst_into_i2, properly check for + I3 having more than one SET. + +2001-01-16 Jim Wilson + + * invoke.texi: Document IA-64 options. + + * config/ia64/ia64.c (ia64_print_operand_address): Delete 'B' support. + (fixup_errata): Delete TARGET_A_STEP use. + * config/ia64/ia64.h (MASK_A_STEP, TARGET_A_STEP): Delete. + (TARGET_SWITCHES): Delete -ma-step option. + * config/ia64/ia64.md (all FP patterns): Delete %B0. + (movqicc_astep, movqi_internal_astep, movhicc_astep, + movhi_internal_astep, movsicc_astep, movsi_internal_astep, movdi+1, + movdi_internal_astep, movsfcc_astep, movsf_internal_astep, + movdfcc_astep, movdf_internal_astep, movtfcc_astep, + movtf_internal_astep, cmovdi_internal_astep, cmovsi_internal_astep): + Delete. + (movqi_internal, movhi_internal, movsi_internal, movdi_internal, + movsf_internal, movdf_internal, movtf_internal, cmovdi_internal, + cmovsi_internal): Delete ! TARGET_A_STEP check. + +2001-01-16 Gerald Pfeifer + + * gcc.texi (Bug Lists): Do not mention newsgroups nor the + possibility to report bugs via postal mail. Change a URL and + merge in a nearly duplicate statement... + (Bug Reporting): ...from here. + (Service): Refer to the Bug Reporting section instead of + duplicating an URL. + (Contributing): Remove trivial explanations concerning snapshots. + +2001-01-16 Alan Modra + + * cppmain.c (general_init): Don't use ANSI prototype. + +2001-01-16 Tom Tromey + + * gcc.c (cpp_options): Added `*' to specs for -MF, -MQ, and -MT. + +2001-01-16 Richard Henderson + + * config/i386/i386.h: Fix comment typo. + * config/i386/i386.md (shift+compare pattern names): s/cmpno/cmp/ + (ashr+compare patterns): Match CCGOCmode not CCNOmode. + +2001-01-16 Phil Edwards + + * gcc.c: Revert previous -fsyntax-only-related change; move + to cp/g++spec.c. + +2001-01-16 Jakub Jelinek + + * config/i386/i386.c (fcmov_comparison_operator): Only initialize + inmode after checking GET_CODE (op). + +2001-01-16 Richard Henderson + + * flow.c (struct propagate_block_info): Add mem_set_list_len. + (MAX_MEM_SET_LIST_LEN): New. + (propagate_one_insn): Update mem_set_list_len. + (invalidate_mems_from_autoinc): Likewise. + (invalidate_mems_from_set): Likewise. + (mark_used_regs): Likewise. + (init_propagate_block_info): Likewise. Stop collecting memories + when we reach MAX_MEM_SET_LIST_LEN. + (mark_set_1): Likewise. + +2001-01-16 Richard Henderson + + * unroll.c (precondition_loop_p): Fail if no iteration + variable found. + +2001-01-16 Phil Edwards + + * gcc.c: When -fsyntax-only is given, do not complain about + unused libraries. + +2001-01-15 Richard Henderson + + * config/i386/i386.c (asm_output_function_prefix): Remove. + (ix86_asm_file_end): New. + (load_pic_register): Generate pic_label_name into a + statically allocated buffer. + * config/i386/i386-protos.h: Update. + * config/i386/i386.h (ASM_OUTPUT_FUNCTION_PREFIX): Remove. + (ASM_FILE_END): New. + * config/i386/i386afe.h: New file. + * config.gcc (i?86-*-elf) [tm_file]: Use it. + (i?86-*-{freebsd,linux*,moss*}): Likewise. + * config/elfos.h (ASM_FILE_END): Undef before redefinition. + * config/i386/cygwin.h (ASM_FILE_END): Likewise. + * config/i386/osfrose.h (ASM_FILE_END): Invoke ix86_asm_file_end. + * config/i386/sco5.h (ASM_FILE_END): Likewise. + * config/i386/winnt.c (i386_pe_asm_file_end): Likewise. + +2001-01-15 Joseph S. Myers + + * Makefile.in (install-man): Remove explicit dependency on + $(srcdir)/gcc.1. + + * configure.in, configure: Revert previous patch requiring perl + 5.6.0. + +2001-01-12 Aldy Hernandez + + * toplev.c (flag_guess_branch_prob): New. + (f_options): Add guess-branch-probability option. + (rest_of_decl_compilation): Only estimate branch probability if + flag set. + (main): set flag_guess_branch_prob. + + * flags.h (flag_guess_branch_prob): New. + +2001-01-15 DJ Delorie + + * gcc.texi (Makefile): Add documentation for Makefile targets. + +2001-01-15 Philip Blundell + + * config/arm/arm.c (arm_finalize_pic): New arg "prologue". + (is_pic): Delete. + * config/arm/arm-protos.h (arm_finalize_pic): Update prototype. + (is_pic): Delete declaration. + * config/arm/arm.h (FINALIZE_PIC): Update call to arm_finalize_pic. + (OUTPUT_INT_ADDR_CONST): Remove special handling of PIC address. + * config/arm/arm.md (builtin_setjmp_receiver): New. + +2001-01-15 Richard Earnshaw + + * arm.c (use_return_insn): Don't try to determine the function type + until after reload has completed. + (arm_output_epilogue): Don't adjust the sp value recovered from the + stack. + (emit_multi_reg_push): Don't record dwarf information for the pc. + * arm.md (eh_epilogue): The function type may have changed, so it + needs to be recalculated. + * arm/netbsd.h (DWARF2_UNWIND_INFO): Delete. Can now use dwarf2 + unwind tables on arm/netbsd. + +2001-01-15 Richard Earnshaw + + * arm.md (cbranchsi4): Correct calculation of branch ranges. + (negated_cbranchsi4): Likewise. + +2001-01-15 Richard Earnshaw + + * config/arm/semi.h (SUBTARGET_EXTRA_SPECS): Define. + (SUBTARGET_EXTRA_ASM_SPEC): Define to empty string. + (ASM_SPEC): Call subtarget_extra_asm_spec. Don't + pass -mapcs-* options to assembler. + * config/arm/elf.h (SUBTARGET_EXTRA_SPECS): Define. + (SUBTARGET_EXTRA_ASM_SPEC): Define to empty string. + (ASM_SPEC): Call subtarget_extra_asm_spec. + +2001-01-15 Andreas Jaeger + + * config/i386/i386.c (ix86_init_builtins): Make i size_t to remove + warnings. + (ix86_expand_builtin): Likewise. + + * gencodes.c (output_predicate_decls): Make i size_t to avoid + warning about comparison between signed and unsigned. + +2001-01-14 Geoffrey Keating + + * expr.c (do_jump): Treat VOIDmode CONST_DOUBLEs like CONST_INTs. + +2001-01-14 Ralf Baechle + + * config/mips/linux.h (SUBTARGET_CPP_SPEC): Default ABI is 32; change + SUBTARGET_CPP_SPEC appropriately. + +2001-01-12 Mark Mitchell + + * varasm.c (make_decl_rtl): Fix typo in last change. + +2001-01-14 Jeffrey Oldham + + * defaults.h (SUPPORTS_INIT_PRIORITY): New macro to indicate the + linker supports the init_priority C++ attribute. + * tm.texi (SUPPORTS_INIT_PRIORITY): Documentation for new macro. + * config/mips/iris6.h (SUPPORTS_INIT_PRIORITY): Indicate Irix + linker does not support init_priority C++ attribute. + +Sun Jan 14 22:31:30 2001 J"orn Rennecke + + * Makefile.in (libgcc1-test.o): Depends on stmp-int-hdrs. + +2001-01-14 Neil Booth + + * c-parse.in (finish_parse): Add comment about cpp_destroy. + * cp/lex.c (finish_parse): Similarly. + * cppinit.c (cpp_cleanup): Rename cpp_destroy for clarity. + Return the number of errors encountered. + * cpplib.h (cpp_cleanup): Rename cpp_destroy, return int. + * cppmain.c (main): Don't call cpp_destroy. + +2001-01-14 Joseph S. Myers + + * configure.in: Require at least perl 5.6.0 to regenerate + manpages. + * configure: Regenerate. + +2001-01-14 Richard Henderson + + * genrecog.c (DT_veclen_ge): New. + (add_to_sequence) [MATCH_PARALLEL]: Generate one. + (maybe_both_true_2): Simplify DT_veclen vs DT_veclen_ge. + (nodes_identical_1): Handle DT_veclen_ge. + (write_cond, debug_decision_2): Likewise. + +2001-01-14 Richard Earnshaw + + * arm.md (ldmsi_postinc, ldmsi, stmsi_postinc, smsi): Delete. Replace + with ... + (ldmsi_postinc[432], ldmsi[432], stmsi_postinc[432], stmsi[432]): New. + +2001-01-14 Neil Booth + + * cppmain.c (do_preprocessing): New function; most of the old + main. + (main): Call it to do most of the work. + (cb): Move from global scope to set_callbacks (). + (setup_callbacks): Get the callback pointer. + (general_init, printer_init): Clean up code and comments. + +2001-01-14 Richard Earnshaw + + * config/arm/semi.h (ASM_SPEC): Pass -k to the assembler when + compiling PIC. + +2001-01-14 Kazu Hirata + + * config/h8300/h8300.c (get_shift_alg): Update comments. + +Sun Jan 14 06:20:49 2001 Richard Kenner + + * ggc-page.c (alloc_annon): Call perror and correctly call exit. + (alloc_page, ggc_alloc): Add casts to remove warnings. + +2001-01-14 Geoffrey Keating + + * combine.c (simplify_comparison): Don't change `code' when + can't reverse comparison. + +2001-01-14 Richard Henderson + + * rtlanal.c (computed_jump_p_1): Rename from jmp_uses_reg_or_mem; + update all call sites. Return true for all non-label constants. + +Sun Jan 14 10:09:48 MET 2001 Jan hubicka + + * i386.c (ix86_expand_compare): Add bypass_test and second_test + parameters. + (ix86_expand_branch): Update. + (ix86_expand_setcc): Update to handle multiple test conditions. + (expand_int_movcc): Likewise. + (expand_fp_movcc): Likewise. + * i386-protos.h (ix86_expand_compare): New. + * i386.md (andqi_?_slp, orqi_?_slp): New. + (conditional trap expander): Update call to ix86_expand_compare. + +2001-01-14 Richard Henderson + + * config/vax/vax.md: Use nonimmediate_operand instead of + general_operand in destinations. + + * config/vax/vax.md (indirect_jump): Use register_operand. + + * config/vax/vax.h (RETURN_POPS_ARGS): Max at 255 arguments. + * config/vax/vax.md (call_pop): Turn into an expander. + (call_value_pop): Likewise. + (call, call_value): New. + +2001-01-14 Andreas Jaeger + + * config/i386/i386.c (ix86_split_fp_branch): Remove unused + variables. + (ix86_fp_compare_mode): Add unused attribute. + (ix86_expand_fp_movcc): Remove unused variable. + (ix86_expand_builtin): Make fcode unsigned. + + * expr.c (MOVE_BY_PIECES_P): Cast MOVE_RATIO to unsigned. + (expand_expr): Add cast to avoid signed warning. + (store_field): Likewise. + (store_constructor_field): Likewise. + (store_constructor): Likewise. + (store_expr): Likewise. + (clear_storage): Likewise. + (emit_group_store): Likewise. + (emit_group_load): Likewise. + +2001-01-13 Joseph S. Myers + + * c-common.c: Move format checking code to ... + * c-format.c: ... here. New file. Reorder some functions and + declarations. + (decl_handle_format_attribute, decl_handle_format_arg_attribute): + New functions. + * c-common.h (decl_handle_format_attribute, + decl_handle_format_arg_attribute): Declare. + * Makefile.in (C_AND_OBJC_OBJS): Add c-format.o. + (c-common.o): Adjust dependencies. + (c-format.o): New list of dependencies. + +2001-01-13 Jakub Jelinek + + * unroll.c (loop_iterations): If we cannot prove iteration variable + is set once in each iteration, punt. + +Sun Jan 14 00:23:15 2001 Denis Chertykov + + * config/avr/avr.md ("strlenhi"): Remove clobber of input address. + (*strlenhi): Remove clobber (which was buggy) of output address. + +2001-01-13 Joseph S. Myers + + * Makefile.in (generated-manpages): Add gcc.1 + ($(srcdir)/gcc.1): New target. + (maintainer-clean): Delete $(srcdir)/gcc.1. + * gcc.texi: Add macros @gccoptlist and @gol. + * invoke.texi: Include option summary in manpage. Mark up option + summary with @gccoptlist and @gol. Use @r in one place where + appropriate. + * texinfo.tex: Update to version 2000-12-11.07 from ftp.gnu.org. + * gcc.1: Generate from invoke.texi. + +2001-01-13 Richard Henderson + + * ggc-page.c (USING_MALLOC_PAGE_GROUPS): New; set if not using mmap. + (struct page_entry): Add group member. + (struct page_group): New. + (struct globals): Add page_groups member. + (alloc_anon): Only define for using mmap; remove valloc call. + (page_group_index): New. + (set_page_group_in_use): New. + (clear_page_group_in_use): New. + (alloc_page): Implement USING_MALLOC_PAGE_GROUPS. + (free_page, release_pages): Likewise. + * configure.in (with-gc): Default to ggc-page always. + +2001-01-13 Alexandre Oliva + + * reload1.c (replace_pseudos_in_call_usage): Use + reg_equiv_constant and reg_equiv_address, and don't try + regno_reg_rtx first. + +2001-01-13 Richard Henderson + + * ggc-page.c (alloc_page): Round up allocation size to one page. + Set e->order on extra pages. + +2001-01-13 Richard Henderson + + * genrecog.c (nodes_identical): Expand commentary. + (write_switch): Watch out for identical nodes. + +2001-01-13 Neil Booth + + * cppfiles.c (_cpp_fake_include): New function. + * cpphash.h (_cpp_fake_include): New. + * cpplib.c (do_line): Call _cpp_fake_include when entering + header files in preprocessed input. + * cppmain.c (cb_pragma_implementation): Remove handling. + (setup_callbacks): Don't register pragmas. + +2001-01-13 Neil Booth + + * extend.texi: Udate for CPP. + +2001-01-13 Andreas Jaeger + + * reload1.c: Add prototype for replace_pseudos_in_call_usage. + + * regmove.c: Add prototype for replace_in_call_usage. + +2001-01-13 Neil Booth + + * cpplib.h (cpp_pool, mi_state, mi_ind, struct cpp_macro, + struct cpp_chunk, struct htab, struct toklist, + struct cpp_context, CPP_STACK_MAX, struct lexer_state, + struct spec_nodes, struct cpp_reader, CPP_OPTION, CPP_BUFFER, + CPP_BUF_LINE, CPP_BUF_COL, CPP_BUF_COLUMN, U, ustrcmp, ustrncmp, + ustrlen, uxstrdup, ustrchr, ufputs): Move to cpphash.h. + (struct macro_args): Delete. + * cpphash.h: See above. + +2001-01-13 Neil Booth + + * cppmain.c (struct printer): Remove no_line_dirs. + (options, cb): New. + (main, setup_callbacks, scan_buffer, printer_init, cb_define) + : Use options rather than CPP_OPTION. + (setup_callbacks): Use cb rather than pfile->cb. + (main): No need to check for a buffer. Use cpp_errors. + (printer_init): Don't set no_line_dirs. + (maybe_print_line): Use options not no_line_dirs. + (cb_file_change): Don't call print_line if -P. + +2001-01-13 Neil Booth + + * c-lex.c (init_c_lex): Use cpp_get_callbacks to set + callbacks. + * c-parse.in (finish_parse): Use cpp_errors. + (__yylex): Use return value of cpp_pop_buffer. + * cp/lex.c (finish_parse): Use cpp_errors. + * cp/spew.c (read_token): Use return value of cpp_pop_buffer. + +Sat Jan 13 16:57:40 2001 Denis Chertykov + + * README.AVR: URLs corrected. + +Sat Jan 13 07:30:02 2001 Richard Kenner + + * c-decl.c (start_function): Don't warn if old prototype is builtin + that's not in C's namespace. + * libgcc2.c (_varargs): Update definition of __builtin_saveregs. + (_bb): Add prototype for ctime. + * config/alpha/osf.h (TRANSFER_FROM_TRAMPOLINE): Add missing protos. + +Sat Jan 13 09:53:32 MET 2001 Jan Hubicka + + * i386.c (ix86_fp_comparison_arithmetics_cost, + ix86_fp_comparison_fcomi_cost, ix86_fp_comparison_sahf_cost, + ix86_fp_comparison_cost): New functions. + (ix86_expand_fp_compare): Use the costs to choose best bethod; add + two new parameters SECOND_TEST and BYPASS_TEST; allow generating + two-branch sequences; make static. + (ix86_use_fcomi_compare): Do decision according to the costs. + (split_fp_branch): New. + * i386.md (compare-and-branch patterns): Use split_fp_branch. + * i386-protos.h (ix86_expand_fp_compare): Remove + (ix86_split_fp_branch): Declare. + + * i386.h (PREDICATE_CODES): Update codes from fcmov_comparison_operand + and ix86_comparison_operator. + + * i386.c (ix86_prepare_fp_compare_args): Try to rearange the comparison + to make it cheaper. + + * i386.c (put_condition_code): Output properly the unordered/ordered + compares in fp case. + (ix86_expand_fp_movcc): Use ix86_expand_compare infrastructure. + + * tm.texi (REVERSE_CONDITION): Document. + * i386.c (ix86_fp_compare_mode): Simplify; return always CCFPmode + in -ffast-math mode. + * i386.h (REVERSE_CONDITION, REVERSIBLE_CC_MODE): New macro. + +2001-01-13 Alexandre Oliva + + * config/sh/sh.c (sh_expand_epilogue): Use PR explicitly. + + * config/sh/sh.c (sh_expand_prologue): Let the second toggle_sz be + optimized away. + + * config/sh/sh.c (mova_p): Fix test for mova_const. + +2001-01-13 Neil Booth + + * fix-header.c (read_scan_file): Use cpp_get_callbacks and + cpp_get_options rather than dereferencing pfile and using + CPP_OPTION. + * scan-decls.c (scan_decls): Use return value of + cpp_pop_buffer rather than CPP_BUFFER. + +2001-01-13 Neil Booth + + * cppinit.c (cpp_handle_option): help_only is now part of the + cpp_options structure. + * cpplib.c (cpp_errors, cpp_get_options, cpp_get_callbacks, + cpp_set_callbacks): New functions. + * cpplib.h (cpp_callbacks): Break out as a named structure. + (cpp_options): Move help_only here from cpp_reader. + (CPP_FATAL_ERRORS): Update to use cpp_errors. + (cpp_errors, cpp_get_options, cpp_get_callbacks, + cpp_set_callbacks): New prototypes. + * cppmain.c (main): Update for help_only. + +2001-01-13 Joseph S. Myers + + * Makefile.in (info, maintainer-clean, install-info, uninstall): + Also build and remove and install and uninstall c-tree.info and + cppinternals.info. + ($(srcdir)/gcc.info): Add dependency on contrib.texi. + ($(srcdir)/cppinternals.info): New target. + * c-tree.texi: Change file name used when makeinfo used without -o + from ir.info to c-tree.info. Add info directory entry. + * cppinternals.texi: Add info directory entry. + * .cvsignore: Update. + +2001-01-12 Jakub Jelinek + + * c-typeck.c (store_init_value): Don't require constant initializer + elements with -pedantic -std=c99. + (digest_init): Change error about non-constant initializer elements + into pedwarn. + (constructor_range_end): Remove. + (constructor_incremental, designator_depth, + designator_errorneous): New variables. + (struct constructor_stack): Remove range_end, add incremental. + (struct constructor_range_stack, constructor_range_stack): New. + (struct initializer_stack): Add constructor_range_stack. + (finish_init): Set it. + (start_init): Likewise. require_constant_elements for non-static + trees only if not flag_isoc99. + (really_start_incremental_init): Remove constructor_range_end, add + constructor_incremental. + (pop_init_level): Likewise. + (push_init_level): Likewise. If implicit and the subobject had some + value set already, preinitialize the level with it. + Warn about missing braces only if not pushing due to designators. + (set_designator, push_range_stack): New functions. + (set_init_label): Use them. + (set_init_index): Likewise. Remove constructor_range_end. + Error if designator index is outside of array bounds. + (add_pending_init): Compare values of purpose index trees, not the + trees themselves. Allow overwriting of already initialized element. + Issue a warning if it had side-effects. + (set_nonincremental_init, set_nonincremental_init_from_string): New + functions. + (pending_init_member): Rename to... + (find_init_member): ...this function. Call set_nonincremental_init + if necessary. Compare values of purpose index trees, not the trees + themselves. Return the actual value, not just nonzero if something + is found. + (output_init_element): Remove checks for duplicates. + If field has zero size, only check the initializer for correctness. + Call set_nonincremental_init if necessary. Push RECORD/ARRAY into AVL + if constructor_incremental is zero. Change error about initializers + not computable at load time into pedwarn. + (output_pending_init_elements): Compare bit positions, not + FIELD_DECLs to take into account zero-sized fields. + (process_init_element): Use constructor_range_stack to fill all + ranges in the designator lists from current level up. + * extend.texi: Update documentation for labeled elements. + +2001-01-12 Alexandre Oliva + + * calls.c (emit_library_call_value_1): Add USEs and CLOBBERs + to function usage for arguments passed by reference. Optimize + callee-copied arguments. + * regmove.c (replace_in_call_usage): New function. + (fixup_match_1): Call it. + * cse.c (cse_insn): Canonicalize registers in function usage. + * reload1.c (replace_pseudos_in_call_usage): New function. + (reload): Call it. + + * Makefile.in: Reverted yesterday's wrong patch. Installed the + right version. + +2001-01-12 Jakub Jelinek + + * config/alpha/alpha.c (alpha_expand_block_move): GET_MODE of tmp, + not XEXP (tmp, 0). + +2001-01-12 DJ Delorie + + * Makefile.in (bootstrap): rename stages to be mnemonic. Add + restageN, unstageN, bubblestrap, quickstrap, and cleanstrap + targets. + +2001-01-12 Joseph S. Myers + + * cpp.texi, extend.texi, gcc.texi, install.texi, invoke.texi, + tm.texi: Consistently refer to ISO C instead of ANSI C. Refer to + -std options alongside references to -ansi. Update some + documentation for C99. + * cpp.1: Regenerate. + +2001-01-12 Andreas Jaeger + + * haifa-sched.c (restore_line_notes): Remove argument block B + since it's unused. + * sched-ebb.c (schedule_ebb): Change caller. + * sched-rgn.c (schedule_region): Likewise. + * sched-int.h (restore_line_notes): Adjust prototype. + + * loop.h: Remove wrong declaration of doloop_condition_get. + +2001-01-12 Phil Edwards + + * extend.texi: Move C++-extension-related node from the C section + into the C++ section. + +2001-01-12 Joseph S. Myers + + * extend.texi: Refer to an array of pointers to functions instead + of one of functions. + +Fri Jan 12 12:08:12 MET 2001 Andreas Jaeger + Jan Hubicka + + * combine.c (reversed_comparison): Fix typo in last patch. + Check X for NULL. + (combine_reversed_comparison_code): Make static to follow + prototype declaration. + +2001-01-12 Phil Edwards + + * install.texi: Remove misplaced duplicate entry. + +2001-01-11 Ulrich Drepper + + * config/float-i386.h: Define FLT_EVAL_METHOD and DECIMAL_DIG for C99. + +Thu Jan 11 17:06:30 EST 2001 John Wehle (john@feith.com) + + * final.c: (leaf_function_p): Fix typo. + +2001-01-11 Zack Weinberg + + * aclocal.m4 (AC_FUNC_MMAP_ANYWHERE): Completely rewritten. + Now defines HAVE_MMAP_DEV_ZERO and/or HAVE_MMAP_ANON depending + which you have. + (AC_FUNC_MMAP_FILE): Don't AC_REQUIRE AC_FUNC_MMAP_ANYWHERE. + * configure.in: Set GGC to ggc-page if any of mmap_dev_zero, + mmap_anon, and valloc is available. + * ggc-page.c: Restructure ifdef logic to match new autoconf + spec. Don't throw away the test page in init_ggc. + + * configure, config.in: Regenerate. + +2001-01-12 Michael Hayes + + * loop.h (total_biv_increment): Constify iv_class pointer. + (struct induction): Replace `mem_mode' with `mem' rtx. + * unroll.c (total_biv_increment): Constify iv_class pointer. + * loop.c (loop_giv_reduce_benefit): Derive mem mode from mem rtx. + (find_mem_givs, combine_givs_p): Likewise. + (debug_ivs, debug_iv_class, loop_ivs_dump, loop_iv_class_dump): New. + +2001-01-10 Thomas Pfaff + + * gthr-win32.h (__gthread_objc_thread_get_data): Save and restore Win32 + LastError. + (__gthread_getspecific): Ditto. + +Fri Jan 12 00:04:00 MET 2001 Jan Hubicka + + * i386.c (ix86_comparison_operator, fcmov_comparison_operator, + put_condition_code): Convert fp comparison codes to integer + before handling. + (ix86_expand_fp_compare): Postnote the fp comparison code conversion + to final. + + * i386.c (unsigned_comparison, no_comparison_operator): Kill. + * i386-protos.h (no_comparison_operator): Kill. + + * i386.c (ix86_expand_fp_compare): Fix ordered/unordered confussion. + + * combine.c (REVERSIBLE_CC_MODE): Remove. + (reversible_comparison_p): Remove. + (combine_reversed_comparison_code): New. + (reversed_comparison): New. + (combine_simplify_rtx): Use + combine_reversed_comparison_code/reversed_comparison instead + of reversible_comparison_p. + (simplify_if_then_else): Likewise. + (simplify_set): Likewise. + (simplify_logical): Likewise. + (if_then_else_cond): Likewise. + (known_cond): Likewise. + (simplify_comparison): Likewise. + +2001-01-11 Alan Lehotsky + + * builtins.c (std_expand_builtin_va_start): Handle varargs when + sizeof (int) is larger than sizeof(__word__). + +2001-01-11 Neil Booth + + * cppinit.c (do_includes): Fix typo. + +2001-01-11 Stephane Carrez + + * config/m68hc11/m68hc11.md (cmphi_1): Make sure reloading + in S_REGS does not occur because not all sources are possible + when a S_REGS is a destination (sometimes needs a clobber). + (movqi_const0, zero_extendhisi2, zero_extendqisi2): Likewise. + (zero_extendhidi2, extendqisi2, extendqihi2, extendhisi2): Likewise. + (anddi3, iordi3, xordi3, negqi2, one_cmplhi2, one_cmplqi2: Likewise. + (ashldi3_const32, ashldi3_const1, ashlsi3_const16): Likewise. + (ashlsi3_const1, ashlhi3_2, ashlqi3_const1, ashrhi3): Likewise. + (ashrqi3_const1, lshrdi3_const32, lshrdi3_const63): Likewise. + (lshrdi_const1, lshrsi3_const16): Likewise. + (*addhi3, lshrsi3_const1, lshrqi3_const1): Likewise. + (*movhi_68hc12, *movqi_68hc12): Likewise. + (movstrictqi): Make sure reloading in D_REGS as a destination + does not happen. + +2001-01-11 Neil Booth + + * cppspec.c (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -MQ. + +2001-01-11 Neil Booth + + * cppinit.c (cpp_start_read): If -fpreprocessed, ignore + -D, -U and -A, and don't initialize the builtins. + (do_includes): Error if -include or -imacros with -fpreprocessed. + * cppmain.c (cb_define, cb_undef): Unconditionally process + the callback. + * tradcpp.c (main): Fix typo. + +2000-01-11 Mark Elbrecht + + * cppfiles.c (cpp_included, find_include_file, _cpp_execute_include) + (read_name_map): Use IS_ABSOLUTE_PATH. + * tradcpp.c (get_filename): Likewise. + +2001-01-11 Stephane Carrez + + * config/m68hc11/m68hc11.md (*adcq, *subcq): Fix operand numbers. + (*ashlsi3_const16_zexthi, *ashlsi3_const1): Likewise. + (*lshrsi3_const, *lshrsi3_const1, *lshrsi3_const16): Likewise. + (*ashrsi3, *ashrsi3_const, *ashlsi3, *ashlsi3_const): Likewise. + (*ashlsi3_const1, *lshrsi3, *ashlsi3_const16): Likewise. + (cmphi_z_used): Don't use '@' for the output. + (tstqi_z_used): Likewise. + (cmpqi_z_used): Likewise. + (one_cmplsi2): Likewise. + +2001-01-11 Alexandre Oliva + + * config/sh/sh.c (barrier_align): Recognize branch around far + branch and redundant insn. + +2001-01-11 Neil Booth + + * invoke.texi: Restore documentation of the drivers' switches -MD + and -MMD. + +2001-01-11 Alexandre Oliva + + * config/sh/sh.h (LABEL_ALIGN): Use UNSPECV_ALIGN instead of 1. + + * Makefile.in (check-gcc//%, check-g++//%, check-g77//%, + check-objc//%): Support parallel testing of multilibs. + (TESTSUITEDIR): Set to testsuite by default, but override for + parallel testing. + (check-gcc, check-g++, check-g77, check-objc): Enter + $(TESTSUITEDIR). + +2001-01-11 Bernd Schmidt + + * alias.c (throughout): Use REGNO, rather than ORIGINAL_REGNO. + * sched-deps.c (deps_may_trap_p): Likewise. + * basic-block.h: Remove a comment. + * flow.c (PROP_POSTRELOAD): Remove. + (update_life_info): Don't add it to prop_flags. + (mark_set_1): Lose the code that was enabled by it. + +2001-01-11 Michael Hayes + + * flow.c (flow_call_edges_add): New. + * basic_block.h (flow_call_edges_add): New. + +2001-01-11 J"orn Rennecke + + * reload1.c (move2add_note_store): Update reg_set_luid even if + base reg remains the same. + +2001-01-10 Nick Clifton + + * config/d30v/d30v.c (d30v_init_machine_status): Initialize + machine_function structure to zero. + Add prototypes for machine_status functions. + +2001-01-10 Mark Mitchell + + * c-common.h (CTI_VOID_LIST): Remove. + (void_list_node): Likewise. + * tree.h (TI_VOID_LIST_NODE): New enumeral. + (void_list_node): New macro. + * config/arm/arm.c (arm_init_builtins): Use void_list_node. + * config/i386/i386.c (ix86_init_builtins): Likewise. + * config/ia64a/ia64.c (ia64_init_builtins): Likewise. + +2001-01-10 Neil Booth + + * Makefile.in (tradcpp0): Depend on mkdeps.h. Link mkdeps.o + * cppinit.c (cpp_start_read): Update comment, remove unneeded + if statement. + * tradcpp.c: Include mkdeps.h. + (deps, print_deps_phony_targets, deps_append, output_deps, + init_dependency_output, output_deps): New. + (deps_buffer, deps_allocated_size, deps_size, deps_column, + deps_output): Delete. + (print_deps_missing_files): Rename deps_missing_files. + (inhibit_output): Make global. + (main): Delete inhibit_output, deps_stream, deps_target. + Use mkdeps functionality in the same way as cpplib. Remove + -g3 handling. Handle -MF, -MP, -MQ, -MT. Update handling of + -M and -MM. Remove old handling of deps via deps_out, and + old reading of environment variables. + (get_filename): Update to use deps_add_dep. + +2001-01-10 Mark Mitchell + + * output.h (make_function_rtl): Remove prototype. + (make_decl_rtl): Likewise. + * varasm.c (make_function_rtl): Remove. + (make_decl_rtl): Determine top-levelness from DECL_CONTEXT, rather + than from a third parameter. + * tree.h (make_decl_rtl): Remove last parameter. + * c-decl.c (builtin_function): Remove last argument in call to + make_decl_rtl; use make_function_rtl instead of make_decl_rtl. + (start_function): Likewise. + * except.c (call_get_eh_context): Likewise. + * expr.c (emit_block_move): Likewise. + (clear_storage): Likewise. + * profile.c (output_func_start_profiler): Likewise. + * toplev.c (rest_of_decl_compilation): Likewise. + * objc/objc-act.c (create_builtin_decl): Likewise. + (synth_module_prologue): Likewise. + (generate_static_reference): Likewise. + (build_selector_reference_decl): Likewise. + (build_class_reference_decl): Likewise. + (build_objc_string_decl): Likewise. + (build_protocol_reference): Likewise. + +2001-01-10 Richard Henderson + + * hwint.h: Revert yesterday's change. + +2001-01-10 Nick Clifton + + * function.h (save_machine_status): Delete. + (restore_machine_status): Delete. + Amend comment describing {init|mark|free}_machine_status. + + * function.c (save_machine_status): Delete. + (restore_machine_status): Delete. + Amend comment describing {init|mark|free}_machine_status. + (push_function_context_to): Remove invocation of + save_machine_status. + (pop_function_context_from): Remove invocation of + restore_machine_status. + + * emit-rtl.c (init_emit_once): Amend comment describing + {init|mark|free}_machine_status. + + * tm.texi (Per-Function Data): New node. Describe the + INIT_EXPANDERS macro and the {init|mark|free}_machine_status + function pointers. + +2001-01-10 Neil Booth + + * cppinit.c (OPT_g): Remove. + (cpp_handle_option): Update for removed -g3. + (print_help): Update. + * cpplib.h (struct cpp_options): Remove debug_output. + * cppmain.c (setup_callbacks, cb_define): Update. + * gcc.c (cpp_options): Translate -g3 to -dD. + +2001-01-10 Aldy Hernandez + + * config/i960/i960.md: Change modifier to + on the zero_extract + pattern after the (rotate -2 reg) canonicalization pattern. + +2001-01-10 Richard Henderson + + * config/alpha/alpha.c (alpha_free_machine_status): New. + (override_options): Install it. + (alpha_mark_machine_status): Verify machine non-null. + * config/i386/i386.c (ix86_free_machine_status): New. + (override_options): Install it. + (ix86_init_machine_status): Use xcalloc. + (ix86_mark_machine_status): Verify machine non-null. + * config/ia64/ia64.c (ia64_free_machine_status): New. + (ia64_override_options): Install it. + (ia64_mark_machine_status): Verify machine non-null. + +Wed Jan 10 11:34:39 2001 Jeffrey A Law (law@cygnus.com) + + * function.c (instantiate_virtual_regs): Instantiate virtual + registers found in CALL_INSN_FUNCTION_USAGE. + +2001-01-10 Joseph S. Myers + + * i386.h (CPP_CPU_SPEC): Allow for -std=c* and -std=i* as + equivalent to -ansi in disabling -Di386. + +Wed Jan 10 16:38:31 MET 2001 Jan Hubicka + + * i386.c (ix86_fp_compare_code_to_integer, ix86_fp_comparison_codes): + new functions. + (ix86_expand_fp_compare): Make trivial use of new infrastructure. + +2001-01-10 Richard Earnshaw + + * arm.c (arm_init_builtins): Temporarily disable xscale builtins. + +2001-01-10 Joseph S. Myers + + * invoke.texi: Document that -fcond-mismatch isn't supported for + C++. + +2001-01-10 Joseph S. Myers + + * gcc.texi: Define macro gcctabopt. + * invoke.texi: Add manpage sections BUGS and AUTHOR. Use + @command, @env and @option in some places where appropriate. Use + @gcctabopt where appropriate. Put URLs and email addresses inside + @w. + +2001-01-10 Nathan Sidwell + + * gcc.c (cpp_options): Set MD file name from output + filename, if specified. + (suffix_subst): New static variable. + (do_spec): Clear it. + (do_spec_1, case '.'): Handle new `%.suffix' spec. + Clear it. + (give_switch): Handle suffix_subst. + +2001-01-10 Phil Edwards + + * invoke.texi: Fix another typo. + +2001-01-10 Phil Edwards + + * invoke.texi: Fix typo. + +2001-01-10 Neil Booth + + * c-lang.c (lang_hooks): Update. + (lang_decode_option): Remove. + (lang_init_options): Rename c_init_options. + * toplev.c (main): Use lang_hooks for lang_init_options + and lang_decode_option. + * toplev.h (lang_hooks): Add 2 new hooks. + * tree.h: Remove lang_init_options and lang_decode_option. + * cp/cp-tree.h (lang_decode_option): Rename cxx_decode_option. + * cp/decl2.c: Similarly. + * cp/lex.c (lang_init_options): Rename cxx_init_options. + (lang_hooks): Update. + * f/com.c (f_init, f_finish): Rename ffe_init, ffe_finish + for consistency. + (lang_init_options): Rename ffe_init_options. + (lang_hooks): Update. + (lang_decode_option): Remove. + * java/lang.c (lang_init_options): Rename java_init_options. + (lang_decode_option): Rename java_decode_option. + (lang_hooks): Update. + * objc/objc-act.c (lang_init_options): Rename objc_init_options. + (lang_decode_option): Rename objc_decode_option. + (lang_hooks): Update. + +2001-01-09 Nick Clifton + + * config/d30v/d30v.c (d30v_eh_epilogue_sp_ofs): Delete. + (d30v_return_addr_rtx): Delete. + (d30v_expand_epilogue): Use eh_epilogue_sp_ofs field in the + cfun->machine structure. + (struct machine_function): Move to d30v.h + (d30v_save_machine_status): Delete. + (d30v_restore_machine_status): Delete. + (d30v_init_machine_status): New Function. + (d30v_mark_machine_status): New Function. + (d30v_free_machine_status): New Function. + (d30v_init_expanders): Use new functions. + (d30v_return_addr): Use ra_rtx field in cfun->machine. + (d30v_add_gc_roots): Remove d30v_eh_epilogue_sp_ofs and + d30v_return_addr_rtx. + + * config/d30v/d30v.h (struct_machine): Move here. + Add eh_epilogue_sp_ofs field. + + *config/d30v/d30v.md (epilogue): Initialize eh_epilogue_sp_ofs + field in cfun->machine structure. + +Tue Jan 9 21:34:57 2001 John David Anglin + + * pa32-regs.h (CONDITIONAL_REGISTER_USAGE): When generating pic code, + PIC_OFFSET_TABLE_REGNUM_SAVED is a call_used register. + * pa64-regs.h (CONDITIONAL_REGISTER_USAGE): Likewise. + +Tue Jan 9 21:25:19 2001 Jeffrey A Law (law@cygnus.com) + + * objc/lang-options.h: Remove bogus reference to + Java trademark. + +2001-01-09 Kazu Hirata + + * config/h8300/h8300.c (get_shift_alg): Use a struct shift_info to + return the result. + +2001-01-09 Alan Lehotsky + + * reload.c (find_reloads_address): Check for eliminable registers + when substituting a constant expression for a pseudo. + +2001-01-09 Joseph S. Myers + + * c-common.c (enum format_type): Add format_type_error. + (decode_format_type): New function. + (decl_attributes): Use it. + (format_kind_info): Adjust comment. + +2001-01-09 David O'Brien + + * config.gcc (*-*-gnu*, i[34567]86-*-elf*, i[34567]86-*-linux*libc1, + i[34567]86-*-linux*, i[34567]86-*-moss*): Specify needed platform specific + files in tm_file. + * config/i386/gnu.h: Don't include required platform specific .h files, + tm.h will do it instead. + * config/i386/i386elf.h: Likewise. + * config/i386/linux.h: Likewise. + * config/i386/moss.h: Likewise. + * config/mips/gnu.h: Likewise. + +2001-01-09 Franz Sirl + + * config.gcc (powerpc-*-beos*): Include ${tm_file} and rs6000/aix.h. + (rs6000-ibm-aix3.[01]*): Likewise. + (rs6000-ibm-aix3.2.[456789]*, powerpc-ibm-aix3.2.[456789]*): Likewise. + (rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*): Likewise. + (rs6000-ibm-aix4.[3456789]*, powerpc-ibm-aix4.[3456789]*): Likewise. + (rs6000-ibm-aix[56789].*, powerpc-ibm-aix[56789].*): Likewise. + (powerpc-*-sysv*): Include {tm_file}. svr4.h and rs6000/sysv4.h. + (powerpc-*-eabiaix*): Likewise. + (powerpc-*-eabisim*): Likewise. + (powerpc-*-elf*): Likewise. + (powerpc-*-eabi*): Likewise. + (powerpc-*-rtems*): Likewise. + (powerpc-*-linux*libc1): Likewise. + (powerpc-*-linux*): Likewise. + (powerpc-wrs-vxworks*): Likewise. + (powerpcle-wrs-vxworks*): Likewise. + (powerpcle-*-sysv*): Likewise. + (powerpcle-*-elf*): Likewise. + (powerpcle-*-eabisim*): Likewise. + (powerpcle-*-eabi*): Likewise. + (powerpcle-*-solaris2*): Likewise. + * config/rs6000/aix31.h: Delete includes. + * config/rs6000/aix3newas.h: Likewise. + * config/rs6000/aix41.h: Likewise. + * config/rs6000/aix43.h: Likewise. + * config/rs6000/beos.h: Likewise. + * config/rs6000/rtems.h: Likewise. + * config/rs6000/sysv4.h: Likewise. + +2001-01-09 Kazu Hirata + + * config/h8300/h8300.c (get_shift_alg): Remove an argument cpu. + Change an argument mode of machine_mode to shift_mode of + shift_mode. Remove an extra error check. + (emit_a_shift): Adopt to the new calling prototype of + get_shift_alg. + (function_prologue): Fix code for a monitor + function. Support H8S. + (function_epilogue): Do not output pop for a monitor function. + +2001-01-09 Nick Clifton + + * config/rs6000/rs6000.c (rs6000_sysv_varargs_p): Delete. + (setup_incoming_varargs): Use sysv_varargs_p field of the + cfun->machine structure. + (struct machine_function): Move to rs6000.h + (rs6000_save_machine_status): Delete. + (rs6000_restore_machine_status): Delete. + (rs6000_init_machine_status): New Function. + (rs6000_free_machine_status): New Function. + (rs6000_init_expanders): Use new functions. + + * config/rs6000/rs6000.h (rs6000_sysv_varargs_p): Delete + export. + (struct machine_function): Move here. + + * config/rs6000/sysv4.h (RS6000_VARARGS_AREA): Use + sysv_varargs_p field of the cfun->machine structure. + + * config/rs6000/rs6000-protos.h (rs6000_save_machine_status): + Remove prototype. + (rs6000_restore_machine_status): Remove prototype. + +2001-01-09 Richard Henderson + + * sched-int.h (struct deps): Add max_reg, reg_last_in_use; merge + reg_last_uses, reg_last_sets, reg_last_clobbers into struct deps_reg. + * sched-deps.c (sched_analyze_1): Update uses of struct deps. + (sched_analyze_2, sched_analyze_insn): Likewise. + (sched_analyze, init_deps): Likewise. + (free_deps): Likewise. Iterate with EXECUTE_IF_SET_IN_REG_SET. + * sched-rgn.c (propagate_deps): Likewise. Remove max_reg argument. + (compute_block_backward_dependences): Update propagate_deps call. + +2001-01-09 Mark Elbrecht + + * gcc.c (process_command): Set switches[n_switches].ordering to 0. + +2001-01-09 Neil Booth + + * cppinit.c (OPT_MD, OPT_MMD): Restore. + (cpp_handle_option): Handle them. + (cpp_post_options): Ensure one of -M or -MM is specified with + any other -M? option. + (init_dependency_output): Suppress output with -MG. + +2001-01-09 Neil Booth + + * cpp.texi: Update. + * invoke.texi: Update. + +2001-01-09 Bernd Schmidt + + * sh.md (reload_outsf): Generate recognizable patterns for + TARGET_SH3E. + +2001-01-09 Neil Booth + + * c-lang.c (lang_hooks): Update. + (lang_init): Rename c_init. + (lang_finish): Remove. + * toplev.c (compile_file): Use lang_hooks for lang_init () + and lang_finish (). + * toplev.h (lang_hooks): Add init () and finish (). + * tree.h (lang_init, lang_finish): Remove. + * cp/tree.h (lang_init, lang_finish): Remove. + * cp/decl2.c (cxx_post_options, lang_hooks): Move to cp/lex.c. + * cp/lex.c (cxx_init, cxx_finish, cxx_post_options, + lang_hooks): New. + (lang_init, lang_finish): Remove. + * f/com.c (lang_init, lang_finish): Rename f_init, f_finish. + (lang_hooks): Update. + * java/lang.c (lang_init): Rename java_init. + (lang_finish): Remove. + (lang_hooks): Update. + * objc/objc-act.c (lang_init): Rename objc_init. + (lang_finish): Remove. + (lang_hoooks): Update. + +20001-01-09 Graham Stott + + * cppfiles.c (_cpp_execute_include): Move `len` initialisation + after `ptr` is initialized. + +2001-01-09 Alexandre Oliva + + * config/sh/sh.h (STATIC_CHAIN_REGNUM): Change from r13 to r3. + (INITIALIZE_TRAMPOLINE): Adjust accordingly. + * config/sh/sh.c (sh_expand_prologue): Use r1 as temporary for + stack adjusts, instead of r3. + +2001-01-09 Michael Hayes + + * flow.c (flow_loop_scan): Break out of ... + (flow_loops_find) ... here. + * basic-block.h (flow_loop_scan): New. + (LOOP_ENTRY_EDGES, LOOP_EXIT_EDGES): Add. + (LOOP_EDGES, LOOP_EXITS_DOMS, LOOP_ALL): Redefine. + +2001-01-09 Alexandre Oliva + + * cppinit.c (cpp_cleanup): NULLify macro_buffer and zero + macro_buffer_len. + * cppmacro.c (cpp_macro_definition): Reset macro_buffer_len when + realloc()ing macro_buffer. + + * hwint.h (HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT): Use long long + if it's wider than long and the target's long is wider than the + host's. + +2001-01-09 Mark Mitchell + + Remove support for using UWIN as a host machine. + * configure.in: Issue an error message. + * configure: Regenerated. + * config.gcc: Remove xm_* UWIN configury. + * config/i386/xm-uwin.h: Remove. + +2001-01-08 Nick Clifton + + * config/v850/v850.c (ra_rtx): Delete. + (v850_save_machine_status): Delete. + (v850_restore_machine_status): Delete. + (v850_init_machine_status): New function. + (v850_mark_machine_status): New function. + (v850_free_machine_status): New function. + (v850_return_addr): Use ra_rtx field in machine structure. + (v850_init_expanders): Use new functions. + + * config/v850/v850-protos.h: Fix prototypes for v850_output_* + * config/v850/v850.c: Change arguments to v850_output+* functions + to take a const char *, to avoid compile time warning. + * config/v850/v850.h (ASM_OUTPUT_LABELREF): Undefine, not needed. + (USER_LABEL_PREFIX): Redefine. + +2000-01-08 Jim Wilson + + * sched-rgn.c (BITSET_ADD, BITSET_REMOVE, bitset_member): Cast + 1 to unsigned HOST_WIDE_INT before left shift. + +2001-01-08 Nick Clifton + + * config/arm/arm.c (arm_mark_machine_status): Check to see if + the machine structure has been allocated. + (arm_free_machine_status): New function: Free the machine + specific function structure. + +2001-01-08 Richard Henderson + + * jump.c (simplejump_p): Revert last change. + +2001-01-08 Neil Booth + + * cppinit.c (init): Rename init_library. + (cpp_create_reader): Update. + * gcc.c (cpp_options): If -o given, use it as the target of + any -M options. + +2001-01-08 Richard Earnshaw + + * arm.c (arm_arch5e): New variable. + (all_cores): XScale is a 5TE device. + (arm_override_options): Set arm_arch5e. + (arm_init_builtins): __builtin_prefetch is in arch5e. + * arm.h (arm_arch5e): Declare it. + + * arm.h (PREDICATE_CODES): Add arm_hard_register_operand. + + * arm.md (define_constants): Add defines for UNSPEC and + UNSPEC_VOLATILE insns. Update all users. + (define_constants): Add constants for IP_REGNUM, SP_REGNUM, PC_REGNUM. + * arm.c (multi_register_push, note_invalid_constants) + (emit_multi_reg_push, emit_sfm, expand_prologue): Use constants. + * arm.h (SP_REGNUM, IP_REGNUM, PC_REGNUM): Delete defines. + (STACK_POINTER_REGNUM): Define in terms of SP_REGNUM. + +Mon Jan 8 16:14:56 MET 2001 Jan Hubicka + + * jump.c (jump_optimize_1): Use reversed_comparison_code + instead of can_reverse_comparison_p. + (jump_back_p): Likewise. + (invert_exp_1): Likewise. + (thread_jumps): Likewise. + * simplify-rtx.c (simplify_unary_operation): Likewise. + (simplify_ternary_operation): Likewise. + * cse.c (find_comparison_args): Convert to use + can_reverse_comparison_p. + (record_jump_equiv): Likewise. + +2001-01-08 Richard Earnshaw + + * arm.h (HARD_REGNO_RENAME_OK): Delete. + (EPILOGUE_USES): Define. + (INITIAL_ELIMINATION_OFFSET): Current prologue code does not + automatically stack the LR if it isn't live. + +Mon Jan 8 13:46:02 MET 2001 Jan Hubicka + + * i386.c (ix86_expand_int_movcc): Take care to reverse fp conditions + properly. + +Sun Jan 7 18:37:43 2001 Mark P Mitchell + + * ggc-page.c (max_alignment): New structure. + (MAX_ALIGNMENT): New macro. + (init_ggc): Use it to round up the sizes in the + extra_order_size_table. + +2001-01-07 Franz Sirl + + * config/rs6000/rs6000.h (EPILOGUE_USES): New, mark link register + after reload. + +2001-01-07 Kaveh R. Ghazi + + * builtins.def (BUILT_IN_FPRINTF): New entry. + + * c-common.c (c_expand_builtin_fprintf): New function. + (init_function_format_info): Handle __builtin_fprintf. + (c_common_nodes_and_builtins): Declare fprintf/__builtin_fprintf. + (c_expand_builtin): Handle BUILT_IN_FPRINTF. + + * c-decl.c (duplicate_decls): Adjust comment. + + * extend.texi (fprintf): Document new builtin. + +2001-01-07 Richard Henderson + + * jump.c (simplejump_p): Recognize any single_set jump + of the proper form. + +2001-01-07 Richard Henderson + + * configure.in (slibdir): Accept an --with-slibdir option. + Use "test" not "[" in configure. Default to $(libdir). + + * config/t-linux (SHLIB_INSTALL): Double quote slibdir; + fix typo in rm -f. + * config/t-aix43 (SHLIB_INSTALL): Likewise. + * config/alpha/t-osf4 (SHLIB_INSTALL): Likewise. + (SHLIB_LINK): Create links for the soname. + * config/mips/t-iris6: Likewise. + * config/sparc/t-slibgcc: Likewise. + * config/sparc/t-slibgcc-sld: Likewise. + +2001-01-07 Jakub Jelinek + + * config/i386/i386.c (constant_call_address_operand): Accept + (const (plus (symbol_ref) (const_int))). + * config/i386/i386.h (PREDICATE_CODES): Add CONST for + constant_call_address_operand. + +2001-01-08 Michael Hayes + + * libgcc2.h (W_TYPE_SIZE): Fix case where MIN_UNITS_PER_WORD == 1 + and LONG_LONG_TYPE_SIZE > 32. + +2001-01-07 Gerald Pfeifer + + * jump.c (reversed_comparison_code_parts): Fix typo introduced by + the previous change. + +Sun Jan 7 19:37:48 MET 2001 Jan Hubicka + + * jump.c (reversed_comparison_code_parts, reversed_comparison_code): + New. + (can_reverse_comparison_p): Rewrite to use reversed_comparison_code. + (reverse_condition_maybe_unordered): Abort on unsigned comparisons. + * rtl.h (reversed_comparison_code_parts, reversed_comparison_code): + Declare. + +2001-01-07 Neil Booth + + * fix-header.c (read_scan_file): s/pfile/scan_in/. + +2001-01-07 Neil Booth + + * c-lang.c (c_post_options): Call cpp_post_options. + * objc/objc-act.c (objc_post_options): Similarly. + * cppmain.c (main): Similarly. + * fix-header.c (read_scan_file): Similarly. + * cppinit.c (cpp_start_read): Move option consistency checks + to cpp_post_options. Don't call init_dependency_output. + If needed, add default target and main file dependency. + (OPT_MD, OPT_MMD): Remove. + (OPT_MF): New. + (cpp_handle_option): Update for OPT_* changes. + (cpp_post_options): New. + (init_dependency_output): Command line -MF overrides environment + variables. Don't set default target etc. Suppress output + if dependencies are going to stdout. + (print_help): Update. + * cpplib.h (cpp_post_options): New. + * gcc.c (cpp_options): Update for -MD, -MMD, -MF. + +Sun Jan 7 14:44:19 MET 2001 Jan Hubicka + + * jump.c (comparison_dominates_p): Support unordered compares. + +Sun Jan 7 14:39:07 MET 2001 Jan Hubicka + + * simplify-rtx.c (simplify_relational_operation): Always simplify + ORDERED and UNORDERED when FLAG_FAST_MATH. Handle properly UNLE + and UNGE. + +Sun Jan 7 14:35:13 MET 2001 Jan Hubicka + + * combine.c (combine_simplify_rtx): Recognize the unordered compares. + (nonzero_bits): Likewise. + (simplify_comparison): Likewise. + (num_sign_bit_copies): Likewise; return more sane value depending + on STORE_FLAG_VALUE. + (known_cond): Do not assume EQ to be always true for equivalent + operands. + +Sun Jan 7 14:31:57 MET 2001 Jan Hubicka + + * cse.c (fold_rtx): Handle unordered comparisons. + +Sun Jan 7 13:49:19 MET 2001 Jan Hubicka + + * rtlanal.c (set_of_1): New static function. + (reg_set_last_1, reg_set_p_1, reg_set_reg, reg_set_flag, + reg_set_last_unknown, reg_set_last_value, reg_set_last_first_regno, + reg_set_last_last_regno): Remove. + (set_of): New global function. + (set_of_data): New structure. + (reg_set_p, reg_set_last): Revamp for set_of. + * rtl.h (set_of): New. + +2001-01-07 Joseph S. Myers + + * c-common.c (c_common_nodes_and_builtins): Add _Exit builtin. + * extend.texi: Document _Exit builtin. + +2001-01-07 Neil Booth + + * (initialize, initialize_builtins, + initialize_dependency_output, initialize_standard_includes): + Rename s/initialize/init. Update. + (init_dependency_output): Move to after + cpp_handle_options, the correct location temporally at least. + (opt_comp): Move next to init (), its caller. Fix prototype. + (init): Make "initialized" local scope. + (cpp_create_reader): Always call init (). + (cpp_start_read): Update. + (output_deps): New function, broken out of cpp_finish. + (cpp_finish): Break out output_deps. + +2001-01-07 Richard Henderson + + * collect2.c (COFF specific stuff): Revert 12-06 patch + to prototype system functions. + +2001-01-07 Michael Hayes + + * hard-reg-set.h: Add multiple include guard. + * basic-block.h (struct loop): Add `sink' field. + * loop.h: Include sbitmap.h, hard-reg-set.h, and basic-block.h. + (emit_iv_add_mult): Delete. + (loop_iv_add_mult_hoist, loop_iv_add_mult_sink): Define. + (loop_iv_add_mult_emit_before, loop_insn_sink): Define. + (unroll_loop): Remove end_insert_before argument. + * loop.c (loop_givs_rescan): Remove end_insert_before argument. + (maybe_eliminate_biv_1): Likewise. + (emit_iv_add_mult): Delete. + (gen_add_mult, loop_regs_update): New. + (loop_insn_emit_after, loop_insn_emit_before): New. + (loop_insn_sink, loop_insn_sink_or_swim): New. + (emit_iv_add_mult): Delete. + (scan_loop): Set loop->sink. + (loop_givs_reduce): Use loop_insn_sink and its ilk. + (loop_givs_rescan, strength_reduce, check_dbra_loop): Likewise. + (maybe_eliminate_biv_1): Likewise. + (maybe_eliminate_biv_1): Add basic block argument. + * unroll.c (unroll_loop): Remove end_insert_before argument. + (find_splittable_regs): Likewise. + (find_splittable_regs): Use loop_insn_sink and its ilk. + (find_splittable_givs, final_biv_value, final_giv_value): Likewise. + +2001-01-07 Michael Hayes + + * loop.h (loop_insn_hoist): New prototype. + * loop.c (loop_insn_hoist, loop_insn_emit_before): New. + (move_movables, loop_givs_rescan): Use loop_insn_hoist. + (check_dbra_loop, load_mems): Likewise. + * unroll.c (unroll_loop, find_splittable_regs): Likewise. + (find_splittable_givs): Likewise. + +2001-01-07 Michael Hayes + + * loop.c (emit_iv_add_mult): Use single_set to examine new insn. + +2001-01-07 Richard Henderson + + * sched-rgn.c (is_cfg_nonregular): Fix thinko's last change. + +2001-01-07 Richard Henderson + + * Makefile.in (DRIVER_DEFINES): Define ENABLE_SHARED_LIBGCC and + NO_SHARED_LIBGCC_MULTILIB as required for the target. + * gcc.c (init_spec): Massage the existing libgcc_spec into a + variant that handles a shared libgcc. + (process_command): Always validate -{static,shared}-libgcc. + (do_spec_1): New 'M' case. + * invoke.text (Link Options): Document -{static,shared}-libgcc. + +2001-01-07 Richard Henderson + + * Makefile.in (slibdir): New variable. + (libgcc.mk): Pass SHLIB_INSTALL to mklibgcc. + (installdirs): Create slibdir. + (install-libgcc, install-multilib): Defer to libgcc.mk. + * configure.in (slibdir): Substitute. + * mklibgcc.in (install): New target. + + * config/t-linux (SHLIB_LINK): Create links for the soname. + (SHLIB_INSTALL): New. + * config/alpha/t-osf4 (SHLIB_INSTALL): New. + * config/mips/t-iris6 (SHLIB_INSTALL): New. + * config/rs6000/t-aix43 (SHLIB_INSTALL): New. + * config/sparc/t-slibgcc (SHLIB_INSTALL): New. + * config/sparc/t-slibgcc-sld (SHLIB_INSTALL): New. + +2001-01-07 Richard Henderson + + * config/rs6000/aix.h (LINK_LIBGCC_SPECIAL_1): New. + * config/rs6000/rs6000.h (LIBGCC_SPEC): Remove. + * config/rs6000/sysv4.h (LIBGCC_SPEC): Remove. + +2001-01-07 Michael Hayes + + * loop.c (count_loop_regs_set): Delete. + (load_mems_and_recount_loop_regs_set): Delete. + (loop_regs_scan): Merge common code from count_loop_regs_set, + scan_loop, and load_mems_and_recount_loop_regs_set. + (scan_loop): Call load_mems directly and loop_regs_scan + again if new registers created. + +2001-01-07 Neil Booth + + * toplev.c (main): Call the front-end specific post_options + hook if one is given. + * toplev.h (struct_lang_hooks, lang_hooks): New. + * c-lang.c (c_post_options, lang_hooks): Implement lang_hooks + for the C front end. + * cp/decl2.c (cxx_post_options, lang_hooks): Implement + lang_hooks for the C++ front end. + * objc/objc-act.c (objc_post_options, lang_hooks): Implement + lang_hooks for the ObjC front end. + * f/com.c (lang_hooks): Hooks for the Fortran front end. + * java/lang.c (lang_hooks): Hooks for the Java front end. + +2001-01-07 Neil Booth + + * c-lex.c (init_c_lex): Request #define / #undef callbacks + for verbose DWARF[2] debugging. + (cb_define, cb_undef): The new callbacks. + * toplev.h (debug_define, debug_undef): Make const correct. + * toplev.c (debug_define, debug_undef): Similarly. Do not + perform the verbosity tests here anymore. + +2001-01-07 Alexandre Oliva + + * reload.c (subst_reloads): Take INSN argument. When + replacing a LABEL_REF in a JUMP_INSN, add a REG_LABEL note. + * reload.h (subst_reloads): Adjust prototype. + * reload1.c (reload_as_needed): Pass INSN to subst_reloads. + * jump.c (mark_all_labels): Canonicalize any REG_LABEL notes + present in JUMP_INSNs and copy them to JUMP_LABEL. + * flow.c (find_label_refs, find_basic_blocks_1): Skip + JUMP_INSNs and insns with REG_LABELs that are followed by + JUMP_INSNs with the same REG_LABEL. + * sched-rgn.c (is_cfg_nonregular): Likewise. + * rtlanal.c (computed_jump_p): Make it false if a REG_LABEL + note is available. + * unroll.c (unroll_loop): Look for REG_LABEL notes in + JUMP_INSNs too. + * rtl.texi (REG_LABEL): Document usage in JUMP_INSNs. + +2001-01-06 Richard Henderson + + * loop.c (scan_loop): Use xcalloc for the regs array. + (load_mems_and_recount_loop_regs_set): Zero the new memory + received from xrealloc. + +2001-01-06 Neil Booth + + * mkdeps.c (deps_add_dep): Fix vector re-allocation. + +Sat Jan 6 00:09:34 2001 J"orn Rennecke + + * integrate.c (copy_rtx_and_substitute): When copying + an ignored return value, strip REG_FUNCTION_VALUE_P. + +2001-01-06 Michael Hayes + + * loop.c (debug_biv, debug_giv): New. + (loop_biv_dump): Break out from ... + (record_biv): ... here. + (loop_giv_dump): Break out from ... + (record_giv): ... here. + (loop_bivs_check): Use print_simple_rtl. + * unroll.c (loop_iterations): Use print_simple_rtl. + +2000-01-05 John David Anglin + + * pa.md (return, return_internal): Modify patterns to prevent regrename + mucking with the return pointer. + +2001-01-05 Richard Henderson + + * dwarf2out.c (mem_loc_descriptor) [case MEM]: Revert 10-31 change. + +Fri Jan 5 16:34:18 2001 Nick Clifton + + * config/v850/lib1funcs.asm: Replace __mulsi3 routine with faster + version supplied by Matteo Frigo. + +2001-01-05 Neil Booth + + * cpp.texi: Update for -MQ. + * cppinit.c (cpp_create_reader): Always create pfile->deps. + (cpp_cleanup): Always free pfile->deps. + (initialize_dependency_output): Don't create pfile->deps. + (cpp_handle_option): Similarly. + (OPT_MQ): New. + * gcc.c (cpp_options): Handle -MQ. + (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -MQ. + * mkdeps.c (base_name): Remove. + (deps_init): Don't allocate vector space until it's needed. + (deps_free): Only free vectors if allocated. + (deps_add_target, deps_add_dep): Update for initial allocation. + (deps_add_default_target): Don't strip to the base_name. + +2001-01-05 DJ Delorie + + * config/v850/v850.h (RETURN_ADDR_RTX): Define. + (INIT_EXPANDERS): Define. + + * config/v850/v850.c (struct machine_function): Define. + (v850_save_machine_status): New function. + (v850_restore_machine_status): New function. + (v850_return_addr): New function. + (v850_init_expanders): New function. + + * config/v850/v850-protos.h: Add prototypes for v850_return_addr + and v850_init_expanders. + +2001-01-05 Zack Weinberg + + * cpplib.h (struct cpp_reader): Add help_only field. + * cppinit.c (COMMAND_LINE_OPTIONS): Add OPT_version. + (cpp_handle_option): Set pfile->help_only if we see -h, + --help, -target-help, or --version. Print version string but + do not set help_only if we see -v or -version. Make text + printed by -v match that printed by (-)-version. + + * cppmain.c (main): Exit after option parsing if + pfile->help_only is true. + + * toplev.c (independent_decode_option): Call print_version, + then exit, if we see --version (but not -version). + (print_version): Split lengthy message into two lines. + +2001-01-05 Nick Clifton + + * config/v850/v850.c (v850_encode_data_area): Use alloca to create + temporary string for initialisation before calling ggc_alloc_string. + +2001-01-06 Michael Hayes + + * rtl.h (print_simple_rtl): New. + * print-rtl.c (print_simple_rtl): New. + (flag_simple): New. + (print_rtx): Disable printing of flags and modes, etc., + if `flag_simple` nonzero. + +2001-01-05 Zack Weinberg + + * function.c (fixup_var_refs): Use push_to_full_sequence where + possible. + +2001-01-05 Michael Meissner + + * flags.h (flag_reorder_blocks): Add declaration. + (flag_rename_block): Ditto. + +2001-01-05 DJ Delorie + + * function.c (reorder_blocks): Make sure the flags are all reset + before using them to mark blocks, else a second invocation will + corrupt the block chain. + (reorder_blocks_0): New, resets the flags. + +Fri Jan 5 20:34:06 2001 J"orn Rennecke + + * cse.c (find_comparison_args): Stop if the argument is known to + be constant. + +2001-01-05 Alexandre Oliva + + * config/sh/sh.md (movdf): When splitting load into pair of + registers, don't clobber the register used in the address too + early. + +2001-01-05 Jeffrey Oldham + + * varasm.c (mark_constant_pool): Improve initial comments. + (mark_constants): Move marking of constants to mark_constant. + (mark_constant): New function to recursively mark all constants + referred to by a constant. + +2001-01-05 Catherine Moore + + * dbxout.c ((dbxout_parms): Handle invisible ref where decl is a REG. + +2001-01-05 Phil Edwards + + * cp/lang-options.h: Bring comment in line with reality. + * f/lang-options.h: Likewise. + * java/lang-options.h: Likewise. + * objc/lang-options.h: Likewise. + * ch/lang-options.h: Likewise. + * f/g77.texi: And update the manual. + +2001-01-05 Marek Michalkiewicz + Denis Chertykov + + * config/avr/avr-protos.h (avr_peep2_scratch_safe): Prototype. + * config/avr/avr.c (avr_peep2_scratch_safe): New function. + * config/avr/avr.md (all peepholes that request a scratch register): + Call it, FAIL the peephole if not safe (in interrupt functions). + +2001-01-05 Mark Mitchell + + * ggc-page.c (NUM_EXTRA_ORDERS): Hardwire to zero for now. + +2001-01-05 Joseph S. Myers + + * builtins.def (BUILT_IN_CONJ, BUILT_IN_CREAL, BUILT_IN_CIMAG): + Define. + * builtins.c (expand_builtin): Abort on BUILT_IN_CONJ, + BUILT_IN_CREAL and BUILT_IN_CIMAG. + * c-common.c (c_common_nodes_and_builtins): Create builtin conjf, + conj, conjl, crealf, creal, creall, cimagf, cimag and cimagl. + (expand_tree_builtin): Handle BUILT_IN_CONJ, BUILT_IN_CREAL and + BUILT_IN_CIMAG. + * extend.texi: Document these builtins. + +2001-01-05 Daniel Berlin + + * c-common.c (lang_get_alias_set): Say we know nothing of + VECTOR_TYPE aliasing. + + * dwarf2out.c (is_base_type): Handle VECTOR_TYPE properly. + +2001-01-05 Bruce Korb + + * fixinc/mkfixinc.sh(vax-*-bsd): convert exit and atexit calls to + their x* equivalent versions for atexit-less systems + * fixinc/fixincl.c(main): do not return from main() on atexit-less + systems (or any other system any more). + +2001-01-05 Richard Earnshaw + + * arm.md (ldmsi_postinc): Avoid use of match_dup between input and + output operands. Use arm_hard_register_operand for operand 4. + (stmsi_postinc): Similarly. + (ldmsi): Use arm_hard_register_operand for opernand 2. + (stmsi): Similarly. + * arm.c (arm_hard_register_operand): New function. + * arm-protos.h (arm_hard_register_operand): Prototype it. + + * arm.h (HARD_REGNO_RENAME_OK): Define. + +Fri Jan 5 16:29:49 MET 2001 Jan Hubicka + + * simplify-rtx.c (cfc_args): add "unordered" field. + (check_fold_consts): Set unordered field. + (simplify_relational_operation): Simplify the unordered + comparisons. + + * reg-stack.c (swap_rtx_condition): Ensure that the transformation + is valid. + + * emit-rtl.c (try_split): Fix code to mark labels. + * jump.c (mark_jump_label): Make global. + * rtl.h (mark_jump_label): Declare. + + * predict.c (estimate_probability): Handle unordred comparisons. + +2001-01-05 Neil Booth + + * cpp.texi: Update for -MP. Clarify behavior of -MT. + * cppinit.c (initialize_dependency_output): Update. + (cpp_finish): Output dummy targets for -MP. + (OPT_MP): New. + (cpp_handle_option): Handle -MP. Don't quote -MT options. + * cpplib.h (struct cpp_options): Add deps_phony_targets. + * gcc.c (cpp_options): Update to handle -MP. + * mkdeps.c (deps_add_target, deps_add_default_target): Update + to quote only the default target. + (deps_phony_targets): Insert a preceding newline. Rename from + deps_dummy_targets for consistency. + * mkdeps.h: Update + +2001-01-05 Alexandre Oliva + + * calls.c (emit_library_call_value_1): Support + INIT_CUMULATIVE_LIBCALL_ARGS. + * tm.texi (INIT_CUMULATIVE_LIBCALL_ARGS): Document it. + +2001-01-04 Richard Henderson + + * c-decl.c (finish_struct): Detect flexible array members + used in an inappropriate context. + * c-typeck.c (really_start_incremental_init): Special case + constructor_max_index for zero length arrays. + (pop_init_level): Allow initialization of flexible array + members. Deprecate initialization of zero length arrays. + Don't issue missing initializer warning for flexible array + members or zero length arrays. + (process_init_element): Don't dereference null DECL_SIZE. + * varasm.c (array_size_for_constructor): Return a HOST_WIDE_INT. + Don't abort for empty constructors. Use size_binop + (output_constructor): Add commentary regarding zero length + array futures. Abort if we try to initialize an array of + unspecified length with a non-empty constructor in the middle + of a structure. + + * extend.texi (Zero Length): Update and clarify documentation + on static initialization. + +2001-01-05 Michael Hayes + + * config/c4x/c4x.c (c4x_expand_prologue): Don't compile an ISR + with more than 32767 words of local storage. + +2001-01-05 Michael Hayes + + * config/c4x/c4x.c (c4x_init_builtins): Remove builtin support + for 'abs', 'labs', and 'fabs'. + (c4x_expand_builtin): Likewise. + * config/c4x/c4x.h (enum c4x_builtins): Likewise. + +2001-01-05 Alexandre Oliva + + * config/sh/sh.md (prget, prset): New insn types. + (return delay slot): Don't allow prset. + (call, sfunc delay slot): Don't allow prget. + (movsi_i, movsi_ie, movsi_i_lowpart): Create separate alternatives + for prset and prget. + +2001-01-05 Michael Hayes + + * loop.h (struct loop_reg): New. + (struct loop_regs): Change to use array of `struct loop_reg'. + * loop.c: Replace assortment of varrays with single regs array. + (count_one_set): Delete may_not_move array argument + and use regs array instead. All caller's changed. + (count_loop_regs_set): Delete may_not_move and single_usage + arguments and use regs array instead. All caller's changed. + (find_single_use_in_loop): Replace usage array argument with pointer + to regs structure. All caller's changed. + (loop_optimize): Delete `moved_once' array. + +2001-01-05 Michael Hayes + + * loop.c (prescan_loop): Set loop_info->has_nonconst_call. + Use it instead of loop_info->has_call for scanning loop mems. + (check_dbra_loop): Replace loop_info->has_call test with + loop_info->has_nonconst_call. + +2000-01-04 Matthew Hiller + + * config/sh/sh.h (EPILOGUE_USES): Recognize fpscr as epilogue-used + for TARGET_SH3E. + +2001-01-04 Joseph S. Myers + + * fold-const.c (fold): When folding a CONJ_EXPR of a COMPLEX_CST, + use TREE_REALPART and TREE_IMAGPART instead of TREE_OPERAND. + +2001-01-04 Joseph S. Myers + + * c-common.c (SIZE_TYPE, WCHAR_TYPE): Define. + (flag_short_double, flag_short_wchar): Define. + (c_common_nodes_and_builtins): Create many tree nodes shared + between C and C++ here instead of in cp/decl.c and ... + * c-decl.c (init_decl_processing): ... here. + (SIZE_TYPE, WCHAR_TYPE): Don't define. + (flag_short_double, flag_short_wchar): Don't define. + (record_builtin_type): New function. + (build_void_list_node): New function. + * c-common.h (flag_short_double, flag_short_wchar, + record_builtin_type, build_void_list_node): Declare. + +Thu Jan 4 21:09:47 2001 J"orn Rennecke + + * integrate.c (expand_inline_function): Don't put a virtual + register into the reg map. + + * function.c (fixup_var_refs_1): If force_operand didn't put + the address into the target, move it there. + +2001-01-04 Mark Mitchell + + Special-case tree_decl/tree_list allocations. + * ggc-page.c (OBJECT_PER_PAGE): Reimplement. + (OBJECT_SIZE): New macro. + (NUM_EXTRA_ORDER): Likewise. + (extra_order_size_table): New variable. + (NUM_ORDERS): New macro. + (objects_per_page_table): New variable. + (object_size_table): New variable. + (G.pages): Use NUM_ORDERS to bound the array. + (G.page_tails): Likewise. + (DIV_ROUND_UP): Remove. + (BITMAP_SIZE): Use CEIL, instead of DIV_ROUND_UP. + (alloc_page): Use OBJECT_SIZE. + (size_lookup): Don't make it const. + (ggc_alloc): Use OBJECT_SIZE. + (ggc_set_mark): Likewise. + (ggc_get_size): Likewise. + (init_ggc): Set up the object_size_table, objects_per_page_table, + and adjust size_lookup. + (ggc_recalculate_in_use_p): Use CEIL, not DIV_ROUND_UP. + (ggc_pop_context): Use NUM_ORDERS. + (clear_marks): Likewise. + (sweep_pages): Likewise. + (poison_pages): Likewise. + (ggc_print_statistics): Use OBJECT_SIZE. + +Thu Jan 4 15:54:05 2001 Richard Kenner + + * varasm.c (output_constructor): Use HOST_WIDE_INT for sizes. + Only call array_size_for_constructor if last field and array type + with no upper bound. + +2001-01-04 Philip Blundell + + * config/arm/arm.c (arm_gen_constant): Prefer to emit constants + from bit 31 downwards, if this requires no more insns. + (count_insns_for_constant): New helper function for above. + +2001-01-04 Alexandre Oliva + + * gencodes.c (output_predicate_decls): Remove empty initializer. + +2001-01-04 Mark Mitchell + + * tree.c (copy_node): Remove documentation about obstacks. + (buidl1): Check that nobody tries to build 2-argument nodes this + way. + +2001-01-04 Kaveh R. Ghazi + + * sparc.h (PREDICATE_CODES): Delete fp_sethi_p, fp_mov_p and + fp_high_losum_p. + + * gencodes.c (output_predicate_decls): Fill empty initializer + braces. + +2001-01-04 Jakub Jelinek + + * tradcpp.c (deps_file, print_deps_missing_files): New variables. + (main): Handle -MG, -MD, -MMD. Bail out if -MG is given without -M + or -MM. + (do_include): Handle missing headers like cpp0. + * cppfiles.c (_cpp_execute_include): Don't prefix absolute header + paths with first include pathname. Don't strcat to uninitialized + string. + +2001-01-04 Bernd Schmidt + + * regrename.c (regrename_optimize): Don't rename from frame pointer + if frame_pointer_needed. + (do_replace): Don't set ORIGINAL_REGNO to a hard register number. + * config/ia64/ia64.c (emit_all_group_insn_barriers): New function. + (ia64_reorg): Use it instead of scheduling if ! optimize. + (errata_emit_nops): Properly call asm_noperands. + (ia64_sched_reorder): Finish cycle if we see an asm. + (ia64_variable_issue): Clear scheduling state after asms. + +2001-01-04 Neil Booth + + * cpp.texi: Update for -MT. + * cppinit.c (initialize_dependency_output): Add a default + target if none has been given already. + (no_tgt, OPT_MT): New. + (cpp_handle_option): Handle -MT. Update -M etc. + * cpplib.h (struct cpp_options): Remove deps_target. + * gcc.c (cpp_options): Handle -MT. + * mkdeps.c (struct deps): Move from mkdeps.h. + (deps_calc_target): Rename deps_add_default_target. Add a + default target if none has been specified already. + * mkdeps.h (struct deps): Move to mkdeps.c. + (deps_calc_target): Rename deps_add_default_target. + +2000-01-03 Richard Henderson + + * c-decl.c (grokdeclarator): Give zero-length arrays size zero. + Remove dead code. + * c-typeck.c (push_init_level): Move checks for flexible array + members and zero length arrays ... + (pop_init_level): ... here. Silently discard empty initializations. + Remove dead code. + * varasm.c (output_constructor): Update for sizeof change to + zero-length arrays. + + * extend.texi (Zero Length): Clarify semantics. + +2001-01-03 Alexandre Oliva + + * configure.in (tm.h): Include isns-codes.h last. + * configure: Rebuilt. + +2001-01-03 Richard Henderson + + * config/alpha/alpha.md (addvsi3, addvdi3): New. + (negvsi2, negvdi2, subvsi3, subvdi3, mulvsi3, mulvdi3): New. + +2001-01-03 Franz Sirl + + * tradcpp.c (main): Make sure finclude() is called with a valid + indepth value while handling -include. + +2001-01-03 Alexandre Oliva + + * gencodes.c (output_predicate_decls): New function. + (main): Call it. + * machmode.h (GET_MODE_MASK): Arrange for it to be defined + even if it is not the first time machmode.h is #included. + * config/sh/sh.c (fpul_operand): Declare MODE argument. + * tm.texi (PREDICATE_CODES): Document predicate declarations. + * gcc.texi (Copyright): Added 2001. + +2001-01-03 Joseph S. Myers + + * c-common.c (c_common_lang_init): New function. Warn if format + warning options which only have effects when used with -Wformat + are used without -Wformat. + * c-common.h (c_common_lang_init): Declare. + * c-lang.c (lang_init): Call c_common_lang_init. + * objc/objc-act.c (lang_init): Call c_common_lang_init. + +2001-01-03 Joseph S. Myers + + * configure.in: Check for the mktemp command. + * configure: Regenerate. + * gccbug.in: Use a separate temporary file $TEMP0 for one use of + $TEMP. Create temporary files with mktemp, if available at + configure time; otherwise use set -C. Remove temporary files + before exit. + +2001-01-03 Joseph S. Myers + + * configure.in: Require at least texinfo 4.0. Check for whether + Pod::Man is sufficiently recent to regenerate GCC manpages. + * configure: Regenerate. + * Makefile.in (TEXI2POD): Call perl explicitly rather than relying + on #!. + (GENERATED_MANPAGES): Define. + (generated-manpages): New target. Depend on cpp.1 as well as + gcov.1. + (install-man): Depend on $(GENERATED_MANPAGES) (defined by + configure to generated-manpages or empty) rather than on the + manpages directly. Remove execute permission from installed + gcov.1 as well as cpp.1. + * cpp.1, gcov.1: Regenerate. + +2001-01-03 Kaveh R. Ghazi + + * builtins.c (expand_builtin_strncmp): Use host_integerp and + tree_low_cst. Allow using cmpstrsi in more cases. + +Wed Jan 3 10:48:43 2001 Richard Kenner + + * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for variable + sized types. + +Wed Jan 3 12:22:32 2001 Alexandre Oliva + + * build-make (HOST_CFLAGS): Added `-DGENERATOR_FILE'. + * Makefile.in (HOST_CFLAGS): Mention build-make. + +Wed Jan 3 08:53:50 2001 Richard Kenner + + * config/sparc/sparc.md (nonlocal_goto): Emit goto_handler_and_restore + as JUMP_INSN. + +2001-01-01 Bernd Schmidt + + * builtins.c (expand_builtin_return_addr): Don't use MEM_ALIAS_SET on + a REG rtx. + + * cse.c (cse_rtx_varies_p): Accept additional FROM_ALIAS arg. All + callers changed. + + * alias.c (throughout): Use ORIGINAL_REGNO when accessing + reg_base_value and reg_known_value arrays. + (init_alias_analysis): Add more cases to detect known values. + * sched-deps.c (deps_may_trap_p): New function. + (sched_analyze_2): Use it. + +2001-01-03 Alexandre Oliva + + * combine.c (simplify_shift_const): Even if we're sign-extracting, + don't discard an ASHIFTRT if we're shifting in a wider mode. + +2000-01-02 John David Anglin + + * toplev.c (rest_of_compilation): Don't print basic block information + when CFG isn't up to date. + +2001-01-02 Mark Elbrecht + + * config/i386/djgpp.h (DWARF2_DEBUGGING_INFO): Define. + (UNALIGNED_INT_ASM_OP, UNALIGNED_DOUBLE_ASM_OP): Define. + (UNALIGNED_SHORT_ASM_OP): Define. + (CPP_PREDEFINES): Remove defines for GO32 and DJGPP. + +2001-01-02 Mark Mitchell + + * fold-const.c (fold_convert): Fix typo. + +2001-01-02 Richard Henderson + + * c-common.h (ASM_INPUT_P): New. + * c-parse.in (asm): Set it when needed. + * c-semantics.c (genrtl_asm_stmt): Test it instead of the + existence of an operand. + +Tue Jan 2 20:27:07 MET 2001 Jan Hubicka + + * dwarf2out.c (stack_adjust_offset): Handle PRE_MODIFY. + (dwarf2out_frame_debug_expr): Likewise. + (mem_loc_descriptor): Handle PRE and POST_MODIFY. + +Tue Jan 2 20:21:31 MET 2001 Jan Hubicka + + * i386.c (ix86_split_to_parts): Return number of part required; + handle TFmodes. + (print_operand, ix86_expand_branch, ix86_expand_fp_movcc): Handle + TFmodes. + (ix86_split_long_move): Use number of part returned + by ix86_split_to_parts + * i386.h (MASK_128BIT_LONG_DOUBLE, TARGET_128BIT_LONG_DOUBLE): + New macros. + (TARGET_SWITCHES): Add 128bit-long-double and 96bit-long-double + (LONG_DOUBLE_TYPE_SIZE): Change from constant. + (MAX_LONG_DOUBLE_TYPE_SIZE): New macro. + (INTEL_EXTENDED_IEEE_FORMAT): Likewise. + (ALIGN_MODE_128): Add TFmode. + (IS_STACK_MODE): Likewise. + (HARD_REGNO_NREGS): TFmode needs 3 registers. + (HARD_REGNO_OK): Support TFmodes. + (ASM_OUTPUT_LONG_DOUBLE): Handle TFmodes. + * i386.md (scheduler definitions): Use memory operand to determine + fst/fld instructions; use mode attribute to determine real mode of + the instruction. + (*tf): New patterns, expanders and splitters; based on XFmode patterns. + * invoke.texi (128bit-long-double, 96bit-long-double): Document. + +2001-01-02 Mark Mitchell + + * tree.def (TRUTH_NOT_EXPR): Improve documentation. + +Tue Jan 2 10:47:38 2001 Richard Kenner + + * config/mips/mips.c (function_arg): Don't pass NULL_TREE to + host_integerp. + +2001-01-02 Jeffrey Oldham + + * tm.texi (FUNCTION_ARG): Document that @var{type} can be an + incomplete type. + +Tue Jan 2 10:47:38 2001 Richard Kenner + + * tsystem.h: Define HAVE_DECL_GETOPT. + +2001-01-02 Philip Blundell + + * config/arm/linux-gas.h (CLEAR_INSN_CACHE): Avoid illegal clobber + of input operand. + +2001-01-02 Richard Henderson + + * alpha.md (*ze_and_ne): Duplicate insn condition to split. + +2001-01-02 Andreas Jaeger + + * c-decl.c (c_decode_option): Remove support of + -Wmissing-noreturn. + + * toplev.c (documented_lang_options): Remove -Wmissing-noreturn. + (W_options): Add -Wmissing-noreturn here. + + * flow.c: Define lang_missing_noreturn_ok_p. + (check_function_return_warnings): Use it. + + * c-common.h: Declare lang_missing_noreturn_ok_p. + + * c-lang.c (c_missing_noreturn_ok_p): New function. + (lang_init): Set lang_missing_noreturn_ok_p. + + * invoke.texi (Warning Options): Document this. + +2000-12-27 Phil Edwards + + * extend.texi (C++ Extensions): New node for C++ attributes; + describe init_priority and com_interface. + * invoke.texi: Remove -finit-priority as it now has zero effect. + * install.texi: Fix xref syntax. + * md.texi: Likewise. + +Mon Jan 1 21:28:29 2001 Richard Kenner + + * config.gcc (sparc64-wrs-vxworks*): New case. + * config/sparc/vxsparc64.h, config/sparc/t-vxsparc64: New files. + + * config/sparc/sparc.c (sparc_override_options): Do support different + pointer and architecture size. + * config/sparc/sparc.h (MIN_UNITS_PER_WORD): Always 4. + (POINTERS_EXTEND_UNSIGNED): Define. + (Pmode): Test TARGET_ARCH64, not TARGET_PTR64. + (FUNCTION_MODE): Define to be Pmode. + * config/sparc/sparc.md (64-bit call patterns): FUNCTION_MODE now DI. + + * function.c (expand_function_end): Properly handle DECL_RESULT + and copy when ptr_mode != Pmode. + * expmed.c (make_tree): Convert X from Pmode to ptr_mode, if needed. + +2001-01-01 Kaveh R. Ghazi + + * c-common.c (c_common_nodes_and_builtins): Set prototype + parameters for __builtin_fputs, __builtin_fputc and + __builtin_fwrite. Don't declare plain fputc as a builtin. + +2001-01-01 John David Anglin + + * loop.c (add_label_notes): Increment the label usage count when + a note is added to an insn which refers to a CODE_LABEL. + * gcse.c (add_label_notes): Likewise. + +2001-01-01 Andreas Jaeger + + * loop.c (scan_loop): Use xmalloc to allocate movables. + +2001-01-01 Alexandre Oliva + + * tm.texi (REGISTER_MOVE_COST): Add a mode argument. + * reload.c (REGISTER_MOVE_COST): Likewise. Adjust all callers. + * reload1.c (REGISTER_MOVE_COST): Likewise. + * regclass.c (REGISTER_MOVE_COST): Likewise. + (move_cost, may_move_in_cost, may_move_out_cost): Add mode + dimension. Adjust all users. + (init_reg_sets_1): Iterate on all modes. + * config/1750a/1750a.h (REGISTER_MOVE_COST): Adjust. + * config/a29k/a29k.h (REGISTER_MOVE_COST): Adjust. + * config/alpha/alpha.h (REGISTER_MOVE_COST): Adjust. + * config/arc/arc.h (REGISTER_MOVE_COST): Adjust. + * config/arm/arm.h (REGISTER_MOVE_COST): Adjust. + * config/avr/avr.h (REGISTER_MOVE_COST): Adjust. + * config/c4x/c4x.h (REGISTER_MOVE_COST): Adjust. + * config/d30v/d30v.h (REGISTER_MOVE_COST): Adjust. + * config/dsp16xx/dsp16xx.h (REGISTER_MOVE_COST): Adjust. + * config/h8300/h8300.h (REGISTER_MOVE_COST): Adjust. + * config/i386/i386.h (REGISTER_MOVE_COST): Adjust. + * config/ia64/ia64.h (REGISTER_MOVE_COST): Adjust. + * config/m32r/m32r.h (REGISTER_MOVE_COST): Adjust. + * config/m68hc11/m68hc11.h (REGISTER_MOVE_COST): Adjust. + * config/m68k/m68k.h (REGISTER_MOVE_COST): Adjust. + * config/mcore/mcore.h (REGISTER_MOVE_COST): Adjust. + * config/mips/mips.h (REGISTER_MOVE_COST): Adjust. + * config/mn10200/mn10200.h (REGISTER_MOVE_COST): Adjust. + * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Adjust. + * config/ns32k/ns32k.h (REGISTER_MOVE_COST): Adjust. + * config/pa/pa.h (REGISTER_MOVE_COST): Adjust. + * config/pdp11/pdp11.h (REGISTER_MOVE_COST): Adjust. + * config/pj/pj.h (REGISTER_MOVE_COST): Adjust. + * config/romp/romp.h (REGISTER_MOVE_COST): Adjust. + * config/rs6000/rs6000.h (REGISTER_MOVE_COST): Adjust. + * config/sh/sh.h (REGISTER_MOVE_COST): Adjust. + * config/sparc/sparc.h (REGISTER_MOVE_COST): Adjust. + +2001-01-01 Bernd Schmidt + + * alias.c (fixed_scalar_and_varying_struct): Adjust prototype of + arg VARIES_P. Call it with extra arg. + (true_dependence): Likewise. + * rtl.h (rtx_addr_can_trap_p): Declare. + (rtx_varies_p, rtx_addr_varies_p, true_dependence): Update + prototypes. + * rtlanal.c (rtx_addr_can_trap_p): No longer static. + (rtx_varies_p): Accept extra arg FOR_ALIAS; only disallow + pic offset table register if it's zero. All callers changed. + (rtx_addr_varies_p): Accept extra arg FOR_ALIAS; all callers changed. + +Mon Jan 1 07:38:33 2001 Richard Kenner + + * explow.c (convert_memory_address, case SYMBOL_REF): Copy + STRING_POOL_ADDRESS_P. + + * config/sparc/sparc.c (input_operand): Properly test for short op. + + * config.gcc (sparc-*-elf): Include sparc/sol2.h. + (sparc-*-rtems*): Include sparc/sol2.h and sparc/elf.h. + (sparclite-*-elf*, sparc86x-*-elf*): Likewise. + * config/sparc/elf.h: No longer include sol2.h. + * config/sparc/lifeelf.h: No longer include sparc/elf.h. + * config/sparc/rtemself.h, config/sparc/sp86x-elf.h: Likewise. + + * config/sparc/sparc.md: Test TARGET_ARCH64 instead of TARGET_PTR64. + +2001-01-01 Michael Hayes + + * loop.c (check_insn_for_bivs): Use ivs->n_regs to check array bounds. + (find_mem_givs, record_biv, maybe_eliminate_biv): Likewise. + (record_initial): Likewise. + * unroll.c (copy_loop_body, loop_iterations): Likewise. + (remap_split_bivs): Likewise. + +2001-01-01 Michael Hayes + + * loop.c (loop_ivs_free): New function. + (strength_reduce): Break out from... + +2001-01-01 Michael Hayes + + * loop.h (struct iv): New. + (REG_IV_TYPE, REG_IV_CLASS, REG_INFO): Modify to use 'struct iv'. + (struct loop_ivs): Replace 'reg_iv_type', 'reg_iv_info', + 'reg_biv_class' fields with 'regs' and 'n_regs'. + (struct ivs): Rename 'loop_iv_list' field to 'list'. + * loop.c (loop_bivs_find, strength_reduce): Use ivs->regs array. + * unroll.c (loop_iterations): Check array bounds with ivs->n_regs. + +2001-01-01 Michael Hayes + + * loop.h (REG_IV_CLASS): New accessor macro. + * loop.c (REG_IV_CLASS): Use it instead of reg_iv_class array. + * unroll.c (REG_IV_CLASS): Likewise. diff --git a/gcc/ChangeLog.7 b/gcc/ChangeLog-2002 similarity index 60% rename from gcc/ChangeLog.7 rename to gcc/ChangeLog-2002 index 022212bfa878..370ff0efbddc 100644 --- a/gcc/ChangeLog.7 +++ b/gcc/ChangeLog-2002 @@ -1,3 +1,14450 @@ +2002-12-31 Kazu Hirata + + * config/h8300/h8300-protos.h: Update the prototypes. + * config/h8300/h8300.c (const_le_2_operand): Change to + const_int_le_2_operand. + (const_int_le_6_operand): Change to const_int_le_6_operand. + * config/h8300/h8300.md (two peepholes): Update the function + names. + +2002-12-31 Tom Tromey + + * doc/install.texi (Testing): Fixed typo. + +2002-12-31 Kazu Hirata + + * config/h8300/h8300.h (TRAMPOLINE_TEMPLATE): Remove. + (TRAMPOLINE_SIZE): Support the normal mode. + (INITIALIZE_TRAMPOLINE): Emit the entire trampoline. + +2002-12-31 Mark Mitchell + + * c-common.h (pending_lang_change): Declare. + +2002-12-31 Jerry Quinn + + * gcc/doc/invoke.texi (Optimization Options): Clean up -O flag + descriptions. + +2002-12-31 Jerry Quinn + + * gcc/doc/invoke.texi (Optimization Options): List the options + enabled by each -O flag. + +2002-12-31 Gerald Pfeifer + + * doc/install.texi (Configuration): Explicitly refer + gcc/config.gcc for a list of cpu models. + +2002-12-31 Kazu Hirata + + * config/h8300/h8300.h: Fix comment typos. + +2002-12-30 David Edelsohn + + * config/rs6000/rs6000.h (WIDEST_HARDWARE_FP_SIZE): Define. + +2002-12-30 Tom Tromey + + * doc/install.texi (Testing): Mention Jacks. + +2002-12-30 Joseph S. Myers + + * doc/gcc.texi, doc/gccint.texi: Update last modification dates. + +2002-12-30 Kazu Hirata + + * config/h8300/h8300.c (output_logical_op): Use extu.w in more + cases. + (compute_logical_op_length): Update to reflect the change in + output_logical_op. + (compute_logical_op_cc): Likewise. + +2002-12-30 Joseph S. Myers + + * doc/service.texi: Uncomment and update FAQ link. + +2002-12-30 Andreas Jaeger + + * unwind-dw2-fde.h (last_fde): Add unused attribute for obj. + +2002-12-30 Kazu Hirata + + * config/h8300/h8300.md (*addsi3_lshiftrt_16_zexthi): New. + +2002-12-30 Kazu Hirata + + * config/h8300/h8300.c (output_logical_op): Use extu.w if we + are clearing the most significant byte. + (compute_logical_op_length): Update to reflect the change in + output_logical_op. + (compute_logical_op_cc): Likewise. + +2002-12-29 Kazu Hirata + + * config/h8300/h8300.md: Give internal names to anonymous + insns. + +2002-12-29 Kazu Hirata + + * config/h8300/h8300.md: Reorder some insns. + +2002-12-29 Kazu Hirata + + * config/h8300/h8300-protos.h: Add prototypes for + const_int_qi_operand and const_int_hi_operand. + * config/h8300/h8300.c (const_int_qi_operand): New. + (const_int_hi_operand): Likewise. + * config/h8300/h8300.md (three peepholes): New. + +2002-12-28 Joseph S. Myers + + * doc/cpp.texi, doc/gcc.texi, doc/gccint.texi, doc/install.texi: + Use @copying. + +2002-12-28 Joseph S. Myers + + * configure.in: Increase makeinfo version requirement to 4.[2-9]. + * configure: Regenerate. + * doc/install.texi: Update Texinfo version requirement. + +2002-12-28 Andreas Jaeger + + * config/i386/i386.c (x86_function_profiler): Mark labelno as + possibly unused. + + * c-parse.in (yyprint): Use HOST_WIDE_INT_PRINT_DOUBLE_HEX for + correct format. + +2002-12-27 Kazu Hirata + + * config/h8300/h8300.md (*iorhi_shift_8): Change the name to + *iorhi_ashift_8. + (*iorhi_lshiftrt_8): New. + +2002-12-27 Joseph S. Myers + + * doc/include/texinfo.tex: Update to version 2002-12-26.16. + +2002-12-27 Gerald Pfeifer + + * doc/contrib.texi (Contributors): Add Abramo and Roberto Bagnara. + +2002-12-26 Kazu Hirata + + * config/h8300/h8300-protos.h: Fix comment typos. + Update copyright. + * config/h8300/h8300.c: Fix comment typos. + +2002-12-26 Kazu Hirata + + * config/h8300/h8300.h (IDENT_ASM_OP): End with a tab. + +2002-12-26 Kazu Hirata + + * config/i386/athlon.md: Fix comment typos. + * config/i386/crtdll.h: Likewise. + * config/i386/djgpp.h: Likewise. + * config/i386/i386-interix.h: Likewise. + * config/i386/i386.c: Likewise. + * config/i386/i386.h: Likewise. + * config/i386/i386.md: Likewise. + * config/i386/k6.md: Likewise. + * config/i386/mingw32.h: Likewise. + * config/i386/pentium.md: Likewise. + * config/i386/sco5.h: Likewise. + * config/i386/winnt.c: Likewise. + * config/i386/xmmintrin.h: Likewise. + +2002-12-26 Jose Renau + + * ssa-dce.c (EXECUTE_IF_UNNECESSARY): Verify INSN is an + INSN_P before checking to see if it is dead. + (mark_all_insn_unnecessary): Similarly. + (ssa_eliminate_dead_code): Similarly. + * rtl.h (struct rtx_def): Update comments for in_struct usage + in dead code elimination pass. + (INSN_DEAD_CODE_P): Allow JUMP_INSN and CALL_INSN as well. + +2002-12-26 Andreas Schwab + + * config.gcc (powerpc*-*-*, rs6000-*-*): Fix assignment syntax. + +2002-12-25 David Edelsohn + + * config/rs6000/rs6000.c (rs6000_override_options): Convert to + tartet_flags_explicit. + * config/rs6000/rs6000.h (MASK_MULTIPLE_SET, MASK_STRING_SET): Delete. + Compact target_flags bits. + (TARGET_MULTIPLE_SET, TARGET_STRING_SET): Delete. + (TARGET_SWITCHES): Delete references to *_SET flags. + +Wed Dec 25 20:30:53 CET 2002 Jan Hubicka + + * i386.md (memory attribute): Fix setcc attribute. + +2002-12-25 Kazu Hirata + + * output.h: Fix comment typos. + * predict.c: Likewise. + * print-tree.c: Likewise. + * profile.c: Likewise. + * ra-build.c: Likewise. + * ra-colorize.c: Likewise. + * ra-debug.c: Likewise. + * ra-rewrite.c: Likewise. + * ra.c: Likewise. + * ra.h: Likewise. + * real.c: Likewise. + * recog.c: Likewise. + * reg-stack.c: Likewise. + * regclass.c: Likewise. + +2002-12-25 Kazu Hirata + + * config/h8300/h8300.c (print_operand_address): Do not negate + a negative number when printing one. + +2002-12-25 Kazu Hirata + + * config/h8300/h8300-protos.h: Add prototypes for + output_plussi, compute_plussi_length, and compute_plussi_cc. + * config/h8300/h8300.c (output_plussi): New. + (compute_plussi_length): Likewise. + (compute_plussi_cc): Likewise. + * config/h8300/h8300.md (addsi_h8300h): Call + output_plussi, compute_plussi_length, and compute_plussi_cc. + +2002-12-24 Kazu Hirata + + * config/h8300/h8300.md (two peepholes): Use match_dup instead + of match_operand in the new patterns. + +2002-12-24 Joseph S. Myers + + * doc/include/texinfo.tex: Update to version 2002-11-25.11. + +2002-12-24 Nathan Sidwell + + * configure.in (enable-coverage): Add SELF_COVERAGE. + * profile.c (end_branch_prob): Use SELF_COVERAGE. + +2002-12-24 Jim Wilson + + * alias.c (record_set): Handle multi-reg hard registers. + +2002-12-24 Kazu Hirata + + * regmove.c: Fix comment typos. + * reload.c: Likewise. + * reload1.c: Likewise. + * resource.c: Likewise. + * rtl.def: Likewise. + * rtl.h: Likewise. + * rtlanal.c: Likewise. + * sched-deps.c: Likewise. + * sched-rgn.c: Likewise. + * sibcall.c: Likewise. + * simplify-rtx.c: Likewise. + * ssa-ccp.c: Likewise. + * ssa.c: Likewise. + * stmt.c: Likewise. + * stor-layout.c: Likewise. + * system.h: Likewise. + * tlink.c: Likewise. + * toplev.c: Likewise. + * tracer.c: Likewise. + * tree-inline.c: Likewise. + * tree.c: Likewise. + * tree.h: Likewise. + * unroll.c: Likewise. + * varasm.c: Likewise. + +2002-12-23 Larin Hennessy + + * doc/install.texi: Remove i386-*-isc, i860-*-bsd, + m68k-altos-sysv, m68k-isi-bsd, m68k-sony-bsd entries. + * doc/invoke.texi: Remove AMD 29K, ARM RISC/iX, Clipper, Convex, + DG/UX entries. + * doc/md.texi: Remove AMD 29K entries. + * doc/trouble.texi: Remove Alliant, DG/UX, Iris 4.0.5F, GAS + 1.38.1, NewsOS, RT PC, WE32K entries. + +2002-12-23 Aldy Hernandez + + PR/8763 + * config/rs6000/altivec.md (mulv4sf3): Rewrite to add -0.0 vector. + (altivec_vspltisw_v4sf): Name pattern. + (altivec_vslw_v4sf): New pattern. + +2002-12-23 Joseph S. Myers + + * doc/include/gcc-common.texi: Define DEVELOPMENT. + +2002-12-23 Mark Mitchell + + * stor-layout.c (update_alignment_for_field): Correct handling of + unnamed bitfields on PCC_BITFIELD_TYPE_MATTERS machines. + * doc/tm.texi (PCC_BITFIELD_TYPE_MATTERS): Note that an unnamed + bitfield does not affect alignment. + +2002-12-23 David Edelsohn + + * expr.c (expand_assignment): Apply special treatment to + ARRAY_TYPE. + +2002-12-23 Kazu Hirata + + * config/h8300/h8300-protos.h: Update the prototype of + expand_a_shift. + * config/h8300/h8300.c (expand_a_shift): Change the return + type to void. + * config/h8300/h8300.md: Update all the uses of + expand_a_shift. + +2002-12-22 Nathan Sidwell + + * tree.c (save_expr): Allow either side of a dyadic operand to be + constant. + + * doc/portability.texi (portability): Update portability goals. + +2002-12-23 Kazu Hirata + + * config/h8300/h8300.c (output_a_shift): Remove unused code. + +2002-12-22 Mark Mitchell + + * stor-layout.c (update_alignment_for_field): Guard use of + ADJUST_FIELD_ALIGN with #ifdef. + + * stor-layout.c (update_alignment_for_field): Use + ADJUST_FIELD_ALIGN when computing the alignment for a zero-width + bitfield when PCC_BITFIELD_TYPE_MATTERS. + +2002-12-22 Kazu Hirata + + * genautomata.c: Fix comment typos. + +Sun Dec 22 18:23:44 CET 2002 Jan Hubicka + + * params.def (tracer-min-branch-probability-feedback): Fix default. + * final.c (compute_alignments): Use profile to avoid code bloat. + +2002-12-22 Kazu Hirata + + * config/h8300/h8300.c (get_shift_alg): Make shift insn + sequences end with a valid cc0 whenever possible. + +2002-12-22 Kazu Hirata + + * config/h8300/h8300.md (negsf2): New. + (*negsf2_h8300): Likewise. + (*negsf2_h8300hs): Likewise. + +2002-12-21 Geoffrey Keating + + * integrate.c (output_inline_function): Don't hold private + pointers to 'struct function' over GC calls. + +2002-12-21 Kaz kojima + + * config/sh/lib1funcs.asm (__fpscr_values): Conditionalize with + NO_FPSCR_VALUES. + * config/sh/t-linux (TARGET_LIBGCC2_CFLAGS): Add -DNO_FPSCR_VALUES. + +2002-12-21 Kazu Hirata + + * config/h8300/h8300.md (zero_extendqisi2): Correct the + length. + +2002-12-21 Kazu Hirata + + * config/h8300/h8300.md (*zero_extendqihi2_h8300): Make the + second alternative "#". + (*zero_extendqihi2_h8300hs): Likewise. + (a define_split): New. + +2002-12-21 Kazu Hirata + + * config/h8300/h8300-protos.h: Update the prototype for + split_adds_subs. + Add prototypes for const_le_2_operand and const_le_6_operand. + * config/h8300/h8300.c (split_adds_subs): Add an argument to + specify whether inc/dec should be used when possible. + (const_le_2_operand): New. + (const_le_6_operand): Likewise. + * config/h8300/h8300.md (two peepholes): New. + +2002-12-21 Kazu Hirata + + * config/fr30/fr30.md: Fix a comment typo. + * config/i386/i386.c: Likewise. + * config/ip2k/ip2k.h: Likewise. + +2002-12-20 Jim Wilson + + * config/rs6000/spe.h (__ev_subifw): Reverse arguments. + (__ev_subw, __ev_subiw): New. + (ev_mwlssf, ev_mwlsmf, ev_mwlssfa, ev_mwlsmfa, ev_mwlssfaaw, + ev_mwlsmfaaw, ev_mwlssfanw, ev_mwlsmfanw): Delete. + +2002-12-20 John David Anglin + + * pa-linux.h (TARGET_HAS_STUBS_AND_ELF_SECTIONS): Delete define. + * pa32-linux.h (FUNCTION_OK_FOR_SIBCALL): Delete define. + * pa.c (pa_function_ok_for_sibcall): Allow non indirect sibcalls on + TARGET_ELF32. Add comment on sibcall issues for TARGET_64BIT. + +2002-12-20 Kazu Hirata + + * config/h8300/h8300-protos.h: Add prototypes for + incdec_operand and eqne_operator. + * config/h8300/h8300.c (incdec_operand): New. + (eqne_operator): Likewise. + * config/h8300/h8300.h (CONST_OK_FOR_M): Likewise. + (CONST_OK_FOR_O): Likewise. + (CONST_OK_FOR_LETTER_P): Use CONST_OK_FOR_M and + CONST_OK_FOR_O. + * config/h8300/h8300.md (UNSPEC_INCDEC): New. + (addhi3_incdec): New. + (addsi3_incdec): Likewise. + (two peepholes): Likewise. + +2002-12-20 Kazu Hirata + + * config/h8300/h8300.c (dosize): Remove warnings. + (print_operand): Likewise. + +2002-12-20 Richard Henderson + + * config/alpha/alpha.c (decl_has_samegp): New. + (samegp_function_operand): Use it. Rename from + current_file_function_operand. + (direct_call_operand): Handle -msmall-text via symbol->jump. + (tls_symbolic_operand_1): Use T for tprel64, t for smaller tprel. + (tls_symbolic_operand_type): Likewise. + (alpha_encode_section_info): Likewise. Handle -msmall-text. + (alpha_function_ok_for_sibcall): Use decl_has_samegp. + (alpha_end_function): Set symbol->jump for functions defined in + the text section. + * config/alpha/alpha-protos.h: Update. + * config/alpha/alpha.h (MASK_SMALL_TEXT, TARGET_SMALL_TEXT): New. + (TARGET_SWITCHES): Add -msmall-text and -mlarge-text. + (PREDICATE_CODES): Update. + * config/alpha/alpha.md (call patterns): Update for + samegp_function_operand rename; use !samegp reloc if + TARGET_EXPLICIT_RELOCS. + * doc/invoke.text: Document -msmall-text and -mlarge-text. + +2002-12-20 Ian Dall + + * config/ns32k/ns32k.md (movdi): Use "l" instead of "f" to match + all registers capable of holding a double float. + (*rcond): change name of "reverse branch" insns to + something more meaningful. + (*rbgt, *rblt, *rbge, *rble): Reverse branches to handle IEEE + comparisons properly. + (*ffs): Change operand 0 from write to read-modify-write. + (*ffsssi2): Drop constraints from define_expand. + + * config/ns32k/ns32k.h (STORE_RATIO, STORE_BY_PIECES): Avoid using + MOVE_RATIO as default for store operations. + + * config/ns32k/ns32k.h (enum reg_class, REG_CLASS_NAMES): Add + LONG_REGS class. + (CANNOT_CHANGE_MODE_CLASS): Can't subreg LONG_REGS. + (GO_IF_LEGITIMATE_ADDRESS): Remove spurious abort(). + * config/ns32k/ns32k.c (regclass_map): Add LONG_REGS class. + + * config/ns32k/STATUS: New File + * config/ns32k/NOTES: New file. + +2002-12-20 Hartmut Penner + + * doc/invoke.texi: Document -mzarch, -mesa, -mcpu= and -march= + option for S/390 and zSeries. + * config/s390/s390.c (s390_cpu, s390_cpu_string, s390_arch, + s390_arch_string): New variables. + (override_options): Checking for options and setting of + appropriate target_flags, cpu and arch flags. + * config/s390/s390.h: (processor_type): New enum. + (TARGET_SWITCHES): New switches -mesa/zarch. + * config/s390/s390.md: New attribute 'cpu'. + +2002-12-19 Kazu Hirata + + * c-pretty-print.h: Fix comment typos. + * integrate.c: Likewise. + * varasm.c: Likewise. + * config/c4x/c4x.h: Likewise. + * config/c4x/c4x.md: Likewise. + * config/fr30/fr30.md: Likewise. + * config/frv/frv.c: Likewise. + * config/h8300/h8300.c: Likewise. + * config/i386/i386.c: Likewise. + * config/i386/i386.h: Likewise. + * config/ia64/ia64.c: Likewise. + * config/ia64/ia64.h: Likewise. + * config/ip2k/ip2k.md: Likewise. + * config/m68hc11/m68hc11-crt0.S: Likewise. + * config/m68hc11/m68hc11.h: Likewise. + * config/m68hc11/m68hc11.md: Likewise. + * config/m68hc11/m68hc12.h: Likewise. + * config/mcore/mcore.md: Likewise. + * config/mips/mips.c: Likewise. + * config/mips/mips.md: Likewise. + * config/mmix/mmix-modes.def: Likewise. + * config/pa/pa.c: Likewise. + * config/rs6000/rs6000.c: Likewise. + * config/rs6000/rs6000.h: Likewise. + * config/rs6000/rs6000.md: Likewise. + +2002-12-19 Kazu Hirata + + * config/h8300/h8300.md (output_a_shift): Clean up the code to + output shifts using rotation. + +2002-12-20 Zdenek Dvorak + + * flow.c (allocate_reg_life_data): Reset REG_FREQ. + +2002-12-19 Kazu Hirata + + * config/h8300/h8300.md (pushqi_h8300): Don't push the stack + pointer. + (pushqi_h8300hs): Likewise. + (pushhi_h8300): Likewise. + (pushhi_h8300hs): Likewise. + +Thu Dec 19 23:44:09 2002 J"orn Rennecke + + * sched-rgn.c (init_regions): Update comment. + +2002-12-19 David Edelsohn + + * config/rs6000/rs6000.md (define_attr type): Remove altivec. + * config/rs6000/altivec.md (movv4si_internal): Set correct instruction + attributes. + (movv8hi_internal,movv16qi_internal,movv4sf_internal): Same. + (get_vrsave_internal,set_vrsave_internal): Same. + (altivec_vspltisb,altivec_vspltish,altivec_vspltisw): Same. + (absv16qi2,absv8hi2,absv4si2,absv4sf2): Same + (altivec_abss_v16qi,altivec_abss_v8hi,altivec_abss_v4si): Same. + +2002-12-19 Casper S. Hornstrup + Danny Smith + Eric Kohl + + * config/i386/i386.c (ix86_handle_cdecl_attribute): Check for + attributes incompatible with fastcall attribute. + (ix86_handle_regparm_attribute): Likewise. + + * config/i386/i386.c (ix86_comp_type_attributes): Check for mismatched + fastcall types. + + * config/i386/cygwin.h (TARGET_OS_CPP_BUILTINS): Add fastcall + attributes. + (ASM_OUTPUT_LABELREF): Define as i386_pe_output_labelref. + * config/i386/i386-protos.h (i386_pe_output_labelref): Declare. + * config/i386/winnt.c (i386_pe_mark_dllimport). Add __imp_ prefix in + i386_pe_output_labelref rather than here. + (gen_fastcall_suffix): New function. Decorates a label name with the + fastcall prefix (@) and the stdcall suffix. + (i386_pe_encode_section_info): Call gen_fastcall_suffix() if a symbol + has a fastcall attribute. + (i386_pe_output_labelref): New function. Outputs a label reference. + * config/i386/i386.c (ix86_attribute_table): Accept 'fastcall' as a + valid attribute. + (ix86_return_pops_args): Fastcall functions pop the stack. + (init_cumulative_args): Reserve registers ECX and EDX if function has + fastcall attribute. + (function_arg): Use registers ECX and EDX if function has fastcall + attribute. + * config/i386/i386.h (CUMULATIVE_ARGS): Add fastcall attribute flag. + (DLL_IMPORT_EXPORT_PREFIX): Redefine as '#'. + (FASTCALL_PREFIX): Define as '@'. + * config/i386/mingw32.h (TARGET_OS_CPP_BUILTINS): Add fastcall + attributes. + * doc/extend.texi: Add documentation of fastcall attribute. + +2002-12-19 Nathanael Nerode + + * configure.in: FORBUILD when build!=host changed from + ../$build-alias to ../build-$build_alias to match change made + in top directory. + * configure: Regenerated. + +2002-12-19 Eric Botcazou + + PR optimization/8988 + * loop.c (maybe_eliminate_biv): Kill REG_EQUAL notes mentioning + the biv when eliminating. + +2002-12-19 Devang Patel + * gcc.c (struct default_compiler): Recognizes input file name with + .CPP extension as C++ source files + * cp/lang-spec.h: Same + * doc/invoke.texi: Add documentation for .CPP support. + +2002-12-19 Aldy Hernandez + + PR 8553 + * config/rs6000/altivec.md ("absv8hi2"): Add & to clobbered + registers. + ("absv16qi2"): Same. + ("absv4si2"): Same. + ("absv4sf2"): Same. + ("altivec_abss_v16qi"): Same. + ("altivec_abss_v8hi"): Same. + ("altivec_abss_v4si"): Same. + +2002-12-19 Ulrich Weigand + + * config/s390/s390.md ("*tsthiCCT", "*tsthiCCT_cconly", + "*tstqiCCT", "*tstqiCCT_cconly"): New insns. + +2002-12-19 Eric Botcazou + + PR target/8340 + * stmt.c (expand_asm_operands): Produce an error when + the PIC register is clobbered. + +2002-12-18 Daniel Berlin + + * Makefile.in (OBJS): Add alloc-pool.o + (alloc-pool.o): New object. + + * alloc-pool.c: New file. + * alloc-pool.h: New file. + +2002-12-18 Loren James Rittle + + * gcc.c (validate_switches): Robustify against skipping past '\0'. + +2002-12-18 Geoffrey Keating + + * config.gcc: Set extra_objs in the generic Darwin rule, + not in the machine-specific rules. + +2002-12-19 Kazu Hirata + + * ChangeLog: Follow spelling conventions. + * ChangeLog.2: Likewise. + * ChangeLog.4: Likewise. + * ChangeLog.5: Likewise. + * cppexp.c: Likewise. + * df.c: Likewise. + * gcov.c: Likewise. + * gengtype.c: Likewise. + * reload1.c: Likewise. + * sched-rgn.c: Likewise. + * stmt.c: Likewise. + * stor-layout.c: Likewise. + * timevar.c: Likewise. + * toplev.c: Likewise. + * tree.h: Likewise. + * varasm.c: Likewise. + * config/fr30/fr30.md: Likewise. + * config/i386/i386.c: Likewise. + * config/ia64/ia64.c: Likewise. + * config/pa/pa.c: Likewise. + +2002-12-18 Roger Sayle + + * basic-block.h (flow_bb_inside_loop_p): Correct prototype. + +2002-12-18 Aldy Hernandez + + PR 8551 + * config/rs6000/altivec.h (vec_cmplt macro): Reverse arguments in + macro. + (vec_cmplt C++ functions): Reverse arguments. + +2002-12-18 Geoffrey Keating + + * config/rs6000/t-rs6000: Move contents to t-fprules, + add rules for dependencies of rs6000.o and to build rs6000-c.o + * config/rs6000/t-fprules: New file from t-rs6000. + * config/rs6000/t-beos: Remove soft-fp rules. + * config/rs6000/t-ppccomm: Likewise. + * config/rs6000/t-newas: Likewise. + * config/rs6000/t-rs6000-c-rule: Delete. + * config.gcc: Use t-fprules for rs6000/ ports when appropriate. + Use t-rs6000 for all rs6000/ ports instead of t-rs6000-c-rule. + Create generic Darwin rules. + + * gengenrtl.c (gencode): Delete unnecessary rtl_obstack declaration. + +2002-12-18 Doug Evans + + * m32r/m32r.c (addr24_operand): Fix arg to CONSTANT_POOL_ADDRESS_P + and LIT_NAME_P. + (move_src_operand): Remove compile-time warning. + * m32r/m32r.h (ROUND_ADVANCE_ARG): Ditto. + +2002-12-18 Jason Merrill + + * unwind-dw2-fde.c (frame_downheap): Split out from... + (frame_heapsort): Here. + +2002-12-17 Jason Merrill + + * tree.c (make_node): Don't set TREE_TYPE on 's' class nodes. + (build1): Always set TREE_SIDE_EFFECTS on 's' class nodes. + + * gcc.c (do_spec_1) ['W']: End any pending argument from the braces. + + * calls.c (expand_call): Don't try to be clever about expanding + the return slot address. + +2002-12-18 Kaz kojima + + * config/sh/linux.h (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC): + Define. + +2002-12-17 Jason Merrill + + * genmultilib: Use 'cd ./foo'. + +2002-12-17 Kazu Hirata + + * doc/c-tree.texi: Restore deliberate spelling mistakes. + +2002-12-17 Kazu Hirata + + * doc/c-tree.texi: Fix typos and follow spelling conventions. + * doc/cpp.texi: Likewise. + * doc/extend.texi: Likewise. + * doc/gty.texi: Likewise. + * doc/install.texi: Likewise. + * doc/invoke.texi: Likewise. + * doc/md.texi: Likewise. + * doc/passes.texi: Likewise. + * doc/rtl.texi: Likewise. + * doc/sourcebuild.texi: Likewise. + * doc/tm.texi: Likewise. + +2002-12-17 Jerry Quinn + + * doc/invoke.texi: Minor spelling and grammar fixes. + +2002-12-17 Ulrich Weigand + + * config/s390/s390.c (s390_output_constant_pool): Replace + ASM_OUTPUT_INTERNAL_LABEL by (*targetm.asm_out.internal_label). + +Tue Dec 17 09:47:57 CET 2002 Jan Hubicka + + * convert.c (convert_to_real): Disable function transformation for + now. + +2002-12-16 Geoffrey Keating + + * gcc.c (handle_braces): Allow '@' as a switch name. + +2002-12-16 Jason Merrill + + * calls.c (expand_call): Handle CALL_EXPR_HAS_RETURN_SLOT_ADDR + with special struct-return ABIs. + + * c-semantics.c (add_scope_stmt): Abort if the end SCOPE_STMT + doesn't match the begin SCOPE_STMT in partialness. + +2002-12-16 Geoffrey Keating + + * genmultilib: Create temporary files in unique subdirectory. + + * gcc.c (validate_switches): Allow '@' as a switch name. + +2002-12-16 Loren J. Rittle + + * Makefile.in (gcov-iov.h): Improve portability. + +Mon Dec 16 23:39:19 CET 2002 Jan Hubicka + + * mips.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not use qpword on API_N32/not + gas + * mips.md (tablejump insn): Likewise. + +2002-12-16 Mark Mitchell + + * doc/include/gcc-common.texi: Change version number to 3.4. + +2002-12-16 Bruce Korb + + * fixinc/fixlib.h: add: #include + * fixinc/fixincl.c: remove: #include + +Mon Dec 16 17:20:04 2002 J"orn Rennecke + + * sh.h (EXTRA_CONSTRAINT_Z): New macro. + (EXTRA_CONSTRAINT): Use it. + * sh.md (anddi3): Use 'Z' constraint for alternative 2. + +2002-12-15 Zack Weinberg + + * config.gcc (need_64bit_hwint): New variable. + (alpha*-*-*, x86_64-*-*, ia64-*-*, mips*-*-*, powerpc*-*-*, + mmix-knuth-mmixware, rs6000*-*-*, sparc64*-*-*, s390*-*-*, + sh*-*-*, hppa*64*-*-linux, parisc*64*-*-linux, hppa*64*-*-hpux11*, + sparcv9-*-solaris2*, sparc*-*-solaris2.[789], ultrasparc-*-freebsd*): + Set it. + (powerpc*-*-darwin*): Unset it. + (alpha-*-interix, alpha64-dec-*vms*, i?86-*-interix3*, + i?86-*-interix*, sparc64-*-openbsd*): Remove references to + deleted/nonexistent xm-*.h headers. + * configure.in: AC_DEFINE NEED_64BIT_HOST_WIDE_INT if the + target set need_64bit_hwint in config.gcc. + * configure, config.in: Regenerate. + + * hwint.h: Overhaul. Don't bother trying int for + HOST_WIDE_INT. Do try __int64 if long is not enough. Base + decision to force 64-bit HOST_WIDE_INT on + NEED_64BIT_HOST_WIDE_INT, not (MAX_)LONG_TYPE_SIZE which is + not visible at this point. Don't allow prior definition of + any macro defined by this file. + + * config/alpha/xm-vms.h: Don't define HOST_WIDE_INT or + HOST_BITS_PER_WIDE_INT. + * config/c4x/c4x.h: Adjust redefinition of + HOST_WIDE_INT_PRINT_HEX to match changes to hwint.h. + * config/alpha/xm-alpha-interix.h, config/alpha/xm-vms64.h, + config/i386/xm-i386-interix.h: Delete file. + +2002-12-14 Rodney Brown + John David Anglin + + * pa.c (output_millicode_call): Convert ASM_OUTPUT_INTERNAL_LABEL. + * pa64-hpux.h (ASM_OUTPUT_INTERNAL_LABEL): Delete define. + +2002-12-14 Zack Weinberg + + * mkconfig.sh: Correct comment. Add copyright boilerplate. + +2002-12-14 Zack Weinberg + + * config/t-darwin, config/arm/t-pe, config/arm/t-strongarm-pe, + config/c4x/t-c4x, config/i370/t-i370, config/i386/t-cygwin, + config/i386/t-interix, config/i960/t-960bare, config/ia64/t-ia64, + config/rs6000/t-rs6000-c-rule, config/sparc/t-sol2, + config/v850/t-v850: Correct dependencies and normalize + compilation commands for files that include coretypes.h and tm.h. + + * config/sparc/gmon-sol2.c: Include tconfig.h and tsystem.h, + not config.h and system.h. + +Sat Dec 14 20:43:41 CET 2002 Jan Hubicka + + * i386.c (flags_reg_operand): New function. + * i386.h (PREDICATE_CODES): Add flags_reg_operand. + * i386.md (cmov splitter, movqicc): Use new predicate. + +Sat Dec 14 17:03:17 CET 2002 Jan Hubicka + + * i386.md (movqicc splitter): Fix template. + +2002-12-13 Jason Merrill + + * tree.h (CALL_EXPR_HAS_RETURN_SLOT_ADDR): New macro. + * calls.c (expand_call): Handle it. + * tree-inline.c (struct inline_data): Remove target_exprs field. + (optimize_inline_calls): Don't initialize it. + (expand_call_inline): Don't modify it. Handle + CALL_EXPR_HAS_RETURN_SLOT_ADDR. + (declare_return_variable): Take return slot addr. + * langhooks.h (copy_res_decl_for_inlining): Change target_exprs parm + to return_slot_addr. + * langhooks-def.h, langhooks.c: Adjust. + * explow.c (maybe_set_unchanging): Don't set RTX_UNCHANGING_P for + a decl with no DECL_INITIAL. + + * expr.c (expand_expr): Don't discard the target of a call which + returns in memory. + +2002-12-13 Neil Booth + + * cppinit.c (path_include): Take an environment variable name. + Tidy up. + (init_standard_includes): Simplify environment handling, and + move to ... + (cpp_read_main_file): ...here as -nostdinc should not affect + environment variable paths. + +2002-12-13 John David Anglin + + * pa.c (output_millicode_call): Correct typo. + (output_call): Likewise. + +Fri Dec 13 21:07:18 2002 Alexandre Oliva + + * config/mn10300/mn10300.c (print_operand) : Check + operand's range. Print value directly, without aid from + output_address. + : New. + : Make sure argument to fprintf has the right type. + * config/mn10300/mn10300.h (OK_FOR_T): New macro. + (EXTRA_CONSTRAINT): Adjust. + * config/mn10300/mn10300.md: Add new all-QImode pattern for + bclr. Use %U for immediate operands of bset and bclr. + (iorqi3): New expand, with insns for AM33 and mn10300. + +Fri Dec 13 16:02:27 2002 J"orn Rennecke + + * sh.c (sh_register_operand): New function. + (prepare_move_operands): Use it. + * sh.h (PREDICATE_CODES): Add entry for sh_register_operand. + * sh.md (movsi_media, movsi_media_nofpu): Allow stores of 0. + (movqi_media, movhi_media, movdi_media, movdi_media_nofpu): Likewise. + (movdf_media, movdf_media_nofpu, movv4sf_i, movsf_media): Likewise. + (movsf_media_nofpu, movv2hi_i, movv4hi_i, movv8qi_i): Likewise. + (movv2si_i): Likewise. + +2002-12-13 Jim Wilson + + * doc/extend.texi (Complex Numbers): Update info on debug info. + +2002-12-13 Kazu Hirata + + * config/h8300/h8300.md (addhi3_h8300): Remove the last + alternative. + +2002-12-12 Zdenek Dvorak + + * hooks.h (hook_tree_tree_bool_false): Declare + hook_bool_tree_tree_false instead. + +2002-12-12 Devang Patel + + * doc/invoke.texi: Document Darwin linker options, -bundle + -bind_at_load, -all_load and -arch_errors_fatal + +2002-12-12 Jim Wilson + + * dbxout.c (dbxout_fptype_value): New. + (dbxout_type, case COMPLEX_TYPE): Call it. Use 'R' instead of 'r'. + +2002-12-12 Kazu Hirata + + * c-decl.c: Fix a comment typo. + * cfg.c: Likewise. + * cfgcleanup.c: Likewise. + * cfglayout.c: Likewise. + * cfgrtl.c: Likewise. + * c-typeck.c: Likewise. + * dominance.c: Likewise. + * dwarf2asm.c: Likewise. + * dwarfout.c: Likewise. + * expmed.c: Likewise. + * expr.c: Likewise. + * final.c: Likewise. + * flow.c: Likewise. + * function.c: Likewise. + * gcc.c: Likewise. + * genautomata.c: Likewise. + * integrate.c: Likewise. + * loop.c: Likewise. + * loop.h: Likewise. + * output.h: Likewise. + * profile.c: Likewise. + * ra.h: Likewise. + * reload1.c: Likewise. + * reload.c: Likewise. + * sched-rgn.c: Likewise. + * stmt.c: Likewise. + * tree.h: Likewise. + * vmsdbgout.c: Likewise. + +2002-12-12 Kazu Hirata + + * config/h8300/h8300.md: Add a new peephole2. + +2002-12-12 Kazu Hirata + + * config/h8300/h8300.md (a peephole2): Accept a constant + that's accepted by CONST_OK_FOR_J. + +2002-12-12 Kazu Hirata + + * config/h8300/h8300.h (CONST_OK_FOR_J): New. + (CONST_OK_FOR_LETTER_P): Use CONST_OK_FOR_J. + * config/h8300/h8300.md (*addhi_h8300): Add a new alternative. + (*addhi_h8300hs): Likewise. + +Thu Dec 12 16:24:59 2002 J"orn Rennecke + + * sh.c (reg_class_from_letter): No longer const. Add 'e' entry. + (sh_register_move_cost): Add clause for SImode fp-fp moves. + Increase cost for moves involving multiple general purpose registers. + * sh.h (OVERRIDE_OPTIONS): Set reg_class_from_letter['e'] according to + TARGET_FMOVD. + (HARD_REGNO_MODE_OK): Allow V2SFmode and V4SFmode in general purpose + registers, and SImode in fp registers, for ! TARGET_SHMEDIA. + (enum reg_class reg_class_from_letter): No longer const. + (SECONDARY_OUTPUT_RELOAD_CLASS): Use REGCLASS_HAS_FP_REG / + REGCLASS_HAS_GENERAL_REG. + Handle SImode moves from/to fp registers. + ! TARGET_SHMEDIA && TARGET_FMOVD. + (SECONDARY_INPUT_RELOAD_CLASS): Use REGCLASS_HAS_FP_REG. + * sh.md (movsi_ie): Add alternatives to move from / to fp regisyters. + +2002-12-12 Andreas Schwab + + * config/ia64/ia64.c (ia64_hpux_asm_file_end): Fix typo in last + change and some warnings. + +2002-12-12 Kazu Hirata + + * doc/md.texi (pushm): Fix a typo. + +2002-12-12 Alexandre Oliva + + * config/mips/mips.c (mips_output_conditional_branch): Support + PIC-safe out-of-range branch and branch-likely. + * config/mips/mips.md (attr length): PIC-safe out-of-range + branches are longer. + ("jump"): Support PIC-safe out-of-range-for-branch jumps. Remove + unused code to support indirect jumps. + +2002-12-11 Zack Weinberg + + * Makefile.in (GTFILES): Add $(host_xm_file_list) and + $(tm_file_list). + +2002-12-11 David Edelsohn + + * config/rs6000/t-rs6000-c-rule: Add coretypes.h $(TM_H) dependencies. + +Wed Dec 11 15:20:45 CET 2002 Jan Hubicka + + * i386.md (cmove splitters): Avoid creation of unnecesary subregs. + +2002-12-11 John David Anglin + + * pa.h (BIGGEST_ALIGNMENT): Change 32-bit value to 64 bits. + (MAX_PARM_BOUNDARY, STACK_BOUNDARY): Express in terms of + BIGGEST_ALIGNMENT. + (PREFERRED_STACK_BOUNDARY): Express in terms of STACK_BOUNDARY. + (FUNCTION_BOUNDARY): Express in terms of BITS_PER_WORD. + +2002-12-11 Kazu Hirata + + * doc/invoke.texi: Correct dump file names. + +2002-12-09 Steve Ellcey + + * config/ia64/ia64.c (ia64_hpux_asm_file_end): Don't send stripped + name to globalize_label or assemble_name. + +Wed Dec 11 20:15:19 2002 J"orn Rennecke + + * sh.h (REG_CLASS_HAS_GENERAL_REG): Only true for SIBCALL_REGS + if not TARGET_SHMEDIA. + +Wed Dec 11 19:05:05 2002 J"orn Rennecke + + * sh.h (REG_CLASS_HAS_FP_REG): New. + (REGISTER_MOVE_COST) Use it. Put body into a function and + move it into: + * sh.c (sh_register_move_cost). + * sh-protos.h (sh_register_move_cost): Declare. + + * sh.c (sh_expand_builtin): Abort for unexpected nop values. + (sh_adjust_cost): Always return a value. + +Wed Dec 11 18:39:52 2002 J"orn Rennecke + + * sh.h (REG_CLASS_HAS_GENERAL_REG): New. + (REGISTER_MOVE_COST): Use it. + +2002-12-11 Richard Henderson + + * tree.h (MODULE_LOCAL_P): Kill. + * varasm.c (default_binds_local_p_1): Use decl_visibility instead. + +2002-12-11 Kazu Hirata + + * config/h8300/h8300.md (two define_peephole2): New. + +2002-12-11 Kazu Hirata + + * config/h8300/h8300.h (CONST_OK_FOR_J): Remove. + (CONST_OK_FOR_K): Likewise. + (CONST_OK_FOR_M): Likewise. + (CONST_OK_FOR_LETTER_P): Do not use the above macros. + +2002-12-11 Neil Booth + + * c-common.c (builtin_define_type_max): Handle unsigned + types too. + +2002-12-10 David Edelsohn + + * haifa-sched.c (rank_for_schedule): Correct style. + +2002-12-10 Per Bothner + + * cpplib.h (struct cpp_hashnode): Split a non-portably-signed field + directive_index into an unsigned field and a new is_directive field. + * cppinit.c (mark_named_operators): Update to set new fields. + * cpplex.c (_cpp_lex_direct): Now directive_field is unsigned. + * cpplib.c [_cpp_handle_directive]: Test is_directive field. + No longer need to subtract 1 from directive_index. + (_cpp_init_directives): No longer need to add 1 to directive_index. + * cpptrad.c (scan_out_logical_line): Use is_directive field. + +2002-12-10 Roger Sayle + + * builtins.c (fold_builtin): Remove -funsafe-math-optimizations + check for evaluating sqrt of a constant at compile time. + * simplify-rtx.c (simplify_unary_operation): Likewise. + +2002-12-10 Janis Johnson + + PR other/8882 + * doc/tm.texi (PUSH_ARGS): Remove misplaced line. + +2002-12-10 Devang Patel + + * config/darwin.h(LINK_SPEC): Add darwin specific linker options. + * doc/invoke.texi: Add new "Darwin Options" section. + +2002-12-10 Jim Wilson + + * rs6000.h (RETURN_IN_MEMORY): If ABI_V4, then TFmode is returned in + memory. + +2002-12-10 Andrew Haley + + * cse.c (cse_insn): Don't cse past a basic block boundary. + +2002-12-10 Jakub Jelinek + + * config/linux.h (LIB_SPEC): If -pthread, add -lpthread even if + -shared. + * config/alpha/linux-elf.h (LIB_SPEC): Likewise. + * config/alpha/linux.h (LIB_SPEC): Likewise. + * config/arm/linux-elf.h (LIB_SPEC): Likewise. + * config/pa/pa-linux.h (LIB_SPEC): Likewise. + * config/sparc/linux.h (LIB_SPEC): Likewise. + * config/sparc/linux64.h (LIB_SPEC): Likewise. + +2002-12-09 Larin Hennessy + + * doc/invoke.texi: Document UltraSparc III option. + +2002-12-09 Richard Henderson + + * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Define + __tune_pentium2__ and __tune_pentium3__ as necessary. + +2002-12-09 Richard Henderson + + * target.h (gcc_target): Add cannot_force_const_mem. + * target-def.h (TARGET_CANNOT_FORCE_CONST_MEM): New. + (TARGET_INITIALIZER): Add it. + * varasm.c (force_const_mem): Fail if cannot_force_const_mem. + * expr.c (emit_move_insn): Be prepared for force_const_mem to fail. + * reload1.c (reload): Likewise. + * hooks.c (hook_bool_rtx_false): New. + * hooks.h: Declare it. + + * config/i386/i386.c (ix86_cannot_force_const_mem): New. + (TARGET_CANNOT_FORCE_CONST_MEM): New. + (ix86_expand_move): Remove de-const-pooling hack. + +Mon Dec 9 21:33:38 CET 2002 Jan Hubicka + + * toplev.c (dump_file): Fix order to match reality. + +2002-12-08 Geoffrey Keating + + * config/rs6000/rs6000.md (load_multiple): Use adjust_address_nv. + (store_multiple): Likewise. + +2002-12-09 John David Anglin + + * pa/fptr.c (__canonicalize_funcptr_for_compare): Don't canonicalize + function pointers in page 0. + +2002-12-09 Steve Ellcey + + * config/ia64/hpux.h (TARGET_STRUCT_ARG_REG_LITTLE_ENDIAN): Remove + definition + (MEMBER_TYPE_FORCES_BLK): Move. + * config/ia64/ia64.c (ia64_function_arg): Use PARALLEL to pass + aggregate arguments. + (ia64_function_value): Use PARALLEL to return aggregate values. + +2002-12-09 Steve Ellcey + + * doc/tm.texi (FUNCTION_ARG_REG_LITTLE_ENDIAN): Remove definition. + * defaults.h (FUNCTION_ARG_REG_LITTLE_ENDIAN): Remove definition. + * calls.c (store_unaligned_arguments_into_pseudos) Remove + FUNCTION_ARG_REG_LITTLE_ENDIAN. + * stmt.c (expand_return): Ditto. + * expr.c (move_block_from_reg): Ditto. + (copy_blkmode_from_reg): Ditto. + * expmed.c (store_bit_field): Ditto. + +2002-12-09 Svein E. Seldal + + * config.gcc: Added tic4x-* target as an alias to c4x-* + +Sun Dec 8 14:57:39 CET 2002 Jan Hubicka + + * i386.c (ix86_expand_int_movcc): Use force_operand instead of + constructing insn directly. + +2002-12-06 Per Bothner + + * cpplib.h (struct cpp_hashnode): Change field directive_index from + char to an int bit-field, for hosts where char is unsigned. + +2002-12-07 Roger Sayle + Richard Henderson + + * real.c (ieee_extended_motorola_format, + ieee_extended_intel_96_format, ieee_extended_intel_128_format, + ieee_quad_format, vax_d_format, vax_g_format, i370_double_format): + Provide appropriate values for new signbit field. + +2002-12-07 Roger Sayle + + * real.h (real_format): Add signbit field. + * real.c (ieee_single_format, ieee_double_format, + ieee_extended_motorola_format, ieee_extended_intel_96_format, + ieee_extended_intel_128_format, ibm_extended_format, + ieee_quad_format, vax_f_format, vax_d_format, + vax_g_format, i370_single_format, i370_double_format, + c4x_single_format, c4x_extended_format, real_internal_format): + Provide suitable signbit value, or -1 to avoid bit twiddling. + + * optabs.c (expand_unop): Try implementing negation of + floating point modes by flipping the sign bit. + (expand_abs): Try implementing abs of floating point modes + by clearing the sign bit. + +Sat Dec 7 22:29:47 CET 2002 Jan Hubicka + + * i386.c (ix86_expand_int_movcc): Use force_operand instead + of constructing insn directly. + +2002-12-07 Kazu Hirata + + * config/h8300/h8300.md (*iorhi_shift_8): New. + +2002-12-06 Bernd Schmidt + + * doc/invoke.texi: Document FRV port options. + * doc/md.texi: Document FRV register classes. + +2002-12-07 Gerald Pfeifer + + * doc/install.texi (Configuration): Improve description of cases + where `make distclean` may fail; clarify --with-gnu-as; fix grammar. + +2002-12-06 Per Bothner + + * cpplib.h (NODE_MACRO_ARG): New flag. + (struct cpp_hashnode): Give _cpp_hashnode_value tag to value union. + Remove value.operator field. Move arg_index field to value union. + (directive_index): Make signed, since also used for C++ operators. + * cppmacro.c (_cpp_save_parameter): Use NODE_MACRO_ARG flag to + check for duplicate parameter. Set NODE_MACRO_ARG flag. + Save node->value, and set node->value.arg_index. + (_cpp_create_definition): For each paramater, restore node->value. + (lex_expansion_token): Use NODE_MACRO_ARG flag, and moved arg_index. + * cpptrad.c (scan_out_logical_line): Likewise. + (scan_out_logical_line): Check for directive > 0. + * cpplib.c (cpp_handle_directive): Likewise. + * cpplex.c (_cpp_lex_direct): Update as value.operator is replaced + by negative of directive_index. + * cppinit.c (mark_named_operators): Likewise. + + * hashtable.h (struct ht_identifier): Swap fields, for better packing. + +2002-12-06 Dhananjay Deshpande + + * gcc/config/sh/sh.c (calc_live_regs): Save fpscr only if target has + FPU. + (push): Generate push_fpscr. + (pop): Generate pop_fpscr. + * gcc/config/sh/sh.md : Add define_expand "push_fpscr", "pop_fpscr". + (fpu_switch): Add alternative to push fpscr. Enable for TARGET_SH3E. + +Fri Dec 6 19:36:24 2002 J"orn Rennecke + + * sh.c (dump_table): DImode pool constants need only 32 bit alignment. + DFmode alignment depends on TARGET_FMOVD && TARGET_ALIGN_DOUBLE. + +Fri Dec 6 19:17:49 2002 J"orn Rennecke + + * sh.md (movdi_i): Name. Remove inappropriate comment. + +Fri Dec 6 15:44:46 2002 J"orn Rennecke + Merged from basic improvements branch (excerpt): + + 2002-11-19 Kaz Kojima + * config/sh/sh.h (SH_DBX_REGISTER_NUMBER): Handle PR_MEDIA_REG. + +2002-12-06 Jakub Jelinek + + * expr.c (expand_expr) : Never modify exp in place. + +Thu Dec 5 16:58:25 CET 2002 Jan Hubicka + + * i386.md (dimode peep2s): Re-add "&& 1". + +Thu Dec 5 14:10:15 CET 2002 Jan Hubicka + + * i386.c (ix86_expand_prologue): Add comment, do not use + fast prologues for cold and normal functions. + +Thu Dec 5 00:52:37 CET 2002 Jan Hubicka + + * i386.c (x86_rep_movl_optimal): New variable. + (ix86_expand_movstr, ix86_expand_clrstr): Use TARGET_REP_MOVL_OPTIMAL + * i386.h (TARGET_REP_MOVL_OPTIMAL): New macro. + + * i386.md (negsf2_ifs, negdf2_ifs, negdf2_ifs_rex64, abssf2_ifs, + absdf2_ifs, absdf2_ifs_rex64): Fix constraints. + neg?f2_ifs, abs?f2_ifs splitters): Refuse memory operand; do not + generate unnecesary subregs. + +2002-12-05 John David Anglin + + * pa32-linux.h (CANONICALIZE_FUNCPTR_FOR_COMPARE_LIBCALL): Move define. + * pa.h (CANONICALIZE_FUNCPTR_FOR_COMPARE_LIBCALL): To here. + +2002-12-05 Dale Johannesen + + * tree.c (unsafe_for_reeval): Consider callee child of CALL_EXPR. + +2002-12-05 Danny Smith + + * config/i386/cygwin.h (SUBTARGET_PROLOGUE): Replace with + PROFILE_HOOK. + * config/i386/mingw32.h (SUBTARGET_PROLOGUE): Don't undef. + +2002-12-05 Aldy Hernandez + + * config/rs6000/spe.h (__ev_mwlufi): Remove. + (__ev_mwlufia): Remove. + (__ev_mwlumfaaw): Remove. + (__ev_mwlusfaaw): Remove. + (__ev_mwlumfanw): Remove. + (__ev_mwlusfanw): Remove. + +2002-12-05 Kazu Hirata + + * config/h8300/h8300.md (*andorsi3_shift_8): New. + +2002-12-05 Kazu Hirata + + * config/h8300/h8300.c (shift_alg_si): Optimize ashift:HI and + lshiftrt:SI by 28, 29, and 30 bits when !TARGET_H8300. + (get_shift_alg): Return optimal assembly instructions for the + shifts mentioned above. + +Wed Dec 4 11:53:07 CET 2002 Jan Hubicka + + * i386.c (ix86_expand_int_movcc): Force operand into register for QImode + condtiional moves. + +2002-12-04 Kazu Hirata + + * config/h8300/h8300.c (h8300_init_once): Do not use loop to + implement ashiftrt:HI by 13 bits on H8S. + +2002-12-04 John David Anglin + + * pa/fptr.c (__canonicalize_funcptr_for_compare): New file and function. + * pa.md (canonicalize_funcptr_for_compare): Output library call to + canonicalize_funcptr_for_compare_libfunc on TARGET_ELF32. + * pa32-linux.h (CANONICALIZE_FUNCPTR_FOR_COMPARE_LIBCALL, + CTOR_LIST_BEGIN): New defines. + * pa/t-linux (LIB2FUNCS_EXTRA): New define. + (fptr.c): Add make rules. + +2002-12-04 Geoffrey Keating + + * combine.c (combine_simplify_rtx): Add new canonicalizations. + * doc/md.texi (Insn Canonicalizations): Document new + canonicalizations for multiply/add combinations. + * config/rs6000/rs6000.md: Add and modify floating add/multiply + patterns to ensure they're used whenever they can be. + +2002-12-04 Kazu Hirata + + * config/h8300/h8300.c: Update the comments related to shifts. + +2002-12-04 Chris Demetriou + + * config/mips/mips.md (get_fnaddr): Correct length attribute. + +2002-12-04 Kazu Hirata + + * config/h8300/h8300.md (*extzv_8_8): New. + (*extzv_8_16): Likewise. + +2002-12-04 Jason Merrill + + PR c++/8461, c++/8625 + * integrate.c (copy_decl_for_inlining): Handle explicit invisible + references. + * tree-inline.c (initialize_inlined_parameters): Likewise. + + * tree.c (variably_modified_type_p): Just return an error_mark_node. + +2002-12-04 Chris Demetriou + + * config/mips/mips.md (get_fnaddr): Avoid placing an "la" + macro instruction in a branch delay slot, to avoid assembler + warnings. + +2002-12-04 Eric Botcazou + + PR c/7622 + * c-semantics (genrtl_scope_stmt): Do not output inlined + nested functions that contain no code. + +Wed Dec 4 15:20:54 CET 2002 Jan Hubicka + + * cfgrtl.c (force_nonfallthru_and_redirect): Allow abnormal edge + to be forced into nonfallthru. + +2002-12-03 Jason Thorpe + + * config/t-netbsd (USER_H): Set to $(EXTRA_HEADERS). + +2002-12-03 Aldy Hernandez + + * config/rs6000/spe.md (*movv1di_const0): New pattern. + +2002-12-03 Richard Henderson + + * libgcc-std.ver: Inherit GCC_3.3 from GCC_3.0. + +2002-12-03 Hans-Peter Nilsson + + * bitmap.c (bitmap_ior_and_compl, bitmap_union_of_diff): + Initialize tmp.using_obstack to 0. + +2002-12-03 Andreas Schwab + + * config/m68k/m68k.h (EH_RETURN_DATA_REGNO): Define. + (EH_RETURN_STACKADJ_RTX): Define. + (EH_RETURN_HANDLER_RTX): Define. + (ASM_PREFERRED_EH_DATA_FORMAT): Define. + * config/m68k/m68k.c (m68k_save_reg): New function. Handle eh + registers and don't save fixed registers. + (m68k_output_function_prologue): Use it. + (use_return_insn): Likewise. + (m68k_output_function_epilogue): Likewise. + +2002-12-03 Kazu Hirata + + * config/h8300/h8300.c (single_one_operand): Fix a warning. + (single_zero_operand): Likewise. + +2002-12-02 Nathanael Nerode + + * Makefile.in configure configure.in dummy-conditions.c fix-header.c + gcov-iov.c gen-protos.c genattr.c genattrtab.c genautomata.c + gencheck.c gencodes.c genconditions.c genconfig.c genconstants.c + genemit.c genextract.c genflags.c gengenrtl.c gengtype-lex.l + gengtype-yacc.y gengtype.c genopinit.c genoutput.c genpeep.c + genpreds.c genrecog.c gensupport.c mkconfig.sh read-rtl.c + scan-decls.c scan.c config/sh/sh.h doc/configfiles.texi + doc/install-old.texi: Replace hconfig.h with bconfig.h. + * Makefile.in: Replace HCONFIG_H with BCONFIG_H. + +2002-12-02 Andrew Pinski + + * config/rs6000/rs6000.md (ffssi): Convert to expander. + (ffsdi): Likewise. + (cntlzw2, cntlzd2): New patterns. + +2002-12-02 H.J. Lu + + * config.gcc (mips*-*-netbsd*): Remove mips/t-netbsd. + (mips*-*-linux*): Remove mips/t-linux. + +Mon Dec 2 19:26:30 CET 2002 Jan Hubicka + + * i386.c (ix86_expand_int_movcc): Avoid overflow. + +2002-12-02 Kazu Hirata + + * config/h8300/h8300.c (dosize): Replace argument op with + sign. + (h8300_output_function_prologue): Update the call to dosize. + (h8300_output_function_epilogue): Likewise. + +2002-12-02 Bob Wilson + + * config/xtensa/xtensa.h: Delete ifndefs with nothing inside them. + +2002-12-02 Craig Rodrigues + + * configure.in: Use "missing" script to generate warning if + flex or bison programs not found, instead of invoking "false". + * configure: Rebuilt. + +Mon Dec 2 20:28:48 CET 2002 Jan Hubicka + + * unroll.c (copy_loop_body): Copy CONST_OR_PURE_CALL_P. + +Mon Dec 2 19:42:52 CET 2002 Jan Hubicka + + * i386.c (ix86_expand_int_movcc): Avoid overflow. + +2002-12-02 Kazu Hirata + + * config/h8300/h8300.c (dosize): Output r7/er7 instead of sp. + (push): Likewise. + (pop): Likewise. + (h8300_output_function_prologue): Likewise. + (h8300_output_function_epilogue): Likewise. + +Mon Dec 2 14:43:22 2002 J"orn Rennecke + + * expmed.c (store_bit_field): Use int_mode_for_mode to find + corresponding mode of non-integer mode, unless it is VOIDmode. + +2002-12-02 Kazu Hirata + + * config/h8300/h8300.md (stm_h8300s_2): New. + (stm_h8300s_3): Likewise. + (stm_h8300s_4): Likewise. + (five define_peephole2): Likewise. + +2002-12-02 Kazu Hirata + + * ra-build.c: Fix a comment typo. + +Sun Dec 1 16:50:47 CET 2002 Jan Hubicka + + * i386.c (ix86_expand_int_movcc): fix + reversed BRANCH_COST test; be curefull about infinite recursion. + +2002-12-01 Kazu Hirata + + * config/h8300/h8300.c (h8300_output_function_prologue): + Remove variable idx. + (h8300_output_function_epilogue): Likewise. + +2002-12-01 Zack Weinberg + + * config/frv/xm-frv.h: Delete, unnecessary. + +2002-12-01 Kazu Hirata + + * config/h8300/h8300.md: Add comments for define_peephole2. + +2002-12-01 Mark Mitchell + + * builtin-types.def (BT_SIZE): Use size_type_node. + * builtins.c (fold_builtin): Make the builtin strlen returns a + size_t, not a sizetype. + * c-common.c (c_sizeof_or_alignof_type): Use size_type_node, not + c_size_type_node. + (c_alignof_expr): Likewise. + (c_common_nodes_and_builtins): Likewise. + * c-common.h (CTI_C_SIZE_TYPE): Remove. + (c_size_type_node): Likewise. + * c-format.c (T_ST): Use size_type_node, not c_size_type_node. + * tree.h (TI_SIZE_TYPE): New enumeral. + (size_type_node): Likewise. + +2002-11-30 Zack Weinberg + + * configure.in: Don't put ${tm_file} into host_xm_file, + build_xm_file, or xm_file. Do put tm-preds.h into tm_p_file. + Take location of tm-preds.h into account when calculating + tm_p_file_list. + * configure: Regenerate. + * mkconfig.sh: No need for separate TM_DEFINES and XM_DEFINES + arguments. Do not provide rtx, rtvec, tree, or GTY here. + Remove special case code for tm_p.h and *config.h; add new + special case code for tm.h and tconfig.h. Clean up a bit. + + * Makefile.in (tm_file, tm_file_list): New variables set from + @-substitutions. + (GCONFIG_H): Deleted. + (GTM_H, TM_H): New. + (CONFIG_H): Is now just config.h $(host_xm_file_list). + (TM_P_H): Move up with the other mkconfig.sh-generated + headers; don't mention tm-preds.h explicitly. + (tm.h, cs-tm.h): New rule. + (cs-config.h, cs-hconfig.h, cs-tconfig.h, cs-tm_p.h): Adjust + invocations of mkconfig.sh for changes to that program. + (mostlyclean): Delete print-rtl1.c. + (clean): Delete tm.h. + Update dependencies for the files listed below. + + * mklibgcc.in: Add 'coretypes.h $(TM_H)' to libgcc2_c_dep. + + * coretypes.h: New file. + * system.h: #define malloc to xmalloc and realloc to xrealloc + when FLEX_SCANNER or YYBISON is defined, independent of the + value of GCC_VERSION. + * alias.c, attribs.c, bb-reorder.c, bitmap.c, builtins.c, + c-aux-info.c, c-common.c, c-convert.c, c-decl.c, c-dump.c, + c-errors.c, c-format.c, c-lang.c, c-lex.c, c-objc-common.c, + c-opts.c, c-parse.in, c-pragma.c, c-pretty-print.c, + c-semantics.c, c-typeck.c, caller-save.c, calls.c, cfg.c, + cfganal.c, cfgbuild.c, cfgcleanup.c, cfglayout.c, cfgloop.c, + cfgrtl.c, collect2.c, combine.c, conflict.c, convert.c, + cppdefault.c, cpperror.c, cppexp.c, cppfiles.c, cpphash.c, + cppinit.c, cpplex.c, cpplib.c, cppmacro.c, cppmain.c, + cppspec.c, cpptrad.c, crtstuff.c, cse.c, cselib.c, dbxout.c, + debug.c, df.c, diagnostic.c, doloop.c, dominance.c, + dummy-conditions.c, dwarf2asm.c, dwarf2out.c, dwarfout.c, + emit-rtl.c, errors.c, et-forest.c, except.c, explow.c, + expmed.c, expr.c, final.c, fix-header.c, flow.c, fold-const.c, + function.c, gcc.c, gccspec.c, gcov-dump.c, gcov-iov.c, gcov.c, + gcse.c, gen-protos.c, genattr.c, genattrtab.c, genautomata.c, + gencheck.c, gencodes.c, genconditions.c, genconfig.c, + genconstants.c, genemit.c, genextract.c, genflags.c, + gengenrtl.c, gengtype-lex.l, gengtype-yacc.y, gengtype.c, + genopinit.c, genoutput.c, genpeep.c, genpreds.c, genrecog.c, + gensupport.c, ggc-common.c, ggc-none.c, ggc-page.c, + ggc-simple.c, global.c, graph.c, haifa-sched.c, hashtable.c, + hooks.c, ifcvt.c, integrate.c, intl.c, jump.c, langhooks.c, + lcm.c, libgcc2.c, line-map.c, lists.c, local-alloc.c, loop.c, + main.c, mbchar.c, mips-tdump.c, mips-tfile.c, mkdeps.c, + optabs.c, params.c, predict.c, prefix.c, print-rtl.c, + print-tree.c, profile.c, protoize.c, ra-build.c, + ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, read-rtl.c, + real.c, recog.c, reg-stack.c, regclass.c, regmove.c, + regrename.c, reload.c, reload1.c, reorg.c, resource.c, + rtl-error.c, rtl.c, rtlanal.c, sbitmap.c, scan-decls.c, + scan.c, sched-deps.c, sched-ebb.c, sched-rgn.c, sched-vis.c, + sdbout.c, sibcall.c, simplify-rtx.c, ssa-ccp.c, ssa-dce.c, + ssa.c, stmt.c, stor-layout.c, stringpool.c, timevar.c, + tlink.c, toplev.c, tracer.c, tree-dump.c, tree-inline.c, + tree.c, unroll.c, varasm.c, varray.c, varray.h, vmsdbgout.c, + xcoffout.c, config/darwin-c.c, config/darwin.c, + config/fp-bit.c, config/alpha/alpha.c, config/alpha/vms-cc.c, + config/alpha/vms-ld.c, config/arc/arc.c, config/arm/arm.c, + config/arm/pe.c, config/avr/avr.c, config/c4x/c4x-c.c, + config/c4x/c4x.c, config/cris/cris.c, config/d30v/d30v.c, + config/dsp16xx/dsp16xx.c, config/fr30/fr30.c, + config/frv/frv.c, config/h8300/h8300.c, config/i370/i370-c.c, + config/i370/i370.c, config/i386/i386.c, config/i386/winnt.c, + config/i960/i960-c.c, config/i960/i960.c, + config/ia64/ia64-c.c, config/ia64/ia64.c, config/ip2k/ip2k.c, + config/m32r/m32r.c, config/m68hc11/m68hc11.c, + config/m68k/m68k.c, config/m88k/m88k.c, config/mcore/mcore.c, + config/mips/irix6-libc-compat.c, config/mips/mips.c, + config/mmix/mmix.c, config/mn10200/mn10200.c, + config/mn10300/mn10300.c, config/ns32k/ns32k.c, + config/pa/pa.c, config/pdp11/pdp11.c, config/romp/romp.c, + config/rs6000/rs6000-c.c, config/rs6000/rs6000.c, + config/s390/s390.c, config/sh/sh.c, config/sparc/gmon-sol2.c, + config/sparc/sparc.c, config/stormy16/stormy16.c, + config/v850/v850-c.c, config/v850/v850.c, config/vax/vax.c, + config/xtensa/xtensa.c, objc/objc-act.c, objc/objc-lang.c: + Include coretypes.h and tm.h. + + * genattrtab.c, genconditions.c, genemit.c, genextract.c, + gengenrtl.c, gengtype.c, genopinit.c, genoutput.c, genpeep.c, + genrecog.c: Include coretypes.h and tm.h from the file + generated by this program. + + * unwind-dw2-fde-darwin.c, unwind-dw2-fde-glibc.c, + unwind-dw2-fde.c, unwind-dw2.c, unwind-sjlj.c: Include + coretypes.h and tm.h, and tsystem.h when not already included. + No need to include stddef.h nor stdlib.h. + + * fixinc/fixlib.h: Include coretypes.h and tm.h. Do not + include auto-host.h or ansidecl.h/ + * fixinc/server.h: Do not include stdio.h, unistd.h, or fixlib.h. + * fixinc/procopen.c: Include server.h after fixlib.h. Do not + include auto-host.h, ansidecl.h, or system.h. + * fixinc/server.c: Likewise. Also, do not include signal.h, + and do not redefine volatile. + +Sat Nov 30 17:16:46 CET 2002 Jan Hubicka + + * i386.md (movdf_integer): Always enable in 64bit. + (movdf_nointeger): Always disable in 64bit. + +2002-11-30 John David Anglin + + * cfg.c (dump_flow_info): Use max_reg_num () to determine the largest + pseudo register number plus 1. + +Fri Nov 29 20:10:56 2002 J"orn Rennecke + + * expmed.c (store_bit_field): Use int_mode_for_mode to find + corresponding mode of non-integer mode, unless it is VOIDmode. + +2002-11-29 Hans-Peter Nilsson + + * cpplib.c (_cpp_test_assertion): Default *value to 0. + + * cppexp.c (num_part_mul): Initialize result.unsignedp, to 1. + +2002-11-29 Ulrich Weigand + + * config/s390/t-crtstuff: New target makefile fragment. + * config.gcc [s390-*-linux, s390x-*-linux]: Use it. + +2002-11-29 Kazu Hirata + + * config/h8300/h8300.md (movsi_h8300hs): Change the order of + alternatives to correct the length when the memory operand is + either pre_dec or post_inc. + +2002-11-29 Kazu Hirata + + * config/h8300/h8300.md (an anonymous pattern): Give an + internal name *tst_extzv_bitqi_1_n. + Accept bit_operand instead of bit_memory_operand. + Do not accept bit tests with the MSB. + (*tst_extzv_memqi_1_n): New. + +Thu Nov 28 23:56:24 CET 2002 Jan Hubicka + + * i386.c (ix86_expand_int_movcc): Add copy_rtx to avoid invalid RTX + sharing when operand is SUBREG. + +Thu Nov 28 08:57:26 CET 2002 Jan Hubicka + + * athlon.md (athlon-decodev): New reservation unit. + (athlon-direct0): New reservation. + (athlon-vector): New use athlon-decodev. + (athlon-double, athlon-direct): Better model. + (athlon_imul_k8): Use athlon-direct0. + (athlon_movlpd_load): New insn reservation. + +2002-11-28 Kazu Hirata + + * config/h8300/h8300.c (h8300_eightbit_constant_address_p): + Fix a comment typo. + (h8300_tiny_constant_address_p): Likewise. + +2002-11-28 Michael Matz + + * doc/passes.texi: Mention the other register allocator. + +2002-11-28 Kazu Hirata + + * config/h8300/h8300.md (6 new peephole2 patterns): New. + +2002-11-28 Jakub Jelinek + + * config.gcc (x86_64-*-linux*) [tmake_file]: Remove i386/t-crtstuff. + * config/t-linux (CRTSTUFF_T_CFLAGS_S): Add $(CRTSTUFF_T_CFLAGS). + * config/i386/t-linux64 (CRTSTUFF_T_CFLAGS): Define. + +2002-11-28 Kazu Hirata + + * config/h8300/h8300.c (h8300_and_costs): New. + * config/h8300/h8300.h (RTX_COSTS): Use h8300_and_costs. + * config/h8300/h8300-protos.h: Add a prototype for + h8300_and_costs. + +Wed Nov 27 20:34:13 CET 2002 Jan Hubicka + + * i386.c (x86_sse_partial_regs_for_cvtsd2ss): New. + * i386.h (x86_sse_partial_regs_for_cvtsd2ss): Declare. + (TARGET_SSE_PARTIAL_REGS_FOR_CVTSD2SS): New macro. + * i386.md (truncdfsf patterns and splitters): Use + TARGET_SSE_PARTIAL_REGS_FOR_CVTSD2SS + +2002-11-27 Zack Weinberg + + * config/rs6000/rs6000.c (altivec_init_builtins): Make the + pointer argument in the prototypes of the following builtins + be (const TYPE *) rather than (TYPE *): + + __builtin_altivec_ld_internal_4sf + + __builtin_altivec_ld_internal_4si + + __builtin_altivec_ld_internal_8hi + + __builtin_altivec_ld_internal_16qi + + __builtin_altivec_lvsl + + __builtin_altivec_lvsr + + __builtin_altivec_lvebx + + __builtin_altivec_lvehx + + __builtin_altivec_lvewx + + __builtin_altivec_lvxl + + __builtin_altivec_lvx + + __builtin_altivec_dst + + __builtin_altivec_dstt + + __builtin_altivec_dstst + + __builtin_altivec_dststt + +2002-11-27 Kaveh R. Ghazi + + * except.c (default_exception_section): Move variable into the + scope where it is used. + +2002-11-27 Krister Walfridsson + + * config.gcc (*-*-netbsd[2-9]*, *-*-netbsdelf[2-9]*): Test for + correct version. + +2002-11-27 Kazu Hirata + + * config/h8300/h8300.h (OK_FOR_U): Remove extra parentheses. + +2002-11-27 Kazu Hirata + + * config/h8300/h8300.c (h8300_shift_costs): New. + * config/h8300/h8300.h (RTX_COSTS): Use h8300_shift_costs. + * config/h8300/h8300-protos.h: Add a prototype for + h8300_shift_costs. + +2002-11-27 Jim Wilson + + * config/rs6000/spe.md (spu_evsplatfi, spu_evsplati): Swap operands + in output template. + +2002-11-27 Casper S. Hornstrup + + * config/i386/i386.h (DLL_IMPORT_EXPORT_PREFIX): Define. + * config/i386/winnt.c (i386_pe_dllexport_name_p): Use + DLL_IMPORT_EXPORT_PREFIX, not '@'. + (i386_pe_dllimport_name_p): Likewise. + (i386_pe_mark_dllexport): Likewise. + (i386_pe_mark_dllimport): Likewise. + (i386_pe_encode_section_info): Likewise. + (i386_pe_strip_name_encoding): Likewise. + +2002-11-27 Richard Henderson + + * mkmap-symver.awk (BEGIN): Set sawsymbol false. + (nm && NF == 3): Set sawsymbol true. + (END): Exit if no symbols seen. + (output): Fix map syntax error if no globals for the version. + +Wed Nov 27 14:45:46 CET 2002 Jan Hubicka + + * builtins.def (DEF_C99_BUILTIN): Fix. + +2002-11-26 Kaz Kojima + + * config/sh/lib1funcs.asm (FUNC, ENDFUNC0, ENDFUNC): New macros. + (all): Add .size and .type information. + +Tue Nov 26 22:43:50 CET 2002 Jan Hubicka + + * i386.c (ix86_expand_int_movcc): Do not emit lea for short mode on + partial_reg_stall target. + +Tue Nov 26 22:27:47 CET 2002 Jan Hubicka + + * i386.md (movhicc): Allow general operand. + (movqicc): New expander. + (movqicc_noc): New pattern. + * i386.c (ix86_expand_carry_flag_compare): New function. + (ix86_expand_int_movcc): Optimize harder using sbb; support more + HImode conversion; support QImode conditional moves + +Tue Nov 26 16:30:59 CET 2002 Jan Hubicka + + * i386.c (FAST_PROLOGUE_INSN_COUNT): Set to 20. + (ix86_expand_prologue): Multiply the count by amount of registers to be + pushed. + +Tue Nov 26 15:55:27 CET 2002 Jan Hubicka + + * i386.c (override_options): Error about wrong -mcpu on x86-64 + compilation. + +2002-11-26 NIIBE Yutaka + + * config/sh/linux.h (FUNCTION_PROFILER): Implemented. + +Tue Nov 26 00:14:20 CET 2002 Jan Hubicka + + * i386-protos.h (x86_extended_QIreg_mentioned_p, + x86_extended_reg_mentioned_p): Declare. + * i386.c (extended_reg_mentioned_1): New static function. + (x86_extended_QIreg_mentioned_p, + x86_extended_reg_mentioned_p): New global functions. + * i386.h (REX_SSE_REGNO_P): New macro. + * i386.md (prefix_rex): New attribute. + (length attribute): Add rex. + +2002-11-26 Andrew Haley + + * unwind-sjlj.c (_Unwind_FindEnclosingFunction): Rename + from_Unwind_Find_Enclosing_Function. + * unwind-dw2.c (_Unwind_FindEnclosingFunction): Likewise. + * config/ia64/unwind-ia64.c (_Unwind_FindEnclosingFunction): Likewise. + * libgcc-std.ver (_Unwind_FindEnclosingFunction): Rename from + _Unwind_Find_Enclosing_Function, export @@GCC_3.3. + * unwind.h (_Unwind_FindEnclosingFunction): Add. + +2002-11-26 Hartmut Penner + + * config/s390/s390.c (390_output_constant_pool): Set alignment + before label in 64 bit mode, behind otherwise. + +2002-11-26 Richard Henderson + + * c-common.c (handle_visibility_attribute): Accept "default". + * tree.h (enum symbol_visibility): New. + (decl_visibility): Declare. + * target.h (gcc_target.visibility): Take visibility arg as integer. + * varasm.c (default_assemble_visibility): Likewise. + (decl_visibility): New. + (maybe_assemble_visibility): Use it. + * output.h (default_assemble_visibility): Update prototype. + * config/rs6000/rs6000.c (rs6000_assemble_visibility): Take + visibility arg as integer. + * doc/extend.texi: Document default visibility. + +2002-11-26 Kazu Hirata + + * config/h8300/h8300.c: Adjust spacing. + * config/h8300/h8300.h: Likewise. + +2002-11-26 Richard Henderson + + * hooks.c (hook_bool_void_false, hook_void_tree_int, + hook_void_FILEptr_constcharptr): Rename so that the return + type is first. + (hook_int_tree_tree_1, hook_void_tree, hook_void_tree_treeptr, + hook_bool_tree_false): New. + * hooks.h: Update. + * langhooks-def.h: Update for renames. + * target-def.h: Likewise. + * tree.c (default_comp_type_attributes, + default_set_default_type_attributes, default_insert_attributes, + default_function_attribute_inlinable_p, + default_ms_bitfield_layout_p): Remove. + * tree.h: Update. + +2002-11-26 John David Anglin + + * pa-protos.h (function_value): New prototype. + * pa.c (function_value): Use a PARALLEL to return small aggregates on + TARGET_64BIT. + * pa.h (FUNCTION_VALUE): Use function_value. + * pa.md (call_value_internal_symref, call_value_internal_reg_64bit, + call_value_internal_reg, sibcall_value_internal_symref, + sibcall_value_internal_symref_64bit): Remove =rf constraint on return + value. + +2002-11-26 John David Anglin + + * expr.c (gen_group_rtx, emit_group_move): New functions. + * expr.h (gen_group_rtx, emit_group_move): Prototype. + * function.c (expand_function_start): Use gen_group_rtx to create a + PARALLEL rtx to hold the return value when the real return rtx is a + PARALLEL. + (expand_function_end): Use emit_group_move to move the return value + from a PARALLEL to the real return registers. + * rtl.h (REG_FUNCTION_VALUE_P): Allow function values to be returned + in PARALLELs. + +2002-11-26 Jason Thorpe + + * config/t-libc-ok: Fix typo. + +2002-11-26 Jakub Jelinek + + * configure.in: Move AC_CANONICAL_SYSTEM and AC_ARG_PROGRAM back + before AC_PROG_CC. + * configure: Rebuilt. + +2002-11-26 Nathan Sidwell + + * c-decl.c: (start_struct): Commonize flag setting. + +2002-11-26 Jason Thorpe + + * config/rs6000/rs6000.h (RS6000_CPU_CPP_ENDIAN_BUILTINS): New. + * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Use + RS6000_CPU_CPP_ENDIAN_BUILTINS. + * config/rs6000/netbsd.h (RS6000_CPU_CPP_ENDIAN_BUILTINS): Redefine. + +2002-11-26 Hartmut Penner + + * config/s390/s390.md (literal_pool_64, literal_pool_31 ): New + insns. + * config/s390/s390.c (struct machine_function): Introduction of + struct machine_function. + (s390_output_symbolic_const): Use of cfun. + (s390_optimize_prolog): Likewise. + (s390_fixup_clobbered_return_reg): Likewise. + (s390_frame_info): Likewise. + (s390_emit_prologue, s390_emit_epilogue): Likewise. + (s390_init_machine_status): New function. + (override_options): call s390_init_machine_status. + * config/s390/s390-protos.h (s390_output_constant_pool): Changed + prototype. + +2002-11-26 Jakub Jelinek + + * varasm.c (output_constant_pool): For pool constants in mergeable + section ensure each constant is padded to multiple of entity size. + +2002-11-26 Jakub Jelinek + + * varasm.c (default_exception_section): Move to... + * except.c (default_exception_section): ... here. Make + .gcc_except_table read-only if it is not expected to have any + dynamic relocations and linker handles it. + * dwarf2out.c (default_eh_frame_section): Make .eh_frame read-only + if it is not expected to have any dynamic relocations and linker + handles it. + * configure.in (HAVE_LD_RO_RW_SECTION_MIXING): Check what ld does + when linking read-only and read-write sections together. + * configure, config.in: Rebuilt. + * crtstuff.c (EH_FRAME_SECTION_CONST): Define. + (__EH_FRAME_BEGIN__, __FRAME_END__): Add it. + +Mon Nov 25 18:32:37 CET 2002 Jan Hubicka + + * i386.md (pushsf_rex64): Fix typo. + +2002-11-25 Aldy Hernandez + + * config/rs6000/spe.h (__ev_create_sfix32_fs): Change macro into + new function. + (__ev_create_ufix32_fs): Same. + (__ev_get_sfix32_fs_internal): New. + (__ev_get_sfix32_fs): Define to use function. + (__ev_get_ufix32_fs_internal): New. + (__ev_get_ufix32_fs): Define to use function. + (__ev_get_upper_ufix32_fs): Call __ev_get_ufix32_fs. + (__ev_get_lower_ufix32_fs): Same. + (__ev_get_upper_sfix32_fs): Call __ev_get_sfix32_fs. + (__ev_get_lower_sfix32_fs): Same. + (__ev_set_sfix32_fs_internal): New. + (__ev_set_ufix32_fs_internal): New. + (__ev_set_sfix32_fs): Call __ev_set_sfix32_fs_internal. + (__ev_set_ufix32_fs): Call __ev_set_ufix32_fs_internal. + (__ev_set_upper_sfix32_fs): Call function. + (__ev_set_lower_sfix32_fs): Same. + (__ev_set_upper_ufix32_fs): Same. + (__ev_set_lower_ufix32_fs): Same. + +2002-11-25 Douglas B Rupp + + * gcc.c (do_spec_1): Reset delete_this_arg to zero. + +2002-11-25 Jason Thorpe + + * config/elfos.h (HANDLE_SYSV_PRAGMA): Define as 1. + * config/interix.h (HANDLE_SYSV_PRAGMA): Likewise. + * config/linux-aout.h (HANDLE_SYSV_PRAGMA): Likewise. + * config/lynx-ng.h (HANDLE_SYSV_PRAGMA): Likewise. + * config/lynx.h (HANDLE_SYSV_PRAGMA): Likewise. + * config/netbsd.h (HANDLE_SYSV_PRAGMA): Likewise. + * config/openbsd.h (HANDLE_SYSV_PRAGMA: Likewise. + * config/alpha/elf.h (HANDLE_SYSV_PRAGMA): Likewise. + * config/arm/netbsd.h (HANDLE_SYSV_PRAGMA): Likewise. + * config/cris/aout.h (HANDLE_SYSV_PRAGMA): Likewise. + * config/d30v/d30v.h (HANDLE_SYSV_PRAGMA): Likewise. + * config/frv/frv.h (HANDLE_SYSV_PRAGMA): Likewise. + * config/i386/djgpp.h (HANDLE_SYSV_PRAGMA): Likewise. + * config/i386/i386-interix.h (HANDLE_SYSV_PRAGMA): Likewise. + * config/i386/vxi386.h (HANDLE_SYSV_PRAGMA): Likewise. + * config/ia64/ia64.h (HANDLE_SYSV_PRAGMA): Likewise. + * config/m88k/m88k.h (HANDLE_SYSV_PRAGMA): Likewise. + * config/mmix/mmix.h (HANDLE_SYSV_PRAGMA): Likewise. + * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Likewise. + * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Likewise. + * config/sparc/linux-aout.h (HANDLE_SYSV_PRAGMA): Likewise. + * config/sparc/vxsparc64.h (HANDLE_SYSV_PRAGMA): Likewise. + * config/stormy16/stormy16.h (HANDLE_SYSV_PRAGMA): Likewise. + * config/alpha/osf.h (HANDLE_SYSV_PRAGMA): Don't undef before + defining. + * config/i386/sco5.h (HANDLE_SYSV_PRAGMA): Likewise. + * config/mips/iris5.h (HANDLE_SYSV_PRAGMA): Likewise. + +2002-11-25 Dave Pitts + + * gcc/fixinc/mkfixinc.sh: add i370-*-openedition to bypass fixinc list + +2002-11-25 Kazu Hirata + + * config/h8300/h8300.md (an anonymous pattern): New. + +2002-11-25 Richard Henderson + + * alias.c (find_base_value): Use new_reg_base_value if it's live. + (copying_arguments): Make boolean. + +2002-11-25 Jason Thorpe + + * gcc.c (static_spec_functions): Add if-exists-else spec + function. + (if_exists_else_spec_function): New function. + * doc/invoke.texi: Document the if-exists-else spec function. + + * config/netbsd-elf.h (NETBSD_STARTFILE_SPEC): For -static, use + "%:if-exists-else(crtbeginT%O%s crtbegin%O%s)". + +2002-11-25 Jason Thorpe + + * config.gcc (powerpc-*-netbsd*): Replace "svr4.h" with + "netbsd.h netbsd-elf.h" in tm_file. Set tmake_file to + "${tmake_file} rs6000/t-netbsd". + * config/rs6000/netbsd.h: Rewrite. + * config/rs6000/t-netbsd: New file. + +2002-11-25 Kazu Hirata + + * config/h8300/h8300.md (an anonymous pattern): Relax the + condition for the pattern. + +2002-11-25 Aldy Hernandez + + * config/rs6000/rs6000.h (enum rs6000_builtins): Remove evmwlssf, + evmwlsmf, evmwlssfa, evmwlsmfa, evmwlssfaaw, evmwlsmfaaw, + evmwlssfanw, evmwlsmfanw. + + * config/rs6000/rs6000.c (bdesc_2arg): Same. + + * config/rs6000/spe.md: Same for patterns. + +2002-11-25 Christian Ehrhardt + + PR c/8639 + * fold-const.c (extract_muldiv): Don't propagate division unless + both arguments are multiples of C. + +2002-11-25 Andrew Haley + + * libgcc-std.ver (_Unwind_Find_Enclosing_Function): Add. + * config/ia64/unwind-ia64.c (_Unwind_Find_Enclosing_Function): New. + * unwind-sjlj.c (_Unwind_Find_Enclosing_Function): Likewise. + * unwind-dw2.c (_Unwind_Find_Enclosing_Function): Likewise. + +Sun Nov 24 10:38:04 CET 2002 Jan Hubicka + + * i386.c (x86_use_ffreep): New global variable. + * i386.h (x86_use_frfeep): Declare + (TARGET_USE_FFREEP): New macro + * i386.md (movs?f*): Use freep when asked for. + (push?f): Remove dead code. + +2002-11-24 Kazu Hirata + + * config/h8300/h8300.c (h8300_init_once): Fix a typo in the + target help message. + +2002-11-24 Jason Thorpe + + * config.gcc (*-*-netbsd*1.[7-9]*, *-*-netbsd*[2-9]*): Set + extra_parts to "crtbegin.o crtend.o crtbeginS.o crtendS.o + crtbeginT.o". + (arm*-*-netbsd*, i[34567]86-*-netbsd*, m68k*-*-netbsd*) + (ns32k-*-netbsd*, sparc-*-netbsd*, vax-*-netbsd*): Set extra_parts + to "" for a.out configurations. + * config/t-netbsd (CRTSTUFF_T_CFLAGS): Set to "-fPIC". + +2002-11-24 Jason Thorpe + + * config/alpha/netbsd.h (CPP_SUBTARGET_SPEC): Just use + NETBSD_CPP_SPEC directly. + (SUBTARGET_EXTRA_SPECS): Remove netbsd_cpp_spec. Add + netbsd_endfile_spec. + (ENDFILE_SPEC): Use %(netbsd_endfile_spec). + +2002-11-24 Jason Thorpe + + * config/netbsd-elf.h (STARTFILE_SPEC): Rename to + NETBSD_STARTFILE_SPEC. + (STARTFILE_SPEC): Redefine in terms of NETBSD_STARTFILE_SPEC. + (ENDFILE_SPEC): Likewise. + * config/netbsd.h (LIB_SPEC, LIBGCC_SPEC): Likewise. + +2002-11-24 Andreas Schwab + + * Makefile.in (install-driver): Remove versioned link before + trying to create it. + + * config/m68k/m68k.c: Fix typo in last change defining + TARGET_ASM_CAN_OUTPUT_MI_THUNK. + +2002-11-23 H.J. Lu + + * aclocal.m4: Include ../config/accross.m4. + (gcc_AC_COMPILE_CHECK_SIZEOF): Removed. + (gcc_AC_C_COMPILE_ENDIAN): Removed. + (gcc_AC_C_FLOAT_FORMAT): Check $ac_cv_c_bigendian + instead of $ac_cv_c_compile_endian. + + * configure.in: Replace gcc_AC_COMPILE_CHECK_SIZEOF with + AC_COMPILE_CHECK_SIZEOF. + Replace gcc_AC_C_COMPILE_ENDIAN with AC_C_BIGENDIAN_CROSS. + * configure: Rebuild. + +2002-11-23 Kazu Hirata + + * config/h8300/h8300.c (print_operand): Update the use of + h8300_tiny_constant_address_p. + (h8300_adjust_insn_length): Likewise. + (h8300_tiny_constant_address_p): Check if the given rtx is a + variable declared with __attribute__ ((tiny_data)). + +2002-11-22 Dale Johannesen + + * toplev.c (rest_of_compilation): Fix comments. + +2002-11-22 Geoffrey Keating + + * aclocal.m4 (ac_cv_func_mmap_dev_zero): Darwin does not + allow mmap from /dev/zero. Don't make decisions for the host + based on presence or absence of /dev/zero on the build machine. + (ac_cv_func_mmap_anon): Darwin does have working MMAP_ANON. + (AC_FUNC_MMAP_FILE): Darwin does have mmap of a file. + * configure: Regenerate. + +2002-11-22 Daniel Jacobowitz + + * gcc.c (make_relative_prefix, split_directories) + (free_split_directories): Removed. + +2002-11-22 Daniel Jacobowitz + + * configure.in: Set insn=nop for DWARF-2 tests on ARM. + * configure: Regenerated. + +2002-11-22 Kazu Hirata + + * config/h8300/h8300.c (compute_a_shift_length): Fix the insn + length computation when xor.l is output. + +2002-11-21 Douglas B Rupp + + * alpha.md (movstrdi, clrstrdi): New VMS patterns. + (call_vms_1, call_value_vms_1): Cleanup syntax. + +Thu Nov 21 19:20:27 CET 2002 Jan Hubicka + + * athlon.md (define_atuomaton): Add athlon_load. + (athlon-double): New reservation. + (athlon-ieu0): New CPU unit. + (athlon-load?): Use athlon_load automaton. + (*_k8 reservations): New. + (other insn revervations): Activate for K8. + +Thu Nov 21 15:07:42 CET 2002 Jan Hubicka + + * cfgrtl.c (verify_flow_info): Accept EDGE_CAN_FALLTHRU flag. + +2002-11-21 Jim Wilson + + * config/rs6000/rs6000.c (function_arg): Set inner mode of SPE + vectors to SI. + +2002-11-21 Bob Wilson + + * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Declare. + * config/xtensa/xtensa.c (struct machine_function): Add + incoming_a7_copied flag. + (xtensa_copy_incoming_a7): Define. + (xtensa_emit_move_sequence): Use xtensa_copy_incoming_a7. + * config/xtensa/xtensa.md (movdi, movsf, movdf): Ditto. + +Thu Nov 21 23:52:04 CET 2002 Jan Hubicka + + * i386-protos.h (x86_64_sign_extended_value): Fix prototype. + * i386.c (x86_64_general_operand, x86_64_szext_general_operand, + x86_64_nonmemory_operand, x86_64_movabs_operand, + x86_64_szext_nonmemory_operand, x86_64_immediate_operand, + ix86_expand_int_movcc): Update call of x86_64_sign_extended_value. + (local_symbolic_operand): Do not care the 64bit limits. + (x86_64_sign_extended_value): Remove allow_rip support. + (legitimate_pic_address_disp_p): Handle all cases allowed + with RIP addressing. + (legitimate_address_p): Use legitimate_pic_address_disp_p for PIC. + (legitimize_pic_address): Reorganize. + * i386.h (EXTRA_CONSTRAINT): Update call of x86_64_sign_extended_value. + +2002-11-21 Jason Thorpe + + * config.gcc (arm*-*-netbsdelf*): Enable configuration. + * config/arm/netbsd-elf.h: New file. + +2002-11-21 Jason Thorpe + + * config/arm/elf.h (SUBTARGET_EXTRA_SPECS): Add + subtarget_asm_float_spec. + (SUBTARGET_ASM_FLOAT_SPEC): Define, moving the + defaults from... + (ASM_SPEC): ...here. Use subtarget_asm_float_spec. + +2002-11-21 Nick Clifton + + * config/fr30/fr30.md (movsf_constant_store): Move code to + detect 0.0 into fr30.c. + * config/fr30/fr30-protos.h (fr30_const_double_is_zero): + Prototype. + * config/fr30/fr30.c (fr30_const_double_is_zero): New + function. Return true if the rtx is 0.0. + +2002-11-21 Jason Thorpe + + * config/arm/elf.h (ASM_SPEC, LINK_SPEC): Pass -EL + if -mlittle-endian is specified. + +2002-11-21 Richard Earnshaw + + PR optimization/2903 + * arm.md (anddi_notzesidi_di): Operand 2 is inverted not operand 1. + (anddi_notsesidi_di): Likewise. + +2002-11-21 Kazu Hirata + + * config/h8300/h8300.c (print_operand): Use + h8300_eightbit_constant_address_p and + h8300_tiny_constant_address_p. + (h8300_adjust_insn_length): Likewise. + * config/h8300/h8300.h (EIGHTBIT_CONSTANT_ADDRESS_P): Remove. + (TINY_CONSTANT_ADDRESS_P): Likewise. + (OK_FOR_U): Use eightbit_constant_address_p. + +2002-11-21 Ulrich Weigand + + * config/s390/libgcc-libc.ver: Add multilib support. + * config/s390/linux.h (MULTILIB_DEFAULT): Define. + * config/s390/t-linux64 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, + MULTILIB_OSDIRNAMES, LIBGCC, INSTALL_LIBGCC, + EXTRA_MULTILIB_PARTS): Define. + +2002-11-21 Richard Earnshaw + + * arm.c (arm_get_frame_size): A leaf function does not need its + stack padding to an aligned boundary if it has no frame. + (thumb_get_frame_size): Likewise. + +Wed Nov 20 22:25:53 CET 2002 Jan Hubicka + + * x86-64.h (MCOUNT_NAME): Fix typo in my previous patch. + (override_options): Likewise. + +Wed Nov 20 19:07:17 CET 2002 Jan Hubicka + + * config.gcc: Add k8 target alias support + * i386.c (_cost): Declare costs for various variants of divides and + multiplies. + (k8_cost): New. + (m_K8, m_ATHLON_K8): New macros. + (x86_use_leave, x86_push_memory, x86_movx, x86_unroll_strlen, + x86_cmove, x86_3dnow_a, x86_deep_branch, x86_use_fiop, + x86_promote_QImode, x86_sub_esp_?, x86_add_esp_?, + x86_integer_DFmode_moves, x86_partial_reg_dependency, + x86_memory_mismatch_stall, x86_accumulate_outgoing_args, + x86_prologue_using_move, x86_epilogue_using_move, + x86_arch_always_fancy_math_387, x86_sse_partial_regs, + x86_sse_typeless_stores): Set for K8 + (override_options): Add k8 support; fix athlon alignment; + complain about non-x86-64 capable CPU being used in x86-64 compilation. + (ix86_issue_rate): Set for K8. + (ix86_adjust_cost, ia32_use_dfa_pipeline_interface, + x86_machine_dependent_reorg): Handle K8 like + * i386.h + (x86_costs): Change mult_init and divide into array. + (TARGET_K8, TARGET_ATHLON): New macros. + (MODE_INDEX): New macro. + (RTX_COST): Use new costs. + (TARGET_CPU_CPP_BUILTINS): Define __k8__ and __tune_k8__. + (TARGET_CPU_DEFAULT_NAMES): Add k8 + (TARGET_CPU_DEFAULT_k8): New constant + (enum processor_type): Add PROCESSOR_K8. + * i386.md (cpu attribute): Add k8. + + * invoke.texi: Document -march=k8. + + * i386.md (type attribute): Add leave + (mode attribute): Remove unknownfp. + (length_immediate, modrm, memory attributes): Handle leave correctly. + (fp comparison patterns): Determine FP mode. + (leave, leave_rex64): Remove special cases. + * ppro.md (ppro_uops, ppro_p2): Add leave + * pentiun.md (pent_pop): Handle leave too. + * k6.md (k6_load): Handle leave. + * athlon.md (athlon_leave, athlon_pop): Fix. + (athlon_decode): Handle leave. + +2002-11-20 Steve Ellcey + + * emit-rtl.c (gen_reg_rtx): Simplify mapping of Complex type + to component type using GET_MODE_INNER. + * expr.c (emit_move_insn_1): Ditto. + * optabs.c (expand_binop): Ditto. + (expand_unop): Ditto. + (expand_complex_abs): Ditto. + +2002-11-20 Douglas B Rupp + + * hwint.h (HAVE___INT64): Fix typo (was HAVE__INT64). + +2002-11-20 DJ Delorie + + * config/stormy16/stormy16.c (s16builtins, + xstormy16_init_builtins, xstormy16_expand_builtin): New. + * config/stormy16/stormy16.md (divmodhi4, sdivlh, udivlh): New. + +2002-11-20 Hans-Peter Nilsson + + * Makefile.in (RUN_GEN, VALGRIND_DRIVER_DEFINES): New variables. + (DRIVER_DEFINES): Add $(VALGRIND_DRIVER_DEFINES). + (executing gencheck, genconfigs, genconditions, genflags, + gencodes, genconstants, genemit, genrecog, genopinit, genextract, + genpeep, genattr, genattrtab, genoutput, gengenrtl, genpreds, + gengtype, genprotos): Prepend $(RUN_GEN). + * configure.in: Move host compiler tests before --enable-checking + tests. + (--enable-checking=valgrind): New. + * config.in, configure: Regenerate. + * cppfiles.c [!ENABLE_VALGRIND_CHECKING] (VALGRIND_DISCARD): + Define as empty. + (read_include_file): When doing the mmap+1 trick, + valgrind-annotate the byte after the mmap:ed area as readable. + (purge_cache): Remove above annotation. + * gcc.c (execute) [ENABLE_VALGRIND_CHECKING]: Arrange to prepend + VALGRIND_PATH -q to each command. + + * ggc-common.c [!ENABLE_VALGRIND_CHECKING] (VALGRIND_DISCARD): + Define as empty. + (ggc_realloc): Update valgrind annotations. + * ggc-page.c [!ENABLE_VALGRIND_CHECKING] (VALGRIND_DISCARD): + Define as empty. + (alloc_anon, free_page, ggc_alloc, poison_pages): Add machinery to + valgrind-annotate memory. + +2002-11-20 Ulrich Weigand + + * recog.c (constrain_operands): Prefer exact match over reloadable + EXTRA_MEMORY_CONSTRAINT or EXTRA_ADDRESS_CONSTRAINT. + + * reload.c (find_reloads): Always reload EXTRA_ADDRESS_CONSTRAINT + operands in Pmode. + +2002-11-20 Eric Botcazou + + PR c/8518 + * c-decl.c (duplicate_decls): Outline the second definition + of an extern inline function in all cases. + +2002-11-20 Richard Sandiford + + * stor-layout.c (place_field): Update rli->offset as well as + rli->bitpos. + +2002-11-20 Richard Sandiford + + * sched-deps.c (sched_analyze): Check HARD_REGNO_CALL_PART_CLOBBERED. + +2002-11-20 Richard Sandiford + + * config/sh/sh.md (udivsi3): Don't put udivsi3_i4_media instructions + into a libcall block. + (divsi3): Likewise divsi3_i4_media. + +2002-11-20 Richard Sandiford + + * global.c (find_reg): Check HARD_REGNO_NREGS before kicking + out another register. + +2002-11-20 Jakub Jelinek + + * combine.c (force_to_mode): Only replace with (not Y) if all bits in fuller_mask + (not just mask) are set in C. + +2002-11-19 Steven Bosscher + + * config/mips/vr.h (DRIVER_SELF_SPECS): Change %{ + + * profile.c (index_counts_file): Fix obvious mistake. + +2002-11-19 Zdenek Dvorak + + * Makefile.in (profile.o): Add hashtab.h dependency. + * gcov-io.h (GCOV_SUMMARY_LENGTH): New. + * profile.c: Include hashtab.h. + (htab_counts_index_hash, htab_counts_index_eq, htab_counts_index_del, + cleanup_counts_index, index_counts_file, struct section_reference, + struct da_index_entry, counts_file_name, counts_file_index): New. + (get_exec_counts, init_branch_prob): Modified. + +2002-11-19 Kaz Kojima + + * config.gcc (sh*-*-linux*): Add t-slibgcc-elf-ver and t-linux + to tmake_file. Remove setting gas and gnu_ld here. + * config/sh/libgcc-glibc.ver: New file. + * config/sh/t-linux (EXTRA_MULTILIB_PARTS): Add crtbeginT.o. + (SHLIB_MAPFILES): New. + * config/sh/linux.h (MD_EXEC_PREFIX): Undefine. + (MD_STARTFILE_PREFIX): Likewise. + (HANDLE_PRAGMA_PACK_PACK_PUSH_POP): Define. + (DWARF2_UNWIND_INFO): Redefine. + (ASM_PREFERRED_EH_DATA_FORMAT): Define. + (LINK_EH_SPEC): Redefine. + (MD_FALLBACK_FRAME_STATE_FOR): Define except for SH-media. + (SH_FALLBACK_FRAME_FLOAT_STATE): Define. + (SH_DWARF_FRAME_GP0, SH_DWARF_FRAME_FP0, SH_DWARF_FRAME_XD0, + SH_DWARF_FRAME_BT0, SH_DWARF_FRAME_PR, SH_DWARF_FRAME_PR_MEDIA, + SH_DWARF_FRAME_GBR, SH_DWARF_FRAME_MACH, SH_DWARF_FRAME_MACL, + SH_DWARF_FRAME_PC, SH_DWARF_FRAME_SR, SH_DWARF_FRAME_FPUL, + SH_DWARF_FRAME_FPSCR): Likewise. + * config/sh/sh-protos.h (sh_set_return_address): Declare. + * config/sh/sh.c (calc_live_regs): Count EH_RETURN_DATA_REGNO + registers if the current function calls EH return. + (sh_expand_epilogue): Handle EH stack adjustments. + (sh_set_return_address): New function. + * config/sh/sh.h (SH_DBX_REGISTER_NUMBER): Handle PR_MEDIA_REG. + Don't abort even if the number is mapped to -1. + (EH_RETURN_DATA_REGNO): Define. + (EH_RETURN_STACKADJ_RTX): Define. + * config/sh/sh.md (UNSPEC_EH_RETURN): New. + (eh_return): New pattern. + (eh_set_ra_di, eh_set_ra_si): Likewise. + Add splitter to perform EH return after reload. + +Tue Nov 19 12:52:07 2002 J"orn Rennecke + + * stor-layout.c (excess_unit_span): New function. + (place_field): Use it. + +2002-11-19 Andreas Schwab + + * unwind.h (_Unwind_GetTextRelBase): Revert last change, this is + not valid in C++. + +2002-11-19 Nathanael Nerode + + * configure.in, Makefile.in: Correct BUILD/HOST confusion. + * configure: Regenerate. + +Tue Nov 19 00:11:44 CET 2002 Jan Hubicka + + * convert.c (strip_float_extensions): New function. + (convert_to_real): Optimize some cases. + +2002-11-19 Andreas Jaeger + + * loop.c (record_giv): Initialize not_replaceable. + (check_final_value): Likewise. + +2002-11-19 Kazu Hirata + + * config/h8300/h8300.c (h8300_init_once): Replace 1 with + MASK_H8300S. + +2002-11-19 Vijay L. Khuspe + + * config/h8300/h8300.c (h8300_init_once): Allow -mn switch + only if -mh or -ms present. + (h8300_eightbit_constant_address_p): Support the normal mode. + (h8300_tiny_constant_address_p): Likewise. + * config/h8300/h8300.h (TARGET_NORMAL_MODE): New. + (POINTER_SIZE): Add 16 bit pointer for the normal mode. + (Pmode): Evaluate to HImode for the normal mode. + (SIZE_TYPE): Evaluate to unsigned int for normal mode. + (PTRDIFF_TYPE): Evaluate to int for the normal mode. + (ASM_WORD_OP): Evaluate to word for the normal mode. + * config/h8300/h8300.md (tablejump_normal_mode): New. + (indirect_jump_normal_mode): New. + * config/h8300/t-h8300 (MULTILIB_OPTIONS): Pass -mn option to + directory. + (MULTILIB_DIRNAMES): Create target dependent directory + 'normal'. + (MULTILIB_EXCEPTIONS): Don't turn on -mn on H8/300. + * doc/invoke.texi (gccoptlist): Describe the new switch -mn. + +Tue Nov 19 23:50:56 CET 2002 Jan Hubicka + + * i386.md (length_immediate): Do not refer to insn address. + (jcc*, jmp patterns): Compute length explicitly. + +2002-11-19 Eric Botcazou + + PR c/8588 + * optabs.c (expand_binop): Convert CONST_INTs in shift + operations too. + +2002-11-19 Roger Sayle + + * gcse.c (gcse_emit_move_after): Correct typo in REG_EQUAL note. + +2002-11-19 Kazu Hirata + + * config/h8300/h8300.md (an anonymous pattern): Relax the + condition to accept the same operands and/or subregs. + +2002-11-19 Daniel Jacobowitz + + * config/sh/sh.c (gen_shl_and): Revert previous patch. + * config/sh/sh.md (ashrdi3+1, ashrdi3+2): Predicate on + reload_completed. + +2002-11-19 Kazu Hirata + + * config/h8300/h8300.c (print_operand): Update the use of + EIGHTBIT_CONSTANT_ADDRESS_P. + (h8300_adjust_insn_length): Likewise. + (h8300_eightbit_constant_address_p): Check if the given rtx is + a variable with __attribute__((eightbit_data)). + * config/h8300/h8300.h (OK_FOR_U): Update the use of + EIGHTBIT_CONSTANT_ADDRESS_P. + +2002-11-19 Gerald Pfeifer + + * doc/contrib.texi (Contributors): Add self as second contact in + addition to Jeff Law. + +2002-11-19 Andreas Jaeger + + * tree-inline.c: Move prototpyes of find_alloca_call_1 and + find_alloca_call to right place. + +2002-11-19 Kazu Hirata + + * cppfiles.c: Fix formatting. + +2002-11-19 Jason Thorpe + + * gcc.c (The Specs Language): Document spec functions. + (static_spec_functions, lookup_spec_function) + (eval_spec_function, handle_spec_function) + (if_exists_spec_function, alloc_args): New. + (execute): Abort if processing_spec_function is true. + (do_spec_1): Hand off spec to handle_spec_function if %: + is encountered. If processing_spec_function is true, + end any pending argument when the end of the string is reached. + (main): Use alloc_args to allocate the initial argument vector. + * gcc.h (struct spec_function): New. + (lang_specific_spec_functions): New extern. + + * config/netbsd-elf.h (STARTFILE_SPEC): Add if-exists(crti%O%s). + (ENDFILE_SPEC): Add if-exists(crtn%O%s). + * config/alpha/netbsd.h (ENDFILE_SPEC): Likewise. + + * doc/invoke.texi: Document spec functions. + + * cppspec.c (lang_specific_spec_functions): New. + * gccspec.c: Likewise. + +2002-11-18 Steve Ellcey + + * config/ia64/hpux_longdouble.h (FIXUNS_TRUNCTFSI2_LIBCALL): New. + (FIXUNS_TRUNCTFDI2_LIBCALL): New. + (fixunstfsi_libfunc): Change. + (fixunstfdi_libfunc): Change. + (sdiv_optab): Don't zero out SImode handler. + (udiv_optab): Don't zero out SImode handler. + (smod_optab): Don't zero out SImode handler. + (umod_optab): Don't zero out SImode handler. + +2002-11-18 Neil Booth + + PR preprocessor/8524 + * cpplib.c (run_directive): Remove previous kludge to _Pragma. + Add a new one in its place, which hopefully works. + (skip_rest_of_line): Change test for bottom-of-context-stack. + +Mon Nov 18 21:29:03 CET 2002 Jan Hubicka + + * i386.md (addqi_1_slp): Fix output template. + (subqi_1_slp): Fix type. + +Sun Nov 17 00:01:28 CET 2002 Jan Hubicka + + * calls.c (alloca_call_p): New global function. + * tree.h (alloca_call_p): New. + * tree-inline.c (inlinable_function_p): Do not inline when + function calls alloca. + (find_alloca_call, find_alloca_call_1): New functions. + +2002-11-18 Kazu Hirata + + * config/h8300/h8300.md (*andorqi3): Use bor between bld and + bst. Update the insn length. + (*andorhi3): Likewise. + (*andorsi3): Likewise. + +2002-11-18 Richard Sandiford + + * config/sh/sh-protos.h (sh_mark_label): Declare. + * config/sh/sh.c (sh_mark_label): New function, taken from + movdi_const, but fixing the case when the address has an addend. + * config/sh/sh.md (movdi_const, movdi_const_32bit): Use it. + +2002-11-18 Richard Sandiford + + * config/sh/sh.c (pool_node): New field: part_of_sequence_p. + (add_constant): Set it. + (dump_table): Don't reorder a constant if part_of_sequence_p. + (machine_dependent_reorg): Assume that float constants will + stay in their original order if used as a sequence. + +2002-11-18 Richard Sandiford + + * config/sh/sh.c (calc_live_regs): Update check for PIC liveness + in compact code. + +2002-11-18 Richard Sandiford + + * config/sh/sh.md (initialize_trampoline): Do not force the + trampoline address into R0_REGS here. + +Sun Nov 17 14:01:09 CET 2002 Jan Hubicka + + * i386.md (negsf2_ifs, negdf2_ifs, negdf2_ifs_rex64, abssf2_ifs, + absdf2_ifs, absdf2_ifs_rex64): Fix constraints. + (neg?f2_ifs, abs?f2_ifs splitters): Refuse memory operand; do not + generate unnecesary subregs. + +2002-11-17 Kazu Hirata + + * df.c: Fix formatting. + +2002-11-17 Kazu Hirata + + * config/h8300/h8300.md (two anonymous patterns): Fix insn + lengths. + +2002-11-17 Daniel Jacobowitz + + * sh.c (gen_shl_and): Don't create a zero_extend if the operand + is not an arith_reg_operand. + +2002-11-17 Graham Stott + + * real.c (real_to_decimal): Fix buffer overrun when buffer size + is smaller than representation. + +2002-11-17 Kazu Hirata + + * builtins.c: Fix formatting. + +Sat Nov 16 16:49:58 CET 2002 Jan Hubicka + + * i386.md (truncdfsf2_1_sse, truncdfsf2_1_sse_nooverlap, truncdfsf2_2, + floats?dff2_i387): + Work around regclass stupidity. + (truncdfsf_2_1_sse splitter): Accept !TARGET_PARTIAL_SSE_REGS + +Sat Nov 16 02:17:48 CET 2002 Jan Hubicka + + * i386.md (fop_df_6): New pattern. + (fop_xf_4, fop_xf_5): Handle both SF and DFmode extensions. + (fop_xf_6): Rewrite + (fop_xf_7): Delete. + (fop_tf_4, fop_tf_5): Handle both SF and DFmode extensions. + (fop_tf_6): Rewrite + (fop_tf_7): Delete. + +2002-11-16 Kazu Hirata + + * config/h8300/h8300.md (two anonymous patterns): Fix typos. + +2002-11-16 Kazu Hirata + + * config/h8300/h8300.md: Fix formatting. + +2002-11-16 Kazu Hirata + + * config/h8300/h8300.md: Replace spaces with tabs. + * config/h8300/t-h8300: Remove a trailing empty line. + +2002-11-16 Kazu Hirata + + * tlink.c: Fix formatting. + +2002-11-16 David Edelsohn + + PR 8362 + * config/rs6000/rs6000.c (rs6000_outout_load_multiple): New function. + * config/rs6000/rs6000.md (movti_string): Remove output modifier + when scratch register never needed. + (ldmsi[3-8]): New patterns. + +2002-11-16 Kazu Hirata + + * hard-reg-set.h: Follow spelling conventions. + * real.c: Likewise. + * target.h: Likewise. + +2002-11-16 Jakub Jelinek + + * config/i386/x86-64.h (MCOUNT_NAME): Change into string literal. + +2002-11-16 Kazu Hirata + + * optabs.c: Fix formatting. + +Sat Nov 16 02:06:02 CET 2002 Jan Hubicka + + * athlon.md, k6.md, pentium.md, ppro.md: Handle shift1, rotate1 + * i386.md (attribute type): Add type shift1 and rotate1. + (*_slp): Rewrite to have just two operands to avoid reload problems. + +2002-11-15 Kazu Hirata + + * config/h8300/h8300.md (4 anonymous patterns): New. + +2002-11-15 Geoffrey Keating + + * params.def (GGC_MIN_HEAPSIZE): Fix GGC_ALWAYS_COLLECT problem. + * doc/invoke.texi: Correct description of what needs to be done to + force collection at every ggc_collect call. + +2002-11-15 Ulrich Weigand + + * config/s390/s390.c (optimization_options): Set + flag_asynchronous_unwind_tables to 1 by default. + +2002-11-15 Ulrich Weigand + + * config/s390/s390.h (ASM_PREFERRED_EH_DATA_FORMAT): Define. + +Fri Nov 15 14:54:19 CET 2002 Jan Hubicka + + * i386-protos.h (x86_function_profiler): New function + * i386.h (MCOUNT_NAME): New. + (PROFILE_COUNT_REGISTER): New. + (FUNCTION_PROFILER): Move offline to ... + * i386.c (x86_function_profiler) ... here; fix 64bit support + * beos-elf.h (FUNCTION_PROFILER): Kill. + (MCOUNT_NAME): New. + * freebsd-aout.h (FUNCTION_PROFILER): Kill. + (MCOUNT_NAME): New. + (PROFILE_COUNT_REGISTER): New. + * linux.h (FUNCTION_PROFILER): Kill. + (MCOUNT_NAME): New. + * x86-64.h (FUNCTION_PROFILER): Kill. + (MCOUNT_NAME): New. + * freebsd.h (FUNCTION_PROFILER): Kill. + (MCOUNT_NAME): New. + +2002-11-14 Jeroen Dobbelaere + + * config/arm/arm.h (EXPAND_BUILTIN_VA_ARG, + FUNCTION_ARG_PASS_BY_REFERENCE): Define. + * config/arm/arm.c (arm_va_arg, + arm_function_arg_pass_by_reference): New. + * config/arm/arm-protos.h: Add prototypes. + +2002-11-14 Kazu Hirata + + * gthr-single.h: Fix formatting. + +2002-11-14 Zack Weinberg + + * tree.c (tree_vec_elt_check_failed): New function. + * tree.h (TREE_VEC_ELT_CHECK): New checking macro. + (TREE_VEC_ELT): Use it. + + * tree-inline.c (optimize_inline_calls): Don't copy a + zero-length vector. + +2002-11-14 Gabriel Dos Reis + + * diagnostic.c (sorry): Don't repeat "sorry, unimplemented" text. + +2002-11-14 Jakub Jelinek + + * varasm.c (output_addressed_constants) [MINUS_EXPR]: Clear reloc if + both operands contain local relocations. + (categorize_decl_for_section): Don't use mergeable sections if + initializer has any relocations. + +2002-11-14 Kazu Hirata + + * gthr-vxworks.h: Fix formatting. + +2002-11-13 Janis Johnson + + * doc/install.texi (Testing): Document extra Java testing. + * doc/sourcebuild.texi (Test Suites): Document libgcj testing. + +2002-11-13 John David Anglin + + * pa64-hpux.h (LINK_SPEC): Move "+Accept TypeMismatch" switch to the + beginning of the spec. + (LDD_SUFFIX, PARSE_LDD_OUTPUT): Delete. + (LD_INIT_SWITCH, LD_FINI_SWITCH): Define but don't enable. Add comment + regarding problems with global constructors when using GNU ld. + +2002-11-13 Kazu Hirata + + * gthr-solaris.h: Fix formatting. + +2002-11-13 Kazu Hirata + + * gthr-posix.h: Fix formatting. + +2002-11-12 Devang Patel + * gcc.c (display_help): Two new options -Xpreprocessor and -Xassembler. + (process_command): Same. + * doc/invoke.texi: Info about these two new options. + +2002-11-12 Kazu Hirata + + * config/h8300/h8300.md (*andorsi3): New. + +2002-11-12 Franz Sirl + + * doc/install.texi (powerpc-*-linux-gnu*): Update binutils requirement. + +2002-11-12 Kazu Hirata + + * config/h8300/h8300.c (tiny_constant_address_p): Parenthesize + expressions appropriately. + +2002-11-12 Kazu Hirata + + * gthr-win32.h: Fix formatting. + +2002-11-12 Kazu Hirata + + * config/h8300/h8300.c (single_one_operand): Correctly compute + mask when mode is SImode. + (single_zero_operand): Likewise. + * config/h8300/h8300.md (two new anonymous insns): New. + +2002-11-12 Gerald Pfeifer + + * doc/contrib.texi (Contributors): Use GCJ instead of gcj to refer + to that entire project. + +2002-11-12 Rainer Orth + + * config/mips/t-iris6 (MULTILIB_OSDIRNAMES): Restore old + directories. + +2002-11-11 Zack Weinberg + + * params.def (ggc-min-expand, ggc-min-heapsize): New parameters. + * doc/invoke.texi: Document them. + + * ggc-page.c: Include params.h. Remove definitions of + GGC_MIN_EXPAND_FOR_GC, GGC_MIN_LAST_ALLOCATED. Replace + GGC_POISON with ENABLE_GC_CHECKING in ifdefs, delete #define. + (init_gcc): Don't set G.allocated_last_gc here. + (ggc_collect): Use PARAM_VALUE (GGC_MIN_HEAPSIZE) and + PARAM_VALUE (GGC_MIN_EXPAND) to decide whether or not to + perform collection. + * ggc-simple.c: Similarly. + * Makefile.in (ggc-common.o, ggc-simple.o): Add $(PARAMS_H) to + dependencies. + +2002-11-11 Kazu Hirata + + * gthr-dce.h: Fix formatting. + +2002-11-11 Franz Sirl + + PR c/8467 + * stmt.c (tail_recursion_args): Handle DECL_MODE differing from the + mode of DECL_RTL case. + +2002-11-11 Janis Johnson + + * doc/contrib.texi: Merge in the list from the libstdc++ web pages. + +Mon Nov 11 12:06:08 CET 2002 Jan Hubicka + + * i386.c (construct_container): Fix handling of SSE_CLASS. + +2002-11-10 Joel Sherrill + + * config/m68k/t-crtstuff (crti.o): Use this... + ($(T)crti.o): ... instead. + (crtn.o): Use this... + ($(T)crtn.o): ... instead. + +2002-11-10 Eric Botcazou + + PR c/8439 + * recog.c (validate_replace_rtx_1) [PLUS]: Simplify only + if there is something new to be simplified. + +2002-11-10 H.J. Lu + + * calls.c (PUSH_ARGS_REVERSED): Define only if not defined. + * expr.c (PUSH_ARGS_REVERSED): Likewise. + + * config/i386/i386.h (PUSH_ARGS_REVERSED): Set to 1. + +2002-11-10 Zack Weinberg + + * config/rs6000/sysv4.h: Define NO_IMPLICIT_EXTERN_C here... + * config/rs6000/linux.h, config/rs6000/linux64.h, + config/rs6000/windiss.h: ... not here. + +2002-11-10 Jason Thorpe + + * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define + __ABICALLS__ if TARGET_ABICALLS. + +Sun Nov 10 18:49:21 CET 2002 Jan Hubicka + + * i386.h (MIN_UNITS_PER_WORD): Define to 8 for x86-64 libgcc. + +2002-11-10 Joseph S. Myers + + * c-decl.c (grokdeclarator): Make error for duplicate type + qualifiers into a pedwarn, disabled for C99. + +2002-11-10 Hans-Peter Nilsson + + * config/mmix/mmix.h (FUNCTION_ARG_CALLEE_COPIES): Define the same + as FUNCTION_ARG_PASS_BY_REFERENCE. + +2002-11-09 Zack Weinberg + + * doc/install.texi: Add *-*-vxworks* specific installation + instructions. + + * config/vxlib.c: Rewrite using generation numbers to identify + valid TSD keys. + +Sat Nov 9 00:10:54 CET 2002 Jan Hubicka + + * i386.c (x86_machine_dependent_reorg): Fix even more side cases. + +2002-11-09 John David Anglin + + * pa.h (STARTING_FRAME_OFFSET): Change offset for TARGET_64BIT to 16. + + * config.gcc (hppa*64*-*-linux*): Shorten lines in tm_file define. + (hppa*64*-*-hpux11*): Likewise. Use elfos.h with gas. + * pa.c (output_millicode_call): Use symbol difference rather than + $PIC_pcrel$0 when using HP assembler. + * pa64-hpux.h (TARGET_GAS): Define to 1 or 0 depending on whether or + not elfos.h (i.e., gas) is being used. + (ASM_FILE_START, STRING_ASM_OP, TEXT_SECTION_ASM_OP, + DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_COMMON, + ASM_OUTPUT_ALIGNED_LOCAL, GLOBAL_ASM_OP, ASM_DECLARE_FUNCTION_NAME, + ASM_OUTPUT_EXTERNAL, ASM_OUTPUT_EXTERNAL_LIBCALL, + ASM_OUTPUT_INTERNAL_LABEL, ASM_GENERATE_INTERNAL_LABEL): Define when + using elfos.h. + (TARGET_ASM_GLOBALIZE_LABEL): Undefine when using elfos.h. + (DWARF2_ASM_LINE_DEBUG_INFO): Delete. + (ASM_FILE_START): Add standard .SPACE and .SUBSPA defines when not + using elfos.h. + (TEXT_SECTION_ASM_OP, READONLY_DATA_SECTION_ASM_OP, DATA_SECTION_ASM_OP, + BSS_SECTION_ASM_OP): New HP style defines when not using elfos.h. + (TARGET_ASM_NAMED_SECTION, MAKE_DECL_ONE_ONLY, ASM_WEAKEN_LABEL): + Don't define when not using elfos.h. + (ASM_DECLARE_RESULT): Don't define. + * doc/install.texi (hppa*-hp-hpux*): Remove statement that HP assembler + doesn't work on hppa64-hp-hpux11. + (hppa*-hp-hpux11): Update. + +2002-11-09 Jason Thorpe + + * config/mips/netbsd.h (SUBTARGET_ASM_SPEC): Don't pass -KPIC + to the assembler if -mno-abicalls was specified. + +2002-11-09 John David Anglin + + * pa-linux.h (PREFERRED_DEBUGGING_TYPE, DWARF2_ASM_LINE_DEBUG_INFO, + ASM_OUTPUT_DEF): Delete. + +2002-11-09 Neil Booth + + * c-opts.c (COMMAND_LINE_OPTIONS): Fix -Wimplicit. + +2002-11-08 Roger Sayle + + * real.c (real_sqrt): Update comment with bibliographic reference. + +Fri Nov 8 13:33:58 CET 2002 Jan Hubicka + + * i386.md (sse_loadss, sse2_loadsd): Fix expander. + +Fri Nov 8 13:25:41 CET 2002 Jan Hubicka + + * i386.c (x86_machine_dependent_reorg): Fix handling of empty functions. + +Fri Nov 8 13:01:42 CET 2002 Jan Hubicka + + * builtins.c (expand_builtin_mathfn): Handle floor/ceil/trunc/round/nearbyint + (expand_builtin): Likewise. + * builtins.def: Add + __builtin_floor, __builtin_floorf, __builtin_floorl + __builtin_ceil, __builtin_ceilf, __builtin_ceill + __builtin_round, __builtin_roundf, __builtin_roundl + __builtin_trunc, __builtin_truncf, __builtin_truncl + __builtin_nearbyint, __builtin_nearbyintf, __builtin_nearbyintl. + * genopinit.c (optabs): Initialize the new optabs. + * optab.c (init_optabs): Likewise. + * optabs.h (optab_index): Add OTI_floor, OTI_ceil, OTI_trunc, + OTI_round, OTI_nearbyint. + (floor_optab, ceil_optab, trunc_optab, round_optab, nearbyint_optab): New. + * doc/md.texi: Document new named patterns. + * doc/extend.texi (builtin functions) Document + floor, floorf, floorl, ceil, ceilf, + ceill, round, roundf, roundl, trunc, + truncf, truncl, nearbyint, nearbyintf, nearbyintl. + +Fri Nov 8 11:36:11 CET 2002 Jan Hubicka + + * i386.md (sse_movdfcc, sse_movsfcc): Fix typo in previous patch. + +2002-11-08 Dale Johannesen + + * dbxout.c (dbxout_type): Fix stabs info for vector types. + +2002-11-08 Neil Booth + + PR preprocessor/8497 + PR preprocessor/8501 + * cpptrad.c (scan_out_logical_line): A '#' from a macro doesn't + start a directive. In assembler, #NUM is not a line directive. + +2002-11-08 Neil Booth + + * cppmain.c (cpp_preprocess_file): Loop to pop any -included + buffers. + +2002-11-08 Kazu Hirata + + * config/h8300/h8300.md (two anonymous test insns): New. + +Fri Nov 8 11:20:19 CET 2002 Jan Hubicka + + * jump.c (mark_jump_label): Handle subregs of label_refs. + +Thu Nov 7 21:54:22 CET 2002 Jan Hubicka + + * i386.md (sse_movdfcc, sse_movsfcc): Avoid overactive matching. + * i386.c (ix86_expand_fp_movcc): Match the reversed cases. + +2002-11-07 David Mosberger + + * config/ia64/crtend.asm: Include "auto-host.h". + [HAVE_INITFINI_ARRAY]: Invoke __do_global_ctors_aux via .init_array. + * config/ia64/crtbegin.asm: Similarly. + * config/ia64/t-ia64 (crtbegin.o): Include from current directory. + (crtend.o, crtbeginS.o, crtendS.o): Likewise. + + * aclocal.m4 (gcc_AC_INITFINI_ARRAY): New. + * configure.in: Use it if --enable-initfini-array not specified. + * doc/install.texi (Configuration): Document --enable-initfini-array. + * configure, config.in: Rebuild. + +2002-11-07 Jason Thorpe + + * config/arm/arm-protos.h (arm_get_frame_size) + (thumb_get_frame_size): New prototypes. + * config/arm/arm.c (arm_get_frame_size) + (thumb_get_frame_size): New functions. + (use_return_insn, arm_output_epilogue, arm_output_function_epilogue) + (arm_compute_initial_elimination_offset, arm_expand_prologue): Use + arm_get_frame_size. + (thumb_expand_prologue, thumb_expand_epilogue): Use + thumb_get_frame_size. + * config/arm/arm.h (PREFERRED_STACK_BOUNDARY): Define. + (machine_function): Add frame_size member. + (THUMB_INITIAL_ELIMINATION_OFFSET): Use thumb_get_frame_size. + +2002-11-07 Richard Earnshaw + + * arm.c (bit_count): Make argument unsigned long. Return unsigned. + Adjust code to use portable unsigned bit manipulation. + (insn_flags, tune_flags): Change type to unsigned. + (struct processors): Make flags unsigned long. + (arm_override_options): Change type of count and current_bit_count + to unsigned. + +2002-11-07 Richard Earnshaw + + * arm/elf.h (TYPE_OPERAND_FMT): Prefix type with %. + +Thu Nov 7 15:50:18 2002 J"orn Rennecke + + * sh.h (DWARF_FRAME_RETURN_COLUMN): Use DWARF_FRAME_REGNUM. + +Thu Nov 7 11:18:01 CET 2002 Jan Hubicka + + * reg-stack.c (compensate_edge): Fix sanity check. + +2002-11-05 Geoffrey Keating + + * config.gcc: Don't create crtbegin, crtend on Darwin; do create + crt2.o. Rearrange t-darwin makefiles. + * crtstuff.c [OBJECT_FORMAT_MACHO]: Delete. + * unwind-dw2-fde-darwin.c: New. + * unwind-dw2-fde-glibc.c: Correct comment. + * unwind-dw2-fde.c (__register_frame_info_bases) + [DWARF2_OBJECT_END_PTR_EXTENSION]: Clear fde_end. + (classify_object_over_fdes): Use last_fde. + (add_fdes): Likewise. + (linear_search_fdes): Likewise. + * unwind-dw2-fde.h (struct object) + [DWARF2_OBJECT_END_PTR_EXTENSION]: Add fde_end field. + (last_fde): New. + * config/darwin.h (STARTFILE_SPEC): Include crt2.o not crtbegin.o. + (ENDFILE_SPEC): No crtend.o. + * config/t-darwin: New. + * config/i386/t-darwin: Delete. + * config/darwin-crt2.c: New. + * config/rs6000/t-darwin: Delete contents duplicated in t-rs6000 + or config/t-darwin. + +2002-11-06 Douglas B Rupp + + * config/i386/i386-interix.h (TARGET_SUBTARGET_DEFAULT): Or + MASK_MS_BITFIELD_LAYOUT + (SUBTARGET_OVERRIDE_OPTIONS): Warn about and turn off + MS bitfields for Objective-C. + (PCC_BIT_FIELD_TYPE_TEST, GROUP_BITFIELDS_BY_ALIGN): Remove + defines. + + * config/i386/i386.c (ix86_ms_bitfield_layout): New function. + (TARGET_MS_BITFIELD_LAYOUT_P): Define to above function. + (TARGET_USE_MS_BITFIELD_LAYOUT): Define. + + * config/i386/i386.h (MASK_MS_BITFIELD_LAYOUT: New mask. + TARGET_USE_MS_BITFIELD_LAYOUT): New macro. + (TARGET_SWITCHES): Add above mask. + + * testsuite/gcc.dg/bf-ms-layout.c: New test case. + * testsuite/gcc.dg/bf-no-ms-layout.c: New test case. + * testsuite/gcc.dg/i386-bitfield1.c (dg-options): Add appropriate + flags for interix. + +Wed Nov 6 18:54:47 2002 Alexandre Oliva + + * config/mips/mips.h (ASM_OUTPUT_ADDR_DIFF_ELT): Output + .gpword/.gpdword for ABI_N32 and ABI_64 too, if using the GNU + assembler. + * config/mips/mips.md (tablejump_internal3): Output .cpadd + before jump on ABI_N32 too. + (tablejump_internal4): Ditto on ABI_64. Increase maximum + length to match. + +Wed Nov 6 17:16:48 CET 2002 Jan Hubicka + + * i386.md (negsf splitter): Accept memory operand in second register. + (abssf/absdf splitters): Simplify + (sse_loadss, sse_loadsd): Turn into expander. + +2002-11-06 David Edelsohn + + PR target/8480 + * config/rs6000/rs6000.md (movdi_internal64): Discourage + FPR to FPR moves. + +2002-11-06 Janis Johnson + + * doc/contrib.texi: Merge in the list from the Java web pages. + +2002-11-06 David O'Brien + + * config/sparc/freebsd: Fix typo. + +2002-11-06 John David Anglin + + * pa64-hpux.h (LDD_SUFFIX, PARSE_LDD_OUTPUT): Define. + +2002-11-06 Alexandre Oliva + + * config/mips/mips.md (call_value_multiple_internal2): Use dla for + non-SImode addresses. + +Tue Nov 5 14:34:36 CET 2002 Jan Hubicka + + * i386.md (float_truncate SSE splitter): Ensure that operand is not + stack register. + (float SSE splitters): Reorder conditional. + +2002-11-05 Bob Wilson + + * config/xtensa/elf.h (LIB_SPEC): Add "-lhal". + +2002-11-05 John David Anglin + + * pa64-hpux.h (LIB_SPEC): Fix p and pg options. + (STARTFILE_SPEC): Remove p and pg options. + +2002-11-05 Andrew Haley + + * fold-const.c (fold): Don't transform (a0 op compound(a1,a2)) + to (compound(a1,a0 op a2)) if a0 or a1 have side effects. + +2002-11-05 Richard Sandiford + + * config/mips/mips.h (CANNOT_CHANGE_MODE_CLASS): Move comment to... + * config/mips/mips.c (mips_cannot_change_mode_class): ...here. + +2002-11-04 Zack Weinberg + + * gthr-vxworks.h: Rewritten from scratch. + * config/vxlib.c: New file. + * config/t-vxworks: Add config/vxlib.c to LIB2FUNCS_EXTRA. + * config/rs6000/t-vxworks: Add config/vxlib.c to + LIB2FUNCS_EXTRA here too, because of clash with + config/rs6000/t-ppccomm. + +2002-11-04 Dale Johannesen + + * doloop.c (doloop_modify_runtime): Fix loop count computation + for unrolled loops. + * loop.c (loop_invariant_p): Support calling from unroller. + +2002-11-04 Ulrich Weigand + + * config/s390/s390.c (s390_decompose_address): Use arg_pointer_rtx + for comparison. + +2002-11-04 Aldy Hernandez + + * hard-reg-set.h (REG_CANNOT_CHANGE_MODE_P): New. + + * config/rs6000/rs6000.h (CLASS_CANNOT_CHANGE_MODE_P): Remove. + (CLASS_CANNOT_CHANGE_MODE): Remove. + (CANNOT_CHANGE_MODE_CLASS): New. + + * config/alpha/alpha.h: Same. + + * config/ia64/ia64.h: Same. + + * config/mips/mips.h: Same. + + * config/s390/s390.h: Same. + + * config/sh/sh.h: Same. + + * config/pa/pa64-regs.h: Same. + + * config/sh/sh-protos.h (sh_cannot_change_mode_class): Add prototype. + + * config/sh/sh.c (sh_cannot_change_mode_class): New. + + * config/mips/mips-protos.h (mips_cannot_change_mode_class): Add + prototype. + + * config/mips/mips.c (mips_cannot_change_mode_class): New. + + * doc/tm.texi (Register Classes): Remove + CLASS_CANNOT_CHANGE_MODE and CLASS_CANNOT_CHANGE_MODE_P. + Document CANNOT_CHANGE_MODE_CLASS. + + * reload.c (push_reload): Use CANNOT_CHANGE_MODE_CLASS. + (push_reload): Same. + + * simplify-rtx.c (simplify_subreg): Same. + + * reload1.c (choose_reload_regs): Same. + + * recog.c (register_operand): Same. + + * regrename.c (mode_change_ok): Change to use new + CANNOT_CHANGE_MODE_CLASS infrastructure. + + * regclass.c (cannot_change_mode_set_regs): New. + Declare subregs_of_mode. + (regclass): Use subregs_of_mode. + Remove references to reg_changes_mode. + (init_reg_sets_1): Remove class_can_change_mode and + reg_changes_mode code. + (invalid_mode_change_p): New. + (dump_regclass): Use invalid_mode_change_p instead of + class_can_change_mode. + (regclass): Same. + (record_operand_costs): Do not set reg_changes_mode. + + * local-alloc.c (struct qty): Remove changes_mode field. + (alloc_qty): Remove changes_mode initialization. + (update_qty_class): Remove set of changes_mode. + (find_free_reg): Use subregs_of_mode. + + * global.c (find_reg): Use subregs_of_mode info. + + * rtl.h (cannot_change_mode_set_regs): New prototype. + (invalid_mode_change_p): Same. + (REG_CANNOT_CHANGE_MODE_P): New macro. + + * flow.c (mark_used_regs): Calculate subregs_of_mode. Remove + REG_CHANGES_MODE. + (life_analysis): Clear subregs_of_mode. + + * combine.c (subst): Pass class to CLASS_CANNOT_CHANGE_MODE_P. + Remove use of CLASS_CANNOT_CHANGE_MODE. + (simplify_set): Same. + (gen_lowpart_for_combine): Calculate subregs_of_mode. Remove + REG_CHANGES_MODE. + + * regs.h: Add extern for subregs_of_mode; + Include hard-reg-set and basic-block. + (REG_CHANGES_MODE): Delete. + +2002-11-03 Roger Sayle + + * real.c (real_sqrt): New function to calculate square roots. + * real.h (real_sqrt): Add function prototype. + * builtins.c (fold_builtin): Fold sqrt of constant argument. + * simplify-rtx.c (simplify_unary_operation): Simplify sqrt + of constant argument. + +2002-11-03 John David Anglin + + * jump.c (never_reached_warning): Don't set contains_insn until the + first line note is seen. + +2002-11-03 David Edelsohn + + * config/rs6000/rs6000.md (movti_string): Use string instructions. + +2002-11-03 Roger Sayle + + PR c/7128 + * c-typeck.c (c_expand_asm_operands): Defend against + error_mark_nodes in the output argument to avoid ICE. + +2002-11-03 Eric Botcazou + + PR middle-end/8408 + * genrecog.c (preds): Handle ADDRESSOF. + (validate_pattern): Mark it as an lvalue. + +2002-11-02 David Edelsohn + + * config/rs6000/rs6000.c (rs6000_override_options): Use string + instructions when optimizing for size. + +2002-11-02 Kazu Hirata + + * config/h8300/h8300.h: Fix comment typos. + * config/h8300/h8300.md: Likewise. + * config/h8300/lib1funcs.asm: Likewise. + +2002-11-02 Gerald Pfeifer + + Revert this change: + + *doc/install.texi (Installing GCC: Configuration): Clarify + the only supported ways to configure gcc. + +2002-11-01 Kazu Hirata + + * config/h8300/h8300.md (anonymous and:QI pattern): Use 'n' + instead of 'O' for the constraint for the second operand. + +2002-11-01 Mark Mitchell + + PR c++/8391 + * toplev.c (rest_of_compilation): Do not refuse to output code for + an inline function in a local class. + +2002-11-01 David O'Brien + + * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Define __arch64__. + (TRANSFER_FROM_TRAMPOLINE): Reformat. + Add comment. + +2002-11-01 Kazu Hirata + + * config/h8300/h8300.h (CAN_ELIMINATE): Simplify. + +2002-11-01 Toshiyasu Morita + + * config/h8300/h8300.h (OPTIMIZATION_OPTIONS): New. + +2002-11-01 Steve Ellcey + + * config/ia64/ia64.h (MASK_INLINE_DIV_LAT): Remove. + (MASK_INLINE_DIV_THR): Remove. + (TARGET_INLINE_DIV_LAT): Remove. + (TARGET_INLINE_DIV_THR): Remove. + (TARGET_INLINE_DIV): Remove. + (MASK_INLINE_FLOAT_DIV_LAT): New macro. + (MASK_INLINE_FLOAT_DIV_THR): New macro. + (MASK_INLINE_INT_DIV_LAT): New macro. + (MASK_INLINE_INT_DIV_THR): New macro. + (TARGET_INLINE_FLOAT_DIV_LAT): New macro. + (TARGET_INLINE_FLOAT_DIV_THR): New macro. + (TARGET_INLINE_INT_DIV_LAT): New macro. + (TARGET_INLINE_INT_DIV_THR): New macro. + (TARGET_INLINE_FLOAT_DIV): New macro. + (TARGET_INLINE_INT_DIV): New macro. + * config/ia64/ia64.md (divsi3): Change to use new macros. + (modsi3): Ditto. + (udivsi3): Ditto. + (umodsi3): Ditto. + (divsi3_internal): Ditto. + (divdi3): Ditto. + (moddi3): Ditto. + (udivdi3): Ditto. + (umoddi3): Ditto. + (divdi3_internal_lat): Ditto. + (divdi3_internal_thr): Ditto. + (divsf3): Ditto. + (divsf3_internal_lat): Ditto. + (divsf3_internal_thr): Ditto. + (divdf3): Ditto. + (divdf3_internal_lat): Ditto. + (divdf3_internal_thr): Ditto. + (divtf3): Ditto. + (divtf3_internal_lat): Ditto. + (divtf3_internal_thr): Ditto. + * config/ia64/ia64.c (ia64_override_options): Change + to check new macros for conflicts in settings. + * doc/invoke.texi (-minline-divide-min-latency): Remove. + (-minline-divide-max-throughput): Remove. + (-minline-float-divide-min-latency): New. + (-minline-float-divide-max-throughput): New. + (-minline-int-divide-min-latency): New. + (-minline-int-divide-max-throughput): New. + +2002-11-01 Richard Earnshaw (rearnsha@arm.com) + + PR target/7856 + * arm.c (use_return_insn): Don't use a return insn if there are + saved integer regs, but LR is not one of them. + +Fri Nov 1 10:33:15 CET 2002 Jan Hubicka + + * expr.c (emit_move_insn): Use SCALAR_FLOAT_MODE_P + * machmode.h (SCALAR_FLOAT_MODE_P): New macro. + +Thu Oct 31 18:20:50 CET 2002 Jan Hubicka + + * i386.md (sse_loadss, sse_loadsd): Canonicalize; add expander + (movps, movpd splitters): Use canonical form. + (movv2di): Fix merge problem. + +Thu Oct 31 16:22:31 CET 2002 Jan Hubicka + + * i386.md (negdf2_ifs_rex64): Don't allow GPR operand. + +2002-10-31 Nathanael Nerode + + PR optimization/6162 + * doc/md.texi: Document restriction on commutative operand + specification. + +2002-10-31 Eric Christopher + + * explow.c (convert_memory_address): Use shallow_copy_rtx. + +2002-10-31 Steve Ellcey + + * expmed.c (store_bit_field): Check FUNCTION_ARG_REG_LITTLE_ENDIAN. + +2002-10-31 Steve Ellcey + + * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Set for non-floats. + +Thu Oct 31 Dale Johannesen + + * config/rs6000/darwin.h: Correct formatting in previous. + +Thu Oct 31 Dale Johannesen + + * config/rs6000/darwin.h: Enable -falign-xxx options. + +Thu Oct 31 18:08:00 CET 2002 Jan Hubicka + + * i386.c (override_options): Set defaults for flag_omit_frame_pointer, + flag_asynchronous_unwind_tables, flag_pcc_struct_return. + * i386.c (optimization_options): Set flag_omit_frame_pointer, + flag_asynchronous_unwind_tables, flag_pcc_struct_return to 2. + Do not clear -momit-leaf-frame-pointer when profiling. + (ix86_frame_pointer_required): Frame pointer is always required when + profiling. + +Thu Oct 31 16:09:44 CET 2002 Jan Hubicka + + * i386.md (negdf2_ifs_rex64): Don't allow GPR operand. + +Thu Oct 31 12:45:55 2002 J"orn Rennecke + + * sh.h (binary_logical_operator): Declare. + * sh.c (binary_logical_operator): New function. + * sh.md (xordi3+1): New combiner splitter pattern. + +2002-10-31 David O'Brien + + * config/sparc/freebsd.h (TRANSFER_FROM_TRAMPOLINE): Define + __enable_execute_stack function. + +2002-10-30 Zack Weinberg + + * gthr.h, gthr-dce.h, gthr-posix.h, gthr-rtems.h, + gthr-solaris.h, gthr-win32.h: Remove __gthread_key_dtor. + * unwind-sjlj.c (fc_key_dtor): Delete. + (fc_key_init): Adjust __gthread_key_create call to match. + +2002-10-30 Aldy Hernandez + + * c-common.c: Add GTY to vector_type_node_list. + +2002-10-30 John David Anglin + + * pa-linux.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Define. + * pa-protos.h (attr_length_millicode_call, attr_length_call, + pa_init_machine_status): Declare new global functions. + * pa.c (void copy_fp_args, length_fp_args, get_plabel): Declare and + implement new functions. + (attr_length_millicode_call, attr_length_call): Implement. + (total_code_bytes): Change type to long. + (pa_output_function_prologue): Compute total_code_bytes on TARGET_64BIT. + Reset counter if flag_function_sections. + (output_deferred_plabels): Set output alignment to 3 for TARGET_64BIT. + (output_cbranch): Move call to gen_label_rtx. + (output_millicode_call): Rewrite adding long TARGET_64BIT call, expose + delay slot in all variants, shorten pc-relative calls. + (output_call): Rewrite adding long TARGET_64BIT call, improved delay + slot usage and exposure, various new call variants, and shortened + sequences for some variants on TARGET_PA_20. + Miscellaneous format changes. + * pa.h (total_code_bytes): Change type to long. + (MASK_LONG_CALLS, TARGET_LONG_CALLS, TARGET_LONG_ABS_CALL, + TARGET_LONG_PIC_SDIFF_CALL, TARGET_LONG_PIC_PCREL_CALL): Define. + (TARGET_SWITCHES): Add "-mlong-calls" and "-mno-long-calls" options. + (EXTRA_CONSTRAINT, GO_IF_LEGITIMATE_ADDRESS, + LEGITIMIZE_RELOAD_ADDRESS): Don't use long floating point loads and + stores on TARGET_ELF32. + *pa.md (define_delay): Allow insns in delay on TARGET_PORTABLE_RUNTIME. + (unnamed patterns for mulsi3, divsi3, udivsi3, modsi3, umodsi3 and + canonicalize_funcptr_for_compare expanders): Calculate attribute length + attr_length_millicode_call(). + (call_internal_symref, call_value_internal_symref): Clobber register 1. + Calculate attribute length using attr_length_call(). + (call_internal_reg_64bit, call_value_internal_reg_64bit): Move gp load + to delay slot. + (sibcall, sibcall_value): Rewrite. + (sibcall_internal_symref, sibcall_value_internal_symref): Clobber + register 1. Use attr_length_call(). + (sibcall_internal_symref_64bit, sibcall_value_internal_symref_64bit): + New patterns. + (unamed pattern for canonicalize_funcptr_for_compare): Rewrite. + * som.h (MEMBER_TYPE_FORCES_BLK): Define. + * t-pa64 (TARGET_LIBGCC2_CFLAGS): Add "-mlong-calls". + * doc/invoke.texi (mlong-calls): Document. + +2002-10-30 Roger Sayle + + * fold-const.c (fold_binary_op_with_conditional_arg): Improve + handling of cases where one or both branches of the conditional + have void type, i.e. throw an exception or don't return. + (fold): Only apply (and undo) type conversion to the non-void + branches of a COND_EXPR. + +2002-10-30 Mark Mitchell + + PR c++/8333 + * varasm.c (asm_output_aligned_bss): Do not call + ASM_GLOBALIZE_LABEL. + +2002-10-30 David Edelsohn + Torbjorn Granlund + + * config/rs6000/rs6000.md (load_toc_v4_PIC_1): Use preferred form + for addressibility. + (load_toc_v4_PIC_1b): Same. + +2002-10-30 Kazu Hirata + + * config/h8300/h8300.c (h8300_eightbit_constant_address_p): + Truncate the addresses for H8/300 using HImode. + +Tue Oct 29 23:28:10 CET 2002 Jan Hubicka + + * i386.md (negdf splitter): Fix construction of the constant. + +Tue Oct 29 20:47:06 CET 2002 Jan Hubicka + + * i386.md (negsf, negdf): Reorganize to use vector modes + for SSE variants. + (abssf, absdf): Use force_reg. + (movv4sf, movv2df): New splitters. + * i386.h (PREDICATE_CODES): add zero_extended_scalar_load_operand + * i386.c (zero_extended_scalar_load_operand + + * i386-protos.h (ix86_expand_call): Update prototype. + * i386.c (ix86_function_ok_for_sibcall): Handle 64bit + (ix86_expand_call): Use r11 for indirect sibcalls. + * i386.md (call, call_value, untyped_call, call_value_pop): + update x86_expand_call call. + (sibcall, sibcall_value): new patterns + (call_rex64, call_value_rex64): Do not accept sibcalls. + (sibcall_rex64, sibcall_value_rex64, + sibcall_rex64_v, sibcall_value_rex64_v): New. + +Tue Oct 29 15:37:39 CET 2002 Jan Hubicka + + * toplev.c (rest_of_compilation): Reorganize way reg_scan is called + before final pass. + +2002-10-29 Hans-Peter Nilsson + + * toplev.c (rest_of_type_compilation): Return early in case of + errors. + (check_global_declarations): Don't call debug_hooks->global_decl + in case of errors. + +2002-10-28 Andreas Bauer + + * doc/c-tree.texi (Tree overview): Fix typos. + +2002-10-29 Phil Edwards + + * Makefile.in (gnucompare*): Only record bad comparisons + if there really was a bad comparison. + +Tue Oct 29 19:32:16 CET 2002 Jan Hubicka + + * i386.h (CONST_DOUBLE_OK_FOR_LETTER_P): Remove 'H' + * i386.md (movsf*, movdf*): Use 'C' instead of 'H' + * md.texi (machine dependent constraints): Document 'C' + + * simplify-rtx.c (simplify_subreg): Fix const_int->vector subregging. + + * i386.c (ix86_expand_vector_move): Fix. + + * i386.c (ix86_expand_builtin): Use sse2_maskmovdqu_rex64. + * i386.md (sse2_maskmovdqu_rex64): New pattern + + PR target/8322 + * xmmintrin.h (_mm_stream_pi, _mm_stream_pd): Fix cast. + (ix86_init_mmx_sse_builtins): Fix type. + +2002-10-29 Jason Thorpe + + * gthr-posix.h: Include for feature tests. + (sched_get_priority_max, sched_get_priority_min) + (pthread_getschedparam, pthread_setschedparam): Only use + if _POSIX_THREAD_PRIORITY_SCHEDULING is defined. + (__gthread_objc_thread_set_priority): Don't treat all nonzero + returns from sched_get_priority_max and sched_get_priority_min + as an error. + +2002-10-29 Kazu Hirata + + * config/h8300/h8300.h (TARGET_DEFAULT): Make it + MASK_QUICKCALL. + +2002-10-29 Kazu Hirata + + * config/h8300/h8300.c (h8300_eightbit_constant_address_p): New. + (h8300_tiny_constant_address_p): Likewise. + * config/h8300/h8300.h (EIGHTBIT_CONSTANT_ADDRESS_P): Use + h8300_eightbit_constant_address_p. + (TINY_CONSTANT_ADDRESS_P): Use h8300_tiny_constant_address_p. + * config/h8300/h8300-protos.h: Add the prototypes for the two + new functions. + +2002-10-29 Kazu Hirata + + * reload1.c (update_eliminables): Unconditionally check if + frame_pointer_needed has changed. + +Tue Oct 29 15:37:39 CET 2002 Jan Hubicka + + * toplev.c (rest_of_compilation): Reorganize way reg_scan is called + before final pass. + +2002-10-29 Eric Botcazou + + PR optimization/8334 + * expr.c (expand_expr) [PLUS]: Don't use simplify_binary_operation; + check for zero operands explicitly. + +2002-10-29 Richard Sandiford + + * config/mips/mips.md (extv, extzv, insv): Set size of referenced + memory after adjusting to BLKmode. + +2002-10-29 Kazu Hirata + + * config/h8300/h8300.h (MASK_*): New. + (TARGET_*): Use MASK_*. + +2002-10-28 Zack Weinberg + + * config.gcc (*-*-vxworks, powerpc-wrs-vxworks*): New stanzas. + * config/t-vxworks, config/vxworks.h, config/rs6000/t-vxworks, + config/rs6000/vxworks.h: New files. + * config/rs6000/sysv4.h: Rip out -mvxworks and all related code. + + * config.gcc (alpha*-*-vxworks*, arm-*-vxworks*, + i?86-wrs-vxworks*, i960-wrs-vxworks* [all], + m68k-wrs-vxworks*, mips-wrs-vxworks, powerpc-wrs-vxworks*, + powerpcle-wrs-vxworks*, sparc*-wrs-vxworks* [all], + sparc-*-vxsim*): Delete stanzas. + * gthr-vxworks.h: Rip out all substantive code and just + include gthr-single.h. + + * config/alpha/vxworks.h, config/arm/vxarm.h, + config/i386/vxi386.h, config/i960/t-vxworks960, + config/i960/vx960-coff.h, config/i960/vx960.h, + config/m68k/t-vxworks68, config/m68k/vxm68k.h, + config/mips/vxworks.h, config/rs6000/vxppc.h, + config/sparc/t-vxsparc, config/sparc/t-vxsparc64, + config/sparc/vxsim.h, config/sparc/vxsparc.h, + config/sparc/vxsparc64.h: Delete files. + +2002-10-28 Jason Thorpe + + * config.gcc (*-*-netbsd*): Add NETBSD_ENABLE_PTHREADS to + tm_defines if pthreads are enabled. + * config/netbsd.h (LIB_SPEC): Only support the -pthread option + if NETBSD_ENABLE_PTHREADS is defined. + +2002-10-28 Kazu Hirata + + * ChangeLog.1: Fix typos. + * cse.c: Fix a comment typo. + * reload1.c: Likewise. + +2002-10-27 Hans-Peter Nilsson + + * fixinc/inclhack.def (libc1_G_va_list): Correct test_text. + * fixinc/tests/base/_G_config.h: New file. + +2002-10-27 Kazu Hirata + + * combine.c: Fix comment formatting. + * loop.c: Likewise. + * real.c: Likewise. + * regclass.c: Likewise. + * regmove.c: Likewise. + * regrename.c: Likewise. + * reg-stack.c: Likewise. + * reload1.c: Likewise. + * reload.c: Likewise. + * reload.h: Likewise. + * unroll.c: Likewise. + +2002-10-27 Kazu Hirata + + * reload1.c (reload): Fix a comment typo. + +Sun Oct 27 10:15:24 CET 2002 Jan Hubicka + + * linux64.h (DEFAULT_PCC_STRUCT_RETURN): Define. + +2002-10-27 Zdenek Dvorak + + * Makefile.in (dwarf2out.o): Add dependendcy on hashtab.h. + * dwarf2out.c: Include hashtab.h. + (is_main_source): New static variable. + (attr_checksum, die_checksum): Modified to handle die references. + (same_loc_p, same_dw_val_p, same_attr_p, same_die_p, same_die_p_wrap, + unmark_all_dies, htab_cu_hash, htab_cu_eq, htab_cu_del, check_duplicate_cu, + record_comdat_symbol_number): New static functions. + (output_comp_unit, compute_section_prefix, is_type_die, break_out_includes, + mark_dies, unmark_dies, dwarf2out_start_source_file): Modified. + * toplev.c (rest_of_decl_compilation): Call of dwarf2out_decl for type + declarations added. + +2002-10-26 Kazu Hirata + + * config/h8300/h8300.c (initial_offset): Change to + h8300_initial_elimination_offset. + * config/h8300/h8300.h (INITIAL_ELIMINATION_OFFSET): Use + h8300_initial_elimination_offset. + * config/h8300/h8300-protos.h: Update the prototype. + +2002-10-26 Hans-Peter Nilsson + + * config/mmix/mmix.h (LIBCALL_VALUE): Use + MMIX_RETURN_VALUE_REGNUM, not MMIX_OUTGOING_RETURN_VALUE_REGNUM. + (FUNCTION_VALUE_REGNO_P): Similar, but move code to... + * config/mmix/mmix.c (mmix_function_value_regno_p): New. + * config/mmix/mmix-protos.h: Remove needless ifdefs on TREE_CODE + and RTX_CODE. + (mmix_function_value_regno_p): Declare. + + * config/mmix/mmix.md ("fixuns_truncdfdi2"): Replace unsigned_fix, + invalid for floating point mode result, with fix. + +Fri Oct 25 00:04:21 2002 Alexandre Oliva + + * Makefile.in (GCC_FOR_TARGET): Add -L$(objdir)/../ld. + (STAGE2_FLAGS_TO_PASS): Pass GCC_FOR_TARGET. + (stage1_build): Likewise. + +2002-10-25 Mike Stump + + Fixes gcc.dg/warn-1.c. + * c-typeck.c (warn_for_assignment): Don't print argument number, + if zero. + +Sat Oct 26 01:44:46 CEST 2002 Jan Hubicka + + * toplev.c (dump_file_index): Add DFI_ce3. + (dump_file_info): Likewise. + (rest_of_compilation): Run first ifcvt pass before tracer. + +2002-10-25 Steve Ellcey + + * config/ia64/hpux.h (BITS_BIG_ENDIAN): Remove. + +2002-10-25 Richard Henderson + + * real.c (real_to_decimal): If the >1 tens reduction loop results + in a negative exponent, fall into the <1 pten computation. + +2002-10-25 Zack Weinberg + + PR middle-end/6994 + * c-objc-common.c (inline_forbidden_p): Can not inline + functions containing structures or unions containing VLAs. + * tree-inline.c (walk_tree): For all class 't' nodes, walk + TYPE_SIZE and TYPE_SIZE_UNIT. + (copy_tree_r): Copy types if they are variably modified. + +2002-10-25 Ulrich Weigand + + * config/s390/s390.md: Remove old-style peepholes. + +2002-10-25 Ulrich Weigand + + * config/s390/s390.c (s390_decompose_address): Do not range check the + displacement if base or index is the argument pointer register. + +2002-10-24 Hans-Peter Nilsson + + PR other/3337 + PR bootstrap/6763 + PR bootstrap/8122 + * fixinc/inclhack.def (libc1_G_va_list): New fix. + * fixinc/fixincl.x: Regenerate. + * config/i386/linux.h: Move MD_FALLBACK_FRAME_STATE_FOR inside + ifndef IN_LIBGCC2. Wrap it together with signal.h and + sys/ucontext.h inclusion in ifndef USE_GNULIBC_1. + * configure.in (gcc_AC_CHECK_DECLS): Check vasprintf too. + * config.in, configure: Regenerate. + +2002-10-24 Igor Shevlyakov + + * varasm.c (struct rtx_const): Array size 16 for V16QImode. + +2002-10-24 Richard Henderson + + * config/i386/i386.c (x86_output_mi_thunk): Fix x86_64 pic jump. + +2002-10-24 Kazu Hirata + + * config/h8300/h8300.c (initial_offset): Simplify by using + round_frame_size. + +2002-10-24 Marek Michalkiewicz + + * doc/install.texi (avr): Update required binutils version. + +2002-10-24 Theodore A. Roth + + * doc/install.texi: Point avr users at more up-to-date information. + +2002-10-24 Ulrich Weigand + + * config/s390/s390.md (movdi, movsi, movhi, movqi): Add peepholes2 + to pull operands out of the literal pool where possible. + +2002-10-24 Denis Chertykov + + * config/avr/avr.c (init_cumulative_args): Test fntype for zero. + +2002-10-24 Steve Ellcey + + * expr.c (convert_move): If unsignedp is less then zero there + is no equivalent code. + +2002-10-24 Zack Weinberg + + * tree.def: Delete mention of nonexistent ARRAY_TYPE fields. + +2002-10-24 Ulrich Weigand + + * config/s390/s390.h: Rework comments; re-sort target macro definitions + according to the sequence they are defined in the manual. + (POINTER_BOUNDARY): Remove. + +2002-10-24 Kazu Hirata + + * config/h8300/h8300.c (round_frame_size): Replace 8 with + BITS_PER_UNIT. + +2002-10-24 Kazu Hirata + + * config/h8300/h8300.h (EIGHTBIT_CONSTANT_ADDRESS_P): Make it + 64-bit safe. + (TINY_CONSTANT_ADDRESS_P): Likewise. + +2002-10-24 Richard Henderson + + * config/ia64/ia64.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): True. + (ia64_output_mi_thunk): Rewrite to use rtl, and to handle the + vcall offset. + +2002-10-24 Richard Henderson + + PR opt/7944 + * reload.c (find_reloads_toplev): Mode of X is not important + when simplifying subregs of constants. + +2002-10-24 Richard Sandiford + + * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Add + MIPS_MARCH_CONTROLS_SOFT_FLOAT=1 to $tm_defines. + * config/mips/mips.c (MIPS_MARCH_CONTROLS_SOFT_FLOAT): Default to 0. + (override_options): Base default setting of MASK_SOFT_FLOAT on -march + if MIPS_MARCH_CONTROLS_SOFT_FLOAT. + +2002-10-24 Richard Sandiford + + * optabs.c (expand_binop): Don't reuse the shift target in the + middle of shift sequences. + +Wed Oct 23 22:48:44 CEST 2002 Jan Hubicka + + * i386.md (abs splitters): Do not produce nested subregs. + +Wed Oct 23 12:42:32 CEST 2002 Jan Hubicka + + * i386.md (movti_rex64): Fix constraints. + +Wed Oct 23 12:01:21 CEST 2002 Jan Hubicka + + * i386.md (abssf,absdf): Use vector operands for SSE + (abssf2_ifs, absdf2_ifs, absdf2_ifs_rex64 and splitters): Update for + vector operand. + +2002-10-23 Ziemowit Laski + + * objc/objc-act.c (get_static_reference): Remove unneeded + TYPE_BINFO initialization. + (get_object-reference): Likewise. + (build_constructor): Tighten precondition check. + (finish_message_expr): Likewise. + +2002-10-23 Jakub Jelinek + + * config/i386/i386.c (local_symbolic_operand): Move LABEL_REF test + after CONST test. + +2002-10-23 Steve Ellcey + + * config/ia64/ia64.c (hfa_element_mode): Don't allow 128 bit floats + in HFAs. + +2002-10-23 Richard Henderson + + * config/alpha/alpha.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): True. + (alpha_output_mi_thunk_osf): Handle vcall_offset. + +2002-10-23 Zack Weinberg + + * langhooks.h (struct lang_hooks_for_tree_inlining): Add + var_mod_type_p. + * langhooks-def.h: Default for tree_inlining.var_mod_type_p is + hook_tree_bool_false. + + * tree.c (variably_modified_type_p): Moved here from + cp/tree.c. Use lang_hooks.tree_inlining.var_mod_type_p for + language-specific cases. Due to this, must weaken some 'if + and only if' checks to merely 'if'. + * tree.h: Prototype variably_modified_type_p. + + * tree-inline.c (walk_tree): #undef WALK_SUBTREE_TAIL at end. + +2002-10-23 Ulrich Weigand + + * config/s390/linux.h (CC1_SPEC, CC1PLUS_SPEC): Remove. + * config/s390/s390.c (optimization_options): Disable -fcaller-saves. + + * config/s390/s390-protos.h (fp_operand): Remove. + * config/s390/s390.c (fp_operand): Remove. + * config/s390/s390.md ("movdi"): Replace fp_operand by FP_REG_P. + ("*movdi_lhi", "*movdi_lli", "*movdi_larl"): Likewise. + ("movsi", "*movsi_lhi", "*movsi_lli"): Likewise. + (movdi_31, movdf_31 splitters): Likewise. + + * config/s390/s390.h (IEEE_FLOAT): Remove. + (TARGET_FLOAT_FORMAT): Define in terms of TARGET_IEEE_FLOAT. + (INT_REGNO_P): Rename to ... + (GENERAL_REGNO_P): ... this. + (FLOAT_REGNO_P): Rename to ... + (FP_REGNO_P): ... this. + (ADDR_REGNO_P): New macro. + (GENERAL_REG_P, ADDR_REG_P, FP_REG_P, CC_REG_P): New macros. + (REGNO_OK_FOR_DATA_P, REGNO_OK_FOR_FP_P): Remove. + (DATA_REG_P, FP_REG_P, ADDRESS_REG_P): Likewise. + (HARD_REGNO_NREGS): Adapt to macro renaming. + (HARD_REGNO_MODE_OK): Likewise. + +2002-10-23 David Edelsohn + Geoff Keating + + * config/rs6000/rs6000.c (rs6000_register_move_cost): New function. + (rs6000_memory_move_cost): New function. + * config/rs6000/rs6000-protos.h: Declare them. + * config/rs6000/rs6000.h: Use them. + +2002-10-23 Ulrich Weigand + + * libgcc2.c (__udiv_w_sdiv): Use attribute ((always_inline)) when + inlining it into other libgcc2 routines. + (__udivmoddi4): Likewise. + +2002-10-22 Nathanael Nerode + + * doc/sourcebuild.texi (Test Suites): Improve. + +2002-10-22 Stan Shebs + + * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Add missing + case for Darwin. + +2002-10-22 Jim Wilson + + * config/i386/i386.md (subdi3_1): Add call to ix86_binary_operator_ok. + +Wed Oct 23 01:52:36 CEST 2002 Jan Hubicka + + PR other/8289 + * xmmintrin.h: Add const to the argument of loads. + + * i386.md (pushv2di): New pattern. + PR target/6890 + * xmmintrin.h (_MM_TRANSPOSE4_PS): New. + +2002-10-22 Richard Henderson + + * target.h (gcc_target.asm_out): Merge output_mi_thunk and + output_mi_vcall_thunk into a single hook. Add can_output_mi_thunk. + * target-def.h (TARGET_ASM_OUTPUT_MI_THUNK): Don't conditionalize. + (TARGET_ASM_OUTPUT_MI_VCALL_THUNK): Remove. + (TARGET_ASM_CAN_OUTPUT_MI_THUNK): New. + (TARGET_ASM_OUT): Update. + * hooks.c (hook_bool_tree_hwi_hwi_tree_false): New. + (hook_bool_tree_hwi_hwi_tree_true): New. + (default_can_output_mi_thunk_no_vcall): New. + * hooks.h: Declare them. + * system.h (ASM_OUTPUT_MI_THUNK): Poison. + + * config/alpha/alpha.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): New. + (alpha_output_mi_thunk_osf): Add VCALL_OFFSET parameter. + * config/arm/arm.c, config/cris/cris.c, config/frv/frv.c, + config/i960/i960.c, config/ia64/ia64.c, config/m68k/m68k.c, + config/mmix/mmix.c, config/pa/pa.c, config/sparc/sparc.c, + config/stormy16/stormy16.c: Similarly. + + * config/i386/i386.c (x86_output_mi_thunk): Merge vcall_offset code. + Handle 64-bit properly. Streamline. + (x86_output_mi_vcall_thunk): Remove. + (x86_this_parameter): Rename from ia32_this_parameter; handle 64-bit. + (x86_can_output_mi_thunk): New. + (TARGET_ASM_OUTPUT_MI_VCALL_THUNK): Remove. + (TARGET_ASM_CAN_OUTPUT_MI_THUNK): New. + (override_options): Don't zap targetm.asm_out.output_mi_vcall_thunk. + + * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Rename from + output_mi_thunk; make static; always use function_section. + (TARGET_ASM_OUTPUT_MI_THUNK): New. + (TARGET_ASM_CAN_OUTPUT_MI_THUNK): New. + (rs6000_ra_ever_killed): Test no_new_pseudos not + targetm.asm_out.output_mi_thunk in conjunction with thunks. + * config/rs6000/rs6000-protos.h: Update. + * config/rs6000/sysv4.h (TARGET_ASM_OUTPUT_MI_THUNK): Remove. + * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Don't call + xcoffout_declare_function when using rs6000_output_mi_thunk. + + * config/s390/s390.c (s390_output_mi_thunk): Rename from + s390_output_mi_vcall_thunk. + (TARGET_ASM_OUTPUT_MI_THUNK): Remove. + (TARGET_ASM_CAN_OUTPUT_MI_THUNK): New. + + * config/vax/vax.c (vax_output_mi_thunk): Static; add vcall_offset. + (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): New. + * config/vax/vax-protos.h: Update. + * config/vax/vax.h (ASM_OUTPUT_MI_THUNK): Remove. + +Wed Oct 23 00:33:11 CEST 2002 Jan Hubicka + + * i386.c (standard_sse_constant_p): Accept vector and integer zeros too. + * i386.h (EXTRA_CONSTRAINT): Recognize 'C' + * i386.md (movti_internal): Use 'C' + + * xmmintrin.h (_mm_cmplt_epi*): New. + +2002-10-22 Ulrich Weigand + + * config/s390/s390.md ("*movdi_64"): Fix op_type attribute. + ("*movdf_64"): Likewise. + ("*lshrdi3_64"): Likewise. + ("blockage"): Add length attribute. + ("lit"): Likewise. + +Tue Oct 22 23:51:34 CEST 2002 Jan Hubicka + + * i386.md: FIx typo. + (sse2_cvtsi2sd, sse2_pslrdq): Fix template. + (sse2_umulv2siv2di3): Fix predicate. + (sse2_psadbw, ashrv8hi3, ashrv4si3, lshrv8hi3 lshrv4si3, + lshrv2di3, ashlv8hi3, ashlv4si3, ashlv2di3): Likewise. + * xmmintrin.h (_mm_mul_epu16): Rename to... + (_mm_mul_epu32): This one. + (_mm_cvtsi32_si128, _mm_cvtsi128_si32): New. + + (contains_128bit_aligned_vector_p): Undo accidental checkin. + +2002-10-22 Eric Christopher + + * config/sparc/sparc.h: Add #error. + +2002-10-22 Ulrich Weigand + + * config.gcc [s390-*-linux]: Remove s390/t-linux from tmake_file. + [s390x-*-linux*]: Likewise. + * config/s390/t-linux: Remove. + * config/s390/s390.h: Include fixdfdi.h when building libgcc2. + +Tue Oct 22 19:07:03 CEST 2002 Jan Hubicka + + * i386.c (builtin_description): Add IX86_BUILTIN_PUNPCKHQDQ128. + (ix86_expand_builtin): Fix MASKMOVDQU expasion. + * i386.h (ix86_builtins): Add IX86_BUILTIN_PUNPCKHQDQ128. + * i386.md (mmx_punpck?dq): Simplify. + (sse2_pubpcklqdq): Fix. + (sse2_pubpckhqdq): New. + * xmmintrin.h (_mm_unpackhi_epi32): New. + + * xmmintrin.h (_mm_cvt*, _mm_stream_pd): Fix prototypes. + (_mm_shufflehi_epi16, _mm_shufflelo_epi16): Fix typo. + +2002-10-22 Nathan Sidwell + + PR c++/7209 + * fold_const.c (fold_binary_op_with_conditional_arg): Always + build compound_expr if we used save_expr. + +2002-10-22 Alan Modra + + * output.h (SECTION_NOTYPE): Define. + * varasm.c (default_section_type_flags_1): Set SECTION_NOTYPE for + init array sections. + (default_elf_asm_named_section): Mind SECTION_NOTYPE. + * config/arm/arm.c (arm_elf_asm_named_section): Likewise. Also + merge TLS support. + +2002-10-21 Richard Henderson + + * config/i386/i386.c (ix86_function_ok_for_sibcall): Look at + the function type, not the return type. + +2002-10-21 Richard Henderson + + * real.c (sticky_rshift_significand): Return inexact, don't + or it in immediately. + (sub_significands): Accept incomming carry. + (div_significands, rtd_divmod): Update for sub_significands change. + (round_for_format): Update for sticky_rshift_significand change. + (do_add): Don't involve the inexact bit in addition, do give the + inexact bit as the subtraction carry-in. + (encode_internal, decode_internal, real_internal_format): New. + * real.h (real_internal_format): Declare. + +2002-10-21 Ulrich Weigand + + * libgcc2.c: Fix __udiv_w_sdiv breakage on platforms that + don't define sdiv_qrnnd. + +2002-10-21 Kazu Hirata + + * config/h8300/h8300.h (EIGHTBIT_CONSTANT_ADDRESS_P): Simplify + using IN_RANGE. + (TINY_CONSTANT_ADDRESS_P): Likewise. + +Tue Oct 22 00:04:20 CEST 2002 Jan Hubicka + + * i386.c (builtin_description): Add punpcklqdq and movdq2q + (ix86_init_mmx_sse_builtins): Add v2di_ftype_void, di_ftype_v2di, + v16qi_ftype_pchar, void_ftype_pchar_v16qi, v4si_ftype_pchar, + void_ftype_pchar_v4si; Initialize __builtin_ia32_movdq2q, + __builtin_ia32_loaddqa, __builtin_ia32_loaddqu, __builtin_ia32_loadd + __builtin_ia32_storedqa, __builtin_ia32_storedqu, __builtin_ia32_stored + __builtin_ia32_setzero128. + (ix86_expand_builtin): Handle IX86_BUILTIN_CLRTI, IX86_BUILTIN_LOADDQA, + IX86_BUILTIN_LOADDQU, IX86_BUILTIN_LOADD, IX86_BUILTIN_STOREDQA, + IX86_BUILTIN_STOREDQU, IX86_BUILTIN_STORED, Ix86_BUILTIN_MOVQ. + * i386.h (ix86_builtins): Add IX86_BUILTIN_LOADDQA, IX86_BUILTIN_LOADDQU, + IX86_BUILTIN_STOREDQA, IX86_BUILTIN_STOREDQU, IX86_BUILTIN_LOADD, + IX86_BUILTIN_STORED, IX86_BUILTIN_CLRTI, IX86_BUILTIN_MOVDQ2Q, + IX86_BUILTIN_PUNPCKLQDQ128, Ix86_BUILTIN_MOVQ. + * i386.md (sse2_punpcklqdq, sse2_movqsse2_loadd, sse2_stored, + sse2_movq): New patterns. + (sse2_movdqa, sse2_movdqu, sse2_movdq2q): Fix. + * xmmintrin.h (_mm_load_si128, _mm_loadu_si128, _mm_loadl_epi64, + _mm_store_si128, _mm_storeu_si128, _mm_storel_epi64, + _mm_setzero_si128, _mm_set_epi64, _mm_set_epi32, _mm_set_epi16, + _mm_set_epi8, _mm_set1_epi64, _mm_set1_epi32, _mm_set1_epi16, + _mm_set1_epi8, _mm_setr_epi64, _mm_setr_epi32, _mm_setr_epi16, + _mm_setr_epi8, _mm_unpacklo_epi64,_mm_set_moveq): New functions. + (_mm_insert_epi16): Fix. + +2002-10-21 Dale Johannesen + + * config/rs6000/rs6000.c (rs6000_reverse_condition): Handle + unsafe math reversals correctly for RTL generation. + (output_cbranch): Replace rs6000_reverse_condition call + by its former definition. + +2002-10-21 Jakub Jelinek + + * config/i386/i386.c (x86_64_sign_extended_value): Add allow_rip + argument. In CM_SMALL_PIC model consider SYMBOL_REFs binding locally or + from constant pool or LABEL_REFs as sign extended if allow_rip. + Change all +-1GB limits to +-16MB. + (x86_64_general_operand, x86_64_szext_general_operand, + x86_64_nonmemory_operand, x86_64_movabs_operand, + x86_64_szext_nonmemory_operand, x86_64_immediate_operand, + legitimate_address_p, ix86_expand_int_movcc): Update callers. + (local_symbolic_operand): Don't allow offsets bigger than +-16MB + in CM_SMALL_PIC model. + (legitimate_pic_address_disp_p): Don't check offsets before + calling local_symbolic_operand. + (legitimize_pic_address): Force offsets bigger than +-16MB into + register. + * config/i386/i386.h (EXTRA_CONSTRAINT, CONST_COSTS): Likewise. + * config/i386/i386-protos.h (x86_64_sign_extended_value): Update + prototype. + + * configure.in: Test for @GOTNTPOFF and @INDNTPOFF on IA-32 too. + Add x86-64 test. Set tls_first_minor to 14 on IA-32 and x86-64. + * configure: Rebuilt. + * config/i386/i386.c (x86_64_sign_extended_value): Don't allow TLS + SYMBOL_REFs unless enclosed in UNSPEC. Handle UNSPEC_DTPOFF, + UNSPEC_GOTNTPOFF and UNSPEC_NTPOFF. + (legitimate_address_p): Allow foo@dtpoff(base) even on TARGET_64BIT + -fpic. + (ix86_encode_section_info): Don't ever generate TLSGD or TLSLD for + non-pic code if TARGET_64BIT. + (legitimize_address): Generate 64-bit TLS sequences. + (output_pic_addr_const): Support x86-64 TLS operators. + (i386_output_dwarf_dtprel): Output 64-bit DTPOFF as .long f@DTPOFF, 0. + (print_operand_address): Use %fs instead of %gs on TARGET_64BIT. + Don't append (%rip) in 64-bit TLSGD and TLSLD sequences. + (output_addr_const_extra): Support x86-64 TLS operators. + (maybe_get_pool_constant): Handle TARGET_64BIT -fpic. + (ix86_tls_get_addr): Use __tls_get_addr on TARGET_64BIT + unconditionally. + * config/i386/i386.md (*tls_global_dynamic_gnu): Renamed to... + (*tls_global_dynamic_32_gnu): ..., add !TARGET_64BIT. + (*tls_global_dynamic_sun): Renamed to... + (*tls_global_dynamic_32_sun): ..., add !TARGET_64BIT. + (tls_global_dynamic): Renamed to... + (tls_global_dynamic_32): ... this. + (tls_global_dynamic_64, *tls_global_dynamic_64): New. + (*tls_local_dynamic_base_dynamic_gnu): Renamed to... + (*tls_local_dynamic_base_dynamic_32_gnu): ..., add !TARGET_64BIT. + (*tls_local_dynamic_base_dynamic_sun): Renamed to... + (*tls_local_dynamic_base_dynamic_32_sun): ..., add !TARGET_64BIT. + (tls_local_dynamic_base_dynamic): Renamed to... + (tls_local_dynamic_base_dynamic_32): ... this. + (tls_local_dynamic_base_dynamic_64, + *tls_local_dynamic_base_dynamic_64): New. + (*tls_local_dynamic_once): Renamed to... + (*tls_local_dynamic_32_once): ... this. + +2002-10-21 Ulrich Weigand + + * libgcc2.c: Inline __udiv_w_sdiv when compiling __udivdi3, + __divdi3, __umoddi3, or __moddi3. + +2002-10-21 Ulrich Weigand + + * c-opts.c (missing_arg): Use cl_options[opt_index].opt_code + instead of just opt_index as switch expression. + + * calls.c (store_one_arg): Change type of 'excess_align' + to unsigned int. + + * profile.c (output_gcov_string): Change type of 'temp' + to size_t. + +2002-10-21 Ulrich Weigand + + * config/s390/fixdfdi.h (__fixunsdfdi, __fixdfdi): Add prototypes. + (__fixunssfdi, __fixsfdi): Likewise. + * config/s390/s390.c (s390_single_hi): Initialize 'value'. + (s390_single_qi): Likewise. + (s390_emit_epilogue): Initialize 'offset'. Remove signed vs. + unsigned comparison warning. + (s390_return_addr_rtx): New function. + * config/s390/s390-protos.h (s390_return_addr_rtx): Declare it. + * config/s390/s390.h (RETURN_ADDR_RTX): Use it. + (HARD_REGNO_MODE_OK): Rewrite condition to silence warnings. + +2002-10-21 Ulrich Weigand + + * config/s390/s390.c (s390_output_mi_vcall_thunk): New function. + (TARGET_ASM_OUTPUT_MI_VCALL_THUNK): Define target hook. + (s390_output_mi_thunk): Remove. + (TARGET_ASM_OUTPUT_MI_THUNK): Remove. + +2002-10-21 Kazu Hirata + + * config/h8300/h8300.h (N_REG_CLASSES): Parenthesize. + +2002-10-20 Zack Weinberg + + * config/i386/i386.c (ix86_function_ok_for_sibcall): Fix an + inverted test in the conditional determining the possibility + of sibcalls in PIC mode. + +2002-10-20 Richard Henderson + + * target.h (struct gcc_target): Line wrap. + + * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Static. + (TARGET_ASM_OUTPUT_MI_THUNK): Define here... + * config/alpha/alpha.h: ... not here. + * config/alpha/alpha-protos.h: Update. + + * config/arm/arm.c, config/arm/arm.h, config/arm/arm-protos.h + config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.h, + config/frv/frv-protos.h, config/frv/frv.c, config/frv/frv.h, + config/i386/i386-protos.h, config/i386/i386.c, config/i386/openbsd.h, + config/i386/unix.h, config/i960/i960-protos.h, config/i960/i960.c, + config/i960/i960.h, config/ia64/ia64-protos.h, config/ia64/ia64.c, + config/ia64/ia64.h, config/m68k/linux.h, config/m68k/m68k-protos.h, + config/m68k/m68k.c, config/m68k/netbsd-elf.h, config/m68k/openbsd.h, + config/mmix/mmix-protos.h, config/mmix/mmix.c, config/mmix/mmix.h, + config/pa/pa-protos.h, config/pa/pa.c, config/pa/pa.h, + config/s390/s390-protos.h, config/s390/s390.c, config/s390/s390.h, + config/sparc/openbsd.h, config/sparc/sparc-protos.h, + config/sparc/sparc.c, config/sparc/sparc.h, + config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c, + config/stormy16/stormy16.h: Similarly. + + * config/m68k/m68k.c (m68k_output_mi_thunk): Replicate mnemonic + selection logic from call patterns. + +2002-10-20 Mark Mitchell + + * config/m68k/m68k.c (m68k_output_mi_thunk): Fix typo. + +2002-10-20 Zdenek Dvorak + + PR other/8202 + * i386.c (ix86_init_mmx_sse_builtins, ix86_expand_builtin): Define and + expand __builtin_ia32_pslldqi128 and __builtin_ia32_psrldqi128. + * i386.h (IX86_BUILTIN_PSLLDQI128, IX86_BUILTIN_PSRLDQI128): New. + * xmmintrin.h (_mm_srli_si128, _mm_slli_si128): New. + +2002-10-20 Roger Sayle + + PR c/761 + * toplev.c (flag_unsafe_profile_arcs): Remove. + (flag_bounded_pointers): Remove. + (flag_bounds_check): Correct comments. + (lang_independent_options): Remove -funsafe-profile-arcs and + -fbounded-pointers. Correct -fbounds-check comments. + + * flags.h: Correct flag_schedule_interblock comments. + (flag_bounded_pointers): Remove prototype. + (flag_bounds_check): Correct comments. + + * c-opts.c (c_common_init_options): No need to mark + flag_bounds_check as unspecified. + (c_common_post_options): And no need to set it from + flag_bounded_pointers if its still unspecified. + + * doc/invoke.texi: Fix some overfull hboxes in "make dvi". + Document --version, -feliminate-dwarf-2-dups, -fno-sched-interblock, + -fno-sched-spec, -fsched-spec-load, -fsched-spec-load-dangerous, + -fsched-verbose=n, -fno-branch-count-reg and -fbounds-check. + +Sat Oct 19 22:02:28 2002 Alexandre Oliva + Angela Marie Thomas + Brendan Kehoe + Nick Clifton + Andrew Haley + + * 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 + if SYSTEM_HEADER_DIR does not exist and it's not the default + sys-include directory. + (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. + +2002-10-19 Kaveh R. Ghazi + Mark Mitchell + + * alpha-protos.h (alpha_output_mi_thunk_osf): Update signature to + match target.h. + * arm-protos.h, arm.c (arm_output_mi_thunk): Likewise. + * cris-protos.h, cris.c (cris_asm_output_mi_thunk): Likewise. + * frv-protos.h, frv.c (frv_asm_output_mi_thunk): Likewise. + * i386-protos.h, i386.c (x86_output_mi_vcall_thunk, + x86_output_mi_thunk): Likewise. + * i960-protos.h, i960.c (i960_output_mi_thunk): Likewise. + * ia64-protos.h, ia64.c (ia64_output_mi_thunk): Likewise. + * m68k-protos.h, m68k.c (m68k_output_mi_thunk): Likewise. + * mmix-protos.h, mmix.c (mmix_asm_output_mi_thunk): Likewise. + * rs6000-protos.h, rs6000.c (output_mi_thunk): Likewise. + * s390-protos.h, s390.c (s390_output_mi_thunk): Likewise. + * stormy16-protos.h, stormy16.c (xstormy16_asm_output_mi_thunk): + Likewise. + * vax-protos.h, vax.c (vax_output_mi_thunk): Likewise. + + * target.h (gcc_target): Update output_mi_thunk and + output_mi_vcall_thunk to take a HOST_WIDE_INT delta and + vcall_index. + + * config/alpha/alpha.c: Replace ASM_OUTPUT_MI_THUNK with + TARGET_ASM_OUTPUT_MI_THUNK in comments. + * config/alpha/vms.h (ASM_OUTPUT_MI_THUNK): Don't #undef it. + (TARGET_ASM_OUTPUT_MI_THUNK): #undef it. + * config/frv/frv.h (DEFAULT_VTABLE_THUNKS): Remove definition. + * config/i386/i386-protos.h (x86_output_mi_vcall_thunk): Update + signature. + * config/i386/i386.c (x86_output_mi_vcall_thunk): Likewise. + * config/i386/openbsd.h: Replace ASM_OUTPUT_MI_THUNK with + TARGET_ASM_OUTPUT_MI_THUNK in comments. + * config/i960/i960.h (ASM_OUTPUT_MI_THUNK): Don't define. + (TARGET_ASM_OUTPUT_MI_THUNK): Do define. + * config/m68k/openbsd.h: Replace ASM_OUTPUT_MI_THUNK with + TARGET_ASM_OUTPUT_MI_THUNK in comments. + * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Remove #ifdef + ASM_OUTPUT_MI_THUNK and replace with check of targetm. + + * doc/tm.texi (TARGET_ASM_OUTPUT_MI_THUNK): Update signature. + (TARGET_ASM_OUTPU_MI_VCALL_THUNK): Likewise. + +2002-10-19 Brad Lucier + + * real.c (do_add): Fix 0+0 sign corner case. + (do_divide): Fix Inf/0 corner case. + +Sun Oct 20 00:31:31 CEST 2002 Jan Hubicka + + * i386.c (classify_argument): Pass MMX arguments in memory + (ix86_expand_builtin): Expand proper address mode for cflush. + * i386.md (movdqa): Fix typo. + (sse2_cflush): Accept DImode addresses. + + * xmmintrin.h (_mm_sqrt_sd): Accept two arguments. + (_mm_max_sd): Fix pasto. + (_mm_storeh_pd, _mm_storel_pd): Fix. + + * i386.c (bdesc_comi): Fix to match specification. + (ix86_expand_sse_comi): Emit the comparison properly. + * i386.md (sse_comi, sse2_comi, sse_ucomi, sse2_ucomi): + Do not use comparison operator. + (vnmaskcmp): Fix template. + + * xmmintrin.h (_mm_cvtps_pi16): Fix. + +2002-10-19 Sebastian Pop + + * dependence.c : Removed. + * Makefile.in : Remove dependence.o. + +Sat Oct 19 10:46:52 CEST 2002 Jan Hubicka + + * mmintrin.h (__m64): typedef it to v2si. + (_mm_cvtsi32_si64, _mm_cvtsi32_si64_mm_sll_pi16, + _mm_sll_pi32, _mm_sll_pi64, _mm_slli_pi64, _mm_sra_pi16, + _mm_sra_pi32, _mm_srl_pi16, _mm_srl_pi32, _mm_srl_pi64, + _mm_srli_pi64, _mm_and_si64, _mm_andnot_si64, + _mm_or_si64, _mm_xor_si64): Add neccesary casts. + * xmmintrin.h (_mm_setzero_si64): Likewise. + + * i386.h (ALIGN_MODE_128): Update comment; add missing modes + (SSE_REG_MODE_P, MMX_REG_MODE_P): New macros. + + PR target/7693 + Patch by Shawn Wagner + * mmintrin.h: Replace pi64 by si64. + +2002-10-18 David Edelsohn + + * rs6000.md (movdf_hardfloat32): Order alternatives consistently. + Use length of 4 not *. + (movdf_hardfloat64): Same. Support DFmode moves to/from CTR/LR. + (movdf_softfloat64): Likewise. + (movdi_internal32): Use length of 4 not *. + (movti_power): Same. + (ctrsi, ctrdi): Same. + +2002-10-18 Zack Weinberg + + * c-decl.c (start_decl): Point users of the old initialized- + typedef extension at __typeof__. + +2002-10-18 Richard Henderson + + * real.c (cmp_significand_0, rtd_divmod, ten_to_mptwo): New. + (real_to_decimal): Re-implement using the logic from the + gcc 3.2 etoasc. Comment heavily. + (div_significands): Simplify loop startup and comparison logic. + +2002-10-18 Mark Mitchell + + * target-def.h (TARGET_ASM_OUTPUT_MI_THUNK): Default to NULL. + (TARGET_ASM_OUTPUT_MI_VCALL_THUNK): Likewise. + (TARGET_ASM_OUT): Add them. + * target.h (asm_out): Add output_mi_thunk and + output_mi_vcall_thunk. + * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Rename to ... + (TARGET_ASM_OUTPUT_MI_THUNK): ... this. + * config/arm/arm-protos.h (arm_output_mi_thunk): Declare. + * config/arm/arm.c (arm_output_mi_thunk): Define. + * config/arm/arm.h (ASM_OUTPUT_MI_THUNK): Rename to ... + (TARGET_ASM_OUTPUT_MI_THUNK): ... this. + * config/cris/cris.h (ASM_OUTPUT_MI_THUNK): Rename to ... + (TARGET_ASM_OUTPUT_MI_THUNK): ... this. + * config/frv/frv.h (ASM_OUTPUT_MI_THUNK): Rename to ... + (TARGET_ASM_OUTPUT_MI_THUNK): ... this. + * config/i386/i386-protos.h (x86_output_mi_thunk): Adjust + prototype. + (x86_output_mi_vcall_thunk): Declare. + * config/i386/i386.c (override_options): Clear + output_mi_vcall_thunk in 64-bit mode. + (ix86_fntype_regparm): New function. + (ix86_return_pops_args): Use it. + (ia32_this_parameter): New function. + (x86_output_mi_vcall_thunk): New function. + (x86_output_mi_thunk): Use it + * config/i386/unix.h (TARGET_ASM_OUTPUT_MI_THUNK): Adjust. + (TARGET_ASM_OUTPUT_MI_VCALL_THUNK): Define. + * config/i960/i960-protos.h (i960_output_mi_thunk): Declare. + * config/i960/i960.c (i960_output_mi_thunk): New function. + * config/i960/i960.h (ASM_OUTPUT_MI_THUNK): Adjust. + * config/ia64/ia64-protos.h (ia64_output_mi_thunk): Declare. + * config/ia64/ia64.c (ia64_output_mi_thunk): Define. + * config/ia64/ia64.h (ASM_OUTPUT_MI_THUNK): Rename to ... + (TARGET_ASM_OUTPUT_MI_THUNK): ... this. + * config/m68k/m68k-protos.h (m68k_output_mi_thunk): New function. + * config/m68k/linux.h (ASM_OUTPUT_MI_THUNK): Rename to ... + (TARGET_ASM_OUTPUT_MI_THUNK): ... this. + * config/m68k/netbsd-elf.h (ASM_OUTPUT_MI_THUNK): Rename to ... + (TARGET_ASM_OUTPUT_MI_THUNK): ... this. + * config/mmix/mmix.h (ASM_OUTPUT_MI_THUNK): Rename to ... + (TARGET_ASM_OUTPUT_MI_THUNK): ... this. + * config/pa/pa.h (ASM_OUTPUT_MI_THUNK): Rename to ... + (TARGET_ASM_OUTPUT_MI_THUNK): ... this. + * config/rs6000/sysv4.h (ASM_OUTPUT_MI_THUNK): Rename to ... + (TARGET_ASM_OUTPUT_MI_THUNK): ... this. + * config/s390/s390-protos.h (s390_output_mi_thunk): Declare. + * config/s390/s390.c (s390_output_mi_thunk): Define. + * config/s390/s390.h (ASM_OUTPUT_MI_THUNK): Rename to ... + (TARGET_ASM_OUTPUT_MI_THUNK): ... this. + * config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): Rename to ... + (TARGET_ASM_OUTPUT_MI_THUNK): ... this. + * config/stormy16/stormy16.h (ASM_OUTPUT_MI_THUNK): Rename to ... + (TARGET_ASM_OUTPUT_MI_THUNK): ... this. + * config/vax/vax-protos.h (vax_output_mi_thunk): Declare. + * config/vax/vax.c (vax_output_mi_thunk): Define. + * config/vax/vax.h (ASM_OUTPUT_MI_THUNK): Rename to ... + (TARGET_ASM_OUTPUT_MI_THUNK): ... this. + * doc/tm.texi: Adjust documentation. + +2002-10-18 Jason Thorpe + + * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): Define + __enable_execute_stack function. + * config/alpha/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Define + as NETBSD_ENABLE_EXECUTE_STACK. + * config/i386/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Ditto. + * config/i386/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Ditto. + * config/i386/netbsd64.h (TRANSFER_FROM_TRAMPOLINE): Ditto. + * config/sparc/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Ditto. + * config/sparc/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Ditto. + +2002-10-18 Jason Thorpe + + * config/i386/i386.c (x86_initialize_trampoline): Emit a call + to __enable_execute_stack with the address of the trampoline + if TRANSFER_FROM_TRAMPOLINE is defined. + * config/i386/i386.h (TARGET_64BIT): Expand to a compile-time + constant if building libgcc2. + +Thu Oct 17 17:40:05 CEST 2002 Jan Hubicka + + * i386.c (pentium4_cost): Fix according to Intel recommendations. + (ix86_memory_move_cost): Fix for 64bit compilation. + +2002-10-17 Roger Sayle + + * doc/c-tree.texi: Update description of COND_EXPR tree nodes. + +2002-10-17 Geoffrey Keating + + * config/rs6000/rs6000.h (HARD_REGNO_MODE_OK): Allow arbitrary modes + in CTR/LR/MQ. + * config/rs6000/rs6000.md (movcc_internal1): Support CCmode moves + to/from CTR/LR/MQ. + (movsf_hardfloat): Support SFmode moves to/from CTR/LR/MQ. + (movsf_softfloat): Likewise. + +2002-10-17 Janis Johnson + + * Makefile.in (site.exp): Add ALT_CXX_UNDER_TEST and COMPAT_OPTIONS. + +2002-10-17 Jason Thorpe + + * config/alpha/alpha.c (alpha_initialize_trampoline): Use + tramp, not addr, to pass the trampoline address to + __enable_execute_stack. + +Thu Oct 17 18:40:47 CEST 2002 Jan Hubicka + + * mmintrin.h: Guard by __MMX__ + * xmmintrin.h: Guard by __SSE__ + + PR other/8062 + * xmmintrin.h (_MM_SHUFFLE2): New macro. + (_mm_load*_?d): New functions. + (_mm_set*_?d): New functions. + (_mm_store*_?d): New functions. + +Wed Oct 16 15:01:29 CEST 2002 Jan Hubicka + + Really commit patch announced at Oct 14 + PR c/7344 + * predict.c (can_predict_insn_p): New function. + (estimate_probability): Avoid unnecesary work. + (process_note_prediction): Likewise. + * toplev.c (rest_of_compilation): Account early branch prediction pass + as TV_BRANCH_PROB. + + PR other/8048 + Found by Ian Ollmann + * xmmintrin.h (_mm_shuffle_pd): Fix typo. + (_mm_load?_pd): Likewise. + (_mm_store?_pd): Likewise. + + PR target/7386 + * i386.c (builtin_description):Drop cmpg[te]s[sd]. + * xmmintrin.h (__mm_cmpg[te]_s[sd]): Rewrite using + swapped alternative. + + PR opt/7630 + * reload1.c (reload_inner_reg_of_subreg): New argument output; + (push_reload): Update call. + +2002-10-17 Richard Sandiford + + * config.gcc (mips*-*-*): Add OBJECT_FORMAT_ELF to $tm_defines + if using mips/elf.h or mips/elf64.h. + * config/mips/elf.h (OBJECT_FORMAT_ELF): Remove. + * config/mips/elf64.h (OBJECT_FORMAT_ELF): Remove. + +2002-10-16 Aldy Hernandez + + * config/rs6000/rs6000.c (function_arg): Set inner mode of V1DI to + SI. + +2002-10-16 Ulrich Weigand + + * config/s390/linux.h (ASM_DOUBLE, _ASM_OUTPUT_LONG): Remove. + (LPREFIX): Likewise. + (ASM_COMMENT_START, LOCAL_LABEL_PREFIX, ASM_FORMAT_PRIVATE_NAME, + ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT, + ASM_OUTPUT_ALIGN, ASM_OUTPUT_SKIP, ASM_OUTPUT_ALIGNED_BSS, + TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP, + GLOBAL_ASM_OP, ASM_OUTPUT_MI_THUNK): Move to s390.h. + + * config/s390/s390.h (ASM_COMMENT_START, LOCAL_LABEL_PREFIX, + ASM_FORMAT_PRIVATE_NAME, ASM_OUTPUT_ALIGN, ASM_OUTPUT_SKIP, + ASM_OUTPUT_ALIGNED_BSS, TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, + BSS_SECTION_ASM_OP): Move from linux.h. + (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Likewise. + Also, use ASM_GENERATE_INTERNAL_LABEL instead of LPREFIX. + + * config/s390/s390.c (s390_function_profiler): Use + ASM_GENERATE_INTERNAL_LABEL instead of LPREFIX. + +2002-10-15 Eric Christopher + + * stor-layout.c (layout_type): Call GET_MODE_BITSIZE once. + * java/parse.y (obtain_incomplete_type): Make pointer + ptr_mode. + +2002-10-15 Richard Henderson + + * real.c (real_to_decimal): Accept BUF_SIZE and CROP_TRAILING_ZEROS + as arguments. Bound DIGITS by the available buffer size. + (real_to_hexadecimal): Likewise. + * real.h (real_to_decimal, real_to_hexadecimal): Update prototypes. + (REAL_VALUE_TO_DECIMAL): Remove. + * c-common.c, c-pretty-print.c, print-rtl.c, print-tree.c, + sched-vis.c, config/arc/arc.c, config/c4x/c4x.c, config/fr30/fr30.c, + config/i370/i370.h, config/i386/i386.c, config/i960/i960.c, + config/ip2k/ip2k.c, config/m32r/m32r.c, config/m68hc11/m68hc11.c, + config/m68k/hp320.h, config/m68k/m68k.h, config/m68k/sun2o4.h, + config/m68k/sun3.h, config/mips/mips.c, config/ns32k/ns32k.c, + config/pdp11/pdp11.h, config/vax/vax.h: Update all callers to + use real_to_decimal directly, and with the proper arguments. + * doc/tm.texi (REAL_VALUE_TO_DECIMAL): Remove. + +2002-10-15 Jim Wilson + + * reload1.c (merge_assigned_reloads): After converting overlapping + reloads to RELOAD_OTHER, abort if there are now conflicting reloads. + + * config/i386/i386.md (adddi3_1): Add call to ix86_binary_operator_ok. + +Tue Oct 15 22:08:35 CEST 2002 Jan Hubicka + + * expr.c (do_tablejump): Fix typo in my previous commit. + +2002-10-15 Richard Sandiford + + * config/mips/vr.h (DRIVER_SELF_SPECS): Change % + + * config/s390/s390.c (s390_split_branches): Add return + value. Add parameters TEMP_REG and TEMP_USED. Use unspec 104. + + (find_base_register_in_addr): New function. + (find_base_register_ref): New function. + (replace_base_register_ref): New function. + + (struct constant_pool): Add members pool_insn, insns, and anchor. + Remove member last_insn. + (s390_start_pool): Initialize them. + (s390_end_pool): Emit pool placeholder insn. + (s390_add_pool_insn): New function. + (s390_find_pool): Use insns bitmap instead of addresses. + (s390_dump_pool): Replace placeholder insn. Emit anchor. + Replace unspec 104 by local-pool-relative references. + (s390_output_constant_pool): Output anchor label if required. + (s390_output_symbolic_const): Handle unspec 104 and 105. + (s390_add_pool): Remove, replace by ... + (s390_add_constant, s390_find_constant): ... these new functions. + (s390_add_anchor): New function. + + (s390_chunkify_pool): Delete, replace by ... + (s390_chunkify_start, s390_chunkify_finish, + s390_chunkify_cancel): ... these new functions. + (s390_optimize_prolog): Add parameter TEMP_REGNO. + Recompute register live data for special registers. + (s390_fixup_clobbered_return_reg): New function. + (s390_machine_dependent_reorg): Rewrite to use new + s390_chunkify_... routines. + + config/s390/s390.md ("reload_base"): Rename to ... + ("reload_base_31"): ... this. + ("reload_base_64"): New insn. + ("reload_base2"): Remove. + ("reload_anchor"): New insn. + ("pool"): New insn. + + s390.c (s390_pool_overflow): Remove. + s390.h (s390_pool_overflow): Likewise. + s390.md ("cjump", "icjump", "doloop_si"): Remove s390_pool_overflow. + +Tue Oct 15 16:51:04 2002 J"orn Rennecke + + * sh.md (movv8qi_i+2): Don't split if source is -1. + +2002-10-15 Janis Johnson + + * doc/install.texi: Formatting changes for conformance to HTML 4.01. + +2002-10-15 Ulrich Weigand + + PR opt/7409 + * loop.c (loop_regs_scan): Mark registers used for function + argument passing as MAY_NOT_OPTIMIZE. + +Mon Oct 14 19:22:19 CEST 2002 Jan Hubicka + + * gcov-io.h (gcov_info): Fix type. + * profile.c (create_profiler): Fix type mismatch. + +Mon Oct 14 20:33:12 CEST 2002 Jan Hubicka + + * i386.md (movv2di_internal): New pattern. + (movv2df_internal, movv8hi_internal, movv16qi_internal): Fix predicate. + (movv2di): New expander. + * i386.c (ix86_preferred_reload_class): Return NO_REGS for vector operands. + + * i386.c (ix86_expand_timode_binop_builtin): Delete. + (builtin_description): Add SSE1 logicals; rename SSE2 logicals. + (ix86_init_mmx_sse_builtins): Kill SSE1 logicals. + (ix86_expand_builtin): Likewise. + * i386.h (sse_andti4_df_1, sse_andti3_df_2, sse_andti3_sf_1, sse_andti3_sf_2, + sse_andti3, + sse_andnti4_df_1, sse_andti3_df_2, sse_andti3_sf_1, sse_andti3_sf_2, + sse_andnti3, + sse_orti4_df_1, sse_orti3_df_2, sse_orti3_sf_1, sse_orti3_sf_2, + sse_orti3, + sse_xorti4_df_1, sse_xorti3_df_2, sse_xorti3_sf_1, sse_xorti3_sf_2, + sse_xorti3): Kill. + (sse_andv4sf3, sse_andnv4sf3, sse_orv2df3, sse_xorv2df3, sse_andv2df3, + sse_andnv2df3, sse_orv2df3, sse_xorv2df3): New expanders. + (*sse_andv4sf3, *sse_andnv2df3, *sse_orv4sf3, *sse_xorv4sf3, *sse_andv2df3, + *sse_andnv2df3, *sse_orv2df3, *sse_xorv2df3): New patterns. + (*sse_andsf3, *sse_andndf3, *sse_ordf3, *sse_xordf3, *sse_anddf3, + *sse_andndf3, *sse_orv2df3, *sse_xorv2df3): New patterns. + + * xmmintrin.h (__m128i): Define as __v2di. + + PR c++/6419 + (expand_expr): Use DECL_RTL_SET_P. + +2002-10-14 Roger Sayle + + * combine.c (simplify_set): Treat MODE_CC registers like cc0. + +2002-10-14 Roger Sayle + Zack Weinberg + + * config/i386/i386.c (k6_cost): Correct typo. + +2002-10-14 Mark Mitchell + + PR optimization/6631 + * alias.c (objects_must_conflict_p): Check honor_readonly when + examining TYPE_READONLY. + * function.c (assign_stack_temp_for_type): Likewise. + +2002-10-14 Falk Hueffner + + * config/alpha/alpha.md (extendsidi2_nofix, extendsidi2_fix): + Swap zero extension arguments. + (umaxhi3): Fix instruction class. + PR target/7211 + (prefetch): Fix prefetch instructions. + PR target/7238 + (pkwb): Fix output constraint. + +2002-10-14 Alexandre Oliva + + * config/mips/mips.c (print_operand): Increase buffer size for + real numbers. + +2002-10-14 Richard Henderson + + PR opt/8165 + * gcse.c (adjust_libcall_notes): Revert last change. + * simplify-rtx.c (simplify_replace_rtx): Handle LO_SUM. + +2002-10-14 Andrew Haley + + * tree-inline.c (remap_block): All local class initialization + flags go in the outermost scope. + (expand_call_inline): Call java_inlining_map_static_initializers. + (expand_call_inline): Call java_inlining_merge_static_initializers. + * java/lang.c (merge_init_test_initialization): New. + (java_inlining_merge_static_initializers): New. + (inline_init_test_initialization): New. + (java_inlining_map_static_initializers): New. + + * tree-inline.c (expand_call_inline): Convert retvar to expected + type. + +2002-10-14 Graham Stott + + * stmt.c (decl_conflicts_with_clobbers_p): Add REG_P check. + +2002-10-14 Aldy Hernandez + + * stmt.c: Fix typo in comment. + +Mon Oct 14 11:35:49 2002 J"orn Rennecke + + * c-common.c (c_common_type_for_mode): Add V2HImode case. + * tree.c (build_common_tree_nodes_2): Initialize + unsigned_V2HI_type_node and V2HI_type_node. + * tree.h (enum tree_index): Add TI_UV2HI_TYPE and TI_V2HI_TYPE. + (unsigned_V2HI_type_node, V2HI_type_node): Define. + +2002-10-14 Jakub Jelinek + + * config/i386/i386.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): + Handle TARGET_64BIT. + +2002-10-14 Richard Sandiford + + * config/mips/vr.h (DRIVER_SELF_SPECS): Define. + * config/mips/t-vr (MULTILIB_OPTIONS): Remove mlong32. + (MULTILIB_DIRNAMES): Remove long32. + (MULTILIB_EXCEPTIONS): Don't build -mabi=32 -mgp32 multilibs. + (MULTILIB_REDUNDANT_DIRS): Remove. + +2002-10-14 Richard Sandiford + + * doc/tm.texi (DRIVER_SELF_SPECS): Document. + * gcc.c (driver_self_specs): New variable. + (do_self_spec): New function. + (main): Use it to process driver_self_specs. + +2002-10-13 Richard Henderson + + * config/i386/i386.c (ix86_function_ok_for_sibcall): Reject + indirect sibcalls when regparm >= 3. + + * config/i386/i386.c (sibcall_insn_operand): New. + * config/i386/i386.h (PREDICATE_CODES): Update. + * config/i386/i386-protos.h: Update. + * config/i386/i386.md (sibcall_1, sibcall_value_1): Use it. + + * rtl.c (shallow_copy_rtx): Use memcpy for the entire node. + +2002-10-12 Roger Sayle + + * simplify-rtx.c (simplify_binary_operation) [ASHIFTRT]: Optimize + arithmetic right shifts of ~0 during RTL simplifications. + +2002-10-12 Neil Booth + + PR preprocessor/7862 + PR preprocessor/8190 + * gcc.c (cpp_unique_options): Don't delete .d files. + Remove stray whitespace. + +2002-10-12 Naohiko Shimizu + + * pdp11.h (ASM_OUTPUT_SKIP): Add preceding 0 for octal constant. + (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Likewise. + * pdp11.c (pdp11_output_function_prologue): 0%o -> %#o. + (pdp11_output_function_epilogue, output_ascii): Likewise. + (output_addr_const_pdp11): Likewise. + * pdp11.md (movdi): Use offsetable memory for floating store. + (lshrsi3, negsi2): Delete irrelevant comment. + +2002-10-11 Andreas Bauer + + * config/i386/i386.c (ix86_function_ok_for_sibcall): Allow + indirect calls to be sibcall optimized. + * config/i386/i386.md (sibcall_1): New. + (call_1): Add no-sibcalls condition. + (sibcall_value_1): New. + (call_value_1): Add no-sibcalls condition. + +2002-10-11 Eric Christopher + + * output.h (default_valid_pointer_mode): Declare. + * varasm.c (default_valid_pointer_mode): Define. + * target-def.h (TARGET_VALID_POINTER_MODE): Use. + * target.h: Ditto. + * tree.c (build_pointer_type_for_mode): New function. + (build_pointer_type): Use. + (build_reference_type_for_mode): New function. + (build_reference_type): Use. + * tree.h: Declare new functions. + * c-common.c (handle_mode_attribute): Use new functions, check + for type. + * stor-layout.c (layout_type): Depend on machine mode for + REFERENCE_TYPE and POINTER_TYPE. + * dwarf2out.c (simple_type_size_in_bits): Move upward in file. + (modified_type_die): Use instead of PTR_SIZE for POINTER_TYPE + and REFERENCE_TYPE. + * config/mips/mips.c (mips_valid_pointer_mode): New function. + (TARGET_VALID_POINTER_MODE): Use and define. + * config/mips/mips-protos.h (mips_valid_pointer_mode): Declare. + +2002-10-11 Geoffrey Keating + + * cse.c (mention_regs): Set SUBREG_TICKED to the register number, + not the address of the REG. + (struct cse_reg_info): Make subreg_ticked unsigned. + +2002-10-11 Janis Johnson + + * doc/compat.texi: Add info about C++ libraries. + +2002-10-11 Richard Henderson + + PR opt/8165 + * gcse.c (adjust_libcall_notes): Also adjust notes for INSN. + +2002-10-11 John David Anglin + + * cfganal.c (dfs_enumerate_from): Use PARAMS. + * genautomata.c (output_insn_code_cases): Likewise. + * real.c (real_format): Likewise. + * tree.c (tree_size): Revise expressions using TREE_CODE_LENGTH to + ensure value is promoted before doing subtraction. + +Fri Oct 11 22:22:38 CEST 2002 Jan Hubicka + + * calls.c (expand_call): Simplify noreturn call. + + PR c/7344 + * cfgbuild.c (make_edges): Create edge cache when we do have + large jumptable. + * expr.c (do_tablejump): Note size of maximal jumptable. + * function.c (prepare_function_start): Zero out size. + * function.h (function): Add max_jumptable_ents. + + * cfgcleanup.c (insn_match_p): Verify sibcall flag for calls to. + +Fri Oct 11 12:34:33 2002 J"orn Rennecke + + * sh.md (movv8qi_i+2): For V8QI destinations, generate V4HI + register for mperm_w operation. + +Fri Oct 11 10:56:17 2002 J"orn Rennecke + + * emit-rtl.c (gen_lowpart_common): When asked to make a vector from + an integer, use simplify_gen_subreg. + +2002-10-10 Diego Novillo + + * calls.c (flags_from_decl_or_type): Make extern. + (ECF_*): Move ... + * rtl.h (ECF_*): ... here. + (flags_from_decl_or_type): Declare. + +2002-10-10 Roger Sayle + Nathan Sidwell + + * fold-const.c (fold) [RSHIFT_EXPR]: Optimize arithmetic right + shifts of the form -1 >> x. + +Thu Oct 10 16:52:55 CEST 2002 Jan Hubicka + + * cfgcleanup.c (insn_match_p): Verify sibcall flag for calls to. + +2002-10-10 Aldy Hernandez + + * extend.texi (Vector Extensions): Remove comment about single + element vectors. + +2002-10-10 Kaveh R. Ghazi + + * fold-const.c (size_htab_hash): Use htab_hash_pointer. + * function.c (insns_for_mem_hash): Likewise. + * varasm.c (STRHASH): Likewise. + +2002-10-10 Stuart Hastings + + * cse.c (struct cse_reg_info): Add subreg_ticked. + (SUBREG_TICKED): New. + (get_cse_reg_info): Initialize SUBREG_TICKED. + (mention_regs): Use it. + (invalidate): Set SUBREG_TICKED. + (invalidate_for_call): Likewise. + (addr_affects_sp_p): Likewise. + +2002-10-10 Jakub Jelinek + + * config/i386/i386.md (tls_local_dynamic_base): Put pic reg + into proper operand. + +2002-10-10 Denis Chertykov + + * config/ip2k/ip2k.c (function_epilogue): Optimize stack + deallocation. + * config/ip2k/libgcc.S: Combine routines used by function + epilogue. + +2002-10-10 Jim Wilson + + * cse.c (fold_rtx): Don't perform associative optimization for DIV and + UDIV. + +2002-10-10 David Edelsohn + + * config/rs6000/aix52.h: New file. + * config/rs6000/t-aix52: New File. + * config.gcc (rs6000-ibm-aix5.1.*): New entry. + (rs6000-ibm-aix[56789].*): Default to AIX 5.2. + +Thu Oct 10 19:37:54 CEST 2002 Jan Hubicka + + PR target/5610 + * invoke.texi (-msse-math): Kill + (-msse): Add note to mfpmath=sse. + +Thu Oct 10 17:08:30 CEST 2002 Jan Hubicka + + PR target/7723 + * i386.c (ix86_expand_vector_move): Do not generate const0->mem moves. + +2002-10-10 Neil Booth + + PR preprocessor/8179 + * gcc.c (cpp_options): Add {ansi}, move %{m*} to same location + as cc1_options. + (default_compilers): Pass debug options when preprocessing + stdin. + +2002-10-06 Richard Henderson + + * toplev.c (rest_of_compilation): Revert opt/2960 change. + +Wed Oct 9 21:18:43 CEST 2002 Jan Hubicka + + * i386.c (*_cost): Add branch costs. + (override_options): set ix86_branch_cost. + (ix86_expand_int_movcc): Use BRANCH_COST. + * i386.h (costs): Add branch_cost. + +2002-10-09 Zack Weinberg + + PR c/7353 + * c-decl.c (start_decl): Unconditionally issue error for + 'typedef foo = bar'. + (finish_decl): Remove special case for TYPE_DECL with initializer. + + * doc/extend.texi: Delete "Naming Types" section. Change all + cross-references to that section to refer to "Typeof" instead. + Add the useful safe-max()-macro example from "Naming Types" to + "Typeof", rewritten using that extension. Add some compatibility + notes to "Typeof." + +2002-10-09 Kaveh R. Ghazi + + * loop.c: Revert 2002-08-15 change. + (LOOP_REGNO_NREGS): Ensure type is int. + +2002-10-09 David Edelsohn + + * config/rs6000/rs6000.md (extenddftf2): Change to define_insn + which copies first FPR and clears second. + (extendsftf2): Same. + (floatditf2): Fix typo. + (floatsitf2): Same. + (fix_trunctfdi2): Same. + (fix_trunctfsi2): Same. + +2002-10-09 Kaveh R. Ghazi + + * conflict.c (arc_hash): Change return type to hashval_t. + * cselib.c (get_value_hash): Likewise. + * genautomata.c (automaton_decl_hash, insn_decl_hash, decl_hash, + state_hash, automata_list_hash): Likewise. + * read-rtl.c (def_hash): Likewise. + * tree.c (type_hash_hash): Likewise. + +2002-10-08 Aldy Hernandez + + * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Call + prologue_epilogue_contains instead of using REG_MAYBE_DEAD notes. + +Wed Oct 9 15:54:49 2002 J"orn Rennecke + + * sh.md (ffssi2): Fix emitted code. + +2002-10-09 Ulrich Weigand + + * cse.c (insn_live_p): Pass insn pattern, not full insn + to may_trap_p. + +2002-10-09 Neil Booth + + * cppmacro.c (paste_tokens): Only allow / to paste with =. + +2002-10-09 David Edelsohn + + * config/rs6000/rs6000.md (movdf splitter): Use gen_int_mode on + 64-bit hosts. + (movtf_internal): Reference correct displacement for second value + in memory. + (movtf splitter): Correct generation of constants in 64-bit mode. + +2002-10-09 Alan Modra + + * libgcc2.c (__floatdisf): Properly cure double rounding. + +2002-10-09 Gabriel Dos Reis + + * c-common.c (cb_register_builtins): Define __WCHAR_MAX__. + * doc/cpp.texi (Common Predefined Macros): Document. + +2002-10-09 Gabriel Dos Reis + + PR doc/7484 + * doc/invoke.texi (Option Summary): List + -Wmissing-declarations as a C only option. + +2002-10-08 Roger Sayle + + * fold-const.c (fold) [LROTATE_EXPR, RROTATE_EXPR]: Optimize + left and right rotates of ~0, i.e. integer_all_onesp (arg0). + [LSHIFT_EXPR, RSHIFT_EXPR]: Optimize shifts and rotates of zero. + +Tue Oct 8 01:24:19 CEST 2002 Jan Hubicka + + * i386.c (x86_sse_partial_reg_dependency, x86_sse_partial_regs, + x86_sse_typeless_stores, x86_sse_load0_by_pxor): New global + variables. + (safe_vector_operand): Update sse_clrv4sf call. + (ix86_expand_buildin): Likewise + * i386.h (x86_sse_partial_reg_dependency, x86_sse_partial_regs, + x86_sse_typeless_stores, x86_sse_load0_by_pxor): Declare. + (TARGET_SSE_PARTIAL_REG_DEPENDENCY, TARGET_SSE_PARTIAL_REGS, + TARGET_SSE_TYPELESS_STORES, TARGET_SSE_TYPELESS_LOAD0): New + macros. + * i386.md (movsf*, movdf*, movti, movv4sf, movv2df, movv16qi, movv8hi, + movv4si): Obey the new flags. + (floatsi2sf, floatdi2sf, truncatedf2sf): Emit extra load of 0 to avoid + reformating penalty. + (anddf, cmov patterns): Avoid reformating by first converting. + (sse_cvtsd2ss): Fix predicate. + (sse2_clrti): Fix mode, + (sse_clrv4sf): Avoid unspec. + +2002-10-08 Jakub Jelinek + + * config/sparc/t-linux64 (MULTILIB_OPTIONS): Remove + mno-app-regs|mcmodel=medany. + (MULTILIB_DIRNAMES, MULTILIB_OSDIRNAMES): Remove alt. + (MULTILIB_EXCEPTIONS, MULTILIB_EXCLUSIONS, MULTILIB_MATCHES): Remove. + (CRTSTUFF_T_CFLAGS): Define. + +2002-10-08 Roger Sayle + + PR target/8087 + * simplify-rtx.c (avoid_constant_pool_reference): Allow constant + pool references that are constructed using LO_SUM. + +2002-10-08 Nathan Sidwell + + * c-opts.c (c_common_decode_option): Add warn_strict_aliasing to + -Wall. + * c-typeck.c (build_c_cast): Use warn_strict_aliasing, tweak + message. + * flags.h (warn_strict_aliasing): Declare. + * toplev.c (warn_strict_aliasing): Define. + (lang_independent_options): Add it. + * doc/invoke.texi (-Wstrict-aliasing): Document it. + +2002-10-08 Zack Weinberg + + * system.h (GCCBUGURL): Delete. + * version.c (bug_report_url): New. Add commentary about + modifying both these strings in modified distributions. + * version.h: Declare bug_report_url. + + * diagnostic.c, gcc.c, gcov.c: Globally replace GCCBUGURL with + bug_report_url. + +2002-10-08 Nick Clifton + + * config/rs6000/spe.h (__ev_set_acc_u64): Use __ev_create_u64 to + convert uint64_t into __ev64_opaque__. + (__ev_set_acc_s64): Likewise, but using signed types. + +2002-10-08 Ulrich Weigand + + * config/s390/s390.md ("*doloop_si_long"): Add missing operand. + ("*doloop_di_long"): Likewise. + +Tue Oct 8 16:50:10 CEST 2002 Jan Hubicka + + * print-rtl.c (print_rtx): Increase buffer size for real numbers. + +2002-10-08 Richard Sandiford + + * config/mips/mips.md (define_attr cpu): Add r4111. + +2002-10-08 Anthony Green + + * bitmap.c (bitmap_equal_p): Clear all bitmap_head fields. + +2002-10-08 Michael Hayes + + * config/c4x/c4x.c (c4x_print_operand): Enlarge buffer + for REAL_VALUE_TO_DECIMAL output. + +2002-10-07 Richard Henderson + + * cse.c (fixed_base_plus_p): Turn FIXED_BASE_PLUS_P into a + function; cleanup PLUS case by using recursion. Update all users. + (NONZERO_BASE_PLUS_P): Remove. + (find_comparison_args): Use rtx_addr_can_trap_p instead. + (fold_rtx): Use nonzero_address_p. + * rtl.h (nonzero_address_p): Declare. + * rtlanal.c (rtx_varies_p): Handle ADDRESSOF. + (rtx_addr_can_trap_p): Likewise. + (nonzero_address_p): New. + * simplify-rtx.c (NONZERO_BASE_PLUS_P): Remove. + (simplify_relational_operation): Use nonzero_address_p. + +2002-10-07 David Edelsohn + + * config/rs6000/rs6000.c (rs6000_override_options): Set + real_format_for_mode for IBM extended format, if enabled. + (easy_fp_constant): Add TFmode. + (rs6000_legitimize_address): Add TFmode. + (rs6000_legitimate_address): Same. + (function_arg_advance): TFmode uses two FPRs. + (rs6000_emit_prologue): Fix warning. + (rs6000_output_function_epilogue): Add TFmode. + (output_toc): Add TFmode. + * rs6000.h (SLOW_UNALIGNED_ACCESS): Add TFmode. + (LEGITIMATE_OFFSET_ADDRESS_P): Add TFmode. + * rs6000.md (movtf splitter): Load TFmode constant. + +2002-10-07 Dale Johannesen + + * rtl.h: Add NOTE_PRECONDITIONED. + * unroll.c: Set it. + * loop.c: Set loop_info->preconditioned from it. + * doloop.c: Permit doloop treatment when loop_info->preconditoned. + +2002-10-07 Richard Henderson + + * config/i960/i960.c (i960_setup_incoming_varargs): Create a + new rtx for comparing the argument pointer against zero. + (i960_va_start): Similarly. + +2002-10-07 Richard Henderson + + * config/i960/i960.md (*): Use TFmode, not XFmode. + * config/i960/i960.c (*): Likewise. + (i960_arg_size_and_align): Remove XFmode alignment hack. + (i960_round_align): Merge code from ROUND_TYPE_ALIGN. + * config/i960/i960.h (LONG_DOUBLE_TYPE_SIZE): Use 128, not 96. + (MAX_LONG_DOUBLE_TYPE_SIZE): Likewise. + (DATA_ALIGNMENT, ROUND_TYPE_SIZE): Remove. + +2002-10-07 Richard Henderson + + * config/fp-bit.c (EXTENDED_FLOAT_STUBS): Flush out all XF/TFmode + entry points; use void return value and argument list. + +2002-10-06 Andreas Bauer + + * calls.c (expand_call): Fix function-is-volatile check. + +2002-10-05 Naohiko Shimizu + + * t-pdp11: Add MULTILIB support for msoft-float. + * pdp11.h (LEGITIMATE_CONSTANT_P): Fix soft-float case. + + * t-pdp11: Add LIB2FUNCS_EXTRA. + * pdp11.c (pdp11_output_function_prologue): Restrict offset to 16bit, + add preceding 0 to the octal constant, rename 'fp' to 'r5', rename + 'fldd' to 'ldd', rename 'fstd' to 'std'. + (pdp11_output_function_epilogue): Likewise. + (output_move_quad): Make the comment gas compatible. + (output_ascii): Add preceding 0 to the octal constant. + (print_operand_address): Add pre_modify, post_modify. + (output_addr_const_pdp11): Add preceding 0 to the octal constant. + * pdp11.h (GO_IF_LEGITIMATE_ADDRESS) : Add 'movb' pre_modify case + with the indication of Paul Koning. + (PRINT_OPERAND): Fix floating constant. + * pdp11.md (movdi): Restrict matching pattern. + (movqi): Generalize the matching pattern. + (movdf): Restrict matching pattern. + (zero_extendqihi2): Change constant representation. + (floatsidf2): Fix wrong operands. + (addqi3): Fix wrong instruction name. + (subqi3): Fix wrong instruction name. + (andsi3, andhi3, andqi3): Simplify and fix to use 'bic'. + (xorsi3): Fix wrong insn. + (one_cmplqi2): Add two operand pattern. + (lsrsi3): New. + (negsi2): New. + (call): Add register indirect case. + (mod): Fix wrong subreg. + +2002-10-06 Eric Botcazou + Volker Reichelt + + PR c/7411 + * expr.c (expand_expr) [PLUS]: Simplify after the operands + have been expanded in EXPAND_NORMAL mode. + +2002-10-06 Richard Henderson + + * config/rs6000/rs6000.md (load_toc_v4_PIC_2): Fix base constraint. + +2002-10-06 Richard Henderson + + PR optimization/2960 + * toplev.c (rest_of_compilation): Don't copy_loop_headers if + optimize_size. + +2002-10-06 Alexandre Oliva + + * config/mips/mips.h (SIZE_TYPE, PTRDIFF_TYPE): Override + previously definitions. + +2002-10-06 Frank Ch. Eigler + + * cppinit.c (init_standard_includes, parse_option): Use strncmp. + * c-opts.c (find_opt): Similarly. + +Sat Oct 5 22:48:06 CEST 2002 Jan Hubicka + + * athlon.md: rewrite to DFA. + * i386 (ix86_adjust_cost): Drop memory latency code. + (ia32_use_dfa_pipeline_interface): Return true for Athlon. + +2002-10-05 Jakub Jelinek + + * gcc.c (set_multilib_dir): Don't access *end. + Use memcpy instead of strncpy. Don't write beyond malloced buffer. + (print_multilib_info): Don't show paths starting with ".:". + * genmultilib: Add new option, "yes" if multilibs are enabled. + Update comments. If multilibs not enabled, print .:${osdirout} + for each directory. If multilibs are enabled, always print + ${dirout}:${osdirout}, even if the two are the same. + * Makefile.in (s-mlib): Pass @enable_multilib@ to genmultilib. + Pass all MULTILIB_* variables to genmultilib even if + --disable-multilib but MULTILIB_OSDIRNAMES is not empty. + +2002-10-04 Zack Weinberg + + * gcc.c (process_command): Set .validated for -pipe. Correct + grammar in comment. + +2002-10-04 Bruce Korb + + * fixinc/inclhack.def(hpux11_abs): use format fix + * fixinc/fixincl.x: regenerate + * fixinc/tests/base/stdlib.h: accommodate new fix test + +Sat Oct 5 19:42:45 CEST 2002 Jan Hubicka + + * c-common.c (cb_register_builtins): Use really_no_inline. + +2002-10-04 David Edelsohn + + * unroll.c (copy_loop_body): Remove REG_EQUAL note attached to + copied instruction if the note is not loop invariant. + +2002-10-04 Loren J. Rittle + + * gcc/ginclude/stddef.h: Support the FreeBSD 5 typedef system. + +2002-10-04 Steve Ellcey + + * doc/invoke.texi (HPPA): Add -mlinker-opt, -mgnu-ld, + and -mhp-ld options to list of options. Add -mgnu-ld + and -mhp-ld option descriptions. + +2002-10-04 Steve Ellcey + + * fixinc/inclhack.def (hpux11_abs): New. + (stdio_va_list): change __va_list__ to __gnuc_va_list. + * fixinc/fixincl.x: Rebuild. + +2002-10-04 Roger Sayle + + * config/i386/i386.h (processor_costs): Add new fields fadd, + fmul, fdiv, fabs, fchs and fsqrt to costs structure. + (RTX_COSTS): Use these fields to determine the RTX costs + of floating point addition/subtraction, multiplication, + division, fabs, negation and square root respectively. + * config/i386/i386.c (size_cost): Provide instruction sizes + for these new fields. + (i386_cost, i486_cost, pentium_cost, pentiumpro_cost, + k6_cost, athlon_cost, pentium4_cost): Provide typical cycle + counts for these new fields for all x86 processor variants. + +2002-10-04 Kaveh R. Ghazi + + * mips.c (mips_const_double_ok): Delete unused variable. + + * gengtype.c (rtx_next): Change type to int. + +2002-10-04 Andreas Jaeger + + * config/i386/t-linux64 (MULTILIB_OSDIRNAMES): Fix value. + +2002-10-04 Richard Henderson + + * real.h (SIGNIFICAND_BITS): Add one more word. + (CONST_DOUBLE_FORMAT): Accomodate 6 words. + * real.c (times_pten): New. + (real_to_decimal, real_from_string): Use it. + (sticky_rshift_significand): Use & to find modulus. + (rshift_significand, lshift_significand): Likewise. + (do_divide): Apply sticky bit after normalization. + (real_to_decimal, real_to_hexadecimal): Fix sign of Inf and NaN. + +2002-10-03 Andreas Bauer + + * doc/tm.texi (FUNCTION_OK_FOR_SIBCALL): Remove. + (TARGET_FUNCTION_OK_FOR_SIBCALL): New. + +2002-10-03 Andreas Jaeger + + * gengtype.c (adjust_field_rtx_def): Cast variables of type size_t + to unsigned long, adjust printf format string. + (output_mangled_typename): Likewise. + +2002-10-03 Jason Thorpe + + * config/vax/vax.c (vax_output_function_prologue): Use asm_fprintf. + * config/vax/vax.h (VAX_FUNCTION_PROFILER_NAME): New. + (FUNCTION_PROFILER): Rewrite to use ASM_GENERATE_INTERNAL_LABEL, + assemble_name, asm_fprintf, and VAX_FUNCTION_PROFILER_NAME. + (ASM_OUTPUT_MI_THUNK): Use asm_fprintf instead of REGISTER_PREFIX. + (PRINT_OPERAND_PUNCT_VALID_P): Fix comment. + * config/vax/elf.h (FUNCTION_PROFILER): Remove. + (VAX_FUNCTION_PROFILER_NAME): Redefine as "__mcount". + +2002-10-03 Mark Mitchell + + * doc/invoke.texi (-Wabi): Document mangling bug. + +2002-10-04 Alan Modra + + * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use a + name for the tbtab label that depends on the function asm name. + Don't output tbtab label unless optional_tbtab. + (output_mi_thunk): Formatting. + +2002-10-03 Richard Henderson + + * config/m68k/m68k.h (OVERRIDE_OPTIONS): Move additional code ... + * config/m68k/m68k.c (override_options): ... here. + * config/m68k/m68kelf.h (OVERRIDE_OPTIONS): Remove. + * config/m68k/m68kv4.h (OVERRIDE_OPTIONS): Remove. + * config/m68k/linux.h (SUBTARGET_OVERRIDE_OPTIONS): Remove. + * config/m68k/netbsd-elf.h (SUBTARGET_OVERRIDE_OPTIONS): Remove. + +2002-10-03 Richard Henderson + + * real.h (struct real_value): Use ENUM_BITFIELD. + +2002-10-03 Richard Henderson + + * config/i960/i960.md (call, call_value): Use emit_call_insn. + +2002-10-03 Steve Ellcey + + * config/pa/pa64-hpux.h (INIT_ENVIRONMENT): New. + +2002-10-03 Steve Ellcey + + * config.gcc (hppa*64*-*-hpux11*): Check gnu_ld. + * config/pa/pa.h (MASK_GNU_LD): New. + (TARGET_GNU_LD): New. + * config/pa/pa64-hpux.h (LINK_SPEC): Set based + on gnu-ld and MASK_GNU_LD. + (SUBTARGET_SWITCHES): New gnu-ld & hp-ld flags. + +Thu Oct 3 23:35:51 CEST 2002 Jan Hubicka + + * i386.c (athlon_cost): Fix the move costs. + +Thu Oct 3 23:20:58 CEST 2002 Jan Hubicka + + * final.c (final): Use symbol name as function name for profiling. + * profile.c (get_exec_counts): Likewise. + (branch_prob): Likewise. + +2002-10-03 Jakub Jelinek + + * longlong.h (__udiv_qrnnd): Remove PARAMS from prototype. + +2002-10-03 Jakub Jelinek + + * gcc.c (print_multi_os_directory): New variable. + (option_map): Support --print-multi-os-directory. + (struct prefix_list): Add os_multilib field. + (multilib_os_dir): New variable. + (static_specs): Add multilib_options. + (find_a_file): Add multilib argument. Search in GCC or OS multilib + subdirs if nonzero. + (read_specs, execute): Update callers. + (find_file): Likewise. Don't prefix name with multilib_dir, instead + pass 1 as multilib option. + (display_help): Include --print-multi-os-directory. + (add_prefix): Add os_multilib argument. Initialize pl->os_multilib. + (process_command): Update callers. Handle --print-multi-os-directory. + (do_spec_1) ['D']: Use multilib_os_directory if pl->os_multilib is + set. + (main): Update find_a_file and add_prefix callers. + Handle print_multi_os_directory. + (struct mdswitchstr): New. + (mdswitches, n_mdswitches): New variables. + (used_arg): Add MULTILIB_DEFAULT switches too if they are not + present on the command line nor their mutually incompatible + switches. + (default_arg): Optimize. + (set_multilib_dir): Compute multilib_os_dir. Initialize mdswitches + array. + (print_multilib_info): Only print GCC multilib dir name, not OS + multilib dirname. + * genmultilib: Add osdirnames parameter. Output multilib_options + variable. If osdirnames is specified, output dirnames as + dirname:osdirname. + * mklibgcc.in: Use MULTILIB_OSDIRNAMES, --print-multi-directory + and --print-multi-os-directory instead of SHLIB_SLIBDIR_SUFFIXES + to compute libgcc_s soname and install path. + * Makefile.in (libgcc.mk): Pass MULTILIB_OSDIRNAMES instead of + SHLIB_SLIBDIR_SUFFIXES to mklibgcc. + (s_mlib): Pass MULTILIB_OSDIRNAMES or nothing as last genmultilib + argument. + + * config/sparc/t-linux64 (MULTILIB_OSDIRNAMES): Set. + (SHLIB_SLIBDIR_SUFFIXES): Remove. + * config/sparc/linux64.h (STARTFILE_SPEC32, STARTFILE_SPEC64, + ENDFILE_SPEC32, ENDFILE_SPEC64, ENDFILE_COMMON): Remove. + (STARTFILE_SPEC, ENDFILE_SPEC): Don't distinguish between -m32 + and -m64. + * config/sparc/t-sol2-64 (MULTILIB_OSDIRNAMES): Set. + (SHLIB_SLIBDIR_SUFFIXES): Remove. + * config/sparc/sol2-bi.h (STARTFILE_ARCH64_SPEC): Remove. + (STARTFILE_ARCH_SPEC): Remove. + * config/i386/t-linux64 (MULTILIB_OSDIRNAMES): Set. + (SHLIB_SLIBDIR_SUFFIXES): Remove. + * config/i386/linux64.h (STARTFILE_PREFIX_SPEC): Remove. + * config/mips/t-iris6 (MULTILIB_OSDIRNAMES): Set. + (SHLIB_SLIBDIR_SUFFIXES): Remove. + +Thu Oct 3 21:42:20 CEST 2002 Jan Hubicka + + * predict.c (choose_function_section): Avoid choice for linkonce functions. + +Thu Oct 3 15:15:00 CEST 2002 Jan Hubicka + + * i386.md (lea to mul peep2): Fix condition. + +2002-10-02 John David Anglin + + * pa-linux.h (FUNCTION_OK_FOR_SIBCALL): Delete macro. + * pa32-linux.h (FUNCTION_OK_FOR_SIBCALL): Define. + +2002-10-02 David Mosberger-Tang + + * unwind.h (_Unwind_GetTextRelBase): Mark _C argument with + attribute "unused". + + * config/t-libunwind: Mention unwind-sjlj.c. + * unwind-libunwind.c: Change #ifdef __USING_LIBUNWIND_EXCEPTIONS__ + to #ifndef __USING_SJLJ_EXCEPTIONS__. + + * configure.in: Move sjlj-exceptions and --enable-libunwind-exceptions + before inclusion of config.gcc, but after configuring the compiler etc. + Determine default value for --enable-libunwind-exceptions based on + whether the host has a libunwind library (not guaranteed to be correct, + but it's a reasonable first guess and can always be overridden with an + explicit --enable/disable-libunwind-exceptions. + * config.gcc: For target ia64*-*-linux*, mention t-libunwind as a + tmake_file when $use_libunwind_exceptions is enabled. + * Makefile.in: Update comment: LIB2ADDEH is updated not just by + ia64 (e.g., config/t-linux also updates it). + * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS]: Mention -lunwind + along with the shared version of libgcc since the latter requires + the former. + * unwind-libunwind.c: New file. + * config/t-libunwind: Ditto. + +2002-10-02 Nathanael Nerode + + * config.gcc: Remove support for vax-*-vms*. + * config/vax/vms.h: Remove. + * config/vax/xm-vms.h: Remove. + * config/vax/vax-protos.h: Remove VMS-specific code. + * config/vax/vax.c: Remove VMS-specific code. + +2002-10-02 Richard Henderson + + PR opt/7124 + * config/i386/i386.c (ix86_register_move_cost): Increase cost + for secondary_memory_needed pairs. + +2002-10-02 Nathanael Nerode + + * doc/vms.texi: Blow away false include file section. + +2002-10-02 Roger Sayle + + PR optimization/6627 + * toplev.c (force_align_functions_log): New global variable. + * flags.h (force_align_functions_log): Add extern prototype. + * varasm.c (assemble_start_function): Use it to force minimum + function alignment. + * config/i386/i386.h (FUNCTION_BOUNDARY): Set the correct + minimum function alignment to one byte. + (TARGET_PTRMEMFUNC_VBIT_LOCATION): Store the virtual bit in + the least significant bit of vtable member function pointers. + * tree.h (enum ptrmemfunc_vbit_where_t): Move definition to + here from cp/cp-tree.h. + +Wed Oct 2 17:01:36 CEST 2002 Jan Hubicka + + * i386.c (print_operand_address): Use RIP addressing for offsetted + label refs too. + +2002-09-30 David S. Miller + + PR middle-end/7151 + * config/sparc/sparc.md (movdi_insn_sp32_v9): Accept 'e' regs. + (movdi reg/reg split): Match only on sparc32, and v9 when int regs. + +2002-10-01 Andreas Bauer + + * calls.c (expand_call): Remove the `no indirect check' + for sibcall optimization; use function_ok_for_sibcall + target hook; refine check for `function is volatile'. + (FUNCTION_OK_FOR_SIBCALL): Remove the redefinition. + * hooks.c (hook_tree_tree_bool_false): New. + * hooks.h (hook_tree_tree_bool_false): Declare. + * target-def.h (TARGET_FUNCTION_OK_FOR_SIBCALL): New. + (TARGET_INITIALIZER): Add it. + * target.h (struct gcc_target): Add function_ok_for_sibcall. + * config/alpha/alpha.c: (alpha_function_ok_for_sibcall): New. + (TARGET_FUNCTION_OK_FOR_SIBCALL): Redefine accordingly. + * config/alpha/alpha.h: (FUNCTION_OK_FOR_SIBCALL): Remove. + * config/arm/arm-protos.h: (arm_function_ok_for_sibcall): + Remove function declaration. + * config/arm/arm.c: (arm_function_ok_for_sibcall): Make + function static and accept another argument of type `tree'. + (TARGET_FUNCTION_OK_FOR_SIBCALL): Redefine accordingly. + * config/arm/arm.h: (FUNCTION_OK_FOR_SIBCALL): Remove. + * config/frv/frv.h: (FUNCTION_OK_FOR_SIBCALL): Remove. + * config/i386/i386.c: (ix86_function_ok_for_sibcall): New. + (TARGET_FUNCTION_OK_FOR_SIBCALL): Redefine accordingly. + * config/i386/i386.h: (FUNCTION_OK_FOR_SIBCALL): Remove. + * config/pa/pa-linux.h: (FUNCTION_OK_FOR_SIBCALL): Remove. + (TARGET_HAS_STUBS_AND_ELF_SECTIONS): New definition. + * config/pa/pa.c: (pa_function_ok_for_sibcall): New. + (TARGET_FUNCTION_OK_FOR_SIBCALL): Redefine accordingly. + * config/pa/pa.h: (FUNCTION_OK_FOR_SIBCALL): Remove. + * config/rs6000/rs6000-protos.h: (function_ok_for_sibcall): + Remove function declaration. + * config/rs6000/rs6000.c: (rs6000_function_ok_for_sibcall): + Rename function_ok_for_sibcall to rs6000_function_ok_for_sibcall; + rename first argument to `decl'; accept another argument + of type `tree'; make static. + (TARGET_FUNCTION_OK_FOR_SIBCALL): Redefine accordingly. + * config/rs6000/rs6000.h: (FUNCTION_OK_FOR_SIBCALL): Remove. + * config/sh/sh.c: (sh_function_ok_for_sibcall): New. + (TARGET_FUNCTION_OK_FOR_SIBCALL): Redefine accordingly. + * config/sh/sh.h: (FUNCTION_OK_FOR_SIBCALL): Remove. + * config/sparc/sparc.c: (sparc_function_ok_for_sibcall): New. + (TARGET_FUNCTION_OK_FOR_SIBCALL): Redefine accordingly. + * config/sparc/sparc.h: (FUNCTION_OK_FOR_SIBCALL): Remove. + * config/xtensa/xtensa.h: (FUNCTION_OK_FOR_SIBCALL): Remove. + +2002-10-01 Roger Sayle + + * unroll.c (loop_iterations): Revert 2002-09-08 change. + +2002-10-01 Richard Henderson + + * real.c (real_to_decimal): Crop trailing zeros for DIGITS < 0. + (real_to_hexadecimal): Likewise. + * print-rtl.c (print_rtx): If we are linked with real.c, don't + dump the XWINT fields of a floating point CONST_DOUBLE. + +2002-10-01 Jason Thorpe + + * config/vax/elf.h (FUNCTION_PROFILER): Fix __mcount call. + +2002-10-01 Richard Henderson + + * calls.c (precompute_register_parameters): Force non-legitimate + constants into pseudos. + +2002-10-01 Nick Clifton + + * config/rs6000/spe.md (spe_evrlwi): Add missing third operand + to assembler template. + +2002-10-01 Richard Henderson + + * dwarf2out.c (loc_descriptor_from_tree): Relax requirement + for TLS debug info to !DECL_EXTERNAL. + +2002-10-01 Matt Thomas + Jason Thorpe + + * config.gcc (vax-*-netbsdelf*): Enable configuration. + * config/elfos.h (PCC_BITFIELD_TYPE_MATTERS): Define only + if not already defined. + * config/vax/elf.h: New file. + * config/vax/netbsd-elf.h: New file. + * config/vax/vax.c: Include "debug.h". + (vax_output_function_prologue): Add dwarf2 support. Use + MAIN_NAME_P when checking for VMS_TARGET stack adjust. + * config/vax/vax.h (CONST_OK_FOR_LETTER_P): Add cases for + 'J' [0..63], 'K' [-128..127], 'L' [-32768..32767], + 'M' [0..255], 'N' [0..65535], and, 'O' [-63..-1]. + (VAX_ISTREAM_SYNC): Remove. + (INITIALIZE_TRAMPOLINE): Use gen_sync_istream. + (JUMP_TABLES_IN_TEXT_SECTION): Define. + (ASM_OUTPUT_REG_POP): Use reg_names for the stack pointer. + (ASM_OUTPUT_ADDR_VEC_ELT): Use ASM_GENERATE_INTERNAL_LABEL + and assemble_name. + (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise. + (PRINT_OPERAND_PUNCT_VALID_P): Accept '|'. + (PRINT_OPERAND): Output REGISTER_PREFIX for '|'. + (INCOMING_RETURN_ADDR_RTX): Define. + * config/vax/vax.md (VUNSPEC_BLOCKAGE) + (VUNSPEC_SYNC_ISTREAM): Define. + (blockage): Use VUNSPEC_BLOCKAGE. + (sync_istream): New insn. + +2002-10-01 Richard Henderson + + * config/vax/vax.md (call_pop, *call_pop, call_value_pop) + (*call_value_pop, call, call_value): Add dwarf2 EH support. + (*call): New insn. + +2002-10-01 Nathan Sidwell + + PR c/8083 + * c-typeck.c (build_c_cast): Warn about type punning which breaks + type based aliasing. + +2002-10-01 Mark Mitchell + + * stor-layout.c (update_alignment_for_field): New function. + (place_union_field): Use it. + (place_field): Likewise. + +2002-10-01 Nathan Sidwell + + PR other/8077 + * gcc.c (cc1_options): Add space on -auxbase-strip. + +2002-10-01 Jim Wilson + + * config/v850/v850.h (EPILOGUE_USES): Define. + +2002-09-30 Andrew Haley + + * flow.c (insn_dead_p): When using non-call-exceptions, don't + eliminate insns that may trap. + * cse.c (insn_live_p): Likewise. + +2002-10-01 Richard Sandiford + + * config/mips/mips.h (PROCESSOR_R4121): Rename to PROCESSOR_R4120. + (TARGET_MIPS4121): Rename to TARGET_MIPS4120. + * config/mips/mips.c (mips_cpu_info): Rename vr4121 to vr4120. + * config/mips/mips.md: Apply same renaming here. + +2002-10-01 Richard Sandiford + + * config/mips/mips.c (PROCESSOR_R4320, TARGET_MIPS4320): Remove. + (GENERATE_MULT3_SI): Remove use of TARGET_MIPS4320. + * config/mips/mips.c (mips_cpu_info): Remove vr4320 entry. + * config/mips/mips.md (define_attr cpu): Remove r4320. + Remove vr4320 scheduler and uses of TARGET_MIPS4320. + +2002-10-01 Richard Sandiford + + * config/mips/mips.c (mips16_strings): New variable. + (mips_output_function_epilogue): Clear the SYMBOL_REF_FLAG of every + symbol in mips16_strings. Free the list. + (mips_encode_section_info): Keep track of local strings. + +2002-10-01 Richard Sandiford + + * config/mips/mips.md (bunge, bltgt, bungt): New define_expands. + (sordered_df, sordered_sf): Remove. + * config/mips/mips.c (get_float_compare_codes): New fn. + (gen_int_relational, gen_conditional_move): Use it. + +2002-10-01 Richard Sandiford + + * config/mips/mips-protos.h (mips_emit_fcc_reload): Declare. + * config/mips/mips.h (PREDICATE_CODES): Add fcc_register_operand. + * config/mips/mips.c (fcc_register_operand): New function. + (mips_emit_fcc_reload): New function, extracted from reload_incc. + (override_options): Allow TFmode values in float registers + if ISA_HAS_8CC. + * cnfig/mips/mips.md (reload_incc): Change destination prediate + to fcc_register_operand. Remove misleading source constraint. + Use mips_emit_fcc_reload. + (reload_outcc): Duplicate reload_incc. + +2002-09-30 Zack Weinberg + + * gcc.c (validate_switches): Handle all new forms of spec + syntax introduced recently. Now returns a char *. + (validate_all_switches): Repetitive logic broken out to... + (validate_switches_from_spec): ...here. + * mklibgcc.in: Don't @-flag commands to generate .oS files. + +2002-09-30 Ulrich Weigand + + * longlong.h: Partially synchronize with GMP-4.1 version: + Use i370 definitions also for s390. + Add generic definition of umul_ppmm in terms of smul_ppmm. + [s390] (umul_ppmm): Remove. + [s390] (smul_ppmm): Fix incorrect assembler constraints. + [s390] (smul_ppmm, sdiv_qrnnd): Rename __xx to __x. + +2002-09-30 Bob Wilson + + * config/xtensa/xtensa.h (REG_CLASS_NAMES, REG_CLASS_CONTENTS): + Add new RL_REGS register class. + (PREFERRED_RELOAD_CLASS, PREFERRED_OUTPUT_RELOAD_CLASS): + Call xtensa_preferred_reload_class for both input and output reloads. + * config/xtensa/xtensa.c (xtensa_regno_to_class): Use new RL_REGS class. + (xtensa_preferred_reload_class): Handle output reloads; use RL_REGS + instead of either AR_REGS or GR_REGS classes. + (xtensa_secondary_reload_class): Use new RL_REGS class. + * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class): Update. + +2002-09-30 John David Anglin + + * pa.c (hppa_encode_label): Don't drop '*' from function labels. + (pa_strip_name_encoding): Strip '@' and '*', in that order. + * pa.h (ASM_OUTPUT_LABELREF): Output user_label_prefix except when + there is a '*' prefix in NAME. + +Mon Sep 30 21:33:23 CEST 2002 Jan Hubicka + + * reload.c (push_reload): Handle subregs and secondary memory. + * reload1.c (gen_reload): Likewise. + + * jump.c (reg_or_subregno): New function. + * rtl.h (reg_or_subregno): Declare + * unroll.c (find_splittable_givs): Handle subregs. + +2002-09-30 Mark Mitchell + + * store-layout.c (finish_record_layout): Add free_p parameter. + (layout_type): Pass it. + * tree.h (finish_record_layout): Update prototype. + +Mon Sep 30 14:57:18 CEST 2002 Jan Hubicka + + * i386.h (TARGET_CPP_CPU_BUILTINS): Define __SSE_MATH__. + + * gcse.c (cprop_jump): Check that the register has not + been modified + (cprop_jump): Likewise. + +2002-09-30 Richard Earnshaw + + * arm.h (BASE_REG_CLASS): Always return LO_REGS for Thumb. + (MODE_BASE_REG_CLASS, case Thumb): Only return BASE_REGS if we know + that we have a SImode access, and only then if reload hasn't completed; + for all other cases, use LO_REGS. + +2002-09-29 Kaveh R. Ghazi + + * openbsd.h: Fix typo in last change. + +2002-09-29 Richard Henderson + + * real.c (real_from_string): Apply sign last. Tidy exponent handling. + +2002-09-29 Richard Henderson + + PR c/8002 + * combine.c (force_to_mode): Handle FLOAT_MODE destinations + for CONST_INT. + +2002-09-29 David Edelsohn + + * real.h (ibm_extended_format): Declare. + * real.c (encode_ibm_extended, decode_ibm_extended): New + functions. + +2002-09-29 Kaveh R. Ghazi + + * darwin-protos.h (darwin_asm_output_dwarf_delta): Prototype. + + * ia64.c (ia64_hpux_asm_file_end): Const-ify. + +2002-09-29 John David Anglin + + * expmed.c (extract_bit_field): Fix bit-field extraction from SUBREGs. + +2002-09-29 Kazu Hirata + + * builtins.def: Fix comment formatting. + * c-common.def: Likewise. + * cfgcleanup.c: Likewise. + * combine.c: Likewise. + * gengtype.c: Likewise. + * params.def: Likewise. + * predict.def: Likewise. + * rtl.def: Likewise. + * stab.def: Likewise. + * stor-layout.c: Likewise. + * tree.def: Likewise. + * config/darwin.c: Likewise. + * config/darwin.h: Likewise. + * config/dbxcoff.h: Likewise. + * config/elfos.h: Likewise. + * config/fp-bit.c: Likewise. + * config/freebsd-spec.h: Likewise. + * config/interix.h: Likewise. + * config/libgloss.h: Likewise. + * config/linux-aout.h: Likewise. + * config/linux.h: Likewise. + * config/lynx-ng.h: Likewise. + * config/lynx.h: Likewise. + * config/netbsd-aout.h: Likewise. + * config/netbsd.h: Likewise. + * config/netware.h: Likewise. + * config/psos.h: Likewise. + * config/ptx4.h: Likewise. + +2002-09-28 Kazu Hirata + + * ChangeLog.4: Fix typos. + * ChangeLog.6: Likewise. + * FSFChangeLog.10: Likewise. + * genattrtab.c: Fix comment typos. + * haifa-sched.c: Likewise. + * real.c: Likewise. + * tree.h: Likewise. + * config/arm/arm.c: Likewise. + * config/arm/crti.asm: Likewise. + * config/arm/crtn.asm: Likewise. + * config/frv/frv.c: Likewise. + * config/frv/frv.md: Likewise. + * config/h8300/h8300.md: Likewise. + * config/i386/rtemself.h: Likewise. + * config/ia64/unwind-ia64.c: Likewise. + * config/ip2k/ip2k.h: Likewise. + * config/m88k/m88k.c: Likewise. + * config/m88k/m88k.md: Likewise. + * config/mips/sr71k.md: Likewise. + * config/mmix/mmix.c: Likewise. + * config/rs6000/rs6000.c: Likewise. + * config/sh/sh.md: Likewise. + +2002-09-26 Theodore A. Roth + + * config/avr/avr.c: Eliminate use of _PC_ in pc relative insns. + * config/avr/avr.md: Ditto. + +2002-09-27 Alexander N. Kabaev + + PR preprocessor/8055 + * cppmacro.c (stringify_arg): Do not overflow the buffer + with the terminating NUL when the argument to be stringified + has no tokens. + +2002-09-27 Richard Henderson + + * unroll.c (simplify_cmp_and_jump_insns): New. + (unroll_loop): Use it. Use simplify_gen_foo+force_operand + instead of expand_simple_foo. + +2002-09-27 Richard Henderson + + PR optimization/7520 + * cfganal.c (flow_active_insn_p): New. + (forwarder_block_p): Use it. + +2002-09-27 Richard Henderson + + * emit-rtl.c (active_insn_p): Revert last change. + +2002-09-27 Jakub Jelinek + + * doc/extend.texi (tls_model): Document. + * varasm.c (decl_tls_model): New. + * c-common.c (handle_tls_model_attribute): New. + (c_common_attribute_table): Add tls_model. + * config/alpha/alpha.c (alpha_encode_section_info): Use + decl_tls_model. + * flags.h (enum tls_model, flag_tls_default): Move... + * tree.h (enum tls_model, flag_tls_default): ...here. + (decl_tls_model): New prototype. + * config/ia64/ia64.c (ia64_encode_section_info): Likewise. + * config/i386/i386.c (ix86_encode_section_info): Likewise. + * config/i386/i386.md (tls_global_dynamic, tls_local_dynamic_base): + Allow !flag_pic. + +2002-09-27 Kazu Hirata + + * LANGUAGES: Follow spelling conventions. + * rtl.def: Likewise. + * sbitmap.c: Likewise. + * sched-int.h: Likewise. + * sched-rgn.c: Likewise. + * sibcall.c: Likewise. + * simplify-rtx.c: Likewise. + * ssa.c: Likewise. + * stab.def: Likewise. + * stmt.c: Likewise. + * stor-layout.c: Likewise. + * target.h: Likewise. + * timevar.c: Likewise. + * toplev.c: Likewise. + * tree-dump.c: Likewise. + * tree-inline.c: Likewise. + * tree.c: Likewise. + * tree.def: Likewise. + * tree.h: Likewise. + * unroll.c: Likewise. + * varasm.c: Likewise. + * vmsdbgout.c: Likewise. + * treelang/treelang.texi: Likewise. + * treelang/treetree.c: Likewise. + +2002-09-27 Kazu Hirata + + * config/h8300/h8300.c (compute_saved_regs): Use a macro + instead of a hard register number. + (get_shift_alg): Use an enumerated type instead of numbers. + (h8300_shift_needs_scratch_p): Likewise. + +2002-09-26 Kazu Hirata + + * varasm.c (force_data_section): Remove. + (assemble_constant_align): Likewise. + * output.h: Remove corresponding prototypes. + +2002-09-26 Roger Sayle + + * stmt.c (expand_exit_loop_if_false): Expand a simple conditional + jump, if the loop to exit is the top of the current nesting stack. + +2002-09-26 Torbjorn Granlund + + * libgcc2.c (fixunsdfdi, fixunssfdi): Rewrite, avoiding `long long' + arithmetic. + +2002-09-26 David S. Miller + + PR optimization/7335 + * calls.c (emit_library_call_value_1): Passing args by reference + converts a CONST function into a PURE one. + +2002-09-26 David Edelsohn + + * dbxout.c (FORCE_TEXT): Switch to current_function_decl, not + text_section. + * xcoffout.h (DBX_STATIC_BLOCK_START): Remove explicit change to + text section. + * config/rs6000/rs6000.c (rs6000_override_options): Allow + function-sections and data-sections functionality on AIX. + +2002-09-26 David Edelsohn + Dale Johannesen + + * config/rs6000/rs6000.c (rs6000_emit_move): Insert zero-extend + in RTL for sub-word loads from memory. + +2002-09-26 Richard Henderson + + PR c/7160 + * sched-deps.c (sched_analyze_insn): Make clobber insns depend + on call insns. + +2002-09-26 Richard Henderson + + * emit-rtl.c (const_double_htab_eq): Remove unused variable. + +2002-09-26 Chris Lattner + + * ssa.c (rename_insn_1): Handle RENAME_NO_RTX correctly when + handling undefined values. + +2002-09-26 Richard Henderson + + PR opt/7520 + * emit-rtl.c (active_insn_p): Consider a clobber of the + function return value to be active even after reload. + +2002-09-27 Alan Modra + + * doloop.c (doloop_modify_runtime ): Adjust + by absolute loop increment, not loop increment. + +2002-09-26 Kazu Hirata + + * c-common.h: Follow spelling conventions. + * cpplex.c: Likewise. + * cpplib.h: Likewise. + * gthr-dce.h: Likewise. + * gthr-posix.h: Likewise. + * optabs.c: Likewise. + * output.h: Likewise. + * profile.c: Likewise. + * protoize.c: Likewise. + * ra-rewrite.c: Likewise. + * real.c: Likewise. + * recog.c: Likewise. + * reg-stack.c: Likewise. + * regclass.c: Likewise. + * regmove.c: Likewise. + * reload.c: Likewise. + * reload.h: Likewise. + * reload1.c: Likewise. + * reorg.c: Likewise. + * resource.c: Likewise. + * rtl.h: Likewise. + * rtlanal.c: Likewise. + +2002-09-26 Steve Ellcey + + * config/ia64/ia64.c (ia64_expand_load_address): Ensure correct mode + for symbol address. + +2002-09-24 Eric Christopher + + * config/mips/elf.h: Add HANDLE_SYSV_PRAGMA. + * config/mips/elf64.h: Ditto. + +2002-09-24 Eric Christopher + + * except.c (expand_builtin_extract_return_address): Handle case + where Pmode != ptr_mode. + +2002-09-26 Steve Ellcey + + * config/ia64/hpux.h (ASM_OUTPUT_EXTERNAL_LIBCALL): New + +2002-09-26 Steve Ellcey + + * config/ia64/hpux.h (TARGET_DEFAULT): Include TARGET_ILP32. + +2002-09-26 Igor Shevlyakov + + * combine.c (simplify_set): Don't call to force_to_mode if size + of integer type is larger than HOST_BITS_PER_WIDE_INT. + +2002-09-26 Janis Johnson + + * Makefile.in (qmtest-g++): Fix file path. + +2002-09-26 Ulrich Weigand + + * expr.c (expand_expr) [MINUS_EXPR]: Convert A - const to + A + (-const) on RTX level, even for unsigned types. + +2002-09-26 Ulrich Weigand + + * reload.c (dup_replacements): New function. + (find_reloads): Use it to duplicate replacements at the top level + of match_dup operands. + +2002-09-26 Miles Bader + + * v850.md ("length"): Change default value to 4. + +2002-09-26 Kazu Hirata + + * ChangeLog.1: Follow spelling conventions. + * ChangeLog.4: Likewise. + * ChangeLog.6: Likewise. + * FSFChangeLog.11: Likewise. + * doc/cpp.texi: Likewise. + * doc/invoke.texi: Likewise. + * doc/tm.texi: Likewise. + +2002-09-26 Nick Clifton + + * config.gcc: Add x prefix to v850e case for handling + --with-cpu=v850e. + +2002-09-25 Zack Weinberg + + * gcc.c (input_suffix_matches, switch_matches, + mark_matching_switches, process_marked_switches, + process_brace_body): New functions - split from handle_braces. + (handle_braces): Rewrite; handle %{S:X;T:Y;:D} syntax; accept + and ignore whitespace in more places. + (specs documentation comment): Document %{S:X;T:Y;:D}. + Clarify other %{...} docs. + * doc/invoke.texi: Document %{S:X;T:Y;:D}. Clarify other + %{...} docs. + + * config/arm/aof.h (LINK_SPEC): Change %{ov*,*} to %{ov*}. + * config/rs6000/sysv4.h: Use N-way choice spec syntax. + +2002-09-25 David S. Miller + + PR target/7842 + * config/sparc/sparc.c (set_extends): SImode ASHIFT does not + extend. + +2002-09-25 Richard Henderson + + * emit-rtl.c (const_double_htab_eq): Distinguish integer and + fp CONST_DOUBLE; use real_identical. + +2002-09-25 Mark Mitchell + + * doc/invoke.texi: Add more -Wabi examples. + +2002-09-25 Richard Sandiford + + * config/mips/mips.h (TARGET_MIPS4100): Add missing bracket. + +2002-09-24 Nathan Sidwell + + * profile.c (end_branch_prob): Only look for __gcov_init on + weak-enabled native compilers. + +2002-09-24 Denis Chertykov + + * config/ip2k/ip2k.c (function_epilogue): Fix wrong numbers in + cases of optimizing "add sp,w" to "inc sp". + +2002-09-24 Adam Nemet + + * config/arm/arm.c (thumb_unexpanded_epilogue): Don't generate + epilogue for naked functions. + +2002-09-24 Adam Nemet + Nick Clifton + + * config/arm/arm.h (THUMB_FUNCTION_PROFILER): Remove. + (FUNCTION_PROFILER): Only invoke THUMB_FUNCTION_PROFILER if it + is defined. + +2002-09-24 Ulrich Weigand + + * config/s390/s390.c (preferred_la_operand_p): New function. + * config/s390/s390-protos.h (preferred_la_operand_p): Declare it. + * config/s390/s390.md ("addaddr_esame", "*la_ccclobber"): Replace by ... + ("*la_64_cc", "*la_31_cc", splitters): ... these. + ("*la_31"): Deactivate for TARGET_64BIT. + ("*la_31_and", "*la_31_and_cc"): New. + +2002-09-24 Kaveh R. Ghazi + + * real.h (real_value): Make `exp' explicitly signed. + +2002-09-24 Kazu Hirata + + * config/elfos.h: Follow spelling conventions. + * config/alpha/alpha.h: Likewise. + * config/arc/arc.h: Likewise. + * config/arm/arm.md: Likewise. + * config/avr/avr.h: Likewise. + * config/cris/cris.md: Likewise. + * config/d30v/d30v.h: Likewise. + * config/frv/frv.c: Likewise. + * config/frv/frv.h: Likewise. + * config/h8300/h8300.c: Likewise. + * config/h8300/h8300.h: Likewise. + * config/h8300/h8300.md: Likewise. + * config/i386/cygwin.h: Likewise. + * config/i386/i386.h: Likewise. + * config/i386/sysv3.h: Likewise. + * config/i960/i960.h: Likewise. + * config/ia64/ia64.h: Likewise. + * config/ia64/ia64.md: Likewise. + * config/ip2k/ip2k.h: Likewise. + * config/m32r/m32r.h: Likewise. + * config/m68k/m68k.h: Likewise. + * config/m88k/m88k.h: Likewise. + * config/mcore/mcore.c: Likewise. + * config/mcore/mcore.h: Likewise. + * config/mcore/mcore.md: Likewise. + * config/mips/mips.h: Likewise. + * config/mmix/mmix.h: Likewise. + * config/mmix/mmix.md: Likewise. + * config/ns32k/netbsd.h: Likewise. + * config/ns32k/ns32k.h: Likewise. + * config/ns32k/ns32k.md: Likewise. + * config/pa/pa.h: Likewise. + * config/romp/romp.h: Likewise. + * config/rs6000/rs6000.h: Likewise. + * config/rs6000/rs6000.md: Likewise. + * config/sparc/sparc.h: Likewise. + * config/stormy16/stormy-abi: Likewise. + * config/stormy16/stormy16.h: Likewise. + * config/vax/vax.h: Likewise. + +2002-09-23 Kazu Hirata + + * config/alpha/alpha.h: Remove commented-out macro + definitions of HAVE_{POST|PRE}_{INC|DEC}REMENT. + * config/avr/avr.h: Likewise. + * config/d30v/d30v.h: Likewise. + * config/dsp16xx/dsp16xx.h: Likewise. + * config/i370/i370.h: Likewise. + * config/i386/i386.h: Likewise. + * config/i960/i960.h: Likewise. + * config/m68k/m68k.h: Likewise. + * config/m88k/m88k.h: Likewise. + * config/mips/mips.h: Likewise. + * config/ns32k/ns32k.h: Likewise. + * config/pdp11/pdp11.h: Likewise. + * config/romp/romp.h: Likewise. + * config/rs6000/rs6000.h: Likewise. + * config/s390/s390.h: Likewise. + * config/sh/sh.h: Likewise. + * config/sparc/sparc.h: Likewise. + * config/stormy16/stormy16.h: Likewise. + * config/vax/vax.h: Likewise. + +2002-09-23 Kazu Hirata + + * function.c (push_temp_slots_for_block): Remove. + (push_temp_slots_for_target): Likewise. + (get_target_temp_slot_level): Likewise. + (set_target_temp_slot_level): Likewise. + (get_first_block_beg): Likewise. + * function.h: Remove corresponding prototypes. + +2002-09-23 Zack Weinberg + + * version.c (version_string): Now const char[]. + * version.h: Update to match. + +2002-09-23 Richard Henderson + + * config/i386/i386.h (MASK_ACCUMULATE_OUTGOING_ARGS_SET, MASK_MMX_SET, + MASK_SSE_SET, MASK_SSE2_SET, MASK_3DNOW_SET, MASK_3DNOW_A_SET): Kill. + (TARGET_SWITCHES): Don't reference them. + * config/i386/i386.c (override_options): Use target_flags_explicit + to examine bits set by the user. + +2002-09-23 Dale Johannesen + + * dbxout.c (dbxout_parms): Set current_sym_code for params + passed on stack by invisible reference. + +2002-09-23 Richard Earnshaw + + * arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Always allocate + at least one byte of space. + +2002-09-23 Mark Mitchell + + * c-common.h (flag_abi_version): Fix typo in comment. + * doc/invoke.texi (flag_abi_version): Document default value. + +2002-09-23 Hans-Peter Nilsson + + * doc/extend.texi (Extended Asm): Clarify that overlap between + asm-declared register variables used in an asm and the asm clobber + list is not allowed. + * stmt.c (decl_conflicts_with_clobbers_p): New function. + (expand_asm_operands): Keep track of clobbered registers. Call + decl_conflicts_with_clobbers_p for each input and output operand. + If no conflicts found before, also do conflict sanity check when + emitting clobbers. + +2002-09-23 Richard Henderson + + * c-common.c (cpp_define_data_format): Remove. + (cb_register_builtins): Don't define __WCHAR_BIT__, __SHRT_BIT__, + __INT_BIT__, __LONG_BIT__, __LONG_LONG_BIT__, __FLOAT_BIT__, + __DOUBLE_BIT__, __LONG_DOUBLE_BIT__. + * doc/cpp.texi: Don't document them either. + (__SCHAR_MAX__, __SHRT_MAX__, __INT_MAX__, __LONG_MAX__, + __LONG_LONG_MAX__): Document. + (__TARGET_FLOAT_FORMAT__): Remove. + +2002-09-23 Richard Henderson + + * real.c (do_multiply): Normalize U before addition. + +2002-09-23 Mark Mitchell + + * c-common.c (flag_abi_version): New variable. + * c-common.h (flag_abi_version): Declare it. + * c-opts.c (missing_arg): Add -fabi-version. + (c_common_decode_option): Process -fabi-version. + * doc/invoke.texi (-fabi-version): Document it. + (-Wabi): Add information about bit-fields in unions. + +2002-09-22 Roger Sayle + + * expr.c (STORE_BY_PIECES_P): New target macro. + (can_store_by_pieces, store_by_pieces): Use STORE_BY_PIECES_P + instead of MOVE_BY_PIECES_P. + * doc/tm.texi: Document this new macro. + +2002-09-22 Jason Thorpe + + * config/mips/netbsd.h (SUBTARGET_ASM_SPEC): Always pass -KPIC + unless -fno-pic or -fno-PIC is specified. + +2002-09-22 John David Anglin + + * c-common.c (preprocessing_trad_p): Define. + * pa-hiux.h, pa-hpux.h, pa-hpux7.h (CPP_PREDEFINES): Delete. + (TARGET_OS_CPP_BUILTINS, SUBTARGET_SWITCHES): Define. + * pa-hpux10.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC): Define. + * pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define. + * pa-linux.h (CPP_PREDEFINES): Delete. + (TARGET_OS_CPP_BUILTINS, CPP_SPEC): Define. + * pa32-linux.h, pa64-linux.h (CPP_SPEC): Delete. + * pa-osf.h, pa-pro-end.h, rtems.h (CPP_PREDEFINES): Delete. + (TARGET_OS_CPP_BUILTINS): Define. + * pa.h (MASK_SIO, TARGET_SIO, TARGET_PA_10): Define. + (TARGET_SWITCHES): Reformat. Use N_() macro. Add SUBTARGET_SWITCHES. + (SUBTARGET_SWITCHES): Provide default definition. + (TARGET_OPTIONS): Reformat. Use N_() macro. + (CPP_PA10_SPEC, CPP_PA11_SPEC, CPP_PA20_SPEC, CPP_64BIT_SPEC, + CPP_CPU_DEFAULT_SPEC, CPP_64BIT_DEFAULT_SPEC, SUBTARGET_EXTRA_SPECS, + EXTRA_SPECS, CPP_SPEC, CPLUSPLUS_CPP_SPEC, CPP_PREDEFINES): Delete. + (TARGET_CPU_CPP_BUILTINS): Define. + (TARGET_OS_CPP_BUILTINS): Define for BSD-like systems. + * doc/invoke.texi (msio, mwsio): Document new hppa options. + * doc/tm.texi (TARGET_CPU_CPP_BUILTINS): Document macro + preprocessing_trad_p(). + +2002-09-22 Jason Thorpe + + * doc/install.texi: Document behavior of --with-headers and + --with-libs when arguments are omitted. + +2002-09-22 Kazu Hirata + + * dbxout.c: Follow spelling conventions. + * defaults.h: Likewise. + * df.c: Likewise. + * diagnostic.h: Likewise. + * doloop.c: Likewise. + * dwarf2out.c: Likewise. + * dwarfout.c: Likewise. + * emit-rtl.c: Likewise. + * except.c: Likewise. + * explow.c: Likewise. + * expmed.c: Likewise. + * expr.c: Likewise. + * expr.h: Likewise. + * flags.h: Likewise. + * flow.c: Likewise. + * fold-const.c: Likewise. + * function.c: Likewise. + * function.h: Likewise. + * gcc.c: Likewise. + * gcov-io.h: Likewise. + * gcov.c: Likewise. + * gcse.c: Likewise. + * genattrtab.c: Likewise. + * genconfig.c: Likewise. + * genrecog.c: Likewise. + * ggc-page.c: Likewise. + * ggc.h: Likewise. + * global.c: Likewise. + * gthr-win32.h: Likewise. + * integrate.c: Likewise. + * jump.c: Likewise. + * langhooks.c: Likewise. + * langhooks.h: Likewise. + * line-map.h: Likewise. + * local-alloc.c: Likewise. + * longlong.h: Likewise. + * loop.c: Likewise. + * loop.h: Likewise. + +Tue Aug 27 22:26:35 CEST 2002 Jan Hubicka + + * i386.h (BIGGEST_FIELD_ALIGNMENT): Set proper default for x86_64. + +Tue Aug 27 20:07:01 CEST 2002 Jan Hubicka + + * i386.c (overwrite_options): Set -mpreferred-stack-boundary to 128 + for -Os/TARGET_64BIT too. + +2002-09-21 Kazu Hirata + + * ChangeLog: Follow spelling conventions. + * ChangeLog.0: Likewise. + * ChangeLog.1: Likewise. + * ChangeLog.2: Likewise. + * ChangeLog.3: Likewise. + * ChangeLog.4: Likewise. + * ChangeLog.5: Likewise. + * ChangeLog.6: Likewise. + * FSFChangeLog.10: Likewise. + * FSFChangeLog.11: Likewise. + * alias.c: Likewise. + * basic-block.h: Likewise. + * c-aux-info.c: Likewise. + * c-common.c: Likewise. + * c-common.h: Likewise. + * c-decl.c: Likewise. + * c-format.c: Likewise. + * c-semantics.c: Likewise. + * c-typeck.c: Likewise. + * calls.c: Likewise. + * cfganal.c: Likewise. + * cfgloop.c: Likewise. + * collect2.c: Likewise. + * combine.c: Likewise. + * conflict.c: Likewise. + * cppexp.c: Likewise. + * cppfiles.c: Likewise. + * cpphash.h: Likewise. + * cppinit.c: Likewise. + * cpplex.c: Likewise. + * cpplib.c: Likewise. + * cpplib.h: Likewise. + * cppmacro.c: Likewise. + * cse.c: Likewise. + +2002-09-21 Richard Earnshaw + + * netbsd-aout.h (NETBSD_LINK_SPEC_AOUT): New, takes old definition of + LINK_SPEC. + (LINK_SPEC): Define to NETBSD_LINK_SPEC_AOUT. + * arm/netbsd.h (SUBTARGET_EXTRA_SEPCS): Add NETBSD_LINK_SPEC_AOUT. + (LINK_SPEC): Rework to use NETBSD_LINK_SPEC_AOUT). + +2002-09-21 Richard Earnshaw + + PR opt/7930 + * cse.c (fold_rtx): Calculate old_cost before we fold each + operand. + +2002-09-21 Richard Henderson + + * c-common.c (cpp_define_data_format): Remove __GCC_LITTLE_ENDIAN__, + __GCC_BIG_ENDIAN__, __TARGET_BITS_ORDER__, __TARGET_BYTES_ORDER__, + __TARGET_INT_WORDS_ORDER__, __TARGET_FLOAT_WORDS_ORDER__, + __TARGET_USES_VAX_F_FLOAT__, __TARGET_USES_VAX_D_FLOAT__, + __TARGET_USES_VAX_G_FLOAT__, __TARGET_USES_VAX_H_FLOAT__. + * doc/cpp.texi: Don't document them. + +2002-09-21 Richard Henderson + + * c-common.c (builtin_define_float_constants): Use real_format + to get the floating-point parameters. + +2002-09-21 Richard Henderson + + * real.c (struct real_format): Move to real.h. + (real_format_for_mode): Rename from fmt_for_mode; update all users; + initialize with ieee defaults. + (real_to_target_fmt, real_from_target_fmt): New. + (ieee_single_format, ieee_double_format, ieee_extended_motorola_format, + ieee_extended_intel_96_format, ieee_extended_intel_128_format, + ieee_quad_format, i370_single_format, i370_double_format, + c4x_single_format, c4x_extended_format): Rename from s/_format//. + (ieee_quad_format): Fix emin. + (format_for_size, init_real_once): Remove. + * real.h (struct real_format): Move from real.c. + (real_format_for_mode): Declare. + (real_to_target_fmt, real_from_target_fmt): Declare. + (ieee_single_format, ieee_double_format, ieee_extended_motorola_format, + ieee_extended_intel_96_format, ieee_extended_intel_128_format, + ieee_quad_format, vax_f_format, vax_d_format, vax_g_format, + i370_single_format, i370_double_format, c4x_single_format, + c4x_extended_format): Declare. + * toplev.c (do_compile): Don't call init_real_once. + + * defaults.h (INTEL_EXTENDED_IEEE_FORMAT): Remove. + * doc/tm.texi (INTEL_EXTENDED_IEEE_FORMAT): Remove. + + * config/alpha/alpha.h (TARGET_FLOAT_FORMAT): Define. + * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): 64, if vax mode. + * config/alpha/alpha.c (override_options): Set real_format_for_mode + for VAX, if enabled. + + * config/c4x/c4x.c (c4x_override_options): Set real_format_for_mode + for C4X. + + * config/i370/i370.h (OVERRIDE_OPTIONS): New. + * config/i370/i370.c (override_options): New. + * config/i370/i370-protos.h: Update. + + * config/i386/i386.c (override_options): Set real_format_for_mode + for Intel 80-bit extended. + * config/i386/i386.h (INTEL_EXTENDED_IEEE_FORMAT): Remove. + + * config/i960/i960.h (LONG_DOUBLE_TYPE_SIZE): Mind -mlong-double-64. + (OVERRIDE_OPTIONS): Move code... + * config/i960/i960.c (i960_initialize): ... here. Set + real_format_for_mode for Intel 80-bit extended. + + * config/ia64/ia64.c (ia64_override_options): Set real_format_for_mode + for Intel 80-bit extended, if enabled. + + * config/m68k/m68k.c (override_options): Set real_format_for_mode + for Motorola 96-bit extended. + + * config/vax/vax.h (OVERRIDE_OPTIONS): New. + * config/vax/vax.c (override_options): New. + * config/vax/vax-protos.h: Update. + +2002-09-21 Alan Modra + + * config/rs6000/rs6000.md (builtin_setjmp_receiver): Add + #if TARGET_MACHO. + + * config/rs6000/rs6000.md (floatdisf2_internal2): Combine + insns. Supply missing clobber of scratch reg. + +2002-09-20 Kazu Hirata + + * config/m32r/m32r.c: Follow spelling conventions. + * config/m32r/m32r.h: Likewise. + * config/m32r/m32r.md: Likewise. + * config/m68k/m68k.c: Likewise. + * config/m88k/m88k.c: Likewise. + * config/mcore/mcore.c: Likewise. + * config/mips/mips.c: Likewise. + * config/mips/mips.h: Likewise. + * config/mmix/mmix.c: Likewise. + * config/mn10200/mn10200.c: Likewise. + * config/ns32k/ns32k.h: Likewise. + * config/pa/pa.c: Likewise. + * config/pa/pa64-linux.h: Likewise. + * config/pdp11/pdp11.h: Likewise. + * config/romp/romp.c: Likewise. + * config/romp/romp.h: Likewise. + * config/rs6000/eabi.asm: Likewise. + * config/rs6000/linux64.h: Likewise. + * config/rs6000/rs6000.c: Likewise. + * config/rs6000/rs6000.h: Likewise. + * config/rs6000/rs6000.md: Likewise. + * config/rs6000/sysv4.h: Likewise. + * config/rs6000/xcoff.h: Likewise. + +2002-09-20 Jim Wilson + + * config/v850/v850/lib1funcs.asm (__muldi3): Change r5 to r28. + +2002-09-20 Jakub Jelinek + + * config/i386/i386.md (UNSPEC_GOTNTPOFF, UNSPEC_INDNTPOFF): New. + * config/i386/i386.c (legitimate_pic_address_disp_p): Handle + UNSPEC_GOTNTPOFF and UNSPEC_INDNTPOFF like UNSPEC_GOTTPOFF. + (legitimate_address_p): Likewise. + (legitimize_address): Use @gotntpoff and @indntpoff. + (output_pic_addr_const): Handle UNSPEC_GOTNTPOFF and UNSPEC_INDNTPOFF. + (output_addr_const_extra): Likewise. + +2002-09-20 Jim Wilson + + * combine.c (try_combine): When split an instruction pair, where the + first has a sign_extend src, verify that the src and dest modes match. + +2002-09-20 Richard Henderson + + * config/mips/mips.c (dfhigh, dflow, sfhigh, sflow): Remove. + (override_options): Do not initialize them. + (mips_const_double_ok): Allow no fp constants except zero, + and not even that for mips16. + (const_float_1_operand): Use dconst1. + * config/mips/mips.md (movsf, movsf_internal1, movsf_internal2, + movdf, movdf_internal1, movdf_internal1a, movdf_internal2): + Don't allow arbitrary constants; fix predicates and C constraint. + +2002-09-20 Neil Booth + + * cppmacro.c: Don't warn about function-like macros without + '(' during pre-expansion. + +2002-09-20 Jim Wilson + + * config/v850/v850.c (current_function_anonymous_args): Delete. + (expand_prologue): Use current_function_args_info.anonymous_args. + (expand_epilogue): Delete use of current_function_anonymous_args. + * config/v850/v850.h (struct cum_arg): Add anonymous_args field. + (INIT_CUMULATIVE_ARGS): Clear anonymous_args field. + (current_function_anonymous_args): Delete extern declaration. + (SETUP_INCOMING_VARARGS): Set anonymous_args field. + +2002-09-20 Geoffrey Keating + + * config/rs6000/rs6000.c (rs6000_emit_prologue): Update for change + to load_macho_picbase. + * config/rs6000/rs6000.md: Document Darwin-specific unspec IDs. + (load_macho_picbase): Take the symbol to use as a parameter. + (macho_correct_pic): New insn. + (builtin_setjmp_reciever): On Darwin, restore the PIC register. + + * config/rs6000/rs6000.h (ELIMINABLE_REGS): Use + RS6000_PIC_OFFSET_TABLE_REGNUM rather than hardcoding 30. + (CAN_ELIMINATE): Likewise. + (INITIAL_ELIMINATION_OFFSET): Likewise. + (TOC_REGISTER): Likewise. + +2002-09-20 Richard Henderson + + * real.c (real_hash): New. + * real.h: Declare it. + * cse.c (canon_hash): Use it. + * cselib.c (hash_rtx): Likewise. + * emit-rtl.c (const_double_htab_hash): Likewise. + * rtl.h (CONST_DOUBLE_REAL_VALUE): New. + * varasm.c (struct rtx_const): Reduce vector size; separate + integer and fp vectors. + (HASHBITS): Remove. + (const_hash_1): Rename from const_hash. Use real_hash. Do not + take modulus MAX_HASH_TABLE. + (const_hash): New. Do take modulus MAX_HASH_TABLE. + (output_constant_def): Do not take modulus MAX_HASH_TABLE. + (SYMHASH): Don't use HASHBITS. + (decode_rtx_const): Copy only active bits from REAL_VALUE_TYPE. + Fix CONST_VECTOR thinko wrt fp vectors. Fix kind comparison. + (simplify_subtraction): Fix kind comparison. + (const_hash_rtx): Return unsigned int. Don't use HASHBITS. + Use a union to pun integer array. + * config/rs6000/rs6000.c (rs6000_hash_constant): Use real_hash; + only hash two words of integral CONST_DOUBLE. + +2002-09-20 Steve Ellcey + + * config/ia64/hpux.h (STARTFILE_SPEC): Modify. + (STARTFILE_PREFIX_SPEC): New. + (LINK_SPEC): Modify. + (LIB_SPEC): Modify. + (LIBGCC_SPEC): New. + +2002-09-20 Jakub Jelinek + + * config/i386/i386.c (legitimate_pic_address_disp_p): Allow + UNSPEC_NTPOFF and UNSPEC_DTPOFF to be offsetted by constant. + +2002-09-20 Jeroen Dobbelaere + + * config/arm/arm.md (sign_extract_onebit, not_signextract_onebit): + Add clobber of the condition code register. + +2002-09-20 Richard Henderson + + * real.c (do_fix_trunc): Static. + (encode_ieee_single, encode_ieee_double, encode_ieee_extended, + encode_ieee_quad, encode_vax_f, encode_vax_d, encode_vax_g, + encode_i370_single, encode_i370_double, encode_c4x_single, + encode_c4x_extended): Add default abort case. + +2002-09-20 Richard Henderson + + * real.h (enum real_value_class, SIGNIFICAND_BITS, EXP_BITS, + MAX_EXP, SIGSZ, SIG_MSB, struct real_value): Move from real.c. + (struct realvaluetype): Remove. + (REAL_VALUE_TYPE): Use struct real_value. + (REAL_VALUE_TYPE_SIZE): Use SIGNIFICAND_BITS. + (test_real_width): New. + * real.c: Global replace struct real_value with REAL_VALUE_TYPE. + (real_arithmetic): Avoid hoops for REAL_VALUE_TYPE parameters. + (real_compare, real_exponent, real_ldexp, real_isinf, real_isnan, + real_isneg, real_isnegzero, real_identical, exact_real_inverse, + real_to_integer, real_to_integer2, real_to_decimal, + real_to_hexadecimal, real_from_string, real_from_integer, + real_inf, real_nan, real_2expN, real_convert, real_to_target, + real_from_target): Likewise. + * tree.h (struct tree_real_cst): Use real_value not realvaluetype. + * gengtype-yacc.y (bitfieldopt): Accept an ID as well. + +2002-09-20 Richard Henderson + + * real.h (UNKNOWN_FLOAT_FORMAT, IEEE_FLOAT_FORMAT, VAX_FLOAT_FORMAT, + IBM_FLOAT_FORMAT, C4X_FLOAT_FORMAT, TARGET_FLOAT_FORMAT): Move ... + * defaults.h: ... here. + * config/arm/arm.h, config/avr/avr.h, config/d30v/d30v.h, + config/fr30/fr30.h, config/frv/frv.h, config/ia64/ia64.h, + config/ip2k/ip2k.h, config/mips/mips.h, config/stormy16/stormy16.h, + config/xtensa/xtensa.h (TARGET_FLOAT_FORMAT): Remove. + +2002-09-20 Hans-Peter Nilsson + + * config/mmix/mmix.md ("negdf2"): Rewrite. + ("*expanded_negdf2"): New. + +2002-09-19 Jim Wilson + + * combine.c (simplify_set): When optimizing a subreg src with a + cc0 dest, use GET_MODE (src) for mask instead of inner_mode. + +2002-09-19 Dale Johannesen + * combine.c (make_extraction): Don't create + invalid subreg. + +2002-09-19 Roger Sayle + + * tree.c (integer_nonzerop): New predicate for nonzero integers. + * tree.h (integer_nonzerop): Add function prototype. + * stmt.c (expand_end_loop): Don't rotate the loop when there + are no instructions in the test, i.e. the loop is unconditional. + (expand_exit_loop_if_false): Optimize RTL generation of loop + tests when the condition is always true or always false. + * c-semantics.c (genrtl_do_stmt): Optimize RTL generation of + do-loops when the condition is always true. + (genrtl_for_stmt): Optimize RTL generation of for-loops when + the for-expression is empty. + +2002-09-19 Zack Weinberg + + * gcc.c (use_pipes): New flag. + (process_command): Set it. Adjust check for -pipe conflicting + with -time or -save-temps. + (do_spec_1): Use it. Handle %|SUFFIX, %mSUFFIX, and + % + + * config/s390/s390.c (addr_generation_dependency_p): Handle SUBREG + and STRICT_LOW_PART within SET_DEST. + * config/s390/s390.md ("*extractqi", "*extracthi"): New insns with + splitters, replacing pre-reload splitters. + ("*zero_extendhisi2_31", "*zero_extendqisi2_31", + "*zero_extendqihi2_31"): New insns. + ("*zero_extendqihi2_64"): Do not clobber CC. + +2002-09-18 Devang Patel + + * cp/cp-tree.h: New prototype for walk_vtables(). + * cp/decl.c (walk_vtables_r): New function. + (struct cp_binding_level): Add new members, namespaces, + names_size and vtables. + (add_decl_to_level): Add decl in namespaces or vtables + chain, if conditions match. + (walk_vtables): New function. + (walk_namespaces_r): Travers separate namespace chain + for namespace decls. + (wrapup_globals_for_namespace): Use names_size instead + of list_length(). + * cp/decl2.c (finish_file): Use walk_vtables() instead of + walk_globals() to walk vtable decls. + +2002-09-19 Steve Ellcey + + * config/ia64/hpux.h (CTORS_SECTION_ASM_OP): New. + (DTORS_SECTION_ASM_OP): Ditto. + (READONLY_DATA_SECTION_ASM_OP): Moved. + (DATA_SECTION_ASM_OP): New. + (SDATA_SECTION_ASM_OP): New. + (BSS_SECTION_ASM_OP): New. + (SBSS_SECTION_ASM_OP): New. + (TEXT_SECTION_ASM_OP): New. + +2002-09-19 Kazu Hirata + + * config/fp-bit.c: Follow spelling conventions. + * config/d30v/d30v.c: Likewise. + * config/d30v/d30v.h: Likewise. + * config/fr30/fr30.c: Likewise. + * config/fr30/fr30.h: Likewise. + * config/fr30/fr30.md: Likewise. + * config/frv/frv.c: Likewise. + * config/frv/frv.h: Likewise. + * config/h8300/h8300.c: Likewise. + * config/h8300/lib1funcs.asm: Likewise. + * config/i370/i370.c: Likewise. + * config/i386/i386.h: Likewise. + * config/i386/i386.md: Likewise. + * config/i386/pentium.md: Likewise. + * config/i386/winnt.c: Likewise. + * config/i960/i960.c: Likewise. + * config/ia64/ia64.h: Likewise. + * config/ip2k/ip2k.c: Likewise. + * config/ip2k/ip2k.h: Likewise. + * config/ip2k/ip2k.md: Likewise. + * config/ip2k/libgcc.S: Likewise. + +2002-09-19 Stephen Clarke + + * config/sh/sh.h (UNSPEC_GOTOFF_P): Define. + (GOTOFF_P): Extend to allow gotoff plus constant. + +2002-09-18 Richard Henderson + + * ifcvt.c (noce_process_if_block): Correctly detect X modified + with INSN_B before COND_EARLIEST. Don't check A and B for + modification in condition range. Reorder INSN_B for A==B properly. + (if_convert): Iterate until no matches for a block. + +2002-09-18 Richard Henderson + + * calls.c (store_one_arg): Rename default_align to parm_align; + always adjust parm_align for downward padding. + +2002-09-18 Richard Henderson + + * toplev.c (backend_init): Move init_real_once invocation ... + (do_compile): ... here. + +2002-09-18 Richard Henderson + + * sibcall.c (optimize_sibling_and_tail_recursive_call): Also remove + RTX_UNCHANGING_P markers for successful tail-recursive replacement. + +2002-09-18 Richard Henderson + + * real.c (round_for_format): Collect sticky as unsigned long, not bool. + +2002-09-19 Alan Modra + + * config/rs6000/rs6000.md: (floatdisf2): Rename to + floatdisf2_internal1. + (floatdisf2): New define_expand. + (floatdisf2_internal2): Likewise. + +2002-09-18 Richard Henderson + + * real.c (sticky_rshift_significand): Collect sticky as + unsigned long, not bool. + +2002-09-18 Ulrich Weigand + + * config/s390/s390.c (s390_address_cost): New function. + config/s390/s390-protos.h (s390_address_cost): Add prototype. + config/s390/s390.h (ADDRESS_COST): Call s390_address_cost. + (RTX_COST): Use COSTS_N_INSNS. + +2002-09-18 Douglas Rupp + Donn Terry + + * stor-layout.c (place_field): Handle alignment of whole + structures when MSVC compatible bitfields are involved. + Change method of computing location of MS bitfields to + be compatible with #pragma pack(n). + + * tree.h (record_layout_info): Add new field + remaining_in_alignment. + + * doc/tm.texi: (TARGET_MS_BITFIELD_LAYOUT_P): Update. + (pragma pack): Add paragraph on MSVC bitfield packing. + +2002-09-18 Richard Earnshaw (reanrsha@arm.com) + + PR optimization/7967 + * arm.md (ne_zeroextractsi): Add clobber of the condition code + register. + +2002-09-18 Kazu Hirata + + * config/s390/s390.c: Follow spelling conventions. + * config/sh/lib1funcs.asm: Likewise. + * config/sh/sh.c: Likewise. + * config/sh/sh.h: Likewise. + * config/sparc/sparc.c: Likewise. + * config/sparc/sparc.h: Likewise. + * config/sparc/sparc.md: Likewise. + * config/stormy16/stormy16.c: Likewise. + * config/stormy16/stormy16.h: Likewise. + * config/v850/v850.c: Likewise. + * config/v850/v850.h: Likewise. + * config/vax/vax.c: Likewise. + * config/vax/vax.h: Likewise. + +2002-09-18 Nick Clifton + + * config/rs60000/rs6000.c (rs6000_emit_move): Handle V1DImode moves. + * config/rs60000/rs6000.c (SPE_VECTOR_MODE): Include V1DImode. + * config/rs6000/spe.md (movv1di, movv1di_internal): New patterns. + +2002-09-17 Kazu Hirata + + * function.c (max_parm_reg_num): Remove. + * stmt.c (in_control_zone_p, stmt_loop_nest_empty, + drop_through_at_end_p, move_cleanups_up, + expand_end_case_dummy, case_index_expr_type): Likewise. + * stor-layout.c (pos_from_byte): Likewise. + * tree.c (chain_member_value, chain_member_purpose, listify, + tree_int_cst_msb, index_type_equal): Likewise. + * tree.h: Remove prototypes for unused functions. + +2002-09-17 Zack Weinberg + + * ABOUT-GCC-NLS: Remove reference to enquire, and out-of-date + statement that the only translation is to en_UK. + +2002-09-17 Kazu Hirata + + * config/alpha/alpha.c: Follow spelling conventions. + * config/alpha/alpha.h: Likewise. + * config/alpha/alpha.md: Likewise. + * config/arc/arc.h: Likewise. + * config/arm/arm.c: Likewise. + * config/arm/arm.h: Likewise. + * config/arm/arm.md: Likewise. + * config/arm/pe.c: Likewise. + * config/arm/unknown-elf.h: Likewise. + * config/avr/avr.c: Likewise. + * config/avr/avr.h: Likewise. + * config/c4x/c4x.c: Likewise. + * config/cris/cris.c: Likewise. + * config/cris/cris.h: Likewise. + +2002-09-17 Samuel Figueroa + + * final.c (final_scan_insn): Use new macro ASM_OUTPUT_ALIGN_WITH_NOP. + * config/sparc/sparc.h (ASM_OUTPUT_ALIGN_WITH_NOP) New macro. + * doc/tm.texi (ASM_OUTPUT_ALIGN_WITH_NOP) New description. + +2002-09-17 Dale Johannesen + + * cfgcleanup.c (try_forward_edges): Do not forward a + branch to just after a loop exit before loop optimization; + this interfered with doloop detection. + +2002-09-17 Nick Clifton + + * config/arm/arm.c (output_return_instruction): Do not + writeback the stack pointer when it is being loaded. + (arm_output_epilogue): Likewise. + +2002-09-17 Kazu Hirata + + * optabs.c (prepare_cmp_insn): Let emit_library_call_value + generate a pseudo reg that receives the result of a libcall. + (prepare_float_lib_cmp): Likewise. + +2002-09-17 Steve Ellcey + + * config/ia64/elf.h: Remove CPP_PREDEFINES. + +Tue Sep 17 13:58:04 2002 Nicola Pero + + Fix PR/7014 and related objc bugs: + * c-typeck.c (comp_target_types): Added a reflexive argument. + Pass it to ObjC when/if calling objc_comptypes(). Updated all + callers to provide the appropriate reflexive argument. + * objc/objc-act.c (objc_comptypes): Carefully checked and fixed + typechecking for all cases of comparisons and assignments, + particularly the obscure and less common ones involving protocols. + +2002-09-17 Nick Clifton + + * machmode.def (V1DImode): New mode. A single element vector. + * tree.h (TI_UV1DI_TYPE, TI_V1DI_TYPE): New tree_index enums. + (unsigned_V1DI_type_node, V1D1_type_node): New type nodes. + * tree.c (build_common_tree_nodes_2): Build + unsigned_V1DI_type_node and V1D1_type_node. + * c-common.c (c_common_type_for_mode): Return + unsigned_V1DI_type_node or V1D1_type_node for V1DImode. + * rtl.c (class_narrowest_): Start integer vector nodes with V1DImode. + +Tue Sep 17 13:40:13 2002 Nicola Pero + + * doc/objc.texi (Constant string objects): Extended documentation + to make clear that the constant string class ivar layout is + completely fixed. + +2002-09-17 Roger Sayle + + * cfgrtl.c (flow_delete_block_noexpunge): Delete orphaned + NOTE_INSN_LOOP_CONT notes when deleting basic blocks. + +2002-09-16 Volker Reichelt + + * config/mips/mips.c (save_restore_insns): Remove unused variable. + * gcc.c (make_relative_prefix): Likewise. + * loop.c (check_final_value): Likewise. + * jump.c (init_label_info): Remove return value. + * cse.c (prev_insn): Move variable between #ifdef HAVE_cc0 ... #endif. + +2002-09-16 Kaveh R. Ghazi + + * dsp16xx.h (ASM_FORMAT_PRIVATE_NAME): Delete. + (ASM_PN_FORMAT): Define. + +2002-09-16 Kaveh R. Ghazi + + * alpha.h, alpha/vms.h, arc.h, arm/aof.h, arm/aout.h, avr.h, + c4x.h, cris.h, d30v.h, fr30.h, frv.h, h8300.h, i370.h, i386.h, + i960.h, ia64.h, ip2k.h, m32r.h, m68hc11.h, m68k/3b1.h, + m68k/hp320.h, m68k.h, m68k/mot3300.h, m68k/sgs.h, m68k/tower-as.h, + m88k.h, mcore.h, mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h, + pa.h, pdp11.h, romp.h, rs6000.h, s390/linux.h, sh.h, sparc.h, + stormy16.h, v850.h, vax.h, xtensa.h (ASM_FORMAT_PRIVATE_NAME): + Delete. + * alpha/vms.h, h8300.h, i370.h, ia64.h, m68k/3b1.h, m68k/hp320.h, + m68k/mot3300.h, m68k/sgs.h, m68k/tower-as.h, mmix.h, mn10200.h, + mn10300.h, pa.h, v850.h (ASM_PN_FORMAT): Define. + + * defaults.h (ASM_PN_FORMAT, ASM_FORMAT_PRIVATE_NAME): Define. + * doc/tm.texi (ASM_FORMAT_PRIVATE_NAME): Update documentation. + +2002-09-16 Richard Henderson + + * expr.c (emit_block_move): Set memory block size as appropriate + for the copy. + +2002-09-16 Richard Henderson + + PR fortran/3924 + * sdbout.c (sdbout_symbol): Don't handle offsets from a symbol. + +2002-09-16 Richard Henderson + + * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust SIZE + as well as OFFSET for BITPOS. + +2002-09-16 Jeff Garzik + + * config.gcc: Treat winchip_c6-*|winchip2-*|c3-* as pentium-mmx. + * config/i386/i386.c (processor_alias_table): Add winchip-c6, + winchip2 and c3. + * doc/invoke.texi: Mention new aliases. + +2002-09-16 John David Anglin + + * calls.c (store_one_arg): Set default alignment for BLKmode arguments + to BITS_PER_UNIT when ARGS_GROW_DOWNWARD and the padding direction is + downward. + * function.c (pad_below): Always compile. + (locate_and_pad_parm): If defined ARGS_GROW_DOWNWARD, pad argument to + alignment when it is not in a register or REG_PARM_STACK_SPACE is true. + Pad below when the argument is not in a register and the padding + direction is downward. + + * pa-64.h (MUST_PASS_IN_STACK): Move define to pa.h. + (PAD_VARARGS_DOWN): Define. + * pa.c (function_arg_padding): Revise padding directions to make them + compatible with the 32 and 64-bit runtime architecture documentation. + (hppa_va_arg): Add code to handle variable and size zero arguments + passed by reference on TARGET_64BIT. Reformat. + (function_arg): Use a PARALLEL for BLKmode and aggregates args on + TARGET_64BIT. Use a DImode PARALLEL for BLKmode args 5 to 8 bytes + wide when !TARGET_64BIT. Move forward check for mode==VOIDmode. + Add comments. + * pa.h (MAX_PARM_BOUNDARY): Correct define for TARGET_64BIT. + (RETURN_IN_MEMORY): Return size zero types in memory. + (FUNCTION_VALUE): Return TFmode in general registers. + (MUST_PASS_IN_STACK): Define. + (FUNCTION_ARG_BOUNDARY): Simplify. + (FUNCTION_ARG_PASS_BY_REFERENCE): Pass variable and zero sized types + by reference. + (FUNCTION_ARG_CALLEE_COPIES): Define to FUNCTION_ARG_PASS_BY_REFERENCE. + +2002-09-16 Richard Henderson + + * real.c (do_fix_trunc): New. + (real_arithmetic): Call it. + * simplify-rtx.c (simplify_unary_operation): Handle FIX + with a floating-point result mode. + +2002-09-16 Richard Henderson + + * builtin-types.def (BT_FN_FLOAT_CONST_STRING): New. + (BT_FN_DOUBLE_CONST_STRING, BT_FN_LONG_DOUBLE_CONST_STRING): New. + * builtins.def (__builtin_nan, __builtin_nanf, __builtin_nanl): New. + (__builtin_nans, __builtin_nansf, __builtin_nansl): New. + * builtins.c (fold_builtin_nan): New. + (fold_builtin): Call it. + * real.c (real_nan): Parse a non-empty string. + (round_for_format): Fix NaN significand truncation. + * real.h (real_nan): Return bool. + * doc/extend.texi: Document new builtins. + +2002-09-16 Jason Merrill + Danny Smith + + * config/i386/winnt.c (ix86_handle_dll_attribute): Set + DECL_EXTERN and TREE_PUBLIC for dllimported variables here... + (i386_pe_mark_dllimport): Not here. + +2002-09-16 Nathan Sidwell + + * c-semantics.c (genrtl_do_stmt): Cope with NULL cond. + +2002-09-16 Geoffrey Keating + + * config/rs6000/rs6000.c (build_mask64_2_operands): Suppress + warnings about unused operands when HOST_BITS_PER_WIDE_INT is + < 64. + (rs6000_emit_cmove): Use real_isinf not target_isinf. + +2002-09-16 Kazu Hirata + + * calls.c (emit_library_call_value_1): Don't refer to + hard_libcall_value. + * optabs.c (prepare_float_lib_cmp): Likewise. + +2002-09-16 Geoffrey Keating + + * ggc-common.c (ggc_mark_rtx_children_1): Update for changed name + mangling. + + The following changes are merged from pch-branch: + + * doc/gty.texi (GTY Options): Document %a. + * gengtype.c (do_scalar_typedef): New function. + (process_gc_options): Handle `length' option. + (set_gc_used_type): A pointer to an array of structures doesn't + qualify as a pointer to a structure. + (output_escaped_param): Add `%a' escape. + (write_gc_structure_fields): Allow 'desc' on array of unions. + (main): Define `uint8', `jword' and `JCF_u2' as scalars; use + do_scalar_typedef. + + * gengtype.c (enum rtx_code): Make global. + (rtx_format): Make global. + (rtx_next): New. + (gen_rtx_next): New. + (write_rtx_next): New. + (adjust_field_rtx_def): Skip fields marked by chain_next. + (open_base_files): Delete redundant prototype. + (write_enum_defn): New. + (output_mangled_typename): Correct abort call. + (write_gc_marker_routine_for_structure): Handle chain_next and + chain_prev options. + (finish_root_table): Don't output redundant \n. + (main): Call gen_rtx_next, write_rtx_next, write_enum_defn. + * c-tree.h (union lang_tree_node): Add chain_next option. + + * gengtype.h (NUM_PARAM): New definition. + (struct type): For TYPE_PARAM_STRUCT, allow multiple parameters. + * gengtype.c (find_param_structure): New. + (adjust_field_type): Handle param_is option. + (process_gc_options): Detect use_params option. Update callers. + (set_gc_used_type): Add 'param' parameter, update callers. Handle + 'use_params' option. + (open_base_files): Add splay-tree.h to list of files included. + (output_mangled_typename): New. + (write_gc_structure_fields): Update 'param' parameter to support + multiple parameters. Change name mangling. Allow parameterized + fields to have an apparent scalar type. Handle param_is options, + use_param option. + (write_gc_marker_routine_for_structure): Update for change to name + mangling. Better guess the output file for parameterized types. + (write_gc_types): Update for change to name mangling. + (write_gc_root): Update for change to name mangling. Handle (ignore) + param_is options. + * doc/gty.texi (GTY Options): Add description of param_is + options, use_params option. + * ggc.h (ggc_mark_rtx): Update for changed name mangling. + * gengtype-lex.l: Produce token for param_is. + * gengtype-yacc.y: Parse param_is. + + * gengtype.c (adjust_field_tree_exp): Don't name a variable 'rindex'. + + * rtl.c: Update comment describing rtx_format. + * rtl.h (union rtunion): Separate definition and typedef. + (struct rtx_def): Use gengtype to mark. + * Makefile.in (gengtype.o): Also depend on rtl.def. + * ggc.h (ggc_mark_rtx_children): Delete prototype. + (ggc_mark_rtx): Change to alias of gengtype-generated routine. + * ggc-common.c (ggc_mark_rtx_children): Delete. + (ggc_mark_rtx_children_1): Delete. + (gt_ggc_m_rtx_def): Delete. + * gengtype.c (adjust_field_rtx_def): New. + (adjust_field_type): Call adjust_field_rtx_def. + (write_gc_structure_fields): Add 'default' case to switch if none + is specified; remove unused code. + + * tree.h (struct tree_exp): Update for change to meaning + of special. + * gengtype.c (adjust_field_tree_exp): New function. + (adjust_field_type): Handle `tree_exp' special here. + (write_gc_structure_fields): Don't handle `tree_exp' special here. + Handle new `dot' option. + + * gengtype.h: Make `info' a pointer-to-const. + * gengtype-yacc.y (yacc_ids): Use xasprintf. + + * gengtype.c (write_gc_structure_fields): Remove implementation + of `always' option, add `default' option. + * doc/gty.texi (GTY Options): Remove documentation of `always', + add `default'. + +2002-09-16 Hans-Peter Nilsson + + * output.h: Remove #ifdef RTX_CODE and #ifdef TREE_CODE. + +2002-09-16 Kaveh R. Ghazi + + * m68hc11.md (addhi_sp): Fix uninitialized variable bug. + + * c4x-c.c, c4x.c, darwin.c, i370-c.c, m32r.c: Include tm_p.h + instead of the *-protos.h file directly. + * t-c4x, t-i370, t-v850: Depend on $(TM_P_H). + * darwin.c (machopic_output_stub): Move prototype ... + * darwin-protos.h (machopic_output_stub): ... here. + * rs6000-protos.h (machopic_output_stub): Don't declare. + +2002-09-16 Richard Henderson + + * c-common.c (builtin_define_float_constants): Emit __FOO_DENORM_MIN__. + +2002-09-16 Richard Henderson + + * real.c, real.h: Rewrite from scratch. + + * Makefile.in (simplify-rtx.o): Depend on TREE_H. + (paranoia): New target. + * builtins.c (fold_builtin_inf): Use new real.h interface. + * c-common.c (builtin_define_with_hex_fp_value): Likewise. + * c-lex.c (interpret_float): Likewise. + * emit-rtl.c (gen_lowpart_common): Likewise. + * optabs.c (expand_float): Use real_2expN. + * config/ia64/ia64.md (divsi3, udivsi3): Likewise. + * defaults.h (INTEL_EXTENDED_IEEE_FORMAT): New. + (FLOAT_WORDS_BIG_ENDIAN): New. + * cse.c (find_comparison_args): Don't pass FLOAT_STORE_FLAG_VALUE + directly to REAL_VALUE_NEGATIVE. + * loop.c (canonicalize_condition): Likewise. + * simplify-rtx.c: Include tree.h. + (simplify_unary_operation): Don't handle FIX and UNSIGNED_FIX + with floating-point result modes. + * toplev.c (backend_init): Call init_real_once. + + * fold-const.c (force_fit_type): Don't call CHECK_FLOAT_VALUE. + * tree.c (build_real): Likewise. + * config/alpha/alpha.c, config/vax/vax.c (float_strings, + float_values, inited_float_values, check_float_value): Remove. + * config/alpha/alpha.h, config/m68hc11/m68hc11.h, + config/m88k/m88k.h, config/vax/vax.h (CHECK_FLOAT_VALUE): Remove. + * doc/tm.texi (CHECK_FLOAT_VALUE): Remove. + (VAX_HALFWORD_ORDER): Remove. + +2002-09-16 Ulrich Weigand + + * config/s390/s390.c: (legitimize_la_operand): Remove, replace by ... + (s390_load_address): ... this new function. + (s390_decompose_address): Allow the argument pointer and all + virtual registers as 'pointer' registers. + (s390_expand_plus_operand): Use s390_load_address. + config/s390/s390.md (movti, movdi, movdf splitters): Likewise. + ("force_la_31"): New insn pattern. + config/s390/s390-protos.h (legitimize_la_operand): Remove. + (s390_load_address): Add prototype. + + * config/s390/s390.c: Include "optabs.h". + (s390_expand_movstr, s390_expand_clrstr, s390_expand_cmpstr): New. + config/s390/s390-protos.h (s390_expand_movstr, s390_expand_clrstr, + s390_expand_cmpstr): Add prototypes. + config/s390/s390.md ("movstrdi", "movstrsi"): Call s390_expand_movstr. + ("movstrdi_short"): Rename to "movstr_short_64". Change predicates + for operands 0 and 1 to "memory_operand". Add type attribute. + ("movstrsi_short"): Rename to "movstr_short_31". Change predicates + for operands 0 and 1 to "memory_operand". Add type attribute. + ("movstrdi_long", "movstrsi_long"): Remove. + ("movstrdi_64"): Rename to "movstr_long_64". Add type attribute. + ("movstrsi_31"): Rename to "movstr_long_31". Add type attribute. + ("clrstrdi", "clrstrsi"): Call s390_expand_clrstr. + ("clrstrsico"): Remove, replace by ... + ("clrstr_short_64", "clrstr_short_31"): ... these new patterns. + ("clrstrsi_64"): Rename to "clrstr_long_64". + ("clrstrsi_31"): Rename to "clrstr_long_31". + ("cmpstrdi", "cmpstrsi"): Call s390_expand_cmpstr. + ("cmpstr_const"): Remove, replace by ... + ("cmpstr_short_64", "cmpstr_short_31"): ... these new patterns. + ("cmpstr_64"): Rename to "cmpstr_long_64". + ("cmpstr_31"): Rename to "cmpstr_long_31". + +2002-09-16 Kazu Hirata + + * ABOUT-NLS: Follow spelling conventions. + * ChangeLog: Likewise. + * ChangeLog.1: Likewise. + * ChangeLog.2: Likewise. + * ChangeLog.3: Likewise. + * ChangeLog.4: Likewise. + * ChangeLog.5: Likewise. + * ChangeLog.6: Likewise. + * FSFChangeLog.10: Likewise. + * FSFChangeLog.11: Likewise. + * c-common.c: Likewise. + * c-lex.c: Likewise. + * c-objc-common.c: Likewise. + * cppexp.c: Likewise. + * cppinit.c: Likewise. + * cpplex.c: Likewise. + * doloop.c: Likewise. + * flow.c: Likewise. + * function.c: Likewise. + * integrate.c: Likewise. + * loop.c: Likewise. + * reg-stack.c: Likewise. + * reload.h: Likewise. + * ssa.c: Likewise. + +2002-09-15 Kaveh R. Ghazi + + * Makefile.in (vmsdbgout.o): Depend on $(TARGET_H) + * vmsdbgout.c: Include "target.h". + +2002-09-15 Kazu Hirata + + * ChangeLog: Follow spelling conventions. + * ChangeLog.0: Likewise. + * ChangeLog.1: Likewise. + * ChangeLog.2: Likewise. + * ChangeLog.4: Likewise. + * ChangeLog.6: Likewise. + * config.gcc: Likewise. + * dwarfout.c: Likewise. + * reload1.c: Likewise. + * simplify-rtx.c: Likewise. + * unwind-sjlj.c: Likewise. + * config/avr/avr.h: Likewise. + * config/d30v/d30v.h: Likewise. + * config/frv/frv.c: Likewise. + * config/frv/frv.h: Likewise. + * config/ip2k/ip2k.h: Likewise. + * config/m88k/m88k-move.sh: Likewise. + * config/stormy16/stormy16.c: Likewise. + * config/stormy16/stormy16.h: Likewise. + * doc/extend.texi: Likewise. + * doc/interface.texi: Likewise. + * doc/invoke.texi: Likewise. + * doc/md.texi: Likewise. + * doc/rtl.texi: Likewise. + * doc/tm.texi: Likewise. + * doc/trouble.texi: Likewise. + * ginclude/float.h: Likewise. + * treelang/treelang.texi: Likewise. + +2002-09-15 Kaveh R. Ghazi + + * i386-protos.h (i386_pe_dllexport_name_p, + i386_pe_dllimport_name_p, i386_pe_unique_section, + i386_pe_declare_function_type, i386_pe_record_external_function, + i386_pe_record_exported_symbol, i386_pe_asm_file_end): Add + prototype. + * i386/t-cygwin (winnt.o): Depend on $(TM_P_H). + * i386/t-interix (winnt.o): Likewise. + + * v850-protos.h (v850_output_addr_const_extra): Prototype. + +2002-09-15 Jason Thorpe + + * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Add + MIPS ABI CPP macros. + (TARGET_CPU_CPP_BUILTINS): Redefine. + (SUBTARGET_EXTRA_SPECS): Remove subtarget_endian_default. + (SUBTARGET_ENDIAN_DEFAULT_SPEC): Remove. + +2002-09-15 Kaveh R. Ghazi + + * ia64/aix.h (TARGET_OS_CPP_BUILTINS): Fix typo. + +2002-09-15 Kazu Hirata + + * ChangeLog: Follow spelling conventions. + * ChangeLog.0: Likewise. + * ChangeLog.1: Likewise. + * ChangeLog.2: Likewise. + * ChangeLog.3: Likewise. + * ChangeLog.4: Likewise. + * ChangeLog.5: Likewise. + * ChangeLog.6: Likewise. + * FSFChangeLog.10: Likewise. + * FSFChangeLog.11: Likewise. + * c-common.c: Likewise. + * c-common.h: Likewise. + * c-format.c: Likewise. + * c-opts.c: Likewise. + * cpplib.c: Likewise. + * langhooks.h: Likewise. + * real.c: Likewise. + * reg-stack.c: Likewise. + * toplev.c: Likewise. + * config/arm/arm.c: Likewise. + * config/arm/arm.md: Likewise. + * config/arm/linux-gas.h: Likewise. + * config/arm/netbsd.h: Likewise. + * config/c4x/c4x.c: Likewise. + * config/c4x/c4x.h: Likewise. + * config/c4x/c4x.md: Likewise. + * config/c4x/libgcc.S: Likewise. + * config/fr30/fr30.md: Likewise. + * config/frv/frv.md: Likewise. + * config/ia64/ia64.md: Likewise. + * config/mips/mips.h: Likewise. + * config/mn10300/mn10300.c: Likewise. + * config/stormy16/stormy16.c: Likewise. + * config/v850/v850.md: Likewise. + * doc/extend.texi: Likewise. + * doc/invoke.texi: Likewise. + * doc/md.texi: Likewise. + +2002-09-15 Jason Thorpe + + * config/netbsd.h (LIB_SPEC): Include the appropriate pthread + library if -pthread is specified. + +2002-09-15 Jason Thorpe + + * config.gcc (*-*-netbsd*): Set thread_file to 'posix' + for --enable-threads=yes and --enable-threads=posix. + +2002-09-15 Kazu Hirata + + * config/sparc/cypress.md: Replace Sparc with SPARC. + * config/sparc/freebsd.h: Likewise. + * config/sparc/gmon-sol2.c: Likewise. + * config/sparc/hypersparc.md: Likewise. + * config/sparc/lb1spc.asm: Likewise. + * config/sparc/lb1spl.asm: Likewise. + * config/sparc/linux.h: Likewise. + * config/sparc/linux64.h: Likewise. + * config/sparc/lynx.h: Likewise. + * config/sparc/sol2.h: Likewise. + * config/sparc/sparc-modes.def: Likewise. + * config/sparc/sparc.c: Likewise. + * config/sparc/sparc.h: Likewise. + * config/sparc/sparc.md: Likewise. + * config/sparc/sparclet.md: Likewise. + * config/sparc/supersparc.md: Likewise. + * config/sparc/sysv4.h: Likewise. + * config/sparc/vxsim.h: Likewise. + * config/sparc/vxsparc64.h: Likewise. + +2002-09-14 Kaveh R. Ghazi + + * c-lex.c (cb_ident): Mark variable with ATTRIBUTE_UNUSED. + * collect2.c (ignore_library, aix_std_libs): Move into the context + where it is used. + * m68hc11.c (m68hc11_autoinc_compatible_p): Delete prototype. + (autoinc_mode, m68hc11_make_autoinc_notes): Add prototypes. + * m88k.c (output_call): Wrap variables with macro controlling use. + * rs6000.md: Likewise. Const-ify variable. + * sh.h (ASM_OUTPUT_LABELREF): Likewise. + * final.c (only_leaf_regs_used): Likewise. + * regrename.c (maybe_mode_change): Mark parameter with + ATTRIBUTE_UNUSED. + * reload.c (find_valid_class): Likewise. Likewise for variable. + (find_reloads_address_1): Likewise. + * varasm.c (weak_finish): Wrap variable with macro controlling use. + +2002-09-14 Marek Michalkiewicz + + * config/avr/avr.c (output.h): Move after inclusion of tree.h. + +2002-09-14 Kazu Hirata + + * ChangeLog: Follow spelling conventions. + * ChangeLog.0: Likewise. + * ChangeLog.2: Likewise. + * ChangeLog.3: Likewise. + * ChangeLog.4: Likewise. + * ChangeLog.5: Likewise. + * ChangeLog.6: Likewise. + * cppfiles.c: Likewise. + * cppinit.c: Likewise. + * cpplib.h: Likewise. + * cse.c: Likewise. + * debug.h: Likewise. + * df.c: Likewise. + * dominance.c: Likewise. + * hashtable.c: Likewise. + * hashtable.h: Likewise. + * loop.c: Likewise. + * config/arm/README-interworking: Likewise. + * config/arm/arm.c: Likewise. + * config/arm/arm.h: Likewise. + * config/arm/arm.md: Likewise. + * config/dsp16xx/dsp16xx.h: Likewise. + * config/frv/frv.c: Likewise. + * config/frv/frv.h: Likewise. + * config/ip2k/ip2k.h: Likewise. + * config/rs6000/rs6000.c: Likewise. + * config/stormy16/stormy-abi: Likewise. + * config/stormy16/stormy16.h: Likewise. + * config/v850/v850.c: Likewise. + +2002-09-14 Kazu Hirata + + * loop.c: Fix a comment typo. + +2002-09-14 Kazu Hirata + + * config/fr30/fr30.h: Fix comment typos. + * config/frv/frv.c: Likewise. + * config/i386/xmmintrin.h: Likewise. + * config/mips/mips.c: Likewise. + * config/sh/sh.c: Likewise. + +2002-09-14 Kazu Hirata + + * haifa-sched.c: Follow spelling conventions. + * regclass.c: Likewise. + * regrename.c: Likewise. + * config/fp-bit.c: Likewise. + * config/frv/frv.h: Likewise. + * config/m88k/m88k.c: Likewise. + * config/mcore/mcore.c: Likewise. + * config/rs6000/darwin.h: Likewise. + * config/rs6000/gnu.h: Likewise. + * config/rs6000/linux.h: Likewise. + * config/rs6000/linux64.h: Likewise. + * config/rs6000/rs6000.c: Likewise. + * config/rs6000/rs6000.h: Likewise. + * config/sh/sh.c: Likewise. + * config/sparc/sparc.c: Likewise. + * config/sparc/ultra1_2.md: Likewise. + +2002-09-14 Stephane Carrez + + * config/m68hc11/m68hc11.md ("movdi_internal"): Allow any offsetable + memory operand when source is 0 (K constraint). + ("movsi_internal"): Likewise. + ("movdf_internal"): Likewise. + ("movsf_internal"): Likewise. + +2002-09-14 Alan Modra + + * config/rs6000/rs6000.c (rs6000_elf_encode_section_info): Use + targetm.binds_local_p to set SYMBOL_REF_FLAG. + (rs6000_xcoff_encode_section_info): Likewise. + * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Likewise. + +2002-09-10 Theodore A. Roth + + * gcc/config/avr/avr.h: Set default options for C++ for avr. + +2002-09-13 Roger Sayle + + * stmt.c (struct nexting): Remove unused alt_end_label field. + (expand_start_loop): Delete initialization of alt_end_label. + (expand_start_null_loop): Likewise. + (expand_exit_loop_if_false): Delete updating of alt_end_label. + +2002-09-13 Richard Henderson + + * Makefile.in (toplev.o): Depend on real.h. + (print-rtl.o, varasm.o, ifcvt.o): Likewise. + +2002-09-14 Alan Modra + + * doc/tm.texi (DBX_OUTPUT_NFUN): Describe. + * dbxout.c (dbxout_function_end): Use DBX_OUTPUT_NFUN. + * config/rs6000/linux64.h (DBX_OUTPUT_NFUN): Define. + +2002-09-13 Nathan Sidwell + + * ggc-common.c (ggc_mark_roots): Don't iterate NULL hash tables. + +2002-09-13 Steve Ellcey + + * config.gcc (ia64*-*-aix*, ia64*-*-elf*, ia64*-*-freebsd*, + ia64*-*-linux*): Set extra_parts. + * config/ia64/t-aix (EXTRA_PARTS): Remove. + * config/ia64/t-ia64 (EXTRA_PARTS): Remove. + +2002-09-13 Kazu Hirata + + * config/h8300/fixunssfsi.c: Replace H8/S with H8S. + * config/h8300/h8300.c: Likewise. + * config/h8300/h8300.h: Likewise. + * config/h8300/h8300.md: Likewise. + * doc/invoke.texi: Likewise. + +2002-09-13 Kazu Hirata + + * config/h8300/h8300.c (h8300_init_once): Fix formatting. + +2002-09-13 Richard Henderson + + * config/alpha/alpha.md (attr type): Add callpal. + (imb, trap, load_tp, set_tp): Use it. + * config/alpha/ev4.md (ev4_callpal): New. + * config/alpha/ev5.md (ev5_callpal): New. + * config/alpha/ev6.md (ev6_ibr): Handle callpal. + * config/alpha/alpha.c (alphaev4_insn_pipe): Handle TYPE_CALLPAL. + (alphaev5_insn_pipe): Likewise. + +2002-09-13 Andreas Jaeger + + * Makefile.in (print-rtl.o): Depend on CONFIG_H. + +2002-09-13 Steve Ellcey + + * config/ia64/t-hpux (LIBGCC1_TEST, STMP_FIXPROTO, + LIB2ADDEH): New, set to NULL. + (SHLIB_EXT, SHLIB_LINK, SHLIB_INSTALL, SHLIB_MKMAP): New. + +2002-09-13 Steve Ellcey + + * config/ia64/quadlib.c (_U_Qfcmp): Make extern. + (_U_Qfcnvfxt_quad_to_sgl): Remove declaration. + (_U_Qfeq, _U_Qfne, _U_Qfgt, _U_Qfge, U_Qflt, U_Qfle, _U_Qfcomp): + Add declarations. + (_U_Qfneg): Remove. + +2002-09-13 Dhananjay Deshpande + + * config/h8300/h8300.h (EIGHTBIT_CONSTANT_ADDRESS_P): Add support + for H8/300, H8S aa:8 mode. + (TINY_CONSTANT_ADDRESS_P): Add support for H8S aa:16 mode. + * config/h8300/h8300.c (h8300_adjust_insn_length): Adjust length + for H8/300 aa:8 mode. + +2002-09-13 Hartmut Penner + + * config/s390/s390.md ("trap", "conditional_trap", "*trap"): New + insns. + +2002-09-12 Richard Henderson + + * Makefile.in (HOST_PRINT): Use print-rtl1.o + (print-rtl.o): Don't define GENERATOR_FILE. + (print-rtl1.o): Rename from $(BUILD_PREFIX_1)print-rtl.o. + * print-rtl.c (print_rtx): Include CONST_DOUBLE fp decimal output + unless GENERATOR_FILE. + +2002-09-12 Stan Shebs + + * config/darwin.h (USER_LABEL_PREFIX): Define here... + * config/i386/darwin.h: ... instead of here. + + * target.h (struct gcc_target): New field + terminate_dw2_eh_frame_info. + * target-def.h (TARGET_TERMINATE_DW2_EH_FRAME_INFO): Define. + (TARGET_INITIALIZER): Add it. + * dwarf2out.c (output_call_frame_info): Use target hook. + * dwarf2asm.c (dw2_asm_output_delta): Use macro + ASM_OUTPUT_DWARF_DELTA if defined. + * doc/tm.texi (TARGET_TERMINATE_DW2_EH_FRAME_INFO): Document. + (ASM_OUTPUT_DWARF_DELTA): Ditto. + (ASM_OUTPUT_DWARF_OFFSET): Ditto. + (ASM_OUTPUT_DWARF_PCREL): Ditto. + * config.gcc (i[34567]86-*-darwin*): Define extra_parts. + (powerpc-*-darwin*): Ditto. + * crtstuff.c [OBJECT_FORMAT_MACHO]: Update the Mach-O bits + to work correctly for Darwin. + * config/darwin.h (OBJECT_FORMAT_MACHO): Define. + (STARTFILE_SPEC): Add crtbegin.o. + (ENDFILE_SPEC): Define. + (EXTRA_SECTION_FUNCTIONS): Put gcc_except_tab in data segment. + (ASM_PREFERRED_EH_DATA_FORMAT): Handle more cases. + (ASM_OUTPUT_DWARF_DELTA): Define. + (TARGET_TERMINATE_DW2_EH_FRAME_INFO): Define. + * config/darwin.c (darwin_asm_output_dwarf_delta): New function. + +2002-09-13 Alan Modra + + * config/rs6000/rs6000.c (rs6000_emit_load_toc_table): Remove "if" + nesting. Correct test for non-PowerPC64 ELF ABI_AIX. + * config/rs6000/rs6000.md (load_toc_v4_PIC*): Disable when ABI_AIX. + +2002-09-12 Zack Weinberg + + * toplev.c: Move default definition of USER_LABEL_PREFIX... + * defaults.h: ... here. + +2002-09-12 Richard Henderson + + * vax.c: Include tree.h earlier. + +2002-09-12 Stan Shebs + + * config/darwin.c (machopic_finish): Remove #if 0 chunks. + (machopic_operand_p): Ditto. + +2002-09-12 Kazu Hirata + + * config/arm/arm.c (arm_compute_initial_elimination_offset): + Fix a comment typo. + +2002-09-12 Kazu Hirata + + * toplev.c (do_abort): Fix a comment typo. + +2002-09-12 Kazu Hirata + + * cselib.c: Fix comment formatting. + * gengtype.c: Likewise. + +2002-09-12 Kazu Hirata + + * config/h8300/h8300.md (udivmodqi4): Do not use an expander. + (udivmodhi4): Likewise. + +2002-09-12 Graham Stott + Roger Sayle + + * i386.c (any_fp_register_operand, fp_register_operand, + register_and_not_any_fp_reg_operand, register_and_not_fp_reg_operand): + New predicate functions. + * i386-protos.h: Add their prototypes. + * i386.h: Add them to PREDICATE_CODES. + * i386.md ("*pushsf_rex64"+2, "*pushsf_rex64"+3, "*pushdf_integer"+1, + "*pushdf_integer"+2, "*pushtf_integer"+1, "*pushtf_integer"+2, + "*pushtf_integer"+3, "*pushtf_integer"+4, "*dummy_extendsfdf2"+1, + "*dummy_extendsfdf2"+2, "*dummy_extendsfxf2"+1, + "*dummy_extendsftf2"+1, "*dummy_extendsftf2"+2, + "*dummy_extenddfxf2"+1, "*dummy_extenddftf2"+1, + "*dummy_extenddftf2"+2, "*negsf2_if"+1, "*negsf2_if"+2, + "*negdf2_if_rex64"+1, "*negdf2_if_rex64"+2, "*negxf2_if"+1, + "*negxf2_if"+2, "*negtf2_if"+1, "*negtf2_if"+2, "*abssf2_if"+1, + "*abssf2_if"+2, "*absdf2_if_rex64"+1, "*absdf2_if_rex64"+2, + "*absxf2_if"+1, "*absxf2_if"+2, "*abstf2_if"+1, "*abstf2_if"+2): + Use these new predicates to simplify and correct the use of + FP_REG_P, ANY_FP_REG_P, FP_REGNO_P and any ANY_FP_REGNO_P. + +2002-09-12 Jason Merrill + + * diagnostic.c (output_add_identifier): New fn. + * diagnostic.h: Declare it. + + * calls.c (store_one_arg): Use size_in_bytes to determine the + amount of space to push. + +2002-09-12 Jakub Jelinek + + * config/sparc/linux64.h (STARTFILE_SPEC32): Fix a typo. + +2002-09-12 Ulrich Weigand + + * config/s390/s390-modes.def (CCAPmode, CCANmode): New CC modes. + * config/s390/s390.c (s390_match_ccmode_set): Support new CC modes. + (s390_select_ccmode): Likewise. + (s390_branch_condition_mask): Likewise. + (optimization_options): Do not set flag_branch_on_count. + (s390_split_branches): Handle doloop branches. + (s390_chunkify_pool): Likewise. + * config/s390/s390.md ("*adddi3_imm_cc", "*addsi3_imm_cc"): New insns. + ("doloop_end"): New expander. + ("doolop_si", "*doloop_si_long", "doloop_di", "*doloop_di_long", + associated splitters): New. + +2002-09-11 Volker Reichelt + + * genattrtab.c (simplify_cond): Remove unused variable(s). + * global.c (record_conflicts): Likewise. + * jump.c (rebuild_jump_labels): Likewise. + * loop.c (scan_loop, check_final_value): Likewise. + * ra-colorize.c (colorize_one_web, assign_colors): Likewise. + * reload1.c (eliminate_regs_in_insn, do_input_reload): Likewise. + * rtlanal.c (reg_set_p): Likewise. + * stmt.c (expand_asm_operands, expand_decl): Likewise. + * genautomata.c (empty_reserv): Remove. + * loop.c (max_luid): Likewise. + * sched-rgn.c (bitlst_table_size): Likewise. + +2002-09-11 Nathan Sidwell + + Reimplement gcov format. + * gcov-io.h: Replace. + * gcov.c: Reimplement. + * gcov-iov.c: New file. + * gcov-dump.c: New file. + * libgcc2.c (L_bb): Replace with ... + (L_gcov): ... this. + (struct bb_function_info, struct bb): Remove. + (inhibit_libc): Never inhibit. + (gcov_list, gcov_crc): New static variables. + (gcov_version_mismatch): New static function. + (__bb_exit_func): Renamed to ... + (__gcov_exit): ... here. Made static. Reimplement. + (__gcov_init_func): Rename to ... + (__gcov_init): ... here. Check version, update crc. + (__bb_fork_func): Rename to ... + (__gcov_flush): ... here. + * libgcc2.h (struct bb, __bb_exit_func, __bb_init_func, + __bb_fork_func, gcov_type, __bb_find_arc_counters): Remove. + * calls.c (expand_call): Call __gcov_flush. + * profile.c (bb_file, last_bb_file_name): Remove. + (bbg_file_name): New global variable. + (output_gcov_string): Remove. + (get_exec_counts): Reimplement. + (branch_prob): Reimplement gcov file writing. + (init_branch_prob): Create bbg_file_name, don't create + bb_file_name. + (end_branch_prob): Adjust. Don't remove counter file when + instrumenting ourselves. + (create_profiler): Adjust. + * doc/gcov.texi (Gcov Data Files): Remove detailed specification, + point to gcov-io.h. + * Makefile.in (LANGUAGES): Add gcov-dump. + (coverageexts): Remove .bb. + (STAGESTUFF): Add gcov-dump. + (LIB2FUNCS_ST): Replace _bb with _gcov. + (profile.o): Depend on gcov-iov.h. + (final.o): Don't depend on profile.h, gcov.h. + (gcov.o): Depend on gcov-iov.h. + (gcov-iov.o): New target. + (gcov-iov): New target. + (gcov-iov.h): New target. + (gcov-dump.o): New target. + (GCOV_DUMP_OBJS): New variable. + (gcov-dump): New target. + (distclean): Remove coverageexts. + (stage1): Remove coverageexts. + +2002-09-11 Hartmut Penner + + * fold-const.c (make_range): Only narrow to signed range if + the signed range is smaller than the unsigned range. + +2002-09-12 Alan Modra + + * emit-rtl.c (set_mem_size): New function. + * expr.h (set_mem_size): Declare. + * config/rs6000/rs6000.c (expand_block_move_mem): Exterminate. + (expand_block_move): Instead, use adjust_address and + replace_equiv_address to generate proper aliasing info. + Move common code out of conditionals. Localize vars. + +2002-09-11 Eric Botcazou + + * optabs.c (expand_binop): Minor cleanup. + (expand_twoval_binop): Convert CONST_INTs like in expand_binop. + +2002-09-11 Dan Nicolaescu + + * print-tree.c (print_node): Print the restrict qualifier. + +2002-09-11 Janis Johnson + + * doc/install.texi: Fix typos. + +2002-09-11 Zack Weinberg + + * Makefile.in: Remove all references to s-under and underscore.c. + * collect2.c, tlink.c: Change all uses of prepends_underscore + to look directly at USER_LABEL_PREFIX. + +2002-09-11 David Edelsohn + + * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section): Append + alignment to csect. + (rs6000_xcoff_unique_section): Only set section name for public + data. + (rs6000_xcoff_section_type_flags): Store log2 alignment in flags. + * config/rs6000/xcoff.h (TARGET_ASM_SELECT_SECTION): Remove + duplicate definition. + +2002-09-10 John David Anglin + + * pa.md (extzv): Check predicates before emitting extzv_32. + (insv): Likewise. + +2002-09-10 Ulrich Weigand + + * config/s390/s390.h (MOVE_MAX): Define to correct value. + (MAX_MOVE_MAX): Define. + (MOVE_BY_PIECES_P): Define. + (CLEAR_BY_PIECES_P): Define. + +2002-09-10 Denis Chertykov + + * config/avr/avr.md (movstrhi): Use right operands for conversion. + +2002-09-10 Richard Earnshaw + + PR c/7873 + * arm.md (insv): Use reg_or_int_operand for operand[3]. + +2002-09-10 David Edelsohn + + * rs6000.c (rs6000_assemble_visibility): Protect declaration + inside macro. Correct function definition typo. + (rs6000_xcoff_section_type_flags): New function. + (TARGET_SECTION_TYPE_FLAGS): Remove definition. + (rs6000_elf_section_type_flags): Call default_section_type_flags_1 + with appropriate PIC test. + (rs6000_xcoff_select_section): Use decl_readonly_section_1 to + determine readonly. + (rs6000_binds_local_p): Combine PIC flags. + * sysv4.h (TARGET_SECTION_TYPE_FLAGS): Define. + * xcoff.h (TARGET_SECTION_TYPE_FLAGS): Define. + +2002-09-09 Kaveh R. Ghazi + + * h8300.md: Fix signed/unsigned warnings. + * mcore.md: Likewise. + * mn10300.c (mask_ok_for_mem_btst): Likewise. + +2002-09-09 Per Bothner + + * print-tree.c (print_node): In a STRING_CST, escape non-ascii + characters, and only print TREE_STRING_LENGTH chars. + +2002-09-09 Steve Ellcey + + * config/ia64/hpux.h (TARGET_HPUX_LD): New, define true. + (ASM_FILE_END) New. + * config/ia64/ia64.h (TARGET_HPUX_LD): New, define false. + * config/ia64/ia64-protos.h (ia64_hpux_asm_file_end): New. + * config/ia64/ia64.c (ia64_asm_output_external): Create list + of external functions if TARGET_HPUX_LD is true. + (ia64_hpux_add_extern_decl): New, routine to put names on + list of external functions. + (ia64_hpux_asm_file_end): Put out declarations for external + functions if and only if they are used. + +2002-09-09 John David Anglin + + * pa.md (exception_receiver, builtin_setjmp_receiver): Add blockage + on TARGET_64BIT before pic register restore. + +2002-09-09 David Edelsohn + + * doc/tm.texi (TARGET_HAVE_SRODATA_SECTION): New description. + (TARGET_HAVE_TLS): New description. + +2002-09-09 Janis Johnson + + * doc/extend.texi (Statement Exprs): Fix broken link. + +2002-09-09 Denis Chertykov + + * config/avr/avr.md (movstrhi, clrstrhi): Use gen_int_mode for + right conversion of operands[1]. + +2002-09-09 Ulrich Weigand + + * config/s390/s390.md ("*tmdi_reg", "*tmsi_reg"): Do not mark as + commutative. Use "nonimmediate_operand" instead of "register_operand" + as predicate for operand 0. Move to after the "*tmXX_mem" insns. + + ("*tmdi_mem", "*tmsi_mem", "*tmhi_mem", "*tmqi_mem"): Do not mark + as commutative. + + ("*anddi3_ni", "*andsi3_ni", "*iordi3_ni", "*iorsi3_ni"): Do not + mark as commutative. Use "nonimmediate_operand" instead of + "register_operand" as predicate for operand 1. + + ("movstrictsi"): Fix typo in insn name. + +2002-09-09 Jan Hubicka + + * i386.c (index_register_operand): New. + * i386.h (predicate_codes): Add new predicate. + * i386.md (lea_general_*): Use index_register_operand + (ashift to lea splitter): Do not produce invalid leas + (ashift to mov+ashift split): New. + +2002-09-09 Nick Clifton + + * config/fr30/fr30.c (output.h): Move after inclusion of tree.h. + Fix folding marks. + +2002-09-09 Toshiyasu Morita + J"orn Rennecke + + * sh/sh.h (OVERRIDE_OPTIONS): align_functions is in bytes, not bits. + +2002-09-09 Alan Modra + + * config/rs6000/rs6000.c (rs6000_binds_local_p): Return bool. + (function_ok_for_sibcall): Use binds_local_p. Respect longcall + attributes. + +2002-09-08 Nathan Sidwell + + * basic_block.h (gcov_type): Explain why it is signed. + * final.c: Don't include profile.h. + (struct function_list, functions_head, functions_tail, + end_final): Moved to profile.c + (final): Move arc chaining code to profile.c. + * function.c (prepare_function_start): Remove duplicate line. + * output.h (end_final): Remove prototype. + * predict.c (estimate_loops_at_level): Use gcov_type. + * profile.c (struct function_list, functions_head, + functions_tail): Moved from final.c + (need_func_profiler): Remove. + (instrument_edges): Don't set need_func_profiler. + (get_exec_counts): Avoid signed/unsigned warning. + (compute_checksum): Use crc32. + (branch_prob): Adjust. Chain onto functions_head. + (init_branch_prob): Absorb init_edge_profiler. + (init_edge_profiler): Remove. + (create_profiler): Moved and renamed from final.c:end_final. + Emit data and constructor. + (output_func_start_profiler): Remove. + * profile.h (struct profile_info): checksum is unsigned. + * rtl.h (output_func_start_profiler): Remove prototype. + (create_profiler): Declare. + * toplev.c (compile_file): Call create_profiler, if instrumenting + arcs. Don't call end_final. + +2002-09-08 Kaveh R. Ghazi + + * fr30.c (fr30_print_operand): Fix bug in output of CONST_DOUBLE. + +2002-09-08 Richard Henderson + + * dwarf2.h (DW_OP_call_ref): Rename from DW_OP_calli. + (DW_OP_GNU_push_tls_address): New. + (DW_OP_lo_user): Fix. + * dwarf2out.c (INTERNAL_DW_OP_tls_addr): New. + (dwarf_stack_op_name): Handle it, plus other dwarf3 opcodes. + (size_of_loc_descr): Likewise. + (output_loc_operands): Handle INTERNAL_DW_OP_tls_addr. + (add_AT_location_description): Take a dw_loc_descr_ref not an rtx. + (loc_descriptor_from_tree): Handle TLS variables. + (rtl_for_decl_location): Do avoid_constant_pool_reference here ... + (add_location_or_const_value_attribute): ... not here. Defer + to loc_descriptor_from_tree for TLS variables. + + * config/i386/i386.h (ASM_OUTPUT_DWARF_DTPREL): New. + * config/i386/i386.c (i386_output_dwarf_dtprel): New. + * config/i386/i386-protos.h: Update. + +2002-09-08 Roger Sayle + + PR optimization/6405 + * unroll.c (loop_iterations): last_loop_insn should be the previous + non-note instruction before loop->end. + * loop.c (strength_reduce): The conditional jump is the last + non-note instruction before loop->end (as above). + +2002-09-08 Roger Sayle + + * combine.c (try_combine): Handle the case that undobuf.other_insn + has been turned into a return or unconditional jump, by inserting + a BARRIER if necessary. + (simplify_set): Test if a condition code setter has a constant + comparison at compile time, if so convert this insn to a no-op move + and update/simplify the condition code user (undobuf.other_insn). + +2002-09-08 Krister Walfridsson + + * config/arm/netbsd.h (INITIALIZE_TRAMPOLINE): Redefine. + (CLEAR_INSN_CACHE): Define. + +2002-09-08 Kazu Hirata + + * basic-block.h: Fix comment formatting. + * c-common.c: Likewise. + * c-common.h: Likewise. + * c-lex.c: Likewise. + * c-pretty-print.c: Likewise. + * cfglayout.c: Likewise. + * cfgloop.c: Likewise. + * defaults.h: Likewise. + * et-forest.c: Likewise. + * explow.c: Likewise. + * function.h: Likewise. + * gcov.c: Likewise. + * genattrtab.c: Likewise. + * gengtype.c: Likewise. + * ifcvt.c: Likewise. + * libgcc2.c: Likewise. + * loop.c: Likewise. + * profile.c: Likewise. + * ra-build.c: Likewise. + * real.c: Likewise. + * rtl.h: Likewise. + * tracer.c: Likewise. + * tree-inline.c: Likewise. + * varasm.c: Likewise. + +2002-09-08 Jan Hubicka + + * emit-rtl.c (set_mem_attributes_minus_bitpos): Fix array_ref + handling. + + * loop.c (loop_givs_reduce): Emit addition after. + +2002-09-08 Alan Modra + + * varasm.c (default_assemble_visibility): Rename from + assemble_visibility. + * output.h: Here too. + * target-def.h (TARGET_ASM_ASSEMBLE_VISIBILITY): And here. + * config/rs6000/rs6000.c (rs6000_assemble_visibility): And here. + +2002-09-08 Alan Modra + + * reload.c (find_reloads

): Pass operand_mode to + find_reloads_address. + +2002-09-08 Kazu Hirata + + * config/h8300/h8300.md (udivmodqi4): Enable on H8/300. + (anonymous pattern): Likewise. + +2002-09-07 Igor Shevlyakov + + * machmode.def: Add modes for half-float vectors. + +2002-09-07 Scott Snyder + + PR target/7374 + * config/alpha/alpha.md (abstf2): Fix typo: 'neg' for 'abs'. + +2002-09-07 Roger Sayle + + * basic-block.h (struct loop): Remove unused cont_dominator field. + +2002-09-07 Igor Shevlyakov + + * varasm.c (decode_rtx_const): Don't check undefined field for + CONST_VECTOR. + +2002-09-07 Glen Nakamura + + PR opt/7814 + * sched-deps.c (sched_analyze_insn): Make sure to add insn + to reg_last->sets after flushing the dependency lists to guarantee + that subsequent clobbers will be dependent on it. + +2002-09-07 Igor Shevlyakov + + * combine.c (simplify_shift_const): Calculate rotate count + correctly for vector operands. + +2002-09-07 Ansgar Esztermann + + * c-typeck.c (c_tree_expr_nonnegative_p): New function. + (build_binary_op): Call c_tree_expr_nonnegative_p rather than + tree_expr_nonnegative_p. + (build_conditional_expr): Likewise. + * c-tree.h (c_tree_expr_nonnegative_p): Declare. + +2002-09-07 Richard Henderson + + * builtins.def (inf, inff, infl): Mark const. + (huge_val, huge_valf, huge_vall): Likewise. + (BUILT_IN_GETEXP, BUILT_IN_GETMAN): Remove. + + * real.c (ereal_inf): Clear E before use. + +2002-09-07 Kazu Hirata + + * config/h8300/h8300.md (udivmodqi4): Split the pattern into + an expander and an anonymous pattern. Zero out the upper half + of the dividend in the expander. + (udivmodqi4): Likewise. + +2002-09-07 Kazu Hirata + + * config/h8300/h8300.c: Fix formatting. + * config/h8300/h8300.h: Likewise. + * config/h8300/h8300.md: Likewise. + +2002-09-07 Zdenek Dvorak + + * cfgcleanup.c (try_crossjump_to_edge): Fix updating of liveness + information. + +2002-09-07 Graham Stott + + * rtlanal.c (dead_or_set_regno_p): Fix typo. + +2002-09-07 Alan Modra + + * config/rs6000/linux64.h (ASM_PREFERRED_EH_DATA_FORMAT): Define. + + * doc/tm.texi (TARGET_ASM_ASSEMBLE_VISIBILITY): Describe. + * target-def.h (TARGET_ASM_ASSEMBLE_VISIBILITY): Define. + (TARGET_ASM_OUT): Add the above here. + * target.h (struct gcc_target): Add "visibility" field. + * varasm.c (maybe_assemble_visibility): Call targetm visibility func. + * config/rs6000/rs6000.c (rs6000_assemble_visibility): New function. + (TARGET_ASM_ASSEMBLE_VISIBILITY): Define. + (rs6000_legitimize_reload_address, first_reg_to_save): Formatting. + +2002-09-06 Ziemowit Laski + + * c-lang.c (objc_is_id): New stub. + * c-tree.h (objc_is_id): New forward declaration. + * c-typeck.c (build_c_cast): Do not strip protocol + qualifiers from 'id' type. + * objc/objc-act.c (objc_comptypes): Correct handling + of protocol qualifiers. + (objc_is_id): New. + +Fri Sep 6 13:10:08 2002 Jeffrey A Law (law@redhat.com) + + * pentium.md (pentium-firstvboth): Fix typo. + +2002-09-06 Dhananjay Deshpande + + * h8300.c (enum shift_alg): Move to earlier in h8300.c. + (enum shift_type, enum h8_cpu): Likewise. + (INL, ROT, LOP, SPC macros): Likewise. + (shift_alg_qi, shift_alg_hi, shift_alg_si): Likewise. Lose + const designator. + (h8300_init_once): Update shift_alg_{qi,hi,si} to use more + space efficient algorithms when optimize for codesize. + +Fri Sep 6 16:35:32 2002 Nicola Pero + + Fix PR/1727 and long-standing failing testcase + objc/formal-protocol-6.m. + * objc-act.c (build_protocol_expr): If compiling for the GNU + runtime, create a list of Protocol statically allocated instances + if it doesn't exist, then add the Protocol object to this same + list. + (get_objc_string_decl): Fixed typo/bug - TREE_VALUE had been used + instead of TREE_CHAIN. + +Fri Sep 6 16:17:33 2002 Nicola Pero + + * objc/objc-act.c (dump_interface): Enlarged the char * buffer to + 10k. Fixed category dumping - print out category names with the + proper syntax. Print '@end\n' and not '\n@end' at the end of the + interface. + (finish_objc): Fixed the -gen-decls option. It was printing out + only the last class. Dump an interface declaration of all classes + being compiled instead. + +2002-09-06 Jason Thorpe + + * config/arm/arm-protos.h (arm_gen_return_addr_mask): New + prototype. + * config/arm/arm.c (arm_gen_return_addr_mask): New function. + * config/arm/arm.h (MASK_RETURN_ADDR): Use arm_gen_return_addr_mask + if not APCS26 and not Thumb or ARMv4-or-higher. Use gen_int_mode + rather than GEN_INT. + * config/arm/arm.md (UNSPEC_CHECK_ARCH): Define. + (return_addr_mask, *check_arch2): New. + +2002-09-06 Ulrich Weigand + + * config/s390/s390.md ("*adddi3_cc", "*adddi3_cconly", + "*adddi3_cconly2", "*adddi3_64", "*adddi3_31", "adddi3", + "*addsi3_carry1_cc", "*addsi3_carry1_cconly", + "*addsi3_carry2_cc", "*addsi3_carry2_cconly", + "*addsi3_cc", "*addsi3_cconly", "*addsi3_cconly2", "addsi3", + "adddf3", "*adddf3", "*adddf3_ibm", + "addsf3", "*addsf3", "*addsf3_ibm", + "muldi3", "mulsi3", "mulsidi3", + "muldf3", "*muldf3", "*muldf3_ibm", + "mulsf3", "*mulsf3", "*mulsf3_ibm", + "*anddi3_cc", "*anddi3_cconly", "anddi3", + "*andsi3_cc", "*andsi3_cconly", "andsi3", + "*iordi3_cc", "*iordi3_cconly", "iordi3", + "*iorsi3_cc", "*iorsi3_cconly", "iorsi3", + "*xordi3_cc", "*xordi3_cconly", "xordi3", + "*xorsi3_cc", "*xorsi3_cconly", "xorsi3"): Use "nonimmediate_operand" + instead of "register_operand" as predicate for "%0" operand. + +2002-09-06 Jakub Jelinek + + * configure.in (HAVE_AS_OFFSETABLE_LO10): Use -xarch=v9 + unconditionally when gcc_cv_as_flags64 checks are gone. + * configure: Rebuilt. + +2002-09-06 Alan Modra + + * config/rs6000/rs6000.md (extzvsi_internal2): Revert most of + 2002-07-26 change. Comment. + +2002-09-05 Kaveh R. Ghazi + + * frv.c (frv_unique_section, frv_select_section, + frv_select_rtx_section): Delete. + (frv_in_small_data_p): New. + (TARGET_ASM_UNIQUE_SECTION, TARGET_ASM_SELECT_SECTION, + TARGET_ASM_SELECT_RTX_SECTION): Delete. + (TARGET_IN_SMALL_DATA_P): Define. + +2002-09-05 Dale Johannesen + + * reload1.c (reload): Retain only those memory clobbers + added for variable-array handling. + +2002-09-05 Jason Thorpe + + * config/arm/arm.c (arm_return_in_memory): Implement ATPCS + return-in-memory rules. + * config/arm/arm.h (ARM_FLAG_ATPCS, TARGET_ATPCS): Define. + +2002-09-05 David Edelsohn + + * config/rs6000/xcoff.h (HOT_TEXT_SECTION_NAME): Delete. + (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Delete. + +2002-09-05 Jason Thorpe + + * real.c: Avoid parse error if FLOAT_WORDS_BIG_ENDIAN is + not a compile-time constant for the non-IBM case. + * config/arm/arm-protos.h (arm_float_words_big_endian): New + prototype. + * config/arm/arm.c (arm_float_words_big_endian): New function. + * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __VFP_FP__ + if TARGET_VFP and not TARGET_HARD_FLOAT. + (ARM_FLAG_VFP, TARGET_VFP): Define. + (FLOAT_WORDS_BIG_ENDIAN): Use arm_float_words_big_endian. + +2002-09-05 David Edelsohn + + * doc/install.texi: Correct text of s390-*-linux* and s390x-*-linux* + URLs. Fix AIX wording. + +2002-09-05 Stan Shebs + + * config/rs6000/rs6000.c (rs6000_override_options): Make -fpic and + -fPIC equivalent on Darwin. + +Thu Sep 5 16:27:47 2002 J"orn Rennecke + + * sh.c (sh_expand_builtin): Return early if encountering an + error_mark for a type. + +2002-09-05 Ulrich Weigand + + * config/s390/s390.c (s390_expand_plus_operand): Do not require + double-word scratch register. + config/s390/s390.md ("reload_indi", "reload_insi"): Adapt. + + ("*tmqi_ext", "*tmdi_mem", "*tmsi_mem", "*tmhi_mem", "*tmqi_mem", + "*cli"): Replace s_operand by memory_operand. + ("cmpstrdi", "cmpstrsi"): Replace s_operand by general_operand. + +2002-09-05 Kazu Hirata + + * config/h8300/h8300.c (asm_file_start): Add a missing + semicolon. + +2002-09-04 Volker Reichelt + + * c-typeck.c (build_function_call): Remove unused variable(s). + (build_c_cast): Likewise. + * calls.c (rtx_for_function_call): Likewise. + * cfglayout.c (duplicate_insn_chain): Likewise. + * cfgloop.c (flow_loop_nodes_find): Likewise. + * cfgrtl.c (split_edge): Likewise. + * df.c (df_ref_create): Likewise. + * except.c (expand_end_catch): Likewise. + * expr.c (emit_push_insn, store_constructor, expand_expr): Likewise. + * function.c (emit_return_into_block): Likewise. + (reposition_prologue_and_epilogue_notes): Likewise. + * gengtype.c (get_file_basename, write_gc_structure_fields): Likewise. + * combine.c (subst_prev_insn, need_refresh): Remove. + * dwarf2out.c (primary_filename): Remove. + * final.c (new_block): Remove. + * gcse.c (orig_bb_count): Remove. + +2002-09-04 Kaveh R. Ghazi + + * dsp16xx-protos.h (dsp16xx_compare_gen): Change to bool. + * dsp16xx.c (dsp16xx_compare_gen): Likewise. + * dsp16xx.md: Treat dsp16xx_compare_gen as a bool. Call functions + directly instead of using a function pointer. + +2002-09-04 Krister Walfridsson + + * config/i386/i386.h (GOT_SYMBOL_NAME): Define. + * config/i386/i386.c (output_set_got): Use GOT_SYMBOL_NAME. + (ix86_output_addr_diff_elt) Likewise. + (x86_output_mi_thunk) Likewise. + * config/i386/netbsd.h (GOT_SYMBOL_NAME): Redefine. + +2002-09-04 Kaveh R. Ghazi + + * frv.c (frv_encode_section_info): Fix error in last change. + +2002-09-04 David Edelsohn + + * config/rs6000/rs6000.c (rs6000_flag_pic): New variable. + (rs6000_elf_encode_section_info): ATTRIBUTE_UNUSED. + (TARGET_BINDS_LOCAL_P): Define. + (rs6000_override_options): Save original flag_pic value. + (rs6000_elf_select_section): Call default_elf_select_section_1. + (rs6000_elf_unique_section): Call default_unique_section_1. + (rs6000_elf_in_small_data_p): New function. + (rs6000_xcoff_asm_named_section): Determine storage mapping class. + (rs6000_xcoff_select_section): Update based on defaults. + (rs6000_xcoff_unique_section): Set to basic name if not common. + (rs6000_binds_local_p): New function. + * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Set + targetm.have_srodata_section if SDATA_EABI. + (TARGET_IN_SMALL_DATA_P): Define. + +2002-09-04 Dale Johannesen + + * varasm.c (struct rtx_const, decode_rtx_const): + Make veclo and vechi fields not share storage. + +Thu Sep 5 00:34:33 2002 J"orn Rennecke + + * loop.c (scan_loop): Don't mark separate insns out of a libcall + for moving. + (move_movables): Abort if we see the first insn of a libcall. + +2002-09-04 Richard Henderson + + * builtin-types.def (BT_FN_FLOAT): New. + (BT_FN_DOUBLE, BT_FN_LONG_DOUBLE): New. + * builtins.def (BUILT_IN_INF, BUILT_IN_INFF, BUILT_IN_INFL, + BUILT_IN_HUGE_VAL, BUILT_IN_HUGE_VALF, BUILT_IN_HUGE_VALL): New. + * builtins.c (fold_builtin_inf): New. + (fold_builtin): Call it. + * real.c (ereal_inf): New. + * real.h: Declare it. + * doc/extend.texi: Document new builtins. + +2002-09-04 Richard Henderson + + * cse.c (cse_insn): Avoid subreg games if the equivalence + is already in the proper mode. + +2002-09-04 Eric Botcazou + + PR c/7102 + * optabs.c (expand_binop): Convert CONST_INTs in all cases. + +2002-09-04 John David Anglin + + * pa.md (setccfp0, setccfp1): New patterns. + +2002-09-04 Kaveh R. Ghazi + + * frv-protos.h (frv_init_builtins, frv_expand_builtin, + frv_select_section, frv_select_rtx_section, + frv_encode_section_info, frv_unique_section): Delete. + * frv.c: Update for target hooks. + * frv.h (STRIP_NAME_ENCODING, SLOW_ZERO_EXTEND, SELECT_SECTION, + SELECT_RTX_SECTION, ENCODE_SECTION_INFO, UNIQUE_SECTION, + EASY_DIV_EXPR, MD_INIT_BUILTINS, MD_EXPAND_BUILTIN): Delete. + +2002-09-04 Kaveh R. Ghazi + + * ip2k-protos.h (function_prologue, function_epilogue, + encode_section_info): Update to match target hook specification. + * ip2k.c: Wrap `MDR' code in IP2K_MD_REORG_PASS. + (function_prologue, function_epilogue, encode_section_info): + Update to match target hook specification. + * ip2k.h (SELECT_SECTION, SELECT_RTX_SECTION, ASM_OPEN_PAREN, + ASM_CLOSE_PAREN, EASY_DIV_EXPR): Delete. + (NOTICE_UPDATE_CC): Cast to void. + * ip2k.md: Add defaults in switch statements. + +2002-09-04 Janis Johnson + + * doc/trouble.texi (Interoperation): Update information about C++ ABI + issues. + +2002-09-04 Jason Thorpe + + * config/sparc/t-netbsd64: Disable multilib for now. + +2002-09-04 David Edelsohn + + * target-def.h (TARGET_HAVE_SRODATA_SECTION): New macro. + * target.h (gcc_target): Add have_srodata_section member. + * varasm.c (section_category): Add SECCAT_SRODATA. + (categorize_decl_for_section): Return SECCAT_SRODATA for sdata if + READONLY_SDATA_SECTION defined. + (decl_readonly_section_1): True for SECCAT_SRODATA also. + (default_elf_select_section_1): Map SECCAT_SRODATA to .sdata2. + (default_unique_section_1): Likewise. + +2002-09-04 John David Anglin + + * expr.c (emit_group_load): Revise to allow splitting TCmode source + into DImode pieces. + + * pa-64.h (LONG_DOUBLE_TYPE_SIZE): Define to 128. + * pa64-regs.h (CLASS_CANNOT_CHANGE_MODE_P): Inhibit changes from SImode + for floating-point register class. + * pa.c (function_arg): Fix handling of modes wider than one word for + TARGET_64BIT. + +Wed Sep 4 18:48:10 2002 J"orn Rennecke + + * combine.c (make_compound_operation): Don't generate zero / sign + extensions in floating point modes. + +2002-09-04 Janis Johnson + + * doc/c-tree.texi: Fix overfull hboxes. + * doc/cppopts.texi: Ditto. + * doc/extend.texi: Ditto. + * doc/gty.texi: Ditto. + * doc/invoke.texi: Ditto. + * doc/makefile.texi: Ditto. + * doc/rtl.texi: Ditto. + * doc/standards.texi: Ditto. + * doc/tm.texi: Ditto. + +2002-09-04 Richard Henderson + + * c-common.c (builtin_define_with_hex_fp_value): New. + (builtin_define_float_constants): Use it. Fix H_FLOAT mant_dig. + +2002-09-04 Janis Johnson + + * doc/invoke.texi (-fshort-wchar): Move to Code Generation Options. + (-fpcc-struct-return, -freg-struct-return, -fshort-enums, + -fshort-double, -fshort-wchar, -fpack-struct, -fleading-underscore): + Warn that these options can break ABI compatibility. + +2002-09-04 Richard Henderson + + * real.c (ereal_to_decimal): Add digits parameter. + * real.h (REAL_VALUE_TO_DECIMAL): Remove format; add digits parameter. + * c-pretty-print.c (pp_c_real_literal): Update call. + * print-rtl.c (print_rtx): Likewise. + * print-tree.c (print_node_brief, print_node): Likewise. + * sched-vis.c (print_value): Likewise. + * config/arc/arc.c (arc_print_operand): Likewise. + * config/c4x/c4x.c (c4x_print_operand): Likewise. + * config/i370/i370.h (PRINT_OPERAND): Likewise. + * config/i386/i386.c (print_operand): Likewise. + * config/i960/i960.c (i960_print_operand): Likewise. + * config/ip2k/ip2k.c (asm_output_float): Likewise. + * config/m32r/m32r.c (m32r_print_operand): Likewise. + * config/m68hc11/m68hc11.c (print_operand): Likewise. + * config/m68k/hp320.h (PRINT_OPERAND, ASM_OUTPUT_FLOAT_OPERAND, + ASM_OUTPUT_DOUBLE_OPERAND, ASM_OUTPUT_LONG_DOUBLE_OPERAND): Likewise. + * config/m68k/m68k.h (ASM_OUTPUT_FLOAT_OPERAND, + ASM_OUTPUT_DOUBLE_OPERAND, ASM_OUTPUT_LONG_DOUBLE_OPERAND): Likewise. + * config/m68k/sun2o4.h (ASM_OUTPUT_FLOAT_OPERAND, + ASM_OUTPUT_DOUBLE_OPERAND): Likewise. + * config/m68k/sun3.h (ASM_OUTPUT_FLOAT_OPERAND, + ASM_OUTPUT_DOUBLE_OPERAND): Likewise. + * config/mips/mips.c (print_operand): Likewise. + * config/ns32k/ns32k.c (print_operand): Likewise. + * config/pdp11/pdp11.h (PRINT_OPERAND): Likewise. + * config/vax/vax.h (PRINT_OPERAND): Likewise. + * doc/tm.texi (REAL_VALUE_TO_DECIMAL): Update docs. + +2002-09-04 Bob Wilson + + * config/xtensa/elf.h (TARGET_SECTION_TYPE_FLAGS): Define to + xtensa_multibss_section_type_flags. + * config/xtensa/xtensa.c (xtensa_multibss_section_type_flags): Define. + +2002-09-04 Richard Henderson + + * doc/install-old.texi: Don't mention enquire. + * doc/sourcebuild.texi: Update float.h description. + +Wed Sep 4 11:22:14 2002 J"orn Rennecke + + * sh.md (mperm_w_little, mperm_w_big): Supply mode for zero_extract. + +2002-09-03 Roger Sayle + + * builtins.c (build_function_call_expr): Remove prototype, export + as non-static and add a comment above function definition. + (builtin_mathfn_code): New function to check for math builtins. + (fold_builtin): Optimize sqrt(0.0) as 0.0, sqrt(1.0) as 1.0, + exp(0.0) as 1.0, and log(1.0) as 0.0. Optimize exp(log(x)) and + log(exp(x)) as x. Optimize sqrt(exp(x)) as exp(x/2.0) and + log(sqrt(x)) as log(x)/2.0. + + * tree.h: Prototype build_function_call_expr and builtin_mathfn_code + in new "builtins.c" section. Place the build_range_type prototype + with the other prototypes from "tree.c". + + * fold-const.c (fold) [ABS_EXPR]: Fold fabs(sqrt(x)) as sqrt(x) + and fabs(exp(x)) as exp(x). [MULT_EXPR]: Fold sqrt(x)*sqrt(y) + as sqrt(x*y) and exp(x)*exp(y) as exp(x+y). [RDIV_EXPR]: Fold + x/exp(y) as x*exp(-y). + +2002-09-03 David Edelsohn + + * varasm.c (default_section_type_flags): Append _1 to name with + shlib parameter. Use original name to call new function with + implicit flag_pic. + (decl_readonly_section): Likewise. + (default_elf_select_section): Likewise. + (default_unique_section): Likewise. + (default_bind_local_p): Likewise. + (categorize_decl_for_section): Add shlib parameter to use in place + of implicit flag_pic. + * output.h: Declare new functions with _1 and shlib argument. + +2002-09-03 Janis Johnson + + * doc/install.texi: Fix typos, formatting problems, and obvious + overfull/underfull boxes. + + * Makefile.in (TEXI_GCC_FILES): Add compat.texi. + * doc/gcc.texi (Top): Add new chapter, Binary Compatibility, and + include its file, compat.texi. + * doc/compat.texi: New file with new chapter, Binary Compatibility. + +2002-09-03 Neil Booth + + Debian BTS Bug #157416 + * cpphash.h (FIRST, LAST, CUR, RLIMIT): Fix definitions. + * cpplib.c (destringize_and_run): Kludge around getting + tokens from in-progress macros. + (_cpp_do__Pragma): Simplify. + +2002-09-03 Steve Ellcey + + * config/ia64/ia64.h (EXTRA_SPECS): Remove cpp_cpu. + (CPP_CPU_SPEC): Remove. + (TARGET_CPU_CPP_BUILTINS): New. + * config/ia64/hpux.h (CPP_PREDEFINES): Remove. + (CPP_SPEC): Remove. + (TARGET_OS_CPP_BUILTINS): New. + * config/ia64/linux.h (CPP_PREDEFINES): Remove. + (TARGET_OS_CPP_BUILTINS): New. + * config/ia64/aix.h (CPP_SPEC): Move some stuff to + TARGET_OS_CPP_BUILTINS. + (CPP_PREDEFINES): Remove. + (CPLUSPLUS_CPP_SPEC): Remove. + (TARGET_OS_CPP_BUILTINS): New. + +2002-09-03 Richard Henderson + + * Makefile.in (USER_H): Add ginclude/float.h. + (FLOAT_H): Remove. + (stmp-int-hdrs, install-mkheaders): Don't handle FLOAT_H. + (mostlyclean): Don't remove float.h intermediate files. + (distclean): Don't remove float.h. + * config.gcc: Remove all float_format references. + * configure.in (float_format, float_h_file): Remove. + + * c-common.c: Include tree-inline.h. + (builtin_define_with_int_value): New. + (builtin_define_type_precision): Use it. + (builtin_define_float_constants): New. + (cb_register_builtins): Use it. Define __FLT_RADIX__ and + __FLT_EVAL_METHOD__. + * defaults.h (TARGET_FLT_EVAL_METHOD): New. + * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): New. + * config/m68k/m68k.h (TARGET_FLT_EVAL_METHOD): New. + * doc/tm.texi (INTEL_EXTENDED_IEEE_FORMAT): Mention moto 96-bit format. + (TARGET_FLT_EVAL_METHOD): New. + + * config/float-c4x.h, config/float-i128.h, config/float-i32.h, + config/float-i386.h, config/float-i64.h, config/float-m68k.h, + config/float-sh.h, config/float-sparc.h, config/float-vax.h: Remove. + * ginclude/float.h: New. + +2002-09-03 Stan Shebs + + * config/darwin.h (WARN_FOUR_CHAR_CONSTANTS): Remove, never used. + (DWARF2_DEBUGGING_INFO): Remove until assembler accepts Dwarf-2. + (PREFERRED_DEBUGGING_TYPE): Ditto. + (ASM_OUTPUT_IDENT): Remove empty definition. + +2002-09-03 Steve Ellcey + + * config.gcc (ia64*-*-hpux*): Add ia64-c.o to c_target and + cxx_target. + * config/ia64/hpux.h (REGISTER_TARGET_PRAGMAS): Register pragma + handling routine for builtin pragma. + * config/ia64/ia64-protos.h (ia64_hpux_handle_builtin_pragma): + Registered pragma handling routine. + * ia64-c.c (ia64_hpux_handle_builtin_pragma): Ditto. + (ia64_hpux_add_pragma_builtin) New subroutine used by above. + If builtin pragma seen for math routine and C89 conformance is + requested use different math function in order to set errno. + * t-ia64 (ia64-c.o): Add new rule for new file. + +2002-09-03 Ulrich Weigand + + * config/s390/s390.md ("movti"): Add Q->Q alternative. + ("*movdi_64", "*movdi_31", "*movsi", "movhi", "movqi_64", + "movqi", "*movdf_64", "*movdf_31", "*movsf"): Likewise. + + ("*movti_ss", "*movdi_ss", "*movsi_ss", "*movdf_ss", + "*movsf_ss"): Remove. + +2002-09-03 John David Anglin + + * pa32-regs.h (CLASS_CANNOT_CHANGE_MODE, CLASS_CANNOT_CHANGE_MODE_P): + Delete macros. + +2002-09-03 Arati Dikey + + * h8300.c (asm_file_start): Corrected optimization comment. + +2002-09-03 Stan Shebs + + * c-lang.c (recognize_objc_keyword): Remove, no longer used. + * c-tree.h (recognize_objc_keyword): Remove decl. + * c-typeck.c (comp_target_types): Update a comment. + +2002-09-03 Ulrich Weigand + + * config/s390/s390.c (s390_decompose_address): Remove STRICT parameter + and register validity checks. + (general_s_operand): Adapt to s390_decompose_address interface change. + (q_constraint): Likewise. + (s390_expand_plus_operand): Likewise. + (legitimiate_address_p): Likewise. + (legitimate_la_operand_p): Likewise. + (legitimize_la_operand): Likewise. + (print_operand_address): Likewise. + (print_operand): Likewise. + +Tue Sep 3 11:32:14 2002 Nicola Pero + + PR objc/5956: + * objc/objc-act.c (build_typed_selector_reference): Fix typo which + was causing the new selector never to match the existing ones + (Patch by Alexander Malmberg ). + +2002-09-03 Graham Stott + + * config/i386/i386.md ("femms"): Add "memory" attr "none". + +2002-09-03 Graham Stott + + * expr.c (expand_expr): Remove extraneous comment and code. + +2002-09-02 Nathan Sidwell + + * stor-layout (finish_builtin_struct): Renamed and moved from c++ + frontend. Take chain of fields. Allow NULL alignment type. + * tree.h (finish_builtin_struct): Declare. + +2002-09-01 Kaveh R. Ghazi + + * config/alpha/alpha.c config/alpha/alpha.h config/alpha/alpha.md + config/alpha/elf.h config/alpha/unicosmk.h config/alpha/vms.h + config/arc/arc.c config/arc/arc.h config/arm/aout.h + config/arm/arm.c config/arm/arm.h config/arm/arm.md + config/avr/avr.h config/d30v/d30v.h config/dbxcoff.h + config/dbxelf.h config/elfos.h config/fr30/fr30.h config/frv/frv.h + config/i386/i386.c config/i386/i386.md config/i386/sco5.h + config/ia64/ia64.h config/ip2k/ip2k.h config/m68hc11/m68hc11.md + config/m68k/hp320.h config/m68k/m68k.c config/m68k/m68k.md + config/m68k/mot3300.h config/m68k/sgs.h config/m68k/tower-as.h + config/m88k/m88k.c config/m88k/m88k.h config/mcore/mcore-pe.h + config/mcore/mcore.c config/mips/mips.c config/mips/mips.h + config/ns32k/ns32k.md config/pa/pa-linux.h config/pa/pa.c + config/pa/pa.h config/pa/pa.md config/romp/romp.h + config/rs6000/linux64.h config/rs6000/lynx.h + config/rs6000/rs6000.c config/rs6000/sysv4.h config/rs6000/xcoff.h + config/s390/s390.c config/s390/s390.md config/sh/sh.c + config/sparc/sparc.c config/sparc/sysv4.h + config/stormy16/stormy16.h dbxout.c defaults.h dwarf2out.c + dwarfout.c except.c final.c varasm.c vmsdbgout.c: Replace + ASM_OUTPUT_INTERNAL_LABEL macro with a call to the target hook. + + * doc/tm.texi: Update docs. + * default.h (ASM_OUTPUT_INTERNAL_LABEL): Don't define. + * system.h (ASM_OUTPUT_INTERNAL_LABEL): Poison. + +2002-08-31 Kaveh R. Ghazi + + * Makefile.in (sdbout.o, insn-output.o): Depend on $(TARGET_H). + * arc.c (arc_internal_label): New function. + (TARGET_ASM_INTERNAL_LABEL): Set. + * arc.h (ASM_OUTPUT_INTERNAL_LABEL): Delete. + * arm.c (arm_internal_label): New function. + (TARGET_ASM_INTERNAL_LABEL): Set. + * arm.h (ASM_OUTPUT_INTERNAL_LABEL): Delete. + * arm/elf.h (ASM_OUTPUT_INTERNAL_LABEL): Delete. + * i370.c (i370_internal_label): New function. + (TARGET_ASM_INTERNAL_LABEL): Set. + * i370.h (ASM_OUTPUT_INTERNAL_LABEL): Delete. + * m68k/hp320.h (ASM_OUTPUT_INTERNAL_LABEL): Delete. + * m68k.c (m68k_hp320_internal_label): New function. + (TARGET_ASM_INTERNAL_LABEL): Set. + * m88k.c (m88k_internal_label): New function. + (TARGET_ASM_INTERNAL_LABEL): Set. + * m88k.h (ASM_OUTPUT_INTERNAL_LABEL): Delete. + * defaults.h (ASM_OUTPUT_INTERNAL_LABEL): Set to target hook. + * genoutput.c (output_prologue): Include target.h in output file. + * output.h (default_internal_label): Declare. + * sdbout.c: Include target.h. + * target-def.h (TARGET_ASM_INTERNAL_LABEL): Set and add to + TARGET_ASM_OUT. + * target.h (internal_label): Add to struct gcc_target. + * varasm.c (default_internal_label): New function. + +2002-08-31 Kaveh R. Ghazi + + * alpha.h (ASM_OUTPUT_INTERNAL_LABEL): Delete. + * avr.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. + * c4x.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. + * cris.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. + * d30v.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. + * darwin.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. + * dsp16xx.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. + * elfos.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. + * h8300.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. + * i386/att.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. + * i386/bsd.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. + * i386/i386-coff.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. + * i386/lynx-ng.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. + * i386/lynx.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. + * i386/sco5.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. + * i960/i960.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. + * m68k/3b1.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. + * m68k/amix.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. + * m68k/atari.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. + * m68k.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. + * m68k/mot3300.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. + * m68k/tower-as.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. + * m88k.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. + * mcore.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. + * mips.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. + * mmix-protos.h (mmix_asm_output_internal_label): Likewise. + * mmix.c (mmix_asm_output_internal_label): Likewise. + * mmix.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. + * ns32k.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. + * pa.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. + * pdp11.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. + * romp.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. + * rs6000/xcoff.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. + * sh/coff.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. + * sh/elf.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. + * sparc/freebsd.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. + * sparc/linux.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. + * sparc/linux64.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. + * sparc/netbsd-elf.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. + * sparc/pbd.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. + * sparc/sol2.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. + * sparc.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. + * sparc/vxsim.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. + * stormy16.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. + * svr3.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. + * vax.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. + + * defaults.h (ASM_OUTPUT_INTERNAL_LABEL): Define. + +2002-08-31 Richard Henderson + + * expr.c (block_move_libcall_safe_for_call_parm): Fix thinko. + +2002-08-31 John David Anglin + + * pa.c (pa_globalize_label): Add ATTRIBUTE_UNUSED to prototype. + +2002-08-30 Richard Henderson + + PR opt/7515 + * c-objc-common.c: Include target.h. + (c_cannot_inline_tree_fn): Don't auto-inline functions that + don't bind locally. Factor setting DECL_UNINLINABLE. + * Makefile.in (c-objc-common.o): Update. + +2002-08-30 Janis Johnson + + * doc/install.texi (Configuration, Building): Fix a typo and + some formatting directives. + +2002-08-30 Paul Koning + + * doc/c-tree.texi (RDIV_EXPR): Fix typo. + * doc/rtl.texi (post_modify): Remove misplaced text, remove "not + implemented" note. + * doc/md.texi (IP2K): Move machine-specific constraints before MIPS + for alphabetic order. + * doc/tm.texi (TARGET_FLOAT_FORMAT): Update description for + VAX_FLOAT_FORMAT. Remove reference to HOST_FLOAT_FORMAT. + (VAX_HALFWORD_ORDER): Document. + (LARGEST_EXPONENT_IS_NORMAL): Remove note about being only for + IEEE float format. + (TARGET_SCHED_ISSUE_RATE): Reword reference to MAX_DFA_ISSUE_RATE. + (ASM_OUTPUT_LABEL_REF): Fix font. + (CASE_VECTOR_SHORTEN_MODE): Ditto. + +2002-08-30 Denis Chertykov + + * config/ip2k/ip2k.c (ip2k_set_compare): Remove all const_double + stuff. + (ip2k_gen_unsigned_comp_branch): Handle CONST_INT and + CONST_DOUBLE constants. + +2002-08-30 Jason Thorpe + + * config/alpha/alpha.h (TARGET_CPU_CPP_BUILTINS): Move language- + related defines to... + (SUBTARGET_LANGUAGE_CPP_BUILTINS): ...here. + * config/alpha/netbsd.h (SUBTARGET_LANGUAGE_CPP_BUILTINS): Redefine + as a no-op. + +2002-08-30 Krister Walfridsson + + * config/arm/arm.c (arm_asm_output_labelref): New function. + * config/arm/arm.h (ASM_OUTPUT_LABELREF): Call arm_asm_output_labelref. + * config/arm/arm-protos.h: Add prototype for arm_asm_output_labelref. + +2002-08-29 Rodney Brown + + * doc/install.texi (Specific, alpha*-dec-osf*): Add "virtual + memory exhausted" workarounds. + +2002-08-30 Gabriel Dos Reis + + * diagnostic.c (fancy_abort): Don't repeat "internal error". + * toplev.c (crash_signal): Likewise. + +Fri Aug 30 00:33:37 2002 Nicola Pero + + * doc/cpp.texi (__NEXT_RUNTIME__): Extended documentation. + * doc/invoke.texi (-fnext-runtime, -Wno-protocol, -Wselector): + Extended, updated documentation. + (-Wundeclared-selector): Documented. + +2002-08-29 Jason Thorpe + + * config/chorus.h: Consistently define *_DEBUGGING_INFO with + the value 1. Do not undef before defining. + * config/darwin.h: Likewise. + * config/dbx.h: Likewise. + * config/dbxcoff.h: Likewise. + * config/dbxelf.h: Likewise. + * config/elfos.h: Likewise. + * config/interix.h: Likewise. + * config/lynx-ng.h: Likewise. + * config/lynx.h: Likewise. + * config/netware.h: Likewise. + * config/psos.h: Likewise. + * config/svr3.h: Likewise. + * config/alpha/alpha.h: Likewise. + * config/alpha/elf.h: Likewise. + * config/alpha/vms.h: Likewise. + * config/arc/arc.h: Likewise. + * config/arm/aout.h: Likewise. + * config/arm/coff.h: Likewise. + * config/c4x/c4x.h: Likewise. + * config/h8300/h8300.h: Likewise. + * config/i386/cygwin.h: Likewise. + * config/i386/djgpp.h: Likewise. + * config/i386/gas.h: Likewise. + * config/i386/gstabs.h: Likewise. + * config/i386/i386-coff.h: Likewise. + * config/i386/i386-interix.h: Likewise. + * config/i386/sco5.h: Likewise. + * config/i386/svr3dbx.h: Likewise. + * config/i386/sysv3.h: Likewise. + * config/i386/win32.h: Likewise. + * config/i386/x86-64.h: Likewise. + * config/i960/i960.h: Likewise. + * config/ia64/ia64.h: Likewise. + * config/ip2k/ip2k.h: Likewise. + * config/m32r/m32r.h: Likewise. + * config/m68k/3b1.h: Likewise. + * config/m68k/3b1g.h: Likewise. + * config/m68k/ccur-GAS.h: Likewise. + * config/m68k/coff.h: Likewise. + * config/m68k/hp2bsd.h: Likewise. + * config/m68k/hp310g.h: Likewise. + * config/m68k/hp320g.h: Likewise. + * config/m68k/hp3bsd.h: Likewise. + * config/m68k/hp3bsd44.h: Likewise. + * config/m68k/linux-aout.h: Likewise. + * config/m68k/m68k-aout.h: Likewise. + * config/m68k/mot3300.h: Likewise. + * config/m68k/netbsd.h: Likewise. + * config/m68k/openbsd.h: Likewise. + * config/m68k/pbb.h: Likewise. + * config/m68k/plexus.h: Likewise. + * config/m68k/sun2.h: Likewise. + * config/m68k/sun3.h: Likewise. + * config/m68k/tower-as.h: Likewise. + * config/m68k/vxm68k.h: Likewise. + * config/m88k/aout-dbx.h: Likewise. + * config/m88k/m88k-aout.h: Likewise. + * config/mcore/mcore-elf.h: Likewise. + * config/mcore/mcore-pe.h: Likewise. + * config/mips/elf.h: Likewise. + * config/mips/elf64.h: Likewise. + * config/mips/iris5gas.h: Likewise. + * config/mips/iris6.h: Likewise. + * config/mips/mips.h: Likewise. + * config/mips/sni-gas.h: Likewise. + * config/mmix/mmix.h: Likewise. + * config/ns32k/netbsd.h: Likewise. + * config/pa/pa64-hpux.h: Likewise. + * config/romp/romp.h: Likewise. + * config/rs6000/sysv4.h: Likewise. + * config/rs6000/xcoff.h: Likewise. + * config/sh/coff.h: Likewise. + * config/sh/elf.h: Likewise. + * config/sparc/linux64.h: Likewise. + * config/sparc/liteelf.h: Likewise. + * config/sparc/netbsd.h: Likewise. + * config/sparc/openbsd.h: Likewise. + * config/sparc/pbd.h: Likewise. + * config/sparc/sp64-elf.h: Likewise. + * config/sparc/sp86x-elf.h: Likewise. + * config/sparc/sparc.h: Likewise. + * config/vax/vax.h: Likewise. + * config/vax/vaxv.h: Likewise. + +2002-08-29 "Dhananjay R. Deshpande" + + * h8300.c (shift_alg_hi): Various tweaks to improve performance + of HImode shifts. + (get_shift_alg): Corresponding changes. + +2002-08-29 John David Anglin + + * som.h (ALWAYS_STRIP_DOTDOT): Define to 1. + +2002-08-29 Richard Henderson + + * expr.h (enum block_op_methods): New. + (emit_block_move): Update prototype. + * expr.c (block_move_libcall_safe_for_call_parm): New. + (emit_block_move_via_loop): New. + (emit_block_move): Use them. New argument METHOD. + (emit_push_insn): Always respect the given alignment. + (expand_assignment): Update call to emit_block_move. + (store_expr, store_field, expand_expr): Likewise. + * builtins.c (expand_builtin_apply): Likewise. + (expand_builtin_memcpy, expand_builtin_va_copy): Likewise. + * function.c (expand_function_end): Likewise. + * config/sh/sh.c (sh_initialize_trampoline): Likewise. + * config/sparc/sparc.c (sparc_va_arg): Likewise. + * calls.c (expand_call, emit_library_call_value_1): Likewise. + (save_fixed_argument_area): Use emit_block_move with + BLOCK_OP_CALL_PARM instead of move_by_pieces. + (restore_fixed_argument_area): Likewise. + (store_one_arg): Fix alignment parameter to emit_push_insn. + +2002-08-29 John David Anglin + + * install.texi (hppa64-hp-hpux11*): Document installation procedure. + +2002-08-29 Catherine Moore + + * config/v850/v850.h (MULDI3_LIBCALL, UCMPDI2_LIBCALL, CMPDI2_LIBCALL, + NEGDI2_LIBCALL, INIT_TARGET_OPTABS, MASK_STRICT_ALIGN): Define. + (PREDICATE_CODES): Include new predicates. + (RTX_COSTS): Handle UMOD and UDIV. Tune MULT for v850e. + (TARGET_SWITCHES): Add strict-align. + (TARGET_STRICT_ALIGN): New. + (MASK_DEFAULT, STRICT_ALIGNMENT): Redefine. + * config/v850/t-v850 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): + Define. + (LIB1ASMFUNCS): Add v850_negdi2, v850_cmpdi2, v850_ucmpdi2, + v850_muldi3. + * config/v850/lib1funcs.asm (L_callt_save_r2_r29, L_return_r2_r29, + L_callt_save_r2_r31, L_return_r2_r31, + L_save_all_interrupt): Change addi to add. + (L_save_interrupt, L_return_interrupt): Rework. + (__return_r31): Correct .size directive. + (mulsi3, divsi3, udivsi3, umodsi3, modsi3): Tune for v850e. + (v850_negdi2, v850_cmpdi2, v850_ucmpdi2, v850_muldi3): + New routines. + * config/v850/v850.c (expand_prologue): Call + gen_callt_save_interrupt, gen_callt_restore_all_interrupt, + gen_callt_return_interrupt and gen_callt_save_all_interrupt. + (reg_or_int9_operand): New predicate. + (reg_or_const_operand): New routine. + * config/v850/v850.md (return_interrupt): Changed from + restore_interrupt. + (callt_save_all_interrupt): Changed from save_all_interrupt_v850e. + (callt_save_interrupt): Change save sequence. + (callt_return_interrupt): New. + (save_interrupt): Don't use runtime function for LONG_CALLS + and TARGET_PROLOG_FUNCTION. + (save_all_interrupt): Likewise. + (mulsi3): Use new predicate. + (moviscc): Disallow some combination of constants. + Fix define_split for sasf insns, so that it will not generate bad + code if operand0 and operand5 are the same. + * config/v850/v850-protos.h: Prototype new predicates. + +2002-08-29 Zack Weinberg + + * config/rs6000/rs6000.c (processor_target_table): Add 405f. + * config/rs6000/rs6000.h (ASM_CPU_SPEC): Likewise. + +2002-08-28 Gabriel Dos Reis + + * c-common.c (builtin_define_type_precision): New function. + (cb_register_builtins): Use it. Define __WCHAR_UNSIGNED__ is + wchar_t is unsigned in C++. + * doc/cpp.texi (Common Predefined Macros): Document + __WCHAR_UNSIGNED__, __CHAR_BIT__, __WCHAR_BIT__, __SHRT_BIT__, + __INT_BIT__, __LONG_BIT__, __LONG_LONG_BIT__, __FLOAT_BIT__, + __DOUBLE_BIT__, __LONG_DOUBLE_BIT__. + +2002-08-28 Sylvain Pion + + * doc/invoke.texi (-Wreorder): Remove remaining pieces from the generic + section. Mention that it is enabled by -Wall. + (-Wall): Mention that there can be language-specific warnings as well. + (-Wctor-dtor-privacy): Mention that it is enabled by default. + (-Wnon-virtual-dtor): Mention that it is enabled by -Wall. + +Wed Aug 28 15:35:17 2002 J"orn Rennecke + + * sh.c (calc_live_regs): Save FPSCR_REG in an interrupt handler + if it is ever live. + + * sh.c (sh_handle_interrupt_handler_attribute): Reject interrupt_handler + attribute for SHCOMPACT. + + * sh.h (OVERRIDE_OPTIONS): If align_function isn't set, set it + appropriately. + (FUNCTION_BOUNDARY): Specify only the minimum alignment required + by the ABI. + + * sh.h (SH5_WOULD_BE_PARTIAL_NREGS): Also handle TImode case. + +2002-08-28 Jason Thorpe + + * config.gcc (mips*-*-netbsd*): Set target_cpu_default to + "MASK_GAS|MASK_ABICALLS". + * config/mips/netbsd.h (TARGET_ENDIAN_DEFAULT) + (TARGET_DEFAULT): Remove. + (MACHINE_TYPE): Undefine before defining. + (DBX_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE): Remove. + +2002-08-27 Mark Mitchell + + * c-common.c (warn_abi): New variable. + * c-common.h (warn_abi): Likewise. + * c-opts.c (COMMAND_LINE_OPTIONS): Add -Wabi. + (c_common_decode_option): Handle it. + * doc/invoke.texi: Document -Wabi. + +Tue Aug 27 23:03:52 2002 Nicola Pero + + * c-common.c (warn_undeclared_selector): New variable. + * c-common.h (warn_undeclared_selector): Idem. + * c-opts.c (c_common_decode_option): Set warn_undeclared_selector + to on when -Wundeclared-selector is found. + (COMMAND_LINE_OPTIONS): Added -Wundeclared-selector. + * objc/objc-act.c (build_selector_expr): If + warn_undeclared_selector is set, check that the selector has + already been defined, and emit a warning if not. + +2002-08-27 Nick Clifton + Catherine Moore + Jim Wilson + + * config.gcc: Add v850e-*-* target. + Add --with-cpu= support for v850. + * config/v850/lib1funcs.asm: Add v850e callt functions. + * config/v850/v850.h: Add support for v850e target. + * config/v850/v850.c: Add functions to support v850e target. + * config/v850/v850-protos.h: Add prototypes for new functions in v850.c. + * config/v850/v850.md: Add patterns for v850e instructions. + * doc/invoke.texi: Document new v850e command line switches. + +Tue Aug 27 18:30:47 2002 J"orn Rennecke + Aldy Hernandez + + * doc/tm.texi: Applied numerous fixes to the automaton based + scheduler descrition. + +Tue Aug 27 19:51:05 CEST 2002 Jan Hubicka + + * i386.c (classify_argument): Handle variable sized objects. + +Tue Aug 27 19:18:16 CEST 2002 Jan Hubicka + + * i386.c (ix86_expand_int_movcc): Fix RTL sharing problem + +Tue Aug 27 18:01:45 CEST 2002 Jan Hubicka + + * libgcc2.c (__bb_exit_func): Properly write the summarized statistics. + +Tue Aug 27 18:00:11 CEST 2002 Jan Hubicka + + * i386.c (classify_argument): Properly compute word size of the analyzed object. + +Tue Aug 27 14:39:09 2002 J"orn Rennecke + + * sh.md (attribute type): Add types mt_group, fload, pcfload, fpul_gp, + mac_gp ftrc_s and cwb. Add / Adjust definitions in individual insn + accordingly. + (attribute insn_class): Provide default definitions based on type. + Remove all insn-specific settings. + (various function units): Remove old SH4 scheduling. + (branch_zero, dfp_comp, late_fp_use, any_fp_comp, any_int_load): + New attributes. Set them where appropriate. + (cpu unit FS): Don't define / use. + (F3, load_store): New cpu units. + (F01): New reservation. + (all insn_reservations): Make dependent on sh4 pipeline model. + Fix latencies. + (nil, reg_mov, freg_mov, sh4_fpul_gp, sh4_call): New insn_reservations. + (sh4_mac_gp, fp_arith_ftrc, arith3, arith3b): Likewise. + (mt insn_reservation): Use type mt_group. + (insn_reservation load_store): Split into sh4_load, sh4_load_si, + sh4_fload and sh4_store. + (insn_reservation branch_zero and branch): Replace with sh4_branch. + (insn_reservation branch_far): Replace with sh4_return. + (insn_reservation return_from_exp): Rename to: + (sh4_return_from_exp). Change to be just d_lock*5. + (insn_reservation lds_to_pr): Rename to: + (sh4_lds_to_pr). Change to be just d_lock*2. + (insn_reservation ldsmem_to_pr, sts_from_pr): Change to be just + d_lock*2. + (insn_reservation prload_mem): Rename to: + (sh4_prstore_mem). Change to d_lock*2,nothing,memory. + (insn_reservation fpscr_store): Rename to: + (fpscr_load). Change to d_lock,nothing,F1*3. + (insn_reservation fpscr_store_mem): Rename to: + (fpscr_load_mem). Change to d_lock,nothing,(F1+memory),F1*2. + (insn_reservation multi): Change to + d_lock,(d_lock+f1_1),(f1_1|f1_2)*3,F2. + (insn_reservation fp_arith): Change to issue,F01,F2. + (insn_reservation fp_div: Change to issue,F01+F3,F2+F3,F3*7,F1+F3,F2. + (insn_reservation dp_float): Change to issue,F01,F1+F2,F2. + (insn_reservation fp_double_arith): Change to issue,F01,F1+F2,fpu*4,F2. + (insn_reservation fp_double_cmp): Change to + d_lock,(d_lock+F01),F1+F2,F2. + (insn_reservation dp_div): Change to + issue,F01+F3,F1+F2+F3,F2+F3,F3*16,F1+F3,(fpu+F3)*2,F2. + * sh.c (flow_dependent_p, flow_dependent_p_1): New functions. + (sh_adjust_cost, SHcompact): Differentiate between different + kinds of dependencies. Drop factor of ten for superscalar. + Use new instruction types. Add new exception rules. + + * sh.md (mulhisi3, umulhisi3: Add a REG_EQUAL note. + + * sh.md (mperm_w): Add DONE. + +2002-08-27 David Edelsohn + + * longlong.h: Import current PowerPC defintion from GMP-4.1. + + * config/rs6000/rs6000.h (MIN_UNITS_PER_WORD): Add IN_LIBGCC2 case. + + * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Undef before define. + +Tue Aug 27 13:53:57 2002 J"orn Rennecke + + * sh.h (MAX_FIXED_MODE_SIZE): Define. + +2002-08-27 Gabriel Dos Reis + + * doc/cpp.texi (Common Predefined Macros): Don't mess with table + delimiter. + +2002-08-27 Gabriel Dos Reis + + * c-common.c (cpp_define_data_format): New function. + (cb_register_builtins): Call it. + + * doc/cpp.texi (Common Predefined Macros): Document + __TARGET_BITS_ORDER__, __TARGET_BYTES_ORDER__, + __TARGET_INT_WORDS_ORDER__, __TARGET_FLOAT_WORDS_ORDER__, + __TARGET_FLOAT_FORMAT__, __TARGET_USES_VAX_F_FLOAT__, + __TARGET_USES_VAX_D_FLOAT__, __TARGET_USES_VAX_G_FLOAT__, + __TARGET_USES_VAX_H_FLOAT__. + +2002-08-26 Ziemowit Laski + + * objc/objc-act.c (get_super_receiver): If inside a class method + of a category, cast the receiver to 'id' before accessing the 'isa' + field so that is not needed. For NeXT runtime. + +2002-08-26 Ulrich Weigand + + * config/s390/s390-protos.h (s390_function_prologue, + s390_function_epilogue): Remove. + config/s390/s390.c (s390_function_prologue, s390_function_epilogue, + TARGET_ASM_FUNCTION_PROLOGUE, TARGET_ASM_FUNCTION_EPILOGUE): Remove. + + config/s390/s390.c (s390_machine_dependent_recorg): New function. + config/s390/s390-protos.h (s390_machine_dependent_reorg): Declare it. + config/s390/s390.h (MACHINE_DEPENDENT_REORG): Call it. + config/s390/s390.c (s390_split_branches, s390_chunkify_pool): Adapt + to being called from MACHINE_DEPENDENT_REORG. Update regs_ever_live. + + config/s390/s390.c (s390_frame_info): Inline save_fprs_p. Always + assume BASE_REGISTER and RETURN_REGNUM need to be saved. + (s390_emit_prologue): Assume RETURN_REGNUM to be saved iff + function is not a leaf function. Use save_gprs and restore_gprs. + (s390_emit_epilogue): Likewise. + (save_gprs, restore_gprs): New functions. + (struct s390_frame): Remove return_reg_saved_p member. + (save_fprs_p): Remove. + (s390_optimize_prolog): New function. + (s390_legitimate_reload_constant): Remove now unnecessary check. + + (s390_function_count): Remove. + (s390_output_symbolic_const): Replace s390_function_count by + current_function_funcdef_no. + (s390_output_constant_pool): Likewise. + + (legitimize_pic_address): Use regs_ever_live to track PIC register + instead of current_function_uses_pic_offset_table. + (s390_emit_prologue): Likewise. + config/s390/s390.md ("call", "call_value"): Likewise. + +2002-08-26 Neil Booth + + * c-opts.c (find_opt): Don't complain about wrong languages + here. Return exact matches even for wrong language. + (c_common_decode_option): Complain about wrong languages + here. + +2002-08-24 Stuart Hastings + + * function.h (struct function): Add flag + all_throwers_are_sibcalls. + * except.c (set_nothrow_function_flags): Replaces + nothrow_function_p. Set new flag. + * except.h (set_nothrow_function_flags): Replaces + nothrow_function_p. + * dwarf2out.c (struct dw_fde_struct): Add flag + all_throwers_are_sibcalls. + (output_call_frame_info): Test it. + (dwarf2out_begin_prologue) Propagate it from cfun to + dw_fde_struct. + * toplev.c (rest_of_compilation): Update calls to + nothrow_function_p. + +2002-08-23 Zack Weinberg + + * ggc-page.c (compute_inverse): Short circuit calculation for + object sizes larger than half a page. + +2002-08-23 David Edelsohn + + * config/rs6000/rs6000.c (rs6000_elf_select_section): Treat + DEFAULT_ABI == ABI_AIX like PIC. Test PIC & reloc for readonly + default. + (rs6000_elf_unique_section): Likewise. + +2002-08-23 Kaveh R. Ghazi + + * ns32k.c (ns32k_globalize_label): Delete. + * ns32k.h (ASM_OUTPUT_LABEL, TARGET_ASM_GLOBALIZE_LABEL): Delete. + +2002-08-23 Alan Modra + + * config/rs6000/rs6000.c (output_mi_thunk): Don't determine insns + for loading delta with num_insns_constant_wide. Calculate + delta_low, delta_high without using a conditional. + +2002-08-22 Jason Merrill + + * c-common.h (RETURN_STMT_EXPR): Rename from RETURN_EXPR. + * c-common.def: Adjust. + * c-dump.c (c_dump_tree): Adjust. + * c-semantics.c (genrtl_return_stmt): Adjust. + * c-pretty-print.c (pp_c_statement): Adjust. + * tree-inline.c (copy_body_r): Adjust. + +2002-08-22 Zack Weinberg + + * ggc-page.c: Avoid division in ggc_set_mark. + (DIV_MULT, DIV_SHIFT, OFFSET_TO_BIT, inverse_table, + compute_inverse): New. + (ggc_set_mark, ggc_marked_p): Use OFFSET_TO_BIT. + (init_ggc): Initialize inverse_table. + +2002-08-22 Tom Tromey + + * doc/install.texi (Configuration): Document --datadir. + +2002-08-22 Alexandre Oliva + + * Makefile.in ($(BUILD_PREFIX_1)varray.o): Depend on $(GGC_H). + +2002-08-22 Hans-Peter Nilsson + + * gengtype-lex.l (ID): Allow underscore as first character. + +2002-08-21 David Edelsohn + + * config/rs6000/rs6000.c (rs6000_xcoff_asm_globalize_label): New + function. + (rs6000_xcoff_asm_named_section): Rename. + * config/rs6000/xcoff.h (TARGET_ASM_GLOBALIZE_LABEL): Define. + +2002-08-21 Tom Tromey + + For PR java/6005 and PR java/7611: + * fold-const.c (fold_truthop): Use can_use_bit_fields_p. + (fold): Likewise. + * langhooks.c (lhd_can_use_bit_fields_p): New function. + * langhooks-def.h (lhd_can_use_bit_fields_p): Declare. + (LANG_HOOKS_CAN_USE_BIT_FIELDS_P): New define. + (LANG_HOOKS_INITIALIZER): Use it. + * langhooks.h (struct lang_hooks) [can_use_bit_fields_p]: New + field. + +2002-08-21 Stan Shebs + + * tree.c (finish_vector_type): Fix a typo in a comment. + * Makefile.in: Fix "the the" stutters in comments. + * genautomata.c: Ditto. + * ifcvt.c: Ditto. + * regrename.c: Ditto. + * config/alpha/alpha.c: Ditto. + * config/alpha/vms-crt0-64.c: Ditto. + * config/alpha/vms-crt0.c: Ditto. + * config/alpha/vms-psxcrt0-64.c: Ditto. + * config/alpha/vms-psxcrt0.c: Ditto. + * config/d30v/d30v.h: Ditto. + * config/fr30/fr30.h: Ditto. + * config/rs6000/rs6000.c: Ditto. + * config/stormy16/stormy16.h: Ditto. + * doc/md.texi: Ditto. + +2002-08-21 John David Anglin + + * cppinit.c (remove_dup_nonsys_dirs): Fix warning and return value. + +2002-08-21 Joseph S. Myers + + * c-decl.c (grokdeclarator): Make invalid combinations with long, + short, signed or unsigned into hard errors. Fixes PR c/4319. + Also make duplicate modifiers such as "short short" into hard + errors. + +2002-08-21 Andrew Pinski + Kaveh R. Ghazi + + * doc/tm.texi (TARGET_ASM_GLOBALIZE_LABEL): Move '@end deftypefn' + to the actual end. Add '@end table' and '@table @code'. + +2002-08-20 Geoffrey Keating + + * doc/tm.texi (Label Output): Add missing '@end deftypefn'. + + * unroll.c (biv_total_increment): Don't try to compute the total + increment for FP BIVs. + +2002-08-20 Kaveh R. Ghazi + + * alpha.c (TARGET_ASM_GLOBALIZE_LABEL): Define for unicosmk. + * alpha/elf.h (ASM_OUTPUT_EXTERNAL_LIBCALL, + ASM_OUTPUT_ALIGNED_BSS): Use target hook. + * alpha/osf.h (ASM_OUTPUT_WEAK_ALIAS): Likewise. + * alpha/unicosmk.h (ASM_GLOBALIZE_LABEL): Delete. + * arm/aof.h (ASM_GLOBALIZE_LABEL): Likewise. + (GLOBAL_ASM_OP): Define. + * arm.c (aof_globalize_label): New function. + (TARGET_ASM_GLOBALIZE_LABEL): Define for AOF. + * arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_BSS): Use target hook. + * c4x.c (c4x_globalize_label): New function. + (TARGET_ASM_GLOBALIZE_LABEL): Define for c4x. + * c4x.h (ASM_GLOBALIZE_LABEL): Delete. + (GLOBAL_ASM_OP): Define. + * cris/aout.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Use target hook. + * darwin-protos.h (darwin_globalize_label): Declare. + * darwin.c (darwin_globalize_label): New function. + * darwin.h (ASM_DECLARE_CLASS_REFERENCE): Use target hook. + (ASM_GLOBALIZE_LABEL): Delete. + (GLOBAL_ASM_OP, TARGET_ASM_GLOBALIZE_LABEL): Define. + * dsp16xx.c (asm_output_common): Use target hook. + * elfos.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise. + * frv.h (ASM_GLOBALIZE_LABEL): Delete. + (GLOBAL_ASM_OP): Define. + * i370.c (i370_globalize_label): New function. + (TARGET_ASM_GLOBALIZE_LABEL): Define for i370. + * i370.h (ASM_GLOBALIZE_LABEL): Delete. + * i386.c (ix86_asm_file_end): Use target hook. + * i386/sco5.h (ASM_GLOBALIZE_LABEL): Don't undef. + (ASM_OUTPUT_EXTERNAL_LIBCALL): Use target hook. + * ia64.c (ia64_asm_output_external): Likewise. + * ia64/sysv4.h: Update comment. + * m32r.h (ASM_OUTPUT_ALIGNED_BSS): Use target hook. + * mips/elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise. + * mips/iris5.h (ASM_OUTPUT_WEAK_ALIAS): Use target hook. + * mips/linux.h (ASM_OUTPUT_ALIGNED_BSS): Likewise. + * mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use target hook. + * mmix-protos.h (mmix_asm_globalize_label): Delete. + * mmix.c (mmix_asm_globalize_label): Likewise. + * mmix.h (ASM_GLOBALIZE_LABEL): Likewise. + (GLOBAL_ASM_OP): Define. + * ns32k.c (ns32k_globalize_label): New function. + * ns32k.h (TARGET_ASM_GLOBALIZE_LABEL): Define for ns32k. + (ASM_GLOBALIZE_LABEL): Delete. + * pa/pa-linux.h (ASM_GLOBALIZE_LABEL): Don't undef. + (TARGET_ASM_GLOBALIZE_LABEL): Undefine. + * pa.c (pa_globalize_label): New function. + * pa.h (ASM_GLOBALIZE_LABEL): Delete. + (TARGET_ASM_GLOBALIZE_LABEL): Define for pa. + * rs6000/darwin.h (ASM_GLOBALIZE_LABEL): Delete. + (GLOBAL_ASM_OP): Define. + (TARGET_ASM_GLOBALIZE_LABEL): Undef. + * rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_BSS): Use target hook. + * rs6000/xcoff.h (ASM_GLOBALIZE_LABEL): Delete. + (GLOBAL_ASM_OP): Define. + * v850.c (v850_output_aligned_bss): Use target hook. + * vax.c (vms_globalize_label): New function. + (TARGET_ASM_GLOBALIZE_LABEL): Define for vms. + * vax/vms.h (ASM_GLOBALIZE_LABEL): Delete. + (GLOBAL_ASM_OP): Define. + * defaults.h (ASM_GLOBALIZE_LABEL): Delete. + * doc/tm.texi: Update docs. + * dwarf2out.c (default_eh_frame_section, output_die_symbol): Use + target hook. + * final.c (output_alternate_entry_point): Likewise. + * hooks.c (hook_FILEptr_constcharptr_void): New function. + * hooks.h (hook_FILEptr_constcharptr_void): Declare. + * output.h (assemble_global): Delete. + (default_globalize_label): Declare. + * system.h (ASM_GLOBALIZE_LABEL): Poison. + * target-def.h (TARGET_ASM_GLOBALIZE_LABEL): Define. + (TARGET_ASM_OUT): Add TARGET_ASM_GLOBALIZE_LABEL. + * target.h (gcc_target): Add globalize_label member. + * varasm.c (asm_output_bss, asm_output_aligned_bss, + globalize_decl): Use target hook. + (assemble_global): Delete. + (default_globalize_label): New function. + +2002-08-20 Kaveh R. Ghazi + + * dsp16xx.h (dsp16xx_umulhi3_libcall): Delete. + +2002-08-20 Devang Patel + * tree.c (get_qualified_type): Add TYPE_CONTEXT check. + +2002-08-20 Kaveh R. Ghazi + + * arc.c (output_shift): Use stdio instead of asm_fprintf. + * arm.c (thumb_output_function_prologue): Likewise. + * avr.c (print_operand): Likewise. + * c4x.c (c4x_print_operand): Likewise. + * c4x.h (ASM_OUTPUT_INTERNAL_LABEL, TRAMPOLINE_TEMPLATE, + ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Likewise. + * cris.c (cris_target_asm_function_prologue, + cris_asm_output_mi_thunk): Likewise. + * h8300.c (print_operand): Likewise. + * h8300.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise. + * ip2k.c (print_operand): Likewise. Fix format specifier. + * m68hc11.c (asm_print_register, print_operand, + print_operand_address): Use stdio instead of asm_fprintf. + (print_operand_address): Fix format specifier. + * m68hc11.h (FUNCTION_PROFILER, ASM_OUTPUT_ADDR_DIFF_ELT, + ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ALIGN): Use stdio instead of + asm_fprintf. + * m68k/amix.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. + * m68k/atari.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. + * m68k.c (m68k_output_function_prologue, + m68k_output_function_epilogue, print_operand): Likewise. + * mmix.c (mmix_asm_output_mi_thunk, mmix_asm_weaken_label): + Likewise. Fix format specifier. + * mn10200.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise. + * mn10300.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise. + * v850.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise. + +2002-08-15 Eric Christopher + Jeff Knaggs + + * config.gcc (mipsisa64sr71k-elf): New target. + * config/mips/sr71k.md: New file. + * config/mips/mips.md: Use it. + (rot*): Add sr71k specifics. + * config/mips/t-sr71k: New file. + * config/mips/mips.h (sr71k): New cpu. + (TARGET_SR71K): Use it. + (TUNE_SR71K): Ditto. + (GENERATE_BRANCHLIKELY): Ditto. + (ISA_HAS_MULHI, ISA_HAS_MULS, ISA_HAS_MSAC, ISA_HAS_MACC, + ISA_HAS_ROTR_SIISA_HAS_ROTR_DI): Ditto. + * config/mips/mips.c (sr71k): New cpu. + (mips_use_dfa_pipeline_interface): Use. + +2002-08-15 Eric Christopher + Richard Sandiford + Aldy Hernandez + Graham Stott + Michael Meissner + Gavin Romig-Koch + Ken Raeburn + Alexandre Oliva + + * config.gcc (mips64vr-elf): New target. + * config/mips/5400.md: New file. + * config/mips/5500.md: Ditto. + * config/mips/mips.md: Use them. + (frsqrt): New. + * config/mips/mips.c (vr4111, vr4121, vr4320, vr5400, vr5500): New + cpus. + (mips_issue_rate): Use them. + (mips_use_dfa_pipeline_interface): New function. Use for 5400 and 5500. + (TARGET_SCHEDUSE_DFA_PIPELINE_INTERFACE): Define. Use above. + * config/mips/mips.h (vr4111, vr4121, vr4320, vr5400, vr5500): New + cpus. + (TARGET_MIPSx): Use them. + (TUNE_MIPSx): Ditto. + (GETNATE_MULT3_SI): Ditto. + (ISA_HAS_BRANCHLIKELY): Ditto. + (ISA_HAS_CONDMOVE): Ditto. + (ISA_HAS_NMADD_NMSUB): Ditto. + (ISA_HAS_MULHI): New. Ditto. + (ISA_HAS_MULS): Ditto. + (ISA_HAS_MSAC): Ditto. + (ISA_HAS_MACC): Ditto. + (ISA_HAS_ROTR_SI): Ditto. + (ISA_HAS_ROTR_DI): Ditto. + (RTX_COSTS): Use. + +2002-08-20 John David Anglin + + * cppinit.c (remove_dup_dir): Add head_ptr argument to handle removal + at head. + (remove_dup_nonsys_dirs): New function. + (remove_dup_dirs): Change argument head to head_ptr. Remove warnings. + (merge_include_chains): Remove non-system include directories from + quote and bracket include chains when they duplicate equivalent system + directories. + * doc/cpp.texi (-I): Update. + * doc/cppopts.texi (-I): Update. + * doc/install.texi (--with-local-prefix): Further document usage of + this option. + * doc/invoke.texi (-I): Update. + +2002-08-20 Richard Henderson + + * expr.c (TARGET_MEM_FUNCTIONS): Transform to boolean. + (emit_block_move): Split out subroutines. + (emit_block_move_via_movstr): New. + (emit_block_move_via_libcall): New. Emit bcopy via normal call also. + (emit_block_move_libcall_fn): New. Construct function prototype for + bcopy as well. + (clear_storage): Split out subroutines. + (clear_storage_via_clrstr): New. + (clear_storage_via_libcall): New. Emit bzero as a normal call also. + (clear_storage_libcall_fn): New. Construct function prototype for + bzero as well. + (emit_push_insn): Use emit_block_move. + (expand_assignment): Booleanize TARGET_MEM_FUNCTIONS. + (store_constructor): Likewise. + +2002-08-19 Ziemowit Laski + + * objc/objc-act.c (building_objc_message_expr): Rename to + current_objc_message_selector. + +2002-08-19 Ziemowit Laski + + * objc/objc-act.c (build_ivar_chain): Remove. + (objc_copy_list): Likewise. + (get_class_ivars): Inline call to removed build_ivar_chain + function. Save off a clean copy of ivars in the CLASS_OWN_IVARS + slot; use that slot (rather than CLASS_IVARS) when accessing + ivars for base classes. Call copy_list and chainon instead of + objc_copy_list. + (build_private_template): Call get_class_ivars instead of + build_ivar_chain. + (start_class): Allocate room for the CLASS_OWN_IVARS slot. + (continue_class): Call get_class_ivars instead of + build_ivar_chain. + (encode_field_decl): Check for DECL_BIT_FIELD_TYPE instead + of DECL_BIT_FIELD (which may have been cleared). + * objc/objc-act.h (CLASS_OWN_IVARS): New accessor macro. + +2002-08-19 Kaveh R. Ghazi + + * genautomata.c (output_translate_vect, output_state_ainsn_table, + output_min_issue_delay_table): Mark variable with ATTRIBUTE_UNUSED + in output file. + (output_internal_min_issue_delay_func): Initialize variable in + output file. + +2002-08-19 Alexandre Oliva + + * Makefile.in (GCC_FOR_TARGET): Prepend STAGE_CC_WRAPPER. + (stage2_build, stage3_build, stage4_build): Likewise, to CC. + +2002-08-19 Geoffrey Keating + Steve Ellcey + + * machmode.h (SCALAR_INT_MODE_P): New macro to test for + scaler integer mode (MODE_INT or MODE_PARTIAL_INT). + * explow.c (trunc_int_for_mode): Abort when the mode is not + a scaler integer mode. + * combine.c (expand_compound_operation): Don't expand Vector + or Complex modes into shifts. + (expand_field_assignment): Don't do bitwise arithmatic and + shifts on Vector or Complex modes. + (simplify_comparison): Don't call trunc_int_for_mode + for VOIDmode. + * recog.c (general_operand): Likewise. + (immediate_operand): Likewise. + (nonmemory_operand): Likewise. + +2002-08-19 David Edelsohn + + * config/rs6000/rs6000.c (rs6000_emit_set_const): Inline + multi-instruction SImode constant. Add REG_EQUAL note. + * config/rs6000/rs6000.md (movsi splitter): Use + rs6000_emit_set_const. + +2002-08-19 Kaveh R. Ghazi + + * tree-inline.c (initialize_inlined_parameters): Wrap variable in + the macro test controlling its use. + +2002-08-18 H.J. Lu (hjl@gnu.org) + + * config.gcc (*-*-linux*): Set extra_parts="crtbegin.o + crtbeginS.o crtbeginT.o crtend.o crtendS.o", gas=yes and + gnu_ld=yes. + (alpha*-*-linux*, cris-*-linux*, i370-*-linux*, + i[34567]86-*-linux*, x86_64-*-linux*, mips*-*-linux*, + s390-*-linux*, s390x-*-linux*, sparc-*-linux*, sparc64-*-linux*, + xtensa-*-linux*): Remove setting extra_parts, gas, and gnu_ld + here. + (cris-*-linux*): Remove setting thread_file here. + +2002-08-18 Neil Booth + + PR preprocessor/7602 + * cppinit.c (path_include): Treat the system environment + variables as being cxx_aware. + +2002-08-17 Joseph S. Myers + + * c-decl.c (flexible_array_type_p): New function. + (grokdeclarator, finish_struct): Use it. + * doc/extend.texi: Document constraints on use of structures with + flexible array members. + +2002-08-17 Richard Sandiford + + * config/mips/t-coff, config/mips/t-elf, config/mips/t-isa3264, + config/mips/t-r3900 (MULTILIB_MATCHES): Define. + * config/mips/mips.h (ASM_SPEC): Use %(endian_spec). + +2002-08-16 Stan Shebs + + * c-common.c (cb_register_builds): Define __NEXT_RUNTIME__ + for ObjC with -fnext-runtime. + * doc/cpp.texi: Document it. + +2002-08-16 Janis Johnson + + * doc/install.texi (Final installation): Replace links to individual + build status pages with a link to a common page that lists them all. + +2002-08-16 Sylvain Pion + + * doc/invoke.texi: Fix typo. + +2002-08-16 David Edelsohn + + * doc/install.texi (*-ibm-aix*): Explain AIX shared object versioning. + +2002-08-16 Andrew Haley + + * tree-inline.c: Add includes for Java inliner. + (remap_decl): Don't handle anonymous types for Java. + (remap_block): Add handling for Java trees. + (copy_scope_stmt): Conditionalize for non-Java use only. + (copy_body_r): Handle Java trees. Add handling for + LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR, Java blocks. + (initialize_inlined_parameters): Handle Java trees. + (declare_return_variable): Likewise. + (expand_call_inline): Handle Java trees. + (walk_tree): Likewise. + (copy_tree_r): Don't handle SCOPE_STMTs for Java. + (add_stmt_to_compound): New function. + +2002-08-15 Richard Henderson + + * Makefile.in (LOOSE_WARN): Remove -fno-common. + (NOCOMMON_FLAG): New substitution point. + (GCC_WARN_CFLAGS): Include it. + * configure.in (ac_checking): Set nocommon_flag. + (nocommon_flag): New substitution point. + +2002-08-15 Alexandre Oliva + + * c-tree.h (skip_evaluation): Move declaration... + * c-common.h: ... here. + * c-typeck.c (build_external_ref): Don't assemble_external nor + mark a tree as used if skip_evaluation is set. + * c-parse.in (typeof): New non-terminal to set skip_evaluation + around TYPEOF. + (typespec_nonreserved_nonattr): Use it. + +2002-08-15 Douglas B Rupp + + * dbxout.c (dbx_debug_hooks): Update end_prologue, end_epilogue. + (xcoff_debug_hooks): Update end_prologue. + * debug.c (do_nothing_debug_hooks): Update end_prologue, end_epilogue. + * debug.h (end_prologue): Add file arg. + (end_epilogue): Add line and file args. + (dwarf2out_end_epilogue): Add line and file args. + (vmsdbgout_after_prologue): Remove. + * dwarf2out.c (dwarf2out_end_epilogue): Add line and file args. + (dwarf2_debug_hooks): Update end_prologue. + * dwarfout.c (dwarfout_end_epilogue): Add line and file args. + (dwarfout_end_prologue): Add file arg. + * final.c (vmsdbgout_after_prologue): Remove + (final_end_function): Update end_epilogue call. + (final_scan_insn): Update end_prologue call. + * sdbout.c (sdbout_end_epilogue): Add line and file args. + (sdbout_end_prologue): Add file arg. + (sdb_debug_hooks): Update end_prologue. + (sdb_begin_prologue): Update sdbout_end_prologue call. + * vmsdbgout.c (vmsdbg_debug_hooks): Add vmsdbgout_end_prologue, + vmsdbgout_end_function. + (vmsdbgout_end_prologue): New function renamed from + vmsdbgout_after_prologue. Call vmsdbgout_source_line. + (vmsdbgout_end_function): New function. + (vmsdbgout_end_epilogue): Add line and file args. Call + vmsdbgout_source_line. + (write_pclines): Write only valid line numbers. + (write_srccorr): Don't write source correlation records if 0 lines. + * xcoffout.c (xcoffout_end_epilogue): Add line and file args. + +2002-08-15 Steve Ellcey + + * gcc/unwind.h (_Unwind_Ptr): Make 64 bits on IA64 HP-UX. + (_Unwind_Internal_Ptr): 32 bit version for use in + read_encoded_value_with_base. + * gcc/unwind-pe.h (read_encoded_value_with_base): Use + _Unwind_Internal_Ptr instead of _Unwind_Ptr in order to get the + right size. + +2002-08-15 Kaveh R. Ghazi + + * loop.c (scan_loop, move_movables, count_one_set): Cast to avoid + signed/unsigned warnings. + + * regclass.c (init_reg_sets_1, choose_hard_reg_mode, + record_reg_classes): Likewise. + + * reload.c (reload_inner_reg_of_subreg, push_reload, + find_reloads_address_1): Likewise. + +2002-08-15 David Edelsohn + + * rs6000.c (output_mi_thunk): Return to function section on + TARGET_ELF. + + * rs6000-c.c (rs6000_cpu_cpp_builtins): Define __PPC405__ if PPC405. + +2002-08-15 Ulrich Weigand + + * config/s390/s390.c (legitimize_address): Optimize loading + of large displacements. + +2002-08-14 Douglas B Rupp + + * config/alpha/alpha-protos.h: Update. + + * config/alpha/alpha.c: (LINKAGE_SYMBOL_REF_P): New macro. + (alpha_legitimate_address_p): Test LINKAGE_SYMBOL_REF_P. + (alpha_linkage_symbol_p): New static function. + (print_operand_address): Print linkage operand. + + (alpha_funcs_num, alpha_funcs_tree, alpha_links_tree): New static + variables. + (reloc_kind): New enum. + (struct alpha_funcs): New struct. + (struct alpha_links): Add reloc_kind field. Rename links_kind field. + + (alpha_need_linkage): Rewrite. + (alpha_use_linkage): New global function. + (alpha_write_linkage): Rewrite and make static. + (alpha_write_one_linkage): Rewrite + + (alpha_start_function): Remove procedure descriptor output. + (alpha_end_function): Write linkages at end of each function. + + * config/alpha/alpha.md (call_vms, call_value_vms): Rewrite. + (call_vms_1, call_value_vms_1): Rewrite. + + * config/alpha/vms.h (ASM_FILE_END): Remove. + +2002-08-14 Richard Henderson + + * ggc-page.c (RTL_SIZE): New. + (extra_order_size_table): Add specializations for 2 and 10 rtl slots. + * rtl.def (BARRIER, NOTE): Pad to 9 slots. + +2002-08-14 Richard Henderson + + * calls.c: Include target.h. + * Makefile.in (calls.o): Update. + + * config/alpha/alpha.c (alpha_end_function): Use targetm.binds_local_p. + * config/alpha/alpha.h (FUNCTION_OK_FOR_SIBCALL): Likewise. + +2002-08-14 Richard Henderson + + * Makefile.in (LOOSE_WARN): Add -fno-common. + * c-common.h (constant_string_class_name): Add missing extern. + +2002-08-15 Neil Booth + + PR preprocessor/7358 + * c-opts.c (check_deps_environment_vars): Ignore main file + for SUNPRO_DEPENDENCIES. + * cppfiles.c (stack_include_file): Ignore main file if + appropriate. + * cpplib.h (struct cpp_options): New member in deps. + * doc/cppenv.texi: Update. + +2002-08-14 Neil Booth + + PR preprocessor/7526 + * cpplib.c (run_directive): Kludge so _Pragma dependency works. + +2002-08-14 Nathan Sidwell + + * doc/invoke.texi (-a): Remove documentation. + (-fprofile-arcs): Remove reference to -a, -ax options. + * doc/gcov.texi (Gcov Data Files): Data might be merged. + +2002-08-14 Gabriel Dos Reis + + Fix PR/7566 + * c-semantics.c (genrtl_case_label): Don't (mis)use + warning_with_decl. + +2002-08-14 Dale Johannesen + + * explow.c (emit_stack_restore): Emit memory clobbers + preceding the stack pop, to prevent the scheduler from + moving refs to variable arrays below this pop. + * reload1.c (reload): Preserve these clobbers for sched2. + * doc/rtl.texi: Document clobber (mem:BLK (scratch)). + +2002-08-14 Neil Booth + + * c-opts.c (c_common_post_options): Correct test. + +2002-08-14 Kaveh R. Ghazi + + * m88k.h (ASM_OUTPUT_SOURCE_FILENAME): Fix incorrect argument + order in call to fprintf. + +2002-08-14 Rainer Orth + + * config/sparc/sol2.h (SUBTARGET_EXTRA_SPECS): Define. + +2002-08-14 Ulrich Weigand + + * reload.c (find_reloads): Handle constraint letters marked by + EXTRA_ADDRESS_CONSTRAINT and EXTRA_MEMORY_CONSTRAINT. + (alternative_allows_memconst): Likewise. + * reload1.c (maybe_fix_stack_asms): Likewise. + * recog.c (asm_operand_ok, preprocess_constraints, + constrain_operands): Likewise. + * regclass.c (record_operand_costs, record_reg_classes): Likewise. + * local-alloc.c (block_alloc, requires_inout): Likewise. + * stmt.c (parse_output_constraint, parse_input_constraint): Likewise. + + * defaults.h (EXTRA_MEMORY_CONSTRAINT): Provide a default. + (EXTRA_ADDRESS_CONSTRAINT): Likewise. + * doc/tm.texi: Document these two new target macros. + + * config/s390/s390.c (s390_expand_plus_operand): Accept already + valid operands. + (q_constraint): New function. + config/s390/s390-protos.h (q_constraint): Declare it. + config/s390/s390.h (EXTRA_CONSTRAINT): Use it. + (EXTRA_MEMORY_CONSTRAINT): New macro. + + * config/s390/s390.md: Throughout the machine description, + replace all instances of the constraint combinations 'Qo' + or 'oQ' with simply 'Q'. + +2002-08-14 Stephane Carrez + + * config/m68hc11/m68hc11.h (LINK_SPEC): Support -mrelax. + * config/m68hc11/t-m68hc11-gas (LIBGCC2_DEBUG_CFLAGS): Can use -g now. + (LIBGCC2_CFLAGS): Compile with -mrelax. + +2002-08-14 Stephane Carrez + + * doc/invoke.texi: Document -minmax for 68HC12. + + * config/m68hc11/m68hc11.md ("umaxqi3"): Use TARGET_MIN_MAX. + ("uminqi3"): Likewise. + ("uminhi3", "umaxhi3"): Likewise. + + * config/m68hc11/m68hc11.h (MASK_MIN_MAX): Define. + (TARGET_MIN_MAX): Define. + (TARGET_SWITCHES): New option -minmax/-mnominmax. + +2002-08-14 Stephane Carrez + + * config/m68hc11/t-m68hc11-gas (LIB1ASMFUNCS): Build __far_trampoline. + (MULTILIB_OPTIONS): Must also generate for -mlong-calls. + + * config/m68hc11/larith.asm: Put a mode for ELF ABI flags. + (ret, declare, farsym): New gas macros. + (__premain, exit, abort, _cleanup, memcpy, memset, ___adddi3, + ___subdi3, ___notdi2, __mulhi32, __mulsi3): Use them to use 'rtc' + and declare the symbol far when compiled with -mlong-calls. + (__far_trampoline): New for 68HC12 trampoline code to invoke a + far handler using jsr/bsr. + + * config/m68hc11/m68hc11-crt0.S: Put a mode for ELF ABI flags. + (jsr): New macro to transform a 'jsr' into a 'call'. + +2002-08-14 Stephane Carrez + + * doc/invoke.texi: Document -mlong-calls for 68HC12. + + * config/m68hc11/m68hc11.h (CPP_SPEC): Pass -D__USE_RTC__ when + -mlong-calls is specified. + (ASM_DECLARE_FUNCTION_NAME): Define to generate .far and .interrupt + assembler directives. + (TARGET_LONG_CALL, MASK_LONG_CALL): Declare. + (TARGET_SWITCHES): Add -mlong-calls options. + (current_function_far): Declare. + + * config/m68hc11/m68hc11.c (m68hc11_initial_elimination_offset): Take + into account the page register saved on the stack. + (m68hc11_override_options): Take into account -mlong-calls option. + (m68hc11_asm_file_start): Put a mode for the ELF flags ABI. + + * config/m68hc11/m68hc11.md ("*return_32bit"): Return rtc + if the function is going to be in 68HC12 banked memory (-mlong-calls). + ("*return_16bit"): Likewise. + ("*return_void"): Likewise. + ("call", "call_value"): Use call for a far function call. + +2002-08-14 Neil Booth + + * toplev.c (parse_options_and_default_flags): Don't call + post_options here. + (general_init): Initialize GC, pools and tree hash here, + instead of lang_independent_init. + (lang_independent_init): Rename backend_init. + (do_compile): Call post_options hook; exit early if there + have been errors after switch processing. + (toplev_main): Update. + +2002-08-14 Gabriel Dos Reis + + * c-pretty-print.h: Guard against multiple inclusion. + Robustify macros. + (pp_c_attributes): Declare. + * c-pretty-print.c (pp_c_attributes): New function. + +2002-08-13 Kaveh R. Ghazi + + * m68k.c (m68k_output_function_prologue, + m68k_output_function_epilogue): Delete versions for DPX2/MOTOROLA + and NEWS/MOTOROLA. + * genattrtab.c: Remove dpx2 comment. + * libgcc2.c (__enable_execute_stack): Delete versions for + NeXT/__MACH__, __convex__, __sysV88__, __pyr__ and + sony_news/SYSTYPE_BSD. + * longlong.h: Delete code for __a29k__, _AM29K, __clipper__, + __gmicro__, __i860__, __NeXT__ and __pyr__. + * rtl.h: Remove convex comment. + * varasm.c: Likewise. + +2002-08-13 Kaveh R. Ghazi + + * c-opts.c (lang_flags): Const-ify. + * ra-build.c (undef_table): Likewise. + * ra.c (eliminables): Likewise. + +2002-08-14 Gabriel Dos Reis + + * tree.h: Guard against multiple inclusion. + +2002-08-14 Hans-Peter Nilsson + + * reload1.c (reload_cse_simplify): Before checking + REG_FUNCTION_VALUE_P, check REG_P. + +2002-08-13 Geoffrey Keating + + * Makefile.in (attribs.o): Remove $(OBSTACK_H) dependency. + +2002-08-13 Neil Booth + + * c-opts.c (c_common_init_options): Extra braces needed. + +Tue Aug 13 17:40:25 2002 J"orn Rennecke + + * sh.c (sh_init_builtins): Add PARAMS to declaration. + (sh_media_init_builtins, sh_expand_builtin): Likewise. + (sh_expand_unop_v2sf): Use PARAMS for variable declaration. + (sh_expand_binop_v2sf): Likewise. + * sh-protos.h (sh_expand_unop_v2sf): Add PARAMS to declaration. + (sh_expand_binop_v2sf, sh_cfun_interrupt_handler_p): Likewise. + (sh_initialize_trampoline): Likewise. + +2002-08-13 Ulrich Weigand + + * s390-modes.def [CCL1, CCL2, CCT1, CCT2, CCT3, CCUR, CCSR]: Declare + new condition code modes. + s390.c (s390_match_ccmode_set): Handle those new CC modes. + (s390_select_ccmode): Likewise. + (s390_branch_condition_mask): Likewise. + + * s390-protos.h (s390_tm_ccmode): Declare. + s390.c (s390_tm_ccmode): New function. + (s390_match_ccmode): Allow VOIDmode as REQ_MODE. + + * s390.md ("*cmpdi_tm2"): Rename to "*tmdi_ext". + ("*cmpsi_tm2"): Rename to "*tmsi_ext". + ("*cmpqi_tm2"): Rename to "*tmqi_ext". + + ("*cmpdi_tm_reg", "*cmpdi_tm_mem", "*cmpsi_tm_reg", "*cmpsi_tm_mem", + "*cmphi_tm_sub","*cmphi_cct_0", "*cmpqi_tm", "*cmpqi_tm_sub", + "*cmpqi_cct_0", "*tm_0"): Remove, replace by ... + ("*tmdi_reg", "*tmsi_reg", "*tmdi_mem", "*tmsi_mem", "*tmhi_mem", + "*tmqi_mem", "*tmhi_full", "*tmqi_full"): ... these new patterns. + + ("*ltgr", "*cmpdi_ccs_0_64", "*cmpdi_ccs_0_31", "*ltr", "*icm15", + "*icm15_cconly", "*cmpsi_ccs_0", "*icm3", "*cmphi_ccs_0", "*icm1", + "*cmpqi_ccs_0"): Remove, replace by ... + ("*tstdi_sign", "*tstdi", "*tstdi_cconly", "*tstdi_cconly_31", + "*tstsi", "*tstsi_cconly", "*tstsi_cconly2", "*tsthi", "*tsthi_cconly", + "*tstqi", "*tstqi_cconly"): ... these new patterns. + + ("*cmpsidi_ccs"): Remove, replace by ... + ("*cmpsi_ccs_sign"): ... this new pattern. + ("*cmpdi_ccs_sign", "*cmpdi_ccu_zero"): New patterns. + + ("*cmpqi_ccu_0", "*cmpqi_ccu_immed"): Remove, replace by ... + ("*cli"): ... this new pattern. + + ("*adddi3_sign", "*adddi3_zero_cc", "*adddi3_zero_cconly", + "*adddi3_zero", "*adddi3_cc", "*adddi3_cconly", "*adddi3_cconly2"): + New patterns. + ("adddi3_64"): Rename to "*adddi3_64". + ("adddi3_31"): Replace by insn and splitter "*adddi3_31". + ("adddi3"): Adapt expander. + + ("*addsi3_cc"): Allow "general_operand" for operand 2. + ("*addsi3_carry1_cc", "*addsi3_carry1_cconly", + "*addsi3_carry2_cc", "*addsi3_carry2_cconly"): New patterns. + + ("addhi3", "addqi3"): Remove, replace by ... + ("*addsi3_sign", "*addsi3_sub"): ... these new patterns. + + ("*subdi3_sign", "*subdi3_zero_cc", "*subdi3_zero_cconly", + "*subdi3_zero", "*subdi3_cc", "*subdi3_cconly"): New patterns. + ("subdi3"): Replace by insn and splitter "*subdi3_31". + ("subdi3"): New expander. + + ("*subsi3_borrow_cc", "*subsi3_borrow_cconly"): New patterns. + + ("subhi3", "subqi3"): Remove, replace by ... + ("*subsi3_sign", "*subsi3_sub"): ... these new patterns. + + ("*muldi3_sign"): New pattern. + ("muldi3"): Do not clobber CC. + ("mulsi3"): Likewise. + ("mulsi_6432"): Likewise. + +2002-08-13 Denis Chertykov + + * config/avr/avr.md: Call CC_STATUS_INIT in all peepnoles + which can change CC0. + +Tue Aug 13 14:49:20 2002 J"orn Rennecke + + * gcse.c (adjust_libcall_notes): New function. + (do_local_cprop): Use it. Add fourth parameter. Changed caller. + +2002-08-13 Nathan Sidwell + + * libgcc2.c (L_bb): Remove unneeded #includes. + (__global_counters, __gthreads_active): Remove unused globals. + (__bb_exit_func): Merge counts into files rather than appending. + * Makefile.in (INTERNAL_CFLAGS): Move COVERAGE_FLAGS from here ... + (ALL_CFLAGS): ... to here. + +2002-08-13 Denis Chertykov + + * config/ip2k/ip2k.c (commands_in_file): Variable removed. + (function_epilogue): Don't calculate function size. + (ip2k_set_compare): Don't use lookup_const_double. + (asm_file_start): Initialization of commands_in_file removed. + (asm_file_end): Output of commands_in_file removed. + + * config/ip2k/ip2k.c (CPP_PREDEFINES): Remove definition of + __INT_MAX__. + +2002-08-13 Neil Booth + + * c-opts.c (c_common_init_options): Check option array is + sorted if checking enabled. + +2002-08-13 Gabriel Dos Reis + + * c-pretty-print.c: #include "c-tree.h". + (pp_c_simple_type_specifier): Tweak. + (pp_c_storage_class_specifier): New. + (pp_c_function_specifier): Likewise. + (pp_c_declaration_specifiers): Likewise. + (pp_c_init_declarator): Likewise. + (pp_c_declaration): Likewise. + (pp_c_direct_declarator): Stub. + (pp_c_declarator): Likewise. + (pp_c_parameter_declaration): Likewise. + +2002-08-13 Neil Booth + + * c-opts.c (deps_seen, deps_file, deferred_count, deferred_size, + handle_deferred_opts, sanitize_cpp_opts, defer_opt, + struct deferred_opt): New. + (COMMAND_LINE_OPTIONS): Add -M*. + (missing_arg): Update. + (c_common_decode_option): Handle -M*. + (c_common_post_options): Handle -M*. Use sanitize_cpp_opts; + don't call cpp_post_options. + (c_common_finish, check_deps_environment_vars): Update. + * cppfiles.c (stack_include_file, handle_missing_header): Update. + * cpphash.h (CPP_PRINT_DEPS): Remove. + * cppinit.c: Don't include version.h. + (cpp_create_reader): Don't call deps_init. Initialize + warn_long_long. + (cpp_read_main_file): Init deps if necessary. + (cpp_destroy): Conditionally free deps. + (cpp_finish): Update. + (no_tgt): Remove. + (COMMAND_LINE_OPTIONS, cpp_handle_option): Remove -M*. + (cpp_post_options): Rename post_options. + * cpplib.h (struct cpp_options): Remove some dependency options; + move others to a new structure. + (cpp_post_options): Remove. + (cpp_finish): Comment. + * fix-header.c (read_scan_file): Don't call cpp_post_options. + +2002-08-12 Hans-Peter Nilsson + + * config/mmix/mmix.md (define_constants): Add MMIX_rR_REGNUM. + ("divdi3", "*divdi3_nonknuth", "moddi3", "*moddi3_nonknuth"): Mark + MMIX_rR_REGNUM as clobbered. + * config/mmix/mmix.h (MMIX_REMAINDER_REGNUM): Use MMIX_rR_REGNUM. + +2002-08-12 Gabriel Dos Reis + + * diagnostic.h (output_formatted_scalar): Rename from + output_formatted_integer. + * diagnostic.def: Add DK_DEBUG. + * diagnostic.c (output_decimal): Adjust. + (output_long_decimal): Likewise. + (output_unsigned_decimal): Likewise. + (output_octal): Likewise. + (output_long_octal): Likewise. + (output_hexadecimal): Likewise. + (output_long_hexadecimal): Likewise. + * c-pretty-print.c (pp_c_type_specifier): New function. + (pp_c_specifier_qualifier_list): Likewise. + (pp_c_abstract_declarator): Likewise. + (pp_c_char): Replace pp_format_integer with pp_format_scalar. + +2002-08-12 David Edelsohn + + * doc/trouble.texi (Disappointments): Add static constructor and + destructor dependency information for AIX. + +2002-08-12 Neil Booth + + * cpphash.h (struct printer): New from cppmain.c. + (cpp_reader): New member. + * cppmain.c (struct printer): Move to cpphash.h. + (options, print): Remove. + (account_for_newlines, print_line, maybe_print_line, + cpp_preprocess_file, setup_callbacks, scan_translation_unit, + scan_translation_unit_trad, cb_line_change, cb_ident, + cb_define, cb_undef, cb_include, cb_file_change, dump_macro, + cb_def_pragma): Make reentrant. + +2002-08-12 Kaveh R. Ghazi + + * real.c (ieee_64): Always define. + (ieee_113): Guard with INTEL_EXTENDED_IEEE_FORMAT == 0. + (dec_h): Not used yet, hide it. + (emdnorm): Mark parameter in ATTRIBUTE_UNUSED. Guard label with + macro controlling use. + (TFbignan, TFlittlenan): Guard with INTEL_EXTENDED_IEEE_FORMAT == 0. + +Mon Aug 12 12:48:20 CEST 2002 Jan Hubicka + + * i386.md (tablejump): Sign extend the operand. + * i386.c (classify_argument): Fix missed case from previous patch. + +2002-08-12 Neil Booth + + * c-common.c (STDC_0_IN_SYSTEM_HEADERS, c_common_init): Move + to c-copts.c. + (warn_multichar): Die. + (cb_register_builtins): Export. + * c-common.h (warn_multichar, preprocess_file): Remove. + (cb_register_builtins): New. + * c-lang.c (c_init): Remove. + (LANG_HOOKS_INIT): Use c_objc_common_init. + * c-lex.c (init_c_lex): Don't canonicalize filename. + * c-opts.c (in_fname, STDC_0_IN_SYSTEM_HEADERS): New. + (preprocess_file): Make static. Update for cpplib. + (c_common_decode_option): Remove warn_multichar. Use in_fname. + (c_common_post_options): Set some cpp options here. + (c_common_init): Move from c-common.c. + * cppinit.c (cpp_post_options): Don't canonicalize in_fname. + * cpplib.h (struct cpp_options): Remove in_fname. + (cpp_preprocess_file): Update. + * cppmain.c (cpp_preprocess_file): Update for new prototypes. + +2002-08-11 Kaveh R. Ghazi + + * config.gcc (mips*-*-netbsd*): Include ${tm_file}. + +2002-08-11 Kaveh R. Ghazi + + * i370.h (TARGET_CPU_CPP_BUILTINS): Remove spurious trailing + backslash in comment preceeding macro definition. + * i370/linux.h (TARGET_OS_CPP_BUILTINS): Likewise. + * i370/mvs.h (TARGET_OS_CPP_BUILTINS): Likewise. + * i370/oe.h (TARGET_OS_CPP_BUILTINS): Likewise. + +2002-08-12 Hans-Peter Nilsson + + * expr.c (store_expr): In condition for checking if value is + generated in TARGET, move call to expr_size last. + +2002-08-11 Neil Booth + + * c-common.c (c_common_init): Call preprocess_file instead. + (c_common_finish): Move to c-opts.c. + * c-common.h (preprocess_file): new. + * c-opts.c (out_fname, out_stream, deps_append, preprocess_file, + check_deps_environment_vars, c_common_finish): New. + (c_common_decode_option): Update for out_fname and dependencies. + * cppinit.c (init_dependency_output, output_deps): Remove. + (cpp_destroy): Update prototype. + (cpp_add_dependency_target): New. + (cpp_read_main_file): Don't overlay a buffer. + (cpp_finish): Take a deps output stream and write deps to it. + Return the error count. + (cpp_post_options): Don't canonicalize out_fname, or do anything + with dependencies. + * cpplib.h (struct cpp_options): Remove out_fname and + preprocess_only. + (cpp_add_dependency_target): New. + (cpp_destroy, cpp_finish, cpp_preprocess_file): Update. + * cppmain.c (cpp_preprocess_file): Update prototype. Don't + set preprocess_only. Don't handle the output stream directly. + +2002-08-11 Kaveh R. Ghazi + + * dsp16xx.c (print_operand): Fix format specifier. + * dsp16xx.md: Avoid automatic aggregate initialization. + * frv.h (REG_CLASS_FROM_LETTER): Avoid char as array index. + * h8300.c (emit_a_rotate, h8300_adjust_insn_length): Avoid U + integer constant modifier. + * ip2k.c (ip2k_set_compare): Avoid signed/unsigned warning. + * mmix-protos.h (mmix_use_simple_return): Move outside TREE_CODE + guards. + * sh/netbsd-elf.h (FUNCTION_PROFILER): Fix format specifier. + * v850.c (v850_select_section): Mark parameter with + ATTRIBUTE_UNUSED. + * global.c (global_alloc): Const-ify. + * ra-colorize.c (hardregset_to_string): Fix format specifier. + +2002-08-11 Kaveh R. Ghazi + + * darwin-c.c (darwin_pragma_options): Const-ify. + * darwin.c (machopic_non_lazy_ptr_name, + machopic_validate_stub_or_non_lazy_ptr): Likewise. + (machopic_indirect_data_reference): Wrap variables in macros + controlling their use. + (machopic_finish, update_non_lazy_ptrs, update_stubs): Const-ify. + (machopic_select_section): Use parentheses around && within ||. + * i386/darwin.h (ASM_OUTPUT_ALIGN): Avoid ambiguous-else. + +2002-08-11 Kaveh R. Ghazi + + * ip2k.c (mdr_resequence_xy_yx, mdr_propagate_reg_equivs, + mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref, + ip2k_adjust_stack_ref, mdr_try_move_pushes, mdr_try_propagate_clr, + ip2k_xexp_not_uses_reg_for_mem, mdr_try_propagate_move, + mdr_try_remove_redundant_insns, track_w_reload, + mdr_try_wreg_elim): Make function static to match prototype. + * mmix.c (mmix_target_asm_function_epilogue): Likewise. Mark + parameter with ATTRIBUTE_UNUSED. + +2002-08-11 Kaveh R. Ghazi + + * arc.c (arc_init): Don't use ISO C style function definitions. + * arm.c (count_insns_for_constant, thumb_far_jump_used_p, + arm_get_strip_length, arm_strip_name_encoding): Likewise. + * avr.h (progmem_section): Likewise. + * h8300.c h8300_asm_insn_count): Likewise. + * m32r.c (init_idents): Likewise. + * s390.c (s390_split_branches, s390_chunkify_pool): Likewise. + * sh.c (sh_cfun_interrupt_handler_p): Likewise. + * xtensa.c (xtensa_build_va_list): Likewise. + +2002-08-11 Neil Booth + + * c-common.h (enum c_language_kind): Emphasize that clk_c is 0. + * c-opts.c (parse_option): Rename find_opt. + (set_std_c99): New function. + (COMMAND_LINE_OPTIONS): Handle -remap and -o. Remove OPT_std_bad. + (missing_arg): Remove OPT_std_bad. Handle -o. + (c_common_decode_option): Handle input and output file names, + -o and -remap. Clean up -std= handling. + * cppinit.c (COMMAND_LINE_OPTIONS): Remove OPT_o and OPT_remap. + (cpp_handle_option): Similarly. Don't handle filenames. + +Sun Aug 11 14:43:17 CEST 2002 Jan Hubicka + + * i386.c (classify_argument): Fix computing of field's offsets. + +2002-08-11 Andreas Jaeger + + PR target/7531: + * doc/invoke.texi (i386 and x86-64 Options): Document -mcmodel. + +2002-08-10 Ziemowit Laski + + * config/alpha/alpha.h (TARGET_CPU_CPP_BUILTINS): Replace + reference to clk_objective_c with flag_objc. + * config/i386/i386-interix.h (TARGET_OS_CPP_BUILTINS): + Likewise. + * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Likewise. + +2002-08-10 Neil Booth + + * c-opts.c (set_std_cxx98, set_std_c89): New. + (COMMAND_LINE_OPTIONS): Move more from cppinit.c. + (c_common_decode_option): Handle new switches from cppinit.c. + Add -std=gnu++98. + * cppinit.c (set_lang): Rename cpp_set_lang. Export. + (no_arg, no_num): Remove. + (COMMAND_LINE_OPTIONS): Move more to c-opts.c. Drop all lang- + switches apart from -lang-objc and lang-asm. + (cpp_handle_option): Similarly. + * cpplib.h (cpp_set_lang): New. + * doc/cppopts.texi, doc/invoke.texi: Document -std=c++98, + -std=gnu++98. + * objc/lang-specs.h: Remove -ansi. + +Sat Aug 10 19:59:43 CEST 2002 Jan Hubicka + Graham Stott + + * cfg.c (redirect_edge_succ_nodup): Avoid overflows due to roundoff + errors. + +2002-08-10 Kaveh R. Ghazi + + * emit-rtl.c (emit_jump_insn_before, emit_call_insn_before, + emit_jump_insn): Fix uninitialized variable. + * gcov.c (init_line_info): Likewise. + * genautomata.c (transform_3): Add braces around ambiguous + else. + * ifcvt.c (cond_exec_process_insns): Mark parameter with + ATTRIBUTE_UNUSED. + * ra-build.c (parts_to_webs_1): Fix uninitialized variable. + * regrename.c (copyprop_hardreg_forward): Fix uninitialized + variable. + + * gengtype.c (write_gc_structure_fields): Avoid signed/unsigned + warnings in output files. + +2002-08-09 Ziemowit Laski + + * c-common.c (flag_objc): New. + * c-common.h (c_language_kind): Get rid of clk_objective_c + enum value. + (flag_objc): New extern declaration. + * c-decl.c (implicitly_declare): Call objc_check_decl + instead of maybe_objc_check_decl. + (finish_decl): Likewise. + (grokfield): Likewise. + (finish_struct): Likewise. + * c-lang.c (maybe_objc_check_decl): Rename to objc_check_decl. + (maybe_objc_comptypes): Rename to objc_comptypes. + (maybe_building_objc_message_expr): Rename to + objc_message_selector. + * c-lex.c (lex_charconst): Remove uses of clk_objective_c, + replace with flag_objc as needed. + * c-opts.c (c_common_init_options): Likewise. + (c_common_decode_option): Likewise. + * c-parse.in (init_reswords): Likewise. + * c-tree.h (maybe_objc_check_decl): Rename to objc_check_decl. + (maybe_objc_comptypes): Rename to objc_comptypes. + (maybe_building_objc_message_expr): Rename to + objc_message_selector. + * c-typeck.c (comptypes): Call objc_comptypes instead of + maybe_objc_comptypes, and/or objc_message_selector instead of + maybe_building_objc_message_expr. + (comp_target_types): Likewise. + (convert_for_assignment): Likewise. + (warn_for_assignment): Likewise. + * cppinit.c (init_builtins): Set __OBJC__ manifest constant + independently of those for other languages. + * objc/objc-act.c (maybe_objc_comptypes): Delete. + (maybe_objc_check_decl): Delete. + (maybe_building_objc_message_expr): Rename to + objc_message_selector. + * objc/objc-lang.c (objc_init_options): Use clk_c instead of + clk_objective_c; set flag_objc flag. + +2002-08-09 Toshiyasu Morita + + * ifcvt.c (find_if_case_2): Test correct basic block for size. + +2002-08-09 Dale Johannesen + + * config/rs6000/rs6000.md: Add sibcall patterns. + * config/rs6000/rs6000.h (FUNCTION_OK_FOR_SIBCALL): Define. + * config/rs6000/rs6000.c (rs6000_ra_ever_killed): + Rewritten to handle sibcalls. + * config/rs6000/rs6000.c (function_ok_for_sibcall): New. + * config/rs6000/rs6000-protos.h (function_ok_for_sibcall): New. + +2002-08-08 Nathan Sidwell + + * profile.c (da_file_name): New static var. + (init_branch_prob): Initialize it. + (end_branch_prob): Remove da file. + + * Makefile.in (stage1_build): Pass empty COVERAGE_FLAGS. + * configure.in (coverage_flags): Default to nothing. + * configure: Rebuilt. + +2002-08-09 Neil Booth + + * Makefile.in (c-opts.o): Update + * c-opts.c: Include intl.h. + (print_help): Move from cppinit.c. Remove unused options. + (COMMAND_LINE_OPTIONS): Move more from cppinit.c. + (missing_arg): Complain for switches without an argument. + (c_common_decode_option): Reject missing joined arguments. + Handle new switches from cppinit.c. + * cppinit.c (COMMAND_LINE_OPTIONS): Move some switches to c-opts.c. + (cpp_handle_option): Similarly. + (print_help): Moved to c-opts.c. + * cpplib.h (struct cpp_options): Remove help_only. + * gcc.c (cpp_unique_options): Remove -$. + * doc/cppopts.texi: Undocument -h. + +2002-08-08 Jakub Jelinek + + * config/i386/i386.c (legitimate_constant_p): UNSPEC_TP is not + legitimate constant. + (legitimate_pic_operand_p): Neither pic operand. + (legitimate_address_p): But legitimate address. + (get_thread_pointer): Generate MEM/u instead of CONST around + UNSPEC_TP. + (print_operand): Remove printing of UNSPEC_TP. + (print_operand_address): And print it here. + +2002-08-08 Devang Patel + + * objc/objc-act.c (build_selector_translation_table): Issue warning, + when -Wselector is used,if method for which selector is being + created does not exist. + +2002-08-08 Stephen Clarke + + * config/sh/sh.c (prepare_move_operands): Only call + target_reg_operand if TARGET_SHMEDIA. + +2002-08-08 Jakub Jelinek + + * config/rs6000/rs6000.h, config/rs6000/aix.h, + config/rs6000/darwin.h, config/rs6000/linux64.h: Revert last + two patches. + * config/rs6000/sysv4.h: Likewise, remove #undef ADJUST_FIELD_ALIGN. + +2002-08-08 Lars Brinkhoff + Richard Henderson + + * emit-rtl.c (gen_rtx_REG): After reload, only return + frame_pointer_rtx or hard_frame_pointer_rtx if frame_pointer_needed. + +2002-08-08 Jakub Jelinek + + * config/rs6000/rs6000-protos.h (rs6000_field_alignment): Remove. + * config/rs6000/rs6000.c (rs6000_field_alignment): Move... + * config/rs6000/rs6000.h (ADJUST_FIELD_ALIGN): ...inline into the + macro. + +2002-08-08 Adam Nemet + + * config/arm/arm.c (thumb_unexpanded_epilogue): Stack the PIC + register. + (thumb_expand_prologue): Likewise. + (thumb_output_function_prologue): Likewise. + * config/arm/arm.h (THUMB_INITIAL_ELIMINATION_OFFSET): Account for + the additional push of the PIC register. + +2002-08-08 Nathan Sidwell + + * configure.in (enable_coverage): New enable switch. + * configure: Rebuilt. + * Makefile.in (COVERAGE_FLAGS, coverageexts): New variables. + (INTERNAL_CFLAGS): Append COVERAGE_FLAGS. + (ALL_FLAGS): Reorder so INTERNAL_CFLAGS comes after CFLAGS. + (mostlyclean): Remove coverage files. + * doc/install.texi: Document enable_coverage. + + * cp/Make-lang.in (c++.mostlyclean): Remove coverage files. + * ada/Make-lang.in (ada.mostlyclean): Remove coverage files. + * f/Make-lang.in (f.mostlyclean): Remove coverage files. + * java/Make-lang.in (java.mostlyclean): Remove coverage files. + * objc/Make-lang.in (objc.mostlyclean): Remove coverage files. + * treelang/Make-lang.in (treelang.mostlyclean): Remove coverage + files. + +2002-08-08 Neil Booth + + * c-opts.c (cpp_opts): New. + (COMMAND_LINE_OPTIONS): Add switches from cppinit.c. + (c_common_decode_options): Handle cpplib switches. + (c_common_init_options): Set cpp_opts. + * cppinit.c (COMMAND_LINE_OPTIONS): Move some switches to c-opts.c. + (cpp_handle_option): Similarly. + +2002-08-08 David Edelsohn + + * config/rs6000/aix.h (TARGET_ALTIVEC): Define to 0. + (TARGET_ALTIVEC_ABI): Same. + (TARGET_ALTIVEC_VRSAVE): Same. + + * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Check + icode not CODE_FOR_nothing. Change switch to if. + +2002-08-08 Alan Modra + + * config/rs6000/rs6000.h (ASM_CPU_SPEC): Pass -mpower4 when cpu=power4. + +2002-08-08 Jakub Jelinek + + * stor-layout.c (place_union_field): For bitfields if + PCC_BITFIELD_TYPE_MATTERS and TYPE_USER_ALIGN, set record's + TYPE_USER_ALIGN. + +2002-08-07 John David Anglin + + * pa.c (struct deferred_plabel): Constify name field. + +2002-08-07 Neil Booth + + * cppmacro.c (_cpp_builtin_macro_text): Remove unused variable. + +2002-08-07 John David Anglin + + * configure.in (PREFIX_INCLUDE_DIR): Don't define if prefix and + local_prefix are the same. + * configure: Rebuilt. + +2002-08-07 Jakub Jelinek + Richard Henderson + + * stor-layout.c (place_union_field): Apply ADJUST_FIELD_ALIGN + to type_align when PCC_BITFIELD_TYPE_MATTERS. Only apply + ADJUST_FIELD_ALIGN if not DECL_USER_ALIGN resp. TYPE_USER_ALIGN. + (place_field): Likewise. + * config/i386/i386.c (x86_field_alignment): Don't check + DECL_USER_ALIGN here. + * config/rs6000/rs6000.c (rs6000_field_alignment): New. + * config/rs6000/rs6000-protos.h (rs6000_field_alignment): New + prototype. + * config/rs6000/rs6000.h (ADJUST_FIELD_ALIGN): Define. + * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Remove. + * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Remove. + * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Remove. + * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Remove. + * doc/tm.texi (ADJUST_FIELD_ALIGN): Update description. + +2002-08-07 Neil Booth + + * Makefile.in (c-opts.o, c-common.o, C_AND_OBJC_OBJS): Update. + * c-common.c: Don't include tree-inline.h. + (c_common_init_options, c_common_post_options): Move to c-opts.c. + * c-common.h (c_common_decode_option): New. + * c-decl.c (c_decode_option): Remove. + * c-lang.c (LANG_HOOKS_DECODE_OPTION): Use c_common_decode_option. + * c-opts.c: New file. + * c-tree.h (c_decode_option): Remove. + * doc/passes.texi: Update. + * objc/objc-act.c (objc_decode_option): Remove. + * objc/objc-act.h (objc_decode_option): Remove. + * objc/ojbc-lang.c (LANG_HOOKS_DECODE_OPTION): Use + c_common_decode_option. + +2002-08-07 Chris Demetriou + + * config/mips/mips.md (sunlt_sf, suneq_sf, sunle_sf): Remove + dependency on TARGET_DOUBLE_FLOAT. + +2002-08-07 Stephen Clarke + + * config/sh/lib1funcs.asm (GCC_shcompact_incoming_args): Don't + overwrite callee-save registers. Fix comment. + +2002-08-06 Chris Demetriou + + * config/mips/mips.c (override_options): Set MASK_BRANCHLIKELY + in target_flags based on ISA, if it was not set on the command + line. Warn if MASK_BRANCHLIKLEY is set but the ISA does not + support Branch Likely instructions. + * config/mips/mips.h (MASK_BRANCHLIKLEY): New macro. + (TARGET_BRANCHLIKELY): Likewise. + (TARGET_SWITCHES): Add -mbranch-likely and -mno-branch-likely. + (GENERATE_BRANCHLIKELY): Use TARGET_BRANCHLIKELY rather than + ISA_HAS_BRANCHLIKELY. + (ISA_HAS_BRANCHLIKELY): Do not include MIPS16 check. + * doc/invoke.texi: Document new MIPS -mbranch-likely and + -mno-branch-likely options. + +2002-08-06 Kaveh R. Ghazi + + * ip2k.c (ip2k_set_compare): Add missing iteration variable. + + * Makefile.in (dummy-conditions.o): Depend on $(HCONFIG_H) not + $(GCONFIG_H). + +2002-08-06 Aldy Hernandez + + * c-decl.c (duplicate_decls): Error out for incompatible TLS + declarations. + + * testsuite/gcc.dg/tls/diag-3.c: New. + +2002-08-06 Dale Johannesen + + * c-common.c (fname_decl): Use line number 0 for + __func__, to avoid confusing debuggers. + +2002-08-06 Nathan Sidwell + + * gcov.c: Tidy. + (struct line_info, struct coverage): New structures. + (gcov_file_name, gcov_file): Remove globals. + (output_data): Take source file parameter. Fix memory leak. Break + up into ... + (init_line_info, output_line_info, make_gcov_file_name, + accumulate_branch_counts): ... here. + (calculate_branch_probs, function_summary): Adjust. + (main): Adjust. + (function_*): Remove global variables. + +2002-08-06 Neil Booth + + * dwarf2out.c: Remove unused macros. + +2002-08-06 Neil Booth + + * function.c (TRAMPOLINE_ALIGNMENT): Always defined. + +2002-08-06 Neil Booth + + * cppinit.c (struct lang_flags): Rename trigraphs std. + (set_lang): Update. + * cpplib.h (struct cpp_options): New member std. + * cppmacro.c (_cpp_builtin_macro_text): Use std. + (collect_args): Flag whether to swallow a possible future + comma pasted with varargs. + (replace_args): Use this flag. + * doc/cpp.texi: Update varargs extension documentation. + +2002-08-06 Jakub Jelinek + + * config/i386/mmintrin.h (__m64): Make the type 64-bit aligned. + +2002-08-06 Jakub Jelinek + + * config/i386/i386.c (x86_field_alignment): Apply min for all MODE_INT + and MODE_CLASS_INT modes. + +2002-08-06 Jakub Jelinek + + * config.gcc (*-*-linux*): Default to --enable-threads=posix if no + --{enable,disable}-threads is given to configure. + (alpha*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux*, + x86_64-*-linux*, ia64*-*-linux*, m68k-*-linux*, mips*-*-linux*, + powerpc-*-linux-gnualtivec*, powerpc-*-linux*, s390-*-linux*, + s390x-*-linux*, sh-*-linux*, sparc-*-linux*, sparc64-*-linux*): + Remove thread_file setting here. + +2002-08-06 David Edelsohn + + * doc/install.texi (Binaries): Update Bull Freeware URL. + +2002-08-06 Gerald Pfeifer + + * doc/gcc.texi (Top): Rename Index to Keyword Index. + +2002-08-05 Nathan Sidwell + + * gcov.c (output_data): Round to % to nearest, tweak formatting. + +2002-08-05 Jakub Jelinek + + * fold-const.c (associate_trees): Only optimize NEGATE_EXPR in one + of the operands into MINUS_EXPR if code is PLUS_EXPR. + +2002-08-05 Douglas B Rupp + + * config.gcc (i[34567]86-*-interix*): Replace interix.o with winnt.o + * config/i386/i386-interix.h (TARGET_NOP_FUN_DLLIMPORT, + drectve_section): Define. + * config/i386/t-interix: Replace interix.o rule with winnt.o. + * config/i386/interix.c: Remove. + +2002-08-05 Geoffrey Keating + + * attribs.c: Don't include obstack.h. + * builtins.c: Likewise. + * cfganal.c: Likewise. + * cfgbuild.c: Likewise. + * cfgcleanup.c: Likewise. + * emit-rtl.c: Likewise. + * loop.c: Likewise. + * stmt.c: Likewise. + + * Makefile.in (s-gtype): Re-add dependency on $(GTFILES). + +2002-08-05 Gabriel Dos Reis + + * doc/c-tree.texi (Expression trees): Document VA_ARG_EXPR + +2002-08-04 Chris Demetriou + + * doc/invoke.texi: Remove duplicated paragraph describing + TARGET_SWITCHES. + +2002-08-04 Geoffrey Keating + + * Makefile.in (sdbout.o): Doesn't need $(OBSTACK_H). + * collect2.h (permanent_obstack): Delete declaration. + * collect2.c (permanent_obstack): Delete definition. + (main): Don't initialize permanent_obstack. Use xstrdup instead. + * expr.c: Don't include obstack.h. + (permanent_obstack): Delete declaration. + * function.c: Don't include obstack.h. + (permanent_obstack): Delete declaration. + * integrate.c: Don't include obstack.h. + (function_maybepermanent_obstack): Delete declaration. + * print-tree.c (debug_tree): Use x*alloc not permalloc. + * sdbout.c (gen_fake_label): Use x*alloc not permalloc. + * tlink.c (pfgets): Use xstrdup not permanent_obstack. + * toplev.c (lang_independent_init): Rename init_obstacks to init_ttree. + * tree.h: Rename init_obstacks to init_ttree. Remove declarations + of permalloc, expralloc, perm_calloc. + * tree.c (permanent_obstack): Delete definition. + (init_ttree): Rename from init_obstacks. + (permalloc): Delete. + (perm_calloc): Delete. + (dump_tree_statistics): Don't print information about + permanent_obstack. + * varasm.c (assemble_start_function): Use xstrdup instead of + permalloc/strcpy. + (assemble_variable): Likewise. + * config/alpha/alpha.c (unicosmk_need_dex): Use xmalloc instead of + permalloc. + (unicosmk_add_extern): Likewise. + * config/c4x/c4x.c (c4x_external_ref): Likewise. + (c4x_global_label): Likewise. + * config/frv/frv.c (frv_encode_section_info): Likewise. + * config/i386/winnt.c (i386_pe_record_external_function): Likewise. + (i386_pe_record_exported_symbol): Likewise. + * config/mips/mips.c (mips_output_external): Likewise. + (mips_output_external_libcall): Likewise. + * config/pa/pa.c: (permanent_obstack): Delete declaration. + (output_call): Use ggc_strdup instead of allocating on + permanent_obstack. + * config/romp/romp.c: Include ggc.h. + (get_symref): Don't declare permanent_obstack, use ggc_strdup + intead of permanent_obstack. + * config/rs6000/aix31.h (ASM_OUTPUT_EXTERNAL): Use concat + instead of permalloc. + * config/rs6000/rs6000.c (rs6000_gen_section_name): Use xmalloc + instead of permalloc + * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Use concat + instead of permalloc. + * config/vax/vax.c (vms_check_external): Use xmalloc instead of + permalloc. + +2002-08-04 Bernd Schmidt + + Contribute a port developed primarily by Michael Meissner, + Catherine Moore, and Richard Sandiford . + * config.gcc: Add frv-elf target. + * config/frv/cmovd.c: New file. + * config/frv/cmovh.c: New file. + * config/frv/cmovw.c: New file. + * config/frv/frv-abi.h: New file. + * config/frv/frv-asm.h: New file. + * config/frv/frv-modes.def: New file. + * config/frv/frv-protos.h: New file. + * config/frv/frv.c: New file. + * config/frv/frv.h: New file. + * config/frv/frv.md: New file. + * config/frv/frvbegin.c: New file. + * config/frv/frvend.c: New file. + * config/frv/lib1funcs.asm: New file. + * config/frv/media.h: New file. + * config/frv/modi.c: New file. + * config/frv/t-frv: New file. + * config/frv/uitod.c: New file. + * config/frv/uitof.c: New file. + * config/frv/ulltod.c: New file. + * config/frv/ulltof.c: New file. + * config/frv/umodi.c: New file. + * config/frv/xm-frv.h: New file. + + * config/frv/media.h: Removed again. + +2002-08-04 Nathan Sidwell + + * gcov.c (bb_file_time): New static variable. + (object_directory): May also be object file. + (preserve_paths): New static variable. + (print_usage): Adjust. + (options): Adjust. + (process_args): Adjust. + (open_files): Simplify. Cope when OBJECT_DIRECTORY is an object + file. Find modification date on bb file. + (read_profile): Don't rewind a NULL file. + (format_hwint): New static function. + (function_summary): Use format_hwint. + (output_data): SOURCE_FILE_NAME is never relative to + OBJECT_DIRECTORY. Use format_hwint. Adjust gcov file name + mangling. Adjust output format to make it more machine readable. + * doc/gcov.texi: Document & clarify semantics. + +2002-08-04 Joseph S. Myers + + * doc/include/gcc-common.texi (version-GCC): Increase to 3.3. + +2002-08-04 Nathan Sidwell + + * gcc.c (cc1_options): Pass output file as auxbase when + appropriate. + * profile.c (init_branch_prob): FILENAME has already had ending + stripped. + * final.c (end_final): Likewise. + * toplev.c (aux_base_name): New global. + (compile_file): Pass aux_base_name to init init_branch_prob and + end_final. + (independent_decode_option, case 'a'): New auxinfo options. + (case 'd'): Protect against mising basename. + (do_compile): Initialize aux_base_name. + * toplev.h (aux_base_name): New global. + * doc/invoke.texi: Adjust documentation. + +2002-08-04 Nathan Sidwell + + * config/i386/i386.c (x86_field_alignment): Remove duplicate test + of TARGET_ALIGN_DOUBLE. + +2002-08-04 Gabriel Dos Reis + + * diagnostic.c (inform): New function. + * diagnostic.h (inform): Declare. + +2002-08-03 David Edelsohn + + * config/rs6000/rs6000.md (movsi_internal1): Add nop mnemonic. + (movhi_internal): Same. + (movqi_internal): Same. + (movdi_internal64): Same. + + * config/rs6000/t-ppccomm (MULTILIB_MATCHES_FLOAT): Add mcpu=405. + + * config/rs6000/xcoff.h (SKIP_ASM_OP): Define. + (ASM_OUTPUT_SKIP): Use it. SIZE unsigned. + (COMMON_ASM_OP): Define. + (ASM_OUTPUT_ALIGNED_COMMON): Use it. SIZE unsigned. + Use ALIGN parameter. + (LOCAL_COMMON_ASM_OP): Define. + (ASM_OUTPUT_LOCAL): Use it. SIZE unsigned. + +2002-08-03 Roger Sayle + + * builtins.def: Define new builtin functions exp, expf, expl, + log, logf and logl (and their __builtin_* variants). + * optabs.h (enum optab_index): Add new OTI_exp and OTI_log. + Define exp_optab and log_optab. + * optabs.c (init_optans): Initialize exp_optab and log_optab. + * genopinit.c (optabs): Implement exp_optab and log_optab + using exp?f2 and log?f2 patterns. + * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP* + and BUILT_IN_LOG* using exp_optab and log_optab respectively. + (expand_builtin): Ignore the new builtins (and all cos and + sin variants) when not optimizing. Expand new builtins via + expand_builtin_mathfn when flag_unsafe_math_optimizations. + + * doc/extend.texi: Document new exp and log builtins. + * doc/md.texi: Document new exp?f2 and log?f2 patterns + (and previously undocumented cos?f2 and sin?f2 patterns). + +2002-08-03 Jason Merrill + + * explow.c (int_expr_size): New fn. + * expr.c (expand_expr) [CONSTRUCTOR]: Use it. + * expr.h: Declare it. + +2002-08-02 Krister Walfridsson + + * Makefile.in (gengtype-lex.o, gengtype-yacc.o): Add path to + gengtype-* dependencies. + +2002-08-02 Eric Christopher + + * config.gcc (mips*-*-linux*): Fix ordering of tm_file. + * config/mips/mips.h (READONLY_DATA_SECTION_ASM_OP): Change + #ifndef to #undef. + (TARGET_MEM_FUNCTIONS): Define instead of define to 1. + +2002-08-02 David Edelsohn + + PR optimize/7067 + * config/rs6000/rs6000.h (RTX_COSTS): Artificially make MULT + small if optimizing for size. + +2002-08-02 Daniel Jacobowitz + + * configure.in (FORBUILD): Use $build_alias. + * configure: Regenerated. + +2002-08-02 Richard Sandiford + + * config.gcc: Don't include mips/abi64.h in $tm_file. + * hard-reg-set.h (call_really_used_regs): Declare. + * config/mips/abi64.h: Remove file. + * config/mips/linux.h, + * config/mips/iris6.h: Don't include it. + * config/mips/mips-protos.h (mips_conditional_register_usage): Declare. + * config/mips/mips.h (CONDITIONAL_REGISTER_USAGE): Use it. + (REG_PARM_STACK_SPACE, STACK_BOUNDARY, STRICT_ARGUMENT_NAMING, + FUNCTION_ARG_PASS_BY_REFERENCE, FUNCTION_ARG_PADDING, + FUNCTION_ARG_CALLEE_COPIES, MUST_PASS_IN_STACK, MIPS_STACK_ALIGN): + Bring across definitions from abi64.h. + (GP_ARG_LAST, FP_ARG_LAST): Use MAX_ARGS_IN_REGISTERS. + (BIGGEST_MAX_ARGS_IN_REGISTERS): New. + (struct mips_args): Use it. + * config/mips/mips.c (mips_conditional_register_usage): Define. + +2002-08-02 Jason Merrill + + * langhooks-def.h (LANG_HOOKS_EXPR_SIZE): New macro. + * langhooks.c (lhd_expr_size): Define default. + * langhooks.h (struct lang_hooks): Add expr_size. + * explow.c (expr_size): Call it. + * expr.c (store_expr): Don't copy an expression of size zero. + (expand_expr) [CONSTRUCTOR]: Use expr_size to calculate how much + to store. + * Makefile.in (builtins.o): Depend on langhooks.h. + +2002-08-02 Kaveh R. Ghazi + + * Makefile.in (ra-debug.o): Depend on $(TM_P_H). + * ra-debug.c: Include "tm_p.h". + * ra-rewrite.c (is_partly_live_1): Change return type to bool. + +2002-08-02 Toon Moene + + * simplify-rtx.c (simplify_binary_operation): x * 1 is allowed + when not honoring signalling NaNs. + (simplify_ternary_operation): a == b has a definite value + when not honoring NaNs. + +2002-08-02 Jason Merrill + + * gdbinit.in (pct): New macro. + +2002-08-01 Stan Shebs + Andreas Tobler + + * ginclude/stddef.h (_BSD_SIZE_T_DEFINED_): Define if not defined, + plays nice with Darwin headers. + (_BSD_RUNE_T_DEFINED_): Likewise. + +2002-08-01 Zack Weinberg + + * c-common.c (c_common_init): -Wtraditional also implies -Wlong-long. + * cppinit.c (cpp_post_options): Likewise. + + * cppexp.c (cpp_classify_number): Suppress -Wtraditional + warning about 'LL' suffix (but not 'ULL' etc) when + -Wno-long-long is in effect. + + * cppmacro.c (_cpp_builtin_macro_text) [BT_TIME, BT_DATE]: + Check for failing time()/localtime(), issue a warning, and + make __TIME__ and __DATE__ expand to fallback strings. + + * doc/cpp.texi, doc/extend.texi: Document behavior of __DATE__ + and __TIME__ when the date and time cannot be determined. + +2002-08-02 Alan Modra + + * config/rs6000/rs6000.c (output_cbranch): Hint differently for power4. + +2002-08-01 Daniel Jacobowitz + + * Makefile.in ($(BUILD_PREFIX_1)ggc-none.o): Use $(GGC_H). + +2002-08-01 Chris Demetriou + + * config.gcc (mipsisa64sb1-*-elf*): New configuration. + (mipsisa64sb1el-*-elf*): Likewise. + * config/mips/mips.c (mips_cpu_info_table): Add sb1. + * config/mips/mips.h (processor_type): Add PROCESSOR_SB1. + (TARGET_SB1, TUNE_SB1): New macros. + * doc/invoke.texi: Add sb1 to documentation for MIPS -march and + -mtune flags. + +2002-08-01 David Edelsohn + + * varasm.c (asm_emit_uninitialized): Return false if global BSS + and ASM_EMIT_BSS not supported by target. + (assemble_variable): Do not duplicate uninitialized logic. + Fall through if asm_emit_uninitialized failed. + +2002-08-01 Chris Demetriou + + * config/mips/mips.h (BRANCH_LIKELY_P): Remove unused macro. + +2002-08-02 Alan Modra + + * config/rs6000/linux64.h (DBX_OUTPUT_BRAC): Define. + (DBX_OUTPUT_LBRAC, DBX_OUTPUT_RBRAC): Define. + + * config/rs6000/rs6000.c (output_toc): Don't use lshift_double when + HOST_BITS_PER_WIDE_INT == 64. + +2002-08-01 Kaveh R. Ghazi + + * df.c (df_insn_table_realloc): Change parameter to unsigned. + * optabs.c (expand_binop): Make variable unsigned. + * simplify-rtx.c (simplify_subreg): Likewise. + * unroll.c (unroll_loop): Cast to avoid signed/unsigned warnings. + +2002-08-01 Franz Sirl + + * c-common.c (cb_register_builtins): Always define __GXX_ABI_VERSION. + +2002-08-01 Richard Henderson + + * toplev.c (parse_options_and_default_flags): Don't set + flag_reorder_blocks for -Os. + + * config/avr/avr.c (avr_optimization_options): Remove. + * config/avr/avr.h (OPTIMIZATION_OPTIONS): Remove. + * config/m68hc11/m68hc11.c (m68hc11_optimization_options): Remove. + * config/m68hc11/m68hc11.h (OPTIMIZATION_OPTIONS): Remove. + +2002-08-01 H.J. Lu + Richard Henderson + + * output.h (DECL_READONLY_SECTION): Remove. + (decl_readonly_section): Declare. + * varasm.c (decl_readonly_section): New. + (default_section_type_flags, default_select_section): Use it. + * config/arm/pe.c (arm_pe_unique_section): Likewise. + * config/i386/interix.c (i386_pe_unique_section): Likewise. + * config/i386/winnt.c (i386_pe_unique_section): Likewise. + * config/mcore/mcore.c (mcore_unique_section): Likewise. + * config/mips/mips.c (mips_unique_section): Likewise. + +2002-08-01 Richard Henderson + + * integrate.c (copy_rtx_and_substitute): Squash MEM_EXPR when it + refers to a subroutine parameter. + +2002-08-01 Jakub Jelinek + + * varasm.c (assemble_visibility): Strip name encoding. + +2002-08-01 Ian Dall + + * config/ns32k/ns32k.h (TARGET_IEEE_COMPARE): Correct earlier patch. + (RETURN_ADDR_RTX): Cannot determine return address for FRAME > 0 + when there is no frame pointer. + (INITIAL_FRAME_POINTER_OFFSET): Count stack space for saved fp + registers properly. + * config/ns32k/__unorddf2.c: New file. + * config/ns32k/__unordsf2.c: New file. + * config/ns32k/t-ns32k: New file. + * config.gcc (ns32k-*-netbsd*): Use it. + +2002-08-01 Aldy Hernandez + + * config/rs6000/rs6000.h (SPU_CONST_OFFSET_OK): Change to 0xff. + +2002-08-01 Neil Booth + + * c-common.c (__GXX_ABI_VERSION): Correct spelling. + +2002-08-01 Benjamin Kosnik + + * c-common.c (cb_register_builtins): Set __GXX_ABI_VERSION__ to 102. + +2002-08-01 Richard Sandiford + + * config/mips/mips.md: Add [!]TARGET_MIPS16 to sgtu conditions. + +2002-08-01 Zdenek Dvorak + + * gcse.c (expr_hash_table_size, n_exprs, set_hash_table_size, + n_sets): Removed. + (expr_hash_table, set_hash_table): Type changed to ... + (struct hash_table): New type. + (hash_scan_insn, hash_scan_set, hash_scan_clobber, hash_scan_call, + insert_expr_in_table, insert_set_in_table, compute_hash_table, + dump_hash_table, lookup_expr, lookup_set, compute_local_properties, + compute_ae_gen, compute_ae_kill): Modified to pass the table explicitly. + (alloc_set_hash_table, alloc_expr_hash_table): Merged to ... + (alloc_hash_table): New. + (free_set_hash_table, free_expr_hash_table): Merged to ... + (free_hash_table): New. + (compute_set_hash_table, compute_expr_hash_table): Merged to ... + (compute_hash_table_work): New. + (classic_gcse, one_classic_gcse_pass, compute_cprop_data, + find_avail_set, one_cprop_pass, find_bypass_set, compute_pre_data, + pre_edge_insert, pre_insert_copies, pre_delete, pre_gcse, + one_pre_gcse_pass, compute_transpout, compute_code_hoist_vbeinout, + hoist_code, one_code_hoisting_pass, + trim_ld_motion_mems): Altered due to changed type of hash tables. + +2002-08-01 Zack Weinberg + + * final.c (output_alternate_entry_point): + If ASM_OUTPUT_TYPE_DIRECTIVE is defined, use it. + +2002-08-01 Kaveh R. Ghazi + + * objc/objc-act.c (encode_complete_bitfield): Add prototype and + avoid ISO C style function definition. + + * expr.c (expand_assignment): Delete unused variable. + +2002-08-01 Toon Moene + + * c-common.c (cb_register_builtins): Set + __FINITE_MATH_ONLY__ to 1 if -ffinite-math-only + is given, and to 0 otherwise. + * combine.c (simplify_if_then_else): HONOR_NANS + implies FLOAT_MODE_P. + +2002-08-01 Neil Booth + + * cppinit.c (COMMAND_LINE_OPTIONS): Remove OPT_dollar. + (cpp_handle_option): Don't handle it. + (print_help): Update. + * doc/cppopts.texi: Update. + +2002-08-01 Neil Booth + + * c-common.c (cb_register_builtins): If C++, define + __EXCEPTIONS, __DEPRECATED and __GXX_ABI_VERSION as appropriate. + * gcc.c (cpp_unique_options): Remove __GXX_ABI_VERSION. +cp: + * lang-specs.h: Simplify in accordance with new code in + c-common.c. + +2002-08-01 Neil Booth + + * c-common.c: Define all C/ObjC/C++ warning and flag variables. + * c-common.h: Declare all C/ObjC/C++ warning and flag variables. + * c-decl.c: Move all warning and flag variables to c-common.c. + * c-format.c: Move all warning variables to c-common.c. + * c-tree.h: Move all warning and flag declarations to c-common.h. + * objc/objc-act.c: Move all warning variables to c-common.c. + (flag_warn_protocol): Rename warn_protocol. + +2002-07-31 John David Anglin + + * pa-linux.h (GLOBAL_ASM_OP): Fix typo. + +2002-07-31 Graham Stott + + * config/stormy16/stormy16.h (BSS_SECTION_ASM_OP): Add missing + .section prefix. + +2002-07-31 Stan Shebs + + * config.gcc (i[34567]86-*-darwin*): New configuration. + * config/darwin.h (TARGET_ENCODE_SECTION_INFO): Undefine before + defining. + (TARGET_ENCODE_SECTION_INFO): Ditto. + (ASM_PREFERRED_EH_DATA_FORMAT): Ditto. + * config/darwin.c (machopic_indirect_data_reference): Remove + setting of RTX_UNCHANGING_P. + (machopic_legitimize_pic_address): Move RTX_UNCHANGING_P up so as + not to be applied to sums. + * config/i386/t-darwin: New file. + * config/i386/darwin.h: New file. + * config/i386/i386.h (TARGET_MACHO): Add default definition. + * config/i386/i386.md (tablejump): Add TARGET_MACHO case. + * config/i386/i386.c (output_set_got): For Mach-O, output Mach-O + label and not the GOT add. + (constant_address_p): For Mach-O, seeing a CONST is enough. + (legitimate_pic_address_disp_p): Add a Mach-O case. + (legitimate_address_p): Also test machopic_operand_p if Mach-O. + (legitimize_pic_address): Use generic Mach-O code to legitimize. + (output_pic_addr_const): Suppress @PLT if Mach-O, and parens + if outputting a difference. + (ix86_output_addr_diff_elt): Add Mach-O case. + (ix86_expand_move): Similarly. + (ix86_expand_call): Similarly. + (current_machopic_label_num): New global. + (machopic_output_stub): New function. + (ix86_value_regno): New function. + (ix86_function_value): Use it instead of VALUE_REGNO. + (ix86_libcall_value): Ditto. + * config/i386/unix.h (VALUE_REGNO): Remove. + +2002-07-31 Graham Stott + + * config/rs6000/rs6000.c(rs6000_hash_constant): Fix + hash for LABEL_REF's. + +2002-07-31 Graham Stott + + * config/rs6000/rs6000.c (spe_init_builtins, + altivec_init_builtins, rs6000_common_init_builtins): + Replace ANSI with K&R function def. + +2002-07-31 David Edelsohn + + * rs6000.c (validate_condition_mode): Test flag_finite_math_only + for CCFPmode. + +2002-07-31 Richard Sandiford + + * config/mips/crtn.asm: Don't use __mips16 to determine the + return-address offset. Define RA to a suitable temporary + register for the return address. + +2002-07-31 Richard Sandiford + + * config/mips/mips.md (eh_set_lr_si, eh_set_lr_di): Change + constraints to 'd'. + +2002-07-30 Chris Demetriou + + * config/mips/elf.h (STARTFILE_SPEC): Define differently if + default ABI is MEABI. (Undoes incorrect change in Eric Christopher's + patch on 2002-07-29.) + * config/mips/elf64.h (STARTFILE_SPEC): Likewise. + +2002-07-30 Kaveh R. Ghazi + + * alpha.h, arc.h, arm/aout.h, avr.h, cris.h, d30v.h, dsp16xx.h, + fr30.h, h8300.h, i370.h, i386/sco5.h, i386/unix.h, i960.h, ia64.h, + ip2k.h, m32r.h, mcore.h, mips.h, mn10200.h, mn10300.h, ns32k.h, + openbsd.h, pa/pa-linux.h, pdp11.h, romp.h, rs6000/sysv4.h, + s390/linux.h, sh.h, sparc.h, stormy16.h, v850.h, vax.h, xtensa.h: + (ASM_GLOBALIZE_LABEL): Delete. + (GLOBAL_ASM_OP): Define. + + * m68hc11.h, m68k.h, m88k.h (ASM_GLOBALIZE_LABEL): Delete. + + * defaults.h (ASM_GLOBALIZE_LABEL): Provide a default. + * doc/tm.texi (ASM_GLOBALIZE_LABEL): Update docs. + +2002-07-30 Geoffrey Keating + + * doc/extend.texi (Hints implementation): Document that GCC + mostly ignores `register'. + +2002-07-30 Toon Moene + + * flags.h: Declare flag_finite_math_only. + Use it in definition of HONOR_NANS and + HONOR_INFINITIES. + * c-common.c (cb_register_builtins): Emit + __FINITE_MATH_ONLY__ when flag_finite_math_only + is set. + * combine.c (simplify_if_then_else): If + flag_finite_math_only is set, a == b has a + definite value. + * toplev.c: Initialize flag_finite_math_only. + (set_flags_fast_math): Set it on -ffast-math. + (flag_fast_math_set_p): Test it. + * doc/invoke.texi: Document -ffinite-math-only. + +2002-07-30 Richard Henderson + + * ifcvt.c (noce_get_alt_condition): Use reg_overlap_mentioned_p. + (noce_process_if_block): Likewise. + +2002-07-30 Bernd Schmidt + + * ifcvt.c (cond_exec_process_if_block): Fix a merging error. + Bail out early if false_expr is NULL and we'd crash due to this. + * genemit.c (gen_expand): Recognize return insns even if the return + appears in a parallel. + * libgcc2.c: Expand macro DECLARE_LIBRARY_RENAMES if it is defined. + * config/fp-bit.c: Likewise. + * doc/tm.texi: Document it. + +2002-07-30 David Edelsohn + Zack Weinberg + + * rs6000.c (rs6000_expand_unop_builtin): Check icode not + CODE_FOR_nothing. Change switch to if. + (rs6000_expand_binop_builtin): Same. + (rs6000_expand_builtin): Expand builtin if target support enabled. + (rs6000_init_builtins): Init builtin if target support enabled. + (rs6000_common_init_builtins): Check icode not CODE_FOR_nothing. + +2002-07-30 Franz Sirl + + * gcc.c (cpp_unique_options): Define __GXX_ABI_VERSION, bump it to 101. + +2002-07-30 Richard Sandiford + + * config/mips/mips.h (SUBTARGET_ASM_DEBUGGING_SPEC): Fix typo. + +Tue Jul 30 18:31:31 2002 J"orn Rennecke + + * sh.md (cond_delay_slot): New attribute. + (cbranch delay): Use it for anulled-true case. + (stuff_delay_slot): New pattern. + * sh.c (print_operand, case '.'): Don't print .s / /s fore zero-length + delay slot insn. + (gen_far_branch): Emit stuff_delay_slot pattern. + +Tue Jul 30 11:21:44 2002 J"orn Rennecke + + * unroll.c (copy_loop_body): Don't copy NOTE_INSN_LOOP_CONT. + +2002-07-30 Kazu Hirata + + * fold-const.c: Fix comment typos. + * gcse.c: Likewise. + * reload1.c: Likewise. + +2002-07-29 Aldy Hernandez + + * config/rs6000/rs6000.md: Disallow CCEQ compare with crnor/crnot + for TARGET_SPE. + +2002-07-30 Gabriel Dos Reis + + * c-pretty-print.h (pp_c_statement): Declare. + * c-pretty-print.c (pp_c_postfix_expression): #if 0 support for SRCLOC. + (pp_c_statement): Define. + +2002-07-30 Kaveh R. Ghazi + + * alpha.h, arc.h, arm/aout.h, avr.h, c4x.h, cris.h, d30v.h, + darwin.h, dsp16xx.h, fr30.h, h8300.h, i370.h, i386.h, i960.h, + ip2k.h, m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h, mips.h, + mn10200.h, mn10300.h, ns32k.h, pa/pa-linux.h, pdp11.h, romp.h, + rs6000/sysv4.h, s390/linux.h, sh.h, sparc.h, stormy16.h, + v850.h, vax.h, xtensa.h (ASM_OUTPUT_LABEL): Delete definition. + + * defaults.h (ASM_OUTPUT_LABEL): Provide a default. + * doc/tm.texi (ASM_OUTPUT_LABEL): Update docs. + +2002-07-30 Gabriel Dos Reis + + * c-pretty-print.c (pp_c_primary_expression): Handle STMT_EXPR. + (pp_c_postfix_expression): Handle ARROW_EXPR, FFS_EXPR, + COMPOUND_LITERAL_EXPR, VA_ARG_EXPR. + (pp_c_expression): Update. + +2002-07-29 Kaveh R. Ghazi + + * alpha/vms-cc.c (preprocess_args, main): Use xstrdup and/or + concat in lieu of xmalloc/strcpy/memcpy/sprintf. + * alpha/vms-ld.c (main): Likewise. + * dsp16xx.c (double_reg_to_memory): Likewise. + * mcore.c (mcore_expand_prolog): Likewise. + * cppfiles.c (read_name_map): Likewise. + * gensupport.c (process_rtx, identify_predicable_attribute, + alter_test_for_insn): Likewise. + * vmsdbgout.c (write_rtnbeg, vmsdbgout_init): Likewise. + +2002-07-29 Roger Sayle + + * builtins.c (expand_builtin): Change the default behavior to + only issue an error if the builtin function doesn't have a + fallback library call. Remove several cases handled by the + new default. + +2002-07-29 John David Anglin + + * real.c (ieee_24, ieee_53, ieee_64, ieee_113): Define only if the + floating point format of the target is IEEE. + * (dec_f, dec_d, dec_g, dec_h): Define only if the floating point + format of the target is DEC. + +2002-07-29 Richard Henderson + + * unroll.c (verify_addresses): Remove. + (find_splittable_givs): Never split DEST_ADDR givs. + +2002-07-29 Geoffrey Keating + + * doc/gty.texi (GGC Roots): Clarify that the list of syntaxes + is exhaustive. + (Files): Improve documentation on generated source files. + + * doc/extend.texi (Translation implementation): Document what + diagnostics look like. + (Identifiers implementation): Document that there's normally no + limit on identifier names. + (Integers implementation): Document two's complement. + (Hints implementation): Document that GCC honors 'inline', mostly. + (Preprocessing directives implementation): Document that GCC + requires the current time. + +2002-07-30 Gabriel Dos Reis + + * c-pretty-print.h (struct c_pretty_print_info): Add new member. + (pp_initializer): New macro. + (pp_c_initializer): Declare. + * c-pretty-print.c (pp_c_primary_expression): HAndle TARGET_EXPR. + (pp_c_initializer): Define. + (pp_c_initializer_list): New function. + (pp_c_postfix_expression): Handle ABS_EXPR, COMPLEX_CST, + VECTOR_CST, CONSTRUCTOR. + (pp_c_unary_expression): Handle CONJ_EXPR, REALPART_EXPR, + IMAGPART_EXPR. + (pp_c_cast_expression): Handle FLOAT_EXPR. + (pp_c_assignment_expression): Handle INIT_EXPR. + (pp_c_expression): Update. + +2002-07-30 Neil Booth + + * objc/objc-act.c (objc_init): Return immediately if filename + is NULL. + +2002-07-29 Eric Christopher + + * config/mips/elf.h: Remove ecoff.h and gofast includes. + (DWARF2_DEBUGGING_INFO, DBX_DEBUGGING_INFO): Define unconditionally. + (SDB_DEBUGGING_INFO): Undefine. + (PREFERRED_DEBUGGING_TYPE): Set to DWARF2_DEBUG. + (PUT_SDB_SIZE): Remove. + (SUBTARGET_ASM_DEBUGGING_SPEC): Redefine. + (STARTFILE_SPEC): Add isa3264 define. + * config/mips/elf64.h: Ditto. Move TARGET_MEM_FUNCTIONS from here... + * config/mips/ecoff.h: Remove. and here... + * config/mips/iris3.h: and here... + * config/mips/sni-svr4.h: and here... + * config/mips/mips.h: To here. Remove OBJECT_FORMAT_ROSE ifdefs. + Add assembler -mmdebug options for non-dwarf debugging. + * config/mips/r3900.h: Remove debug info defines. + * config/mips/isa32-linux.h: Remove, move functionality to config.gcc. + * config/mips/isa3264.h: Ditto. + * config/mips/t-isa3264: Fix up for file removal and gofast configure + change. + * config/mips/t-elf: Ditto. + * config/mips/t-ecoff: Ditto. + * config/mips/t-r3900: Ditto. + * config/mips/t-iris5-6: Ditto. + * config/mips/t-isa3264: Ditto. + * config/mips/t-linux: Remove. + * config/mips/t-netbsd: Remove. + * config/mips/t-mips: New file. + * config/mips/t-gofast: Ditto. + * config/mips/netbsd.h: Remove unnecessary undefines. + * config/mips/linux.h: Remove #include of mips.h. + * config.gcc: Add mips.h include for elf targets. Remove tm_file + for ecoff. Add gofast configure option for mips. + +2002-07-29 Chris Demetriou + + * configure.in (mips*-*-*): Add a test to see if MIPS libgloss + linker scripts use STARTUP directives consistently. + * configure: Regenerate. + * config.in: Regenerate. + * config/mips/elf.h (STARTFILE_SPEC): Define conditionally, based + on whether HAVE_MIPS_LIBGLOSS_STARTUP_DIRECTIVES is defined. + * config/mips/elf64.h (STARTFILE_SPEC): Likewise. + * config/mips/isa3264.h (STARTFILE_SPEC): Do not redefine if + HAVE_MIPS_LIBGLOSS_STARTUP_DIRECTIVES is set; the result + will be the same. + +2002-07-29 Aldy Hernandez + + * config/rs6000/rs6000.md ("cpu"): Add ppc8540 to attribute. + +2002-07-29 Aldy Hernandez + + * config/rs6000/rs6000.h (RTX_COSTS): Add MULT case for 8540. + +2002-07-29 Aldy Hernandez + + * config/rs6000/rs6000.md: Move altivec patterns from here... + + * config/rs6000/altivec.md: ...to here. + +2002-07-29 Aldy Hernandez + + * config/rs6000/spe.md ("spe_evmra"): Change to unspec. + +2002-07-29 Richard Henderson + + * emit-rtl.c (set_mem_attributes_minus_bitpos): Rename from + set_mem_attributes and add BITPOS argument. Subtract it from + OFFSET when same is adjusted. + (set_mem_attributes): New wrapper function. + * expr.c (expand_assignment): Use set_mem_attributes_minus_bitpos; + remove offset adjustment hack. + * expr.h (set_mem_attributes_minus_bitpos): Declare. + +2002-07-29 Gabriel Dos Reis + + * Makefile.in (C_OBJS): Include c-pretty-print.o + (c-pretty-print.o): Add depency rule. + * pretty-print.h: Add more macros. + * c-pretty-print.c: New file. + * c-pretty-print.h: Likewise. + +2002-07-29 Aldy Hernandez + + * config/rs6000/spe.h (__internal_ev_mwhgumian): Cast vector + constants to __ev64_s32__. + (__internal_ev_mwhgsmian): Same. + (__internal_ev_mwhgsmfan): Same. + (__internal_ev_mwhgssfan): Same. + (__internal_ev_mwhgumiaa): Same. + (__internal_ev_mwhgsmiaa): Same. + (__internal_ev_mwhgsmfaa): Same. + (__internal_ev_mwhgssfaa): Same. + +2002-07-29 David Edelsohn + + * varasm.c (assemble_variable): Narrow test for uninitialized + without BSS target support. + +2002-07-29 Nathan Sidwell + + * profile.c: Add file comment describing the overall algorithm and + structures. + (struct edge_info): Add comments. + (struct bb_info): Add comments. + * basic-block.h (EDGE_*): Add comments. + * doc/gcov.texi (Gcov Data Files): Document bit flags. + +2002-07-29 Bob Wilson + + * config/xtensa/elf.h, config/xtensa/linux.h + (TARGET_OS_CPP_BUILTINS): Define. + (CPP_PREDEFINES): Remove. + * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define. + (CPP_SPEC): Remove. + +2002-07-29 Zack Weinberg + + * gensupport.c: Include hashtab.h. + (insn_elision, condition_table, hash_c_test, cmp_c_test, + maybe_eval_c_test): New routines and data structures to + support insn elision. + (init_md_reader): Read and initialize the condition_table. + (read_md_rtx): Discard insn patterns whose C test is provably + always false. + * gensupport.h: Declare new functions and data structures. + + * genconditions.c, dummy-conditions.c: New files. + * Makefile.in: Build genconditions; run it to construct + insn-conditions.c; build that and link it into most gen* + programs. + (HOST_SUPPORT, HOST_EARLY_SUPPORT): New variables. + (GEN): Delete, unused. + (STAGESTUFF): Update. + + * gencodes.c: (gen_insn): #define CODE_FOR_xxx equal to + CODE_FOR_nothing for all elided patterns. + (main): Tweaked to support this. + * genflags.c (gen_proto): Emit a static inline generator + function here for all elided patterns, which simply returns + NULL_RTX. + (gen_insn): Do not define HAVE_xxx for elided patterns. + (main): Tweaked to support this. No need to forward-declare + struct rtx_def. + * genrecog.c: Do not bother emitting the C test if it's known + to be true at compile time. + +2002-07-29 Mike Stump + + * config.gcc (target_gtfiles): Initialize, as otherwise cross + compilers hosted on powerpc-apple-darwin6.0 won't even build. + +2002-07-29 Richard Earnshaw + + * arm.md (sibcall, sibcall_value): Add RETURN as part of the pattern, + remove clobber of LR. + (sibcall_insn, sibcall_value_insn): Update accordingly. + (sibcall_epilogue): Remove debugging comment from assembler stream. + +2002-07-29 Gabriel Dos Reis + + * pretty-print.h: Define more macros. + * diagnostic.h (output_formatted_integer): Moved from... + * diagnostic.c: ... here. + +2002-07-28 Kaveh R. Ghazi + + * stormy16.h (ASM_OUTPUT_SYMBOL_REF): Use ASM_OUTPUT_LABEL_REF. + +2002-07-28 Zack Weinberg + + * defaults.h (ASM_OUTPUT_MEASURED_SIZE): Take only two + arguments. Always use ".-symbol" as expression argument. + * doc/tm.texi: Update to match. Document requirement for + ".size symbol, .-symbol" to be acceptable to assembler. + + * config/elfos.h, config/netbsd-aout.h, config/openbsd.h, + config/arm/elf.h, config/avr/avr.h, config/cris/aout.h, + config/i386/freebsd-aout.h, config/i386/sco5.h, + config/ip2k/ip2k.h, config/m88k/m88k.h, config/xtensa/elf.h, + config/xtensa/linux.h: Update uses of ASM_OUTPUT_MEASURED_SIZE. + +2002-07-28 Kaveh R. Ghazi + + * Makefile.in (gengtype-lex.c): Fix error in last change. + + * alpha/freebsd.h (TARGET_OS_CPP_BUILTINS): Add missing + backslash. + + * Makefile.in (vmsdbgout.o): Depend on function.h. + + * vmsdbgout.c: Include function.h. + +2002-07-28 Alan Modra + + * prefix.c (update_path): Don't strip single `.' path components + unless stripping a later `..' component. Exit loop as soon as + a valid path is found. + +2002-07-27 Roger Sayle + + * builtins.def [DEF_GCC_BUILTIN]: Require an explicit ATTRS + argument. Mark BUILT_IN_RETURN, BUILT_IN_EH_RETURN, + BUILT_IN_LONGJMP and BUILT_IN_TRAP as noreturn, the ISO C99 + floating point unordered comparisons (e.g. __builtin_isgreater) + as const, and leave the remaining GCC_BUILTINs unchanged. + + * c-decl.c (builtin_function): No need to explicitly mark + BUILT_IN_RETURN and BUILT_IN_EH_RETURN as noreturn. + +2002-07-27 Roger Sayle + + * Makefile.in: rtlanal.o now depends upon real.h. + + * flags.h [flag_signaling_nans]: New flag. + [HONOR_SNANS]: New macro. + + * toplev.c [flag_signaling_nans]: Initialize to false. + (f_options): Add processing for "-fsignaling-nans". + (set_fast_math_flags): Clear flag_signaling_nans with -ffast-math. + (process_options): flag_signaling_nans implies flag_trapping_math. + + * c-common.c (cb_register_builtins): Define __SUPPORT_SNAN__ + when -fsignaling-nans. First step to implementing WG14's N965. + + * fold-const.c (fold) [MULT_EXPR]: Conditionalize transforming + 1.0 * x into x, and -1.0 * x into -x on !HONOR_SNANS. + [RDIV_EXPR]: Conditionalize x/1.0 into x on !HONOR_SNANS. + + * simplify-rtx.c (simplify_relational_operation): Conditionalize + transforming abs(x) < 0.0 into false on !HONOR_SNANS. + + * rtlanal.c: #include real.c for TARGET_FLOAT_FORMAT definitions + required by HONOR_SNANS. (may_trap_p): Floating point DIV, MOD, + UDIV, UMOD, GE, GT, LE, LT and COMPARE may always trap with + -fsignaling_nans. EQ and NE only trap for flag_signaling_nans + not flag_trapping_math (i.e. HONOR_SNANS but not HONOR_NANS). + + * doc/invoke.texi: Document new -fsignaling-nans compiler option. + +2002-07-27 Kaveh R. Ghazi + + * Makefile.in (gengtype-lex.c): Work around a bug in flex. + * gengtype-lex.l (YY_USE_PROTOS): Undef. + (YY_DECL): Define. + +2002-07-27 Roger Sayle + + * doc/invoke.texi: Document that both -fno-builtin-foo and + -fno-builtin are supported by the g++ front-end. + +2002-07-27 Stan Shebs + + * configure.in: Rename config_gtfiles to target_gtfiles. + * configure: Regenerate. + * doc/gty.texi: Update reference. + * config.gcc (powerpc-*-darwin*): Set target_gtfiles + instead of appending to it. + +2002-07-25 Aldy Hernandez + + * config/rs6000/rs6000.c (function_arg_advance): SPE vararg + vectors are split into two registers. + (function_arg): Same. + +Thu Jul 26 23:00:13 2002 J"orn Rennecke + + * pa.md (extv): Check predicates before emitting extv_32. + +2002-07-27 Alan Modra + + * config/rs6000/rs6000.c (rs6000_traceback_name): New var. + (rs6000_traceback): New var. + (rs6000_override_options): Set rs6000_traceback. + (rs6000_output_function_epilogue): Implement traceback options. + * config/rs6000/rs6000.h (TARGET_OPTIONS): Add "traceback=". + (rs6000_traceback_name): Declare. + + * config/rs6000/rs6000.c (output_profile_hook): Don't generate profile + label reference when NO_PROFILE_COUNTERS. + +2002-07-26 Jason Merrill + + * function.c (assign_parms): Handle frontend-directed pass by + invisible reference. + +2002-07-26 Neil Booth + + * doc/cppopts.texi: Update. + +2002-07-26 Neil Booth + + * cppmacro.c (_cpp_create_definition): Don't attempt redefinition + warnings on assertions. + +2002-07-26 Neil Booth + + * c-common.h (RID_AND, RID_AND_EQ, RID_NOT, RID_NOT_EQ, + RID_OR, RID_OR_EQ, RID_XOR, RID_XOR_EQ, RID_BITAND, RID_BITOR, + RID_COMPL): Remove. + * c-parse.in (rid_to_yy): Similarly. + +2002-07-26 Jason Merrill + + * c-dump.c: Resurrect. + * tree-dump.c: Move C-specific stuff to c-dump.c. + * c-common.h: Declare c_dump_tree. + * c-lang.c (LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN): Define. + * Makefile.in (C_AND_OBJC_OBJS): Add c-dump.o. + (c-dump.o): New rule. + +2002-07-26 Alan Modra + + * config/rs6000/rs6000.md: Enable patterns using rlwinm for + PowerPC64. Replace "T" and "S" constraints with "n" when the + predicate will do. Formatting fixes. + (extzvsi_internal2): Use "andi.", "andis." and attr type of "compare" + as for extzvsi_internal1. + +2002-07-25 Neil Booth + + * dwarfout.c (VERSION_ASM_OP, DERIV_BEGIN_LABEL_FMT, + DERIV_END_LABEL_FMT): Remove. + (SL_BEGIN_LABEL_FMT, SL_END_LABEL_FMT): Move. + +2002-07-25 Neil Booth + + * objc/objc-act.c (UTAG_STATICS, UTAG_PROTOCOL_LIST, USERTYPE): + Remove. + +2002-07-25 Stan Shebs + + * config/rs6000/rs6000.c (rs6000_emit_prologue): Remove unused + local var dwarfp. + (output_compiler_stub): Remove unused locals. + (output_call): Always initialize line number. + +Thu Jul 25 20:34:50 2002 J"orn Rennecke + + * sh.h (LOAD_EXTEND_OP): QImode zero-extends on SHmedia. + * sh.md (truncdiqi2, movqi_media): Likewise. + +2002-07-25 Neil Booth + + * gcse.c (obstack_chunk_alloc): Remove. + (gcse_alloc): Fix to count allocated bytes. + * collect2.c (SYMBOL__MAIN): Remove. + +2002-07-25 Neil Booth + + * gcc.c (TARGET_EXECUTABLE_SUFFIX): Only used if + HAVE_TARGET_EXECUTABLE_SUFFIX. + +Thu Jul 25 18:57:50 2002 J"orn Rennecke + + * rtl.h (mem_attrs): Spell out more clearly the roles of ALIGN, + SIZE, EXPR and OFFSET. + +2002-07-25 Richard Henderson + + * emit-rtl.c (set_mem_attributes): Fix size and alignment thinkos + in ARRAY_REF of DECL_P case. + +2002-07-25 Richard Sandiford + + * doc/invoke.texi: Document -mabi=meabi, and expand on the EABI + description. Document -mips32, -mips64, and the associated -march + values. Describe the "mipsN" arguments to -march. Say that the + -mipsN options are equivalent to -march. Reword the description + of default type sizes. + * toplev.h (target_flags_explicit): Declare. + * toplev.c (target_flags_explicit): New var. + (set_target_switch): Update target_flags_explicit. + * config/mips/abi64.h (SUBTARGET_TARGET_OPTIONS): Undefine. + * config/mips/elf64.h (MIPS_ISA_DEFAULT): Undefine. + * config/mips/iris6.h (SUBTARGET_ASM_SPEC): -mabi=64 implies -mips3. + * config/mips/isa3264.h (MIPS_ENABLE_EMBEDDED_O32): Undefine. + * config/mips/mips.h (mips_cpu_info): New struct. + (mips_cpu_string, mips_explicit_type_size_string): Remove. + (mips_cpu_info_table, mips_arch_info, mips_tune_info): Declare. + (MIPS_CPP_SET_PROCESSOR): New macro. + (TARGET_CPP_BUILTINS): Declare a macro for each supported processor. + Define _MIPS_ARCH and _MIPS_TUNE. + (MIPS_ISA_DEFAULT): Don't provide a default value. Instead... + (MIPS_CPU_STRING_DEFAULT): Set to "from-abi" if neither it nor + MIPS_ISA_DEFAULT were already defined. + (MULTILIB_DEFAULTS): Add MULTILIB_ABI_DEFAULT. + (TARGET_OPTIONS): Remove -mcpu and -mexplicit-type-size. + (ABI_NEEDS_32BIT_REGS, ABI_NEEDS_64BIT_REGS): New. + (GAS_ASM_SPEC): Remove -march, -mcpu, -mgp* and -mabi rules. + (ABI_GAS_ASM_SPEC): Remove. + (MULTILIB_ABI_DEFAULT, ASM_ABI_DEFAULT_SPEC): New macros. + (ASM_SPEC): Add -mgp32, -mgp64, -march, -mabi=eabi and -mabi=o64. + Invoke %(asm_abi_default_spec) if no ABI was specified. + (CC1_SPEC): Remove ISA -> register-size rules. + (EXTRA_SPECS): Remove abi_gas_asm_spec. Add asm_abi_default_spec. + * config/mips/mips.c (mips_arch_info, mips_tune_info): New vars. + (mips_cpu_string, mips_explicit_type_size_string): Remove. + (mips_cpu_info_table): New array. + (mips_set_architecture, mips_set_tune): New fns. + (override_options): Rework to make -mipsN equivalent to -march. + Detect more erroneous cases, including those removed from CC1_SPEC. + Don't change the ABI based on architecture, or vice versa. + Unify logic with GAS. + (mips_asm_file_start): Get architecture name from mips_arch_info. + (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p): New fns. + (mips_parse_cpu): Take the name of the option as argument. Handle + 'from-abi'. Raise an error if the option is wrong. + (mips_cpu_info_from_isa): New fn. + +2002-07-25 Richard Sandiford + + * config/mips/mips.md (tablejump_mips161): Use gen_rtx_LABEL_REF. + (tablejump_mips162): Likewise. + +Thu Jul 25 10:23:41 2002 J"orn Rennecke + + * simpify-rtx.c (simplify_subreg): Don't pass MODE_CC mode to + int_mode_for_mode. + +2002-07-25 Gabriel Dos Reis + + * c-common.c (c_sizeof_or_alignof_type): Take a third argument for + complaining. + * c-common.h (c_sizeof): Adjust definition. + (c_alignof): Likewise. + * c-tree.h (c_sizeof_nowarn): Now macro. + * c-typeck.c (c_sizeof_nowarn): Remove definition. + +2002-07-25 Neil Booth + + * c-decl.c (c_decode_option): No need to handle switches + cpplib handles. + +2002-07-24 Zack Weinberg + + * defaults.h (ASM_OUTPUT_TYPE_DIRECTIVE, ASM_OUTPUT_SIZE_DIRECTIVE, + ASM_OUTPUT_MEASURED_SIZE): New default definitions of new macros. + * doc/tm.texi: Document them. Also document SIZE_ASM_OP, + TYPE_ASM_OP, and TYPE_OPERAND_FMT. + + * config/elfos.h, config/netbsd-aout.h, config/openbsd.h, + config/alpha/elf.h, config/arm/elf.h, config/avr/avr.h, + config/cris/aout.h, config/i386/freebsd-aout.h, + config/i386/sco5.h, config/ia64/ia64.c, config/ip2k/ip2k.h, + config/m68k/m68kelf.h, config/m68k/m68kv4.h, config/m88k/m88k.h, + config/mcore/mcore-elf.h, config/mips/elf.h, config/mips/elf64.h, + config/mips/iris6.h, config/mips/linux.h, config/pa/pa-linux.h, + config/pa/pa64-hpux.h, config/rs6000/sysv4.h, + config/xtensa/elf.h, config/xtensa/linux.h: + Use the new macros. + Where possible, remove redundant definitions of SIZE_ASM_OP, + TYPE_ASM_OP, and TYPE_OPERAND_FMT. + +2002-07-24 Aldy Hernandez + + * config/rs6000/eabi.h: Define TARGET_SPE_ABI, TARGET_SPE, + TARGET_ISEL, and TARGET_FPRS. + + * doc/invoke.texi (RS/6000 and PowerPC Options): Document + -mabi=spe, -mabi=no-spe, and -misel=. + + * config/rs6000/rs6000-protos.h: Add output_isel. + Move vrsave_operation prototype here. + + * config/rs6000/rs6000.md (sminsi3): Allow pattern for TARGET_ISEL. + (smaxsi3): Same. + (uminsi3): Same. + (umaxsi3): Same. + (abssi2_nopower): Disallow when TARGET_ISEL. + (*ne0): Same. + (negsf2): Change to expand and rename old pattern to *negsf2. + (abssf2): Change to expand and rename old pattern to *abssf2. + + New expanders: fix_truncsfsi2, floatunssisf2, floatsisf2, + fixunssfsi2. + + Change patterns that check for TARGET_HARD_FLOAT or + TARGET_SOFT_FLOAT to also check TARGET_FPRS. + + * config/rs6000/rs6000.c: New globals: rs6000_spe_abi, + rs6000_isel, rs6000_fprs, rs6000_isel_string. + (rs6000_override_options): Add 8540 case to + processor_target_table. + Set rs6000_isel for the 8540. + Call rs6000_parse_isel_option. + (enable_mask_for_builtins): New. + (rs6000_parse_isel_option): New. + (rs6000_parse_abi_options): Add spe and no-spe. + (easy_fp_constant): Treat !TARGET_FPRS as soft-float. + (rs6000_legitimize_address): Check for TARGET_FPRS when checking + for TARGET_HARD_FLOAT. + Add case for SPE_VECTOR_MODE. + (rs6000_legitimize_reload_address): Handle SPE vector modes. + (rs6000_legitimate_address): Disallow PRE_INC/PRE_DEC for SPE + vector modes. + Check for TARGET_FPRS when checking for TARGET_HARD_FLOAT. + (rs6000_emit_move): Check for TARGET_FPRS. + Add cases for SPE vector modes. + (function_arg_boundary): Return 64 for SPE vector modes. + (function_arg_advance): Check for TARGET_FPRS and + Handle SPE vectors. + (function_arg): Same. + (setup_incoming_varargs): Check for TARGET_FPRS. + (rs6000_va_arg): Same. + (struct builtin_description): Un-constify mask field. Move up in + file. + (bdesc_2arg): Un-constify and add SPE builtins. + (bdesc_1arg): Same. + (bdesc_spe_predicates): New. + (bdesc_spe_evsel): New. + (rs6000_expand_unop_builtin): Add SPE 5-bit literal builtins. + (rs6000_expand_binop_builtin): Same. + (bdesc_2arg_spe): New. + (spe_expand_builtin): New. + (spe_expand_predicate_builtin): New. + (spe_expand_evsel_builtin): New. + (rs6000_expand_builtin): Call spe_expand_builtin for SPE. + (rs6000_init_builtins): Initialize SPE builtins. Call + rs6000_common_init_builtins. + (altivec_init_builtins): Move all non-altivec builtin code to... + (rs6000_common_init_builtins): ...here. New function. + (branch_positive_comparison_operator): Allow NE code for SPE. + (ccr_bit): Return correct ccr bit for SPE fp. + (print_operand): Emit crnor in 'D' case for SPE. + New case 't'. + Add SPE code for 'y' case. + (rs6000_generate_compare): Generate rtl for SPE fp. + (output_cbranch): Handle SPE hard floats. + (rs6000_emit_cmove): Handle isel. + (rs6000_emit_int_cmove): New. + (output_isel): New. + (rs6000_stack_info): Adjust stack frame so GPRs are saved in + 64-bits for SPE. + (debug_stack_info): Add SPE info. + (gen_frame_mem_offset): New. + (rs6000_emit_prologue): Save GPRs in 64-bits for SPE abi. + Change mode of frame pointer, when saving it, to Pmode. + (rs6000_emit_epilogue): Restore GPRs in 64-bits for SPE abi. + Misc cleanups and use gen_frame_mem_offset when appropriate. + + * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_PPC8540. + (TARGET_SPE_ABI): New. + (TARGET_SPE): New. + (TARGET_ISEL): New. + (TARGET_FPRS): New. + (FIXED_SCRATCH): New. + (RTX_COSTS): Add PROCESSOR_PPC8540. + (ASM_CPU_SPEC): Add case for 8540. + (TARGET_OPTIONS): Add isel= case. + (rs6000_spe_abi): New. + (rs6000_isel): New. + (rs6000_fprs): New. + (rs6000_isel_string): New. + (UNITS_PER_SPE_WORD): New. + (LOCAL_ALIGNMENT): Adjust for SPE. + (HARD_REGNO_MODE_OK): Same. + (DATA_ALIGNMENT): Same. + (MEMBER_TYPE_FORCES_BLK): New. + (FIRST_PSEUDO_REGISTER): Set to 113. + (FIXED_REGISTERS): Add SPE registers. + (reg_class): Same. + (REG_CLASS_NAMES): Same. + (REG_CLASS_CONTENTS): Same. + (REGNO_REG_CLASS): Same. + (REGISTER_NAMES): Same. + (DEBUG_REGISTER_NAMES): Same. + (ADDITIONAL_REGISTER_NAMES): Same. + (CALL_USED_REGISTERS): Same. + (CALL_REALLY_USED_REGISTERS): Same. + (SPE_ACC_REGNO): New. + (SPEFSCR_REGNO): New. + (SPE_SIMD_REGNO_P): New. + (HARD_REGNO_NREGS): Adjust for SPE. + (VECTOR_MODE_SUPPORTED_P): Same. + (REGNO_REG_CLASS): Same. + (FUNCTION_VALUE): Same. + (LIBCALL_VALUE): Same. + (LEGITIMATE_OFFSET_ADDRESS_P): Same. + (SPE_VECTOR_MODE): New. + (CONDITIONAL_REGISTER_USAGE): Disable FPRs when target does FP on + the GPRs. Set FIXED_SCRATCH fixed in SPE case. + (rs6000_stack): Add spe_gp_size, spe_padding_size, + spe_gp_save_offset. + (USE_FP_FOR_ARG_P): Check for TARGET_FPRS. + (LEGITIMATE_LO_SUM_ADDRESS_P): Same. + (SPE_CONST_OFFSET_OK): New. + (rs6000_builtins): Add SPE builtins. + + * testsuite/gcc.dg/ppc-spe.c: New. + + * config/rs6000/eabispe.h: New. + + * config/rs6000/spe.h: New. + + * config/rs600/spe.md: New. + + * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define + __SIMD__ for TARGET_SPE. + + * config.gcc: Add powerpc-*-eabispe* case. + Add spe.h to user headers for powerpc. + +2002-07-24 Chris Demetriou + + * config/mips/elf.h (STARTFILE_SPEC): Undo previous change. + * config/mips/elf64.h (STARTFILE_SPEC): Likewise. + * config/mips/isa3264.h (STARTFILE_SPEC): Likewise. + +2002-07-24 Richard Henderson + + * expr.c (expand_expr) [TRY_FINALLY_EXPR]: Use GOTO_SUBROUTINE_EXPR + form when not optimizing. + +2002-07-24 David Mosberger + + * config/ia64/ia64.c (gen_thread_pointer): Fix typo in marking + thread_pointer_rtx as unchanging. + +2002-07-24 Michael Matz + + * ra-colorize.c (INV_REG_ALLOC_ORDER): New macro. + (free_reg): Use it. + +2002-07-24 Richard Earnshaw + + * arm.md (arm_buneq, arm_bltgt): put '\' before ';' in output + pattern. + (arm_buneq_reversed, arm_bltgt_reversed): Likewise. + (movsicc, movsfcc, movdfcc): FAIL if UNEQ or LTGT. + +2002-07-24 Chris Demetriou + + * config/mips/elf.h (STARTFILE_SPEC): Never include crt0.o. + * config/mips/elf64.h (STARTFILE_SPEC): Likewise. + * config/mips/isa3264.h (STARTFILE_SPEC): Do not redefine. + +Wed Jul 24 17:59:12 CEST 2002 Jan Hubicka + + * toplev.c (rest_of_compilation): Dump loops before clobbering + the structure. + +Wed Jul 24 17:23:16 CEST 2002 Jan Hubicka + + * rtlanal.c (keep_with_call_p): Avoid overflow in fixed_regs. + +2002-07-24 Frank van der Linden + + PR optimization/7291 + * config/i386/i386.c (ix86_expand_clrstr): Fix bzero alignment + problem on x86_64. + +2002-07-24 Gabriel Dos Reis + + * pretty-print.h: Add macros from cp/error.c + +2002-07-24 Alan Modra + + * config/rs6000/rs6000-protos.h (mask_operand_wrap): Declare. + (mask64_2_operand): Declare. + (build_mask64_2_operands): Declare. + (and64_2_operand): Declare. + (extract_MB): Declare. + (extract_ME): Declare. + * config/rs6000/rs6000.c (mask64_operand): Allow all ones. Remove + CONST_DOUBLE code. + (mask_operand_wrap): New insn predicate. + (mask64_2_operand): Likewise. + (and64_2_operand): Likewise. + (build_mask64_2_operands): New function. + (extract_MB): New function. + (extract_ME): New function. + (print_operand ): Use extract_MB and extract_ME. + (print_operand ): Allow all ones. Remove CONST_DOUBLE support. + * config/rs6000/rs6000.h (EXTRA_CONSTRAINT): Add 't'. + (PREDICATE_CODES): Add and64_2_operand, mask_operand_wrap and + mask64_2_operand. Remove CONST_DOUBLE from mask64_operand. + * config/rs6000/rs6000.md (andsi3_internal3): New + (andsi3_internal3+1): Enable split for powerpc64. + (andsi3_internal3+2): New split. + (andsi3_internal4): Renamed old andsi3_internal3. + (andsi3_internal5): New. + (andsi3_internal5+1): Enable split for powerpc64. + (andsi3_internal5+2): New split. + (andsi3_internal6, andsi3_internal7, andsi3_internal8): New. + (anddi3): Handle 't' constraint. + (anddi3+1): New split. + (anddi3_internal2): Handle 't' constraint. + (anddi3_internal2+1): New split. + (anddi3_internal3): Handle 't' constraint. + (anddi3_internal3+1): New split. + +2002-07-24 Alan Modra + + * config/rs6000/rs6000.md: Remove scratch reg on insns using + addze and similar (plus (comparison r1 r2) r3) insns. Add + missing scratch reg in one case. Formatting fixes. + +2002-07-24 Neil Booth + + * cppexp.c (parse_defined): Mark macro used. + * cpphash.h (struct cpp_macro): New member "used". + (_cpp_mark_macro_used, _cpp_warn_if_unused_macro): New. + (struct cpp_reader): New member. + * cppinit.c (cpp_finish_options): Set first_unused_line. + (cpp_finish): Warn of unused macros if requested. + (OPT_TABLE): New switches. + (cpp_handle_option): Handle them. + * cpplib.c (do_undef): Warn if macro unused. + (do_ifdef, do_ifndef): Mark macro used. + * cpplib.h (struct cpp_options): New member. + * cppmacro.c (_cpp_warn_if_unused_macro): New. + (enter_macro_context): Mark macro used. + (_cpp_create_definition): Mark macro unused; warn if unused + when redefined. + * cpptrad.c (scan_out_logcial_line, push_replacement_text): + Mark macros used. + * doc/cppopts.texi: Update. + +2002-07-23 Neil Booth + + * dwarf2out.c (SECTION_ASM_OP, + ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL): Remove. + * system.h (SECTION_ASM_OP): Poison. + * tree.c (FILE_FUNCTION_PREFIX_LEN): Remove. + * config/alpha/alpha-interix.h, config/mips/linux.h + (ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL): Remove. + * config/mmix/mmix-protos.h, config/mmix/mmix.c + (mmix_asm_output_define_label_difference_symbol): Remove. + * config/mmix/mmix.h + (ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL): Remove. + * doc/tm.texi: Remove documentation. + +Tue Jul 23 21:49:24 2002 J"orn Rennecke + + * recog.c (asm_operand_ok): Allow float CONST_VECTORs for 'F'. + (constrain_operands): Likewise. + * regclass.c (record_reg_classes): Likewise. + * reload.c (find_reloads): Likewise. + * doc/md.texi: Likewise. + + * reload.c (find_reloads_toplev): Use simplify_gen_subreg. + * simplify-rtx.c (simplify_subreg): When converting to a non-int + mode, try to convert to an integer mode of matching size first. + + * simplify-rtx.x (simplify_subreg): When constructing a CONST_VECTOR + from individual subregs, check that each subreg has been generated + sucessfully. + +2002-07-23 Neil Booth + + * genautomata.c (VLA_HWINT_SHORTEN, VLA_HWINT_LAST): Remove. + * df.c (HANDLE_SUBREG, FOR_EACH_BB_IN_BITMAP_REV, + FOR_EACH_BB_IN_SBITMAP): Remove. + * gcse.c (NEVER_SET, FOLLOW_BACK_EDGES): Remove. + * haifa-sched.c (DONE_PRIORITY, MAX_PRIORITY, TAIL_PRIORITY, + LAUNCH_PRIORITY, DONE_PRIORITY_P, LOW_PRIORITY_P): Remove. + * loop.c (PREFETCH_BLOACK_IN_LOOP_MIN, + PREFETCH_LIMIT_TO_SIMULTANEOUS): Remove. + * regrename.c (REGNO_MODE_OK_FOR_BASE_P): Remove. + +2002-07-23 Gabriel Dos Reis + + * pretty-print.h: New file. + +2002-07-23 Paul Koning + + * real.c (REAL_WORDS_BIG_ENDIAN): Make 1 for DEC. + (LARGEST_EXPONENT_IS_NORMAL): Ditto. + (VAX_HALFWORD_ORDER): Define (1 for DEC VAX, 0 otherwise). + (TARGET_G_FLOAT): Default to 0 if not defined. + (ieeetoe): New, common routine to convert target format floats + to internal form. + (e24toe, e53toe): Change to use ieeetoe, distinguish DEC + vs. others. + (e113toe): Change to use ieeetoe. + +2002-07-23 Roman Lechtchinsky + + * real.c (REAL_WORDS_BIG_ENDIAN): Make sure it is 0 for DEC and 1 for + IBM. + (e53toe): Assume IEEE if non of DEC, IBM and C4X is defined. + (e64toe): Remove special cases for DEC and IBM. Remove support for + ARM_EXTENDED_IEEE_FORMAT. + (e24toe): Remove special cases for DEC. + (significand_size): Simplify. Indent. + (ieee_format, ieee_24, ieee_53, ieee_64, ieee_113): New. + (etoieee, toieee): New. + (etoe113, toe113, etoe64, toe64, etoe53, toe53, etoe24, toe24): Use + etoieee and toieee for IEEE arithmetic. + +2002-07-23 Gabriel Dos Reis + + * doc/extend.texi: Say ISO C90, not ISO C89. + * doc/invoke.texi: Likewise. + * doc/standards.texi: Likewise. + +2002-07-23 Steve Ellcey + + * gcc/explow.c (convert_memory_address): Fix conversion of CONSTs. + Fix permutation of conversion and plus/mult. + * gcc/builtins.c (expand_builtin_memcpy) Ensure return pointer is + ptr_mode and not Pmode when POINTERS_EXTEND_UNSIGNED is defined. + (expand_builtin_strncpy) Ditto. + (expand_builtin_memset) Ditto. + +2002-07-23 Gabriel Dos Reis + + Fix PR/7363: + * c-common.c (c_sizeof_or_alignof_type): New function. + (c_alignof): Remove definition. + * c-common.h (c_sizeof, c_alignof): Define as macros. + (c_sizeof_or_alignof_type): Declare. + (my_friendly_assert): Moved from cp/cp-tree.h + * c-typeck.c (c_sizeof): Remove definition. + +2002-07-23 Jan Hubicka + + * gcse.c (try_replace_reg): Use num_changes_pending. + * recog.c (num_changes_pending): New function. + (validate_replace_src): Use validate_repalce_src_group. + (validate_replace_src_group): New. + * recog.h (validate_repalce_src_group): New. + (num_changes_pending): Likewise. + +Tue Jul 23 12:16:58 2002 J"orn Rennecke + + * calls.c (emit_library_call_value_1): If + FUNCTION_ARG_PASS_BY_REFERENCE is true, pretend this is neither + libcall, const call nor pure call. + +2002-07-23 Neil Booth + + * config/m88k/m88k.h (SECTION_ASM_OP): Remove. + +2002-07-23 Neil Booth + + * vmsdbgout.c (SECTION_ASM_OP): Remove. + +2002-07-23 Neil Booth + + * config/i386/i386.c (AT_BP): Remove. + +2002-07-23 Neil Booth + + * defaults.h (obstack_chunk_alloc, obstack_chunk_free): + Default definition. + * gcse.c: Don't define obstack_chunk_free. + * collect2.c, conflict.c, df.c, diagnostic.c, fix-header.c, + flow.c, gcc.c, genattrtab.c, genautomata.c, genflags.c, gensupport.c, + integrate.c, loop.c, ra.c, read-rtl.c, regrename.c, reload1.c, + reorg.c, tlink.c, tree.c, config/arm/arm.c, objc/objc-act.c: + Don't define obstack macros. + +2002-07-22 Stephane Carrez + + PR target/6744 + * config/m68hc11/m68hc11.c (m68hc11_z_replacement): Also replace + ASM_OPERANDS instructions. + +2002-07-22 Stephane Carrez + + PR target/7361 + * config/m68hc11/m68hc11.c (go_if_legitimate_address_internal): Accept + constant addresses only on 68HC12. + +2002-07-22 Neil Booth + + * cppfiles.c (stack_include_file): Correct test of whether + a dependency should be output. + +2002-07-22 David Edelsohn + + * collect2.c (is_ctor_dtor): Add other possible JOINER values. + +2002-07-22 Richard Earnshaw + + * arm.md (movqi): If optimizing and we can create pseudos, use + a ZERO_EXTEND to load from memory, then copy the result into the + target. + (movhi): Likewise, but only for ARMv4. + +2002-07-22 Neil Booth + + * ssa-ccp.c (PHI_PARMS): Remove. + +2002-07-22 Richard Sandiford + + * config/mips/mips.h (CLASS_CANNOT_CHANGE_MODE): Include FP_REGS + on big-endian targets. + +2002-07-22 Kaveh R. Ghazi + + * hwint.h (HOST_WIDE_INT_PRINT_DEC_SPACE, + HOST_WIDE_INT_PRINT_UNSIGNED_SPACE, + HOST_WIDEST_INT_PRINT_DEC_SPACE, HOST_WIDEST_INT_PRINT_DEC_SPACE): + New formatting macros. + + * ra-debug.c (dump_static_insn_cost): Avoid string concatenation. + +Mon Jul 22 15:27:25 2002 J"orn Rennecke + + * rtlanal.c (subreg_regno_offset): Return correct offset for + big endian paradoxical subregs. + + * optabs.c (expand_vector_unop): Don't expand using sub_optab + if we got the wrong mode. + + * hwint.c (define HOST_WIDE_INT_PRINT_DEC_C): New define. + * genrecog.c (write_switch, write_cond): Use it. + * genemit.c (gen_exp): Likewise. + +2002-07-22 Jakub Jelinek + + * c-decl.c (build_compound_literal): Set decl TREE_READONLY from TYPE. + +2002-07-22 Jakub Jelinek + + * c-decl.c (build_compound_literal): Defer compound literal decls + until until file end to emit them only if they are actually used. + +2002-07-21 Kaveh R. Ghazi + + * ra-build.c (check_conflict_numbers): Hide unused function. + (livethrough_conflicts_bb): Avoid automatic aggregate + initialization. + (parts_to_webs_1): Avoid `U' integer constant modifier. + (conflicts_between_webs): Wrap a variable in the macro controlling + its usage. + * ra-debug.c (ra_debug_msg): Use VA_OPEN/VA_CLOSE. + (dump_igraph, dump_graph_cost): Avoid string concatenation + (dump_static_insn_cost): Avoid automatic aggregate + initialization. + * ra-rewrite.c (insert_stores): Avoid automatic aggregate + initialization. + (dump_cost): Avoid string concatenation + +2002-07-21 Richard Henderson + + * expr.c (expand_expr) [TRY_FINALLY_EXPR]: Don't use + GOTO_SUBROUTINE_EXPR when finally_block can be re-expanded. + +2002-07-21 Richard Henderson + + * unroll.c (find_splittable_givs): Do not split DEST_ADDR givs + that are not unrolled completely. + +2002-07-21 Richard Henderson + + * loop.h (LOOP_AUTO_UNROLL): Rename from LOOP_FIRST_PASS. + * loop.c (strength_reduce): Update. + * toplev.c (rest_of_compilation): Do unrolling in the first + loop pass, not the second. + +2002-07-21 Richard Henderson + + * emit-rtl.c (set_mem_attributes): Preserve indirection of PARM_DECL + when flag_argument_noalias == 2. + * alias.c (nonoverlapping_memrefs_p): Handle that. + * print-rtl.c (print_mem_expr): Likewise. + +2002-07-21 Hartmut Schirmer + + * libgcc2.c (__divdi3, __moddi3): Use unary minus operator + instead of __negdi2 directly. + +2002-07-21 Neil Booth + + * gengenrtl.c (gencode): Don't define obstack_alloc_rtx. + * function.c (SYMBOL__MAIN): Remove definition. + * global.c (SET_CONFLICT, REGBITP, ALLOCNO_LIVE_P): Remove. + * predict.c (PROB_NEVER, PROB_LIKELY, PROB_UNLIKELY): Remove. + * profile.c (GCOV_INDEX_TO_BB): Remove. + * sched-rgn.c (ABS_VALUE, MIN_DIFF_PRIORITY, MIN_PROB_DIFF): Remove. + * simplify-rtx.c (FIXED_BASE_PLUS_P): Remove. + +2002-07-21 Neil Booth + + * c-lex.c (GET_ENVIRONMENT): Remove. + * collect2.c (GET_ENV_PATH_LIST): Remove. + (prefix_from_env): Use GET_ENVIRONMENT. + * cppinit.c (GET_ENV_PATH_LIST): Remove. + (init_standard_includes): Use GET_ENVIRONMENT. + * defaults.h (GET_ENVIRONMENT): Define here if not already. + * gcc.c (GET_ENV_PATH_LIST): Remove. + (make_relative_prefix, process_command): Update. + * protoize.c (GET_ENV_PATH_LIST): Remove. + (do_processing): Update. + +2002-07-21 Gabriel Dos Reis + + * c-decl.c (build_array_declarator): Say 'ISO C90', not 'ISO C89'. + (grokdeclarator): Likewise. + * c-format.c (C_STD_NAME): Likewise. + * c-lex.c (interpret_integer): Likewise. + * c-typeck.c (build_array_ref): Likewise. + * cpplex.c (_cpp_lex_direct): Likewise. + * toplev.c (documented_lang_options): Likewise. + +2002-07-21 Neil Booth + + * c-format.c (T99_I, T99_UI): Remove. + +2002-07-21 Neil Booth + + * c-typeck.c (SAVE_SPELLING_DEPTH): Remove. + +Sun Jul 21 21:36:41 CEST 2002 Jan Hubicka + + * gcse.c (do_local_cprop): Do not extend lifetimes of registers set by + do_local_cprop. + +2002-07-21 Andreas Jaeger + + * reload1.c (fixup_abnormal_edges): Remove unused variable. + +2002-07-21 Bernd Schmidt + + Improvements for the ifcvt pass from Michael Meissner, with patches + by Richard Sandiford + * basic-block.h (struct ce_if_block, ce_if_block_t): New types. + * ifcvt.c (cond_exec_changed_p): New static variable. + (last_active_insn): New function, renamed from last_active_insn_p + and changed to return the last active insn in a basic block. All + callers updated. + (block_fallthru): New function. + (cond_exec_process_insns): New argument CE_INFO. Pass it to + IFCVT_MODIFY_INSN. All callers updated. + Return false if START or END are NULL. + Handle case where we're processing an insn that is already + conditional. + + (noce_process_if_block): CE_INFO argument rather than + multiple args containing the involved basic blocks. All callers + changed. + (process_if_block, merge_if_block, find_if_block, + cond_exec_process_if_block): Likewise. + + (cond_exec_process_if_block): New arg DO_MULTIPLE_P. All callers + changed. + Use new function last_active_insn to simplify some code. + New code to handle multiple tests. + Call IFCVT_MODIFY_CANCEL in all failure cases, otherwise set + cond_exec_changed_p to TRUE. + + (process_if_block): New code to handle multiple tests. + (merge_if_block): Likewise. + (find_if_header): New arg PASS. Changed to return the currently + processed basic block or NULL instead of true/false. All callers + changed. + Call IFCVT_INIT_EXTRA_FIELDS. + (block_jumps_and_fallthru_p): New function. + (find_if_block): Discover opportunities to convert multiple tests. + Add additional debugging output. + Update the ce_info structure before returning. + + (if_convert): Run multiple passes of if-conversion. + * doc/tm.texi (IFCVT_MODIFY_TESTS, IFCVT_MODIFY_INSN, + IFCVT_MODIFY_FINAL, IFCVT_MODIFY_CANCEL, IFCVT_MODIFY_MULTIPLE_TESTS, + IFCVT_INIT_EXTRA_FIELDS, IFCVT_EXTRA_FIELDS): Update documentation for + these macros. + +Sun Jul 21 00:54:54 CEST 2002 Jan Hubicka + + * gcse.c: Include cselib.h + (constptop_register): Break out from ... + (cprop_insn): ... here; kill basic_block argument. + (do_local_cprop, local_cprop_pass): New functions. + (one_cprop_pass): Call local_cprop_pass. + +2002-07-20 Roger Sayle + + * simplify-rtx.c (simplify_relational_operation): Optimize + abs(x) < 0.0 (and abs(x) >= 0.0 when using -ffast-math). + +2002-07-20 Michae Matz + + * ra-build.c: (remember_web_was_spilled): Use GENERAL_REGS. + +2002-07-20 Neil Booth + + * cppexp.c (struct op): Add token pointer. + (check_promotion, CHECK_PROMOTION): New. + (optab): Update. + (_cpp_parse_expr): Update, use token pointer of struct op. + (reduce): Warn about change of sign owing to promotion. + * cppinit.c (cpp_handle_option): New warning if -Wall. + * cpplib.h (struct cpp_options): New member. + +2002-07-19 David Edelsohn + + * config/rs6000/rs6000.md: Remove ppc630 fpcompare from single + fpu list. Separate Power4 compare and delayed_compare. Correct + Power4 fpcompare. + (fix_truncdfsi2_internal): Restore FPR preference. + * config/rs6000/t-aix43 (MULTILIB_MATCHES): Add mcpu?power3, + mcpu?power4, mcpu?604e. Remove mpower, mpower2, mpowerpc. + +2002-07-19 Momchil Velikov + + * reload1.c (reload_as_needed): Duplicate oldpat. + +2002-07-20 Alan Modra + + PR optimization/7130 + * loop.h (struct loop_info): Add "preconditioned". + * unroll.c (unroll_loop): Set it. + * doloop.c (doloop_modify_runtime): Correct count for unrolled loops. + +2002-07-19 Zack Weinberg + + * rtl.def (CODE_LABEL): Remove slot 8. + * rtl.h (struct rtx_def): Document new uses of jump and call fields. + (LABEL_ALTERNATE_NAME): Delete. + (LABEL_KIND, SET_LABEL_KIND, LABEL_ALT_ENTRY_P): New. + * defaults.h: Remove default for ASM_OUTPUT_ALTERNATE_LABEL_NAME. + + * final.c (output_alternate_entry_point): New. + (final_scan_insn): Use it instead of + ASM_OUTPUT_ALTERNATE_LABEL_NAME. Do not consider possibility + of a case label being an alternate entry point. + + * cfgbuild.c (make_edges, find_bb_boundaries): Use LABEL_ALT_ENTRY_P. + * emit-rtl.c (gen_label_rtx): Adjust call to gen_rtx_CODE_LABEL. + Do not clear LABEL_NUSES (unnecessary) or LABEL_ALTERNATE_NAME + (field deleted). + * print-rtl.c, ra-debug.c: Update code to output CODE_LABELs. + + * doc/rtl.texi: Document LABEL_KIND, SET_LABEL_KIND, and + LABEL_ALT_ENTRY_P; not LABEL_ALTERNATE_NAME. + * doc/tm.texi: Delete documentation of + ASM_OUTPUT_ALTERNATE_LABEL_NAME. + +2002-07-19 Rainer Orth + + * config/mips/iris5gas.h (DWARF2_DEBUGGING_INFO): Define. + (PREFERRED_DEBUGGING_TYPE): Use DWARF2_DEBUG. + (LINK_SPEC): Define. + (STARTFILE_SPEC): Define. + (ENDFILE_SPEC): Define. + + * config/mips/iris6-o32.h (LINK_SPEC): Move ... + * config/mips/iris6-o32-as.h (LINK_SPEC): ... here. + + * config/mips/iris6-o32-gas.h: New file. + * config.gcc (mips-sgi-irix6*o32): Use it. + + * config/mips/t-iris5-gas: New file. + * config.gcc (mips-sgi-irix6*o32, mips-sgi-irix5*): Use it. + +2002-07-19 Neil Booth + + * cppexp.c (ALWAYS_EVAL): Remove. + (optab, reduce): Always evaluate. + (num_unary_op, num_binary_op, num_div_op): Issue diagnostics + only if not skipping evaluation. + +2002-07-19 Marek Michalkiewicz + + * config/avr/avr.c (debug_hard_reg_set): Remove. + +2002-07-19 Chris Demetriou + + * gcc.c (cpp_options): Include "%1" (cc1_spec). + +2002-07-19 Richard Henderson + + * loop.c (loop_givs_rescan): Delete the REG_EQUAL note, not the insn. + +2002-07-19 Alan Modra + + * prefix.c (update_path): Don't zap single `.' path components + unless followed by another `.' and fix typo last patch. + +2002-07-18 Neil Booth + + * cppexp.c (cpp_num_mul): Remove unused parameter. + (UNARY, BINARY, OTHER, binary_handler): Remove. + (ALWAYS_EVAL): New. + (optab): Update. + (reduce): Refactor to a large switch, don't use a function + pointer. + +2002-07-18 Bo Thorsen + + * config/i386/linux64.h (STARTFILE_PREFIX_SPEC): Define this always. + +Thu Jul 18 19:39:18 2002 J"orn Rennecke + + * sh-protos.h (sh_expand_unop_v2sf): Move inside #ifdef RTX_CODE guard. + (sh_expand_binop_v2sf): Likewise. + * sh.c (machine_dependent_reorg): Add move for UNSPEC_MOVA. + (int_gpr_dest, trunc_hi_operand): New functions. + * sh.h (PREDICATE_CODES): Add any_register_operand, int_gpr_dest and + trunc_hi_operand. + (SPECIAL_MODE_PREDICATES, any_register_operand): Define. + * sh.md (cmpeqdi_t+1): Remove comments that genrecog warns about. + (adddi3_compact+1, subdi3_compact+1, ashlsi3_n+1, ashlhi3+1): Likewise. + (ashrsi2_16+1, ashrsi2_31+1, lshrsi3_n+1, ashrdi3+[12]): Likewise. + (and_shl_scratch+[12], zero_extendhidi2+1): Likewise. + (zero_extendhisi2_media+1, extendhidi2+1, extendqidi2+1): Likewise. + (extendhisi2_media+1, extendqisi2_media+1): Likewise. + (movsi_media_nofpu+[12], movhi_media+1, movdi_media_nofpu+1): Likewise. + (movdi_const_16bit+[12], movdf_i4+[123], reload_outdf+[2-5]): Likewise. + (movsf_ie+1): Likewise. + (loaddi_trunc): Use int_gpr_dest predicate. + (use_sfunc_addr, indirect_jump_scratch, sibcall_compact): Add mode(s). + (mova, mova_const, GOTaddr2picreg, ptrel, casesi_worker_0): Likewise. + (casesi_worker_0+[12], casesi_worker): Likewise. + (shcompact_preserve_incoming_args): Likewise. + (mov_nop): Use any_register_operand predicate. + (mperm_w0): Use trunc_hi_operand predicate. + +2002-07-18 John David Anglin + + * pa-linux.h (DWARF2_UNWIND_INFO): Delete define. + * pa.h (EH_RETURN_DATA_REGNO): Revise TARGET_64BIT and correct + numbering. + +2002-07-18 John David Anglin + + * pa.c (output_deferred_plabels): Remove unused millicode enum mulU. + +2002-07-18 Richard Henderson + + PR optimization/7147 + * ifcvt.c (noce_get_condition): Make certain that the condition + is valid at JUMP. + +Thu Jul 18 13:44:51 2002 J"orn Rennecke + + * sh.c (barrier_align, push): Shut up compiler warnings. + (initial_elimination_offset,sh_media_init_builtins): Likewise. + (reg_no_subreg_operand): Delete. + +2002-07-17 Bo Thorsen + + * config/i386/linux64.h (LINK_SPEC): Remove bogus -Y option. + (STARTFILE_PREFIX_SPEC): Define for NATIVE_CROSS compilations. + (STARTFILE_SPEC): Remove hardcoded library paths. + (ENDFILE_SPEC): Likewise. + +Thu Jul 18 09:38:59 CEST 2002 Jan Hubicka + + * gcse.c (hoist_expr_reaches_here_p): Stop once expr_bb is reached. + + * gcse.c (try_replace_reg): Do not return false positives. + +2002-07-18 Alan Modra + + * prefix.c: (update_path): Strip ".." components when prior dir + doesn't exist. Pass correct var to UPDATE_PATH_HOST_CANONICALIZE. + + * config/rs6000/sysv4.h (ASM_OUTPUT_REG_PUSH): Remove 64-bit support. + (ASM_OUTPUT_REG_POP): Likewise. + +2002-07-18 Alan Modra + + * config/rs6000/rs6000.c (first_reg_to_save): Remove bogus + adjustments to first_reg for profiling case. + (output_function_profiler): Correct lr save slot for ABI_AIX_NODESC. + Disable profiling for 64 bit code on both ABI_V4 and ABI_AIX_NODESC. + Save static chain reg to sp + 12 on ABI_AIX_NODESC. + * config/rs6000/sysv4.h (ASM_OUTPUT_REG_PUSH): Define. + (ASM_OUTPUT_REG_POP): Define. + * config/rs6000/linux64.h (ASM_OUTPUT_REG_PUSH): Undef. + (ASM_OUTPUT_REG_POP): Undef. + +2002-07-17 Neil Booth + + * cpplib.c (do_sccs): Handle #sccs on all systems. + * system.h (SCCS_DIRECTIVE): Poison. + * config/darwin.h, config/freebsd.h, config/netbsd.h, + config/ptx4.h, config/svr3.h, config/svr4.h, config/alpha/elf.h, + config/arm/linux-elf.h, config/c4x/c4x.h, config/d30v/d30v.h, + config/i370/i370.h, config/i386/gas.h, config/i386/sco5.h, + config/i960/i960.h, config/m68hc11/m68hc11.h, config/m68k/3b1.h, + config/m68k/3b1g.h, config/m68k/crds.h, config/m68k/mot3300.h, + config/m68k/pbb.h, config/m88k/m88k.h, config/mips/mips.h, + config/sparc/pbd.h, config/stormy16/stormy16.h, config/vax/vaxv.h: + Remove all references to SCCS_DIRECTIVE. + * doc/cpp.texi, doc/tm.texi: Update. + +Wed Jul 17 19:23:32 2002 J"orn Rennecke + + * regrename.c (maybe_mode_change): New function. + (find_oldest_value_reg, copyprop_hardreg_forward_1): Use it. + +2002-07-17 Rodney Brown + + * config/i386/i386.c (ix86_expand_int_movcc): In the general case + suppress addition when either ct or cf are zero. + +2002-07-17 Eric Botcazou + Glen Nakamura + + PR optimization/6713 + * loop.c (loop_givs_rescan): Explicitly delete the insn that + sets a non-replaceable giv after issuing the new one. + +2002-07-17 Neil Booth + + * cppexp.c (cpp_interpret_integer, append_digit, parse_defined, + eval_token): Clarify and correct use of "bool" variables. + * cpplib.h (struct cpp_options): Similarly. + * cppmacro.c (parse_params, _cpp_save_parameter): Ditto. + * cpptrad.c (recursive_macro): Similarly. + +Wed Jul 17 17:08:06 2002 J"orn Rennecke + + * config/sh/lib1funcs.asm (udivsi3_i4): Implement SHcompact version in + SHmedia code. + + * sh.md (cmpgtudi_media): Remove spurious @. + + * config/sh/lib1funcs.asm (FMOVD_WORKS): Don't define for little endian. + * sh.h (OVERRIDE_OPTIONS): Don't set FMOVD_BIT for little endian. + + * config/sh/lib1funcs.asm (init_trampoline): New entry point. + * sh-protos.h (sh_initialize_trampoline): Declare. + * sh.c (sh_initialize_trampoline): New function. + * sh.h (TRAMPOLINE_SIZE): Only 24 for TARGET_SHMEDIA32. + (TRAMPOLINE_ALIGNMENT): Need cache-line alignment for TARGET_SHMEDIA. + (INITIALIZE_TRAMPOLINE): Call sh_initialize_trampoline. + (TRAMPOLINE_ADJUST_ADDRESS): Not needed for SHcompact. + * sh.md (initialize_trampoline, double_shori): New patterns. + (initialize_trampoline_compact): Likewise. + (shmedia32_initialize_trampoline_big): Remove. + (shmedia32_initialize_trampoline_little): Likewise. + + * sh-protos.h (binary_float_operator): Remove declaration. + (sh_expand_unop_v2sf, sh_expand_binop_v2sf): Declare. + * sh.c (print_operand, case 'N'): Check against CONST0_RTX. + (unary_float_operator, sh_expand_unop_v2sf): New functions. + (sh_expand_binop_v2sf): Likewise. + (zero_vec_operand): Delete. + (SH_BLTIN_UDI): New builtin shared signature define. Renumbered + all non-shared ones. + (bdesc): Change all the mextr builtins to use SH_BLTIN_UDI. + Enable nsb and byterev. + * sh.h (CONDITIONAL_REGISTER_USAGE): Initialize DF_HI_REGS. + (HARD_REGNO_MODE_OK): Allow TImode in fp regs. Allow V2SFmode + in general regs. + (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Add DF_HI_REGS. + (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise. Remove clause for + immediate operands. + (SECONDARY_INPUT_RELOAD_CLASS): Add clause for immediate operands. + Add DF_HI_REGS. + (CLASS_CANNOT_CHANGE_MODE, CLASS_CANNOT_CHANGE_MODE_P): Allow + lowpart fp regs - only for big endian for now. + (LEGITIMATE_CONSTANT_P): Don't allow nonzero float vectors + when FPU is in use. + (EXTRA_CONTRAINT_U): Check against CONST0_RTX. + (LOAD_EXTEND_OP): NIL for SImode. + (REGISTER_MOVE_COST): Add DF_HI_REGS. Const for moves between + general and fp registers is 4. + PREDICATE_CODES: Amend binary_float_operator entry. + Remove zero_vec_operand. Add unary_float_operator. + * sh.md (udivsi3_i4_media): Use truncate instead of paradoxical + subreg SET_DEST. + (truncdisi2, truncdihi2, movv2sf): Allow memory destinations. + (truncdiqi2): Do sign extension. + (movsi_media, movdi_media): Allow to use r63 to an fp register. + (movdf_media, movsf_media): Likewise. + (movv2sf_i, movv2sf_i+1): Don't use f{ld,st}.p or SUBREGS. + Collapse to one define_insn_and_split. Allow immediate sources. + (addv2sf3, subv2sf3, mulv2sf3, divv2sf3): New patterns. + (movv4sf_i): Allow immediate sources. Use simplify_gen_subreg. + (movv4sf): Allow immediate sources. + (movsf_media_nofpu+1): Don't split moves to FP registers. + (unary_sf_op, binary_sf_op, mshflo_w_x, concat_v2sf): New patterns. + (movv8qi_i+3): Check against CONST0_RTX. + (mextr1, mextr2. mextr3. mextr4, mextr5, mextr6, mextr7): Use DImode + for input and output operands. Fix argument 3 to gen_mextr_rl. + (mmul23_wl, mmul01_wl, mmulsum_wq_i): s/const_vector/parallel/ + (msad_ubq_i, mshf4_b, mshf0_b, mshf4_l, mshf0_l, mshf4_w): Likewise. + (mshf0_w, fipr, ftrv): Likewise. + (mshfhi_l_di): Now insn_and_split. Can handle FP regs. + +2002-07-17 Jeroen Dobbelaere + + * arm.h (ARM_NUM_INTS, ARM_NUM_REGS, ARM_NUM_REGS2): Renamed from + NUM_INTS, NUM_REGS and ARM_NUM_REGS2 respectively. All uses changed. + * arm.c: Similarly. + +2002-07-17 Richard Sandiford + + * config/mips/mips-protos.h (mips_sign_extend): Declare. + * config/mips/mips.h (MASK_DEBUG_H, TARGET_DEBUG_H_MODE): Remove. + (TARGET_SWITCHES): Remove debugh. + (ISA_HAS_TRUNC_W): New macro. + (CLASS_CANNOT_CHANGE_MODE): Include FP_REGS if TARGET_FLOAT64. + (PREDICATE_CODES): Remove se_nonimmediate_operand. + * config/mips/mips.c (movdi_operand): Allow sign-extensions of + any SImode move_operand. + (se_nonimmediate_operand): Remove. + (mips_sign_extend): New. + (mips_move_2words): Use it for sign-extended source operands. + (override_options): Allow integers to be put into single FPRs. + (mips_secondary_reload_class): Handle integers in float registers. + * config/mips/mips.md (extendsidi2): Turn into a define_expand. + (fix_truncsfsi2, fix_truncdfsi2): Likewise. + (fix_truncdfsi2_insn, fix_truncdfsi2_macro): New. + (fix_truncsfsi2_insn, fix_truncsfsi2_macro): New. + (fix_truncdfdi2): Provide only a single alternative, in which the + integer is in a float register. Depend on TARGET_FLOAT64 rather + than TARGET_64BIT. + (fix_truncsfdi2, floatdidf2, floatdisf2): Likewise. + (floatsidf2, floatsisf2): Likewise, but no TARGET_FLOAT64 dependency. + (movdi_internal2): Don't allow the source operand to be sign-extended. + Add alternatives for float registers. + (*movdi_internal2_extend): New. Version of movdi_internal2 that + allows sign-extension. + (*movdi_internal2_mips16): Name the existing mips16 movdi pattern. + (movsi_internal2): Rename to movsi_internal. Add alternatives for + float registers. Remove TARGET_DEBUG_H_MODE test. + (movhi_internal1): Rename to movhi_internal. Don't check + TARGET_DEBUG_H_MODE. Fix transposed *d and *f source constraints. + (movqi_internal1): Rename to movqi_internal and remove + TARGET_DEBUG_H_MODE dependency. + (movsi_internal1, movhi_internal2, movqi_internal2): Remove. + +2002-07-16 Jim Wilson + + * toplev.c (lang_dependent_init): Create function context for + init_expr_once. + +2002-07-16 Hans-Peter Nilsson + + * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Don't + --gc-sections if -r. + * config/cris/cris.h: Ditto. + +2002-07-16 Rodney Brown + + * config/i386/i386.c (ix86_expand_int_movcc): In the case where + the comparison directly gives a mask suppress addition when cf is + zero by complementing the mask. + +2002-07-16 Nathanael Nerode + + * Makefile.in: Delete references to enquire. + * enquire.c: Move to contrib. + +2002-07-16 Stan Shebs + + * config/darwin.h (ASM_OUTPUT_LABEL): Move to here from + config/rs6000/darwin.h. + (ASM_OUTPUT_SKIP): Ditto. + (TEXT_SECTION_ASM_OP): Ditto. + (DATA_SECTION_ASM_OP): Ditto. + (ASM_APP_ON): Define. + (ASM_APP_OFF): Define. + * config/rs6000/darwin.h (ASM_OUTPUT_LABEL, ASM_OUTPUT_SKIP, + TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): Remove. + + * config/darwin.c (func_name_maybe_scoped): Remove unused decl. + (machopic_function_base_name): Declare result to be const. + (machopic_non_lazy_ptr_name): Ditto. + (machopic_stub_name): Ditto. + * config/darwin-protos.h: Ditto for the prototypes. + +Wed Jul 17 00:22:39 CEST 2002 Jan Hubicka + + * m68hc11.c (m68hc11_reorg): Do not rebuild CFG. + +Wed Jul 17 00:20:48 CEST 2002 Jan Hubicka + + * i386.md (prefetch): Fix for 64bit mode. + (prefetch_sse_rex, prefetch_3dnow_rex): New patterns. + +Wed Jul 17 00:19:20 CEST 2002 Jan Hubicka + + * i386.h (MACHINE_DEPENDENT_REORG): New macro. + * i386.c (x86_machine_dependent_reorg): New function. + * i386-protos.h (x86_machine_dependent_reorg): Declare. + +2002-07-16 Zack Weinberg + + * builtins.c (std_expand_builtin_va_start): Remove unused + first argument. + (expand_builtin_va_start): Call EXPAND_BUILTIN_VA_START and + std_expand_builtin_va_start with just two arguments. + * expr.h: Update prototypes. + + * alpha-protos.h, alpha.h, alpha.c, arc-protos.h, arc.h, + arc.c, d30v-protos.h, d30v.h, d30v.c, i386-protos.h, i386.h, + i386.c, i960-protos.h, i960.h, i960.c, m88k-protos.h, m88k.h, + m88k.c, mips-protos.h, mips.h, mips.c, mn10300-protos.h, + mn10300.h, mn10300.c, pa-protos.h, pa.h, pa.c, + rs6000-protos.h, rs6000.h, rs6000.c, s390-protos.h, s390.h, + s390.c, sh-protos.h, sh.h, sh.c, sparc-protos.h, sparc.h, + sparc.c, stormy16-protos.h, stormy16.h, stormy16.c, + xtensa-protos.h, xtensa.h, xtensa.c: Remove unused first + argument from all implementations of EXPAND_BUILTIN_VA_START + and all uses of std_expand_builtin_va_start. + +Tue Jul 16 19:32:58 2002 J"orn Rennecke + + * regrename.c (copy_value): Don't record high part copies. + +2002-07-16 Steve Ellcey + + * gcc/config/pa/long_double.h (FIXUNS_TRUNCTFDI2_LIBCALL): New define. + (fixunstfdi_libfunc): Change to use FIXUNS_TRUNCTFDI2_LIBCALL. + * gcc/config/pa/quadlib.c (_U_Qfcnvfxt_quad_to_udbl): New function. + +2002-07-16 Ian Dall + + * doc/invoke.texi (NS32K Options): Document -mieee-compare option + + * config/ns32k/ns32k.md (addsi3, *frame_addr, *stack_addr): merge + into addsi3 using register class "x" and "y". + + * config/ns32k/ns32k.md (*madddf, *maddsf, *msubdf, *msubsf): + "earlyclobber" constraint modifier for some alternative. + + * config/ns32k/ns32k.md (tstdf, tstsf, cmpdf, cmpsf, blt, ble) + (*ble, *blt): Flag to indicate bCOND and sCOND should check for + unordered. + config/ns32k/ns32k.h (CC_UNORD): define corresponding mask. + + * config/ns32k/ns32k.h (TARGET_IEEE_COMPARE, MASK_IEEE_COMPARE) + (TARGET_SWITCHES): Add -mieee-compare option. + (OVERRIDE_OPTIONS): 32332 is a subset of + 32532. Don't use IEEE_COMPARE -funsafe-math-optimizations. + (TARGET_SWITCHES): Fix description of bitfield option. + * config/ns32k/netbsd.h (TARGET_DEFAULT): Add + -mieee-compare option. Remove 32332 flag. + +2002-07-16 Steve Ellcey + + * explow.c (convert_memory_address): Remove special handling + when POINTERS_EXTEND_UNSIGNED < 0. + * config/ia64.md (movsi_symbolic): New instruction for ILP32 mode. + (movedi_symbolic): Fix typo. + (load_fptr): Remove mode restriction so it works for SI and DI. + (load_fptr_internal1): Ditto. + (load_gprel): Ditto. + (load_symptr_internal1): Ditto. + (call_pic): Ditto. + * config/ia64.c (call_operand): Modify mode check. + (ia64_expand_load_address): Handle DI and SI addresses and symbols. + (ia64_expand_move): Ditto. + (ia64_assemble_integer): Handle SImode function pointers. + (ia64_expand_fetch_and_op): Handle SImode mem addresses. + (ia64_expand_op_and_fetch): Ditto. + (ia64_expand_compare_and_swap): Ditto. + (ia64_expand_lock_test_and_set): Ditto. + (ia64_expand_lock_release): Ditto. + +2002-07-16 Jeroen Dobbelaere + + * arm.c (emit_sfm): Don't set RTX_FRAME_RELATED_P on DWARF. + +2002-07-16 Jeroen Dobbelaere + Richard Earnshaw + + * arm.h (LEGITIMATE_PIC_OPERAND_P): Only test + CONSTANT_POOL_ADDRESS_P if a SYMBOL_REF. Simplify logic. + +2002-07-16 Richard Earnshaw + + * arm.md (stack_tie): New insn. Use an idiom that the alias code + understands to be a memory clobber. + * arm.c (arm_expand_prologue): Use it. + +2002-07-16 Daniel Berlin + + * ra-rewrite.c: #include reload.h, insn-config.h + * ra-build.c: #include reload.h + * Makefile.in: Update ra-rewrite.o, ra-build.o dependencies to + depend on reload.h, insn-config.h. + +Tue Jul 16 11:57:45 2002 J"orn Rennecke + + * expr.c (emit_move_insn_1): Handle arbitrary moves that are + the same size as a word. + + * regrename.c (find_oldest_value_reg): Take WORDS_BIG_ENDIAN / + BYTES_BIG_ENDIAN into account. + +Tue Jul 16 12:22:44 CEST 2002 Jan Hubicka + + * i386.md (prefetch): Fix for 64bit mode. + (prefetch_sse_rex, prefetch_3dnow_rex): New patterns. + + * i386.md (movss, movsd): Use xorps/xorpd for Athlon. + +2002-07-16 Marek Michalkiewicz + + * hard-reg-set.h (TEST_HARD_REG_BIT): Return 1 if the bit is set. + +2002-07-15 Zack Weinberg + + * ginclude/varargs.h: Replace with stub which issues #error. + * ginclude/stdarg.h: __builtin_stdarg_start is renamed + __builtin_va_start. + + * builtins.def (BUILT_IN_VARARGS_START): Delete. + (BUILT_IN_VA_START): New. + * builtins.c (expand_builtin_va_start): Eliminate first + argument and code to implement pre-ISO varargs. + (std_expand_builtin_va_start): Ignore first argument; it is + always 1. + (expand_builtin): Handle BUILT_IN_VA_START and + BUILT_IN_STDARG_START identically. Delete + BUILT_IN_VARARGS_START case. + + * function.c (assign_parms): Delete hide_last_arg and all + its uses. + (mark_varargs): Delete function. + * function.h (struct function): Delete 'varargs' bit. + (current_function_varargs): Delete macro. + * tree.h: Don't declare mark_varargs. + + * c-decl.c (c_function_varargs, c_mark_varargs): Delete. + (c_expand_body): Don't call mark_varargs. + * c-objc-common.c: Handle BUILT_IN_VA_START and + BUILT_IN_STDARG_START identically. Delete + BUILT_IN_VARARGS_START case. + * c-tree.h: Don't declare c_mark_varargs. + * c-parse.in: Remove grammar rules for '&...' (which has been + commented out since before 2.7.2) and for '...' in K+R + argument declarations. + + * builtins.c, function.c, integrate.c, sibcall.c, + config/alpha/unicosmk.h, config/arc/arc.c, config/arc/arc.h, + config/avr/avr.c, config/cris/cris.c, config/fr30/fr30.c, + config/i960/i960.c, config/i960/i960.md, config/m32r/m32r.c, + config/m32r/m32r.h, config/m88k/m88k.c, config/m88k/m88k.h, + config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h, + config/mn10300/mn10300.c, config/pa/som.h, config/s390/s390.c, + config/sh/sh.c, config/sh/sh.h, config/sparc/sparc.h, + config/stormy16/stormy16.c: Delete all references to + current_function_varargs, and code predicated on that flag. + + * config/alpha/alpha.c (alpha_va_start), + config/arc/arc.c (arc_va_start), + config/i386/i386.c (ix86_va_start), + config/mips/mips.c (mips_va_start), + config/mn10300/mn10300.c (mn10300_va_start), + config/rs6000/rs6000.c (rs6000_va_start), + config/s390/s390.c (s390_va_start), + config/sh/sh.c (sh_va_start), + Ignore first argument; it is always 1. + + * config/c4x/c4x-protos.h, config/c4x/c4x.c: Delete c4x_va_start. + * config/ia64/ia64-protos.h, config/ia64/ia64.c: Delete ia64_va_start. + * config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c: + Delete m68hc11_va_start. + * config/c4x/c4x.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h: + No need to define EXPAND_BUILTIN_VA_START. + + * doc/invoke.texi, doc/sourcebuild.texi, doc/tm.texi, + doc/trouble.texi: Remove references to GCC-provided . + +2002-07-15 Eric Botcazou + + PR optimization/7153 + * regmove.c (optimize_reg_copy_3): Don't optimize if the register + dies in more than one insn. + +2002-07-15 Jason Thorpe + + * config/sparc/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Remove. + +2002-07-15 Michael Matz , + Daniel Berlin , + Denis Chertykov + + Add a new register allocator. + + * ra.c: New file. + * ra.h: New file. + * ra-build.c: New file. + * ra-colorize.c: New file. + * ra-debug.c: New file. + * ra-rewrite.c: New file. + + * Makefile.in (ra.o, ra-build.o, ra-colorize.o, ra-debug.o, + (ra-rewrite.o): New .o files for libbackend.a. + (GTFILES): Add basic-block.h. + + * toplev.c (flag_new_regalloc): New. + (f_options): New option "new-ra". + (rest_of_compilation): Call initialize_uninitialized_subregs() + only for the old allocator. If flag_new_regalloc is set, call + new allocator, instead of local_alloc(), global_alloc() and + friends. + + * doc/invoke.texi: Document -fnew-ra. + * basic-block.h (FOR_ALL_BB): New. + * config/rs6000/rs6000.c (print_operand): Write small constants + as @l+80. + + * df.c (read_modify_subreg_p): Narrow down cases for a rmw subreg. + (df_reg_table_realloc): Make size at least as large as max_reg_num(). + (df_insn_table_realloc): Size argument now is absolute, not relative. + Changed all callers. + + * gengtype.c (main): Add the pseudo-type "HARD_REG_SET". + * regclass.c (reg_scan_mark_refs): Ignore NULL rtx's. + + 2002-06-20 Michael Matz + + * df.h (struct ref.id): Make unsigned. + * df.c (df_bb_reg_def_chain_create): Remove unsigned cast. + + 2002-06-13 Michael Matz + + * df.h (DF_REF_MODE_CHANGE): New flag. + * df.c (df_def_record_1, df_uses_record): Set this flag for refs + involving subregs with invalid mode changes, when + CLASS_CANNOT_CHANGE_MODE is defined. + + 2002-05-07 Michael Matz + + * reload1.c (fixup_abnormal_edges): Don't insert on NULL edge. + + 2002-05-03 Michael Matz + + * sbitmap.c (sbitmap_difference): Accept sbitmaps of different size. + + Sat Feb 2 18:58:07 2002 Denis Chertykov + + * regclass.c (regclass): Work with all regs which have sets or + refs. + (reg_scan_mark_refs): Count regs inside (clobber ...). + + 2002-01-04 Michael Matz + + * df.c (df_ref_record): Correctly calculate SUBREGs of hardregs. + (df_bb_reg_def_chain_create, df_bb_reg_use_chain_create): Only + add new refs. + (df_bb_refs_update): Don't clear insns_modified here, ... + (df_analyse): ... but here. + + * sbitmap.c (dump_sbitmap_file): New. + (debug_sbitmap): Use it. + + * sbitmap.h (dump_sbitmap_file): Add prototype. + + 2001-08-07 Daniel Berlin + + * df.c (df_insn_modify): Grow the UID table if necessary, rather + than assume all emits go through df_insns_modify. + + 2001-07-26 Daniel Berlin + + * regclass.c (reg_scan_mark_refs): When we increase REG_N_SETS, + increase REG_N_REFS (like flow does), so that regclass doesn't + think a reg is useless, and thus, not calculate a class, when it + really should have. + + 2001-01-28 Daniel Berlin + + * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP_REV): New macro, needed for + dataflow analysis. + +2002-07-15 Jakub Jelinek + + PR middle-end/7245 + * config/i386/i386.c (const_int_1_31_operand): New. + * config/i386/i386.h (PREDICATE_CODES): Add it. + * config/i386/i386.md (ashlsi3_cmp, ashlsi3_cmp_zext, ashlhi3_cmp, + ashlqi3_cmp, ashrsi3_cmp, ashrsi3_cmp_zext, ashrhi3_cmp, ashrqi3_cmp, + lshrsi3_cmp, lshrsi3_cmp_zext, lshrhi3_cmp, lshrqi3_cmp): Use it. + +2002-07-14 Alan Modra + + PR target/7282 + * config/rs6000/rs6000.md (floatsidf2): Enable for POWERPC64. + (floatunssidf2): Likewise. + (floatsidf_ppc64): New insn_and_split. + (floatunssidf_ppc64): Likewise. + +2002-07-14 Andreas Jaeger + + * config.gcc (sh64): Remove unused + target_requires_64bit_host_wide_int. + +2002-07-12 Roger Sayle + + * expr.c [CLEAR_RATIO]: New macro defining the maximum number + of move instructions to use when clearing memory, c.f. MOVE_RATIO. + [CLEAR_BY_PIECES]: New macro, using CLEAR_RATIO, to determine + whether clear_by_pieces should be used to clear storage. + (clear_storage): Use CLEAR_BY_PIECES instead of MOVE_BY_PIECES. + + * doc/tm.texi: Document these two new target macros. + +2002-07-12 Stephane Carrez + + * config/m68hc11/m68hc11.md ("zero_extendsidi2"): Use D_REG only for + the scratch register. + ("*movhi2_push"): Accept Z_REG because a split pattern can make use + of it, forbid reload to use it. + +2002-07-12 Marek Michalkiewicz + + * config/avr/avr.c (test_hard_reg_class): Fix TEST_HARD_REG_BIT + usage on 64-bit hosts, return value was truncated to 32 bits. + +Fri Jul 12 00:49:36 2002 J"orn Rennecke + + * simplify-rtx.c (simplify_subreg): Handle floating point + CONST_DOUBLEs. When an integer subreg of a smaller mode than + the element mode is requested, compute a subreg with an + integer mode of the same size as the element mode first. + +Thu Jul 11 22:02:57 2002 J"orn Rennecke + + * combine.c (try_combine): When converting a paradoxical subreg + to an extension, take LOAD_EXTEND_OP into account. + +2002-07-11 Rainer Orth + + * config.gcc (mips-sgi-irix6*o32): New configuration. + + * configure.in (libgcc_visibility): Disable for mips-sgi-irix6*o32 + configurations. + * configure: Regenerate. + + * config/mips/iris6-o32-as.h: New file. + * config/mips/iris6-o32.h: New file. + + * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Define. + (NM_FLAGS): Define. + (HAVE_AS_SHF_MERGE): Undefine. + + * config/mips/t-iris5-as: New file. + * config.gcc (mips-sgi-irix6*o32, mips-sgi-irix5*): Use it. + + * config/mips/t-iris6 (SHLIB_EXT, SHLIB_SOLINK, SHLIB_SONAME, + SHLIB_NAME, SHLIB_MAP, SHLIB_OBJS, SHLIB_SLIBDIR_QUAL, SHLIB_LINK, + SHLIB_INSTALL, SHLIB_MKMAP, SHLIB_MAPFILES, FPBIT, DPBIT, + dp-bit.c, fp-bit.c): Move ... + * config/mips/t-iris5-6: ... here. + New file, shared by IRIX 5 and IRIX 6. + * config.gcc (mips-sgi-irix6*o32, mips-sgi-irix6*, + mips-sgi-irix5*): Use it. + + * config/mips/iris6.h: Remove duplicate comment. + + * config/mips/mips.c (TARGET_ASM_UNALIGNED_DI_OP) [TARGET_IRIX5 && + !TARGET_IRIX6]: Define. + (mips_asm_file_start): Don't emit mdebug. sections on IRIX 5/6. + + * config/mips/mips.h (ASM_DECLARE_FUNCTION_NAME): Fix comment. + +2002-07-11 John David Anglin + + * pa.md (adddi3): Change predicate of operand 2 to adddi3_operand + and delete code to force constant to register. + * pa-protos.h (adddi3_operand): Add prototype. + * pa.c (adddi3_operand): New function. + +2002-07-11 Roger Sayle + + * c-decl.c (duplicate_decls): Preserve the noreturn attribute on + non-ANSI builtin functions. + +Thu Jul 11 11:31:12 2002 J"orn Rennecke + + * rtl.h (gen_rtx_CONST_VECTOR): Declare. + * gengenrtl.c (special_rtx): Check for CONST_VECTOR. + * emit-rtl.c (gen_rtx_CONST_VECTOR): New function. + (gen_const_vector_0): Use it. + +2002-07-11 John David Anglin + + * pa.md (adddi3): For 32-bit targets, force constants to a register + if they don't fit in an 11-bit immediate. Change insn predicate to + arith11_operand. Remove comment. + * pa.c (cint_ok_for_move): Fix comment. + (emit_move_sequence): Don't directly split DImode constants on 32-bit + targets. + +2002-07-11 Tim Josling + + Remove front end hard coding from gengtype.c. + + * Makefile.in + (STAGESTUFF): add gtyp-gen.h + (GTFILES): Remove front end specific files. + (GTFILES_FILES_LANGS): New, from configure.. + (GTFILES_FILES_FILES): Likewise. + (GTFILES_LANG_DIR_NAMES): Likewise. + (GTFILES_SRCDIR): Likewise. + (gtyp-gen.h): Build from configure information. + (s-gtype): Remove command line parameters from gengtype. + (gengtype.o): Remove dependency on GTFILES. Depend on gtyp-gen.h. + (mostlyclean): Delete files generated by and for gengtype. + + * c-config-lang.in: New file. + + * configure.in (all_gtfiles_files_langs): New. Accumulate files + for each language. + (all_gtfiles_files_files): New. Accumulate language for each file + accumulated. + (gtfiles): Pick up value for C. + (srcdir): AC-SUBST this variable. + (all_gtfiles_files_langs): AC-SUBST this variable. + (all_gtfiles_files_files): AC-SUBST this variable. + + * configure: Regenerate. + + * gengtype-lex.l (parse_file): Make parameter const. + + * gengtype.c (toplevel): include gtyp-gen.h. + (BASE_FILE_ unnamed enum): Delete. + (lang_names): Delete (replaced by gtyp-gen.h) + (lang_dir_names): From gtyp-gen.h, replaces lang_names; changed + all references. + (NUM_GT_FILES): New. + (NUM_LANG_FILES): New. + (srcdir_len): New. + (NUM_BASE_FILES): Change calculation. + (open_base_files): Change prototype to avoid warning. + (startswith): Delete. + (get_file_basename): Iterate through generated language list not + hard coded list. + (get_base_file_bitmap): Use generated list of files and languages. + (close_output_files): Add prototype to rmove warning. + (main): Iterate through list of generated files from gtyp-gen.h + rather than command line paramaters. Ignore duplicated file + names. + + * gengtype.h (parse_file): Amend prototype for const parameter. + + * doc/sourcebuild.texi: Document gtfiles variable. + + * doc/gty.texi: Document changes to gtfiles variable for front + ends. + + * objc/config-lang.in (gtfiles): Add files needed for objc front + end. + +2002-07-10 Roger Sayle + + PR c/2454 + * combine.c (nonzero_bits): LOAD_EXTEND_OP should only apply + to SUBREGs of MEMs. (num_sign_bit_copies): Likewise. + +2002-07-10 Roger Sayle + Zack Weinberg + + * builtins.def: Make the argument types of abort and exit + independent of the front-end. + +2002-07-11 Alan Modra + + * config/rs6000/linux64.h (ASM_SPEC): Define. + +2002-07-10 Aldy Hernandez + + * config/rs6000/rs6000.c (emit_frame_save): New. + (rs6000_frame_related): Replace reg2 before reg. + (rs6000_emit_prologue): Use emit_frame_save for saving gprs, fprs, + and eh_return registers. + +2002-07-10 Toon Moene + + Revert all patches for optimization of Complex .op. Real. + * complex_part_zero_p: Remove + * expand_cmplxdiv_straight: Replace complex_part_zero_p(x) + with x. + * expand_cmplxdiv_wide: Ditto. + * expand_binop: Ditto. + +2002-07-10 Marek Michalkiewicz + + * config/avr/avr.md: Fix two 0x80000000 constants to make them + negative also on 64-bit hosts. + + Default to -fno-reorder-blocks when optimizing for size. + * config/avr/avr-protos.h (avr_optimization_options): Declare. + * config/avr/avr.c (avr_optimization_options): New function. + * config/avr/avr.h (OPTIMIZATION_OPTIONS): New. + + Optimize returning from simple functions. + * config/avr/avr-protos.h (avr_simple_epilogue): Declare. + * config/avr/avr.c (avr_simple_epilogue): New function. + * config/avr/avr.md (return): New insn. + +2002-07-10 Douglas B Rupp + + * config/i386/i386.c (ix86_svr3_asm_out_constructor): Add + HAS_INIT_SECTION to protection. + +2002-07-10 Mark Mitchell + + * doc/invoke.texi (Debugging Options): Mention that -gdwarf is + deprecated. + +Wed Jul 10 19:50:03 2002 J"orn Rennecke + + * combine.c (gen_lowpart_for_combine): Handle vector modes. + Supply non-VOID mode to simplify_gen_subreg. + +Wed Jul 10 18:48:55 CEST 2002 Jan Hubicka + + * i386.c (ix86_init_mmx_sse_builtins): Fix thinko. + +2002-07-10 Jeffrey A Law + + * mn10200.c (expand_prologue): Create REG_MAYBE_DEAD notes + as appropriate. + + * mn10200.c (expand_epilogue): Fix test to determine which scratch + register to use. + +Wed Jul 10 16:06:00 2002 J"orn Rennecke + + * cse.c (cse_insn): Supply proper SUBREG_BYTE to simplify_gen_subreg. + Get mode from dest. + If simplify_gen_subreg fails, try next equivalent. + +2002-07-09 Gabriel Dos Reis + + * diagnostic.h: #include location.h + (location_t): Move definition to.. + * location.h: ... here. New file. + * tree.h: #include location.h + (DECL_SOURCE_LOCATION): New macro. + (DECL_SOURCE_FILE): Use. + (DECL_SOURCE_LINE): Likewise. + (struct tree_decl): REplace filename and linenum with locus. + * Makefile.in (TREE_H): add location.h + (diagnostic.o): Depends on gt-location.h + (gt-location.h): Depends on s-gtype + +2002-07-09 Matt Kraai + + * config/rs6000/aix.h: Convert CPP_PREDEFINES to + TARGET_OS_CPP_BUILTINS. + * config/rs6000/aix31.h: Likewise. + * config/rs6000/aix41.h: Likewise. + * config/rs6000/aix43.h: Likewise. + * config/rs6000/aix51.h: Likewise. + * config/rs6000/beos.h: Likewise. + * config/rs6000/darwin.h: Likewise. + * config/rs6000/eabi.h: Likewise. + * config/rs6000/eabisim.h: Likewise. + * config/rs6000/linux.h: Likewise. + * config/rs6000/linux64.h: Likewise. + * config/rs6000/lynx.h: Likewise. + * config/rs6000/mach.h: Likewise. + * config/rs6000/rtems.h: Likewise. + * config/rs6000/sysv4.h: Likewise. + * config/rs6000/vxppc.h: Likewise. + +2002-07-09 Devang Patel + * objc/objc-act.c (adjust_type_for_id_default): Fix my previous patch. + Do not allow ObjC objects as a parameter type for Objective-C methods. + My previous patch restricted 'struct' also. + +2002-07-09 Neil Booth + + * cpperror.c (cpp_error): Default to directive_line within + directives here. + * cppexp.c (cpp_interpret_integer): Only use traditional + number semantics in directives. + * cpplib.c (prepare_directive_trad): Don't reset pfile->line. + (do_include_common): Similarly. + * cpptrad.c (scan_out_logical_line): Implement accurate + quoting of <> in #include. + * doc/cpp.texi: Update. + +Tue Jul 9 22:37:44 2002 Stephen Clarke + J"orn Rennecke + + * sh.c (sh_adjust_cost): Special handling of SHMEDIA code. + * sh.md (attribute issues): Replace with: + (attribute pipe_model). All users changed. + (attribute type): Change pt / ptabs to pt_media / ptabs_media. + All users changed. + (function units sh5issue, sh5fds): New. + (attribute is_mac_media): New. + (adddi3_media, subdi3_media, divsi3_i1_media, anddi3): Add type. + (andcdi3, iordi3, xordi3, ashldi3_media, lshrdi3_media): Likewise. + (ashrdi3_media, negdi_media, extendsidi2, movqi_media): Likewise. + (movhi_media, shori_media, movv2sf_i, jump_media): Likewise. + (call_media, call_value_media, sibcall_media): Likewise. + (casesi_jump_media, casesi_shift_media, casesi_load_media): Likewise. + (return_media_i, addsf3_media, subsf3_media, mulsf3_media): Likewise. + (mac_media, divsf3_media, floatdisf2, floatsisf2_media): Likewise. + (fix_truncsfdi2, fix_truncsfsi2_media, cmpeqsf_media): Likewise. + (cmpgtsf_media, cmpgesf_media, cmpunsf_media, negsf2_media): Likewise. + (sqrtsf2_media, abssf2_media, adddf3_media, subdf3_media): Likewise. + (muldf3_media, divdf3_media, floatdidf2, floatsidf2_media): Likewise. + (fix_truncdfdi2, fix_truncdfsi2_media, cmpeqdf_media): Likewise. + (cmpgtdf_media, cmpgedf_media,cmpundf_media, negdf2_media): Likewise. + (sqrtdf2_media, absdf2_media, extendsfdf2_media): Likewise. + (truncdfsf2_media): Likewise. + (movsi_media, movsi_media_nofpu, movdi_media): Use new types. + (movdi_media_nofpui, movdf_media, movdf_media_nofpu): Likewise. + +Tue Jul 9 21:39:50 2002 J"orn Rennecke + + * sh.h (PREDICATE_CODES): Add general_extend_operand and inqhi_operand. + * sh.c (general_extend_operand, inqhi_operand): New functions. + * sh.md (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media): Collapse + alternatives using 'N' modifier. Add type. + (adddi3z_media): Likewise. Enable generator function generation. + (movdicc_false, movdicc_true, addsi3_media, subsi3_media): Use more + exact predicates / constraints. Add type. + (subsi3): Allow 0 for SHMEDIA. + (udivsi3_i4_media): Use match_operand for input values + rather than hard registers. + (udivsi3 - TARGET_SHMEDIA_FPU case): Don't ferry values + unnecessarily through hard registers. Keep copies of pseudo + registers outside of the libcall sequence. + (mulsidi3_media, umulsidi3_media): Use more exact predicates. Add type. + (ashlsi3_media, ashrsi3_media, lshrsi3_media): Likewise. + (zero_extendsidi2, zero_extendhidi2, zero_extendqidi2): Likewise. + (extendhidi2, extendqidi2): Likewise. + (andsi3_compact): Name. + (andcdi3): Enable generator function generation. + (zero_extendhisi2, zero_extendqisi2): Rename to + (zero_extendhisi2_compact, zero_extendqisi2_compact). + (extendhisi2, extendqisi2): Rename to + (extendhisi2_compact, extendqisi2_compact). + (rotldi3, rotldi3_mextr, rotrdi3, rotrdi3_mextr): New patterns. + (loaddi_trunc, zero_extendhisi2, zero_extendhisi2_media): Likewise. + (zero_extendhisi2_media+1, zero_extendqisi2): Likewise. + (zero_extendqisi2_media, extendhisi2, extendhisi2_media): Likewise. + (extendhisi2_media, extendhisi2_media+1, extendqisi2): Likewise. + (extendqisi2_media, extendqisi2_media+1, truncdisi2): Likewise. + (truncdihi2, truncdiqi2, reload_inqi, reload_inhi): Likewise. + (shmedia32_initialize_trampoline_big): Likewise. + (shmedia32_initialize_trampoline_little): Likewise. + (nsb, nsbsi, nsbdi, ffsdi2, ffssi2, byterev): Likewise. + (negdi2): Remove spurious T clobber. + (zero_extendhidi2+1, extendhidi2+1, extendqidi2+1): Handle TRUNCATE. + (movsi_media, movsi_media_nofpu): Remove spurious *k after b. + (movdi_media, movdi_media_nofpu, pt, ptb): Likewise. + (movsi_media_nofpu+2, movhi_media+1): Only do split after reload. + (ic_invalidate_line_media): Write back data cache before invalidating + instruction cache. Add type. + (movsf_media): Sign-extend when the destination is a general + purpose register. Add type. + (bgt_media, bge_media, bgtu_media, bgeu_media, blt_media_i): Allow 0. + (casesi_worker_0+1): Only increment ref count for proper label. + (casesi_worker_0+2): Likewise. + +2002-07-09 Mark Mitchell + + * dwarfout.c (dwarfout_init): Warn that DWARF1 is deprecated. + +2002-07-09 Steve Ellcey + + * gcc/except.c (expand_eh_region_end_cleanup): Change exception pointer + from Pmode to ptr_mode. + (get_exception_pointer): Ditto. + (connect_post_landing_pads): Ditto. + (dw2_build_landing_pads): Ditto. + +2002-07-08 Steve Ellcey + * gcc/c-pragma.h (add_to_renaming_pragma_list): New function. + * gcc/c-pragma.c (add_to_renaming_pragma_list): New function. + (handle_pragma_redefine_extname): Change to use new function. + +2002-07-08 Roger Sayle + + * combine.c (combine_simplify_rtx): Add an explicit cast + to avoid signed/unsigned comparison warning. + (simplify_if_then_else): Likewise. + (extended_count): Likewise. + (simplify_shift_const): Likewise. + (simplify_comparison): Likewise. + +2002-07-08 Richard Sandiford + + * config/mips/mips.md: Add imadd type. Update scheduler description + to use imadd as well as imul. + (*mul_acc_si, *madsi): Change imul alternatives to imadd. + (*mul_acc_di, *mul_acc_64bit_di): Likewise. + (*mul_sub_si): Likewise for first alternative. Change second + alternative from imul to multi. + +2002-07-07 Neil Booth + + * c-common.c (c_common_post_options): Update prototype; + don't init backends if preprocessing only. + * langhooks-def.h (LANG_HOOKS_POST_OPTIONS): Update. + * langhooks.h (struct lang_hooks): Update post_options to + return a boolean. + * toplev.c (parse_options_and_default_flags, do_compile, + lang_independent_init): Update prototypes. Allow the + front end to specify that there is no need to initialize + the back end. + (general_init): Move call to hex_init here... + (toplev_main): ...from here. Pass flag for back end init + suppression. + +Sun Jul 7 20:38:38 2002 J"orn Rennecke + + * sh.h (PRINT_OPERAND_PUNCT_VALID_P): Allow '\''. + (PREDICATE_CODES): Add entries for equality_comparison_operator, + greater_comparison_operator and less_comparison_operator. + * sh.c (print_operand): Add '\'' code. Make 'o' handle + more operators. + (equality_comparison_operator): New function. + (greater_comparison_operator, less_comparison_operator): Likewise. + * sh.md (beq_media_i): Disable generator function generation. + Use match_operator to handle a whole class of comparisons. Add + modifier in output template to provide branch prediction. Add type. + (bgt_media_i, ble_media_i): Likewise. Allow zero operands. + (bne_media_i, bge_media_i, bgtu_media_i, bgeu_media_i): Delete. + (blt_media_i, bleu_media_i, bltu_media_i): Likewise. + (bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu): Allow zero operands. + +2002-07-07 Hans-Peter Nilsson + + Emit MMIX function prologue and epilogue as rtl. + * config/mmix/mmix.md ("call"): Use mmix_get_hard_reg_initial_val, + not unprototyped get_hard_reg_initial_val. + ("call_value", "nonlocal_goto_receiver"): Ditto. + ("return"): Make define_expand. Move real insn to... + ("*expanded_return"): New pattern. + ("prologue", "epilogue"): New define_expands. + * config/mmix/mmix.h (MMIX_rO_REGNUM): New macro. + (struct machine_function): New member in_prologue. + (FIRST_PSEUDO_REGISTER): Adjust for including rO as register. + (FIXED_REGISTERS, CALL_USED_REGISTERS): Ditto. + (MMIX_MMIXWARE_ABI_REG_ALLOC_ORDER): Ditto. + (MMIX_GNU_ABI_REG_ALLOC_ORDER, REG_CLASS_CONTENTS): Ditto. + (REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Ditto. + (LOCAL_REGNO): Define. Adjust comment. + * config/mmix/mmix.c (MMIX_CFUN_NEEDS_SAVED_EH_RETURN_ADDRESS): + Consider regs_ever_live[MMIX_rJ_REGNUM], not just + leaf_function_p. + (MMIX_OUTPUT_REGNO): Don't translate registers while outputting + the prologue. + (mmix_target_asm_function_prologue): Make static. Just mark that + the prologue is being emitted. Move guts to... + (mmix_expand_prologue): New function. Adjust for emitting + prologue as rtl. For sizes, use HOST_WIDE_INT only. + (mmix_target_asm_function_epilogue): Make static. Simply emit a + \n. Move guts to... + (mmix_expand_epilogue): New function. Adjust for emitting + epilogue as rtl. For sizes, use HOST_WIDE_INT only. + (mmix_target_asm_function_end_prologue): Mark that the prologue + has ended. + (TARGET_ASM_FUNCTION_END_PROLOGUE): Define. + (mmix_conditional_register_usage): Improve comments. + (mmix_local_regno): New function. + (mmix_emit_sp_add, mmix_get_hard_reg_initial_val): Ditto. + * config/mmix/mmix-protos.h (mmix_local_regno): Prototype. + (mmix_expand_prologue, mmix_expand_epilogue): Ditto. + (mmix_get_hard_reg_initial_val): Ditto. + +2002-07-06 Andreas Jaeger + + * toplev.c (set_fast_math_flags): Don't use ISO C style function + definitions. + * gengtype.c (open_base_files): Likewise. + (close_output_files): Likewise. + * tracer.c (find_best_predecessor): Likewise. + (find_best_successor): Likewise. + (ignore_bb_p): Likewise. + +2002-07-05 Roger Sayle + + PR c++/7099 + * builtin-attrs.def: Define new attribute lists for use in + builtins.def. + * builtins.def [DEF_BUILTIN]: Modify to take an additional + ATTRS argument, an enumerated value defined in builtin-attrs.def + that represents the attribute list for the builtins. Modify + all builtin functions to pass an appropriate attribute list. + Specify "abort", "exit", "_exit" and "_Exit" builtins here with + their required noreturn attributes. + * tree.h (enum_builtin_function): Ignore the additional parameter + to DEF_BUILTIN. + * builtins.c (built_in_names): Likewise. + * c-common.c: (builtin_function_2): Replace the "int noreturn_p" + argument with a tree representing the functions attribute list. + Pass this "attrs" argument to builtin_function. No longer handle + the noreturn_p processing manually. + (built_in_attributes): Move the definitions from builtin-attrs.def + before c_common_nodes_and_builtins. + (c_common_nodes_and_builtins): Handle the new ATTRS parameter in + DEF_BUILTIN, passing it to both builtin_function and the changed + builtin_function_2. + + * doc/extend.texi: Document __builtin_abort, __builtin_exit, + __builtin__exit and __builtin__Exit. + +2002-07-05 Stephane Carrez + + * config/m68hc11/m68hc11.md ("*movqi_68hc12"): Avoid allocating + QI mode registers in soft registers. + ("zero_extendqihi2"): Do not take into account soft registers + for register allocation (use '*' constraint). + +2002-07-05 Stephane Carrez + + * config/m68hc11/m68hc11.md ("*ashlsi3"): Avoid saving y if we know + it is dead. + ("*ashrsi3"): Likewise. + ("*lshrsi3"): Likewise. + +2002-07-05 Vladimir Makarov + + * genautomata.c (output_max_insn_queue_index_def): Take latencies + into account. + +2002-07-05 Stephane Carrez + + * config/m68hc11/m68hc11.md (peephole2): New peephole2 to optimize + address computation and memory moves. + +2002-07-03 Mark Mitchell + + PR c++/6706 + * dwarfout.c (output_reg_number): Fix warning message. + (output_bound_representation): Check SAVE_EXPR_RTL is not NULL + before using it. + +2002-07-05 Rainer Orth + + * gcc/gcc.c (asm_debug): Move initialization ... + (init_spec): ... here. + +2002-07-05 Nathan Sidwell + + * c-parse.in (extdef): Append ';'. + (old_style_parm_decls): Append ';'. + +2002-07-04 Daniel Jacobowitz + + * configure.in: Correct typos: gcc_cv_as_gdwarf2_debug_flag to + gcc_cv_as_gdwarf2_flag and gcc_cv_as_gstabs_debug_flag + to gcc_cv_as_gstabs_flag. + * configure: Rebuilt. + +2002-07-04 Geoffrey Keating + + * ggc.h (ggc_add_root): Document as obsolete. + +Thu Jul 4 07:58:01 2002 J"orn Rennecke + + * sh.md (mshfhi_b, mshflo_b, mshfhi_l, mshflo_l, mshfhi_w): Add DONE. + (mshflo_w): Likewise. + +Thu Jul 4 07:36:29 2002 J"orn Rennecke + + * simplify-rtx.c (simplify_subreg): Reduce problem of finding + vector mode subregs of constants to finding integer mode + subregs of constants. + * cse.c (cse_insn): Use simplify_gen_subreg. + * convert.c (convert_to_integer): Don't strip a NOP_EXPR + From a vector mode expression of different size than the + target mode. + +2002-07-03 Eric Christopher + + * config/mips/linux.h: Add #undef for SUBTARGET_CPP_SPEC. + * config/mips/mips.h: Remove deprecated -m options + and cc1_cpu_spec associated. + (CONSTANT_ADDRESS_P): Fix last patch. + (ASM_DECLARE_FUNCTION_NAME): Declare. Fix comment. + * config/mips/mips.md (bungt, bunge, sungt_df, sungt_sf, sunge_df, + sunge_sf): Remove. + +2002-07-03 Stan Shebs + + * config/darwin.h (APPLE_CC): Remove, not meaningful in FSF GCC. + (STRINGIFY_THIS, REALLY_STRINGIFY): Remove. + (CPP_SPEC): Remove insertion of APPLE_CC definition. + +2002-07-03 Roger Sayle + + * combine.c (struct_undo): Change types of recorded substitutions + to be either "int" or "rtx", instead of "unsigned int" and "rtx". + (do_SUBST_INT): Change types of the substitution from unsigned int + to int, to avoid compilation warning from SUBST_INT's only caller. + + (make_extraction): Add cast to avoid compilation warning. + (force_to_mode): Remove cast to avoid compilation warning. + +2002-07-03 Eric Botcazou + Jeff Law + + * i386.md (length_immediate attribute): Fix typo. + (length_address attribute): Likewise. + (modrm attribute): Set it to 0 for immediate call instructions. + (jcc_1 pattern): Set modrm attribute to 0. + (jcc_2 pattern ): Likewise. + (jump pattern): Likewise. + (doloop_end_internal pattern): Explicitly set length. + (leave pattern): Fix typo. + (leave_rex64 pattern): Likewise. + +2002-07-03 David Edelsohn + + * config/rs6000/rs6000.md (fix_truncdfsi2_internal): Ignore DImode + in FPR as preference. + (fctiwz): Same. + (floatdidf2, fix_truncdfdi2): Same. + (floatdisf2, floatditf2, fix_trunctfdi2): Same. + (floatditf2): Same. + (floatsitf2, fix_trunctfsi2): SImode in GPR. + (ctrdi): Remove FPR alternative and splitter. + +2002-07-03 Will Cohen + + * config/i386/i386.c (x86_integer_DFmode_moves): Disable for PPro. + +Wed Jul 3 10:24:16 2002 J"orn Rennecke + + * optabs.c (expand_vector_binop): Don't store using a SUBREG smaller + than UNITS_PER_WORD, unless this is little endian and the first unit + in this word. Let extract_bit_field decide how to load an element. + Force arguments to matching mode. + (expand_vector_unop): Likewise. + + * simplify-rtx.c (simplify_subreg): Don't assume that all vectors + consist of word_mode elements. + * c-typeck.c (build_binary_op): Allow vector types for BIT_AND_EXPR, + BIT_ANDTC_EXPR, BIT_IOR_EXPR and BIT_XOR_EXPR. + (build_unary_op): Allow vector types for BIT_NOT_EPR. + * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg for + CONST_VECTOR. + * optabs.c (expand_vector_binop): Try to perform operation in + smaller vector modes with same inner size. Add handling of AND, IOR + and XOR. Reject expansion to inner-mode sized scalars when using + OPTAB_DIRECT. Use simplify_gen_subreg on constants. + (expand_vector_unop): Try to perform operation in smaller vector + modes with same inner size. Add handling of one's complement. + When there is no vector negate operation, try a vector subtract + operation. Use simplify_gen_subreg on constants. + * simplify-rtx.c (simplify_subreg): Add capability to convert vector + constants into smaller vectors with same inner mode, and to + integer CONST_DOUBLEs. + +2002-07-02 Kaveh R. Ghazi + + * c-parse.in (parsing_iso_function_signature): New variable. + (extdef_1): New, copied from... + (extdef): ... here. Reset parsing_iso_function_signature. + (old_style_parm_decls): Reset parsing_iso_function_signature. + (old_style_parm_decls_1): New, copied from old_style_parm_decls. + Warn about ISO C style function definitions. + (nested_function, notype_nested_function): Reset + parsing_iso_function_signature. + (parmlist_2): Set parsing_iso_function_signature. + + * doc/invoke.texi (-Wtraditional): Document new behavior. + +2002-07-02 Chris Demetriou + + * config.gcc (mips*el-*-*): Use tm_defines to set + TARGET_ENDIAN_DEFAULT, rather than including mips/little.h. + * config/mips/little.h: Remove. + +2002-07-02 Devang Patel + + * objc/objc-act.c (adjust_type_for_id_default): Do not allow an + object as parameter. Prevent something like 'NSObject' to be + used as the type for a method argument. + +2002-07-03 Neil Booth + + * cpptrad.c: Update comment. + +2002-07-02 Neil Booth + + * doc/cpp.texi: Update for traditional preprocessing changes. + * goc/cppopts.texi: Similarly. + +2002-07-02 Ziemowit Laski + + * c-parse.in (designator): Enable designated initializers if ObjC. + (objcmessageexpr): Remove references to objc_receiver_context. + * objc/objc-act.h (objc_receiver_context): Remove decl. + * objc/objc-act.c (objc_receiver_context): Remove. + (lookup_objc_ivar): Test objc_method_context instead of + objc_receiver_context. + +Tue Jul 2 18:45:45 2002 J"orn Rennecke + + * sh.c (print_operand, case 'N'): Allow zero vector. + (arith_reg_or_0_operand): Likewise. + (zero_vec_operand): Check for CONST_VECTOR, not PARALLEL. + * sh.h (CONST_COSTS): 0 has 0 cost. Check OUTER_CODE for + IOR, XOR, PLUS and SET and take their respective constant + ranges into account. + (PREDICATE_CODES, arith_reg_or_0_operand): Can be CONST_VECTOR. + * sh.md (subdi3, subdi3_media): Allow zero operand. + (movv8qi_i+3): Only vector that is not split is the zero vector. + Fix operand 3 to simplify_subreg. + (movv2si_i): Split alternative 1. + (mshfhi_l_di_rev+1): New splitter. + +2002-07-02 Neil Booth + + PR preprocessor/7029 + * cppinit.c (cpp_handle_option): Suppress warnings with an + implicit "-w" for "-M" and "-MM". + * doc/cppopts.texi: Update. + +2002-07-01 Roger Sayle + + * config/sh/sh.c (sh_media_init_builtins): Change use of poisoned + identifier "bzero" to "memset". Pass extra NULL_TREE argument to + builtin_function. + +2002-07-02 Alan Modra + + * README.Portability: Fix typos. + +2002-07-01 Hans-Peter Nilsson + + PR target/7177 + * config/cris/cris.h (LEGITIMIZE_RELOAD_ADDRESS): Correct number + of indirections for register inside sign-extended mem part. + +2002-07-01 Roger Sayle + + * tree.h: Modify builtin_function interface to take an extra + argument ATTRS, which is a tree representing an attribute list. + + * c-decl.c (builtin_function): Accept additional parameter. + * objc/objc-act.c (builtin_function): Likewise. + * f/com.c (builtin_function): Likewise. + * java/decl.c (builtin_function): Likewise. + * ada/utils.c (builtin_function): Likewise. + * cp/decl.c (builtin_function): Likewise. + (builtin_function_1): Likewise. + + * c-common.c (c_common_nodes_and_builtins): Pass an additional + NULL_TREE argument to builtin_function. (builtin_function_2): + Likewise. + * cp/call.c (build_java_interface_fn_ref): Likewise. + * objc/objc-act.c (synth_module_prologue): Likewise. + * java/decl.c (java_init_decl_processing): Likewise. + * f/com.c (ffe_com_init_0): Likewise. + + * config/alpha/alpha.c (alpha_init_builtins): Pass an additional + NULL_TREE argument to builtin_function. + * config/arm/arm.c (def_builtin): Likewise. + * config/c4x/c4x.c (c4x_init_builtins): Likewise. + * config/i386/i386.c (def_builtin): Likewise. + * config/ia64/ia64.c (def_builtin): Likewise. + * config/rs6000/rs6000.c (def_builtin): Likewise. + +2002-07-01 Zack Weinberg + + * config/ip2k/t-ip2k: Remove LIBGCC1, CROSS_LIBGCC1, and LIBGCC1_TEST. + * config/mips/t-isa3264: Likewise. + * config/mmix/t-mmix: Likewise. + +2002-07-01 John David Anglin + + * emit-rtl.c (init_emit_once): Add missing cast to HOST_WIDE_INT. + +2002-07-01 Roger Sayle + + PR opt/4046 + * fold-const.c (fold) [COND_EXPR]: Simplify A ? 0 : 1 to !A, + A ? B : 0 to A && B and A ? B : 1 into !A || B if both A and + B are truth values. + +2002-07-01 Nathanael Nerode + + * config/mmix/t-mmix: Eliminate last reference to LIBGCC1_TEST. + +2002-07-01 Matt Kraai + + * README.Portability (Function prototypes): Give an example of + declaring and defining a function with no arguments. + + * README.Portability (Function prototypes): Document new + variable-argument function macros. + +Mon Jul 1 19:55:17 2002 J"orn Rennecke + + * sh.c (langhooks.h): Include. + (sh_init_builtins, sh_media_init_builtins): New functions. + (sh_expand_builtin, arith_reg_dest,and_operand): Likewise. + (mextr_bit_offset, extend_reg_operand, zero_vec_operand): Likewise. + (sh_rep_vec, sh_1el_vec, sh_const_vec): Likewise. + (builtin_description): New struct tag. + (signature_args, bdesc): New arrays. + (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Undef / define. + (print_operand): Add 'N' modifier. + * sh.h (VECTOR_MODE_SUPPORTED_P): Add SHmedia vector modes. + (EXTRA_CONSTRAINT_U, EXTRA_CONSTRAINT_W): New macros. + (EXTRA_CONSTRAINT): Add 'U' and 'W' cases. + (CONST_COSTS): Add special case for SHmedia AND. + (PREDICATE_CODES): Add and_operand, arith_reg_dest, + extend_reg_operand, extend_reg_or_0_operand, mextr_bit_offset, + sh_const_vec, sh_1el_vec, sh_rep_vec, zero_vec_operand. + target_operand can also be const or unspec. + * sh.md (UNSPEC_INIT_TRAMP, UNSPEC_FCOSA UNSPEC_FSRRA): New constants. + (UNSPEC_FSINA, UNSPEC_NSB, UNSPEC_ALLOCO): Likewise. + (attribute type): Add new types. + (anddi3): Add splitter. + (movdi_const_16bit+1): Add code to handle vector constants and + bitmasks efficiently. + (shori_media): Have generator function made. + (movv8qi, movv8qi_i, movv8qi_i+1, movv8qi_i+2): New patterns. + (movv8qi_i+3, movv2hi, movv2hi_i, movv4hi, movv4hi_i): Likewise. + (movv2si, movv2si_i, absv2si2, absv4hi2, addv2si3, addv4hi3): Likewise. + (ssaddv2si3, usaddv8qi3, ssaddv4hi3, negcmpeqv8qi): Likewise. + (negcmpeqv2si, negcmpeqv4hi, negcmpgtuv8qi, negcmpgtv2si): Likewise. + (negcmpgtv4hi, mcmv, mcnvs_lw, mcnvs_wb, mcnvs_wub): Likewise. + (mextr_rl, mextr_lr, mextr1, mextr2, mextr3, mextr4, mextr5): Likewise. + (mextr6, mextr7, mmacfx_wl, mmacfx_wl_i, mmacnfx_wl): Likewise. + (mmacnfx_wl_i, mulv2si3, mulv4hi3, mmulfx_l, mmulfx_w): Likewise. + (mmulfxrp_w, mmulhi_wl, mmullo_wl, mmul23_wl, mmul01_wl): Likewise. + (mmulsum_wq, mmulsum_wq_i, mperm_w, mperm_w_little): LIkewise. + (mperm_w_big, mperm_w0, msad_ubq, msad_ubq_i, mshalds_l): Likewise. + (mshalds_w, ashrv2si3, ashrv4hi3, mshards_q, mshfhi_b): Likewise. + (mshflo_b, mshf4_b, mshf0_b, mshfhi_l, mshflo_l, mshf4_l): Likewsie. + (mshf0_l, mshfhi_w, mshflo_w, mshf4_w, mshf0_w, mshfhi_l_di): Likewise. + (mshfhi_l_di_rev, mshflo_l_di, mshflo_l_di_rev): Likewise. + (mshflo_l_di_x, mshflo_l_di_x_rev, ashlv2si3, ashlv4hi3): Likewise. + (lshrv2si3, lshrv4hi3, subv2si3, subv4hi3, sssubv2si3): Likewise. + (ussubv8qi3, sssubv4hi3, fcosa_s, fsina_s, fipr, fsrra_s): Likewise. + (ftrv): Likewise. + + (fpu_switch+1, fpu_switch+2): Remove constraint. + +2002-07-01 Aldy Hernandez + + * tree.c (build_function_type_list): Update function comment. + Rename first argument to return_type. + +2002-07-01 Neil Booth + + * Makefile.in: Remove all trace of tradcpp.c, tradcpp.h, + tradcif.y and related files. + +2002-07-01 Neil Booth + + * cpptrad.c (skip_whitespace): Pass pointer to prior char. + +2002-07-01 Kaveh R. Ghazi + + * mips.h (FUNCTION_ARG_REGNO_P): Fix parentheses. + 2002-06-30 Devang Patel * objc/objc-act.c (finish_file): Avoid finish_objc() if @@ -21539,5 +35986,3 @@ Tue Jan 1 17:12:56 2002 Richard Kenner (mmix_asm_output_labelref): Revert condition for global symbol. (mmix_print_operand): : Emit P for a likely branch. (mmix_print_operand_punct_valid_p): A '+' is valid. - -See ChangeLog.6 for earlier changes. diff --git a/gcc/ChangeLog.9 b/gcc/ChangeLog-2003 similarity index 56% rename from gcc/ChangeLog.9 rename to gcc/ChangeLog-2003 index 8eed245136d1..8d2e12da9e9b 100644 --- a/gcc/ChangeLog.9 +++ b/gcc/ChangeLog-2003 @@ -1,3 +1,16379 @@ +2003-12-31 Jan Hubicka + + PR opt/13473 + * recog.c (validate_replace_rtx_1): Take care for RTL sharing inside + ASM input operands + + PR opt/12617 + * toplev.c (dump_file_index): Reorder ce3 and bbro. + (dump_file): Likewise. + (rest_of_compilation): Likewise. + + PR debug/13367 + * cgraph.c (cgraph_function_possibly_inlined): Even with + flag_really_no_inline we inline always_inline functions. + * cgraphunit.c (cgraph_analyze_function): Clear inlinable flag + for non-always_inline functions when there is flag_really_no_inline. + (cgraph_decide_inlining): Limit work done when not inlining. + (cgraph_decide_inlining_incrementally): Likewise. + (cgraph_optimize_function): Check whether something got inlined. + * c-objc-common.c (c_disregard_inline_limits): Do not always inline + extern inline functions when not inlining. + + * opts.c (decode_options): Disable crossjumping at -O1 + * invoke.texi (-O1): Document change. + +2003-12-31 Richard Kenner + + * print-rtl.c (print_rtx): For hard register, write out register + number and register name instead of calling PRINT_REG. + * defaults.h (PRINT_REG): Deleted. + * config/i386/i386.c (print_reg): Remove handling of CODE of -1. + Move comments here from i386.h. + (print_operand, print_operand_address): Call print_reg directly. + * config/i386/i386.h (PRINT_REG): Deleted. + +2003-12-31 Roger Sayle + + * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Define + _INCLUDE_LONGLONG. + +2003-12-31 Zack Weinberg + + * gcc.c (init_spec): Add -lunwind to shared case too if + USE_LIBUNWIND_EXCEPTIONS. + +2003-12-31 Joseph S. Myers + + * doc/include/texinfo.tex: Update to version 2003-12-21.10. + * doc/gcc.texi, doc/gccint.texi: Don't set font for + @def... commands. + * doc/invoke.texi: Don't use empty @opindex. + +2003-12-31 Mark Mitchell + + * c-common.c (c_expand_expr): Remove code to return a value + different from that returned by expand_expr. + * expr.c (store_expr): Use the validity of a target MEM, rather + than checking DECL_RTL (exp), to figure out if a copy is + required. + +2003-12-31 Kazu Hirata + + * config/v850/lib1funcs.asm: Fix comment formatting. + * config/v850/v850.c: Likewise. + * config/v850/v850.h: Likewise. + * config/v850/v850.md: Likewise. + +2003-12-31 Kazu Hirata + + * config/i386/i386.md (*movqi_insv_2): Remove AND in the + set source. + +2003-12-31 Kazuhiro Inaoka + + * config.gcc: Added m32r-linux m32rle-elf and m32le-linux targets. + * doc/invoke.texi: Document -mflush-func, -mflush-trap options. + Also add documentation for -mdebug, -malign-loops, -missue-rate, + and -mbranch-cost options. + * config/m32r/t-linux: New file: m32r-linux support. + * config/m32r/xm-linux.h: Likewise. + * config/m32r/xm-m32r.h: Likewise. + * config/m32r/linux.h: Likewise. + * config/m32r/little.h: New file: Little endian code generation + support. + * config/m32r/m32r-protos.h (m32r_legitimize_pic_address, + m32r_legitimate_pic_operand_p, load_pic_register): Add + prototypes. + * config/m32r/m32r.c (m32r_init): Add options for cache-flush. + (addr24_operand): Changes for PIC code generation. + * config/m32r/m32r.h (LABEL_ALIGN): Define to calculate PNOP + length at labels. + (ASM_SPEC): Add PIC support. + (FUNCTION_PROFILER): New define. + (TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE): Changed to support + trampoline. + (CONDITIONAL_REGISTER_USAGE, CONSTANT_ADDRESS_P, + LEGITIMIZE_ADDRESS, JUMP_TABLES_IN_TEXT_SECTION, + PIC_OFFSET_TABLE_REGNUM, FINALIZE_PIC, LEGITIMATE_PIC_OPERAND_P, + ASM_OUTPUT_ADDR_DIFF_ELT, CASE_VECTOR_MODE): Define for PIC. + (move_src_operand, m32r_compute_frame_size, m32r_expand_prologue, + m32r_finalize_pic): Changes for PIC and profile support. + (global_offset_table, load_pic_register, m32r_legitimate_pic_operand_p, + m32r_legitimize_pic_address): Add for PIC support. + (m32r_file_start): Changed for little-endian-target. + * config/m32r/m32r.md (mvqi, movhi, movsi, movdi, movsf, movdf, + tablejump, tablejump_insn, call, call_value, call_value_via_label): + Changes for PIC. + (pic_load_addr, get_pc, builtin_setjmp_receiver): Added for PIC. + (flush_icache): Changes for cache-flush trap. + +2003-12-30 Kazu Hirata + + * config/i386/i386.h: Remove an unnecessary #undef. + +2003-12-30 Roger Sayle + + * cppfiles.c (pch_open_file): Minor tweak to work-around native + HPPA compiler bug. + +2003-12-30 Kazu Hirata + + * config/rs6000/aix.h: Fix comment formatting. + * config/rs6000/rs6000-modes.def: Likewise. + * config/rs6000/rs6000.c: Likewise. + * config/rs6000/rs6000.h: Likewise. + * config/rs6000/rs6000.md: Likewise. + +2003-12-30 Kazu Hirata + + * config/i386/i386-protos.h: Remove prototype for + const_int_1_operand. + * config/i386/i386.c (const_int_1_operand): Remove. + * config/i386/i386.h (PREDICATE_CODES): Remove + const_int_1_operand. + * config/i386/i386.md: Replace all uses of const_int_1_operand + with const1_operand. + * config/i386/pentium.md: Likewise. + +2003-12-30 Geoffrey Keating + + * doc/tm.texi (PREFERRED_RELOAD_CLASS): Describe use of NO_REGS + with constants. + +2003-12-30 Mark Mitchell + + * stor-layout.c (layout_decl): Turn bitfields into ordinary + fields, even if they are the first field in a structure. + +2003-12-30 Roger Sayle + + * fold-const.c (fold) : Don't require strict type + equality, instead just prevent replacing a COND_EXPR of non-void + type by one of its operands of void type. + +2003-12-30 Andreas Schwab + + * doc/c-tree.texi: Fix @item vs. @itemx. + * doc/cpp.texi: Likewise. + * doc/install.texi: Likewise. + * doc/invoke.texi: Likewise. + +2003-12-30 Nathan Sidwell + + * builtins.c (expand_builtin_apply_args_1): Fix typo in previous + change. + +2003-12-30 Jan Hubicka + + PR target/11936 + * i386.h (CLASS_LIKELY_SPILLED_P): Return true for + FP_TOP_REG/FP_SECOND_REG. + +2003-12-30 Steven Bosscher + + Backport from tree-ssa (relevant changes only): + 2003-12-18 Zdenek Dvorak + + * et-forest.h (et_forest_create, et_forest_delete, + et_forest_add_node, et_forest_add_edge, et_forest_remove_node, + et_forest_remove_edge, et_forest_parent, + et_forest_common_ancestor, et_forest_node_value, + et_forest_enumerate_sons): Declarations removed. + (struct et_node): New. + (et_new_tree, et_free_tree, et_set_father, et_split, et_nca, + et_below): Declare. + * et-forest.c (struct et_forest_occurrence, struct et_forest, + struct et_forest_node): Removed. + (et_forest_create, et_forest_delete, + et_forest_add_node, et_forest_add_edge, et_forest_remove_node, + et_forest_remove_edge, et_forest_parent, + et_forest_common_ancestor, et_forest_node_value, + et_forest_enumerate_sons, splay, remove_all_occurrences, + find_leftmost_node, find_rightmost_node, calculate_value): Removed. + (struct et_occ): New. + (et_nodes, et_occurences): New. + (set_depth, set_depth_add, set_prev, set_next, et_recomp_min, + et_check_occ_sanity, et_check_sanity, et_check_tree_sanity, + record_path_before_1, record_path_before, check_path_after_1, + check_path_after, et_splay, et_new_occ, et_new_tree, + et_free_tree, et_set_father, et_split, et_nca, et_below): New. + * basic-block.h (struct basic_block_def): New field dom. + (struct dominance_info): Type removed. + (calculate_dominance_info, free_dominance_info, + nearest_common_dominator, set_immediate_dominator, + get_immediate_dominator, dominated_by_p, get_dominated_by, + add_to_dominance_info, delete_from_dominance_info, + recount_dominator, redirect_immediate_dominators, + iterate_fix_dominators, verify_dominators): Declarations + changed. + (enum dom_state): New. + (dom_computed): New variable. + (first_dom_son, next_dom_son): Declare. + * dominance.c (struct dominance_info): Removed. + (BB_NODE, SET_BB_NODE): Removed. + (calculate_dominance_info, free_dominance_info, + nearest_common_dominator, set_immediate_dominator, + get_immediate_dominator, dominated_by_p, get_dominated_by, + add_to_dominance_info, delete_from_dominance_info, + recount_dominator, redirect_immediate_dominators, + iterate_fix_dominators, verify_dominators, + debug_dominance_info): Work over new datastructure. Access + dominance datastructures through CFG. + (assign_dfs_numbers, compute_dom_fast_query, first_dom_son, + next_dom_son): New. + * bt-load.c (dom): Variable removed. + (augment_live_range, combine_btr_defs, migrate_btr_def, + migrate_btr_defs, branch_target_load_optimize): Updated for the + new interface for dominance information. + * cfg.c {exit_entry_blocks): Update initializer. + * cfglayout.c (copy_bbs): Removed loops argument. Updated for + the new interface for dominance information. + * cfglayout.h (copy_bbs): Declaration changed. + * cfgloop.c (flow_loop_pre_header_find, flow_loops_cfg_dump, + flow_loop_scan, canonicalize_loop_headers, flow_loops_find): Updated + for the new interface for dominance information. + (flow_loop_scan): Loops argument removed. + (flow_loops_free): Don't release dominators. + * cfgloop.h (struct cfg): Dom field removed. + (flow_loop_scan, loop_split_edge_with, simple_loop_p, + just_once_each_iteration_p, split_loop_bb): Declaration changed. + * cfgloopanal.c (simple_loop_exit_p, simple_increment, + just_once_each_iteration_p, simple_loop_p): Remove loops argument. + Updated for the new interface for dominance information. + * cfgloopmanip.c (remove_bbs, find_path, create_preheader, + split_loop_bb, loopify, duplicate_loop_to_header_edge, + force_single_succ_latches, loop_split_edge_with): Ditto. + * gcse.c (dominators): Variable removed. + (free_code_hoist_mem, compute_code_hoist_data, hoist_code): + Updated for the new interface for dominance information. + * ifcvt.c (post_dominators): Variable removed. + (mark_loop_exit_edges, merge_if_block, find_if_header, + find_cond_trap, find_if_case_1, find_if_case_2, if_convert): + Updated for the new interface for dominance information. + * loop-init.c (rtl_loop_optimizer_init, + rtl_loop_optimizer_finalize): Ditto. + * loop-unroll.c (decide_peel_simple, decide_peel_once_rolling, + decide_peel_completely, decide_unroll_stupid, + decide_unroll_constant_iterations, + decide_unroll_runtime_iterations): Loops argument removed. + Updated for the new interface for dominance information. + (unroll_and_peel_loops, peel_loops_completely, + unroll_loop_runtime_iterations): Updated for the new interface for + dominance information. + * loop-unswitch.c (may_unswitch_on_p, unswitch_loops, + unswitch_single_loop, unswitch_loop): Updated for the new + interface for dominance information. + * predict.c (process_note_predictions, process_note_prediction, + estimate_probability, note_prediction_to_br_prob): Ditto. + * sched-rgn.c (find_rgns, init_regions): Ditto. + * toplev.c (rest_of_handle_branch_prob): Free the dominators. + +2003-12-30 Jan Hubicka + + PR target/13456 + * i386.md (allocate_stack_worker): Use different pattern for pre and + post reload expansion. + (allocate_stack_worker_1, allocate_stack_worker_rex64): Use + match_scratch. + (allocate_stack_worder_1_postreload, + allocate_stack_worker_rex64_postreload): New. + +2003-12-29 Nathan Sidwell + + * builtins.c (expand_builtin_apply_args_1): Add pretend args size + to the virtual incoming args pointer for downward stacks. + +2003-12-29 Roger Sayle + + PR fortran/12632 + * fold-const.c (fold) : Don't fold a constant condition, + if the type of the selected branch doesn't match its' parent. + +2003-12-29 Jan Hubicka + + * coverage.c (read_counts_file): Better error messages; cause corrupted + profiles to produce hard errors, not just warnings + (get_coverage_counts): Similarly. + + * toplev.c (rest_of_handle_loop_optimize): Enable LOOP_AUTO_UNROLL. + +2003-12-29 Phil Edwards + + * doc/cppopts.texi: Use of -idirafter, -iprefix, -iwithprefix, and + -iwithprefixbefore is not discouraged. + +2003-12-28 Mostafa Hagog + + * sbitmap.c (sbitmap_union_of_diff_cg, sbitmap_a_and_b_cg, + sbitmap_a_xor_b_cg): Accumulate "changed" properly. + (sbitmap_not): Zero all bits past n_bit. + +2003-12-27 Zdenek Dvorak + + PR opt/13159 + * cfgloopanal.c (mark_irreducible_loops): Fix the strongly connected + components detection. + * loop-unswitch.c (unswitch_loop): Preserve simple preheaders. + +2003-12-27 Bernardo Innocenti + + * config/m68k/uclinux.h (LIB_SPEC): Add elf2flt magic required for + correct linking of executables using id-based shared libraries. + +2003-12-27 Kazu Hirata + + * config/i386/i386-interix.h: Remove uses of "register" + specifier in declarations of arguments and local variables. + * config/i386/i386.c: Likewise. + * config/i386/i386elf.h: Likewise. + * config/i386/ptx4-i.h: Likewise. + * config/i386/sysv4.h: Likewise. + +2003-12-26 Fariborz Jahanian + Geoffrey Keating + David Edelsohn + + * config/rs6000/rs6000.c (legitimate_offset_address_p): Do not + restrict DFmode and TFmode to word alignment. + * config/rs6000/rs6000.md (movdf_hardfloat64): Use 'o' constraint + for ld/std and order before mr. + +2003-12-26 Andrew Pinski + + * config/darwin.h (LINK_COMMAND_SPEC): Arrange + -fprofile-generate to imply -lgcov. + +2003-12-26 Kazu Hirata + + * config/h8300/h8300.md (ldm_h8300s_2_normal): Use HImode for + addresses. + +2003-12-25 Kazu Hirata + + * config/m32r/m32r.md: Remove a constraint from a splitter. + +2003-12-25 Andrew Pinski + + PR C++/13429, C/11944 + * c-common.c (c_build_qualified_type): Return early when type is + error_mark_node. + (c_apply_type_quals_to_decl): Likewise. + +2003-12-25 Kazu Hirata + + * config/alpha/alpha-modes.def: Fix comment formatting. + * config/alpha/alpha.c: Likewise. + * config/alpha/alpha.h: Likewise. + * config/alpha/elf.h: Likewise. + * config/alpha/lib1funcs.asm: Likewise. + * config/alpha/openbsd.h: Likewise. + * config/alpha/vms-cc.c: Likewise. + * config/alpha/vms-crt0-64.c: Likewise. + * config/alpha/vms-crt0.c: Likewise. + * config/alpha/vms-ld.c: Likewise. + * config/alpha/vms-psxcrt0-64.c: Likewise. + * config/alpha/vms-psxcrt0.c: Likewise. + * config/alpha/vms.h: Likewise. + * config/arc/arc.c: Likewise. + * config/arm/aof.h: Likewise. + * config/arm/arm-modes.def: Likewise. + * config/arm/arm.c: Likewise. + * config/arm/arm.h: Likewise. + * config/arm/arm.md: Likewise. + * config/arm/linux-elf.h: Likewise. + * config/arm/vxworks.h: Likewise. + * config/avr/avr.c: Likewise. + * config/avr/avr.h: Likewise. + +2003-12-24 Kazu Hirata + + * config/xtensa/elf.h: Fix comment formatting. + * config/xtensa/xtensa-protos.h: Likewise. + * config/xtensa/xtensa.c: Likewise. + * config/xtensa/xtensa.h: Likewise. + +2003-12-24 Kazu Hirata + + * config/avr/avr.c: Fix comment formatting. + * config/avr/avr.md: Likewise. + +2003-12-24 Kazu Hirata + + PR target/12721. + * config/avr/avr.c: Include ggc.h. + (tmp_reg_rtx): Declare with GTY. + (zero_reg_rtx): Likewise. + (ldi_reg_rtx): Remove. + (avr_override_options): Initialize zero_reg_rtx and + ldi_reg_rtx. + (avr_init): Remove. + Include gt-avr.h. + * config/avr/avr.h (LDI_REG_REGNO): Remove. + Remove externs for tmp_reg_rtx, zero_reg_rtx, and ldi_reg_rtx. + +2003-12-24 David Edelsohn + + * doc/md.texi: Document PowerPC vector register constraint letter. + +2003-12-23 Mark Mitchell + + * calls.c (expand_call): Recognize calls to "sqrt" and create + corresponding notes. + +2003-12-23 Kaveh R. Ghazi + + * config/mips/mips.c (override_options): Use `inform' instead + of `warning' for -g -mabi=32 and native assembler. + + * config/mips/t-iris6 (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS): + Don't pass -Wno-error. + +2003-12-23 David Edelsohn + + * function.c (assign_parms): Update max_parm_reg and + parm_reg_stack_loc when adding new parm reg. + +2003-12-23 Kazu Hirata + + * config/ns32k/ns32k.c: Convert to ISO-C. + +2003-12-23 Zack Weinberg + + * config/ia64/ia64.c (ia64_va_arg): Pass pointer for + variable-sized type through convert_memory_address. + (ia64_in_small_data_p): Always return false for FUNCTION_DECLs. + +2003-12-23 Jan Hubicka + + * common.opt (fprofile-generate,fprofile-use): Add. + * gcc.c (LINK_COMMAND_SPEC): Arrange -fprofile-generate to imply -lgcov + * opts.c (profile_arc_flag_set, flag_profile_values_set, + flag_unroll_loops_set, flag_tracer_set, + flag_value_profile_transformations_set, + flag_peel_loops_set): New static variables. + (common_handle_option): Deal with -fprofile-generate/-fprofile-use + * invoke.texi (-fprofile-generate, -fprofile-use): Describe. + +2003-12-23 Mark Mitchell + + * Makefile.in (OBJS-common): Remove dwarfout.o. + (dwarfout.o): Remove. + * common.opt: Remove -gdwarf, -gdwarf+. + * defaults.h (PREFERRED_DEBUGGING_TYPE): Do not check for + DWARF_DEBUGGING_INFO. + * dwarf2out.c: Fix typo in comment. + * dwarfout.c: Remove. + * opts.c (common_handle_option): Remove OPT_gdwarf, OPT_gdwarf_. + * toplev.c (process_options): Remove check for + DWARF_DEBUGGING_INFO. + * config/elfos.h (DWARF_DEBUGGING_INFO): Do not #define it or + #undef it. + * config/netware.h (DWARF_DEBUGGING_INFO): Likewise. + * config/ptx4.h (DWARF_DEBUGGING_INFO): Likewise. + * config/vxworks.h (DWARF_DEBUGGING_INFO): Likewise. + * config/alpha/unicosmk.h (DWARF_DEBUGGING_INFO): Likewise. + * config/arc/arc.h (DWARF_DEBUGGING_INFO): Likewise. + * config/i386/sco5.h (DWARF_DEBUGGING_INFO): Likewise. + * config/i386/x86-64.h (DWARF_DEBUGGING_INFO): Likewise. + * config/m32r/m32r.h (DWARF_DEBUGGING_INFO): Likewise. + * config/mcore/mcore-elf.h (DWARF_DEBUGGING_INFO): Likewise. + * config/sparc/linux64.h (DWARF_DEBUGGING_INFO): Likewise. + * config/sparc/liteelf.h (DWARF_DEBUGGING_INFO): Likewise. + * config/sparc/sol26-sld.h (DWARF_DEBUGGING_INFO): Likewise. + * config/sparc/sp86x-elf.h (DWARF_DEBUGGING_INFO): Likewise. + * doc/invoke.texi: Do not mention -gdwarf, -gdwarf-1, -gdwarf-1+, + or -gdwarf+. + * doc/tm.texi: Likewise. + + * c-common.c (flag_abi_version): Default to 2. + * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_ABI_VERSION + uniformly for versions above 2. + * doc/invoke.texi: Update documentation for -fabi-version. + +2003-12-22 Geoffrey Keating + + * config/rs6000/rs6000.md: Change many instances of '! + TARGET_POWERPC64' to 'TARGET_32BIT' when the pattern being guarded + was guarded only because it changed CR0 or the carry bit in XER. + +2003-12-23 Eric Botcazou + + PR optimization/13394 + * toplev.c (rest_of_compilation): Move call to + check_function_return_warnings right after the sibcall + optimization pass. + +2003-12-23 Eric Botcazou + + PR c/13382 + * c-typeck.c (convert_for_assignment): When converting from + integral type to pointer type, always call convert. + +2003-12-22 Mark Mitchell + + * doc/invoke.texi: Deprecate -fwritable-strings. + + * c-common.c (flag_external_templates): Remove. + (flag_alt_external_templates): Likewise. + * c-common.h (flag_external_templates): Remove. + (flag_alt_external_templates): Likewise. + * c-opts.c (c_common_handle_option): Unsupport + -falt-external-templates and -ftemplates. + * doc/invoke.texi: Remove mention of -fexternal-templates and + -falt-external-templates. + +2003-12-22 Andrew Pinski + + PR target/13466 + * config.gcc (powerpc-*-darwin): Remove overridden value of need_64bit_hwint. + + * emit-rtl.c (copy_rtx_if_shared): Add comment about its use of + copy_rtx_if_shared_1. + (copy_rtx_if_shared_1): Add comment about what the function does. + + * c-decl.c (finish_function): Change order of checks. + (c_expand_body): Likewise. + +2003-12-22 Fariborz Jahanian + + * config/rs6000/rs6000.c (legitimate_offset_address_p): Correct + check for the legitimate offset when memory of + DImode/DFmode/TFmode/TImode mode is being referenced and target + is TARGET_POWERPC64. + +2003-12-22 Dale Johannesen + + * reload1.c: Add reg_reloaded_call_part_clobbered. + (reload_as_needed): Use it. + (forget_old_reloads_1): Ditto. + (emit_reload_insns): Ditto. + +2003-12-22 Dale Johannesen + + PR optimization/12828 + * loop.c: Add find_regs_nested to look inside CLOBBER(MEM). + (scan_loop): Call it. + * regclass.c (reg_scan_mark_regs): Look inside CLOBBER(MEM). + +2003-12-22 Andrew Pinski + + PR c/9163 + * c-decl.c (poplevel): Only set DECL_INITIAL of a current function + if it is non-null. + (finish_function): Check for error_mark_node or null on DECL_RESULT and + DECL_RESULT of fndecl. + (c_expand_body): Only expand when DECL_INITIAL of fndecl is not + error_mark_node and not null. + +2003-12-21 Dan Nicolaescu + + * rtl.h (dump_rtx_statistics): Declare it. + * rtl.c (rtx_alloc_counts, rtx_alloc_sizes, rtvec_alloc_counts, + rtx_alloc_sizes): New static vars. + (rtx_alloc, rtvec_alloc): Update them. + (dump_rtx_statistics): New function. + * toplev.c (finalize): Call it. + * ggc-page.c (struct globals): Fix comments. Add new member + total_allocated_per_order. + (ggc_alloc): Keep track of the total allocated memory. + (ggc_print_statistics): Clarify message. Print total allocated + memory stats. + * configure.in (gather-detailed-mem-stats): New flag. + * configure: Regenerate. + * config.in: Regenerate. + * doc/install.texi (Configuration): Document + --enable-gather-detailed-mem-stats. + +2003-12-22 Kazu Hirata + + * system.h (CONVERT_HARD_REGISTER_TO_SSA_P): Poison. + * config/i386/i386.h (CONVERT_HARD_REGISTER_TO_SSA_P): Remove. + +2003-12-21 Roger Sayle + + * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Define _ILP32 + when compiling in ILP32 mode. + +2003-12-21 Andrew Pinski + + * config/rs6000/rs6000.c (rs6000_tls_referenced_p): Return early if + TARGET_HAVE_TLS is false. + +2003-12-21 Kazu Hirata + + * config/ip2k/ip2k-protos.h: Remove the prototype for + asm_output_section_name. + * config/ip2k/ip2k.c (asm_output_section_name): Remove. + +2003-12-21 Kazu Hirata + + * alias.c: Fix comment formatting. + * alloc-pool.c: Likewise. + * bitmap.c: Likewise. + * bitmap.h: Likewise. + * bt-load.c: Likewise. + * c-common.c: Likewise. + * c-common.h: Likewise. + * c-decl.c: Likewise. + * c-opts.c: Likewise. + * c-pretty-print.c: Likewise. + * caller-save.c: Likewise. + * cfghooks.h: Likewise. + * cgraph.c: Likewise. + * collect2.c: Likewise. + * cppfiles.c: Likewise. + * cpplib.h: Likewise. + * dwarf2out.c: Likewise. + * dwarfout.c: Likewise. + * emit-rtl.c: Likewise. + * final.c: Likewise. + * function.c: Likewise. + * gcov.c: Likewise. + * gcse.c: Likewise. + * genemit.c: Likewise. + * ggc.h: Likewise. + * haifa-sched.c: Likewise. + * ifcvt.c: Likewise. + * libgcc2.h: Likewise. + * loop.c: Likewise. + * predict.h: Likewise. + * unwind-libunwind.c: Likewise. + * varasm.c: Likewise. + +2003-12-21 Kazu Hirata + + * config/mn10300/mn10300.c (mn10300_encode_section_info): Fix + a warning. + +2003-12-21 Kazu Hirata + + * config/arm/arm.c: Convert to ISO-C. + * config/avr/avr.h: Likewise. + * config/fr30/fr30.c: Likewise. + * config/ip2k/ip2k.c: Likewise. + * config/mn10300/mn10300.c: Likewise. + +2003-12-20 Andrew Pinski + Matt Thomas + + PR target/12749 + * config/i386/i386.c (print_operand): Print only the first + 8 characters of the float in hex. + +2003-12-20 John David Anglin + + * pa.h (TRAMPOLINE_TEMPLATE): Shorten sequence when generating PA + 2.0 code. + (TRAMPOLINE_CODE_SIZE, MIN_CACHELINE_SIZE): New defines. + (INITIALIZE_TRAMPOLINE): Rework to pass line length, and aligned start + and end addresses to I and D cache instruction patterns. + * pa.md (anddi3, iordi3): Change predicates of operands 1 and 2 to + and_operand and ior_operand, respectively. When generating 64-bit + code, only one operand needs to be a register operand. + (xordi3): Change predicates of operands 1 and 2 to register_operand. + (one_cmpldi2): Change predicate of operand 1 to register_operand. + (dcacheflush, icacheflush): Revise to flush an arbitrary number of + cache lines. + +2003-12-20 Josef Zlomek + + PR optimization/13430, PR optimization/12322 + * bb-reorder.c (copy_bb_p): Do not allow block with many successors to + be copied. + (find_traces_1_round): Surround check for fake edges by + #ifdef ENABLE_CHECKING #endif. + +2003-12-20 Eric Botcazou + + PR other/7956 + * genmultilib: New variable disable_multilib. Set it to 'yes' + if enable_multilib was set to 'no'. Emit DISABLE_MULTILIB + if disable_multilib was set to 'yes'. + * gcc.c: Include multilib.h before tm.h. + * config/sparc/sol2-bi.h (LINK_ARCH_SPEC): Emit an error + message for multiarch options if DISABLE_MULTILIB is set. + * config/sparc/sol2-gld-bi.h (LINK_ARCH_SPEC): Likewise. + +2003-12-20 Eric Botcazou + + PR c/12085 + * c-typeck.c (build_function_call): Issue a warning if a + function is called through an incompatible prototype and + replace the call by a trap in this case. + +2003-12-19 James E Wilson + + * install.texi (ia64-*-linux): Document minimum libunwind version + number. + +2003-12-19 Per Bothner + + * langhooks.c (lhd_print_error_function): Fix for PR c/13110. + Don't do pp_newline; it causes an extra blank line. + * pretty-print.c (pp_base_flush): Clear pp_needs_newline. + +2003-12-19 Jason Merrill + + * tree.c (get_unwidened): Decide whether to narrow a bitfield + reference based on TYPE_SIZE, not TYPE_PRECISION. + + * stmt.c (parse_output_constraint): Warn about in-out constraint + that doesn't allow a register. + (parse_input_constraint): Warn about matching constraint that + doesn't allow a register. + +2003-12-19 James E Wilson + + * flow.c (mark_set_regs, case PARALLEL): Scan loop forwards. + Add case for ASM_OPERANDS. + * global.c (global_alloc): Set regs_ever_live for regs_asm_clobbered + registers. + +2003-12-19 Kazu Hirata + + * expr.c (check_max_integer_computation_mode): Remove. + * dojump.c (do_jump): Don't use MAX_INTEGER_COMPUTATION_MODE. + * fold-const.c (fold): Likewise. + * system.h (MAX_INTEGER_COMPUTATION_MODE): Poison. + * doc/tm.texi (MAX_INTEGER_COMPUTATION_MODE): Remove. + +2003-12-19 James E Wilson + + * configure.in: Delete libunwind_has_eh_support test. + * configure: Regenerate. + * config.gcc (ia64*-*-linux*): Delete reference to t-libunwind-no-eh + and libunwind_has_eh_support check. + * config/t-libunwind-no-eh: Delete. + +2003-12-19 Joseph S. Myers + + * c-format.c (print_char_table): Allow 'I' flag on floating point + decimal formats. + +2003-12-19 Stuart Hastings + + * gcc/config/i386/i386.c (ix86_expand_call, x86_output_mi_thunk): + Trivial fixes for i386.c on Darwin/x86. + +2003-12-19 Fariborz Jahanian + + * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Add code to + recognize macho-style lo_sum adrress patterns. + +2003-12-19 Kazu Hirata + + * dwarfout.c: Remove uses of "register" specifier in + declarations of arguments and local variables. + * gensupport.c: Likewise. + * local-alloc.c: Likewise. + * regclass.c: Likewise. + +2003-12-19 Kelley Cook + + * config.guess: Remove. + +2003-12-19 Jakub Jelinek + + * config/ia64/unwind-ia64.c (ia64_copy_rbs): New function. + (unw_access_gr): Only call ia64_rse_rnat_addr if addr is above + regstk_top. + (uw_frame_state_for): Handle locations inside bundles. + (uw_init_context_1): Initialize context->rnat. + Set context->regstk_top to lowest rbs address which has nat collection + in context->rnat. + (uw_install_context): Fix rnat restoring. + Restore ar.rsc to previous state. + * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR, + MD_HANDLE_UNWABI): Handle unwinding through SA_ONSTACK frames. + +2003-12-19 Jakub Jelinek + + PR c++/13239 + * builtins.c (expand_builtin_expect_jump): Update + TREE_VALUE (arglist) if unsave_expr_now langhook + created a new tree. + +2003-12-19 Richard Earnshaw + + * arm.c (thumb_base_register_rtx_p): Use regno in comparison against + FIRST_PSEUDO_REGISTER. + +2003-12-18 Hartmut Penner + + * gcc/config/rs6000/rs6000.c (USE_ALTIVEC_FOR_ARG_P): Don't check + for SVR4 ABI. + +2003-12-18 Geoffrey Keating + + * config/rs6000/aix.h (OS_MISSING_POWERPC64): Define. + (OS_MISSING_ALTIVEC): Define. + * config/rs6000/darwin.h (ASM_SPEC): Be generous about supplying + -force_cpusubtype_ALL. + * config/rs6000/rs6000.c (rs6000_override_options): Rearrange + CPU information table; now always set all CPU-specific values. + Also, use Altivec and powerpc64 when chip and OS supports them. + +2003-12-18 Geoffrey Keating + + * fixinc/inclhack.def (darwin_macho_dyldh): New. + * fixinc/fixincl.x: Regenerate. + +2003-12-18 Dara Hazeghi + + * version.c (version_string): Renumber as 3.4.0 + * doc/include/gcc-common.texi: Likewise + +2003-12-18 Richard Henderson + + * genrecog.c (print_host_wide_int): New. + (write_switch, write_cond): Use it. + +2003-12-18 Richard Henderson + + * c-decl.c (check_bitfield_type_and_width): Remove enum special + case suppression of pedwarn. + * system.h (ENUM_BITFIELD): Use __extension__. + (CHAR_BITFIELD): Likewise. + +2003-12-18 Ulrich Weigand + Mark Dettinger + + * config/s390/s390.md (UNSPEC_SRST): New constant. + ("strlendi", "strlensi"): New expanders. + ("*strlendi", "*strlensi"): New insns. + +2003-12-18 Mark Mitchell + + * config/sol2.h (LINK_ARCH32_SPEC): Define in terms of ... + (LINK_ARCH32_SPEC_BASE): ... this new macro. + * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC): Define in terms of + ... + (LINK_ARCH64_SPEC_BASE): ... this new macro. + * config/sparc/sol2-gld-bi.h (LINK_ARCH32_SPEC): New macro. + (LINK_ARCH64_SPEC): Likewise. + +2003-12-18 Jason Merrill + + PR middle-end/13234 + * tree-dump.c (dequeue_and_dump): Handle 'r' and 's' code + classes. + +2003-12-18 Steven Bosscher + + * Makefile.in (tracer.o, bb-reorder.o): Depend on timevar.h + * toplev.c (rest_of_handle_reorder_blocks, rest_of_handle_tracer): + Don't push and pop TV_REORDER_BLOCKS timevars, do it... + * bb-reorder.c (reorder_basic_blocks): ...here, and... + * tracer.c (tracer): here. + +2003-12-18 Ulrich Weigand + + * loop.c (move_movables): Handle combination of m->consec, + m->move_insn_first, and m->insert_temp all nonzero correctly. + +2003-12-18 Kazu Hirata + + * calls.c (load_register_parameters): Don't use + LOAD_ARGS_REVERSED. + * system.h (LOAD_ARGS_REVERSED): Poison. + * doc/tm.texi (LOAD_ARGS_REVERSED): Remove. + +2003-12-17 Per Bothner + + * emit-rtl.c (set_new_first_and_last_label_num): Remove function. + * rtl.h (set_new_first_and_last_label_num): Remove declaration. + +2003-12-17 Alexandre Oliva + + * config/frv/frv.c (frv_ifcvt_modify_insn): Don't leave alone + scratch insns of the then branch that clobber regs needed by the + else branch. + +2003-12-17 Kazu Hirata + + * calls.c (expand_call): Update comments. + * system.h (PRETEND_OUTGOING_VARARGS_NAMED): Poison. + * targhooks.c: Do not refer to PRETEND_OUTGOING_VARARGS_NAMED. + +2003-12-17 James E Wilson + Roger Sayle + + * Makefile.in (gcse.o): Add $(TREE_H) to dependencies. + * gcse.c: Include tree.h. + (implicit_set_cond_p): New. + (find_implicit_sets): Call it. + +2003-12-17 Santiago Vila + + * config/kfreebsdgnu.h (TARGET_OS_CPP_BUILTINS): Rename from + TARET_OS_CPP_BUILTINS. + +2003-12-16 Kazu Hirata + + * emit-rtl.c: Fix signed/unsigned comparison warnings. + +2003-12-17 Joseph S. Myers + + * predict.c (struct block_info_def, struct edge_info_def): Change + bit-fields of width 1 to unsigned int. + +2003-12-16 Geoffrey Keating + + PR 12480 + * c-pch.c (pch_init): Improve error message when precompiled + header can't be written. + + PR 12606 + * c-pch.c (pch_init): Make a PCH file appear invalid while it's + being written. + (c_common_write_pch): Make it valid once it's done. + +2003-12-17 Ulrich Weigand + + PR target/11992 + * config/s390/s390.md ("*cmpmem_long_64"): Use CLCLE instruction + instead of CLCL. + ("*cmpmem_long_31"): Likewise. + +2003-12-17 Vladimir Makarov + + * config/ia64/ia64.c: Add more comments about insn bundling. + +2003-12-17 Richard Earnshaw + + PR optimization/10592 + * caller-save.c (mark_referenced_regs): Don't short-circuit a reg + or subreg in SET_DEST if it isn't a hard register. + +2003-12-17 David Edelsohn + + * collect2.c (main): Add -fno-profile-arcs -fno-test-coverage + -fno-branch-probabilities to arguments when compiling ctors and + dtors. + +2003-12-17 Eric Botcazou + + * config/sparc/sol2.h: Set SUPPORTS_INIT_PRIORITY to 0. + * config/sparc/sol2-gld.h: Set SUPPORTS_INIT_PRIORITY to 1. + +2003-12-17 Richard Earnshaw + + * arm.c (thumb_base_register_rtx_p): Don't allow virtual registers + as base registers for sub-word operations. + (thumb_legitimate_address_p): Simplify REG+REG test. + +2003-12-17 Segher Boessenkool + + * opts.c (wrap_help): Fix overflow. + +2003-12-17 Fred Fish + + * configure.in: Remove code to examine linker scripts and set + HAVE_MIPS_LIBGLOSS_STARTUP_DIRECTIVES. + * configure, config.in: Regenerate. + +2003-12-16 Mark Mitchell + + PR c++/12218 + * varasm.c (initializer_constant_valid_p): Allow a conversion from + an integral constant to an OFFSET_TYPE. + +2003-12-16 Kazu Hirata + + PR target/11012 + * config/m32r/m32r.c (gen_compare): Call gen_addsi3 instead of + gen_cmp_ne_small_const_insn. + * config/m32r/m32r.md (cmp_ne_small_const_insn): Remove. + +2003-12-17 Neil Booth + Joseph S. Myers + + PR c/3347 + * c-decl.c (enum_decl_context): Remove BITFIELD. + (grokdeclarator): Take bit-field width as an input. + Perform bit-field width validation with + check_bitfield_type_and_width rather than waiting for + finish_struct. + (groktypename, groktypename_in_parm_context, start_decl, + push_parm_decl, grokfield, start_function): Update calls to + grokdeclarator. + (check_bitfield_type_and_width): New function. + (finish_struct): Move bit-field validation to grokdeclarator + and check_bitfield_type_and_width. + +2003-12-16 John David Anglin + + PR bootstrap/13386 + * configure.in (gcc_cv_ld_hidden): Set to yes on hppa64*-*-hpux* when + using HP native linker. + * configure: Rebuilt. + +2003-12-16 Mark Mitchell + + PR c++/13275 + * c-common.h (enum rid): Add RID_OFFSETOF. + * c-parser.in (rid_to_yy): Ignore RID_OFFSETOF. + * ginclude/stddef.h (offsetof): Reimplement for C++, using + __offsetof__. + * doc/extend.texi: Document __offsetof__. + +2003-12-16 Stan Cox + + * config/iq2000/iq2000.h: Formatting. + (MAX_INT_TYPE_SIZE, MAX_INT_TYPE_SIZE, CONST_COSTS, RTX_COSTS) + (ADDRESS_COST, ASM_OUTPUT_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL) + (IMPLICIT_FIX_EXPR, EASY_DIV_EXPR, SLOW_ZERO_EXTEND): Remove + * config/iq2000/iq2000.c: Formatting. + (iq2000_rtx_costs): New. + +2003-12-16 Richard Earnshaw + + * arm.md (addsi3_carryin_shift): Add missing register constraints. + +2003-12-16 Loren James Rittle + + * testsuite/g++.old-deja/g++.eh/badalloc1.C: Tweak to + pass with -pthread on FreeBSD systems. + +2003-12-16 Richard Sandiford + + * config/mips/mips.c (mips_file_end): Only write symbols that have + been referenced at some point. + +2003-12-16 Richard Sandiford + + * config/mips/mips.c: Include langhooks.h + (mips_build_builtin_va_list): Use lang_hooks.types.make_type. + +2003-12-16 Eric Botcazou + + PR optimization/13313 + * combine.c (make_extraction) [REG]: Do not use + gen_lowpart_for_combine when POS is non-zero. + +2003-12-16 Hartmut Penner + + * altivec.h (vec_cmple, vec_all_numeric): Fix typo. + * testsuite/gcc.dg/altivec-10.c: Test for above. + +2003-12-15 David O'Brien + + * Makefile.in (CPPFLAGS): Initialize from configure. + +2003-12-15 Roger Sayle + + PR middle-end/13400 + * ifcvt.c (noce_process_if_block): Disable unconditional write + optimizations if we could introduce a store to trapping memory + that wasn't present previously. + +2003-12-15 Kazu Hirata + + * system.h (DEFAULT_CALLER_SAVES): Poison. + * toplev.c (flag_caller_saves): Always initialize with 0. + * doc/tm.texi (DEFAULT_CALLER_SAVES): Remove. + +2003-12-15 Kazu Hirata + + * flow.c (EXIT_IGNORE_STACK): Move to ... + * defaults.h (EXIT_IGNORE_STACK): ... here. + * dojump.c (clear_pending_stack_adjust): Don't use #ifdef + EXIT_IGNORE_STACK. + * function.c (expand_function_end): Likewise. + * global.c (global_alloc): Likewise. + * ra.c (init_ra): Likewise. + * reload1.c (init_elim_table): Likewise. + * reorg.c (fill_simple_delay_slots): Likewise. + * resource.c (init_resource_info): Likewise. + * doc/tm.texi (EXIT_IGNORE_STACK): Document that the default + is 0. + +2003-12-15 J"orn Rennecke + + * reload.c (reg_overlap_mentioned_for_reload_p): + When looking at a PLUS in X, avoid spuriously returning nonzero + when IN is a REG or another simple PLUS, or a MEM containing one. + + * loop.c (loop_invariant_p): Amend comment about where new registers + might come from. + +2003-12-15 Andreas Jaeger + + * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Remove + handling of obsolete language CHILL. + +2003-12-15 Waldek Hebisch + + * tree.c (initializer_zerop): Add test for empty set. + * integrate.c (function_cannot_inline_p): Forbid inlining + functions calling `longjmp'. + +2003-12-15 Nathan Sidwell + + PR c++/11773 + * doc/gcov.texi (Gcov and Optimization): Document inline function + behaviour. Fix some file suffixes. + +2003-12-14 David O'Brien + + * config/i386/i386.h (__amd64, __amd64__): Remove duplicates. + +2003-12-14 Mark Mitchell + + * c-common.h (c_parse_error): Declare it. + * c-common.c (c_parse_error): New function. + * c-parse.y (yyerror): Use it. + +2003-12-14 John David Anglin + + PR target/13054 + * pa-protos.h (indexed_memory_operand, borx_reg_operand, + move_dest_operand, move_src_operand): New protypes. + (basereg_operand, move_operand, reg_or_nonsymb_mem_operand): Deleted. + * pa.c (copy_reg_pointer, indexed_memory_operand, move_dest_operand, + move_src_operand): New functions. + (basereg_operand, reg_or_nonsymb_mem_operand, move_operand): Delete. + (reg_or_0_or_nonsymb_mem_operand): Return false for unscaled indexed + address until cse is not expected on targets with non-equivalent + space registers. + (hppa_legitimize_address): Canonicalize unscaled indexed addresses + on targets non-equivalent space registers. + (emit_move_sequence): Break out indexed addresses from destination + operand. Similarly, break out unscaled indexed addresses from + source operand on targets with non-equivalent space registers. Fix + REG_POINTER flag when possible. Mark register pointer when creating + new pointers. + (print_operand): Handle unscaled index addresses. + * pa.h (IS_INDEX_ADDR_P, IS_LO_SUM_DLT_ADDR_P): New macro subroutines + for EXTRA_CONSTRAINT. + (EXTRA_CONSTRAINT): Rework to make more readable. + (MODE_OK_FOR_SCALED_INDEXING_P, MODE_OK_FOR_UNSCALED_INDEXING_P): New + subroutines for GO_IF_LEGITIMATE_ADDRESS. + (GO_IF_LEGITIMATE_ADDRESS): Rework using new subroutines. Allow scaled + and unscaled addresses. Canonicalize unscaled indexed addresses on + targets with non-equivalent space registers. Document issues in + handling indexed address modes on PA-RISC. + (PREDICATE_CODES): Update for new and deleted predicates. + * pa.md (move_dest_operand, move_src_operand, indexed_memory_operand): + Use new predicates in move patterns. + Add peephole2 patterns to optimize floating point stores. Fix + constrain preferencing in move patterns. Delete patterns for handling + unscaled indexed memory loads. Add missing load and store with + base-register modification patterns. Correct SFmode floating point + store pattern. Add missing zero extension loads. + +2003-12-13 Steven Bosscher + + * ggc-zone.c (struct alloc_zone): Don't pre-declare, it already + comes in with ggc.h. Add a new bool field `dead'. + (destroy_ggc_zone): Don't destroy a zone at once. Instead, only + set the `dead' flag for the dead zone. Wrap a sanity check in + ENABLE_CHECKING. + (ggc_collect_1): Always mark and sweep if a zone has the `dead' + flag set. + (ggc_collect): Free dead zones after collecting. + +2003-12-13 Jan Hubicka + + * coverage.c (get_coverage_counts): Use inform instead of warning + about missing profile. + +2003-12-12 Steven Bosscher + + * Makefile.in (opts.o, explow.o): Depend on langhooks.h + +2003-12-12 Geoffrey Keating + + * config.gcc : Don't use fixproto. + : Likewise. + +2003-12-12 Jakub Jelinek + + * config/ia64/linux.h (IA64_GATE_AREA_END): Increase by 64K. + (MD_FALLBACK_FRAME_STATE_FOR): Set fpsr_loc, br_loc[6] and + br_loc[7]. Update comment. + (MD_HANDLE_UNWABI): Define. + * config/ia64/unwind-ia64.c (struct unw_state_record): Add + unwabi field. + (struct _Unwind_Context): Increase br_loc array size to 8 entries. + (desc_abi): Set unwabi. + (uw_update_reg_address): Allow br up to 7. + (uw_update_context): Invoke MD_HANDLE_UNWABI if defined. + (uw_install_context): Load b1..b5 from correct locations. + Fix insn loading ar.fpsr. + * doc/tm.texi: Document MD_HANDLE_UNWABI. + +2003-12-12 Roger Sayle + + PR optimization/13037 + * loop.c (update_giv_derive): Ignore redundant sets of a biv when + calculating how to derive a giv from a biv. + +2003-12-12 Neil Booth + + PR preprocessor/12935 preprocessor/12952 preprocessor/13046 + * cpplib.c (prepare_directive_trad): Clear skipping only in + #if and #elif directives. + (do_undef): Call the handler even if the identifier is not a macro. + * cpptrad.c (scan_parameters): Emit an error message. + (_cpp_create_trad_definition): Remember the params list even on + failure. + +2003-12-11 Zack Weinberg + + * arm.c (ARM_ADDRESS_COST, THUMB_ADDRESS_COST): Convert macros + to inline functions: arm_arm_address_cost, arm_thumb_address_cost + respectively. + (arm_address_cost): Use 'em. + +2003-12-12 Rainer Orth + + * config/alpha/osf.h (TARGET_OS_CPP_BUILTINS): Define + __STDC_VERSION__ to ISO C94 for C++. + + * fixinc/inclhack.def (alpha_wchar): New fix. + * fixinc/fixincl.x: Regenerate. + * fixinc/tests/base/wchar.h: New file. + +2003-12-11 David Mosberger + + * unwind-libunwind.c (_Unwind_SetGR): Clear the NaT bit as + required by C++ ABI for Itanium. + * config/t-libunwind (LIB2ADDEH): Remove unwind-libunwind.c. + * config/t-libunwind-no-eh: New file. + * configure.in: Check libunwind for _Unwind_Resume() and if it's + present, set libunwind_has_eh_support to "yes". + * configure: Regenerate. + * config.gcc (ia64*-*-linux*): If $libunwind_has_eh_support is + set to yes, use t-libunwind, otherwise, use t-libunwind-no-eh. + +2003-12-11 Richard Sandiford + + * config/mips/mips.c (mips_global_pointer): Force functions with + a nonlocal goto to set up $gp. + +2003-12-11 James E Wilson + + PR target/13132 + * function.c (gen_mem_addressof): When no decl, explicitly clear flag + bits. + +2003-12-12 Nick Clifton + + * config/m32r/m32r.c: Convert to ISO-C + +2003-12-12 Kazuhiro Inaoka + + * doc/invoke.texi: Replace Mitsubishi with Renesas. + * config/m32r/m32r.h: Ditto. + * config/m32r/m32r.c: Ditto. + * config/m32r/m32r.md: Ditto. + +2003-12-11 Steven Bosscher + + * basic-block.h (BLOCK_HEAD, BLOCK_END): Remove. + (BLOCK_HEAD_TREE, BLOCK_END_TREE): Remove. + (basic_block_def): Rename `head' to `head_' and `end' to `end_'. + (BB_HEAD, BB_END): New accessor macros for the `head_' and `end_' + fields of a basic block. + * bb-reorder.c, bt-load.c, caller-save.c, cfg.c, cfganal.c, + cfgbuild.c, cfgcleanup.c, cfglayout.c, cfgloop.c, cfgloopanal.c, + cfgloopmanip.c, cfgrtl.c, combine.c, conflict.c, df.c, emit-rtl.c, + final.c, flow.c, function.c, gcse.c, global.c, graph.c, + haifa-sched.c, ifcvt.c, lcm.c, local-alloc.c, loop-unswitch.c, + loop.c, postreload.c, predict.c, profile.c, ra-build.c, ra-debug.c, + ra-rewrite.c, ra.c, recog.c, reg-stack.c, regclass.c, regmove.c, + regrename.c, reload1.c, resource.c, sched-ebb.c, sched-rgn.c, + sibcall.c, tracer.c, config/frv/frv.c, config/i386/i386.c, + config/ia64/ia64.c: Use the BB_HEAD and BB_END macros instead of + accessing the `head' and `end' fields of a basic block directly. + + * gengtype.c: Teach about "void**" pointers and "void *" function + types. Fixes earlier commit. + +2003-12-10 Geoffrey Keating + + * doc/extend.texi (Vector Extensions): Document that bitwise + operations also work on vectors. + +2003-12-10 Richard Earnshaw + + * arm.md: New split patterns for optimizing bitfield accesses. + +2003-12-10 Steven Bosscher + + * README.Portability: Remove K+R section. + + * gengtype-lex.l: Teach about "void**" pointers and + "void*" function types. + +2003-12-10 Eric Botcazou + + PR target/13354 + * config/sparc/sparc.c (sparc_output_mi_thunk): Load DELTA + manually if one can do that with only one instruction. + +2003-12-10 Nick Clifton + + * config.gcc (arm-linux): Include linux.h in tm_file so that + LINUX_TARGET_OS_CPP_BUILTINS is defined. + * config/arm/linux-elf.h (LIB_SPEC): Protect the definition. + +2003-12-09 James E Wilson + + * rtl.def (CODE_LABEL, NOTE): Correct operand numbers in comments. + +2003-12-09 Matt Austern + + PR c/13134 + * c-decl.c (duplicate_decls): Copy visibility flag when appropriate. + +2003-12-09 Kazuhiro Inaoka + + * config/m32r/m32r.h: Add support for m32r2 processor. Including + a new command line option -m32r2 to select it. + * config/m32r/m32r.c: Add support for the new processor variant. + * config/m32r/m32r.md: Likewise. + * config/m32r/t-m32r: Add m32r2 multilibs. + * doc/invoke.texi: Document the new command line switch. + +2003-12-08 Kazu Hirata + + * defaults.h (LOCAL_REGNO): Give the default definition. + * flow.c (LOCAL_REGNO): Remove. + * reload1.c (LOCAL_REGNO): Likewise. + +2003-12-08 Geoffrey Keating + + PR target/11848 + * rs6000.h (CANNOT_CHANGE_MODE_CLASS): Allow change of mode + in floating-point registers between TFmode and DImode. + * rs6000.c (rs6000_emit_move): Split moves early. + (secondary_reload_class): Random Whitespace Change. + (rs6000_split_multireg_move): Support moves involving FP registers. + Emit instructions directly. + * rs6000-protos.h (rs6000_split_multireg_move): Update prototype. + * altivec.md: Update for changes to rs6000_split_multireg_move. + * rs6000.md: Update for changes to rs6000_split_multireg_move. + (movtf_internal): Support moves to/from GPRs. + +2003-12-08 Stuart Hastings + + * config/i386/i386.md: Typo in split of fp-valued if_then_else. + +2003-12-08 James E Wilson + + PR target/13132 + * expmed.c (extract_bit_field): Only call mode_for_size for scalar + integer modes. + +2003-12-08 Nathanael Nerode + + * doc/install.texi: Revert change of Dec 7; gcc is still a 2.13 + directory. + +2003-12-08 Alexandre Oliva + + * config/frv/frv.md (subdi2): Merge with _internal insn_and_split, + by using match_scratch. + (negdi2): New. + +2003-12-08 Jason Merrill + Daniel Berlin + + PR debug/11114 + Support namespaces in DWARF 2 output. + * dwarf2out.c (gen_namespace_die): New function. + (force_namespace_die, setup_namespace_context): New fns. + (declare_in_namespace): New fn. + (gen_decl_die): Call declare_in_namespace. Handle namespaces. + (dwarf2out_decl): Handle namespaces. + (scope_die_for): Pass through a namespace scope. + (class_scope_p): Rename to class_or_namespace_scope_p. + (gen_subprogram_die, gen_variable_die): Adjust. + (gen_struct_or_union_die): Always emit a declaration + if context_die is a namespace. + +2003-12-08 Jan Hubicka + + * unwind-pe.h (read_uleb128): Fix handling of large values + (read_sleb128): Fix handling of large values + +2003-12-08 Andrew Pinski + + 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. + +2003-12-08 Richard Earnshaw + + * arm.md: New split to transform ((X << y) - 1) into ~(~(X-1) << y) + for constant X. + +2003-12-08 Richard Sandiford + + * calls.c (expand_call): Don't try using tail or recursive calls + after the function body has been expanded. + +2003-12-08 Jan Hubicka + + * i386.md (cmpstr expander): Obey TARGET_INLINE_ALL_STRINGOPS + +2003-12-08 Arnaud Charlet + + PR ada/13324, PR ada/12614 + * doc/install.texi: Update requirements for building Ada. + +2003-12-07 David Edelsohn + Graham Reed + + * collect2.c (GCC_OK_SYMBOL): Add support for AIX C_WEAKEXT. + (GCC_UNDEF_SYMBOL): Same. + +2003-12-07 Kazu Hirata + + * final.c (final_scan_insn): Don't use FINAL_PRESCAN_LABEL. + * system.h (FINAL_PRESCAN_LABEL): Poison. + * doc/tm.texi (FINAL_PRESCAN_LABEL): Remove. + +2003-12-07 Kaveh R. Ghazi + + * Makefile.in (compare): Combine toplevel and $(SUBDIRS) cases. + +2003-12-07 Nathanael Nerode + + * configure.in, aclocal.m4: Revert to pre-2.5x conversion status. + * configure: Regenerate with autoconf 2.13. + + * configure.in: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM + with modern equivalents. + * configure: Regenerate. + + * configure.in: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE. + * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove. + * configure: Regenerate. + + * configure: Regenerate with (preferred) autoconf 2.57. + * doc/install.texi: Note that 'gcc' is now a 2.57 directory. + +2003-12-07 Eric Botcazou + + PR optimization/12965 + * caller-save.c (save_call_clobbered_regs): Do not save/restore + registers around no-return calls. + +2003-12-07 Nathanael Nerode + + * configure.in: Make minimum necessary changes for autoconf 2.5x. + * aclocal.m4: Make minimum necessary changes for autoconf 2.5x. + * configure: Regenerate with autoconf 2.58. + +2003-12-07 Eric Botcazou + + PR optimization/13318 + * loop.c (express_from): Protect integer division from overflow. + +2003-12-07 Eric Botcazou + + PR optimization/13060 + * function.c (fixup_var_refs_1) [SUBREG]: Recognize even if a + replacement already exists. Fix again the whole insn if that fails. + +2003-12-06 Andrew Pinski + + * config/rs6000/rs6000.c (macho_branch_islands): Use + HOST_WIDE_INT_PRINT_UNSIGNED. + +2003-12-06 Richard Sandiford + + * varasm.c (incorporeal_function_p): New. + (assemble_external): Use it as a filter. + * config/mips/mips.c (mips_output_external): Don't check for builtin + functions here. + +2003-12-06 Richard Earnshaw + + * arm.md (IOR (COMPARISON) (AND)): New define_splits. + +2003-12-06 Kelley Cook + + * Makefile.in (program_transform_cross_name): Delete. + (GCC_CROSS_NAME, CPP_CROSS_NAME): Delete. + (PROTOIZE_CROSS_NAME, UNPROTOIZE_CROSS_NAME): Delete. + (AR_FOR_TARGET, RANLIB_FOR_TARGET, NM_FOR_TARGET): Adjust for above. + (install_cpp, install_driver, install-man, uninstall): Likewise. + +2003-12-06 Alan Modra + + PR 13169 + * basic-block.h (PROP_ASM_SCAN): Define. + * final.c (regs_asm_clobbered): New array. + * regs.h (regs_asm_clobbered): Declare. + * flow.c (life_analysis): Init it. + (mark_set_regs): Set PROP_ASM_SCAN for asms. + (mark_set_1): Set regs_asm_clobbered. + * global.c (global_alloc): Don't set eliminable_regset when + regs_asm_clobbered. + +2003-12-05 Mark Mitchell + + * config/ia64/ia64.h (MUST_PASS_IN_STACK): Define. + + PR c++/13314 + * emit-rtl.c (set_mem_attributes_minus_bitpos): Robustify. + +2003-12-05 Andrew Pinski + + PR driver/13211 + * gcc.c (execute) Increment execution_count when returning + early because verbose_only_flag is true. + +2003-12-05 Per Bothner + + * cppfiles.c (file_hash_hash): New static function. + (hash_string_eq): Renamed static function to file_hash_eq. + (_cpp_init_files): Create file_hash table with above callbacks. + (cpp_included): Must use htab_find_with_hash insead of htab_find. + (_cpp_find_find, make_cpp_dir): Must use htab_find_slot_with_hash. + +2003-12-05 Per Bothner + + * line-map.h (source_location): New typedef. + (fileline): Redefined as source_location. + (struct line_map, linemap_add, linemap_lookup): Replace filefile + by source_location. + * line-map.c (linemap_add, linemap_lookup): Use source_location. + +2003-12-05 Richard Henderson + + * config/alpha/alpha.c (alpha_build_builtin_va_list): Add dummy + field to suppress -Wpadded warnings. + +2003-12-05 Stuart Hastings + + * config/rs6000/rs6000.md: Correct macro test of TARGET_MACHO. + +2003-12-05 Stuart Menefy + J"orn Rennecke + + PR target/13302 + * sh.c (sh_build_builtin_va_list): Use (*lang_hooks.types.make_type). + +2003-12-05 Roger Sayle + + * dojump.c (do_jump): If the expression being compared against + zero, is the subreg of a promoted variable, perform the comparison + in the promoted mode. + * simplify-rtx.c (simplify_unary_operation): Optimize sign and + zero-extensions of subregs of promoted variables where the + extension is identical to that used to promote the variable. + +2003-12-05 Hans-Peter Nilsson + + PR target/13256 + * resource.h (enum mark_resource_type): Remove member MARK_DEST. + The only user changed as follows: + * resource.c (mark_set_resources) : Always recurse for + SET_SRC (x). + : Always recurse on + operands. + : Delete, deferring to default code. + +2003-12-05 Waldek Hebisch + + * stmt.c (expand_nl_goto_receiver): Copy hard register clobbers + and ASM_INPUT barrier from expand_builtin_setjmp_receiver. + +2003-12-05 Richard Sandiford + + * config/mips/mips.c (mips_expand_call): Don't allow laziy binding + for n32 & n64 abicalls. + +2003-12-05 Richard Sandiford + + PR bootstrap/13145 + * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Adjust comment. + * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Add $fcall. + (mips_load_got): Always create a constant MEM. + (mips_expand_call): Use load_callsi and load_calldi. + * config/mips/mips.md (UNSPEC_LOAD_CALL, FAKE_CALL_REGNO): New consts. + (load_callsi, load_calldi): New patterns. + +2003-12-05 Peter Gerwinski + + * tree.def (PLACEHOLDER_EXPR): Clarify commentary. + +2003-12-05 Steven Bosscher + + * config/d30v/d30v-protos.h , config/d30v/d30v.c, + config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c, + config/fr30/fr30-protos.h, config/fr30/fr30.c, + config/i370/i370-protos.h, config/i370/i370.c, + config/i960/i960-protos.h, config/i960/i960.c, + config/ip2k/ip2k-protos.h, config/ip2k/ip2k.c, + config/m32r/m32r-protos.h, config/m32r/m32r.c, + config/mn10300/mn10300-protos.h, config/mn10300/mn10300.c, + config/ns32k/ns32k-protos.h, config/ns32k/ns32k.c: + Convert to ISO C90 function declarations and definitions. + +2003-12-05 Eric Botcazou + + * doc/extend.texi (Constructing Calls): Add warning about + the limitations of the functions. + +2003-12-05 Eric Botcazou + + PR middle-end/11151 + * function.h (struct function): New field 'x_naked_return_label'. + * function.c (free_after_compilation): Set it to NULL. + (expand_function_end): Emit 'naked_return_label' if it exists. + * rtl.h (expand_naked_return): Declare. + * stmt.c (expand_naked_return): New function to generate a + jump to 'naked_return_label'. + * builtins.c (expand_builtin_return): Call expand_naked_return + instead of expand_null_return. + * config/sparc/sparc.md (untyped_return): Likewise. + +2003-12-04 Andrew Pinski + + PR target/11322 + * config/sh/netbsd-elf.h (NO_PROFILE_COUNTERS): Define. + + PR target/12467 + * config/rs6000/altivec.md (altivec_vmsummbm): Fix typo. + +2003-12-04 Stuart Hastings + + * rs6000.c (output_call, macho_branch_islands, + add_compiler_branch_island, no_previous_def, get_previous_label) + Revisions of xx_stub functions for branch islands, + add -fPIC support for Darwin. + * rs6000-protos.h (output_call) Prototype. + * rs6000.md Use output_call. + * invoke.texi Explain Darwin semantics of -longcall. + * testsuite/gcc.dg/darwin-abi-1.c Revise testcase for -longcall/jbsr. + +2003-12-04 Richard Henderson + + * config/i386/i386.md (addqi3_carry): Use q not r constraints. + (subqi3_carry): Likewise. + +2003-12-04 J"orn Rennecke + + PR optimization/13260 + * sh-protos.h (sh_expand_t_scc): Declare. + * sh.h (PREDICATE_CODES): Add cmpsi_operand. + * sh.c (cmpsi_operand, sh_expand_t_scc): New functions. + * sh.md (cmpsi): Use cmpsi_operand. If T_REG is compared to + something that is not a CONST_INT, copy it into a pseudo register. + (subc): Fix description of new T value. + (slt, sgt, sge, sgtu): Don't clobber T after rtl generation is over. + (sltu, sleu, sgeu): Likewise. + (seq, sne): Likewise. Use sh_expand_t_scc. + +2003-12-04 Nathanael Nerode + + * configure.in: Generalize the CONFIG_HEADERS pattern under which + we stamp cstamp-h. + * configure: Regenerate. + + * configure.in: Pull AC_CHECK_HEADER call out of shell if statement + to avoid trouble when updating to autoconf 2.5x. + * configure: Regenerate (with autoconf 2.13 still). + +2003-12-04 J"orn Rennecke + + * sh.md (truncdiqi2): Use andi opcode for immediate. + (reload_outdf+1,reload_outdf+2): Remove constraints. + (movv16sf_i): Fxi multiplier for SUBREG_BYTE. + (movv8qi_i+2): Zero-extend low byte before adding it to high byte. + (fipr, ftrv): Add .s suffix to opcode. + +2003-12-04 Richard Sandiford + + PR target/13186 + + Revert all of the following patch, except the addition of + hook_bool_machine_mode_true: + + 2003-11-02 Richard Sandiford + + * 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. + +2003-12-03 Mark Mitchell + + * 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-12-03 James E Wilson + + * gcc.c (init_spec): Pass -lunwind to init_gcc_specs in eh_name. + + * gcc-page.c (extra_order_size_tab): Correct comment. + +2003-12-03 Kazu Hirata + + * config/h8300/h8300.c (push): Call gen_push_h8300hs_advanced + instead of gen_push_h8300hs. + (pop): Call gen_pop_h8300hs_advanced instead of + gen_pop_h8300hs. + * config/h8300/h8300.h (TRAMPOLINE_SIZE): Use Pmode. + * config/h8300/h8300.md (*tablejump_h8300hs_advanced): + Tighten the predicate. + (*tablejump_h8300hs_normal): Tighten the predicate. + (push_h8300hs): Change to + push_h8300hs_advanced. + (pop_h8300hs): Change to pop_h8300hs_advanced. + +2003-12-03 Eric Christopher + + * rtl.c: Fix typo. + * config/mips/mips.h: Ditto. Fix formatting. + +2003-12-04 Ben Elliston + + * future.options: Remove. Move to gnu.org web pages. + +2003-12-03 Eric Christopher + + * c-parse.in (c_in_iteration_stmt, c_in_case_stmt): Move + from here... + * c-tree.h: to here. + +2003-12-03 Jan Hubicka + + PR optimization/12324 + * toplev.c (rest_of_decl_compilation): Do not deffer when compiling + in unit-at-a-time mode. + +2003-12-03 Jakub Jelinek + + * expr.c (store_constructor): Only set RTX_UNCHANGING_P for + read-only field if cleared is 0. + +2003-12-03 Nathanael Nerode + + * config.gcc: Mark obsolete targets for GCC 3.4. + +2003-12-03 Zack Weinberg + + * aclocal.m4 (AM_ICONV): Add explicit check for iconv.h. + * config.in, configure.in: Regenerate. + * cpphash.h: Check both HAVE_ICONV and HAVE_ICONV_H before + including iconv.h. + +2003-12-03 Alan Modra + + PR target/11229 + * cse.c (cse_insn): Set classp using src_const_elt if + src_eqv_elt is NULL. + +2003-12-03 Richard Earnshaw + + * gcse.c (reg_clear_last_set): New function. + (reg_set_info): If data is non-null, treat it as an sbitmap of + registers, set the bit for the register being set. + (compute_store_table): Allocate last_set_in with xcalloc. Do not + memset this array on each iteration. Pass reg_set_in_block[bb->index] + to note_stores while computing last_set_in instead of scanning + last_set_in after the first pass through the insns. + Clear last_set_in using reg_clear_last_set instead of explicitly + rescanning after each insn. If checking is enabled, assert that + last_set_in is completely zeroed after each bb has been processed. + +2003-12-02 Geoffrey Keating + + * df.c (df_uses_record) : The argument of a MEM is read-only, + never read-write. + : Delete incorrect comment. + : Remove 'use_flags' variable. + +2003-12-03 David Edelsohn + + * function.c (assign_parms): Make sure parm PARALLEL combined + in reg is composed of more than one object and the mode really + produces a reg. + +2003-12-03 Jan Hubicka + + * i386.c (classify_argument): Make it 64bit clean. + +2003-12-02 Richard Sandiford + + * config/mips/mips.c (mips_output_external): Replace checks for + specific builtin-in functions with a check for DECL_BUILTIN_IN. + +2003-12-02 Richard Henderson + + * rtl.h (PUT_CODE, PUT_MODE): Remove ENUM_BITFIELD cast. + * tree.h (TREE_SET_CODE): Likewise. + * recog.h (struct insn_operand_data): Move const after ENUM_BITFIELD. + +2003-12-02 Ben Elliston + + * dbxstclass.h: Rename from this .. + * xcoff.h: .. to this. + * xcoffout.c: Include xcoff.h. + +2003-12-01 Kaveh R. Ghazi + + * Makefile.in (GCC_CFLAGS): Add -Wold-style-definition. + +2003-12-01 James Lemke + + * config/arm/arm.c (arm_rtx_costs): Improve for xscale multiply. + +2003-12-01 Roger Sayle + + 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. + +2003-12-01 Roger Sayle + + PR optimization/12322 + * gcse.c (struct ls_expr): Change type of hash_index from int to + unsigned int. + (hash_expr): Document hash_table_size parameter and wrap long line. + (ldst_entry): Calculate expression's hash_index and record in ptr. + (trim_ld_motion_mems): Use hash_index to search a single bucket + instead of scanning the entire hash_table. Remove the "del" local + variable and use the equivalent "expr == 0" instead. Change last + to be a pointer to the pointer to the current element, to simplify + and speed-up deleting from a linked list. + +2003-12-01 James E Wilson + + * doc/contrib.texi: Update David Mosberger. + + * doc/c-tree.texi (CONSTRUCTOR): Clarify element order and handling + of missing fields. + + PR target/8407 + * config/ia64/ia64.c (ia64_function_arg): For single-reg HFA, call + gen_rtx_REG to create new reg with argument mode. + +2003-12-01 Steven Bosscher + + * ggc.h (struct alloc_zone): Move forward declaration up. + (new_ggc_zone): New function prototype. + (destroy_ggc_zone): Ditto. + * ggc-simple.c (new_ggc_zone): New function, does nothing. + (destroy_ggc_zone): Ditto. + * ggc-page.c (new_ggc_zone): New function, does nothing. + (destroy_ggc_zone): Ditto. + * ggc-zone.c (struct page_entry): Fix comment. + (ggc_alloc_typed): Use a switch statement instead of ifs. + (new_ggc_zone): New function to set up a new GC zone. + (destroy_ggc_zone): New function to remove a GC zone. + init_ggc): Use new_ggc_zone to set up the default zones. + (ggc_collect): Walk a list of zones, instead of just the + default zones. Report statistics using the zone name. + +2003-12-01 Ulrich Weigand + + * unroll.c (find_splittable_givs): Add missing extend_value_for_giv. + +2003-12-01 Roger Sayle + + PR optimization/12628 + * toplev.c (rest_of_handle_jump_bypass): Call reg_scan. + * regclass.c (reg_scan): Include allocate_reg_info time in + TV_REG_SCAN. Minor clean-ups. + (reg_scan_update): Minor clean-ups. + +2003-12-01 Ulrich Weigand + + * config.gcc (s390x-ibm-tpf*): Add extra_parts. + +2003-12-01 James E Wilson + + * config/ia64/ia64.h (FUNCTION_ARG_REGNO_P): Use AR_REG_FIRST not + GR_ARG_FIRST. + +2003-12-01 Zack Weinberg + + * common.opt: Remove -fgnu-linker. + * flags.h: Remove flag_gnu_linker. + * opts.c: Don't handle OPT_fgnu_linker. + * toplev.c: Don't initialize flag_gnu_linker. + Remove gnu-linker entry from f_options. + * config/dsp16xx/dsp16xx.h (OPTIMIZATION_OPTIONS): + Don't reset flag_gnu_linker. + * config/mips/mips.c (override_options): Likewise. + * doc/invoke.texi: Remove all mention of -fgnu-linker. + +2003-12-01 Daniel Berlin + + * ggc-zone.c (ggc_pch_write_object): Calculate object size using + ggc_get_size (which accounts for large objects properly). + +2003-12-01 Jeff Sturm + + PR optimization/13024 + * toplev.c (rest_of_handle_new_regalloc): Remove rebuild_notes + parameter. + (rest_of_handle_old_regalloc): Likewise. Add rebuild_notes + declaration. Rebuild jump labels following local_alloc if necessary. + (rest_of_compilation): Remove rebuild_label_notes_after_reload + declaration. Don't pass rebuild_notes parameter to + rest_of_handle_new_regalloc and rest_of_handle_old_regalloc. + Don't rebuild jump labels. + +2003-12-01 Jeff Law + + * flow.c (count_or_remove_death_notes_bb): New. Extracted from + count_or_remove_death_notes. + (count_or_remove_death_notes): Use EXECUTE_IF_SET_IN_SBITMAP. + +2003-12-01 Andreas Krebbel + + * builtins.c (expand_builtin_longjmp): Added two memory clobbers. + +2003-12-01 Ulrich Weigand + + * reload.c (find_reloads_address): Split addresses of type + (plus (plus (reg) (reg)) (const_int)) only if one register + is either a valid base register or else one of the stack + frame related registers (sp/fp/ap). + +2003-12-01 Steven Bosscher + + * function.c (update_epilogue_consts): Don't use PARAMS. + * rtl.h (web_main): Ditto. + * target.h (is_costly_dependence): Ditto + +2003-12-01 Eric Botcazou + + PR middle-end/7847 + * expr.c (expand_expr) [normal_inner_ref]: When 'offset' is non-zero, + do not recheck that 'op0' is a MEM. Move comment. When testing for + unaligned objects, take also into account the alignment of 'op0' and + 'mode1' if 'op0' is a MEM. + +2003-12-01 Gabriel Dos Reis + + * doc/c-tree.texi (Function Bodies): Update HANDLER documentation. + +2003-12-01 Kelley Cook + + * doc/install.texi: Note that fastjar is built with automake 1.7.x + and autoconf 2.57. + +2003-12-01 Alan Modra + + * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Test + target_flags directly rather than using TARGET_* defines. + +2003-11-30 Ben Elliston + + * doschk.c: Remove. + +2003-11-30 Richard Sandiford + + PR target/12727 + * config/mips/mips.c (mips_save_reg): Fix frame information for sdc1 + on 32-bit big-endian targets. + +2003-11-30 Kazu Hirata + + * genemit.c (register_constraints): Remove. + +2003-11-30 Andreas Krebbel + + * config/s390/s390.md ("tmdi_reg", "tmsi_reg", "*movdi_64", "*movdi_31", + "iordi3"): Insns now use multiple letter constraints. + ("*movdi_lhi", "*movdi_lli", "*movdi_lay"): Insns deleted. They are now + covered by "*movdi_64". + ("*movsi_lhi", "*movsi_lli", "*movsi_lay"): Insns deleted. They are now + covered by "*movsi_zarch" and "*movsi_esa". + ("*movsi_zarch", "*movsi_!zarch"): New insns. + ("*llgt_sisi_split", "*llgt_didi_split"): Insns deleted. Now covered + by "*andsi3_zarch" and "anddi3". + ("*anddi3_ni"): Insn merged with "anddi3". + ("*andsi3_ni"): Insn merged with "*andsi3_zarch". + ("*andsi3_zarch", "*andsi3_esa"): New insns. + ("*iordi3_oi"): Insn merged with "iordi3". + ("*iorsi3_oi"): Insn merged with "*iorsi3_zarch". + ("*iorsi3_zarch", "*iorsi3_esa"): New insns. + + * config/s390/s390.c (s390_single_qi, s390_single_hi): Functions + merged to s390_single_part. + (s390_single_part): New function. + NOTE: Semantics have changed a bit. Now the value of the part must + be different from the others to get a non-negative return value. + (s390_extract_qi, s390_extract_hi): Functions merged to + s390_extract_part. + (s390_extract_part, s390_extra_constraint_str, + s390_const_ok_for_constraint_p): New functions. The L constraint got a + new meaning and the N constraint was added as a multiple letter + constraint. + (s390_extra_constraint): Function deleted. + (print_operand): New output modifier 'i' and 'j' added. + All uses of CONST_OK_FOR_LETTER_P were replaced by + CONST_OK_FOR_CONSTRAINT_P. + + * config/s390/s390-protos.h: Function prototypes adapted. + * doc/md.texi: Documentation for new constraint letters added. + +2003-11-30 Andreas Schwab + + * Makefile.in ($(DESTDIR)$(infodir)/%.info): Fix missing semicolon. + +2003-11-29 James E Wilson + + * gcc.c (init_spec): Pass -lunwind to init_gcc_specs in eh_name + instead of in shared_name. + + * final.c (final_start_function): Delete code for NON_SAVING_SETJMP. + * reload1.c (reload): Re-add it here. + +2003-11-30 Alan Modra + + * config/rs6000/rs6000.c (rs6000_elf_section_type_flags): Don't + set SECTION_WRITE on TARGET_RELOCATABLE. + +2003-11-29 Kazu Hirata + + * config/h8300/h8300.h (LIBCALL_VALUE): Use R0_REG. + +2003-11-28 Gunther Nikl + + * config/m68k/m68k.c (MOTOROLA): Move from here... + * config/m68k/m68k.h (MOTOROLA): ... to here. + (OUTPUT_JUMP): Use do {...} while (0). + * config/m68k/m68k.md: Replace #ifdef MOTOROLA with C statements. + +2003-11-28 Gunther Nikl + + * config.gcc (m68020-*-elf*, m68k-*-elf*, m68010-*-netbsdelf*, + m68k*-*-netbsdelf*, m68k-*-rtems*): Add tm_defines containing + MOTOROLA and USE_GAS. + * config/m68k/rtemself.h (MOTOROLA): Delete. + * config/m68k/netbsd-elf.h (MOTOROLA, USE_GAS): Delete. + * config/m68k/m68kelf.h (MOTOROLA, USE_GAS, SGS_CMP_ORDER): Delete. + +2003-11-29 Kazu Hirata + + * config/h8300/h8300.h (WORDS_BIG_ENDIAN): Update the comment. + +2003-11-29 Kelley Cook + + * Makefile.in (install-info): Install gccinstall.info too. + +2003-11-29 Ulrich Weigand + + * config/s390/s390.md ("cmpint_di"): Fix incorrect instruction lengths. + +2003-11-29 Ulrich Weigand + + * config/s390/s390.md ("movhi"): Do not emit extender pattern + when loading from a (MEM (ADDRESSOF ...)). + ("movqi"): Likewise. + +2003-11-29 Joseph S. Myers + + PR c/10333 + * c-parse.in (typespec_reserved_nonattr): Reject typeof on + bit-fields. + +2003-11-29 Richard Sandiford + + * stmt.c (expand_asm_operands): Check whether force_const_mem + succeeded. + +2003-11-28 Kaveh R. Ghazi + + * config/gnu.h (HURD_TARGET_OS_CPP_BUILTINS): New. + * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): New. + + * config/alpha/gnu.h, config/alpha/linux.h, + config/arm/linux-elf.h, config/cris/cris.h, config/cris/linux.h, + config/i370/linux.h, config/i386/gnu.h, config/i386/i386.h, + config/i386/linux-aout.h, config/i386/linux.h, + config/i386/linux64.h, config/ia64/linux.h, config/m68k/linux.h, + config/m68k/uclinux.h, config/mips/linux.h, + config/mn10300/linux.h, config/pa/pa-linux.h, + config/rs6000/sysv4.h, config/s390/linux.h, config/sh/linux.h, + config/sparc/linux.h, config/sparc/linux64.h, + config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Use + HURD_TARGET_OS_CPP_BUILTINS/LINUX_TARGET_OS_CPP_BUILTINS or ensure + all necessary assertions are included. + +2003-11-28 Jan Hubicka + + * emit-rtl.c (set_used_flags): New. + (verify_rtx_sharing, verify_rtl_sharing): New. + (unshare_all_rtl_1): Rename to.... + (unshare_all_rtl_in_chain): ... this one; make static. + (copy_rtx_if_shared): LABEL_REF chan be shared. + * ifcvt.c (unshare_ifcvt_sequence): New. + (noce_try_move, noce_try_store_flag, noce_try_store_flag_constants, + noce_try_addcc, noce_try_addcc, noce_try_store_flag_mask, + noce_try_cmove, noce_try_store_flag_mask, noce_try_minmax, + noce_try_abs, noce_process_if_block, find_cond_trap + * rtl.h (verify_rtl_sharing, set_used_flags, unshare_all_rtl_in_chain): + Declare. + +2003-11-28 Kazu Hirata + + * config/h8300/h8300.md: Fix a comment typo. + +2003-11-28 Kazu Hirata + + * config/h8300/h8300.md (*movsf_h8300h): Change to + *movsf_h8300hs. + (addsi_h8300): Change to *addsi_h8300. + (addsi_h8300h): Change to *addsi_h8300hs. + (subsi3_h8300): Change to *subsi3_h8300. + (subsi3_h8300h): Change to *subsi3_h8300hs. + (neghi2_h8300h): Change to *neghi2_h8300hs. + (negsi2_h8300h): Change to *negsi2_h8300hs. + +2003-11-28 Kazu Hirata + + * config/h8300/h8300.md (*subhi3_h8300): Remove '&' from the + constraint. + (*subhi3_h8300hs): Likewise. + +2003-11-28 David Edelsohn + + * config/rs6000/rs6000.h (MASK_MFCRF): New. + (TARGET_MFCRF): Test target_flags, not processor type. + (TARGET_SWITCHES): Add mfcrf and no-mfcrf. + Change Don't to Do not. + * config/rs6000/rs6000.c (processors_target_table): Add MASK_MFCRF + to power4, 970, G5. + +2003-11-27 J"orn Rennecke + + * cse.c (cse_set_around_loop): When changing a constant load + to a register -register copy, add a REG_EQUAL note. + +2003-11-27 Randolph Chung + John David Anglin + + * pa.c (hppa_profile_hook): Split gen_call_profiler into separate + insns. Use the regular call expander for the call to the profiler. + * pa.md (call_profiler): Delete. + (load_offset_label_address): New insn to load the address of the + current function for the profiler. + (lcla1, lcla2): New insns to output a code label and load its address. + +2003-11-27 Kazu Hirata + + * final.c (final_scan_insn): Remove commented-out code. + +2003-11-27 Nathanael Nerode + + * doc/install.texi: Remove ADAC reference and make accurate. + +2003-11-27 Kazu Hirata + + * config/h8300/h8300.h (FUNCTION_VALUE): Use R0_REG. + (FUNCTION_VALUE_REGNO_P): Likewise. + * config/h8300/h8300.md: Define R0_REG. + +2003-11-27 Kazu Hirata + + * config/h8300/h8300.c: Fix formatting. + * config/h8300/h8300.md: Likewise. + +2003-11-27 Kazu Hirata + + * config/h8300/h8300.h (ELIMINABLE_REGS): Update a comment. + +2003-11-27 Kazu Hirata + + * config/h8300/h8300.md: Give names to anonymous insns. + +2003-11-27 Kazu Hirata + + * config/h8300/h8300.md (extendqisi2): Remove constraints. + +2003-11-27 Gunther Nikl + + * doc/tm.texi (SYSROOT_HEADERS_SUFFIX_SPEC): Fix typo. + +2003-11-27 Eric Botcazou + + 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. + +2003-11-27 Eric Botcazou + + 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. + +2003-11-27 Eric Botcazou + + PR middle-end/8028 + PR middle-end/9890 + PR middle-end/11151 + PR middle-end/12210 + PR middle-end/12503 + PR middle-end/12692 + * builtins.c (expand_builtin_apply): Use virtual_outgoing_args_rtx + as the base address to copy the memory arguments to. + +2003-11-26 Danny Smith + + * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Declare + function aliases as functions. + +2003-11-26 Nathanael Nerode + + * aclocal.m4 (gcc_AC_PROG_GNAT): Rewrite to account for removal + of ADAC. + * configure: Regenerate. + + * Makefile.in: Remove references to ADAC. + + * configure.in: Remove check for whether ${ADAC} accepts -Wno-long-long. + * configure: Regenerate. + +2003-11-26 Eric Botcazou + Olivier Hainque + + PR target/6466 + * config/sparc/sparc-protos.h (compute_frame_size): New prototype. + (sparc_flat_compute_frame_size): Likewise. + (sparc_flat_save_restore): Move prototype... + * config/sparc/sparc.c (sparc_flat_save_restore): ...here. + (save_regs): New prototype. + (build_big_number): Likewise. + (apparent_fsize): Change type to HOST_WIDE_INT. + (actual_fsize): Likewise. + (frame_base_offset): Likewise. + (build_big_number): Add support for HOST_BITS_PER_WIDE_INT == 64. + Change string descriptor to HOST_WIDE_INT_PRINT_DEC. + [TARGET_ARCH64]: Use the sequence of sparc_emit_set_const64_longway + to load a 64-bit constant. + (sparc_nonflat_function_prologue): Change string descriptor to + HOST_WIDE_INT_PRINT_DEC. Change offset type to HOST_WIDE_INT. + (output_restore_regs): Change offset type to HOST_WIDE_INT. + (sparc_nonflat_function_epilogue): Change string descriptor to + HOST_WIDE_INT_PRINT_DEC. Use build_big_number. + (output_sibcall): Change size type to HOST_WIDE_INT. Use + build_big_number. Change string descriptor to HOST_WIDE_INT_PRINT_DEC. + (sparc_frame_info): Change types for several components. + (sparc_flat_compute_frame_size): Update types according to previous + change. + (sparc_flat_function_prologue): Change string descriptor to + HOST_WIDE_INT_PRINT_DEC. Change offset type to int. Use + build_big_number. + (sparc_flat_function_epilogue): Change offset type to int. + Rename 'size1' into 'reg_offset1'. Change string descriptor to + HOST_WIDE_INT_PRINT_DEC. Use build_big_number. Change big number + limit to 4096 instead of 4095. + + * config/sparc/sparc.c (mems_ok_for_ldd_peep): Change offset type to + HOST_WIDE_INT. + +2003-11-24 Waldek Hebisch + + * function.c: Make outer_function-chain external. + * function.h: Likewise. + +2003-11-24 Richard Sandiford + + * config.gcc (mips-sgi-irix6*): Add t-iris6gld to tmake_file when + using GNU ld. + * config/mips/iris6.h (IRIX6_STARTFILE_SPEC): New, taking the + whole of the previous STARTFILE_SPEC except crtbegin.o%s. + (IRIX6_ENDFILE_SPEC): Likewise ENDFILE_SPEC and crtend.o%s. + (STARTFILE_SPEC, ENDFILE_SPEC): Define in terms of the above. + (SUBTARGET_EXTRA_SPECS): Define. + * config/mips/iris6gld.h (LINK_SPEC): Change -init function + to __gcc_init and -fini function to __gcc_fini. + (STARTFILE_SPEC): Redefine, including irix6-crti.o before crtbegin.o. + (ENDFILE_SPEC): Likewise, including irix6-crtn.o after crtend.o. + (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Define. + * config/mips/t-iris6gld, + * config/mips/irix6-crti.asm, + * config/mips/irix6-crtn.asm: New files. + +2003-11-24 Eric Christopher + + PR C/13014 + * c-decl.c (c_in_iteration_stmt, c_in_case_stmt): New. + (start_function): Use. + (c_push_function_context): Ditto. + (c-pop_function_context): Ditto. + (language_function): Move... + * c-tree.h: ... here. Add x_in_iteration_stmt, and + x_in_case_stmt. + * c-parse.in (do_stmt_start, select_or_iter_stmt, stmt): Use + c_in_iteration_stmt, c_in_case_stmt for parser state. Move + check for valid break or continue statment here... + * c-semantics.c (genrtl_break_stmt, genrtl_continue_stmt): From + here. Change original errors to abort. + +2003-11-24 Jan Hubicka + + * fold-const.c (fold): Do not return early when optimizing + COMPONENT_REF and constant. + +2003-11-24 Kazu Hirata + + * config/h8300/h8300.md (tablejump_h8300): Change to + *tablejump_h8300. + (tablejump_h8300h): Change to *tablejump_h8300hs_advanced. + (tablejump_normal_mode): Change to *tablejump_h8300hs_normal. + (indirect_jump_h8300): Change to *indirect_jump_h8300. + (indirect_jump_h8300h): Change to + *indirect_jump_h8300hs_advanced. + (indirect_jump_normal_mode): Change to + *indirect_jump_h8300hs_normal. + +2003-11-24 Kazu Hirata + + * config/h8300/h8300.md: Remove constraints from expanders. + +2003-11-24 Kazu Hirata + + * config/h8300/h8300.md: (stm_h8300s_2): Change the name to + stm_h8300s_2_advanced. + (stm_h8300s_2_normal): New. + (stm_h8300s_2): Likewise. + (stm_h8300s_3): Change the name to stm_h8300s_3_advanced. + (stm_h8300s_3_normal): New. + (stm_h8300s_3): Likewise. + (stm_h8300s_4): Change the name to stm_h8300s_4_advanced. + (stm_h8300s_4_normal): New. + (stm_h8300s_4): Likewise. + (ldm_h8300s_2): Change the name to ldm_h8300s_2_advanced. + (ldm_h8300s_2_normal): New. + (ldm_h8300s_2): Likewise. + (ldm_h8300s_3): Change the name to ldm_h8300s_3_advanced. + (ldm_h8300s_3_normal): New. + (ldm_h8300s_3): Likewise. + (ldm_h8300s_4): Change the name to ldm_h8300s_4_advanced. + (ldm_h8300s_4_normal): New. + (ldm_h8300s_4): Likewise. + (two peephole2's): Enable only with !TARGET_NORMAL_MODE. + (two peephole2's): New. + +2003-11-24 Zdenek Dvorak + + * genattrtab.c (simplify_cond): Update indices correctly. + (attr_alt_subset_p, attr_alt_subset_of_compl_p, attr_alt_intersection, + attr_alt_union, attr_alt_complement, attr_alt_bit_p, mk_attr_alt): New. + (check_attr_test, encode_units_mask, compute_alternative_mask, + make_alternative_compare, simplify_and_tree, + attr_rtx_cost, simplify_test_exp, gen_attr, + write_test_expr, walk_attr_value): Handle EQ_ATTR_ALT. + * rtl.def (EQ_ATTR_ALT): New. + +2003-11-23 Zdenek Dvorak + + * genattrtab.c (strcmp_check, DEF_ATTR_STRING): New macros. + (length_str, delay_type_str, delay_1_0_str, num_delay_slots_str): + New variables. + (main): Initialize them. + (find_attr): Canonicalize the attribute name string. + (attr_rtx_1, copy_boolean, expand_delays, gen_unit): Always canonicalize + string arguments. + (attr_printf, attr_eq): Use DEF_ATTR_STRING. + (check_attr_test, check_attr_value, make_length_attrs, + write_length_unit_log, simplify_by_exploding, gen_attr, + write_test_expr, write_attr_value, write_eligible_delay, + write_complex_function, make_internal_attr, + write_const_num_delay_slots): Changed due to change of type of + find_attr. + (fill_attr, evaluate_eq_attr, simplify_and_tree, + attr_rtx_cost, simplify_by_exploding, walk_attr_value): Use + strcmp_check. + +2003-11-23 Kazu Hirata + + PR target/13122 + * config/h8300/h8300.c (push): Call push_h8300hs_normal in + normal mode. + (pop): Call pop_h8300hs_normal in normal mode. + * config/h8300/h8300.md: Likewise. + (pushqi1_h8300hs_normal): New. + (pushqi1): Call pushqi1_h8300hs_normal in normal mode. + (pushhi1_h8300hs_normal): New. + (pushhi1): Call pushhi1_h8300hs_normal in normal mode. + (push_h8300hs_normal): New. + (pop_h8300hs_normal): Likewise. + +2003-11-23 Zdenek Dvorak + + * genattrtab.c (count_sub_rtxs): Removed. + +2003-11-23 Richard Earnshaw + + * recog.c (preprocess_constraints): Only zero those elements of + recog_op_alt that are needed for this insn. + * arm.c (note_invalid_constants): A function can't contain invalid + constants if it has no constraints. + +2003-11-22 Jan Hubicka + + * i386.c (classify_argument): Pass __float128 in memory. + (ix86_return_in_memory): Likewise. + (ix86_libcall_value): Likewsie. + +2003-11-22 Kazu Hirata + + * config/h8300/h8300.c (dosize): Convert to ISO-C. + +2003-11-22 J"orn Rennecke + + * flow.c (update_life_info): Amend comment about when a register + can become dead. + +2003-11-21 Kelley Cook + + * doc/.cvsignore: Delete. + +2003-11-21 Daniel Berlin + David Edelsohn + + * dwarf2out.c (add_location_or_const_value_attribute): Add support + for PARALLEL. + +2003-11-21 Rainer Orth + + * config/mips/t-iris6 (CRTSTUFF_T_CFLAGS): Add -Wno-error. + (TARGET_LIBGCC2_CFLAGS): Define. + + * crtstuff.c [HAS_INIT_SECTION] (__do_global_dtors): Declare. + (__do_global_ctors): Likewise. + +2003-11-21 Mark Wielaard + + * doc/invoke.texi (-O2): Doesn't enable -fweb. + +2003-11-21 Kazu Hirata + + * doc/invoke.texi: Mention dV and dZ. + +2003-11-21 Kazu Hirata + + * doc/invoke.texi: Update dump file names. + Remove de, dW, and dX. + +2003-11-20 James E Wilson + + PR c/13133 + * reload1.c (reload): Delete special handling for setjmp. + +2003-11-21 Andreas Tobler + + * mklibgcc.in: Evaluate shlib_slibdir_qual during link + step too. + * config/t-slibgcc-darwin: Adjust install path. + * config/rs6000/t-darwin: Revert multilib matches since + it is not used on darwin. + +2003-11-20 Richard Henderson + + * ssa.c, ssa-dce.c, ssa-ccp.c: Remove files. + * Makefile.in (OBJS-common, GTFILES): Don't reference them. + (gtype-desc.o, toplev.o, flow.o): Remove ssa.h. + (ssa.o, ssa-dce.o, ssa-ccp.o): Remove. + * flow.c: Don't include ssa.h. + (set_phi_alternative_reg): Remove. + (calculate_global_regs_live): Don't call it. + (mark_used_regs): Don't handle PHI. + * gengtype.c (open_base_files): Don't reference ssa.h. + * rtl.def (PHI): Remove. + * timevar.def (TV_TO_SSA, TV_SSA_CCP, TV_SSA_DCE, TV_FROM_SSA): Kill. + * common.opt: Remove -fssa, -fssa-ccp, -fssa-dce. + * opts.c (common_handle_option): Likewise. + * toplev.c (f_options): Likewise. + (DFI_ssa, DFI_ssa_ccp, DFI_ssa_dce, DFI_ussa): Remove. + (dump_file): Update to match. + (flag_ssa, flag_ssa_ccp, flag_ssa_dce): Remove. + (rest_of_handle_ssa): Remove. + (rest_of_compilation): Don't call it. + * toplev.h (flag_ssa, flag_ssa_dce, flag_ssa_ccp): Remove. + * doc/invoke.texi: Remove -fssa, -fssa-ccp, -fssa-dce. + * doc/passes.texi (SSA optimizations): Remove. + +2003-11-20 Bob Wilson + + * configure.in: Add xtensa-*-* targets to test for dwarf2 debug_line. + * configure: Regenerate. + +2003-11-20 Kelley Cook + + * Makefile.in (Makefile): Pass along CONFIG_SHELL. + +2003-11-20 David Mosberger + + * config/t-libunwind (LIB2ADDEH): Add unwind-c.c. + (SHLIB_LC): Define. + * unwind-libunwind.c (_Unwind_GetCFA): Implement. + (_Unwind_GetBSP) [UNW_TARGET_IA64]: New function. + +2003-11-20 Fariborz Jahanian + David Edelsohn + + * calls.c (expand_call): Allocate new temp in pass1. + (store_one_arg): If PARALLEL, calculate excess using mode size of + rtvec elt. + * expr.c (emit_push_insn): If PARALLEL, calculate offset using + mode size of rtvec elt. + * function.c (assign_parms): Use parm in register, if available. + +2003-11-20 Kazu Hirata + + * config/h8300/lib1funcs.asm (MOVP): Remove. + (ADDP): Likewise. + (CMPP): Likewise. + +2003-11-20 Richard Earnshaw + + * arm.c (use_return_insn): New argument, SIBLING. Support returning + with a single instruction if the stack has been decremented by 4 + and we have a frame pointer. Update all callers. + (output_return_instruction): Likewise. + (arm_output_epilogue): Change argument to SIBLING. Calculate + really_return from the new argument. Update all callers. + * arm.h (USE_RETURN_INSN): Pass NULL for the sibling. + * arm.md (sibcall_epilogue): Call use_return_insn directly, and + pass the sibling call. + * arm-protos.h (use_return_insn, arm_output_epilogue): Update + prototypes. + +2003-11-20 Joseph S. Myers + + * Makefile.in (extraclean): Delete. + * configure.in (target_list): Remove extraclean. + * configure: Regenerate. + * doc/makefile.texi, doc/sourcebuild.texi: Update. + * objc/Make-lang.in (objc.extraclean): Delete. + +2003-11-20 Joseph S. Myers + + * Makefile.in (lang_checks): Add. + (check-c++, check-f77, check-java, check-g++, check-g77, + check-objc): Remove hardcoded targets. + * doc/sourcebuild.texi: Document testsuite hooks. + * objc/Make-lang.in (check-objc, lang_checks): Add. + +2003-11-19 Scott Snyder + + PR target/13131 + * dwarf2out.c (gen_array_type_die): DW_AT_declaration should be a + flag, not a constant. + +2003-11-19 Kelley Cook + + * config/arc/arc-protos.h: Update to C90 prototypes. + * config/arc/arc.c: Likewise. + * config/arc/initfini.c: Likewise. + +2003-11-19 Andreas Krebbel + + * stmt.c (expand_goto): Memory clobbers added. + +2003-11-19 Andreas Krebbel + + * reload.c (find_reloads): Added missing type casts. + +2003-11-19 James E Wilson + + * combine.c (sets_function_arg_p): Delete unused function. + +2003-11-19 Eric Christopher + + * reload1.c (reload): Revert 2 previous checkins. + +2003-11-19 Nathanael Nerode + + * cpptrad.c (_cpp_scan_out_logical_line): Improve test for + whether directive begins at the beginning of a line. + +2003-11-19 Richard Sandiford + + * config/frv/frv.c (frv_init_libfuncs): Correct ufix_optab entries. + +2003-11-19 Gerald Pfeifer + + * doc/install.texi (Specific): Remove information on old versions + of glibc versus old versions of GCC. + +2003-11-19 Richard SAndiford + + * emit-rtl.c (gen_lowpart): Don't force MEMs into a register unless + the register lowpart is a TRULY_NOOP_TRUNCATION. + +2003-11-19 Richard Henderson + + * config/i386/i386.c (print_reg): Handle QI and HI modes for + non Q regs. + +2003-11-19 Andreas Tobler + + * config/config.gcc (powerpc-*-darwin*): Add libgcc build + specification file. + * config/t-slibgcc-darwin: New file, libgcc build specification. + * config/t-darwin: Add libgcc2 flag -fPIC. + * config/rs6000/t-darwin: Multilib matches float. + * libgcc-darwin.ver: New file, contains libgcc symbols. + +2003-11-18 Nathanael Nerode + + * config/ns32k/ns32k.h: Remove obsolete comment. + +2003-11-18 Roger Sayle + + PR middle-end/11821 + * config/arm/arm.c (arm_rtx_costs_1): Improve estimate of the code + size for calls to libgcc's div & mod subroutines when using -Os. + +2003-11-18 Jan Hubicka + + * cgraph.c (change_decl_assembler_name): Avoid bogus warnings. + +2003-11-18 Marc Espie + + * config/rs6000/sysv4.h: OpenBSD hooks. + +2003-11-18 Richard Henderson + + * expr.c (expand_expr): Don't look through constant arrays if + they don't bind locally. + +2003-11-17 Richard Kenner + + * expr.c (convert_move): Use GET_MODE_PRECISION instead of bitsize + when seeing if truncation or extension. + +2003-11-17 Eric Christopher + + * reload1.c (reload): Fix previous change. + +2003-11-17 Scott Snyder + + PR debug/11325 + * dwarf2out.c (struct die_struct): Add die_definition field. + (add_AT_specification): New. + (gen_subprogram_die, gen_variable_die, + gen_struct_or_union_type_die): Use it. + (prune_unused_types_mark): If we're marking a forward declaration, + also mark the full definition, if it exists. + +2003-11-16 Nick Clifton + + * config/stormy16/stormy16.h (BUILD_VA_LIST_TYPE): Delete. + * config/stormy16/stormy16-protos.h (xstormy16_build_va_list): + Remove prototype. + * config/stormy16/stormy16.c (xstormy16_build_va_list): Rename + to xstormy16_build_builtin_va_list and make static. + (TARGET_BUILD_BUILTIN_VA_LIST): Define. + +2003-11-16 Kazu Hirata + + * config/h8300/h8300-protos.h: Add the prototype for + same_cmp_following_p. + * config/h8300/h8300.c (same_cmp_following_p): New. + * config/h8300/h8300.md (peephole2): Use it. + +2003-11-16 Kazu Hirata + + * config/h8300/h8300.md: Don't use REGNO when its operand is + not guaranteed to be a REG. + +2003-11-16 Richard Sandiford + + * Makefile.in (expr.o): Depend on $(TARGET_H). + * target.h (return_in_msb): New target hook. + * target-def.h (TARGET_RETURN_IN_MSB): New macro. + (TARGET_CALLS): Include it. + * calls.c (shift_returned_value): New function. + (expand_call): Use it. + * expr.c: Include target.h. + (copy_blkmode_from_reg): Check targetm.calls.return_in_msb when + deciding what padding is needed. Change the name of the local + padding variable from big_endian_correction to padding_correction. + * stmt.c (shift_return_value): New function. + (expand_return): Use it. Adjust memory->register copy in the same + way as copy_blkmode_from_reg. Only change the return register's + mode if it was originally BLKmode. + * doc/tm.texi (TARGET_RETURN_IN_MSB): Document. + * config/mips/mips.c (TARGET_RETURN_IN_MSB): Define. + (mips_fpr_return_fields): New, split out from mips_function_value. + (mips_return_in_msb, mips_return_fpr_pair): New functions. + (mips_function_value): Rework to use the functions above. + * config/mips/irix6-libc-compat.c: Delete. + * config/mips/t-iris6 (LIB2FUNCS_STATIC_EXTRA): Undefine. + +2003-11-16 Kazu Hirata + + * doc/install.texi (--enable-checking): Update valgrind's URL. + +2003-11-16 Kazu Hirata + + * config/h8300/h8300.md: Fix warnings by replacing -2147483648 + with -2147483647 - 1. + +2003-11-16 Gerald Pfeifer + + Fix links in online manuals. + * doc/invoke.texi (H8/300 Options): @xref to ld, not ld.info. + (Precompiled Headers): @pxref to cpp, not cpp.info. + +2003-11-16 Jason Merrill + + * Makefile.in, objc/Make-lang.in (objc.tags): Create TAGS.sub + files in each directory and TAGS files that include them for each + front end. + +2003-11-15 Kazu Hirata + + * config/h8300/lib1funcs.asm (divnorm): Store the sign in bit + 3 of S2L. + (modnorm): Likewise. + (exitdiv): Look at bit 3 of S2L only. + +2003-11-15 Kazu Hirata + + * config/h8300/h8300.h (DO_GLOBAL_CTORS_BODY): Fix warnings. + (DO_GLOBAL_DTORS_BODY): Likewise. + +2003-11-15 Joseph S. Myers + + * doc/install.texi (Prerequisites): Refine documentation of + autoconf, automake and perl requirements. Document required + gettext version. + +<2003-11-14 Jason Merrill + + * function.c (assign_parms): Use TREE_TYPE to determine the real + type of the argument object. + +2003-11-14 Kazu Hirata + + * config/h8300/lib1funcs.asm (___udivsi3): Peel off the first + iteration. + +2003-11-14 Fariborz Jahanian + + * config/rs6000/rs6000.c (rs6000_move_block_from_reg): + New routine to save vararg registers on stack. Support for + -mpowerpc64 in mixed mode. + +2003-11-14 Bernardo Innocenti + + * config/m68k/m68k.c: Use C statements instead of #ifdef's when testing + for MOTOROLA versus MIT syntax. Improves readability and provides + better compile-time error checking for both code paths. + +2003-11-14 Kelley Cook + + * config/frv/frv-protos.h: Update for C90. + * config/frv/frv.h: Likewise. + * config/frv/frvbegin.c: Likewise. + * config/frv/frv.c: Likewise. + (frv_adjust_field_align): Delete unused variable. + +2003-11-14 Geoffrey Keating + + * config/rs6000/rs6000.md: Add 'DEFAULT_ABI == ABI_DARWIN' + to each place where TARGET_LONG_DOUBLE_128 is used with + DEFAULT_ABI == ABI_AIX. + + * cppfiles.c (_cpp_find_file): Make 'one or more PCH files were found' + message comply with GNU standards. + +2003-11-14 Richard Kenner + + PR/6552 + * function.c (struct epi_info): New field const_equiv. + (update_epilogue_consts): New function. + (keep_stack_depressed): Clear new field and verify scratch register + doesn't have it set. + Call new function via note_stores. + (handle_epilogue_set): Allow setting SP equiv reg in different mode. + Allow PLUS where second operand is register known set to constant. + (emit_equiv_load): Write load using proper mode if source different. + * config/mips/mips.md (return_internal): Put (return) first. + +2003-11-14 Kazu Hirata + + * config/h8300/lib1funcs.asm (___udivsi3): Add a comment. + +2003-11-14 Kazu Hirata + + * config/h8300/lib1funcs.asm (modsi3): Don't save unused + registers. + (divsi3): Likewise. + (reti): Don't restore unused registers. + +2003-11-14 Nick Clifton + + * config/fr30/fr30.c: Include toplev.h + +2003-11-14 Richard Earnshaw + + * except.c (sjlj_emit_function_enter): Mark internal label as LOCAL. + +2003-11-14 Richard Earnshaw + + * arm.c (arm_emit_vector_const, arm_output_load_gr): Use ISO C + function definition syntax. + +2003-11-14 Eric Christopher + + * reload1.c (reload): Revert previous patch. Make + check for assignment into reg_equiv_address stricter. + +2003-11-14 Arnaud Charlet + + * Makefile.in (POSTSTAGE1_FLAGS_TO_PASS): Pass ADAFLAGS. + +2003-11-14 Richard Sandiford + + * config/frv/frv.c (frv_in_small_data_p): Return false for unknown + section names. + +2003-11-14 Jason Merrill + + PR middle-end/12526 + * tree.c (build): A CALL_EXPR has side-effects if its arguments do. + * calls.c (call_expr_flags): New fn. + * tree.h: Declare it. + +2003-11-13 Kazu Hirata + + * config/h8300/lib1funcs.asm (__udivsi3): Remove. + (divmodsi3): Change the name to ___udivsi3. + Update all callers. + +2003-11-13 Kaveh R. Ghazi + + * libgcc2.c (__negdi2, __addvsi3, __addvdi3, __subvsi3, __subvdi3, + __mulvsi3, __negvsi2, __negvdi2, __mulvdi3, __lshrdi3, __ashldi3, + __ashrdi3, __ffsDI2, __muldi3, __clzDI2, __ctzDI2, __parityDI2, + __udivmoddi4, __divdi3, __moddi3, __cmpdi2, __ucmpdi2, + __fixunstfDI, __fixunsxfDI, __fixunsdfDI, __fixunssfDI, + __floatdixf, __floatditf, __floatdidf, __floatdisf, __gcc_bcmp): + Const-ify and/or initialize automatic variables at declaration. + +2003-11-13 Kazu Hirata + + * config/h8300/lib1funcs.asm (divmodsi4): Replace all the uses + of er4 with er3. Adjust all callers. + +2003-11-13 Andrew Pinski + + * config/darwin.c (machopic_output_possible_stub_label): + Allow stub symbol be not defined when outputting possible + stub label. + +2003-11-13 Kazu Hirata + + * config/h8300/lib1funcs.asm (___udivsi3): Jump to reti + instead of exitdiv. + (___umodsi3): Likewise. + (exitdiv): Do not restore any register. + (reti): Restore registers. + +2003-11-13 Steven Bosscher + + * tree-inline.c (walk_tree): Handle PLACEHOLDER_EXPR. + +2003-11-13 Kazu Hirata + + * config/h8300/lib1funcs.asm: Fix comment typos. + +2003-11-13 Kazu Hirata + + * config/h8300/lib1funcs.asm (udivsi3): Don't save/restore + unused registers. Don't jump to exitdiv. + (umodsi3): Likewise. + +2003-11-13 Mark Mitchell + Kean Johnston + + PR c/13029 + * toplev.c (check_global_declarations): Do not warn about unused + static consts. + +2003-11-13 Pavel Pisa + Kazu Hirata + + * config/h8300/lib1funcs.asm (DenHighNonZero): Optimize using + the approximate quotient method. + +2003-11-13 Richard Earnshaw + + * combine.c (distribute_notes): When re-distributing the notes from + an insn we are about to delete, ensure we can't end up with a cyclic + list of notes. + +2003-11-13 Eric Botcazou + + 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. + +2003-11-12 Kazu Hirata + + * config/h8300/lib1funcs.asm (divmodsi4): Clear S0P in + DenHighNonZero. + +2003-11-13 Jan Hubicka + + PR opt/12275 + * c-decl.c (finish_decl): Use change_decl_assembler_name. + * c-pragma.c (handle_pragma_redefine_extname): Likewise. + * varasm.c (make_decl_rtl): Likewise. + * cgraph.c (change_decl_assembler_name): New function. + * tree.h (set_decl_assembler_name): Kill dead declaration. + (change_decl_assembler_name): Declare. + + * decl.c (make_rtl_for_nonlocal_decl): Use change_decl_assembler_name. + * decl2.c (make_rtl_for_nonlocal_decl): Use change_decl_assembler_name. + +2003-11-12 Kazu Hirata + + * config/h8300/lib1funcs.asm (___mulsi3): Don't save/restore + an unused register. + +2003-11-12 Richard Sandiford + + PR bootstrap/12752 + * config/mips/t-iris6 (MULTILIB_OPTIONS): Put -mabi=n32 first. + (MULTILIB_OSDIRNAMES): Reorder accordingly. + +2003-11-12 Janis Johnson + + * rs6000-protos.h (rs6000_initial_elimination_offset): Add. + (rs6000_stack_info): Remove. (debug_stack_info): Remove. + (rs6000_emit_eh_reg_restore): Add + * rs6000.c (rs6000_stack_t): Move from rs6000.h, change data type + of vars_size and total_size to HOST_WIDE_INT. + (emit_frame_save): Change parameter size to HOST_WIDE_INT. + (rs6000_stack_info): Make static; change data size to HOST_WIDE_INT. + (debug_stack_info): Make static; change output format of HOST_WIDE_INT + values. + (rs6000_emit_eh_reg_restore): New, with code formerly in rs6000.md. + (rs6000_initial_elimination_offset): New, with code formerly in + INITIAL_ELIMINATION_OFFSET. + * rs6000.h (rs6000_stack_t): Remove. + (INITIAL_ELIMINATION_OFFSET): Replace code with call to function + rs6000_initial_elimination_offset. + * rs6000.md (UNSPECV_EH_RR split): Replace code with call to + rs6000_emit_eh_reg_restore. + +2003-11-12 Mike Stump + + * c-typeck.c (c_convert_parm_for_inlining): Add argnum, which + is the argumnt we are processing so that warnings and errors + will have that information. + * c-tree.h (c_convert_parm_for_inlining): Add argnum. + * lang-hooks-def.h + (lhd_tree_inlining_convert_parm_for_inlining): Likewse. + * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining): Likewise. + * langhooks.h (convert_parm_for_inlining): Likewise. + * tree-inline.c (initialize_inlined_parameters): Compute and + pass argnum down. + +2003-11-12 Alexey Starovoytov + Roger Sayle + + PR optimization/12953 + * tree-inline.c (inline_forbidden_p_1): Added check for BUILT_IN + before switch by FUNCTION_CODE. + +2003-11-12 Richard Earnshaw + + * arm.md (storehi): Avoid use of explicit subreg. + (storehi_bigend, storeinthi, movhi_bigend): Likewise. + +2003-11-12 J"orn Rennecke + + * config/sh/sh.md (prefetch): New pattern. + +2003-11-11 Eric Christopher + + * reload1.c (reload): Verify that addresses for + reg_equiv_* are valid for the architecture. + +2003-11-11 Eric Christopher + + * function.c (purge_addressof_1): Add libcall check. + Remove test for cached replacements on fallback case. + Simplify mode comparisons. Add libcall test for + paradoxical subregs. + +2003-11-11 Kazu Hirata + + * config/h8300/t-h8300: Fix an obsolete comment. + +2003-11-11 James E Wilson + + * expmed.c (store_bit_field, extract_bit_field): Revert last two + changes. + +2003-11-11 Kazu Hirata + + * config/h8300/lib1funcs.asm: Replace DenHighZero with + DenHighNonZero. + +2003-11-11 Jan Hubicka + + * cgraphunit.c (cgraph_function_possibly_inlined_p): Use + really_no_inline. + +2003-11-11 John David Anglin + + * pa.h (TRAMPOLINE_TEMPLATE): Fix flushing of cache lines when + generating 64-bit code. + +2003-11-10 David Edelsohn + + * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Remove + accidental commit in previous change. + +2003-11-10 Fariborz Jahanian + + * config/rs6000/rs6000.h (STACK_SIZE_MODE): Add definition. + * config/rs6000/rs6000.c (reg_or_mem_operand): Add macho-style + address recognition. + (macho_lo_sum_memory_operand): Routine to recognize macho-style + address recognition. + +2003-11-10 Richard Henderson + + * dwarf2out.c (gen_label_die): Cope with DECL_RTL not set. + +2003-11-10 Matt Austern + + * config/darwin-protos.h (darwin_assemble_visibility): Declare. + * config/darwin.c (darwin_assemble_visibility): Define. Warn for + anything other than VISIBILITY_DEFAULT and VISIBILITY_HIDDEN. + * config/darwin.h (TARGET_ASM_ASSEMBLE_VISIBILITY): Use + darwin_assemble_visibility instead of default. + +2003-11-10 Waldek Hebisch + + PR target/12865 + * config/sparc/sparc.c (sparc_initialize_trampoline): Call + __enable_execute_stack only after writing onto the stack. + (sparc64_initialize_trampoline): Likewise. + +2003-11-09 Roger Sayle + + * loop.c (check_dbra_loop): Try swapping the comparison operands + of the loop condition to identify a suitable induction variable. + * unroll.c (loop_iterations): Likewise. + +2003-11-09 Kaveh R. Ghazi + + * config/sparc/sparc.h (TARGET_CPU_CPP_BUILTINS): Fix sparc vs + sparc64 #cpu and #machine assertions. + +2003-11-09 Richard Henderson + + * Makefile.in (rtlanal.o): Depend on BASIC_BLOCK_H. + +2003-11-09 Jan Hubicka + + * tree-optimize.c (tree_rest_of_compilation): Fix warning. + + * cgraphunit.c (cgraph_expand_function): Use + cgraph_possibly_inlined_p. + * tree-optimize.c (tree_rest_of_compilation): Do not kill saved tree. + + * opts.c (common_handle_option): Do not set max-inline-insns. + * params.def: Update comments. + (PARAM_MAX_INLINE_INSNS): Kill. + * invoke.texi (max-inline-insns): Kill. + +2003-11-08 Joseph S. Myers + + PR c/3190 + PR c/8714 + * c-format.c (set_Wformat): Do not enable -Wformat-y2k by default. + * invoke.texi: Update. + +2003-11-08 John David Anglin + + PR optimization/12630 + * pa.c (compute_movstrsi_length): Rename to compute_movstr_length. + Handle length computation 64-bit moves. + (compute_clrstr_length, output_block_clear): Implement block clear. + (output_block_move): Handle 64-bit moves. + (pa_adjust_insn_length): Use compute_movstr_length and + compute_clrstr_length. + * pa.md (movstrsi): Revise operand order and comments. Don't use + match_scratch. + (movstrsi_internal): Delete. + (movstrsi_prereload, movstrsi_postreload): New insns. Define splitter + and peephole2 patterns to transform prereload to postreload form. + (movstrdi, movstrdi_prereload, movstrdi_postreload, clrstrsi, + clrstrsi_prereload, clrstrsi_postreload, clrstrdi, clrstrdi_prereload, + clrstrdi_postreload): New patterns for 64-bit block move, and block + clear. + * pa-protos.h (output_block_clear): New prototype. + +2003-11-08 Andreas Schwab + + * dbxout.c (current_file): Also wrap inside DBX_DEBUGGING_INFO || + XCOFF_DEBUGGING_INFO. + +2003-11-08 Kaveh R. Ghazi + + * dbxout.c (current_file): Wrap declaration in DBX_USE_BINCL. + +2003-11-07 Geoffrey Keating + + * config/rs6000/rs6000.c (rs6000_legitimize_address): Remove + redundant parens. + + * cppfiles.c (pch_open_file): New parameter 'invalid_pch', set it. + (find_file_in_dir): Likewise. + (_cpp_find_file): Print message if no header file is found + but an invalid PCH file was. + +2003-11-08 Joseph S. Myers + + * c-typeck.c (pedantic_lvalue_warning): Deprecate compound + expressions as lvalues. + (internal_build_compound_expr): Remove special handling for + non-pedantic case. + * doc/extend.texi: Document that all extended lvalues are now + deprecated. + +2003-11-07 Geoffrey Keating + + PR 11654 + * dbxout.c (struct dbx_file): Do not save for PCH. + (current_file): Likewise. + (dbxout_init): Don't allocate struct dbx_file using GC. + (dbxout_start_source_file): Likewise. + +2003-11-07 Falk Hueffner + + * config/alpha/elf.h, config/alpha/unicosmk.h, + config/alpha/vms.h: Convert to ISO C90. + +2003-11-07 Nathanael Nerode + + * config/arm/pe.h: Convert to ISO C90. + +2003-11-07 J"orn Rennecke + + * sh-protos.h (sh_pch_valid_p): Declare. + * sh.c ("intl.h"): Include. + (TARGET_PCH_VALID_P): Override. + (sh_target_switches): New variable. + (target_switches): Define. + (sh_pch_valid_p): New function. + + * sh.h (MODE_AFTER): Don't change mode unless TARGET_HITACHI. + +2003-11-07 Jan Hubicka + + * i386.c (x86_64_sign_extended_value): Return false from tls variables. + (x86_64_zero_extended_value): likewise. + +2003-11-07 Richard Sandiford + + * config/mips/mips.md (loadgp): Take $25 as a second operand. + * config/mips/mips.c (mips_expand_prologue): Modify accordingly. + +2003-11-06 Matt Austern + + * c-common.c (handle_visibility_attribute): Set DECL_VISIBILITY + field instead of hanging an attribute object off the decl. + * tree.h (DECL_VISIBLITY): New accessor macro for + symbol_visibility field in struct tree_decl. + (enum symbol_visibility): Move definition to before tree_decl. + (struct tree_decl): Define new two-bit field, symbol_visibility. + (decl_visibility): Remove declaration. + * varasm.c (maybe_assemble_visibility): Use DECL_VISIBILITY + instead of decl_visibility. + (default_binds_local_p_1): Use DECL_VISIBILITY instead of + decl_visibility. + (decl_visibility): Remove. + +2003-11-06 Ulrich Weigand + + * config/s390/s390.c (s390_emit_epilogue): Recognize more cases + where register 14 will be saved. + +2003-11-06 Geoffrey Keating + + * config/rs6000/rs6000.h (USE_FP_FOR_ARG_P): Move to rs6000.c. + (USE_ALTIVEC_FOR_ARG_P): Likewise. + * config/rs6000/rs6000.c (USE_FP_FOR_ARG_P): Move from rs6000.h. + Take a pointer as the CUM parameter. Update callers. + (USE_ALTIVEC_FOR_ARG_P): Likewise. Also correct for Darwin/AIX + 32-bit ABIs. + (function_arg_advance): Use USE_ALTIVEC_FOR_ARG_P. Correct case + of vector parameters as named arguments of stdarg function. + (function_arg): Likewise. + + * config/rs6000/darwin.h (ASM_SPEC): Use -force_cpusubtype_ALL when + -maltivec is specified, not the non-existent -faltivec. + +2003-11-06 Ulrich Weigand + + * config/s390/s390-protos.h (s390_function_value): Declare. + * config/s390/s390.c (TARGET_RETURN_IN_MEMORY): Define. + (s390_return_in_memory): New function. + (s390_function_value): New function. + (s390_function_arg_float): Return false for all arguments larger + than 8 bytes. + (s390_function_arg_pass_by_reference): Likewise. Return true for + all vector arguments. + (s390_function_arg_integer): New function. + (s390_function_arg_advance): Call it. Add sanity checks. + (s390_function_arg): Likewise. + * config/s390/s390.h (FUNCTION_VALUE): Call s390_function_value. + (LIBCALL_VALUE): Likewise. + (RET_REG): Remove. + (RETURN_IN_MEMORY): Remove. + +2003-11-06 Richard Sandiford + + * config/mips/mips-protos.h (mips_initial_elimination_offset): Change + return type to HOST_WIDE_INT. + * config/mips/mips.c (mips_frame_info): Give sizes type HOST_WIDE_INT. + Make initialized a bool. Make register masks unsigned ints. + (compute_frame_size): Make same mask change here. Use HOST_WIDE_INT + where appropriate. + (mips_initial_elimination_offset): Return a HOST_WIDE_INT. + (mips_output_function_prologue): Print sizes as HOST_WIDE_INTs. + +2003-11-06 Richard Sandiford + + * config/frv/frv.c (frv_initial_elimination_offset): Remove bogus + negation. + +2003-11-06 Richard Sandiford + + * config/frv/frv.h (ASM_OUTPUT_ALIGN_WITH_NOP): Define. + +2003-11-06 Momchil Velikov + + * config/mips/mips.c (override_options): Set MASK_SOFT_FLOAT + for VR4111 too. + +2003-11-06 Jan Hubicka + + * builtins.c (simplify_builtin_strrchr, simplify_builtin_strpbrk): Add + missing casts. + +2003-11-06 Zack Weinberg + + * genmodes.c: Change the word "bitsize" to "precision" throughout. + * machmode.def: Likewise. + * machmode.h (GET_MODE_SIZE): Cast value to unsigned short. + (GET_MODE_BITSIZE): Define as GET_MODE_SIZE * BITS_PER_UNIT. + (GET_MODE_PRECISION): New macro. + (mode_bitsize): Renamed mode_precision. + * stor-layout.c (mode_for_size, smallest_mode_for_size): + Use GET_MODE_PRECISION; clarify comments. + +2003-11-05 Joseph S. Myers + + * doc/install-old.texi: Remove old documentation of building + cross-compilers. + * doc/install.texi: Move some of it to here. + +2003-11-05 Per Bothner + + PR preprocessor/12891 + * c-opts.c (finish_options): Set include_cursor to disable premature + calls to push_command_line_include from cpp_scan_nooutput. + Fixes bug reported by DJ Delorie. + +2003-11-05 Geoffrey Keating + + * config/rs6000/rs6000.c (setup_incoming_varargs): Remove + code supporting old-style varargs. + + * config/rs6000/rs6000.c (rs6000_machopic_legitimize_pic_address): Use + an intermediate register for better optimisation. + +2003-11-05 Zdenek Dvorak + + PR optimization/10080 + * cfgloopanal.c (variable_initial_value, variable_initial_values, + simple_loop_exit_p): Record the fact that initial value is extended + from inner mode. + (count_strange_loop_iterations, count_loop_iterations): Handle + ivs that iterate in a narrower mode. Fix handling of overflows. + Improve handling of NE conditions. + (inverse, fits_in_mode_p): New static functions. + (simple_increment): Detect variables that iterate in a narrower mode. + * cfgloop.h (struct loop_desc): Fields inner_mode and extend added. + +2003-11-05 Geoffrey Keating + + * config/rs6000/rs6000.c (compute_vrsave_mask): Correct off-by-one + error. + + * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Darwin + needs VRSAVE. + +2003-11-05 Joseph S. Myers + + * c-typeck.c (pedantic_lvalue_warning): Deprecate use of + conditional expressions as lvalues. + +2003-11-05 Kazu Hirata + + * tsystem.h: Add the prototype of strlen. + * unwind-pe.h (read_encoded_value_with_base): Add an + appropriate cast to handle a case where the pointer size is + smaller than sizeof (int). + +2003-11-04 Richard Sandiford + + * config/mips/mips-protos.h (mips_global_pic_constant_p): Delete. + (mips_delegitimize_address): Delete. + (mips_gotoff_global, mips_load_got_page): Declare. + (mips_load_got_global, mips_rewrite_small_data): Declare. + + * config/mips/mips.h (FIND_BASE_TERM): Remove definition. + (DANGEROUS_FOR_LA25_P): Use global_got_operand. + (PREDICATE_CODES): Add global_got_operand, local_got_operand and + small_data_pattern. Remove CONST from const_arith_operand's entry. + + * config/mips/mips.c (UNSPEC_ADDRESS_P, CONST_GP_P): New macros. + (UNSPEC_ADDRESS, UNSPEC_ADDRESS_TYPE): Likewise. + (mips_constant_type): Delete. + (mips_symbol_type): Add SYMBOL_GOTOFF_PAGE, SYMBOL_GOTOFF_GLOBAL, + SYMBOL_GOTOFF_CALL and SYMBOL_GOTOFF_LOADGP. + (NUM_SYMBOL_TYPES): New macro. + (mips_address_type): Remove ADDRESS_INVALID. + (machine_function): Add has_gp_insn_p. + (mips_constant_info): Delete. + (mips_address_info): Add the address type as an extra field. Replace + the c field with symbol_type. + (mips_split_p, mips_lo_relocs, mips_hi_relocs): New arrays. + (TARGET_DELEGITIMIZE_ADDRESS): Remove definition. + (mips_reloc_offset_ok_p, mips_classify_constant): Delete. + (mips_split_const, mips_symbolic_constant_p): New functions. + (mips_symbolic_address_p): Take the symbol type and mode as arguments. + (mips_classify_address): Return true if the address is valid, storing + its type in INFO. Use mips_symbolic_constant_p. Use mips_lo_relocs[] + to test whether a LO_SUM address is allowed. + (mips_symbol_insns): Return 0 for general mips16 symbols. + Reorder SYMBOL_GOT_GLOBAL case to match mips_symbol_type definition. + Handle the new SYMBOL_GOTOFF_*s. + (mips_address_insns): Update call to mips_classify_address. + (mips_const_insns): Be more fussy about HIGH constants. Remove use + of mips_classify_constant. Be more accurate about CONSTs. + (mips_global_pic_constant_p): Delete. + (const_arith_operand): Only accept CONST_INTs. + (call_insn_operand): Remove call to mips_classify_constant. + Let mips_symbolic_constant_p check for invalid offsets. + (move_operand): Check for general_operands first. Only accept symbolic + constants if they satisfy mips_symbolic_constant_p and cannot be split. + (symbolic_constant): Use mips_symbolic_constant_p. + (global_got_operand, local_got_operand): New predicates. + (stack_operand): Update call to mips_classify_address. + (mips_legitimate_address_p): Likewise. + (mips_reloc, mips_lui_reloc): Delete. + (mips_force_temporary): Only use the given temporary if no_new_pseudos. + Use emit_move_insn. + (mips_split_symbol, mips_unspec_address): New functions. + (mips_unspec_offset_high): New function. + (mips_load_got): Replace reloc argument with a symbol_type. + Use mips_unspec_address to create the address and put it in a + LO_SUM with the base register. + (mips_load_got16, mips_load_got32): Delete. + (mips_emit_high, mips_legitimize_symbol): Delete. + (mips_gotoff_global): New function. + (mips_load_got_page, mips_load_got_global): New functions. + (mips_legitimize_symbol): Inline handling of LO_SUM splits. + (mips_legitimize_const_move): Likewise. Remove HIGH handling. + Inline code to handle constants plus invalid offsets. Use + mips_split_symbol to legitimize constant pool addresses. + (mips_delegitimize_address): Delete. + (mips_rtx_costs): Give legitimate symbolic constants and CONST_DOUBLEs + a cost of 1 insn. Give the rest a cost of CONSTANT_POOL_ADDRESS. + (mips_subword): Pass memrefs through mips_rewrite_small_data. + (mips_output_move): Remove use of mips_classify_constant. + (mips_expand_call): Use mips_unspec_offset_high to calculate the + high part of the GOT address for calls to global functions. + (override_options): Initialize mips_split_p[], mips_lo_relocs[] + and mips_hi_relocs[]. + (print_operand): Use print_operand_reloc to handle '%h' and '%R'. + Remove use of mips_classify_constant. + (mips_reloc_string): Delete. + (print_operand_reloc): New function. + (print_operand_address): Update call to mips_classify_address. + (mips_rewrite_small_data_p, small_data_pattern_1): New functions. + (small_data_pattern): New predicate. + (mips_rewrite_small_data_1, mips_rewrite_small_data): New functions. + (mips_function_has_gp_insn): New function. + (mips_global_pointer): Use it. + (mips_gp_insn): Delete. + (mips_expand_prologue): When compiling for n32/n64 abicalls, use a + single loadgp pattern to initialize $gp. Pass it the offset of _gp + from the start of the current function. + (mips16_gp_pseudo_reg): Revert last patch. + + * config/mips/mips.md (RELOC_*): Delete. + (UNSPEC_LOADGP, UNSPEC_FIRST_ADDRESS): New constants. + (got): New insn attribute. + (type): Set to "load" if got == load. + (length): Set to 4 if got == load, 8 if got == xgot_high. + (lui[sd]i): Delete. + (*xgot_hi[sd]i, *xgot_lo[sd]i): New patterns. + (*got_disp[sd]i, *got_page[sd]i): Likewise. + (*low[sd]i): Change constraints to "d". Add a new define_split to + rewrite small data constants into LO_SUMs. + (loadgp): New insns. + +2003-11-04 Rainer Orth + + * config/mips/_tilib.c: Use _ABI* in _MIPS_SIM tests. + +2003-11-04 DJ Delorie + + * config/v850/v850.md (mulhisi3): Expand the const_int case + separately to avoid trying to sign extend the const. + +2003-11-04 Richard Sandiford + + * emit-rtl.c (copy_rtx_if_shared): Don't allow MEMs with constant + addresses to be shared. + (force_const_mem): Return a copy of the pool entry. + +2003-11-03 Andreas Jaeger + + * Makefile.in (GCC_CFLAGS): Remove @WERROR@ again. + +2003-11-03 Kelley Cook + + * Makefile.in (cpp.dvi): New target split from cpp.info. + (gcc.dvi): New target split from gcc.info. + (gccint.dvi): New target split from gccint.info. + (cppinternals.dvi): New target split from cppinternals.info + (gccinstall.info): New specific rule. + (gccinstall.dvi): Likewise. + (dvi): Move targets to $(docobjdir). + ($(docobjdir)/%.dvi): New implicit rule. + +2003-11-03 Richard Kenner + + * doc/gty.texi (tag, desc): Say more about role of desc values in + selecting between tags. + +2003-11-03 Alexander Kabaev + + * real.c (encode_ieee_single): Ensure proper promotion. + +2003-11-03 Volker Reichelt + + * doc/contrib.texi: Add Giovanni Bajo, Dara Hazeghi, Falk Hueffner, + and Andrew Pinski. + +2003-11-03 Syd Polk + + * config/rs6000/rs6000.c (rs6000_override_options): Add G3, G4, and G5 + marketing names to the list of supported processors. + * config/rs6000/rs6000.h: Ditto. + * doc/invoke.texi: Ditto. + * config.gcc: Ditto. + +2003-11-03 Rainer Orth + + * fixinc/inclhack.def (stdio_va_list): Allow tab before va_list. + Merge two substitutions. + * fixinc/fixincl.x: Regenerate. + Fixes PR bootstrap/12666. + +2003-11-03 Joseph S. Myers + + * doc/install-old.texi: Remove VMS documentation. + +2003-11-03 Jan Hubicka + + * i386.c (override_options): Remove hack enabling 128bit long double + commited by accident. + +2003-11-02 Per Bothner + + * c-opts.c (needValue): Do cpp_find_main_file before processing + any imacros flags, so pfile->main_file is set for the latter. + +2003-11-03 Andreas Jaeger + Zack Weinberg + + * Makefile.in (GCC_CFLAGS): Allow blacklisting of warnings. + (SYSCALLS.c.X-warn): Suppress warnings. + +2003-11-02 John David Anglin + + PR optimization/12845 + * pa.c (output_cbranch): Use cmpb for DImode comparisons with 0. + +2003-11-02 Zack Weinberg + + * print-rtl.c (print_rtx): Call PRINT_REG with second argument -1. + * config/i386/i386.c (print_reg): Abort on a virtual register + if code != -1; not if file == asm_out_file. + * config/i386/i386.h (PRINT_REG): Document meaning of CODE == -1. + (DEBUG_PRINT_REG): Delete, unused. + +2003-11-02 Andreas Schwab + + * config/ia64/fde-glibc.c (_GNU_SOURCE): Define to 1 instead of + empty to avoid conflict with the definition from configure. + +2003-11-02 Roger Sayle + + 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. + +2003-11-02 Richard Sandiford + + * 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. + +2003-11-02 Eric Botcazou + + PR optimization/12799 + * postreload.c (reload_cse_move2add): Generate the add2 + patterns manually. + +2003-11-02 Eric Botcazou + + * 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. + +2003-11-01 Kelley Cook + + * .cvsignore: Remove c-parse* and tradcif.c. + * objc/.cvsignore: Delete. + +2003-11-01 Roger Sayle + + * unwind-sjlj.c (_Unwind_GetCFA): Return (_Unwind_Word)0 instead + of NULL. + +2003-11-01 John David Anglin + + * som.h (DO_GLOBAL_DTORS_BODY): Change to C90 declaration. + + * libgcc2.c (SYMBOL__MAIN): Provide C90 declaration. + + * collect2.c (scan_libraries): Fix typos. + + PR preprocessor/12847 + * cppfiles.c, cppexp.c, cpperror.c, cpplib.h, cpplib.c, cpplex.c, + cppinit.c, cpptrad.c, cppmacro.c, fix-header.c, cpppch.c, c-pch.c, + c-incpath.c, cppcharset.c (DL_WARNING, DL_WARNING_SYSHDR, DL_PEDWARN, + DL_ERROR, DL_ICE, DL_EXTRACT, DL_WARNING_P): Prefix macro names with + "CPP_". + +2003-11-01 Fariborz Jahanian + + * config/rs6000/rs6000.c (rs6000_mixed_function_arg): Correct + no_units calculation. + +2003-11-01 Andreas Jaeger + + * unwind-dw2.c (_Unwind_FrameState): Remove commas at end of + enumeration list. + +2003-11-01 Andreas Schwab + + * config/ia64/sysv4.h (SDATA_SECTION_FUNCTION): Update to C90 + prototypes. + (SBSS_SECTION_FUNCTION): Likewise. + +2003-11-01 Andreas Jaeger + + * Makefile.in (GCC_CFLAGS): Add @WERROR@ for target files. + +2003-11-01 Andreas Tobler + + * config/rs6000/sysv4.h (EXTRA_SECTION_FUNCTIONS): Update to C90 + prototypes. + +2003-11-01 Andreas Jaeger + + * unwind-dw2.c (_Unwind_FindEnclosingFunction): Constify variable. + (uw_frame_state_for): Constify variables. + (extract_cie_info): Constify first argument. + + * 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. + +2003-10-31 Per Bothner + + * c-opts.c (finish_options): Change to returns boolean - false iff + the call to cpp_find_main_file fails. + (c_common_init): Skip preprocess_file if finish_options failed. + (c_common_parse_file): Break if finish_options failed. + Fixes PR preprocessor/12545. + +2003-10-31 John David Anglin + + * aclocal.m4: Blacklist ultrix* for mmap file. + * configure: Rebuilt. + + * function.c (assign_parms): Add ATTRIBUTE_UNUSED to variable + reg_parm_stack_space. + * toplev.c (default_get_pch_validity): Fix warning. + + * 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 Roger Sayle + + PR middle-end/11968 + * expr.c (expand_expr ): Remove inappropriate and + confusing comment; distributivity isn't handled in expand_expr. + * fold-const.c (extract_muldiv_1 ): Allow overflow + in distributivity, if wrap-around semantics are specified with + -fwrapv. + +2003-11-01 Alan Modra + + PR 12315 + * final.c (profile_function): Allow for NULL svrtx. + +2003-10-31 John David Anglin + + * pa.c (pa_select_section): Use new style declaration. + * som.h (readonly_data): Likewise. + +2003-10-31 Kelley Cook + + * config/rs6000/rs6000.c: Update to C90 prototypes. + +2003-10-31 Richard Earnshaw + + PR target/7513 + * arm.h (CONDITIONAL_REGISTER_USAGE): Disable use of LR in Thumb + code. + +2003-10-31 Andreas Jaeger , + Zack Weinberg + + + * crtstuff.c (__register_frame_info, __register_frame_info_bases) + (__deregister_frame_info, __deregister_frame_info_bases): + Constify void * argument. + * unwind-dw2-fde.h (struct fde_vector): + Constify 'orig_data' and 'array' fields. + (__register_frame_info, __register_frame_info_bases) + (__deregister_frame_info, __deregister_frame_info_bases): + Constify void * argument. + (get_cie, next_fde, _Unwind_Find_FDE): Constify arguments, + return values, and casts of type fde *, struct dwarf_fde *, + and struct dwarf_cie *. + * unwind-dw2-fde.c (__register_frame_info, __register_frame_info_bases) + (__deregister_frame_info, __deregister_frame_info_bases): + Constify void * argument. + (get_cie_encoding, ): Constify struct dwarf_cie * argument. + (get_fde_encoding, fde_unencoded_compare, fde_single_encoding_compare) + (fde_mixed_encoding_compare, fde_compare_t, start_fde_sort, fde_insert) + fde_split, SWAP, frame_downheap, frame_heapsort) + (classify_object_over_fdes, add_fdes, linear_search_fdes, + binary_search_unencoded_fdes, binary_search_single_encoding_fdes, + binary_search_mixed_encoding_fdes, search_object, _Unwind_Find_FDE): + Constify arguments, local variables, return values, and casts + of type fde *, fde **, struct dwarf_fde *, and struct dwarf_cie *. + Use const pointer types in sizeof expressions, for clarity. + * unwind-dw2-fde-glibc.c + (_Unwind_find_registered_FDE, _Unwind_find_FDE): Constify return value. + (struct unw_eh_callback_data): Constify 'ret' field. + +2003-10-31 Fariborz Jahanian + David Edelsohn + + * 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. + (UNITS_PER_ARG): New. + (RS6000_ARG_SIZE): Use it. + +2003-10-31 Gerald Pfeifer + + * .cvsignore: No longer ignore gengtype-lex.c, gengtype-yacc.c, + and gengtype-yacc.h. + +2003-10-31 Richard Earnshaw + + 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. + +2003-10-31 Josef Zlomek + + PR/10239 + * cfgrtl.c (delete_insn): Decrease LABEL_NUSES for all REG_LABEL notes. + +2003-10-31 Josef Zlomek + + PR/11640 + * cfgrtl.c (try_redirect_by_replacing_jump): Move jump + immediatelly before BARRIER. + +2003-10-31 Kelley Cook + + * Makefile.in (STRICT2_WARN): Add -Wold-style-definition. + +2003-10-31 Richard Earnshaw + + PR target/11271 + * reload.c (find_reloads_address): Handle any register in + (PLUS (PLUS (REG) (REG)) (CONST_INT). + +2003-10-31 Richard Earnshaw + + * ggc-page.c (ggc_pch_read): Wrap call to poison_pages in + ENABLE_GC_CHECKING not in GGC_POISON. + +2003-10-31 Nathanael Nerode + + PR bootstrap/9863 + * configure.in: Bail out if awk is missing. + * configure: Regenerate. + + 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. + +2003-10-30 Richard Henderson + + * c-objc-common.c (c_tree_printer): Handle types correctly. + Factor code a bit. + +2003-10-30 Kelley Cook + + * value-prof.c, web.c: Update to C90. + +2003-10-30 Eric Christopher + + * function.c (purge_addressof_1): Add case for REG_RETVAL + notes when modes are unequal. + +2003-10-31 Jan Hubicka + + * i386-modes.def: Add XFmode format adjustment. + +2003-10-30 Jan Hubicka + + * real.c (encode_ieee_extended): Back out previous patch. + +2003-10-30 Jan Hubicka + + * real.c (encode_ieee_extended): Initialize whole array. + * reg-stack.c (move_for_stack_reg0: Use always XFmode. + * i386-modes.def: Change definitions of TFmode and XFmode. + * i386.c (classify_argument): Rename TFmodes to XFmodes; add new TFmode + code. + (construct_container): Allow constructing of TFmode integer containers. + (ix86_return_in_memory): XFmode is not returned in memory. + (init_ext_80387_constants): Always use XFmode. + (print_operand): Likewise. + (ix86_prepare_fp_compare_regs): Likewise. + (split_to_parts): Deal with TFmode. + (split_long_move): Simplify. + (ix86_init_mmx_sse_builtins): Add __float80, __float128. + (ix86_memory_move_cost): Do not confuse TFmode. + * i386.h (LONG_DOUBLE_TYPE_SIZE): Set to 96. + (IS_STACK_MODE): TFmode is not stack mode. + (HARD_REGNO_NREGS, CLASS_MAX_NREGS): Deal nicely with XFmode. + (VALID_SSE_REG_MODE): Allow TFmode. + (VALID_FP_MODE_P): Disallow TFmode. + (VALID_INT_MODE_P): Allow TFmode in 64bit mode. + * i386.md (TFmode patterns): Kill. + (movtf, motf_rex64): New patterns. + +2003-10-30 Richard Sandiford + + * config/mips/mips.md (adddi3): Fix typo in mips16 stack pointer code. + +2003-10-30 Richard Sandiford + + * config/mips/mips.md (mov_lwl): Use memory_operand where appropriate. + (mov_lwr, mov_swl, mov_swr): Likewise. + (mov_ldl, mov_ldr, mov_sdl, mov_sdr): Likewise. + +2003-10-30 Richard Sandiford + + * config/mips/mips.c (mips_global_pointer): Don't try to use $25. + +2003-10-30 Richard Henderson + + * config/mips/mips.c (mips_build_builtin_va_list): Use runtime + test for irix6 rather than preprocessor test. + +2003-10-30 Richard Henderson + + * cppcharset.c (one_utf8_to_utf16): Initialize 's' to silence warning. + +2003-10-30 Ulrich Weigand + + * 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. + +2003-10-30 Richard Earnshaw + + * arm.c (arm_override_options): Revert change of arm_constant_limit + when optimizing for size. + +2003-10-29 Richard Henderson + + * fold-const.c (fold_single_bit_test): Convert the input to the + operational intermediate type. + +2003-10-29 Richard Henderson + + * builtins.c (std_build_builtin_va_list): New. + * expr.h (std_build_builtin_va_list): Declare. + * defaults.h (BUILD_VA_LIST_TYPE): New. + * system.h (BUILD_VA_LIST_TYPE): Poison. + * target-def.h (TARGET_BUILD_BUILTIN_VA_LIST): New. + * target.h (struct gcc_target): Add build_builtin_va_list. + * tree.c (build_common_tree_nodes_2): Use it. + + * config/alpha/alpha-protos.h, config/alpha/alpha.c, + config/alpha/alpha.h, config/alpha/unicosmk.h, + config/d30v/d30v-protos.h, config/d30v/d30v.c, config/d30v/d30v.h, + config/i386/i386-protos.h, config/i386/i386.c, config/i386/i386.h, + config/i860/i860-protos.h, config/i860/i860.c, config/i860/i860.h, + config/i960/i960-protos.h, config/i960/i960.c, config/i960/i960.h, + config/mips/iris6.h, config/mips/mips-protos.h, config/mips/mips.c, + config/mips/mips.h, config/rs6000/rs6000-protos.h, + config/rs6000/rs6000.c, config/rs6000/rs6000.h, + config/s390/s390-protos.h, config/s390/s390.c, config/s390/s390.h, + config/sh/sh-protos.h, config/sh/sh.c, config/sh/sh.h, + config/xtensa/xtensa-protos.h, config/xtensa/xtensa.c, + config/xtensa/xtensa.h: Rename foo_build_va_list to + foo_build_builtin_va_list; make it static. Define + TARGET_BUILD_BUILTIN_VA_LIST. Remove BUILD_VA_LIST_TYPE. + Update protos. + + * config/i386/i386.c (ix86_expand_carry_flag_compare): Make static. + * config/iq2000/iq2000.h (BUILD_VA_LIST_TYPE): Remove. + +2003-10-29 James E Wilson + + * 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. + +2003-10-29 Richard Henderson + + * config/m68k/m68k.c (notice_update_cc): Clear cc status for + shifts and rotates. + +2003-10-30 Alan Modra + + * config/rs6000/rs6000.md: Remove duplicate pattern. + +2003-10-29 Hans-Peter Nilsson + + * real.c (do_divide): Initialize result with a 0. + + * configure.in : Look for + 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 . Use + #elif for other alternatives. + * ggc-page.c: Ditto. + * ggc-zone.c: Don't assume ; instead copy + include structure from ggc-common.c. + +2003-10-29 John David Anglin + + * 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. + +2003-10-29 David Edelsohn + + * config/rs6000/rs6000.h (UNITS_PER_WORD): Revert to + !TARGET_POWERPC64. + (UNITS_PER_GPR_WORD): Delete. + (HARD_REGNO_NREGS): Revert to UNITS_PER_WORD. + (HARD_REGNO_MODE_OK): Same. + (CLASS_MAX_NREGS): Same. + +2003-10-29 John David Anglin + + * pa.h (ASM_COMMENT_START): Define. + +2003-10-29 Zack Weinberg + + * genmodes.c (complete_mode): Record MODE_CC, MODE_INT, + MODE_FLOAT, and MODE_PARTIAL_INT modes as having one + component, not zero. + +2003-10-29 Andreas Schwab + + * config/ia64/t-ia64 (LIB2ADDEH): Add $(srcdir)/gthr-gnat.c. + +2003-10-29 Eric Botcazou + + * config/sparc/sparc.c (function_arg_partial_nregs) [TARGET_ARCH64]: + Never return 1 for complex integral modes whose size is lesser or + equal to a word. + (function_arg_pass_by_reference) [TARGET_ARCH64]: Mention CTImode + in the comment. + (function_arg_advance) [TARGET_ARCH64]: Don't special-case complex + modes. + (sparc_va_arg) [TARGET_ARCH64]: Handle any types whose size is + greater than 16 bytes by reference. + +2003-10-29 Richard Kenner + + * config/ia64/ia64.c (ia64_assemble_integer): Test POINTER_SIZE, + not TARGET_ILP32. + (ia64_initialize_trampoline): Use globalize_label target call. + +2003-10-29 Andreas Schwab + + * doc/install.texi (Building): Add a sentence about building Ada + for a canadian cross. + +2003-10-28 Zack Weinberg + + * config/ia64/ia64.c (cmptf_libfunc): New static. + (ia64_expand_compare): Add logic to open-code calls to + _U_Qfcmp for TFmode comparisons. + (ia64_hpux_init_libfuncs): Initialize cmptf_libfunc. + Set libfuncs for TFmode eq/ne/gt/ge/lt/gt to 0; these should + never be generated anymore. + * config/ia64/ia64.md (cmptf): New expander. + +2003-10-28 Zack Weinberg + + * ia64.md (UNSPEC_SETF_EXP,UNSPEC_FR_SQRT_RECIP_APPROX): New constants. + (*sqrt_approx): New instruction pattern for approximate square roots. + (*setf_exp_xf): New instruction pattern for exponentiation. + (*maddxf4_alts_truncsf): New instruction pattern for truncation. + (sqrtsf2_internal_thr): New define_and_split implementing + throughput-optimized inline calculation of SFmode square root. + (sqrtdf2_internal_thr): Likewise for DFmode. + (sqrtxf2_internal_thr): Likewise for XFmode. + (sqrtsf2, sqrtdf2, sqrtxf2): New expanders to choose between + latency- and throughput-optimized square root algorithms. + * ia64.h (MASK_INLINE_SQRT_LAT, MASK_INLINE_SQRT_THR, + TARGET_INLINE_SQRT_LAT, TARGET_INLINE_SQRT_THR, TARGET_INLINE_SQRT): + New macros. + (TARGET_SWITCHES): Add -minline-sqrt-min-latency and + -minline-sqrt-max-throughput. + * ia64.c (ia64_override_options): If both -minline-sqrt-min-latency + and -minline-sqrt-max-throughput are given, notify the user + that both options cannot be used simultaneously. + If -minline-sqrt-min-latency is given, notify the user that + this mode is not yet implemented. + (rtx_needs_barrier): Reformat initial comment to obey + 72-character width limit. Support UNSPEC_SETF_EXP and + UNSPEC_FR_SQRT_RECIP_APPROX. + +2003-10-29 Alan Modra + + * config/rs6000/rs6000.md (movdf_softfloat64): Allow dummy ctr,ctr + moves. + +2003-10-28 Franz Sirl + + PR target/11598 + PR libgcj/10610 + * config/rs6000/sysv4.h (PREFERRED_STACK_BOUNDARY): New macro. + +2003-10-28 Richard Earnshaw + + * arm.c (arm_output_epilogue): When using a frame pointer, don't emit + an extra stack adjustment insn if the stack pointer is already + pointing at the right place. + (use_return_insn): Allow a return insn to be used when we have a + frame pointer if the stack pointer is in the right place. + (output_return_instruction): Handle it. + +2003-10-28 Andreas Jaeger + + * ggc-zone.c (check_cookies): Add missing variable. + Add void to prototypes. + +2003-10-27 Kaveh R. Ghazi + + * config/mips/irix6-libc-compat.c (inet_makeaddr): Prototype. + * crtstuff.c (__do_global_ctors_1): Move prototype. + * unwind-dw2.c (NO_SIZE_OF_ENCODED_VALUE): Define when + appropriate. + * unwind-sjlj.c (_Unwind_GetCFA, _Unwind_FindEnclosingFunction): + Mark parameter with __attribute__((unused)). + +2003-10-27 Zack Weinberg + + * c-decl.c (pushdecl): Clarify comment. + +2003-10-27 Arnaud Charlet + + * doc/install.texi: Update instructions for Ada cross builds + + PR ada/5909: + * doc/sourcebuild.texi: Document Ada test suite. + +2003-10-27 Stephane Carrez + + * config/m68hc11/m68hc11.c: Convert to ISO C90. + * config/m68hc11/m68hc11-protos.h: Likewise. + +2003-10-27 Jan Hubicka + Eric Botcazou + + * toplev.c (enum dump_file_index, dump_file): Fix ordering of + webizer pass dump. + +2003-10-27 Jakub Jelinek + Jan Hubicka + + * reload1.c (struct elim_table): Change offset, initial_offset and + previous_offset fields to HOST_WIDE_INT. + (offsets_at): Change from int to HOST_WIDE_INT. + (reload): Adjust offsets_at initialization. + (eliminate_regs_in_insn): Change type of offset to HOST_WIDE_INT. + (verify_initial_elim_offsets): Change type of t to HOST_WIDE_INT. + * config/i386/i386.c (ix86_compute_frame_layout): Change offset type + to HOST_WIDE_INT. Don't save regs using mov for huge frame sizes + if TARGET_64BIT. + (pro_epilogue_adjust_stack): New function. + (ix86_expand_prologue, ix86_expand_epilogue): Use it. + * config/i386/i386.md (pro_epilogue_adjust_stack): Remove. + (pro_epilogue_adjust_stack_1): Remove * in front of name. + (pro_epilogue_adjust_stack_rex64): Handle -2147483648 properly. + (pro_epilogue_adjust_stack_rex64_2): New insn. + + * config/i386/i386.c (ix86_expand_epilogue): Fix comment typo. + + * config/i386/i386.c (ix86_expand_call): Replace 40 with + FIRST_REX_INT_REG + 3 /* R11 */. + +2003-10-26 Richard Henderson + + * config/alpha/alpha.md (attr cannot_copy): New. + (call_osf_2_er, call_value_osf_2_er, ldgp_er_1, ldgp_er_2, + prologue_ldgp_er_2, prologue_ldgp_1): Set it. + * config/alpha/alpha.c (alpha_cannot_copy_insn_p): Test it. + +2003-10-26 Daniel Berlin + + * ggc-zone.c: New file, zone allocating collector. + * configure: Accept zone option for --with-gc + * configure.in: Ditto. + * ggc.h (ggc_pch_count_object): Pass bool indicating + stringiness. Update all callers. + (ggc_pch_alloc_object): Ditto. + (ggc_pch_write_object): Ditto. + (ggc_alloc_rtx): Use typed allocation, since all RTX's are of a single + type. + (ggc_alloc_rtvec): Ditto. + (ggc_alloc_tree): Use zone allocation, since some things using this macro + aren't a single typecode. + * ggc-none.c (ggc_alloc_typed): New function. + (ggc_alloc_zone): Ditto. + * ggc-page.c: Ditto on both functions. + +2003-10-26 Gunther Nikl + + * config/m68k/m68k.c (m68k_compute_frame_layout): Ensure FPU related + frame information is always valid. + (m68k_output_function_prologue): Remove superfluous TARGET_68881 + test; fix formatting. + +2003-10-26 Gunther Nikl + + * config/m68k/m68k.c (m68k_compute_frame_layout): Swap reg_mask and + reg_rev_mask computation. + (m68k_output_function_prologue): Fix usage of current_frame (one typo + and one missing); use reg_rev_mask not reg_mask. + (m68k_output_function_epilogue): Fix usage of current_frame; + use fpu_rev_mask not fpu_mask. + +2003-10-26 Bernardo Innocenti + + * config/m68k/m68k.c (m68k_output_function_prologue): Eliminate + num_saved_regs, use current_frame.reg_no instead. + +2003-10-26 Bernardo Innocenti + Paul Dale + + * doc/extend.texi (interrupt_handler): Add m68k to the + list of processors implementing it. + * doc/invoke.texi (-msep-data): Document new m68k option. + (-mno-sep-data): Likewise. + (-mid-shared-library): Likewise. + (-mno-id-shared-library): Likewise. + (-mshared-library-id): Likewise. + +2003-10-26 Andreas Jaeger + + * unwind-dw2.c (_Unwind_GetGR): Avoid warning about unsigned + comparison. + (_Unwind_SetGR): Likewise. + +2003-10-26 Ottavio Campana + + PR target/12690 + * config/i386/mmintrin.h (_mm_set1_pi8): Fix comment. + +2003-10-26 Gunther Nikl + + * config/m68k/m68k.c (m68k_output_function_prologue): Move front + comment from here to... + (m68k_save_reg): ...here. Fix comment formatting. + (m68k_output_function_prologue): Fix comment formatting. + (m68k_output_function_epilogue): Likewise. + (const_method): Likewise. + +2003-10-26 Kazu Hirata + + * toplev.c (default_get_pch_validity): Guard the use of + target_options with #ifdef TARGET_OPTIONS. + (default_pch_valid_p): Likewise. + +2003-10-26 Andreas Jaeger + Zack Weinberg + Andreas Tobler + + * dwarf2out.c (output_cfi): Use HOST_WIDE_INT_PRINT. + (output_die): Likewise. + (print_die): Likewise. + +2003-10-26 Andreas Jaeger + + * tree.h (dwarf2out_def_cfa, dwarf2out_args_size, + dwarf2out_reg_save, new_loc_descr): Update prototypes for recent + dwarf2out.c change. + + * toplev.c (default_pch_valid_p): Fix warning. + +2003-10-25 Roger Sayle + + * simplify-rtx.c (simplify_replace_rtx): Avoid allocating duplicate + RTL nodes. If an operator's operands are unchanged, return the + original argument unchanged. + +2003-10-26 Graham Stott + + Fix bootstrap failure. + * expmed.c (store_bit_field): Don't compare bitsize against + modes with zero bit-size. + + (extract_bit_field): Likewise + +2003-10-25 Jan Hubicka + + * dwarf2out.c (dw_cfi_oprnd_struct): Offset is HOST_WIDE_INT. + (cfa_loc): Likewise. + (reg_save, stack_adjust_offset, queue_reg_save): Replace long by + HOST_WIDE_INT. + (args_size, old_args_size): change type to HOST_WIDE_INT. + (dwarf2out_def_cfa, dwarf2out_args_size, + dwarf2out_reg_save, new_loc_descr): offset is HOST_WIDE_INT. + (dw_val_struct): integers, unsigneds and offsets are HOST_WIDE_INT. + (add_AT_int, add_AT_unsigned, att_AT_offset, AT_int, AT_unsigned, + AT_offset): Use HOST_WIDE_INT. + (based_loc_descr): offset is HOST_WIDE_INT. + (add_data_member): Likewise. + (add_const_value_attribute): Simplify. + +2003-10-25 Richard Henderson + + * config/i386/i386.c (ix86_eax_live_at_start_p): New. + (ix86_expand_prologue): Save and restore eax around stack probe + if it's live. + +2003-10-25 Jan Hubicka + + * cppcharset.c (one_utf8_to_utf32): Initialize 's' to silence warning. + +2003-10-25 Eric Botcazou + + PR target/12712 + * reg-stack.c (convert_regs_1): Create an arbitrary input stack + if the block has no predecessors. + (convert_regs_2): Document the problem with successors whose + only predecessor is the block to be processed. + (convert_regs): Don't create the arbitrary input stack here. + +2003-10-24 Zack Weinberg + + * genmodes.c (struct mode_data): Add contained and next_cont + fields. + (complete_mode): Maintain linked list of modes that have a + given component. + (emit_mode_unit_size): Delete. + (emit_mode_nunits): New. + (emit_insn_modes_c): Update to match. + (emit_mode_adjustments): Propagate size and alignment + adjustments from component modes to their containers. + * machmode.h (mode_unit_size): Delete. + (mode_nunits): New. + (GET_MODE_NUNITS): Just return the value in the table. + (GET_MODE_UNIT_SIZE): Compute using GET_MODE_INNER and + GET_MODE_SIZE. + * expmed.c (store_bit_field, extract_bit_field): Can use a + plain move instruction if bitsize >= GET_MODE_BITSIZE of + destination/source mode, respectively. + * varasm.c (assemble_real): Write out the full size of the + constant, not just its bitsize. + (output_constant): Honor TYPE_MODE of TREE_REAL_CSTs. + + * config/ia64/ia64-modes.def: Define XFmode as well as TFmode. + Use ADJUST_BYTESIZE and ADJUST_ALIGNMENT to set size and + alignment of XF and TF modes in compliance with ia64 ABIs. + Can now hardwire the format of both modes. + * config/ia64/ia64.c: Change TFmode to XFmode wherever appropriate. + (general_tfmode_operand, destination_tfmode_operand) + (tfreg_or_fp01_operand, spill_tfmode_operand): Rename to + general_xfmode_operand, destination_xfmode_operand, + xfreg_or_fp01_operand, spill_xfmode_operand respectively. + (ia64_init_builtins): Make TYPE_PRECISION of fpreg_type + and float80_type be 96 so they get XFmode. Use !TARGET_HPUX, + not INTEL_EXTENDED_IEEE_FORMAT, to decide how to define + __float128. + * config/ia64/ia64.h: Default TARGET_HPUX to 0. + Change TFmode to XFmode wherever appropriate. Remove all + references to INTEL_EXTENDED_IEEE_FORMAT. + (LONG_DOUBLE_TYPE_SIZE): Varies with TARGET_HPUX. + (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define (always 96). + (PREDICATE_CODES): Update to match function renames. + * config/ia64/ia64.md: Change TF to XF throughout; rename all + patterns to match. Remove all references to + INTEL_EXTENDED_IEEE_FORMAT. Update predicate calls to match + function renames. + * config/ia64/ia64-protos.c: Update all prototypes to match + renamed functions. + * config/ia64/hpux.h: Redefine TARGET_HPUX to 1. + Remove all references to INTEL_EXTENDED_IEEE_FORMAT. + * config/ia64/lib1funcs.asm: Add __divxf3 as new name for + __divtf3; keep old name for backward compatibility. + (L__compat): New section providing forwarding stubs for + __fixtfti, __fixunstfti, __floattitf. + * config/ia64/t-ia64: Add __compat to LIB1ASMFUNCS. + +2003-10-24 Geoffrey Keating + + PR 10757 + * c-pch.c: Include target.h. Improve comments. + (struct c_pch_validity): Add target_data_length. + (pch_init): Add target's validity data. + (c_common_valid_pch): Check target's validity data. + * target-def.h (TARGET_GET_PCH_VALIDITY): New. + (TARGET_PCH_VALID_P): New. + (TARGET_INITIALIZER): Add new fields. + * target.h: Include tm.h. + (struct gcc_target): Add get_pch_validity, pch_valid_p. + * toplev.h (default_get_pch_validity): New prototype. + (default_pch_valid_p): New prototype. + * toplev.c (default_get_pch_validity): New routine. + (default_pch_valid_p): New routine. + * Makefile.in (TARGET_H): Add TM_H. Replace all users of + target.h with $(TARGET_H). + (c-pch.o): Add TARGET_H. + * doc/tm.texi (PCH Target): New node. + (TARGET_GET_PCH_VALIDITY): Document. + (TARGET_PCH_VALID_P): Document. + +2003-10-24 Kelley Cook + + * Makefile.in: Define a vpath for %.texi. Remove explicit $(docdir) + and $(docdir)/include from any *.texi dependencies. + ($(docobjdir)/%.dvi): Depend on stmp-docobjdir. + ($(docobjdir)/%.1): Depend on .pod instead of .texi. + ($(docobjdir)/%.7): Likewise. + (%.pod): New implicit rule. + (cpp.pod): New dependency only rule. + (gcc.pod): New intermediate rule with dependencies and commands. + (gfdl.pod): Likewise. + (fsf-funding.pod): Likewise. + +2003-10-24 Nathanael Nerode + + * fixinc/mkfixinc.sh: Remove special cases for svr4 and ptx, and + related code. + * fixinc/fixinc.ptx: Remove. + * fixinc/fixinc.svr4: Remove. + +2003-10-24 Ulrich Weigand + + * config/s390/s390.c (load_multiple_operation): Allow both SImode + and DImode if word_mode is DImode. + (store_multiple_operation): Likewise. + * config/s390/s390.md ("load_multiple", "store_multiple"): Likewise. + ("*load_multiple_di"): Allow only if word_mode == DImode. + ("movqi"): Use LLGC whenever TARGET_ZARCH. + ("fix_truncdfsi2"): Fix incorrect temporary size. + ("fix_truncsfsi2"): Likewise. + ("*bras_r", "*brasl_r", "*basr_r"): Remove predicate and constraint + string for function return value operand. + ("*bras_tls", "*brasl_tls", "*basr_tls"): Likewise. + +2003-10-24 Joseph S. Myers + + * c-parse.in (array_declarator): Use expr_no_commas. + Fixes PR c/11943. + +2003-10-24 Richard Sandiford + + * config/mips/linux.h: Wrap MD_FALLBACK_FRAME_STATE_FOR and + associated includes in #ifndef inhibit_libc. + +2003-10-24 Roger Sayle + + * doc/libgcc.texi: Document some more of the libgcc API. + +2003-10-24 Richard Earnshaw + + * arm.c (arm_rtx_costs_1, case TARGET_THUMB): Adjust costs for + comparing a constant with small negative numbers and add costing + for constants in conjunction with AND. + (note_invalid_constants): Tidy previous change. + (thumb_cmp_operand): Tidy. + (thumb_cmpneg_operand): New function. + * arm.h (CONDITIONAL_REGISTER_USAGE): Don't use HI regs if optimizing + for size. + (FIRST_LO_REGNUM, FIRST_HI_REGNUM, LAST_HI_REGNUM): Define. + (PREDICATE_CODES): Add thumb_cmpneg_operand. + * arm.md (cbranchsi4): Convert to define_expand. Handle comparison + with a negative constant. + (cbranchsi4_insn): Matcher for cbranchsi4. + (cbranchsi4_scratch): Similar, but a scratch is available for + handling negative constants. + (movsi_cbranchsi4): New pattern. + (tstsi3_cbranch): Renamed from andsi3_cbranch_scratch, remove scratch + and use the TST instruction. + (andsi3_cbranch, orrsi3_cbranch, xorsi3_cbranch, cbranchne_decr1) + (addsi3_cbranch, subsi3_cbranch): Ensure that register preferencing + cannot see high regs or memory alternatives. + (bicsi3_cbranch_scratch, bicsi3_cbranch): New patterns. + +2003-10-24 Richard Earnshaw + + * arm.c (note_invalid_constants): Try to extract the constant + pool value using avoid_constant_pool_reference; only use + get_pool_constant if that returns the original reference. + +2003-10-24 Jan Hubicka + + PR c++/12624 + * varasm.c (notice_global_symbol): Disqualify global registers. + +2003-10-23 Roger Sayle + + PR middle-end/11414 + * loop.c (load_mems): Use redirect_jump to forward jumps from + the original loop end label to the new "loop sink" block's label. + +2003-10-23 Roger Sayle + + PR middle-end/12705 + * optabs.c (expand_binop): When expanding complex operations + inline, always calculate result into a new temporary register. + Minor code clean-ups. + +2003-10-24 Rainer Orth + + * objc/lang-specs.h: Handle -print-objc-runtime-info. + * doc/invoke.texi (Objective-C Dialect Options): Document it. + +2003-10-24 Danny Smith + + * config/i386/cygwin.asm: Add copyright notice. Add comment + on why this code is needed. + +2003-10-23 Kazu Hirata + + * config/h8300/clzhi2.c: Fix warnings. + * config/h8300/ctzhi2.c: Likewise. + * config/h8300/fixunssfsi.c: Likewise. + * config/h8300/parityhi2.c: Likewise. + * config/h8300/popcounthi2.c: Likewise. + +2003-10-23 James E Wilson + + * gcc.c (option_map): Delete --target and --use-version. + +2003-10-23 Fariborz Jahanian + David Edelsohn + + * config/rs6000/rs6000.h (UNITS_PER_WORD): Use TARGET_32BIT, not + TARGET_POWREPC64. + (UNITS_PER_GPR_WORD): Define. + (HARD_REGNO_NREGS): Use UNITS_PER_GPR_WORD. + (HARD_REGNO_CALL_PART_CLOBBERED): Define. + (HARD_REGNO_MODE_OK): Use UNITS_PER_GPR_WORD. + (CLASS_MAX_NREGS): Use UNITS_PER_GPR_WORD. + * config/rs6000/rs6000.c (function_arg): Generate PARALLEL for + DFmode and DImode in 32-bit ABI / 64-bit computation mode. + (rs6000_emit_prologue): Select reg_mode and reg_size using + TARGET_32BIT, not TARGET_POWERPC64. + (rs6000_function_value): Generate PARALLEL for DImode in 32-bit + ABI / 64-bit computation mode + +2003-10-22 Andrew Haley + + * toplev.c (output_file_directive): Allow for null input_name. + +2003-10-22 Waldek Hebisch + + * config/i386/i386.c (classify_argument): Handle SET_TYPE. + +2003-10-22 Chris Demetriou + + * configure.in: In --enable-generated-files-in-srcdir option + handling, fix default case handling. + * configure: Regenerate. + +2003-10-22 Phil Edwards + + * config.gcc: Update *-*-vxworks* generic hook and comments. + (arm-wrs-vxworks, i[4567]86-wrs-vxworks, mips-wrs-vxworks, + mips-wrs-windiss, sh-wrs-vxworks): New stanzas. + * genmultilib: Allow the MULTILIB_OSDIRNAMES to be mapped directly. + * config/svr4.h (SWITCH_TAKES_ARG): Undefine it before redefining it. + * config/windiss.h: New file. + * config/arm/t-vxworks: New file. + * config/arm/vxworks.h: New file. + * config/i386/t-vxworks: New file. + * config/i386/vxworks.h: New file. + * config/mips/t-vxworks: New file. + * config/mips/vxworks.h: New file. + * config/mips/windiss.h: New file. + * config/sh/t-vxworks: New file. + * config/sh/vxworks.h: New file. + +2003-10-22 Kazu Hirata + + * config/h8300/h8300.c (h8300_output_function_epilogue): Remove. + (h8300_saveall_function_p): New. + (h8300_insert_attributes): Insert the saveall attribute if + #pragma saveall is specified. + (h8300_attribute_table): Add saveall. + (TARGET_ASM_FUNCTION_EPILOGUE): Remove. + * doc/extend.texi: Mention the saveall attribute. + +2003-10-22 Joseph S. Myers + + * 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. + * fixinc/tests/base/obstack.h: New test. + +2003-10-22 Andreas Schwab + + PR target/12676 + * config/m68k/m68k.c (output_addsi3): Fix range check to work on + LP64 platforms. + +2003-10-22 Jan Hubicka + + * dwarf2out.c (dwarf2out_abstract_function): Use DW_AT to check + presence of DW_AT_inline. + (gen_subprogram_die): Likewise; do not abort instead of emitting + DW_AT_not_inline. + +2003-10-22 Jan Hubicka + + * cgraph.c (cgraph_function_possibly_inlined_p): Be conservative when + global info is not ready. + +2003-10-22 Kazu Hirata + + * doc/extend.texi: Mention H8S wherever H8/300H is mentioned. + +2003-10-22 Ulrich Weigand + + * config/s390/s390.md ("movstr_short_64", "movstr_short_31"): Merge ... + ("*movstr_short"): ... into this insn pattern. + ("movstr_short"): New expander. + ("*movstr_long_64"): Rename from "movstr_long_64", simplify. + ("*movstr_long_31"): Rename from "movstr_long_31", simplify. + ("movstr_long"): New expander. + ("clrstr_short_64", "clrstr_short_31"): Merge ... + ("*clrstr_short"): ... into this insn pattern. + ("clrstr_short"): New expander. + ("*clrstr_long_64"): Rename from "clrstr_long_64", simplify. + ("*clrstr_long_31"): Rename from "clrstr_long_31", simplify. + ("clrstr_long"): New expander. + ("cmpmem_short_64", "cmpmem_short_31"): Merge ... + ("*cmpmem_short"): ... into this insn pattern. + ("cmpmem_short"): New expander. + ("*cmpmem_long_64"): Rename from "cmpmem_long_64". + ("*cmpmem_long_31"): Rename from "cmpmem_long_31". + ("cmpmem_long"): New expander. + * config/s390/s390.c (s390_expand_movstr): Use new expanders. + (s390_expand_clrstr): Likewise. + (s390_expand_cmpmem): Likewise. + +2003-10-22 Mark Mitchell + + * c-pch.c (struct c_pch_validity): Add pch_init field. + (pch_init): Set it. + (c_common_valid_pch): Check it. + +2003-10-22 David Taylor + + PR debug/12500 + * dbxout.c (dbxout_typedefs): Use COMPLETE_OR_VOID_TYPE_P. + +2003-10-22 Richard Kenner + + * config/alpha/alpha.c (function_value [ENABLE_CHECKING]): Don't call + alpha_return_in_memory if no VALTYPE specified. + +2003-10-22 Jan Hubicka + + PR debug/12389 + * Makefile.in (dwarf2out.o): Depend on cgraph.h. + * cgraph.c (cgraph_function_possibly_inlined_p): New function. + * cgraph.h (cgraph_function_possibly_inlined_p): Declare. + (cgraph_global_info): Add flag inlined + * dwarf2out.c (gen_subprogram_die, gen_decl_die): Use + cgraph_function_possibly_inded_p + * cgraphunit.c (mark_inline): Set inlined flag. + * toplev.c (rest_of_decl_compilation): Call outlining_inline_function + only for possibly inlined functions. + * c-decl.c (duplicate_decls): Never output abstract DIE representing old + body of function. + +2003-10-22 Andrew Haley + + * varasm.c (output_constructor): Make constructor annotation + conditional on ASM_COMMENT_START. + +2003-10-21 Jason Merrill + + * tree.c (get_unwidened): Check TREE_UNSIGNED on the field's type. + (get_narrower): Likewise. + + * stor-layout.c (layout_decl): Do packed field alignment for + bit-fields, too. + +2003-10-21 Eric Christopher + + * expr.c (convert_move): Use FLOAT_EXTEND for extensions. + +2003-10-21 Geoffrey Keating + + * c-pch.c: Add comments in various places. + (struct c_pch_validity): Add the lengths of various strings. + (host_machine): New static. + (target_machine): New static. + (get_ident): Bump version number. + (pch_init): Write out version, host, target validity data. + (c_common_valid_pch): Check version, host, target. + * Makefile.in (c-pch.o): Add version.h; define HOST_MACHINE and + TARGET_MACHINE. + +2003-10-21 Jason Merrill + + * tree.h (IS_EXPR_CODE_CLASS): Use strchr. + (EXPR_P): New macro. + +2003-10-21 Zack Weinberg + + * config/ia64/ia64.md (cmpxchg_acq_si): Mark operand 3 as DImode. + * config/ia64/ia64.c (ia64_expand_fetch_and_op, + ia64_expand_op_and_fetch): Make sure the REG for ar.ccv is + DImode. Use convert_move to load ar.ccv. + (ia64_expand_compare_and_swap): Likewise. + If expand_expr doesn't put 'old' and 'new' in the proper + modes, run them through convert_to_mode. + +2003-10-21 Eric Christopher + + * config/frv/frv.c (frv_adjust_field_align): Check DECL_ARTIFICIAL + for too large bitfields. + +2003-10-21 Mark Mitchell + + * Makefile.in ($(docobjdir)/%.info): Honor BUILD_INFO. + +2003-10-21 Andrew Haley + + * varasm.c (output_constructor): Annotate constructor. + +2003-10-21 Mark Mitchell + + * Makefile.in ($(DESTDIR)$(infodir)/%.info): Conditionalize chmod + on existence of destination file. + +2003-10-21 Jan Hubicka + + * haifa-sched.c (choose_ready): Initialize index. + +2003-10-21 Jason Merrill + + * tree.c (build1): Fix off-by-one error. + +2003-10-21 Robert Millan + + * config/i386/kfreebsdgnu.h: New. i386-*-kfreebsd-gnu definitions. + * config/kfreebsdgnu.h: New. *-*-kfreebsd-gnu definitions. + * config/t-kfreebsd-gnu: New. *-*-kfreebsd-gnu tmake_file. + * config.gcc: Add *-*-kfreebsd*-gnu and i[34567]86-*-kfreebsd*-gnu. + +2003-10-21 Eric Botcazou + + * web.c: Fix various comments. + +2003-10-20 Nicolas Pitre + + * config/arm/arm.c (arm_override_options): Set arm_constant_limit + to 2 instead of 1 when optimize_size is true. Gather code based on + optimize_size together. Add comment about XScale load latency. + +2003-10-21 Gunther Nikl + + * config/m68k/m68k.c (m68k_output_function_prologue): Remove + obsolete comments. + +2003-10-20 Kelley Cook + + * Makefile.in: Get parsedir and docobjdir from configure. + * configure.in: Recogonize --enable-generated-files-in-srcdir. + Pass along parsedir and docobjdir. + * configure: Regenerate. + * doc/install.texi: Document --enable-generated-files-in-srcdir. + +2003-10-20 Kelley Cook + + * Makefile.in: Define $(docdir) before the Make-lang.in fragments are + included. + +2003-10-20 Joseph S. Myers + + * c-common.c (expand_tree_builtin): Ensure creal and cimag + functions do not return lvalues. + +2003-10-20 Jason Merrill + + PR c/12553 + * tree.c (build1) : Set TREE_SIDE_EFFECTS + appropriately. + + PR c/11446 + * stor-layout.c (layout_decl): Fix alignment handling. + +2003-10-20 Joseph S. Myers + + * doc/extend.texi: Deprecate casts as lvalues. + +2003-10-20 Jan Hubicka + + * toplev.c (rest_of_compilation): Fix webizer pass ordering. + + * cgraphunit.c (decide_is_function_needed): Fix test dealing + with functions implicitly made inline. + + * cgraphunit.c (cgraph_decide_inlining_incrementally): New function. + (cgraph_finalize_function): Use it. + (cgraph_mark_inline): Allow incrmental decisions + * invoke.texi (max-inline-slope, min-inline-insns): Kill. + * params.def (PARAM_MAX_INLINE_SLOPE, PARAM_MIN_INLINE_INSNS): Kill. + * tree-inline.c (limits_allow_inlining): Kill. + (expand_call_inline): Always use unit-at-a-time path. + +2003-10-20 Zack Weinberg + + * fixinc/inclhack.def (hpux11_snprintf): New edit. + * fixinc/fixincl.x: Regenerate. + * fixinc/tests/base/stdio.h: Add test for hpux11_snprintf. + +2003-10-20 Mark Mitchell + + * Makefile.in (install-info): Simplify. + ($(DESTDIR)$(infodir)/%.info): New rule. + * configure.in (target_list): Remove install-info. + * doc/.cvsignore (gcc.info*): Remove. + (gccint.info*): Likewise. + (gccinstall.info*): Likewise. + (cpp.info*): Likewise. + (cppinternals.info*): Likewise. + (*.info*): Add it. + * doc/sourcebuild.texi: Update description of install-info. + * objc/Make-lang.in (objc.install-info): Remove. + +2003-10-20 Rainer Orth + + * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Define _ABIO32. + Use it in _MIPS_SIM definition. + * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Likewise. + +2003-10-20 Zack Weinberg + + * config/i386/i386.c (print_reg): Abort if REGNO (x) is a + virtual register, but only if file == asm_out_file. + * config/i386/i386.h (HI_REGISTER_NAMES): Use "argp", not "", + for ARG_POINTER_REGNUM. + +2003-10-20 Zack Weinberg + + * c-common.c (registered_builtin_types): New static. + (c_common_type_for_mode): Consult registered_builtin_types. + (c_register_builtin_type): Add type to registered_builtin_types. + * optabs.c (init_floating_libfuncs): Initialize libfuncs for + all MODE_FLOAT modes, not just the ones corresponding to + float_type_node, double_type_node, and long_double_type_node. + +2003-10-20 Richard Henderson + + * config/alpha/alpha.h (PREDICATE_CODES): Add normal_memory_operand. + * config/alpha/alpha-protos.h: Remove PREDICATE_CODES prototypes. + +2003-10-20 Dorit Naishlos + + * config/rs6000/rs6000.h: (rs6000_sched_insert_nops): + support new flag -minsert-sched-nops. + (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Define. + * config/rs6000/rs6000.c: (rs6000_sched_insert_nops): + support new flag -minsert-sched-nops. + (is_cracked_insn, is_microcoded_insn): New functions. + (rs6000_sched_finish): New function. + (rs6000_issue_rate): Return 5 for power4. + (get_next_active_insn, insn_terminates_group_p): New + functions. + (is_costly_group, force_new_group): New functions. + (redefine_groups, pad_groups): New functions. + (rs6000_variable_issue): Use new functions. + * doc/invoke.texi (-minsert-sched-nops): Document new + option. + +2003-10-20 David S. Miller + + * config/sparc/sparc.md (type attribute): Add new insn types + fpa, fpm_pack, fgm_mul, fgm_pdist, and fgm_cmp for VIS. + (patterns emitting VIS insns): Use them. + * config/sparc/ultra1_2.md: Add VIS scheduling rules. + * config/sparc/ultra3.md: Likewise. + +2003-10-20 Falk Hueffner + + PR target/12654 + * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't do + comparison against constant by adjusting the argument except for + EQ and NE. + +2003-10-19 Mark Mitchell + + * config.gcc: Add support for arm926ejs, arm1026ejs, arm1136js, + arm1136jfs, and armv6j. + * config/arm/arm.c (FL_ARCH6J): New macro. + (FL_VFPV2): Likewise. + (all_cores): Add entries for arm926ejs, arm1026ejs, arm1136js, + and arm1136jfs. + (all_architectures): Add entry for armv6j. + (arm_override_options): Add entries for arm926ejs, arm1026ejs, + arm1136js, and arm1136jfs. + * config/arm/arm.h (TARGET_CPU_arm926ej_s): New macro. + (TARGET_CPU_arm1026ej_s): Likewise. + (TARGET_CPU_arm1136j_s): Likewise. + (TARGET_CPU_arm1136jf_s): Likewise. + * doc/invoke.texi: Document new ARM cores and architecture + variants. + +2003-10-19 Zdenek Dvorak + + * Makefile.in (toplev.o): Add value-prof.h dependency. + (value-prof.o): Add REGS_H dependency. + * common.opt (fprofile-values, fvpt): New. + * flags.h (flag_value_profile_transformations): Declare. + * opts.c (common_handle_option): Handle -fprofile_values and + -fvpt. + * profile.c (branch_prob): Don't remove death notes here. + * timevar.def (TV_VPT): New. + * value-prof.c: Include regs.h. + (insn_divmod_values_to_profile, gen_divmod_fixed_value, gen_mod_pow2, + gen_mod_subtract, divmod_fixed_value_transform,mod_pow2_value_transform, + mod_subtract_transform, value_profile_transformations): New. + (insn_values_to_profile): Call insn_divmod_values_to_profile. + (find_values_to_profile): Add dumps. + * value-prof.h (value_profile_transformations): Declare. + * toplev.c: Include value-prof.h. + (rest_of_handle_value_profile_transformations): New. + (enum dump_file_index): Add DFI_vpt. + (dump_file): Add vpt dump. + (flag_value_profile_transformations): New. + (lang_independent_options): Add flag_profile_values and + flag_value_profile_transformations. + (rest_of_compilation): Call + rest_of_handle_value_profile_transformations. + (process_options): Let -fvpt imply -fprofile-values. + * doc/invoke.texi (-fvpt): Document. + +2003-10-19 Jan Hubicka + + * i386.c (print_reg): Do not abort on certain registers. + + PR optimization/12612 + * reg-stack.c (subst_stack_regs_pat): Use st(1) for clobbers. + * i386.md (fpatan, fyl2x, fscale patterns and expanders): Use + match_scratch; avoid bogus paralles. + + PR target/12674 + * i386.c (ix86_function_regparm): Disable implicit register passing + conventions when profiling. + +2003-10-19 Eric Botcazou + Richard Henderson + + PR optimization/8178 + * config/i386/i386.md (*movsi_zero): Delete. + (*ffs_no_cmove): Use ix86_expand_clear to zero the third operand. + +2003-10-19 Richard Henderson + + * config/alpha/alpha.c (fix_operator): New. + (divmod_operator): Tidy. + (alpha_emit_xfloating_cvt): Handle UNSIGNED_FIX. + * config/alpha/alpha.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove. + (PREDICATE_CODES): Update. + * config/alpha/alpha.md (fix_truncdfsi_ieee): Use match_operator. + (fix_truncdfsi_internal, fix_truncdfdi_ieee): Likewise. + (fix_truncsfsi_ieee, fix_truncsfsi_internal): Likewise. + (fix_truncsfdi_ieee): Likewise. + (fix_truncdfdi2, fix_truncsfdi2): Turn into define_expand. + (fixuns_truncdfdi2, fixuns_truncsfdi2, fixuns_trunctfdi2): New. + * config/alpha/alpha-protos.h: Update. + +2003-10-19 Richard Sandiford + + * config/mips/mips.h (INITIALIZE_TRAMPOLINE): Simplify. + * config/mips/mips.c (mips_load_got): Assume Pmode == ptr_mode. + * config/mips/mips.md (extendsidi2, *extendsidi2): Merge. Don't accept + constant operands. + +2003-10-18 Kazu Hirata + + * doc/extend.texi: Fix typos. + * doc/invoke.texi: Likewise. + +2003-10-18 Nicolas Pitre + + * config/arm/arm.c (arm_override_options): Use arm_tune_xscale for + XScale optimizations not arm_arch_xscale. + * config/arm/arm.h (CONSTANT_ALIGNMENT_FACTOR, MOVE_RATIO): Likewise. + +2003-10-18 Ulrich Weigand + + * config/s390/s390-protos.h (shift_count_operand): Add prototype. + * config/s390/s390.c (shift_count_operand): New function. + (s390_extra_constraint): Use it to implement 'Y' constraint. + (print_shift_count_operand): New function. + (print_operand): Use it to implement '%Y'. + * config/s390/s390.h (EXTRA_ADDRESS_CONSTRAINT): Add 'Y' constraint. + (PREDICATE_CODES): Add shift_count_operand. + * config/s390/s390.md ("rotldi3"): Merge alternatives, + using "shift_count_operand" predicate and "Y" constraint, + and "%Y" to output the combined shift count. + ("rotlsi3"): Likewise. + ("ashldi3", "*ashldi3_31", "*ashldi3_64"): Likewise. + ("ashrdi3", "*ashrdi3_31", "*ashrdi3_64", "*ashrdi3_cc_31", + "*ashrdi3_cc_64", "*ashrdi3_cconly_31", "*ashrdi3_cconly_64"): Likewise. + ("ashlsi3", "ashrsi3", "*ashrsi3_cc", "*ashrsi3_cconly"): Likewise. + ("lshrdi3", "*lshrdi3_31", "*lshrdi3_64"): Likewise. + ("lshrsi3"): Likewise. + +2003-10-18 Gunther Nikl + + * config/m68k/m68k.c (m68k_output_function_epilogue): Add missing + argument to asm_fprintf statement. + +2003-10-18 Fariborz Jahanian + + * rs6000.md: Separate TARGET_POWERPC64 patterns for TARGET_64BIT or TARGET_32BIT. + (ashrdisi3_noppc64) Generate more efficient code for 32-bit right-shift of + a "long long" argument. + +2003-10-18 Alexandre Oliva + + * final.c (final_scan_insn): Run FINAL_PRESCAN_INSNS on asm insns + as well. + +2003-10-18 Richard Sandiford + + * rtl.h (rtl_size): Declare. + (rtunion): Remove rtwint. + (rtx_def): Replace 'fld' with a union of an rtunion or a HOST_WIDE_INT. + (RTX_HDR_SIZE, RTX_SIZE): New macros. + (RTL_CHECK1): Adjust for new rtx_def layout. + (RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2): Likewise. + (XWINT, XCWINT): Likewise. Access the rtx structure directly. + (X0WINT): Remove. + (X0ANY): New macro. + * rtl.def: Adjust comments for new rtx_def layout. + * ggc.h (ggc_alloc_rtx): Take the rtx code as argument, not the + number of slots. + * rtl.c (rtx_size): New array. + (rtx_alloc): Adjust call to ggc_alloc_rtx. Use RTX_HDR_SIZE. + (copy_rtx): Use RTX_HDR_SIZE. Adjust for new rtx_def layout. + (shallow_copy_rtx): Adjust call to ggc_alloc_rtx. Use RTX_SIZE. + * integrate.c (copy_rtx_and_substitute): Use X0ANY to copy '0' fields. + * emit-rtl.c (copy_most_rtx): Likewise. + (copy_rtx_if_shared): Use RTX_SIZE. + (copy_insn_1): Use RTX_HDR_SIZE. Adjust for new rtx_def layout. + * gengenrtl.c (gendef): Adjust ggc_alloc_rtx call. Use RTX_HDR_SIZE. + * gengtype.c (write_rtx_next): Use RTX_HDR_SIZE. + (adjust_field_rtx_def): Expect "rtx_def" to be a union rather than + an array. Adjust output for new rtx_def layout. + * ggc-page.c (RTL_SIZE): Use RTX_HDR_SIZE. + * reload1.c (eliminate_regs): Use RTX_SIZE. + * rtlanal.c (loc_mentioned_in_p): Adjust for new rtx_def layout. + * gdbinit.in (pi): Likewise. + +2003-10-18 Jan Hubicka + + * integrate.c (copy_decl_for_inlining): Revert previous patch. + +2003-10-18 Jan Hubicka + + * integrate.c (copy_decl_for_inlining): Fix copying of copies. + +2003-10-18 Roger Sayle + + * libgcc.texi: Group multi-word types, such as "long double" and + "unsigned int", using braces in @deftypefn and @deftypefnx nodes. + Document __unord?f2 as returning a non-zero value, not just one. + +2003-10-18 Hans-Peter Nilsson + + * config/mmix/t-mmix (CRTSTUFF_T_CFLAGS): Define. + ($(T)crti.o, $(T)crtn.o): Pass CRTSTUFF_T_CFLAGS here too. + +2003-10-18 Eric Botcazou + + * config/i386/k6.md (k6_alux): Use the 'mode' attribute instead of + match_operand. + +2003-10-18 Eric Botcazou + + * config/sparc/sparc.c (function_arg_record_value_1): New fourth + parameter packed_p. Search for a DECL_PACKED field only if + packed_p is false. Pass packed_p recursively. + (function_arg_record_value_2): Likewise. + (function_arg_record_value): Update calls to + function_arg_record_value_1 and function_arg_record_value_2. + +2003-10-18 Eric Botcazou + + * cse.c (cse_insn) [src_folded]: Check that the tentative replacement + was successfully forced to memory before using the result. + +2003-10-18 Eric Botcazou + + PR optimization/8178 + * config/i386/i386.md (*movsi_zero): New insn to set + a register to zero on TARGET_USE_MOV0 targets. + +2003-10-18 Kelley Cook + + * Makefile.in (Makefile): Depend on the all Make-lang.in fragments. + (POSTSTAGE1_FLAGS_TO_PASS): Pass down MAKEINFO and MAKEINFOFLAGS. + +2003-10-17 David Edelsohn + + * doc/invoke.texi (gcse-las): Fix typo. + +2003-10-17 Andrew Pinski + + * doc/install.texi: Remove first part of the sentence for + zsh not working. Change gcc to GCC. + + PR bootstrap/12546 + * doc/install.texi: Document that zsh does not work when + configuring gcc. + +2003-10-17 Nathanael Nerode + + * config/ptx4.h: Switch to DWARF 2; update comments. + +2003-10-17 Segher Boessenkool + Hartmut Penner + + PR 10404, partial 11591, partial 11601 + * config/rs6000/altivec.md ("altivec_dst", "altivec_dstt", + "altivec_dstst", "altivec_dststt", "altivec_lvsl", "altivec_lvsr", + "altivec_lvebx", "altivec_lvehx", "altivec_lvewx", "altivec_lvxl", + "altivec_lvx", "altivec_stvx", "altivec_stvxl", "altivec_stvebx", + "altivec_stvehx", "altivec_stvewx"): Use a memory_operand. + * config/rs6000/rs6000.c (altivec_expand_lv_builtin): New function. + (altivec_expand_stv_builtin): Adjust for the memory_operand. + (altivec_expand_builtin): Call altivec_expand_lv_builtin. + (altivec_init_builtins): Use `long int' for memory offsets. + +2003-10-17 Jan Hubicka + + * opts.c (common_handle_option): Handle OPT_fweb + * invoke.texi (-fweb): Add missing parts of documentation. + +2003-10-17 Rainer Orth + + * config/mips/linux.h (FUNCTION_NAME_ALREADY_DECLARED): Undef + before redefinition. + +2003-10-17 Mostafa Hagog + + * common.opt: Add description of the new -fgcse-las flag. + * flags.h (flag_gcse_las): Declaration of global flag_gcse_las. + * gcse.c (hash_scan_set): Handle the case of store expression and + insert the memory expression to the hash table, this way we make it + possible to discover redundant loads after stores and remove them. + (pre_insert_copy_insn): moved the call to update_ld_motion_stores, + to pre_insert_copies, it is not the correct place to call it after + adding stores to be in the available expression hash table. + (pre_insert_copies): Added the call to update_ld_motion_stores when + one or more copies were inserted. + * opts.c (common_handle_option): Handle the -fgcse-las flag. + * toplev.c (flag_gcse_las): Initialization of flag_gcse_las. + + * doc/invoke.tex: Document new -fgcse-las flag. + +2003-10-18 Alan Modra + + * config/rs6000/crtsavres.asm: Correct alignment of powerpc64 code + for posterity, then remove it. + +2003-10-17 Richard Earnshaw + Nathan Sidwell + + * config/arm/arm.c (use_return_insn): Not a single instruction, if + there's a frame pointer. + (arm_output_epilogue): Protect stack pointer from being corrupted + on interrupt. + +2003-10-17 Ulrich Weigand + + * ifcvt.c (noce_try_addcc): Handle ifs with 'else' case. + +2003-10-17 Ulrich Weigand + + * combine.c (simplify_set): Do not clear out undobuf.other_insn + already set elsewhere. + +2003-10-17 Kelley Cook + + * config/i386/i386.c (ix86_expand_prologue): Use + gen_allocate_stack_worker. + +2003-10-17 Rainer Orth + + * config.gcc (mips-sgi-irix6*o32): Only enable use_collect2 + without gas. + (mips-sgi-irix6*): Likewise. + + * config/mips/iris6gas.h: New file. + * gcc/config.gcc (mips-sgi-irix6*): Use it. + + * config/mips/mips.h (TARGET_IRIX): Provide default. + (TARGET_IRIX5): Likewise. + (TARGET_SGI_O32_AS): Likewise. + * config/mips/iris5.h (TARGET_IRIX): Redefine as 1. + (TARGET_IRIX5): Likewise. + * config/mips/iris6.h (TARGET_IRIX6): Remove. + (TARGET_IRIX5): Redefine as 0. + + * config/mips/mips.c (mips_output_external): Test for IRIX 6 O32 + linker workaround with TARGET_IRIX and mips_abi instead of + ASM_OUTPUT_UNDEF_FUNCTION. + (mips_file_end): Inline old ASM_OUTPUT_UNDEF_FUNCTION definition, + testing TARGET_IRIX and mips_abi explicitly. + * config/mips/iris5.h (ASM_OUTPUT_UNDEF_FUNCTION): Remove. + * config/mips/iris6.h (ASM_OUTPUT_UNDEF_FUNCTION): Remove undef. + + * config/mips/mips.c (irix_output_external_libcall): Renamed from + mips_output_external_libcall. + Use new TARGET_IRIX in guard. + * config/mips/mips-protos.h (irix_output_external_libcall): Match + this. + * config/mips/iris5.h (TARGET_ASM_EXTERNAL_LIBCALL): Likewise. + + * config/mips/iris5gas.h (HAVE_GAS_SHF_MERGE): Update comment. + Define as 0. + + * config/mips/iris6.h (FUNCTION_NAME_ALREADY_DECLARED): Define + depending on mips_abi. + * config/mips/linux.h (FUNCTION_NAME_ALREADY_DECLARED): Define as 1. + * config/mips/mips.c (mips_output_function_prologue): Test + FUNCTION_NAME_ALREADY_DECLARED at runtime. + (mips_output_function_epilogue): Likewise. + (build_mips16_function_stub): Likewise. + (build_mips16_call_stub): Likewise. + * config/mips/mips.h (FUNCTION_NAME_ALREADY_DECLARED): Provide + default. + + * config/mips/iris6.h (DWARF2_UNWIND_INFO): Don't define for native + IRIX 6 O32 assembler. + (SUBTARGET_CC1_SPEC): Enforce mips2 ISA with O32 ABI. + (TARGET_OS_CPP_BUILTINS): Define _ABIO32, use it to define + _MIPS_SIM for O32 ABI. + (DWARF2_FRAME_INFO): Don't define for native IRIX 6 O32 assembler. + (ASM_DECLARE_FUNCTION_NAME): Integrate mips.h version. + (ASM_DECLARE_FUNCTION_SIZE): Move undef before redefinition. + Integrate O32 version. + (SUBTARGET_ASM_SPEC): Handle -mabi=32. + (SUBTARGET_ASM_DEBUGGING_SPEC): Add mdebug_asm_spec for gas with + O32 ABI. + (BSS_SECTION_ASM_OP_32): Define. + (BSS_SECTION_ASM_OP_64): Likewise. + (BSS_SECTION_ASM_OP): Define differently for O32 and N32/N64 ABIs + using them. + (TARGET_ASM_NAMED_SECTION): Reflect renaming. + Move up to allow override for O32 ABI without GNU as. + (EH_FRAME_SECTION_NAME): Define explicitly. + (MUST_USE_SJLJ_EXCEPTIONS): Define. + [_MIPS_SIM == _ABIO32 && !GAS] (CTORS_SECTION_ASM_OP, + DTORS_SECTION_ASM_OP): Dummy definitions. + (TARGET_ASM_NAMED_SECTION): Undef statically. + (EH_FRAME_SECTION_NAME): Likewise. + (ASM_OUTPUT_FILENAME): Integrate mips.h version. + (LINK_SPEC): Only use default options -call_shared -no_unresolved + without -r. + Don't pass -init, -fini with -mabi=32. + (COLLECT_PARSE_FLAG): Define. + + * config/mips/mips.c (iris6_asm_named_section_1): Changed guard to + TARGET_IRIX. + Renamed to use irix_ prefix. + (iris6_asm_named_section): Likewise. + (iris_section_align_entry_eq): Likewise. + (iris_section_align_entry_hash): Likewise. + (iris6_file_start): Likewise. + (iris6_section_align_1): Likewise. + (iris6_file_end): Likewise. + (iris6_section_type_flags): Likewise. + (iris_section_align_htab): Likewise. + (iris_orig_asm_out_file): Likewise. + [TARGET_IRIX] (TARGET_ASM_FILE_START): Reflect rename. + (TARGET_ASM_FILE_END): Likewise. + (TARGET_SECTION_TYPE_FLAGS): Likewise. + + * config/mips/mips.c [TARGET_IRIX5 && !TARGET_IRIX6] + (TARGET_ASM_UNALIGNED_HI_OP): Use runtime initialization in + override_options instead. + (TARGET_ASM_UNALIGNED_SI_OP): Likewise. + (TARGET_ASM_UNALIGNED_DI_OP): Likewise. + * config/mips/mips.c (override_options) [USE_COLLECT2]: Restore + flag_gnu_linker to defaults without USE_COLLECT2 for non-IRIX O32 + assemblers. + Likewise for constructor/destructor handling. + (override_options): Handle IRIX O32 assembler quirks. + [TARGET_IRIX] (irix_asm_named_section): Handle O32 ABI with and + without gas. + (mips_file_start): Use new TARGET_IRIX. + (mips_declare_object_name): No special processing for IRIX O32 + assembler. + (mips_finish_declare_object): Likewise. + (irix_asm_output_align): Renamed from iris6_asm_output_align. + Don't record alignment for O32 ABI. + (irix_file_start): Renamed from iris6_file_start. + Return early for O32 ABI. + (irix_file_end): Renamed from iris6_file_end. + Don't emit .section directives for O32 ABI. + * config/mips/iris6.h (ASM_OUTPUT_ALIGN): Reflect renaming. + * config/mips/mips-protos.h (irix_asm_output_align): Likewise. + + * config/mips/t-iris6 (MULTILIB_OPTIONS): Add mabi=32. + (MULTILIB_OSDIRNAMES): Likewise. + +2003-10-17 Rainer Orth + + * collect2.c (COLLECT_PARSE_FLAG): Provide default. + (main): Use it. + * doc/tm.texi (COLLECT_PARSE_FLAG): Document it. + +2003-10-17 Richard Earnshaw + + * arm-modes.def (CC_Nmode): New condition code mode. + * arm.c (thumb_condition_code): Delete. + (arm_select_cc_mode): Handle single-bit test for Thumb. + (arm_print_operand, cases 'd' and 'D'): Don't special case the + condition code logic for Thumb. + (get_arm_condition_code): Handle CC_Nmode. + (thumb_cbrch_target_operand): New function. + * arm.h (PREDICATE_CODES): Add thumb_cbrch_target_operand. + * arm-protos.h (thumb_cbrch_target_operand): Add prototype. + * arm.md: Add Thumb split patterns for zero_extract and + sign_extract. + (tbit_cbranch, andsi3_cbranch_scratch, andsi3_cbranch) + (orrsi3_cbranch_scratch, orrsi3_cbranch, xorsi3_cbranch_scratch) + (xorsi3_cbranch, addsi3_cbranch, addsi3_cbranch_scratch) + (subsi3_cbranch, subsi3_cbranch_scratch): New Thumb patterns. + (cbranchne_decr1): Re-work to use CC_Nmode. + + * arm.c (thumb_expand_epilogue): Add clobbers of registers restored + by the return instruction. Add a use of the link register if it + wasn't stored. + +2003-10-17 Richard Earnshaw + + * flow.c (init_propagate_block_info): Don't abort if a conditional + jump is not a comparison of a register. Instead, just don't record + conditional life information. + +2003-10-16 Jan Hubicka + + PR optimization/12630 + * pa.md (movstrsi, movstrsi_internal): Use match_scratch in clobbers + for operands 7 and 8. + +2003-10-16 Kelley Cook + + * objc/Make-lang.in (objc-parse.o): Honor $(parsedir) for objc-parse.c. + +2003-10-16 Danny Smith + + * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Define. + + * config/i386/winnt.c (gen_stdcall_suffix): Make static + (gen_fastcall_suffix): Likewise. + (i386_pe_dllexport_p): Likewise. + (i386_pe_dllimport_p): Likewise. + (i386_pe_mark_dllexport): Likewise. + (i386_pe_mark_dllimport): Likewise. + (i386_pe_asm_named_section): Fix formatting. + +2003-10-16 Zack Weinberg + + * configure.in: Add snprintf to gcc_AC_CHECK_DECLS list. + * system.h: Declare snprintf if necessary. + * configure, config.in: Regenerate. + +2003-10-15 David Edelsohn + + * config/rs6000/rs6000.c (rs6000_va_arg): Only align vector + arguments if TARGET_ALTIVEC_ABI. + +2003-10-15 Roger Sayle + + * builtins.c (fold_builtin_memcpy, fold_builtin_mempcpy, + fold_builtin_memmove, fold_builtin_strcpy, fold_builtin_strncpy, + fold_builtin_memcmp, fold_builtin_strcmp, fold_builtin_strncmp): + New functions. + (expand_builtin_memcpy): Use integer_zerop instead of testing + host_integerp and tree_low_cst directly. Move misapplied hunk + for optimization wher SRC and DEST point to the same location. + (expand_builtin_mempcpy): From here. + (expand_builtin_memmove): Use integer_zerop instead of testing + host_integerp and tree_low_cst_directly. + (expand_builtin_memset): Likewise. + (expand_builtin_memcmp): Likewise (and for integer_onep). + (expand_builtin_strncmp): Likewise. + (fold_builtin): Call the appropriate fold_builtin_foo functions + to optimize memcpy, mempcpy, memmove, strcpy, strncpy, memcmp, + strcmp and strncmp. + +2003-10-15 Geoffrey Keating + + * config/darwin-protos.h (machopic_non_lazy_ptr_name): Delete + prototype. Clean up some whitespace. + * config/darwin.c: Use gen_rtx_FOO (...) rather than + gen_rtx (FOO, ...). + (machopic_non_lazy_ptr_name): Make static. + (name_needs_quotes): Allow '.' and '$' unquoted. + (machopic_legitimize_pic_address): Improve codegen in dynamic-no-pic + case. + +2003-10-15 Gábor Lóki + + * fold-const.c (tree_swap_operands_p): Disable some features + when optimizing for size. + +2003-10-15 David Daney + + * config/mips/linux.h (MD_FALLBACK_FRAME_STATE_FOR): New + * config/mips/mips.h (DWARF_FRAME_REGNUM): Fixed to allow unwind + from leaf functions. + (DWARF_FRAME_RETURN_COLUMN): Ditto. + (SIGNAL_UNWIND_RETURN_COLUMN): New, used + by MD_FALLBACK_FRAME_STATE_FOR. + * testsuite/gcc.dg/cleanup-9.c: Added mips*-*-linux* target. + +2003-10-15 Zack Weinberg + + * genmodes.c: Include hashtab.h. + (modes_by_name, hash_mode, eq_mode, struct mode_adjust) + (adj_bytesize, adj_alignment, adj_format, new_adjust) + (_ADD_ADJUST, ADJUST_BYTESIZE, ADJUST_ALIGNMENT, ADJUST_FORMAT) + (print_maybe_const_decl, emit_mode_adjustments): New. + (known_modes): Rename to modes. + (find_mode): Kill class argument; look up in hash table. + (new_mode): Insert into hash table also. + (new_adjust): New. + (reset_float_format, make_partial_integer_mode) + (make_vector_mode): Tweak error reporting. + (reset_float_format): Correct type of fourth argument. + (emit_insn_modes_h): Add #defines to help make mode_size, + mode_base_align, and real_format_for_mode conditionally const. + (emit_mode_size, emit_mode_base_align): Use print_maybe_const_decl. + (emit_real_format_for_mode): Likewise, but temporarily disabled. + (emit_insn_modes_c): Call emit_mode_adjustments. + (main): Initialize modes_by_name. + * Makefile.in: Update dependencies. + * machmode.def: Document EXPR arguments and new ADJUST_* statements. + * machmode.h: Use CONST_MODE_SIZE and CONST_MODE_BASE_ALIGN in + declarations of mode_size and mode_base_align. Declare + init_adjust_machine_modes. + * toplev.c (backend_init): Call init_adjust_machine_modes. + +2003-10-15 Olivier Hainque + + * genmodes.c (calc_wider_mode): Allocate enough room for all the + entries we'll possibly assign in the sort buffer. + +2003-10-15 Ulrich Weigand + + * config.gcc (s390x-ibm-tpf*): New target. + * doc/install.texi: Document it. + * config/s390/t-tpf: New file. + * config/s390/tpf.h: New file. + +2003-10-15 Hans-Peter Nilsson + + PR target/12598 + * config/cris/cris.md (define_split "*mov_sidesi_biap_mem"+1) + (define_splits "*mov_sidesi_mem"+1, "casesi"+9, +10, +11, +12): + Use cris_mem_op and replace_equiv_address, not gen_rtx_MEM. + ("call", "call_value", define_split "*mov_sidesi_mem"+19, +20) + (define_split "*mov_sidesi_mem"+21, +22, +23, +24, +25, +26, +27) + (define_split "*mov_sidesi_mem"+28, +29, +30): Use + replace_equiv_address, not gen_rtx_MEM. + * config/cris/cris.c (cris_mem_op): New match_operator function. + (cris_notice_update_cc): Use replace_equiv_address, not + gen_rtx_MEM. + * config/cris/cris.h (PREDICATE_CODES): Add cris_mem_op. + +2003-10-15 Bernardo Innocenti + + * config/m68k/m68k.h (MASK_SEP_DATA, TARGET_SEP_DATA, + MASK_ID_SHARED_LIBRARY, TARGET_ID_SHARED_LIBRARY): Move + definitions after the other flags. + +2003-10-14 Ziemowit Laski + + * c-parse.in (methoddef, methodproto): Call objc_add_method() + instead of add_method(). + * objc/objc-act.c (objc_check_decl): Do not check for + constant_string_type. + (add_method): Rename to objc_add_method(). + (really_start_method): Call objc_add_method() instead of + add_method(). + * objc/objc-act.h (add_method): Rename to objc_add_method(). + +2003-10-14 Ulrich Weigand + + * config/s390/s390-protos.h (s390_alc_comparison): Add prototype. + (s390_slb_comparison): Likewise. + * config/s390/s390.c (s390_alc_comparison, s390_slb_comparison): + New functions. + * config/s390/s390.h (PREDICATE_CODES): Add s390_alc_comparison + and s390_slb_comparison. + * config/s390/s390.md ("*adddi3_31", "*subdi3_31"): Do not use on + zSeries machines. + ("*adddi3_31z", "*subdi3_31z"): New insns. + ("*adddi3_alc_cc", "*adddi3_alc", "*subdi3_slb_cc", "*subdi3_slb", + "*addsi3_alc_cc", "*addsi3_alc", "*subsi3_slb_cc", "*subsi3_slb"): + New insns. + +2003-10-14 Nathanael Nerode + + * configure.in: Clean up some feedback echoes. + * configure: Regenerate. + + * aclocal.m4: Properly quote names of macros being defined. + + * config.gcc (am33_2.0-*-linux*): Use t-slibgcc-elf-ver. + +2003-10-14 Steve Ellcey + + * config/ia64/ia64.c (ia64_expand_call): Force function address + to DImode. + * config/ia64/ia64.md (call_gp): Put DImode on operand 0. + +2003-10-14 Ulrich Weigand + + * config/s390/s390.md ("muldf3", "*muldf3", "*muldf3_ibm", + "mulsf3", "*mulsf3", "*mulsf3_ibm"): Do not clobber CC. + ("divdf3", "*divdf3", "*divdf3_ibm", "divsf3", "*divsf3", + "*divsf3_ibm"): Likewise. + +2003-10-14 Nathanael Nerode + + * config.gcc, config/m68hc11/t-m68hc11-gas: Replace uses of + target_alias with target_noncanonical. + +2003-10-14 Geoffrey Keating + + * expr.c (block_move_libcall_safe_for_call_parm): Clean up, + and add case for machines where outgoing register parameters + get stack space. + + * config/darwin.c (machopic_indirect_data_reference): Use a scratch + register when generating indirect address. + +2003-10-14 Richard Earnshaw + + * arm.c (arm_addimm_operand): MODE arguemnt is unused. + * arm.md (cbranchne_decr1): Fix bootstrap warning. + +2003-10-14 Rainer Orth + + * fixinc/inclhack.def (alpha_pthread_gcc): New fix. + * fixinc/fixincl.x: Regenerate. + * fixinc/tests/base/pthread.h [ALPHA_PTHREAD_GCC_CHECK]: New + testcase. + Fixes PR bootstrap/9330. + +2003-10-13 Eric Christopher + + * config/frv/frv.c (frv_adjust_field_align): Redo check for + too wide bitfields. + (frv_hard_regno_mode_ok): Add SPR_P and AP_FIRST. + * config/frv/frv.h (FUNCTION_PROFILER): Remove abort call. + (SBSS_SECTION_ASM_OP): Remove. + (EXTRA_SECTIONS): Remove in_sbss. + (EXTRA_SECTION_FUNCTIONS): Remove SBSS_SECTION_FUNCTION. + (SBSS_SECTION_FUNCTION, sbss_section): Remove. + (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Change sbss_section to + named_section. + +2003-10-13 Nathanael Nerode + + * Makefile.in, configure.in, config.host, mkheaders.in: Replace + uses of ${target_alias} for directory names (and other places which + won't like the empty string) with ${target_noncanonical}. Introduce + call early in configure.in to _GCC_TOPLEV_NONCANONICAL_TARGET so it's + available. + * configure: Regenerate. + +2003-10-13 Ian Lance Taylor + + * config/arm/iwmmxt.md (cond_iwmmxt_movsi_insn): New pattern. + * config/arm/arm.md: For splits which rely on conditional moves, + remove ! TARGET_IWMMXT condition. + +2003-10-13 David S. Miller + + * ifcvt.c (num_removed_blocks): Rename to num_true_changes. + (find_cond_trap): Always increment if we emit a conditional + trap insn. + +2003-10-13 Zack Weinberg + + * Makefile.in (BUILD_RTL): Replace $(BUILD_PREFIX)insn-modes.o + with min-insn-modes.o. + (STAGESTUFF): Add min-insn-modes.c. + (genobjs): Add genmodes.o. + (print-rtl.o, print-rtl1.o): Depend on $(TM_P_H). + (insn-modes.o): Depend on $(TM_H) not $(GTM_H); also real.h. + (min-insn-modes.c, min-insn-modes.o): New rules. + (s-modes): Also generate min-insn-modes.c. + ($(BUILD_PREFIX_1)insn-modes.o): Kill. + * genmodes.c (struct mode_data): Add format field. + (blank_mode, validate_mode, complete_mode): Update to match. + (make_scalar_mode): Separate into make_int_mode and make_float_mode. + (_SCALAR_MODE): Kill. + (FLOAT_MODE, FRACTIONAL_FLOAT_MODE): Add format argument. + (emit_insn_modes_c_header): Adjust. + (emit_min_insn_modes_c_header, emit_real_format_for_mode) + (emit_min_insn_modes_c): New functions. + (emit_insn_modes_c): Call emit_real_format_for_mode. + (main): Add -m option to generate min-insn-modes.c. + * machmode.h: Update documentation. Add format argument to + all uses of FLOAT_MODE. + * real.c: Don't define real_format_for_mode here. + + * dwarfout.c: Move default definition of PRINT_REG... + * defaults.h: ...here. + * print-rtl.c: Include tm_p.h. + (DEBUG_PRINT_REG, DEBUG_REGISTER_NAMES, debug_reg_names, reg_names): + Kill. + (print_rtx): Use PRINT_REG, not DEBUG_PRINT_REG. But surround + this entire block with #ifndef GENERATOR_FILE. + * regclass.c: Unconditionally define reg_names. + * config/mips/mips.h, config/rs6000/rs6000.h, config/sh/sh.h + Don't define DEBUG_REGISTER_NAMES. + * config/rs6000/darwin.h: Don't use DEBUG_REGISTER_NAMES in + redefinition of REGISTER_NAMES. + * config/i386/i386.h: Don't define DEBUG_PRINT_REG. + + * combine.c: Change all preprocessor conditionals on + EXTRA_CC_MODES to use SELECT_CC_MODE instead; rearrange a bit + for clarity. + * genopinit.c: Remove mention of EXTRA_CC_MODES in comment. + * configure.in: Don't define EXTRA_CC_MODES. + * configure, config.in: Regenerate. + * doc/tm.texi: Remove documentation of EXTRA_CC_MODES. + + * config/arc/arc.c, config/m32r/m32r.c, config/sparc/sparc.c: + May assume that GET_MODE_CLASS is accurate for extra CC modes + at all times. + + * config/i860/i860.h (INIT_CUMULATIVE_ARGS): Pass correct + number of arguments to aggregate_value_p. + + * genmodes.c (RESET_FLOAT_FORMAT, reset_float_format): New. + * machmode.def: Explain ARCH-modes.def. Document + RESET_FLOAT_FORMAT. Improve commentary on various mode + clusters. Do not define OI, PQI, PHI, PSI, PDI, QF, HF, TQF, + XF, or TF modes here. Remove backward-compatibility + definition of CC. + + * config/alpha/alpha-modes.def: New file; define TF mode. + * config/arc/arm-modes.def: Define XF mode. + * config/c4x/c4x-modes.def: Define QF and HF modes. Unset + float format for SF and DF modes. + * config/dsp16xx/dsp16xx-modes.def: New file; define HF mode. + * config/i386/i386-modes.def: Define XF and TF modes. + * config/i960/i960-modes.def: Define TF mode. + * config/ia64/ia64-modes.def: Define TF and OI modes. + * config/m68k/m68k-modes.def: New file; define XF mode. + * config/mips/mips-modes.def: New file; define TF mode, reset + formats for SF and DF modes. + * config/pa/pa-modes.def: Define TF mode. + * config/rs6000/rs6000.c: Define TF and PSI modes. + * config/s390/s390-modes.def: Define OI mode. + * config/sh/sh-modes.def: New file; define PSI mode. + * config/sparc/sparc-modes.def: Define TF mode. + * config/vax/vax-modes.def: New file; reset formats for SF and + DF modes. + + * config/c4x/c4x.c (c4x_override_options): No need to mess + with real_format_for_mode or set REAL_MODE_FORMATs. + (c4x_immed_int_constant): Don't apply GET_MODE_CLASS to rtx + variable. + * config/i386/i386.c (override_options): No need to set + REAL_MODE_FORMATs here. + * config/i960/i960.c (i960_initialize): Likewise. + * config/m68k/m68k.c (m68k_override_options): Likewise. + * config/ia64/ia64.c (ia64_override_options): Set REAL_MODE_FORMAT + for TFmode only if not the default. + * config/mips/mips.c (override_options): Likewise. + * config/vax/vax.c (override_optionms): Set REAL_MODE_FORMAT for + DFmode only if not the default. + + * config/i370/i370.h (RET_REG): Don't consider TFmode. + * config/m68hc11/m68hc11.c (print_operand): Don't consider XFmode. + * config/dsp16xx/dsp16xx.c (hard_regno_mode_ok): #if 0 out use + of modes that don't appear anywhere in the machine description. + + * config/arc/arc-modes.def, config/arm/arm-modes.def + * config/c4x/c4x-modes.def, config/frv/frv-modes.def + * config/i386/i386-modes.def, config/i960/i960-modes.def + * config/ia64/ia64-modes.def, config/mmix/mmix-modes.def + * config/pa/pa-modes.def, config/pdp11/pdp11-modes.def + * config/rs6000/rs6000-modes.def, config/s390/s390-modes.def + * config/sparc/sparc-modes.def: Convert to new style for + declaring extra CC modes. + +2003-10-13 Zack Weinberg + + * cpplex.c (_cpp_clean_line): In the common case of a line + with no trigraphs and no \-newline, avoid writing to memory. + (_cpp_skip_block_comment): Use a local 'cur' pointer instead + of the buffer member. Make c an uchar to avoid unnecessary + sign extensions. + +2003-10-13 Nathanael Nerode + + * configure.in: Remove unnecessary test. + * configure: Regenerate. + + * configure.in: Fix grammatical error. Move UWIN host error to... + * config.host: Here. + * configure: Regenerate. + +2003-10-13 Andreas Krebbel + + * config/s390/s390.md ("*fmadddf4", "*fmsubdf4", "*fmaddsf4", + "*fmsubsf4"): Insns are now dependent on TARGET_FUSED_MADD instead + of flag_unsafe_math_optimizations. + * config/s390/s390.h ("MASK_NO_FUSED_MADD", "TARGET_NO_FUSED_MADD", + "TARGET_FUSED_MADD", "TARGET_SWITCHES"): Introduced new target flags + fused-madd and no-fused-madd. + * doc/invoke.texi: Documented the new options fused-madd and + no-fused-madd for S/390. + +2003-10-14 Alan Modra + + * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Choose + MASK_ALIGN_NATURAL if rs6000_alignment_string not given. Don't + assign DEFAULT_ABI. + (ADJUST_FIELD_ALIGN, ROUND_TYPE_ALIGN): Update comment. + * config/rs6000/rs6000.c: Formatting. + (rs6000_parse_alignment_option): Only set rs6000_alignment_flags + when rs6000_alignment_string given. + +2003-10-13 Eric Botcazou + + PR target/12538 + * config/sparc/sparc.c (MUST_SAVE_REGISTER): Delete. + (sparc_flat_must_save_register_p): New function to decide whether + a register must be saved/restored in the function prologue/epilogue. + (sparc_flat_compute_frame_size): Use it instead of MUST_SAVE_REGISTER. + +2003-10-12 Steven Bosscher + + * config/avr/avr.c, config/avr/avr-protos.h: Convert to + ISO C90 function declarations and definitions. + * config/sh/sh.c, config/sh/sh-protos.h: Likewise. + +2003-10-12 Nathanael Nerode + + * config.gcc (*-*-freebsd*): Use tm_defines instead of tiny + config files which do the same thing. + * config/freebsd3.h, config/freebsd4.h, config/freebsd5.h, + config/freebsd6.h: Remove now unnecessary files. + +2003-10-12 Steven Bosscher + + * c-common.c (c_common_truthvalue_conversion): Warn if the + address of a non-weak function is used as a truth value. + +2003-10-12 Kazu Hirata + + * config/h8300/h8300.c (WORD_REG_USED): Use SP_REG instead of + a literal. + * config/h8300/h8300.h (REGNO_OK_FOR_BASE_P): Use MAC_REG + instead of a literal. + +2003-10-12 Hans-Peter Nilsson + + * doc/extend.texi (Function Attributes): Mention the exceptional + path for noreturn-marked functions. + +2003-10-12 Jan Hubicka + + * cgraphunit.c (cgraph_decide_inlining): Fix uninitialized variable + warning. + +2003-10-12 Danny Smith + + * config/i386/i386.c (x86_this_parameter): Fix typo. + +203-10-11 Jan Hubicka + + * Makefile.in (web.o): New. + * web.c: New file. + * rtl.h (web_main): Declare. + * timervar.def (TV_WEB): New. + * toplev.c (dump_file_index, dump_file_info): Add DFI_web. + (rest_of_hanle_web): New. + (flag_web): New static variable. + (lang_independent_options): Add "web". + (rest_of_compilation): Call rest_of_handle_web. + * invoke.texi (-fweb): Document. + * common.opt (fweb): New. + * flags.h (flag_web): New. + * opts.c (decode_options): Set flag_web at -O3. + + * passes.texi (web construction): Document. + * invoke.texi (-O3): Document that -fweb is enabled. + + * regrename.c (regrename_optimize): Deal better with situation when + replacement failed. + + * sched-ebb.c: Include params.h and profile.h + (schedule_ebbs): Use tracer parameters to discover superblocks + * Makefile.in (sched-ebb.o): Add dependencies. + +2003-10-11 Roger Sayle + + * fold-const.c (negate_mathfn_p): New function to determine whether + a built-in mathematical function is sign preserving, f(-x) == -f(x). + Add support for BUILT_IN_ASIN, BUILT_IN_ASINF and BUILT_IN_ASINL. + (tree_swap_operands_p): Change API to take an additional argument + indicating that the swapped operands evaluate in reverse order. + Canonicalize VAR_DECLs and PARM_DECLs last if we can, i.e. neither + operand side-effects or we don't care about flag_evaluation_order. + (reorder_operands_p): New function to check whether its safe to + evaluate the given operands in reverse order. + (negate_expr_p): We can always negate integer constants unless + we honor -ftrapv and the signed type would overflow. Only allow + -(A-B) into B-A if reorder_operands_p says that its OK. Allow + negation of COMPLEX_CST if both real and imaginary parts can be + negated. Allow negation through floating point extensions and + sign-preserving built-in functions. + (negate_expr): Move the code to negate integers from "fold" to + here. Always negate integer constants unless we honor -ftrapv + and the signed type would overflow. Always negate real constants + unless we honor -ftrapping-math. Only convert -(A-B) into B-A + if allowed by reorder_operands_p. Add support for COMPLEX_CST. + Optimize negation through floating point extensions and + sign-preserving built-in functions (as defined by negate_mathfn_p). + (fold): Adjust calls to tree_swap_operands_p. + (fold ): Move the remaining negation optimizations + to negate_expr_p/negate_expr. + (fold ): Use reorder_operands_p to check whether we're + allowed to convert (-A) - B into (-B) - A. + +2003-10-11 Roger Sayle + + * builtins.c (expand_builtin_strcmp): Defend against the possibility + that gen_cmpstrsi may fail: Stabilize the argument list against + re-evaluation and expand the library call directly using this saved + argument list if a cmpstrsi sequence can't be generated. + (expand_builtin_strncmp): Likewise. + + * config/i386/i386.md (cmpstrsi, movstrsi): Disable with -Os. + +2003-10-11 Roger Sayle + + PR optimization/12260 + * simplify-rtx.c (simplify_unary_operation): Simplify all unary + operations through CONST nodes. Optimize (neg (plus X C)) as + (minus -C X) for constant values C. + (simplify_binary_operation): Optimize (minus (neg X) C) as + (minus -C X) for constant values C. + (simplify_plus_minus): Avoid creating (neg (const (plus X C)), + instead create (minus -C X). + +2003-10-11 Roger Sayle + + * expr.c (expand_expr ): Let expand_operands call + safe_from_p for us, once it chooses an evaluation order. + (expand_expr ): Likewise. + (expand_expr ): Likewise. If expand_operands + places the second operand in "target", swap the operands. + (do_store_flag): Let expand_operands call safe_from_p for us. + +2003-10-11 Eric Botcazou + + PR optimization/12544 + * function.c (put_var_into_stack): Don't generate ADDRESSOFs + for DECL_NONLOCAL decls. + +2003-10-11 Kazu Hirata + + * expr.c: Follow spelling conventions. + * final.c: Likewise. + * optabs.c: Likewise. + * sched-deps.c: Likewise. + * sdbout.c: Likewise. + +Sat Oct 11 12:24:23 CEST 2003 Jan Hubicka + + * varasm.c (notice_global_symbol): Fix handling of variables; avoid + re-computing of variable. + +2003-10-11 Richard Henderson + + * config/alpha/alpha.c (alpha_return_in_memory): Rename from + return_in_memory, make static, change signature to match target hook. + (alpha_setup_incoming_varargs): Make static, change signature to + match target hook, add code for vms and unicos. + (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN, + TARGET_PROMOTE_PROTOTYPES, TARGET_STRUCT_VALUE_RTX, + TARGET_RETURN_IN_MEMORY, TARGET_SETUP_INCOMING_VARARGS, + TARGET_STRICT_ARGUMENT_NAMING, + TARGET_PRETEND_OUTGOING_VARARGS_NAMED): New. + * config/alpha/alpha-protos.h: Update. + * config/alpha/alpha.h (PROMOTE_FUNCTION_ARGS, + PROMOTE_FUNCTION_RETURN, RETURN_IN_MEMORY, + SETUP_INCOMING_VARARGS): Remove. + * config/alpha/unicosmk.h (SETUP_INCOMING_VARARGS): Remove. + * config/alpha/vms.h (SETUP_INCOMING_VARARGS): Remove. + +2003-10-11 Ian Lance Taylor + + * config/arm/arm.c (arm_regno_class): Handle IWMMXT_GR_REGS. + +2003-10-11 Kazu Hirata + + * config/m68k/lb1sf68.asm: Follow spelling conventions. + * config/m68k/m68k.c: Likewise. + * config/m68k/m68k.h: Likewise. + * config/m68k/m68k.md: Likewise. + +2003-10-11 Roger Sayle + + * builtins.c (expand_builtin_memcpy): Optimize case when the two + pointer arguments are the equal, non-volatile and side-effect free. + (expand_builtin_mempcpy): Likewise. + (expand_builtin_memmove): Likewise. + (expand_builtin_strcpy): Likewise. + (expand_builtin_memcmp): Likewise. + (expand_builtin_strcmp): Likewise. + (expand_builtin_strncmp): Likewise. + +2003-10-11 Roger Sayle + + * combine.c (apply_distributive_law): Enable "distributive" floating + point optimizations with -funsafe-math-optimizations. + +2003-10-11 Andrew Pinski + + * genmodes.c (emit_mode_mask) Change MASK to MODE_MASK. + +2003-10-11 Kazu Hirata + + * config/m68k/m68k-protos.h: Remove the prototype for + finalize_pic. + +2003-10-11 Kazu Hirata + + * config/m68k/m68k.c: Fix comment typos. + +2003-10-11 Bernardo Innocenti + + * config/m68k/m68k-protos.h (use_return_insn): Change return type from + int to bool. + * config/m68k/m68k.c (struct m68k_frame): Add funcdef_no member. + (current_frame): New global var. + (m68k_compute_frame_layout): Cache computations in current_frame. + (m68k_initial_elimination_offset): Use values from current_frame + instead of recomputing them. + (use_return_insn): Likewise. + (m68k_output_function_prologue): Likewise. + (m68k_output_function_epilogue): Likewise. + * config/m68k/m68k.h (TARGET_CPU_CPP_PREDEFINES): Fold __PIC__ handling + inside the block for __pic__. + +2003-10-11 Peter Barada + Bernardo Innocenti + + * config/m68k/m68k.c (m68k_frame): Move before protos referencing it. + (m68k_save_reg): Add boolean parameter `interrupt_handler'. + (m68k_interrupt_function_p): New function. + (m68k_handle_fndecl_attribute): Ditto. + (m68k_compute_frame_layout): Ditto. + (m68k_attribute_table): Define back-end specific attributes. + (m68k_output_function_epilogue): Emit RTE instruction for interrupt + functions. + +2003-10-11 Bernardo Innocenti + + * config/m68k/t-uclinux: New target Makefile fragment. + * config/m68k/uclinux.h: New target macro file. + * config.gcc (m68k-*-uclinux): New target definition. + +2003-10-10 Roger Sayle + + * builtins.c (builtin_mathfn_code): Generalize to check whether + the call is to any built-in function by comparing the call's + argument list against the builtin decl's function type. + +2003-10-10 Roger Sayle + + * cse.c (constant_pool_entries_regcost): New global variable to + hold the register cost component of constant_pool_entries_cost. + (fold_rtx): Calculate constant_pool_entries_regcost at the same + time as constant_pool_entries_cost. + (cse_insn): Set both src_folded_cost and src_folded_regcost from + constant_pool_entries_cost and constant_pool_entries_regcost. + (cse_main): Initialize constant_pool_entries_regcost to zero. + + * optabs.c (expand_unop): Attach a REG_EQUAL note describing + the semantics of the sequence of bit operations used to negate + a floating-point value. + (expand_abs_nojump): Likewise attach a REG_EQUAL note describing + the semantics of the bit operations used to abs a floating point + value. + +2003-10-11 Bernardo Innocenti + Paul Dale + + * config/m68k/lb1sf68.asm: Add __PIC__ and __ID_SHARED_LIBRARY__ + support. + * config/m68k/m68k-none.h (ASM_SPEC): Pass --pcrel to assembler on + -fpic, -fPIC, -msep-data and -mid-shared-library. + * config/m68k/m68k.c (m68k_library_id_string): New global variable. + (override_options): Add -msep-data and -mshared-library-id support. + (m68k_output_function_prologue): Generate code to load A5 for + TARGET_ID_SHARED_LIBRARY and TARGET_SEP_DATA. + (m68k_output_mi_thunk): Emit indirect jump on TARGET_ID_SHARED_LIBRARY. + (m68k_output_pic_call): New function. + * gcc/config/m68k/m68k.h (TARGET_SEP_DATA): New target flag. + (TARGET_ID_SHARED_LIBRARY): Ditto. + (TARGET_SWITCHES): Add switches for -mid-shared-library and -msep-data. + * gcc/config/m68k/m68k.md (call): Call m68k_output_pic_call(). + (call_value): Likewise. + +2003-10-10 Zack Weinberg + + * gengenrtl.c (find_formats, genheader): Make i an unsigned + int, remove cast of NUM_RTX_CODE. + * machmode.h: Make the HAVE_MACHINE_MODES #ifdef encompass the + entire file. Remove the #ifs on GET_MODE_MASK etc and + GET_MODE_WIDER_MODE etc. + +2003-10-10 Eric Christopher + + * lcm.c (optimize_mode_switching): Change NORMAL_MODE + to MODE_ENTRY and MODE_EXIT. Add MODE_AFTER for insns + that set mode. + * config/sh/sh.h (MODE_ENTRY): New macro. + (MODE_EXIT): Ditto. + (MODE_AFTER): Ditto. + * config/sh/sh.md: Change for MODE_AFTER. Add + fp_set attribute. + * doc/tm.texi: Document MODE_AFTER, MODE_ENTRY, and MODE_EXIT. + +2003-10-10 Zack Weinberg + + * genmodes.c, mode-classes.def: New files. + * machmode.def: Rewritten to genmodes.c interface. + * Makefile.in (extra_modes_file): New substitution variable. + (MACHMODE_H): No longer includes machmode.def or + @extra_modes_file@; instead, mode-classes.def and insn-modes.h. + (BUILD_RTL): Add $(BUILD_PREFIX)insn-modes.o. + (OBJS-common): Add insn-modes.o. + (STAGESTUFF): Add insn-modes.c, insn-modes.h, s-modes, and + genmodes$(build_exeext). + (insn-modes.o, insn-modes.c, insn-modes.h, s-modes, genmodes.o, + genmodes$(build_exeext), $(BUILD_PREFIX_1)insn-modes.o): New targets. + (s-genrtl): Don't depend on $(RTL_BASE_H). + (gengenrtl.o): Don't depend on coretypes.h, $(GTM_H), real.h, + or $(RTL_BASE_H); just rtl.def. + * gengenrtl.c: Don't include coretypes.h, tm.h, rtl.h, or + real.h. Give fake definition of CONST_DOUBLE_FORMAT and + substitute definition of NUM_RTX_CODE. Add casts to avoid + warnings. + * machmode.h: Include insn-modes.h, not machmode.def. Include + mode-classes.def to define enum mode_class. Tweak definitions + of GET_MODE_CLASS, GET_MODE_SIZE, GET_MODE_BITSIZE, GET_MODE_MASK, + GET_MODE_INNER, GET_MODE_WIDER_MODE, GET_CLASS_NARROWEST_MODE. + (inner_mode_array): Renamed mode_inner. + (mode_base_align): New. + * rtl.c (mode_name, mode_class, mode_bitsize, mode_size, + mode_unit_size, mode_wider_mode, mode_mask_array, + inner_mode_array, class_narrowest_mode): Delete definitions. + * stor-layout.c (get_mode_alignment): Use mode_base_align. + * real.h: Use MIN_MODE_FLOAT and MAX_MODE_FLOAT, not QFmode + and TFmode, in real_format_for_mode and REAL_MODE_FORMAT. + + * config/ip2k/ip2k.h, config/iq2000/iq2000.h: + No need to define BITS_PER_UNIT. + +2003-10-10 Richard Kenner + + * config/ia64/ia64.c (ia64_vms_init_libfuncs): New function. + (ia64_output_function_prologue): Only write .prologue if --with-gnu-as. + (ia64_initialize_trampoline): If not using GAS, declare trampoline + as global. + * config/ia64/ia64.h (ASM_APP_ON, ASM_APP_OFF): Add vers for not GAS. + (ASM_OUTPUT_DEBUG_LABEL): Likewise. + + * stor-layout.c (compute_record_mode): Don't force BLKmode if + field is zero-length BLKmode. + * expr.c (expand_expr, case COMPONENT_REF): Handle case of BLKmode + zero-size references. + + * combine.c (distribute_links): Properly test for REG being set. + + * config/alpha/alpha.c (alpha_expand_block_mode): Don't use + gen_lowpart and company except for REG. + +2003-10-10 John David Anglin + + * pa64-hpux.h (LINK_SPEC): Use `-z' option with HP ld. + +2003-10-10 Nathanael Nerode + + * config.gcc (mips*-*-netbsd*): Remove content-free line. + +2003-10-10 Herman A.J. ten Brugge + + * gcov-io.h: Check BITS_PER_UNIT when defining gcov_unsigned_t, + gcov_position_t and gcov_type. + +2003-10-09 Kaz Kojima + + * configure.in (HAVE_AS_TLS): Add sh-*-* and sh[34]*-*-* cases. + * configure: Regenerate. + +2003-10-09 Kazu Hirata + + * config/h8300/h8300.md (define_asm_attributes): Specify + the length of an asm insn more precisely. + +2003-10-09 Rainer Orth + + * config/mips/iris6.h (SUBTARGET_CPP_SPEC): Define. + +2003-10-09 Bob Wilson + + * config/xtensa/xtensa.c (xtensa_dbx_register_number): Change first + FP register number to 48 and MAC16 accumulator to 0x210. + +2003-10-09 Nathanael Nerode + + * config.gcc: Remove redundant thread_file setting clauses for + various *-*-linux* targets. + +2003-10-09 Kazu Hirata + + * config/h8300/h8300.md (define_asm_attributes): New. + +2003-10-09 Roger Sayle + + * optabs.c (prepare_float_lib_cmp): Always attach a REG_EQUAL note + to the comparison, as emit_libcall_block calls copy_rtx on equiv. + +2003-10-09 Dorit Naishlos + + * haifa-sched.c (ok_for_early_schedule): New function. + (early_queue_to_ready): New function. + (schedule_block): Allow early removal of insns from Q. + (schedule_insn): Update INSN_TICK in case of premature + issue. + * common.opt (sched_stalled_insns): New flag. + (sched_stalled_insns_dep): New flag. + * flags.h: Same above flags. + * opts.c: Same as above. + * toplev.c: Same as above. + * target.h (targetm.sched.is_costly_dependence): New + hook. + * target-def.h: Same as above. + * config/rs6000/rs6000.h: (rs6000_sched_costly_dep): + Support new flag -msched-costly-dep. + (DEFAULT_SCHED_COSTLY_DEP): Define. + * config/rs6000/rs6000.c: + (rs6000_is_costly_dependence): New function. + (is_load_insn, is_store_insn): New functions. + (is_load_insn1, is_store_insn1, is_mem_ref): New + functions. + * doc/invoke.texi (-fsched-stalled-insns-dep) + (-fsched-stalled-insns, -msched-costly-dep): Document + options. + * doc/tm.texi (is_costly_dependence): Define new + scheduler target hook. + +2003-10-09 Jason Merrill + + PR c++/6392 + * c-common.c (c_build_qualified_type): Look through arrays first. + (c_apply_type_quals_to_decl): Look through arrays. + + * c-common.c (c_apply_type_quals_to_decl): Unset TREE_READONLY for + types with constructors. + + * coverage.c (build_ctr_info_value): Use build_decl to make a + VAR_DECL. + (create_coverage): Likewise. + + * stmt.c (resolve_asm_operand_names): Call check_unique_operand_names + here. + (expand_asm_operands): Not here. + (parse_input_constraint): No longer static. + * tree.h: Declare it. + +2003-10-08 Kaz Kojima + + * config/sh/t-linux (SHLIB_LINK): Override to use a linker script + libgcc_s.so. + (SHLIB_INSTALL): Likewise. + +2003-10-08 Nathanael Nerode + + * doc/install.texi: Remove reference to removed 'pthreads' thread + option. + +2003-10-08 Aldy Hernandez + + * config/rs6000/rs6000.md ("abssi2_isel"): Add early clobber to + operand 2. + +2003-10-08 Nathanael Nerode + + * config.gcc: Don't accept --enable-threads=pthreads. Clean + up related case statements. + * configure.in: Don't accept --enable-threads=pthreads, + decosf1, mach, or os2 (none of which work anyway). Alphabetize + supported thread files in case clause. + * configure: Regenerate. + +2003-10-08 Geoffrey Keating + + * function.c (pad_to_arg_alignment): Move 'boundary_in_bytes' + definition to above SPARC_STACK_BOUNDARY_HACK. + +2003-10-08 Jason Merrill + + * c-pretty-print.c (pp_c_postfix_expression) + : Fix thinko. + +2003-10-08 Rainer Orth + + * mklibgcc.in: Don't hide undefined or typeless symbols. + +2003-10-08 John David Anglin + + PR optimization/12142 + * cse.c (count_reg_usage): In a SET with a REG SET_DEST, count the + uses of the register in the SET_SRC. Remove unnecessary argument. + * pa.c (legitimize_pic_address): Before reload, use a scratch register + for the intermediate result in loading the address of a SYMBOL_REF. + Set the MEM_NOTRAP_P flag for the MEM. Add a REG_EQUAL to the insn + which loads the SYMBOL_REF address. + +2003-10-08 Timo Kokkonen + Eric Botcazou + + PR bootstrap/12490 + * scan-decls.c (MAX_EXTERN_C_BRACES): New preprocessor constant + to define the size of the extern_C_braces array. Set it to 200. + (scan_decls): Abort when extern_C_braces_length is out-of-bounds. + +2003-10-08 Carlo Wood + + * Makefile.in (gengtype-lex.c): flex 2.5.4[a] doesn't understand + a space after the -o option. flex 2.5.31 understands both, with + and without the space. Removed that space. + +2003-10-08 Richard Sandiford + + * config/mips/mips.c (mips_frame_info): Add cprestore_size field. + (compute_frame_size): Initialize it. Remove the .cprestore slot + from args_size. + (mips_output_function_prologue): Simplify accordingly. + (mips_debugger_offset): Change the mips16 frame pointer offset from + current_function_outgoing_args to cfun->machine->frame.args_size. + (mips_initial_elimination_offset): Likewise. + (mips_expand_prologue): Likewise. + (mips_expand_epilogue): Likewise. + +2003-10-08 Richard Sandiford + + * config/mips/mips.h (EXTRA_CONSTRAINT): Add 'W' constraint. + (EXTRA_MEMORY_CONSTRAINT): Define. + (CAN_ELIMINATE): Remove lwu workaround. + * config/mips/mips.md (*zero_extendsidi2_mem): Enable for mips16 too. + Use a 'W' constraint for the source operand. + +2003-10-08 Kazu Hirata + + * genopinit.c (main): Output code to declare undefined + variables. + +2003-10-07 Kelley Cook + + * gengtype-lex.l: Remove -Wtraditional cruft. + * Makefile.in (gengtype-lex.c): Likewise. + +2003-10-07 Zdenek Dvorak + + * cfgloopmanip.c (fix_irreducible_loops): Initialize e correctly. + +2003-10-07 Jason Merrill + + PR c++/12519 + * c-semantics.c (genrtl_cleanup_stmt): Ignore the CLEANUP_DECL if + it isn't a decl. + +2003-10-07 Alexandre Oliva + + * gcc.c (cpp_options): Only pass -fworking-directory for -g* if + not overridden. + Fixes PR bootstrap/12173. + +2003-10-07 Zack Weinberg + + * errors.c: Don't include coretypes.h or tm.h. + (trim_filename): Use IS_DIR_SEPARATOR. + * Makefile.in: Update dependencies of errors.o and + $(BUILD_PREFIX_1)errors.o. + +2003-10-07 Geoffrey Keating + + * function.c (pad_to_arg_alignment): Take STACK_POINTER_OFFSET into + account when aligning arguments. + * calls.c (STACK_POINTER_OFFSET): Move default from here ... + * defaults.h (STACK_POINTER_OFFSET): ... to here. + * config/sparc/sparc.h (STACK_BOUNDARY): Add comment about how + it's wrong when TARGET_ARCH64 && TARGET_STACK_BIAS. + (SPARC_STACK_BOUNDARY_HACK): Define. + * config/rs6000/rs6000.c (function_arg): On non-SVR4 systems, + arrange for vector parameters to varargs functions to be passed + in both memory and GPRs when appropriate. + (rs6000_va_arg): Vector arguments passed in memory are 16-byte + aligned. + + * hooks.c (hook_bool_tree_true): New. + (hook_rtx_tree_int_null): New. + (hook_rtx_rtx_null): Use NULL, not 0. + * hooks.h: Add 'extern' to everything. + (hook_bool_tree_true): New. + (hook_rtx_tree_int_null): New. + * targhooks.c (hook_bool_CUMULATIVE_ARGS_true): New. + * targhooks.h (hook_bool_CUMULATIVE_ARGS_true): New. + * config/rs6000/rs6000-protos.h (setup_incoming_varargs): Remove + prototype. + * config/rs6000/rs6000.c (rs6000_return_in_memory): New. + (setup_incoming_varargs): Prototype. + (TARGET_PROMOTE_FUNCTION_ARGS): Define. + (TARGET_PROMOTE_FUNCTION_RETURN): Define. + (TARGET_STRUCT_VALUE_RTX): Define. + (TARGET_RETURN_IN_MEMORY): Define. + (TARGET_SETUP_INCOMING_VARARGS): Define. + (TARGET_STRICT_ARGUMENT_NAMING): Define. + (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Define. + (init_cumulative_args): Use rs6000_return_in_memory. + (setup_incoming_varargs): Make 'static'. + * config/rs6000/rs6000.h (PROMOTE_FUNCTION_ARGS): Delete. + (PROMOTE_FUNCTION_RETURN): Delete. + (STRUCT_VALUE): Delete. + (RETURN_IN_MEMORY): Delete. + (SETUP_INCOMING_VARARGS): Delete. + +2003-10-07 Gerald Pfeifer + + * doc/invoke.texi (Warning Options): Simplify and clarify the + descriptions of -Wnonnull and -Winit-self. + +2003-10-07 Richard Earnshaw + + * optabs.c (init_intraclass_conv_libfuncs): Fix order of array + indicees for floating-point conversersion libcalls. + +2003-10-07 Nathanael Nerode + + * Makefile.in: Add more comments separating large conceptually + separate sections. + + * configure.in: Clean up thread file logic. + * configure: Regenerate. + +2003-10-07 Danny Smith + + * config/i386/cygming.h (READONLY_DATA_SECTION_ASM_OP): Define. + (switch_to_section): Handle in_readonly_data. + * config/i386/winnt.c (i386_pe_asm_named_section): Handle + readonly data. + +2003-10-07 Richard Earnshaw + + * arm.md (cmpsi2_addneg): New ARM pattern. Add peephole2 to generate + it. + (cbranchne_decr1): New Thumb pattern. + * arm.c (arm_addimm_operand): New insn predicate. + * arm-protos.h: Add a prototype for it. + * arm.h (PREDICATE_CODES): Add it. + +2003-10-07 Dorit Naishlos + + * sched-int.h (sched_info): New field + sched_max_insns_priority. + * sched-rgn.c (init_ready_list): Add invocations to + targetm.sched.adjust_priority. + (sched_max_insns_priority): Init new field. + * sched-ebb.c (sched_max_insns_priority): Init new field. + * haifa-sched.c (set_priorities): Set + sched_info->sched_max_insns_priority. + * config/rs6000/rs6000.h: + (rs6000_sched_restricted_insns_priority_str): Support new + flag -mprioritize-restricted-insns. + (DEFAULT_RESTRICTED_INSNS_PRIORITY): Define. + * config/rs6000/rs6000.c (is_dispatch_slot_restricted): New + function. + (rs6000_adjust_priority): Change priority of restricted + insns, using above new function and new flag. + * doc/invoke.texi (-mprioritize-restricted-insns): Document + new option. + +2003-10-07 Zack Weinberg + + * expr.c (cmpstr_optab, cmpmem_optab): New. + * genopinit.c: Initialize them. + * optabs.h: Declare them. + * optabs.c (init_optabs): Clear them. + (prepare_cmp_insn): Use cmpstr_optab and cmpmem_optab to find + block memory compare insns, not conditional chains. Restructure + the fallback generation of a call to memcmp/bcmp for better + readability. + +2003-10-07 Richard Sandiford + + * config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): New macro. + (mips_save_restore_fn): New typedef. + (mips_add_large_offset_to_sp, mips_emit_frame_related_store): Remove. + (mips_set_frame_expr, mips_frame_set): Move above prologue code. + (save_restore_insns): Remove, replacing with... + (mips_save_restore_reg, mips_for_each_saved_reg): ...these new fns. + (mips_save_reg, mips_restore_reg): New function. + (mips_expand_prologue, mips_expand_epilogue): Rework. + * config/mips/mips.h (MIPS_TEMP1_REGNUM, MIPS_TEMP2_REGNUM): Remove. + (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): New macros. + (MIPS_PROLOGUE_TEMP, MIPS_EPILOGUE_TEMP): New macros. + +2003-10-07 Richard Sandiford + + * config/mips/mips.c (mips_expand_prologue): Remove unused + traversal of function arguments. + +2003-10-07 Richard Sandiford + + * doc/invoke.texi: Remove documentation of -mentry. + * config/mips/mips.c (mips_entry_string, mips_entry): Remove. + (override_options, mips_save_reg_p): Remove handling. + (compute_frame_size, mips_output_function_prologue): Likewise. + (mips_expand_prologue, mips_expand_epilogue): Likewise. + * config/mips/mips.h (mips_entry_string): Remove declaration. + (TARGET_OPTIONS): Remove -mentry. + * config/mips/mips16.S: Remove mention of -mentry. + +2003-10-06 Zack Weinberg + + * libfuncs.h (LTI_extendsfdf2, LTI_extendsfxf2, LTI_extendsftf2) + (LTI_extenddfxf2, LTI_extenddftf2, LTI_truncdfsf2, LTI_truncxfsf2) + (LTI_trunctfsf2, LTI_truncxfdf2, LTI_trunctfdf2, LTI_floatsisf) + (LTI_floatdisf, LTI_floattisf, LTI_floatsidf, LTI_floatdidf) + (LTI_floattidf, LTI_floatsixf, LTI_floatdixf, LTI_floattixf) + (LTI_floatsitf, LTI_floatditf, LTI_floattitf, LTI_fixsfsi, LTI_fixsfdi) + (LTI_fixsfti, LTI_fixdfsi, LTI_fixdfdi, LTI_fixdfti, LTI_fixxfsi) + (LTI_fixxfdi, LTI_fixxfti, LTI_fixtfsi, LTI_fixtfdi, LTI_fixtfti) + (LTI_fixunssfsi, LTI_fixunssfdi, LTI_fixunssfti, LTI_fixunsdfsi) + (LTI_fixunsdfdi, LTI_fixunsdfti, LTI_fixunsxfsi, LTI_fixunsxfdi) + (LTI_fixunsxfti, LTI_fixunstfsi, LTI_fixunstfdi, LTI_fixunstfti) + (extendsfdf2_libfunc, extendsfxf2_libfunc, extendsftf2_libfunc) + (extenddfxf2_libfunc, extenddftf2_libfunc, truncdfsf2_libfunc) + (truncxfsf2_libfunc, trunctfsf2_libfunc, truncxfdf2_libfunc) + (trunctfdf2_libfunc, floatsisf_libfunc, floatdisf_libfunc) + (floattisf_libfunc, floatsidf_libfunc, floatdidf_libfunc) + (floattidf_libfunc, floatsixf_libfunc, floatdixf_libfunc) + (floattixf_libfunc, floatsitf_libfunc, floatditf_libfunc) + (floattitf_libfunc, fixsfsi_libfunc, fixsfdi_libfunc, fixsfti_libfunc) + (fixdfsi_libfunc, fixdfdi_libfunc, fixdfti_libfunc, fixxfsi_libfunc) + (fixxfdi_libfunc, fixxfti_libfunc, fixtfsi_libfunc, fixtfdi_libfunc) + (fixtfti_libfunc, fixunssfsi_libfunc, fixunssfdi_libfunc) + (fixunssfti_libfunc, fixunsdfsi_libfunc, fixunsdfdi_libfunc) + (fixunsdfti_libfunc, fixunsxfsi_libfunc, fixunsxfdi_libfunc) + (fixunsxfti_libfunc, fixunstfsi_libfunc, fixunstfdi_libfunc) + (fixunstfti_libfunc): Delete. + * optabs.h (struct optab_handlers): Break out of struct optab. + (struct convert_optab, convert_optab, enum convert_optab_index, + convert_optab_table, sext_optab, zext_optab, trunc_optab, + sfix_optab, ufix_optab, sfixtrunc_optab, ufixtrunc_optab, + sfloat_optab, ufloat_optab): New. + (set_conv_libfunc): Prototype. + (GEN_FCN): Use C90 indirect call syntax, remove unnecessary cast. + (trunc_optab): Renamed btrunc_optab. + * builtins.c (expand_builtin_mathfn): Update to match. + * optabs.c (extendtab, fixtab, fixtrunctab, floattab): Delete. + (convert_optab_table, new_convert_optab, init_convert_optab) + (init_interclass_conv_libfuncs, init_intraclass_conv_libfuncs) + (set_conv_libfunc): New. + (can_extend_p, gen_extend_insn, can_fix_p, can_float_p) + (expand_float, expand_fix): Use new conversion optabs, + not old insn code tables or long chains of ifs. + (init_optabs): No need to clear old insn code tables. + Initialize the new optabs, not the old libfunc array entries. + Don't handle FIXUNS_TRUNC_LIKE_FIX_TRUNC here. + * genopinit.c: Initialize conversion optabs, not the + former insn code tables. Remove unnecessary casts. + Handle FIXUNS_TRUNC_LIKE_FIX_TRUNC here. + * expr.c (convert_move): Remove redundant check that + to_real==from_real. Use the conversion optabs instead + of long chains of tests of modes. Move partial-integer-mode + interconversion above all integer conversion. Do not recurse + on a value forced into a register in the original mode. + + * config/gofast.h, config/frv/frv.c, config/ia64/ia64.c + * config/mips/mips.c, config/pa/pa.c, config/rs6000/rs6000.c + * config/sparc/sparc.c: Use set_conv_libfunc to adjust entries + in new conversion optabs; do not reference the old libfunc + array entries. No need to include libfuncs.h. + +2003-10-06 Roger Sayle + + * config/i386/i386.c (ix86_expand_setcc): Annotate the floating + point comparison sequence with a REG_EQUAL note that describes + the comparison's semantics. + +2003-10-06 Roger Sayle + + * expr.c (expand_expr ): Handle the void type semantics + of COND_EXPR when expanding the "A op 0 ? FOO : A" optimizations. + +2003-10-06 Roger Sayle + Zack Weinberg + + * optabs.c (prepare_float_lib_cmp): Avoid searching for REG_RETVAL + instruction by using LCT_CONST and then calling emit_libcall_block + ourselves. + +2003-10-06 Falk Hueffner + + PR optimization/11974 + * optabs.c (expand_unop): Promote libcall outmode according to + hard_libcall_value. + +2003-10-06 Zack Weinberg + + * real.h (REAL_MODE_FORMAT): New macro. + * c-cppbuiltin.c, optabs.c, real.c, config/alpha/alpha.c + * config/c4x/c4x.c, config/i370/i370.c, config/i386/freebsd.h + * config/i386/i386.c, config/i960/i960.c, config/ia64/ia64.c + * config/m68k/m68k.c, config/mips/mips.c, config/rs6000/rs6000.c + * config/vax/vax.c: Use REAL_MODE_FORMAT instead of referring + directly to real_format_for_mode array, wherever possible. + +2003-10-06 Devang Patel + + * dwarf2out.c (is_main_source): Remove variable. + (dwarf2out_start_source_file): Do not check is_main_source. + Do not reset is_main_source. + (dwarf2out_init): Do not initialize is_main_source. + +2003-10-06 Rainer Orth + + * fixinc/inclhack.def (stdio_va_list): Removed _ap fix. + (irix_stdio_va_list): Don't require leading printf, IRIX 6.5.21 + introduced some multi-line prototypes. + * fixinc/fixincl.x: Regenerate. + +2003-10-06 Richard Sandiford + + * config/mips/mips.h (PREDICATE_CODES): Add stack_operand. + * config/mips/mips.c (stack_operand): New predicate. + * config/mips/mips.md: Use it for the destination of mips16 insns + that store $31. + +2003-10-06 Richard Sandiford + + * config/mips/mips.md (*lowsi): Renamed from lowsi. + (*lowdi): Likewise lowdi. + (*lowsi_mips16, *lowdi_mips16): New patterns. + * config/mips/mips.c (mips_const_insns, mips_output_move): Remove + mips16 CONSTANT_RELOC handling. + (mips_delegitimize_address): Adjust for new sdata representation. + +2003-10-06 Richard Sandiford + + * config/mips/mips.c (mips_arg_info): If MUST_PASS_IN_STACK, + skip any remaining register arguments. + +2003-10-06 Ulrich Weigand + + * reload.c (find_reloads_subreg_address): Use correct offset for + paradoxical MEM subregs on big-endian targets. + +2003-10-06 Andrew Haley + + * tree.c (get_callee_fndecl): Call + lang_hooks.lang_get_callee_fndecl. + * langhooks-def.h (LANG_HOOKS_GET_CALLEE_FNDECL): New. + (lhd_get_callee_fndecl): New. + +2003-10-06 Andrew Pinski + + * config/darwin.c (machopic_non_lazy_ptr_name): Fix off by one + error in calculating the length of the string. + (machopic_stub_name): Likewise. + +2003-10-06 Roger Sayle + + * optabs.c (prepare_float_lib_cmp): Attach a REG_EQUAL note + describing the return value of the comparison libcall to the + REG_RETVAL instruction of the emitted sequence. + +2003-10-06 Eric Botcazou + + PR optimization/12215 + * cse.c (cse_set_around_loop): Emit the move at the beginning + of the next basic block for trapping sets. + +2003-10-06 Eric Botcazou + + PR optimization/11637 + * combine.c (adjust_for_new_dest): New function to adjust the + notes and LOG_LINKS when the dest of an insn has changed. + (try_combine): Use it when deleting the first insn of a two-insn + parallel or splitting a two-load parallel. + +2003-10-06 Richard Sandiford + + * config/mips/mips.c (mips_classify_constant): Only allow UNSPECs + if TARGET_EXPLICIT_RELOCS. + +2003-10-06 Mark Mitchell + + PR bootstrap/12512 + * Makefile.in (info): Use double-colon rules. + (dvi): Likewise. + (generated-manpages): Likewise. + * configure.in: Do not create lang.info, lang.dvi, or + lang.generated-manpages hooks. + * configure: Regenerated. + * objc/Make-lang.in (objc.info): Remove. + (objc.dvi): Remove. + (objc.generated-manpages): Remove. + * doc/sourcebuild.texi: Update description of info, dvi, and + generated-manpages hooks. + +2003-10-06 Richard Sandiford + + * config/mips/mips.md: Merge mips16 lw/srl pattern with its splitter. + +2003-10-05 Andrew Pinski + + * config/darwin.c (machopic_non_lazy_ptr_name): Fix off by one + errors in memcpy destinations. + (machopic_stub_name): Likewise. + +2003-10-05 Andrew Pinski + + * config/darwin.c (machopic_non_lazy_ptr_name): + Change strcat to memcpy and add length together. + (machopic_stub_name): Likewise. + +2003-10-05 Kaz Kojima + + * config/sh/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Handle new + signal trampoline codes. + +2003-10-05 Chris Demetriou + + * config/mips/mips.md (*divsf3): Move description of + SB-1 F2 erratum from here to... + (divsf3): Here. Disable if TARGET_FIX_SB1 is set and + flag_unsafe_math_optimizations is not. + +2003-10-05 Aldy Hernandez + + * config/rs6000/linuxspe.h: Define TARGET_SPE_ABI, TARGET_SPE, + TARGET_E500, TARGET_ISEL, and TARGET_FPRS. + +2003-10-05 Kazu Hirata + + * c-pretty-print.c: Fix comment typos. + * c-pretty-print.h: Likewise. + * calls.c: Likewise. + * cfgloopmanip.c: Likewise. + * cgraphunit.c: Likewise. + * cppfiles.c: Likewise. + * final.c: Likewise. + * function.c: Likewise. + * gcov-io.h: Likewise. + * gcse.c: Likewise. + * genoutput.c: Likewise. + * loop.c: Likewise. + * postreload.c: Likewise. + * reg-stack.c: Likewise. + * regmove.c: Likewise. + * sched-int.h: Likewise. + * sched-rgn.c: Likewise. + * simplify-rtx.c: Likewise. + * tree-inline.c: Likewise. + * config/m68hc11/m68hc11.h: Likewise. + * config/mmix/mmix.c: Likewise. + * config/mn10300/mn10300.md: Likewise. + * config/sh/sh.h: Likewise. + +2003-10-05 Richard Henderson + + * tree-inline.c (remap_type): New. + (remap_decl): Use it. Remap DECL_SIZE*. + (copy_body_r): Use it. + (walk_tree): Walk TREE_TYPE too. + (copy_tree_r): Don't walk subtrees of types. + * tree.c (variably_modified_type_p): Restructure. Consider integer + types with non-const bounds variably modified. + +2003-10-05 Kazu Hirata + + * doc/invoke.texi: Fix typos. + +2003-10-05 Kazu Hirata + + * fold-const.c: Follow spelling conventions. + * function.c: Likewise. + * config/c4x/c4x.h: Likewise. + * config/c4x/c4x.md: Likewise. + * config/frv/frv.md: Likewise. + * config/rs6000/aix.h: Likewise. + * config/rs6000/linux64.h: Likewise. + * config/xtensa/xtensa.c: Likewise. + +2003-10-05 Kazu Hirata + + * c-pretty-print.c: Fix comment formatting. + * cfglayout.c: Likewise. + * cfgloopanal.c: Likewise. + * cppcharset.c: Likewise. + * dbxout.c: Likewise. + * ggc-page.c: Likewise. + * ggc.h: Likewise. + * target.h: Likewise. + +2003-10-04 Kelley Cook + + * gengtype-lex.l: Recognize typedef of functions without PARAMS macro. + +2003-10-04 Nathanael Nerode + + * config/v850/v850-c.c, config/v850/v850-protos.h, config/v850/v850.c: + Convert to ISO C90 function declarations and definitions. + +2003-10-04 Zack Weinberg + + * libfuncs.h + (LTI_eqhf2, LTI_nehf2, LTI_gthf2, LTI_gehf2, LTI_lthf2) + (LTI_lehf2, LTI_unordhf2, LTI_eqsf2, LTI_nesf2, LTI_gtsf2) + (LTI_gesf2, LTI_ltsf2, LTI_lesf2, LTI_unordsf2, LTI_eqdf2) + (LTI_nedf2, LTI_gtdf2, LTI_gedf2, LTI_ltdf2, LTI_ledf2) + (LTI_unorddf2, LTI_eqxf2, LTI_nexf2, LTI_gtxf2, LTI_gexf2) + (LTI_ltxf2, LTI_lexf2, LTI_unordxf2, LTI_eqtf2, LTI_netf2) + (LTI_gttf2, LTI_getf2, LTI_lttf2, LTI_letf2, LTI_unordtf2) + (eqhf2_libfunc, nehf2_libfunc, gthf2_libfunc, gehf2_libfunc) + (lthf2_libfunc, lehf2_libfunc, unordhf2_libfunc, eqsf2_libfunc) + (nesf2_libfunc, gtsf2_libfunc, gesf2_libfunc, ltsf2_libfunc) + (lesf2_libfunc, unordsf2_libfunc eqdf2_libfunc, nedf2_libfunc) + (gtdf2_libfunc, gedf2_libfunc, ltdf2_libfunc, ledf2_libfunc) + (unorddf2_libfunc eqxf2_libfunc, nexf2_libfunc, gtxf2_libfunc) + (gexf2_libfunc, ltxf2_libfunc, lexf2_libfunc, unordxf2_libfunc + (eqtf2_libfunc, netf2_libfunc, gttf2_libfunc, getf2_libfunc) + (lttf2_libfunc, letf2_libfunc, unordtf2_libfunc): + Delete. + * optabs.h (OTI_eq, OTI_ne, OTI_gt, OTI_ge, OTI_lt, OTI_le) + (OTI_unord, eq_optab, ne_optab, gt_optab, ge_optab, lt_optab) + (le_optab, unord_optab): New. + + * optabs.c (prepare_float_lib_cmp): Rewrite. Get the libfuncs + from the code_to_optab table, not a giant switch; use + swap_condition; do widening only if a comparison function that + we can call exists in a wider mode, not if a cmp_optab insn or + libfunc exists in a wider mode; call protect_from_queue + exactly once on each operand. + (init_optabs): Initialize the new optabs, not the deleted libfuncs. + + * config/gofast.h, config/ia64/ia64.c, config/mips/mips.c + * config/pa/pa.c, config/rs6000/rs6000.c, config/sparc/sparc.c: + Set floating point comparison libfuncs using set_optab_libfunc + on the appropriate optab. + + * config/ia64/ia64.c (ia64_hpux_init_libfuncs): Fix typo. + * config/rs6000/rs6000.c (rs6000_init_libfuncs): Correct ABI + selector conditionals. + +2003-10-04 Stephane Carrez + + * config/m68hc11/t-m68hc11-gas (MULTILIB_MATCHES): m68hcs12 is + identical to m68hc12 as far as libraries are concerned. + +2003-10-04 Eric Botcazou + + PR c/12446 + * c-typeck.c (convert_for_assignment): Issue an error for + array to pointer assignment after default conversion. + (digest_init): Likewise. + +2003-10-04 Fariborz Jahanian + + * c-decl.c (duplicate_decls): retain DECL_COMMON of old declaration + +2003-10-03 Gerald Pfeifer + + * doc/extend.texi (Function Attributes): Fix title of GNU C + Preprocessor manual. + (C++ Extensions): Fix reference to "Predefined Macros" in the + GNU C Preprocessor manual. + +2003-10-04 Richard Earnshaw + + * doc/extend.texi: Document how GCC estimates and relies on the size + of an asm. + +2003-10-04 Richard Sandiford + + * config/mips/mips.c (mips_pad_arg_upward): Pad floating-point + arguments downward for big-endian o64. + +2003-10-03 Robert Bowdidge + + * ggc-page.c (ggc_pch_write_object): Replace fseek() with fwrite() in + PCH generation, avoiding too-frequent flushes when writing to NFS + file system. + +2003-10-03 Ziemowit Laski + + * objc/objc-act.c (lookup_category): Mark as 'inline'. + +2003-10-03 Alexander Malmberg + Ziemowit Laski + + * objc/objc-act.c (add_method_to_hash_list, lookup_category): + New functions. + (lookup_method_in_hash_lists): New parameter indicating whether + we are messaging 'Class' or 'id'. + (check_duplicates): Likewise; do not assume all methods will + be either class or instance methods. + (generate_category, finish_class): Use lookup_category(). + (add_method): Use add_method_to_hash_list(); insert instance + methods of root classes into the global class method hash table. + (add_category): Use lookup_category(); avoid constructing + duplicate categories. + (really_start_method): Add method to corresponding @interface, + if not already there (and if the @interface exists). + (finish_message_expr, finish_objc): Adjust calls to + check_duplicates(). + +2003-10-03 Roger Sayle + + PR optimization/9325, PR java/6391 + * fold-const.c (fold_convert): For floating point to integer + conversions, return the maximum/minimum representable integer + value if the real constant overflows the destination type. + * tree.c (real_value_from_int_cst): Allow the type to be NULL, + meaning don't truncate the result to a floating point mode. + Simplify the logic by calling real_from_integer directly. + * simplify-rtx.c (simplify_unary_operation): Implement the + same semantics for folding floating point to integer conversions + in RTL. + +2003-10-03 Chris Demetriou + + * config/mips/mips.c (mips_emit_prefetch): Restructure + to avoid use of arrays, handle indexed prefetch. + * config/mips/mips.h (ISA_HAS_FP4, ISA_HAS_PREFETCH): Update comments. + (ISA_HAS_PREFETCHX): New deffine. + * config/mips/mips.md ("type" attr): Add new "prefetchx" value, + update comments. + (prefetch_indexed_di, prefetch_indexed_si): New insns. + +2003-10-03 Jeff Sturm + Roger Sayle + + PR optimization/12289 + * calls.c (emit_call_1): Pretend to have popped the arguments + to noreturn and longjmp functions instead of ignoring them. + (expand_call): Don't adjust stack_pointer_dela while + inhibit_defer_pop is set. + +2003-10-03 Andreas Schwab + + PR bootstrap/12276 + * configure.in: Check for libunwind on the host only if building + a native compiler. + * configure: Regenerated. + +2003-10-03 Paolo Carlini + + * unwind-pe.h (read_encoded_value_with_base): Constify u and + its inizialization cast. + +2003-10-03 Richard Sandiford + + PR target/12485 + * config/mips/mips.c (mips_load_got): GOT accesses can't trap. + +2003-10-02 Mark Mitchell + + PR optimization/12180 + * tree-inline.c (inline_forbidden_p_1): Do not permit inlining of + functions containing calls to __builtin_next_arg. + +2003-10-02 Chris Demetriou + + * config/mips/mips.c (mips_emit_prefetch): Use operand 3 + in instructions being output. + * config/mips/mips.md (prefetch_si_address): Change third + operand's constraint letter to 'I'. + (prefetch_di_address): Likewise. + (prefetch_si, prefetch_di): Set third operand to const0_rtx. + +2003-10-02 Zack Weinberg + + * system.h: Poison macros obsoleted by earlier patch. + * config/cris/cris.c: C90-ify a function definition. + +2003-10-02 Josef Zlomek + + PR/12292 + * combine.c (make_field_assignment): Check whether rtx's code + is CONST_INT before using INTVAL. + +2003-10-02 Josef Zlomek + + * cgraph.c (cgraph_node): Use INSERT instead of 1 in + htab_find_slot_with_hash. + (cgraph_node_for_identifier): Use NO_INSERT. + (cgraph_remove_node): Use NO_INSERT. + (cgraph_varpool_node): Use INSERT. + (cgraph_varpool_node_for_identifier): Use NO_INSERT. + +2003-10-02 Josef Zlomek + + Waldek Hebisch + PR/12072 + * varasm.c (compare_constant): Fix thinko. + +2003-10-02 Richard Sandiford + + * config/frv/frv.c (frv_issue_rate): New function. + (frv_pack_insns): Use it. + (TARGET_SCHED_ISSUE_RATE): Define. + +2003-10-02 Steven Bosscher + + * config/mcore/mcore.c: Convert to ISO C90 function declarations + and definitions. + * config/mcore/mcore.h: Likewise. + * config/mcore/mcore-protos.h: Likewise. + +2003-10-02 Richard Sandiford + + * config/frv/frv.c (frv_use_dfa_pipeline_interface): New function. + (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define. + +2003-10-01 Per Bothner + + * c-lex.c (src_line): Remove unneeded static variable. + (cb_line_change): Set input_line directly, instead of src_line. + (get_non_padding_token): We no longer need to compensate for the + "horrible things" the C++ front-end does with the current line number, + + * cpplib.c (_cpp_pop_buffer): Do generate a _cpp_do_file_change + callback even when popping the main file. + * c-lex.c (fe_file_change): Handle a NULL new_map. + * fix-header.c (cb_file_change): Likewise. + * c-ppoutput.c (pp_file_change): Likewise. + + * cppinit.c (cpp_read_main_file): Split into two functions: + Distribute _cpp_stack_file call over the two functions. + (cpp_find_main_file): New function. + Don't call _cpp_do_file_change even if working_directory flag set. + (cpp_push_main_file): New function. + * cppfiles.c (_cpp_find_failed): New helper function. + (find_file): Made non-static and renamed to _cpp_find_file. + (_cpp_stack_file): No longer needed. But note the following. + (stack_file): Made non-static and renamed to _cpp_stack_file. + * fix-header.c (cpp_read_main_file): Replace cpp_read_main_file + call with calls to cpp_find_main_file and cpp_push_main_file. + (search_path_head): If there is no current buffer, use main_file. + * cpphash.h: Update function declarations. + * cpplib.h: Update function declarations. + + * c-opts.c (c_common_post_options): Don't call cpp_find_main_file yet. + (c_common_parse_file): No longer need to call cpp_read_main_file + when file_index > 0 (as in multi-file or server compiation). + (finish_options): Change to is an LC_ENTER, not LC_RENAME + as this now happens before cpp_push_main_file. + (push_command_line_include): When done with options, pass LC_LEAVE + instead of LC_RENAME to cpp_change_file and finally cpp_push_main_file. + (fe_file_change): Handle NULL new_map, and simplify. + * cpplex.c (_cpp_get_fresh_line): Revert my no-longer-needed + 08-28 change, since we're never called with a NULL buffer. + (_cpp_lex_direct): Likewise. + * cpptrad.c (_cpp_read_logical_line_trad): Likewise. + Return false if buffer is NULL at end. + + * cpplex.c (_cpp_get_fresh_line): Return value now just depends on + whether pfile->buffer is NULL after pop, ignoring return_at_eof. + * cpphash.h (struct cpp_buffer): Remove unused return_at_eof field. + * cpplib.c (cpp_push_buffer): Since we no longer set return_at_eof, + remove the unused return_at_eof parameter. + * cppfiles.c, cpplib.c, cppmacro.c, cpppch.c, fix-header.c: + Update callers of cpp_push_buffer. + +2003-10-01 Zack Weinberg + + * target.h (init_libfuncs): New hook. + * target-def.h: Default TARGET_INIT_BUILTINS and + TARGET_INIT_LIBFUNCS to hook_void_void. Add + TARGET_INIT_LIBFUNCS to TARGET_INITIALIZER. + * builtins.c (default_init_builtins): Delete. + * expr.h (default_init_builtins): Delete prototype. + * doc/tm.texi: Document TARGET_INIT_LIBFUNCS and US_SOFTWARE_GOFAST. + Tweak documentation of TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL. + Remove documentation of INIT_TARGET_OPTABS, MULSI3_LIBCALL, + DIVSI3_LIBCALL, UDIVSI3_LIBCALL, MODSI3_LIBCALL, UMODSI3_LIBCALL, + MULDI3_LIBCALL, DIVDI3_LIBCALL, UDIVDI3_LIBCALL, MODDI3_LIBCALL, + and UMODDI3_LIBCALL, + + * Makefile.in (optabs.o): Depends on target.h. + * defaults.h: Provide default for FLOAT_LIB_COMPARE_RETURNS_BOOL. + * optabs.c: Include target.h. + (prepare_float_lib_cmp): No need for #ifdef around use of + FLOAT_LIB_COMPARE_RETURNS_BOOL. + (set_optab_libfunc): New function. + (init_optabs): Delete use of all *_LIBCALL defines. + Call targetm.init_libfuncs not INIT_TARGET_OPTABS. + * optabs.h: Prototype set_optab_libfunc. + + * config.gcc: Remove all references to pa/long_double.h, + ia64/hpux_longdouble.h, and gofast.h. + (mips-*-*): When --enable-gofast, just add US_SOFTWARE_GOFAST + to tm_defines; don't set INIT_SUBTARGET_OPTABS or change tm_file. + + * config/alpha/alpha.c, config/c4x/c4x.c, config/cris/cris.c + * config/frv/frv.c, config/h8300/h8300.c, config/i860/i860.c + * config/ia64/ia64.c, config/ip2k/ip2k.c, config/m68hc11/m68hc11.c + * config/mips/mips.c, config/pa/pa.c, config/rs6000/rs6000.c + * config/sparc/sparc.c, config/vax/vax.c: + Provide a definition for TARGET_INIT_LIBFUNCS. Where + necessary, include optabs.h, libfuncs.h, and/or config/gofast.h. + + * config/alpha/unicosmk.h, config/alpha/vms.h, config/c4x/c4x.h + * config/avr/avr.h, config/cris/cris.h, config/frv/frv.h + * config/h8300/h8300.h, config/i860/i860.h, config/ip2k/ip2k.h + * config/iq2000/iq2000.h, config/m68hc11/m68hc11.h, config/mips/mips.h + * config/rs6000/aix.h, config/rs6000/sysv4.h, config/sparc/elf.h + * config/sparc/lite.h, config/sparc/netbsd-elf.h, config/sparc/sol2.h + * config/sparc/sparc.h, config/v850/v850.h, config/vax/vax.h + * config/vax/elf.h: Don't define or use INIT_TARGET_OPTABS, + INIT_SUBTARGET_OPTABS, or any *_LIBCALL macros. + + * config/ia64/hpux.h: Redefine INTEL_EXTENDED_IEEE_FORMAT to 0. + Set TARGET_INIT_LIBFUNCS and FLOAT_LIB_COMPARE_RETURNS_BOOL here. + * config/pa/pa-hpux.h: Define LONG_DOUBLE_TYPE_SIZE, + HPUX_LONG_DOUBLE_LIBRARY, and FLOAT_LIB_COMPARE_RETURNS_BOOL here. + * config/ia64/hpux_longdouble.h, config/pa/long_double.h: Delete. + + * config/rs6000/xcoff.h: Don't define RS6000_ITRUNC nor RS6000_UITRUNC. + * config/sparc/sparc.h: Default SUN_CONVERSION_LIBFUNCS and + SUN_INTEGER_MULTIPLY_64 to 0. + * config/sparc/sol2.h: Redefine SUN_CONVERSION_LIBFUNCS and + SUN_INTEGER_MULTIPLY_64 to 1. + * config/sparc/elf.h: Redefine SUN_CONVERSION_LIBFUNCS and + SUN_INTEGER_MULTIPLY_64 to 0. + * config/sparc/lite.h, config/sparc/liteelf.h, config/sparc/sp86x-elf.h: + Define US_SOFTWARE_GOFAST. + * config/vax/vax.h: Default TARGET_ELF to 0. + * config/vax/elf.h: Redefine TARGET_ELF to 1. + + * config/gofast.h: Don't define any macros here. Provide one + static function, gofast_maybe_init_libfuncs, which does what + INIT_GOFAST_LIBFUNCS used to do but only if US_SOFTWARE_GOFAST + is already defined. Do not clear negation libfuncs. Do + not mess with HFmode, XFmode, or TFmode libfuncs. + + * config/avr/avr.c (avr_init_once): #if 0 out; mark FIXME. + +2003-10-01 Kelley Cook + + PR C/12466 + * c-parse.in (parmlist_2): Mark declaration with an ellipsis as ISO C. + +2003-10-01 Rainer Orth + + * config/mips/xm-iris5.h: Remove, unnecessary. + * config.build (mips-sgi-irix5*): Remove. + (mips-sgi-irix6*o32): Likewise. + * config.gcc (mips-sgi-irix6*o32): Remove xm_file. + (mips-sgi-irix5cross64): Likewise. + (mips-sgi-irix5*): Likewise. + * config.host (mips-sgi-irix5*): Remove. + (mips-sgi-irix6*o32): Likewise. + +2003-10-01 Zack Weinberg + + * dbxout.c (dbxout_fptype_value): Delete. + (dbxout_type): Emit R3 for all COMPLEX_TYPEs. + +2003-10-01 Alexandre Oliva + + * output.h (compute_reloc_for_constant): Declare. + * varasm.c (compute_reloc_for_constant): Extract from... + (output_addressed_constants): ... here. Adjust all callers. + +2003-10-01 John David Anglin + + * aclocal.m4: Add hpux10* and hpux11.00 to /dev/zero blacklist. + * configure: Rebuilt. + +2003-10-01 Richard Kenner + + * fold-const.c (make_range): When handling unsigned, don't reverse + range if high bound is zero. + +2003-09-30 Alexandre Oliva + + * config/frv/frv.h (PREDICATE_CODES): Added + condexec_si_media_operator, condexec_sf_add_operator and + condexec_sf_conv_operator. Removed condexec_sf_binary_operator + and condexec_sf_unary_operator. + +2003-10-01 John David Anglin + + * aclocal.m4: Add ultrix* to /dev/zero blacklist. + * configure: Rebuilt. + +2003-10-01 Rainer Orth + + * except.h (MUST_USE_SJLJ_EXCEPTIONS): Revert 2003-09-23 change. + Allow override. + * doc/tm.texi (MUST_USE_SJLJ_EXCEPTIONS): Document. + +2003-09-23 David S. Miller + + * config/sparc/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Undefine + before redefining. + * config/sparc/linux64.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise. + +2003-10-01 Steven Bosscher + + * config/cris/cris-protos.h, config/cris/cris.c: Convert to ISO + C90 function declarations and definitions. + +2003-10-01 Nathanael Nerode + + * config.gcc (cris-*-linux*): Revert mistaken commit. + +2003-10-01 Eric Botcazou + + PR optimization/11753 + * config/sparc/sparc.md (length attribute) [fcc branch]: Add 1 to + the length in the non-V9 case. + +2003-09-30 Richard Henderson + + * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes): Honor + DWARF_ALT_FRAME_RETURN_COLUMN. + * unwind-dw2.c (dwarf_reg_size_table): Expand by one. + (_Unwind_GetGR, _Unwind_SetGR): Validate lookup column. + (uw_frame_state_for): Return end-of-stack for null return address. + * doc/tm.texi (DWARF_ALT_FRAME_RETURN_COLUMN): Add. + + * config/alpha/alpha.c (alpha_sa_mask): Add r31 for eh_return. + (alpha_expand_prologue): Store a zero for it. + (alpha_expand_epilogue): Don't reload it. + * config/alpha/alpha.h (DWARF_ALT_FRAME_RETURN_COLUMN): New. + * config/alpha/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Use column 64 + for the sigframe return address. + +2003-09-30 Kelley Cook + + * sdbout.c: Convert to ISO C90 prototypes. + * objc/objc-act.c: Likewise. + +2003-09-30 Kelley Cook + + * config/i386/cygwin1.c: Convert to ISO C90 prototypes. + * config/i386/winnt.c: Likewise. + * config/i386/cygming.h: Likewise. + +2003-09-30 Kazu Hirata + + * fold-const.c (fold): Fold (A & ~B) - (A & B) into + (A ^ B) - B for any B. + +2003-09-30 Nathanael Nerode + + * config.gcc (arm*-*-kaos*, i[34567]86-*-kaos*, powerpc-*-kaos*, + powerpcle-*-kaos*, strongarm-*-kaos*): Disable fixproto. + +2003-09-30 Richard Earnshaw + + * arm/ieee754-sf.S: Tidy formatting. + +2003-09-30 Nicolas Pitre + + * arm/lib1funcs.asm (ARM_DIV_MOD_BODY): Split into ARM_DIV_BODY + and ARM_MOD_BODY. + (ARM_MOD_BODY): Rewritten. added clz insns for __ARM_ARCH__ >= 5. + (ARM_DIV_BODY): Added clz insns for __ARM_ARCH__ >= 5, + added better divisor alignment in the other case. + (ARM_DIV2_ORDER): Added, finds the order of a single bit divisor. + (__divsi3, __udivsi3, __modsi3, __umodsi3): rewritten using the + macros above, add fast exits for divisor >= dividend, etc. + +2003-09-30 Nicolas Pitre + + * arm/ieee754-df.S: Split compilation of fixunsdfsi from + L_fixdfsi target. + * arm/t-arm-elf (LIB1ASMFUNCS): Add _fixunsdfsi. + +2003-09-30 Nathanael Nerode + + * config.gcc: Default use_fixproto to 'no'. + +2003-09-30 Richard Sandiford + + PR optimization/12345 + * config/mips/mips-protos.h (mips_restore_gp): Remove. + (mips_gp_save_slot): Declare. + * config/mips/mips.c (mips_restore_gp): Remove in favor of... + (mips_gp_save_slot): ...this new function. + * config/mips/mips.md (exception_receiver): Use mips_gp_save_slot + and mips_output_move to generate the output template. + (call_internal): Force splitting if TARGET_SPLIT_CALLS. Don't emit + a gp load after a noreturn call. Load the gp using a move rather + than an exception_receiver pattern. + (call_value_internal, call_value_multiple_internal): Likewise. + (call_split, call_value_split, call_value_multiple_split): Clobber $28. + +2003-09-30 Carlo Wood + + PR debug/12319 + * cfglayout.c (insn_scope): Use prologue_locator and + epilogue_locator; return the outer function scope for + pro- and epilogue insns. + +2003-09-29 Zack Weinberg + + * objc/objc-act.c (encode_type): Encode INTEGER_TYPEs and + REAL_TYPEs based on the bitsize of the type's mode, not the + mode directly. + +2003-09-29 Rainer Orth + + * dwarf2out.c (default_eh_frame_section): Split into ... + (named_section_eh_frame_section, collect2_eh_frame_section): ... new + functions. + * output.h (named_section_eh_frame_section): Declare. + (collect2_eh_frame_section): Likewise. + +2003-09-29 Zack Weinberg + + * real.c (real_sqrt): Use get_canonical_qnan directly. + + * dwarf2out.c (add_const_value_attribute): Use real_to_target. + + * varasm.c (assemble_real): Use real_to_target directly, + calculate the number of significant elements of the result + array and write them out in a loop, instead of using a giant + switch statement to pick the correct REAL_VALUE_TO_TARGET_* + macro. + +2003-09-29 Jan Hubicka + + PR c++/12175 + * varasm.c (notice_global_symbol): Discard external symbols. + + PR optimization/12286 + * gcov-io.c (gcov_read_words): Fix memmove call. + * profile.c (compute_branch_probabilities): Add extra sanity checks. + +2003-09-29 Rainer Orth + + * config.gcc (sparc-*-solaris2*): Handle Solaris 10 and up like + Solaris 7-9. + + * fixinc/inclhack.def (solaris_widec): Replace solaris2.[0-5]* by + wildcards which explicitly match micro versions. + * fixinc/fixincl.x: Regenerate. + +2003-09-29 Kazu Hirata + + * fold-const.c (fold): Fold (A & ~B) - (A & B) into + (A ^ B) - B, where B is any power of 2 minus 1. + +2003-09-29 Jan Hubicka + + * libgcov.c (gcov_exit): Fix two pastos. + +2003-09-29 Kazu Hirata + + * config/h8300/h8300.md (*tst_extzv_1_n): Combine with the + define_split immediately below to form define_insn_and_split. + +2003-09-29 Kazu Hirata + + * config/h8300/h8300.md (*tstsi_variable_bit): New. + (*tstsi_variable_bit_qi): Likewise. + +2003-09-28 Phil Edwards + + * doc/cppopts.texi: Use 'dashMP' instead of '-MP' as a cross- + reference name. + +2003-09-28 Richard Henderson + + * c-decl.c (duplicate_decls): Copy DECL_SOURCE_LOCATION, not + file and line separately. + +2003-09-28 Ulrich Weigand + + * config/s390/s390.md ("*adddi3_carry1_cc", "*adddi3_carry1_cconly", + "*adddi3_carry2_cc", "*adddi3_carry2_cconly", "*subdi3_borrow_cc", + "*subdi3_borrow_cconly"): New insns. + ("*addsi3_sub", "*subsi3_sub"): Remove. + ("*subdi3_cc", *subdi3_cconly"): Use only if TARGET_64BIT. + ("*subsi3_cc"): Fix op_type attribute. + +2003-09-28 Richard Henderson + + * stmt.c (expand_asm_operands): Take a location_t, instead of + individual file and line. + * c-typeck.c (c_expand_asm_operands): Likewise. + * tree.h (expand_asm_operands): Update decl. + * c-common.h (c_expand_asm_operands): Likewise. + * c-semantics (genrtl_asm_stmt): Update call. + +2003-09-28 Philip Blundell + + * config/arm/arm.c (legitimize_pic_address): Check + SYMBOL_REF_LOCAL_P, not ENCODED_SHORT_CALL_ATTR_P. + (arm_assemble_integer): Likewise. + +2003-09-28 Steven Bosscher + + * config/pdp11/pdp11-protos.h, config/pdp11/pdp11.c, + config/c4x/c4x-c.c, config/c4x/c4x-protos.h, config/c4x/c4x.c, + config/c4x/c4x.h: + Convert to ISO C90 function declarations and definitions. + +2003-09-28 Steven Bosscher + + * config/stormy16/stormy16.c, config/stormy16/stormy16-protos.h: + Convert to ISO C90 function declarations and definitions. + +2003-09-28 Richard Sandiford + + * config/mips/mips.c (mips_constant_info): Add reloc field. + (mips_classify_constant): Initialize it. Always set SYMBOL to the + underlying symbol, not to an unspec. + (mips_delegitimize_address, print_operand): Clean up accordingly. + +2003-09-28 Richard Sandiford + + * config/mips/mips-protos.h (mips16_gp_pseudo_reg): Remove. + * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Remove orphaned comment. + * config/mips/mips.c (mips_reloc_offset_ok_p): New function. + (mips_classify_constant): Use it. + (mips_splittable_symbol_p): Add an offset argument. + (mips_classify_address): Adjust call accordingly. + (mips_legitimize_symbol): Handle sdata references with LO_SUM rather + than a relocation unspec. Update call to mips_splittable_symbol_p. + Generalize the code that copes with symbols + invalid offsets. + (print_operand): Allow '%R' to be applied to small data addresses. + (mips_reloc_string): Remove RELOC_GPREL16. + (mips_sdata_pointer): Renamed from mips16_gp_pseudo_reg. Return $gp + for TARGET_EXPLICIT_RELOCS. Return null if we can't use gp-relative + relocation operators. + * config/mips/mips.md (RELOC_GPREL16): Remove. Shuffle other reloc + constants accordingly. + +2003-09-27 Roger Sayle + + * toplev.c (flag_evaluation_order): New global variable. + * flags.h (flag_evaluation_order): Prototype here. + * expr.c (expand_operands): If we need to preserve observable + evaluation order, protect exp1 from clobbering exp0's result. + +2003-09-28 Andreas Jaeger + + * c-decl.c (finish_function): Convert definition to ISO C90. + * ifcvt.c (mark_loop_exit_edges): Likewise. + * ra-rewrite.c (emit_colors): Likewise. + +2003-09-27 Nathanael Nerode + + * config.gcc (alpha*-dec-osf[45]*): Disable fixproto. + * config.gcc (arm*-*-uclinux*): Disable fixproto. + * config.gcc (powerpc-*-eabispe*, powerpc-*-eabisimaltivec*, + powerpc-*-eabialtivec*): Disable fixproto. + +2003-09-27 Eric Botcazou + + PR optimization/12340 + * loop.h (struct induction): Document the new semantics + of the 'same' field for bivs. + * unroll.c (biv_total_increment): Don't count the same + biv increment several times. + (loop_iterations) [GENERAL_INDUCT]: Likewise. + +2003-09-27 Graham Stott + + * unroll.c (loop_interations)[GT]: Add missing break. + +2003-09-27 Kelley Cook + + * config/chorus.h, config/darwin-c.c, config/darwin-protos.h, + config/darwin.c, config/darwin.h, config/dbx.h, config/dbxcoff.h, + config/dbxelf.h, config/elfos.h, config/fp-bit.h, + config/freebsd-nthr.h, config/freebsd-spec.h, config/freebsd.h, + config/freebsd3.h, config/freebsd4.h, config/freebsd5.h, + config/freebsd6.h, config/netbsd-aout.h, config/netbsd-elf.h, + config/netbsd.h, config/netware.h, config/openbsd-oldgas.h, + config/openbsd.h, config/ptx4.h, config/alpha/alpha-protos.h, + config/alpha/alpha.c, config/alpha/alpha.h, config/alpha/alpha.md, + config/alpha/elf.h, config/alpha/ev4.md, config/alpha/ev5.md, + config/alpha/ev6.md, config/alpha/freebsd.h, config/alpha/linux-elf.h, + config/alpha/linux.h, config/alpha/netbsd.h, config/alpha/openbsd.h, + config/alpha/osf.h, config/alpha/osf5.h, config/alpha/unicosmk.h, + config/alpha/vms-cc.c, config/alpha/vms-crt0-64.c, + config/alpha/vms-crt0.c, config/alpha/vms-dwarf2.asm, + config/alpha/vms-dwarf2eh.asm, config/alpha/vms-ld.c, + config/alpha/vms-psxcrt0-64.c, config/alpha/vms-psxcrt0.c, + config/alpha/vms.h, config/alpha/vms64.h, config/alpha/vms_tramp.asm, + config/alpha/xm-vms.h, config/arc/arc-modes.def, + config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h, + config/arc/arc.md, config/arc/initfini.c, config/arc/lib1funcs.asm, + config/avr/avr-protos.h, config/avr/avr.c, config/avr/avr.h, + config/avr/avr.md, config/d30v/d30v-protos.h, config/d30v/d30v.h, + config/d30v/d30v.md, config/fr30/fr30-protos.h, config/fr30/fr30.c, + config/fr30/fr30.h, config/fr30/fr30.md, config/fr30/lib1funcs.asm, + config/frv/cmovd.c, config/frv/cmovh.c, config/frv/cmovw.c, + config/frv/frv-abi.h, config/frv/frv-asm.h, config/frv/frv-modes.def, + config/frv/frv-protos.h, config/frv/frv.c, config/frv/frv.h, + config/frv/frv.md, config/frv/frvbegin.c, config/frv/frvend.c, + config/frv/lib1funcs.asm, config/h8300/clzhi2.c, config/h8300/ctzhi2.c, + config/h8300/parityhi2.c, config/h8300/popcounthi2.c, + config/i370/i370-c.c, config/i370/i370-protos.h, config/i370/i370.c, + config/i370/i370.h, config/i370/i370.md, config/i370/linux.h, + config/i370/mvs.h, config/i370/oe.h, config/i386/darwin.h, + config/i960/i960-c.c, config/i960/i960-coff.h, + config/i960/i960-modes.def, config/i960/i960-protos.h, + config/i960/i960.c, config/i960/i960.h, config/i960/i960.md, + config/i960/rtems.h, config/ia64/elf.h, config/ia64/ia64.h, + config/m32r/initfini.c, config/m32r/m32r-protos.h, config/m32r/m32r.c, + config/m32r/m32r.h, config/m32r/m32r.md, config/m68hc11/larith.asm, + config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c, + config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md, + config/m68hc11/m68hc12.h, config/m68k/coff.h, config/m68k/crti.s, + config/m68k/crtn.s, config/m68k/hp320.h, config/m68k/hp320base.h, + config/m68k/lb1sf68.asm, config/m68k/linux.h, config/m68k/m68020-elf.h, + config/m68k/m68k-aout.h, config/m68k/m68k-none.h, + config/m68k/m68k-protos.h, config/m68k/m68k.c, config/m68k/m68k.h, + config/m68k/m68k.md, config/m68k/m68kelf.h, config/m68k/m68kv4.h, + config/m68k/netbsd-elf.h, config/m68k/openbsd.h, + config/m68k/rtemself.h, config/m68k/sgs.h, config/mcore/lib1.asm, + config/mcore/mcore-elf.h, config/mcore/mcore-pe.h, + config/mcore/mcore-protos.h, config/mcore/mcore.c, + config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h, + config/mips/elforion.h, config/mips/iris5.h, config/mips/iris6.h, + config/mips/iris6gld.h, config/mips/irix6-libc-compat.c, + config/mips/linux.h, config/mips/mips-protos.h, config/mips/mips.c, + config/mips/mips.h, config/mips/mips.md, config/mips/netbsd.h, + config/mips/openbsd.h, config/mips/r3900.h, config/mips/rtems.h, + config/mips/vr.h, config/mn10300/linux.h, + config/mn10300/mn10300-protos.h, config/mn10300/mn10300.c, + config/mn10300/mn10300.h, config/mn10300/mn10300.md, + config/ns32k/__unorddf2.c, config/ns32k/__unordsf2.c, + config/ns32k/netbsd.h, config/ns32k/ns32k-protos.h, + config/ns32k/ns32k.c, config/ns32k/ns32k.h, config/ns32k/ns32k.md, + config/pdp11/2bsd.h, config/pdp11/pdp11-modes.def, + config/pdp11/pdp11-protos.h, config/pdp11/pdp11.c, + config/pdp11/pdp11.h, config/pdp11/pdp11.md, config/rs6000/biarch64.h, + config/rs6000/default64.h, config/sh/coff.h, config/sh/crt1.asm, + config/sh/crti.asm, config/sh/crtn.asm, config/sh/elf.h, + config/sh/embed-elf.h, config/sh/linux.h, config/sh/little.h, + config/sh/netbsd-elf.h, config/sh/rtems.h, config/sh/rtemself.h, + config/sh/sh-protos.h, config/sh/sh.c, config/sh/sh.h, + config/sh/sh.md, config/sh/sh64.h, config/sh/shmedia.h, + config/sh/sshmedia.h, config/sh/ushmedia.h, config/sparc/pbd.h, + config/sparc/sparc.h, doc/install-old.texi, fixinc/fixinc.ptx, + fixinc/fixinc.svr4: GNU CC -> GCC. + +2003-09-26 Loren James Rittle + + * objc/objc-act.c (tm_p.h): Tweak order. + * objc/Make-lang.in (objc/objc-act.o): Add $(TM_P_H). + +2003-09-26 Nathanael Nerode + + * config.gcc (hppa*64*-*-linux* | parisc*64*-*-linux*): + Include t-slibgcc-elf-ver and t-linux in tmake_file. + * config.gcc (hppa*64*-*-linux* | parisc*64-*-linux*): + Disable fixproto. + * config.gcc (i960-*-coff*, m68k-*-aout*, sparclite-*-coff*): + Disable fixproto. + * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*, + sparcv9-*-solaris2*, sparc-*-solaris2*): Disable fixproto. + + * config/i386/unix.h: Remove (unused) DEFAULT_ASSEMBLER_DIALECT. + +2003-09-26 Loren James Rittle + + * config/i386/i386.h (ix86_return_in_memory): Revert my last patch. + * objc/objc-act.c (tm_p.h): Include. + +2003-09-26 Per Bothner + + * dbxout.c (dbxout_typedefs): Output typedefs in forward order. + No longer any need to reverse by recursion. + +2003-09-26 Roger Sayle + Richard Henderson + + PR optimization/11741 + * gcse.c (pre_insert_copy_insn): Tweak the logic for finding the + appropriate set to match that in hash_scan_insn. Fall back to + the original copy method, if we can't validate changing insn. + (pre_delete): Only delete instructions that have a single_set, + instead of aborting when we encounter an PARALLEL insn with more + then one SET. + +2003-09-26 Andreas Krebbel + + * config/s390/s390.md ("builtin_setjmp_setup"): Insn deleted. + ("builtin_longjmp"): Insn deleted. + ("save_stack_nonlocal"): Save literal pool base pointer behind + backchain and stack pointer. + ("restore_stack_nonlocal"): Restore literal pool base pointer. + * config/s390/s390.h (STACK_SAVEAREA_MODE): Double size of + the stack save area for the nonlocal goto case. + +2003-09-26 John David Anglin + + PR bootstrap/12358 + * pa.c (output_bvb): Fix typo. + +2003-09-26 Richard Sandiford + + * expmed.c (store_bit_field): Don't search for an integer mode + unless we need the result. + +2003-09-26 Richard Sandiford + + * expr.c (emit_move_insn_1): If there is no move pattern for the + original mode, try using a pattern for the corresponding integer mode. + +2003-09-26 Richard Sandiford + + PR middle-end/9200 + * combine.c (if_then_else_cond): Tighten mode check. + +2003-09-25 Nathanael Nerode + + * cppcharset.c, cpphash.h: Rename 'struct strbuf' to + 'struct _cpp_strbuf'. + + * config/i386/netbsd-elf.h, config/i386/netbsd64.h, + config/i386/netware.h, config/i386/nto.h, config/i386/openbsd.h, + config/i386/pentium.md, config/i386/pmmintrin.h, config/i386/ppro.md, + config/i386/ptx4-i.h, config/i386/rtemself.h, config/i386/sco5.h, + config/i386/sol2.h, config/i386/svr3gas.h, config/i386/sysv3.h, + config/i386/sysv4-cpp.h, config/i386/sysv4.h, config/i386/sysv5.h, + config/i386/unix.h, config/i386/uwin.h, config/i386/vsta.h, + config/i386/xm-cygwin.h, config/i386/xm-djgpp.h, + config/i386/xm-mingw32.h, config/i386/xmmintrin.h: Replace + "GNU CC", "GNU compiler", and "GNU C-compiler" with "GCC". + * config/i386/i386-aout.h, config/i386/i386-coff.h, + config/i386/i386-interix.h, config/i386/i386-interix3.h, + config/i386/i386-modes.def, config/i386/i386-protos.h, + config/i386/i386.c, config/i386/i386.h, config/i386/i386.md, + config/i386/i386elf.h, config/i386/k6.md, config/i386/kaos-i386.h, + config/i386/linux-aout.h, config/i386/linux.h, config/i386/linux64.h, + config/i386/lynx-ng.h, config/i386/lynx.h, config/i386/mingw32.h, + config/i386/mmintrin.h, config/i386/moss.h: GNU CC -> GCC. + "GNU compiler" -> GCC. + * config/i386/att.h, config/i386/beos-elf.h, config/i386/biarch64.h, + config/i386/bsd.h, config/i386/crtdll.h, config/i386/cygming.h, + config/i386/cygwin.h, config/i386/cygwin1.c, config/i386/cygwin2.c, + config/i386/darwin.h, config/i386/djgpp.h, config/i386/emmintrin.h, + config/i386/freebsd-aout.h, config/i386/freebsd.h, + config/i386/freebsd64.h, config/i386/gas.h: GNU CC -> GCC. + +2003-09-25 Kelley Cook + + * cgraph.c (dump_cgraph): Don't output newline before dump. Add in + "local" to the callgraph dump. Output "after inlining" earlier. + * cgraphunit.c: Fix dumpfile whitespace and commonize headers of the + callgraph dumps. Correct misspellings. + (cgraph_decide_inlining): Output number of insns before inlining. + Output the calling function into which a function is inlined. + (cgraph_decide_small_functions): Format dump file like always_inline. + +2003-09-25 Loren James Rittle + + * config/i386/i386.h (ix86_return_in_memory): Add prototype. + +2003-09-25 Ulrich Weigand + + * config/s390/s390.c (s390_emit_prologue): Simplify accesses to + FPR slots in the save area. + (s390_emit_epilogue): Likewise. + +2003-09-25 Richard Sandiford + + * cgraph.h (cgraph_remove_edge): Declare. + * cgraph.c (cgraph_remove_edge): Make extern. + * cgraphunit.c (cgraph_finalize_function): Call cgraph_remove_edge + instead of cgraph_remove_call. + +2003-09-25 Ulrich Weigand + + * objc/objc-act.c (gen_declaration_1): Fix printf format. + +2003-09-25 Richard Earnshaw + + * arm.c (all_cores): arm710t, arm720t and arm740t are all based on the + arm7tdmi core. + +2003-09-25 Ziemowit Laski + + * config/darwin-protos.h (objc_image_info_section): + New prototype. + +2003-09-25 Ziemowit Laski + + * Makefile.in (stub-objc.o): Depend on $(GGC_H). + +2003-09-25 Nathanael Nerode + + * config.gcc: Get rid of more gratuitious 'x'es. Actually allow + tsc701 as a --with-cpu, --with-tune setting for sparc. + +2003-09-25 Ziemowit Laski + + * c-parse.in (objc_try_stmt): Do not specify a %type. + +2003-09-25 Nathanael Nerode + + * config.gcc: New 'widely ported system' clause for rtems. + Set thread file there, not in individual clauses. + +2003-09-25 Richard Sandiford + + PR target/6222 + * config/mips/mips.c (mips_va_arg): Handle arguments that must be + passed on the stack. + +2003-09-25 Nathanael Nerode + + * config.gcc (widely ported systems section): Mostly alphabetize + by system. Comment the case where we can't. + * config.gcc (widely ported systems section): Reindent and clean up. + + * config.gcc: Remove some unnecessary uses of 'x' in case statements. + Actually allow ep9312 as an arm --with-arch setting. + + * config.gcc (*-hpux11): Disable fixproto. + +2003-09-24 Phil Edwards + + PR pch/12112 + * gcc/cppfiles.c (pch_open_file): Return based on combined + result of all files. + (validate_pch): Return validate flag for current file. + +2003-09-24 Roger Sayle + + PR bootstrap/12358 + * fold-const.c (tree_swap_operands_p): Only reorder operands when + one of the operands is constant. + +2003-09-24 Ziemowit Laski + + MERGE OF objc-improvements-branch into MAINLINE: + * Makefile.in (C_OBJS): Add in stub-objc.o. + (c-parse.y): Change sed demarcations to begin with '@@'. + (stub-objc.o): New rule. + * c-common.c (flag_nil_receivers, flag_objc_exceptions, flag_zero_link, + flag_replace_objc_classes): New flags. + * c-common.h (RID_AT_THROW, RID_AT_TRY, RID_AT_CATCH, RID_AT_FINALLY, + RID_AT_SYNCHRONIZED): New keywords. + (flag_nil_receivers, flag_objc_exceptions, flag_zero_link, + flag_replace_objc_classes): New flags. + (lookup_interface, is_class_name, objc_is_object_ptr, objc_check_decl, + objc_comptypes, objc_message_selector, lookup_objc_ivar, + get_current_scope, objc_mark_locals_volatile): New prototypes, + some moved from c-tree.h. + * c-decl.c (get_current_scope, objc_mark_locals_volatile): New functions. + (finish_decl): Adjust where objc_check_decl() gets called. + * c-lang.c (lookup_interface, is_class_name, objc_is_id, objc_check_decl, + objc_comptypes, objc_message_selector, lookup_objc_ivar): Remove stubs. + * c-opts.c (c_common_handle_option): Add handling for flag_nil_receivers, + flag_objc_exceptions, flag_replace_objc_classes and flag_zero_link. + * c-parse.in: Replace 'ifc' and 'end ifc' sed markers with '@@ifc' and + '@@end_ifc', respectively. + (AT_THROW, AT_TRY, AT_CATCH, AT_FINALLY, AT_SYNCHRONIZED): New %tokens. + (objc_try_stmt, superclass, class_ivars, objc_try_catch-stmt, + objc_finally_block): New rules. + (component_decl_list2): Clean up semantic action for @defs construct. + (component_decl, c99_block_start): Remove call to add_objc_decls(). + (poplevel): Add call to objc_clear_super_receiver(). + (stmt): Add rules for @throw, @try..@catch..@finally and @synchronized + constructs. + (classdef, methodprotolist): Clean up/simplify. + (methodprotolist2): Eliminate. + (methodproto): Call add_method() instead of add_class_method() and + add_instance_method(). + (receiver): Add TYPENAME production. + (reswords): Add "throw", "try", "catch", "finally" and "synchronized". + (rid_to_yy): Add AT_THROW, AT_TRY, AT_CATCH, AT_FINALLY and + AT_SYNCHRONIZED. + * c-tree.h (lookup_interface, is_class_name, objc_is_id, objc_check_decl, + objc_comptypes, objc_message_selector) + * c-typeck.c (comptypes): In ObjC mode, call objc_comptypes() for + struct and pointer types. + (build_c_cast): Do not discard ObjC protocol qualifiers. + (convert_for_assignment): Cache result of comp_target_types() instead + of calling it more than once. + * c.opt (fnext-runtime): Update description string. + (fnil-receivers, fobjc-exceptions, freplace-objc-classes, fzero-link): + New ObjC/ObjC++-specific flags. + * function.h (GCC_FUNCTION_H): Header guard. + * gengtype-lex.l: Teach lexer about new @@... sed demarcations. + * stub-objc.c: New file, to be used to satisfy references to ObjC + functions by the C and C++ front-ends. + * config/darwin.c (_OBJC_IMAGE_INFO): New global metadata. + * config/darwin.h (FUNCTION): Add in_objc_image_info. + (SECTION_FUNCTION): Add objc_image_info_section. + * doc/invoke.texi: Link to GCC web site for Objective-C information. + (-fconstant-string-class): Update documentation. + (-fno-nil-receivers, -fobjc-exceptions, -freplace-objc-classes, + -fzero-link): New documentation. + * objc/Make-lang.in (objc-parse.y): Change sed demarcations to begin + with '@@'. + * objc/lang-specs.h (@objective-c-header): Fix -E spec. + * objc/objc/objc-act.c: Replace TYPE_NAME with OBJC_TYPE_NAME + throughout; provide casts for return values from memory allocation + functions (xmalloc, alloca, ggc_alloc, etc.). + (OBJC_VOID_AT_END): New macro. + (rtl.h): Do not #include any more. + (STRING_OBJECT_GLOBAL_NAME): Replaced with STRING_OBJECT_GLOBAL_FORMAT. + (TAG_MSGSEND_STRET, TAG_MSGSENDSUPER_STRET, TAG_MSGSEND_NONNIL, + TAG_MSGSEND_NONNIL_STRET, TAG_EXCEPTIONEXTRACT, TAG_EXCEPTIONTRYENTER, + TAG_EXCEPTIONTRYEXIT, TAG_EXCEPTIONMATCH, TAG_EXCEPTIONTHROW, + TAG_SYNCENTER, TAG_SYNCEXIT): New NeXT runtime entry points. + (struct val_stack, catch_count_stack, exc_binding_stack, val_stack_push, + val_stack_pop): New. + (objc_check_decl): Fix precondition for error message, along with + the message itself. + (lookup_and_install_protocols): Remove nonexistent protocols from + protocol list instead of returning error_mark_node. + (create_builtin_decl): Use DECL_ARTIFICIAL only for VAR_DECLs. + (setup_string_decl): Generalize to use STRING_OBJECT_GLOBAL_FORMAT. + (synth_module_prologue): General clean-up; construct NeXT-specific + runtime API prototypes if needed. + (build_string_class_template): Remove. + (check_string_class_template, string_layout_checked): New. + (build_objc_string_object): Generalize to work with + -fconstant-string-class. + (build_objc_symtab_template): Fix layout for the NeXT runtime. + (build_metadata_decl): New. + (forward_declare_categories): Call build_metadata_decl() instead of + create_builtin_decl() et al. + (build_module_descriptor): Use OBJC_VOID_AT_END instead of + void_list_node_1. + (build_selector_reference_decl, build_class_reference_decl, + build_objc_string_decl): Do not set TREE_READONLY. + (get_proto_encoding): Do not call hack_method_prototype(). + (get_class_reference): Add failure mode for invalid class names; + support -fzero-link; defer if in an ObjC++ template declaration. + (objc_declare_alias, objc_declare_class): Fix up duplicate name + lookup; check for global scope if in ObjC++. + (is_class_name): Generalize to work with various tree nodes (TYPE_DECL, + RECORD_TYPE, IDENTIFIER_NODE, etc.) + (objc_is_id): Removed. + (objc_is_object_ptr): New function. + (get_class_ivars_from_name): New function, used for @defs construct. + (get_class_ivars): Add option to return raw ivars; create a + ClASS_OWN_IVARS list for each class as needed. + (objc_enter_block, objc_exit_block, objc_declare_variable, + objc_build_throw_stmt, val_stack_push, val_stack_pop, + objc_build_try_enter_fragment, objc_build_extract_expr, + objc_build_try_exit_fragment, objc_build_extract_fragment, + objc_build_try_prologue, objc_build_try_epilogue, + objc_build_catch_stmt, objc_build_catch_epilogue, + objc_build_finally_prologue, objc_build_finally_epilogue, + objc_build_try_catch_finally_stmt, objc_build_synchronized_prologue, + objc_build_synchronized_epilogue, build_objc_exception_stuff): + New functions. + (_JBLEN): _setjmp jmpbuf size (needs to be made a target hook in + the future). + (build_private_template): Fix up calls to get_class_ivars(). + (offset_is_register, forwarding_offset): Remove. + (objc_method_parm_type, objc_encoded_type_size): New functions. + (encode_method_prototype): Simplify to no longer depend on + back-end information. + (build_tmp_function_decl_xxx, build_tmp_function_decl, + hack_method_prototype): Removed. + (generate_protocol_references): Remove calls to + build_tmp_function_decl(). + (generate_protocols): Adjust calls to encode_method_prototype(). + (build_class_template): Generate sel_id' and 'gc_object_type' fields + for the NeXT runtime. + (synth_forward_declarations): Call build_metadata_decl(). + (check_ivars): Check that the number of ivars matches also. + (build_super_template): Modify super_type directly; disable debugging + output while generating decl. + (build_ivar_list_initializer): Skip list elements that are not + FIELD_DECLs. + (ivar_list_length): New function. + (generate_ivar_lists): Call ivar_list_length() instead of list_length() + and encode_method_prototype() instead of encode_method_def(). + (build_shared_structure_initializer): Generate 'sel_id' field for + the NeXT runtime. + (generate_category): Do not set TREE_USED. + (build_keyword_selector): Ditto; transform into a function argument + chain. + (get_arg_type_list): If there are no user-specified arguments, use + '...'; use OBJC_VOID_AT_END. + (check_duplicates): Add a parameter indicating whether methods or + selectors are being checked. + (receiver_is_class_object): Add parameters indicating whether + receiver is 'self' or 'super'; robustify. + (build_message_expr): Defer call to finish_message_expr() if + inside an ObjC++ template. + (lookup_method_in_hash_lists): New function. + (finish_message_expr): Complete rewrite/fix. + (build_objc_method_call): Ditto; factor out commonalities between + the GNU and NeXT runtimes; acccommodate ..._stret and ...NonNil + messenger variants on the NeXT. + (lookup_instance_method_static, lookup_class_method_static): + Fold into a single lookup_method_static() function with an + additional parameter. + (add_class_method, add_instance_method): Fold into a single + add_method() function with an additional parameter. + (add_category): Make duplicate categories a hard error in ObjC++. + (add_instance_variable): Properly handle unnamed ivars, arrays of + zero or no size and bitfields. In ObjC++, check for nontrivial + C++ class instances. + (is_public): Allow C functions to access non-@public ivars, with + a warning. + (start_class): Move common initializations to + synth_module_prologue(); check for global scope if in ObjC++. + (continue_class): Fix calls to finish_struct(). + (objc_declare_protocols, start_protocol): Check for global scope + if in ObjC++. + (encode_pointer): Encode 'BOOL *' specially on the NeXT. + (encode_aggregate_within): Rewrite to properly distinguish + struct tags from typedefs in both ObjC and ObjC++. + (encode_bitfield, encode_complete_bitfield): Remove. + (encode_next_bitfield, encode_gnu_bitfield): New functions. + (encode_field_decl): Call encode_next_bitfield() or + encode_gnu_bitfield() as needed. + (synth_self_and_ucmd_args): New function. + (start_method_def): Use it. + (objc_types_are_equivalent): New function. + (comp_proto_with_proto): Use it instead of comptypes(), since + we need symmetry. + (really_start_method): Use lookup_method_static() instead of + lookup_class_method_static() and lookup_instance_method_static(); + Emit 'extern "C"' if in ObjC++ mode. + (add_objc_decls): Removed. + (UOBJC_SUPER_scope): New variable. + (get_super_receiver): Move construction of 'super' from + add_objc_decls(); remove dependency on struct objc_class. + (encode_method_def): Removed; encode_method_prototype() is + used instead. + (objc_clear_super_receiver): New function. + (objc_expand_function_end): Do not do anything for ordinary + C functions. + (finish_method_def): Mark ObjC methods as un-inlinable. + (gen_declaration_1): Emit widths of bitfields. + (finish_objc): Call generate_objc_image_info() if needed; + use check_duplicates() when checking for selector duplicates. + (generate_objc_image_info): New function. + * objc/objc-act.h (add_instance_method, add_class_method, + get_class_ivars): Remove prototypes. + (objc_build_throw_stmt, objc_build_try_catch_finally_stmt, + objc_build_synchronized_prologue, objc_build_synchronized_epilogue, + objc_build_catch_stmt, objc_build_catch_epilogue, + objc_build_finally_prologue, objc_build_finally_epilogue, + add_method, get_class_ivars_from_name): New prototypes. + (CLASS_BINFO_ELTS, PROTOCOL_BINFO_ELTS): New. + (TYPE_PROTOCOL_LIST): Robustify to distinguish from + TRANSLATION_UNIT_DECLs. + (OBJC_TYPE_NAME): New. + (objc_tree_code): Ensure that either or + got included. + (IS_SUPER): Robustify. + (umsg_stret_decl, umsg_super_stret_decl, umsg_nonnil_decl, + umsg_nonnil_stret_decl, objc_storage_class, objc_exception_extract_decl, + objc_exception_try_enter_decl, objc_exception_try_exit_decl, + objc_exception_match_decl, objc_exception_throw_decl, + objc_sync_enter_decl, objc_sync_exit_decl, objc_exception_data_template, + objc_setjmp_decl, objc_stack_exception_data, objc_caught_exception, + objc_rethrow_exception, objc_eval_once, objc_exception_block_stack, + objc_catch_type): New ObjC/ObjC++ roots. + * objc/objc-tree.def (MESSAGE_SEND_EXPR, CLASS_REFERENCE_EXPR): New + ObjC/ObjC++ tree node codes. + +2003-09-24 Alexandre Oliva + + * cpplib.c (do_pragma): Reintroduce cb_line_change call in the + code path that calls a handler. + +2003-09-24 Nathanael Nerode + + * config.gcc (c4x-*, tic4x-*, d30v-*, mmix-knuth-mmixware): + Disable fixproto. + + * config.gcc: Clean up and reindent $with_cpu=yes|no clause and + the section giving $with_cpu defaults by target. + + * config.gcc (arm-*-coff*, armel-*-coff*, arm*-*-ecos-elf, + arm*-*-elf, ep9312-*-elf, arm*-wince-pe*, arm*-*-pe*, arm*-*-pe*, + rs6000-ibm-aix4.[3456789]*, powerpc-ibm-aix4.[3456789]*, + rs6000-ibm-aix5.1.*, powerpc-ibm-aix5.1.*, + rs6000-ibm-aix[56789].*, powerpc-ibm-aix[56789].*, + i[34567]86-pc-msdosdjgpp*): Disable fixproto. + +2003-09-24 David Edelsohn + + * config/rs6000/rs6000.md (movti_power): Collapse case 1 and 2 + together. Protect load string instruction with TARGET_STRING. + (movti_string): Collapse case 1 and 2 together. + +2003-09-24 Nathan Sidwell + + * c-common.c (c_common_type_for_mode): Check for VOIDmode. + +2003-09-24 Richard Earnshaw + + * arm.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Wrap in + do...while(0) + +2003-09-23 Nathanael Nerode + + * config.gcc: Move use_fixproto=no from generic vxworks clause to + specific one. + + * config.gcc (powerpc-*-gnu-gnualtivec*): Disable fixproto + (accidentally missed in last pass). + +2003-09-23 Andrew Pinski + + PR bootstrap/12383 + * configure: Regenerate. + +2003-09-23 Nathanael Nerode + + * config.gcc (x86_64-*-freebsd*): Disable fixproto (accidentally + missed in last pass). + +2003-09-23 Alexandre Oliva + + * config/mn10300/mn10300.md (andsi3): Fix cut&pasto in 0xfffffffe + constant. + +2003-09-23 Nathanael Nerode + + * config.gcc: Move vax-*-vms* unsupported notice up with the rest. + + * config.gcc (alpha64*-dec-*vms*, alpha*-dec-*vms*, + powerpc-*-eabisim*, powerpc-*-eabi*, powerpcle-*-eabisim*, + powerpcle-*-eabi*): Disable fixproto. + + * config.gcc: Move use_fixproto=no from generic FreeBSD clause to + specific FreeBSD clauses. + * config.gcc: Move use_fixproto=no from generic NetBSD clause to + specific NetBSD clauses. + * config.gcc: Move use_fixproto=no from generic OpenBSD clause + to specific OpenBSD clauses. + +2003-09-23 John David Anglin + + * pa.c (hppa_expand_prologue): Do pic register save in frame marker + without adding a frame note. + * pa.md (allocate_stack): Save pic register in new frame marker when + generating pic code. + +2003-09-23 Kelley Cook + + * cgraphunit.c (cgraph_expand_all_functions): Renamed from + cgraph_expand_functions. + +2003-09-23 Kaveh R. Ghazi + + * Makefile.in (gnucompare*): Merge into ... + (slowcompare*): ... here. + (fastcompare*): New targets. + * aclocal.m4 (gcc_AC_PROG_CMP_IGNORE_INITIAL): Add checks for + other "fast" cmp programs. + * configure: Regenerate. + +2003-09-23 Rainer Orth + + * targhooks.c: Include output.h. + * Makefile.in (targhooks.o): Add output.h to dependency list. + +2003-09-23 Rainer Orth + + * config.host: Removed superfluous newline. + +2003-09-23 Nathanael Nerode + + * config.gcc: Use ${target}, not $machine. + * configure.in: Don't set $machine. + * configure: Regenerate. + +2003-09-23 Geoffrey Keating + + * config/t-darwin (crt2.o): Add stmp-int-hdrs to dependencies. + + * config/rs6000/rs6000.c (function_arg_pass_by_reference): Don't + pass zero-size arrays by reference. + (rs6000_va_arg): Likewise. + +2003-09-23 Nathanael Nerode + + * config.gcc: Set use_fixproto=no in each specific *-gnu* + configuration, rather than the generic one. + +2003-09-23 Richard Henderson + + * tree-inline.c (remap_save_expr): Map new save_expr to identity + rather than to error_mark_node. + +2003-09-23 Rainer Orth + + * configure.in (HAVE_GAS_SHF_MERGE): Always define to test result. + Update description. + * configure: Regenerate. + * config.in: Likewise. + * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test for + HAVE_GAS_SHF_MERGE value. + * varasm.c (mergeable_string_section): Likewise. + (mergeable_constant_section): Likewise. + +2003-09-23 Rainer Orth + + * except.h (MUST_USE_SJLJ_EXCEPTIONS): Test for DWARF2_UNWIND_INFO + value. + +2003-09-23 Rainer Orth + + * target.h (struct gcc_target): New member external_libcall. + * target-def.h (TARGET_ASM_EXTERNAL_LIBCALL): Provide default. + (TARGET_ASM_OUT): Use it. + * doc/tm.texi (TARGET_ASM_EXTERNAL_LIBCALL): Document. + * targhooks.c: Convert to ISO C 90. + (default_external_libcall): New function. + * targhooks.h (default_external_libcall): Declare. + * varasm.c (assemble_external_libcall): Use + targetm.asm_out.external_libcall instead of + ASM_OUTPUT_EXTERNAL_LIBCALL. + * config/mips/mips-protos.h [TARGET_IRIX5 || TARGET_IRIX 6] + (mips_output_external_libcall): Declare. + * config/mips/mips.c (mips_output_external_libcall): Change + definition guard. + Change to match TARGET_ASM_EXTERNAL_LIBCALL. + Only operate for O32 ABI. + * config/mips/iris5.h (TARGET_ASM_EXTERNAL_LIBCALL): Define + instead of ASM_OUTPUT_EXTERNAL_LIBCALL. + * config/mips/iris6.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Don't undef, + superceded by TARGET_ASM_EXTERNAL_LIBCALL. + +2003-09-22 Nathnael Nerode + + * config.gcc: Do per-target disabling of fixproto here in clauses, + not in t- fragments. + * configure.in: Adjust to set STMP_FIXPROTO correctly. + * configure: Regenerate. + * config/arm/t-semi, config/cris/t-cris, config/i386/t-beos, + config/i386/t-cygming, config/i386/t-nto, config/ia64/t-hpux, + t-freebsd, t-linux, t-netbsd, t-openbsd, t-rtems, t-vxworks, + xtensa/t-xtensa: Remove setting of STMP_FIXPROTO. + * config/i370/t-oe, config/i386/t-netware, config/pa/t-bsd, + t-interix, t-linux-aout: Delete files consisting only of + setting of STMP_FIXPROTO. + + * config.host: Allow unknown hosts (not targets). Allow + ns32k-*-netbsdelf* as a host (not a target). Remove redundant + empty clauses. Remove useless obsolete-configuration clause. + Prune unsupported configuration list. Collapse identical + clauses for closely related systems. Rewrite comment for + unsupported hosts list. Reorganize a little. + +2003-09-22 Richard Henderson + + * c-common.c (c_common_signed_or_unsigned_type): Examine mode, + not precision. + +2003-09-22 David Edelsohn + Hartmut Penner + Segher Boessenkool + + * config/rs6000/rs6000.c (altivec_in_gprs_p): Rename to ... + (gpr_or_gpr_p): Test INT_REGNO_P and convert to boolean. + (rs6000_split_altivec_in_gprs): Rename to ... + (rs6000_split_multireg_move): Add support for update addressing. + * config/rs6000/rs6000-protos.h: Same. + * config/rs6000/altivec.md: Same. + * config/rs6000/rs6000.md (movdi_internal32): Use new splitter for + multiple GPRs. + (movti): Remove TARGET_STRING || TARGET_POWERPC64 final condition. + (movti_power): Use new splitter for multiple GPRs. + (movti_string): Same. + (movti_ppc64): Same. + +2003-09-22 Bob Wilson + + * config/xtensa/xtensa-protos.h: Convert to ISO C90. + * config/xtensa/xtensa.c: Convert to ISO C90. Minor formatting fixes. + +2003-09-22 Alexandre Oliva + + * config/mn10300/mn10300.md: Revert 2003-09-17's patch. + (andsi3): Set attr cc to set_zn when using shifts or adds. + +2003-09-22 Bernardo Innocenti + + * doc/contrib.texi: Add Peter Barada, Paul Dale and myself. + +2003-09-22 Bernardo Innocenti + + * config/m68k/m68k.h (MASK_RTD, TARGET_RTD, RETURN_POPS_ARGS): + Resurrect -mrtd option. + +2003-09-21 Andrew Pinski + + PR target/12281 + * config/darwin.c (machopic_validate_stub_or_non_lazy_ptr): Call + mark_referenced instead of setting TREE_SYMBOL_REFERENCED. + +2003-09-22 Olivier Hainque + + PR target/9786 + * reg-stack.c (convert_regs_1): Purge possible dead eh edges + after potential deletion of trapping insn. Avoids later ICE + from call to fixup_abnormal_edges. + (convert_regs_2): Stack the current block successors before + processing this block, that is, before the potential deletion of + dead edges by convert_regs_1, because these edges have been used + to initialize the predecessors count. + +2003-09-22 Eric Botcazou + + * real.c: Fix several nits in the head comment. + +2003-09-21 Richard Henderson + + * tree.h c-aux-info.c, c-decl.c, c-parse.in, coverage.c, dbxout.c, + diagnostic.c, dwarf2out.c, dwarfout.c, function.c, integrate.c, + print-tree.c, stmt.c, toplev.c, tree-dump.c, tree-inline.c, + tree-optimize.c, tree.c, tree.def, xcoffout.c, config/alpha/alpha.c, + config/mips/mips.c, doc/c-tree.texi, objc/objc-act.c: Revert. + +2003-09-21 Richard Henderson + + * tree.h (TREE_LOCUS): Rename from DECL_SOURCE_LOCATION; make const. + (TREE_FILENAME, TREE_LINENO): Likewise. + (set_tree_locus, copy_tree_locus, set_tree_file_line): New. + (TREE_LOCUS_SET_P): New. + * c-aux-info.c, c-decl.c, c-parse.in, coverage.c, dbxout.c, + diagnostic.c, dwarf2out.c, dwarfout.c, function.c, integrate.c, + print-tree.c, stmt.c, toplev.c, tree-dump.c, tree-inline.c, + tree-optimize.c, tree.c, tree.def, xcoffout.c, config/alpha/alpha.c, + config/mips/mips.c, doc/c-tree.texi, objc/objc-act.c: Update to match. + +2003-09-21 Nathanael Nerode + + * config/vax/vax-protos.h: Convert to ISO C90. + * config/vax/vax.c: Convert to ISO C90. + +2003-09-21 Graham Stott + + PR target/12353 + * config/i386/i386.md(ffs_no_cmove): Fix operand 2 constraint. + +2003-09-21 Eric Botcazou + + PR target/12301 + * reorg.c (stop_search_p): Return 1 for insns that can + throw internally. + +2003-09-20 Richard Henderson + + * c-format.c (gcc_diag_char_table): Add %J. + (gcc_cdiag_char_table, gcc_cxxdiag_char_table): Likewise. + (check_format_types): Fix wanted_type name lookup. + (init_dynamic_diag_info): Setup %J. + * diagnostic.c (text_specifies_location): Implement %J. + * c-common.c, c-decl.c, c-objc-common.c, c-pragma.c, calls.c, + dwarfout.c, expr.c, function.c, stmt.c, stor-layout.c, toplev.c, + tree-inline.c, tree-optimize.c, varasm.c, config/arm/pe.c, + config/i386/winnt.c, config/ia64/ia64.c, config/mcore/mcore.c, + config/v850/v850.c, objc/objc-act.c: Use %J in diagnostics. + + * tree-inline.c: Include intl.h + (inline_forbidden_p_1): Fix i18n of inline_forbidden_reason. + * Makefile.in (tree-inline.o): Update. + +2003-09-20 Roger Sayle + + * config/i386/i386.c (ix86_expand_carry_flag_compare): Fix + transformation of a>=0 into (unsigned)a<0x80000000. + +2003-09-20 Andrew Pinski + + * config/darwin.c (machopic_select_rtx_section): Fix check for PIC code. + +2003-09-20 Nathanael Nerode + + * Makefile.in: Don't set (unused) DLLTOOL. + + * config/arm/t-linux, config/arm/t-netbsd, config/arm-t-semi: + Remove obsolete references to ENQUIRE. + +2003-09-19 Nathanael Nerode + + * configure.in: Remove --with-elf, which doesn't work. + * configure: Regenerate. + * config.gcc: Remove references to $elf, which does nothing. + + * config/i386/xm-vsta.h: Remove xm-file believed useless. + * config.build (i386-vsta): Remove reference to it. + * config.host (i386-vsta): Remove reference to it. + +2003-09-19 Phil Edwards + + * doc/install.texi: Document the multiple testsuite options. + +2003-09-19 Gerald Pfeifer + + * doc/install.texi (Specific): Add the specific versions of GCC + where support for FreeBSD 1, HP-UX version 9 and older, and AIX + version 3 and older was discontinued. + +2003-09-19 Joel Sherrill + + * config/m68k/t-m68kbare, config/m68k/t-rtems: Change 68681 to + 68881. + +2003-09-19 Bernardo Innocenti + + * config/m68k/m68k.h (TARGET_CPU_CPP_PREDEFINES): Add predefines + for -m68030, -m68020-60 and -m68020-40. + * config/m68k/m68k.h (TARGET_68030): New target flag. + * config/m68k/m68k.h (MASK_RTD, TARGET_RTD, MASK_REGPARM, + TARGET_REGPARM): Remove. + * config/m68k/m68k.h: Regroup and renumber target flags. + * config/m68k/m68k.h (TARGET_SWITCHES): Fix some tabulations. + * config/m68k/m68k.h (RETURN_POPS_ARGS): Always evaluate to 0. + * config/m68k/m68k.h (FUNCTION_ARG): Likewise. + * config/m68k/m68k.h (FUNCTION_ARG_PARTIAL_NREGS): Likewise. + * config/m68k/m68k-none.h: Use MASK_xxx values in M68K_CPU_xxx macros. + +2003-09-19 Ralf Corsepius + + * config/m68k/t-rtems (m68k-*-rtems*): New. + * config.gcc: Use config/m68k/t-rtems. + +2003-09-19 Ralf Corsepius + + * config/mips/t-rtems: New. + * config.gcc (mips*-*-rtems*): Use config/mips/t-rtems. + +2003-09-19 Kelley Cook + + * cgraph.c: Fix typo in debugging output. + +2003-09-19 T. Papadopoulo + Eric Botcazou + + PR target/12166 + * config/sparc/sol2-c1.asm (start): Set __Argv if GCRT1. + +2003-09-18 Mike Stump + + * c-ppoutput.c (print): Use fileline typedef for field 'line'. + (print_line, maybe_print_line, cb_define, cb_undef, cb_include, + cb_ident, cb_def_pragma): Use fileline typedef. + * cpphash.h (struct cpp_reader): Likewise for field out.first_line. + +2003-09-18 Danny Smith + + * config/i386/winnt.c (gen_stdcall_suffix): Quit summation of + total parm size if a parm has incomplete type. + (gen_fastcall_suffix): Likewise. + +2003-09-18 Richard Kenner + + * except.c (output_function_exception_table): Adjust last change + to handle TYPE of INTEGER_CST. + +2003-09-18 Mark Mitchell + + PR target/11184 + * builtins.c (expand_builtin_apply): Use convert_memory_address + before returning the value. + + * alias.c (find_base_value): Simplify use of + convert_memory_address. + (find_base_term): Likewise. + * builtins.c (expand_builtin_stejmp_setup): Likewise. + (expand_builtin_longjmp): Likewise. + (expand_builtin_prefetch): Likewise. + (get_memory_rtx): Likewise. + (expand_builtin_return): Likewise. + (expand_builtin_memcpy): Likewise. + (expand_builtin_strncpy): Likewise. + (expand_builtin_memset): Likewise. + (expand_builtin_va_arg): Likewise. + (expand_builtin_va_copy): Likewise. + (expand_builtin_alloca): Likewise. + * calls.c (expand_call): Likewise. + * except.c (expand_builtin_extract_return_addr): Likewise. + (expand_builtin_eh_return): Likewise. + * explow.c (convert_memory_address): Define even when + POINTER_EXTEND_UNSIGNED is not defined. Do nothing if the address + is already in the right mode. + * explow.c (memory_address): Simplify use of convert_memory_address. + (probe_stack_range): Likewise. + * expmed.c (make_tree): Likewise. + * expr.c (emit_block_move_in_libcall): Likewise. + (expand_assignment): Likewise. + (expand_expr): Likewise. + * function.c (assign_parms): Likewise. + (expand_function_end): Likewise. + * integrate.c (copy_rtx_and_substitute): Likewise. + * stmt.c (expand_computed_goto): Likewise. + +2003-09-18 Roger Sayle + + * simplify-rtx.c (simplify_unary_operation): Only transform + (not (eq X Y)) into (ne X Y) when mode is BImode or STORE_FLAG_VALUE + is -1. RTL "not" is a bit-wise not, "~", not a logical not "!". + +2003-09-18 Zdenek Dvorak + + PR target/11674 + * config/i386/i386.c (x86_emit_floatuns): Also handle SImode operand. + +2003-09-18 Roger Sayle + + * tree.def (FFS_EXPR, CLZ_EXPR, CTZ_EXPR, POPCOUNT_EXPR, + PARITY_EXPR): Delete unused tree codes. + * c-common.c (c_common_truthvalue_conversion): Delete references + to FFS_EXPR and POPCOUNT_EXPR. + * c-pretty-print.c (pp_c_postfix_expression): Remove FFS_EXPR. + (pp_c_expression): Likewise. + * expr.c (expand_expr): Delete RTL expansion of FFS_EXPR, CLZ_EXPR, + CTZ_EXPR, POPCOUNT_EXPR and PARITY_EXPR. + * fold-const.c (tree_expr_nonnegative_p): Remove FFS_EXPR, CLZ_EXPR, + CTZ_EXPR, POPCOUNT_EXPR and PARITY_EXPR. Add support for calls to + BUILT_IN_FFS, BUILT_IN_PARITY and BUILT_IN_POPCOUNT and their long + and long long variants. + +2003-09-18 Gabriel Dos Reis + + * c-pretty-print.h (pp_type_specifier_seq): Fix thinko. + * c-pretty-print.c: Fix formatting. + (pp_c_integer_constant): Append type annotation to literals. Tidy. + (pp_c_type_specifier): Tidy. + (pp_c_compound_literal): New function. + (pp_c_initializer): Simplify.. + (pp_c_initializer_list): Likewise. + (pp_c_brace_enclosed_initializer_list): New function. + (pp_c_postfix_expression): Simplify. + +2003-09-17 Alexandre Oliva + + * config/mn10300/mn10300.md (andsi3, iorsi3, xorsi3, + one_complsi2, bit-clear, bit-set, iorqi3): Make them set_zn. + +2003-09-17 Richard Henderson + + * tree-optimize.c (tree_rest_of_compilation): Save and restore + input_location. + +2003-09-17 Daniel Jacobowitz + + * config/rs6000/sysv4.h (LIB_LINUX_SPEC): Give -lpthread before -lc. + +2003-09-17 Richard Henderson + + * cfg.c (dump_flow_info): Skip register dump if reg_n_info null. + +2003-09-17 Rainer Orth + + * configure.in (gcc_cv_ld_hidden): Don't test gnu_ld_flag. + * configure: Regenerate. + +2003-09-17 Mark Mitchell + + PR debug/12066 + * dbxout.c (dbxout_init): Use a langhook to find builtin types. + * langhooks-def.h (lhd_return_null_tree_v): New function. + (LANG_HOOKS_BUILTIN_TYPE_DECLS): New macro. + (LANG_HOOKS_DECLS): Add it to the intializer. + * langhooks.c (lhd_return_null_tree_v): New function. + * langhooks.h (lang_hooks_for_decls): Add builtin_type_decls. + +2003-09-17 Daniel Jacobowitz + + * configure.in: Quote gcc_config_arguments for configargs.h. + * configure: Regenerated. + * gccbug.in: Don't shell-expand gcc_config_arguments. + +2003-09-17 Gabriel Dos Reis + + PR c++/11357 + * c-pretty-print.c (pp_c_floating_constant): Append + type-annotation to floating constants. + +2003-09-17 Rainer Orth + + * config/mips/iris5.h (TARGET_OS_CPP_BUILTINS): Define _LONGLONG. + Define _ABIO32. + Use it for _MIPS_SIM. + * config/mips/iris6-o32.h (TARGET_OS_CPP_BUILTINS): Removed. + + * config/mips/iris6-o32-as.h (SUBTARGET_ASM_OPTIMIZING_SPEC): + Moved ... + * config/mips/iris5.h (SUBTARGET_ASM_OPTIMIZING_SPEC): ... here, + updating comment. + Fixes PR target/10190. + +2003-09-17 Daniel Jacobowitz + + * config/rs6000/sysv4.h (LIB_LINUX_SPEC): Make -pthread apply + to shared libraries. + +2003-09-17 Eric Botcazou + + PR optimization/11646 + * cfgrtl.c (purge_dead_edges) [JUMP_INSN]: Rematerialize the + EDGE_ABNORMAL flag for EH edges. + * toplev.c (rest_of_handle_cse): Delete unreachable blocks + if dead edges were purged. + +2003-09-16 Bernardo Innocenti + + * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Add target predefines. + * config/m68k/m68k-none.h (CPP_CPU_DEFAULT_SPEC): Kill all definitions. + * config/m68k/m68k-none.h (CPP_FPU_SPEC): Remove. + * config/m68k/m68k-none.h (CPP_SPEC): Likewise. + +2003-09-16 Ian Lance Taylor + + * cfgcleanup.c (label_is_jump_target_p): Correct use of table + returned by tablejump_p. + +2003-09-16 Joel Brobecker + + * dwarf2asm.c (dw2_asm_output_nstring): Add comment. + +2003-09-16 Roger Sayle + + PR bootstrap/12269 + * simplify-rtx.c (simplify_gen_relational): Allow the cmp_mode + argument to be VOIDmode, taking the mode of the comparison from + the operands. Only call simplify_relational_operation if we + know the mode of the comparison. Honor FLOAT_STORE_FLAG_VALUE + if comparison has a floating point result. Ensure that the + result is always of the specified mode. + (simplify_replace_rtx): Simplify call to simplify_gen_relational. + (simplify_unary_operation): Ensure the correct mode and cmp_mode + are always passed to simplify_gen_relational. Simplify NOT of + comparison operator in any mode, not just BImode. + (simplify_ternary_operation): Correct tests on the return value + of simplify_relational_operation to use const_true_rtx, not + const1_rtx. Abort if it ever returns a non-constant result. + + * cfgloopanal.c (count_strange_loop_iterations): Use the function + simplify_relational_operation, not simplify_gen_relational, if + we're only interested in constant comparisons and will ignore + non-constant results. + +2003-09-16 Roger Sayle + + * fold-const.c (tree_swap_operands_p): New function to determine + the prefered ordering of operands. + (fold): Numerous clean-ups. Use tree_swap_operands_p when swapping + operands to commutative, comparison or ternary operators. Replace + uses of TREE_SET_CODE with recursive call to fold. Remove duplicate + transformation of A ? B : C into !A ? C : B. + +2003-09-16 Jakub Jelinek + + * config/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Define. + * config/alpha/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Define. + * config/arm/linux-elf.h (LINK_GCC_C_SEQUENCE_SPEC): Define. + * config/rs6000/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Define. + * config/rs6000/linux64.h (LINK_GCC_C_SEQUENCE_SPEC): Define. + * config/sh/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Define. + * config/sparc/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Define. + * config/sparc/linux64.h (LINK_GCC_C_SEQUENCE_SPEC): Define. + +2003-09-16 Jason Merrill + Jakub Jelinek + + * c-common.c (handle_warn_unused_result_attribute): New function. + (c_common_attribute_table): Add warn_unused_result. + (c_expand_expr): Issue warning when result of inlined function + with warn_unused_result attribute is ignored. + * calls.c (expand_call): Issue warning when result of function + with warn_unused_result attribute is ignored. + * c-common.h (STMT_EXPR_WARN_UNUSED_RESULT): Define. + * expr.c (expr_wfl_stack): Define. + (expand_expr) : If ignore, + pass const0_rtx as target. Chain locations into expr_wfl_stack. + * tree-inline.c (expand_call_inline): Set STMT_EXPR_WARN_UNUSED_RESULT + bit if inlined function has warn_unused_result attribute. + * input.h (expr_wfl_stack): Declare. + * doc/extend.texi: Document warn_unused_result attribute. + +2003-09-15 Alexandre Oliva + + * cpplib.c (do_pragma): Remove unnecessary cb_line_change. + +2003-09-15 Bob Wilson + + * config/xtensa/xtensa.c (xtensa_multibss_section_type_flags): Add + ATTRIBUTE_UNUSED. + (call_insn_operand): For PIC, don't allow a direct call to a + function in a different section than the current one. + +2003-09-16 Volker Reichelt + + * doc/invoke.texi (Warning Options): Add missing hyphen before + "Wimport". Change "-Wno-endif-labels" to "-Wendif-labels". + Move "-Wold-style-definition" to the C-only section. + Fix the ordering of the warning options. + +2003-09-15 Zdenek Dvorak + Jeff Law + + * gcse.c (remove_reachable_equiv_notes): New. + replace_store_insn): Call it. Update antic list. + (store_killed_in_insn): Take REG_EQUAL notes into account. + (build_store_vectors, delete_store): Add parameter to + replace_store_insn call. + +2003-09-15 Bob Wilson + + * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND_P): Use + SYMBOL_REF_LOCAL_P. + +2003-09-15 Kazu Hirata + + * expr.h (DEFAULT_FUNCTION_ARG_PADDING): New. + (FUNCTION_ARG_PADDING): Use DEFAULT_FUNCTION_ARG_PADDING. + * config/ia64/ia64.c (ia64_hpux_function_arg_padding): + Likewise. + * config/m68hc11/m68hc11.c (m68hc11_function_arg_padding): + Likewise. + * config/rs6000/rs6000.c (function_arg_padding): Likewise. + * config/sparc/sparc.c (function_arg_padding): Likewise. + +2003-09-15 Vladimir Makarov + + * haifa-sched.c (schedule_block): Use ready_remove_first instead + of choose_ready for non-dfa insn scheduling. + +2003-09-15 Andreas Jaeger + Kaveh R. Ghazi + + * doc/invoke.texi (Warning Options): Describe -Wold-style-definition. + * c-opts.c (c_common_handle_option): Handle OPT_Wold_style_definition. + * c-parse.in: Warn about old-style parameter definition. + * c-common.c: Define warn_old_style_defintion. + * c-common.h: Declare it. + * c.opt: Add Wold-style-defintion. + +2003-09-15 Andreas Jaeger + + * config/rs6000/altivec.h: Convert () prototypes to ISO C90. + * config/rs6000/rs6000.c: Likewise. + +2003-09-12 Zdenek Dvorak + + PR optimization/10914 + * expr.h (get_condition, canonicalize_condition): Declaration changed. + * cfgloopanal.c (simple_loop_exit_p): Add parameter to a get_condition + and canonicalize_condition calls. + * gcse.c (fis_get_condition, delete_null_pointer_checks_1, + delete_null_pointer_checks): Ditto. + * ifcvt.c (noce_get_alt_condition, noce_get_condition): Ditto. + * predict.c (estimate_probability, expected_value_to_br_prob): Ditto. + * loop.c (check_dbra_loop, get_condition_for_loop): Ditto. + (canonicalize_condition, get_condition): Allow to return comparisons + of cc mode registers. + * loop-unswitch.c (may_unswitch_on_p, unswitch_single_loop): Allow + cc mode registers comparison in condition. + +2003-09-12 Mark Mitchell + + * coverage.c (create_coverage): Do not call pushlevel/poplevel. + * langhooks-def.h (lhd_do_nothing_iii_return_null_tree): New + function. + * langhooks.c (lhd_do_nothing_iii_return_null_tree): Define it. + +2003-09-14 Kazu Hirata + + * combine.c (simplify_comparison): Convert + (ne (and (lshiftrt (xor X CST) Y) 1) 0) into + (eq (and (lshiftrt X Y) 1) 0). + +2003-09-14 Kazu Hirata + + * alias.c: Follow spelling conventions. + * cpphash.h: Likewise. + * fold-const.c: Likewise. + +2003-09-14 Alexandre Oliva + + * c-ppoutput.c (cb_line_change): Revert 2003-08-04's change. + * c-lex.c (cb_line_change): Skip line changing whenever + c-ppoutput.c would. + +2003-09-14 Steven Bosscher + + * ra.c: Convert to ISO C90 prototypes. + * ra-build.c: Likewise. + * ra-colorize.c: Likewise. + * ra-debug.c: Likewise. + * ra-rewrite.c: Likewise. + +2003-09-14 Richard Sandiford + + * Makefile.in (%.dvi): Remove excess $(docdir). + +2003-09-14 Richard Sandiford + + * function.c (STACK_BYTES): Move definition to head of file. + (assign_parms): Don't pass current_function_pretend_args_size + directly to SETUP_INCOMING_VARARGS. For partial register arguments, + round current_function_pretend_args_size up to STACK_BYTES. Skip any + excess before laying out the argument. + +2003-09-14 Andreas Jaeger + + * objc/objc-act.c: Convert to ISO C90 prototypes. + * objc/objc-act.h: Likewise. + +2003-09-14 Olaf Hering + + * config/rs6000/rs6000.c: Fix typo: Remove extra ')'. + +2003-09-13 Andrew Pinski + + PR target/12021 + * config/m68k/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Remove the asserts + as they already are done in config/m68k/m68k.h. + * config/m68k/netbsd.h (TARGET_OS_CPP_BUILTINS): Likewise + + * config/rs6000/rs6000.c (GEN_LOCAL_LABEL_FOR_SYMBOL): Remove. + (machopic_output_stub): Only generate pic base symbols when using pic + and generate them in the form L00000000$spb. + +2003-09-13 Richard Henderson + + * cgraphunit.c (cgraph_assemble_pending_functions): Export. + (cgraph_finalize_function): Revert TREE_ASM_WRITTEN check. + * cgraph.h: Update. + +2003-09-12 Dale Johannesen + + * config/rs6000/rs6000.c: Fix typos in previous. + +2003-09-12 Ziemowit Laski + + * pretty-print.c (pp_construct): Use xcalloc instead of xmalloc + when allocating pp->buffer. + +2003-09-12 Geoffrey Keating + + * config/darwin.c (machopic_select_rtx_section): Use + const_data_section for things that might require relocation. + +2003-09-12 H.J. Lu + + PR bootstrap/12264 + * tree-inline.c (inline_forbidden_p_1): Cast the 3rd arg to tree. + +2003-09-12 Bob Wilson + + * config/xtensa/elf.h (ASM_SPEC): Remove no-density option. Reformat. + * config/xtensa/linux.h (ASM_SPEC): Likewise. + * config/xtensa/xtensa.h (TARGET_SWITCHES): Remove -mbig-endian, + -mlittle-endian, -m[no-]density, -m[no-]abs, -m[no-]addx, -m[no-]mac16, + -m[no-]mul16, -m[no-]mul32, -m[no-]nsa, -m[no-]minmax, -m[no-]sext, + -m[no-]booleans, -mhard-float, -msoft-float, -m[no-]hard-float-div, + -m[no-]hard-float-recip, -m[no-]hard-float-sqrt, and + -m[no-]hard-float-rsqrt options. Delete corresponding MASK_* macros + and redefine corresponding TARGET_* macros with constants from the + xtensa-config.h header. + * doc/invoke.texi (Option Summary, Xtensa Options): Remove documention + for the options listed above. + +2003-09-12 Dale Johannesen + + * config/rs6000/rs6000-protos.h: Use C90 prototypes. + * config/rs6000/rs6000-c.c: Ditto. + * config/rs6000/rs6000.c: Ditto. + * config/rs6000/ sysv4.h: Ditto. + +2003-09-12 Chris Lattner + + * loop.c: Move comments describing BIV's and GIV's to top of file + +2003-09-12 Roger Sayle + + PR optimization/8967 + * alias.c (write_dependence_p): Modify to take an additional constp + argument that controls whether the UNCHANGING_RTX_P flags are used. + (anti_dependence, output_dependence): Adjust write_dependence_p + callers to pass this additional argument, to return the same result. + (unchanging_anti_dependence): New variant of anti_dependence that + ignores the UNCHANGING_RTX_P property on memory references. + * rtl.h (unchaning_anti_dependence): Prototype here. + * flow.c (init_propagate_block): Place fake constant mem writes on + the mem_set_list so that dead writes to const variables are deleted. + (insn_dead_p): Change anti_dependence to unchanging_anti_dependence. + (mark_used_regs): Likewise. + +2003-09-12 Richard Sandiford + + * config/mcore/mcore-protos.h (mcore_r15_operand_p): Declare. + (mcore_secondary_reload_class): Declare. + (mcore_output_inline_const_forced): Remove. + * config/mcore/mcore.md (movsi): Remove the code that forced + non-inlineable constants into a register if the target was r15 + or the stack pointer. Remove constant restrictions from the main + define_insn. Remove r <- I, r <- M and r <- N alternatives in favor + of an r <- P alternative. Remove fallback define_insn for reload. + (movhi, movqi): Use gen_lowpart rather than gen_SUBREG. Remove reload + define_insn. Use mcore_output_move in the remaining define_insn. + Adjust condition and constraints in the way as for movsi. + (movdi): Always split unacceptable constants into two. Use + simplify_gen_subreg instead of operand_subword{,_force}. + * config/mcore/mcore.c (mcore_output_inline_const_forced): Remove. + (mcore_output_move): Support HImode and QImode moves as well. + (mcore_m15_operand_p): New function. + (mcore_reload_class): Use it to detect cases where LRW_REGS are better. + (mcore_secondary_reload_class): New function. + * config/mcore/mcore.h (SECONDARY_RELOAD_CLASS): Redefine in + terms of mcore_secondary_reload_class. + +2003-09-11 Mike Stump + + * c-lex.c (fe_file_change): Don't transform to_line with SOURCE_LINE. + +2003-09-11 Kaveh R. Ghazi + + * builtins.c (fold_builtin_logarithm): if N can't be truncated to + MODE exactly, then only convert logN(N) -> 1.0 if + flag_unsafe_math_optimizations is set. + + * builtins.c (builtin_dconsts_init, dconstpi, dconste, + init_builtin_dconsts): Delete. + * emit-rtl.c (dconstpi, dconste): Define. + (init_emit_once): Initialize dconstpi & dconste. + * real.h (dconstpi, dconste): Declare. + +2003-09-11 Alexandre Oliva + + PR fortran/11522 + * dwarf2out.c (gen_inlined_subroutine_die): Emit abstract function + for ultimate origin even if block is abstract. + +2003-09-11 Roger Sayle + + * combine.c (combine_simplify_rtx): Move several NOT and NEG + optimizations from here... + * simplify-rtx.c (simplify_unary_operation): to here. Recursively + simplify expressions using simplify_gen_*ary instead of gen_rtx_*. + +2003-09-11 Richard Henderson + + * cgraphunit.c (cgraph_finalize_function): Add nested arg. + Tweek tests for function already generated. + (cgraph_expand_function): Don't double announce in !unit-at-a-time. + * cgraph.h (cgraph_finalize_function): Update for extra arg. + * c-decl.c (finish_function): Likewise. + +2003-09-10 Joe Buck + + * c-decl.c (poplevel): Eliminate use of |= in function_body assignment. + +2003-09-10 Jerry Quinn + + * real.c: Update URL to VAX floating point docs. + (decode_vax_d): Extract 8 exponent bits instead of 7. + +2003-09-10 Ian Lance Taylor + + * combine.c (force_to_mode): Set fuller_mask based only on mask, + not op_mode. + +2003-09-11 Jan Hubicka + + * c-objc-common.c (c_cannot_inline_tree_fn): Warn + on why function is not inlinable; do not check + the body. + (inline_forbidden_p): Move to... + * tree-inline.c (inline_forbidden_p_1): ... here; Add warnings; + deal with alloca, longjmp. + (inline_forbidden_p): New static function. + (find_alloca_call_1, find_alloca_call, find_builtin_longjmp_call_1, + find_builtin_longjmp_call): Kill. + +2003-09-10 Richard Henderson + + * cgraph.h (struct cgraph_node): Rename lowered to analyzed. + * cgraphunit.c: Update to match. + (record_call_1): Rearrange. Call lang hook for language nodes. + (cgraph_analyze_function): Don't call lower_function. + * langhooks.h (struct lang_hooks_for_callgraph): Replace + lower_function with analyze_expr. + * langhooks-def.h: Update to match. + * langhooks.c (lhd_callgraph_analyze_expr): New. + +2003-09-10 Martin Husemann + + PR target/11965 + * config/sparc/sparc.c (sparc_v8plus_shift): Protect against + constants greater than 63. + * config/sparc/sparc.md (ashlsi3, ashrsi3, lshrsi3): Protect + against constants greater than 31. + (*ashldi3_sp64, *ashrdi3_sp64, *lshrdi3_sp64): Protect against + constants greater than 63. + +2003-09-09 Richard Henderson + + * cgraphunit.c (cgraph_finalize_function): Remove unused argument. + * cgraph.h (cgraph_finalize_function): Update. + * c-decl.c (finish_function): Update. + +2003-09-09 Devang Patel + + * config/darwin.h (LINK_SPEC): Pass -nofixprebinding to linker. + * doc/invoke.texi: Document new Darwin linker option -nofixprebinding. + +2003-09-09 Eric Christopher + + * configure.in: Change usage of 'head' to 'sed 1q'. + * configure: Regenerate. + +2003-09-09 Richard Henderson + + * except.c: Include cgraph.h. + (output_function_exception_table): Invoke + cgraph_varpool_mark_needed_node. + * Makefile.in (except.o): Update. + +2003-09-07 Kelley Cook + + * Makefile.in: Define REMAKEFLAGS for LANGUAGES & BOOT_CFLAGS + and use it throughout. + +2003-09-09 Kaveh R. Ghazi + + * builtins.c (real_dconstp, fold_builtin_logarithm, + fold_builtin_exponent): New, split out from fold_builtin. Also + generalize to add log2, log10, exp2 and exp10/pow10 equivalents. + * emit-rtl.c (dconst3, dconst10, dconstthird): New. + (init_emit_once): Initialize new dconsts, use ARRAY_SIZE in lieu + of hardcoded array size. + * fold-const.c (fold): Add cases for exp2, exp10 and pow10. + (tree_expr_nonnegative_p): Likewise. + * real.h (dconst3, dconst10, dconstthird): New. + +2003-09-09 Jan Hubicka + + * cgraphunit.c (cgraph_finalize_function): Fix handling of extern + inline functions. + (cgraph_finalize_compilation_unit): Fix crash when dealing with lost + DECL_SAVED_TREE. + +2003-09-09 Roger Sayle + + * builtins.c (fold_builtin_cabs): Protect the complex argument + against multiple evaluation when optimizing cabs* into sqrt*. + +2003-09-09 Jan Hubicka + + * varasm.c (notice_global_symbol): Properly deal with weak symbols. + +2003-09-08 Kelley Cook + + * Makefile.in: Revert yesterday's change. + +2003-09-08 Bernardo Innocenti + Peter Barada + + * config/m68k/coff.h (REGISTER_NAMES): Add fake register `argptr' + * config/m68k/hp320.h (REGISTER_NAMES): Likewise. + * config/m68k/linux.h (REGISTER_NAMES): Likewise. + * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise. + * gcc/config/m68k/sgs.h (REGISTER_NAMES): Likewise. + * config/m68k/m68k-protos.h (m68k_initial_elimination_offset): Add prototype. + * config/m68k/m68k.c (m68k_frame): New struct, simular to ix86 back-end. + (m68k_compute_frame_layout): New function. + (m68k_initial_elimination_offset): New function. + (m68k_output_function_prologue): ColdFire-specific movem handling. + (m68k_output_function_epilogue): Likewise. + * config/m68k/m68k.h (FIRST_PSEUDO_REGISTER): Make room for argptr reg. + (ARG_POINTER_REGNUM): Add new definition. + (INITIAL_FRAME_POINTER_OFFSET): Remove macro. + (ELIMINABLE_REGS): Define new macro, like in ix86 back-end. + (CAN_ELIMINATE): Likewise. + (INITIAL_ELIMINATION_OFFSET): Likewise. + +2003-09-08 Bernardo Innocenti + + * config/m68k/m68k.c (m68k_output_function_prologue): Simplify + by removing redundant variable cfa_store_offset. + +2003-09-08 Mark Mitchell + + * langhooks-def.h (lhd_register_builtin_type): New function. + (LANG_HOOKS_REGISTER_BUILTIN_TYPE): New macro. + (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update. + * langhooks.h (lang_hooks_for_types): Add register_builtin_type. + * langhooks.c (lhd_register_builtin_type): New function. + * c-common.h (c_register_builtin_type): Declare. + * c-common.c (c_register_builtin_type): New function. + * c-lang.c (LANG_HOOKS_REGISTER_BUILTIN_TYPE): Define to + c_register_builtin_type. + * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Remove __fpreg, + __float80, and __float128 macros. + * config/ia64/ia64.c (ia64_init_builtins): Create __fpreg, + __float80, and __float128 types. + +2003-09-08 Kaveh R. Ghazi + + * builtin-types.def + (BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE, + BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE_COMPLEX_DOUBLE, + BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT_COMPLEX_FLOAT): New. + * builtins.def (BUILT_IN_CACOS, BUILT_IN_CACOSF, BUILT_IN_CACOSH, + BUILT_IN_CACOSHF, BUILT_IN_CACOSHL, BUILT_IN_CACOSL, + BUILT_IN_CARG, BUILT_IN_CARGF, BUILT_IN_CARGL, BUILT_IN_CASIN, + BUILT_IN_CASINF, BUILT_IN_CASINH, BUILT_IN_CASINHF, + BUILT_IN_CASINHL, BUILT_IN_CASINL, BUILT_IN_CATAN, + BUILT_IN_CATANF, BUILT_IN_CATANH, BUILT_IN_CATANHF, + BUILT_IN_CATANHL, BUILT_IN_CATANL, BUILT_IN_CCOS, BUILT_IN_CCOSF, + BUILT_IN_CCOSH, BUILT_IN_CCOSHF, BUILT_IN_CCOSHL, BUILT_IN_CCOSL, + BUILT_IN_CEXP, BUILT_IN_CEXPF, BUILT_IN_CEXPL, BUILT_IN_CPOW, + BUILT_IN_CPOWF, BUILT_IN_CPOWL, BUILT_IN_CPROJ, BUILT_IN_CPROJF, + BUILT_IN_CPROJL, BUILT_IN_CSIN, BUILT_IN_CSINF, BUILT_IN_CSINH, + BUILT_IN_CSINHF, BUILT_IN_CSINHL, BUILT_IN_CSINL, BUILT_IN_CSQRT, + BUILT_IN_CSQRTF, BUILT_IN_CSQRTL, BUILT_IN_CTAN, BUILT_IN_CTANF, + BUILT_IN_CTANH, BUILT_IN_CTANHF, BUILT_IN_CTANHL, BUILT_IN_CTANL): + New. + * doc/extend.texi: Document new builtins. + +2003-09-09 Jan Hubicka + + * cgraph.c (cgraph_varpool_finalize_decl): Sanity check duplicated + finalization. + * cgraphunit.c (decide_is_fnction_needed): Avoid special case of nested + functions, check for COMDAT. + (cgraph_assemble_pending_functions): Break out from... + (cgraph_finalize_function): ... here; allow redefinig of extern inline + functions. + (record_call_1): Record function references only in non-unit-at-a-time + mode. + (cgraph_analyze_function): Reset current_function_decl. + (cgraph_finalize_compilation_unit): Assemble pending functions. + +2003-09-08 Mark Mitchell + + * mklibgcc.in (libcc.a): Depend on stmp-dirs. + (libgov.a): Likewise. + (libgcc_eh.a): Likewise. + +2003-09-08 Roger Sayle + + * fold-const.c (operand_equal_p): Clarify documentation. + +2003-09-08 Richard Henderson + + * c-decl.c (c_expand_body_1): Push and pop function context here. + * tree-optimize.c (tree_rest_of_compilation): ... not here. Take + nested argument instead of computing nesting ourselves. + +2003-09-08 Jakub Jelinek + + * toplev.c (rest_of_handle_stack_regs): Call split_all_insns before + regstack if optimizing but not scheduling after reload. + +2003-09-08 Jakub Jelinek + + * config/sparc/sparc.c (struct machine_function): New type. + (TARGET_HAVE_TLS, TARGET_CANNOT_FORCE_CONST_MEM): Define. + (sparc_override_options): Initialize init_machine_status. + (tls_symbolic_operand, tgd_symbolic_operand, tld_symbolic_operand, + tie_symbolic_operand, tle_symbolic_operand): New functions. + (symbolic_operand): Disallow tls_symbolic_operand. + (symbolic_memory_operand): Likewise. + (tls_call_delay, sparc_cannot_force_const_mem, legitimate_constant_p, + constant_address_p, legitimate_pic_operand_p, legitimate_address_p): + New functions. + (sparc_tls_symbol): New variable. + (sparc_tls_get_addr, sparc_tls_got, legitimize_tls_address, + legitimize_address): New functions. + (print_operand): Handle %&. + (sparc_init_machine_status, get_some_local_dynamic_name, + get_some_local_dynamic_name_1): New functions. + (sparc_output_dwarf_dtprel): New function. + * config/sparc/sparc.h (CONSTANT_ADDRESS_P): Moved into + constant_address_p. + (LEGITIMATE_PIC_OPERAND_P): Moved into legitimate_pic_operand_p. + (LEGITIMATE_CONSTANT_P): Moved into legitimate_constant_p. + (GO_IF_LEGITIMATE_ADDRESS): Moved into legitimate_address_p. + (LEGITIMIZE_ADDRESS): Moved into legitimize_address. + (PRINT_OPERAND_PUNCT_VALID_P): Add '&'. + (TARGET_TLS, TARGET_SUN_TLS, TARGET_GNU_TLS): Define. + (ASM_OUTPUT_DWARF_DTPREL): Define. + (PREDICATE_CODES): Add tgd_symbolic_operand, tld_symbolic_operand, + tie_symbolic_operand, tle_symbolic_operand. + * config/sparc/sparc.md (UNSPEC_TLSGD, UNSPEC_TLSLDM, UNSPEC_TLSLDO, + UNSPEC_TLSIE, UNSPEC_TLSLE, UNSPEC_TLSLD_BASE): New constants. + (tls_call_delay): New attribute. + (in_call_delay): Use it. + (movqi, movhi, movsi, movdi): Call legitimize_tls_address if needed. + (tgd_hi22, tgd_lo10, tgd_add32, tgd_add64, tgd_call32, tgd_call64, + tldm_hi22, tldm_lo10, tldm_add32, tldm_add64, tldm_call32, tldm_call64, + tldo_hix22, tldo_lox10, tldo_add32, tldo_add64, tie_hi22, tie_lo10, + tie_ld32, tie_ld64, tie_add32, tie_add64, tle_hix22_sp32, + tle_lox10_sp32, tle_hix22_sp64, tle_lox10_sp64): New insns. + (tldo_ldub_sp32, tldo_ldub1_sp32, tldo_ldub2_sp32, tldo_ldsb1_sp32, + tldo_ldsb2_sp32, tldo_ldub_sp64, tldo_ldub1_sp64, tldo_ldub2_sp64, + tldo_ldub3_sp64, tldo_ldsb1_sp64, tldo_ldsb2_sp64, tldo_ldsb3_sp64, + tldo_lduh_sp32, tldo_lduh1_sp32, tldo_ldsh1_sp32, tldo_lduh_sp64, + tldo_lduh1_sp64, tldo_lduh2_sp64, tldo_ldsh1_sp64, tldo_ldsh2_sp64, + tldo_lduw_sp32, tldo_lduw_sp64, tldo_lduw1_sp64, tldo_ldsw1_sp64, + tldo_ldx_sp64, tldo_stb_sp32, tldo_stb_sp64, tldo_sth_sp32, + tldo_sth_sp64, tldo_stw_sp32, tldo_stw_sp64, tldo_stx_sp64): New + insns. + * config/sparc/sparc-protos.h (legitimate_constant_p, + constant_address_p, legitimate_pic_operand_p, legitimate_address_p, + legitimize_tls_address, legitimize_address, tls_symbolic_operand, + tls_call_delay, sparc_output_dwarf_dtprel): New prototypes. + * config/sparc/linux.h (TARGET_GNU_TLS, TARGET_SUN_TLS): Define. + * config/sparc/linux64.h (TARGET_GNU_TLS, TARGET_SUN_TLS): Likewise. + * configure.in (sparc*-*-*): Add TLS check. + * configure: Rebuilt. + +2003-09-07 Eric Botcazou + + PR target/11689 + * config/i386/i386.c (memory_address_length): Fix computation when + the base is esp or ebp. + +2003-09-07 Mark Mitchell + + PR c++/11852 + * varasm.c (initializer_constant_valid_p): Correct logic for + CONSTRUCTORs. + +2003-09-07 Roger Sayle + + * expr.c (expand_operands): New function to expand an operand pair. + (expand_expr): Call expand_operands whenever we need to expand both + operands of a binary operator. + (do_store_flag): Likewise for operands of comparison operations. + +2003-09-07 Roger Sayle + + * combine.c (combine_simplify_rtx): Don't convert -(A*B) into + (-A)*B if we care about sign-dependent rounding. + +2003-09-07 Gabriel Dos Reis + + * c-pretty-print.h (pp_c_left_brace): Declare. + (pp_c_right_brace): Likewise. + * c-pretty-print.c (pp_c_left_brace): Now a function + (pp_c_right_brace): Likewise. + +2003-09-07 Jan Hubicka + + * cfgcleanup.c (try_simplify_condjump): Fix again the preivous patch. + +2003-09-07 Gabriel Dos Reis + + * diagnostic.c (warn_deprecated_use): Move to toplev.c + +2003-09-07 Gabriel Dos Reis + + * langhooks.c (lhd_print_error_function): Move from diagnostic.c. + * Makefile.in (langhooks.o): Depend on diagnostic.h + +2003-09-06 James E Wilson + + * loop.c (loop_regs_update): Delete else clause for PATTERN rtx and + simplify. + +2003-09-07 Kelley Cook + + * Makefile.in: Define $REMAKE to be $MAKE with LANGUAGES & BOOT_CFLAGS + and use it throughout. + +2003-09-07 Jan Hubicka + + * cfgcleanup.c (try_simplify_condjump): Fix my previous patch. + + * toplev.c (rest_of_decl_compilation): Do not finalize external + virables. + + * cgraph.c (cgraph_mark_reachable_node): Only enqueue finalized + functions. + (cgraph_varpool_finalize_decl): Notice global symbol when needed. + +2003-09-06 Jan Hubicka + + PR target/12070 + * calls.c (emit_library_call_value_1): Fix saving of BLKmode arguments. + + PR opt/12082 + * cfgcleanup.c (try_simplify_condjump): Avoid unreachable code warning. + +2003-09-06 Gabriel Dos Reis + + * diagnostic.c (announce_function): Move to toplev.c. + +2003-09-06 Zdenek Dvorak + + * gcse.c (expr_equiv_p): Don't consider anything to be equal to + volatile mem. + +2003-09-06 Kaveh R. Ghazi + + * ggc-common.c (init_ggc_heuristics): Don't use the heuristics + when gc checking is enabled. + +2003-09-06 Steven Bosscher + + PR c/9862 + * c-decl.c (c_expand_body_1): Move return warning from here... + (finish_function): ...to here. + +2003-09-05 Geoffrey Keating + + * config/rs6000/darwin.h (PREFERRED_RELOAD_CLASS): Always return + a subset of the input class. + +2003-09-05 Kazu Hirata + + * config/i860/i860.c: Follow spelling conventions. + * config/i860/i860.h: Likewise. + * config/sh/sh.h: Likewise. + +2003-09-05 Nitin Yewale + + * config/h8300/h8300-protos.h: Declare h8300_hard_regno_rename_ok + * config/h8300/h8300.h (HARD_REGNO_RENAME_OK): New. + * config/h8300/h8300.c (h8300_hard_regno_rename_ok): New. + +2003-09-05 Roger Sayle + Richard Henderson + + PR optimization/1823 + * expmed.c (expand_divmod ): Use an unsigned + multiplication to implement division by constant integer. + +2003-09-05 Jan Hubicka + + * opts.c (decode_options): Enable unit-at-a-time at -O2. + * params.def (max-inline-insns-single): Set to 500 + (max-inline-insns-auto): Set to 150 + * invoke.texi (max-inline-insns-single, max-inline-insns-auto): Update. + +2003-09-04 Richard Henderson + + * cgraph.c (cgraph_mark_reachable_node): Split out from ... + (cgraph_mark_needed_node): Remove needed argument. + * cgraph.h: Update to match. + * cgraphunit.c (decide_is_function_needed): Split out from ... + (cgraph_finalize_function): Reorg. Avoid deferred_inline_function + if we generated the function. + (record_call_1): Update for cgraph_mark_reachable_node. + * varasm.c (mark_referenced): Likewise. + * objc/objc-act.c (mark_referenced_methods): Likewise. + +2003-09-04 DJ Delorie + + * targhooks.c: Add comment explaining the migration process. + +2003-09-04 Eric Christopher + + * config/frv/t-frv: Fix path for frv-abi.h. + * config/frv/frv-asm.h: Fix string concatenation. + +2003-09-04 DJ Delorie + + * builtins.c (apply_args_size): Guard against a NULL cfun. + (expand_builtin_apply_args_1): Likewise. + (expand_builtin_apply): Likewise. + Fixes PR bootstrap/12172. + +2003-09-04 Rainer Orth + + * configure.in (gcc_cv_as_ix86_cmov_sun_syntax): Check if + assembler supports Sun syntax for cmov. + * configure: Regenerate. + * config.in: Likewise. + * config/i386/i386.c: Rename CMOV_SUN_AS_SYNTAX to + HAVE_AS_IX86_CMOV_SUN_SYNTAX. + * config/i386/sol2.h (CMOV_SUN_AS_SYNTAX): Remove. + Fixes PR target/12101. + +2003-09-04 Matt Austern + + * c-common.c (fname_as_string): Use lang_hooks.decl_printable_name + with verbosity 0, instead of DECL_NAME, for human-readable string. + +2003-09-04 Eric Christopher + + * targhooks.c (default_return_in_memory): Allow + unconverted ports. + +2003-09-04 Eric Christopher + + * targhooks.c (default_return_in_memory): Fix typo + in last checkin. + +2003-09-04 Eric Christopher + + * targhooks.c (default_return_in_memory): Fix default + definition. + +2003-09-04 Bernardo Innocenti + + * config/m68k/m68k.c (m68k_coff_asm_named_section): Restore + deleted function. + * config/m68k/coff.h (M68K_TARGET_COFF): Add flag used to + enable coff-only code in m68k.c. + +2003-09-04 Nick Clifton + + * config.gcc: Add v850e1 target. Allow --with-cpu to accept + v850e1. + * config/v850/v850.h: Accept v850e1 as a default CPU. + Accept -mv850e1 as a command line option. + * doc/invoke.texi: Document new -mv850e1 command line switch. + * config/v850/t-v850: Treat -mv850e1 as a multilib alias for + -mv850e. + +2003-09-04 Nick Clifton + + * config.gcc (v850e-*-*): Use t-v850e makefile fragment. + * config/v850/t-v850: Only produce one extra multilib - for + the v850e. + * config/v850/t-v850e: New file: Only produce one extra + multilib - for the v850. + +2003-09-04 Jakub Jelinek + + * config/ia64/libgcc-ia64.ver: Export _Unwind_GetBSP@@GCC_3.3.2. + * config/ia64/unwind-ia64.c (_Unwind_GetBSP): New function. + * unwind.h (_Unwind_GetBSP): New prototype. + * libgcc-std.ver: Add empty GCC_3.3.2 version. + * mkmap-symver.awk: For symbol versions with no exported symbols, + don't put anything into version script, just change all symbol + versions which inherit from it to inherit from its ancestor. + +2003-09-04 Eric Christopher + + * config/mips/mips.c (mips_expand_prologue): Convert to + calls.struct_value_rtx hook. + (reg_or_const_float_1_operand): New. + * config/mips/mips.h: Update Comments. + (mips_arg): Add reg_or_const_float_1_operand. + * config/mips/mips.md (divdf3); Convert to expander. + (divsf3): Ditto. + (*divdf3): New pattern. + (*divsf3): Ditto. + +2003-09-04 Jan Hubicka + + * toplev.c (wrapup_global_declarations): Fix final pass in + unit-at-atime mode. + +2003-09-04 Mark Mitchell + + * doc/extend.texi: Document removal of cast-as-lvalue extension in + C++. + +2003-09-04 Nicolas Roche + + * gcc.c (process_command): Fix typo. + +2003-09-03 David O'Brien + + optimization/11980 + * config/i386/freebsd.h (SIZE_TYPE): Support TARGET_64BIT. + (PTRDIFF_TYPE): Likewise. + (WCHAR_TYPE_SIZE): Likewise. + +2003-09-03 DJ Delorie + + * targhooks.c: New file. + * targhooks.h: New file. + * Makefile.in: Add targhooks.o support. + (function.o): Depend on$(TARGET_H). + (stmt.o): Likewise. + (combine.o): Depend on $(TREE_H) and $(TARGET_H). + * builtins.c (apply_args_size, expand_builtin_apply_args_1, + expand_builtin_apply): Convert to calls.struct_value_rtx hook. + (expand_builtin_saveregs): Convert to + calls.expand_builtin_saveregs hook. + * c-decl.c (start_decl): Handle new calls.promote_prototypes hook + here, instead of ... + (get_parm_info) ... here. + (store_parm_decls_oldstyle): Convert to calls.promote_prototypes + hook. + (finish_function): Handle calls.promote_prototypes hook here too. + * c-typeck.c (convert_arguments): Convert to + calls.promote_prototypes hook. + (c_convert_parm_for_inlining): Likewise. + * calls.c (initialize_argument_information): Convert to + calls.promote_function_args hook. + (expand_call): Convert to calls.struct_value_rtx, + calls.strict_argument_naming, + calls.pretend_outgoing_varargs_named, and + calls.promote_function_return hooks. Pass fndecl to + aggregate_value_p. Initialize CUMULATIVE_ARGS before calling + hooks, so they can use that. + (emit_library_call_value_1): Likewise. + * combine.c (setup_incoming_promotions): Convert to + calls.promote_function_args hook. + * emit-rtl.c: Convert to calls.struct_value_rtx hook. + * expr.c (expand_assignment): Pass call to aggregate_value_p. + (expand_expr): Likewise. + * expr.h: Remove support for SETUP_INCOMING_VARARGS, + STRICT_ARGUMENT_NAMING, PRETEND_OUTGOING_VARARGS_NAMED, + RETURN_IN_MEMORY macro defaults. + * final.c (profile_function): Convert to calls.struct_value_rtx + hook. + * function.c (aggregate_value_p): Accept function type tree as + second parameter; try to deduce fntype from it. Convert to + calls.return_in_memory hook. + (assign_parms): Convert to calls.setup_incoming_varargs, + calls.strict_argument_naming, calls.promote_function_args, + calls.pretend_outgoing_varargs_named hooks. Pass fndecl to + aggregate_value_p. + (expand_function_start): Likewise. Convert to + calls.struct_value_rtx hook. + (expand_function_end): Convert to calls.promote_function_return hook. + (allocate_struct_function): Pass fndecl to aggregate_value_p. + * hard-reg-set.h: Update comments to new hook names. + * integrate.c (expand_inline_function): Pass fndecl to aggregate_value_p. + * reg-stack.c (stack_result): Likewise. + * rtl.h (struct_value_rtx, struct_value_incoming_rtx): Delete. + * stmt.c (expand_value_return): Convert to + calls.promote_function_return hook. + * target-def.h: Add TARGET_PROMOTE_FUNCTION_ARGS, + TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES, + TARGET_STRUCT_VALUE_RTX, TARGET_RETURN_IN_MEMORY, + TARGET_EXPAND_BUILTIN_SAVEREGS, TARGET_SETUP_INCOMING_VARARGS, + TARGET_STRICT_ARGUMENT_NAMING, + TARGET_PRETEND_OUTGOING_VARARGS_NAMED, and TARGET_CALLS. + * target.h: Likewise. + * tree.h (aggregate_value_p): Also takes a tree to deduce function + attributes from (for target hooks). + * doc/tm.texi (PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, + PROMOTE_PROTOTYPES, RETURN_IN_MEMORY, STRUCT_VALUE_REGNUM, + STRUCT_VALUE, STRUCT_VALUE_INCOMING_REGNUM, STRUCT_VALUE_INCOMING, + EXPAND_BUILTIN_SAVEREGS, SETUP_INCOMING_VARARGS, + STRICT_ARGUMENT_NAMING, PRETEND_OUTGOING_VARARGS_NAMED): Convert + to hooks. + + * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Pass function + to aggregate_value_p. + * config/arm/arm.c (arm_init_cumulative_args, + arm_output_mi_thunk): Likewise. + * config/i386/i386.c (ix86_return_pops_args, x86_this_parameter): + Likewise. + * config/mips/mips.c (mips_save_reg_p, mips_expand_prologue, + mips_can_use_return_insn): Likewise. + * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise. + * config/s390/s390.c (s390_output_mi_thunk): Likewise. + * config/sparc/sparc.c (sparc_output_mi_thunk): Pass function to + aggregate_value_p. + * config/story16/stormy16.c (xstormy16_asm_output_mi_thunk): Pass + function to aggregate_value_p. + * objc/objc-act.c (generate_struct_by_value_array): Pass NULL to + aggregate_value_p. + + * config/sh/sh-protos.h (sh_builtin_saveregs): Remove. + (sh_attr_renesas_p, sh_cfun_attr_renesas_p, sh_function_arg, + sh_function_arg_advance, sh_pass_in_reg_p): New. * config/sh/sh.c + (sh_handle_renesas_attribute, sh_promote_prototypes, + sh_struct_value_rtx, sh_return_in_memory, sh_builtin_saveregs, + sh_setup_incoming_varargs, sh_strict_argument_naming, + sh_pretend_outgoing_varargs_named): New decls. + (targetm): Add new hooks. + (calc_live_regs): Save MACL and MACH if the function has the + renesas attribute. + (sh_expand_prologue): Support renesas attribute. + (sh_builtin_saveregs): Make static. + (sh_build_va_list): Support renesas attribute. + (sh_va_start): Likewise. + (sh_va_arg): Likewise. + (sh_promote_prototypes): New. + (sh_function_arg): New, moved from sh.h. Support renesas + attribute. + (sh_function_arg_advance): Likewise. + (sh_return_in_memory): Likewise. + (sh_strict_argument_naming): Likewise. + (sh_pretend_outgoing_varargs_named): Likewise. + (sh_struct_value_rtx): New. + (sh_attribute): Add renesas attribute. + (sh_handle_renesas_attribute): New. + (sh_attr_renesas_p, sh_cfun_attr_renesas_p): New. + (sh_ms_bitfield_layout_p): Support renesas attribute also. + (sh_output_mi_thunk): Pass function to aggregate_value_p. * + config/sh/sh.h (TARGET_SWITCHES): Add -mrenesas as an alias for + -mhitachi. + (STRUCT_VALUE_REGNUM, STRUCT_VALUE, RETURN_IN_MEMORY): Moved to + target hooks. + (sh_args): Add renesas_abi flag. + (INIT_CUMULATIVE_ARGS): Set it. Pass fndecl to aggregate_value_p. + (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Move to sh.c. + (PASS_IN_REG_P): Support renesas attribute. Pass DF and TF on the + stack for the renesas abi. + (STRICT_ARGUMENT_NAMING, PRETEND_OUTGOING_VARARGS_NAMED, + SETUP_INCOMING_VARARGS, EXPAND_BUILTIN_SAVEREGS, + PROMOTE_PROTOTYPES): Moved to sh.c. * config/sh/sh.md (call): Set + call cookie to indicate renesas calls. + +2003-09-03 Mostafa Hagog + + * gcse.c (replace_one_set): New function. + (pre_insert_copy_insn): Change the order of copying + to make copy propagation discover additional PRE opportunities. + +2003-09-03 Roger Sayle + + PR optimization/11700. + * simplify-rtx.c (simplify_subreg): Check that the subreg offset + of a hard register is representable before trying to simplify it + using subreg_hard_regno. + +2003-09-04 Rainer Orth + + * configure.in (gcc_cv_ld_hidden): Disable unless using GNU ld. + * configure: Regenerate. + +2003-09-04 Rainer Orth + + * intl.h (N_): Remove parentheses. + +2003-09-03 Bernardo Innocenti + + * config.gcc (m68k-*-linux*): Remove definition of LINUX_DEFAULT_ELF. + * config/i370/linux.h (LINUX_DEFAULT_ELF): Remove unconditional + definition and code blocks compiled when not defined. + * config/i386/linux.h (LINUX_DEFAULT_ELF): Likewise. + * config/i386/linux64.h (LINUX_DEFAULT_ELF): Likewise. + * config/sparc/linux.h: (LINUX_DEFAULT_ELF): Likewise. + * config/sparc/linux64.h: (LINUX_DEFAULT_ELF): Likewise. + +2003-09-03 Jeff Sturm + + * cgraphunit.c (visited_nodes): New static variable. + (record_call_1): Use walk_tree with visited_nodes. + (cgraph_create_edges): Use walk_tree with visited_nodes. + Setup/teardown visited_nodes hashtable. + +2003-09-03 Roger Sayle + + * toplev.c (flag_rounding_math): New global variable. + (f_options): Add to the list of language independent options. + * flags.h (flag_rounding_math): Prototype here. + (HONOR_SIGN_DEPENDENT_ROUNDING): Use flag_rounding_math instead. + * common.opt (frounding-math): New common command line option. + * opts.c (common_handle_option): Handle OPT_frounding_math. + (set_fast_math_flags): -ffast-math clears flag_rounding_math. + + * doc/invoke.texi: Document this new command line option. + +2003-09-03 Rainer Orth + + * config/sol2.h (NO_IMPLICIT_EXTERN_C): Update comment. + +2003-09-03 Jan Hubicka + + * Makefile.in (c-objc-common.o): Kill gt-c-objc-common.h dependency. + * c-decl.c (finish_function): Kill arguments, always use cgraph path. + * c-objc-common.c: Kill include of gt-c-objc-common.h + (expand_deferred_fns, deffer_fn): Kill function. + (deferred_fns): Kill variable. + (finish_cdtor): Update finish_function call. + (c_objc_common_finish_file): Always call cgraph code. + * c-parse.c: Regenerate. + * c-parse.y: Regenerate. + * c-tree.h (finish_function): Update prototype. + * objc-acct.c (build_module_descriptor, finish_method_def): + Update call of finish_function. + * cgraphunit.c (cgraph_default_inline_p, cgraph_analyze_function): Add + forward prototype. + (cgraph_finalize_function): In non-unit-at-a-time mode analyze the + function and assemble it if needed. + (cgraph_finalize_compilation_unit): Do nothing in non-unit-at-a-time + mode. + (cgraph_optimize): Likewise. + (cgraph_expand_function): In non-unit-at-a-time mode keep function body + even when it has no inline callees. + * c-parse.in: Update calls to finish_function. + +2003-09-03 Nick Clifton + + * config/arm/arm.h: Handle TARGET_CPU_iwmmxt. + Use #error to generate the message if TARGET_DEFAULT is not + recognised. + +2003-09-03 Richard Sandiford + + * config/mips/mips.h (MASK_UNUSED1): Remove. + (MASK_XGOT, TARGET_XGOT): Define. + (TARGET_SWITCHES): Add an entry for -mxgot. + (ASM_SPEC): Map -mxgot to -xgot. + * config/mips/mips.c (mips_symbol_insns): Use TARGET_XGOT to decide + whether we're using a big-GOT sequences. + (mips_legitimize_const_move, mips_expand_call): Likewise. + (override_options): Revert 2003-01-09 change. + * doc/invoke.texi: Document -mxgot. + +2003-09-02 Jason Merrill + + * config/sol2.h (NO_IMPLICIT_EXTERN_C): Define here. + * config/sparc/sol2.h: Not here. + +2003-09-02 Roger Sayle + + * expr.c (expand_expr): The code following both_summands performs + the same task as simplify_gen_binary. Replace all gotos to + both_summands with a call to simplify_gen_binary and delete the + now unused label. + +2003-09-02 Jason Merrill + + PR c++/7327 + * config/sparc/sol2.h (NO_IMPLICIT_EXTERN_C): Define. + +2003-09-02 Jeff Sturm + + * cgraphunit.c (record_call_1): Use walk_tree_without_duplicates. + (cgraph_optimize_function): Set current_function_decl to the + fndecl we're integrating from. + +2003-09-02 Kaveh R. Ghazi + + * builtins.def: Break out _Complex math functions into their + own category. + +2003-09-02 Andreas Jaeger + + * langhooks-def.h (LANG_HOOKS_RTL_EXPAND_STMT): Cast properly. + +2003-09-02 Josef Zlomek + + * cfgbuild.c (compute_outgoing_frequencies): Use NOTE instead of + finding the note again. + +2003-09-02 Nathanael Nerode + + * config.gcc: Remove host-specific rewrites of target_alias. + +2003-09-01 Mark Mitchell + + * Makefile.in (genprogs): Fix typo. + + * Makefile.in (gencheck.o): Remove build commands. + (dummy-conditions.o): Likewise. + (read-rtl.o): Likewise. + (gensupport.o): Likewise. + (genconfig$(build_exeext)): Remove rule. + (genconfig.o): Remove build commands. + (genflags$(build_exeext)): Remove rule. + (genflags.o): Remove build commands. + (gencodes$(build_exeext)): Remove rule. + (gencodes.o): Remove build commands. + (genconstants.o): Remove build commands. + (genemit$(build_exeext)): Remove rule. + (genemit.o): Remove build commands. + (genrecog$(build_exeext)): Remove rule. + (genrecog.o): Remove build commands. + (genextract$(build_exeext)): Remove rule. + (genextract.o): Remove build commands. + (genpeep$(build_exeext)): Remove rule. + (genpeep.o): Remove build commands. + (genattr$(build_exeext)): Remove rule. + (genattr.o): Remove build commands. + (genprognames): New variable. + (genprogs): Likewise. + (genobjs): Likewise. + (genprogs): New rule. + (genobjs): Likewise. + (genattrtab.o): Remove build commands. + (genautomata.o): Likewise. + (genoutput$(build_exeext)): Remove rule. + (genoutput.o): Remove build commands. + (gengenrtl.o): Likewise. + (genpreds.o): Likewise. + (gengtype.o): Likewise. + (genconditions.o): Likewise. + (gen-protos.o): Likewise. + (scan.o): Likewise. + (fix-header.o): Likewise. + (scan-decls.o): Likewise. + (check-g++): Combine with other check targets. + (check-gcc): Likewise. + (check-g77): Likewise. + (check-objc): Likewise. + +2003-09-01 Nathanael Nerode + + * config.gcc: Remove host-specific stuff which is unused here + since the introduction of config.host. + + * doc/fragments.texi: Mention config.host. + * doc/sourcebuild.texi: Mention config.host. Give brief descriptions + of config.build, config.host, and config.gcc. + +2003-09-01 Zack Weinberg + + * c-decl.c (pushdecl): Don't put variables on + C_TYPE_INCOMPLETE_VARS of a type unless that type is itself + incomplete. + +2003-09-01 Nathanael Nerode + + * config.host: New file. + * config.gcc: Remove some host-specific stuff and some + logic needed only for repeated invocation. + * configure.in: Use config.host. + * configure: Regenerate. + +2003-09-01 Josef Zlomek + + * c-typeck.c (build_binary_op): Kill BIT_ANDTC_EXPR. + * convert.c (convert_to_integer): Kill BIT_ANDTC_EXPR. + * fold-const.c (int_const_binop): Kill BIT_ANDTC_EXPR. + (fold): Kill BIT_ANDTC_EXPR and label bit_and. + * tree.def (BIT_ANDTC_EXPR): Kill. + +2003-08-31 Nathanael Nerode + + * configure.in: Remove uses of "for x in .. ${foo}" idiom. + * configure: Regenerate. + + * config.gcc: Remove references to install_headers_dir, now unused + since introduction of config.build. + * config.gcc (i860-*-sysv4*): Don't set unused USG, SVR3 defines. + + * doc/fragments.texi, doc/sourcebuild.texi: Mention new file + config.build. + + * config.build: New file. + * config.gcc: Remove some build-specific stuff. + * configure.in: Use config.build. + * configure: Regnerate. + +2003-08-31 Steven Bosscher + Roger Sayle + + PR middle-end/11823 + * stmt.c (expand_end_case_type): Only use jump tables for dense + switch statements when optimizing for size. + +2003-08-31 Olivier Hainque + + * builtins.c (expand_builtin_setjmp): Use emit_jump to jump around + the != 0 case, which ensures pending stack adjustments are flushed. + +2003-08-30 Zack Weinberg + + * configure.frag: Delete file. + * configure.in: Rename the substitution variables + dep_host_xmake_file and dep_tmake_file to xmake_file and + tmake_file respectively. Do not expand $srcdir in the + value of these; leave that for Make. Introduce a new + substitution varaible, all_lang_makefrags, which lists + subdirectory Make-lang.in files; exclude these from + all_lang_makefiles, which is now only for subdirectory + outputs. Do not invoke configure.frag. Do not set nor + AC_SUBST_FILE target_overrides, host_overrides, or + language_fragments. Create build subdirectories in + config.status extra commands. + * configure: Regenerate. + * Makefile.in: Update substitutions to match changes to + configure. Use include directives instead of @-insertions + to read in host, target, and language fragments. + (Makefile rule): Do not invoke configure.frag. Do not copy + config.status to config.run before executing it. Set + CONFIG_HEADERS and CONFIG_FILES so that only Makefile gets + regenerated. + (cstamp-h rule): Set CONFIG_FILES as well as CONFIG_HEADERS. + +2003-08-30 Zack Weinberg + + * c-tree.h: Delete COMPARE_DIFFERENT_TU from enumeration. + * c-typeck.c (same_translation_unit_p): New function. + (comptypes): Use it instead of flags parameter to identify + structure types from different translation units. + * c-decl.c (duplicate_decls): Always call comptypes with + COMPTYPE_STRICT flags argument. + (c_reset_state): Set BLOCK_SUPERCONTEXT of the block formed + to file_scope_decl. + +2003-08-30 Zack Weinberg + + * c-tree.h (C_TYPE_INCOMPLETE_VARS): New macro. + * c-decl.c (struct c_scope): Remove "incomplete" field. + (pushdecl): Attach variables with incomplete types to + the TYPE_MAIN_VARIANT of the incomplete type in question. + (finish_struct): Look at C_TYPE_INCOMPLETE_VARS for variables + to complete, not at current_scope->incomplete. All such + variables do need completion. + +2003-08-30 Richard Earnshaw + Nicolas Pitre + + * arm/lib1funcs.asm (RETCOND): Delete. + (RETLDM): New assembler macro. Use it for returning with ldm/ldr. + (ARM_LDIV0, THUMB_LDIV0): Collapse multiple definitions. + (__ARM_ARCH__): Move here from ieee754-?f.S. + (RET, RETc): Clean up definitions. + (DIV_FUNC_END): Renamed from FUNC_END. All uses changed. + (FUNC_END): New macro that marks the end of any function. + (ARM_FUNC_START): New macro that allows an assembler routine to be + implemented in ARM code even if a Thumb-only build. + Unconditionally include ieee754-?f.S. + * arm/ieee754-df.S: Delete macros moved to lib1funcs.asm. + Mark ends of functions. + Split into separate conditionally-compiled units. + Use RETLDM to return from routines. + * arm/ieee754-sf.S: Similarly. + * t-arm-elf (LIB1ASMFUNCS): Remove _ieee754_dp and _ieee754_sp. + Add _negdf2 _addsubdf3 _muldivdf3 _cmpdf2 _unorddf2 _fixdfsi + _truncdfsf2 _negsf2 _addsubsf3 _muldivsf3 _cmpsf2 _unordsf2 + _fixsfsi and _fixunssfsi. + + * arm/ieee754-df.S (__muldf3): Fix bug when result of a + multiplication underflows to zero. + (__adddf3): Fix bug when using VFP ordering on little-endian + processors. + (__fixdfsi): Use rrx to extract the carry into a register instead of + MRS instruction. Optimize later use of result. + * arm/ieee754-sf.S (__fixsfsi): Likewise. + (__fixunssfsi): Use a better sequence for handling negative-or-zero. + +2003-08-29 Richard Henderson + + * tree-optimize.c: New file. + * Makefile.in (OBJS-archive): Add tree-optimize.o. + (tree-optimize.o): New. + * c-decl.c (store_parm_decls): Use allocate_struct_function. + (finish_function): Don't free_after_parsing or free_after_compilation. + (set_save_expr_context): Move to tree-optimize.c. + (c_expand_body_1): Use tree_rest_of_compilation. + * c-lang.c (LANG_HOOKS_RTL_EXPAND_STMT): New. + * objc/objc-lang.c (LANG_HOOKS_RTL_EXPAND_STMT): New. + * c-objc-common.c (expand_deferred_fns): Don't emit unused inlines; + iterate until closure. + * langhooks-def.h (LANG_HOOKS_RTL_EXPAND_START, + LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END): New. + (LANG_HOOKS_RTL_EXPAND_INITIALIZER): New. + * langhooks.h (struct lang_hooks_for_rtl_expansion): New. + * toplev.h (tree_rest_of_compilation): Declare it. + +2003-08-29 Richard Henderson + + * function.h (struct function): Add rtl_inline_init, saved_for_inline. + * integrate.c (save_for_inline): Set saved_for_inline. + * c-semantics.c (genrtl_scope_stmt): Check it. + * toplev.c (wrapup_global_declarations): Check it. + (rest_of_handle_inlining): Set and check rtl_inline_init. + (rest_of_compilation): Remove out of date comment. + +2003-08-29 Richard Henderson + + * function.c (allocate_struct_function): New, split out of ... + (prepare_function_start, init_function_start): ... here. + * expr.c (init_expr): Use ggc_alloc_cleared. + * stmt.c (init_stmt_for_function): Likewise. + * tree.h (allocate_struct_function): Declare. + +2003-08-29 Nathanael Nerode + + * config.gcc: Don't use negated character class in shell case + clause. + +2003-08-29 Richard Henderson + + * function.h (struct function): Move function_frequency and + max_jumptable_ents before start of bit field members. + +2003-08-29 Richard Henderson + + * builtins.c (expand_builtin_constant_p): Check cse_not_expected here, + (fold_builtin_constant_p) ... not here. + +2003-08-29 Richard Henderson + + * c-tree.h (C_DECL_FILE_SCOPE): Move ... + * tree.h (DECL_FILE_SCOPE_P): ... here, and rename. + * c-decl.c, c-objc-common.c, c-typeck.c: Update to match. + +2003-08-29 Kaveh R. Ghazi + + * builtins.def: Fix typos. + (ATTR_MATHFN_FPROUNDING_STORE): New macro. + (BUILT_IN_FREXP, BUILT_IN_FREXPF, BUILT_IN_FREXPL, BUILT_IN_MODF, + BUILT_IN_MODFF, BUILT_IN_MODFL, BUILT_IN_REMQUO, BUILT_IN_REMQUOF, + BUILT_IN_REMQUOL, BUILT_IN_SINCOS, BUILT_IN_SINCOSF, + BUILT_IN_SINCOSL): Use ATTR_MATHFN_FPROUNDING_STORE. + + * builtins.def (BUILT_IN_ERFC, BUILT_IN_ERFCF, BUILT_IN_ERFCL): + Use ATTR_MATHFN_FPROUNDING_ERRNO. + +2003-08-29 Nathanael Nerode + + * config.gcc (i386-*-vsta): Fix obvious bogosity. + + * fixinc/inclhack.def: Remove special cases for unsupported + PTX 1 and PTX 2 (including i[34567]86-sequent-sysv3). + * fixinc/fixincl.x: Regenerate. + +2003-08-29 Mark Mitchell + + * Makefile.in (cpp.info): Just state dependencies. + (gcc.info): Likewise. + (gccint.info): Likewise. + (gccinstall.info): Likewise. + (cppinternals.info): Likewise. + (cpp.dvi): Likewise. + (gcc.dvi): Likewise. + (gccint.dvi): Likewise. + (gccinstall.dvi): Likewise. + (cppinternals.dvi): Likewise. + (gcov.1): Likewise. + (cpp.1): Likewise. + (gcc.1): Likewise. + (gfdl.7): Likewise. + (gpl.7): Likewise. + (fsf-funding.7): Likewise. + ($(objdir)/%.info): New pattern rule. + (%.dvi): Likewise. + +2003-08-29 Kelley Cook + + * Makefile.in (restage1): Pass BOOT_CFLAGS to recursive make. + (restage2): Likewise. + (restage3): Likewise. + (restage4): Likewise. + (restageprofile): Likewise. + (restagefeedback): Likewise. + (bubblestrap): Likewise. + +2003-08-29 Nathanael Nerode + + * config.gcc: Narrow unsupported target match to avoid clobbering + i?86-sequent-sysv4*. + +2003-08-29 Kaveh R. Ghazi + + * builtins.c (mathfn_built_in): Handle new math builtins. + +2003-08-28 Per Bothner + + Fix (hopefully temporary) for breakage caused by my 08-21 patch. + * cpplex.c (_cpp_get_fresh_line): Check for null buffer. + (_cpp_lex_buffer): Likewise. + * cpptrad.c (_cpp_read_logical_line_trad): Likewise. + +2003-08-28 Ulrich Weigand + + * config/s390/s390.md ("*mulsi3_sign"): New insn. + ("mulsidi3" expander, "mulsi_6432" insn): Remove, replace by ... + ("mulsidi3"): ... this new insn. + ("umulsidi3"): New insn. + ("divmoddi3", "divmodtidi3", "divmodtisi3"): Simplify by using + mixed-mode matching constraints. + ("udivmodsi4", "udivmoddisi3"): New insns. + ("udivsi3", "umodsi3"): Use only in ESA/390 mode. + +2003-08-28 Kaveh R. Ghazi + + * builtin-types.def (BT_INT_PTR, BT_FLOAT_PTR, BT_DOUBLE_PTR, + BT_LONGDOUBLE_PTR, BT_FN_FLOAT_FLOAT_FLOATPTR, + BT_FN_DOUBLE_DOUBLE_DOUBLEPTR, + BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLEPTR, + BT_FN_FLOAT_FLOAT_INTPTR, BT_FN_DOUBLE_DOUBLE_INTPTR, + BT_FN_LONGDOUBLE_LONGDOUBLE_INTPTR, + BT_FN_FLOAT_FLOAT_FLOAT_INTPTR, BT_FN_DOUBLE_DOUBLE_DOUBLE_INTPTR, + BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE_INTPTR, + BT_FN_VOID_FLOAT_FLOATPTR_FLOATPTR, + BT_FN_VOID_DOUBLE_DOUBLEPTR_DOUBLEPTR, + BT_FN_VOID_LONGDOUBLE_LONGDOUBLEPTR_LONGDOUBLEPTR): New. + * builtins.def (BUILT_IN_FREXP, BUILT_IN_FREXPF, BUILT_IN_FREXPL, + BUILT_IN_MODF, BUILT_IN_MODFF, BUILT_IN_MODFL, BUILT_IN_REMQUO, + BUILT_IN_REMQUOF, BUILT_IN_REMQUOL, BUILT_IN_SINCOS, + BUILT_IN_SINCOSF, BUILT_IN_SINCOSL): New. + * tree.c: Assign new type_nodes. + * tree.h (tree_index): Add TI_FLOAT_PTR_TYPE, TI_DOUBLE_PTR_TYPE, + TI_LONG_DOUBLE_PTR_TYPE, TI_INTEGER_PTR_TYPE. + (float_ptr_type_node, double_ptr_type_node, + long_double_ptr_type_node, integer_ptr_type_node): New type_nodes. + + * doc/extend.texi: Document new builtins. + +2003-08-28 Kaveh R. Ghazi + + * builtin-types.def (BT_FN_FLOAT_INT_FLOAT, + BT_FN_DOUBLE_INT_DOUBLE, BT_FN_LONGDOUBLE_INT_LONGDOUBLE): New. + + * builtins.def (BUILT_IN_ERF, BUILT_IN_ERFC, BUILT_IN_ERFCF, + BUILT_IN_ERFCL, BUILT_IN_ERFF, BUILT_IN_ERFL, BUILT_IN_GAMMA, + BUILT_IN_GAMMAF, BUILT_IN_GAMMAL, BUILT_IN_J0, BUILT_IN_J0F, + BUILT_IN_J0L, BUILT_IN_J1, BUILT_IN_J1F, BUILT_IN_J1L, + BUILT_IN_JN, BUILT_IN_JNF, BUILT_IN_JNL, BUILT_IN_LGAMMA, + BUILT_IN_LGAMMAF, BUILT_IN_LGAMMAL, BUILT_IN_SIGNIFICAND, + BUILT_IN_SIGNIFICANDF, BUILT_IN_SIGNIFICANDL, BUILT_IN_TGAMMA, + BUILT_IN_TGAMMAF, BUILT_IN_TGAMMAL, BUILT_IN_Y0, BUILT_IN_Y0F, + BUILT_IN_Y0L, BUILT_IN_Y1, BUILT_IN_Y1F, BUILT_IN_Y1L, + BUILT_IN_YN, BUILT_IN_YNF, BUILT_IN_YNL): New. + + * doc/extend.texi: Document new builtins. + +2003-08-28 Nathanael Nerode + + * fixinc/mkfixinc.sh: Remove special case code for unsupported + variants of i?86, powerpcle, and thumb. + * fixinc/mkfixinc.sh: Remove special case code for unsupported + arm and hppa variants. + +2003-08-28 Kaveh R. Ghazi + + * builtin-types.def (BT_FN_INT_FLOAT, BT_FN_INT_DOUBLE, + BT_FN_INT_LONGDOUBLE, BT_FN_LONG_FLOAT, BT_FN_LONG_DOUBLE, + BT_FN_LONG_LONGDOUBLE, BT_FN_LONGLONG_FLOAT, + BT_FN_LONGLONG_DOUBLE, BT_FN_LONGLONG_LONGDOUBLE, + BT_FN_FLOAT_FLOAT_LONGDOUBLE, BT_FN_DOUBLE_DOUBLE_LONGDOUBLE, + BT_FN_FLOAT_FLOAT_INT, BT_FN_DOUBLE_DOUBLE_INT, + BT_FN_LONGDOUBLE_LONGDOUBLE_INT, BT_FN_FLOAT_FLOAT_LONG, + BT_FN_DOUBLE_DOUBLE_LONG, BT_FN_LONGDOUBLE_LONGDOUBLE_LONG, + BT_FN_FLOAT_FLOAT_FLOAT_FLOAT, BT_FN_DOUBLE_DOUBLE_DOUBLE_DOUBLE, + BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE): New. + + * builtins.def (BUILT_IN_ACOS, BUILT_IN_ACOSF, BUILT_IN_ACOSH, + BUILT_IN_ACOSHF, BUILT_IN_ACOSHL, BUILT_IN_ACOSL, BUILT_IN_ASIN, + BUILT_IN_ASINF, BUILT_IN_ASINH, BUILT_IN_ASINHF, BUILT_IN_ASINHL, + BUILT_IN_ASINL, BUILT_IN_ATANH, BUILT_IN_ATANHF, BUILT_IN_ATANHL, + BUILT_IN_CBRT, BUILT_IN_CBRTF, BUILT_IN_CBRTL, BUILT_IN_COPYSIGN, + BUILT_IN_COPYSIGNF, BUILT_IN_COPYSIGNL, BUILT_IN_COSH, + BUILT_IN_COSHF, BUILT_IN_COSHL, BUILT_IN_DREM, BUILT_IN_DREMF, + BUILT_IN_DREML, BUILT_IN_EXP10, BUILT_IN_EXP10F, BUILT_IN_EXP10L, + BUILT_IN_EXP2, BUILT_IN_EXP2F, BUILT_IN_EXP2L, BUILT_IN_EXPM1, + BUILT_IN_EXPM1F, BUILT_IN_EXPM1L, BUILT_IN_FDIM, BUILT_IN_FDIMF, + BUILT_IN_FDIML, BUILT_IN_FMA, BUILT_IN_FMAF, BUILT_IN_FMAL, + BUILT_IN_FMAX, BUILT_IN_FMAXF, BUILT_IN_FMAXL, BUILT_IN_FMIN, + BUILT_IN_FMINF, BUILT_IN_FMINL, BUILT_IN_HYPOT, BUILT_IN_HYPOTF, + BUILT_IN_HYPOTL, BUILT_IN_ILOGB, BUILT_IN_ILOGBF, BUILT_IN_ILOGBL, + BUILT_IN_LDEXP, BUILT_IN_LDEXPF, BUILT_IN_LDEXPL, BUILT_IN_LLRINT, + BUILT_IN_LLRINTF, BUILT_IN_LLRINTL, BUILT_IN_LLROUND, + BUILT_IN_LLROUNDF, BUILT_IN_LLROUNDL, BUILT_IN_LOG10, + BUILT_IN_LOG10F, BUILT_IN_LOG10L, BUILT_IN_LOG1P, BUILT_IN_LOG1PF, + BUILT_IN_LOG1PL, BUILT_IN_LOG2, BUILT_IN_LOG2F, BUILT_IN_LOG2L, + BUILT_IN_LOGB, BUILT_IN_LOGBF, BUILT_IN_LOGBL, BUILT_IN_LRINT, + BUILT_IN_LRINTF, BUILT_IN_LRINTL, BUILT_IN_LROUND, + BUILT_IN_LROUNDF, BUILT_IN_LROUNDL, BUILT_IN_NEXTAFTER, + BUILT_IN_NEXTAFTERF, BUILT_IN_NEXTAFTERL, BUILT_IN_NEXTTOWARD, + BUILT_IN_NEXTTOWARDF, BUILT_IN_NEXTTOWARDL, BUILT_IN_POW10, + BUILT_IN_POW10F, BUILT_IN_POW10L, BUILT_IN_REMAINDER, + BUILT_IN_REMAINDERF, BUILT_IN_REMAINDERL, BUILT_IN_RINT, + BUILT_IN_RINTF, BUILT_IN_RINTL, BUILT_IN_SCALB, BUILT_IN_SCALBF, + BUILT_IN_SCALBL, BUILT_IN_SCALBLN, BUILT_IN_SCALBLNF, + BUILT_IN_SCALBLNL, BUILT_IN_SCALBN, BUILT_IN_SCALBNF, + BUILT_IN_SCALBNL, BUILT_IN_SINH, BUILT_IN_SINHF, BUILT_IN_SINHL, + BUILT_IN_TANH, BUILT_IN_TANHF, BUILT_IN_TANHL): New. + + * doc/extend.texi: Document new builtins. + +2003-08-28 Ulrich Weigand + + * config/s390/s390.c (legitmate_constant_p): Use LARL on + zSeries machines even in 31-bit addressing mode. + (legitimate_reload_constant_p): Likewise. + (legitimize_pic_address): Likewise. + (legitimize_tls_address): Likewise. + (s390_split_branches): Likewise. + (s390_dump_pool): Likewise. + (s390_mainpool_finish): Likewise. + (s390_chunkify_start): Likewise. + (s390_select_rtx_section): Likewise. + * config/s390/s390.md ("doloop_si"): Likewise. + ("pool_start_31", "pool_end_31"): Likewise. + ("pool_start_64", "pool_end_64"): Likewise. + ("main_base_31_small", "main_base_31_large"): Likewise. + ("main_base_64"): Likewise. + ("reload_base_31", "reload_base_64"): Likewise. + ("*movsi_larl"): New insn. + ("cjump", "icjump"): Use long branches on zSeries machines. + ("jump"): Likewise. + ("call"): Use BRASL on zSeries machines. + ("call_value", "call_value_tls"): Likewise. + ("brasl", "bras", "basr_64", "basr_31", "bas_64", "bas_31"): Remove + and replace by ... + ("*bras", "*brasl", "*basr") ... these new insns. + ("brasl_r", "bras_r", "basr_64_r", "basr_31_r", "bas_64_r", + "bas_31_r"): Remove and replace by ... + ("*bras_r", "*brasl_r", "*basr_r") ... these new insns. + ("brasl_tls", "bras_tls", "basr_64_tls", "basr_31_tls", + "bas_64_tls", "bas_31_tls"): Remove and replace by ... + ("*bras_tls", "*brasl_tls", "*basr_tls") ... these new insns. + ("*return_si", "*return_di"): Remove and replace by ... + ("*return"): ... this new insn. + ("rotlsi3"): Allow on zSeries machines. + + * config/s390/s390.c (legitimize_reload_constant_p): Use + LL/LH type instructions in z/Architecture mode. + * config/s390/s390.md ("*movsi_lli"): Likewise. + ("*andsi3_ni", "*andhi3_ni", "*andqi3_ni"): Likewise. + ("*iorsi3_ni", "*iorhi3_ni", "*iorqi3_ni"): Likewise. + ("*extendqisi2"): Use LB in z/Architecture mode. + ("*zero_extendqisi2_64", "*zero_extendqisi2_31"): Use LLGC in + z/Architecture mode. + ("zero_extendqihi2", "*zero_extendqihi2_64", "*zero_extendqihi2_31"): + Likewise. + + * config/s390/s390.md ("*tmdi_ext"): Allow in both 64-bit + and 31-bit mode. + ("ptr_extend"): Allow only in 64-bit mode. + +2003-08-27 Daniel Jacobowitz + + * gcc.c (STANDARD_EXEC_PREFIX, STANDARD_STARTFILE_PREFIX) + (TOOLDIR_BASE_PREFIX, STANDARD_BINDIR_PREFIX): Remove unnecessary + definitions. + (main): Only use standard_startfile_prefix if native. + * doc/tm.texi (STANDARD_STARTFILE_PREFIX): Update. + +2003-08-27 Per Bothner + + * cpperror.c (print_location): Don't check for !pfile->buffer. That + test fails following my 08-21 change, and it seems unnecessary anyway. + (cpp_error): Likewise. + +2003-08-27 Jason Merrill + + * real.c (do_multiply): Initialize with memset. + +2003-08-27 Zdenek Dvorak + + * gcov.c (typedef struct arc_info): New field cs_count. + (accumulate_line_counts): Find cycles correctly. + +2003-08-27 Ulrich Weigand + + * config/s390/s390.c (struct machine_function): Remove member + literal_pool_label. + (s390_optimize_prolog): Replace TEMP_REG argument with + TEMP_USED and BASE_USED. Do not check get_pool_size (). + (general_s_operand): Accept all immediates before reload if + ALLOW_IMMEDIATE. If not ALLOW_IMMEDIATE, reject literal pool + references. + (s390_output_symbolic_const): Remove UNSPEC_LTREL_OFFSET handling. + (find_constant_pool_ref): Ignore UNSPECV_POOL_ENTRY insns. + (s390_alloc_pool): New function. + (s390_new_pool): Call it. + (s390_dump_pool): Add REMOTE_LABEL argument. + (s390_chunkify_start): Add BASE_REG argument. Do not check + get_pool_size (). + (s390_chunkify_finish): Add BASE_REG argument. Adapt + s390_dump_pool call. + (s390_pool_count, s390_nr_constants): Remove. + (s390_output_constant_pool): Remove. + (s390_mainpool_start): New function. + (s390_mainpool_finish): New function. + (s390_mainpool_cancel): New function. + (s390_reorg): Implement main literal pool handling. + (s390_emit_prologue): Emit main_pool placeholder instead of + literal_pool_31 / literal_pool_64 insns. + * config/s390/s390.h (s390_pool_count, s390_nr_constants): Remove. + (ASM_OUTPUT_POOL_PROLOGUE, ASM_OUTPUT_SPECIAL_POOL_ENTRY): Remove. + * config/s390/s390.md (UNSPEC_MAIN_BASE): New symbolic constant. + ("main_base_31_small", "main_base_31_large"): New insns. + ("main_base_64", "main_pool"): New insns. + ("literal_pool_31", "literal_pool_64"): Remove. + +2003-08-27 Nathanael Nerode + + * fixinc/inclhack.def (ptx_netswap): New disabled fix, ported from + fixinc.ptx. + * fixinc/inclhack.def (undefine_null): Don't generate \r characters. + Prettify a little. + * fixinc/fixincl.x: Regenerate. + +2003-08-27 Richard Earnshaw + + * lib1funcs.asm (L_ieee754_sp): New. Include ieee754-sf.S. + (L_ieee754_dp): New. Include ieee754-df.S. + * arm/ieee754-sf.S: Rework to allow interworking, calling from Thumb, + and compilation in apcs-26 mode. + * arm/ieee754-df.S: Likewise. + * t-arm-elf (DPBIT, FPBIT, fp-bit.c dp-bit.c): Delete rules + (LIB1ASMFUNCS): Add _ieee754_sp and _ieee754_dp targets. + +2003-08-27 Nicolas Pitre + + * arm/ieee754-sf.S: New. + * arm/ieee754-df.S: New. + +2003-08-27 Jakub Jelinek + + * builtins.c (expand_builtin_expect_jump): Save pending_stack_adjust + and restore it if returning NULL. + +2003-08-27 Richard Sandiford + + * calls.c (initialize_argument_information): If an argument has no + stack space associated with it, and BLOCK_REG_PADDING is defined, + use it to decide at which end the argument should be padded. + * function.c (assign_parms): Allocate BLKmode stack slots. + * config/mips/mips-protos.h (mips_pad_arg_upward): Declare. + (mips_pad_reg_upward): Declare. + * config/mips/mips.h (PAD_VARARGS_DOWN): Use FUNCTION_ARG_PADDING. + (CUMULATIVE_ARGS): Remove num_adjusts and adjusts. + (FUNCTION_ARG_PADDING): Use mips_pad_arg_upward. + (BLOCK_REG_PADDING): Use mips_pad_reg_upward. + * config/mips/mips.c (struct mips_arg_info): Remove struct_p. + (mips_expand_call): Remove code for generating structure shifts. + (mips_arg_info): Don't set struct_p. Don't set fpr_p for non-float + types unless using the EABI. + (function_arg_advance): Don't generate shift instructions. + (function_arg): Don't return them. Don't short-circuit the + check for double structure chunks for DFmode arguments. + (mips_pad_arg_upward, mips_pad_reg_upward): New functions. + (mips_expand_prologue): Remove code to emit structure shifts. + * config/mips/irix6-libc-compat.c: Remove workarounds for buggy + structure passing (inet_ntoa, inet_lnaof, inet_netof). Update + comments to say that only structure returns are a problem. + +2003-08-26 Nathanael Nerode + + * fixinc/tests/base/string.h, fixinc/tests/base/sys/regset.h: + Fix to match produced versions. + * fixinc/inclhack.def (longlong_t): New disabled test, ported + from fixinc.svr4. + * fixinc/inclhack.def (ptx_pwd_h): New disabled fix, ported + from fixinc.ptx. + * fixinc/inclhack.def (ptx_sys_mc_param_h): New disabled fix, + ported from fixinc.ptx. + +2003-08-26 Per Bothner + + * cpplib.h (struct cpp_token): Change type of field line to fileline. + (cpp_error_with_line): Use fileline for appropriate parameter. + * cpphash.h (struct cpp_macro): Change type of field line to fileline. + (struct cpp_reader): Likewise for fields line and directive_line. + (_cpp_begin_message): Use fileline for appropriate parameter. + * cpperror.c (print_location, _cpp_begin_message, cpp_error_with_line, + cpp_error): Use fileline for appropriate parameters and variables. + (print_location): New local lin, since it is not a fileline. + +2003-08-26 Roger Sayle + + PR middle-end/12002 + * tree.h (SCALAR_FLOAT_TYPE_P, COMPLEX_FLOAT_TYPE_P): New macros. + (FLOAT_TYPE_P): Define in terms of these two new macros. + * fold-const.c (fold ): Don't convert x+x into x*2.0 + for complex floating point types. + +2003-08-26 Ulrich Weigand + + * config/s390/s390.c (emit_prologue): Don't check literal pool size. + * config/s390/s390.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Call + s390_output_pool_entry. + +2003-08-26 Nathanael Nerode + + * fixinc/inclhack.def (svr4_preproc_lint_on, + svr4_preproc_lint_off, svr4_preproc_machine): New disabled + fixes, ported from fixinc.svr4. + +2003-08-26 Mark Mitchell + + * doc/install.texi (Prerequisites): Mention GNU make requirement. + + * Makefile.in (AR_FOR_TARGET): Export it. + (AR_CREATE_FOR_TARGET): Likewise. + (AR_FLAGS_FOR_TARGET): Likewise. + (AR_EXTRACT_FOR_TARGET): Likewise. + (AWK): Likewise. + (BUILD_PREFIX): Likewise. + (BUILD_PREFIX_1): Likewise. + (DESTDIR): Likewise. + (GCC_FOR_TARGET): Likewise. + (INCLUDES): Likewise. + (INSTALL_DATA): Likewise. + (LIB1ASMSRC): Likewise. + (LIBGCC2_CFLAGS): Likewise. + (MACHMODE_H): Likewise. + (NM_FOR_TARGET): Likewise. + (RANLIB_FOR_TARGET): Likewise. + (libsubdir): Likewise. + (slibdir): Likewise. + (ORDINARY_FLAGS_TO_PASS): Remove stuff that we're + exporting. + (libgcc.a): Don't pass them here. + (stmp-multilib): Or here. + (install-libgcc): Or here. + (install-multilib): Or here. + (POSTSTAGE1_FLAGS_TO_PASS): Or here. + (stage1_build): Or here. + +2003-08-26 Andreas Krebbel + + * config/s390/s390.md ("*llgt_sisi", "*llgt_sisi_split", "*llgt_didi", + "*llgt_didi_split", "*llgt_sidi", "*llgt_sidi_split"): New insns. + +2003-08-26 Andreas Krebbel + + * config/s390/s390.md ("*fmadddf", "*fmsubdf", + "*fmaddsf", "*fmsubsf"): New insns. + +2003-08-26 Roger Sayle + + * fold-const.c (fold ): Optimize (C1/X)*C2 into + (C1*C2)/X when unsafe math optimizations are allowed. + (fold ): Optimize C1/(X*C2) into (C1/C2)/X with unsafe + math optimizations. Minor code clean-ups. Recursively call + fold when constructing sub-expressions. + +2003-08-26 Roger Sayle + + * builtins.c (fold_builtin_bitop): New function to perform constant + folding of ffs, clz, ctz, popcount and parity builtin functions + and their long and long long variants (such as ffsl and ffsll). + (fold_builtin): fold_builtin_bitop when appropriate. + * simplify-rtx.c (simplify_unary_operation): Honor both + CLZ_DEFINED_VALUE_AT_ZERO and CTZ_DEFINED_VALUE_AT_ZERO when + evaluating clz and ctz at compile-time, for operands wider + than HOST_WIDE_INT. + +2003-08-26 Nathan Sidwell + + * builtins.c (build_function_call_expr): Don't set + TREE_SIDE_EFFECTS here. + * expr.c (emit_block_move_via_libcall): Likewise. + (clear_storage_via_libcall): Likewise. + * tree.c (build): Set TREE_SIDE_EFFECTS for non-const, non-pure + CALL_EXPRs. + + * gcse.c (is_too_expensive): New function. + (gcse_main, delete_null_pointer_checks, bypass_jumps): Use it. + +2003-08-25 Zack Weinberg + + * config.gcc (hppa*-*-hpux11*, ia64*-*-hpux*): Remove + commented-out logic to use DCE threads (if present), add + support for POSIX threads. + * config/ia64/hpux.h: Define CPP_SPEC to set appropriate + #defines for -pthread. Add -lpthread to LIB_SPEC when + -pthread. In both cases take -mt as a synonym for -pthread + for acc compatibility. + Define GTHREAD_USE_WEAK to 0. + * config/pa/pa-hpux11.h: Likewise for CPP_SPEC and LIB_SPEC. + Remove old logic for DCE threads from LIB_SPEC. + * config/pa/pa64-hpux.h: Define GTHREAD_USE_WEAK to 0. + +2003-08-25 Roger Sayle + + * builtins.c (expand_builtin_mathfn): Rearrange so that we only + return 0 for invalid argument types. Instead drop through to a + call of expand_call at the bottom of function. If op is SQRT, + try attaching a SQRT rtx as the REQ_EQUAL note of the libcall. + +2003-08-25 Richard Henderson + + * config/ia64/ia64.c (ia64_expand_tls_address): Properly truncate + result when op0 is SImode. + +2003-08-25 Nathanael Nerode + + * fixinc/inclhack.def (svr4_sighandler_type): New fix, ported + from fixinc.svr4. + * fixinc/fixincl.x: Regenerate. + * fixinc/tests/base/sys/signal.h: Regenerate. + +2003-08-25 Ulrich Weigand + + * combine.c (simplify_comparison): Re-enable widening of comparisons + with non-paradoxical subregs of non-REG expressions. + +2003-08-25 Ulrich Weigand + + * combine.c (distribute_notes): Handle REG_ALWAYS_RETURN. + +2003-08-25 Ulrich Weigand + + * combine.c (combine_simplify_rtx): Fix RTL sharing bug. + +2003-08-25 Gabriel Dos Reis + + * pretty-print.h (pp_maybe_newline_and_indent): New macro. + * c-pretty-print.h (c_pretty_printer): Now typedef to the + structure. Be consistent with pretty-print.h abd cxx-pretty-print.h + (struct c_pretty_print_info): Document. Add new fields. + (pp_type_specifier_seq): Rename from pp_c_type_specifier. + (pp_direct_abstract_declarator): New macro. + (pp_ptr_operator): Likewise. + (pp_simple_type_specifier): Likewise. + (pp_expression): Likewise. + (pp_parameter_list): Rename from pp_parameter_declaration. + * c-pretty-print.c (pp_c_whitespace): Now a function. + (pp_c_left_paren): Likewise. + (pp_c_right_paren): Likewise. + (pp_c_dot): Likewise. + (pp_c_ampersand): Likewise. + (pp_c_arrow): Likewise. + (pp_c_semicolon): Likewise. + (pp_c_type_cast): New function. + (pp_c_space_for_pointer_operator): Likewise. + (pp_c_call_argument_list): Likewise. + (pp_c_cv_qualifier): Adjust prototype. + (pp_c_type_qualifier_list): Likewise. + (pp_c_pointer): Likewise. Handle REFERENCE_TYPE here. + (pp_c_type_specifier): Rename from pp_c_simple_type_specifier. + Adjust to follow standard grammar. + (pp_c_specifier_qualifier_list): Adjusr prototype. Handle + REFERENCE_TYPE. Tidy. + (pp_c_parameter_type_list): Adjust prototype. Tidy. + (pp_c_parameter_declaration): Remove. + (pp_c_abstract_declarator): Adjust prototype. + (pp_c_direct_abstract_declarator): Likewise. + (pp_c_type_id): Likewise. + (pp_c_storage_class_specifier): Likewise. + (pp_c_function_specifier): Likewise. + (pp_c_declaration_specifiers): Likewise. + (pp_c_direct_declarator): Likewise. + (pp_c_declarator): Likewise. + (pp_c_declarator): Likewise. + (pp_c_declaration): Likewise. + (pp_c_attributes): Likewise. Tidy. + (pp_c_function_definition): Adjust prototype. + (pp_c_char): Likewise. + (pp_c_string_literal): Likewise. + (pp_c_integer_constant): Likewise. + (pp_c_character_constant): Likewise. + (pp_c_bool_constant): Likewise. + (pp_c_enumeration_constant): Likewise. + (pp_c_floating_constant): Likewise. + (pp_c_constant): Likewise. + (pp_c_identifier): Likewise. + (pp_c_primary_expression): Likewise. Remove TARGET_EXPR case. Tidy. + (pp_c_initializer): Adjust prototype. + (pp_c_init_declarator): Likewise. + (pp_c_initializer_list): Likewise. + (pp_c_id_expression): Likewise. + (pp_c_postfix_expression): Likewise. + (pp_c_expression_list): Likewise. + (pp_c_unary_expression): Likewise. + (pp_c_cast_expression): Likewise. + (pp_c_multiplicative_expression): Likewise. + (pp_c_additive_expression): Likewise. + (pp_c_shift_expression): Likewise. + (pp_c_relational_expression): Likewise. + (pp_c_equality_expression): Likewise. + (pp_c_and_expression): Likewise. + (pp_c_exclusive_or_expression): Likewise. + (pp_c_inclusive_or_expression): Likewise. + (pp_c_logical_and_expression): Likewise. + (pp_c_logical_or_expression): Likewise. + (pp_c_conditional_expression): Likewise. + (pp_c_assignment_expression): Likewise. + (pp_c_expression): Likewise. Tidy. + (pp_c_statement): Likewise. Document. + (pp_c_pretty_printer_init): Adjust prototype. Tidy. + + * c-lang.c (c_initialize_diagnostics): Update. + * c-common.h (strip_pointer_operator): Declare. + * c-common.c (strip_pointer_operator): Define. + +2003-08-25 Mark Mitchell + + PR c++/8795 + * tree.h (build_method_type_directly): Declare. + * c-common.c (handle_vector_size_attributes): Handle METHOD_TYPEs. + (vector_size_helper): Likewise. + * tree.c (build_method_type_directly): New function. + (build_method_type): Use it. + +2003-08-24 Richard Henderson + + * config/i386.i386.c (ix86_return_in_memory): Reformat. Return true + for 16-byte vector modes if sse not enabled; warn for abi change. + (ix86_value_regno): Only return xmm0 for 16-byte vector types. + +2003-08-24 Kazu Hirata + + * rtlanal.c (may_trap_p): Simplify an integer comparison. + +2003-08-24 Nathanael Nerode + + * fixinc/inclhack.def (AAB_svr4_replace_byteorder): Enhance + comment. Enable for DYNIX/ptx systems (when they switch to + regular fixincludes). + * fixinc/fixincl.x: Regenerate. + +2003-08-23 Jason Eckhardt + + * config/i860/t-i860: New. + * config.gcc (i860-*-sysv4*): Add t-i860 to tmake_file. + +2003-08-23 Jakub Jelinek + + * c-decl.c (pushdecl): Only put decls which finish_struct will do + something about onto incomplete chain. + (finish_struct): If not removing type from incomplete + list, update prev. + +2003-08-20 Jan Hubicka + + PR target/11369 + * i386.c (ix86_expand_carry_flag_compare): Validate operand. + + PR target/11031 + * i386.c (const_0_to_3_operand, const_0_to_7_operand, + const_0_to_15_operand, const_0_to_255_operand): New predicates. + * i386.h (PREDICATE_CODES): Add these. + * i386.c (pinsrw and pextrw patterns): Use them. + + PR target/10984 + * i386.c (ix86_expand_binop_builtin): Behave sanely for VOIDmodes. + + PR target/8869 + * expr.c (convert_modes): Deal properly with integer to vector + constant conversion. + + PR target/8871 + * i386.md (zero_extendsidi2*): Add MMX and SSE alternatives. + +2003-08-23 Ulrich Weigand + + * config/s390/s390.h (LOAD_EXTEND_OP): Remove. + * config/s390/s390.md ("movhi"): New expander; old insn renamed to ... + ("*movhi"): ... this. + ("movqi", "*movqi"): Likewise. + ("movqi_64"): Remove. + ("*zero_extendhisi2_31"): Change predicate to s_operand. + +2003-08-23 Dale Johannesen + * calls.c (emit_library_call_value_1): Fix obvious errors in + arguments to emit_group_store. + +2003-08-23 Jason Eckhardt + + * calls.c (emit_library_call_value_1): Remove code related + to LIBGCC_NEEDS_DOUBLE. + * config/stormy16/stormy16.h: Remove mention of LIBGCC_NEEDS_DOUBLE. + * doc/tm.texi: Likewise. + * system.h: Poison the LIBGCC_NEEDS_DOUBLE macro. + +2003-08-23 Richard Sandiford + + * config/mips/linux64.h (STARTFILE_PREFIX_SPEC): Remove. + +2003-08-23 Richard Sandiford + + * config/mips/mips.c (mips_setup_incoming_varargs): Handle o32 and o64 + as well. Put memory references in the varargs alias set. + (mips_expand_prologue): Remove varargs handling from here. + +2003-08-23 Ulrich Weigand + + * config/s390/s390.c (s390_expand_movstr, s390_expand_clrstr, + s390_expand_cmpmem, s390_output_constant_pool, s390_build_va_list, + s390_function_profiler, s390_output_mi_thunk): Use ISO C syntax + for function pointer calls. + * config/s390/s390.md ("*negdi2_31"): Likewise. + +2003-08-23 Roger Sayle + + * combine.c (apply_distributive_law): Correct comment. + +2003-08-23 Jason Eckhardt + + * config/i860/i860.h: Remove comment mentioning LIBGCC_NEEDS_DOUBLE. + +2003-08-22 Jason Eckhardt + + * config/i860/i860.c (i860_build_va_list): Create the va_decl + declaration. Document the va_list structure. + (i860_va_start): Initialize the va_list structure. + (i860_va_arg): Rewrite completely. + * config/i860/i860.h (LIBGCC_NEEDS_DOUBLE): Don't define. + * config/i860/varargs.asm: Do not allocate or initialize + a va_list. Return the address of the register save area. + +2003-08-22 Kazu Hirata + + * config/iq2000/iq2000.c: Fix comment typos. + * config/iq2000/iq2000.md: Likewise. + +2003-08-22 Kazu Hirata + + * config/iq2000/iq2000.c: Follow spelling conventions. + * config/iq2000/iq2000.h: Likewise. + * config/mn10300/mn10300.c: Likewise. + +2003-08-22 Jason Eckhardt + + * config/i860/i860.c (output_move_double): Don't set latehalf + to zero for CONST_INT (since it could be, e.g., -1). + + * config/i860/i860.h (REMSI3_LIBCALL): Replace this macro... + (MODSI3_LIBCALL): ...with this one. + (UREMSI3_LIBCALL): Replace this macro... + (UMODSI3_LIBCALL): ...with this one. + +2003-08-22 Jason Eckhardt + + * config/i860/i860-protos.h (output_delay_insn): Remove prototype. + (output_delayed_branch): Remove prototype. + (single_insn_src_p): Remove prototype. + * config/i860/i860.c (single_insn_src_p): Remove function. + (output_delayed_branch): Remove function. + (output_delay_insn): Remove function. + (va_start): Remove unconditional test and dead code, re-format. + Fix coding style and spelling problems in various comments. + * config/i860/i860.md (UNSPECV_BLOCKAGE): Define constant... + (blockage pattern): ...and use it here. + (all define_peephole patterns related to delayed branches): Remove. + Fix coding style and spelling problems in various comments. + +2003-08-22 Jason Eckhardt + + * config/i860/i860.c: Replace all occurrences of 'GNU CC' with 'GCC'. + Remove all uses of the PARAMS macro. Remove superflous prototypes. + Convert all function definitions from traditional to ISO C90 syntax. + * config/i860/i860-protos.h: Replace all occurrences of 'GNU CC' + with 'GCC'. Remove all uses of the PARAMS macro. + * config/i860/i860.h: Replace all occurrences of 'GNU CC' with 'GCC'. + * config/i860/i860.md: Likewise. + * config/i860/sysv4.h: Likewise. + * config/i860/varargs.asm: Likewise. + +2003-08-22 Jason Eckhardt + + * config/i860/i860-protos.h (i860_va_start): Remove 'stdarg_p' + argument. + (tdesc_section): Add prototype. + Update copyright dates. + * config/i860/i860.c: Include coretypes.h, tm.h, and toplev.h. + (TARGET_ASM_FUNCTION_PROLOGUE): Move definition to end of file. + (TARGET_ASM_FUNCTION_EPILOGUE): Likewise. + (targetm): Likewise. + (i860_output_function_prologue): Substitute HOST_WIDE_INT_PRINT_DEC + for '%d' where necessary. + (i860_va_start): Remove 'stdarg_p' argument. Make conditional checks + on 'stdarg_p' unconditional. Divide current_function_args_info.ints + by UNITS_PER_WORD when referencing (likewise for .floats). + (I860_SVR4_VARARGS): Rename... + (I860_SVR4_VA_LIST): ...to this. + Call build() with 't' rather than 'field'. + (i860_rtx_costs): New function. + (TARGET_RTX_COSTS): Define. + (i860_internal_label): New function. + (TARGET_ASM_INTERNAL_LABEL): Define. + (i860_file_start): New function. + Update copyright dates. + * config/i860/i860.h (CPP_PREDEFINES): Remove. + (TARGET_CPU_CPP_BUILTINS): Define. + (EXPAND_BUILTIN_VA_START): Remove 'stdarg' argument. + (CONST_COSTS): Remove (and move code to i860_rtx_costs). + (ASM_FILE_START): Remove. + (ASM_FILE_START_1): Remove. + (ASM_GLOBALIZE_LABEL): Remove. + (ASM_OUTPUT_INTERNAL_LABEL): Remove. + (ASM_OUTPUT_CASE_LABEL): Replace call of ASM_OUTPUT_INTERNAL_LABEL + with targetm.asm_out.internal_label. + Update copyright dates. + * config/i860/sysv4.h (USER_LABEL_PREFIX): Define. + (CPP_PREDEFINES): Remove. + (TARGET_OS_CPP_BUILTINS): Define. + (GLOBAL_ASM_OP): Define. + (ASM_FILE_START): Remove. + (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Define. + (TARGET_ASM_FILE_START): Define. + Update copyright dates. + +2003-08-22 Jason Eckhardt + + * gcc/config.gcc (i860-*-sysv4*): Add target. + * config/i860/i860-protos.h: New. + * config/i860/i860.c: New. + * config/i860/i860.h: New. + * config/i860/i860.md: New. + * config/i860/sysv4.h: New. + * config/i860/varargs.asm: New. + * config/i860/x-sysv4: New. + +2003-08-22 Jason Eckhardt + + * config/pa/pa.c: Replace 'GNU CC' with 'GCC'. + Remove all uses of PARAMS macro. + Convert all function definitions to ISO C90 syntax. + * config/pa/elf.h: Replace 'GNU CC' with 'GCC'. + * config/pa/fptr.c: Likewise. + * config/pa/lib2funcs.asm: Likewise. + * config/pa/long_double.h: Likewise. + * config/pa/milli64.S: Likewise. + * config/pa/pa-64.h: Likewise. + * config/pa/pa-hpux.h: Likewise. + * config/pa/pa-hpux10.h: Likewise. + * config/pa/pa-hpux11.h: Likewise. + * config/pa/pa-linux.h: Likewise. + * config/pa/pa-modes.def: Likewise. + * config/pa/pa-osf.h: Likewise. + * config/pa/pa-pro-end.h: Likewise. + * config/pa/pa.md: Likewise. + * config/pa/pa32-linux.h: Likewise. + * config/pa/pa64-linux.h: Likewise. + * config/pa/pa64-hpux.h: Likewise. + * config/pa/pa64-regs.h: Likewise. + * config/pa/quadlib.c: Likewise. + * config/pa/rtems.h: Likewise. + * config/pa/pa-protos.h: Replace 'GNU CC' with 'GCC' and remove + all uses of the PARAMS macro. + * config/pa/pa.h: Likewise. + * config/pa/som.h: Likewise. + + * config/iq2000/iq2000.c: Replace 'GNU CC' with 'GCC'. + Remove all uses of PARAMS macro. + Convert all function definitions to ISO C90 syntax. + * config/iq2000-protos.h: Replace 'GNU CC' with 'GCC'. + Remove all uses of PARAMS macro. + * config/iq2000.h: Remove all uses of PARAMS macro. + * config/iq2000/iq2000.md: Replace 'GNU CC' with 'GCC'. + +2003-08-23 Ulrich Weigand + + * config/s390/s390-protos.h (s390_output_pool_entry): Declare. + * config/s390/s390.c (gen_consttable): Remove. + (s390_dump_pool): Use UNSPECV_POOL_ENTRY for pool entry insns. + (s390_output_pool_entry): New function. + * config/s390/s390.md (UNSPECV_POOL_QI, UNSPECV_POOL_HI, + UNSPECV_POOL_SI, UNSPECV_POOL_DI, UNSPECV_POOL_TI, + UNSPECV_POOL_SF, UNSPECV_POOL_DF): Remove, replace by ... + (UNSPECV_POOL_ENTRY): ... this new constant. + ("consttable_qi", "consttable_hi", "consttable_si", "consttable_di", + "consttable_ti", "consttable_sf", "consttable_df"): Remove ... + ("*pool_entry"): ... and replace by this new insn. + ("literal_pool_31"): Do not emit anchor label if pool empty. + + * config/s390/s390.c (struct machine_function): Add save_return_addr_p. + (s390_optimize_prolog): Save RETURN_REGNUM if save_return_addr_p. + (s390_fixup_clobbered_return_reg): Remove. + (s390_reorg): Don't call s390_fixup_clobbered_return_reg. + (s390_return_addr_rtx): Always retrieve return address from save area + slot. Use save_return_addr_p to force slot to be filled. + (s390_emit_prologue): Remove has_hard_reg_initial_val test. + +2003-08-22 Chris Demetriou + + * config/mips/mips.h (MASK_FIX_SB1, TARGET_FIX_SB1): New defines. + (TARGET_SWITCHES): Add -mfix-sb1 and -mno-fix-sb1. + * config/mips/mips.md (divdf3, divsf3, sqrtdf2, sqrtsf2): Work + around SB-1 errata if TARGET_FIX_SB1 is set. + (recip.d insn, recip.s insn, rsqrt.d insn, rsqrt.s insn): Likewise. + * doc/invoke.texi: Document MIPS -mfix-sb1 and -mno-fix-sb1. + +2003-08-22 Roger Sayle + + * hashtable.c (ht_expand): Avoid calculating rehash for the common + case that the first probe hits an empty hash table slot. + +2003-08-22 Mark Mitchell + + * config/ia64/hpux.h (SUPPORTS_INIT_PRIORITY): Define to 0. + +2003-08-22 Mark Mitchell + + * config/ia64/ia64.md (*ptr_extend_plus_1): Rename to ... + (ptr_extend_plus_imm): ... this. + * config/ia64/ia64.c (addp4_optimize_ok): Do not disable addp4 + optimization in C++. + (ia64_output_mi_thunk): Support ILP32 mode. + +2003-08-22 Bernardo Innocenti + + * gcc/config/m68k/m68k.c (m68k_coff_asm_named_section): remove unused + function. + * gcc/config/m68k/m68k.c (-m68k_svr3_asm_out_constructor): likewise. + +2003-08-22 Kazu Hirata + + * config/i386/i386.c (const_int_1_operand): Simplify an + integer comparison. + +2003-08-22 Alan Modra + + * config/fp-bit.c: Specify config/ dir for include of fp-bit.h. + * config/rs6000/ppc64-fp.c: Likewise. + +2003-08-22 Kazu Hirata + + * cfgcleanup.c: Fix comment typos. + * emit-rtl.c: Likewise. + * optabs.c: Likewise. + * ra-build.c: Likewise. + * rtlanal.c: Likewise. + * tree.h: Likewise. + +2003-08-22 Kazu Hirata + + * c-decl.c: Fix comment formatting. + * cfgrtl.c: Likewise. + * combine.c: Likewise. + * convert.c: Likewise. + * dominance.c: Likewise. + * dwarf2out.c: Likewise. + * dwarfout.c: Likewise. + * expmed.c: Likewise. + * fold-const.c: Likewise. + * gcov.c: Likewise. + * genattrtab.c: Likewise. + * ggc-common.c: Likewise. + * mips-tfile.c: Likewise. + * regmove.c: Likewise. + +2003-08-22 Kazu Hirata + + * builtin-attrs.def: Fix comment formatting. + * c-pretty-print.c: Likewise. + * diagnostic.h: Likewise. + * langhooks.h: Likewise. + * recog.c: Likewise. + * simplify-rtx.c: Likewise. + * tree.def: Likewise. + +2003-08-22 Bernardo Innocenti + + * config/m68k/m68k-protos.h: Convert to ISO C90. + * config/m68k/m68k.c: Likewise. + +2003-08-21 Bernardo Innocenti + Paul Dale + Peter Barada + + * config/m68k/m68k.c (m68k_rtx_costs): Adjust mul/div costs for + ColdFire cores. + +2003-08-21 Zack Weinberg + + * Makefile.in (INCLUDES): Remove -I$(srcdir)/config. + * config.gcc (*-*-openbsd): Don't set tm_file. + (alpha*-*-openbsd, arm*-*-coff*, arm*-wince-pe*, + arm-*-pe*, avr-*-*, h8300-*-rtems*, h8300-*-elf*, + h8300-*-*, hppa*-*-osf*, hppa*-*-bsd*, hppa*-*-hpux*, + i370-*-opened*, i370-*-mvs*, i370-*-linux*, i?86-*-openbsd*, + i?86-*-lynxos, i?86-*-nto-qnx*, iq2000*-*-elf*, m68000-hp-hpux*, + m68k-hp-hpux*, m68k-*-aout*, m68k-*-coff*, m68020-*-elf*, + m68k-*-elf*, m68k*-*-netbsd*, m68k*-*-openbsd*, m68k-*-sysv4*, + m68k-*-linux*, m68k-*-rtems*, mcore-*-pe*, mips*-*-netbsd*, + mips*-*-openbsd*, rs6000-*-lynxos*, sh*-*-elf*, sh*-*-ka, + sh-*-rtemself, sparc-*-openbsd*, strongarm-*-pe, vax-*-openbsd*, + xscale-*-coff): Use explicit and complete lists of target headers + to include. Move definitions to tm_defines where appropriate. + (hppa*-*-openbsd*, powerpc-*-openbsd*): Comment out stanza for + not-yet-contributed configuration. + + * config/lynx.h, config/alpha/openbsd.h, config/arm/coff.h + * config/avr/avr.h, config/frv/frv.h, config/h8300/elf.h + * config/i370/linux.h, config/i370/mvs.h, config/i370/oe.h + * config/i386/nto.h, config/iq2000/iq2000.h, + * config/m68k/coff.h, config/m68k/hp310.h, config/m68k/hp320.h + * config/m68k/linux.h, config/m68k/m68k-aout.h + * config/m68k/m68k-none.h, config/m68k/m68kv4.h + * config/m68k/netbsd.h, config/m68k/openbsd.h + * config/m68k/sgs.h, config/mcore/mcore-pe.h, + * config/mips/netbsd.h, config/mips/openbsd.h, config/pa/pa.h, + * config/rs6000/lynx.h, config/sh/embed-elf.h, config/sparc/openbsd.h: + Remove includes of other target config headers, and + definitions of macros moved to tm_defines lists. Add #undefs + where now necessary to prevent redefinition warnings. + + * config/h8300/coff.h: New file split out of... + * config/h8300/elf.h: ...here. + * config/m68k/hp320base.h: New file split out of... + * config/m68k/hp320.h: ...here. + * config/rs6000/lynxbase.h: New file split out of... + * config/rs6000/lynx.h: ...here. + + * config/m68k/hp310g.h, config/m68k/hp320g.h, config/m68k/hpux7.h + * config/m68k/m68k-coff.h, config/mips/openbsd-be.h: Delete file. + + * config/sol2.h: Remove #if 0-ed #include of sys/mman.h. + * config/m68k/m68kelf.h: Remove commented out #include of m68k/sgs.h. + * config/mcore/mcore.h: Don't include hwint.h nor machmode.h. + Remove unnecessary #ifndef. + * config/s390/s390.h: Prefix #include of s390/fixdfdi.h + [under IN_LIBGCC2] with config/. + +2003-08-21 Per Bothner + + * cppfiles.c (stack_file): Correctly pass return_at_eof parameter + to cpp_push_buffer. + * cpplex.c (_cpp_get_fresh_line): Don't buffer->prev - handled + by return_at_eof check. Always call _cpp_pop_buffer at end. + +2003-08-21 Kazu Hirata + + PR target/11805 + * config/h8300/h8300.md (two anonymous patterns): Remove. + +2003-08-21 Richard Sandiford + + * config/mips/mips.h (MUST_PASS_IN_STACK): Remove BLKmode clause. + * config/mips/mips.c (function_arg_pass_by_reference): Never return + true for n32 & n64. + +2003-08-21 Josef Zlomek + + * fold-const.c (fold): Fix bug in (A & C) == D where D & ~C != 0 + and similarly in (A | C) == D where C & ~D != 0. + +2003-08-20 Geoffrey Keating + + PR 8180 + * configure.in: When testing with_libs and with_headers, treat + 'no' as unset. Based on a patch by Dan Kegel . + * configure: Regenerate. + +2003-08-20 Peter Barada + + * longlong.h (umul_ppmm): Add ColdFire support. + +2003-08-20 Peter Barada + Bernardo Innocenti + + * config/m68k/m68k-none.h: Introduce new ColdFire archs. + * config/m68k/m68k.h: Likewise. + * config/m68k/lb1sf68.asm: Rename __mcf5200__ to __mcoldfire__. + * config/m68k/coff.h: Rename TARGET_5200 to TARGET_COLDFIRE. + * config/m68k/linux.h: Likewise. + * config/m68k/m68k.c: Likewise. + * config/m68k/m68k.md: Likewise. + * config/m68k/m68kelf.h: Likewise. + * config/m68k/netbsd-elf.h: Likewise. + * config/m68k/t-m68kelf: Add multilib targets for new ColdFire archs. + +2003-08-20 Bernardo Innocenti + + * config/m68k/m68k.c: Strip away code depending on NO_ADDSUB_Q definition. + * config/m68k/m68k.md: Likewise. + +2003-08-20 Mark Mitchell + + PR java/11996 + Revert this change: + 2003-08-19 Mark Mitchell + * c-common.c (c_common_signed_or_unsigned_type): Correctly handle + types with precisions other than those given by native machine + modes. + +2003-08-20 Gunther Nikl + + * config/m68k/m68k.md (anonymous define_insn): remove obsolete code + selected by FSGLMUL_USE_S and FSGLDIV_USE_S + * config/m68k/m68k.c (output_move_himode): remove SGS_NO_LI check + * config/m68k/m68k.md (anonymous define_insn): Likewise + * config/m68k/m68k.md (anonymous define_insn): remove ISI_OV check + * config/m68k/m68k.c (standard_68881_constant_p): remove obsolete + code selected by NO_ASM_FMOVECR + +2003-08-20 Gunther Nikl + + * config/m68k/m68k.c (output_move_const_into_data_reg, + output_move_himode): unify MOTOROLA/MIT handling of moveq + * config/m68k/m68k.md (movsi_const0, anonymous define_insn): + Likewise + +2003-08-20 Gunther Nikl + + * config/m68k/m68k.c (m68k_output_function_prologue): use %U in + label name + * config/m68k/m68k.c (m68k_output_function_epilogue): replace + HOST_WIDE_INT_PRINT_DEC with %wd + +2003-08-20 Loren James Rittle + + * config/i386/freebsd.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Handle + redefine warning. + +2003-08-20 Roger Sayle + + PR middle-end/11984 + * fold-const.c (fold ): Check for integer constant + operands before calling tree_int_cst_lt when performing associative + transformations. + +2003-08-20 Jason Merrill + + * tree.h (IS_EXPR_CODE_CLASS): Also include 'r' and 's'. + (EXPR_CHECK): Don't check for 'r' or 's' if we're + checking IS_EXPR_CODE_CLASS. + * calls.c (calls_function_1): Likewise. + * fold-const.c (fold): Likewise. + * tree.c (iterative_hash_expr): Likewise. + * tree-inline.c (walk_tree, copy_tree_r): Likewise. + +2003-08-20 Gunther Nikl + + * config/m68k/m68k.c (m68k_output_mi_thunk): delete obsolete code + depending on MOTOROLA_BSR + * config/m68k/m68k.md (anonymous define_insn): Likewise + +2003-08-20 Jason Merrill + + * builtins.c (expand_builtin_mathfn): Use get_callee_fndecl. + (expand_builtin_mathfn2, expand_builtin, builtin_mathfn_code, + fold_trunc_transparent_mathfn, fold_builtin): Likewise. + * dojump.c (do_jump): Likewise. + * fold-const.c (operand_equal_p, fold): Likewise. + (tree_expr_nonnegative_p): Likewise. + + * stor-layout.c (do_type_align): Only copy DECL_USER_ALIGN from + TYPE_USER_ALIGN for FIELD_DECLs. + + * attribs.c (decl_attributes): Rebuild the function pointer type after + changing the target type. + * tree.c (get_qualified_type): Also check that the attributes match. + +2003-08-19 Matt Kraai + + * Makefile.in (STAGESTUFF): Move cc1obj$(exeext) from here ... + * objc/config-lang.in (stagestuff): ... to here. + +2003-08-19 Mark Mitchell + + PR c++/11946 + * convert.c (convert_to_integer): Use CONVERT_EXPR (instead of + NOP_EXPR) when necessary. + * c-common.c (c_common_signed_or_unsigned_type): Correctly handle + types with precisions other than those given by native machine + modes. + +2003-08-19 Geoffrey Keating + + * cpppch.c (cpp_valid_state): Re-add warning about PCH not used + because some macro is defined. + + * config/darwin.h (LINK_COMMAND_SPEC): Add -arch and -arch_only + options. + * config/i386/darwin.h (ASM_SPEC): New. + (SUBTARGET_EXTRA_SPECS): New. + * config/rs6000/darwin.h (ASM_SPEC): New. + (SUBTARGET_EXTRA_SPECS): New. + * configure.in: Don't set CROSS or SYSTEM_HEADER_DIR when building + a cross-compiler between two different processors on Darwin. + * configure: Regenerate. + +2003-08-19 Kazu Hirata + + * builtins.c: Fix comment typos. + * c-common.c: Likewise. + * c-decl.c: Likewise. + * c-pretty-print.c: Likewise. + * cfgbuild.c: Likewise. + * cfglayout.c: Likewise. + * cfgloopanal.c: Likewise. + * cgraphunit.c: Likewise. + * cppfiles.c: Likewise. + * dwarfout.c: Likewise. + * expr.c: Likewise. + * fold-const.c: Likewise. + * gcse.c: Likewise. + * ggc-page.c: Likewise. + * haifa-sched.c: Likewise. + * pretty-print.c: Likewise. + * tree.c: Likewise. + * tree.h: Likewise. + * value-prof.c: Likewise. + +2003-08-19 Kazu Hirata + + * c-decl.c: Follow spelling conventions. + * cppfiles.c: Likewise. + +2003-08-19 Kazu Hirata + + * c-common.c: Fix comment formatting. + * c-common.h: Likewise. + * c-decl.c: Likewise. + * cppinit.c: Likewise. + * cpplib.h: Likewise. + * emit-rtl.c: Likewise. + * input.h: Likewise. + * line-map.h: Likewise. + * opts.c: Likewise. + * opts.h: Likewise. + * simplify-rtx.c: Likewise. + +2003-08-19 Daniel Jacobowitz + + * unwind-c.c: Add libgcc-style exception. + * unwind-dw2.c: Likewise. + * unwind-pe.h: Likewise. + * unwind-sjlj.c: Likewise. + * unwind.inc: Likewise. + +2003-08-19 Andrew Pinski + + PR c/5582 PR c++/10538 + * langhooks-def.h (lhd_decl_uninit): Declare. + (LANG_HOOKS_DECL_UNINIT): New macro. + (LANG_HOOKS_INITIALIZER): Adjust. + * langhooks.h (struct lang_hooks): Add new field + decl_uninit. + * langhooks.c (lhd_decl_uninit): Define. + * c-common.c (c_decl_uninit_1): New function. + (c_decl_uninit): New function. + (warn_init_self): Define. + * c-common.h (c_decl_uninit): Declare. + (warn_init_self): Declare. + * c.opt: Introduce -Winit-self. + * c-opts.c (c_common_handle_options): Set warn_init_self. + * c-lang.c (LANG_HOOKS_DECL_UNINIT): Define. + * objc/objc-lang.c (LANG_HOOKS_DECL_UNINIT): Define. + * function.c (uninitialized_vars_warning): Call the language hook. + * doc/invoke.texi: Document -Winit-self. + +2003-08-19 Chris Demetriou + + * config/mips/mips.md: Adjust SI-mode "trap_if" instruction + to use better predicates and constraints. Define new + instruction to handle "trap_if" with DI-mode arguments. + (conditional_trap): FAIL if trap code is not 0. + +2003-08-19 Andrew Pinski + + * config/i386/i386.c (legitimate_pic_address_disp_p): Change the + strstr with $pb to a strcompare with "" + (ix86_output_addr_diff_elt): Output the real pic base. + +2003-08-19 Gabriel Dos Reis + + * langhooks-def.h (LANG_HOOKS_INITIALIZE_DIAGNOSTICS): Fix spelling. + (LANG_HOOKS_INITIALIZER): Correct. + * c-lang.c: Likewise. + +2003-08-19 Jan Hubicka + + * cgraph.c (cgraph_mark_needed_node): Call notice_global_symbol. + (cgraph_varpool_mark_needed_node): Likewise. + * cgraph.h (notice_global_symbol): Declare + * varasm.c (notice_global_symbol): Break out from ... + (assemble_start_function): ... here; update for variables. + (assemble_variable): Use notice_global_symbol. + +2003-08-19 Richard Sandiford + + * config/mips/mips.c (mips_va_arg): If EABI_FLOAT_VARARGS_P, + expect SFmode and DFmode arguments to be passed in FPRs, + regardless of the underlying type. + +2003-08-19 Richard Sandiford + + PR target/11924 + * config/mips/mips.c (INTERNAL_SYMBOL_P): New macro. + (mips_classify_symbol, m16_usym8_4, m16_usym5_4): Use it. + +2003-08-18 Matt Kraai + + PR c/11207 + * c-typeck.c (set_init_index): Check for negative index. + +2003-08-18 Bob Wilson + + * config/xtensa/crti.asm (_init, _fini): Add alternate code for new + call0 ABI. + * config/xtensa/crtn.asm (_init, _fini): Likewise. + * config/xtensa/lib1funcs.asm (__mulsi3, __udivsi3, __divsi3, + __umodsi3, __modsi3): Likewise. + * config/xtensa/t-xtensa (crti.o, crtn.o): Add $(GCC_CFLAGS) and + $(INCLUDES). + +2003-08-18 Aldy Hernandez + + * config/rs6000/spe.md ("*nabssf2_gpr"): New. + +2003-08-18 Richard Sandiford + + * config/mips/mips.md: Quote C code in braces. Remove use of + fake const0_rtx operands. Remove double backslashes. Use \;. + Remove workarounds for bogus warnings. + +2003-08-18 Richard Sandiford + + * config/mips/mips.md (muldf3, mulsf3): Don't call a gen_* function. + (muldf3_internal, muldf3_r4300): Select based on TARGET_4300_MUL_FIX + rather than TARGET_MIPS4300. + (mulsf3_internal, mulsf3_r4300): Likewise. + +2003-08-18 Richard Sandiford + + * config/mips/mips.md: Renumber unspecs. Clean up comments. + +2003-08-17 Roger Sayle + + * simplify-rtx.c (associative_constant_p): New function to test + whether an RTX expression is an immediate constant. + (simplify_associative_operation): New function to perform some + reassociation optimizations of associative binary expressions. + (simplify_binary_operation): Use simplify_associative_operation + to simplify PLUS, MULT, AND, IOR, XOR, SMIN, SMAX, UMIN and UMAX. + Floating point expressions are only reassociated when unsafe + math optimizations are permitted. + +2003-08-17 Andreas Jaeger + + * config/alpha/alpha.md: Remove usage of PARAMS. + + * config/i386/cygwin.h: Convert K&R prototypes to ISO C90. + * config/i386/i386-interix.h: Likewise. + * config/i386/winnt.c: Likewise. + * config/i386/cygming.h: Likewise. + * config/i386/cygwin2.c: Likewise. + * config/darwin.c: Likewise. + * config/darwin-c.c: Likewise. + * config/darwin-protos.h: Likewise. + * config/darwin.h: Likewise. + * config/s390/s390-protos.h: Likewise. + * config/s390/s390.c: Likewise. + * config/ia64/ia64.c: Likewse + * config/ia64/ia64-protos.h: Likewise. + * config/ia64/ia64-c.c: Likewise. + +2003-08-16 Kaveh R. Ghazi + + * config/sparc/sparc.c: Convert to ISO C. + + * config/sparc/sparc-protos.h: Don't use the PARAMS macro. + * config/sparc/sparc.c: Likewise. + +2003-08-16 Nathan Sidwell + + PR c++/11512 + * stmt.c (expand_expr_stmt_value): Don't warn about any void + typed expression. + +2003-08-16 Jan Hubicka + + * i386.c (ix86_fntype_regparm): Rename from ... + (ix86_function_regparm): ... this one; add fastcall and local + functions. + (ix86_function_ok_for_sibcall): Update. + (ix86_return_pops_args): Likewise. + (init_cumulative_args): Likewise. + (x86_can_output_mi_thunk): Likewise. + (function_arg): Fix formating. + (x86_this_parameter): Fix fastcall. + (x86_output_mi_thunk): Likewise. + + * cgraph.c (cgraph_mark_needed_node): Do not mark functions without + body as reachable; mark nested functions as needed too. + (dump_cgraph): Do not output global.calls. + * cgraph.h (cgraph_global_info): Kill. + * cgraphunit.c (cgraph_finalize_function): Enqueue needed functions. + (record_call_1): Speedup. + (cgraph_analyze_function): Break out from ...; compute inlining + parameters. + (cgraph_finalize_compilation_unit): ... here. + (cgraph_mark_inline): Kill computation of calls. + (cgraph_decide_inlining): Do not compute most of initial values. + +2003-08-14 Roger Sayle + + * fold-const.c (negate_expr_p): MULT_EXPRs and RDIV_EXPRs are easy + to negate if either operand is easy to negate, if we don't care + about sign-dependent rounding. + (negate_expr): Make the logic to negate a REAL_CST explicit. + Attempt to negate a MULT_EXPR or RDIV_EXPR by negating an operand + that's easy to negate, if we don't honor sign-dependent rounding. + (fold ): Optimize -A * B as A * -B if B is easy to + negate, and the symmetric A * -B as -A * B if A is easy to negate. + (fold ): Likewise, optimize -A/B and C/-D as A/-B and + -C/D if B and C are cheap to negate. Add an explicit rule to + optimize X/-1.0 as -X when we don't care about signaling NaNs. + +2003-08-14 Zack Weinberg + + * Makefile.in (tm_file): Rename tm_include_list. + (tm_p_file): Rename tm_p_include_list. + (build_xm_file): Rename build_xm_include_list. + (host_xm_file): Rename host_xm_include_list. + (xm_file): Rename xm_include_list. + (xm_file_list): Add to be substituted. + (cs-config.h, cs-bconfig.h, cs-tconfig.h, cs-tm.h, cs-tm_p.h): + Update to match. + (bt-load.o): Add missing dependency on $(TM_H). + * configure.in: Prefix value of EXTRA_MODES_FILE with config/. + For each of tm_file, tm_p_file, xm_file, host_xm_file, and + build_xm_file, generate both *_file_list and *_include_list + values from it. (xm_file_list was formerly not being generated.) + In *_include_list, prefix the names of all headers found in + $(srcdir)/config with config/. In each loop, consider only + the special case files that can actually appear in that list. + AC_SUBST all *_file_list and all *_include_list variables; do + not AC_SUBST the plain *_file variables. + * configure: Regenerate. + +2003-08-14 Zdenek Dvorak + + * cfg.c (dump_edge_info): Add name of loop_exit edge flag. + +2003-08-14 John David Anglin + + * pa.c (pa_adjust_insn_length): Delete adjustment for delay slot in + direct calls. + (attr_length_call): Include it here. Improve length estimate for + local calls. + (output_call): Use targetm.binds_local_p. + +2003-08-14 Kaveh R. Ghazi + + * builtins.c (CASE_MATHFN): New helper macro. + (mathfn_built_in): Simplify and sort. + + * protoize.c (substr): Delete, callers changed to `strstr'. + +2003-08-13 Zack Weinberg + + * config.gcc (iq2000*-*-elf*): Don't set xm_file. + * config/iq2000/xm-iq2000.h: Delete file. + +2003-08-13 Geoffrey Keating + + * gengtype.c (walk_type): Process a subobject before processing + the pointer that points to the subobject. + +2003-08-13 Per Bothner + + * regclass.c (init_reg_modes): Make non-static. + Rename to init_reg_modes_once per new naming convention. + (init_regs): Don't call init_reg_modes here. + * emit-rtl.c (init_emit_once): Call init_reg_modes_once here instead. + * rtl.h (init_reg_modes_once): New declaration. + * toplev.c (backend_init): Call init_regs after init_emit_once. + +2003-08-13 Kaz Kojima + + * config/sh/linux.h (DBX_REGISTER_NUMBER): Define so to map a + special index for MD_FALLBACK_FRAME_STATE_FOR to itself. + +2003-08-13 J"orn Rennecke + + * sh.c (sh_get_pr_initial_val): Always wrap in unspec for TARGET_SH1. + * sh.md (load_ra): Change insn predicate to TARGET_SH1. + +2003-08-13 Dale Johannesen + + * config/rs6000/rs6000.md (ctrsi, ctrdi): Reenable + handling of decrement-and-branch farther than 32 bits. + +2003-08-12 Kelley Cook + + * configure.in (make_compare_target): Move test to ... + * aclocal.m4 (gcc_AC_PROG_CMP_IGNORE_INITIAL): here. + * configure: Regenerate. + +2003-08-12 Richard Sandiford + + * config/mips/iris6.h: Convert to C90 prototypes. + * config/mips/irix6-libc-compat.c: Likewise. + * config/mips/mips-protos.h: Likewise. + * config/mips/mips.c: Likewise. + +2003-08-12 Nathanael Nerode + + fixinc/inclhack.def (svr4_krnl): Rename from svr4_kernel. Enable + for selected machines. Comment heavily. + fixinc/fixincl.x: Rebuild. + fixinc/tests/base/fs/rfs/rf_cache.h: New file. + +2003-08-12 Richard Sandiford + + * config/mips/mips.h: Tweak various comments. + * config/mips/mips.c: Likewise. + +2003-08-11 James E Wilson + + PR optimization/11319 + PR target/10021 + * alias.c (find_base_value, case REG): Return 0 not src if no base + found. + +2003-08-11 Kaveh R. Ghazi + + * gcse.c (gmalloc): Fix last change. + +2003-08-11 Roger Sayle + + * simplify-rtx.c (simplify_binary_operation): Replace calls to + gen_rtx_NEG and gen_rtx_NOT with calls to simplify_gen_unary, + and calls to gen_rtx_PLUS, gen_rtx_MULT, gen_rtx_LSHIFTRT, + gen_rtx_ASHIFT and gen_rtx_AND with calls to simplify_gen_binary. + +2003-08-11 Roger Sayle + + * expr.c (expand_expr): If an ABS_EXPR has a complex type, abort. + * c-typeck.c (build_unary_op): COMPLEX_TYPE is not a valid + typecode for an ABS_EXPR. + + * doc/c-tree.texi: Document ABS_EXPR. + +2003-08-11 Roger Sayle + + * fold-const.c (fold): Optimize any associative floating point + operator with -funsafe-math-optimizations, not just MULT_EXPR. + +2003-08-11 Kaz Kojima + + * config/sh/lib1funcs.asm (__udivdi3): Add .type and .size + information in SHmedia case too. + (__divdi3, __umoddi3, __moddi3, __init_trampoline, __ic_invalidate): + Likewise. + (__set_fpscr): Use an access via GOT for PIC case. + +2003-08-11 Kelley Cook + + * configure.in (intermodule): Make switch test more portable. + * configure: Regenerate. + +2003-08-11 Kelley Cook + + * Makefile.in (cleanstrap): Pass BOOT_CFLAGS to bootstrap. + (restrap): Likewise. + +2003-08-11 Kaveh R. Ghazi + + * gcse.c (gmalloc): Argument is a size_t. Add ATTRIBUTE_MALLOC. + (grealloc): Size argument is a size_t. + (gcalloc): New function. Use throughout in lieu of + gmalloc/memset. + + * config/avr/avr.c (avr_init_once): Use xcalloc in lieu of + xmalloc/memset. + * config/ia64/ia64.c (ia64_reorg): Likewise. + * conflict.c (conflict_graph_new): Likewise. + * fixinc/fixincl.c (run_compiles): Likewise. + * genattrtab.c (optimize_attrs): Likewise. + * genrecog.c (new_decision): Likewise. + * haifa-sched.c (schedule_block): Likewise. + * hashtable.c (ht_create): Likewise. + +2003-08-11 Bob Wilson + + * config/xtensa/lib2funcs.S: Fix whitespace. + * config/xtensa/xtensa.md (all insns and expanders): Use brace block + syntax where appropriate. Remove unnecessary backslash escapes. + Reformat comments and fix some code formatting. + (extendqisi2): Rearrange conditional. + (*btrue, *bfalse, *ubtrue, *ubfalse, *bittrue, *bitfalse, *masktrue, + *maskfalse, movsicc_internal0, movsfcc_internal0): Call abort instead + of fatal_insn. + +2003-08-11 Richard Sandiford + + * config/mips/mips.c: Various formatting fixes. + (override_options): Resync -mtune handling with gas. + (mips_issue_rate): Rearrange like mips_use_dfa_pipeline_interface. + * config/mips/mips.h: More formatting fixes. + (mips_abi): Move declaration. + * config/mips/mips.md (exception_receiver): Add mode to + unspec_volatile. + +2003-08-11 Aldy Hernandez + + * config/rs6000/rs6000.c (spe_init_builtins): Handle evsplati and + evsplatfi here. + (bdesc_1arg): Remove evsplati and evsplatfi. + +2003-08-11 J"orn Rennecke + + * dwarf2asm.c (dw2_output_indirect_constant_1): Take user_label_prefix + into account. + +2003-08-10 Kaveh R. Ghazi + + * builtins.c (expand_builtin_strcat): Optimize constant strings. + +2003-08-10 Gabriel Dos Reis + + * pretty-print.c (pp_base_indent): Rename from pp_indent. + * c-pretty-print.h (pp_c_pretty_print_flag)s: New datatype. + (struct c_pretty_print_info): Add more fields. + (pp_c_left_paren): Move to c-pretty-print.c. + (pp_c_right_paren): Likewise. + (pp_c_left_brace): Likewise. + (pp_c_right_brace): Likewise. + (pp_c_left_bracket): Likewise. + (pp_c_right_bracket): Likewise. + (pp_c_declarator): Declare. + (pp_c_direct_declarator): Likewise. + (pp_c_specifier_qualifier_list): Likewise. + (pp_c_type_id): Likewise. + * c-pretty-print.c (pp_c_cv_qualifier): Change prootype. Rework.. + (pp_c_type_qualifier_list): New. + (pp_c_pointer): Likewise. + (pp_c_parameter_type_list): Likewise. + (pp_c_function_definition): Likewise. + (pp_c_id_expression): Likewise. + (pp_c_simple_type_specifier): Tidy. + (pp_c_unary_expression): Likewise. + (pp_c_expression): Likewise. + (pp_c_pretty_printer_init): Likewise. + (pp_c_specifier_qualifier_list): Rework.. + (pp_c_abstract_declarator): Likewise. + (pp_c_postfix_expression): Likewise. + (pp_c_primary_expression): Likewise. + (pp_c_cast_expression): Likewise. + (pp_c_direct_abstract_declarator): Likewise. + (pp_c_storage_class_specifier): Likewise. + (pp_c_function_specifier): Likewise. + (pp_c_declaration_specifiers): Likewise. + (pp_c_direct_declarator): Likewise. + (pp_c_declarator): Likewise. + (pp_c_declaration): Likewise. + (pp_c_statement): Likewise. + (pp_c_integer_constant): Rename from pp_c_integer_literal. + (pp_c_character_constant): Rename from pp_c_character_literal. + (pp_c_bool_constant): Rename from pp_c_bool_literal. + (pp_c_enumeration_constant): Rename from pp_c_enumerator. + (pp_c_floating_constant): Rename from pp_c_real_literal. + (pp_c_constant): Rename from pp_c_literal. + * c-lang.c: Include diagnostic.h and c-pretty-print.h + (LANG_HOOKS_INITIALIZE_DIAGNOSTITCS): Define. + (c_initialize_diagnostics): New. + * Makefile.in (c-lang.o): Update dependency. + +2003-08-10 Nathan Sidwell + + * c-typeck.c (digest_init): Add conversion for VECTOR_TYPEs. + +2003-08-10 Richard Sandiford + + * config/mips/mips.c (mips_no_mips16_string): Remove. + (override_options): Don't handle -mips16 as part of -mipsN. + * config/mips/mips.h (mips_no_mips16_string): Remove declaration. + (TARGET_SWITCHES): Add -mips16 and -mno-mips16 entries. + (TARGET_OPTIONS): Remove -mno-mips16. + +2003-08-10 Richard Sandiford + + * config/mips/mips-protos.h (coprocessor_operand): Remove declaration. + (coprocessor2_operand): Likewise. + * config/mips/mips.c (STAB_CODE_TYPE): Remove. + (lookup_name): Remove declaration. + (abort_with_insn): Remove. Replace all uses with fatal_insn. + (mips16, mips_abicalls): Remove. + (mips_char_to_class): Remove initialiser: all entries are NO_REGS. + (arith32_operand, large_int, true_reg_or_0_operand): Remove. + (coprocessor_operand, coprocessor2_operand): Remove. + (override_options): Don't set mips16 or mips_abicalls. + (print_operand): Don't expect SIGN_EXTEND operands. + (mips_secondary_reload_class): Likewise. + (mips_output_conditional_branch): Remove disabled long-branch code. + * config/mips/mips.h (call_used_regs): Remove declaration. + (may_call_alloca): Likewise. + (mips_cpu_attr, mips_abicalls_type, mips_abicalls_attr): Remove. + (mips_abicalls, mips16): Remove declarations. + (ASM_FINAL_SPEC, LIB_SPEC): Remove. + (CC1_SPEC): Remove outdated comment. + (MIPS_VERSION, MACHINE_TYPE): Remove. + (TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove. + (PC_REGNUM, STACK_POINTER_OFFSET): Remove disabled definitions. + (STRUCT_VALUE_RETURN_REGNUM, STACK_DYNAMIC_OFFSET): Likewise. + (PUSH_ROUNDING): Likewise. + (ASSEMBLER_SCRATCH_REGNUM): Remove. + * config/mips/mips.md: Replace mips_cpu_attr with mips_tune + and mips16 with TARGET_MIPS16. + +2003-08-09 Per Bothner + + * cppinit.c (cpp_read_main_file): Split out source-independent + initialization to separate function ... + (cpp_post_options): New function. + * cppfiles.c (cpp_stack_file): Rename public name to ... + (_cpp_stack_file): New internal function name. + * cpplib.h: Update accordingly. + * cppinit.c: (cpp_create_reader): Initialize cpp_readers line here. + (cpp_read_main_file): Don't initialize line here. + * c-opts.c (c_common_post_options): Call cpp_post_options. + (c_common_parse_file): Call cpp_read_main_file, not cpp_stack_file. + * fix-header.c (read_scan_file): Call cpp_post_options. + +2003-08-09 Per Bothner + + * c-decl.c (SCOPE_LIST_APPEND): Remove bogus line continuation. + +2003-08-09 John David Anglin + + * pa.c (pa_asm_output_mi_thunk): Fix typo. + +2003-08-09 Neil Booth + + PR preprocessor/11839 + * cppfiles.c (open_file): Handle ENOTDIR. + +2003-08-09 Richard Sandiford + + PR target/11699 + * config/mips/mips.c (override_options): Reject -mabi=eabi -mabicalls. + +2003-08-08 John David Anglin + + * pa.md (extzv, extv, insv): Fix operand limit checks. Fail if + source/destination is not a register operand. + +2003-08-08 Richard Henderson + + PR target/11535 + * config/ia64/ia64.c (ia64_initial_elimination_offset): Remove + RETURN_ADDRESS_POINTER_REGNUM. + (ia64_expand_prologue): Don't frob it. + (ia64_output_function_epilogue): Likewise. + (ia64_return_addr_rtx): New. + (ia64_split_return_addr_rtx): New. + * config/ia64/ia64-protos.h: Update. + * config/ia64/ia64.h (FIRST_PSEUDO_REGISTER): Decrement. + (RETURN_ADDRESS_POINTER_REGNUM): Remove. + (GENERAL_REGNO_P): Don't check it. + (AR_*_REGNUM): Renumber. + (FIXED_REGISTERS): Remove RETURN_ADDRESS_POINTER_REGNUM. + (CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS): Likewise. + (REG_ALLOC_ORDER, REG_CLASS_CONTENTS): Likewise. + (ELIMINABLE_REGS, REGISTER_NAMES): Likewise. + (RETURN_ADDR_RTX): Use ia64_return_addr_rtx. + * config/ia64/ia64.md (UNSPEC_RET_ADDR): New. + (movdi_ret_addr): New. + +2003-08-08 Geoffrey Keating + + * config.gcc (powerpc-*-darwin*): Don't build a soft-float multilib. + +2003-08-08 Roger Sayle + + * tree.h (get_identifier) Define a macro form of get_identifier + that calls get_identifier_with_length when the string is constant. + (get_identifier_with_length): Change type of second argument to + size_t in prototype. + * stringpool.c (get_identifier): Undefine the macro before giving + the function definition. + (get_identifier_with_length): Change type of second argument to + size_t in function definition. + * hashtable.c (calc_hash): Change type of second argument to size_t. + (ht_lookup): Change type of third argument to size_t. Reorganize + to speed-up the cases where the hash table slot is empty, or the + first probe matches (i.e. there isn't a collision). + * hashtable.h (ht_lookup): Adjust function prototype. + +2003-08-08 Bernardo Innocenti + + PR target/9697 + PR target/11777 + * longlong.h (count_leading_zeros): Exclude on __mcpu32__. + +2003-08-08 Neil Booth + + * common.opt: Add debug switches. + * flags.h (use_gnu_debug_info_extensions): Boolify. + * opts.c (write_symbols, debug_info_level, + use_gnu_debug_info_extensions): Move from toplev.c. + (set_debug_level): New. + (common_handle_options): Handle debug switches. + (print_help): Display target options directly. + * toplev.c (debug_hooks): Don't initialize. + (write_symbols, debug_info_level, + use_gnu_debug_info_extensions): Move to opts.c. + (debug_args, display_help, decode_g_option): Remove. + (process_options): Set no debug if level zero here, + and no-debug-hooks. Error here if impossible debug format selected. + * toplev.h (display_help, decode_g_option): Remove. + +2003-08-08 Richard Sandiford + + * tree.c (get_file_function_name_long): Fix size of alloca() area. + +2003-08-08 Kelley Cook + + * configure.in (gcc_cv_prog_cmp_skip): Flipflop make_compare_target + and gcc_cv_prog_cmp_skip. + * configure: Regenerate. + +2003-08-08 Stan Cox + + * config/iq2000: New port. + * config.gcc (iq2000-*-elf): Added. + * doc/install.texi (Specific): Add iq2000 description. + +2003-08-08 Andreas Schwab + + * configure.in (gcc_cv_as_ia64_ltoffx_ldxmov_relocs): Fix quoting + and insert missing empty argument. + * configure: Regenerate. + +2003-08-07 John David Anglin + + * pa.c (update_total_code_bytes): Use new macro IN_NAMED_SECTION_P. + (attr_length_millicode_call): Likewise. + (attr_length_call): Likewise. Revise some maximum insn lengths. + (attr_length_indirect_call): Likewise. + (output_call): Fix thinko that added extra nop. + * pa.h (IN_NAMED_SECTION_P): Define. + + PR c++/11712 + * pa-hpux.h, pa-hpux10.h, pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define + __STDC_EXT__ when using C++ dialect. + +2003-08-07 J"orn Rennecke + + * sh.c (calc_live_regs): If the return address pointer is live, + force pr live. + (sh5_schedule_saves): Exclude PR_MEDIA_REG from being a temp register + for saves / restores. + (sh_expand_epilogue): If sh_media_register_for_return returns a + register number, flag the instructions that restores PR_MEDIA_REG + as possibly dead. + Remove dead update of offset. + (sh_get_pr_initial_val): Use UNSPEC_RA if we don't know yet if + we can use the result of get_hard_reg_initial_val. + * sh.md (UNSPEC_RA): New constant. + (movsi_i_lowpart+1): Changed into a define_insn_and_split, named: + (load_ra). Handle UNSPEC_RA. + (sibcall_media): Use PR_MEDIA_REG. + + * sh.h (CALL_USED_REGISTERS): Include PR_REG and PR_MEDIA_REG. + * sh.c (calc_live_regs): Use sh_pr_n_sets to determine if pr + needs saving on SHmedia. + +2003-08-07 Ulrich Weigand + + * config/s390/s390.md: Replace all occurrences of \\t with \t. + +2003-08-07 Richard Sandiford + + * local-alloc.c (combine_regs): Fix comment typo. + +2003-08-06 Zack Weinberg + + * c-decl.c (builtin_decls): Replace with first_builtin_decl + and last_builtin_decl. + (c_init_decl_processing): Initialize both. + (c_reset_state): Iterate from first_builtin_decl to + last_builtin_decl inclusive to reintroduce builtins. + +2003-08-06 David Mosberger + + * doc/extend.texi (Function Attributes): Document the IA-64 version + of the "model" attribute. + + * config/ia64/ia64.h (SYMBOL_FLAG_SMALL_ADDR): New macro. + (SYMBOL_REF_SMALL_ADDR_P): Ditto. + (PREDICATE_CODES): Mention "small_addr_symbolic_operand". + + * config/ia64/ia64.c (ia64_handle_model_attribute): New function. + (ia64_encode_section_info): Likewise. + (ia64_attribute_table): Add "model" attribute. + (TARGET_ENCODE_SECTION_INFO): Define. + (small_addr_symbolic_operand): New function. + (got_symbolic_operand): Return 0 for a symbolref to an object + in the small address area. + (enum ia64_addr_area): New type. + (small_ident1): New variable. + (small_ident2): Likewise. + (init_idents): New function. + (ia64_get_addr_area): Likewise. + (ia64_encode_addr_area): Likewise. + (ia64_encode_section_info): Likewise. + (ia64_expand_load_address): For symbolic references to objects in + the small-address-area, load the address via gen_rtx_SET() (which, + eventually, will expand into "addl"). + +2003-08-06 Per Bothner + + * line-map.h (fileline): New typedef. + (struct line_map, linemap_add, linemap_lookup): Use it. + * input.h (struct location_s): Comment notes that long-term we want + to replace it by fileline. + +2003-08-06 J"orn Rennecke + + Fix SHcompact exception handling: + * sh.c (sh_get_pr_initial_val): If PR is or miight be clobbered + by the prologue, return a MEM with return_address_pointer_rtx + as address. + * sh.h (HARD_REGNO_MODE_OK): PR is OK for SImode. + (RETURN_ADDR_OFFSET): Don't define. + (SH_DBX_REGISTER_NUMBER): Use SHmedia numbers for SHmedia + registers that are visible in compact mode. Show that SHmedia + registers still exist in compact mode, even if there are not + readily accessible. + (ASM_PREFERRED_EH_DATA_FORMAT): Supply DW_EH_PE_indirect + if GLOBAL. Use DW_EH_PE_textrel (nominally) for CODE, + and DW_EH_PE_pcrel for pic data. + (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): If DW_EH_PE_textrel, + set SYMBOL_FLAG_FUNCTION in symbol, and actually use + DW_EH_PE_pcrel / DW_EH_PE_absptr encoding. + (ALLOCATE_INITIAL_VALUE): Put PR on stack if prologue clobbers it. + * sh.md (movsi_media-1): New splitter. + +2003-08-06 Graeme Peterson + + * config/i386/nto.h: New. + * config/i386/t-nto: New. + * config.gcc (i[34567]86-*-nto-qnx*): New. + +2003-08-06 Phil Edwards + + * doc/install.texi (*-*-solaris2*): Refine configure instructions. + +2003-08-06 Alan Modra + + * calls.c (load_register_parameters): Arrange for call_fusage to + report the whole register as used when shifting to the msb. + +2003-08-05 Roger Sayle + + * builtins.c (expand_builtin): When not optimizing, call the library + function for all builtins that have library functions (except alloca). + +2003-08-05 Alexandre Oliva + + * c.opt: Introduce -fworking-directory. + * doc/cpp.texi, doc/invoke.texi, doc/cppopts.texi: Document it. + * c-common.h (flag_working_directory): Declare. + * c-common.c (flag_working_directory): Define. + * c-opts.c (c_common_handle_options): Set it. + (sanitize_cpp_opts): Set... + * cpplib.h (struct cpp_options): ... working_directory option. + (struct cpp_callbacks): Add dir_change. + * cppinit.c (read_original_filename): Call... + (read_original_directory): New. Look for # 1 "directory//" + and process it. + (cpp_read_main_file): Call dir_change callback if working_directory + option is set. + * gcc.c (cpp_unique_options): Pass -g*. + * c-lex.c (cb_dir_change): New. + (init_c_lex): Set dir_change callback. + * toplev.c (src_pwd): New static variable. + (set_src_pwd, get_src_pwd): New functions. + * toplev.h (get_src_pwd, set_src_pwd): Declare. + * dbxout.c (dbxout_init): Call get_src_pwd() instead of getpwd(). + * dwarf2out.c (gen_compile_unit_die): Likewise. + * dwarfout.c (output_compile_unit_die, dwarfout_init): Likewise. + +2003-08-05 Gabriel Dos Reis + + * pretty-print.h (pp_set_line_maximum_length): Make macro. + (pp_set_prefix): Likewise. + (pp_destroy_prefix): Likewise. + (pp_remaining_character_count_for_line): Likewise. + (pp_clear_output_area): Likewise. + (pp_formatted_text): Likewise. + (pp_last_position_in_text): Likewise. + (pp_emit_prefix): Likewise. + (pp_append_text): Likewise. + (pp_flush): Likewise. + (pp_format_text): Likewise. + (pp_format_verbatim): Likewise. + (pp_tree_identifier): Tidy. + * pretty-print.c (pp_base_format_text): Rename from pp_format_text. + (pp_base_format_verbatim): Rename from pp_format_verbatim. + (pp_base_flush): Rename from pp_flush. + (pp_base_set_line_maximum_length): Rename from + pp_set_line_maximum_length. + (pp_base_clear_output_area): Rename from pp_clear_output_area. + (pp_base_set_prefix): Rename from pp_set_prefix. + (pp_base_destroy_prefix): Rename from pp_destroy_prefix. + (pp_base_emit_prefix): Rename from pp_emit_prefix. + (pp_base_append_text): Rename from pp_append_text. + (pp_base_formatted_text): Rename from pp_formatted_text. + (pp_base_last_position_in_text): Rename from pp_last_position_in_text. + (pp_base_remaining_character_count_for_line): Rename from + pp_remaining_character_count_for_line. + * diagnostic.h (diagnostic_format_decoder): Tidy. + (diagnostic_flush_buffer): Likewise. + * c-pretty-print.h: (pp_c_string_literal): Declare. + (pp_c_real_literal): Likewise. + (pp_c_integer_literal): Likewise. + * c-pretty-print.c (pp_c_char): Use pp_string in lieu of + pp_identifier. + (pp_c_character_literal): Tidy. + (pp_c_string_literal): Make public. + (pp_c_bool_literal): Likewise. + (pp_c_integer_literal): Likewise. + (pp_c_real_literal): Likewise. + + * Makefile.in (C_PRETTY_PRINT_H): New variable. + (c-pretty-print.o): Update dependence. + +2003-08-05 Chris Demetriou + + * config/mips/mips.md (fix_truncdfsi2_macro): Properly restore + ".set nomacro" state. + (fix_truncsfsi2_macro): Likewise. + +2003-08-05 Steven Bosscher + + * tree.h (DID_INLINE_FUNC): Remove macro. + (DECL_DECLARED_INLINE_P): Move from c-tree.h and cp/cp-tree.h, + add tree check for FUNCTION_DECL. + (DECL_ESTIMATED_INSNS): Move from c-common.h and java/java-tree.h. + (struct tree_decl): Rename inlined_function_flag to + declared_inline_flag. + * c-common.h (c_lang_decl): Remove. + (DECL_ESTIMATED_INSNS): Remove. + * c-tree.h (struct lang_decl): Don't include c_lang_decl. + (DECL_DECLARED_INLINE_P): Remove. + * c-decl.c (grokdeclarator): Update comment. With -finline-functions, + do not reset DECL_DECLARED_INLINE_P. Don't use DID_INLINE_FUNC. + (finish_function): Make uninlinable a bool. Fixup call to + tree_inlinable_function_p() and fix some code style issues. + * cgraph.h (disgread_inline_limits): Fix spelling: `disregard'. + * cgraph.c (dump_cgraph): Likewise. + * cgraphunit.c (cgraph_decide_inlining): Likewise + (cgraph_finalize_compilation_unit): Likewise. + Also update call to tree_inlinable_function_p(). + (cgraph_default_inline_p): Don't use DID_INLINE_FUNC. Instead + look at DECL_DECLARED_INLINE and reverse logic. + * print-tree.c (print_node): Likewise. + * toplev.c (rest_of_handle_inlining): Don't use DID_INLINE_FUNC. + * tree-inline.h (tree_inlinable_function_p): Make a bool. Update + prototype. + * tree-inline.c (inlinable_function_p): Split up in this function to + check for basic inlining inhibiting conditions, and new + limits_allow_inlining() function. Warn if inlining is impossible + because the inline candidate calls alloca or uses sjlj exceptions. + (limits_allow_inlining): this new function to check if the inlining + limits are satisfied. Throttle from currfn_max_inline_insns, not from + MAX_INLINE_INSNS_SINGLE. The latter only makes sense if + MAX_INLINE_INSNS_AUTO and MAX_INLINE_INSNS_SINGLE are equal. + Update prototypes. + (tree_inlinable_function_p): Make a bool. Update call to + inlinable_function_p + (expand_call_inline): Use limits_allow_inlining() when not in + unit-at-a-time mode to decide on inlining. Don't use DID_INLINE_FUNC, + instead see if the function was declared `inline'. + +2003-08-05 Josef Zlomek + + * gcse.c (try_replace_reg): Fix updating of note. + +2003-08-04 Roger Sayle + + PR middle-end/11771 + * fold-const.c (negate_expr_p ): Change to match the + logic in negate_expr, i.e. we don't invert (A-B) for floating + point types unless flag_unsafe_math_optimizations. + +2003-08-04 Roger Sayle + + * fold-const.c (fold ): Transform x+x into x*2.0. + Optimize x*c+x and x+x*c into x*(c+1) and x*c1+x*c2 into x*(c1+c2) + for floating point expressions with -ffast-math. + (fold ): Don't transform x*2.0 into x+x. + * expmed.c (expand_mult): Wrap long line. Expand x*2.0 as x+x. + +2003-08-04 Roger Sayle + + * c-common.c (flag_noniso_default_format_attributes): Delete. + (built_in_attribute): Don't define/undefine DEF_FN_ATTR. + (c_attrs_initialized): Delete. + (c_common_nodes_and_builtins): Don't test c_attrs_initialized, + always call c_init_attributes. + (c_init_attributes): Don't define/undefine DEF_FN_ATTR. Don't + set c_attrs_initialized when done. + (c_common_insert_default_attributes): Delete. + * c-common.h (flag_noniso_default_format_attributes): Delete. + (c_coomon_insert_default_attributes): Delete prototype. + * c-opts.c (set_std_c89, set_std_c99, set_std_cxx98): Dont set + flag_noniso_default_format_attributes. + + * c-decl.c (c_insert_default_attributes): Delete. + * c-tree.h (c_insert_default_attributes): Delete prototype. + + * attribs.c (decl_attributes): Don't call insert_default_attributes + langhook. Update function description comment. + * langhooks.h (lang_hooks): Remove insert_default_attributes field. + * langhooks-def.h (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Delete. + * c-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Don't define. + * system.h: Poison LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES macro. + + * objc/objc-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Don't + define. + +2003-08-04 Richard Sandiford + + * config/mips/mips.c (override_options): Disable -G on targets that + have no .section support. + (mips_select_section): Use default_select_section for such targets. + +2003-08-04 Nathanael Nerode + + * fixinc/inclhack.def (svr4_undeclared_getrnge): Introduce and enable. + * fixinc/inclhack.def (static_getrnge): Remove disabled hack. + * fixinc/fixincl.x: Rebuild. + * fixinc/tests/base/regexp.h: New test. + +2003-08-04 Alexandre Oliva + + * c-ppoutput.c (cb_line_change): Don't skip line changing while + parsing macro arguments in the top-level context. + +2003-08-04 Neil Booth + + * config.in: Remove HAVE_LSTAT. + * configure, configure.in: Don't test for lstat. + +2003-08-03 Gabriel Dos Reis + + * opts.c (decode_options): Do language-specific initialization for + the global diagnostic context. + * langhooks-def.h (lhd_initialize_diagnostics): Declare. + (LANG_HOOKS_INITIALIZE_DIAGNOSTITCS): New macro. + (LANG_HOOKS_INITIALIZER): Adjust. + * langhooks.h (struct lang_hooks): Add new field + initialize_diagnostics. + * langhooks.c (lhd_initialize_diagnostics): Define. + +2003-08-03 Gabriel Dos Reis + + * pretty-print.h: Adjust macro definitions. + * pretty-print.c (pp_newline): Rename to pp_base_newline. + (pp_character): Rename to pp_base_character. + (pp_string): Rename to pp_base_string. + * c-pretty-print.c (pp_buffer): Move to pretty-print.h + (pp_newline): Likewise. Adjust. + (pp_c_char): Adjust. + +2003-08-03 Kaveh R. Ghazi + + * builtins.def (BUILT_IN_ABS, BUILT_IN_IMAXABS, BUILT_IN_LABS, + BUILT_IN_LLABS): Move to miscellaneous section. + +2003-08-03 Neil Booth + + PR preprocessor/11534 + * cppexp.c (parse_defined): Warn only if -pedantic. + +2003-08-03 Neil Booth + + * cppfiles.c (stack_file): Use file path. + +2003-08-02 Roger Sayle + + * builtin-types.def (BT_SSIZE): New primitive type. + (BT_FN_INT_PTR_CONST_STRING_VALIST_ARG, + BT_FN_STRING_CONST_STRING_CONST_STRING_INT, + BT_FN_SIZE_STRING_SIZE_CONST_STRING_CONST_PTR, + BT_FN_SSIZE_STRING_SIZE_CONST_STRING_VAR): New function types. + * builtins.def (BUILT_IN_DCGETTEXT, BUILT_IN_DGETTEXT, + BUILT_IN_FSCANF, BUILT_IN_GETTEXT, BUILT_IN_STRFMON, + BUILT_IN_STRFTIME, BUILT_IN_VFPRINTF, BUILT_IN_VFSCANF): New builtins. + * builtin-attrs.def: Remove DEF_FN_ATTR construct and the last + few functions that define default attributes using it. + * c-common.c (c_common_insert_default_attributes): Do nothing. + + * doc/extend.texi: Document these "new" builtins. + +2003-08-02 Kaz Kojima + + * config/sh/linux.h (SUBTARGET_LINK_SPEC): Don't set rpath. + (LIB_SPEC): Set -lpthread always when -pthread set. Set -lieee + when -mieee-fp set and -shared not set. + (SH_FALLBACK_FRAME_FLOAT_STATE): Don't define for SH5. + +2003-08-02 Neil Booth + + * cppfiles.c (struct _cpp_file): Rename once_only_next to + next_file. Remove import and pragma_once, add once_only. + (find_file): Add new file structures to the all_files list. + (should_stack_file): Mark #import-ed files once-only, and + don't stack them if the file has already been stacked. + (_cp_mark_file_once_only): Simplify. + * cpphash.h (struct cpp_reader): Rename once_only_files + to all_files. Rename saw_pragma_once to seen_once_only. + (_cpp_mark_file_once_only): Update prototype. + * cpplib.c (do_pragma_once): Update. + +2003-08-02 Neil Booth + + * cppfiles.c (ENOTDIR): Remove. + (open_file_in_dir): Rename find_file_in_dir. Handle errors + other than ENOENT here. + (once_only_file_p): Rename should_stack_file. + (find_file, open_file_failed, read_file_guts): Report errors + with full path name. + (read_file): Move pch handling to should_stack_file. + (should_stack_file): Handle PCH and once-only issues, and + reading the file. + (stack_file): Don't do file reads. + +2003-08-02 Zdenek Dvorak + + * libgcov.c (gcov_exit): Cleanup and fix. + * profile.c (compute_value_histograms): Don't try to read profiles + that are not present. + +2003-08-02 Kaveh R. Ghazi + + * builtins.def: Categorize. + + * builtins.def (BUILT_IN_CABS, BUILT_IN_CABSF, BUILT_IN_CABSL): + Mind fp rounding. + (BUILT_IN_FFSL): Use DEF_EXT_LIB_BUILTIN. + +2003-08-02 Andreas Tobler + + * config.gcc: Enable posix threads by default on darwin. + +2003-08-01 Jakub Jelinek + + * cfgcleanup.c (outgoing_edges_match): Check REG_EH_REGION notes + even if nehedges1 is 0. + +2003-08-01 Nathanael Nerode + + * fixinc/fixfixes.c, fixinc/fixlib.c, fixinc/fixlib.h, + fixinc/fixtests.c, fixinc/procopen.c, fixinc/server.c, + fixinc/server.h, fixinc/fixincl.c: ANSIfy function prototypes + and defintions. + + * fixinc/inclhack.def (broken_cabs): Make matching more generous. + * fixinc/fixincl.x: Regenerate. + * fixinc/tests/base/math.h: Regenerate to match test_text change. + +2003-08-01 Rainer Orth + + * ggc-common.c (gt_pch_restore): Case MAP_FAILED to void *. + +2003-08-01 Richard Kenner + + * except.c (sjlj_emit_dispatch_table): Use ptr_mode, not Pmode, + for accesses to exc_ptr. + +2003-08-01 Geoffrey Keating + + * doc/sourcebuild.texi (Front End Directory): Don't make references + to libsubdir, it's not part of the interface to frontends. + * doc/install.texi (Configuration): Help users read faster by saying + that GCC's configure options are the standard autoconf ones. + Mention --libdir. Update the default rules for finding the + assembler. Don't use libsubdir since we haven't said what it means. + (Specific): In the Solaris 7 notes, update the place to put the + assembler. + * doc/invoke.texi: Update lib/gcc-lib to lib/gcc. + * doc/cpp.texi (Search Path): Actually, the search path + depends on libdir, which can relocate with cpp. + * doc/tm.texi (Driver): Don't document STANDARD_EXEC_PREFIX, it's + now a private interface between the Makefile and the driver. + +2003-08-01 Richard Henderson + + * system.h: Poison ASM_SIMPLIFY_DWARF_ADDR. + + * varasm.c (lookup_constant_def): New function. + * rtl.h (lookup_constant_def): Declare it. + * dwarf2out.c (loc_descriptor_from_tree): Use it. + Use targetm.delegitimize_address, not ASM_SIMPLIFY_DWARF_ADDR. + +2003-08-01 Zack Weinberg + + * c-decl.c (gettags, pushdecl_function_level): Delete. + (last_function_parm_vars): Rename last_function_parm_others. + (current_function_parm_vars): Rename current_function_parm_others. + (struct c_scope): Rewrite comment explaining this data structure. + Add names_last, blocks_last, parms_last fields. Rename + incomplete_list to incomplete. + (SCOPE_LIST_APPEND, SCOPE_LIST_CONCAT): New macros. + (poplevel): Ignore second argument. No need to nreverse + anything. Restructure such that each list is processed + exactly once. Use 'const location_t *locus' syntactic sugar + variable where useful. Issue unused variable warnings + ourselves, do not rely on function.c. + (insert_block, pushdecl, bind_label): Use SCOPE_LIST_APPEND. + (pushdecl_top_level): Likewise. Don't call duplicate_decls. + (implicitly_declare): decl cannot be error_mark_node. + (undeclared_variable): Manipulate scope structure directly. + (c_make_fname_decl): Likewise. + (getdecls, c_init_decl_processing): Fix comment. + (mark_forward_parm_decls): Use SCOPE_LIST_CONCAT. No need + for 'last' variable. + (grokparms): No need to nreverse parms list. + (store_parm_decls_newstyle): Set up the parms_last and + names_last fields of the new scope too. + (store_parm_decls_oldstyle): Can assume DECL_WEAK is not set + on parms to begin with; check this under ENABLE_CHECKING. Set + up parms_last. + (check_for_loop_decls): Refer directly to current_scope->tags. + Use consistent quote style in diagnostics. + (c_write_global_declarations): The names list is not backward. + + * c-common.h: Don't prototype gettags. + * c-parse.in: Call poplevel with second argument 0 always. + +2003-08-01 Kaveh R. Ghazi + + * builtins.def: Resort builtins. + +2003-08-01 Kaveh R. Ghazi + + * builtins.def (DEF_GCC_BUILTIN, DEF_LIB_BUILTIN, + DEF_EXT_LIB_BUILTIN, DEF_C99_BUILTIN, DEF_C99_C90RES_BUILTIN): + Prepend "__builtin_" onto NAME with string concatenation. Remove + explicit "__builtin_" from each macro call. + + Reformat entire file. + +2003-08-01 Kaveh R. Ghazi + + * builtins.def (ATTR_MATHFN_ERRNO, ATTR_MATHFN_FPROUNDING, + ATTR_MATHFN_FPROUNDING_ERRNO): New macros. Use throughout. + +2003-08-01 Andreas Krebbel + + * config/s390/s390.c (s390_select_ccmode): Do not attempt to use CCL, + CCL1, or CCL2 modes with floating point operations. + + * config/s390/s390.md ("*addsf3_cc", "*addsf3_cconly", "*adddf3_cc", + "*adddf3_cconly", "*subsf3_cc", "*subsf3_cconly", "*subdf3_cc", + "*subdf3_cconly"): New insns. + ("*negabssi2", "*negabsdi2", "*negabsdf2", "*negabssf2"): Likewise. + +2003-08-01 Neil Booth + + * Makefile.in: Refine dependencies. + * c-opts.c (c_common_handle_option): Do nothing for -Wimport. + * c.opt: Update help for -Wimport. + * cppfiles.c: Include hashtab.h. Update comments. + (stack_file): Read the file before updating dependencies. + (once_only_file_p): Be smarter about marking once-only files. + (_cpp_mark_file_once_only): Correct the check for existence on + the list. + (open_file_failed): Use name not path, which is NULL. + * cpphash.h: Don't include hashtab.h. + (struct _cpp_file): Remove. + (struct cpp_reader): Update. + * cppinit.c (cpp_create_reader): Don't initialize warn_import. + * cpplib.h (struct cpp_options): Remove warn_import. + (cpp_simplify_path): Remove. + +2003-08-01 Nathan Sidwell + + PR c++/11295 + * doc/extend.texi (Statement Expressions): Document C++ semantics. + +2003-07-31 SUGIOKA Toshinobu + + * config.gcc (sh-*-linux*): Do not override sh/t-linux with sh/t-le. + +2003-07-31 Kaveh R. Ghazi + + * builtin-types.def: Use `LONGDOUBLE' instead of `LONG_DOUBLE' + throughout. + * builtins.def: Likewise. + +2003-07-31 Jason Merrill + + * Makefile.in (bubblestrap): Don't require a previous full + bootstrap. + + * expr.c (mostly_zeros_p): No longer static. + * tree.h: Declare it. + * stmt.c (resolve_asm_operand_names): Don't copy the pattern + unless we need to do substitutions. + +2003-07-31 Roger Sayle + + * fold-const.c (fold ): Optimize both x*pow(x,c) and + pow(x,c)*x as pow(x,c+1) for constant values c. Optimize x*x + as pow(x,2.0) when the latter will be expanded back into x*x. + (fold ): Optimize pow(x,c)/x as pow(x,c-1). + * builtins.c (expand_builtin_pow): Ignore flag_errno_math as + pow can never set errno when used with an integer exponent. + Always use expand_powi when exponent is -1, 0, 1 or 2. + (fold_builtin): Don't rewrite pow(x,2.0) as x*x nor pow(x,-2.0) + as 1.0/(x*x). This avoids unbounded recursion as we now prefer + the pow forms of these expressions. + +2003-07-31 Geoffrey Keating + + * Makefile.in (libexecdir): New. + (libsubdir): Use gcc instead of gcc-lib. + (libexecsubdir): New. + (ORDINARY_FLAGS_TO_PASS): Add libexecsubdir. + (DRIVER_DEFINES): Add STANDARD_LIBEXEC_PREFIX, use gcc instead of + gcc-lib. + (installdirs): Make libexecsubdir. + (install-common): Put executables in libexecsubdir. + (itoolsdir): Use libexecsubdir. + (itoolsdatadir): New. + (install-mkheaders): Separate data files and executables. + (install-collect2): Put executables in libexecsubdir. + (uninstall): Remove libexecsubdir. + * mkheaders.in: Update for new arrangement of files. + (libexecdir): New. + (libexecsubdir): New. + (itoolsdir): Use libexecsubdir. + (itoolsdatadir): New. + * gcc.c (gcc_libexec_prefix): New. + (STANDARD_LIBEXEC_PREFIX): Use gcc instead of gcc-lib. + (standard_exec_prefix_1): Use libexec. + (standard_exec_prefix_2): New. + (standard_libexec_prefix): New. + (process_command): Update for new arrangement of files. Compute + gcc_libexec_prefix. Update for change from gcc-lib to gcc. + +2003-07-31 Nathanael Nerode + + * inclhack.def (stdio_va_list): Avoid bogus replacement which + triggers on Interix. + * fixincl.x: Regenerate. + +2003-07-31 Jakub Jelinek + + * config/i386/i386.c (legitimate_pic_address_disp_p): Disallow TLS + SYMBOL_REFs not inside UNSPEC even in PLUS rtx. + +2003-07-31 Richard Kenner + + * dwarf2out.c (loc_descriptor_from_tree, case CONSTRUCTOR): New case. + +2003-07-31 Per Bothner + + * opts.c (in_fnames, num_in_fnames): Moved here from c-opts. + (add_input_filename): New function. + (handle_options): Call add_input_filename directly instead of + with a lang hook. + * opts.h (in_fnames, num_in_fnames): Moved here. + (add_input_filename): Declare. + * c-decl.c: Need to #include opts.h. + * Makefile.in (c-decl.o): Also depends on opts.h. + * c-opts.c (in_fnames, num_in_fnames): Moved to opts.c. + (c_common_handle_filename): Replaced by add_input_filename. + * c-common.h (in_fnames, num_in_fnames, c_common_handle_filename): + Remove. + * langhooks.h (struct lang_hooks): Remove handle_filename hook. + * langhooks-def.h (LANG_HOOKS_HANDLE_FILENAME): Remove macro. + (LANG_HOOKS_INITIALIZER): Remove use of LANG_HOOKS_HANDLE_FILENAME. + * c-lang.c (LANG_HOOKS_HANDLE_FILENAME): Remove macro. + +2003-07-31 Zdenek Dvorak + + * combine.c (try_combine): Set JUMP_LABEL for newly created + unconditional jump. + +2003-07-31 Zdenek Dvorak + + * fold-const.c (fold): Fold some comparisons of bit operations. + +2003-07-31 Jan Hubicka + + * cgraph.c (create_edge): Fix typo. + * i386.c (pic_symbolic_operand): Reorder tests. + +2003-07-31 Nathan Sidwell + + * doc/gcov.texi (Invoking Gcov): Describe output name mangling + more fully. + (Gcov Data Files): Update. + +2003-07-31 Rainer Orth + + * config.gcc (alpha*-dec-osf[45]*): Enable POSIX thread support by + default. + + * gthr-posix.c: New file. + * gthr-posix.h: Define _REENTRANT if missing. + Make _LIBOBJC #pragma weak visible with _LIBOBJC_WEAK. + + * config/alpha/t-osf4 (SHLIB_LINK): Hide dummy functions provided + by gthr-posix.o. + * config/alpha/t-osf-pthread: New file. + + * fixinc/inclhack.def (alpha_pthread): New fix. + * fixinc/fixincl.x: Regenerate. + * fixinc/tests/base/pthread.h [ALPHA_PTHREAD_CHECK]: New testcase. + + * doc/install.texi (alpha*-dec-osf*): Remove --enable-threads + warning. + Fixes PR bootstrap/9330. + +2003-07-31 Rainer Orth + + * configure.in (gcc_cv_ld_hidden): Also disable on mips-sgi-irix5* + without GNU ld. + Update comment. + * configure: Regenerate. + +2003-07-31 Vladimir Makarov + + * sched-deps.c (sched_analyze_2): Prevent interblock move of CC0 + setter. + +2003-07-30 Roger Sayle + + * builtins.def: Alphabetize. + +2003-07-30 Matt Kraai + + * doc/c-tree.texi: Normalize spellings of "lowercase" and + "uppercase". + * doc/cpp.texi: Likewise. + * doc/md.texi: Likewise. + * doc/rtl.texi: Likewise. + * doc/tm.texi: Likewise. + +2003-07-30 Matt Kraai + + * objc/Make-lang.in (objc.stage1, objc.stage2, objc.stage3) + (objc.stage4, objc.stageprofile, objc.stagefeedback): Remove moves + of cc1obj. + +2003-07-30 Chris Demetriou + + * config/mips/mips.h (SIZE_TYPE, PTRDIFF_TYPE): Undef these + macros before defining them. + +2003-07-31 Ulrich Weigand + + * config/s390/s390.md (UNSPEC_ROUND, UNSPEC_SETHIGH, + UNSPECV_BLOCKAGE): New constants. + ("*sethighqisi", "*sethighhisi", "*sethiqidi_64", "*sethiqidi_31", + "*extractqi", "*extracthi", "*extendqidi2" splitter, "*extendqisi2" + splitter, "fix_truncdfdi2_ieee", "fix_truncdfsi2_ieee", + "fix_truncsfdi2", "fix_truncsfsi2", "blockage"): Use them. + + (all insns and expanders): Write output control string as brace block + where appropriate. Remove \-escapes for doublequote characters. + +2003-07-31 Jan Hubicka + + * gcse.c (insert_store): Fix typo in previous patch. + +2003-07-30 Neil Booth + + * cppfiles.c (stack_file, open_file_failed): Use path for deps. + +2003-07-30 Andi Kleen + + * loop.c (check_dbra_loop): Allow LTU in the loop condition. + +2003-07-30 Zdenek Dvorak + + * combine.c (distribute_notes): Cancel REG_VALUE_PROFILE notes. + * gcov-io.h (GCOV_FIRST_VALUE_COUNTER, GCOV_LAST_VALUE_COUNTER, + GCOV_N_VALUE_COUNTERS): New. + * profile.c (compute_value_histograms): New static function. + (branch_prob): Read back the value histograms. + * rtl.c (reg_note_name): Add name for REG_VALUE_PROFILE note. + * rtl.h (enum reg_note): Add REG_VALUE_PROFILE note. + * value-prof.c: Add comment on reading the profile. + * value-prof.h (COUNTER_FOR_HIST_TYPE, HIST_TYPE_FOR_COUNTER): New. + * doc/invoke.texi (-fprofile-values): Document behavior with + -fbranch-probabilities. + +2003-07-30 David Edelsohn + + * longlong.h (PowerPC umul_ppmm): Do not test __vxworks__. + +2003-07-30 Ulrich Weigand + + * config/s390/s390.h (EH_RETURN_HANDLER_RTX): Compute offset + symbolically. + +2003-07-30 Jan Hubicka + + * gcse.c (insert_store): Ignore fake edges. + + * c-common.c (flag_vtable_gc): Kill. + * c-common.g (flag_vtable_gc): Kill. + * c-opts (c_common_handle_option): Kill. + * c.opt (fvtable-gc): Kill. + * final.c (final_scan_insn): Do not call assemble_vtable_entry. + * output.h (assemble_vtable_entry, assemble_vtable_inherit): Kill. + * varasm.c (assemble_vtable_entry, assemble_vtable_inherit): Kill. + + * invoke.texi (-ftable-gc): Kill documentation. + + * tree-inline.c (inlinable_function_p): Don't set DECL_UNINLINABLE + just because function body is missing. + + * i386.c (pic_symbolic_operand): Properly detect RIP relative unspecs. + +2003-07-30 Ranjit Mathew + + * unwind-sjlj.c: Fix typo in file description. + +2003-07-30 Alan Modra + + * calls.c (load_register_parameters): When shifting reg sized values + to the msb, move the value to a reg first. + +2003-07-29 Geoffrey Keating + + * cppfiles.c (stack_file): Leave filename as "" rather than "". + * line-map.h (linemap_add): Update comments. + * line-map.c (linemap_add): Update comments, interpret zero-length + filename as "". + +2003-07-29 Nathanael Nerode + + * mkinstalldirs: Import autoconf 2.57 / automake 1.7 version. + +2003-07-29 Zack Weinberg + + * c-decl.c (last_function_parm_vars, current_function_parm_vars): + New static variables. + (struct c_scope): Add parms and warned_forward_parm_decls + fields; remove parm_order. + (storedecls, storetags): Delete. + (poplevel): Also clear bindings on the parms chain. + (pushdecl): Handle forward declarations of parameters, and + chain PARM_DECLs on the parms list, not the names list. + (lookup_name_current_level): Check for PARM_DECLs on the parms + list too. + (push_parm_decl): Don't update parm_order. + (clear_parm_order): Rename mark_forward_parm_decls. Issue the + warning, only once per parameter list, and set TREE_ASM_WRITTEN + on the decls here. Then move the forward decls to the names list. + (grokparms): Set last_function_parm_vars. + (get_parm_info): Don't use gettags or getdecls. No need to + extract non-parms from the parms list, or reorganize the parms + list. Feed nonparms back in the TREE_TYPE of the list node + returned. Issue only one error per parameter list for "void" + appearing more than once in said parameter list. Collapse + parmlist_tags_warning into this function to avoid double scan + of tags list. + (start_function): Set current_function_parm_vars. + (store_parm_decls_newstyle): Bypass pushdecl, manipulate scope + directly. Get non-parms from current_function_parm_vars; no + need to extract them from the parms chain. Properly bind tags + in the new scope. + (store_parm_decls_oldstyle): No need to extract non-parameters + from the parms chain, nor to store them back afterward. Move + declaration to top of function, restructure code reordering + DECL_ARGUMENTS. + (store_parm_decls): No need to save and restore warn_shadow. + * c-parse.in: Don't call parmlist_tags_warning nor + clear_parm_order. Call mark_forward_parm_decls when forward + parm decls are encountered. + * c-tree.h: Prototype mark_forward_parm_decls; not + clear_parm_order or parmlist_tags_warning. + +2003-07-29 Geoffrey Keating + + * c-common.c (allow_pch): Remove. + * c-common.h (allow_pch): Remove. + (c_common_no_more_pch): Declare. + * c-lex.c (c_lex): Call c_common_no_more_pch when appropriate. + * c-pch.c: Include hosthooks.h. + (c_common_valid_pch): Don't check allow_pch. + (c_common_read_pch): Clear valid_pch to prevent reading PCH files. + (c_common_no_more_pch): New. + * ggc-common.c: Include hosthooks.h. + (gt_pch_save): Call gt_pch_get_address. + (gt_pch_restore): Call gt_pch_use_address. + * hooks.c (hook_voidp_size_t_null): New. + (hook_bool_voidp_size_t_false): New. + * hooks.h (hook_voidp_size_t_null): New. + (hook_bool_voidp_size_t_false): New. + * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): New. + (HOST_HOOKS_GT_PCH_USE_ADDRESS): New. + (HOST_HOOKS_INITIALIZER): Add HOST_HOOKS_GT_PCH_GET_ADDRESS, + HOST_HOOKS_GT_PCH_USE_ADDRESS. + * hosthooks.h (struct host_hooks): Add gt_pch_get_address, + gt_pch_use_address. + * doc/hostconfig.texi (Host Common): Document + HOST_HOOKS_GT_PCH_GET_ADDRESS, HOST_HOOKS_GT_PCH_USE_ADDRESS. + * Makefile.in (c-pch.o): Depend on hosthooks.h. + (ggc-common.o): Likewise. + + * config/rs6000/host-darwin.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Define. + (HOST_HOOKS_GT_PCH_USE_ADDRESS): Define. + (pch_address_space): New. + (darwin_rs6000_gt_pch_get_address): New. + (darwin_rs6000_gt_pch_use_address): New. + +2003-07-29 Neil Booth + + PR preprocessor/11569 + PR preprocessor/11649 + * Makefile.in (LIBCPP_DEPS): Add HASHTAB_H. + * cppfiles.c: Completely rewritten. + * c-incpath.c (free_path, remove_duplicates, heads, tails, add_path): + struct cpp_path is now struct cpp_dir. + (remove_duplicates): Don't simplify path names. + * c-opts.c (c_common_parse_file): cpp_read_next_file renamed + cpp_stack_file. + * cpphash.h: Include hashtab.h. + (_cpp_file): Declare. + (struct cpp_buffer): struct include_file is now struct _cpp_file, + and struct cpp_path is now struct cpp_dir. Rename members. + (struct cpp_reader): Similarly. New members once_only_files, + file_hash, file_hash_entries, quote_ignores_source_dir, + no_search_path, saw_pragma_once. Remove all_include_files and + max_include_len. Make some members bool. + (_cpp_mark_only_only): Renamed from _cpp_never_reread. + (_cpp_stack_file): Renamed from _cpp_read_file. + (_cpp_stack_include): Renamed from _cpp_execute_include. + (_cpp_init_files): Renamed from _cpp_init_includes. + (_cpp_cleanup_files): Renamed from _cpp_cleanup_includes. + * cppinit.c (cpp_create_reader): Initialize no_search_path. Update. + (cpp_read_next_file): Rename and move to cppfiles.c. + (cpp_read_main_file): Update. + * cpplib.c (run_directive): Update for renamed members. + (do_include_common, _cpp_pop_buffer): Update. + (do_import): Undeprecate #import. + (do_pragma_once): Undeprecate. Use _cpp_mark_file_once_only. + * cpplib.h: Remove file_name_map_list. + (cpp_options): Remove map_list. + (cpp_dir): Rename from cpp_path. New datatype for name_map. + (cpp_set_include_chains, cpp_stack_file, cpp_included): Update. + +2003-07-29 Phil Edwards + + * Makefile.in: Make stamp-objdir safe for parallel builds. + +2003-07-29 Phil Edwards + + * Makefile.in (stmp-docobjdir): New target; ensure $docobjdir exists. + (info): Depend on stmp-docobjdir. + +2003-07-29 Rainer Orth + + * configure: Regenerate. + +2003-07-29 Jan Hubicka + + PR C++/11131 + * tree-inline.c (expand_call_inline): Always call inlinable_function_p + in !unit-at-a-time mode. + +2003-07-28 Geoffrey Keating + + * c-decl.c (c_expand_body_1): Use C_DECL_FILE_SCOPE to detect + main function. + +2003-07-28 Mark Mitchell + + PR c++/11667 + * c-common.c (shorten_compare): Take into account differences + between C and C++ representation for enumeration types. + * tree.h (set_min_and_max_values_for_integral_type): Declare. + * stor-layout.c (set_min_and_max_values_for_integral_type): New + function, broken out from ... + (fixup_signed_type): ... here and ... + (fixup_unsigned_type): ... here. + +2003-07-28 Zack Weinberg + + * c-decl.c: Update commentary, adjust blank lines throughout. + (struct c_scope): Fix indentation. Reorder members so + outer-context pointers come first, booleans last. + (duplicate_decls, define_label): Use a 'locus' variable for + diagnostic locations in a few more places. + (warn_if_shadowing): Un-split a conditional that fits on one line. + (c_init_decl_processing): No need to clear current_scope and + current_function_scope. + (start_decl): Merge if/else if statements with same action. + (push_parm_decl): Rename old_immediate_size_expand to use + save_foo convention; save/restore around entire function. + (grokdeclarator): Remove unnecessary braces. + +2003-07-28 Hans-Peter Nilsson + Michael Culbertson + + * c-parse.in (lineno_stmt_decl_or_labels_ending_decl): Also warn + when warn_declaration_after_statement. Call pedwarn_c90, not + pedwarn. Correct message: it's "ISO C90", not "ISO C89". + * c-common.c (warn_declaration_after_statement): Define. + * c-common.h (warn_declaration_after_statement): Declare. + * c.opt (Wdeclaration-after-statement): New. + * c-errors.c (pedwarn_c90): New function. + * c-opts.c (c_common_handle_option) : New. + * c-tree.h (pedwarn_c90): Declare. + * doc/invoke.texi (Option Summary): Document + -Wdeclaration-after-statement. + (Warning Options): Ditto. + +2003-07-28 Jan Hubicka + + * i386.md (memory attribute) Avoid accessing uninitialized memory + for ishift1 type instructions. + +2003-07-28 Jakub Jelinek + + * configure.in (--enable-checking): Add fold category. + (ENABLE_FOLD_CHECKING): Define if requested. + * configure: Rebuilt. + * config.in: Rebuilt. + * doc/install.texi: Document it. + * fold-const.c: Include md5.h. + [ENABLE_FOLD_CHECKING] (fold): Define to fold_1. + [ENABLE_FOLD_CHECKING] (fold, fold_checksum_tree, fold_check_failed, + print_fold_checksum): New functions. + + * fold-const.c (fold): Never modify argument passed to fold, instead + change a copy and return it. + * convert.c (convert_to_integer): Likewise. + +2003-07-27 Nathanael Nerode + + * fixinc/fixinc.svr4: Remove dead code. Remove now-unnecessary + cleanup of junk after #else and #endif directives. Collapse repeated + clauses into for statment. + + * fixinc/fixincl.sh: GNU C -> GCC. Add usage comment. + +2003-07-27 Zack Weinberg + + * c-decl.c (struct c_scope): Remove keep_if_subblocks field. + (keep_next_if_subblocks): Rename next_is_function_body. + (pushlevel): Adjust commentary. Always set ->keep on the + outermost level of a function. Don't set ->keep_if_subblocks. + (poplevel): Adjust commentary. Don't look at ->keep_if_subblocks. + (store_parm_decls): Adjust to match. + (finish_function): Adjust to match. + Call poplevel with all three arguments zero. + + * c-decl.c (store_parm_decls_newstyle, store_parm_decls_oldstyle): + New functions split out of store_parm_decls. + Avoid unnecessary work. Use local variables consistently. + (store_parm_decls): Likewise. + + (finish_function): No need to set functionbody flag on call to + poplevel. + (struct language_function): Remove scope field. + (c_push_function_context, c_pop_function_context): No need to + save and restore current_scope. + +2003-07-27 Nathan Sidwell + + * doc/extend.texi (Deprecated Features): Implicit typename is + gone. Default args on types is going. + +2003-07-26 J"orn Rennecke + + * Makefile.in (ifcvt.o): Depend on target.h + * ifcvt.c (target.h): Include. + (if_convert): Don't call mark_loop_exit_edges if we can't + modify jumps. + +2003-07-26 Gerald Pfeifer + + * doc/install.texi (Testing): Adjust required versions of DejaGnu. + +2003-07-26 Richard Henderson + + PR inline-asm/11676 + * cse.c (count_reg_usage): Handle asm_operands properly. + +2003-07-26 Roger Sayle + + * builtins.def (DEF_FALLBACK_BUILTIN): Delete. + (DEF_EXT_FALLBACK_BUILTIN): Delete. + (BUILT_IN_BZERO, BUILT_IN_BCOPY, BUILT_IN_BCMP): Declare using + the regular DEF_EXT_LIB_BUILTIN macro. + (BUILT_IN_FPUTC, BUILT_IN_FPUTS, BUILT_IN_FWRITE): Declare using + the regular DEF_LIB_BUILTIN macro. + (BUILT_IN_PUTCHAR_UNLOCKED, BUILT_IN_PUTS_UNLOCKED, + BUILT_IN_FPUTC_UNLOCKED, BUILT_IN_FPUTS_UNLOCKED, + BUILT_IN_FWRITE_UNLOCKED): Declare using the regular + DEF_EXT_LIB_BUILTIN macro. + + * c-decl.c (duplicate_decls): Remove code to handle builtin + functions prototyped without an argument list. + +2003-07-26 Danny Smith + + * config/i386/winnt.c: Revert 2003-07-08 change. + (i386_pe_section_type_flags): Remove error_with_decl here too. + +2003-07-26 Gabriel Dos Reis + + * config/arm/pe.c (arm_mark_dllimport): Don't use xxx_with_decl. + * config/mcore/mcore.c (mcore_mark_dllimport): Likewise. + * config/v850/v850.c (v850_handle_data_area_attribute): Likewise. + (v850_handle_data_area_attribute): Likewise. + +2003-07-26 Geoffrey Keating + + * varasm.c (output_constant_def_contents): Use + ASM_DECLARE_CONSTANT_NAME if defined. + * doc/tm.texi (Label Output): Document ASM_DECLARE_CONSTANT_NAME. + * config/darwin.h (ASM_DECLARE_OBJECT_NAME): Ensure zero-sized + objects get at least one byte to prevent assembler problems. + (ASM_DECLARE_CONSTANT_NAME): New. + + * Makefile.in (libbackend.o): Remove options_.h. + (mostlyclean): Likewise. + + * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Don't + insert a label at the end of an function under Mach-O. + + * c-decl.c (c_static_assembler_name): Remove TREE_STATIC test. + +2003-07-25 Aldy Hernandez + + * config/rs6000/rs6000.c (is_ev64_opaque_type): Only check pointer + equality. + (spe_init_builtins): Declare __ev64_opaque__ as a builtin type. + + * config/rs6000/spe.h: Remove __ev64_opaque__ definition. + +2003-07-25 Gabriel Dos Reis + + * doc/passes.texi (Passes): Mention pretty-printing and + diagnostic files. + +2003-07-25 Nathan Sidwell + + * doc/extend.texi (Function Attributes): GNU C++ does now allow + unused parameter decls. + (Attribute Syntax): GNU C++ does not allow label attributes to be + after the ':'. + +2003-07-25 Gabriel Dos Reis + + * objc/objc-act.c (objc_check_decl): Don't use xxx_with_decl. + (objc_declare_class): Likewise. + (error_with_ivar): Likewise. + (start_class): Likewise. + (warn_with_method): Likewise. + +2003-07-25 Gabriel Dos Reis + + Remove pedwarn_with_decl, warning_with_decl and error_with_decl + from GCC. + * calls.c (try_to_integrate): Don't use xxx_with_decl. + (expand_call): Likewise. + * dwarfout.c (output_reg_number): Likewise. + * expr.c (expand_expr): Likewise. + * function.c (assign_temp): Likewise. + (uninitialized_vars_warning): Likewise. + (setjmp_args_warning): Likewise. + (expand_function_end): Likewise. + * stmt.c (fixup_gotos): Likewise. + (warn_about_unused_variables): Likewise. + (expand_end_bindings): Likewise. + * stor-layout.c (layout_decl): Likewise. + (place_field): Likewise. + * toplev.c (check_global_declarations): Likewise. + (rest_of_handle_inlining): Likewise. + (default_tree_printer): New function. + (general_init): Initialize diagnostic machinery before routing + signals to the ICE machinery. Set default tree printer. + * toplev.h (pedwarn_with_decl): Remove declaration. + (warning_with_decl): Likewise. + (error_with_decl): Likewise. + (pedwarn): Remove attribute for the time being. + * tree-inline.c (expand_call_inline): Don't use xxx_with_decl. + * varasm.c (named_section): Likewise. + (make_decl_rtl): Likewise. + (assemble_variable): Likewise. + (merge_weak): Likewise. + (declare_weak): Likewise. + + * diagnostic.h: Move non-diagnostic stuff into pretty-print.h. + * diagnostic.c: Move non-diagnostic stuff into pretty-print.c. + (format_with_decl): Remove. + (diagnostic_for_decl): Likewise. + (pedwarn_with_decl): Likewise. + (warning_with_decl): Likewise. + (error_with_decl): Likewise. + (diagnostic_initialize): Adjust. + (diagnostic_count_diagnostic): Likewise. + (announce_function): Likewise. + (lhd_print_error_function): Likewise. + (diagnostic_report_current_module): Likewise. + (default_diagnostic_starter): Likewise. + (diagnostic_report_diagnostic): Likewise. + (default_diagnostic_finalizer): Likewise. + (verbatim): Likewise. + (error): Likewise. + (warning): Likewise. + * opts.c (common_handle_option): Likewise. + * pretty-print.c: New file. + * c-pretty-print.h (pp_base): Override. + * c-pretty-print.c: Adjust use of macros throughout. + (pp_buffer): New macro. + (pp_newline): Likewise. + * c-objc-common.c (c_tree_printer): Adjust prototype. Tidy. + * Makefile.in (DIAGNOSTIC_H): New variable. + (c-errors.o): Use it. + (c-objc-common.o): Likewise. + (c-common.o): Likewise. + (c-opts.o): Likewise. + (c-format.o): Likewise. + (diagnostic.o): Likewise. + (opts.o): Likewise. + (toplev.o): Likewise. + (rtl-error.o): Likewise. + (dwarf2out.o): Likewise. + (jump.o): Likewise. + (pretty-print.o): New rule. + +2003-07-24 Roger Sayle + + * builtins.def (BUILT_IN_PRINTF, BUILT_IN_FPRINTF): Changed from + front-end builtins to normal builtins, using DEF_LIB_BUILTIN. + (BUILT_IN_PRINTF_UNLOCKED, BUILT_IN_FPRINTF_UNLOCKED): Changed + from front-end to normal builtins, using DEF_EXT_LIB_BUILTIN. + (DEF_FRONT_END_LIB_BUILTIN): Delete. + (DEF_EXT_FRONT_END_LIB_BUILTIN): Delete. + (BUILT_IN_FWRITE_UNLOCKED): Wrap long line. + + * builtins.c (build_string_literal): New function to construct + a char* pointer to a string literal. + (expand_builtin_fputs): Change 2nd argument from "int ignore" to + "rtx target" to be consistent with other expand_builtin_* functions. + Change 3rd argument from "int unlocked" to "bool unlocked". + (expand_builtin_printf): Rewrite of c_expand_builtin_printf from + c-common.c to avoid front-end dependencies. Optimize printf("") + as a no-op when the result isn't required. Handle embedded NULs + in format string. + (expand_builtin_fprintf): A rewrite of c_expand_builtin_fprintf + from c-common.c to avoid front-end dependencies. Likewise, optimize + fprintf(fp,"") as a no-op when the result isn't required, evaluating + fp for side-effects. Handle embedded NULs in format string. + (expand_builtin_sprintf): Fix typo. + (expand_builtin): Don't expand BUILT_IN_FPRINT{,_UNLOCKED} when not + optimizing. Adjust calls of expand_builtin_fputs to match the API + change. Expand BUILT_IN_PRINTF and BUILT_IN_PRINTF_UNLOCKED using + expand_builtin_printf. Likewise, expand BUILT_IN_FPRINTF_UNLOCKED + and BUILT_IN_FPRINTF using expand_builtin_fprintf. + + * c-common.c (is_valid_printf_arglist): Delete. + (c_expand_builtin): Delete. + (c_expand_builtin_printf): Moved to builtins.c. Delete. + (c_expand_builtin_fprintf): Moved to builtins.c. Delete. + (c_expand_expr): No longer treat CALL_EXPRs specially. + (CALLED_AS_BUILT_IN): Delete. + +2003-07-24 Zdenek Dvorak + + PR optimization/11631 + * gcse.c (store_motion): Connect infinite loops to exit. + +2003-07-24 Jason Merrill + + * tree.h (boolean_type_node): Move from C/C++/Java frontends. + (boolean_true_node, boolean_false_node): Likewise. + (enum tree_index): Add TI_BOOLEAN_{TYPE,FALSE,TRUE}. + * tree.c (build_common_tree_nodes): Init boolean_type_node. + (build_common_tree_nodes_2): Init boolean_{true,false}_node. + * stor-layout.c (set_sizetype): Handle an early BOOLEAN_TYPE. + * c-common.h (truthvalue_type_node): Renamed from boolean_type_node. + (truthvalue_true_node): Renamed from boolean_true_node. + (truthvalue_false_node): Renamed from boolean_false_node. + * c-decl.c: Just set truthvalue_* to integer_*. + * c-*.[ch]: s/boolean/truthvalue/. s/c_bool/boolean/. + +2003-07-24 Roger Sayle + + * c-decl.c (match_builtin_function_types): New subroutine of + duplicate_decls to test whether a redeclaration of a builtin + function is suitably close, i.e. the return type and all of + the argument types have the same modes as the builtin expects. + (duplicate_decls): Fuzzy type matching for builtin functions + moved to match_builtin_function_types. + +2003-07-24 Zdenek Dvorak + + * cfgloopmanip.c (duplicate_loop_to_header_edge): Update irreducible + flag correctly. + +2003-07-24 Zack Weinberg + + * c-decl.c: Search-and-replace change 'binding level' to + 'scope' in commentary. + (struct binding_level): Now struct c_scope. + (current_binding_level): Now current_scope. + (free_binding_level): Now scope_freelist. + (current_function_level): Now current_function_scope. + (global_binding_level): Now global_scope. + (make_binding_level): Now make_scope. + (pop_binding_level): Now pop_scope. + +2003-07-24 Rainer Orth + + * configure.in (libgcc_visibility): Add missing whitespace. + +2003-07-24 Richard Henderson + + * libgcc-std.ver (GCC_3.3.1): Export __gcc_personality_sj0, + __gcc_personality_v0. + +2003-07-24 Rainer Orth + + * Makefile.in: Replace pwd by ${PWD_COMMAND}. + +2003-07-24 Nathan Sidwell + + * doc/invoke.texi (-fprofile-arcs, -ftest-coverage): Update + documentation missed from my 2003-07-09 patch. + +2003-07-24 Nathanael Nerode + + * aclocal.m4 (_gcc_COMPUTE_GAS_VERSION): Set patch level to 0 if + it's not provided. + * configure: Rebuild. + +2003-07-24 Steven Bosscher + + PR c/10602 + * c-typeck.c (type_lists_compatible_p): Do not compare + arguments if one of them is an error_mark_node + +2003-07-24 Alan Modra + + * config/rs6000/rs6000.c (rs6000_emit_prologue): Save fp regs inline + if current_function_calls_eh_return. + +2003-07-23 Mark Mitchell + + * doc/c-tree.texi (OFFSET_TYPE): Update description. + +2003-07-23 Bob Wilson + + * config/xtensa/crti.asm (_init, _fini): Increase frame size to 64. + * config/xtensa/lib1funcs.asm (__mulsi3, __udivsi3, __divsi3, + __umodsi3, __modsi3): Increase frame size to 32. + +2003-07-23 Geoffrey Keating + + * config/rs6000/host-darwin.c: ANSIfy, update comment for sigaltstack + prototype. + +2003-07-23 Mark Mitchell + + * doc/c-tree.texi (Types): Update documentation for OFFSET_TYPE. + + PR optimization/10679 + * tree-inline.c (inlinable_function_p): Honor MIN_INLINE_INSNS. + +2003-07-23 John David Anglin + + PR target/11607 and PR target/11516 + * pa.md (extzv, extv, insv): Revert latter half of last patch. + +2003-07-22 Mark Mitchell + + * fold-const.c (force_fit_type): Handle OFFSET_TYPE. + * varasam.c (output_constant): Likewise. + +2003-07-22 Kazu Hirata + + * alias.c: Fix comment formatting. + * c-common.c: Likewise. + * c-decl.c: Likewise. + * c-opts.c: Likewise. + * combine.c: Likewise. + * cpplib.c: Likewise. + * diagnostic.c: Likewise. + * dojump.c: Likewise. + * final.c: Likewise. + * fold-const.c: Likewise. + * gcc.c: Likewise. + * gcse.c: Likewise. + * ggc-page.c: Likewise. + * jump.c: Likewise. + * loop.c: Likewise. + * mips-tfile.c: Likewise. + * recog.c: Likewise. + * regclass.c: Likewise. + * regmove.c: Likewise. + * tree.c: Likewise. + * tree.h: Likewise. + +2003-07-22 Per Bothner + + * line-map.c (add_line_map): Handle invalid LEAVE request. + Fixes PR preprocessor/11361. + +2003-07-22 Per Bothner + + * diagnostic.c.(diagnostic_report_current_module): Update to match + 2003-06-05 changes to push_srcloc and pop_srcloc. + +2003-07-22 Wolfgang Bangerth + + * doc/trouble.texi: Better document two-stage name lookup. + +2003-07-22 Eric Christopher + + * config/s390.c (s390_valid_pointer_mode): New. + (TARGET_VALID_POINTER_MODE): Use. + (s390_emit_prologue): Add tpf profiling hooks. + (s390_emit_epilogue): Ditto. + * config/s390.h (MASK_TPF): New. + (TARGET_TPF): Use. + (POINTERS_EXTEND_UNSIGNED): Define. + * config/s390.md (ptr_extend): New pattern. + +2003-07-22 Zack Weinberg + + * hashtable.c (approx_sqrt): Make static. + * hashtable.h: Don't prototype approx_sqrt. + * line-map.c (init_line_maps): Rename linemap_init. + (free_line_maps): Rename linemap_free. + (add_line_map): Rename linemap_add. + (lookup_line): Rename linemap_lookup. + (print_containing_files): Rename linemap_print_containing_files. + * linemap.h: Update to match. + + * cpperror.c, cppinit.c, cpplib.c, cppmacro.c: Update calls to + linemap routines to use new names. + +2003-07-16 Nathan Sidwell + + * c-common.c (handle_packed_attribute): Don't pack a struct via a + typedef. Propagate packedness from a main variant. + +2003-07-22 Nathanael Nerode + + * Makefile.in (install-common): Add dependency on installdirs. + +2003-07-21 Alexandre Oliva + + * c-common.c (c_common_type_for_mode): Return integer types for + pointer modes. + +2003-07-22 Geoffrey Keating + + * c-decl.c (start_decl): Don't call maybe_apply_pragma_weak here. + (finish_decl): Call maybe_apply_pragma_weak here. + (grokdeclarator): Check that DECL_ASSEMBLER_NAME isn't set before + TREE_PUBLIC and TREE_STATIC are decided. + (start_function): Move call to maybe_apply_pragma_weak. Check that + DECL_ASSEMBLER_NAME isn't set too early. + + * cpplex.c (_cpp_process_line_notes): Mention option name in + trigraphs warning. + +2003-07-22 Kazu Hirata + + * combine.c (if_then_else_cond): Simplify the comparison of + rtx against -1, 0, and 1. + * loop.c (check_dbra_loop): Likewise. + * optabs.c (emit_conditional_move): Likewise. + (emit_conditional_add): Likewise. + * config/i386/i386.md (*movsi_or): Likewise. + (*movdi_or_rex6): Likewise. + +2003-07-22 Jan Hubicka + + * cgraphunit.c (cgraph_finalize_compilation_unit): Remove redundant if. + +2003-07-21 Neil Booth + + * cppfiles.c (open_file_pch): Don't put unused entries in the + splay tree. Remove dead code. + +2003-07-21 Geoffrey Keating + + * c-common.h (num_in_fnames): Declare. + (c_static_assembler_name): Move from here... + * c-tree.h (c_static_assembler_name): ... to here. + * c-opts.c: Don't include langhooks-def.h. + (c_static_assembler_name): Move to c-decl.c. + (num_in_fnames): Make externally visible. + * c-decl.c: Include langhooks-def.h. + (c_static_assembler_name): Move from c-opts.c. + * Makefile.in (c-decl.o): Add $(LANGHOOKS_DEF_H). + (c-opts.o): Remove $(LANGHOOKS_DEF_H). + + * c-pragma.c (maybe_apply_pragma_weak): Don't get DECL_ASSEMBLER_NAME + when it's not needed. + +2003-07-21 Jakub Jelinek + + * config/rs6000/rs6000.h (machine_function): Add ra_need_lr. + * config/rs6000/rs6000.c (rs6000_return_addr): Set it. + (rs6000_emit_prologue): Save FPRs inline if set. + +2003-07-21 H.J. Lu + + * config/ia64/ia64.md (prefetch): Support predicate. + +2003-07-21 Josef Zlomek + + * cfgcleanup.c (merge_blocks_move_successor_nojumps): Use tablejump_p. + * rtlanal.c (tablejump_p): Use next_active_insn for finding the jump + table. + +2003-07-17 Eric Botcazou + + PR optimization/11536 + * unroll.c (loop_iterations): Do not replace a register holding + the final value by its equivalent before the loop if it is not + invariant. + +2003-07-21 Dave Fluri + + * doc/extend.texi: Fixes to spelling, grammar, and diction. + +2003-07-21 Ben Elliston + + * doc/invoke.texi (Optimize Options): Replace "it's" with "its". + (V850 Options): Spelling fixes. + +2003-07-20 Lisa M. Goldstein + + * doc/invoke.texi: Fixes to style, grammar and diction. + +2003-07-20 Roger Sayle + + * builtins.def (BUILT_IN_ALLOCA): Remove "#if SMALL_STACK" form. + * system.h (SMALL_STACK): Poison obsolete target macro. + * doc/tm.texi (SMALL_STACK): Remove target macro documentation. + +2003-07-20 Phil Edwards + + * configure.in: Cache the results of testing for cmp's capabilities. + * configure: Regenerate. + +2003-07-20 Mark Mitchell + + PR debug/11279 + * dwarf2out.c (gen_enumeration_type_die): Remember that + enumerators can be unsigned. + +2003-07-19 Zack Weinberg + + * c-decl.c (named_labels, shadowed_labels, label_level_chain) + (push_label_level, pop_label_level): Kill. + (struct binding_level): Rename level_chain to outer. + Add outer_function field. Change parm_flag, function_body, + keep, keep_if_subblocks to 1-bit bitfields of type bool. + (current_function_level): New variable. + (keep_next_level_flag, keep_next_if_subblocks): Change type to bool. + (keep_next_level, declare_parm_level, warn_if_shadowing): + Update to match. + (struct language_function): Kill named_labels, shadowed_labels fields. + (c_init_decl_processing, start_function, c_push__function_context) + (c_pop_function_context): No need to muck with named_labels nor + shadowed_labels. + + (make_binding_level): No need to clear the structure here. + (pop_binding_level): Always operate on current_binding_level. + Update current_function_level if necessary. + (pushlevel): Don't clear named_labels. Update current_function_level + if necessary. Use "true" and "false" where appropriate. + (poplevel): Diagnose labels defined but not used, or vice + versa, and clear out label-meanings leaving scope, while + walking down the decls list, for all binding levels. + Handle LABEL_DECLs appearing in the shadowed list. + pop_binding_level takes no arguments. + (pushdecl_function_level): Use current_function_level. + + (make_label, bind_label): New static functions. + (declare_label): New exported function. + (lookup_label, define_label): Rewritten for new data structure. + (shadow_label): Kill. + + * c-tree.h: Prototype declare_label; don't prototype + push_label_level, pop_label_level, nor shadow_label. + * c-parse.in: Remove all calls to push_label_level and + pop_label_level. Use declare_label for __label__ decls. + + * doc/extend.texi: Clarify that __label__ can be used to + declare labels with local scope in any nested block, not + just statement expressions. Cross-reference nested functions + section from local labels section. + +2003-07-19 Zdenek Dvorak + + * sched-rgn.c (find_rgns): Initialize current_edge correctly. + +2003-07-19 Phil Edwards + + * doc/makefile.texi (restrap, profiledbootstrap): Document targets. + +2003-07-19 Kaveh R. Ghazi + + * fixinc/fixfixes.c fixinc/fixincl.c fixinc/fixlib.c + fixinc/server.c objc/objc-act.c: Remove unnecessary casts. + +2003-07-19 Ulrich Weigand + + * config/s390/s390.c (legitimize_pic_address): Access local symbols + relative to the GOT instead of relative to the literal pool base. + (s390_output_symbolic_const): Handle new GOT-relative accesses. + * config/s390/s390.md ("call"): Access local functions and PLT stubs + relative to the GOT instead of relative to the literal pool base. + ("call_value"): Likewise. + ("call_value_tls"): Likewise. + + * config/s390/s390.c (s390_chunkify_start): Remove pool anchor + reloading. Support LTREL_BASE / LTREL_OFFSET construct. + (s390_chunkify_finish): Likewise. + (s390_chunkify_cancel): Likewise. + (s390_reorg): Adapt caller. + (find_base_register_in_addr, + find_base_register_ref, replace_base_register_ref): Delete. + (find_ltrel_base, replace_ltrel_base): New functions. + (find_constant_pool_ref): Handle LTREL_BASE unspecs. + (s390_decompose_address): Handle LTREL_BASE unspecs. Optimize + base vs. index register usage. + (struct constant_pool): Remove 'anchor'. + (s390_add_anchor): Delete. + (s390_dump_pool): Remove anchor handling. + * config/s390/s390.md ("reload_anchor"): Remove. + + * config/s390/s390.c (s390_split_branches): Use LTREL_BASE/OFFSET. + (s390_load_got): New function. Use LTREL_BASE/OFFSET. + (s390_emit_prologue): Use it. + * config/s390/s390.md ("builtin_longjmp", "builtin_setjmp_setup", + "builtin_setjmp_receiver"): Cleanup. Use s390_load_got. Do not + hard-code register 14. + * config/s390/s390-protos.h (s390_load_got): Declare. + + * config/s390/s390.c (NR_C_MODES, constant_modes, gen_consttable): + Support TImode constants. + * config/s390/s390.md ("consttable_ti"): New. + ("consttable_si", "consttable_di"): Handle TLS symbols correctly. + + * config/s390/s390.md (UNSPEC_LTREL_OFFSET, UNSPEC_LTREL_BASE, + UNSPEC_GOTENT, UNSPEC_GOT, UNSPEC_GOTOFF, UNSPEC_PLT, UNSPEC_PLTOFF, + UNSPEC_RELOAD_BASE, UNSPECV_POOL, UNSPECV_POOL_START, UNSPECV_POOL_END, + UNSPECV_POOL_QI, UNSPECV_POOL_HI, UNSPECV_POOL_SI, UNSPECV_POOL_DI, + UNSPECV_POOL_TI, UNSPECV_POOL_SF, UNSPECV_POOL_DF, UNSPECV_MAIN_POOL): + New symbolic constants. + ("consttable_qi", "consttable_hi", "consttable_si", "consttable_di", + "consttable_sf", "consttable_df", "pool_start_31", "pool_end_31", + "pool_start_64", "pool_end_64", "reload_base_31", "reload_base_64", + "pool", "literal_pool_31", "literal_pool_64"): Cleanup. Use + symbolic UNSPEC values. + * config/s390/s390.c (larl_operand, s390_short_displacement, + bras_sym_operand, s390_cannot_force_const_mem, + s390_delegitimize_address, s390_decompose_address, + legitimize_pic_address, s390_output_symbolic_const, + s390_function_profiler): Use symbolic UNSPEC values. + +2003-07-19 Kaveh R. Ghazi + + * alias.c alloc-pool.c bitmap.c bitmap.h bt-load.c builtins.c + c-common.c c-decl.c c-incpath.c c-lex.c c-opts.c c-parse.in + c-pragma.c c-typeck.c calls.c cfg.c cfganal.c cfgloop.c cfgrtl.c + collect2.c combine.c conflict.c coverage.c cppexp.c cppfiles.c + cpphash.c cppinit.c cpplex.c cpplib.c cppmacro.c cppspec.c + cpptrad.c cse.c cselib.c dbxout.c defaults.h df.c dominance.c + dwarf2out.c dwarfout.c emit-rtl.c except.c expmed.c expr.c final.c + fix-header.c flow.c fold-const.c function.c gcc.c gccspec.c gcov.c + gcse.c genattr.c genattrtab.c genautomata.c genconditions.c + genemit.c genextract.c genoutput.c genrecog.c gensupport.c + ggc-page.c ggc-simple.c global.c graph.c haifa-sched.c hashtable.c + integrate.c jump.c langhooks.c lcm.c line-map.c local-alloc.c + loop.c mips-tdump.c mips-tfile.c mkdeps.c optabs.c params.c + postreload.c prefix.c print-tree.c protoize.c ra-build.c + ra-colorize.c ra-rewrite.c ra.c recog.c reg-stack.c regclass.c + regmove.c regrename.c reload.c reload1.c reorg.c resource.c + sbitmap.c sched-deps.c sched-rgn.c sched-vis.c sdbout.c + simplify-rtx.c ssa-ccp.c ssa.c stmt.c stor-layout.c timevar.c + tlink.c toplev.c tree-dump.c tree.c unroll.c unwind-dw2-fde.c + varasm.c varray.c vmsdbgout.c xcoffout.c: Remove unnecessary + casts. + +2003-07-19 Gabriel Dos Reis + + * c-pragma.c (apply_pragma_weak): Don't use warning_with_decl. + * toplev.h (warning): Remove attribute. + +2003-07-19 Gabriel Dos Reis + + * c-decl.c (c_finish_incomplete_decl): Don't use xxx_with_decl. + (pop_label_level): Likewise. + (duplicate_decls): Likewise. + (implicitly_declare): Likewise. + (shadow_label): Likewise. + (start_decl): Likewise. + (finish_decl): Likewise. + (grokdeclarator): Likewise. + (get_parm_info): Likewise. + (detect_field_duplicates): Likewise. + (finish_struct): Likewise. + (start_function): Likewise. + (store_parm_decls): Likewise. + (finish_function): Likewise. + (c_expand_body_1): Likewise. + (check_for_loop_decls): Likewise. + (merge_translation_unit_decls): Likewise. + +2003-07-19 Neil Booth + + * common.opt: Document --param. + * opts.c (columns, undocumented_msg): New. + (print_help): Get number of columns from environment. Print + --param help. Tweak newline handling. + (print_param_help): New. + (print_filtered_help): Better handling of duplicates. Complain + about undocumented switches. + (print_switch): New. + (wrap_help): Improve wrapping, use COLUMNS. + * opts.sh: Ignore comments in records. + * params.def: Fix typos and remove trailing periods. + * toplev.c (display_help): Don't dump --param help. + * doc/sourcebuild.texi: Update. + +2003-07-18 Richard Henderson + + PR target/11556 + * optabs.c (prepare_operand): Fail gracefully instead of abort + if the predicate doesn't satisfy. + (gen_cond_trap): Allow prepare_operand to fail. + +2003-07-19 Gabriel Dos Reis + + * c-common.c: Don't undefine GCC_DIAG_STYLE. + (fname_decl): Don't use xxx_with_decl. + (c_add_case_label): Likewise. + (handle_section_attribute): Likewise. + (handle_alias_attribute): Likewise. + (handle_no_instrument_function_attribute): Likewise. + (handle_no_limit_stack_attribute): Likewise. + * c-objc-common.c (c_tree_printer): Print IDENTIFIER_NODEs. + * c-format.c (gcc_cdiag_char_table): Add '%E' format-specifier. + +2003-07-19 Zdenek Dvorak + + * Makefile.in (ifcvt.o): Add cfgloop.h. + * basic-block.h (EDGE_LOOP_EXIT): New flag. + * cfgrtl.c (rtl_verify_flow_info_1): Handle it correctly. + * ifcvt.c: Include cfgloop.h. + (mark_loop_exit_edges): New static function. + (if_convert): Call it. + (find_if_header): Ignore branches out of loops. + +2003-07-18 Kazu Hirata + + * combine.c (simplify_comparison): Don't share rtx when converting + (ne (and (not X) 1) 0) to (eq (and X 1) 0). + +2003-07-18 David Edelsohn + + * config/rs6000/aix.h (AGGREGATE_PADDING_FIXED): Define. + (AGGREGATES_PAD_UPWARD_ALWAYS): Define. + (MUST_PASS_IN_STACK): Define. + (BLOCK_REG_PADDING): Define. + +2003-07-18 Richard Henderson + + * cfgrtl.c (force_nonfallthru_and_redirect): Use tablejump_p + to skip the addr_vec. + +2003-07-18 Alexandre Oliva + + * combine.c (combinable_i3pat): Don't forbid occurrences of + i2dest or i1dest in inner_dest if inner_dest is a mem. + +2003-07-18 Jan Hubicka + + * cgraph.c (cgraph_remove_node): Clear the hash table slot. + +2003-07-17 Jakub Jelinek + + PR target/11087 + * loop.c (basic_induction_var): Check if convert_modes emitted any + instructions. Remove them and return 0 if so. + +2003-07-18 Eric Botcazou + + PR optimization/11083 + * toplev.c (rest_of_handle_addresof): Rename into + rest_of_handle_addressof. Delete unreachable blocks + if dead edges were purged after the addressof pass. + +2003-07-18 Neil Booth + + * Makefile.in, configure, configure.in: Remove handling of + lang-options.h and options_.h. + * toplev.c (struct lang_opt, documented_lang_options): Remove. + (display_help): Don't use documented_lang_options. + +2003-07-17 Zack Weinberg + + * c-decl.c (pushdecl_function_level): Make static, return nothing. + (kept_level_p): Fold into poplevel. + (undeclared_variable): Moved here from c-typeck.c. Export. + * c-tree.h (KEEP_YES, KEEP_NO, KEEP_MAYBE): New #defines. + (undeclared_variable): Prototype here. Don't prototype + kept_level_p nor pushdecl_function_level. + * c-parse.in: Change first argument to poplevel from + "kept_level_p()" to "KEEP_MAYBE". + * c-typeck.c (undeclared_variable): Moved to c-decl.c. + +2003-07-17 Roger Sayle + + * simplify-rtx.c (simplify_rtx): Use simplify_gen_binary to swap + commutative operands instead of modifying the RTL in-place. + +2003-07-17 Mark Mitchell + + PR optimization/11557 + * calls.c (flags_from_decl_or_type): Do not set ECF_LIBCALL_BLOCK + unless we know which function is being called. + +2003-07-17 Roger Sayle + + * cse.c (fold_rtx): Use swap_commutative_operands_p to determine + whether to reorder the operands of a commutative binary operator. + +2003-07-17 Roger Sayle + + * fold-const.c (const_binop): Avoid performing the FP operation at + compile-time, if either operand is NaN and we honor signaling NaNs, + or if we're dividing by zero and either flag_trapping_math is set + or the desired mode doesn't support infinities. + (fold_initializer): New function to fold an expression ignoring any + potential run-time exceptions or traps. + * tree.h (fold_initializer): Prototype here. + * c-typeck.c (build_binary_op): Move to the end of the file so + that intializer_stack is in scope. If constructing an initializer, + i.e. when initializer_stack is not NULL, use fold_initializer to + fold expressions. + * simplify-rtx.c (simplify_binary_operation): Likewise, avoid + performing FP operations at compile-time, if they would raise an + exception at run-time. + +2003-07-17 Geoffrey Keating + + PR 11498 + * Makefile.in (c-opts.o): Add $(LANGHOOKS_DEF_H). + (langhooks.o): Add $(GGC_H), gt-langhooks.h. + (GTFILES): Add langhooks.c. + (gt-langhooks.h): New. + * c-common.h (c_static_assembler_name): Prototype. + * c-lang.c (LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): Define. + * objc/objc-lang.c (LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): Define. + * c-opts.c: Include langhooks-def.h. + (c_static_assembler_name): New. + * langhooks.c: Include ggc.h. Include gt-langhooks.h. + (var_labelno): New. + (lhd_set_decl_assembler_name): Give static objects with context + unique names. + * varasm.c (var_labelno): Delete. + (make_decl_rtl): Don't change the assembler name once it's set. + + * c-opts.c (this_input_filename): New. + (finish_options): Take new parameter, name of file being compiled. + Update callers. Set this_input_filename. + (push_command_line_include): Use this_input_filename not + main_input_filename. + +2003-07-17 Neil Booth + + * Makefile.in: Depend .pot generation on options.c. + * po/exgettext: Add an extra_files variable containing additional + files to scan. + +2003-07-17 Zack Weinberg + + * objc/objc-lang.c: Override LANG_HOOKS_WRITE_GLOBALS to + c_write_global_declarations. + + * c-decl.c: Fix typos in several comments. Remove all + #if 0 blocks; reindent as needed. Remove unused argument + to declare_parm_level; all callers changed. + * c-parse.in: Update calls to declare_parm_level. Avoid + issuing a double warning in some circumstances. + * c-typeck.c: Update calls to declare_parm_level. + * c-tree.h: Update prototype of declare_parm_level. + + * c-pragma.c (apply_pragma_weak): Don't complain about a + redundant #pragma weak. + + * objc/objc-act.c (forward_declare_categories, + build_selector_reference_decl, build_class_reference_decl, + build_objc_string_decl, synth_forward_declarations, + build_protocol_reference): Set TREE_PUBLIC on synthetic + forward decl to 0, consistent with eventual definition. + Correct comments to match. + + * fixinc/inclhack.def (solaris_mutex_init_2): Escape braces + in regexp that don't form a range expression. + * fixinc/fixincl.def: Regenerate. + +2003-07-17 Richard Henderson + + PR target/10907 + * config/ia64/ia64.c (ia64_epilogue_uses): GP is live at end + even with !TARGET_CONST_GP. + (ia64_function_ok_for_sibcall): Reject non-local functions. + +2003-07-17 Steven Bosscher + + * c-common.c (c_estimate_num_insns_1): Don't handle + METHOD_CALL_EXPR. + * expr.c (safe_from_p): Likewise. + * gengtype.c (adjust_field_tree_exp): Likewise. + * stmt.c (warn_if_unused_value): Likewise + * tree.c (first_rtl_op): Likewise. + * tree.def: Don't define METHOD_CALL_EXPR. + * java/lang.c (java_estimate_num_insns_1): Don't handle + METHOD_CALL_EXPR. + +2003-07-17 Eric Botcazou + + PR other/11466 + * doc/invoke.texi (SPARC Options): Document "-mlittle-endian" + and its restrictions for the SPARC64 port. + Move the entry of "-mimpure-text" before that of "-mv8". + +2003-07-17 Eric Botcazou + Phil Edwards + + * doc/install.texi (*-*-solaris2*): Document the step-by-step + procedure to bootstrap and install. + Document the preference for the legacy Sun tools in /usr/bin + over the POSIX tools in /usr/xpg4/bin for the build process. + +2003-07-17 Neil Booth + + * c.opt: Document Uncodumented; use it. Document ObjC options. + * opts.c (print_filtered_help): Skip undocumented switches. + * opts.h (CL_UNDOCUMENTED): New. + * opts.sh: Handle Undocumented. + * toplev.c (documented_lang_options): Prevent its becoming empty. +objc: + * lang-options.h: Remove. + +2003-07-16 Ulrich Weigand + + * loop.c (check_ext_dependent_givs): Pass const struct loop * + instead of struct loop_info * as argument. Accept BIVs with + increment +/- 1 provided there is a friendly exit test against + a loop-invariant value. + (strength_reduce): Adapt call to check_ext_dependent_givs. + +2003-07-16 J"orn Rennecke + Con Bradley + + * sh-protos.h (sh_get_pr_initial_val): Declare. + * sh.c (regno_reg_class): Make its elements type enum reg_class. + (output_stack_adjust): Remove emit_fn argument. Add epilogue_p + and live_regs_mask arguments. Changed all callers. + (save_schedule_s): New structure. + (save_schedule): New typedef. + (scavenge_reg, sh5_schedule_saves, sh5_schedule_saves): New functions. + (calc_live_regs): For TARGET_SHMEDIA, use leaf_function_p. + In interrupts handlers, also save registers that are usually + partially saved, and make sure there is at least one general purpose + register saved if a target register needs saving. + Add casts in comparisons to avoid warnings. + (sh_media_register_for_return): return -1 for interrupt handlers. + (MAX_SAVED_REGS, MAX_TEMPS): New defines. + (sh_expand_prologue): Use sh5_schedule_saves. Check that any temp + registers used are available. + Set RTX_FRAME_RELATED_P where appropriate. + Add an REG_FRAME_RELATED_EXPR for r0 + offset addressing. + (sh_expand_epilogue, sh_set_return_address): Use sh5_schedule_saves. + (initial_elimination_offset): Likewise. + * sh.h (DWARF_CIE_DATA_ALIGNMENT): Set to -4. + (LOCAL_ALIGNMENT, GENERAL_REGISTER_P): Add casts to avoid warnings. + (FP_REGISTER_P): Add casts to fix broken handling of unsigned REGNO. + (XD_REGISTER_P, TARGET_REGISTER_P): Likewise. + (HARD_REGNO_CALL_PART_CLOBBERED): Also yield nonzero for r15, + and for target registers. + (RETURN_IN_MEMORY): Add parentheses to avoid warnings. + (regno_reg_class): Make its elements type enum reg_class. + (CONSTRAINT_LEN): Don't use isdigit. + (FUNCTION_ARG_REGNO_P): Add casts to avoid warnings. + (FUNCTION_ARG): Add parentheses to avoid warnings. + (RETURN_ADDR_RTX): Use sh_get_pr_initial_val. + (RETURN_ADDR_OFFSET): Define to -1 for TARGET_SH5. + (SH_DBX_REGISTER_NUMBER): Add casts to avoid warnings. + (EH_RETURN_DATA_REGNO): Use unsigned constants to avoid warnings. + * sh.md (xordi3+1): Remove unused variable regno. + (return_media): Check that tr0 is available before using it. + +2003-07-16 Neil Booth + + * c.opt: Document more options. + +2003-07-16 Roger Sayle + + * combine.c (subst): Also handle (subreg (const_double ...)) case + if created by a substitution, by using the original inner mode. + +2003-07-16 Roger Sayle + + * simplify-rtx.c (simplify_replace_rtx): Convert constant comparisons + to MODE_FLOAT constants if FLOAT_STORE_FLAG_VALUE is defined. + (simplify_rtx): Likewise. Simplify (lo_sum (high X) X) as X. + +2003-07-16 Andrew Pinski + + * doc/install.texi (--without-headers): New. + + Partial Fix PR/10129 + * config/darwin.c (machopic_function_base_name): Only Return "". + (machopic_output_function_base_name): New; print the true pic label. + (machopic_classify_ident): Pic Base is always a defined data. + * config/darwin.h (ASM_OUTPUT_LABELREF): Support the pic base label. + * config/darwin-proto.h (machopic_output_function_base_name): Prototype. + + * gcse.c (gcse_constant_p): COMPARE of the same registers is a constant + if they are not floating point registers. + + PR c/10962 + * ggc.h: Add header guards. + * c-decl.c (finish_struct): Sort fields if + number greater than 15 and there are no + anonymous structs/unions. + * c-common.h: Include ggc.h. + (sorted_fields_type): New struct. + (field_decl_cmp): New prototype. + (resort_sorted_fields): New prototype. + (DECL_DECLARES_TYPE_NON_TEMPLATE_P): New macro. + * c-tree.h: (lang_type): Use pointer to sorted_fields_type + as s, removing other fields. + * c-typeck.c (lookup_field): Use s in lang_type. + These were mostly moved from cp/class.c: + * c-common.c (field_decl_cmp): New static function. + (field_decl_cmp): New function. + (resort_sorted_fields): New function. + +2003-07-16 Geoffrey Keating + + * config/darwin.c (machopic_select_section): Use decl_readonly_section + to do most of the work. + +2003-07-16 Hans-Peter Nilsson + + * config/mmix/mmix-protos.h: Convert prototypes to ISO C90. + * config/mmix/mmix.c: Convert functions to ISO C90. + (mmix_eh_return_handler_rtx, mmix_output_shifted_value): Tweak + formatting. + (mmix_get_hard_reg_initial_val): Tweak section head comment. + +2003-07-16 J"orn Rennecke + + * c-pragma.h (HANDLE_PRAGMA_WEAK): Always define to SUPPORTS_WEAK. + +2003-07-16 Jakub Jelinek + + * unwind-dw2.c (MD_FROB_UPDATE_CONTEXT): Define. + (uw_update_context_1): Use it. + * config/rs6000/rs6000.c (insn_after_throw): Remove. + (rs6000_aix_emit_builtin_unwind_init): Save $r2 to its location + in parent frame if _Unwind_* called directly instead of through + .plt. + (rs6000_emit_eh_toc_restore): Remove. + (rs6000_emit_prologue): Update stack pointer before doing any saving + if current_function_calls_eh_return. Generate unwind info for $r2. + (rs6000_emit_epilogue): Restore stack pointer after doing all + restoring if current_function_calls_eh_return. Restore $r2. + * config/rs6000/rs6000-protos.h (rs6000_emit_eh_toc_restore): Remove. + * config/rs6000/rs6000.md (eh_return): Remove call to + rs6000_emit_eh_toc_restore. + * config/rs6000/linux64.h (MD_FROB_UPDATE_CONTEXT): Define. + * config/rs6000/aix.h (MD_FROB_UPDATE_CONTEXT): Define. + +2003-07-15 Jakub Jelinek + + * expr.c (emit_block_move): Don't move anything if size is const 0. + (clear_storage): Test against const0_rtx instead of comparing INTVAL + against 0. + +2003-07-15 David S. Miller + + * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Only + emit nop if the last real insn is CALL_INSN. + +2003-07-16 Danny Smith + + * config/i386/xm-mingw32.h (HOST_BIT_BUCKET): Define + as "nul". + * config/i386/xm-mingw32.h: Change GNU CC to GCC. + +2003-07-16 Danny Smith + + * config/i386/winnt.c (associated_type): Artificial methods are not + affected by the import/export status of their class unless they are + COMDAT. + (i386_pe_dllimport_p): Do not mark artificial methods as dllimport. + + * config/i386/winnt.c: Fix GCC copyright comment. + +2003-07-16 Gabriel Dos Reis + + PR c++/11531 + * diagnostic.c (diagnostic_report_diagnostic): Don't ICE if we're + not recursing on hard error. + (diagnostic_for_decl): Likewise. + * diagnostic.def: Rearrange. + +2003-07-15 J"orn Rennecke + + * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes): + If DWARF_FRAME_RETURN_COLUMN doesn't have a register mode, use Pmode. + +2003-07-15 J"orn Rennecke + Richard Henderson + + * unwind-dw2.c (_Unwind_GetGR): Use dwarf_reg_size_table + to decide if to access a _Unwind_Ptr or a _Unwind_Word. + (_Unwind_SetGR): Likewise. + (_Unwind_GetPtr, _Unwind_SetSpColumn): New functions. + (Unwind_SpTmp): New typedef. + (uw_update_context_1): Use _Unwind_SetSpColumn and _Unwind_GetPtr. + (uw_update_context): Use _Unwind_GetPtr. + (init_dwarf_reg_size_table): Move above uw_init_context_1. + (uw_init_context_1): Initialize dwarf_reg_size_table if necessary. + Use _Unwind_SetSpColumn. + (uw_install_context_1): Don't initialize dwarf_reg_size_table. + Use _Unwind_GetPtr. + +2003-07-15 Neil Booth + + * c.opt: Document more options. + * toplev.c (documented_lang_options): Remove all local help strings. + +2003-07-15 Mark Mitchell + + PR debug/11473 + * dbxout.c (dbxout_type): Use TYPE_SIZE to determine the sizes of + base classes. + +2003-07-15 Kazu Hirata + + PR target/10795 + * config/i386/i386.c (ix86_expand_carry_flag_compare): Don't + swap comparison operands if doing so would generate an + unrecognizable insn. + +2003-07-15 Eric Botcazou + + PR optimization/11320 + * sched-int.h (struct deps) [reg_conditional_sets]: New field. + (struct sched_info) [compute_jump_reg_dependencies]: New prototype. + * sched-deps.c (sched_analyze_insn) [JUMP_INSN]: Update call to + current_sched_info->compute_jump_reg_dependencies. Record which + registers are used and which registers are set by the jump. + Clear deps->reg_conditional_sets after a barrier. + Set deps->reg_conditional_sets if the insn is a COND_EXEC. + Clear deps->reg_conditional_sets if the insn is not a COND_EXEC. + (init_deps): Initialize reg_conditional_sets. + (free_deps): Clear reg_conditional_sets. + * sched-ebb.c (compute_jump_reg_dependencies): New prototype. + Mark registers live on entry of the fallthrough block and conditionally + set as set by the jump. Mark registers live on entry of non-fallthrough + blocks as used by the jump. + * sched-rgn.c (compute_jump_reg_dependencies): New prototype. + Mark new parameters as unused. + +2003-07-15 Richard Sandiford + + * doc/invoke.texi: Resync MIPS -march documentation. + +2003-07-15 Richard Sandiford + + * config/mips/mips.h (PROCESSOR_R9000): New processor_type. + (TARGET_MIPS9000, TUNE_MIPS9000): New macros. + (GENERATE_MULT3_SI): True for TARGET_MIPS9000. + * config/mips/mips.c (mips_cpu_info_table): Add rm9000 entry. + (mips_rtx_costs): Adjust integer multiplication costs for the rm9000. + (mips_issue_rate): Handle PROCESSOR_R9000. + (mips_use_dfa_pipeline_interface): Likewise. + * config/mips/9000.md: New file. + * config/mips/mips.md: Include it. + (define_attr cpu): Add r9000. + (mulsi3_mult3): Use "mul" for rm9000 code. + +2003-07-15 Stan Cox + + * config/mips/mips.h (PROCESSOR_R7000): New processor_type. + (TARGET_MIPS7000, TUNE_MIPS7000): New macros. + (GENERATE_MULT3_SI): True for TARGET_MIPS7000. + * config/mips/mips.c (mips_cpu_info_table): Add rm7000 entry. + (mips_rtx_costs): Adjust integer multiplication costs for the rm7000. + (mips_issue_rate): Handle PROCESSOR_R7000. + (mips_use_dfa_pipeline_interface): Likewise. + * config/mips/7000.md: New file. + * config/mips/mips.md: Include it. + (define_attr cpu): Add r7000. + (mulsi3_mult3): Use "mul" for rm7000 code. + +2003-07-15 Richard Sandiford + + * config/mips/mips.md (define_attr type): Add condmove. Use it for + the conditional move patterns. + * config/mips/5400.md (ir_vr54_move): Rename to ir_vr54_condmove. + Check for condmove type. + (ir_vr54_arith): Add move type. + * config/mips/5500.md (ir_vr55_move, ir_vr55_arith): Likewise. + * config/mips/sr71k.md (ir_sr70_move, ir_sr70_arith): Likewise. + +2003-07-15 Neil Booth + + * c-opts.c (print_help): Remove. + (c_common_handle_option): Don't handle --help. + * c.opt: Document some options. + (--help): Remove. + * opts.c (print_filtered_help): New. + (print_help): Use it. + +2003-07-14 Geoffrey Keating + + * c-common.c (c_common_type_for_mode): Handle V4DFmode. + * tree.c: (build_common_tree_nodes_2): Likewise. + * tree.h (enum tree_index): Add TI_V4DF_TYPE. + (V4DF_type_node): New. + + * c-opts.c (push_command_line_include): Don't free deferred_opts, + we'll need it. + (finish_options): Reset init_cursor. + +2003-07-15 Kazu Hirata + + * expr.c (expand_assignment): Remove an unused argument + SUGGEST_REG. + * expr.h: Update the prototype. + * function.c: Update the callers. + * stmt.c: Likewise. + +2003-07-14 Mark Mitchell + + PR debug/11098 + * integrate.c (copy_decl_for_inlining): Do not mark copied decls + as DECL_ABSTRACT. + +2003-07-14 Nathanael Nerode + + * fixinc/inclhack.def (avoid_bool_define, avoid_bool_type): Bypass + with __cplusplus, not "we must use the C++ compiler's type" + * fixinc/inclhack.def (void_null): Note that Interix needs this. + * fixinc/fixincl.x: Regenerate. + +2003-07-14 Geoffrey Keating + + * unwind-dw2-fde-darwin.c (live_image_destructor): Get seen_objects + and unseen_objects from the global data before calling + __deregister_frame_info_bases. + (examine_objects): Insert objects into the seen_objects list, + not unseen_objects. + (_Unwind_Find_FDE): Always unlock the global object lists, even if + we couldn't allocate a data structure to put in it. + + * objc/objc-act.h (CLASS_SUPER_NAME): Add a little typechecking. + (TYPE_PROTOCOL_LIST): Share use of type.context with C frontend. + (SET_TYPE_PROTOCOL_LIST): New. + * objc/objc-act.c (get_static_reference): Use SET_TYPE_PROTOCOL_LIST. + (get_object_reference): Likewise. + +2003-07-14 Jan Hubicka + + * cfglayout.c (locator_file): Break out from .... + (insn_file): ... here. + (locator_line): Break out from .... + (insn_line): ... here. + * rtl.h (locator_file, locator_line): Declare. + (final_start_function): Set proper line/file info. + +2003-07-14 Gabriel Dos Reis + + * c-pretty-print.c (pp_c_unary_expression): A CONVERT_EXPR is + handled by pp_c_cast_expression. + +2003-07-14 Richard Sandiford + + * config/mips/mips.c (mips_expand_prologue): Use a single insn to + allocate 32768 bytes of stack. Use addition rather than subtraction + when a single insn is enough. + * config/mips/mips.md: Remove insns and splitters for subtracting + constants. + (subsi3): Only accept register operands. + (subsi3_internal): Likewise. Use for TARGET_MIPS16 as well. + (subdi3_internal_3, subsi3_internal_2): Likewise. + (casesi): Use expand_binop to subtract the lower bound. + +2003-07-14 Richard Sandiford + + * config/mips/mips.c (mips_in_small_data_p): Don't handle + TARGET_MIPS16 specially. + +2003-07-14 Richard Sandiford + + * config/mips/elf.h (ASM_OUTPUT_ALIGNED_BSS): Use + mips_output_aligned_bss. + * config/mips/linux.h: Likewise. + * config/mips/mips-protos.h (mips_output_aligned_bss): Declare. + * config/mips/mips.c (mips_output_aligned_bss): New function. + + * config/mips/elf.h (DBX_DEBUGGING_INFO): Delete. + * config/mips/elf64.h: Likewise. + + * config/mips/elf.h (ASM_DECLARE_OBJECT_NAME): Use + mips_declare_object_name. + (ASM_FINISH_DECLARE_OBJECT): Likewise mips_finish_declare_object. + * config/mips/elf64.h: As for elf.h. + * config/mips/iris6.h: Likewise. + * config/mips/linux.h (ASM_DECLARE_OBJECT_NAME): As for elf.h. + * config/mips/mips.h (ASM_DECLARE_OBJECT_NAME): Remove unnecessary + do...while (0) block. + * config/mips/mips-protos.h (mips_declare_object_name): Declare. + (mips_finish_declare_object): Declare. + * config/mips/mips.c (mips_declare_object_name): New function. + (mips_finish_declare_object): New function. + + * config/mips/elf.h (SBSS_SECTION_ASM_OP): Delete. + * config/mips/linux.h: Likewise. + + * config/mips/mips.c (inside_function): Delete. + (file_in_function_warning, ignore_line_number): Delete. + (mips_output_filename): Don't warn about changing filenames within + a function. + (mips_output_lineno): Update accordingly. + (mips_output_function_prologue): Don't reset the deleted variables. + * config/mips/mips.h (inside_function): Delete. + (file_in_function_warning, ignore_line_number): Delete. + + * config/mips/elf.h (OBJECT_FORMAT_COFF, EXTENDED_COFF): Remove undefs. + * config/mips/elf64.h: Likewise. + * config/mips/openbsd.h: Likewise. + * config/mips/iris5.h (OBJECT_FORMAT_COFF): Remove undefs. + * config/mips/linux.h: Likewise. + * config/mips/mips.h (OBJECT_FORMAT_COFF, EXTENDED_COFF): Delete. + (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB, MIPS_UNMARK_STAB): Delete. + + * config.gcc (mips-sgi-irix6*o32, mips-sgi-irix5*): Add mips/sdb.h + to the list of include files when using gas. + (mips*el-*-openbsd*, mips*-*-openbsd*): Add mips/sdb.h unconditionally. + * config/mips/elf.h: Remove #undef SDB_DEBUGGING_INFO. + * config/mips/elf64.h: Likewise. + * config/mips/iris5.h: Likewise. + * config/mips/linux.h: Likewise. + * config/mips/iris5gas.h (SDB_DEBUGGING_INFO): Remove definition. + * config/mips/mips.h (PREFERRED_DEBUGGING_TYPE): Likewise. + (SDB_DEBUGGING_INFO, sdb*, SDB_ALLOW_*, PUT_SDB*): Move to... + * config/mips/sdb.h: ...this new file. + +2003-07-14 Douglas Rupp + + * fixinc/server.c (server_setup): Don't use non-POSIX NULL first + argument to getcwd; use fixed buffer instead. + +2003-07-14 Nathanael Nerode + + * fixinc/mkfixinc.sh: Treat OpenBSD normally. + * fixinc/fixinc.wrap: Delete. + +2003-07-14 Dan Nicolaescu + + * ggc-page.c (extra_order_size_table): Insns have 9 slots. Regs + don't have 2. + +2003-07-14 Dan Nicolaescu + + * ggc-page.c (struct globals): Add new fields to keep track of the + total allocated memory and overhead. + (ggc_print_statistics): Print them. + (ggc_alloc): Keep track of the total allocated memory and the + overhead. + + * tree.c (dump_tree_statistics): Increase spacing. + (enum tree_node_kind): Move to ... + * tree.h (enum tree_node_kind): ... here. + (tree_node_counts, tree_node_sizes): Declare. + +2003-07-14 James A. Morrison + + * doc/include/texinfo.tex: Upgrade to texinfo 4.6. + +2003-07-14 Franz Sirl + + PR optimization/11440 + * gcse.c (try_replace_reg): Don't attach notes to ZERO_EXTRACT or + SIGN_EXTRACT SETs. + +2003-07-14 Alan Modra + + * doc/tm.texi (BLOCK_REG_PADDING): Describe. + * expr.h (struct locate_and_pad_arg_data): Add where_pad. + (emit_group_load, emit_group_store): Adjust declarations. + Remove most occurrences of #ifdef TREE_CODE. + * expr.c (emit_group_load): Add "type" param, and use + BLOCK_REG_PADDING to determine need for a shift. Optimize non- + aligned accesses if !SLOW_UNALIGNED_ACCESS. + (emit_group_store): Likewise. + (emit_push_insn, expand_assignment, store_expr, expand_expr): Adjust + emit_group_load and emit_group_store calls. + * calls.c (store_unaligned_arguments_into_pseudos): Tidy. Use + BLOCK_REG_PADDING to determine whether we need endian_correction. + (load_register_parameters): Localize vars. Handle shifting of + small values to the correct end of regs. Adjust emit_group_load + call. + (expand_call, emit_library_call_value_1): Adjust emit_group_load + and emit_group_store calls. + * function.c (assign_parms): Set mem alignment for stack slots. + Adjust emit_group_store call. Store values at the "wrong" end + of regs to the stack. Use BLOCK_REG_PADDING. + (locate_and_pad_parm): Save where_pad. + (expand_function_end): Adjust emit_group_load call. + * stmt.c (expand_value_return): Adjust emit_group_load call. + * Makefile.in (calls.o): Depend on $(OPTABS_H). + * config/rs6000/linux64.h (TARGET_LITTLE_ENDIAN): Redefine as 0. + (AGGREGATE_PADDING_FIXED, AGGREGATES_PAD_UPWARD_ALWAYS): Define. + (MUST_PASS_IN_STACK): Define. + (BLOCK_REG_PADDING): Define. + * config/rs6000/rs6000.h (struct rs6000_args): Remove orig_nargs. + (PAD_VARARGS_DOWN): Define in terms of FUNCTION_ARG_PADDING. + * config/rs6000/rs6000.c (init_cumulative_args): Don't set orig_nargs. + (function_arg_padding): !AGGREGATE_PADDING_FIXED compatibility code. + Act on AGGREGATES_PAD_UPWARD_ALWAYS. + +2003-07-13 Aaron W. LaFramboise + + * config/i386/gthr-win32.c (__GTHREAD_HIDE_WIN32API): Define to 1. + +2003-07-13 Richard Kenner + + * expr.c (expand_expr, case COMPONENT_REF): If reg, copy OP0 to MEM + both if OFFSET specified and if result BLKmode for ARRAY_RANGE_REF. + +2003-07-13 Nathanael Nerode + + PR other/11123 + * toplev.c: Don't cut off option names. + +2003-07-13 Andreas Jaeger + + * c-decl.c (link_hash_hash): Avoid warning about casting pointer + to integer of different size. + +2003-07-13 Kazu Hirata + + * combine.c (simplify_comparison): Convert (ne (and (not X) 1) 0) + to (eq (and X 1) 0). + +2003-07-13 Andreas Jaeger + + * config.gcc: Add pmmintrin.h for x86_64-*-*. + +2003-07-13 Zack Weinberg + + * Makefile.in (LIBCPP_DEPS): Remove coretypes.h and $(TM_H). + (hashtable.o, line-map.o, mkdeps.o): Likewise, from dependency + list. Move these all together down by cpplib. + + * cpplib.h: Don't refer to MAX_WCHAR_TYPE_SIZE when determining + definition of CPPCHAR_SIGNED_T. + + * cppcharset.c, cpperror.c, cppexp.c, cppfiles.c, cpphash.c, cppinit.c + * cpplex.c, cpplib.c, cppmacro.c, cpppch.c, cpptrad.c, hashtable.c + * line-map.c, mkdeps.c: Don't include coretypes.h or tm.h. + + * cpphash.c (_cpp_init_hashtable): Don't use gcc_obstack_init. + * cppinit.c (cpp_create_reader): Likewise. + + * cpphash.h (scan_out_logical_line): Rename _cpp_scan_out_logical_line. + * cpptrad.c: Likewise. All callers changed. + * cpplib.c: All callers changed. + * c-ppoutput.c: Replace 'uchar' with 'unsigned char' throughout. + * hashtable.h: Define GTY(x) to nothing here too. + +2003-07-13 Richard Kenner + + * stor-layout.c (compute_record_mode): Remove very obsolete test + that forces BLKmode for records with fields crossing word boundary. + +2003-07-13 Zack Weinberg + + * Makefile.in: Remove orphan reference to acconfig.h. + +2003-07-13 Andreas Jaeger + + * cgraphunit.c: Convert prototypes to ISO C90. + +2003-07-13 Nathanael Nerode + + * fixinc/inclhack.def (avoid_wchar_t_type): Use __cplusplus bypass + (for OpenBSD). + * fixinc/fixincl.x: Rebuild. + +2003-07-12 Zack Weinberg + + * configure.in: Always define HAVE_AS_GOTOFF_IN_DATA for + i?86-*-*. Use correct name of cache variable. + * configure: Regenerate. + +2003-07-12 Kazu Hirata + + * config/alpha/alpha.c: Fix comment typos. + * config/alpha/alpha.md: Likewise. + * config/arm/arm.c: Likewise. + * config/arm/arm.md: Likewise. + * config/arm/lib1funcs.asm: Likewise. + * config/avr/avr.md: Likewise. + * config/arm/README-interworking: Fix typos. + +2003-07-12 Kazu Hirata + + * c-format.c: Fix comment formatting. + * c-typeck.c: Likewise. + * coverage.c: Likewise. + * cppcharset.c: Likewise. + * cpplib.c: Likewise. + * dbxout.c: Likewise. + * gcov-io.h: Likewise. + * toplev.c: Likewise. + +2003-07-12 Nathanael Nerode + + * fixinc/inclhack.def (alpha_sbrk): Note that OpenBSD needs this + fix. + +2003-07-12 Zack Weinberg + + * aclocal.m4 (gcc_AC_CHECK_TYPE): Clone of AC_CHECK_TYPE, + uses three-argument AC_DEFINE so no acconfig.h entries are + needed. + (_gcc_COMPUTE_GAS_VERSION): Also provide gcc_cv_gas_vers + which contains the GAS version number as a scaled integer. + (gcc_GAS_VERSION_GTE_IFELSE): Use gcc_cv_gas_vers. Add + ability to check for ELF assembler. + (gcc_GAS_CHECK_FEATURE): New macro. + * configure.in: Use gcc_AC_CHECK_TYPE. Rewrite all + assembler feature checks using gcc_GAS_CHECK_FEATURE. + Use three-argument AC_DEFINE everywhere. + * acconfig.h: Deleted. + * config.in, configure: Regenerate. + +2003-07-12 Nathanael Nerode + + * fixinc/inclhack.def (struct_sockaddr): Avoid "fixing" sockaddr_in + (on OpenBSD). + * fixinc/fixincl.x: Regenerate. + + * fixinc/inclhack.def (gnu_types): Improve comment. + +2003-07-12 Andreas Jaeger + + * fp-test.c (main): Use ISO C90 prototype. + + * version.c: Remove unneded include of ansidecl.h. + + * cgraph.h: Convert prototypes to ISO C90. + * cgraph.c: Likewise. + * fix-header.c: Likewise. + * ra.h: Likewise. + * protoize.c: Likewise. + +2003-07-12 Jan Hubicka + + * cgraphunit.c (cgraph_inlined_into, cgraph_inlined_calees): Fix + warning. + +2003-07-12 Jan Hubicka + Gerald Pfeifer + + * cgraph.c (cgraph_max_uid): New global variable. + (cgraph_node): Set uid field. + (create_edge): Keep inline flags consistent. + (dump_cgraph): Dump more info. + * cgraph.h (struct cgraph_local_info): Remove inline_many and + can_inline_once; add inlinable, disgread_inline_limits, and self_insn + (struct cgraph_global_info): Add insns, calls, cloned_times, + will_be_output. + (struct cgraph_node): Add uid. + (struct cgraph_edge): Add inline_call. + (cgraph_max_uid, cgraph_inline_p): Declare. + * cgraph.c: Include params.h and fibheap.h + (cgraph_mark_functions_to_inline_once): Kill. + (INSNS_PER_CALL): New constant. + (ncalls_inlined, nfunctions_inlined, initial_insns, overall_insns): New + static variables. + (cgraph_finalize_function): Do not analyze inlining. + (cgraph_finalize_compilation_unit): Set inlining attributes. + (cgraph_mark_functions_to_output): More consistency checks. + (cgraph_optimize_function): Set current_function_decl to NULL. + (cgraph_expand_function): Use new inline flags. + (cgraph_postorder): Expand from cgraph_expand_functions. + (INLINED_TIMES, SET_INLINED_TIMES): New macros. + (cgraph_inlined_into, cgraph_inlined_callees, + cgraph_estimate_size_after_inlining, cgraph_estimate_growth, + cgraph_mark_inline, cgraph_check_inline_limits, + cgraph_default_inline_p, cgraph_decide_inling_of_small_functions, + cgraph_decide_inlining, cgraph_inline_p): New functions. + * params.def (PARAM_LARGE_FUNCTION_INSNS, PARAM_LARGE_FUNCTION_GROWTH, + PARAM_INLINE_UNIT_GROWTH): New parameters. + * tree-inline.c (struct inline_data): New field current_decl. + (expand_call_inline): Avoid forward declarations; use + inlinable_function_p. + (optimize_inline_calls): Set id.current_decl. + +2003-07-11 Andrew Pinski + + * configure.in: Remove wrongly added definition of + local_prefix. + * configure: Regenerate. + +2003-07-11 Dan Nicolaescu + + * rtl.def (NOTE): Do not use padding. + +2003-07-11 Dara Hazeghi + + * doc/install.tex: Update required binutils for i?86-*-linux* + +2003-07-11 Richard Henderson + + * Makefile.in (stage1_build): Force OBJS-onestep=OBJS. + +2003-07-11 Mark Mitchell + + * varasm.c (make_decl_rtl): Treat decls with a DECL_CONTEXT of + TRANSLATION_UNIT_DECL as top_level. + +2003-07-11 Jakub Jelinek + + * optabs.c (prepare_cmp_insn): Try cmpmemM first if it exists, + then fall back to cmpstrM. + * builtins.c (expand_builtin_memcmp): Likewise. + * config/s390/s390-protos.h (s390_expand_cmpstr): Rename to... + (s390_expand_cmpmem): ... this. + * config/s390/s390.md (cmpmemdi, cmpmemsi, cmpmem_short_64, + cmpmem_short_31, cmpmem_long_64, cmpmem_long_31): Renamed + from cmpstr* patterns. Rename call to s390_expand_cmpstr + to s390_expand_cmpmem. + * config/s390/s390.c (s390_expand_cmpstr): Rename to... + (s390_expand_cmpstr): ... this. Rename cmpstr* instructions + to cmpmem*. + * config/i370/i370.md (cmpmemsi, cmpmemsi_1): Renamed from + cmpstr* patterns. + * doc/md.texi (cmpstrM): Describe as String compare insn, not + Block compare insn. + (cmpmemM): Add. + +2003-07-11 Loren James Rittle + + * config/i386/freebsd.h (SET_ASM_OP): Remove. + (SUBTARGET_OVERRIDE_OPTIONS): Handle TARGET_64BIT case. + (ASM_COMMENT_START, ASM_APP_ON, ASM_APP_OFF, DBX_REGISTER_NUMBER + MCOUNT_NAME, SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE_SIZE): Whitespace. + +2003-07-11 Richard Henderson + + * function.c (assign_parms): Don't recombine complex args if + fnargs is unchanged from orig_fnargs. + (split_complex_args): Return args without complex before copying. + Re-layout the modified parameters. + +2003-07-11 J"orn Rennecke + + * regclass.c (choose_hard_reg_mode): Add third argument. + Changed all callers. + * rtl.h (choose_hard_reg_mode): Update declaration. + * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes): + Take HARD_REGNO_CALL_PART_CLOBBERED into account. + +2003-07-11 Geoffrey Keating + + * c-decl.c (finish_decl): Handle 'used' here... + * cgraphunit.c (cgraph_finalize_function): ... and here ... + * c-common.c: (handle_used_attribute): ... not here. + + * configure.in (onstep): Support --enable-intermodule. + * Makefile.in (OBJS-common): New. + (OBJS-md): New. + (OBJS-archive): New. + (OBJS): Build from OBJS-common, OBJS-md, OBJS-archive. + (OBJS-onestep): New. + (libbackend.a): Support @onestep@. + (libbackend.o): New. + * configure: Regenerate. + + * c-common.h (c_reset_state): New prototype. + (c_parse_file): New prototype. + (finish_file): Move prototype from c-tree.h. + * c-decl.c: Include . + (builtin_decls): New. + (current_file_decl): New. + (duplicate_decls): Add extra parameter. Change all callers. Don't + output duplicate common symbols. + (link_hash_hash): New. + (link_hash_eq): New. + (poplevel): Handle popping of the top level. + (warn_if_shadowing): Handle TRANSLATION_UNIT_DECL. + (pushdecl): Set DECL_CONTEXT to TRANSLATION_UNIT_DECL if appropriate. + (pushdecl_top_level): Likewise. + (redeclaration_error_message): Handle TRANSLATION_UNIT_DECL. + (c_init_decl_processing): Create TRANSLATION_UNIT_DECL. + (finish_decl): Handle TRANSLATION_UNIT_DECL. + (merge_translation_unit_decls): New. + (c_write_global_declarations): New. + (c_reset_state): New. + (implicitly_declare): Handle TRANSLATION_UNIT_DECL. + * c-lang.c (LANG_HOOKS_WRITE_GLOBALS): New. + * c-objc-common.c (c_cannot_inline_tree_fn): Handle + TRANSLATION_UNIT_DECL. + (c_objc_common_finish_file): Call merge_translation_unit_decls. + * c-opts.c (in_fnames): Rename from in_fname. + (c_common_decode_option): Handle multiple input filenames. + (c_common_post_options): Likewise. + (c_common_parse_file): Likewise; also, call c_parse_file rather than + yyparse. + * c-parse.in: Move cleanup code to c_parse_file. + (free_parser_stacks): Move contents to c_parse_file. + (c_parse_file): New. + * c-tree.h (union lang_tree_node): Chain along TYPE_NEXT_VARIANT + for integer types. + (C_DECL_FILE_SCOPE): New. + (finish_file): Move prototype to c-common.h. + (merge_translation_unit_decls): New prototype. + (comptypes): Add extra parameter to prototype. + (c_write_global_declarations): New prototype. + * c-typeck.c (tagged_types_tu_compatible_p): New. + (function_types_compatible_p): Add extra parameter, change all callers. + (type_lists_compatible_p): Likewise. + (comptypes): Likewise. + (struct tagged_tu_seen): New. + (tagged_tu_seen_base): New. + (build_unary_op): Handle TRANSLATION_UNIT_DECL. + (c_mark_addressable): Remove #if 0 code. + * calls.c (special_function_p): Handle TRANSLATION_UNIT_DECL, add + comment explaining why it shouldn't have to. + * cgraph.h (struct cgraph_node): Add chain_next and chain_prev GTY + options. + * cppinit.c (cpp_read_next_file): New. + (cpp_read_main_file): Use it. + * cpplib.c (undefine_macros): New. + (cpp_undef_all): New. + * cpplib.h (cpp_read_next_file): Prototype. + (cpp_undef_all): Prototype. + * langhooks-def.h (write_global_declarations): Remove prototype. + * toplev.h (write_global_declarations): Add prototype. + * tree.c (decl_type_context): Use switch statement, handle + TRANSLATION_UNIT_DECL. + * tree.def: Update documentation for TRANSLATION_UNIT_DECL. + (TRANSLATION_UNIT_DECL): New kind of tree. + * tree.h: Update documentation for TRANSLATION_UNIT_DECL. + * Makefile.in (c-decl.o): Add $(HASHTAB_H) to dependencies. + * doc/invoke.texi: Make attempt to document new functionality. + + 2003-05-19 Per Bothner + + * gcc.c (combine_inputs): New. + (process_command): Set combine_inputs. + (do_spec_1): Handle combine_inputs. + (main): Likewise. + +2003-07-10 James E Wilson + + PR optimization/9745 + * loop.c (loop_iv_add_mult_emit_before): Call loop_regs_update before + loop_insn_emit_before. + (loop_iv_add_mult_sink, loop_iv_add_mult_hoist): Likewise. + +2003-07-10 Zack Weinberg + + * cppcharset.c: Fix comment. + (iconv_close [!HAVE_ICONV]): #define to (void)0 to prevent warning. + (EILSEQ): #define to EINVAL if not already defined. + (convert_using_iconv): #if out when !HAVE_ICONV. + (init_iconv_desc): Handle !HAVE_ICONV here... + (cpp_init_iconv): ...not here. + +2003-07-11 Neil Booth + + * common.opt: More --help messages. + * opts.c (print_help): Use puts(). + * toplev.c (f_options): Remove help text. + (display_help): Don't dump f_options. + +2003-07-11 Nathanael Nerode + + * fixinc/mkfixinc.sh: Drop reference to unsupported alpha-*-interix*. + Move i?86-*-interix* to the don't-fix list. + * fixinc/fixinc.interix: Delete with extreme prejudice. + +2003-07-10 Dara Hazeghi + + PR bootstrap/10758 + * doc/install.texi: Document requirements for ia64-*-hpux* target. + +2003-07-10 Roger Sayle + + * config/ia64/hpux.h (TARGET_C99_FUNCTIONS): Define. + +2003-07-10 Zack Weinberg + + * cppcharset.c (one_utf8_to_cppchar, one_cppchar_to_utf8, + one_utf8_to_utf32, one_utf32_to_utf8, one_utf8_to_utf16, + one_utf16_to_utf8, conversion_loop, convert_utf8_utf16, + convert_utf8_utf32, convert_utf16_utf8, convert_utf32_utf8, + convert_no_conversion, convert_using_iconv): New functions. + (APPLY_CONVERSION): New macro. + (struct conversion, conversion_tab): New data structure. + (init_iconv_desc): Check conversion_tab for a custom conversion + primitive before trying to use iconv. + (convert_cset): Deleted. + (cpp_init_iconv): Use UTF- terminology, not UCS-. + (_cpp_destroy_iconv): Update to match. + (_cpp_valid_ucn): We don't need iconv to implement UCNs. + (convert_ucn): Use one_cppchar_to_utf8 and APPLY_CONVERSION. + (convert_escape, cpp_interpret_string): Use APPLY_CONVERSION. + (_cpp_interpret_string_notranslate): New function, moved here + from cpplib.c. + + * cpphash.h (convert_f, struct cset_converter): New types. + (struct cpp_reader): narrow_cset_desc and wide_cset_desc + are now struct cset_converter, not bare iconv_t. + Update prototypes. + * cpplib.c (interpret_string_notranslate): Moved to cppcharset.c; + all callers changed. + +2003-07-10 Kelley Cook + + * Makefile.in (options.h): Depend on Makefile. Add move-if-change + to opts.sh command line. + * opts.sh: Write to temporary files with a move-if-change at the end. + +2003-07-10 Denis Chertykov + Richard Kenner + + * combine.c (gen_binary): Handle the CLOBBER rtx and + don't build a binary operation with it. + +2003-07-10 Zdenek Dvorak + + * gcse.c (load_kills_store, find_loads, store_killed_in_insn, + store_killed_after, store_killed_before): Keep track of the correct + dependency function to use. + +2003-07-10 Steven Bosscher + * toplev.c (do_compile): Don't try to open dump files before + lang_dependent_init initializes dump_base_name. + +2003-07-10 Kaveh R. Ghazi + + * config/arm/arm.c (arm_init_iwmmxt_builtins, arm_expand_builtin): + Use ARRAY_SIZE. + * config/frv/frv.c (frv_expand_builtin): Likewise. + * config/sh/sh.c (sh_media_init_builtins): Likewise. + +2003-07-09 Mark Mitchell + + PR c++/10032 + * doc/invoke.texi (C++ Dialect Options): Change documentation of + -fpermissive. + +2003-07-10 J"orn Rennecke + + * tm.texi (RETURN_ADDR_OFFSET): Document. + +2003-07-10 Nathan Sidwell + + * gcov-io.h: Update documentation. + (GCOV_UNSIGNED2STRING): New. + (GCOV_TAG_FUNCTION_LENGTH, GCOV_TAG_BLOCKS_LENGTH, + GCOV_TAG_ARCS_LENGTH, GCOV_TAG_COUNTER_LENGTH, + GCOV_TAG_SUMMARY_LENGTH): Adjust. + (GCOV_TAG_BLOCKS_NUM, GCOV_TAG_ARCS_NUM, + GCOV_TAG_COUNTER_NUM): New. + (GCOV_BLOCK_SIZE): Number of words. + (gcov_var): Adjust buffer type. + * gcov-io.c (gcov_write_bytes, gcov_read_bytes): Rename to ... + (gcov_write_words, gcov_read_words): ... here. Take a 4-byte word + count, not byte count. + (gcov_open): Adjust overread init. + (gcov_allocate, gcov_write_unsigned, gcov_write_counter, + gcov_write_string, gcov_write_tag, gcov_write_length, + gcov_write_tag_length): Adjust. + (gcov_read_unsigned, gcov_read_counter, gcov_read_string): Adjust. + (gcov_sync, gcov_seek): Adjust. + * gcov-dump.c (print_usage): Show gcc version only. + (dump_file): Use GCOV_UNSIGNED2STRING. + (tag_blocks, tag_arcs, tag_counters): Use GCOV_TAG_*_NUM macros. + * gcov.c (print_version): Show gcc version only. + (read_graph_file): Use GCOV_UNSIGNED2STRING. Use + GCOV_TAG_*_NUM macros. + (read_count_file): Use GCOV_UNSIGNED2STRING. Use + GCOV_TAG_COUNTER_LENGTH. + * coverage.c (read_counts_file): Use GCOV_UNSIGNED2STRING. + Use GCOV_TAG_COUNTER_NUM. + * libgcov.c (gcov_version): Use GCOV_UNSIGNED2STRING. + (__gcov_merge_single, __gcov_merge_delta): Use GCOV_CHECK. + +2003-07-10 Andreas Schwab + + * gcov-dump.c (dump_file): Fix missing address operator. + +2003-07-10 Kazu Hirata + + PR c/11449 + * fold-const.c (sign_bit_p): Return EXP if VAL is the sign bit + of HOST_WIDE_INT. + (fold_single_bit_test): If sign_bit_p() fails, assume that the + bit being tested is not a sign bit. + +2003-07-10 Kazu Hirata + + * config/h8300/h8300.md (a peephole2): New. + +2003-07-10 Alexandre Oliva + + 2001-12-13 Alexandre Oliva + * config/mn10300/linux.h (LINK_SPEC): Rename the dynamic linker + from ld-linux.so.2 to ld.so.1. + 2001-11-18 Alexandre Oliva + * config/mn10300/linux.h (LINK_SPEC): -lpthread, not -lthread. + * config/mn10300/linux.h (LINK_SPEC): Don't handle -Wl,-rpath + nor -Wl,-rpath-link. + (LIB_SPEC): Add -rpath-link if !static. + 2001-08-22 Alexandre Oliva + * config/mn10300/mn10300.c (mn10300_protect_label): New + variable. + * config/mn10300/linux.h (PRINT_OPERAND, + PRINT_OPERAND_ADDRESS): Set it during their execution. + (ASM_OUTPUT_LABELREF): Output `+' before symbol name if + mn10300_protect_label is set. + * config/mn10300/linux.h (LINK_SPEC): Recognize -Wl,-rpath and + -Wl,-rpath-link. + (LIB_SPEC, STARTFILE_SPEC): Define. + 2001-05-11 Alexandre Oliva + * config/mn10300/t-linux (dp-bit.c, fp-bit.c): Don't define + FLOAT_BIT_ORDER_MISMATCH. + 2001-05-09 Alexandre Oliva + * config.gcc (am33_2.0-*-linux*): Added. + * config/mn10300/linux.h: New. + * config/mn10300/t-linux: New. + +2003-07-10 Andreas Jaeger + + * fold-const.c: Properly wrap prototypes. + +2003-07-09 Alexandre Oliva + + 2003-06-16 Alexandre Oliva + * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): + Moved from... + * config/mn10300/mn10300.md (GOTaddr2picreg): ... here. + * config/mn10300/mn10300.h: GTY-declare it. + 2003-06-11 Alexandre Oliva + * config/mn10300/mn10300.c (mn10300_encode_section_info): Fix + prototype. Use incoming RTL argument. + 2002-12-12 Alexandre Oliva + * config/mn10300/mn10300.md (int_label): Move C statements... + (GOTaddr2picreg): ... here. + 2002-08-15 Alexandre Oliva + * config/mn10300/mn10300.h (ENCODE_SECTION_INFO): Move... + * config/mn10300/mn10300.c (mn10300_encode_section_info): + ... here. New function. + (TARGET_ENCODE_SECTION_INFO): Define to it. + 2001-11-04 Alexandre Oliva + * config/mn10300/mn10300.md (builtin_setjmp_receiver): Fix typo in + pattern name. + (mn10300_loadPC): Define as insn splittable after reload. + 2001-05-13 Alexandre Oliva + * config/sh/mn10300.h (JUMP_TABLES_IN_TEXT_SECTION): Let them + be defined in .rodata even in PIC, now that the assembler + supports that. + 2001-05-09 Alexandre Oliva + * config/mn10300/mn10300.h (GOT_SYMBOL_NAME): Don't let the + symbol take an underscore prefix. + 2001-04-14 Alexandre Oliva + * config/mn10300/mn10300-protos.h (legitimate_pic_operand_p, + legitimize_pic_address): Declare. + * config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): Mark + the PIC register as fixed. + (EXTRA_CONSTRAINT): Match UNSPEC_PLT and UNSPEC_PIC for 'S'. + (GO_IF_LEGITIMATE_ADDRESS): Require legitimate_pic_operand for + PIC. + (LEGITIMATE_PIC_OPERAND_P): Define. + (PIC_OFFSET_TABLE_REGNUM): Define. + (GOT_SYMBOL_NAME): Define. + (SYMBOLIC_CONST_P): Define. + (ENCODE_SECTION_INFO): Use SYMBOL_REF_FLAG to mark local + symbols. + (MN10300_GLOBAL_P): Test it. + (OUTPUT_ADDR_CONST_EXTRA): Handle PIC-related unspecs. + (JUMP_TABLES_IN_TEXT_SECTION): Enable for PIC. + * config/mn10300/mn10300.c (print_operand): Handle unspec. + (expand_prologue): Set PIC register. + (call_address_operand): Don't match SYMBOL_REFs in PIC. + (legitimize_address): Call legitimize_pic_address. + (legitimize_pic_address): New fn. + (legitimate_pic_operand_p): New fn. + * config/mn10300/mn10300.md (PIC_REG, SP_REG): New constants. + (UNSPEC_INT_LABEL, UNSPEC_PIC, UNSPEC_GOT, UNSPEC_GOTOFF, + UNSPEC_PLT): New constants. + (pop_pic_reg): New insn. + (movsi): Adjust non-PIC addresses. + (builtin_setjmp_receiver): Restore the PIC register. + (casesi): New insn. + (call): Adjust non-PIC addresses. + (int_label, GOTaddr2picreg): New expands. + (am33_loadPC): New insn. + (mn10300_loadPC): New expand. + (call_next_insn): New insn. + (add_GOT_to_pic_reg): New expand. + (symGOT2reg, symGOT2reg_i): New expands. + (symGOTOFF2reg, symGOTOFF2reg_i): New expands. + (sym2PIC, sym2PLT): New expands. + +2003-07-09 Alexandre Oliva + + * config/mn10300/mn10300.h (PREDICATE_CODES): Define. + 2001-05-01 Alexandre Oliva + * config/mn10300/mn10300.md (sqrtsf2): flag_fast_math was renamed + to flag_unsafe_math_optimizations. + 2001-04-14 Alexandre Oliva + * config/mn10300/mn10300.c (expand_prologue): Mark + FP-register-saving insns as frame-related. + 2001-02-13 Alexandre Oliva + * config/mn10300/mn10300.c + (mn10300_get_live_callee_saved_regs): Don't search past + LAST_EXTENDED_REGNUM. + (mn10300_gen_multiple_store, store_multiple_operation): Likewise. + * config/mn10300/mn10300.md: Remove excessive line breaks from + `@' output patterns that were accounted as additional + alternatives. + * config/mn10300/mn10300.md, config/mn10300/mn10300.c: + Re-introduce changes accidentally removed in Richard Sandiford's + 2000-12-05's patch. + * config/mn10300/t-mn10300 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): + Re-instate am33-2 lost in merge from net GCC. + 2000-08-26 Alexandre Oliva + * config/mn10300/mn10300.h (DBX_REGISTER_NUMBER): Added + floating-point registers. + 2000-08-07 Alexandre Oliva + * config/mn10300/mn10300.md (movdf): Revert some am33-specific + pessimizations that had gone in on 2000-05-08. + 2000-06-28 Graham Stott + * config/mn10300/mn10300.h (REG_CLASS_CONTENTS): Fix typo. + 2000-06-22 Graham Stott + * config/mn10300/mn10300.md (movqi): Use nonimmediate_operand for + operand 0. + * (movhi): Likewise. + * (movsi): Likewise. + * (movsf): Likewise. + * (movdi): Likewise. + * (movdf): Likewise. + 2000-05-24 Alexandre Oliva + * config/mn10300/mn10300.c (fp_regs_to_save): New function. + (can_use_return_insn, initial_offset): Add fp_regs_to_save. + (expand_prologue, expand_epilogue): Save and restore FP regs. + 2000-05-20 Alexandre Oliva + * config/mn10300/mn10300.md (movdi, movdf): 64-bit clean-up. + 2000-05-13 Alexandre Oliva + * config/mn10300/mn10300.md (abssf2, negsf2, rsqrtsf2, addsf3, + subsf3, mulsf3, divsf3, fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4): + Do not clobber cc0. + 2000-05-12 Alexandre Oliva + * config/mn10300/mn10300.md (abssf2, negsf2, rsqrtsf2): + Discourage the two-argument, longer opcodes. + (addsf3, subsf3, mulsf3, divsf3): Likewise for three-argument + ones. + * config/mn10300/mn10300.h (struct mn10300_cc_status_mdep): New. + (CC_STATUS_MDEP, CC_STATUS_MDEP_INIT): Define. + * config/mn10300/mn10300.md (cmpsf): New pattern. + (branch): Test mdep.fpCC and output fbCC. + * config/mn10300/mn10300.c (print_operand): Output conditions. + (notice_cc_update): Recognize fcmp and set mdep.fpCC. + 2000-05-10 Alexandre Oliva + * config/mn10300/mn10300.md (movsf, movdf, addsf3, subsf3, + mulsf3, divsf3): Use the `F' constraint for FP values. + * config/mn10300/mn10300.c (const_1f_operand): New function. + * config/mn10300/mn10300-protos.h (const_1f_operand): Declare. + * config/mn10300/mn10300.md (sqrtsf2): New expand. + (rsqrtsf2): New insn. + 2000-05-09 Alexandre Oliva + * config/mn10300/mn10300.md (movdf): Oops, I missed it in my + previous check-in. + 2000-05-08 Alexandre Oliva + * config/mn10300/mn10300.md (abssf2, negdf2): On + TARGET_AM33_2, expand to... + (abssf2_am33_2, negdf2_am33_2): New insns. + (addsf3, subsf3, mulsf3, divsf3): Likewise. + (fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4): Likewise. + * config/mn10300/mn10300.md (movqi, movhi, movsi, movsf, + movdi, movdf): Added FP regs. + * invoke.texi (-mam33-2, -mno-am33-2): Document. + 2000-04-29 Alexandre Oliva + * config/mn10300/mn10300.h (FIRST_FP_REGNUM, LAST_FP_REGNUM): + New macros. + (REGNO_AM33_2_FP_P): Renamed to... + (REGNO_FP_P): Redefine in terms of FIRST_* and LAST_*. + (CONDITIONAL_REGISTER_USAGE, REGNO_REG_CLASS): Likewise. + 2000-04-27 Alexandre Oliva + * config/mn10300/mn10300.h (REG_CLASS_CONTENTS): Remove FP + regs from GENERAL_REGS. + 2000-04-27 Alexandre Oliva + * config/mn10300/mn10300.h (REGNO_AM33_2_FP_P): New macro. + * config/mn10300/mn10300.c (mn10300_address_cost): Added FP_REGS. + * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Added FP_REGS. + 2000-04-23 Alexandre Oliva + * config/mn10300/mn10300.h (CLASS_CANNOT_CHANGE_SIZE): Defined + as FP_REGS. + 2000-04-21 Alexandre Oliva + * config/mn10300/mn10300.h (OK_FOR_Q): New macro. + (EXTRA_CONSTRAINT): Added OK_FOR_Q. + * config/mn10300/mn10300.c (secondary_reload_class): Adjust. + * config/mn10300/mn10300.c (print_operand): Support `D' for doubles. + * config/mn10300/mn10300.h (FIRST_PSEUDO_REGISTER): Adjust. + (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER): Added + AM33/2.0 floating-point registers. + (CONDITIONAL_REGISTER_USAGE): Adjust. + (enum reg_class, REG_CLASS_NAMES): Added FP_REGS and FP_ACC_REGS. + (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Adjust. + (REG_CLASS_FROM_LETTER): Added `f' and `A'. + (REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Adjust. + * config/mn10300/t-mn10300 (MULTILIB_OPTIONS): Added am33-2. + (MULTILIB_DIRNAMES): Likewise. + * config/mn10300/mn10300.h (CPP_SPEC): Define `__AM33__=2' and + `__AM33_2__' when `-mam33-2' is given. + (TARGET_AM33_2): Define. + (TARGET_SWITCHES): Adjust. + * config/mn10300/mn10300.c (asm_file_start): Print `.am33_2' + when appropriate. + +2003-07-09 Matt Kraai + + * doc/install.texi: Add missing @. + +2003-07-09 Bob Wilson + + * config/xtensa/xtensa.h (CRT_CALL_STATIC_FUNCTION): Define. + +2003-07-09 Aldy Hernandez + + PR/11144 + * config/i386/i386.c (ix86_function_arg_boundary): Remove abort. + +2003-07-09 Nathanael Nerode + + PR bootstrap/11043 + * config/arc/t-arc: Replace bogus references to "x-crtinit.o", + "x-crtfini.o" with "crtinit.o", "crtfini.o". + + * fixinc/inclhack.def (limits_ifndefs): Add select test. + * fixinc/fixincl.x: Rebuild. + + * fixinc/inclhack.def (math_exception): Improve bypass and comment. + * fixinc/fixincl.x: Rebuild. + +2003-07-09 Hans-Peter Nilsson + + * doc/install.texi (Configuration): Document the valgrind option + to --enable-checking. + +2003-07-09 Jan Hubicka + + * objc-lang.c (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): New. + +2003-07-09 Rainer Orth + + * c-lex.c (cb_ident): Cast cstr.text to const char *. + +2003-07-09 Nathan Sidwell + + * gcov-io.h: Update documentation. + (GCOV_GRAPH_SUFFIX, GCOV_GRAPH_MAGIC): Rename to GCOV_NOTE_SUFFIX, + GCOV_NOTE_MAGIC. + (GCOV_DATA_SUFFIX, GCOV_NOTE_SUFFIX): Update. + (GCOV_DATA_MAGIC, GCOV_NOTE_MAGIC): Make non-palindromic. + (struct gcov_var): Change buffer's type. Add endian flag. + (gcov_open): Remove mode in libgcov. + (gcov_magic): Prototype. + * gcov-io.c (from_file): New. + (gcov_open): Clear endian flag. + (gcov_magic): New. + (gcov_write_bytes, gcov_read_bytes): Return gcov_unsigned_t + pointers. + (gcov_write_unsigned, gcov_write_counter, gcov_write_string, + gcov_write_tag, gcov_write_length, gcov_write_tag_length): Update. + (gcov_read_unsigned, gcov_read_counter, gcov_read_string): Update. + * gcov-iov.c (main): Correct cast. + * coverage.c (read_counts_file): Use gcov_magic. Remove endianness + conversion. + (gcov_begin_output): Use GCOV_NOTE_MAGIC. + (coverage_init): Use GCOV_NOTE_SUFFIX. + * libgcov.c (gcov_version_mismatch): Remove endianness conversion. + Rename to gcov_version, and return flag. + (gcov_exit): Use gcov_version. + (__gcov_init): Use gcov_version. + * Makefile.in (coverageexts): Update. + * gcov.c (print_version): Remove endianness conversion. + (create_file_names): Use GCOV_NOTE_SUFFIX. + (read_graph_file): Use gcov_magic. + (read_count_file): Likewise. + * gcov-dump.c (dump_file): Remove endianness conversion, use + gcov_magic. + +2003-07-09 Nathan Sidwell + + * configure.in (BUILD_PREFIX, BUILD_PREFIX_1): Set if enable + coverage is on. + * configure: Regenerated. + * Makefile.in (ALL_CFLAGS): Correct its comment. + +2003-07-08 Mark Mitchell + + * fold-const.c (make_range): Do not access operand 1 for a + zero-operand operator. + +2003-07-09 Neil Booth + + * toplev.c (warn_dummy, W_options): Die. + (display_help): Don't print W_options. + * common.opt: Add W_options help from toplev.c. + +2003-07-09 Andreas Jaeger + + * opts.c (wrap_help): Only pass int arguments as arguments to + printf's '*' modifier. Change argument of function. + +2003-07-08 Matt Kraai + + * doc/invoke.texi: Fix misspelling of "@item". + +2003-07-08 Kazu Hirata + + * config/i386/i386.md: Remove an old comment about + NOTICE_UPDATE_CC. + +2003-07-09 Jan Hubicka + + * cgraph.c (cgraph_node_name): New function. + (dump_cgraph): Use it. + * cgraph.h (cgraph_dump_file): Declare. + (cgraph_node_name): Declare. + * cgraphunit.c: Include timevar.h + (cgraph_finalize_compilation_unit): Use timevar; reorganize dumps. + (cgraph_optimize_function): Use TV_INTEGRATION. + (cgraph_mark_local_functions): reorganize dumps. + (cgraph_mark_functions_to_inline_once): Likewise. + (cgraph_optimize): Likewise; use timevar. + * timevar.def (TV_CGRAPH, TV_CGRAPHOPT): New. + * toplev.c (dump_file_index): Add DFI_cgraph. + (dump_file_info): Likewise. + (cgraph_dump_file): New global variable. + (do_compile): Open and close cgraph dump. + * invoke.texi (-d): Document new flag; renumber. + +2003-07-08 Roger Sayle + + PR c/11370 + * calls.c (emit_call_1): Don't bother popping the arguments off of + the stack after a noreturn function call; The adjustment is dead. + (expand_call): Likewise. + +2003-07-08 Geoffrey Keating + + * expr.c (MOVE_MAX_PIECES): Move from here... + * defaults.h (MOVE_MAX_PIECES): ... to here. + +2003-07-08 Matt Kraai + + * Makefile.in (stage1-start): Handle an empty SUBDIRS. + +2003-07-08 Kaveh R. Ghazi + + * genattr.c (internal_dfa_insn_code): Don't prototype. + * genattrtab.c (attr_desc): Add `static_p' field. + (expand_units): Make blockage range and ready cost functions + static. + (write_attr_get): Don't add extern prototypes in C file. Mark + static functions as appropriate. + (find_attr, make_internal_attr): Initialize static_p. + * genattrtab.h (ATTR_STATIC): New macro. + * genautomata.c (output_internal_reset_func): Mark output function + as inline. + (make_internal_dfa_insn_code_attr): Mark output function as static. + +2003-07-08 Kaveh R. Ghazi + + * genattrtab.h: Add new macros for attr `special' flags. + * genattrtab.c (attr_desc): Reorder/resize fields better. + Use attr `special' macros in all calls to make_internal_attr. + * genautomata.c: Likewise. + +2003-07-09 Jan Hubicka + + * c-common.c (c_estimate_num_insns_1): New static function. + (c_estimate_num_insns): New global function. + * c-common.h (DECL_NUM_STMTS): Rename to... + (DECL_ESTIMATED_INSNS): ... this. + (c_estimate_num_insns): Declare. + * c-decl.c (duplicate_decls): Use DECL_ESTIMATED_INSNS. + * c-lang.c (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): New. + * c-semantics.c (add_stmt): Do not account statements. + * langhooks-def.h (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): + New. + * langhooks.h (lang_hooks_for_tree_inlining): Add + estimate_num_insns + * params.def (max-inline-insns-auto, max-inline-insns-auto): set + to 100. + (max-inline-insns): set to 300. + (min-inline-insns): set to 10. + * tree-inline.c (struct inline_data): Rename inlined_stmts to + inlined-insns. + (INSNS_PER_STMT): Kill. + (inlinable_function_p): Compute and store body size. + (expand_call_inline): Likewise. + (optimize_inline_calls): Likewise. + +2003-07-08 James E Wilson + + PR target/10021 + * emit-rtl.c (set_mem_attribute_minus_bitpos): When handle ARRAY_REF, + loop over new variable t2 instead of t. + +2003-07-08 Danny Smith + + PR bootstrap/11455 + * config/i386/winnt.c: Replace use of error(), warning() with + error_with_decl(), warning_with_decl(), throughout. + +2003-07-08 Neil Booth + + * opts.c (wrap_help): Use unsigned int, not size_t. + +2003-07-08 Stephane Carrez + + * config/m68hc11/m68hc11.h (HAVE_AS_DWARF2_DEBUG_LINE): Don't define + as .file/.loc directives are incompatible with linker relaxation. + +2003-07-08 Zack Weinberg + + * Makefile.in (fixinc.sh): Remove gnu-regex.[ch] from dependencies. + * fixinc/Makefile.in: Remove all references to gnu-regex.[och]. + * fixinc/fixfixes.c, fixinc/fixincl.c, fixinc/fixlib.c + * fixinc/fixtests.c: Use xregexec not regexec, xregcomp not regcomp. + * fixinc/fixlib.h: Include xregex.h not gnu-regex.h. + * fixinc/inclhack.def (hpux10_cpp_pow_inline, hpux11_cpp_pow_inline): + Escape { and } characters which are not part of range expressions. + * fixinc/fixincl.x: Regenerate. + * fixinc/gnu-regex.c, fixinc/gnu-regex.h: Delete file. + +2003-07-08 Steven Bosscher + + PR c/1687 + * tree-inline.c (find_alloca_call): Use + walk_tree_without_duplicates, instead of walk_tree. + (find_builtin_longjmp_call): Likewise. + * c-objc-common.c (c_cannot_inline_fn): Likewise. + * c-semantics.c (find_reachable_label): Likewise. + +2003-07-08 Jakub Jelinek + + PR c/11420 + * config/i386/i386.c (ix86_check_movabs): New function. + * config/i386/i386-protos.h (ix86_check_movabs): New prototype. + * config/i386/i386.md (movabs[shqd]i_1_rex64): Kill broken alternative. + (movabs[shqd]i_[12]_rex64): Add ix86_check_movabs check to conditions. + +2003-07-08 Chris Demetriou + + * Makefile.in (install-po): Cope with empty CATALOGS. + +2003-07-08 Richard Sandiford + + * config/mips/elf64.h (TARGET_ASM_UNIQUE_SECTION): Delete. + (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete. + (SECTION_FUNCTION_TEMPLATE): Delete. + * config/mips/elf.h: As for elf64.h. + (ASM_OUTPUT_ALIGNED_BSS): Use named_section rather than sbss_section. + * config/mips/linux.h: As for elf.h + * config/mips/iris6gld.h (TARGET_ASM_UNIQUE_SECTION): Delete. + * config/mips/iris6.h (EXTRA_SECTIONS): Delete. + (EXTRA_SECTION_FUNCTIONS): Remove sdata_section. Remove the handling + of in_sdata from current_section_name and current_section_flags. + * config/mips/iris6gld.h (TARGET_ASM_UNIQUE_SECTION): Delete. + * config/mips/mips.h (sdata_section, sbss_section): Remove prototypes. + (MASK_GP_OPT, TARGET_GP_OPT): Delete. + (MASK_NO_FUSED_MADD): Use MASK_GP_OPT's old value. + (TARGET_SWITCHES): Neuter gpOPT, gpopt, no-gpOPT and no-gpopt. + (SMALL_DATA_SECTION, EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Remove. + * config/mips/mips.c (TARGET_IN_SMALL_DATA_P): Override. + (TARGET_SECTION_TYPE_FLAGS): Override if TARGET_IRIX6. + (mips_classify_symbol): Use SYMBOL_REF_SMALL_P. + (override_options): Remove setting of MASK_GPOPT. + (mips_output_external): Use mips_in_small_data_p to check whether a + symbol needs an .extern directive. Don't emit such directives for + TARGET_EXPLICIT_RELOCS. + (mips_declare_object): Update accordingly. + (mips_select_rtx_section): Call named_section rather than + SMALL_DATA_SECTION. + (mips_select_section): Use default_elf_section_section for everything + except .text string constants. + (mips_in_small_data_p): New function. + (mips_encode_section_info): Remove small data handling. + (mips_unique_section): Delete. + (iris6_section_type_flags): New function. + * doc/tm.texi: Remove documentation of -mgpopt and -mhalf-pic. + +2003-07-08 John David Anglin + + PR Target/11453 + * pa.md: Disparage all mtsar constraints. + (extzv, extv, insv): Don't fail on length of {32|64}. + +2003-07-08 Zack Weinberg + + * system.h: Poison MAP_CHARACTER. + * config/i370/i370-protos.h (mvs_map_char): Delete. + * config/i370/i370.c (ascebc, ebcasc, mvs_map_char): Delete. + * config/i370/i370.h (MAP_CHARACTER): Delete definition. + (ASM_OUTPUT_ASCII): Don't use MAP_CHARACTER. + +2003-07-08 Danny Smith + + * toplev.c (randomize): Correct call to time(). + +2003-07-08 Jakub Jelinek + + * unroll.c (reg_dead_after_loop): Check for reg in REG_EQUAL and + REG_EQUIV notes as well. + +2003-07-08 Kazu Hirata + + * doc/md.texi: Fix the description of addmodecc. + +2003-07-07 Zack Weinberg + + * Makefile.in (top_builddir): Set to "..", not ".". + (INTLLIBS, INTLDEPS): Delete. + (LIBINTL, LIBINTL_DEP, LIBICONV_DEP): New variables to be substituted. + (LIBDEPS): Add $(LIBICONV_DEP). + (LIBS): Take out $(INTLLIBS), add $(LIBINTL) and $(LIBICONV). + (INCLUDES): Replace -I../intl with @INCINTL@. + ($(top_builddir)/intl/libintl.a): Delete rule. + (stage2-start, stage3-start, stage4-start, stageprofile-start, + stagefeedback-start): Use $$ for variable to be evaluated by + shell, not make. + * acconfig.h (ENABLE_NLS, HAVE_CATGETS, HAVE_GETTEXT, + HAVE_LC_MESSAGES, HAVE_STPCPY): Delete. + * aclocal.m4: sinclude ../config/progtest.m4. Add + contents of lcmessage.m4 from gettext distro. + * configure.in: Check for wchar.h and setlocale. Set + LIBICONV_DEP to the empty string and substitute it. + Call AM_LC_MESSAGES. Delete AC_ARG_ENABLE for --enable-nls; + this is handled elsewhere. Use ZW_GNU_GETTEXT_SISTER_DIR, + not CY_GNU_GETTEXT. Clear $LIBICONV if its text is included + in $LIBINTL, to avoid linking it twice. + * configure, config.in: Regenerate. + +2003-07-08 Nathanael Nerode + + * fixinc/mkfixinc.sh: Remove winnt support. + * fixinc/fixinc.winnt: Delete with extreme prejudice. + +2003-07-08 Neil Booth + + * Makefile.in: Update. + * c-opts.c (c_common_handle_option): opt_text now contains the '-'. + * c.opt: Update documentation. + * common.opt: Add some help text. + * opts.c: Include intl.h. + (wrap_help, print_help): New. + (find_opt, handle_option, common_handle_option): opt_text now + contains the '-'. Use print_help to output help. + * opts.h (struct cl_option): New member "help". + * opts.sh: Update to handle help text output and to prepend + options with '-'. + * toplev.c (display_help): Remove some help text. + +2003-07-07 David Edelsohn + Fariborz Jahanian + + * configure.in: Test for PowerPC mfcr field support in assembler. + * config.in, configure: Regenderated. + + * config/rs6000/power4.md: Add mfcrf reservation. + * config/rs6000/rs6000-protos.h (mfcr_operation): Declare. + * config/rs6000/rs6000.c (mfcr_operation): Define. + (print_operand): Add 'Q' case for mfcrf. + * config/rs6000/rs6000.h (TARGET_MFCRF): New. + * config/rs6000/rs6000.md (attribute "type"): Add mfcrf. + (movcc_internal1): Emit optional field operand for mfcr and set + "type" attribute appropriately. + (mfcr SCC): Likewise. + (movesi_from_cr_one): New. + +2003-07-07 Roger Sayle + + * config/i386/i386.md: Correct check-in of incorrect version. + +2003-07-07 Kaveh R. Ghazi + + * bitmap.c (debug_bitmap_file): Merge uses of HOST_PTR_PRINTF with + adjacent stdio calls. + * c-decl.c (c_print_identifier): Likewise. + * mips-tfile.c (write_varray, write_object, allocate_cluster): Likewise. + * print-rtl.c (print_rtx): Likewise. + * print-tree.c (print_node_brief, print_node): Likewise. + * system.h (HOST_PTR_PRINTF): Ensure we have a literal string. + + * configure.in (AC_COMPILE_CHECK_SIZEOF): Check for `void *'. + * config.in, configure: Regenerated. + +2003-07-07 Roger Sayle + + PR target/10979 + * config/i386/i386.md (atan2df3, atan2sf3, atan2xf3, atan2tf3): + Changed to define_expand patterns that copy operand[1] to prevent + it from being clobbered before emitting an atan2?f3_1 insn. + (atan2df3_1, atan2sf3_1, atan2xf_1, atan2tf3_1): New define_insn + patterns that actually specify the behaviour of x87's FPATAN. + +2003-07-07 Jakub Jelinek + + * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Remove bogus + clearing of SYMBOL_FLAG_LOCAL bit. + If vcall_offset fits into signed 16-bit immediate, use + one instruction for both addition and load. + +2003-07-07 Neil Booth + + * opts.c (common_handle_option): Correct handling of the + -falign- switches that do and don't take an argument. + +2003-07-07 Kazu Hirata + + * config/h8300/h8300.md (pushqi1_h8300hs): Revert my patch + today. + (pushhi1_h8300hs): Likewise. + +2003-07-07 Andreas Jaeger + + * genextract.c: Convert remaining prototypes to ISO C90. + + * cpplex.c (_cpp_free_buff): Convert prototype to ISO C90. + * fold-const.c (fold_single_bit_test): Likewise. + * diagnostic.c (default_diagnostic_finalizer): Likewise. + * cfgrtl.c (rtl_redirect_edge_and_branch): Likewise. + + * gengtype.c (write_array): Generate ISO C90 prototypes. + + * genflags.c (gen_proto): Generate ISO C90 prototypes. + +2003-07-07 Roger Sayle + + PR optimization/11059 + * expr.c (can_store_by_pieces): Return true if length is zero. + (store_by_pieces): If length is zero and endp is two, abort, + othwerise, if length is zero and endp is not two, return "to". + (clear_by_pieces): Do nothing if length is zero. + (clear_storage): Do nothing if length is zero. + (store_constructor): Simplify code when size is zero, or the + target has already been cleared. This avoids emitting a + blockage instruction when initializing empty structures. + +2003-07-07 Andreas Jaeger + + * mips-tfile.c: Convert prototypes to ISO C90. + * mips-tdump.c: Convert prototypes to ISO C90. + +2003-07-07 Nathan Sidwell + + * rtl.h (emit_line_note): Take a location_t. + (emit_line_note_force): Remove. + (set_file_and_line_for_statement): Take a location_t. + * tree.g (emit_line_note): Take a location_t. + * emit-rtl.c (emit_line_note): Take a location_t. + (emit_line_note_force): Remove. + * function.c (init_function_start): Adjust emit_line_note call. + (expand_function_end): Use force_next_line_note, not + emit_line_note_force. + * c-parse.in (maybe_type_qual): Adjust emit_line_note calls. + * c-semantics.c (genrtl_do_pushlevel, genrtl_goto_stmt, + genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt, + genrtl_while_stmt, genrtl_do_stmt_1, genrtl_return_stmt, + genrtl_for_stmt, genrtl_break_stmt, genrtl_continue_stmt, + genrtl_continue_stmt, genrtl_switch_stmt, + genrtl_asm_stmt): Likewise. + * expr.c (expand_expr): Likewise. + * integrate.c (expand_inline_function): Likewise. + * stmt.c (set_file_and_line_for_stmt): Take a location_t. + (expand_decl_init): Adjust emit_line_note call. + +2003-07-07 Dale Johannesen + + * config/rs6000/darwin-tramp.asm: Fix trampolines. PR 10900. + +2003-07-07 Andreas Jaeger + + * config/i386/i386-protos.h: Convert prototypes to ISO C90. + * config/i386/i386.c: Likewise. + +2003-07-07 Kazu Hirata + + * config/h8300/h8300.md: Use gen_int_mode instead of + GEN_INT (trunc_int_for_mode (...)). + +2003-07-07 Kazu Hirata + + * config/h8300/h8300.md (pushqi1_h8300hs): Optimize by pushing + 2 bytes and then subtract 2 from the stack pointer. + (pushhi1_h8300hs): Likewise. + +2003-07-07 Nathan Sidwell + + * configure.in (enable_coverage): Remove -DSELF_COVERAGE, add + -frandom-seed. + * configure: Regenerated. + * Makefile.in: Remove extraneous comment. + * toplev.c (randomize): Protect against potential multiple calls. + * doc/invoke.texi (-frandom-seed): Document use for in coverage + files. + +2003-07-07 Richard Kenner + Eric Botcazou + + PR optimization/11198 + * alias.c (objects_must_conflict_p): Return 1 if the types have + the same alias set, not if the alias sets only conflict. + +2003-07-07 Andrew Pinski + + * cppcharset.c (ICONV_CONST): Define iff !HAVE_ICONV. + (convert_cset): Change inbuf to type ICONV_CONST char. + * Makefile.in (LIBS): Add LIBICONV. + + * doc/invoke.texi (-falign-functions): Document that + when n is zero then a machine-dependent default is used. + (-falign-labels): Document that when n is zero then a + machine-dependent default is used and that -falign-labels =1 + is equivalent to -fno-align-labels. + (-falign-loops): Likewise. + (-falign-jumps): Likewise. + +2003-07-06 Art Haas + + * f/global.c (ffeglobal_type_string_): Fix obsolete GCC array + initializer syntax. + +2003-07-06 James E Wilson + + PR optimization/9812 + * rtl.h (mem_for_const_double): Delete prototype. + * varasm.c (mem_for_const_double): Delete function. + * config/m68k/hp320.h, config/m68k/linux.h, config/m68k/m68kelf.h, + config/m68k/m68kv4.h, config/m68k/netbsd-elf.h + (LEGITIMATE_PIC_OPERAND_P): Delete duplicate definitions. + * config/m68k/m68k.h (LEGITIMATE_CONSTANT_P): Disallow XFmode. + (LEGITIMATE_PIC_OPERAND_P): Delete CONST_DOUBLE tests. + * config/m68k/m68k.md (movxf): Add reload_in_progress guard. Add + comment about confused support for XFmode constants. + +2003-07-07 Jan Hubicka + + * cfglayout.c (fixup_reorder_chain): Call delete_dead_jumptables. + +2003-07-06 Kazu Hirata + + * config/h8300/h8300.c: Fix comment typos. + * config/h8300/h8300.md: Likewise. + * config/i386/athlon.md: Likewise. + * config/i386/i386.c: Likewise. + * config/i386/pentium.md: Likewise. + * config/ia64/ia64.c: Likewise. + * config/ia64/itanium1.md: Likewise. + * config/ia64/itanium2.md: Likewise. + * config/m32r/m32r.md: Likewise. + * config/m68hc11/m68hc11.c: Likewise. + * config/mcore/mcore.c: Likewise. + * config/mips/sr71k.md: Likewise. + * config/mips/t-iris5-as: Likewise. + * config/mmix/mmix.h: Likewise. + * config/ns32k/ns32k.h: Likewise. + * config/ns32k/NOTES: Fix a typo. + +2003-07-06 Andreas Jaeger + + * stmt.c: Convert remaining prototypes to ISO C90. + * cfglayout.c: Likewise. + * dbxout.c: Likewise. + * gcc.c: Likewise. + * genemit.c: Likewise. + + * basic-block.h: Convert prototypes to ISO C90. + * c-parse.in: Likewise. + * c-pragma.h: Likewise. + * c-typeck.c: Likewise. + * cfghooks.h: Likewise. + * cfgloopanal.c: Likewise. + * dbxout.h: Likewise. + * debug.h: Likewise. + * dwarf2asm.h: Likewise. + * gcov.c: Likewise. + * gengtype-lex.l: Likewise. + * sched-int.h: Likewise. + * timevar.c: Likewise. + +2003-07-06 Neil Booth + + * c-common.h (c_comon_handle_filename, + c_common_missing_arguement): New. + * c-lang.c (LANG_HOOKS_HANDLE_FILENAME, + LANG_HOOKS_MISSING_ARGUMENT): New. + * c-opts.c (missing_arg): Rename c_common_missing_argument, + update to be an appropriate langhook. + (c_common_handle_option): Don't handle filenames. + (c_common_handle_filename): New. + * hooks.c (hook_void_constcharptr, + hook_bool_constcharptr_size_t_false): New. + * hooks.h (hook_void_constcharptr, + hook_bool_constcharptr_size_t_false): New. + * langhooks-def.h (LANG_HOOKS_HANDLE_FILENAME, + LANG_HOOKS_MISSING_ARGUMENT): New. + (LANG_HOOKS_INITIALIZER): Update. + * langhooks.h (struct lang_hooks): Add handle_filename and + missing_argument. + * opts.c (handle_option): Don't handle filenames here, but ... + (handle_options): ... here. + (common_handle_option): Don't handle missing arguments here. + * objc/objc-lang.c (LANG_HOOKS_HANDLE_FILENAME, + LANG_HOOKS_MISSING_ARGUMENT): New. + +2003-07-06 Neil Booth + + * Makfile.in: Remove traces of mbchar. + * c-parse.in (MULTIBYTE_CHARS): Remove. + * config.in (MULTIBYTE_CHARS): Remove. + * configure: Remove --enable-mbchar. + * configure.in: Remove --enable-mbchar. + * mbchar.c, mbchar.h: Remove. + * system.h: Poison MULTIBYTE_CHARS. + * config/linux-aout.h (MULTIBYTE_CHARS): Remove. + * config/linux.h (MULTIBYTE_CHARS): Remove. + * config/svr4.h (MULTIBYTE_CHARS): Remove. + * config/sparc/linux.h (MULTIBYTE_CHARS): Remove. + +2003-07-06 Andreas Jaeger + + * varray.c (varray_check_failed): Fix typo. + + * unroll.c: Convert prototypes to ISO C90. + * varasm.c: Likewise. + * varray.c: Likewise. + * varray.h: Likewise. + * vmsdbgout.c: Likewise. + * xcoffout.c: Likewise. + * xcoffout.h: Likewise. + +2003-07-06 Nathan Sidwell + + * gcov-io.h: Add a local time stamp. + (struct gcov_info): Add stamp field. + (gcov_truncate): New. + * coverage.c (read_counts_file): Skip the stamp. + (coverage_begin_output): Write the stamp. + (build_gcov_info): Declare and init the stamp. + (coverage_finish): Only unlink data file, if stamp is zero. + * gcov-dump.c (dump_file): Dump the stamp. + * gcov.c (bbg_stamp): New. + (release_structures): Clear bbg_stamp. + (read_graph_file): Read stamp. + (read_count_file): Check stamp. + * libgcov.c (gcov_exit): Check stamp and truncate if needed. + +2003-07-06 Nathan Sidwell + + * tree.h (default_flag_random_seed): Remove. + * toplev.h (local_tick): Declare. + * tree.c (flag_random_seed, default_flag_random_seed): Move to + toplev.c. + (append_random_chars): Don't call default_flag_random_seed. + * toplev.c (flag_random_seed): Define here. Set local_tick. + (local_tick): Define. + (randomize): New, moved from tree.c. + (print_switch_values): Adjust. + (toplev_main): Call randomize. + +2003-07-06 Nathan Sidwell + + * tree.h (crc32_string): Declare. + * tree.c (append_random_chars): Remove. + (crc32_string): New. + (get_file_function_name_long): Use crc32_string here. + +2003-07-06 Andreas Jaeger + + * gcc.c: Convert prototypes to ISO C90. + * gcc.h: Likewise. + * gcov-dump.c: Likewise. + * gcov-iov.c: Likewise. + * gcse.c: Likewise. + * genattrtab.h: Likewise. + * ggc.h: Likewise. + * global.c: Likewise. + * graph.c: Likewise. + * graph.h: Likewise. + * hosthooks.h: Likewise. + * hooks.h: Likewise. + * hooks.c: Likewise. + * hashtable.h: Likewise. + * hashtable.c: Likewise. + * haifa-sched.c: Likewise. + * integrate.h: Likewise. + * integrate.c: Likewise. + * input.h: Likewise. + * ifcvt.c: Likewise. + * jump.c: Likewise. + * langhooks-def.h: Likewise. Add extern to prototypes. + * langhooks.c: Likewise. + * langhooks.h: Likewise. + * lcm.c: Likewise. + * local-alloc.c: Likewise. + * loop-init.c: Likewise. + * loop-unroll.c: Likewise. + * loop-unswitch.c: Likewise. + * loop.c: Likewise. + * loop.h: Likewise. Add extern to prototypes. + * machmode.h: Likewise. + * main.c: Likewise. + * mbchar.c: Likewise. + * mbchar.h: Likewise. + * mkdeps.c: Likewise. + * mkdeps.h: Likewise. + * optabs.c: Likewise. + * optabs.h: Likewise. + * output.h: Likewise. + * gccspec.c: Likwise. + * postreload.c: Likewise. + * prefix.c: Likewise. + * prefix.h: Likewise. + * print-rtl.c: Likewise. + * print-tree.c: Likewise. + * profile.c: Likewise. + * read-rtl.c: Likewise. + * real.c: Likewise. + * real.h: Likewise. + * recog.c: Likewise. + * recog.h: Likewise. + * reg-stack.c: Likewise. + * regclass.c: Likewise. + * regmove.c: Likewise. + * regrename.c: Likewise. + * regs.h: Likewise. + * reload.c: Likewise. + * reload.h: Likewise. + * reload1.c: Likewise. + * reorg.c: Likewise. + * resource.c: Likewise. + * resource.h: Likewise. + * rtl-error.c: Likewise. + * rtl.c: Likewise. + * rtl.h: Likewise. + * rtlanal.c: Likewise. + * sbitmap.c: Likewise. + * sbitmap.h: Likewise. + * scan-decls.c: Likewise. + * scan.c: Likewise. + * sched-deps.c: Likewise. + * sched-ebb.c: Likewise. + * sched-int.h: Likewise. + * sched-rgn.c: Likewise. + * sched-vis.c: Likewise. + * sibcall.c: Likewise. + * simplify-rtx.c: Likewise. + * sreal.c: Likewise. + * sreal.h: Likewise. + * ssa-ccp.c: Likewise. + * ssa-dce.c: Likewise. + * ssa.c: Likewise. + * ssa.h: Likewise. + * stack.h: Likewise. + * stmt.c: Likewise. + * stor-layout.c: Likewise. + * stringpool.c: Likewise. + * target.h: Likewise. + * timevar.c: Likewise. + * timevar.h: Likewise. + * tlink.c: Likewise. + * tracer.c: Likewise. + * tree-inline.c: Likewise. + * tree-inline.h: Likewise. + * tree.c: Likewise. + * tree.h: Likewise. + +2003-07-05 Kazu Hirata + + * combine.c (nonzero_bits1): Fix a warning. + +2003-07-05 Kazu Hirata + + * config/h8300/h8300.c (compute_mov_length): Correct the + length of loading CONST0_RTX (SFmode). + +2003-07-05 Nathan Sidwell + + * toplev.c (output_clean_symbol_name): Remove. + * toplev.h (output_clean_symbol_name): Remove. + * config/alpha/alpha.c (unicosmk_output_module_name): Use + lbasename & clean_symbol_name. + +2003-07-05 Kazu Hirata + + * ggc.h: Follow spelling conventions. + * config/i386/i386.c: Likewise. + * config/i386/winnt.c: Likewise. + * config/rs6000/rs6000.c: Likewise. + +2003-07-05 Kazu Hirata + + * bt-load.c: Fix comment typos. + * c-incpath.c: Likewise. + * cfg.c: Likewise. + * cfgcleanup.c: Likewise. + * cfgloop.h: Likewise. + * cfgloopmanip.c: Likewise. + * cfgrtl.c: Likewise. + * diagnostic.h: Likewise. + * dwarfout.c: Likewise. + * emit-rtl.c: Likewise. + * et-forest.c: Likewise. + * et-forest.h: Likewise. + * expr.c: Likewise. + * gcse.c: Likewise. + * genattr.c: Likewise. + * jump.c: Likewise. + * langhooks.h: Likewise. + * local-alloc.c: Likewise. + * loop-unroll.c: Likewise. + * loop-unswitch.c: Likewise. + * ra-build.c: Likewise. + * regclass.c: Likewise. + * regmove.c: Likewise. + * rtl.def: Likewise. + * rtlanal.c: Likewise. + * sched-ebb.c: Likewise. + * sched-rgn.c: Likewise. + * simplify-rtx.c: Likewise. + * ssa.c: Likewise. + * tracer.c: Likewise. + * tree.c: Likewise. + +2003-07-05 Zack Weinberg + + * cppcharset.c: Use the correct return type for the fallback iconv + macro. + +2003-07-05 Zdenek Dvorak + + Blame to Jan Hubicka + * cfglayout.c (record_effective_endpoints): Split insns before + first basic block correctly. + +2003-07-05 Richard Kenner + + * expr.c (expand_expr, case COMPONENT_REF): When seeing if should use + bitfield operations, use STRICT_ALIGNMENT, not SLOW_UNALIGNED_ACCESS + if EXPAND_CONST_ADDRESS or EXPAND_INITIALIZER. + +2003-07-05 Andreas Jaeger + + * genattrtab.c (write_attr_get): Revert part of last patch to + always write out a prototype. + + * genemit.c (gen_split): Readd lost unused attributes in last + patch. + +2003-07-05 Zdenek Dvorak + + * cfgloopmanip.c (force_single_succ_latches): Force latch to be + different from header. + +2003-07-05 Andreas Schwab + + * config/m68k/m68k.c: Remove code protected by CRDS. + * config/m68k/m68k.md: Likewise. + +2003-07-05 Neil Booth + + PR driver/11417 + * c-opts.c (permit_fortran_options): New. + (c_common_init_options): Accept fortran front end options if + it looks like we might be preprocessing Fortran. + (c_common_handle_option): Don't reject switch if permit_fotran_options. + +2003-07-05 Kaveh R. Ghazi + + * genattr.c (internal_dfa_insn_code): Output prototype. + * genattrtab.c: Don't output unnecessary decls, output in ISO C. + * genautomata.c: Likewise. + * genconditions.c: Likewise. + * genemit.c: Likewise. + * genextract.c: Likewise. + * gengenrtl.c: Likewise. + * gengtype.c: Likewise. + * genopinit.c: Likewise. + * genoutput.c: Likewise. + * genpeep.c: Likewise. + * genrecog.c: Likewise. + +2003-07-04 Zack Weinberg + + * cpplib.h (CPP_AT_NAME, CPP_OBJC_STRING): New token types. + (struct cpp_options): Add narrow_charset, wide_charset, + bytes_big_endian fields. Remove EBCDIC field. + (cpp_init_iconv, cpp_interpret_string): New external interfaces. + + * cpphash.h: Include if we have it, otherwise + provide a dummy definition of iconv_t. + (struct cpp_reader): Add narrow_cset_desc and wide_cset_desc fields. + (_cpp_valid_ucn): Update prototype. + (_cpp_destroy_iconv): New prototype. + + * doc/cpp.texi: Document character set handling. + * doc/cppopts.texi: Document -fexec-charset= and -fexec-wide-charset=. + * doc/extend.texi: Delete entire section on multiline strings. + Rewrite section on __FUNCTION__ etc now that these are + variables in C. + + * cppucnid.tab, cppucnid.pl: New files. + * cppucnid.h: New generated file. + * cppcharset.c: Include cppucnid.h. Lots of commentary added. + (iconv_open, iconv, iconv_close): Provide dummy definitions + if !HAVE_ICONV. + (SOURCE_CHARSET, struct strbuf, init_iconv_desc, cpp_init_iconv, + _cpp_destroy_iconv, convert_cset, width_to_mask, convert_ucn, + emit_numeric_escape, convert_hex, convert_oct, convert_escape, + cpp_interpret_string, narrow_str_to_charconst, + wide_str_to_charconst): New. + (ucn_valid_in_identifier): Use a binary search through the + ucnranges table defined in cppucnid.h, not a long chain of if + statements. + (_cpp_valid_ucn): Add a limit pointer. Downgrade "universal + character names are only valid in C++ and C99" to a warning. + Issue the "meaning of \[uU] is different in traditional C" + warning here. Take care not to let iconv see an invalid UCS + value if we get a malformed UCN. Issue an error if we don't + have iconv. + (cpp_interpret_charconst): Moved here from cpplex.c. Use + cpp_interpret_string to do the heavy lifting. + + * cppinit.c (cpp_create_reader): Initialize bytes_big_endian, + narrow_charset, wide_charset fields of options structure. + (cpp_destroy): Call _cpp_destroy_iconv. + * cpplex.c (forms_identifier_p): Adjust call to _cpp_valid_ucn. + (maybe_read_ucn, hex_digit_value, cpp_parse_escape): Delete. + (cpp_interpret_charconst): Moved to cppcharset.c. + * cpplib.c (dequote_string): Delete. + (interpret_string_notranslate): New. + (do_line, do_linemarker): Use interpret_string_notranslate. + + * Makefile.in (cppcharset.o): Depend on cppucnid.h. + + * c-common.c (fname_string, combine_strings): Delete. + * c-common.h (fname_string, combine_strings): Delete prototypes. + * c-lex.c (ignore_escape_flag): Delete. + (cb_ident): Use cpp_interpret_string, not lex_string. + (get_nonpadding_token): New function. + (c_lex): Handle Objective-C @-prefixed identifiers and strings here. + Adjust calls to lex_string. Don't write *value twice. + (lex_string): Now handles string constant concatenation. + Most of the work handed off to cpp_interpret_string. + Call fix_string_type here. + * c-parse.in (STRING_FUNC_NAME, VAR_FUNC_NAME): Replace with + FUNC_NAME, throughout. + (OBJC_STRING): New token type. + (primary:STRING): No need to call fix_string_type here. + (primary:objc_string): Make that OBJC_STRING. + (objc_string nonterminal): Delete. + (yylexname): Delete code to handle fake string constants. + (yylexstring): Delete entirely. + (_yylex): Handle CPP_AT_NAME and CPP_OBJC_STRING. No need + to handle CPP_ATSIGN. + + * c.opt (-fexec-charset=, -fwide-exec-charset=): New options. + * c-opts.c (missing_arg, c_common_handle_option): Handle + OPT_fexec_charset_ and OPT_fwide_exec_charset_. + (c_common_init): Set cpp_opts->bytes_big_endian, not + cpp_opts->EBCDIC. Call cpp_init_iconv. + (print_help): Document -fexec-charset= and -fexec-wide-charset=. + (TARGET_EBCDIC): Delete default definition. + + * objc/objc-act.c (build_objc_string_object): No need to + handle string constant concatenation. + +2003-07-04 Kazu Hirata + + * doc/install.texi: Fix typos. + * doc/invoke.texi: Likewise. + * doc/tm.texi: Likewise. + +2003-07-04 Kazu Hirata + + * config/pa/fptr.c: Fix comment typos. + * config/pa/pa-64.h: Likewise. + * config/pa/pa.c: Likewise. + * config/pa/pa.h: Likewise. + * config/rs6000/603.md: Likewise. + * config/rs6000/7xx.md: Likewise. + * config/rs6000/darwin.h: Likewise. + * config/rs6000/freebsd.h: Likewise. + * config/rs6000/rs6000.c: Likewise. + * config/rs6000/rs6000.md: Likewise. + * config/rs6000/spe.h: Likewise. + +2003-07-04 Ulrich Weigand + + * config/s390/2064.md: Change GNU CC to GCC. + * config/s390/2084.md: Likewise. + * config/s390/fixdfdi.h: Likewise. + * config/s390/linux.h: Likewise. + * config/s390/s390-modes.def: Likewise. + * config/s390/s390-protos.h: Likewise. + * config/s390/s390.c: Likewise. + * config/s390/s390.h: Likewise. + * config/s390/s390.md: Likewise. + * config/s390/s390x.h: Likewise. + +2003-07-04 Jeff Law + + PR c/11428 + * expr.c (do_store_flag): Pass in the correct result type + when calling fold_single_bit_test. + * fold-const.c (fold_single_bit_test): Use result_type for the + result when folding a sign bit test. + +2003-07-04 Neil Booth + + * opts.c (common_handle_options): Negate sense of -falign- switches. + +2003-07-04 H.J. Lu + + * Makefile.in: Replace PWD with PWD_COMMAND. + +2003-07-04 Zdenek Dvorak + + * cfgloopanal.c (count_strange_loop_iterations): New static function. + (constant_iterations, count_loop_iterations, simple_loop_exit_p): + Handle strange loops. + +2003-07-04 Toon Moene + + * install.texi: Even the g77 manpage is derived from + the full g77 manual. + +2003-07-04 Zack Weinberg + + * ABOUT-NLS: Delete. + * intl: Delete entire directory. + * aclocal.m4: Include ../config/gettext.m4. Delete + AC_ISC_POSIX, AM_LANGINFO_CODESET, jm_GLIBC21, AM_LC_MESSAGES, + AM_PATH_PROG_WITH_TEST, AM_WITH_NLS, and AM_GNU_GETTEXT. + * configure.in: Use CY_GNU_GETTEXT, not AM_GNU_GETTEXT. + Remove intl/Makefile from all_outputs. + * configure, config.in: Regenerate. + * Makefile.in: Expunge all references to intl subdirectory. + Add -I../intl to INCLUDES. + * intl.h: Include libintl.h if and only if ENABLE_NLS is defined. + +2003-07-04 Roger Sayle + + * config/rs6000/aix51.h (TARGET_C99_FUNCTIONS): Define. + * config/rs6000/aix52.h (TARGET_C99_FUNCTIONS): Likewise. + +2003-07-04 Danny Smith + + PR c++/5287, PR c++/7910, PR c++/11021 + * config/i386/winnt.c (ix86_handle_dll_attribute): Don't add + dllimport attribute if function is defined at declaration, but + report error instead. Likewise for dllimport'd variable + definitions. Set implicit TREE_PUBLIC for dllimport'd variables + declared within functions, Report error if dllimport or dllexport + symbol is not global. + (i386_pe_dllimport_p): Ignore dllimport attribute of functions + if defined after declaration or if inlined. Don't allow definition + of static data members of C++ classes. Don't dllimport virtual + methods. + (i386_pe_mark_dllexport): Warn about inconsistent dll attributes. + (i386_pe_mark_dllimport): Remove unnecessary checks. + (i386_pe_encode_section_info): Warn if the dllimport attribute + and symbol prefix have been instantiated and then overridden. + + * doc/extend.texi: Document dllimport and dllexport attributes. + + * config/i386/winnt.c (i386_pe_output_labelref): Fix indents. + +2003-07-03 Uwe Stieber + + * config/kaos.h (CPP_PREDEFINES): Delete. + (TARGET_OS_CPP_BUILTINS): New. + +2003-07-03 Kaveh R. Ghazi + + * c-aux-info.c: Include toplev.h after c-tree.h. + * c-common.c: Likewise. + (GCC_DIAG_STYLE): Undef. + * c-semantics.c (GCC_DIAG_STYLE): Define. + * c-tree.h (GCC_DIAG_STYLE): Likewise. + * diagnostic.h (inform): Move prototype to toplev.h. + * jump.c: Include diagnostic.h before toplev.h. + * toplev.h (GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG): Define. + (warning, error, fatal_error, pedwarn, sorry, inform, + error_for_asm, warning_for_asm): Mark with ATTRIBUTE_GCC_CXXDIAG. + +2003-07-03 Zdenek Dvorak + + * cfglayout.c (cfg_layout_duplicate_bb): Do not update frequencies + at all if edge is not specified. + (can_copy_bbs_p, copy_bbs): New. + * cfglayout.h (can_copy_bbs_p, copy_bbs): Declare. + * cfgloop.c (get_loop_body): Comment more precisely. + * cfgloopmanip.c (copy_bbs, record_exit_edges): Removed. + (scale_bbs_frequencies): Fix comment typo. + (can_duplicate_loop_p): Use can_copy_bbs_p. + (duplicate_loop_to_header_edge): Simplify by using copy_bbs. + +2003-07-03 Devang Patel + + * c-opts.c (c_common_parse_file): Remove extra + debug_hooks->start_source_file call. + +2003-07-03 Roger Sayle + + * real.c (real_trunc, real_floor, real_ceil): New functions + to implement trunc, floor and ceil respectively. + * real.h (real_trunc, real_floor, real_ceil): Prototype here. + * builtins.c (integer_valued_real_p): New function to test if + a floating point expression has an integer valued result. + (fold_trunc_transparent_mathfn): Optimize foo(foo(x)) as + foo(x) where foo is an integer rounding function. Similarly, + optimize foo(bar(x)) as bar(x), and foo((double)(int)x) as + (double)(int)x when both foo and bar are integer rounding + functions and we don't need to honor errno. + (fold_builtin_trunc, fold_builtin_floor, fold_builtin_ceil): + New functions to fold trunc, floor and ceil. + (fold_builtin): Use fold_builtin_trunc to fold BUILT_IN_TRUNC*, + fold_builtin_floor to fold BUILT_IN_FLOOR* and fold_builtin_ceil + to fold BUILT_IN_CEIL*. + * fold-const.c (tree_expr_nonnegative_p): Handle FLOAT_EXPR and + the remaining integer rounding functions. + +2003-07-03 Eric Botcazou + + * config/sparc/sparc.c (function_arg_partial_nregs): Use + SPARC_INT_ARG_MAX to determine where to split unnamed + complex FP arguments. + +2003-07-03 Jan Hubicka + + * basic-block.h (create_basic_block, merge_blocks_nomove): Kill. + * cfgcleanup.c (merge_blocks): Rename to merge_blocks_move. + (merge_blocks_move_predecessor_nojumps, + merge_blocks_move_successor_nojumps): Use merge_blocks. + (try_optimize_cfg): Use merge_blocks_move. + * cfgrtl.c (create_basic_block): Rename to rtl_create_basic_block. + (merge_blocks_nomove): Rename to rtl_merge_blocks. + (cfg_layout_create_basic_block): New. + (rtl_can_merge_blocks): New. + (cfg_layout_split_block): Do not alloc aux by hand. + * cfghooks.h (cfg_hooks): Add create_basic_block, can_merge_blocks_p, + merge_blocks. + (create_basic_block, can_merge_blocks_p, merge_blocks): New macros. + * cfglayout.c (cfg_layout_duplicate_bb): Do not allocate aux by hand. + * cfgloopmanip.c (loop_split_edge_with): Likewise. + * ifcvt.c (merge_if_block): Use merge_blocks_nomove. + + * basic-block.h (basic_block_def): Add field 'rbi'. + * bb-reorder.c (find_traces, rotate_loop, mark_bb_visited, + find_traces_1_round, copy_bb, connect_traces): Update use of rbi. + * cfg.c (entry_exit_blocks): Add new field. + * cfglayout.c: Include alloc-pool.h; + (cfg_layout_pool): New. + (record_effective_endpoints, fixup_reorder_chain, + fixup_fallthru_exit_predecessor, cfg_layout_duplicate_bb): Update use + of rbi. + (cfg_layout_initialize_rbi): New function. + (cfg_layout_initialize): Use it. + (cfg_layout_finalize): Clear rbi fields. + * cfglayout.h (RBI): Kill. + (cfg_layout_initialize_rbi): Declare. + * cfgloopmanip.c (copy_bbs): Use rbi. + (record_exit_edges): Likewise. + (duplicate_loop_to_header_edge): Likewise. + * cfgrtl.c (cfg_layout_create_basic_block): Use + cfg_layout_initialize_rbi. + (cfg_layout_split_block): Use rbi. + (cfg_layout_delete_block): Likewise. + * loop-init.c (loop_optimizer_finalize): Likewise. + * loop-unswitch.c (unswitch_loop): Likewise. + * tracer.c (seen, tail_duplicate, layout_superblocks): Likewise. + + * cfgrtl.c: Update comments. + (try_redirect_by_replacing_jump): New argument. + (redirect_branch_edge): Break out from ... + (rtl_redirect_edge_and_branch): ... this one. + (update_cfg_after_block_merging): Break out from ... + (rtl_merge_blocks): ... this one. + (cfg_layout_split_edge): New. + (cfg_layout_merge_blocks): New. + (cfg_layout_can_merge_blocks_p): New. + (cfg_layout_redirect_edge_and_branch): Reorganize. + (cfg_layout_rtl_cfg_hooks): Fill in. + (cfg_layout_delete_block): Kill barriers. + * cfganal.c (can_fallthru): Deal with exit blocks + * cfglayout.c (cfg_layout_function_header): New function + (record_effective_endpoints): Record function header. + (fixup_reorder_chain): Fixup dead jumptables; place header + + * basic-block.h (CLEANUP_CFGLAYOUT): New flag. + * bb-reorder.c (cfg_layout_initialize): Update call. + * cfgcleanup.c (try_optimize_cfg): Supress optimizations of fallthru + edges in cfglayout mode. + * cfglayout.c (cleanup_unconditional_jumps): Kill. + (cfg_layout_initialize): Kill agrument loops; use cfgcleanup. + * cfglayout.h (cfg_layout_initialize): Update prototype. + * cfgloop.h (CP_INSIDE_CFGLAYOUT): Kill. + * cfgloopmanip.c (loop_split_edge_with): Use split_edge. + * flow.c (propagate_block): Do not crash when basic block ends + by first insn in the chain. + * loop-init.c (loop_optimizer_init): First enter cfglayout mode; later + do loop discovery. + * tracer.c (tracer): Update call of cfg_layout_initialize. + +2003-07-03 Kaveh R. Ghazi + + * Makefile.in: Use dependency variables in lieu of explicit + files throughout. + +2003-07-03 Steven Bosscher + + * rtl.h (ECF_*, flags_from_decl_or_type): Move from here... + * tree.h: ...to here. + +2003-07-03 Kazu Hirata + + * config/s390/2064.md: Fix comment typos. + * config/s390/2084.md: Likewise. + * config/s390/s390.c: Likewise. + * config/s390/s390.md: Likewise. + * config/sh/sh.c: Likewise. + * config/sh/sh.h: Likewise. + * config/sh/sh.md: Likewise. + * config/sparc/sparc.c: Likewise. + * config/sparc/sparc.h: Likewise. + * config/sparc/sparc.md: Likewise. + * config/stormy16/stormy16.c: Likewise. + * config/stormy16/stormy16.h: Likewise. + * config/stormy16/stormy-abi: Fix a typo. + +2003-07-03 Kelley Cook + + * Makefile.in (ifcvt.o): Depend on OPTABS_H. + +2003-07-03 Kaveh R. Ghazi + + * config/mips/mips.h (save_argv): Delete. + +2003-07-03 Roger Sayle + + PR target/10700 + * fold-const.c (extract_muldiv_1): There's nothing that can be done + if the expression is a SAVE_EXPR. + +2003-07-03 Kazu Hirata + + * config/m32r/m32r.c: Fix comment typos. + * config/m68hc11/m68hc11.c: Likewise. + * config/m68hc11/m68hc11.h: Likewise. + * config/m68k/m68k.c: Likewise. + * config/mcore/mcore.c: Likewise. + * config/mcore/mcore.h: Likewise. + * config/mcore/mcore.md: Likewise. + * config/mips/mips.c: Likewise. + * config/mips/mips.h: Likewise. + * config/mips/mips.md: Likewise. + * config/mips/netbsd.h: Likewise. + * config/mn10300/mn10300.c: Likewise. + +2003-07-03 Andreas Schwab + + * dbxout.c (pending_bincls): Move decl down inside + DBX_DEBUGGING_INFO || XCOFF_DEBUGGING_INFO section. + +2003-07-02 Nathan Sidwell + + * rtl.h (NOTE_DATA): Refer to whole union. + * emit-rtl.c (emit_note): Use memset to clear NOTE_DATA. + +2003-07-03 Eric Botcazou + + PR optimization/11381 + * simplify-rtx.c (simplify_relational_operation): Check that + two equal operands have no side-effects before simplifying + the comparison. + +2003-07-02 Jeff Law + + * expr.c (do_store_flag): Remove special case folding for + single bit tests. Instead call back into the commonized folder + routine. + * fold-const.c (fold_single_bit_test): New function, mostly + extracted from do_store_flag, with an additional case extracted + from fold. + (fold): Call fold_single_bit_test appropriately. + * tree.h (fold_single_bit_test): Prototype. + +2003-07-02 Zack Weinberg + + * system.h: Include filenames.h. + (IS_DIR_SEPARATOR, IS_ABSOLUTE_PATHNAME): Don't define. + (DIR_SEPARATOR, DIR_SEPARATOR_2): If not already defined, + define based on HAVE_DOS_BASED_FILE_SYSTEM. + * config/i386/xm-cygwin.h, config/i386/xm-djgpp.h + * config/i386/xm-mingw32.h: Don't define + HAVE_DOS_BASED_FILE_SYSTEM, + DIR_SEPARATOR, or DIR_SEPARATOR_2. + * doc/hostconfig.texi: Update to match. + + * cppfiles.c, gcc.c, gensupport.c, protoize.c, + config/i386/cygwin.h: + Use IS_ABSOLUTE_PATH throughout. + * gcc.c (DIR_UP): Delete, unused. + * protoize.c (IS_SAME_PATH): Define in terms of + FILENAME_CMP. + (is_abspath): Delete. + +2003-07-02 Kazu Hirata + + * config/i386/emmintrin.h: Fix comment typos. + * config/i386/i386.c: Likewise. + * config/i386/i386.h: Likewise. + * config/i386/sco5.h: Likewise. + * config/ia64/ia64.c: Likewise. + * config/ia64/itanium2.md: Likewise. + +2003-07-02 H.J. Lu + + * dbxout.c (pending_bincls): Replace DBX_USE_BINCLS with + DBX_USE_BINCL. + (emit_bincl_stab): Same. + (emit_pending_bincls): Same. + +2003-07-02 Kazu Hirata + + * config/h8300/h8300.c (compute_mov_length): Fix the length of + loading CONST0_RTX (SFmode). + * config/h8300/h8300.h (CONST_DOUBLE_OK_FOR_LETTER_P): Change + 'G' to CONST0_RTX (SFmode). + * config/h8300/h8300.md (movsf_h8300): Change the first + constraint to 'G'. + (movsf_h8300h): Likewise. + +2003-07-02 Neil Booth + + * c-common.h (c_common_init_options): New prototype. + * c-opts.c (deferred_size): Remove. + (defer_opt): Array is now pre-allocated. + (c_common_init_options): Pre-allocate deferred_opts. Make + lang_flags unsigned. + (push_command_line_options): Free deferred_opts. + * hooks.c (hook_uint_uint_constcharptrptr_0): New. + * hooks.h (hook_uint_uint_constcharptrptr_0): New. + * langhooks-def.h (LANG_HOOKS_INIT_OPTIONS): Update. + * langhooks.h (struct lang_hooks): New prototype for init_options. + * main.c (main): Cast argv. + * opts.c (handle_option, handle_options): Update prototypes. + (decode_options): save_argc, save_argv are not global. Constify. + * opts.h (decode_options): New prototype. + * toplev.c (general_init): New protoype. + (save_argv): Make static. + (save_argc): Remove. + (print_switch_values, general_init): Constify. + (toplev_main): Save argv. + * toplev.h (toplev_main): Update prototype. + (save_argc, save_argv): Remove. + +2003-07-02 David Edelsohn + + * dbxout.c (pending_bincls): Guard with DBX_USE_BINCLS. + (emit_bincl_stab): Same. + (emit_pending_bincls): Same. + +2003-07-02 Nathan Sidwell + + PR c++/11072 + * ginclude/stddef.h (offsetof): Remove cast to 'char &'. Explain why. + +2003-07-02 Andreas Schwab + + * dbxout.c (pending_bincls): Only define if DBX_DEBUGGING_INFO. + +2003-07-02 Eric Botcazou + + PR optimization/11210 + * expr.c (handled_component_p) [NOP_EXPR]: Add ??? note + about the behaviour with regard to bitfields. + * fold-const (decode_field_reference): Record outermost type in + case the expression is a NOP. Strip all NOPs. Set the signedness + to that of the outermost type (if any) when the bitsize is equal + to the size of the type. + +2003-07-02 Richard Sandiford + + * config/mips/mips.md (addsi3): Remove workaround for adds of -32768. + (addsi3_internal, adddi3, adddi3_internal_2): Likewise. + (adddi3_internal_3, addsi3_internal_2): Likewise. + +2003-07-02 Richard Sandiford + + * config/mips/mips.c (machine_function): Add new fields: + ignore_hazard_length_p and all_noreorder_p. + (mips_flag_delayed_branch): New variable. + (override_options): Treat '/' as an operand punctuation character. + Set up mips_flag_delayed_branch. + (print_operand): Handle '/'. + (mips_output_function_prologue): Put the whole function in + .set noreorder and .set nomacro if all_noreorder_p is true. + (mips_output_function_epilogue): End the noreorder/nomacro sequence. + (mips16_optimize_gp): Remove "first insn" parameter. + (mips16_lay_out_constants): New function, split out from mips_reorg. + (mips_avoid_hazard, mips_avoid_hazards): New functions. + (mips_reorg): For mips16 code, call mips16_lay_out_constant + and (optionally) mips16_optimize. If TARGET_EXPLICIT_RELOCS, + do delayed-branch scheduling followed by hazard detection. + (mips_adjust_insn_length): Only account for hazards if + !ignore_hazard_length_p. + (mips_output_load_label): Add a nop to the o32 sequence if + the target suffers from load delays. + (mips_output_conditional_branch): Add %/ to the end of branches. + (mips_output_division): Fill the branch delay slot with %#. + * config/mips/mips.md: Remove redundant '%*' from mips16 branch + instructions. End all other %* branches with %/. + (ffssi2, ffsdi2): Fix lengths. + (truncdisi2, truncdihi2, truncdiqi2): Add store attributes. + (fix_truncdfsi2_macro): Turn off .set nomacro if appropriate. + (fix_truncsfsi2_macro): Likewise. + (mov_lwl): Set hazard to "none". + (ashldi3_internal): Fill the branch delay slot with %#. + (ashrdi3_internal, lshrdi3_internal): Likewise. + (exception_receiver): Explicitly set $28. + (hazard_nop): New pattern. + +2003-07-02 Jan Hubicka + + * cgraphunit.c (cgraph_finalize_unit): Set current_function_decl + before calling tree_inlinable_function_p. + +2003-07-02 Rainer Orth + + * fixinc/inclhack.def (irix_stdio_va_list): Apply to IRIX 6.5 + too. + (stdio_va_list): Apply to IRIX 6.5 and + too. + Substitute va_list uses in inline definition. + * fixinc/fixincl.x: Regenerate. + +2003-07-02 Rainer Orth + + * config/mips/iris5.h (SET_FILE_NUMBER): Moved here from iris3.h. + Undef before redefinition. + (LABEL_AFTER_LOC): Likewise. + (DEFAULT_SIGNED_CHAR): Likewise. + (ASM_OUTPUT_ASCII): Moved here from iris4.h. + Fix IRIX spelling. + + * config/mips/iris3.h: Remove, unused. + * config/mips/iris4.h: Likewise. + + * config/mips/mips.h (STACK_ARGS_ADJUST): Remove, unused. + + * config/mips/iris5.h (TARGET_DEFAULT): Move ... + * config.gcc (mips-sgi-irix6*o32, mips-sgi-irix5*): ... here to + target_cpu_default. + + * config/mips/iris5.h: Move explicit includes ... + * config.gcc (mips-sgi-irix6*o32, mips-sgi-irix5*): ... here. + + * config/mips/iris6.h (MIPS_ISA_DEFAULT, MIPS_ABI_DEFAULT): Move ... + * config.gcc (mips-sgi-irix6*, mips-sgi-irix5cross64): ... here to + tm_defines. + + * config/mips/iris6.h (TARGET_DEFAULT): Move ... + * config.gcc (mips-sgi-irix6*, mips-sgi-irix5cross64): ... here to + target_cpu_default. + + * config/mips/iris6.h: Fix IRIX spelling. + (MULTILIB_DEFAULTS): Undef before redefinition. + + * config/mips/iris6.h: Move explicit includes ... + * config.gcc (mips-sgi-irix6*, mips-sgi-irix5cross64): ... here. + +2003-07-02 Jan Hubicka + + * cgraph.c (cgraph_mark_needed_node, cgraph_varpool_mark_needed_node, + cgraph_varpool_finalize_decl, cgraph_varpool_assemble_pending_decls): + Use next_needed field instead of aux to maintain the queue. + * cgraph.h (cgraph_node): Add next_needed. + (cgraph_varpool_node): Add next_needed; remove aux. + * cgraphunit.c (cgraph_finalize_compilation_unit): Use next_needed. + +2003-07-02 Jan Hubicka + + * cgraphunit.c (cgraph_finalize_function): Set finalized. + (cgraph_finalize_function): Do not examine inlinablility. + (cgraph_finalize_compilation_unit): Do it here. + * cgraph.h (cgraph_local_info): Add finalized field. + +2003-07-02 Rainer Orth + + * ggc-common.c (gt_pch_save): Cast MAP_FAILED to void *. + (gt_pch_restore): Likewise. + +2003-07-01 Kazu Hirata + + * config/alpha/alpha.c: Fix comment typos. + * config/alpha/elf.h: Likewise. + * config/arm/arm.c: Likewise. + * config/arm/arm.h: Likewise. + * config/arm/arm.md: Likewise. + * config/arm/t-arm-coff: Likewise. + * config/arm/t-strongarm-pe: Likewise. + * config/arm/xscale-elf.h: Likewise. + * config/avr/avr.h: Likewise. + +2003-07-01 Jeff Law + + * stmt.c (any_pending_cleanups): Remove another redundant test. + +2003-07-01 David Edelsohn + J"orn Rennecke + + * config/rs6000/rs6000.md (ctr{s,d}i_internal?): Add earlyclobber + for MEM case. + +2003-07-01 Devang Patel + + * dbxout.c (DBXOUT_DECR_NESTING): Emit pending bincls, if required. + (binclstatus): New. + (struct dbx_file): New members - bincl_status, pending_bincl_name and + prev. + (pending_bincls): New. + (dbxout_init): Initialize new dbx_file members. + (dbxout_start_source_file): Same. + (emit_bincl_stab): New function. + (emit_pending_bincls): Same. + (emit_pending_bincls_if_required): Same. + (dbxout_end_source_file): Emit EINCL stab only if BINCL is already + processed. + (dbxout_begin_block): Emit pending BINCL stabs. + (dbxout_end_block): Same. + (dbxout_function_decl): Same. + (dbxout_continue): Same. + (dbxout_type): Same. + (dbxout_class_name_qualifiers): Same. + (dbxout_symbol): Same. + (dbxout_symbol_location): Same. + (dbxout_parms): Same. + +2003-07-01 Kaveh R. Ghazi + + * c-semantics.c (genrtl_case_label): Fix format specifier bug. + * cfgrtl.c (rtl_verify_flow_info_1): Likewise. + +2003-07-01 Andreas Jaeger + + * fold-const.c: Convert prototypes to ISO C90. + * function.c: Likewise. + * function.h: Likewise. + +2003-07-01 Kazu Hirata + + * doc/contrib.texi: Fix typos. + * doc/invoke.texi: Likewise. + * doc/passes.texi: Likewise. + * doc/sourcebuild.texi: Likewise. + * doc/tm.texi: Likewise. + +2003-07-01 Kazu Hirata + + * basic-block.h: Fix comment typos. + * bb-reorder.c: Likewise. + * c-format.c: Likewise. + * cfgcleanup.c: Likewise. + * cfghooks.h: Likewise. + * cfgloop.c: Likewise. + * cfgloopmanip.c: Likewise. + * cfgrtl.c: Likewise. + * cgraph.h: Likewise. + * cgraphunit.c: Likewise. + * combine.c: Likewise. + * convert.c: Likewise. + * dbxout.c: Likewise. + * df.c: Likewise. + * df.h: Likewise. + * diagnostic.c: Likewise. + * dwarf2out.c: Likewise. + * et-forest.h: Likewise. + * flow.c: Likewise. + * fold-const.c: Likewise. + * function.h: Likewise. + * gcov-io.h: Likewise. + * gcov.c: Likewise. + * gcse.c: Likewise. + * genautomata.c: Likewise. + * ggc-common.c: Likewise. + * ggc-page.c: Likewise. + * loop-unroll.c: Likewise. + * loop-unswitch.c: Likewise. + * loop.c: Likewise. + * mips-tfile.c: Likewise. + * optabs.c: Likewise. + * ra-build.c: Likewise. + * ra-colorize.c: Likewise. + * ra-rewrite.c: Likewise. + * ra.h: Likewise. + * regmove.c: Likewise. + * reload.c: Likewise. + * rtlanal.c: Likewise. + * sched-ebb.c: Likewise. + * sched-int.h: Likewise. + * sched-vis.c: Likewise. + * sreal.c: Likewise. + * ssa-ccp.c: Likewise. + * ssa.c: Likewise. + * toplev.c: Likewise. + * tree-inline.c: Likewise. + * value-prof.c: Likewise. + * value-prof.h: Likewise. + +2003-07-01 Nathan Sidwell + + * rtl.h (emit_line_note_after): Remove. + (emit_note_copy_after, emit_note_copy): New. + * emit-rtl.c (reorder_insns_with_line_notes): Replace + emit_line_note_after with emit_note_copy_after. + (emit_insn_after_with_line_notes): Likewise. + (emit_line_note_after): Kill. + (emit_note_copy_after): New. + (emit_note_copy): New. + * function.c (emit_return_into_block): Use emit_note_copy_after. + (thread_prologue_and_epilogue_insns): Likewise. + * integrate.c (expand_inline_function): Use emit_note_copy. + (copy_insn_list): Likewise. + * unroll.c (copy_loop_body): Likewise. + * cfglayout.c (duplicate_insn_chain): Likewise. + +2003-07-01 Nathan Sidwell + + * c-tree.h (define_label): Replace filename and lineno arguments + with a location_t. + * c-decl.c (poplevel): Adjust define_label call. + (pop_label_level): Likewise. + (define_label): Replace filename and lineno arguments with a + location_t. + (store_parm_decls): Use DECL_SOURCE_LOCATION. + * c-parse.in (label): Adjust define_label call. + +2003-07-01 Neil Booth + + * config/sol2.h, config/alpha/alpha.h, config/alpha/linux.h, + config/i386/i386-interix.h, config/ia64/hpux.h, config/mips/iris6.h, + config/mips/linux.h, config/mips/mips.h, config/pa/pa-hpux.h, + config/pa/pa-hpux10.h, config/pa/pa-hpux11.h, config/pa/pa-pro-end.h, + config/pa/pa.h, config/pa/rtems.h: Use c_dialect_ macros. + +2003-07-01 Andreas Jaeger + + * final.c: Convert prototypes to ISO C90. + * flow.c: Likewise. + * flags.h: Likewise. + * gcov-io.c: Likewise. + * gcov-io.h: Likewise. + 2003-06-30 Bruno Haible PR middle-end/6578 @@ -21484,5 +37860,3 @@ Mon Mar 24 20:03:03 CET 2003 Jan Hubicka * config/sh/sh.h (REGISTER_TARGET_PRAGMAS): Update. * config/v850/v850.h (REGISTER_TARGET_PRAGMAS): Update. * doc/tm.texi (REGISTER_TARGET_PRAGMAS): Update - -See ChangeLog.8 for earlier changes. diff --git a/gcc/ChangeLog.12 b/gcc/ChangeLog-2004 similarity index 56% rename from gcc/ChangeLog.12 rename to gcc/ChangeLog-2004 index 7c3a2ffa3319..19e215eefa31 100644 --- a/gcc/ChangeLog.12 +++ b/gcc/ChangeLog-2004 @@ -26887,4 +26887,20992 @@ * libfuncs.h (LTI_gcov_init, gcov_init_libfunc): Remove. * optabs.c (init_optabs): Don't set gcov_init_libfunc. -See ChangeLog.11 for earlier changes. +2004-06-30 Roger Sayle + + * expmed.c (expand_shift): Consider expanding LSHIFT_EXPR by a + constant as a sequence of additions depending upon the rtx_costs. + (synth_mult): Update the "observed" cost of a shift, based upon + the above optimization. + +2004-06-28 Geoffrey Keating + Andreas Tobler + + PR 15813 + * dwarf2out.c (reg_save): Output DW_CFA_same_value when a + register is saved in itself. + (initial_return_save): If the return address is a register, + it's already there, don't bother to mention it in the CFI. + (struct queued_reg_save): Add field saved_reg. + (struct reg_saved_in_data): New. + (regs_saved_in_regs): New. + (num_regs_saved_in_regs): New. + (queue_reg_save): Add extra parameter to specify register saved + in register. Remove duplicate entries from queue. Add comment + for function. + (flush_queued_reg_saves): Handle registers saved in registers. + Update regs_saved_in_regs. Add comment for function. + (clobbers_queued_reg_save): Add comment for function. Allow + for regs_saved_in_regs. + (reg_saved_in): New. + (dwarf2out_frame_debug_expr): Handle saving registers in other + registers. + (dwarf2out_frame_debug): Reset regs_saved_in_regs. + * unwind-dw2.c (execute_cfa_program): Correct handling of + DW_CFA_same_value. Add FIXME comment about incorrect implementation + of DW_CFA_restore_extended. + * config/rs6000/rs6000.c (rs6000_emit_prologue): Let + dwarf2out_frame_debug_expr see instructions that save registers + in other registers or save those other registers in memory. + + * unwind-dw2.c (DWARF_FRAME_REGISTERS): Move to unwind-dw2.h. + (_Unwind_FrameState): Likewise. + * unwind-dw2.h: New. + * Makefile.in (LIB2ADDEHDEP): Add unwind-dw2.h. + * config/rs6000/darwin-fallback.c: New file. + * config/rs6000/darwin.h (MD_FALLBACK_FRAME_STATE_FOR): Define. + * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Add darwin-fallback.o. + +2004-07-01 Alan Modra + + * config/rs6000/rs6000.c (rs6000_mixed_function_arg): Rewrite. + (function_arg): Use rs6000_arg_size rather than CLASS_MAX_NREGS in + calculating gpr size for altivec. Simplify and correct + rs6000_mixed_function_arg calls. Call rs6000_mixed_function_arg + for ABI_V4 gpr case too. Fix off-by-one error in long double + reg test. Generate the correct PARALLEL to handle long double + for ABI_AIX 32-bit. Use this for -m32 -mpowerpc64 fpr case too. + (function_arg_partial_nregs): Align before calculating regs left. + Don't return info on partial fprs when we need info on gprs. + Correct long double fpr off-by-one error. + +2004-06-30 John David Anglin + + * pa-protos.h (prefetch_operand): Add prototype. + * pa.c (prefetch_operand): New function. + * pa.h (prefetch_operand): Add to PREDICATE_CODES. + * pa.md (prefetch, prefetch_32, prefetch_64): New prefetch patterns. + +2004-06-30 Richard Henderson + + * function.h (struct function): Remove x_whole_function_mode_p. + * c-decl.c (store_parm_decls): Don't set it. + * tree-optimize.c (tree_rest_of_compilation): Likewise. + * passes.c (rest_of_compilation): Don't check it. + * stmt.c (expand_fixup): Likewise. + * function.c (fixup_var_refs_insn): Remove unused variable. + +2004-06-30 Richard Henderson + + * tree.h (immediate_size_expand): Delete. + * stor-layout.c (immediate_size_expand): Delete. + (variable_size): Don't look at it. + * c-decl.c (push_parm_decl): Don't frob immediate_size_expand. + (start_function): Likewise. + * cfgexpand.c (construct_exit_block): Likewise. + * function.c (init_function_start, expand_function_end): Likewise. + * tree-optimize.c (tree_rest_of_compilation): Likewise. + +2004-06-30 Richard Henderson + + * gimplify.c (gimplify_compound_lval): Take fallback argument + instead of want_lvalue. + (gimplify_call_expr): Take want_value argument instead of test + function. Gimplify arguments to val only if reg_type; otherwise + allow lvalue forms. + (gimplify_expr): Update gimplify_compound_lval and gimplify_call_expr + calls. + * tree-gimple.c: Update GIMPLE grammer. Use true/false not 1/0. + Tidy commentary globally. + (get_call_expr_in): Remove RETURN_EXPR handling. Tidy. + * tree-gimple.h (is_gimple_call_addr): Mark extern. + + * gimplify.c (gimplify_modify_expr_to_memcpy): Fix typo. + +2004-06-30 Richard Henderson + + * tree-gimple.c (right_assocify_expr): Kill + (rationalize_compound_expr): Kill. + * tree-gimple.h: Likewise. + * tree-inline.c (expand_call_inline): Don't call it. + + * function.h (struct function): Remove x_last_parm_insn, + inl_last_parm_insn. + (last_parm_insn): Remove. + * function.c (free_after_compilation): Don't clear them. + (fixup_var_refs_insn, assign_parms): Don't set them. + + * function.c, rtl.h (get_first_nonparm_insn): Remove. + +2004-06-30 Joseph S. Myers + + * c-common.h (check_function_format): Remove first parameter. + * c-format.c (format_check_context): Remove status. + (check_format_info, check_format_info_main, + maybe_read_dollar_number, avoid_dollar_number, + finish_dollar_format_checking, check_format_types, + check_function_format): Remove first parameter. Don't use + status_warning. + (check_format_arg): Don't use status_warning. + (status_warning): Remove. + * c-common.c (check_function_arguments): Update call to + check_function_format. + +2004-06-30 Eric Botcazou + + * config/sparc/sparc-protos.h (output_cbranch): Constify return + value. + (output_v9branch): Likewise. + (sparc_v8plus_shift): Likewise. Rename into output_v8plus_shift. + * config/sparc/sparc.c (output_cbranch): Constify return value. + Prettify output for delay slots. + (output_v9branch): Likewise. + (sparc_v8plus_shift): Constify return value. Rename into + output_v8plus_shift. + * config/sparc/sparc.md (ashldi3_v8plus): Adjust call to + sparc_v8plus_shift. + (ashrdi3_v8plus): Likewise. + (lshrdi3_v8plus): Likewise. + (call_address_struct_value_sp32): Prettify output for delay slots. + (call_symbolic_struct_value_sp32): Likewise. + (call_address_untyped_struct_value_sp32): Likewise. + (call_symbolic_untyped_struct_value_sp32): Likewise. + +2004-06-30 Zdenek Dvorak + + * common.opt (ftree-loop-optimize): New flag. + * tree-flow.h (kill_redundant_phi_nodes): Declare. + * tree-optimize.c (init_tree_optimization_passes): Add pass_loop. + * tree-pass.h (pass_loop_init, pass_loop_done): Declare. + * tree-ssa-loop.c (current_loops): New variable. + (tree_loop_optimizer_init, gate_loop, tree_ssa_loop_init, + tree_ssa_loop_done): New functions. + (pass_loop, pass_loop_init, pass_loop_done): New passes. + * tree-ssa.c (kill_redundant_phi_nodes): Export. + * doc/invoke.texi (-ftree-loop-optimize): Document. + +2004-06-30 Zdenek Dvorak + + * tree-ssa-loop-ch.c: New file. + * Makefile.in (tree-ssa-loop-ch.o): Add. + (tree-into-ssa.o): Add GGC_H dependency. + * tree-cfg.c (tree_duplicate_bb): Copy virtual arguments. + * tree-flow.h (rewrite_into_ssa): Declaration changed. + (rewrite_ssa_into_ssa, compute_global_livein, duplicate_ssa_name): + Declare. + * tree-into-ssa.c: Include ggc.h. + (struct def_blocks_d): Add phi_blocks field. + (struct mark_def_sites_global_data): Add names_to_rename field. + (struct ssa_name_info): New. + (compute_global_livein): Export. + (set_def_block, insert_phi_nodes, mark_def_sites, set_livein_block, + insert_phi_nodes_1, rewrite_finalize_block, insert_phi_nodes_for, + register_new_def, get_reaching_def, def_blocks_free, + get_def_blocks_for, rewrite_into_ssa): Modified to work with + rewrite_ssa_into_ssa. + (get_ssa_name_ann, get_phi_state, set_phi_state, get_current_def, + set_current_def, ssa_mark_def_sites_initialize_block, + ssa_mark_phi_uses, ssa_mark_def_sites, duplicate_ssa_name, + ssa_register_new_def, ssa_rewrite_initialize_block, + ssa_rewrite_phi_arguments, ssa_rewrite_finalize_block, + ssa_rewrite_stmt, rewrite_ssa_into_ssa, rewrite_all_into_ssa): New + functions. + (pass_build_ssa): Call rewrite_all_into_ssa. + * tree-optimize.c (execute_todo, execute_one_pass, + tree_rest_of_compilation): Allocate vars_to_rename only once. + * tree-ssa-dom.c (tree_ssa_dominator_optimize): Provide parameter + to rewrite_into_ssa. + * tree-ssa-loop.c (should_duplicate_loop_header_p, + mark_defs_for_rewrite, duplicate_blocks, do_while_loop_p, + copy_loop_headers, gate_ch, pass_ch): Moved to tree-ssa-loop-ch.c. + Use rewrite_ssa_into_ssa. + * tree-ssa-operands.c (copy_virtual_operands): New function. + * tree-ssa-operands.h (copy_virtual_operands): Declare. + * tree.h (struct tree_ssa_name): Add aux field. + (SSA_NAME_AUX): New macro to access it. + +2004-05-28 Aaron W. LaFramboise + + * prefix.c (lookup_key): Cast buffer to LPBYTE. + +2004-06-30 Per Bothner + + Conditionally compile support for --enable-mapped_location. + * input.h: #include line-map.h for source_location typedef. + (BUILTINS_LOCATION, UNKNOWN_LOCATION, expand_location, + LOCATION_FILE, LOCATION_LINE): New macros and functions. + (expanded_location, source_locus): New typedefs. + (push_srcloc): Change parameter list if USE_MAPPED_LOCATION. + * rtl.def (NOTE, ASM_OPERANDS): Modify specifcation, if + USE_MAPPED_LOCATION. + * rtl.h (NOTE_DELETED_LABEL_NAME): New macro. + (NOTE_SOURCE_LOCATION, NOTE_EXPNDED_LOCATION, SET_INSN_DELETED): + New conditional macros. + (ASM_OPERANDS_SOURCE_FILE, ASM_OPERANDS_SOURCE_LINE): Replace + by ASM_OPERANDS_SOURCE_LOCATION if USE_MAPPED_LOCATION. + * tree.h (EXPR_LOCATION, SET_EXPR_LOCATION, EXPR_HAS_LOCATION, + EXPR_LOCUS, SET_EXPR_LOCUS, EXPR_FILENAME, EXPR_LINENO, + DECL_IS_BUILTIN): New macros, most depending on USE_MAPPED__LOCATION. + (tree_exp): Change type of locus to use new source_locus typedef. + * tree.c (build1_stat): Use SET_EXPR_LOCATION. + (annotate_with_locus, annotate_with_file_line): Conditionalize. + (expand_location): New function. + * toplev.c (unknown_location): New static, when USE_MAPPED_LOCATION. + (push_srcloc, pop_loc): Adjust parameter handling. + (process_options): Don't set input_filename by itself. + (lang_dependent_init): Save, set input_location to . + (warn_deprecated_use): Use expand_location. + + * basic-block.h (struct edge_def): Use new source_locus typedef. + * c-common.c (fname_decl): Update save/clear/store of input_location. + (c_do_switch_warnings): Update for USE_MAPPED_LOCATION case. + * c-decl.c: Likewise. + * c-dump.c (dump_stmt): Likewise. + * c-gimplify.c (c-gimplify.c): Generalize using SET_EXPR_LOCATION. + * c-lex.c (cb_line_change): If USE_MAPPED_LOCATION use token's src_loc + to set input_location direction, rather than using linemap_lookup. + (fe_file_change, cb_def_pragma): Again use source_location directly. + * c-opts.c (saved_lineno): Remove static variable. + (c_common_post_options, c_common_init): Don't bothner to save, + clear and restore input_Location - now handled by lang_dependent_init. + * function.c (init_function_start): Use new DECL_IS_BUILTIN macro. + * xcoffout.c (xcoff_assign_fundamental_type_number): Likewise. + * tree-mudflap.c (mf_file_function_line_tree): Take a location_t + rather than a pointer to one. Use expand_location. + (mf_varname_tree): Use expand_location. + * tree-dump.c: Use expand_location on DECL_SOURCE_LOCATION. + * coverage.c: Likewise. + * print-tree.c: Likewise. + * c-aux-info.c (gen_aux_info_record): Likewise. + * c-parse.in: Use SET_EXPR_LOCATION macro. + * gimple-low.c: Likewise. + * tree-mudflap.c: Likewise. + * gimplify.c: Likewise. Also use EXPR_LOCATION and EXPR_HAS_LOCATION. + * c-ppoutput.c: Use new source_location typedef instead of fileline. + * c-semantics.c: Use new macros. + * c-typeck.c: Likewise. + * cfgexpand.c: Handle USE_MAPPED_LOCATION case for function_end_locus. + * cfglayout.c (insn_locators_initialize): Const cleanup. New macros. + * cfgrtl.c (delete_insn): Use new NOTE_DELETED_LABEL_NAME macro. + * print-rtl.c (print_rtx): Likewise. + * emit-rtl.c: Don't clear NOTE_SOURCE_FILE if USE_MAPPED_LOCATION. + * combine.c: Use new SET_INSN_DELETED macro. + * flow.c: Likewise. + * haifa-sched.c: Likewise. + * ifcvt.c: Likewise. + * recog.c: Likewise. + * reload1.c: Likewise. + * diagnostic.c: Use expand_location macro. + * pretty-print.c (pp_base_format_text): Likewise. + * profile.c: Likewise. + * dwarf2out.c: Likewise. Also use expand_location, DECL_IS_BUILTIN. + * dwarf2out.c (dwarf2out_decl: Use BUILTINS_LOCATION. + * emit-rtl.c (emit_line_note): Simplify if USE_MAPPED_LOCATION. + (force_next_line_note, insn_emit): Handle USE_MAPPED_LOCATION case. + * final.c (final): Likewise. + * haifa-sched.c: Likewise. + * integrate.c: Likewise. + * jump.c: Likewise. + * rtl-error.c: Likewise. + * stmt.c (check_seenlabel): Likewise. + * tree-pretty-print.c: Likewise. + * gengtype-lex.l: Temporary kludge to avoid duplicate typedef. + * gengtype.c: Update for now typdefs in input.h. More kludges. + * modulo-sched.c (sms_schedule): Use NOTE_EXPANDED_LOCATION macro. + * ra-debug.c (ra_print_rtl): Likewise. + * sched-rgn.c: Likewise. + * sched-vis.c: Likewise. + * rtl.h (gen_rtx_ASM_OPERANDS): Redefine if USE_MAPPED_LOCATION. + * stmt.c (expand_asm_operands): Adjust calls to gen_rtx_ASM_OPERANDS. + * tree-cfg.c: Use new macros and typedefs. + * tree-flow-inline.h: Likewise. + +2004-06-30 Richard Sandiford + Eric Christopher + + * config/mips/3000.md: Improve description. + +2004-06-30 Paul Brook + + * config/arm/cirrus.md (cirrus_arm_movdi, cirrus_movsf_hard_insn, + cirrus_movdf_hard_insn): Set pool ranges for coprocessor loads. + +2004-06-30 Sebastian Pop + + * Makefile.in (OBJS-common): Add tree-chrec.o. + (tree-chrec.o): New rule. + (GTFILES): Add tree-chrec.h. + * gengtype.c (open_base_files): Add tree-chrec.h. + * tree-chrec.c: New file. + * tree-chrec.h: New file. + * tree.def (SCEV_KNOWN, SCEV_NOT_KNOWN, POLYNOMIAL_CHREC): New nodes. + +2004-06-30 Roger Sayle + + * combine.c: Include "output.h" to define dump_file. + (uid_insn_cost, last_insn_cost): New global variables. + (combine_insn_cost): New function to estimate cost of an insn. + (combine_validate_cost): New function to determine whether a + try_combine replacement sequence is cheaper than the original. + (combine_instructions): Allocate and populate uid_insn_cost + array at the start of the combine pass, and deallocate it after. + (try_combine): Check combine_validate_cost to determine whether + a "recombination" should be rejected as being more expensive. + * Makefile.in (combine.o): Add dependency upon output.h. + +2004-06-30 Roger Sayle + + * config/rs6000/rs6000.c (rs6000_rtx_costs) : Handle + subtractions identically to additions, always COSTS_N_INSNS (1). + +2004-06-30 J"orn Rennecke + + * expmed.c (expand_smod_pow2): Fix sign of mask. + +2004-06-29 Diego Novillo + + * tree-ssa-pre.c (phi_trans_add): Use is_gimple_min_invariant + to check for constants. + (set_remove): Likewise. + (value_replace_in_set): Likewise. + (find_leader): Likewise. + * tree-vn.c (set_value_handle): Likewise. + (vn_lookup): Likewise. + (vn_lookup_or_add): Likewise. + +2004-06-30 Eric Botcazou + + RTL prologue/epilogue for SPARC + * config/sparc/sparc-protos.h (sparc_emitting_epilogue): Delete. + (sparc_skip_caller_unimp): Likewise. + (load_pic_register): Likewise. + (leaf_return_peephole_ok): Likewise. + (compute_frame_size): Rename into sparc_compute_frame_size. + (sparc_expand_prologue): New prototype. + (sparc_expand_epilogue): Likewise. + (output_return): Likewise. + (eligible_for_epilogue_delay): Rename into eligible_for_return_delay. + * config/sparc/sparc.h (INITIAL_ELIMINATION_OFFSET): Adjust call to + compute_frame_size. Move comment up. + (DELAY_SLOTS_FOR_EPILOGUE): Delete. + (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise. + (EPILOGUE_USES): Return true for %g1 if the function uses EH return. + * config/sparc/sparc.md (UNSPECV_SAVEW): New constant. + (type attribute): Add 'return' and 'savew'. + (eligible_for_return_delay): New attribute. + (return): New delay_slot. + (sibcall_epilogue): Call sparc_expand_epilogue. + (prologue): Likewise. Move up. + (save_register_window): New expander. + (save_register_windowsi): New pattern. + (save_register_windowdi): Likewise. + (epilogue): New expander. + (return_internal): New pattern. + (Return peepholes): Delete. + * config/sparc/sparc.c (SIBCALL_SLOT_EMPTY_P): New macro. + (sparc_emitting_epilogue): Delete. + (sparc_skip_caller_unimp): Likewise. + (sparc_sr_alias_set): New global variable. + (frame_base_name): Delete. + (frame_base_reg): New global variable. + (sparc_override_options): Get new alias set for save/restore. + (leaf_return_peephole_ok): Delete. + (eligible_for_epilogue_delay): Rename into eligible_for_return_delay. + Factor out code into eligible_for_restore_insn_delay. + (eligible_for_restore_insn_delay): New function extraced from above. + Use IN_UNCOND_BRANCH_DELAY_TRUE instead of IN_BRANCH_DELAY_TRUE. + (eligible_for_sibcall_delay): Use SIBCALL_SLOT_EMPTY_P. + Factor out code into eligible_for_restore_insn_delay. + (load_pic_register): Make static. Remove check. + (save_regs): Delete. + (restore_regs): Likewise. + (compute_frame_size): Rename into sparc_compute_frame_size. + Rename leaf_function into leaf_function_p. + (build_big_number): Delete. + (save_or_restore_regs): New function. + (emit_save_regs): Likewise. + (emit_restore_regs): Likewise. + (emit_stack_pointer_increment ): Likewise. + (emit_stack_pointer_decrement): Likewise. + (sparc_expand_prologue): Likewise. + (sparc_function_prologue): Rename into sparc_asm_function_prologue. + Remove all code to emit instructions. + (sparc_expand_epilogue): New function. + (sparc_function_epilogue): Rename into sparc_asm_function_epilogue. + Remove all code to emit instructions. + (output_restore): New function. + (output_return): Likewise. + (output_sibcall): Factor out code into output_restore. + (print_operand): Adjust for frame_base_reg. + * target.h (struct gcc_target): New field 'late_rtl_prologue_epilogue'. + * target-def.h (TARGET_LATE_RTL_PROLOGUE_EPILOGUE): New define. + (TARGET_INITIALIZER): Add it. + * passes.c (rest_of_compilation): Set the conditional predicate + 'current_function_uses_only_leaf_regs' before sched2. If target + has 'late_rtl_prologue_epilogue', emit RTL prologue/epilogue right + before sched2. + * reorg.c (return_insn_p): New predicate. + (find_end_label): Use it. + (relax_delay_slots): Do not thread an unconditional jump that points + to the end return label. + * doc/tm.texi (Registers) : Clarify the validity + domain of 'current_function_uses_only_leaf_regs'. + (Stack and Calling) : Document new target hook + TARGET_LATE_RTL_PROLOGUE_EPILOGUE. + +2004-06-30 Jakub Jelinek + + * simplify-rtx.c (simplify_binary_operation): Simplify + ((A & N) + B) & M -> (A + B) & M if M is pow2 minus 1 constant and + N has at least all bits in M set as well. + + PR tree-optimization/15310 + * expr.c (expand_assignment): Optimize += or -= on a bit field in + most significant bits. + +2004-06-30 Steven Bosscher + + * config/c4x/c4x.md: Fix comment. + +2004-06-30 Akos Kiss + + * arm.md (cond_return_inverted): Add "length" attribute. + +2004-06-29 Per Bothner + + * config/i386/winnt.c (i386_pe_encode_section_info): Smash rtlname's + XSTR in place, so we don't lose SYMBOL_REF_DECL info. + +2004-06-29 Zack Weinberg + + * config/ia64/hpux.h: Target does too support thread-local storage. + +2004-06-29 Zack Weinberg + + * combine.c (distribute_notes): Don't look at global_regs for + pseudos. + +2004-06-29 Richard Henderson + + * gimplify.c (gimplify_modify_expr_rhs): Move immediately before + gimplify_modify_expr. + (gimplify_init_constructor): Likewise. Gimplify the null + CONSTRUCTOR assignment. + (gimplify_modify_expr_to_memcpy): New. + (gimplify_modify_expr_to_memset): New. + (gimplify_modify_expr): Use them. + +2004-06-29 Roman Zippel + + * web.c (union_defs): use all defs of an instruction to create a + union with a read/write use + +2004-06-29 Richard Henderson + + PR middle-end/16216 + * builtins.c (gimplify_va_arg_expr): Check for valist being + an error_mark_node. + +2004-06-29 Jakub Jelinek + + PR target/16195 + * config/rs6000/rs6000.c (rs6000_conditional_register_usage): Make + r30 fixed if TARGET_TOC && TARGET_MINIMAL_TOC. + (first_reg_to_save): Pretend call_used_regs[30] is 0 if + TARGET_TOC && TARGET_MINIMAL_TOC. + (rs6000_emit_prologue, rs6000_emit_epilogue): Likewise. + +2004-06-29 J"orn Rennecke + + Fix gcc.dg/builtin-apply2.c failures: + * sh.h (TARGET_VARARGS_PRETEND_ARGS): Define. + * sh.c (extra_push): Delete. + (sh_expand_prologue): Don't do extra stack adjustment for + current_function_pretend_args_size if it comes from varargs setup. + Use TARGET_VARARGS_PRETEND_ARGS. Don't set extra_push. + (sh_expand_epilogue): Don't use extra_push. + (sh_setup_incoming_varargs): Set pretend_arg_size when necessary. + +2004-06-29 Roger Sayle + + * expmed.c (expand_smod_pow2): Provide alternate implementations + that avoid conditional jumps, and choose between them based upon + the target's rtx_costs. + +2004-06-29 Andrew Pinski + + * tree-sra.c: Include expr.h for definition of MOVE_RATIO. + * Makefile.in (tree-sra.c): Update dependencies. + +2004-06-29 Richard Henderson + + * tree-sra.c: Rewrite from scratch. Handle nested aggregates. + +2004-06-29 Nathan Sidwell + + * vec.h (VEC_T_safe_push, VEC_T_safe_insert): Tweak for when + size_t is bigger than int. + +2004-06-29 Paul Brook + + * target-def.h (TARGET_CXX_GET_COOKIE_SIZE, + TARGET_CXX_COOKIE_HAS_SIZE): Define. + (TARGET_CXX): Use them. + * target.h (struct gcc_target): Add cxx.get_cookie_size and + cxx.cookie_has_size. + * targhooks.c (default_cxx_get_cookie_size): New fucntion. + * targhooks.h (default_cxx_get_cookie_size): Add prototype. + * config/arm/arm.c (TARGET_CXX_GET_COOKIE_SIZE, + TARGET_CXX_COOKIE_HAS_SIZE): Define. + (arm_get_cookie_size, arm_cookie_has_size): New functions. + * Make-lang.in (cp/init.o): Add dependency on $(TARGET_H). + * doc/tm.texi: Document TARGET_CXX_GET_COOKIE_SIZE and + TARGET_CXX_COOKIE_HAS_SIZE. + +2004-06-29 J"orn Rennecke + + * cfglayout.c (fixup_reorder_chain): Don't do anything for + e_fall->dest == EXIT_BLOCK_PTR. + +2004-06-28 Richard Henderson + + * tree-cfg.c (verify_stmt): Add last_in_block parameter. Verify + that eh stmts can throw. + (verify_stmts): Update verify_stmt call. + (tree_purge_dead_eh_edges, tree_purge_all_dead_eh_edges): New. + * tree-eh.c (remove_stmt_from_eh_region): New. + (lower_eh_constructs): Fix throw_stmt_table delete routine. + (tree_could_trap_p): Match may_trap_p. + (maybe_clean_eh_stmt): New. + * tree-flow.h: Update decls. + * tree-ssa-ccp.c (pass_ccp): Add TODO_verify_stmts. + (substitute_and_fold): Clean eh edges. + * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Handle + empty basic blocks. + * tree-ssa-dom.c (need_eh_cleanup): New. + (tree_ssa_dominator_optimize): Allocate it. Cleanup eh edges. + (optimize_stmt): Cleanup eh stmts; set need_eh_cleanup. + +2004-06-29 Alan Modra + + * function.c (assign_parms): Don't abort with zero size stack + parm failing the PARM_BOUNDARY check. + +2004-06-28 Diego Novillo + + * common.opt (ftree-fre): New flag. + * flags.h (flag_tree_fre): Declare. + * opts.c (decode_options): Set. + * timevar.def (TV_TREE_FRE): Define. + * tree-flow-inline.h (may_propagate_copy): Re-arrange for + readability. Handle destinations that are not SSA_NAMEs. + * tree-flow.h (struct ptr_info_def): Move from tree.h + (cprop_into_stmt, cprop_into_successor_phis): Remove. + (vn_compute, vn_lookup_or_add, vn_add, vn_lookup): Add + vuse_optype parameter. + * tree-pass.h (pass_fre): Declare. + * tree-ssa-copy.c (cprop_operand): Move to tree-ssa-dom.c + (cprop_into_stmt): Likewise. + (cprop_into_successor_phis): Likewise. + * tree-ssa-dom.c (eliminate_redundant_computations): Fix + argument ordering in call to may_propagate_copy. + * tree-ssa-pre.c (is_undefined_value): Assume hard registers + to be always defined. + (add_to_sets): New local function. + (create_value_expr_from): New local function. + (compute_avail): Call them. + (eliminate): Don't ignore statements with virtual operands. + (init_pre): New local function. + (fini_pre): New local function. + (execute_pre): Call them. + Add argument DO_FRE. Don't do insertion if DO_FRE is true. + (do_pre): New function. + (do_fre): New function. + (gate_fre): New function. + (pass_fre): Declare. + * tree-ssa.c (init_tree_ssa): Don't call vn_init. + (delete_tree_ssa): Don't call vn_delete. + * tree-vn.c (val_expr_pair_d): Add documentation. + (vn_compute): Add VUSES argument to incorporate in computing + hash values. Update all callers. + (expressions_equal_p): Call operand_equal_p with + OEP_PURE_SAME. + (vn_add): Add VUSES argument. Update all callers. + (vn_lookup): Likewise. + (vn_lookup_or_add): Likewise. + * doc/invoke.texi: Document -ftree-fre and -fdump-tree-fre. + +2004-06-28 Steven Bosscher + + * config/m32r/m32r.c (m32r_sched_odd_word_p, m32r_adjust_cost, + m32r_sched_init, m32r_sched_reorder, m32r_variable_issue): Remove. + (TARGET_SCHED_ADJUST_COST, TARGET_SCHED_VARIABLE_ISSUE, + TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Don't define. + * config/m32r/m32r.md: Rewrite the pipeline description as a DFA. + +2004-06-28 Richard Henderson + + * tree.def (REALPART_EXPR, IMAGPART_EXPR): Change class to 'r'. + * fold-const.c (operand_equal_p ): Add REALPART_EXPR, + IMAGPART_EXPR. + * tree-dump.c (dequeue_and_dump): Handle REALPART_EXPR and + IMAGPART_EXPR explicitly. + * tree-inline.c (estimate_num_insns_1): Don't handle REALPART_EXPR + and IMAGPART_EXPR specially. + * tree.c (build1_stat): Copy TREE_THIS_VOLATILE into class 'r'. + +2004-06-28 J"orn Rennecke + + * config.gcc (sh*-*elf*): Remove dead assignment of sh_multilibs. + +2004-06-28 Joseph S. Myers + + * builtins.def (execl, execlp, execle, execv, execvp, execve, + fork): Change to DEF_EXT_LIB_BUILTIN. + +2004-06-28 Roger Sayle + + * expmed.c (expand_smod_pow2): New function to expand signed + remainder by a constant power of 2, such as "x % 16". + (expand_divmod): Call new expand_smod_pow2 when appropriate. + Minor corrections to comments, e.g. wrapping long lines. + +2004-06-28 Ulrich Weigand + + * Makefile.in (vec.o): Fix dependencies. + +2004-06-28 Andreas Tobler + + * Makefile.in: Fix parallel make dependency problem on vec.o. + +2004-06-28 Dhananjay Deshpande + + PR target/14041 + * config/h8300/h8300.h (ASM_OUTPUT_ALIGNED_BSS): Define. + +2004-06-28 Nathan Sidwell + + * tree.h (tree_check_failed): Make varadic. + (tree_not_check_failed): New prototype. + (tree_check2_failed, tree_check3_failed, + tree_check4_failed, tree_check5_failed): Remove. + (TREE_CHECK, TREE_CHECK2, TREE_CHECK3, TREE_CHECK4, + TREE_CHECK5): Adjust. + (TREE_NOT_CHECK, TREE_NOT_CHECK2, TREE_NOT_CHECK3, TREE_NOT_CHECK4, + TREE_NOT_CHECK5): New. + (TREE_VEC_ELT_CHECK, PHI_NODE_ELT_CHECK, TREE_OPERAND_CHECK_CODE, + TREE_RTL_OPERAND_CHECK): Adjust. + * tree.c (tree_check_failed): Make varadic. + (tree_not_check_failed): New. + (tree_check2_failed, tree_check3_failed, + tree_check4_failed, tree_check5_failed): Remove. + +2004-06-28 Ulrich Weigand + + * combine.c (can_combine_p): Do not prevent building insns that use + and clobber the same fixed hard register. + (reg_dead_at_p): Likewise. + +2004-06-28 Richard Kenner + + * tree-sra.c (is_sra_candidate_ref): Remove second arg; all callers + changed. + (is_sra_candidate_complex_ref): New function. + (scalarize_modify_expr): Call it and check for LHS also. + + * tree-pretty-print.c (dump_function_declaration): New. + (dump_generic_node, case FUNCTION_TYPE): Call it. + (dump_generic_node, case RECORD_TYPE): Don't output dup semicolon. + (dump_generic_node, case DECL_EXPR): New case. + (dump_generic_node, case PLACEHOLDER_EXPR): Handle. + (print_declaration): Handle type and function declarations. + + * tree-nested.c (create_tmp_var_for): Allow ARRAY_TYPE. + (convert_nonlocal_reference, convert_local_reference): Properly + convert nest of handled component references. + +2004-06-28 Nathan Sidwell + + * vec.h, vec.c: New, type safe vector API. + * Makefile.in (OBJS-common): Add vec.o. + (vec.o): New target. + (gengtype-lex.o): Depend on vec.h. + +2004-06-28 Paolo Bonzini + + * fold-const.c (fold_cond_expr_with_comparison): Add ARG1 + parameter. Use it instead of ARG00 to produce the result. + +2004-06-28 Alexandre Oliva + + * config/mn10300/mn10300-protos.h (legitimate_address_p): Declare. + * config/mn10300/mn10300.c (legitimate_address_p): New. Test that + index is legitimate, compared with code moved from... + * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): here. + (REG_STRICT): Define, according to REG_OK_STRICT. + (REGNO_IN_RANGE_P, REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_SP_P, + REGNO_EXTENDED_P, REGNO_AM33_P, REGNO_FP_P): Introduce strict + argument. + (REGNO_STRICT_OK_FOR_BASE_P, REGNO_STRICT_OK_FOR_BIT_BASE_P, + REGNO_STRICT_OK_FOR_INDEX_P): New. + (REGNO_OK_FOR_BASE_P, REG_OK_FOR_BASE_P, REGNO_OK_FOR_BIT_BASE_P, + REG_OK_FOR_BIT_BASE_P, REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_P, + RTX_OK_FOR_BASE_P): Use them. + +2004-06-28 Ben Elliston + + * doc/cfg.texi (Basic Blocks): Define dominators. + +2004-06-27 Andrew Pinski + + PR c++/16205 + * c-common.c (warn_for_collisions_1): Warn for only decls which + have a name. + + PR c++/15145 + * c.opt (Wsequence-point): Enable for C++ and ObjC++. + + PR c/14963 + * c-decl.c (start_decl): Check for null types. + +2004-06-27 David Edelsohn + + * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p): + Accept TOC addresses. + +2004-06-27 Ulrich Weigand + + * config/s390/s390-protos.h (s390_load_got): Update prototype. + * config/s390/s390.c (struct machine_function): Add member base_reg. + (s390_decompose_address): Accept UNSPEC_LTREF. Simplify logic. + (s390_split_branches): Annotate late pool references. + (annotate_constant_pool_refs): New function. + (find_constant_pool_ref): Work on annotated pool references. + (replace_constant_pool_ref): Likewise. Use explicit base. + (replace_ltrel_base): Use explicit base. + (s390_mainpool_start): Reflect main_pool pattern change. + (s390_mainpool_finish): Use base register from main_pool. + Update calls to replace_ltrel_base and replace_constant_pool_ref. + (s390_chunkify_start): Use base_reg from struct machine_function. + (s390_chunkify_finish): Remove base_reg argument. Update calls + to replace_ltrel_base and replace_constant_pool_ref. + (s390_reorg): Don't decide upon base register. Update calls. + (s390_load_got): Remove MAYBE_DEAD handling. Do not emit insns + but return sequence instead. + (s390_emit_prologue): Decide upon base register to use. Annotate + all literal pool references. Adapt to main_pool pattern change. + Update s390_load_got call; move MAYBE_DEAD handling here. + (s390_emit_epilogue): Annotate late literal pool references. + Remove barrier before register restore instruction. + * config/s390/s390.md (UNSPEC_LTREF): New constant. + ("builtin_setjmp_receiver"): Update s390_load_got call. + ("main_pool"): Explicitly reference base register. + +2004-06-27 Roger Sayle + + * fold-const.c (fold) : Optimize ~X|X and X|~X as -1. + : Optimize ~X|X and X|~X as -1. + : Optimize ~X&X and X&~X as 0. + : Optimize !X&&X and X&&!X as false. + : Optimize !X||X and !X||X as true. + : Optimize !X^X and X^X! as true. Now that + TRUTH_XOR_EXPR is a commutative tree code, don't test whether arg0 + is a constant. + +2004-06-26 Richard Kenner + + * c-common.c (c_safe_from_p, c_walk_subtrees): Deleted. + * c-common.def (DECL_STMT): Remove. + * c-common.h (DECL_STMT_DECL): Deleted. + (COMPOUNT_LITERAL_EXPR_DECL): Use DECL_EXPR_DECL. + (c_safe_from_p, c_walk_subtrees): Deleted. + * c-decl.c, c-parse.in, c-pretty-print.c: DECL_STMT now DECL_EXPR. + * c-dump.c (c_dump_tree, case DECL_STMT): Deleted. + * c-gimplify.c (gimplify_decl_stmt): Deleted. + (gimplify_compound_literal_expr): Use DECL_EXPR_DECL + and gimplify_and_add. + (c_gimplify_expr, case DECL_EXPR): New case. + (c_gimplify_expr, case DECL_STMT): Deleted. + * c-lang.c (LANG_HOOKS_SAFE_FROM_P): Likewise. + (LANG_HOOKS_TREE_INLINING_WALK_SUBTREES): Likewise. + * expr.c (safe_from_p, case 's'): New case. + * gimplify.c (gimplify_decl_expr): New function. + (gimplify_expr, case DECL_EXPR): New case. + * tree-inline.c (walk_tree): Walk into all fields of a type and + decl only if they are in a DECL_EXPR. + (mark_local_for_remap_r): Minor code cleanup. + * tree-outof-ssa.c (discover_nonconstant_array_refs_r): Add else. + * tree.c (has_cleanups, case DECL_EXPR): New case. + * tree.def (DECL_EXPR): New code. + * tree.h (DECL_EXPR_DECL): New macro. + + * objc/objc-lang.c (LANG_HOOKS_SAFE_FROM_P): Deleted. + +2004-06-26 Andrew Pinski + + PR 13334 + * doc/install.texi: Document non-standard CFLAGS and bootstrap + failures and warnings. + +2004-06-26 Andrew Haley + + * emit-rtl.c (set_mem_attributes_minus_bitpos): Check + TREE_THIS_NOTRAP when setting MEM_NOTRAP_P. + * tree-eh.c (tree_could_trap_p): Check TREE_THIS_NOTRAP. + * tree.h (TREE_THIS_NOTRAP): New. + +2004-06-26 Kaz Kojima + + * genattrtab.c (write_test_expr): Put a unsigned cast before + the first operand for GEU, GTU, LEU and LTU. + +2004-06-26 Kazu Hirata + + * c-typeck.c, cfgexpand.c, ddg.c, ddg.h, df.c, fold-const.c, + gcov.c, gimplify.c, modulo-sched.c, passes.c, tree-cfg.c, + tree-mudflap.c, tree-nrv.c, tree-outof-ssa.c, tree-ssa-dom.c, + tree-ssa-dse.c, tree-ssa-operands.c, tree-ssa-pre.c, + tree-tailcall.c: Fix comment typos. Follow spelling + conventions. + +2004-06-25 Eric Christopher + + * config/mips/mips.md: Add back scheduling exclusion info. + +2004-06-25 Roger Sayle + + * ifcvt.c (seq_contains_jump): Delete function. + (end_ifcvt_sequence): Replace call to seq_contains_jump with an + inline test for a jump instruction in the existing "insn" loop. + (block_fallthru): Document function. + +2004-06-25 Philip Blundell + + PR wrong-code/15089 + * loop.c (scan_loop): Do not move user-specified register + assignments. + +2004-06-25 DJ Delorie + + * c-common.h (warn_cast_qual, warn_missing_format_attribute, + warn_pointer_arith, warn_missing_prototypes, warn_parentheses, + warn_missing_braces, warn_sign_compare, warn_long_long, + warn_redundant_decls, warn_float_equal, warn_char_subscripts, + warn_conversion, warn_format_y2k, warn_format_extra_args, + warn_format_zero_length, warn_format_nonliteral, + warn_format_security, mesg_implicit_function_declaration, + warn_bad_function_cast, warn_traditional, + warn_declaration_after_statement, warn_strict_prototypes, + warn_missing_declarations, warn_nested_externs, + warn_sequence_point, warn_init_self, warn_div_by_zero, + warn_implicit_int, warn_nonnull, warn_old_style_definition, + warn_selector, warn_undeclared_selector, warn_protocol, + warn_abi, warn_invalid_offsetof, warn_ctor_dtor_privacy, + warn_overloaded_virtual, warn_nonvdtor, warn_reorder, + warn_synth, warn_pmf2ptr, warn_ecpp, warn_sign_promo, + warn_old_style_cast, warn_nontemplate_friend, + warn_deprecated): Remove explicit declarations. + * c-common.c: Likewise, remove explicit definitions. + * c-opts.c: Likewise, remove explicit assignments. + * c.opts: Likewise, add implicit declare/define/assign. + +2004-06-25 Richard Kenner + + * gimplify.c (lookup_tmp_var): Set TREE_READONLY in is_formal case. + (build_addr_expr_with_type): Deleted. + (build_addr_expr): Deleted; callers changed to build_fold_addr_expr. + (gimplify_compound_lval): Make two passes over reference nest. + + * tree-nested.c (build_addr): Merge real/imagpart with + handled_component_p. + (convert_nonlocal_reference, convert_local_reference): Process extra + args to COMPONENT_REF and ARRAY_REF. + * tree-outof-ssa.c (discover_nonconstant_array_refs_r): Check for + lower bound and field offset being constant. + +2004-06-25 Mark Mitchell + + PR wrong-code/16129 + * alias.c (get_alias_set): Adjust setting of + DECL_POINTER_ALIAS_SET for pointers to aggregates. + +2004-06-24 Richard Kenner + + * tree-inline.c (remap_type): Arrange to have just one pointer type + for each type, mode, and 'can alias' value. + (setup_one_parameter): Remap type when making VAR_DECL for PARM_DECL. + (estimate_num_insns_1): Minor code reformatting. + (inline_forbidden_p_1): Likewise; add; missing return statement. + +2004-06-25 Roger Sayle + + PR middle-end/15825 + * ifcvt.c (unshare_ifcvt_sequence): Rename to end_ifcvt_sequence. + Use get_isns and end_sequence instead of accepting a seq argument. + Scan the instruction sequence for unrecognizable or jump insns. + (noce_try_move, noce_try_store_flag, noce_try_store_flag_constants, + noce_try_addcc, noce_try_store_flag_mask, noce_try_cmove, + noce_try_cmove_arith, noce_try_minmax, noce_try_abs, + noce_try_sign_mask): Use end_ifcvt_sequence to factor common code. + +2004-06-24 Jeff Law + + * gimplify.c (gimplify_compound_lval): Reset TREE_SIDE_EFFECTS + after gimplifying the innermost component. + +2004-06-25 Richard Sandiford + + PR target/16176 + * config/mips/mips.c (mips_expand_unaligned_load): Use a temporary + register for the destination of the lwl or ldl. + +2004-06-25 Richard Kenner + + * tree-dfa.c (get_virtual_var): Merge real/imaginary parts with + handled_component_p handling. + * tree-gimple.c (get_base_address): Likewise and fix typo that + caused both recursion and looping. + + * tree-cfg.c (verify_expr): Add macro CHECK_OK. + Properly test for nest of handled_components in LHS context. + +2004-06-25 Devang Patel + + * doc/tree-ssa.texi: Document info about MODIFY_EXPR's type + +2004-06-25 Paul Brook + + * target-def.h (TARGET_CXX_GUARD_TYPE, TARGET_CXX_GUARD_MASK_BIT, + TARGET_CXX): Define. + (TARGET_INITIALIZER): Use TARGET_CXX. + * target.h (struct gcc_target): Add struct cxx. + * targhooks.h (default_cxx_guard_type): Add prototype. + * targhooks.c (default_cxx_guard_type): New function. + * config/arm/arm.c (TARGET_CXX_GUARD_TYPE, TARGET_CXX_GUARD_MASK_BIT): + Define. + (arm_cxx_guard_type, arm_cxx_guard_mask_bit): New functions. + * doc/tm.texi: Document TARGET_CXX_GUARD_TYPE and + TARGET_CXX_GUARD_MASK_BIT. + +2004-06-25 Devang Patel + + * config/rs6000/darwin.h (CC1_SPEC): Handle -gused and -gfull. + * config/i386/darwin.h (CC1_SPEC): Same. + +2004-06-25 Mark G. Adams + + * dbxout.h: Add include guards + +2004-06-25 Paul Brook + + * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_EABI__. + +2004-06-25 Richard Earnshaw + + * arm.c (arm_arch4t): New variable. + (arm_override_options): Initialize it. If compiling for armv5 or + higher clear TARGET_INTERWORK. + (output_call): Abort if called for armv5. Use BX if it's available. + (output_call_mem): Use BLX if available and ensure that all armv5 + code is interworking safe. + (output_return_instruction): Always use BX in preference to MOV if + it's available. + (arm_output_epilogue): Likewise. + (arm_final_prescan_insn): Never conditionally call a subroutine + on armv5. + * arm.h (arm_arch4t): Declare. + * arm.md (call_reg_armv5, call_value_reg_armv5): New. + (call_reg_arm, call_value_reg_arm): Renamed from call_reg and + call_value_reg respectively. + (call_reg_thumb_v5, call_value_reg_thumb_v5): New. + (call_reg_thumb, call_value_reg_thumb): Renamed from call_indirect + and call_value_indirect respectively. + +2004-06-25 Richard Sandiford + + * config/mips/mips.c (reg_or_const_float_1_operand): Reimplement + in terms of const_float_1_operand. + +2004-06-25 Richard Sandiford + + PR target/16144 + * config/mips/mips.md (divsf, divdf): Don't FAIL if the first operand + is 1.0; force it into a register instead. + +2004-06-25 Bernardo Innocenti + + * config/m68k/m68k.h: Restore valid comment removed by mistake with + the recent m68k comments cleanup. + +2004-06-24 Richard Kenner + + * c-gimplify.c (gimplify_for_stmt): Use gimplify_and_add. + * gimplify.c (internal_get_tmp_var, gimplify_return_expr): Likewise. + (gimplify_loop_expr, gimplify_init_constructor): Likewise. + (gimplify_self_mod_expr, gimplify_cond_expr): Likewise. + + PR/16131 + * gimplify.c (voidify_wrapper_expr): Allow TARGET_EXPR. + + * gimplify.c: Remove unneeded forward declarations. + + * gimplify.c (append_to_compound_expr): Deleted. + * tree-gimple.h (append_to_compound_expr): Deleted. + + * fold-const.c (fold_addr_expr_with_type): Look through all + valid LHS modifiers to find a base to mark addressable. + + * tree.h (debug_find_tree): Add declaration. + * tree-inline.c (debug_find_tree): Remove extern declaration. + +2004-06-24 Eric Christopher + + * config/rs6000/rs6000.md: Apply change mistakenly + deleted with 2004-06-22 patch. + +2004-06-24 Richard Henderson + + * c-decl.c (c_in_iteration_stmt, c_in_case_stmt): Remove. + (c_break_label, c_cont_label): New. + (start_function): Update initializations. + (c_push_function_context): Update saves. + (c_pop_function_context): Update restores. + * c-parse.in: Update expected conflicts. + (stmt_count, compstmt_count): Remove. Remove all updates. + (if_prefix, simple_if, do_stmt_start): Remove. + (lineno_labeled_stmt): Remove. + (lineno_labels): New. + (c99_block_lineno_labeled_stmt): Use it. + (lineno_stmt, lineno_label): Don't clear EXPR_LOCUS before calling + annotate_with_locus. + (select_or_iter_stmt): Replace by ... + (condition, if_statement_1, if_statement_2, if_statement, + start_break, start_continue, while_statement, do_statement, + for_cond_expr, for_incr_expr, for_statement, switch_statement): New. + (stmt): Split out ... + (stmt_nocomp): ... this. Use c_finish_bc_stmt, c_finish_goto_label, + c_finish_goto_ptr. + * c-semantics.c (add_stmt): Don't add line numbers to labels. + * c-tree.h: Update prototypes. + (struct language_function): Remove x_in_iteration_stmt, x_in_case_stmt; + add x_break_label, x_cont_label, x_switch_stack. + (c_switch_stack): Declare. + * c-typeck.c (c_finish_goto_label, c_finish_goto_ptr): New. + (c_finish_return): Return the statement. + (c_switch_stack): Rename from switch_stack; export. + (if_elt, if_stack, if_stack_space, if_stack_pointer): Remove. + (c_begin_if_stmt, c_finish_if_cond, c_finish_then, c_begin_else, + c_finish_else): Remove. + (c_finish_if_stmt): Rewrite to perform the entire operation. + (c_begin_while_stmt, c_finish_while_stmt_cond, c_finish_while_stmt, + c_begin_for_stmt, c_finish_for_stmt_init, c_finish_for_stmt_cond, + c_finish_for_stmt_incr, c_finish_for_stmt): Remove. + (c_finish_loop): New. + (c_finish_bc_stmt): New. + (c_finish_expr_stmt): Return the statement. Split out... + (c_process_expr_stmt): ... this. Don't add locus to error marks. + * gimplify.c (gimplify_cond_expr): Accept NULL type statements. + * tree-gimple.c (is_gimple_stmt): Likewise. + * tree-pretty-print.c (dump_generic_node ): Likewise. + (print_struct_decl): Delete empty compound statement. + * objc/objc-act.c (objc_build_throw_stmt): Return the statement. + * objc/objc-act.h: Update decl. + +2004-06-24 Richard Kenner + + * tree-pretty-print.c (dump_generic_node, case TYPE_DECL): + Don't look at TYPE_METHODS unless RECORD_TYPE or UNION_TYPE. + +2004-06-24 Andrew Pinski + + * objc-act.c (build_objc_method_call): Save the lookup_object + so we do not call it twice. + +2004-06-24 Richard Henderson + + * tree-ssa-dom.c (real_avail_expr_hash): New. + (tree_ssa_dominator_optimize): Use it in the htab. + +2004-06-24 Frank Ch. Eigler + + * tree-mudflap.c (mx_register_decls): Add third (type) argument + to synthesized __mf_unregister call. + +2004-06-24 Roger Sayle + + PR middle-end/15239 + * expmed.c (expand_mult): Remove artificial restriction on the + maximum cost of a synthetic multiplication sequence. + +2004-06-24 Eric Christopher + + * combine.c (distribute_notes): Don't delete sets to + global register variables. + +2004-06-24 Jakub Jelinek + + * config/i386/i386.md (ffsdi2, clzdi2): New expanders. + (ffs_rex64): New splitter. + (ffsdi_1, ctzdi2, bsr_rex64): New instructions. + +2004-06-24 Andrew Pinski + + * config/darwin7.h (MATH_LIBRARY): Remove. + (LIB_SPEC): Define. + * config/darwin.h (MATH_LIBRARY): Define always to empty. + (LIB_SPEC): Only define if not already defined. + +2004-06-24 Revital Eres + + * loop-iv.c (iv_analyze, simple_set_p): Support for identifying + shifts of induction variable. + (iv_shift): New function. + +2004-06-24 Richard Henderson + + * gimplify.c (gimplify_body): Watch for body vanishing. + +2004-06-24 Jeff Law + + * tree-ssa-dom.c (record_dominating_conditions): New function. + (dom_opt_finalize_block, get_eq_expr_value): Use it. + +2004-06-24 Richard Sandiford + + * calls.c (shift_returned_value): Fix handling of non-integer + TYPE_MODEs. + +2004-06-24 Ulrich Weigand + + * c-decl.c (finish_function): Do not check for DEFAULT_MAIN_RETURN. + * system.h (DEFAULT_MAIN_RETURN): Poison. + * doc/tm.texi (DEFAULT_MAIN_RETURN): Remove documentation. + +2004-06-24 Ben Elliston + + * doc/cfg.texi (Edges): Fix typo. + +2004-06-24 Paul Brook + + * config/arm/arm.c (arm_output_epilogue): Remove excess checks. + +2004-06-23 Andrew Pinski + + PR middle-end/15988 + * fold-const.c (fold_convert): Types which are compatible + can be converted with only a NOP_EXPR. + +2004-06-24 Alan Modra + + * calls.c (expand_call): Call INIT_CUMULATIVE_ARGS earlier, and + pass raw n_named_args to it. + * targhooks.c: Formatting. + (hook_bool_CUMULATIVE_ARGS_false): Correct comment. + +2004-06-23 Richard Henderson + + * c-gimplify.c (gimplify_decl_stmt): Push gimplify_one_sizepos inside + non-constant size check. Gimplify the type too. Tidy building + BUILT_IN_STACK_ALLOC call. + +2004-06-23 Roger Sayle + + * c-common.c (expand_unordered_cmp): Delete. + (expand_tree_builtin): Delete. + * c-common.h (expand_tree_builtin): Delete function prototype. + * c-typeck.c (build_function_call): Don't call expand_tree_builtin. + +2004-06-23 Richard Henderson + + * gimplify.c (gimplify_compound_lval): Don't set ARRAY_REF or + COMPONENT_REF variable fields unless they're non-constant. + +2004-06-23 Robert Millan + + * config.gcc: Merge kfreebsd*-gnu with linux* and add knetbsd*-gnu. + * config/i386/linux.h: Allow overriding of LINK_EMULATION, + DYNAMIC_LINKER and register names in sc_ structure. + * config/kfreebsd-gnu.h: New. kfreebsd-gnu followup for linux.h. + * config/i386/kfreebsd-gnu.h: New. Ditto for i386-kfreebsd-gnu. + * config/knetbsd-gnu.h: New. Ditto for knetbsd-gnu. + * config/i386/knetbsd-gnu.h: New. Ditto for i386-knetbsd-gnu. + + * config/kfreebsdgnu.h: Remove. + * config/t-kfreebsd-gnu: Likewise. + * config/i386/kfreebsdgnu.h: Likewise. + +2004-06-23 Eric Christopher + + * fold-const.c (make_range): Cleanup type checking through function. + Remove orig_type. Replace with checks to exp_type and arg0_type. + Clarify comment when converting from unsigned to signed. + +2004-06-23 Eric Christopher + + * config/mips/mips.c (mips_use_dfa_pipeline_interface): Add R3000. + * config/mips/mips.md: Remove R3000 scheduling description. + * config/mips/3000.md: New file. + +2004-06-23 Ulrich Weigand + + * config/s390/s390-protos.h (s390_emit_compare): Add prototype. + (s390_emit_jump): Likewise. + * config/s390/s390.c (s390_emit_compare): New function. + (s390_emit_jump): Likewise. + * config/s390/s390.md ("beq", "bne", "bgt", "bgtu", "blt", "bltu", + "bge", "bgeu", "ble", "bleu", "bunordered", "bordered", "buneq", + "bungt", "bunlt", "bunge", "bunle", "bltgt"): Use s390_emit_compare + and s390_emit_jump. + ("cjump"): Remove, replace by ... + ("*cjump_64", "*cjump_31"): ... these insns. Improve length default. + ("icjump", "*icjump_64", "*icjump_31"): Likewise. + ("trap"): Fix type attribute. + ("conditional_trap"): Use s390_emit_compare. + ("doloop_si"): Remove, replace by ... + ("doloop_si64", "doloop_si31"): ... these new insn_and_split. + Merge existing splitter into insn_and_split. Improve length default. + ("doloop_di"): Merge with existing splitter into insn_and_split. + ("doloop"): Adapt. + ("jump"): Convert to expander. Use s390_emit_jump. + ("*jump_64", "*jump_31"): New insns. Improve length default. + +2004-06-23 Wu Yongwei + + * gthr-win32.h (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust. + (__gthr_i486_lock_cmp_xchg): New inline assembly function. + (__GTHR_W32_InterlockedCompareExchange): New macro to choose a + suitable function for interlocked compare-and-exchange. + (__gthread_mutex_trylock): Use + __GTHR_W32_InterlockedCompareExchange. + (__gthread_mutex_init_function, __gthread_mutex_lock, + __gthread_mutex_trylock, __gthread_mutex_unlock): Adjust the + initial counter value to work correctly under Windows 95. + * config/i386/gthr-win32.c: Adjust include order. + Define __GTHREAD_I486_INLINE_LOCK_PRIMITIVES before including + gthr-win32.h. + (__gthr_win32_mutex_init_function, __gthr_win32_mutex_lock, + __gthr_win32_mutex_trylock, __gthr_win32_mutex_unlock): Adjust + to match inline versions in gthr-win32.h. + +2004-06-23 David Edelsohn + + * config/rs6000/rs6000.c (rs6000_use_dfa_pipeline_interface): Delete. + (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Redefine a hook_int_void_1. + (insvdi_rshift_rlwimi_p): New function. + * config/rs6000/rs6000.md (insvdi_internal2/3): New patterns. + (extendsfdf2): Convert to define_insn_and_split. + * config/rs6000/rs6000-protos.h (insvdi_rshift_rlwimi_p): Prototype. + +2004-06-23 Andrew Pinski + + * c-typeck.c (composite_type, ): Abort if we have + type qualifiers at all. + If both of the type domains are null and the new element type is + the same as one of the, return the one which the element type. + matches. + Do not call qualify_type on the new type. + +2004-06-23 Ulrich Weigand + + * config/s390/s390.h (DEFAULT_MAIN_RETURN): Remove. + +2004-06-23 Roger Sayle + + * convert.c (strip_float_extension): Skip both NOP_EXPR and + CONVERT_EXPR floating point extensions. + +2004-06-23 Diego Novillo + + * Makefile.in (tree-vn.o): New. + (tree-ssa-pre.o): Don't depend on RTL_H. + * tree-dfa.c (find_referenced_vars): Don't call init_tree_ssa. + * tree-flow.h (struct var_ann_d): Remove field expr_set. + (add_to_value, expressions_equal_p, get_value_handle, vn_compute, + vn_lookup_or_add, vn_add, vn_lookup, vn_init, vn_delete): Declare. + * tree-optimize.c (execute_init_datastructures): New local function. + (pass_init_datastructures): New local variable. + (init_tree_optimization_passes): Sequence pass_init_datastructures. + * tree-pretty-print.c (MASK_POINTER): Remove. + (dump_generic_node): Handle VALUE_HANDLE. + * tree-ssa-pre.c: Move all value numbering routines to tree-vn.c. + Update callers to use new function names. + Use VALUE_HANDLE_ID and VALUE_HANDLE_EXPR_SET instead of + variable annotations. + * tree-ssa.c (init_tree_ssa): Call vn_init. + (delete_tree_ssa): Call vn_delete. + * tree-vn.c: New file. + * tree.c (tree_size): Handle VALUE_HANDLE. + (tree_node_structure): Likewise. + (iterative_hash_expr): Likewise. + * tree.def (VALUE_HANDLE): New code. + * tree.h (struct tree_value_handle): New. + (VALUE_HANDLE_ID): Define. + (VALUE_HANDLE_EXPR_SET): Define. + (enum tree_node_structure_enum): Add TS_VALUE_HANDLE. + (union tree_node): Add struct tree_value_handle. + +2004-06-23 Andrew Pinski + + * c-typeck.c (composite_type): + : Build a qualified type of + the new type. + : Likewise. + : Likewise. + +2004-06-23 Pat Haugen + + PR optimization/15633 + * value-prof.c (divmod_fixed_value_transform): Compute probability + of taking optimal path and pass along to gen_ routine. + (mod_pow2_value_transform): Same. + (mod_subtract_transform): Same. + (gen_divmod_fixed_value): Add new probability parameter. + Add probability to newly created jump. + (gen_mod_pow2): Same. + (gen_mod_subtract): Same. + +2004-06-23 Richard Earnshaw + + * PR target/15948 + * arm.md (bicsi3_cbranch): Add alternative to handle tying operands + one and two. + +2004-06-23 Richard Earnshaw + + PR target/15927 + * arm.h (THUMB_SECONDARY_OUTPUT_RELOAD_CLASS): Don't need a secondary + reload if CLASS is BASE_REGS. + +2004-06-23 Richard Sandiford + + * gengtype-yacc.y (option): Avoid use of non-constant struct + initializer. + +2004-06-23 Nathan Sidwell + + * doc/extend.texi (Function Attributes): Alphabetize. + +2004-06-23 Richard Henderson + + * c-gimplify.c (gimplify_decl_stmt): Update gimplify_type_sizes call. + Use gimplify_and_add. + * c-typeck.c (c_finish_if_stmt): Use NULL instead of empty stmt. + * gimplify.c (build_and_jump, gimplify_exit_expr, + gimplify_init_constructor, gimplify_save_expr, gimple_push_cleanup, + gimplify_stmt, gimplify_expr): Likewise. + (shortcut_cond_expr): Handle NULL arms of COND_EXPR. + (gimplify_statement_list): Remove NULL entries. + (gimplify_to_stmt_list): Handle NULL results. + (gimplify_type_sizes): Add list_p argument. + (gimplify_one_sizepos): Don't use internal pre/post queue. + * tree-gimple.h (gimplify_type_sizes): Update. + +2004-06-22 Eric Christopher + + * config/rs6000/rs6000.md (*insvsi_internal5/6): New patterns. + +2004-06-22 Pat Haugen + + * cfghooks.c (make_forwarder_block): Decrement count on fallthru edge + when redirecting back edges. + + * cfghooks.c (split_block): Call make_single_succ_edge so that edge + count/probability are set correctly. + +2004-06-22 Richard Henderson + + * c-typeck.c (emit_side_effect_warnings): Ignore error marks. + (c_finish_stmt_expr): Likewise. + + * config/i386/i386.c (TARGET_STRUCT_VALUE_RTX): New. + (ix86_return_in_memory): Move SSE vector return warning ... + (ix86_struct_value_rtx): ... here. New. + +2004-06-22 Richard Henderson + + * tree.def (VTABLE_REF): Remove. + (OBJ_TYPE_REF): New. + (TRY_CATCH_EXPR, TRY_FINALLY_EXPR): Set type 's'. + * expr.c (expand_expr_real_1): Replace VTABLE_REF with OBJ_TYPE_REF. + * fold-const.c (non_lvalue): Likewise. + * gimplify.c (gimplify_expr): Likewise. + (gimplify_call_expr): Use is_gimple_call_addr. + * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): New. + * langhooks.h (fold_obj_type_ref): New. + * tree-gimple.c (is_gimple_call_addr): New. + * tree-gimple.h (is_gimple_call_addr): Declare. + * tree-inline.c (inlinable_function_p): Fix merge error. + (estimate_num_insns_1): Replace VTABLE_REF with OBJ_TYPE_REF. + * tree-pretty-print.c (dump_generic_node): Likewise. + (print_call_name): Handle OBJ_TYPE_REF. + * tree-ssa-ccp.c (fold_stmt): Fold OBJ_TYPE_REF. + * tree-ssa-operands.c (get_expr_operands): Handle OBJ_TYPE_REF. + * tree.h (OBJ_TYPE_REF_EXPR): New. + (OBJ_TYPE_REF_OBJECT, OBJ_TYPE_REF_TOKEN): New. + * doc/c-tree.texi (VTABLE_REF): Remove. + * objc/objc-act.c (build_objc_method_call): Build an OBJ_TYPE_REF. + +2004-06-22 Richard Henderson + + PR middle-end/16026 + * function.c (assign_parms): Don't abort for overaligned PARALLEL. + +2004-06-22 Joseph S. Myers + + * Makefile.in (distclean): Don't try to remove empty directories. + +2004-06-22 Richard Sandiford + + PR target/15869 + * config/mips/mips.c (mips_avoid_hazards): Call split_all_insns_noflow. + +2004-06-22 Alexandre Oliva + + * config/mn10300/mn10300.md (movdi, movdf): Use high/low for movu + operands. + +2004-06-22 Dale Johannesen + + * config/rs6000/rs6000.c (legitimate_offset_address_p): Make + global, rename rs6000_legitimate_offset_address_p. + (rs6000_legitimate_address_p): Adjust calls to it. + (lmw_operation): Ditto. + (stmw_operation): Ditto. + * config/rs6000/rs6000-protos.h: Declare it. + * config/rs6000/rs6000.md (*movdf_hardfloat32): Use it + instead of offsettable_memref_p. + +2004-06-22 Dale Johannesen + + * config/rs6000/rs6000.c (rs6000_legitimate_address): Disallow + [reg+reg] mode for TFmode memory accesses. + (rs6000_eliminate_indexed_memrefs): New. + (rs6000_emit_move): Call preceding for TImode and TFmode. + +2004-06-22 Paolo Bonzini + + * tree-cfg.c (pass_warn_function_return): It needs + CFG, not SSA. + +2004-06-22 Nathan Sidwell + + * doc/invoke.texi (Machine Dependent Options): Alphabetize. + (Submodel Options): Likewise. + +2004-06-21 Andrew Pinski + + Radar #: 3701874 + * c-decl.c (push_file_scope): Return early if we already + have a file scope. + +2004-06-21 Geoffrey Keating + + * c-opts.c (c_common_handle_option): Handle -fpch-preprocess. + * c-common.h (flag_pch_preprocess): Declare. + (c_common_pch_pragma): Likewise. + * c-common.c (flag_pch_preprocess): New. + * c-pch.c (c_common_read_pch): Support -fpreprocess-only. + (c_common_pch_pragma): New. + * c-ppoutput.c (cb_read_pch): New. + (init_pp_output): Support -fpch-preprocess. + * c-pragma.c (init_pragma): Support #pragma GNUC pch_preprocess. + * c.opt (fpch-preprocess): New. + * gcc.c (cpp_options): When save-temps, pass -fpch-preprocess. + * doc/cppopts.texi: Document -fpch-preprocess. + * doc/invoke.texi (Precompiled Headers): Mention that + -fpreprocessed is safe for PCH. Mention that if an option is + listed as safe that doesn't mean it does what you expect. + +2004-06-22 Ben Elliston + + * tree-ssa.c (ssa_redirect_edge): Correct leading comment. + +2004-06-21 Richard Kenner + + * Makefile.in (gimplify.o): Add cgraph.h. + * alias.c (adjust_offset_for_component_ref): Use + component_ref_field_offset. + * c-decl.c (build_array_declarator): Add news args for ARRAY_REF. + * c-gimplify.c (gimplify_expr_stmt): Use alloc_stmt_list. + (gimplify_decl_stmt): Call gimplify_type_sizes for type. + For decl, call gimplify_one_sizepos and use statement list. + (gimplify_compound_literal_expr): New arg PRE_P. + Add statement to PRE_P list and return DECL. + (c_gimplify_expr, case COMPOUND_LITERAL_EXPR): Add arg to + gimplify_compound_literal_expr. + * c-tree.h (getdecls): Deleted. + * c-typeck.c (build_component_ref): Add operand for COMPONENT_REF. + (build_array_ref): Add two operands for ARRAY_REF. + (build_unary_op): Set TREE_INVARIANT and TREE_CONSTANT for + COMPOUND_LITERAL_EXPR. + * coverage.c (tree_coverage_counter_ref): Add new operands + for ARRAY_REF. + * emit-rtl.c (component_ref_for_mem_expr): Add new operand + for COMPONENT_REF. + (set_mem_attributes_minus_bitpos): Use array_ref_low_bound + and array_ref_element_size. + (widen_memory_access):Use component_ref_field_offset. + * explow.c (update_nonlocal_goto_save_area): Add two operands + for ARRAY_REF. + * expr.c (array_ref_element_size, array_ref_low_bound): New functions. + (component_ref_field_offset): Likewise. + (get_inner_reference): Use them. + (expand_expr_real_1, case ARRAY_REF): Use array_ref_low_bound. + * fold-const.c (fold, case EQ_EXPR): Properly handle DECL_SIZE. + (fold_read_from_constant_string): Use array_ref_low_bound. + Verify that result is a character type. + (build_fold_indirect_ref): Add two operands for ARRAY_REF. + * function.c (expand_function_start): Likewise. + * gimple-low.c (expand_var_p): Delete duplicated line. + * gimplify.c: Add static decls for local functions. + (cgraph.h): Now included. + (create_tmp_var): Remove check for ARRAY_TYPE. + (copy_if_shared_r): Look at bounds and sizes of types. + (build_and_jump): Return alloc_stmt_list instead of build_empty_stmt. + (gimplify_exit_expr, shortcut_cond_expr): Likewise. + (gimplify_save_expr, gimple_push_cleanup): Likewise. + (gimplify_init_constructor): Likewise. + WANT_VALUE now bool. + If empty list with no result wanted, return GS_UNHANDLED. + Add additional operands for ARRAY_REF and COMPONENT_REF. + (canonicalize_component_ref): Convert to &array[L]. + (gimplify_array_ref_to_plus): Use array_ref_element_size and + array_ref_lower_bound. + (build_addr_expr_with_type, build_addr_expr): New functions. + (gimplify_compound_lval): WANT_LVALUE now bool. + Major rework to allow handle_component_p and initialize and + gimplify new operands for ARRAY_REF, ARRAY_RANGE_REF, and + COMPONENT_REF. + (gimplify_array_ref): Deleted. + (gimplify_self_mod_expr): WANT_VALUE now bool. + (gimplify_modify_expr): Gimplify to_p and from_p later. + Factor out code into gimplify_modify_expr_rhs and call twice. + Move variable-size code earlier and handle PLACEHOLDER_EXPR. + (gimplify_modify_expr_rhs, gimplify_variable_sized_compare): New fns. + (gimplify_addr_expr, case VIEW_CONVERT_EXPR): New case. + (gimplify_expr, case ARRAY_REF): Delete special case. + Instead handle like COMPONENT_REF; also do ARRAY_RANGE_REF, + IMAGPART, and REALPART the same way. + (gimplify_expr, case VIEW_CONVERT_EXPR): New case. + (gimplify_expr): Call gimplify_variable_sized_compare if applicable. + Call alloc_stmt_list instead of build_empty_stmt. + Deal with _REF that's volatile. + (gimplify_type_sizes, gimplify_one_sizepos): New functions. + (unshare_body, unvisit_body): New functions. + (gimplify_body): Call them. + * stmt.c (expand_stack_alloc): Don't expand TYPE_MAX_VALUE. + * stor-layout.c (get_pending_sizes): Don't change SAVE_EXPR_CONTEXT. + * tree-alias-common.c (get_alias_var): Also skip ARRAY_RANGE_REF. + * tree-cfg.c (tree_node_can_be_shared): Treat ARRAY_RANGE_REF + like ARRAY_REF. + (verify_expr, case ADDR_EXPR): Use handled_component_p. + * tree-dfa.c (get_virtual_var): Likewise. + * tree-dump.c (dequeue_and_dump, case COMPONENT_REF, ARRAY_REF): + New cases to dump new operands; likewise for ARRAY_RANGE_REF. + * tree-eh.c (tree_could_trap, case ARRAY_RANGE_REF): Like ARRAY_REF. + * tree-gimple.c (is_gimple_addr_expr_arg): Add ARRAY_RANGE_REF + and INDIRECT_REF. + (get_base_address): Use handled_component_p. + * tree-gimple.h (gimplify_type_sizes, gimplify_one_sizepos): New. + * tree-inline.c (walk_tree): Walk more things for types and decls. + * tree-mudflap.c (mf_build_check_statement_for): Add new operands + for ARRAY_REF and COMPONENT_REF. + (mx_xform_derefs_1): Clean up usage of decl sizes. + * tree-nested.c (build_addr): Use handled_component_p. + (walk_stmts, case CATCH_EXPR): Add missing "break". + (get_static_chain, get_frame_field): Add new operand for COMPONENT_REF. + (finalize_nesting_tree_1): Likewise. + (convert_nonlocal_reference, case ARRAY_RANGE_REF): Like ARRAY_REF + and process additional operands. + (convert_local_reference): Likewise. + * tree-outof-ssa.c (discover_nonconstant_array_refs_r): Treat + ARRAY_RANGE_REF similarly to ARRAY_REF. + * tree-pretty-print.c (dump_generic_node, case QUAL_UNION_TYPE): Handle + like RECORD_TYPE. + (dump_generic_node, case COMPONENT_REF): Print offset operand. + (dump_generic_node, case ARRAY_RANGE_REF): Treat like ARRAY_REF + and print lower bound and element size for both. + (op_prio, case ARRAY_RANGE_REF): Like ARRAY_REF. + * tree-sra.c (csc_build_component_ref): Add new operand. + (scalarize_call_expr): Use get_base_address. + * tree-ssa-ccp.c (widen_bitfield): Clean up size handling. + (maybe_fold_offset_to_array_ref): Rework to handle input having an + ARRAY_REF, refine handling of lower bound, and add new operands + for ARRAY_REF. + (maybe_fold_to_component_ref): Add new operand for COMPONENT_REF. + (maybe_fold_stmt_indirect): Only fold *&B to B if types match. + (maybe_fold_stmt_addition): Only handle constant lower bound. + * tree-ssa-operands.c (get_expr_operands): Minor rearrangements. + Treat ARRAY_REF and ARRAY_RANGE_REF the same; look at extra operands. + Look at new offset operand of COMPONENT_REF. + * tree-ssa.c (set_is_used): Use handled_component_p. + * tree.c (substitute_in_expr, case COMPONENT_REF): Add new operand. + (stabilize_reference, case COMPONENT_REF): Likewise. + (stabilize_reference, case ARRAY_RANGE_REF, ARRAY_REF): Similarly. + (recompute_tree_invariant_for_addr_expr): Completely rework to + be more precise. Also set TREE_SIDE_EFFECTS. + (build1_stat, case ARRAY_EXPR): Don't handle TREE_SIDE_EFFECTS here. + (build2_stat, build3_stat, build4_stat): For references, + propagate TREE_THIS_VOLATILE. + (get_unwidened): Add new operand for COMPONENT_REF. + (get_narrower): Likewise; use host_integerp for DECL_SIZE. + * tree.def (COMPONENT_REF): Add new operand. + (ARRAY_REF, ARRAY_RANGE_REF): Add two new operands. + * tree.h (array_ref_element_size, array_ref_low_bound): New decls. + (component_ref_field_offset): Likewise. + * config/alpha/alpha.c (alpha_va_start): Add new op for COMPONENT_REF. + (alpha_gimplify_va_arg): Likewise. + * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise. + * config/i860/i860.c (i860_va_start, i860_va_arg): Likewise. + * config/iq2000/iq2000.c (iq2000_va_arg): Likewise. + * config/mips/mips.c (mips_va_start, mips_va_arg): Likewise. + * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg): + Likewise. + * config/s390/s390.c (s390_va_start, s390_gimplify_va_arg): Likewise. + * config/sh/sh.c (sh_va_start, sh_va_arg): Likewise. + * config/stormy16/stormy16.c (xstormy1_expand_builin_va_start): + Likewise. + (xstormy16_expand_builtin_va_arg): Likewise. + * config/xtensa/xtensa.c (xtensa_va_start, xtensa_va_arg): Likewise. + * objc/objc-act.c (generate_static_references): Likewise. + (generate_strings, build_method_prototype_list_template): Likewise. + (generate_protocol_list): Likewise. + +2004-06-21 John David Anglin + + PR rtl-optimization/14782 + * pa.c (emit_move_sequence): Use SFmode for 4-byte modes when doing + the address checks for secondary reloads for loads from and stores + to floating-point registers. + * pa.h (EXTRA_CONSTRAINT, case T): Use SFmode for 4-byte modes + in the address check. Move work around for ELF32 targets to + GO_IF_LEGITIMATE_ADDRESS. + (GO_IF_LEGITIMATE_ADDRESS): Require constant offsets to be + correctly aligned for DImode loads and stores. Don't allow long + SFmode displacements on ELF32. + +2004-06-21 Richard Henderson + + PR rtl-opt/16114 + * cse.c (merge_equiv_classes): Also rehash in response to + delete_reg_equiv changes. + (rehash_using_reg): Don't exclude REGs from rehashing. + +2004-06-21 Richard Henderson + + * c-common.def (RETURN_STMT): Remove. + * c-common.h (RETURN_STMT_EXPR): Remove. + (c_expand_return, build_return_stmt): Remove. + (c_common_stmt_codes): Remove RETURN_STMT. + * c-dump.c (dump_next_stmt): Remove. + (c_dump_tree): Remove RETURN_STMT. + * c-decl.c (finish_function): Use c_finish_return. + * c-parse.in (stmt): Likewise. + * c-gimplify.c (gimplify_return_stmt): Remove. + (c_gimplify_expr): Remove RETURN_STMT. + * c-pretty-print.c (pp_c_statement): Likewise. + * c-semantics.c (build_return_stmt): Remove. + * c-tree.h (c_finish_return): Declare. + * c-typeck.c (c_finish_return): Rename from c_expand_return. + Return void. Build RETURN_EXPR directly. + * tree-dump.h (dump_next_stmt): Remove. + +2004-06-21 Zack Weinberg + + * c-decl.c (start_function): Don't call make_decl_rtl. Don't + look at TREE_ADDRESSABLE of symbol name. + +2004-06-21 Kelley Cook + + PR target/15551 + * config/i386/i386.md: Change UNSPEC_STACK_PROBE to UNSPECV_STACK_PROBE. + (allocate_stack_worker): Make unspec_volatile. + (allocate_stack_worker_rex64): Likewise. + (allocate_stack_worker_postreload): Likewise. + (allocate_stack_worker_rex64_postreload): Likewise. + +2004-06-21 Daniel Berlin + + Fix PR optimization/15982 + * tree-ssa-pre.c: Update a few comments and todos to + reflect constants change. + (get_value_handle): Constants now value number to themselves. + (lookup): Constants lookup to themselves. + (add_to_value): Adjust to always be on. + (set_contains_value): Adjust for constants change. + (find_leader): Ditto. + (phi_translate): 'r' nodes are never ANTIC right now. + (valid_in_set): Ditto. + (get_expr_set): New function. + (find_or_generate_expression): New function, broken out from + insert_aux. + (create_expression_by_pieces): Ditto, plus additional + machinery to handle complex values. + (compute_avail): Remove dead RETURN_EXPR handling. + +2004-06-21 Steven Bosscher + + * config/i386/i386.c: Include insn-codes.h + * config/i386/i386.h (FLAGS_REG, FPSR_REG, DIRFLAG_REG): Don't + define here. + * config/i386/i386.md (BP_REG, SP_REG, FLAGS_REG, FPSR_REG, + DIRFLAG_REG): New define_constants. Use them everywhere. + +2004-06-21 Kaz Kojima + + * config/sh/t-linux (MULTILIB_OPTIONS): Remove. + +2004-06-21 J"orn Rennecke + + * sh.h (SUPPORT_SH1, SUPPORT_SH2E, SUPPORT_SH4): Conditionally define. + (SUPPORT_SH4_SINGLE): Likewise. + (TARGET_SWITCHES): Break out switches for cpu subtargets: + (TARGET_SWITCH_SH1, TARGET_SWITCH_SH2, TARGET_SWITCH_SH2E): Define. + (TARGET_SWITCH_SH3, TARGET_SWITCH_SH3E): Likewise. + (TARGET_SWITCH_SH4_SINGLE_ONLY, TARGET_SWITCH_SH4_SINGLE): Likewise. + (TARGET_SWITCH_SH4_NOFPU, TARGET_SWITCH_SH4): Likewise. + (TARGET_SWITCH_SH5_64MEDIA, TARGET_SWITCH_SH5_64MEDIA_NOFPU): Likewise. + (TARGET_SWITCHES_SH5_32MEDIA): Likewise. + (TARGET_SWITCHES_SH5_32MEDIA_NOFPU): Likewise. + (SELECT_SH5_64, SELECT_SH5_64_NOFPU): Rename to: + (SELECT_SH5_64MEDIA, SELECT_SH5_64MEDIA_NOFPU) + (SELECT_SH5_32, SELECT_SH5_32_NOFPU): Rename to: + (SELECT_SH5_32MEDIA, SELECT_SH5_32MEDIA_NOFPU). + (SH_MULTILIB_CPU_DEFAULT, MULTILIB_DEFAULTS): Define. + (ASM_ISA_SPEC_DEFAULT, ASM_ISA_DEFAULT_SPEC): Likewise. + * sh64.h (ASM_SPEC, LINK_DEFAULT_CPU_EMUL): Don't redefine. + (TARGET_DEFAULT): Likewise. + * config/sh/t-elf: Amend comment. + * config/sh/t-1e, config/sh/t-mlib-sh1: New files. + * config/sh/t-mlib-sh2, config/sh/t-mlib-sh2e: Likewise. + * config/sh/t-mlib-sh3, config/sh/t-mlib-sh3e: Likewise. + * config/sh/t-mlib-sh4, config/sh/t-mlib-sh4-nofpu: Likewise. + * config/sh/t-mlib-sh4-single: Likewise. + * config/sh/t-mlib-sh4-single-only: Likewise. + * config/sh/t-mlib-sh5-32media: Likewise. + * config/sh/t-mlib-sh5-32media-nofpu: Likewise. + * config/sh/t-mlib-sh5-64media: Likewise. + * config/sh/t-mlib-sh5-64media-nofpu: Likewise. + * config/sh/t-mlib-sh5-compact: Likewise. + * config/sh/t-mlib-sh5-compact-nofpu: Likewise. + * config/sh/t-sh: (MULTILIB_ENDIAN): Add mb. + (MULTILIB_CPUS): Define. + (MULTILIB_OPTIONS): Use MULTILIB_CPUS. + (MULTILIB_MATCHES): Use some shell code to calculate it. + (MULTILIB_EXCEPTIONS): Change to ml/m1. + * config/sh/elf.h (SUBTARGET_ASM_ISA_SPEC): Use ASM_ISA_DEFAULT_SPEC. + * config/sh/netbsd-elf.h: Update code which sets TARGET_VERSION_CPU. + (LINK_DEFAULT_CPU_EMUL): Don't redefine. + (NO_PROFILE_COUNTERS): Define to 1. + * config/sh/t-netbsd (MULTILIB_OPTIONS): Don't append to. + (MULTILIB_DIRNAMES, MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Don't zap. + * config/sh/t-netbsd-sh5-64 (MULTILIB_OPTIONS): Don't redefine. + (MULTILIB_MATCHES): Don't zap. + (MULTILIB_DIRNAMES): Use MULTILIB_RAW_DIRNAMES. + * config/sh/t-sh64 (MULTILIB_OPTIONS): Don't redefine. + (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Don't zap. + (MULTILIB_RAW_DIRNAMES): Define. + (MULTILIB_DIRNAMES): Use it. + * config.gcc: Also set cpu_type / need_64bit_hwint for sh[be]*-*-*. + (sh*linux configurations): Merge into: + (sh*elf / sh*kaos configurations). Support --with-endian, --with-cpu, + --with-multilib-list options. Support sh-superh-elf configuration. + (sh*-netbsd*): Use SELECT_SH* macros. + (supported_defaults): sh[123456ble]-*-* | sh-*-* support "cpu". + Merge sh*-*-netbsd* configurations into sh-elf configurations. + * config/sh/t-netbsd-sh5, config/sh/t-be, config/sh/t-le: Delete. + * config/sh/t-monolib: Likewise. + +2004-06-21 Paul Brook + + * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Soft-float need + not imply FPA. + +2004-06-21 Roger Sayle + + * fold-const.c (operand_equal_p): Pass flags in recursive calls for + binary and relational operations. Add support for TRUTH_ANDIF_EXPR, + TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR and TRUTH_XOR_EXPR. + * tree.c (commutative_tree_code): Also list UNORDERED_EXPR, + ORDERED_EXPR, UNEQ_EXPR, LTGT_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR + and TRUTH_XOR_EXPR. + +2004-06-21 Paolo Bonzini + + * rtlanal.c (may_trap_p): Mark LTGT as trapping. + +2004-06-21 Joseph S. Myers + + * tree-alias-common.h (struct tree_alias_ops): Change ip and + ip_partial to unsigned int. + +2004-06-21 Richard Henderson + + * c-common.c (verify_sequence_points): Export. + (c_expand_expr_stmt): Move to c-typeck.c. + * c-common.h (c_expand_expr_stmt): Remove. + (verify_sequence_points): Declare. + * c-mudflap.c (mflang_flush_calls): Use c_finish_expr_stmt. + * c-parse.in (for_init_stmt, stmt): Likewise. + * c-tree.h (c_finish_expr_stmt): Declare. + (c_tree_expr_nonnegative_p): Remove. + * c-typeck.c (c_tree_expr_nonnegative_p): Remove. + (build_conditional_expr, build_binary_op): Use tree_expr_nonnegative_p. + (emit_side_effect_warnings): New. + (c_finish_expr_stmt): Rename from c_expand_expr_stmt. Use it. + (c_finish_stmt_expr): Work without EXPR_STMT. Handle eh regions. + Use emit_side_effect_warnings. + (push_cleanup): Copy STATEMENT_LIST_STMT_EXPR. + * fold-const.c (tree_expr_nonnegative_p): Handle TARGET_EXPR. + * gimplify.c (gimplify_modify_expr): Don't discard TARGET_EXPR + with void initializer. + (gimplify_target_expr): Handle void BIND_EXPR initializer. + * tree-inline.c (estimate_num_insns_1): Fix type lookup for + INIT_EXPR and MODIFY_EXPR. + * objc/objc-act.c (build_module_descriptor): Use add_stmt + instead of c_expand_expr_stmt. + +2004-06-21 Paolo Bonzini + + * fold-const.c (fold_cond_expr_with_comparison): + New function, extracted from fold. + (fold): Extract code to fold A op B ? A : C, use + it to fold A op B ? C : A. Really optimize + A & N ? N : 0 where N is a power of two. Avoid + relying on canonicalization and recursion for + foldings of COND_EXPR to happen. + +2004-06-20 David Ayers + + * objc/objc-act.h (get_object_reference): Rename to + get_protocol_reference. + (super_type): Rename to objc_super_type. + (selector_type): Rename to objc_selector_type. + (id_type): Rename to objc_id_type. + (instance_type): Rename to objc_instance_type. + (protocol_type): Rename to objc_protocol_type. + (IS_ID): Update reference to id_type. + * objc/objc-act.c (get_object_reference): Rename to + get_protocol_reference; add documentation; update references to + id_type. + (lookup_method_in_protocol_list): Rename class_meth to + is_class; add documentation. + (finish_message_expr): Rename is_class to class_tree. + (synth_module_prologue, objc_is_object_ptr, objc_build_exc_ptr, + next_sjlj_build_try_catch_finally, objc_begin_catch_clause, + build_next_objc_exception_stuff, get_arg_type_list, + build_objc_method_call): Update references to id_type. + (synth_module_prologue, build_objc_symtab_template, + build_selector_reference_decl, build_selector, + build_selector_translation_table, build_typed_selector_reference, + get_arg_type_list, synth_self_and_ucmd_args, get_arg_type_list, + synth_self_and_ucmd_args): Update references to selector_type. + (build_private_template, build_ivar_reference): Update references + to instance_type. + (synth_module_prologue, build_protocol_reference, + build_protocol_expr, start_protocol): Update references to + protocol_type. + (synth_module_prologue, get_arg_type_list, build_objc_method_call): + Update references to super_type. + * c-parse.in: (typespec_nonreserved_nonattr): Update + references to get_object_reference. + * objc/objc-tree.def: Add C mode identifier sequence. + +2004-06-20 Zdenek Dvorak + + * loop-invariant.c: New file. + * Makefile.in (loop-invariant.o): New. + * cfgloop.h (global_cost_for_size, init_set_costs, + move_loop_invariants): Declare. + * cfgloopanal.c (seq_cost, init_set_costs, global_cost_for_size): New + functions. + (avail_regs, res_regs, small_cost, pres_cost, spill_cost): New + variables. + * common.opt (floop-optimize2, fmove-loop-invariants): New options. + * loop-init.c (loop_optimizer_init): Call init_set_costs. + * passes.c (rest_of_handle_loop2): Call move_loop_invariants. + (rest_of_compilation): Check flag_loop_optimize2. + * toplev.c (process_options): Handle flag_loop_optimize2. + * doc/invoke.texi (-floop-optimize2, -fmove-loop-invariants): Document. + * doc/passes.texi (loop-invariant.c): Document. + +2004-06-20 Zdenek Dvorak + + * tree-ssa-pre.c (compute_antic): Keep BB_VISITED flag zeroed. + +2004-06-20 Richard Henderson + + * stmt.c (warn_if_unused_value): Add locus argument. + * tree.h (warn_if_unused_value): Update decl. + * c-typeck.c (internal_build_compound_expr): Update call. + * c-gimplify.c (gimplify_expr_stmt): Likewise. + +2004-06-20 Andrew Pinski + + PR middle-end/16089 + * builtins.c (entry_of_function): Move to ... + * cfgrtl.c (entry_of_function): Here and make non-static. + * integrate.c (emit_initial_value_sets): Use entry_of_function. + * rtl.h (entry_of_function): Prototype. + +2004-06-20 Roger Sayle + + * config/i386/i386.c (pentium4_cost): Increase "lea" cost from 1 to 3. + (ix86_rtx_costs) : Consider ix86_cost->lea even when + TARGET_DECOMPOSE_LEA. + +2004-06-20 Richard Henderson + + * c-common.h (add_decl_stmt): Move to cp-tree.h. + * c-decl.c (finish_decl): Don't use add_decl_stmt. + * c-parse.in: Likewise. + * c-gimplify.c (gimplify_expr_stmt): Don't build CLEANUP_POINT_EXPR. + (gimplify_c_loop, gimplify_return_stmt, gimplify_decl_stmt): Likewise. + * c-semantics.c (add_decl_stmt): Move to cp/semantics.c. + +2004-06-20 Richard Henderson + + * c-common.def (IF_STMT, CLEANUP_STMT): Move to cp-tree.def. + * c-common.h (IF_COND, THEN_CLAUSE, ELSE_CLAUSE, CLEANUP_BODY, + CLEANUP_EXPR, CLEANUP_DECL): Move to cp-tree.h. + (c_common_stmt_codes): Remove IF_STMT, CLEANUP_STMT. + * c-dump.c (c_dump_tree): Move IF_STMT, CLEANUP_STMT to cp_dump_tree. + * c-pretty-print.c (pp_c_statement): Similarly. + * c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts, + gimplify_if_stmt): Move to cp-gimplify.c. + (c_genericize, c_gimplify_expr): Don't call them. + * c-semantics.c (push_cleanup): Move to cp/semantics.c. + * c-typeck.c (push_cleanup): New. + (c_begin_if_stmt, c_finish_if_cond, c_finish_then, c_finish_else, + c_finish_if_stmt): Use COND_EXPR. + * tree.h (CLEANUP_EH_ONLY): Update documentation. + +2004-06-20 Zack Weinberg + + * c-common.h (has_c_linkage): New interface. + * c-cppbuiltin.c: Include target.h. + (c_cpp_builtins): Define __PRAGMA_REDEFINE_EXTNAME and + __PRAGMA_EXTERN_PREFIX when appropriate. + * c-pragma.c: Include target.h. + Document clarified semantics of symbol-renaming #pragmas. + (handle_pragma_redefine_extname, handle_pragma_extern_prefix) + (maybe_apply_renaming_pragma): Rewrite according to clarified + semantics. Always recognize, but do not necessarily execute. + (init_pragma): Unconditionally register symbol-renaming pragmas. + * system.h: Poison HANDLE_PRAGMA_REDEFINE_EXTNAME + and HANDLE_PRAGMA_EXTERN_PREFIX. + * target.h (struct gcc_target): Add handle_pragma_redefine_extname + and handle_pragma_extern_prefix flags. + * target-def.h: Add defaults for TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME + and TARGET_HANDLE_PRAGMA_EXTERN_PREFIX. + * Makefile.in (c-pragma.o, c-cppbuiltin.o): Update dependencies. + * config/sol2.h: Define TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME, + not HANDLE_PRAGMA_REDEFINE_EXTNAME. + (TARGET_OS_CPP_BUILTINS): No need to define __PRAGMA_REDEFINE_EXTNAME. + (TRANSFER_FROM_TRAMPOLINE): Prototype mprotect. + * config/alpha/osf.h: Define TARGET_HANDLE_PRAGMA_EXTERN_PREFIX, + not HANDLE_PRAGMA_EXTERN_PREFIX. + (TARGET_OS_CPP_BUILTINS): No need to define __PRAGMA_EXTERN_PREFIX. + * doc/extend.texi (Solaris Pragmas, Tru64 Pragmas): Combine + into one section "Symbol-Renaming Pragmas"; clarify; document + adjusted semantics. + + * builtins.c (expand_builtin): Do not issue error for a builtin + with no special case code and no DECL_ASSEMBLER_NAME; just do the + library call. + * c-decl.c (builtin_function): Don't call make_decl_rtl. + * c-objc-common.c (has_c_linkage): Stub implementation. + * cgraphunit.c (cgraph_expand_function) + (cgraph_remove_unreachable_nodes): Don't clear DECL_ARGUMENTS. + +2004-06-19 Roger Sayle + + * builtins.c (fold_builtin_unordered_cmp): Take an EXP argument + instead of both an ARGLIST and a result TYPE. Handle these C99 + comparison functions as "polymorphic" builtins. Also handle + lowering of BUILT_IN_ISUNORDERED to an UNORDERED_EXPR tree node. + (fold_builtin_1): Update calls to fold_builtin_unordered_cmp. + Move handling of BUILT_IN_ISUNORDERED from here to there. + +2004-06-19 Richard Henderson + + * c-common.c, c-common.h (lang_gimplify_stmt): Remove. + * c-gimplify.c: Remove unnecessary prototypes. + (c_gimplify_stmt): Merge into ... + (c_gimplify_expr): ... here. Don't play with prep_stmt. + * c-semantics.c (prep_stmt): Remove. + * gimplify.c (annotate_one_with_locus): Break out from ... + (annotate_all_with_locus): ... here. + (gimplify_expr): Add locus to expressions even if pre/post queues + are not present. + +2004-06-19 Richard Henderson + + PR target/15941 + * function.c (assign_parms): If not padding upward or intentionally + forcing upward padding, take offset_rtx into account when determining + the alignment for stack_parm. + +2004-06-19 Richard Henderson + + PR target/15550 + * ifcvt.c (noce_try_move): Recognize all generated instructions. + +2004-06-19 Jan Hubicka + + * function.c (free_after_compilation): Do not free computed_goto_common*. + * function.h (struct function): Kill computed_goto_common*. + * stmt.c (expand_computed_goto): Do not commonize the computed gotos. + * tree-cfg.c (disband_implicit_edges): Do not forward across the + commonized computed goto. + +2004-06-19 John David Anglin + + * doc/invoke.texi: Remove obsolete comment regarding PA 2.0 support + in binutils. + +2004-06-19 Andrew Pinski + + PR c++/15721 + * toplev.c (wrapup_global_declarations): Do not check + TREE_SYMBOL_REFERENCED of the DECL_ASSEMBLER_NAME but check + cgraph_varpool_node's needed field. + +2004-06-19 Jan Hubicka + Steven Bosscher + + CFG transparent RTL expansion: + * Makefile.in (cfgexpand.o): New object file. + (builtins.o): Add dependency on basic-block.h + * builtins.c: Include basic-block.h + (entry_of_function): New function. + (expand_builtin_apply_args, expand_builtin_saveargs): Use it. + * cfgexpand.c: New file. + * expr.c (execute_expand, pass_expand): Kill. + * pass.c (rest_of_compilation): Do not build CFG unless called from + coverage code. + * tree-cfg.c (delete_tree_cfg): Rename to.. + (delete_tree_cfg_annotations): ... this one; Do not remove the CFG itself. + * tree-flow.h (delete_tree_cfg_annotations): Declare. + (dleete_tree_cfg): Kill. + * tree-optimize.c (execute_rebuild_bind, pass_rebuild_bind): Kill. + (execute_del_cfg): Rename to... + (execute_free_datastructures): This one... + (pass_del_cfg): Rename to... + (pass_free_datastructures): ... this one; Do not kill PROP_cfg. + (init_tree_optimization_passes): Make cfg build and profiling to happen + unconditionally. + +2004-06-19 Steven Bosscher + + * tree-mudflap.c (mf_decl_cache_locals): Skip labels before + inserting the cache variables. + + * tree-mudflap.c: Include headers to make basic_block available. + Move functions around such that related functions are near each + other. Add prototypes for all static functions. Add comments + briefly explaining what IR the mudflap1 and mudflap2 work on and + what they do. + (mudflap_function_decls): Rename to execute_mudflap_function_decls. + (mudflap_function_ops): Rename to execute_mudflap_function_ops. + (pass_mudflap_1, pass_mudflap_2): Update. + (mf_decl_cache_locals): Make it work on the CFG instead of the saved + function tree. + (mf_build_check_statement_for): Make it work on the CFG. + (mf_xform_derefs_1): Likewise. Cleanup code style. + (mf_xform_derefs): Likewise. + +2004-06-19 Jan Hubicka + + * tree-cfg.c (label_to_block): Invent the label destination for + undefined labels. + (cleanup_dead_labels): Update table in the case label_to_block added + new label. + +2004-06-18 Richard Henderson + + PR c++/16036 + * gimple-low.c (lower_function_body): Generate return statement for + fall off the end of the function here ... + * tree-cfg.c (make_edges): ... instead of here. + * gimplify.c (gimplify_return_expr): Mark return temp TREE_NO_WARNING. + +2004-06-18 Zdenek Dvorak + + * tree-ssa.c (raise_value): Removed. + (get_eq_name, check_phi_redundancy): New functions. + (kill_redundant_phi_nodes): Use standard ssa minimalization algorithm. + +2004-06-18 Roger Sayle + + * fold-const.c (fold) : Add + constant folding for unordered comparison tree nodes. If both + operands are real constants, call fold_relational_const. If either + operand is a NaN, evaluate the other for side-effects and return a + constant. Optimize (double)float1 CMP (double)float2 into the + equivalent float1 CMP float2. + (nondestructive_fold_binary_to_constant) : Call fold_relational_const for constant operands. + (fold_relational_const): Add support for unordered comparison tree + nodes. Don't constant fold "ordered" floating point comparisons + against NaN if when flag_trapping_math is set. + +2004-06-19 Jakub Jelinek + + * fold-const.c (build_range_check): If !in_p and recursive call + fails, exit immediately. If high - low overflows and etype is + a signed type, retry with unsigned etype. + (merge_ranges): If !in0_p and !in1_p, handle even range2 adjacent + to range1 at TYPE_MAX_VALUE and TYPE_MIN_VALUE. + +2004-06-18 Richard Henderson + + * c-gimplify.c (gimplify_condition): Remove. + (gimplify_c_loop, gimplify_if_stmt, gimplify_switch_stmt): Don't + call it. + +2004-06-18 Richard Henderson + + * tree-eh.c (decide_copy_try_finally): Fix scaling of copy and + switch estimates. + +2004-06-18 Andrew Pinski + + * config/i386/darwin.h (HOT_TEXT_SECTION_NAME): Define. + (NORMAL_TEXT_SECTION_NAME): Define. + (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define. + (SECTION_FORMAT_STRING): Define. + +2004-06-18 Steven Bosscher + + * config/xtensa/xtensa.c + (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define. + * xtensa.md: Replace the old pipeline description with a DFA model. + +2004-06-18 Steven Bosscher + Ulrich Weigand + + * config/s390/s390.md: Remove the generic pipeline description. + * config/s390/2064.md: Make all insn reservations apply to + the z900, g5 and g6. + * config/s390/s390.c (s390_use_dfa_pipeline_interface): Remove. + (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): + Define to hook_int_void_1. + (s390_adjust_cost): Cleanup. Don't check address dependency here. + (s390_first_cycle_multipass_dfa_lookahead): Always return 4. + +2004-06-18 Daniel Berlin + Diego Novillo + + * tree-dfa.c (create_var_ann): tree_ann -> tree_ann_t. + (create_stmt_ann): Ditto. + (create_tree_ann): New function. + (create_cst_ann): Remove. + (create_expr_ann): Ditto. + + * tree-flow-inline.h (cst_ann): Remove. + (get_cst_ann): Ditto. + (get_expr_ann): Ditto. + (expr_ann): Ditto. + (get_tree_ann): New function. + (tree_ann): Ditto. + (ann_type): tree_ann -> tree_ann_t. + * tree-flow.h (tree_ann_type): CST_ANN, EXPR_ANN removed. + (struct cst_ann_d): Removed. + (struct expr_ann_d): Ditto. + (union tree_ann_d): Removed cst and expr. + (tree_ann): Renamed to tree_ann_t. + * tree-ssa-ccp.c (set_rhs): tree_ann -> tree_ann_t. + * tree-ssa-pre.c (get_value_handle): Rewrite for single common + annotation. + (set_value_handle): Ditto. + (phi_translate): Ditto. + * tree-tailcall.c (adjust_return_value): tree_ann -> tree_ann_t. + +2004-06-18 Kaz Kojima + + * config/sh/t-linux64: New file. + * config.gcc: Add it to tmake_file for sh64*-*-linux*. + +2004-06-18 Paolo Bonzini + + * emit-rtl.c (unshare_all_rtl_1): New name of unshare_all_rtl. + (unshare_all_rtl_again): Call unshare_all_rtl_1. + (unshare_all_rtl): New. + * function.c (instantiate_virtual_regs): Remove parameters. + * function.h (instantiate_virtual_regs): Add prototype. + * rtl.h (unshare_all_rtl): Add prototype. + * tree.h (instantiate_virtual_regs, unshare_all_rtl): Remove + prototype. + * passes.c: Remove assertions on the parameters to + rest_of_handle_* functions. Remove the parameters to + the functions, replacing decl with current_function_decl + and insns with get_insns (). + +2004-06-17 Roger Sayle + + * fold-const.c (constant_boolean_node): Handle boolean_type_node + directly, return either boolean_true_node or boolean_false_node. + +2004-06-18 Kelley Cook + + * opts.sh: Delete. Break out generated code to next four files. + * opt-gather.awk: New file. + * optc-gen.awk: New file. + * opth-gen.awk: New file. + * opt-functions.awk: New common file. + * Makefile.in: Update for above. + * configure.ac: Update comment. + * configure: Regenerate. + +2004-06-17 Richard Henderson + + * c-common.c (flag_objc_sjlj_exceptions): New. + * c-common.h (flag_objc_sjlj_exceptions): Declare. + * c-opts.c (c_common_handle_option): Set it. + (c_common_post_options): Handle interation of different + objective-c exception and runtime switches. + * c-decl.c (c_eh_initialized_p): New. + (finish_decl): Use it instead of local eh_initialized_p. + * c-parse.in (nested_function, notype_nested_function): Record + the result of compstmt. + (compstmt_or_error): Likewise. + (compstmt): Don't add_stmt the result. + (stmt): Don't return anything. Rewrite objc try and sync rules. + (objc_try_stmt, objc_catch_list): Remove. + (objc_catch_block, objc_finally_block): Remove. + (objc_catch_prefix, objc_catch_clause, objc_opt_catch_list): New. + (objc_try_catch_clause, objc_finally_clause): New. + (objc_try_catch_stmt): Rewrite. + * c-tree.h (c_eh_initialized_p): Declare. + * c-opt (fobjc-sjlj-exceptions): New. + * except.c (output_function_exception_table): Don't call cgraph + on non-decls. + * objc/objc-act.c (UTAG_EXCDATA_VAR, UTAG_CAUGHTEXC_VAR, + UTAG_RETHROWEXC_VAR, UTAG_EVALONCE_VAR, struct val_stack, + catch_count_stack, exc_binding_stack, if_nesting_count, + blk_nesting_count, objc_enter_block, objc_exit_block, + objc_declare_variable, val_stack_push, val_stack_pop, + objc_build_try_enter_fragment, objc_build_extract_expr, + objc_build_try_exit_fragment, objc_build_extract_fragment, + objc_build_try_prologue, objc_build_try_epilogue, + objc_build_catch_stmt, objc_build_catch_epilogue, + objc_build_finally_prologue, objc_build_finally_epilogue, + objc_build_try_catch_finally_stmt, objc_build_synchronized_prologue, + objc_build_synchronized_epilogue): Remove. + (objc_create_temporary_var, struct objc_try_context, cur_try_context, + objc_eh_runtime_type, objc_init_exceptions, objc_build_exc_ptr, + next_sjlj_build_try_exit, next_sjlj_build_enter_and_setjmp, + next_sjlj_build_exc_extract, next_sjlj_build_catch_list, + next_sjlj_build_try_catch_finally, objc_begin_try_stmt, + objc_begin_catch_clause, objc_finish_catch_clause, + objc_build_finally_clause, objc_finish_try_stmt, + objc_build_synchronized): New. + (objc_is_object_id, objc_is_class_id): New. + (objc_comptypes): Use them. + (build_next_objc_exception_stuff): Break NeXT sjlj out from + build_objc_exception_stuff. + (synth_module_prologue): Update to match. + (objc_build_throw_stmt): Use cur_try_context to decide if + we're in a @catch. + * objc/objc-act.h: Update prototypes. + (OCTI_EXCEPTION_BLK_STACK, objc_exception_block_stack): Remove. + +2004-06-17 Andrew Pinski + + * c-typeck.c (tagged_types_tu_compatible_p ): + Use TYPE_FIELDS instead of TYPE_VALUES. + +2004-06-17 Jason Merrill + + PR c++/16015 + * gimplify.c (gimplify_target_expr): Handle void initializer. + * expr.c (expand_expr_real_1) [TARGET_EXPR]: Likewise. + * doc/c-tree.texi (Expression trees): Update TARGET_EXPR + and AGGR_INIT_EXPR. + +2004-06-17 Roger Sayle + + * fold-const.c (fold_relational_const): Use constant_boolean_node. + +2004-06-17 Jan Hubicka + + PR target/15433 + * i386.md (SSE SF cmov 0 splitter): The conditional is VOIDmode; fix + operand numbering in the output template. + (SSE DF cmov 0 splitter): The conditional is VOIDmode. + +2004-06-17 Jan Hubicka + + * except.c (can_throw_internal): Recognize RESX expresisons. + +2004-06-17 Jan Hubicka + + * cfgbuild.c (make_edges): Do not use label_value_list. + (find_basic_blocks_1): Do not collect label_value_list. + (find_sub_basic_blocks): Update call of make_edges. + +2004-06-17 Andrew MacLeod + + * tree-cfg.c (tree_make_forwarder_block): Use SET_PHI_RESULT. + * tree-flow-inline.h (get_use_op_ptr): Return a use_operand_p. + (get_use_from_ptr, get_def_from_ptr): New. Return operand pointers. + (get_def_op_ptr): Return a def_operand_p instead of a 'tree *'. + (get_v_may_def_result_ptr): Return a def_operand_p. + (get_v_may_def_op_ptr, get_vuse_op_ptr): Return a use_operand_p. + (get_v_must_def_op_ptr): Return a def_operand_p. + (get_phi_result_ptr): New. Return a pointer to the result of a PHI. + (get_phi_arg_def_ptr): New. Return a pointer to an argument of a PHI. + (phi_element_for_edge): Remove. + * tree-flow.h (propagate_value, replace_exp): Change prototype. + (propagate_tree_value): Add new prototype. + (phi_element_for_edge): Remove prototype. + * tree-into-ssa.c (mark_def_sites): Use new operand types. + (prepare_operand_for_rename): Split into two functions. + (prepare_use_operand_for_rename): Prepare use operands. + (prepare_def_operand_for_rename): Prepare def operands. + (rewrite_stmt): Use new operand types. + (rewrite_operand): Use new operand types, change parameter type. + * tree-outof-ssa.c (replace_variable): Split into two functions. + (replace_use_variable): Rewrite uses. + (replace_def_variable): Rewrite defs. + (rewrite_trees, rewrite_vars_out_of_ssa): Use new operand types. + * tree-phinodes.c (make_phi_node, resize_phi_node): Use new types. + (add_phi_arg, remove_phi_arg_num): Use new operand types. + * tree-ssa-ccp.c (substitute_and_fold): Use new operand types. + (ccp_fold, replace_uses_in): Use new operand types. + * tree-ssa-copy.c (replace_ssa_names): Rename to replace_ssa_names_ann + and no longer set the value, change parameter type. + (replace_exp_1): Use new operand types. + (propagate_value): Change parameter type, use new operand types. + (propagate_tree_value): Propagate_value without SSA operands. + (replace_exp, cprop_operand, cprop_into_stmt): Use new operand types. + (cprop_into_successor_phis): Use new operand types. + * tree-ssa-dom.c (thread_across_edge): Use new operand types. + (eliminate_redundant_computations): Use new operand types. + * tree-ssa-dse.c (fix_phi_uses): Use new operand_types. + (fix_stmt_v_may_defs): Use new operand_types. + * tree-ssa-live.c (create_ssa_var_map): Use new operand_types. + (build_tree_conflict_graph): Use new operand_types. + * tree-ssa-loop.c (duplicate_blocks): Use PHI_ARG_DEF_FROM_EDGE. + * tree-ssa-operands.c (struct freelist_d): Remove. + (check_optype_freelist, add_optype_freelist): Remove. + (allocate_def_optype, allocate_use_optype, allocate_v_may_def_optype, + allocate_vuse_optype, allocate_v_must_def_optype): Call ggc_alloc. + (free_uses, free_defs, free_vuses, free_v_may_defs, free_v_must_defs): + Call ggc_free instead of add_optype_freelist. + (init_ssa_operands, fini_ssa_operands): Remove free list code. + (finalize_ssa_defs, finalize_ssa_uses): Set new use/def operands. + * tree-ssa-operands.h (struct def_optype_d): Change underlying type. + (struct use_optype_d): Change underlying type. + (def_operand_p, use_operand_p): New types for pointers to operands. + (USE_OP, DEF_OP, V_MAY_DEF_RESULT, V_MAY_DEF_OP, VUSE_OP, + V_MUST_DEF_OP): Use new pointer type instead of dereferencing directly. + (USE_FROM_PTR, DEF_FROM_PTR): New macros to "dereference" operand + pointer types. + (SET_USE, SET_DEF): New macros to set operands from their pointer. + (SET_USE_OP, SET_DEF_OP, SET_V_MAY_DEF_RESULT, SET_V_MAY_DEF_OP, + SET_VUSE_OP, SET_V_MUST_DEF_OP): New SET routines for operands. + (PHI_RESULT_PTR, PHI_RESULT, SET_PHI_RESULT): Macros to manage the + PHI result as an operand. + (PHI_ARG_DEF_PTR, PHI_ARG_DEF, SET_PHI_ARG_DEF, PHI_ARG_DEF_FROM_EDGE, + PHI_ARG_DEF_PTR_FROM_EDGE): Macros to manage the PHI arguments. + * tree-ssa-pre.c (eliminate): Call propagate_tree_value. + * tree-tailcall.c (independent_of_stmt_p, propagate_through_phis): Use + PHI_ARG_DEF_FROM_EDGE. + * tree.h (PHI_RESULT): Renamed to PHI_RESULT_TREE. + (PHI_ARG_DEF): Renamed to PHI_ARG_DEF_TREE. + +2004-06-17 Zdenek Dvorak + + PR tree-optimization/15991 + * tree-cfg.c (tree_block_label): Export. + * tree-flow-inline.h (bsi_after_labels): New function. + * tree-flow.h (bsi_after_labels, tree_block_label): Declare. + * tree-ssa.c (propagate_into_addr): New function. + (replace_immediate_uses): Handle propagation of pointer constants. + (raise_value): Do not restrict propagation of pointer constants. + * tree-ssanames.c (duplicate_ssa_name): New function. + * tree.h (duplicate_ssa_name): Declare. + +2004-06-17 David Ayers + + * c-parse.in: Unify Objective-C token names. + +2004-06-17 Zack Weinberg + + Bug 14610 + * Makefile.in (min-insn-modes.o): Correct dependencies. + * real.c (encode_ieee_extended, decode_ieee_extended): Always + produce/consume 12-byte little-endian Intel format. + (encode_ieee_extended_128, decode_ieee_extended_128): Delete. + (encode_ieee_extended_motorola, decode_ieee_extended_motorola) + (encode_ieee_extended_intel_96, decode_ieee_extended_intel_96) + (encode_ieee_extended_intel_128, decode_ieee_extended_intel_128): + New functions which convert between 12-byte little-endian Intel + format and the desired format. + (ieee_extended_motorola_format, ieee_extended_intel_96_round_53_format) + (ieee_extended_intel_96_format, ieee_extended_intel_128_format): + Update. + +2004-06-17 Zack Weinberg + + * expmed.c (expand_mult_const): In sanity check, compare only + the bits of val and val_so_far that are significant in the + result mode. + +2004-06-17 Daniel Berlin + + * tree-ssa-pre.c: Update comments. + (val_expr_pair_eq): Factor code from here. + (expr_pred_trans_eq): and here. + (expressions_equal_p): To here. + (print_value_set): Print value for expression. + (phi_trans_lookup): Rename some variables. + (lookup): Ditto. + (value_exists_in_set_bitmap): Ditto. + (value_remove_from_set_bitmap): Ditto. + (value_insert_into_set_bitmap): Ditto. + +2004-06-17 Ulrich Weigand + + * config/s390/s390-modes.def (CCL3mode): New machine mode. + * config/s390/s390.c (s390_match_ccmode_set): Support CCL3mode. + (s390_alc_comparison, s390_slb_comparison): Likewise. + (s390_branch_condition_mask): Likewise. + * config/s390/s390.md ("*subdi3_cc2", "*subdi3_cconly2"): New. + ("*subsi3_cc2", "*subsi3_cconly2"): New. + + * config/s390/s390.h (PREDICATE_CODE): Accept SIGN_EXTEND and + ZERO_EXTEND for s390_alc_comparison and s390_slb_comparison. + * config/s390/s390.c (s390_alc_comparison, s390_slb_comparison): + Handle SIGN_EXTEND and ZERO_EXTEND. + + * config/s390/s390-protos.h (s390_expand_addcc): New prototype. + * config/s390/s390.c (s390_expand_addcc): New function. + * config/s390/s390.md ("adddicc", "addsicc"): New expanders. + ("*sconddi", "*scondsi", "*sconddi_neg", "*scondsi_neg"): New insns. + ("sltu", "sgtu", "sleu", "sgeu"): New expanders. + +2004-06-17 Ben Elliston + + * tree-alias-common.c: Add whitespace. + * tree-inline.c: Correct comment about this file's purpose. + * tree-optimize.c: Likewise. + * tree-tailcall.c: Likewise. + + * tree-alias-ander.h: Add standard top-of-file comment. + * tree-alias-common.h: Likewise. + * tree-alias-type.h: Likewise. + +2004-06-16 Daniel Berlin + + * tree-ssa-pre.c (compute_avail): Value number uses as well. + Strip useless type conversions. + Casts have to be treated slightly different than normal unaries. + +2004-06-16 Richard Henderson + + * c-common.def (COMPOUND_STMT): Remove. + * c-common.c (finish_fname_decls): Don't look through it. + * c-typeck.c (c_tree_expr_nonnegative_p): Likewise. + * c-common.h (COMPOUND_BODY): Remove. + (c_common_stmt_codes): Remove COMPOUND_STMT. + * c-dump.c (c_dump_tree): Likewise. + * c-gimplify.c (c_gimplify_stmt): Likewise. + * c-pretty-print.c (pp_c_statement): Likewise. + * tree.h (DECL_SAVED_TREE): Update commentary. + * doc/c-tree.texi (ASM_EXPR): Rename from ASM_STMT. + (CASE_LABEL_EXPR): Rename from CASE_LABEL. + (GOTO_EXPR): Rename from GOTO_STMT. + (GOTO_FAKE_P): Remove. + (COMPOUND_STMT): Remove. + (HANDLER): Update wrt COMPOUND_STMT. + (STMT_EXPR): Likewise. + (LABEL_EXPR): Rename from LABEL_STMT. + (SCOPE_STMT): Remove. + * objc/objc-act.c (objc_build_try_catch_finally_stmt): Don't look + through COMPOUND_STMT. + +2004-06-16 Richard Henderson + + * c-common.h (c_begin_if_stmt, c_begin_while_stmt, + c_finish_while_stmt_cond): Remove decls. + * c-parse.in (if_prefix): Don't save c_begin_if_stmt result. + * c-typeck.c (c_begin_if_stmt): Return void. + (c_begin_else): Tidy. Save stmt_count. + * c-tree.h (c_begin_if_stmt): Update decl. + + * objc/objc-act.c (objc_build_try_enter_fragment, + objc_build_extract_fragment, objc_build_try_epilogue, + objc_build_catch_stmt, objc_build_catch_epilogue, + objc_build_finally_prologue, objc_build_finally_epilogue): Update + for if builder function changes. + +2004-06-16 Ulrich Weigand + + * config/s390/s390.c (struct machine_function): New member + last_restore_gpr. + (s390_frame_info): Add BASE_USED and RETURN_ADDR_USED parameters. + Do not modify machine->save_return_addr_p or regs_ever_live. + Fill in machine->last_restore_gpr. + (s390_optimize_prolog): Use s390_frame_info to compute registers + to save/restore, remove duplicated code. + (s390_arg_frame_offset): Use s390_frame_info to compute frame + size, remove duplicated code. + (s390_emit_prologue): Adapt s390_frame_info call. Update + machine->save_return_addr_p and regs_ever_live. + (s390_emit_epilogue): Use machine->last_restore_gpr instead of + machine->last_save_gpr. + +2004-06-16 Richard Henderson + + * c-parse.in (if_stmt_locus): Remove. + (if_prefix): Increment stmt_count; pass it to c_finish_if_cond. + (select_or_iter_stmt): Move empty if warnings to c-typeck.c. + * c-typeck.c (if_elt): Sort by expected size. Rename locus to + empty_locus. Add stmt_count, saw_else. + (c_begin_if_stmt): Push if_stack here. + (c_finish_if_cond): Rename from c_expand_end_cond. Record stmt_count. + (c_finish_then, c_finish_else): Record empty_locus. + (c_begin_else): Rename from c_expand_start_else. Record stmt_count. + (c_finish_if_stmt): Rename from c_expand_end_cond. Warn for empty + if or else body. + * c-tree.h: Update prototypes. + +2004-06-16 Steven Bosscher + + * tree.h (PHI_CHAIN): New. + * (tree-cfg.c, tree-dfa.c, tree-flow-inline.h, tree-into-ssa.c, + tree-outof-ssa.c, tree-phinodes.c, tree-pretty-print.c, + tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-dse.c, + tree-ssa-live.c, tree-ssa-loop.c, tree-ssa-phiopt.c, tree-ssa-pre.c, + tree-ssa.c, tree-tailcall.c): Use PHI_CHAIN instead of TREE_CHAIN + when traversing a list of PHI_NODEs. + +2004-06-16 Bernardo Innocenti + + PR target/13292 + * config/m68k/m68k.h (TARGET_SWITCHES): Don't remove MASK_68040_ONLY + on -msoft-float. + (TARGET_FLT_EVAL_METHOD): Don't advertise extended precision for + 68040 and soft-float. + * config/m68k/m68k.md (truncdfsf2): Explicitly require TARGET_68881 + in the TARGET_68040_ONLY case. + +2004-06-16 Peter Barada + + * config/m68k/m68k.md (movsi_cfv4): New pattern to allow mov3q. + (movsi_cf): Make named, don't match TARGET_CFV4. + (pushexthisi_const): Use mov3q if possible. + (extendhisi2, cvf4_extendhisi2): Split extendhisi2 pattern + to special case mvz.w for ColdFire V4. + (extendqisi2, cvf4_extendqisi2): Split extendhisi2 pattern + to special case mvz.b for ColdFire V4. + (udivmodhi4, divmodhi4): Use mvz to zero extend arg for + divide. + (iorsi3, xorsi3, andsi3): Use bitfield instructions if possible. + * config/m68k/m68k.c(valid_mov3q_const): New function. + (const_method): SWAP is valid for ColdFire. + (MULL_COST, MULW_COST): Fix costs for ColdFire V3/V4. + * config/m68k/m68k-protos.h (valid_mov3q_const): Prototype here. + +2004-06-16 Richard Henderson + + * c-common.def (CASE_LABEL): Remove. + * c-common.c (c_add_case_label): Use CASE_LABEL, not CASE_LABEL_DECL. + (match_case_to_enum_1): Likewise. + * c-common.h (c_common_stmt_codes): Remove CASE_LABEL. + * c-dump.c (c_dump_tree): Likewise. + * c-gimplify.c (c_gimplify_stmt): Likewise. + * c-pretty-print.c (pp_c_statement): Likewise. + * c-semantics.c (build_case_label): Use CASE_LABEL_EXPR. + * tree.h (CASE_LOW): Update commentary. + +2004-06-16 Richard Henderson + + * c-common.def (ASM_STMT): Remove. + * c-common.h (c_common_stmt_codes): Remove ASM_STMT. + * c-dump.c (c_dump_tree): Likewise. + * c-gimplify.c (c_gimplify_stmt): Likewise. + * c-pretty-print.c (pp_c_statement): Likewise. + * c-typeck.c (build_asm_expr): Use ASM_EXPR. + * tree.h: Fix commentary. + +2004-06-16 Richard Henderson + + * c-common.def (GOTO_STMT, LABEL_STMT): Remove. + * c-common.c (c_add_case_label): Use LABEL_EXPR. + * c-common.h (GOTO_FAKE_P, LABEL_STMT_LABEL): Remove. + (c_common_stmt_codes): Remove GOTO_STMT, LABEL_STMT. + * c-dump.c (c_dump_tree): Likewise. + * c-gimplify.c (c_gimplify_stmt): Likewise. + * c-pretty-print.c (pp_c_statement): Likewise. + * c-parse.in (stmt): Use GOTO_EXPR. + (label): Use LABEL_EXPR. + * c-semantics.c (build_stmt): Set TREE_TYPE to void. + * tree-inline.c (copy_body_r): Don't build empty BLOCKs. + +2004-06-16 J"orn Rennecke + + * cfgcleanup.c (try_simplify_condjump): Update test to make + sure we have a conditional branch around am unconditional branch. + +2004-06-16 Daniel Berlin + + * tree-cfg.c (pass_split_crit_edge): Give it a name and a dump file. + +2004-06-16 Dale Johannesen + + * loop.c (loop_givs_reduce): Avoid miscompilation of + loops entered at bottom. + +2004-06-16 J"orn Rennecke + + * cfglayout.c (fixup_reorder_chain): Handle case where the + destination of E_FALL is EXIT_BLOCK_PTR. + +2004-06-16 Vladimir Makarov + + PR target/15653 + * config/ia64/ia64.c (ia64_dfa_new_cycle): Do not insert nops + after shifts before asm. + +2004-06-16 Zdenek Dvorak + + PR tree-optimization/15993 + * tree-ssa-dom.c (thread_across_edge): Do not thread edge if its + destination is unchanged. + +2004-06-16 Andreas Jaeger + + * doc/install.texi (Configuration): Update description for + --enable-version-specific-runtime-libs. + +2004-06-16 Paolo Bonzini + + * doc/install.texi: boehm-gc now uses automake 1.8.5. + +2004-06-16 Paolo Bonzini + + * toplev.h (rest_of_compilation): Adjust prototype. + +2004-06-16 Paolo Bonzini + + * coverage.c: Remove argument to rest_of_compilation. + * expr.c (execute_expand, set_save_expr_context, pass_expand): New. + * passes.c (rest_of_compilation): Remove argument. + (pass_rest_of_compilation): New. + (rest_of_handle_final, rest_of_handle_delay_slots, + rest_of_handle_stack_regs, rest_of_handle_variable_tracking + rest_of_handle_machine_reorg, rest_of_handle_regrename + rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_gcse2 + rest_of_handle_regmove, rest_of_handle_tracer + rest_of_handle_if_conversion, rest_of_handle_if_after_combine + rest_of_handle_web, rest_of_handle_branch_prob + rest_of_handle_value_profile_transformations, rest_of_handle_cfg + rest_of_handle_addressof, rest_of_handle_jump_bypass + rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2): + Check that the two arguments are actually superfluous. + * tree-optimize.c (register_dump_files): Add properties argument. + Track validity of passes. Only initialize dump files for + tree-based passes. Store the full set of provided passes in + the pass. + (init_tree_optimization_passes): Register pass_expand and + pass_rest_of_compilation. + (execute_one_pass): Do not track the presence of required properties + here. Set in_gimple_form. Do not update current_properties. + (current_properties): Remove. + (set_save_expr_context): Remove. + (tree_rest_of_compilation): Do not set in_gimple_form. Do not + expand to RTL here, and do not call rest_of_compilation. Push + GGC context even before gimplification. + * tree-pass.h (PROP_rtl, PROP_trees): New flags. + (pass_expand, pass_rest_of_compilation): Declare. + +2004-06-15 Jeff Law + + * fold-const.c (swap_tree_comparison): No longer static. + (tree_swap_operands_p): Similarly. Return true if both operands + are SSA_NAMEs and the first operand has a higher version number than + the second operand. + * tree.h (swap_tree_comparison): Prototype. + (tree_swap_operands_p): Prototype. + * tree-ssa-operands.c (get_expr_operands): For commutative + operators and relational comparisons, canonicalize the + order of the operands. + +2004-06-15 Richard Henderson + + * c-common.c (lang_gimplify_stmt): Remove next_p argument. + (if_elt, if_stack, if_stack_space, c_expand_start_cond, c_finish_then, + c_expand_end_cond, c_expand_start_else, c_finish_else, c_begin_if_stmt, + c_begin_while_stmt, c_finish_while_stmt_cond): Move to c-typeck.c. + (finish_fname_decls, fname_decl): Use statement_lists. + (c_expand_expr_stmt): Don't set last_expr_type. + (c_type_hash): Fix indentation. + (c_safe_from_p): Don't follow TREE_CHAIN. + (c_tree_chain_matters_p): Remove. + * c-common.def (SCOPE_STMT): Remove. + (CLEANUP_STMT): Redefine to contain its own body. + * c-common.h (struct stmt_tree_s): Remove x_last_stmt, + x_last_expr_type, x_last_expr_filename, x_scope_stmt_stack. + Add x_cur_stmt_list. + (last_tree, last_expr_type, last_expr_filename, RECHAIN_STMTS): Remove. + (cur_stmt_list): New. + (STATEMENT_LIST_STMT_EXPR): New. + (SCOPE_BEGIN_P, SCOPE_END_P, SCOPE_STMT_BLOCK, SCOPE_NULLIFIED_P, + SCOPE_NO_CLEANUPS_P, SCOPE_PARTIAL_P, NEW_FOR_SCOPE_P): Remove. + (CLEANUP_BODY): New. + (CLEANUP_DECL): Move to operand 2. + (c_common_stmt_codes): Remove SCOPE_STMT. + (COMPOUND_STMT_NO_SCOPE, COMPOUND_STMT_BODY_BLOCK): Remove. + * c-decl.c (c_scope_stmt_stack, current_scope_stmt_stack): Remove. + (c_push_function_context, c_pop_function_context): Don't save it. + (finish_decl): Set TREE_USED on the decl for a cleanup. + Use push_cleanup. + (store_parm_decls): Use statement lists. + (finish_function): Remove compstmt rule workaround. Use statement + lists. Call finish_fname_decls after finalizing the body. + (c_begin_compound_stmt): Move to c-typeck.c. + * c-dump.c (c_dump_tree): Remove SCOPE_STMT. + * c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts): New. + (c_genericize): Invoke them. + (c_gimplify_stmt): Don't look through TREE_CHAIN. Kill SCOPE_STMT. + (c_build_bind_expr): Export. + (gimplify_block, gimplify_cleanup): Remove. + (gimplify_condition): Use gimplify_stmt. + (gimplify_for_stmt): Remove FOR_INIT_STMT chaining hack. + (gimplify_if_stmt): Remove recursion hack. + (c_gimplify_expr): Remove STMT_EXPR handling. + (stmt_expr_last_stmt, gimplify_stmt_expr): Remove. + (is_last_stmt_of_scope): Remove. + * c-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Remove. + * c-mudflap.c (mflang_flush_calls): Use c_begin_compound_stmt, + c_end_compound_stmt. + * c-objc-common.c (build_cdtor): Likewise. + * c-parse.in (primary): Use c_finish_stmt_expr. + (push_scope, pop_scope): Remove. + (c99_block_start, compstmt_start): Use c_begin_compound_stmt. + (c99_block_end, compstmt): Use c_end_compound_stmt. + (c99_block_lineno_labeled_stmt): Likewise. + (compstmt_primary_start): Use c_begin_stmt_expr. + (simple_if, select_or_iter_stmt): Update calls to stmt builders. + (do_stmt_start): Fill in body directly. + (lineno_stmt): Avoid setting lineno on constants. + * c-pretty-print.c (pp_c_statement): Handle STATEMENT_LIST. + Remove SCOPE_STMT. + * c-semantics.c (begin_stmt_tree): Remove. + (push_stmt_list, re_push_stmt_list, pop_stmt_list): New. + (add_stmt): Use statement lists. + (add_scope_stmt, finish_stmt_tree): Remove. + (push_cleanup): New. + * c-tree.h: Move some decls from c-common.h. + * c-typeck.c (c_tree_expr_nonnegative_p): Simplify for statement lists. + (do_case, c_finish_case): Likewise. + (c_finish_then): Take body for then as argument. + (c_finish_else): Similarly. + (c_begin_for_stmt, c_finish_for_stmt_init, c_finish_for_stmt_cond, + c_finish_for_stmt_incr, c_finish_for_stmt): New. + (c_begin_stmt_expr, c_finish_stmt_expr): New. + (c_begin_compound_stmt): Do scope management. + (c_end_compound_stmt): New. + * fold-const.c (tree_expr_nonnegative_p): Fix BIND_EXPR. + * gimplify.c (voidify_wrapper_expr): Accept temporary argument. + Look through exception handling constructs. + (gimplify_bind_expr): Accept temporary argument. + (gimplify_target_expr): Special case BIND_EXPR bodies. + (gimplify_expr): Handle fallback == fb_none like a statement. + * langhooks-def.h (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Kill. + * langhooks.c (lhd_tree_inlining_tree_chain_matters_p): Remove. + * langhooks.h (tree_chain_matters_p): Remove. + * stub-objc.c (objc_clear_super_receiver): New. + * tree-gimple.h (voidify_wrapper_expr): Update decl. + (append_to_statement_list, append_to_statement_list_force): Move + to tree-iterator.h. + * tree-inline.c (expand_call_inline): Update call. + (clone_body): Use statement lists. + (walk_tree): Don't check tree_chain_matters_p. + (copy_tree_r): Likewise. + * tree-iterator.c (alloc_stmt_list): Clear lang bits. + (tsi_link_before, tsi_link_after): Set TREE_SIDE_EFFECTS properly. + * tree-iterator.h (append_to_statement_list, + append_to_statement_list_force): Moved from tree-gimple.h. + * tree-pretty-print.c (dump_generic_node): Clean up TARGET_EXPR dump. + * objc/objc-act.c (build_module_descriptor): Use c_begin_compound_stmt. + (objc_enter_block): Likewise. + (objc_exit_block): Use c_end_compound_stmt. + (objc_build_try_enter_fragment): Add #error and comment for + rewriting for OBJCPLUS. + (objc_build_extract_fragment, objc_build_try_epilogue, + objc_build_catch_stmt, objc_build_finally_prologue, + objc_build_finally_epilogue): Update for C statement builders. + * objc/objc-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): + Remove. + +2004-06-15 Zdenek Dvorak + + * df.c (df_reg_clobber_gen): Removed. + (df_bb_rd_local_compute, df_insn_refs_record, df_rd_local_compute): + Make more effective for hard regs. + * ra-build.c (livethrough_conflicts_bb): Check contains_call. + +2004-06-15 Alexandre Oliva + + * c-pragma.h (c_lex_string_translate): Change type to int. + * c-parse.in: Change all assignments of c_lex_string_translate + to true and false to 1 and 0. + * c-lex.c (c_lex_string_translate): Likewise. + (lex_string): Convert string without translation in the -1 + case. + +2004-06-15 Mark G. Adams + + * convert.h: Add include guards + +2004-06-15 Daniel Berlin + + * tree-flow-inline.h: Document all functions. + +2004-06-15 Daniel Berlin + + * tree-flow-inline.h (stmt_ann): Remove use of is_essa_node. + * tree-dfa.c (create_stmt_ann): Ditto. + * tree-pretty-print.c (dump_generic_node): Remove E* node handling. + * tree-inline.c (estimate_num_insns_1): Ditto. + * tree.c (tree_size): Ditto. + (make_node_stat): Ditto. + (tree_node_structure): Ditto. + (ephi_node_elt_check_failed): Remove. + (is_essa_node): Ditto. + * tree.def (EPHI_NODE): Ditto. + (EEXIT_NODE): Ditto. + (EUSE_NODE): Ditto. + (EKILL_NODE): Ditto. + * tree.h (EREF_NODE_CHECK): Remove. + (EPHI_NODE_ELT_CHECK): Ditto. + (struct tree_eref_common): Ditto. + (struct tree_euse_node): Ditto. + (struct ephi_arg_d): Ditto. + (struct tree_ephi_node): Ditto. + (ephi_node_elt_check_failed): Remove prototype. + (is_essa_node): Ditto. + (enum tree_node_structure_enum): Remove TS_E*_NODE. + (union tree_node): Remove E*_NODE uses. + +2004-06-15 Jerry Quinn + + * alias.c (record_set, record_base_value, canon_rtx, get_addr, + nonlocal_mentioned_p_1, init_alias_analysis): Use REG_P. + * bt-load.c (find_btr_reference, insn_sets_btr_p, note_btr_set): + Likewise. + * builtins.c (expand_builtin_setjmp, expand_builtin_apply, + expand_builtin_mathfn, expand_builtin_strlen, expand_builtin_memcmp, + expand_builtin_strcmp, expand_builtin_strncmp, + expand_builtin_frame_address): Likewise. + * caller-save.c (mark_set_regs, add_stored_regs, mark_referenced_regs, + insert_one_insn): Likewise. + * calls.c (prepare_call_address, precompute_register_parameters, + precompute_arguments, expand_call, emit_library_call_value_1): Likewise. + * cfganal.c (flow_active_insn_p): Likewise. + * combine.c (set_nonzero_bits_and_sign_copies, can_combine_p, + combinable_i3pat, try_combine, find_split_point, COMBINE_RTX_EQUAL_P, + subst, combine_simplify_rtx, simplify_if_then_else, simplify_set, + make_extraction, recog_for_combine, gen_lowpart_for_combine, + simplify_comparison, record_dead_and_set_regs_1, + record_dead_and_set_regs, record_promoted_value, + check_promoted_subreg, get_last_value_validate, get_last_value, + reg_dead_at_p_1, reg_bitfield_target_p, distribute_notes, + unmentioned_reg_p_1): Likewise. + * conflict.c (mark_reg): Likewise. + * cse.c (HASH, COST, COST_IN, approx_reg_cost_1, notreg_cost, + mention_regs, insert_regs, lookup, lookup_for_remove, insert, + merge_equiv_classes, flush_hash_table, invalidate, + remove_invalid_refs, remove_invalid_subreg_refs, rehash_using_reg, + invalidate_for_call, use_related_value, canon_hash, exp_equiv_p, + cse_rtx_varies_p, canon_reg, find_best_addr, fold_rtx, equiv_constant, + record_jump_cond, cse_insn, addr_affects_sp_p, + invalidate_from_clobbers, cse_process_notes, cse_around_loop, + cse_set_around_loop, count_reg_usage, set_live_p, cse_change_cc_mode, + cse_cc_succs, cse_condition_code_reg): Likewise. + * cselib.c (cselib_reg_set_mode, rtx_equal_for_cselib_p, + cselib_lookup, cselib_invalidate_regno, cselib_invalidate_rtx, + cselib_record_set, cselib_record_sets): Likewise. + * dbxout.c (dbxout_symbol_location, dbxout_parms, dbxout_reg_parms, + dbxout_block): Likewise. + * df.c (df_ref_record, df_def_record_1, df_uses_record): Likewise. + * dojump.c (do_jump): Likewise. + * dwarf2out.c (dwarf2out_frame_debug_expr, is_pseudo_reg, + is_based_loc, rtl_for_decl_location): Likewise. + * emit-rtl.c (set_reg_attrs_for_parm, set_decl_rtl, + set_decl_incoming_rtl, mark_user_reg): Likewise. + * explow.c (copy_all_regs, copy_all_regs, memory_address, force_reg, + copy_to_suggested_reg, allocate_dynamic_stack_space, + probe_stack_range, hard_function_value): Likewise. + * expmed.c (store_bit_field, store_fixed_bit_field, + store_split_bit_field, extract_bit_field, extract_fixed_bit_field, + extract_split_bit_field, expand_divmod, emit_store_flag_force): + Likewise. + * expr.c (convert_move, convert_modes, + block_move_libcall_safe_for_call_parm, emit_group_load, use_reg, + use_group_regs, emit_move_insn, emit_move_insn_1, + compress_float_constant, push_block, emit_single_push_insn, + emit_push_insn, get_subtarget, expand_assignment, store_expr, + store_constructor, store_field, force_operand, safe_from_p, + expand_expr_real_1, expand_increment, do_store_flag, do_tablejump): + Likewise. + * final.c (profile_function, final_scan_insn, alter_subreg, + get_mem_expr_from_op, output_asm_operand_names, output_operand, + only_leaf_regs_used, leaf_renumber_regs_insn): Likewise. + * flow.c (verify_wide_reg_1, mark_regs_live_at_end, + find_regno_partial, propagate_one_insn, init_propagate_block_info, + insn_dead_p, libcall_dead_p, mark_set_1, not_reg_cond, + attempt_auto_inc, find_auto_inc, mark_used_regs, + count_or_remove_death_notes_bb): Likewise. + * function.c (find_temp_slot_from_address, update_temp_slot_address, + preserve_temp_slots, put_var_into_stack, fixup_var_refs_insn, + fixup_var_refs_1, fixup_stack_1, optimize_bit_field, flush_addressof, + put_addressof_into_stack, purge_addressof_1, insns_for_mem_walk, + purge_single_hard_subreg_set, instantiate_decl, + instantiate_virtual_regs_1, aggregate_value_p, assign_parms, + promoted_input_arg, setjmp_vars_warning, setjmp_args_warning, + setjmp_protect, setjmp_protect_args, fix_lexical_addr, + expand_function_start, diddle_return_value, clobber_return_register, + expand_function_end, keep_stack_depressed, handle_epilogue_set, + update_epilogue_consts): Likewise. + * genemit.c (gen_exp, gen_insn): Likewise. + * genrecog.c (make_insn_sequence): Likewise. + * global.c (global_conflicts, expand_preferences, mark_reg_store, + mark_reg_conflicts, set_preference, reg_becomes_live, + build_insn_chain, mark_reg_change): Likewise. + * haifa_sched.c (CONST_BASED_ADDRESS_P, find_set_reg_weight): + Likewise. + * ifcvt.c (noce_try_abs, noce_get_condition, noce_process_if_block): + Likewise. + * integrate.c (copy_rtx_and_substitute, try_constants, + subst_constants, mark_stores, allocate_initial_values): Likewise. + * jump.c (reversed_comparison_code_parts, delete_prior_computation, + delete_computation, rtx_renumbered_equal_p, true_regnum, + reg_or_subregno): Likewise. + * lcm.c (reg_dies, reg_becomes_live): Likewise. + * local-alloc.c (validate_equiv_mem_from_store, validate_equiv_mem, + update_equiv_regs, no_equiv, block_alloc, combine_regs, reg_is_set, + wipe_dead_reg, no_conflict_p): Likewise. + * loop-iv.c (simple_reg_p, simple_set_p, kill_sets, + iv_get_reaching_def, iv_analyze_biv, altered_reg_used, mark_altered, + simple_rhs_p, simplify_using_assignment, implies_p): Likewise. + * loop.c (scan_loop, combine_movables, rtx_equal_for_loop_p, + move_movables, note_set_pseudo_multiple_uses, consec_sets_invariant_p, + find_single_use_in_loop, count_one_set, loop_bivs_init_find, + loop_givs_rescan, check_insn_for_bivs, check_insn_for_givs, + valid_initial_value_p, simplify_giv_expr, consec_sets_giv, + loop_regs_update, check_dbra_loop, maybe_eliminate_biv, + maybe_eliminate_biv_1, record_initial, update_reg_last_use, + canonicalize_condition, loop_regs_scan, load_mems, try_copy_prop, + try_swap_copy_prop): Likewise. + * optabs.c (expand_binop, expand_vector_binop, expand_vector_unop, + expand_abs, emit_no_conflict_block, emit_libcall_block, expand_float): + Likewise. + * postreload.c (reload_cse_simplify, reload_cse_simplify_set, + reload_cse_simplify_operands, reload_combine, + reload_combine_note_store, reload_combine_note_use, + reload_cse_move2add, move2add_note_store): Likewise. + * print-rtl.c (print_rtx): Likewise. + * ra-build.c (copy_insn_p, remember_move, init_one_web_common, + contains_pseudo, handle_asm_insn): Likewise. + * ra-debug.c (ra_print_rtx_object, dump_constraints, + dump_static_insn_cost): Likewise. + * ra-rewrite.c (slots_overlap_p, emit_colors, + remove_suspicious_death_notes): Likewise. + * recog.c (validate_replace_rtx_1, find_single_use_1, find_single_use, + register_operand, scratch_operand, nonmemory_operand, + constrain_operands): Likewise. + * reg-stack (check_asm_stack_operands, remove_regno_note, + emit_swap_insn, swap_rtx_condition, subst_stack_regs_pat, + subst_asm_stack_regs): Likewise. + * regclass.c (scan_one_insn, record_reg_classes, copy_cost, + record_address_regs, reg_scan_mark_refs): Likewise. + * regmove.c (discover_flags_reg, replacement_quality, + copy_src_to_dest, reg_is_remote_constant_p, regmove_optimize, + fixup_match_1): Likewise. + * regrename.c (note_sets, clear_dead_regs, build_def_use, kill_value, + kill_set_value, copyprop_hardreg_forward_1): Likewise. + * reload.c (MATCHES, push_secondary_reload, find_reusable_reload, + reload_inner_reg_of_subreg, can_reload_into, push_reload, + combine_reloads, find_dummy_reload, hard_reg_set_here_p, + operands_match_p, decompose, find_reloads, find_reloads_toplev, + find_reloads_address, subst_indexed_address, find_reloads_address_1, + find_reloads_subreg_address, find_replacement, + refers_to_regno_for_reload_p, reg_overlap_mentioned_for_reload_p, + refers_to_mem_for_reload_p, find_equiv_reg, regno_clobbered_p): Likewise. + * reload1.c (replace_pseudos_in, reload, calculate_needs_all_insns, + find_reg, delete_dead_insn, alter_reg, eliminate_regs, + elimination_effects, eliminate_regs_in_insn, scan_paradoxical_subregs, + forget_old_reloads_1, reload_reg_free_for_value_p, choose_reload_regs, + emit_input_reload_insns, emit_output_reload_insns, do_input_reload, + do_output_reload, emit_reload_insns, gen_reload, + delete_address_reloads_1, inc_for_reload): Likewise. + * reorg.c (update_reg_dead_notes, fix_reg_dead_note, + update_reg_unused_notes, fill_slots_from_thread): Likewise. + * resource.c (update_live_status, mark_referenced_resources, + mark_set_resources, mark_target_live_regs): Likewise. + * rtlanal.c (nonzero_address_p, get_jump_table_offset, + global_reg_mentioned_p_1, reg_mentioned_p, reg_referenced_p, + reg_set_p, set_noop_p, find_last_value, refers_to_regno_p, + note_stores, dead_or_set_p, dead_or_set_regno_p, find_regno_note, + find_reg_fusage, find_regno_fusage, replace_regs, regno_use_in, + parms_set, find_first_parameter_load, keep_with_call_p, + hoist_test_store, hoist_update_store, address_cost, nonzero_bits1, + num_sign_bit_copies1): Likewise. + * rtlhooks.c (gen_lowpart_general): Likewise. + * sched-deps.c (deps_may_trap_p, sched_analyze_1, sched_analyze_insn, + sched_analyze): Likewise. + * sched-rgn.c (check_live_1, update_live_1, sets_likely_spilled_1): + Likewise. + * sdbout.c (sdbout_symbol, sdbout_parms, sdbout_reg_parms): Likewise. + * simplify-rtx.c (simplify_replace_rtx, simplify_unary_operation, + simplify_binary_operation, simplify_const_relational_operation, + simplify_subreg): Likewise. + * stmt.c (decl_conflicts_with_clobbers_p, expand_asm_operands, + expand_end_stmt_expr, expand_return, expand_decl, + expand_anon_union_decl): Likewise. + * unroll.c (precondition_loop_p, calculate_giv_inc, copy_loop_body, + find_splittable_regs, find_splittable_givs, find_common_reg_term, + loop_iterations): Likewise. + * var-tracking.c (variable_union, variable_part_different_p, + variable_different_p, count_uses, add_uses, add_stores, + compute_bb_dataflow, set_variable_part, delete_variable_part, + emit_notes_in_bb, vt_get_decl_and_offset, vt_add_function_parameters): + Likewise. + * varasm.c (assemble_variable): Likewise. + +2004-06-15 Chris Demetriou + + * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove + definition. + * config/mips/linux64.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove + #undef and #if 0'd definition. + +2004-06-15 J"orn Rennecke + + * combine.c (distribute_notes): Comment typo fix. + +2004-06-15 Roger Sayle + + * expmed.c (synth_mult): Mask bits of the multiplier to the + machine mode of the multiplication. Don't consider shifts + by more than (or equal to) the width of the operation's mode. + +2004-06-15 Paolo Bonzini + + * doc/install.texi: Yet another update for autoconf + and automake versions. + +2004-06-15 Paolo Bonzini + + * function.h (struct function): Remove cannot_inline field. + (current_function_cannot_inline): Remove. + * passes.c (rest_of_compilation): Reset DECL_DEFER_OUTPUT. + Simplify conditionals to ignore warn_return_type. + * tree-optimize.c (tree_rest_of_compilation): Do not reset + DECL_DEFER_OUTPUT. + * objc/objc-act.c (build_module_descriptor, finish_method_def): + Do not set current_function_cannot_inline. + +2004-06-15 J"orn Rennecke + + * cfglayout.c (fixup_reorder_chain): Handle case where the + destination of E_TAKEN is EXIT_BLOCK_PTR. + +2004-06-15 Diego Novillo + + * tree-ssa-copy.c (cprop_into_successor_phis): Fix typo. + +2004-06-15 Paolo Bonzini + + * fold-const.c (operand_equal_p): Update comment. + +2004-06-15 Kazuhiro Inaoka + + * config/m32r/m32r.h (RETURN_ADDR_RTX): Define. + (INCOMING_RETURN_ADDR_RTX): Define. + * config/m32r/m32r-protos.h (m32r_return_addr): Added. + * config/m32r/m32r.c (m32r_exppand_prologue): Changed for + __builtin_return_address(0). + (m32r_return_addr): Added for __builtin_return_address(0). + (m32r_reload_lr): Ditto. + + * longlong.h: Fix macros for m32r add_ssaaaa and sub_ddmmss. + +2004-06-15 Paolo Bonzini + + * doc/install.texi (Prerequisites): Update libbanshee, + fastjar, libcpp, libjava/libltdl entries to + automake 1.8.5. + +2004-06-15 Eric Botcazou + Olivier Hainque + + * function.c (fixup_var_refs): Also adjust the start of sequence + after fixing up the insns. + +2004-06-15 Giovanni Bajo + + * gccbug.in: Update optimization -> tree-optimization/rtl-optimization. + +2004-06-14 Benjamin Kosnik + + * doc/install.texi (Prerequisites): Update libstdc++ entry to + automake 1.8.5. + +2004-06-14 Eric Christopher + + * config/s390/s390.h (TARGET_SWITCHES): Change -mtpf (-mno-tpf) + to -mtpf-trace (-mno-tpf-trace). + * doc/invoke.texi (S/390 and zSeries Options): Add tpf option + documentation. + +2004-06-14 Eric Botcazou + + * real.c: Fix bit count in head comment. + +2004-06-14 Jeff Law + + * tree-ssa.c (kill_redundant_phi_nodes): More correctly handle + PHIs where the destination or an argument is marked with + SSA_NAME_OCCURS_IN_ABNORMAL_PHI. + +2004-06-14 Jakub Jelinek + + PR middle-end/15945 + * simplify-rtx.c (simplify_binary_operation): Don't optimize out + Inf + -Inf, Inf - Inf, Inf / Inf and 0 * Inf if flag_trapping_math. + +2004-06-14 Zdenek Dvorak + + * opts.sh (var_args): Fix regexp. + +2004-06-14 Jakub Jelinek + + PR target/15178 + * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Define. + +2004-06-14 Paul Brook + + * dwarf2out.c (output_call_frame_info): Support dwarf3 cie entries. + +2004-06-14 Zdenek Dvorak + + * Makefile.in (FLAGS_H): New. + (flags.h): Replace by FLAGS_H. + * c.opt: Document Var, VarExists, Init and Report attributes. + * common.opt: Fill the values of the attributes. + * diagnostic.c (flag_fatal_errors): Do not define. + * except.c (flag_non_call_exceptions): Do not define. + * flags.h: Include options.h. Remove declarations conflicting with + the automatically defined ones. + * opts.c: Remove automatically defined variables. + (handle_option): Perform default initialization. + (common_handle_option): Do not handle options covered by the + default initialization. + * opts.h (struct cl_option): Add flag_var, has_set_value and set_value + fields. + (CL_REPORT): New. + * opts.sh: Generate variable declarations, handle CL_REPORT. + * toplev.c: Remove automatically defined variables. + (f_options): Removed. + (print_switch_values): Use cl_options instead of f_options. + * toplev.h (version_flag): Declaration removed. + +2004-06-14 Ian Lance Taylor + + * config/sparc/sparc.h: Correct comment about availability of + little endian option. + + * config.gcc: Remove sparc64-*-aout*. + * config/sparc/sparc.c (sparc_aout_select_rtx_section): Remove. + * config/sparc/sp64-aout.h: Remove. + * config/sparc/aout.h: Remove. + +2004-06-14 Ulrich Weigand + + * config/s390/s390.c: Include "tree-gimple.h". + (s390_gimplify_va_arg): New function. + (TARGET_GIMPLIFY_VA_ARG_EXPR): Define. + (s390_va_arg): Remove. + * config/s390/s390-protos.h (s390_va_arg): Remove. + * config/s390/s390.h (EXPAND_BUILTIN_VA_ARG): Call abort (). + +2004-06-14 J"orn Rennecke + + * basic-block.h (could_fall_through): Declare. + * cfganal.c (can_fallthru): Succeed if the target is EXIT_BLOCK_PTR. + Fail if the source already has a fallthrough edge to the exit + block pointer. + (could_fall_through): New function. + * cfgbuild.c (make_edges): Check if we already have a fallthrough + edge to the exit block pointer. + * cfglayout.c (fixup_fallthru_exit_predecessor): Check that it is + not called before reload has completed. + Handle special case of first block having a fall-through exit edge. + (cfg_layout_finalize): Don't call it before reload or if we have + rtl epilogues. + (fixup_reorder_chain): A fall through to the exit block does not + require the block to come last. Add sanity checks. + * cfgrtl.c (rtl_split_edge): Add special handling of fall through + edges to the exit block. + * function.c (cfglayout.h): #include. + (thread_prologue_and_epilogue_insns): If we have neither return nor + epilogue, but a fall through to the exit block from mid-function, + force a non-fall-through exit. + * Makefile.in (function.o): Depend on CFGLAYOUT_H. + +2004-06-14 Alan Modra + + * config/rs6000/rs6000.h (ASM_CPU_SPEC): Handle -mpowerpc64 and -mcpu + for power5 and rs64a. Correct condition for default. Correct power3, + 620, 630, 7400, 7450, G4, 970 and G5 -mcpu entries. Add -many. + +2004-06-13 Steven Bosscher + + * gcse.c (hash_scan_set, hash_scan_insn, mark_set, mark_oprs_set): + Revert previous change, don't use CALL_P. + +2004-06-13 Jason Merrill + + * tree.h: Move std_gimplify_va_arg_expr protoype here. + * tree-gimple.h: From here. + +2004-06-13 Daniel Berlin + + Fix PR tree-optimization/15979 + Fix PR tree-optimization/15981 + * tree-ssa-pre.c (insert_aux): Fix faulty logic so that we don't + try to insert values undefined along some path. + +2004-06-13 Daniel Berlin + + * tree-ssa-pre.c (add_to_value): is_gimple_min_invariant things + are available everywhere too. + +2004-06-13 Andrew Pinski + + * fold-const.c (fold_checksum_tree ): Only + look at TREE_VALUES if the EXPR is an ENUMERAL_TYPE. + Only look at TYPE_MIN_VALUE and TYPE_MAX_VALUE if + EXPR is an INTEGERAL_TYPE or a scalar float type. + +2004-06-13 Diego Novillo + + * tree-sra.c (tree_sra): Update documentation. + +2004-06-13 Joseph S. Myers + + * c-typeck.c (comptypes, tagged_types_tu_compatible_p, + function_types_compatible_p, type_lists_compatible_p): Remove + flags parameter. + * c-tree.h (comptypes): Likewise. + (COMPARE_STRICT): Remove. + * c-decl.c, c-lang.c, c-parse.in, c-typeck.c, objc/objc-act.c: All + callers changed. + +2004-06-13 Eric Christopher + + * c-decl.c (diagnose_mismatched_decls): Improve error message. + Remove unused code. + * c-typeck.c (comptypes): Add location in standard we're checking. + +2004-06-13 Kaz Kojima + + * config/sh/libgcc-std.ver: Add __unorddf2 and __unordsf2 with + version 3.3.4. + +2004-06-12 Roger Sayle + + * expmed.c (shift_cost, shiftadd_cost, shiftsub_cost): Additionally + index by machine mode. + (init_expmed): Initialize shift_cost, shiftadd_cost and shiftsub_cost + tables inside the loop over machine modes. + (synth_mult, expand_mult_highpart_optab, expand_mult_highpart, + expand_divmod): Index shift*_cost by the appropriate machine mode. + +2004-06-12 Eric Christopher + + * config/s390/s390.h: Rename TARGET_TPF to TARGET_TPF_PROFILING. + * config/s390/s390.md: Ditto. + * config/s390/s390.c: Ditto. + (s390_frame_info): Conditionalize frame and setup info on + TARGET_TPF_PROFILING. + (s390_arg_frame_offset): Ditto. + +2004-06-12 Roger Sayle + + * fold-const.c (omit_two_operands): New function. + * tree.h (omit_two_operands): Prototype here. + * builtins.c (fold_builtin_unordered_cmp): New function to lower + C99 unordered comparison builtins to the appropriate tree nodes. + (fold_builtin_1): Use fold_builtin_unordered_cmp to lower + BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS, + BUILT_IN_ISLESSEQUAL and BUILT_IN_ISLESSGREATER. Manually lower + BUILT_IN_ISUNORDERED comparisons to an UNORDERED_EXPR tree node. + (simplify_builtin_memcmp, simplify_builtin_strncmp, + simplify_builtin_strncat, simplify_builtin_strspn): Use the new + omit_two_operands function to build the required COMPOUND_EXPRs. + +2004-06-12 Steven Bosscher , + Andreas Jaeger + + * gcse.c (record_set_info): Use predicates like REG_P. + (mems_conflict_for_gcse_p): Likewise. + (load_killed_in_block_p): Likewise. + (hash_expr_1): Likewise. + (insert_set_in_table): Likewise. + (gcse_constant_p): Likewise. + (hash_scan_set): Likewise. + (hash_scan_insn): Likewise. + (canon_list_insert): Likewise. + (record_last_mem_set_info): Likewise. + (record_last_set_info): Likewise. + (compute_hash_table_work): Likewise. + (mark_set): Likewise. + (mark_clobber): Likewise. + (mark_oprs_set): Likewise. + (compute_transp): Likewise. + (find_avail_set): Likewise. + (cprop_insn): Likewise. + (do_local_cprop): Likewise. + (cprop): Likewise. + (find_implicit_sets): Likewise. + (find_bypass_set): Likewise. + (bypass_conditional_jumps): Likewise. + (insert_insn_end_bb): Likewise. + (pre_insert_copy_insn): Likewise. + (compute_transpout): Likewise. + (next_ls_expr): Likewise. + (invalidate_any_buried_refs): Likewise. + (compute_ld_motion_mems): Likewise. + (reg_set_info): Likewise. + (reg_clear_last_set): Likewise. + (find_moveable_store): Likewise. + (compute_store_table): Likewise. + (find_loads): Likewise. + (store_killed_in_insn): Likewise. + (insert_insn_start_bb): Likewise. + (reg_set_between_after_reload_p): Likewise. + (reg_used_between_after_reload_p): Likewise. + (is_jump_table_basic_block): Likewise. + (gcse_after_reload): Likewise. + (hash_scan_set_after_reload): Likewise. + (compute_hash_table_after_reload): Likewise. + +2004-06-12 Steven Bosscher + + * rtl.h (MEM_P, NONJUMP_INSN_P, CALL_INSN_P): New predicates. + (INSN_P): Don't look at the rtx code class, just explicitly + check for one of the tree RTX_INSN codes. + +2004-06-11 Zack Weinberg + + * c-typeck.c (default_function_array_conversion): Use + build_pointer_type not TYPE_POINTER_TO. + +2004-06-11 Zack Weinberg + + * configure.ac: Don't invoke ACX_HEADER_STDBOOL. + * configure, config.in: Regenerate. + * system.h: Unconditionally define bool as unsigned char, + BOOL_BITFIELD as unsigned int. + * domwalk.h: Use BOOL_BITFIELD. + +2004-06-12 Andreas Jaeger + + * libgcc-std.ver: Add __unorddf2 and __unordsf2 with version 3.3.4. + * libgcc-darwin.ver: Likewise. + +2004-06-12 Peter Jakubek + + * reload.c (find_reloads): Force reload for pseudo registers on big + endian machines. + +2004-06-11 Steven Bosscher + + * tree-ssa-dce.c (mark_control_dependent_edges_necessary): + Don't try to mark anything control dependent on the entry or + exit blocks. + +2004-06-11 Daniel Berlin + + Fix Bug 15899 + Fix Bug 15460 + * tree.h (SSA_NAME_VALUE): New macro. + (struct tree_ssa_name): Add value_handle member. + * tree-ssa-pre.c: Replaced. + * tree-flow.h (tree_ann_type): Add CST_ANN, EXPR_ANN. + (struct cst_ann_d): New. + (struct expr_ann_d): New. + (union tree_ann_d): Add cst_ann, expr_ann. + * tree-dfa.c (create_cst_ann): New function. + (create_expr_ann): Ditto. + * tree-flow-inline.h (cst_ann): New function. + (expr_ann): Ditto. + (get_cst_ann): Ditto. + (get_expr_ann): Ditto.. + +2004-06-11 John David Anglin + + * pa.c (pa_hpux_init_libfunc): Add support for unord_optab. + * pa/quadlib.c (enum qfcmp_magic): Define magic values for call to + _U_Qfcmp library function. + (_U_Qfltgt, _U_Qfunle, _U_Qfunlt, _U_Qfunge, _U_Qfungt, _U_Qfuneq, + _U_Qfunord, _U_Qford): Add more TFmode builtin compare functions. + + * pa.c (legitimize_pic_address): Use UNSPEC_DLTIND14R to identify + unspec used for loading address from DLT. + * pa.md: Define constants for the uses of UNSPEC and UNSPEC_VOLATILE. + Change all users of UNSPEC and UNSPEC_VOLATILE to use new constants. + Don't use short code sequence when loading the address of a nonlocal + label. + (nonlocal_goto): New expander. + (indirect_goto): New jump pattern for nonlocal gotos. + (short_jump): Remove extra whitespace. + (builtin_longjmp): Clobber memory and hard frame pointer. Restore + frame pointer via virtual_stack_vars_rtx when we have a nonlocal goto + pattern. + +2004-06-11 Roger Sayle + + * expmed.c (synth_mult): Add an additional MODE argument for the + machine mode of the multiplication. Update recursive calls. Use + mode instead of word_mode for determining operation costs. + (choose_mult_variant): Update calls to synth_mult with "mode". + +2004-06-11 Richard Henderson + + * tree-ssa-operands.c (get_stmt_operands): Clear makes_aliased_loads + and makes_aliased_stores. + +2004-06-11 Andrew Pinski + + * doc/install.text (--enable-shared): Fix typo. + +2004-06-11 Richard Henderson + + * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Remove post_p + argument. Use internal post for call to gimplify_expr. Tidy + rounded type size computation. + (alpha_gimplify_va_arg): Use get_formal_tmp_var and + get_initialized_tmp_var. + +2004-06-11 Andrew Pinski + + * doc/install.texi (--enable-shared): Update libobjc's shared library + status. Remove reference to libf2c. + +2004-06-11 Jason Merrill + + * config/i386/i386.h (EXPAND_BUILTIN_VA_ARG): Just abort. + * config/i386/i386.c (ix86_va_arg): Remove. + * config/rs6000/rs6000.h (EXPAND_BUILTIN_VA_ARG): Just abort. + * config/rs6000/rs6000.c (rs6000_va_arg): Remove. + * config/alpha/alpha.h (EXPAND_BUILTIN_VA_ARG): Just abort. + * config/alpha/alpha.c (alpha_va_arg): Remove. + * config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Just abort. + * config/sparc/sparc.c (sparc_va_arg): Remove. + + * tree-ssa-operands.c (get_stmt_operands): Use a V_MAY_DEF if the + assignment might throw. + * tree-eh.c (tree_could_throw_p): Support non-call exceptions in + expressions. + +2004-06-11 J"orn Rennecke + + PR 15886: + * sh.h (ALLOCATE_INITIAL_VALUE): Use return_address_pointer_rtx. + +2004-06-11 Joseph S. Myers + + * doc/install.texi (Prerequisites): Update documentation of + required versions of autoconf and automake. Remove mention of + libf2c. + +2004-06-11 Jason Merrill + + * config/sparc/sparc.c (sparc_gimplify_va_arg): New fn. + (TARGET_GIMPLIFY_VA_ARG_EXPR): Define. + +2004-06-11 Jerry Quinn + + * typeclass.h: Add GPL plus exception license. Add include + guard. + +2004-06-10 Jason Merrill + + * gimplify.c (gimplify_modify_expr): Don't force a temporary + of an aggregate_value_p type. + +2004-06-10 Jeff Law + + * fold-const.c (fold_inf_compare): Avoid creating non-gimple + code when we are in gimple form. + +2004-06-10 Diego Novillo + + * Makefile.in (tree-ssanames.o): Depend on TREE_FLOW_H. + * tree-flow.h (ssa_names, num_ssa_names, ssa_name): Declare. + (highest_ssa_version): Remove. + * tree-outof-ssa.c (new_temp_expr_table): Replace + highest_ssa_version with num_ssa_names. + (dump_replaceable_exprs): Likewise. + (rewrite_vars_out_of_ssa): Likewise. + * tree-ssa-ccp.c (initialize): Likewise + * tree-ssa-copyrename.c (rename_ssa_copies): Likewise. + * tree-ssa-dce.c (tree_dce_init): Likewise. + * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise. + * tree-ssa-live.c (create_ssa_var_map): Likewise. + (dump_var_map): Likewise. + * tree-ssa.c (verify_ssa): Likewise. + (kill_redundant_phi_nodes): Likewise. + Do not build a local array of SSA_NAMEs. Use the ssa_names table. + * tree-ssanames.c: Include tree-flow.h + (ssa_names): New varray. + (init_ssa_names): Initialize ssa_names. + Reserve the first slot of the ssa_names table. + (make_ssa_name): Push the newly created SSA_NAME into ssa_names. + Assign version numbers using num_ssa_names. + +2004-06-10 Joseph S. Myers + + * doc/sourcebuild.texi (Front End): Add details of more + installation documentation required. + +2004-06-10 Brian Booth + + * doc/tree-ssa.texi: Remove references to VDEF and add descriptions + of V_MAY_DEF and V_MUST_DEF. + * tree-dfa.c (dfa_stats_d): Add num_v_must_defs and rename + num_vdefs to num_v_may_defs. + (compute_immediate_uses_for_stmt): Rename occurences of vdef + to v_may_def. + (redirect_immediate_uses): Ditto. + (dump_dfa_stats): Ditto. Also added code to dump num_v_must_defs. + (collect_dfa_stats_r): Rename occurences of vdef to v_may_def. + Also add code to sum up the number of v_must_defs. + (vdefs_disappeared_p): Replace with... + (v_may_defs_disappeared_p): This. + (v_must_defs_disappeared_p): New function. + (mark_new_vars_to_rename): Rename occurences of vdef to v_may_def. + Also add code to mark new variables found in V_MUST_DEFs for + renameing. + * tree-flow.h (stmt_ann_d): Add v_must_def_ops and replace + vdef_ops to v_may_def_ops. + (get_vdef_ops): Replace with... + (get_v_may_def_ops): This. + * tree-flow-inline.h (get_vdef_ops): Replace with... + (get_v_may_def_ops): This. + (get_v_must_def_ops): New function. + (get_vdef_result_ptr): Replace with... + (get_v_may_def_result_ptr): This. + (get_vdef_op_ptr): Ditto with... + (get_v_may_def_op_ptr); This. + (get_v_must_def_op_ptr): New function. + * tree-into-ssa.c (mark_def_sites): Rename occurences of vdef + to v_may_def. Also add code to mark statements with + V_MUST_DEFs as definition sites. + (rewrite_stmt): Rename occurences of vdef to v_may_def. Also + add code to register new V_MUST_DEFs made by the statement. + * tree-outof-ssa.c (VIRTUAL_PARTITION): Update comments. + (check_replaceable): Rename occurences of vdef to v_may_def. Also + add check for V_MUST_DEFs. + (find_replaceable_in_bb): Ditto. + * tree-pretty-print.c (dump_vops): Rename occurences of vdef + to v_may_def. Also add code to dump V_MUST_DEFs. + * tree-sra.c (mark_all_vdefs): Replace with... + (mark_all_v_may_defs): This. + (mark_all_v_must_defs): New function. + (create_scalar_copies): Replace call to mark_all_vdefs with + calls to mark_all_v_may_defs and mark_all_v_must_defs. + (scalarize_structures): Rename occurences of vdef to v_may_def. + Also add a check for V_MUST_DEFs. + (scalarize_modify_expr): Rename occurences of vdef to v_may_def. + * tree-ssa-alias.c (global_var): Update comment. + (compute_may_aliases): Ditto. + (compute_points_to_and_addr_escape): Rename occurences of vdef + to v_may_def. Also add code to mark variables in V_MUST_DEF + operands as being written to. + (group_aliases): Update comment. + (maybe_create_global_var): Ditto. + * tree-ssa.c (verify_ssa): Rename occurences of vdef to v_may_def. + Also add a check for V_MUST_DEFs on GIMPLE registers. + (replace_immediate_uses): Rename occurences of vdef to v_may_def. + * tree-ssa-ccp.c (visit_stmt): Rename occurences of vdef + to v_may_def. Also add code to mark all V_MUST_DEF operands + VARYING. + (initialize): Ditto. + (set_rhs): Rename occurences of vdef to v_may_def. Also add + code to update SSA_NAMEs in V_MUST_DEFs. + * tree-ssa-copy.c (cprop_into_stmt): Rename occurences of vdef + to v_may_def. + * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Rename + occurences of vdef to v_may_def. Also add code to mark statements + with V_MUST_DEFs as necessary. + (propagate_necessity): Rename occurences of vdef to v_may_def. + * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Rename + occurences of vdef to v_may_def. Also add code to mark operands + in V_MUST_DEFs for renaming. + (eliminate_redundant_computations): Rename occurences of vdef + to v_may_def. + (record_equivalences_from_stmt): Rename occurences of vdef + to v_may_def. Also add code to record VUSEs for V_MUST_DEFs. + (optimize_stmt): Remove unnesessary variable vdefs. Update + comment. + (register_definitions_for_stmt): Rename occurences of vdef + to v_may_def. Also add code to register definitions made with + V_MUST_DEFs. + * tree-ssa-dse.c (fix_stmt_vdefs): Replace with... + (fix_stmt_v_may_defs): This. + (fix_phi_uses): Rename occurences of vdef to v_may_def. + (dse_optimize_stmt): Ditto. + * tree-ssa-live.c (create_ssa_var_map): Rename occurences of vdef + to v_may_def. Also add code to mark V_MUST_DEF operands as being + used in virtual operators. + * tree-ssa-loop.c (mark_defs_for_rewrite): Rename occurences of + vdef to v_may_def. Also add code to mark V_MUST_DEF operands for + renaming. + * tree-ssa-operands.c (opf_kill_def): New flag for killing + definitions. + (build_vdefs): Renamed to... + (build_v_may_defs): This. + (build_v_must_defs): New variable. + (voperands_d): Add v_must_def_ops and replace vdef_ops with + v_may_def_ops. + (append_vdef): Replace with... + (append_v_may_def): This. + (append_v_must_def): New function. + (NUM_FREE): Increment for V_MUST_DEF + (optype_freelist): Increment its size for V_MUST_DEF + (allocate_vdef_optype): Replace with... + (allocate_v_may_def_optype): This. + (allocate_v_must_def_optype): New function. + (free_vdefs): Replace with... + (free_v_may_defs): This. + (free_v_must_defs): New function. + (remove_vdefs): Replace with... + (remove_v_may_defs): This. + (remove_v_must_defs): New function. + (init_ssa_operands): Rename occurences of vdef to v_may_def. Also + add code to initialize build_v_must_defs. + (finalize_ssa_vdefs): Replace with... + (finalize_ssa_v_may_defs): This. + (finalize_ssa_vuses): Rename occurences of vdef to v_may_def. + (finalize_ssa_v_must_defs): New function. + (finalize_ssa_stmt_operands): Replace call to finalize_ssa_vdefs + with calls to finalize_ssa_v_may_defs and finalize_ssa_v_must_defs. + (verify_start_operands): Rename occurences of vdef to v_may_def. + Also add check for build_v_must_defs. + (get_stmt_operands): Rename occurences of vdef to v_may_def. + Also add code to handle V_MUST_DEFs and to use opf_kill_def for + killing definitions. + (get_expr_operands): Update comment and use opf_kill_def for + killing definitions. + (add_stmt_operand): Replace code that appends VDEFs with code + that appends V_MUST_DEFs when opf_kill_def is set and V_MAY_DEFs + otherwise. + (add_call_clobber_ops): Update comments. + * tree-ssa-operands.h (vdef_optype_d): Replace with... + (v_may_def_optype_d): This. + (v_must_def_optype_d): New structure. + (VDEF_OPS): Replace with... + (V_MAY_DEF_OPS): This. + (STMT_VDEF_OPS): Same with... + (STMT_V_MAY_DEF_OPS): This. + (NUM_VDEFS): And... + (NUM_V_MAY_DEFS): This. + (VDEF_RESULT_PTR): As well as... + (V_MAY_DEF_RESULT_PTR): This. + (VDEF_RESULT): Same goes for... + (V_MAY_DEF_RESULT): This. + (VDEF_OP_PTR): And... + (V_MAY_DEF_OP_PTR): This. + (VDEF_OP): And... + (V_MAY_DEF_OP): This. + (V_MUST_DEF_OPS): New macro. + (STMT_V_MUST_DEF_OPS): Ditto. + (NUM_V_MUST_DEFS): Ditto. + (V_MUST_DEF_OP_PTR): Ditto. + (V_MUST_DEF_OP): Ditto. + (remove_vdefs): Replace signature with... + (remove_v_may_defs): This. + (remove_v_must_defs): New function signature. + * tree-ssa-pre.c (subst_phis): Replace call to remove_vdefs + with calls to remove_v_may_defs and remove_v_must_defs. + (process_left_occs_and_kills): Rename occurences of vdef to v_may_def. + Also add code that marks left occurences of operands in V_MUST_DEFs. + * tree-tailcall.c (find_tail_calls): Rename occurences of vdef + to v_may_def. Also add check for V_MUST_DEFs. + (eliminate_tail_call):Rename occurences of vdef to v_may_def. + +2004-06-10 Vladimir Makarov + + PR target/15653 + * haifa-sched.c (schedule_block): Finish cycle after issuing asm + insn. + +2004-06-10 Volker Reichelt + + PR web/15263 + * doc/install.texi: Remove superfluous linebreak. + +2004-06-10 Roger Sayle + + * builtins.c (expand_builtin): Fall back to library function call for + conj, conjf, conjl, creal, crealf, creall, cimag, cimagf and cimagl. + (fold_builtin_1): Lower built-ins BUILT_IN_CONJ{,F,L} to CONJ_EXPR, + BUILT_IN_CREAL{,F,L} to REALPART_EXPR, and BUILT_IN_CIMAG{,F,L} to + IMAGPART_EXPR respectively. + +2004-06-10 J"orn Rennecke + + * sh.c (dump_table): New argument start. Changed caller. + (fixup_mova): New function. + (find_barrier): Use it. + (sh_reorg): Likewise. Check for CODE_FOR_casesi_worker_2. + If the label a mova refers to is above the mova itself, change + the mova into a load. + * sh.md (*casesi_worker): Rename to: + (casesi_worker_1). + (casesi_worker_2): New insn. + +2004-06-10 Jason Merrill + + * target.h (struct gcc_target): Change gimplify_va_arg_expr + hook signature. + * tree-gimple.h: Adjust. + * config/alpha/alpha.c (alpha_gimplify_va_arg): Adjust. + * config/i386/i386.c (ix86_gimplify_va_arg): Adjust. + Use fold_convert. + * config/ia64/ia64.c (ia64_gimplify_va_arg): Adjust. + * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust. + Use COMPLEX_EXPR for complex numbers. Use fold_convert. + * builtins.c (std_gimplify_va_arg_expr): Adjust. Use fold_convert. + (gimplify_va_arg_expr): Return GS_ERROR in error case. + Gimplify valist rather than calling stabilize_va_list. + +2004-06-10 Zdenek Dvorak + + * Makefile.in (df.o): Remove fibheap dependency. + * df.h: Do not include sbitmap.h. + (struct ref): New field "data". + (DF_REF_DATA): New accessor macro. + (struct df): Field "dom" removed. + (df_analyze_subcfg): New function. + (transfer_function_sbitmap, transfer_function_bitmap): Replaced by ... + (transfer_function): ... new type. + (iterative_dataflow_sbitmap, iterative_dataflow_bitmap): Replaced by ... + (iterative_dataflow): ... new function. + (enum set_representation, struct dataflow): New. + * df.c: Do not include fibheap.h. + + (df_reg_def_chain_clean, df_reg_use_chain_clean, + (df_bb_table_realloc, df_analyse_subcfg, free_reg_ref_chain, + prune_to_subcfg, df_bb_modify): New functions. + (df_bitmaps_alloc, df_reg_def_chain_create, df_reg_use_chain_create, + df_refs_update, df_reg_table_realloc, df_ref_create, + df_bb_reg_def_chain_create, df_bb_reg_use_chain_create, + df_bb_rd_local_compute, df_bb_ru_local_compute, df_bb_lr_local_compute, + df_analyse_1, df_insn_modify): Support analysing only a part of the cfg. + + (dataflow_set_a_op_b, dataflow_set_copy): New functions. + (df_rd_transfer_function, df_ru_transfer_function, + df_lr_transfer_function): Type of bitmaps changed to void *. + (hybrid_search_bitmap, hybrid_search_sbitmap): Merge into ... + (hybrid_search): ... new function. + (iterative_dataflow_bitmap, iterative_dataflow_sbitmap): Merge into ... + (iterative_dataflow): ... new function. Avoid use of fibheaps for + a worklist. Do not process basic blocks unnecessarily. + +2004-06-10 Roger Sayle + + * fold-const.c (fold_abs_const): Make extern. + * tree.h (fold_abs_const): Prototype here. + * builtins.c (fold_builtin_fabs): New function to transform + fabs, fabsf and fabsl builtins into ABS_EXPR tree nodes. + (fold_builtin_abs): New function to transform abs, labs, llabs + and imaxabs builtins into ABS_EXPR tree nodes. + (expand_builtin): Fall back to a function call for abs, labs, + llabs and imaxabs builtins that survive constant folding. + (fold_builtin_1): Call fold_builtin_fabs for FABS, FABSF and + FABSL, and fold_builtin_abs for ABS, LABS, LLABS and IMAXABS. + +2004-06-10 Jakub Jelinek + + * config/ia64/unwind-ia64.c (uw_frame_state_for): Don't assume a + leaf function without unwind info at RP 0. + +2004-06-10 Jakub Jelinek + + PR c++/14791 + * tree.h (enum tree_index): Add TI_FILEPTR_TYPE. + (fileptr_type_node): Define. + * tree.c (build_common_tree_nodes_2): Initialize + fileptr_type_node to ptr_type_node. + * c-common.c (c_common_nodes_and_builtins): For C++, make + fileptr_type_node a distinct type copy. + * builtin-types.def (BT_FILEPTR, BT_FN_INT_CONST_STRING_FILEPTR, + BT_FN_INT_INT_FILEPTR, BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG, + BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR, + BT_FN_INT_FILEPTR_CONST_STRING_VAR): Add. + (BT_FN_INT_CONST_STRING_PTR, BT_FN_INT_INT_PTR, + BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR, BT_FN_INT_PTR_CONST_STRING_VAR, + BT_FN_INT_PTR_CONST_STRING_VALIST_ARG): Remove. + * builtins.def (BUILT_IN_FPRINTF, BUILT_IN_FPRINTF_UNLOCKED, + BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED, BUILT_IN_FPUTS, + BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FSCANF, BUILT_IN_FWRITE, + BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_VFPRINTF, BUILT_IN_VFSCANF): Use + the above *FILEPTR* types instead of *PTR*. + +2004-06-09 Daniel Berlin + + * tree-ssa.c (verify_ssa): Verify that vdefs/makes_aliased_stores + match. + +2004-06-09 Roger Sayle + + * fold-const.c (fold_not_const): New function. + (fold) : Don't bother testing wins. + (fold) : Call fold_not_const. + (nondestructive_fold_unary_to_constant) : Likewise. + +2004-06-09 Richard Henderson + + PR middle-end/15228 + * function.c (assign_parms): Always set_mem_align with the computed + FUNCTION_ARG_BOUNDARY. Don't clear stack_parm if !STRICT_ALIGNMENT. + +2004-06-09 Richard Henderson + + PR opt/15108 + * tree-tailcall.c (find_tail_calls): Don't check early for + tail_recursion failure. + +2004-06-09 Diego Novillo + + Move SSA_NAME annotations into tree_ssa_name. + + * tree-dfa.c (create_ssa_name_ann): Remove. + * tree-flow-inline.h (ssa_name_ann, get_ssa_name_ann): Remove. + * tree-flow.h (enum tree_ann_type): Remove SSA_NAME_ANN. + (struct ssa_name_ann_d): Remove. + (union tree_ann_d): Update. + (ssa_name_ann_t): Remove. + * tree-ssa-alias.c: (get_ptr_info): New local function. + Replace references to ssa_name_ann_t with struct ptr_info_def. + * tree-ssa-operands.c (get_expr_operands): Likewise. + * tree.h (SSA_NAME_PTR_INFO): Define. + (struct ptr_info_def): Declare. + (struct tree_ssa_name): Add field 'ptr_info'. + +2004-06-09 Danny Smith + + * config/i386/winnt.c (i386_pe_output_labelref): Correct + misplaced ')'. + +2004-06-09 Steven Bosscher + + * config/i386/k6.md: Rewrite using the DFA model. + * config/i386/i386.c (ix86_adjust_cost): Don't increase the + cost of load-operation insns for the K6. + (ia32_use_dfa_pipeline_interface): Add TARGET_K6. + (ia32_multipass_dfa_lookahead): Likewise. + +2004-06-09 Richard Henderson + + * config/alpha/alpha.c (alpha_gimplify_va_arg_1, + alpha_gimplify_va_arg, TARGET_GIMPLIFY_VA_ARG_EXPR): New. + +2004-06-09 Richard Henderson + + * expmed.c (emit_store_flag): Cope with FLOAT_STORE_FLAG_VALUE. + +2004-06-09 Geoffrey Keating + + * Makefile.in (CPPLIB_H): Put files in order of inclusion. + (CPP_ID_DATA_H): New. + (gtype-desc.o): Update dependencies. + (GTFILES): Use CPP_ID_DATA_H. + +2004-06-09 Mark Mitchell + + Revert: + PR c++/15815 + 2004-06-07 Mark Mitchell + * doc/extend.texi: Deprecate #pragma interface and #pragma + implementation. + +2004-06-09 David S. Miller + + * config/sparc/sparc.h (MOVE_RATIO): New definition. + +2004-06-09 Richard Henderson + + * basic-block.h (struct edge_def): Add goto_locus. + * tree-cfg.c (make_goto_expr_edges): Set it. + (disband_implicit_edges): Use it. + * tree-pretty-print.c (dump_implicit_edges): Print it. + +2004-06-08 Anil Paranjpe + + * h8300.md (ldm_h8300s_4): Fix condition for expander. + +2004-06-08 Jason Merrill + + Gimplify VA_ARG_EXPR into simpler forms. + * target.h: Add gimplify_va_arg_expr hook. + * target-def.h: Add TARGET_GIMPLIFY_VA_ARG_EXPR. + * fold-const.c (build_fold_addr_expr) + (build_fold_addr_expr_with_type): Move from gimplify.c. + * tree.h: Declare them. + * gimplify.c (gimplify_and_add): New fn. + (build_addr_expr, build_addr_expr_with_type): Move to fold-const.c. + (gimplify_array_ref_to_plus, gimplify_modify_expr) + (gimplify_expr): Use build_fold_*. + (copy_if_shared_r): Only mark VA_ARG_EXPR volatile if we + don't know how to gimplify it. + * builtins.c (std_gimplify_va_arg_expr): New fn. + (dummy_object): New static fn. + (gimplify_va_arg_expr): New fn. + (stabilize_va_list): Use build_fold_*. + * tree-gimple.h: Declare new fns. + * config/i386/i386.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define. + (ix86_gimplify_va_arg): New fn. + * config/ia64/ia64.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define. + (ia64_gimplify_va_arg): New fn. + * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): New fn. + (TARGET_GIMPLIFY_VA_ARG_EXPR): Define. + * alias.c (get_varargs_alias_set): Just return 0 for now. + + * c-objc-common.c (c_tree_printer): Improve handling of %T. + +2004-06-09 Andrew Pinski + + * tree-complex.c (expand_complex_comparison): Use fold_convert instead + of convert. + * tree-inline.c (setup_one_parameter): Likewise. + * tree-sra.c (csc_build_component_ref): Likewise. + * tree-ssa-ccp.c (ccp_fold): Likewise. + * tree-ssa-copy.c (cprop_operand): Likewise. + * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise. + * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise. + +2004-06-09 J"orn Rennecke + + PR rtl-optimization/15521: + * sched-int.h (in_post_call_group_p): Change type to enum. + * sched-deps.c (sched_analyze_insn): + (sched_analyze): When in_post_call_group_p is post_call_initial, + don't add a dependency, but still set SCHED_GROUP_P and CANT_MOVE, + and also reset in_post_call_group_p to post_call. + (sched_analyze): When the previous basic block ended in a CALL_INSN, + initialize in_post_call_group_p as post_call_initial. + (init_deps): initialize in_post_call_group_p to not_post_call. + +2004-06-09 Arnaud Charlet + + PR ada/6637 + * doc/install.texi: List ada, libada as options to --enable-shared + +2004-06-09 Paolo Bonzini + + * aclocal.m4 (gcc_AC_PROG_LN): Remove. + (gcc_AC_CHECK_DECLS): Use AH_TEMPLATE to generate + config.in entries. + * configure.ac: Call ACX_PROG_LN, falling back to $LN_S + if hard links are not available. + * configure: Regenerate. + * config.in: Regenerate. + +2004-06-08 Per Bothner + + * configure.ac: New --enable-mapped-location sets USE_MAPPED_LOCATION. + +2004-06-08 Richard Kenner + + * toplev.c (floor_log2_wide): Correct casts for 64-bit hosts. + Correct formatting. + +2004-06-08 James E Wilson + + PR target/15790 + * config/i386/i386-coff.h (ASM_OUTPUT_ALIGN): Define. + +2004-06-08 Andrew Pinski + + * fold-const.c (fold_convert): Treat OFFSET_TYPE like + POINTER_TYPE and INTEGER_TYPE. + +2004-06-08 Bernardo Innocenti + + * modulo-sched.c: Compile only when INSN_SCHEDULING is + defined. + +2004-06-08 Jeff Law + + * doc/contrib.texi: Add entries for Stefan Olsson and + Ola Ronnerup. + +2004-06-08 DJ Delorie + + * toplev.c (floor_log2_wide): Replace loop with faster bit + operations. + (exact_log2_wide): Define in terms of the above. + * toplev.h (floor_log2): Use _builtin_clz family of builtins if + available. + +2004-06-08 Andrew Pinski + + * config/rs6000/rs6000.c (print_operand, ): + Make sure that we are in INDIRECT mode when getting the + stub name. + +2004-06-08 Anil Paranjpe + + * h8300.md (extendqisi2_h8300): Add constraints. + (ldm_h8300s_4_normal): Fix typo. + +2004-06-08 Richard Henderson + + * gimple-low.c (struct lower_data): Replace the_return_label and + one_return_stmt with return_statements. + (lower_function_body): Process the entire list of return_statements. + (lower_return_expr): Check source value before unifying return_exprs. + * gimplify.c (gimplify_return_expr): Force the use of a temporary + for !aggregate_value_p. + * tree-gimple.c: Update RETURN_EXPR grammer. + +2004-06-08 Vladimir Makarov + + PR target/15598 + * config/ia64/ia64.c (bundling): Add missed TYPE_A. + +2004-06-08 Zdenek Dvorak + + PR rtl-optimization/15717 + * config/i386/i386.c (legitimate_constant_p): Do not allow + x - symbol_ref. + +2004-06-08 Alexandre Oliva + + * gimplify.c (copy_if_shared_r): Revert: + 2004-05-21 Richard Henderson + * gimplify.c [...] Don't mark VA_ARG_EXPRs volatile here. + +2004-06-07 Roger Sayle + + * expmed.c (add_cost, neg_cost, sdiv_pow2_cheap, smod_pow2_cheap): + Make arrays indexed by machine mode. Rename negate_cost to neg_cost. + (init_expmed): Initialize these cost arrays as appropriate. + (store_bit_field, extract_bit_field): Correct whitespace. + (synth_mult, choose_mult_variant, expand_mult, expand_mult_highpart, + expand_mult_highpart_optab, expand_divmod): Update uses of add_cost, + neg_cost, sdiv_pow2_cheap, smod_pow2_cheap to index with mode, + word_mode or compute_mode as appropriate. + +2004-06-07 Eric Botcazou + + PR target/15783 + * config/sparc/sparc.c (function_arg_union_value): Add 'mode' + parameter. Enumerate the registers inside the PARALLEL. + (function_arg): Adjust call to function_arg_union_value. + (function_value): Likewise. + + * config/sparc/sparc.c (sparc_function_epilogue): Properly format. + +2004-06-07 Roger Sayle + + * real.c (real_copysign): New function to implement libm's copysign. + * real.h (real_copysign): Prototype here. + * fold-const.c (tree_expr_nonnegative_p): The result of sqrt, sqrtf + and sqrtl can be negative, as sqrt(-0.0) = -0.0. Correct whitespace. + * builtins.c (fold_builtin_isascii, fold_builtin_toascii, + fold_builtin_isdigit): Add function prototypes. + (fold_builtin_copysign): New function to fold copysign, copysignf + and copysignl. Optimize copysign(x,x) as x. Evaluate copysign of + constant arguments at compile-time using real_copysign. Fold + copysign(X,Y) as fabs(X) if Y is always non-negative. + (fold_builtin_1): Correct minor whitespace/style issues. Call + fold_builtin_copysign for BUILT_IN_COPYSIGN{,F,L}. + +2004-06-07 J"orn Rennecke + + * tree.c (iterative_hash_expr): Use real_hash. + +2004-06-07 Joseph S. Myers + + PR c/14765 + * c-parse.in (compstmt_primary_start): Set last_expr_type to + NULL_TREE. + +2004-06-07 Mark Mitchell + + PR c++/15815 + * doc/extend.texi: Deprecate #pragma interface and #pragma + implementation. + +2004-06-07 Alexandre Oliva + + PR middle-end/15666 + * c-decl.c (finish_decl): Use change_decl_assembler_name for the + builtin decl as well. + +2004-06-07 Roger Sayle + + PR c/14649 + * c-typeck.c (require_constant_value, require_constant_elements): + Move declarations to the top of the file. + (build_function_call): If we require a constant value, fold with + fold_initializer. If the result is a constant, and the function + wasn't called using __builtin_foo, issue a pedantic warning. + (build_unary_op): If we require a constant value, fold tree with + fold_initializer. + (build_binary_op): Use require_constant_value to determine whether + to call fold or fold_initializer. + +2004-06-07 Richard Henderson + + * gimple-low.c (struct lower_data): Add the_return_label and + one_return_stmt. + (lower_function_body): Initialize and use them. + (lower_return_expr): New. + (lower_stmt): Call it. + * gimplify.c (gimplify_return_expr): Force the argument to be either + null or a result_decl. + * tree-gimple.c: Update gimple grammer to match. + * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Deny + coalescing of result_decls. + +2004-06-07 Richard Henderson + + PR rtl-opt/15193 + * expmed.c (extract_bit_field): Fix vector_extract return. + + * config/i386/i386.md (negv4sf2): New pattern. + +2004-06-07 Mark Mitchell + + PR c++/15337 + * c-common.c (c_sizeof_or_alignof_type): Use more detailed error + message. + +2004-06-06 Paolo Bonzini + + * config.in: Regenerate. + +2004-06-06 Steven Bosscher + + * tree-cfg.c (tree_verify_flow_info): Make sure that labels in + SWITCH_LABELS are always sorted. + +2004-06-06 Steven Bosscher + + * hooks.c (hook_int_void_1): New generic hook. + * hooks.h (hook_int_void_1): Add prototype. + * config/c4x/c4x.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): + Define to hook_int_void_1. + * config/c4x/c4x.md: Replace dummies for the old pipeline model + with dummies for the new one. + +2004-06-06 Roger Sayle + + * tree.h (lvalue_or_else): Delete function prototype. + * c-typeck.c (lvalue_or_else): Make static. Add static prototype. + +2004-06-06 Stephane Carrez + + PR target/14542 + * config/m68hc11/m68hc11.md (move peephole2): Emit a use note to avoid + a live change of a register after peephole replacement. + +2004-06-06 Joseph S. Myers + + PR c/13519 + * c-typeck.c (composite_type, common_pointer_type): New functions. + (common_type): Split parts into composite_type and + common_pointer_type. Ensure that arithmetic operations return + unqualified types without attributes. Don't make composite type + of signed enum and compatible integer be unsigned. + (build_conditional_expr, build_binary_op): Use + common_pointer_type. + * c-decl.c (merge_decls): Use composite_type. + * c-tree.h (composite_type): Declare. + +2004-06-06 Stephane Carrez + + PR target/14457 + * config/m68hc11/m68hc11.c (splitable_operand): New predicate. + * config/m68hc11/m68hc11-protos.h (splitable_operand): Declare. + * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register it. + (inhibit_libc): Must define. + * config/m68hc11/m68hc11.md ("movhi_const0"): Use splitable_operand. + ("*andhi3_gen", "iorhi3", "*iorhi3_gen"): Likewise. + ("xorhi3"): Likewise. + +2004-06-06 Eric Botcazou + + * cgraphunit.c (cgraph_decide_inlining): Adjust dump lines in + always_inline pass. + +2004-06-05 David S. Miller + + * config/sparc/linux.h (TARGET_C99_FUNCTIONS): Set. + * config/sparc/linux64.h (TARGET_C99_FUNCTIONS): Likewise. + +2004-06-05 Bernardo Innocenti + + * regclass.c (init_reg_sets): Check for missing registers in target + initializer macros FIXED_REGISTERS and CALL_USED_REGISTERS. + +2004-06-05 Zack Weinberg + + * Makefile.in (MKDEPS_H): New shorthand. + (c-opts.o): Update dependencies. + * c-opts.c: Include mkdeps.h. + (handle_deferred_opts): Use cpp_get_deps and deps_add_target, + not cpp_add_dependency_target. + +2004-06-05 Steven Bosscher + + * config/v850/v850.c (v850_use_dfa_pipeline_interface): New. + * config/v850/v850.md: Convert to DFA scheduler description. + +2004-06-05 Tobias Schlueter + + PR fortran/15478 + * doc/install.texi: Document GMP as prerequisite. Document + --with-gmp and --with-gmp-dir configure options. + * fortran/gfortran.texi: Remove section "Compiling and testing", + remove TOC reference to it. + +2004-06-05 Graham Stott + + * combine.c(simplify_shift_const): Check shift amount is a + CONST_INT. + +2004-06-05 Danny Smith + + * toplev.c (init_asm_output): Add explicit 'b' to mode when + opening asm_out_file. + * c-pch.c (c_common_write_pch): Remove unnecessary fflush before + reading asm_out_file. Replace fflush after reading asm_out_file + with fseek. + * hosthooks-def.h (HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY): Define + default and add to HOST_HOOKS_INITIALIZER. + * hosthooks.h (gt_pch_alloc_granularity): Declare hook function. + * ggc-common.c (default_gt_pch_alloc_granularity): New function. + (gt_pch_save): Use host_hooks.gt_pch_alloc_granularity + to set mmi.offset padding. + * config.gcc (i[34567]86-*-mingw32*): Set target_gtfiles to + $(srcdir)/config/i386/winnt.c. + (i[34567]86-*-pe | i[34567]86-*-cygwin*): Likewise. + (i[34567]86-*-uwin*): Likewise. + *i[34567]86-*-interix3*): Likewise. + * config.host (i[34567]86-*-mingw32*): Set out_host_hook_obj. + * config/i386/host-mingw32.c: New file. + * config/i386/x-mingw32: Add rule for host-mingw32.o. + * config/i386/winnt.c: (struct extern_list) Tag as GTY. + (extern_head): Likewise. + (struct export_list) Likewise. + (export_head): Likewise. + (i386_pe_record_external_function): Use ggc_alloc. + (i386_pe_record_exported_symbol): Likewise. + Include "gt-winnt.h" at end. + * doc/hostconfig.texi: Document + HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY. + +2004-06-04 Bernardo Innocenti + + * config/m68k/m68k.h: Remove comments copied over from tm.texi. + Rename 68000 and 68k to m68k for consistency in comments. Remove + trailing whitespace before EOLs and before TABs. + (MAX_CODE_ALIGN): Remove unused macro. + (CALL_USED_REGISTERS): Reformat and add comments. + +2004-06-04 Frank Ch. Eigler + + * gcc.c (MFLIB_SPEC): Remove library references, to require users + to enumerate -lmudflap* and dependencies when linking. + +2004-06-04 Paolo Bonzini + + PR target/15822 + * dojump.c (do_jump): Fix uninitialized variable tcode1. + +2004-06-04 Jerry Quinn + + * Makefile.in (insn-conditions.o): Back out removal of reload.h. + * genconditions.c (write_header): Back out removal of reload.h. + +2004-06-04 Jan Hubicka + + Re-apply hopefully fixed patch: + * i386.md (UNSPECV_EH_RETURN): Kill. + (eh_return): Use jump_insn. + (eh_return_si, eh_return_di): Change pattern to jump instruction. + +2004-06-04 Jeff Law + + * cfgrtl.c (try_redirect_by_replacing_jump): Fix return value. + +2004-06-04 Steven Bosscher + + * except.c (for_each_eh_region): New function. + * except.h (for_each_eh_region): Add a prototype for it. + * tree-cfg.c (update_eh_labels): New function, callback for + for_each_eh_region. + (label_for_bb): Make global static, unfortunately. + (cleanup_dead_labels): Also update label references for + exception regions. + +2004-06-03 Chris Demetriou + + * config/mips/mips.c (struct irix_section_align_entry): Fix + GTY marker. + +2004-06-03 Geoffrey Keating + + * toplev.c (check_global_declarations): Don't ask for + DECL_ASSEMBLER_NAME unless the function really is declared + static and not defined. + +2004-06-03 Matt Austern + + PR c++/15428 + * default.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): New name + for TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, with reversed sense. + * config/darwin.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Likewise. + * doc/tm.texi (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Rewrite + documentation to reflect the new macro name and to clarify its + meaning. + +2004-06-03 Steven Bosscher + + * rtl.def (VAR_LOCATION): Make RTX_EXTRA. + +2004-06-03 Andrew Pinski + + * config/darwin.c (machopic_indirect_data_reference): Copy + the SYMBOL_REF_DECL from the original RTX for the new + non-lazy pointer RTX. + +2004-06-03 Mark G. Adams + + * tree.h: Remove include of version.h + * c-cppbuiltin.c: Include version.h + * diagnostic.c: Include version.h + * dwarf2out.c: Include version.h + * toplev.c: Include version.h + * vmsdbgout.c: Include version.h + * Makefile.in: Remove dependency on version.h from TREE_H, and + add dependencies to required .o targets + +2004-06-03 Jerry Quinn + + * Makefile.in (RA_H, RESOURCE_H, SCHED_INT_H, CFGLAYOUT_H, + CFGLOOP_H, DF_H, DDG_H, TREE_SSA_LIVE_H): New. + (TARGET_H): Add insn-modes.h. + (tree-ssa.o, tree-cfg.o, tree-ssa-loop.o, toplev.o, passes.o, + loop.o, loop-doloop.o, unroll.o, cfgloop.o, cfgloopanal.o, + loop-iv.o, cfgloopmanip.o, loop-init.o, loop-unswitch.o, + loop-unroll.o, ddg.o, modulo-sched.o, predict.o, + cfglayout.o, ifcvt.o): Replace cfgloop.h with CFGLOOP_H. + (toplev.o, passes.o, cfghooks.o, cfgloopmanip.o, loop-init.o, + loop-unswitch.o, loop-unroll.o, ddg.o, modulo-sched.o, + bb-reorder.o, tracer.o, cfglayout.o): Replace cfglayout.h with + CFGLAYOUT_H. + (ra.o, ra-build.o, ra-colorize.o, ra-debug.o, ra-rewrite.o): + Replace ra.h with RA_H. + (resource.o, regrename.o, insn-conditions.o, insn-emit.o, + insn-recog.o): Replace resource.h with RESOURCE_H. + (ddg.o, modulo-sched.o, haifa-sched.o, sched-deps.o, sched-rgn.o, + sched-ebb.o, sched-vis.o, out_object_file): Replace sched-int.h + with SCHED_INT_H. + (web.o, lcm.o, df.o, ra.o, ra-build.o, ra-colorize.o, ra-debug.o, + ra-rewrite.o): Replace df.h with DF_H. + (ddg.o, modulo-sched.o): Replace ddf.h with DDG_H. + (tree-outof-ssa.o, tree-ssa-live.o, tree-ssa-copyrename.o): + Replace tree-ssa-live.h with TREE_SSA_LIVE_H. + (insn-conditions.o): Remove unused reload.h. + * cfglayout.h: Add include guard. Include basic-block.h. + * cfgloop.h: Add include guard. Include basic-block.h, rtl.h. + * ddg.h: Include sbitmap.h, basic-block.h, df.h. + * df.h: Add include guard. Include bitmap.h, sbitmap.h, + basic-block.h. + * genconditions.c: Remove reload.h. + * ra.h: Add include guard. Include bitmap.h, sbitmap.h, + hard-reg-set.h, insn-modes.h. + * resource.h: Add include guard. Include hard-reg-set.h. + * sched-int.h: Add include guard. Include insn-attr.h, + basic-block.h, rtl.h. + * target.h: Add include guard. Include insn-modes.h. + * tree-ssa-live.h: Include partition.h. + +2004-06-03 Daniel Berlin + Kenneth Zadeck + + * tree-ssa-ccp.c (varying_ssa_edges): New worklist. + (add_var_to_ssa_edges_worklist): Add value argument. + Update callers. + Use new worklist. + (process_ssa_edge_worklist): New function. + (tree_ssa_ccp): Move worklist processing core to + process_ssa_edge_worklist, and just call that for the two worklists. + +2004-06-03 Steven Bosscher + + * basic-block.c (tail_recursion_label_list): Don't declare. + (CLEANUP_PRE_SIBCALL): Remove. Renumber the other CLEANUP_* + accordingly. + * cfgbuild.c (find_label_refs): Remove. + (find_basic_blocks_1): Don't handle CALL_PLACEHOLDER insns. + * cfgcleanup.c (tail_recursion_label_p): Remove. + (merge_blocks_move): Do not check for tail recursion. + (try_optimize_cfg): Likewise. + (cleanup_cfg): Never handle CLEANUP_PRE_SIBCALL. + * cfgrtl.c (tail_recursion_label_list): Remove. + * except.c (remove_unreachable_regions): Don't handle + CALL_PLACEHOLDER insns. + (convert_from_eh_region_ranges_1, can_throw_internal, + can_throw_external): Likewise. + * function.c (free_after_compilation): Don't clear + x_tail_recursion_label. + (fixup_var_refs_insns): Don't handle CALL_PLACEHOLDER insns. + (identify_blocks_1): Don't recurse for CALL_PLACEHOLDER insns. + (reorder_blocks_1): Likewise. + * function.h (struct function): Remove x_tail_recursion_label + member. Don't define tail_recursion_label. + * jump.c (mark_all_labels): Don't handle CALL_PLACEHOLDER insns. + * print-rtl.c (print_rtx): Likewise. + * rtl.def (CALL_PLACEHOLDER): Remove. + * rtl.h (sibcall_use_t): Remove enum. + (optimize_sibling_and_tail_recursive_calls, + replace_call_placeholder): Remove function prototypes. + * stmt.c (tail_recursion_args): Remove. + (optimize_tail_recursion): Remove. + (expand_return): Don't check for possible tail recursion. + * tree.h (optimize_tail_recursion): Remove prototype. + +2004-06-02 Jan Hubicka + + * tree-cfg.c (tree_find_edge_insert_loc): Allow inserting before + return_stmt. + +2004-06-02 Jason Merrill + + * Makefile.in (TAGS): Don't mess with c-parse.[ch]. + Do include c-parse.in. + +2004-06-02 Eric Christopher + + * c-typeck.c (common_type): Don't lose type qualifiers + when creating new variants. + +2004-06-02 Andrew Pinski + + PR tree-optimization/14042 + PR tree-optimization/14729 + PR tree-optimization/14736 + * tree-ssa.c (tree_ssa_useless_type_conversion_1): + Check the type which the pointer points to + instead of the pointer types. + +2004-06-02 Kazu Hirata + + PR tree-optimization/15738. + * builtins.c (fold_builtin_strchr): Transform + strrchr (s, '\0') to strchr (s, '\0'). + +2004-06-02 Steven Bosscher + + * i386.c (ix86_adjust_cost): Don't increase the cost for + load+operation for PROCESSOR_PENTIUMPRO, it is already + modelled in the DFA description + +2004-06-01 Jerry Quinn + + * Makefile.in (EXPR_H): Add insn-config.h, function.h, + $(RTL_H), flags.h, $(TREE_H), $(MACHMODE_H), $(EXPR_H). + (ALIAS_H, EMIT_RTL_H): New. + (cselib.o): Replace EXPR_H with EMIT_RTL_H. + (cfgcleanup.o): Add EMIT_RTL_H. + (alias.o): Replace EXPR_H with EMIT_RTL_H and ALIAS_H. + * alias.c: Replace expr.h with emit-rtl.h and alias.h. + * attribs.c, c-lex.c, c-obj-common.c, c-semantics.c: Remove expr.h. + * cfgcleanup.c, cselib.c: Replace expr.h with emit-rtl.h. + * expr.h: Add include guard. Include function.h, rtl.h, flags.h, + tree.h, machmode.h, insn-config.h, alias.h, emit-rtl.h. + (get_varargs_alias_set, get_frame_alias_set, record_base_value, + record_alias_subset, new_alias_set, can_address_p): Move to alias.h. + (set_mem_alias_set, set_mem_align, set_mem_expr, set_mem_offset, + set_mem_size): Move to emit-rtl.h. + * emit-rtl.h: New. + * alias.h: New. + +2004-06-01 Eric Botcazou + + * function.c (walk_fixup_memory_subreg): New parameter 'var'. + Call fixup_memory_subreg only if the MEM is equal to 'var'. + Adjust recursive calls to self. + (fixup_var_refs_insn): Pass 'var' to walk_fixup_memory_subreg. + +2004-06-01 Richard Henderson + Andrew Pinski + + * c-parse.in (OFFSETOF, offsetof_member_designator): New. + (primary): Handle offsetof. Add error productions for faux functions. + Move component_ref objc checking to build_component_ref. + (reswords): Add offsetof. + (rid_to_yy): Add offsetof. + * c-tree.h (build_offsetof): Declare. + * c-common.h (objc_is_public): Declare. + * c-typeck.c (build_component_ref): Check objc_is_public. + (build_offsetof): New. + * stub-objc.c (objc_is_public): New. + * objc/objc-act.c, objc/objc-act.h (objc_is_public): Rename + from is_public. + * ginclude/stddef.h (offsetof): Use __builtin_offsetof. + * doc/extend.texi (Offsetof): Move from C++ section to C section + and rewrite for __builtin_offsetof. + +2004-06-01 Peter Barada + Peter Jakubek + + * config/m68k/m68k.c(m68k_output_mi_thunk): For ColdFire, use %d0 as + a scratch to perform an add to memory. + +2004-06-01 Bernardo Innocenti + + PR target/14018 + * config/m68k/m68k.c (m68k_align_loops_string, m68k_align_jumps_string, + m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps, + m68k_align_funcs): Remove. + (override_options): Remove code to handle -malign-* options. + * config/m68k/m68k.h (TARGET_OPTIONS): Remove -malign-* options. + (FUNCTION_BOUNDARY, LOOP_ALIGN, LOOP_ALIGN_AFTER_BARRIER): Remove. + (m68k_align_loops_string, m68k_align_jumps_string, + m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps, + m68k_align_funcs): Remove definitions. + +2004-06-01 Paul Eggert + + PR target/15626 + * doc/install.texi (sparc-sun-solaris2*): Document messages issued + by the Sun linker in conjunction with the Sun assembler. + (sparc-sun-solaris2.7): Update revision info for Sun patch 106950. + +2004-06-01 Jeff Law + + * stmt.c (expand_decl): Be more selective about calling + mark_reg_pointer. + +2004-06-01 Nicola Pero + + PR objc/7993 + * objc-act.c (is_private): Do not emit the 'instance variable %s + is declared private' error. + (is_public): Emit the error after calling is_private. + (lookup_objc_ivar): If the instance variable is private, return 0 + - the instance variable is invisible here. + +2004-06-01 Eric Botcazou + + * doc/invoke.texi (-static-libgcc): Explicitly mention + non-GNU linkers. + +2004-06-01 Bernardo Innocenti + + PR target/12968 + * doc/invoke.texi: Document stack alignment side-effect of -mshort. + +2004-05-31 Joseph S. Myers + + PR c/15749 + * c-decl.c (grokdeclarator, finish_struct): Don't pedwarn for + misuses of structures with flexible array members if + in_system_header. + +2004-05-31 Eric Botcazou + + PR target/15693 + * config/sparc/sparc.c (compare_operand): New predicate. + * config/sparc/sparc.h (PREDICATE_CODES): Add it. + * config/sparc/sparc.md (cmpsi expander): Use it. If the first + operand is a ZERO_EXTRACT and the second operand is not zero, + force the former to a register. + (cmpdi expander): Likewise. + +2004-05-31 Geoffrey Keating + + * gengtype-lex.l: Catch stray GTY markers in the files gengtype + looks at. + * alias.c (alias_invariant_size): Make alias_invariant_size + static, fix GTY marker. + +2004-05-31 Kazu Hirata + + PR tree-optimization/15743. + * builtins.c (fold_builtin_1): Fold index() and rindex(). + +2004-05-31 Roger Sayle + + PR middle-end/15069 + * fold-const.c (fold_single_bit_test): Only perform "(X & C) != 0" + into "X < 0" (where C is the signbit) if X's type is a full mode. + +2004-05-31 John David Anglin + + * pa.md: Disable the peephole2 patterns that generate indexed + floating-point stores when indexing is disabled. + +2004-05-31 Gabriel Dos Reis + + * c-pretty-print.c (pp_c_left_bracket): Make a function. + (pp_c_right_bracket): Likewise. + (pp_c_star): Likewise. + (pp_c_ampersand): Define. + * c-pretty-print.h (pp_c_left_bracket): Declare. + (pp_c_right_bracket): Likewise. + (pp_c_star): Likewise. + (pp_c_ampersand): Likewise. + +2004-05-31 Eric Botcazou + + * config/sol2.h (__enable_execute_stack): ANSIfy function + definition. + +2004-05-31 Danny Smith + + * c-incpath.c (add_path): Canonicalize paths to use '/' if + HAVE_DOS_BASED_FILESYSTEM. + +2004-05-31 Steven Bosscher + + * tree-ssa-dom.c (record_equivalences_from_incoming_edge): + Only look at case labels if the immediate dominator is also + the only predecessor. Don't look for more case labels if the + first seen is a case range. + +2004-05-31 Kazu Hirata + + * builtins.c: Add a prototype for fold_builtin_strchr(). + +2004-05-31 Paolo Bonzini + + Revert this patch: + 2004-05-27 Paolo Bonzini + + * combine.c (gen_binary): Remove. + (known_cond, simplify_shift_const + find_split_point, combine_simplify_rtx, + simplify_if_then_else, simplify_set, + simplify_logical, expand_field_assignment, + extract_left_shift, force_to_mode, + if_then_else_cond, apply_distributive_law, + simplify_and_const_int, simplify_shift_const, + gen_lowpart_for_combine, simplify_comparison, + reversed_comparison): Replace with + simplify_gen_binary, simplify_gen_relational or + distribute_and_simplify_rtx. + (distribute_and_simplify_rtx): New function. + +2004-05-30 John David Anglin + + * pa.c (emit_move_sequence): Fix loading of non 14-bit CONST operands + when generating PIC code. + +2004-05-30 Andrew Pinski + + * c-decl.c (c_expand_body_1): Remove and fold back into ... + (c_expand_body): here. + (c_expand_decl): Move to ... + * c-common.c (c_expand_decl): Here and remove check for nested + functions. + * c-common.h (c_expand_decl): Add prototype. + * c-tree.h (c_expand_decl): Remove. + +2004-05-30 Roger Sayle + + * fold-const.c (combine_comparisons, optimize_bit_field_compare, + range_binop, fold_truthop, fold_binary_op_with_conditional_arg, + fold_mathfn_compare, fold_inf_compare, fold, + fold_relational_hi_lo, nondestructive_fold_binary_to_constant): + Use constant_boolean_node where appropriate. Don't bother using + fold_convert on the second argument to omit_one_operand. + +2004-05-30 Roger Sayle + + * doc/c-tree.texi (Expressions): Document FLOOR_DIV_EXPR, + CEIL_DIV_EXPR, ROUND_DIV_EXPR, FLOOR_MOD_EXPR, CEIL_MOD_EXPR, + ROUND_MOD_EXPR, EXACT_DIV_EXPR. Improve documentation of + TRUNC_DIV_EXPR, TRUNC_MOD_EXPR and comparison operations. + Add missing (but documented) tree nodes to the index. + +2004-05-30 Steven Bosscher + + PR tree-optimization/14819 + * builtins.c (fold_builtin_strchr): New. + (fold_builtin_1): Handle BUILT_IN_STRCHR and BUILT_IN_STRRCHR + with fold_builtin_strchr(). + +2004-05-30 Kazu Hirata + + * bb-reorder.c, builtins.c, c-common.c, c-gimplify.c, + c-incpath.c, cgraphunit.c, ddg.c, defaults.h, dwarf2out.c, + expmed.c, flags.h, gcc.c, gensupport.c, gimplify.c, global.c, + passes.c, reg-stack.c, target.h, toplev.c, tree-alias-ander.c, + tree-alias-common.c, tree-cfg.c, tree-complex.c, tree-dfa.c, + tree-eh.c, tree-mudflap.c, tree-mudflap.h, tree-outof-ssa.c, + tree-phinodes.c, tree-pretty-print.c, tree-ssa-alias.c, + tree-ssa-ccp.c, tree-ssa-live.c, tree-ssa-live.h, + tree-ssa-pre.c, tree.h, value-prof.h, varasm.c: Fix comment + formatting. + +2004-05-30 Steven Bosscher + + * gimplify.c (sort_case_labels): New. Split out from... + (gimplify_switch_expr): ...here. Use it. + * tree-eh.c (lower_try_finally_switch): Sort the labels of + the SWITCH_EXPR created here before leaving the function. + * tree.c (sort_case_labels): Add prototype. + +2004-05-30 Andrew Pinski + + * fold-const.c (fold) [case TRUTH_NOT_EXPR]: Make sure the type is + of BOOLEAN_TYPE. + +2004-05-30 Kazu Hirata + + * c-common.c, calls.c, cfgcleanup.c, cgraph.c, cgraphunit.c, + ddg.c, ddg.h, df.c, df.h, except.c, expr.c, flags.h, + fold-const.c, gcc.c, gimplify.c, haifa-sched.c, + modulo-sched.c, tree-inline.c, tree-into-ssa.c, tree-nested.c, + tree-nrv.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-live.c, + tree-ssa-loop.c, tree-ssa-pre.c, tree-tailcall.c, tree.h: Fix + comment typos. Follow spelling conventions. + +2004-05-29 Geoffrey Keating + + * gengtype-yacc.y: Add NESTED_PTR token. + (option): Record `nested_ptr' option. + * gengtype-lex.l: Handle `nested_ptr' keyword. + * gengtype.c (walk_type): Process `nested_ptr' option. + * gengtype.h (struct nested_ptr_data): New. + * doc/gty.texi (GTY Options): Document `nested_ptr' option. + * stringpool.c (struct string_pool_data): Make 'entries' point to + ht_identifier instead of tree. + (gt_pch_save_stringpool): Don't adjust pointers. + (gt_pch_restore_stringpool): Call ht_load. + +2004-05-29 Jason Merrill + + * gimplify.c (gimplify_expr): Don't build a statement list + if no gimplification was necessary. + +2004-05-29 Joseph S. Myers + + * pretty-print.c (pp_base_format_text): Support %< instead of %` + and %> as well as %'. + * c-format.c: Use %< and %>. + (gcc_diag_char_table, gcc_cdiag_char_table, + gcc_cxxdiag_char_table): Update. + +2004-05-29 Joseph S. Myers + + * c-typeck.c (common_type): Correct comment. + +2004-05-29 Peter Barada + + * config/m68k/m68k.c (CONST_METHOD): Add MVZ, MVS. + * config/m68k/m68k.c (const_method): Likewise. + * config/m68k/m68k.c (const_int_cost): Likewise. + * config/m68k/m68k.c (const_int_cost): Likewise. + * config/m68k/m68k.c (output_move_const_into_data_reg): Likewise. + +2004-05-29 Peter Barada + + * config/m68k/m68k.h (EXTRA_CONSTRAINT): add 'U' for register offset + addressing. + * config/m68k/m68k.md: Add 'U,U' alternative to ColdFire variants of + movsi,movhi,movqi insn patterns. + +2004-05-28 Andrew Pinski + + * c-semantics.c (emit_local_var): Remove code for DECL_INITIAL. + + PR target/15720 + * config/darwin.c (machopic_indirect_call_target): Copy + the SYMBOL_REF_DECL from the original RTX for the new + stub RTX. + +2004-05-28 DJ Delorie + + * stor-layout.c (place_field): Revert erroneous commit. + +2004-05-28 Ziemowit Laski + + * config/rs6000/altivec.h (vec_ctf, vec_vcfsx, vec_vcfux, vec_cts, + vec_ctu, vec_dss, vec_dst, vec_dstst, vec_dststt, vec_dstt, vec_ld, + vec_ldl, vec_lvsl, vec_lvsr, vec_sld, vec_splat, vec_vspltw, + vec_vsplth, vec_vspltb, vec_splat_s8, vec_splat_s16, vec_splat_s32, + vec_splat_u8, vec_splat_u16, vec_splat_u32, vec_st, vec_stl, + vec_ste): Remove type checks for integral parameters and literals + from '..._args_eq' macros. + +2004-05-28 Aldy Hernandez + + * c-common.c (fname_as_string): Fix xcalloc to xmalloc. + +2004-05-28 Aldy Hernandez + + * testsuite/g++.dg/charset/function.cc: New. + + * testsuite/gcc.dg/charset/function.c: New. + + * c-decl.c (c_make_fname_decl): Free return value from + fname_as_string. + + * cp/decl.c (cp_make_fname_decl): Free return value from + fname_as_string. + + * c-common.c (fname_as_string): Translate if necessary. + +2004-05-28 Geoffrey Keating + + * stringpool.c: Add comments to PCH saving/restoring routines. + +2004-05-28 Andrew Pinski + + * c-common.c (c_estimate_num_insns_1): Kill. + (c_estimate_num_insns): Kill. + * c-common.h (c_estimate_num_insns): Kill. + + * gthr-posix.h: Check for _POSIX_PRIORITY_SCHEDULING + when checking for _POSIX_THREAD_PRIORITY_SCHEDULING. + Remove comment about not checking for + _POSIX_PRIORITY_SCHEDULING. + * gthr-posix.c: Likewise. + +2004-05-28 Paolo Bonzini + Roger Sayle + + PR rtl-optimization/15649 + Add LTGT_EXPR and improve pretty-printing of unordered + comparisons. + * c-common.c (c_common_truthvalue_conversion): + Handle LTGT_EXPR. + * c-typeck.c (build_binary_op): Likewise. + * dojump.c (do_jump): Likewise. + * expr.c (expand_expr_real_1, do_store_flag): Likewise. + * predict.c (tree_predict_by_opcode): Likewise. + * real.c (real_compare): Likewise. + * tree-cfg.c (verify_expr): Likewise. + * tree-inline.c (estimate_num_insns_1): Likewise. + * tree-pretty-print.c (dump_generic_node): Likewise. + Handle ORDERED_EXPR, UNORDERED_EXPR. + (op_symbol): Print unordered comparisons differently + than ordered ones. + * tree.def (LTGT_EXPR): New '<' tree code. + * doc/c-tree.texi (Expressions): Document floating-point + comparison nodes. + + Fold comparisons between floating point values. + * fold-const.c (enum comparison_code): New, from + #define'd constants. Define compcodes for unordered + comparisons and for invalid transformations. + (invert_tree_comparison): Add "honor_nans" parameter. + (fold_truthop): Revamp to work on floating-point types too. + (comparison_to_compcode): Support unordered comparisons. + Use new enum comparison_code. + (compcode_to_comparison): Likewise. + (combine_compcodes): New function. + (invert_truthvalue): Let invert_tree_comparison decide + whether it is valid to fold the comparison. Fold ORDERED + and UNORDERED even if flag_unsafe_math_optimizations is off, + and the remaining even if flag_unsafe_math_optimizations + is off but we are under -fno-trapping-math. + (fold_relational_const): Integer modes do not honor NaNs. + +2004-05-28 Paul Brook + + * config/arm/arm.c (arm_output_epilogue): Remove redundant code. + +2004-05-28 Paul Brook + + * config/arm/arm.c (thumb_force_lr_save): New function. + (arm_get_frame_offsets, thumb_unexpanded_epilogue, + thumb_output_function_prologue): Use it. + (thumb_expand_prologue): Set lr_save_eliminated. + +2004-05-28 Richard Sandiford + + * config/mips/mips.md (extendsidi2): Tie the source and destination + of the register alternative. Split it into nothing. + +2004-05-28 Richard Sandiford + + * rtl.h (skip_consecutive_labels): Declare. + * emit-rtl.c (skip_consecutive_labels): New function. + * reorg.c (relax_delay_slots, dbr_schedule): Use it. + * jump.c (follow_jumps): Say what null return values mean. + +2004-05-28 Kaz Kojima + + PR target/13250 + * config/sh/sh.md (rotlsi3): Use emit_move_insn. + +2004-05-27 Kaz Kojima + + * config/sh/t-linux (SHLIB_MAPFILES): Use sh specific + libgcc-std.ver. + * config/sh/libgcc-std.ver: New file. + +2004-05-27 Bryce McKinlay + + * except.c: Revert change of 2004-05-26. + * config/i386/i386.md: Revert change of 2004-05-27. + +2004-05-27 Bryce McKinlay + + * configure.ac: Remove --enable-tree-browser option. + Define TREEBROWSER when ac_tree_checking is defined. + * configure: Rebuilt. + +2004-05-27 Olivier Hainque + + * expr.c (store_constructor): Restore sanity check on + the size of the type before clearing. + +2004-05-27 Jan Hubicka + + * cfgbuild.c (control_flow_insn_p): Notice noreturn call + +2004-05-27 Paolo Bonzini + + * combine.c (gen_binary): Remove. + (known_cond, simplify_shift_const + find_split_point, combine_simplify_rtx, + simplify_if_then_else, simplify_set, + simplify_logical, expand_field_assignment, + extract_left_shift, force_to_mode, + if_then_else_cond, apply_distributive_law, + simplify_and_const_int, simplify_shift_const, + gen_lowpart_for_combine, simplify_comparison, + reversed_comparison): Replace with + simplify_gen_binary, simplify_gen_relational or + distribute_and_simplify_rtx. + (distribute_and_simplify_rtx): New function. + * simplify-rtx.c (simplify_binary_operation): + Use nonzero_bits to simplify ANDs where we are + turning off bits already known to be off in OP0. + +2004-05-27 Alan Modra + + PR target/14478 + * config/rs6000/rs6000.c (reg_or_neg_short_operand): Don't allow zero. + +2004-05-27 Josef Zlomek + + PR middle-end/14084 + * emit-rtl.c (gen_rtx_REG_offset): Adjust the offset according + to size of decl. + +2004-05-26 Aldy Hernandez + + PR/14924 + * config/rs6000/rs6000.c (spe_expand_stv_builtin): New. + +2004-05-26 Roger Sayle + + * tree.h: Fix comment typo. + +2004-05-27 Steven Bosscher + + * gimplify.c (compare_case_labels): New function. + (gimplify_switch_expr): Sort case labels, and make sure the + last label in the label vector is the default case. + * tree-cfg.c (group_case_labels): New function. + (build_tree_cfg): Cleanup redundant labels and group case labels + before creating edges. + (cleanup_dead_labels): Handle GOTO_EXPRs. + (find_case_label_for_value): Use a binary search to find the + case label for the given value. + * tree-gimple.c: Mention that labels are sorted, and that the + last label must be the default. + +2004-05-27 Jan Hubicka + + * cfgcleanup.c (try_optimize_cfg): Do not merge across jumptables. + +2004-05-27 Jan Hubicka + + * i386.md (UNSPECV_EH_RETURN): Kill. + (eh_return): Use jump_insn. + (eh_return_si, eh_return_di): Change pattern to jump instruction. + +2004-05-26 Jan Hubicka + + * cfgcleanup.c (try_forward_edges): Do not check loop structure when + not loop optimizing. + +2004-05-26 Jan Hubicka + + * except.c (can_throw_internal): Notice RESX instructions. + +2004-05-26 Eric Botcazou + + * varasm.c (output_constant) : Pass the minimum + of the two sizes to assemble_integer. + +2004-05-25 Paul Brook + + * config/arm/arm.c (thumb_exit, thumb_unexpanded_epilogue): Remove + pointless #ifdef. + +2004-04-25 Paolo Bonzini + + * Makefile.in (top_builddir): Define to . + +2004-05-25 Alexandre Oliva + + * configure.ac (gcc_cv_ld): Prefer in-tree ld over whatever the + top-level detects, except when in-tree ld is being cross-built. + (gcc_cv_as): Likewise for as. Use AS_FOR_TARGET otherwise, and + then AS only if target is host. + * configure: Rebuilt. + +2004-05-25 Vladimir Makarov + + * global.c (global_alloc): Call make_accurate_live_analysis. + (record_one_conflict): Remove dead code. + (mark_reg_clobber): Remove ATTRIBUTE_UNUSED for parameter data. + (bb_info): New structure. + (BB_INFO, BB_INFO_BY_INDEX): New macros. + (allocate_bb_info, free_bb_info, mark_reg_change, + calculate_local_reg_bb_info, set_up_bb_rts_numbers, rpost_cmp, + modify_bb_reg_pav, calculate_reg_pav, + make_accurate_live_analysis): New functions. + +2004-05-25 Devang Patel + + * alias.c (init_alias_analysis): Use ggc_calloc instead of + xrealloc. + (end_alias_analysis): Use ggc_free instead fo free. + +2004-05-25 Andrew Pinski + + PR target/15546 + * config/ia64/ia64.h (ASM_OUTPUT_FDESC): Mark the DECL + as needed to be outputted. + +2004-05-25 Jan Hubicka + + * builtins.def (__builtin_expect): Mark the function as const¬hrow. + +2004-05-25 Ayal Zaks + Mostafa Hagog + + * Makefile.in (modulo-sched.o, ddg.o): New. + * ddg.h, ddg.c, modulo-sched.c: New files. + * cfglayout.c (duplicate_insn_chain): Remove "static" and push + internals to "dupicate_insn". + (duplicate_insn): New function. + * cfglayout.h (duplicate_insn_chain, duplicate_insn): New + declarations. + * common.opt (fmodulo-sched): New flag. + * df.c (df_bb_regno_last_use_find, df_bb_regno_first_def_find): + Remove static and forward declaration. + (df_find_def, df_reg_used, df_bb_regno_last_def_find): New + functions. + * df.h (df_bb_regno_last_use_find, df_bb_regno_first_def_find, + df_bb_regno_last_def_find, df_find_def, df_reg_used): New + declarations. + * flags.h (flag_modulo_sched): New flag. + * opts.c (common_handle_option): Handle modulo-sched flag. + * params.def (max-sms-loop-number, sms-max-ii-factor, + sms-dfa-history, sms-loop-average-count-threshold): New + parameters. + * params.h (MAX_SMS_LOOP_NUMBER, SMS_MAX_II_FACTOR, + SMS_DFA_HISTORY, SMS_LOOP_AVERAGE_COUNT_THRESHOLD): New + parameters. + * passes.c ("sms", "sms-vcg"): New dumps. + (rest_of_handle_sched): Call sms_schedule. + * rtl.h (sms_schedule): New declaration. + * timevar.def (TV_SMS): New. + * toplev.c (flag_modulo_sched): Initialize. + (f_options): Handle -fmodulo-sched option. + * docs/invoke.texi: Document -fmodulo-sched & -dm options. + * docs/passes.texi: Document new SMS pass. + +2004-05-25 Paolo Bonzini + + * Makefile.in (OBJS): Add rtlhooks.o. + (rtlanal.o): Depend on function.h. + (cse.o): Depend on rtlhooks-def.h. + (combine.o): Depend on rtlhooks-def.h. + (rtlhooks.o): New rule. + * combine.c: Include rtlhooks-def.h. + (nonzero_bits, cached_nonzero_bits, nonzero_bits1, + num_sign_bit_copies, cached_num_sign_bit_copies, + num_sign_bit_copies1): Move most of the code to rtlanal.c. + (reg_nonzero_bits_for_combine, + reg_num_sign_bit_copies_for_combine): New functions holding + the remnants of the above. + (combine_rtl_hooks): New. + (combine_instructions): Set rtl_hooks instead of gen_lowpart. + * cse.c: Include rtlhooks-def.h. + (cse_rtl_hooks): New. + (cse_main): Set rtl_hooks instead of gen_lowpart. + * emit-rtl.c (gen_lowpart): Remove. + (gen_lowpart_general): Move to rtlhooks.c. + * rtl.h (nonzero_bits, num_sign_bit_copies, + struct rtl_hooks, rtl_hooks, general_rtl_hooks): New. + (gen_lowpart_general): Remove. + (gen_lowpart): Temporarily redefine as a macro. + * rtlanal.c: Include function.h. + (nonzero_bits, cached_nonzero_bits, nonzero_bits1, + num_sign_bit_copies, cached_num_sign_bit_copies, + num_sign_bit_copies1): New, from combine.c. + * rtlhooks.c: New file. + * rtlhooks-def.h: New file. + +2004-05-25 Svein E. Seldal + + * config/avr/avr.h (LONG_LONG_TYPE_SIZE): Changed long long type + to support 32-bit -mint8 mode. + + * doc/invoke.texi (-mint8): Added documentation for the -mint8 + option in the AVR architecture. + +2004-05-24 Mike Stump + + * doc/install.texi: Document that dejagnu 1.4.4 is required. + +2004-05-24 Joseph S. Myers + + * intl.h (open_quote, close_quote): New. + * intl.c (open_quote, close_quote): New. + (gcc_init_libintl): Set them. + * pretty-print.c: Include "intl.h". + (pp_base_format_text): Support 'q' format flag and %` and %' + formats. Use ' instead of ` in comments. + * c-format.c (gcc_diag_flag_specs, gcc_cxxdiag_flag_specs, + gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table, + foramt_types_orig): Describe these new formats. + (decode_format_attr, check_function_format, + check_format_info_main): Use these new formats. + (status_warning): Use ATTRIBUTE_GCC_DIAG. + * toplev.c (ATTRIBUTE_GCC_DIAG): Increase required GCC version to + check these formats to 3.5. + +2004-05-24 Rainer Orth + + * Makefile.in (CPPLIBS): Renamed to CPPLIB. + (BACKEND): Reflect this. + (LIBDEPS): Move CPPLIB before LIBIBERTY. + (LIBS): Likewise. + +2004-05-24 Ulrich Weigand + + PR tree-optimization/14197 + * builtins.c: Include "tree-gimple.h" + (readonly_data_expr): Use get_base_address. Make sure to call + decl_readonly_section only on trees it can handle. + * tree-gimple.c (get_base_address): Accept STRING_CST and + CONSTRUCTOR expressions. + * Makefile.in: Update dependencies. + +2004-05-23 Paolo Bonzini + + Move libcpp to the toplevel. + * Makefile.in: Remove references to libcpp files, + use CPPLIBS instead of libcpp.a. Define SYMTAB_H + and change hashtable.h to that. + * aclocal.m4 (gcc_AC_HEADER_STDBOOL, + gcc_AC_HEADER_STRING, gcc_AC_C__BOOL): Remove. + * configure.ac (gcc_AC_C__BOOL, HAVE_UCHAR): Remove tests. + * configure: Regenerate. + * config.in: Regenerate. + * c-ppoutput.c: Include ../libcpp/internal.h instead of cpphash.h. + * cppcharset.c: Removed. + * cpperror.c: Removed. + * cppexp.c: Removed. + * cppfiles.c: Removed. + * cpphash.c: Removed. + * cpphash.h: Removed. + * cppinit.c: Removed. + * cpplex.c: Removed. + * cpplib.c: Removed. + * cpplib.h: Removed. + * cppmacro.c: Removed. + * cpppch.c: Removed. + * cpptrad.c: Removed. + * cppucnid.h: Removed. + * cppucnid.pl: Removed. + * cppucnid.tab: Removed. + * hashtable.c: Removed. + * hashtable.h: Removed. + * line-map.c: Removed. + * line-map.h: Removed. + * mkdeps.c: Removed. + * mkdeps.h: Removed. + * stringpool.h: Include symtab.h instead of hashtable.h. + * tree.h: Include symtab.h instead of hashtable.h. + * system.h (O_NONBLOCK, O_NOCTTY): Do not define. + +2004-05-23 Paolo Bonzini + + * gcc.c (struct prefix_list): Add forward declaration. + (do_spec_path): New function, extracted from... + (do_spec_1) <'D'>: ... here. Drop support for + SPACE_AFTER_L_OPTION. + (do_spec_1) <'I'>: Use do_spec_path. + (process_command): Do not store the 'include' suffix + in include_prefixes. + * system.h: Poison SPACE_AFTER_L_OPTION. + +2002-05-23 Roger Sayle + + * fold-const.c (non_lvalue): Explicitly list the tree codes that + need to be wrapped by NON_LVALUE_EXPR, instead of those that don't. + +2004-05-23 Joseph S. Myers + + * doc/gcc.texi, doc/gccint.texi, doc/include/gcc-common.texi: + Update based on printed manual. Enable setting of offsets for + FSFPRINT and move it to gcc-common.texi. + * doc/gcc.texi: Update FSF printing details. + * doc/gccint.texi: Remove FSF printing details. + +2004-05-23 Andrew Pinski + + * config/rs6000/t-rs6000: Remove the disabling -Werror. + +2004-05-22 Roger Sayle + + * builtins.c (expand_builtin_strstr, expand_builtin_strchr, + expand_builtin_strrchr, expand_builtin_strpbrk, + expand_builtin_mempcpy, expand_builtin_memcmp, + expand_builtin_strcmp, expand_builtin_strncmp, + expand_builtin_strcat, std_expand_builtin_va_start, + std_expand_builtin_va_arg, expand_builtin_va_copy, + expand_builtin_signbit, fold_builtin_cabs, + fold_builtin_logarithm, fold_builtin_mempcpy, + fold_builtin_signbit, fold_builtin_isascii, + fold_builtin_toascii, fold_builtin_isdigit, + fold_builtin_1, build_function_call_expr, + simplify_builtin_strchr, simplify_builtin_strrchr, + simplify_builtin_strpbrk, simplify_builtin_strncpy, + simplify_builtin_memcmp, simplify_builtin_strcmp, + simplify_builtin_strncmp, simplify_builtin_strncat, + simplify_builtin_strspn, simplify_builtin_strcspn, + simplify_builtin_fputs, simplify_builtin_sprintf): Replace calls + to build with calls to build2, build3 or omit_one_operand. + +2004-05-22 Richard Sandiford + + * config/mips/mips.c (mips_file_start): Emit a .gcc_compiled_longXX + section when generating EABI code. + +2004-05-22 Andrew Pinski + + PR 15546 + * config/i386/i386.c (output_pic_addr_const ): + Call mark_decl_referenced on the SYMBOL_REF_DECL. + +2004-05-22 Andrew Pinski + + * c-common.c (c_common_truthvalue_conversion): Handle + UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR, + ORDERED_EXPR, and UNORDERED_EXPR as comparison operators, + i.e. set the type to truthvalue_type_node and return. + +2004-05-22 Zack Weinberg + + * tree.h (struct tree_decl): Add possibly_inlined bit. + (DECL_POSSIBLY_INLINED): New accessor macro. + * cgraph.h: Remove declaration of cgraph_inline_hash. + * cgraph.c: Remove definition of cgraph_inline_hash. + (hash_node): Revert to hashing DECL_UID. + (eq_node): Take two pointers to cgraph_node structures. + Compare DECL_UIDs. + (cgraph_remove_node): Pass the node directly to htab_find_slot. + (cgraph_varpool_hash_node): Rename hash_varpool_node; + hash on DECL_UID. + (eq_cgraph_varpool_node): Rename eq_varpool_node; take two + pointers to cgraph_varpool_node structures; compare DECL_UIDs. + (cgraph_node): Allocate a temporary node on the stack, fill in + its DECL field, and pass that to htab_find_slot. + (cgraph_varpool_node): Likewise. + (cgraph_function_possibly_inlined_p): If global info is ready, + return the DECL_POSSIBLY_INLINED bit. + * cgraphunit.c (cgraph_mark_inline_edge): Set DECL_POSSIBLY_INLINED + instead of mucking with cgraph_inline_hash. + +2004-05-22 Joseph S. Myers + + * doc/contrib.texi: Add g77 contributors. + +2004-05-22 Richard Sandiford + + * calls.c (initialize_argument_information): Forbid sibcalls if a + callee-copied argument is stored in the current function's frame. + +2004-05-22 Eric Christopher + + * fix-header.c (read_scan_file): Update for add_path change. + +2004-05-22 Ben Elliston + + * c.opt (Wmissing-include-dirs): New. + * c-opts.c (c_common_handle_option): Pass true for user_supplied_p + to add_path () for -I, but false for OPT_idirafter, OPT_iquote and + OPT_isystem. Handle case OPT_Wmissing_include_dirs. + * c-incpath.h (add_path): Add fourth (bool) argument. + * c-incpath.c (add_env_var_paths): Pass false to add_path (). + (add_standard_paths): Likewise. + (remove_duplicates) [REASON_NOENT]: Warn if -Wmissing-include-dirs + is used and the directory was user-supplied via -I. + (add_path): Set p->user_supplied_p. Remove duplicated code by + using add_cpp_dir_path (). + * cpplib.h (struct cpp_options): Add warn_missing_include_dirs. + (struct cpp_dir): Add user_supplied_p. + * doc/invoke.texi (Warning Options): Document new option. + +2004-05-21 Ulrich Weigand + + * fold-const.c (fold_read_from_constant_string): Convert result to + requested type. + +2004-05-21 Richard Henderson + + * gimplify.c (mostly_copy_tree_r): Don't attempt to copy decls. + (copy_if_shared_r): Don't copy decls, types, constants, BINDs. + Don't mark VA_ARG_EXPRs volatile here. + (gimplify_modify_expr): Unshare TYPE_SIZE_UNIT. + +2004-05-21 Richard Henderson + + * Makefile.in (tree-dump.o): Depend on tree-iterator.h. + * tree-dump.c (dequeue_and_dump): Dump STATEMENT_LISTs. + +2004-05-21 Roger Sayle + + * fold-const.c (fold, fold_relational_hi_lo, + nondestructive_fold_binary_to_constant, + fold_read_from_constant_string): Use fold_convert instead of convert. + * builtins.c (simplify_builtin, simplify_builtin_strstr, + simplify_builtin_strchr, simplify_builtin_strrchr, + simplify_builtin_strpbrk): Use fold_convert instead of convert. + +2004-05-21 Diego Novillo + + * tree-flow-inline.h (num_immediate_uses): Don't abort if DF + is NULL. + +2004-05-21 Jakub Jelinek + + * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): If SPARC_BI_ARCH, + override sparc.h definition. + +2004-05-20 Roger Sayle + + * tree.c (array_type_nelts, save_expr, substitute_in_expr, + get_unwidened, get_narrower): Replace build with build2. + * fold-const.c (negate_expr, associate_trees, size_binop, + fold_convert, eval_subst, omit_one_operand, invert_truthvalue, + pedantic_omit_one_operand, distribute_bit_expr, + make_bit_field_ref, optimize_bit_field_compare, + decode_field_reference, range_binop, make_range, + build_range_check, fold_range_test, fold_truthop, + optimize_minmax_comparison, extract_muldiv_1, + fold_binary_op_with_conditional_arg, fold_mathfn_compare, + fold_inf_compare, fold_single_bit_test, fold, + fold_relational_hi_lo, nondestructive_fold_binary_to_constant): + Likewise replace build with either build2 or build3. + +2004-05-20 Ian Lance Taylor + + * system.h: Poison NO_RECURSIVE_FUNCTION_CSE. + * calls.c (prepare_call_address): Don't test + NO_RECURSIVE_FUNCTION_CSE. + * config/arc/arc.h (NO_RECURSIVE_FUNCTION_CSE): Don't define. + * config/arm/arm.h (NO_RECURSIVE_FUNCTION_CSE): Likewise. + * config/avr/avr.h (NO_RECURSIVE_FUNCTION_CSE): Likewise. + * config/frv/frv.h (NO_RECURSIVE_FUNCTION_CSE): Likewise. + * config/i386/i386.h (NO_RECURSIVE_FUNCTION_CSE): Likewise. + * config/ip2k/ip2k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise. + * config/iq2000/iq2000.h (NO_RECURSIVE_FUNCTION_CSE): Likewise. + * config/m32r/m32r.h (NO_RECURSIVE_FUNCTION_CSE): Likewise. + * config/m68k/m68k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise. + * config/mcore/mcore.h (NO_RECURSIVE_FUNCTION_CSE): Likewise. + * config/mips/mips.h (NO_RECURSIVE_FUNCTION_CSE): Likewise. + * config/stormy16/stormy16.h (NO_RECURSIVE_FUNCTION_CSE): + Likewise. + * config/xtensa/xtensa.h (NO_RECURSIVE_FUNCTION_CSE): Likewise. + * config/sh/sh.h: Remove NO_RECURSIVE_FUNCTION_CSE comment. + * doc/tm.texi (Costs): Remove documentation for + NO_RECURSIVE_FUNCTION_CSE. + +2004-05-20 Paul Brook + + * unwind-dw2-fde.c (get_cie_encoding): Handle dwarf3 CIE format. + * unwind-dw2.c (extract_cie_info): Ditto. + (_Unwind_FrameState): Change retaddr_column to word type. + +2004-05-20 Roger Sayle + + PR middle-end/3074 + * fold-const.c (strip_compound_expr): Delete function. + (count_cond): Delete function. + (fold_binary_op_with_conditional_arg): Only perform transformations + "a + (b?c:d) -> b ? a+c : a+d" and "(b?c:d) + a -> b ? c+a : d+a" + when a is constant. This greatly simplifies this routine. + + * tree.c (saved_expr_p): Delete function. + * tree.h (saved_expr_p): Delete function prototype. + +2004-05-20 Andrew Pinski + + * common.opt (ftree-loop-optimize): Remove. + +2004-05-20 Daniel Jacobowitz + + * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET) + (NM_FOR_TARGET): Use := and $(shell). + (mainversion): Remove unused variable. + +2004-05-20 John David Anglin + + * reorg.c (delete_from_delay_slot): If we have a barrier after the + sequence containing the insn to be deleted, always reemit it. + +2004-05-20 Richard Henderson + + PR 15454 + * tree-nested.c (get_chain_decl): Create a PARM_DECL by hand. + * function.c (expand_function_start): Expand static_chain_decl by hand. + * gimplify.c (create_tmp_var_name): Export. + * tree-gimple.h (create_tmp_var_name): Declare. + +2004-05-20 Andrew Pinski + + * rs6000.c (print_operand) : Call + mark_decl_referenced before assemble_name. + +2004-05-20 Zack Weinberg + + * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node) + (cgraph_varpool_hash_node, eq_cgraph_varpool_node) + (cgraph_varpool_node): Hash on the pointer to the decl, not + the DECL_UID. Fixes 64-bit bootstrap failure. + +2004-05-20 Richard Earnshaw + + * arm.md (ite_ne_zeroextractsi, ite_ne_zeroextractsi_shifted): Ensure + we don't earlyclobber operands used in the second insn. + +2004-05-20 Steven Bosscher + + * tree-mudflap.c: Formatting fixes. + +2004-05-20 J"orn Rennecke + + * Makefile.in (GTFILES): Add $(srcdir)/reload.h. + * gengtype.c (open_base_files): Include reload.h in ifiles. + * reload.h (reg_equiv_memory_loc_varray): Declare. + * reload1.c (reg_equiv_memory_loc_varray): New variable. + (init_reload): Initialize it. + (reload): Instead of freeing reg_equiv_memory_loc, 'grow' + reg_equiv_memory_loc_varray to size 0. + * ra.c (reg_alloc): Allocate reg_equiv_memory_loc by + growing reg_equiv_memory_loc_varray to the desired size. + * passes.c (rest_of_handle_old_regalloc): Likewise. + * reload.c: Amend comment on calling init_reload. + +2004-05-20 Nick Clifton + + * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Replace 'tramp' + with 'TRAMP' in the body of the macro definition. + +2004-05-19 H.J. Lu + + PR target/15383 + * config/ia64/ia64.c (ia64_expand_compare): Don't check + TARGET_HPUX for TFmode compare. Abort if op0 is in TFmode and + cmptf_libfunc isn't set. + (ia64_init_libfuncs): Rename TFmode libfuncs using the HPUX + conventions. + (ia64_sysv4_init_libfuncs): New. + + * config/ia64/sysv4.h (TARGET_INIT_LIBFUNCS): New. Defined as + ia64_sysv4_init_libfuncs. + +2004-05-20 Falk Hueffner + + PR other/15526 + * libgcc2.c (__mulvsi3): Fix overflow test. + +2004-05-19 Andrew Pinski + + PR c/14171 + * reg-stack.c (nan): Rename to ... + (not_a_num): Here. + (reg_to_stack): Rename nan to not_a_num. + (subst_stack_regs_pat): Likewise. + (convert_regs_entry): Likewise. + (convert_regs_1): Likewise. + + * tree-cfg.c (find_case_label_for_value): Replace call to + simple_cst_equal with tree_int_cst_equal. + +2004-05-19 Jeff Law + + * tree-into-ssa.c (prepare_operand_for_rename): New argument is_use. + If the operand is for a use, then strip away the SSA_NAME, do not + strip away the SSA_NAME for a set. Never call release_ssa_name. + (mark_def_sites): Appropriately pass additional argument to + prepare_operand_for_rename. If a VDEF_RESULT is not an SSA_NAME, + then set the VDEF_RESULT to the VDEF_OP. + (set_def_block): Strip away any SSA_NAME to get to the real + underlying variable. + + * tree-ssa-phiopt.c (value_replacement): Handle the case where + the desired edge out of COND_BLOCK reaches OTHER_BLOCK rather than + BB directly. + +2004-05-19 Zdenek Dvorak + + PR c++/15463 + * loop-iv.c (iv_number_of_iterations): Use trunc_int_for_mode on + result of inverse. + + PR rtl-optimization/15274 + * loop-iv.c (determine_max_iter, shorten_into_mode, + iv_number_of_iterations): Handle constants correctly. + * rtl.h (get_mode_bounds): Declaration changed. + * stor-layout.c (get_mode_bounds): Return a constant suitable for + the target mode. + + PR rtl-optimization/14692 + * loop-unswitch.c (may_unswitch_on): Try folding the result. + (unswitch_single_loop): Work correctly when may_unswitch_on + returns a folded constant. + + * loop-iv.c (implies_p): Handle A < B ==> A + 1 <= B. + * simplify-rtx.c (simplify_const_relational_operation): Optimize + comparisons with mode bounds. + + * function.c (struct temp_slot): Add new field prev. + (free_after_compilation, init_temp_slots): Free new fields. + (cut_slot_from_list, insert_slot_to_list, + temp_slots_at_level, max_slot_level, move_slot_to_level, + make_slot_available): New functions. + (assign_stack_temp_for_type, combine_temp_slots, + find_temp_slot_from_address, preserve_temp_slots, + preserve_rtl_expr_result, free_temp_slots, + free_temps_for_rtl_expr, pop_temp_slots): Work with + the new structure of lists. + (mark_all_temps_used): Removed. + * function.h (struct function): Field x_temp_slots + replaced by x_used_temp_slots and x_avail_temp_slots. + (temp_slots): Replaced by ... + (used_temp_slots, avail_temp_slots): New. + * tree.h (mark_all_temps_used): Declaration removed. + + * loop-iv.c (mark_single_set, get_biv_step_1, iv_analyze, + simplify_using_assignment): Take the expression out of + the expr_list wrapper. + + * loop-iv.c (iv_number_of_iterations): Improve clasification of + infinite loops. + +2004-05-19 Roger Sayle + + * doc/tm.texi (TARGET_RTX_COSTS): Document that instruction + costs should be based on code size when optimizing for size. + +2004-05-19 Paolo Bonzini + + * fold-const.c: Remove non-printable character 160. + +2004-05-19 Nick Clifton + + * doc/invoke.texi (ARM Options): Fix typo. + Remove descrption of -mshort-load-bytes and + -mno-short-load-bytes. + + * config/ip2k/ip2k.c (ip2k_composite_xexp_not_uses_reg_p): Add + missing parenthesis. + * config/ip2k/ip2k.c (ip2k_unary_operator): Likewise. + * config/ip2k/ip2k.c (ip2k_binary_operator): Likewise. + +2004-05-19 Steven Bosscher + + * expr.c (store_constructor): Build loop start and end by hand + instead of via loop functions from stmt.c. + (expand_expr_real_1): Abort if we see an EXIT_EXPR or a LOOP_EXPR. + Remove the code to expand them. + + * stmt.c (loop_stack): Remove this and everything related. + (struct nesting, enum nesting_desc): Update. + (expand_fixup): Likewise. + (expand_loop_start, expand_start_loop_continue_elsewhere, + expand_start_null_loop, expand_loop_continue_here, expand_end_loop, + expand_end_null_loop, expand_continue_loop, expand_exit_loop, + expand_exit_loop_if_false, expand_exit_loop_top_cond, + expand_exit_something): Remove. + * tree.h: Remove prototypes. + +2004-05-18 Mike Stump + Devang Patel + + * doc/tm.texi (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument to indicate + if this label is for eh. + * config/darwin-protos.h (darwin_emit_unwind_label): Likewise. + * config/darwin.c (darwin_emit_unwind_label): Likewise. + * dwarf2out.c (output_call_frame_info): Likewise. + * output.h (default_emit_unwind_label): Likewise. + * target.h (unwind_label): Likewise. + * varasm.c (default_emit_unwind_label): Likewise. + + * config/darwin.h (DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE, + DEBUG_FRAME_SECTION, DEBUG_INFO_SECTION, DEBUG_ABBREV_SECTION, + DEBUG_ARANGES_SECTION, DEBUG_MACINFO_SECTION, DEBUG_LINE_SECTION, + DEBUG_LOC_SECTION, DEBUG_PUBNAMES_SECTION, DEBUG_STR_SECTION, + DEBUG_RANGES_SECTION): Define. + +2004-05-18 Zack Weinberg + + * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node) + (cgraph_varpool_hash_node, eq_cgraph_varpool_node) + (cgraph_varpool_node): + Use DECL_UID for the key, not DECL_ASSEMBLER_NAME. + (cgraph_function_possibly_inlined_p): Use the decl itself for + the key, not DECL_ASSEMBLER_NAME. + (change_decl_assembler_name): No need to muck with the hash tables. + (cgraph_node_for_identifier, cgraph_varpool_node_for_identifier): + Delete. + * cgraphunit.c (cgraph_mark_inline_edge): Use the decl itself + for the key, not DECL_ASSEMBLER_NAME. + * cgraph.h: Remove prototypes of deleted functions. + * varasm.c (mark_referenced): Just set TREE_SYMBOL_REFERENCED. + (mark_decl_referenced): New function. + * tree.h: Prototype mark_decl_referenced. + * final.c (output_addr_const) : Call + mark_decl_referenced before assemble_name. + * c-decl.c (finish_decl): Use mark_decl_referenced. + +2004-05-18 Andrew Pinski + Jeff Law + + * tree-ssa-phiopt.c (abs_replacement): New function. + (empty_block_p): New function extracted from... + (candidate_bb_for_phi_optimization): Break out empty block test. + (conditional_replacement): Use empty_block_p. + (value_replacement): Similarly. + + * Makefile.in (tree-ssa-phiopt.o): Depends on flags.h. + * tree-ssa-phiopt.c: Include flags.h. + (conditional_replacement): Remove argument names from prototype. + Minor formatting and comment fixes. + (tree_ssa_phiopt): If conditional_replacement returns false, then + call value_replacement. + (value_replacement): New function. + +2004-05-18 Jeff Law + + * tree-ssa-phiopt.c (replace_phi_with_stmt): New function extracted + from conditional_replacement. + (candidate_bb_for_phi_optimization): Similarly. + (conditional_replacement): Use replace_phi_with_stmt and + candidate_bb_for_phi_optimization. + + * tree-ssa-phiopt.c: Fix various formatting issues. + +2004-05-18 Steven Bosscher + + * config/s390/s390.c (s390_expand_movstr, s390_expand_clrstr, + s390_expand_cmpmem): Do not use expand_start_loop and + expand_end_loop, instead build the loop manually. + +2004-05-18 Alan Modra + + * config/rs6000/rs6000.md (ctrsi_internal3): Delete. + (ctrsi_internal4, ctrdi_internal3, ctrdi_internal4): Delete. + +2004-05-17 Jeff Law + + * toplev.h (flag_delete_null_pointer_checks): Move from here to... + * flags.h (flag_delete_null_pointer_checks): Here. + * tree-flow.h (cprop_into_successor_phis): Add argument to prototype. + * tree-phinodes.c (resize_phi_node): Initialize PHI_ARG_NONZERO. + (add_phi_arg, remove_phi_arg_num): Similarly. + * tree-ssa-copy.c (cprop_into_successor_phis): Propagate nonzero + property into PHI nodes. + * tree-ssa-dom.c: Remove redundant inclusion of flags.h. + (record_equivalences_from_phis): If all PHI arguments are known to be + nonzero, then the result must be nonzero as well. + (cprop_into_phis): Pass nonzero_vars bitmap to cprop_into_successor_phis. + (record_equivalences_from_stmt): Check flag_delete_null_pointer_checks + appropriately. Walk the USE-DEF chains and propagate nonzero property + as appropriate. + * tree.h (PHI_ARG_NONZERO): Define. + (phi_arg_d): Add nonzero flag. + +2004-05-17 Zack Weinberg + + * f: Entire directory removed + + * c-common.h (CTI_G77_INTEGER_TYPE, CTI_G77_UINTEGER_TYPE) + (CTI_G77_LONGINT_TYPE, CTI_G77_ULONGINT_TYPE) + (g77_integer_type_node, g77_uinteger_type_node) + (g77_longint_type_node, or g77_ulongint_type_node): Delete. + * c-common.c (c_common_nodes_and_builtins): Do not initialize + the above set of variables. + + * config/i386/uwin.h: No need to define WIN32_UWIN_TARGET. + * doc/invoke.texi, doc/standards.texi: Remove cross-references + to g77 manual. + +2004-05-17 Steven Bosscher + + PR tree-optimization/15438 + * tree-ssa-operands.c (get_expr_operands): Do not treat malloc + attributed functions as pure or const. + +2004-05-17 Frank Ch. Eigler + + * tree-mudflap.c (mx_register_decls): Tolerate decl trees resulting + from source code with errors. + +2004-05-17 Ranjit Mathew + + Enable tree browser for all front ends. + * Makefile.in (cc1): Moved @TREEBROWSER@ from here... + (BACKEND): ...to here. + +2004-05-17 Jan Hubicka + + * i386.c (construct_container): Do not produce BLKmode registers. + (classify_argument): Properly compute alignment of complex types. + +2004-05-17 H.J. Lu + + 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. + +2004-05-17 Richard Sandiford + + * config/mips/mips.h (MASK_DEBUG_G, TARGET_DEBUG_G_MODE): Delete. + (TARGET_SWITCHES): Remove debugg. + * config/mips/mips.md (adddi3, ashldi3, ashrdi3, lshrdi3): Only handle + TARGET_64BIT. + (subdi3): Replace the define_expand with a define_insn, the latter + renamed from subdi3_internal_3. + (negdi2): Likewise negdi2_internal_2. + (adddi3_internal_[12], subdi3_internal, ashldi3_internal{,2,3}) + (ashrdi3_internal{,2,3}, lshrdi3_internal{,2,3}): Remove patterns + and associated define_splits. + (adddi3_internal): Renamed from adddi3_internal_3. + (ashldi3_internal): Likewise ashldi3_internal4. + (ashrdi3_internal): Likewise ashrdi3_internal4. + (lshrdi3_internal): Likewise lshrdi3_internal4. + +2004-05-17 Richard Sandiford + + * optabs.c (expand_unop): Try implementing negation using subtraction + from zero. + +2004-05-16 John David Anglin + + * pa.md: Fix typo from last change. Remove DFmode move to and from + SAR register. + +2004-05-16 Richard Earnshaw + + PR target/10982 + * arm.md (ne_zeroextractsi): Convert to insn-and-split. + (ne_zeroextractsi_shifted): New pattern. + (ite_ne_zeroextractsi): New pattern. + (ite_ne_zeroextractsi_shifted): New pattern. + +2004-05-15 Steven Bosscher + + * c-gimplify.c (c_genericize): + Replace calls via (*lang_hooks.foo) with lang_hooks.foo. + * c-parse.in : Likewise. + : Likewise. + : Likewise. + * expr.c (expand_var, expand_expr_real_1): Likewise. + * expr.h (expand_expr): Make it a static inline function. + Move prototype for expand_expr_real up before this. + * fold-const.c (fold_relational_hi_lo, fold_relational_const): + Likewise. + * gimplify.c (gimple_boolify, gimplify_addr_expr, + gimplify_asm_expr, gimplify_expr): Likewise. + * tree-cfg.c (dump_tree_cfg, dump_cfg_stats, tree_cfg2vcg, + dump_function_to_file): Likewise. + * tree-dfa.c (dump_immediate_uses, dump_dfa_stats): Likewise. + * tree-inline.c (remap_block, save_body, walk_tree): Likewise. + * tree-into-ssa.c (dump_tree_ssa): Likewise. + * tree-mudflap.c (mf_varname_tree, mf_file_function_line_tree): + Likewise. + * tree-optimize.c (execute_one_pass): Likewise. + * tree-pretty-print.c (dump_generic_bb_buff): Likewise. + * tree-ssa-alias.c (dump_alias_stats, dump_alias_info): Likewise. + + * objc/objc-act.c (objc_build_try_enter_fragment, + objc_build_try_epilogue, objc_build_catch_stmt, + objc_build_finally_prologue): Replace calls via (*lang_hooks.foo) + with lang_hooks.foo (). + +2004-05-15 Roger Sayle + + * builtins.c (simplify_builtin_strcpy): Avoid use of chainon, so + that simplify_builtin doesn't destructively modify its argument. + +2004-05-15 Richard Earnshaw + + * arm/lib1funcs.asm (_lshrdi3, _ashrdi3, _ashldi3): Add ASM + implementations for ARM and Thumb. + * arm/t-arm-elf (LIB1ASMFUNCS): Use them. + +2004-05-15 Thomas Quinot + + * prefix.c (update_path): Replace PREFIX with KEY only + when it matches a full directory name in PATH. + +2004-05-15 Richard Earnshaw + + * arm.h (TARGET_APCS_32): Delete. + (TARGET_MMU_TRAPS): Delete. + (TARGET_CPU_CPP_BUILTINS): Unconditionally define __APCS_32__. Never + define __APCS_26__. + (CPP_SPEC): Remove checking of -mapcs-{26,32}. + (ARM_FLAG_APCS_32, ARM_FLAG_MMU_TRAPS): Delete. + (TARGET_SWITCHES): Remove alignment_traps and apcs-{26,32} switches. + (prog_mode_type): Delete. + (PROMOTE_MODE): Always promote unsigned for HImode. + (SECONDARY_INPUT_RELOAD_CLASS): Simplify. + (MASK_RETURN_ADDR): Simplify. + * arm.c (arm_prgmode): Delete. + (arm_override_options, arm_gen_rotated_half_load): Simplify. + (print_multi_reg, output_return_instruction): Simplify. + (arm_output_epilogue, arm_final_prescan_insn): Simplify. + (arm_return_addr): Simplify. + * arm.md (prog_mode): Delete. + (conds): Simplify. + (zero_extendhisi2, extendhisi2, movhi, movhi_bytes): Simplify. + (rotated_loadsi, movhi_insn_littleend, movhi_insn_bigend): Delete. + (loadhi_si_bigend, loadhi_preinc, loadhi_shiftpreinc): Delete. + (loadhi_shiftpredec): Delete. + (peephole for post-increment on HImode load): Delete. + * arm/crtn.asm: (FUNC_END): Simplify. + * arm/lib1funcs.asm: Remove APCS-26 return macros. + * arm/aof.h, arm/coff.h arm/elf.h arm/linux-elf.h arm/netbsd-elf.h + * arm/netbsd.h arm/pe.h arm/semi.h arm/semiaof.h arm/unknown-elf.h + * arm/vxworks.h arm/wince-pe.h: Tidy TARGET_DEFAULTS and + MULTILIB_DEFAULTS as required. + * arm/t-arm-elf arm/t-linux arm/t-pe arm/t-semi arm/t-wince-pe + * arm/t-xscale-coff arm/t-xscale-elf arm/uclinux-elf: Tidy MULTILIB + variables as required. + * doc/invoke.texi (ARM Options): Remove obsolete flags. + +2004-05-15 Alan Modra + + * config/rs6000/rs6000.c (rs6000_va_arg ): Don't use + UNITS_PER_WORD to calculate gpr size. Re-instate code to set reg + count to 8 to handle n_reg > 2. + +2004-05-15 Joseph S. Myers + + * doc/extend.texi: Update WG14 URL. + +2004-05-15 Steven Bosscher + + * basic-block.h (life_analysis, delete_noop_moves): + Update prototypes. + * bt-load.c (branch_target_load_optimize): Don't take the + insns stream as an argument. Update the life_analysis calls. + * combine.c (combine_instructions): Update delete_noop_moves + calls. + * flow.c (notice_stack_pointer_modification): Don't take the + insns stream as an argument. Work on the flow graph. + (life_analysis): Likewise. + (delete_noop_moves): Likewise. + * passes.c (rest_of_handle_stack_regs): Update reg_to_stack call. + (rest_of_handle_life): Update life_analysis call. + (rest_of_compilation): Likewise, and also update + branch_target_load_optimize call. + * ra.c (reg_alloc): Update life_analysis call. + * reg-stack.c (reg_to_stack): Likewise. Also, don't take + the insns stream as an argument. + * regrename.c (copyprop_hardreg_forward): Update delete_noop_moves + call. + * rtl.c (branch_target_load_optimize, reg_to_stack): Update + prototypes. + * value-profile.c (branch_prob): Update life_analysis call. + * web.c (web_main): Work on the CFG, not on the insns stream. + + * config/ip2k/ip2k.c (ip2k_reorg): Update life_analysis calls. + * config/m68hc11/m68hc11.c (m68hc11_reorg): Likewise. + * config/sh/sh.c (sh_output_mi_thunk): Likewise. + +2004-05-15 Joseph S. Myers + + PR c/15444 + * c-format.c (avoid_dollar_number): New function. + (check_format_info_main): Call avoid_dollar_number when operand + numbers might occur but has_operand_number == 0. + +2004-05-14 Richard Earnshaw + + * arm.md (all peephole2 patterns): Use predicates that validate + register classes as appropriate. + +2004-05-14 Steven Bosscher + + PR opt/14472 + * tree-tailcall.c (process_assignment): Use STRIP_NOPS to + ignore type conversions that do not inhibit tail calling. + (find_tail_calls): Likewise. + +2004-05-14 Jeff Law + + * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't even + bother marking bypassed virtuals for out-of-ssa. Instead merge + bypassed virtuals into vars_to_rename just before into-ssa pass. + + * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Reorganize + so that it picks up more opportunities to eliminate ABS expressions + or turn them into negations. + +2004-05-14 Steven Bosscher + + * passes.c (rest_of_handle_null_pointer): Remove. + (rest_of_handle_cse): Don't call rest_of_handle_null_pointer. + (rest_of_compilation): Likewise. + * rtl.h (delete_null_pointer_checks): Remove prototype. + * gcse.c (rd_kill, rd_gen, reaching_defs, rd_out, ae_in, ae_out): + Remove declarations. + (get_bitmap_width, alloc_rd_mem, free_rd_mem, handle_rd_kill_set, + compute_kill_rd, compute_rd, alloc_avail_expr_mem, + free_avail_expr_mem, compute_ae_gen, expr_killed_p, compute_ae_kill, + expr_reaches_here_p, computing_insn, def_reaches_here_p, + can_disregard_other_sets, handle_avail_expr, classic_gcse, + one_classic_gcse_pass, invalidate_nonnull_info, + delete_null_pointer_checks_1, delete_null_pointer_checks, + expr_reached_here_p_work): Remove. + (gcse_main): Do not perform classic GCSE when optimizing for size. + (alloc_pre_mem, free_pre_mem): Don't touch ae_in and ae_out, they + are never used. + +2004-05-14 Andrew Pinski + + PR optimization/14466 + * tree-complex.c (make_temp): Remove. + (gimplify_val): Replace make_temp with make_rename_temp + and add NULL as the second argument. + (expand_complex_div_wide): Likewise. + * tree-dfa.c (make_rename_temp): New function. + * tree-flow.h (make_rename_temp): Declare. + * tree-sra.c (make_temp): Remove. + (lookup_scalar): Replace make_temp with make_rename_temp. + (create_scalar_copies): Likewise. + * tree-ssa-phiopt.c (conditional_replacement): When we + get non gimple create a temporary variable to hold the + casted expression. + +2004-05-14 Paul Brook + + * stor-layout.c (update_alignment_for_field): Use + targetm.align_anon_bitfield. + * target-def.h (TARGET_ALIGN_ANON_BITFIELD): Define. + (TARGET_INITIALIZER): Use it. + * target.h (struct gcc_target): Add align_anon_bitfield. + * config/arm/arm.c (arm_align_anon_bitfield): New function. + (TARGET_ALIGN_ANON_BITFIELD): Define. + * doc/tm.texi: Document TARGET_ALIGN_ANON_BITFIELD. + +2004-05-13 Zack Weinberg + + * tree.def (documentation): Remove mention of class 'b'. + (BLOCK): Now in class 'x'. + * c-common.c (verify_tree): Remove case 'b'. + * c-typeck.c (same_translation_unit_p): Change 'b' to 'x'. + * calls.c (calls_function_1): Control cannot get past the switch + when exp is a BLOCK. + * print-tree.c (print_node): Move code for class 'b' to the class + 'c'/'x' switch, as case BLOCK. + * tree.c (tree_size, make_node_stat, tree_node_structure): Likewise. + (unsafe_for_reeval, substitute_placeholder_in_expr) + (stabilize_reference_1): Remove case 'b'. + * tree-browser.c (browse_tree): Change all tests for TREE_CODE_CLASS + of something being 'b' to tests for TREE_CODE of something being + BLOCK. + * tree-ssa-operands.c (get_expr_operands): Likewise. + +2004-05-13 Diego Novillo + + * tree-gimple.c: Rename from tree-simple.c. + * tree-gimple.h: Rename from tree-simple.h. + * c-gimplify.c: Rename from c-simplify.c + * Makefile.in, c-decl.c, gimple-low.c, gimplify.c, + langhooks.c, tree-alias-ander.c, tree-alias-common.c, + tree-complex.c, tree-dfa.c, tree-flow.h, tree-inline.c, + tree-into-ssa.c, tree-iterator.c, tree-mudflap.c, + tree-nested.c, tree-nomudflap.c, tree-outof-ssa.c, tree-sra.c, + tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-copyrename.c, + tree-ssa-dce.c, tree-ssa-live.c, tree-ssa-pre.c, tree-ssa.c: + Update. + +2004-05-14 Ranjit Mathew + + * doc/sourcebuild.texi: Mention libbanshee and libmudflap. + +2004-05-13 Andrew Pinski + + * tree-ssa.c (delete_tree_ssa): XFREE + bitmaps allocated with BITMAP_XMALLOC. + + * tree-ssa-pre.c (execute_pre): Free ephi_use_pool and + idfs_cache at the end of the function. + + * tree-ssa-live.c (calculate_live_on_entry): Free saw_def + at the end of the function. + + * tree-ssa-dce.c (perform_tree_ssa_dce): Free + el at the end of the function. + + * tree-into-ssa.c (insert_phi_nodes_for): XFREE + bitmaps allocated with BITMAP_XMALLOC. + + * loop-unswitch.c (unswitch_single_loop): Free bbs at + the end. + + * final.c (shorten_branches): Free uid_shuid before + reallocating it. + + * bb-reoder.c (connect_traces): Free cold_traces at the end. + +2004-05-13 Jeff Law + + * tree-ssa-live.c (calculate_live_on_entry): Ignore virtual + variables. Simplify slightly by using USE_OP/DEF_OP instead + of USE_OP_PTR/DEF_OP_PTR and dereferencing the result. + + * tree-into-ssa.c (compute_global_livein): Use EXECUTE_IF_SET_IN_BITMAP + rather than iterating through the blocks testing each bit in + livein to initialize the worklist. + (mark_def_sites): Remove useless checks of KILLS for virtual + operands. + + * tree-ssa-forwprop.c (record_single_argument_cond_exprs): Accept + new parameters for the statement and variable worklist as well + as a bitmap of interesting SSA_NAMEs. Walk over the statement + worklist recording interesting variables in the variable worklist + and bitmap. Handle casts between integral and boolean types. + (substitute_single_use_vars): Accept new parameters for the statement + and variable worklist. When a substitution is made add a new + entry to the statement worklist. Handle casts between integral + and boolean types. + (tree_ssa_forward_propagate_single_use_vars): Rework to pass + worklists to children. Iterate until the statement worklist + is empty. + +2004-05-13 Andrew Pinski + + * tree-outof-ssa.c (rewrite_vars_out_of_ssa): Free map at + the end of the block. + + * tree-into-ssa.c (def_blocks_free): XFREE bitmaps allocated + with BITMAP_XMALLOC. + + * tree-ssa-alias.c (delete_alias_info): XFREE bitmaps allocated + with BITMAP_XMALLOC. + + * tree-ssa-dom.c (tree_ssa_dominator_optimize): + Free nonzero_vars at the end of the function. + + * convert.c (convert_to_integer): Make a CONVERT_EXPR when there is a + need to generate code instead of a NOP_EXPR. + +2004-05-13 Ian Lance Taylor + + * gcc.c (default_compilers): Fill out initializers for new Fortran + entries. + +2004-05-13 Paul Brook + + * config/arm/arm.h (PCC_BITFIELD_TYPE_MATTERS): Define. + +2004-05-13 Paul Brook + + * config/arm/arm.c (arm_default_short_enums): New function. + (TARGET_DEFAULT_SHORT_ENUMS): Define. + +2004-05-13 Diego Novillo + + Merge from tree-ssa-20020619-branch. + + * Makefile.in (reload1.o-warn): Add. + (tree-alias-ander.o-warn): Add. + (GMPLIBS): Define. + (GMPINC): Define. + (BANSHEELIB): Define. + (BANSHEEINC): Define. + (TREE_DUMP_H): Define. + (TREE_SIMPLE_H): Define. + (TREE_FLOW_H): Define. + (LIBDEPS): Add BANSHEELIB. + (INCLUDES): Add BANSHEEINC and GMPINC. + (C_AND_OBJC_OBJS): Add c-simplify.o, tree-mudflap.o, + c-mudflap.o and c-pretty-print.o. + (C_OBJS): Remove c-pretty-print.o. + (OBJS-common): Remove sibcall.o. + Add tree-cfg.o, tree-dfa.o, tree-eh.o, + tree-ssa.o, tree-optimize.o, tree-simple.o, + tree-alias-type.o, gimplify.o, tree-pretty-print.o, + tree-into-ssa.o, tree-outof-ssa.o, tree-alias-common.o, + tree-ssa-ccp.o, @ANDER@, tree-ssa-dce.o, tree-ssa-copy.o, + tree-nrv.o, tree-ssa-copyrename.o, tree-ssa-pre.o, + tree-ssa-live.o, tree-ssa-operands.o, tree-ssa-alias.o, + tree-ssa-phiopt.o, tree-ssa-forwprop.o, tree-nested.o, + tree-ssa-dse.o, tree-ssa-dom.o, domwalk.o, + tree-tailcall.o, gimple-low.o, tree-iterator.o, + tree-phinodes.o, tree-ssanames.o, tree-sra.o, + tree-complex.o, tree-ssa-loop.o, rtl-profile.o and + tree-profile.o. + (OBJC-archive): Add tree-nomudflap.o. + (cc1): Add dependency on @TREEBROWSER@. + (c-decl.o): Add dependency on TREE_DUMP_H. + (c-dump.o): Likewise. + (c-common.o): Add dependency on tree-iterator.h + (c-pretty-print.o): Add dependency on DIAGNOSTIC_H. + (gtype-desc.o): Add dependency on TREE_FLOW_H. + (tree.o): Add dependency on tree-iterator.h, + BASIC_BLOCK_H and TREE_FLOW_H. + (tree-dump.o): Depend on TREE_DUMP_H instead of tree-dump.h. + (langhooks.o): Add dependency on TREE_SIMPLE_H. + (tree-alias-type.o, tree-alias-ander.o, + tree-alias-common.o, tree-ssa.o, tree-into-ssa.o, + tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o, + tree-ssa-phiopt.o, tree-nrv.o, tree-ssa-copy.o, + tree-ssa-dom.o, tree-ssanames.o, tree-phinodes.o, + domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o, + tree-ssa-pre.o, tree-cfg.o, tree-tailcall.o, + tree-nested.o, tree-iterator.o, tree-dfa.o, + tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o, + tree-ssa-alias.o, tree-optimize.o, c-simplify.o, + gimplify.o, gimple-low.o, tree-browser.o, tree-simple.o, + tree-mudflap.o, c-mudflap.o, tree-nomudflap.o, + tree-pretty-print.o, tree-ssa-dce.o, tree-ssa-ccp.o, + tree-sra.o, tree-complex.o, tree-profile.o, + rtl-profile.o): New rules. + (function.o): Add dependency on basic-block.h + (expr.o): Add dependency on tree-iterator.h. + (sibcall.o): Remove. + (profile.o): Depend on TREE_FLOW_H instead of TREE_H. + (cfg.o): Add dependency on TIMEVAR_H. + (cfghooks.o): Add dependency on TREE_FLOW_H. + (reg-stack.o): Add dependency on basic-block.h. + (GTFILES): Add hwint.h, tree-mudflaph.c, tree-flow.h, + c-objc-common.c, c-common.c, c-parse.in, tree-ssanames.c, + tree-eh.c, tree-phinodes.c, tree-cfg.c, tree-dfa.c, + tree-ssa-ccp.c, tree-iterator.c, gimplify.c, + tree-alias-type.h, tree-alias-common.h, + tree-alias-type.c, tree-alias-common.c, + tree-ssa-operands.h, tree-ssa-operands.c, tree-profile.c, + rtl-profile.c and tree-nested.c. + (gt-tree-alias-common.h, gt-tree-mudflap.h, + gt-tree-ssa-ccp.h, gt-tree-eh.h, gt-tree-ssanames.h, + gt-tree-iterator.h, gt-gimplify.h, gt-tree-phinodes.h, + gt-tree-cfg.h, gt-tree-nested.h): New rules. + (TEXI_GCCINT_FILES): Add cfg.texi and tree-ssa.texi. + * basic-block.h: Include predict.h + (struct edge_def): Add GTY marker. + Change field 'insns' to be a union of tree and rtx. + (EDGE_TRUE_VALUE): Define. + (EDGE_FALSE_VALUE): Define. + (EDGE_EXECUTABLE): Define. + (struct bb_ann_d): Forward declare. + (struct basic_block_def): Add GTY marker. + Remove fields head_tree and end_tree. + Add fields stmt_list, rbi and tree_annotations. + (struct reorder_block_def): Define. + (basic_block_info): Add GTY marker. + (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Change to global + variables instead of macros. + (flow_call_edges_add): Remove declaration. + (make_eh_edge): Remove declaration. + (brief_dump_cfg, find_edge, tree_predicted_by_p, + rtl_predicted_by_p, tree_predict_edge, rtl_predict_edge, + predict_edge_def, rtl_make_eh_edge, find_basic_blocks, + cleanup_cfg, delete_unreachable_blocks, merge_seq_blocks, + alloc_rbi_pool, initialize_bb_rbi, free_rbi_pool): Declare. + (try_redirect_by_replacing_jump): Modfiy return type to + edge instead of bool. + * bb-reorder.c (copy_bb): Call duplicate_block + instead of cfg_layout_duplicate_bb. + (copy_bb_p): Call can_duplicate_block_p instead of + cfg_layout_can_duplicate_bb_p. + * bitmap.c (bitmap_first_set_bit): Abort if word + wasn't found. + (bitmap_last_set_bit): Likewise. + * builtin-types.def (DEF_FUNCTION_TYPE_2): Add + (DEF_FUNCTION_TYPE_3): Add. + * builtins.c (c_strlen): Make extern. + (builtin_save_expr): New. + (expand_builtin_nonlocal_goto): New. + (expand_builtin_constant_p): Remove. + (expand_builtin_mathfn): Call builtin_save_expr instead + of save_expr. + (expand_builtin_mathfn_2): Likewise. + (expand_builtin_strcmp): Likewise. + (expand_builtin_strncmp): Likewise. + (expand_builtin_strcat): Likewise. + (fold_builtin_cabs): Likewise. + (expand_builtin_alloca): Don't trigger if -fmudflap is + given. + (build_string_literal): Set TREE_INVARIANT on new node. + (expand_builtin_profile_fun): New. + (round_trampoline_addr): New. + (expand_builtin_init_trampoline): New. + (expand_builtin_adjust_trampoline): New. + (expand_builtin) : Call simplify_builtin_next_arg. + : Return const0_rtx; + : + Handle. + (fold_builtin_expect): New. + (fold_builtin_isascii): Don't return non-constant results + in GIMPLE form. + (fold_builtin_isdigit): Likewise. + (fold_builtin_1): New. + (fold_builtin): Call it. + (build_function_call_expr): Update call to build a new + CALL_EXPR. + (purge_builtin_constant_p): Remove. + (simplify_builtin, simplify_builtin_memcmp, + simplify_builtin_strcmp, simplify_builtin_strncmp, + simplify_builtin_strpbrk, simplify_builtin_strstr, + simplify_builtin_strchr, simplify_builtin_strrchr, + simplify_builtin_strcat, simplify_builtin_strncat, + simplify_builtin_strspn, simplify_builtin_strcspn, + simplify_builtin_next_arg, simplify_builtin_va_start, + simplify_builtin_sprintf): New. + * builtins.def (BUILT_IN_STACK_ALLOC, + BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE, + BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE, + BUILT_IN_NONLOCAL_GOTO, BUILT_IN_PROFILE_FUNC_ENTER, + BUILT_IN_PROFILE_FUNC_EXIT): Define. + * c-common.c: Include tree-iterator.h and hashtab.h. + (lang_statement_code_p): Declare. + (lang_gimplify_stmt): Declare. + (fix_string_type): Set TREE_INVARIANT for value. + (pointer_int_sum): Rely on build to set TREE_CONSTANT. + (c_type_hash): New. + (c_common_get_alias_set): Handle multiple type nodes + referring to "the same" type, currently for C90 only. + (c_add_case_label): Use create_artificial_label. + (finish_label_address_expr): Don't set TREE_CONSTANT on + result. + (c_expand_expr): Don't handle STMT_EXPR. + (handle_alias_attribute): Marke aliased variables to be + TREE_STATIC. + (handle_nonnull_attribute): Initialize arg_num. + (check_function_nonnull): Likewise. + (c_walk_subtrees): New. + (c_estimate_num_insns_1): Don't handle + EXPR_WITH_FILE_LOCATION nor FILE_STMT. + (c_decl_uninit_1): Remove. + (c_decl_uninit): Remove. + (c_warn_unused_result): New. + * c-common.def (ASM_STMT): Change number of operands + to 4. + (FILE_STMT): Remove. + * c-common.h (lang_expand_stmt, lang_expand_decl_stmt): + Remove. + (lang_gimplify_stmt): Add. + (expand_stmt): Remove. + (ASM_CV_QUAL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS, + ASM_CLOBBERS, STMT_EXPR_WARN_UNUSED_RESULT, + ASM_VOLATILE_P, FILE_STMT_FILENAME_NODE, + FILE_STMT_FILENAME, STMT_LINENO, STMT_LINENO_FOR_FN_P, + ASM_INPUT_P, DECL_C_HARD_REGISTER): Remove. + (genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt, + genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt, + genrtl_while_stmt, genrtl_do_stmt, genrtl_return_stmt, + genrtl_for_stmt, genrtl_break_stmt, genrtl_continue_stmt, + genrtl_scope_stmt, genrtl_switch_stmt, genrtl_case_label, + genrtl_compound_stmt, genrtl_asm_stmt, + genrtl_cleanup_stmt, c_decl_uninit): Remove. + (c_do_switch_warnings, c_gimplify_expr, c_walk_subtrees, + c_tree_chain_matters_p, c_warn_unused_result, + c_genericize, c_gimplify_stmt, stmt_expr_last_stmt): + Declare. + * c-convert.c (convert): Make convert work when + converting to compatible types across translation unit. + * c-decl.c: Include langhooks.h, tree-mudflap.h, + tree-simple.h, diagnostic.h and tree-dump.h + (merge_decls): Initialize oldtype to NULL. + (finish_decl): Use DECL_HARD_REGISTER instead of + DECL_C_HARD_REGISTER. + (check_bitfield_type_and_width): Check for null + lang_type_specific when check the precision of an enum. + (grokdeclarator): Immediately layout an ARRAY_TYPE used + in a pointer-to-array declarator. + (finish_struct): Clear allocated struct lang_type. + (finish_enum): Set enum_min and enum_max. Set + TYPE_MIN/MAX_VALUE to the limits of the compatible type, + not to the enumerators. + (set_decl_nonlocal): New. + (store_parm_decls): Use it via walk_tree. + (c_finalize): New. + (finish_function): When !targetm.have_ctors_dtors, + record static constructors and destructors here... + (c_expand_body_1): ... not here. + (c_expand_decl): Rename from c_expand_decl_stmt. + Handle all C-specific expansion semantics. + * c-dump.c (dump_stmt): Use EXPR_LOCUS instead of + STMT_LINENO. + * c-format.c (handle_format_arg_attribute): Initialize + format_num. + * c-lang.c: Include tree-inline.h + (LANG_HOOKS_EXPAND_DECL, + LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P, + LANG_HOOKS_TREE_INLINING_WALK_SUBTREES, + LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P, + LANG_HOOKS_GIMPLIFY_EXPR, LANG_HOOKS_TYPES_COMPATIBLE_P): Define. + (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT, + LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Remove. + (c_types_compatible_p): New. + * c-mudflap.c: New file. + * c-objc-common.c: Include tree-mudflap.h + (start_cdtor, finish_cdtor): Collapse + together into + (build_cdtor): ...here. Update to construct a complete tree + for the function. No need to call push_scope, pop_scope, or + clear_last_expr, or set current_function_cannot_inline. + (c_missing_noreturn_ok_p): Change prototype to return + bool. + (c_objc_common_init): Don't set lang_missing_noreturn_ok_p. + * c-opts.c (c_common_handle_option): Move handling of -fdump- to + opts.c. + (c_common_post_options): Don't ever use rtl inlining. + * c-parse.in: Use EXPR_LOCUS instead of STMT_LINENO. + * c-pragma.c (handle_pragma_redefine_extname): Define + always. + (init_pragma): Activate #pragma redefine_extname for mudflap. + * c-pretty-print.c (pp_c_statement): Remove FILE_STMT. + (pp_c_initializer): Accept any type CONSTRUCTOR. + (pp_c_initializer_list): Fix code expectations for VECTOR_TYPE and + COMPLEX_TYPE. + (decl_name_str): New local function. + (pp_c_direct_declarator): Call it. + (pp_c_primary_expression): Call it. + (pp_c_id_expression): Call it. + (pp_c_statement): Call it. + (print_c_tree): Create new pp object. + * c-pretty-print.h (pp_c_tree_decl_identifier, + print_c_tree): Declare. + * c-semantics.c: Include langhooks.h + (lang_expand_stmt, lang_expand_decl_stmt, + find_reachable_label_1, find_reachable_label, + expand_unreachable_if_stmt, expand_unreachable_stmt, + genrtl_do_stmt_1): Remove. + (begin_stmt_tree): Don't check for changed filename. + Call annotate_with_locus. + (finish_stmt_tree): Don't set line for end of function. + (build_stmt): Don't check type nodes for + side effects. + (build_stmt): Set TREE_SIDE_EFFECTS. + Set EXPR_LOCUS instead of STMT_LINENO. + (lang_expand_stmt, lang_expand_decl_stmt, + expand_cond, genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt, + genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt, + genrtl_while_stmt, genrtl_do_stmt_1, genrtl_do_stmt, + genrtl_return_stmt, genrtl_for_stmt, genrtl_break_stmt, + genrtl_continue_stmt, genrtl_scope_stmt, genrtl_switch_stmt, + genrtl_case_label, genrtl_compound_stmt, genrtl_asm_stmt, + genrtl_cleanup_stmt, expand_stmt, find_reachable_label, + find_reachable_label_1, expand_unreachable_if_stmt, + expand_unreachable_stmt): Remove. + (prep_stmt): Use EXPR_LOCUS instead of STMT_LINENO. + * c-simplify.c: New file. + * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Define. + (struct lang_type): Add fields enum_min and enum_max. + (c_expand_decl_stmt, c_missing_noreturn_ok_p): Remove. + (c_expand_decl, c_missing_noreturn_ok_p, + c_types_compatible_p): Declare. + * c-typeck.c (tagged_types_tu_compatible_p): Allow for + compiler-generated TYPE_DECLs without a DECL_ORIGINAL_TYPE. + (default_function_array_conversion): Rely on build to + set TREE_CONSTANT. + (parser_build_binary_op, pointer_diff): Likewise. + (build_unary_op, build_binary_op): Likewise. + (build_array_ref): + (build_external_ref): Set TREE_INVARIANT. + (build_c_cast, pop_init_level): Likewise. + (process_init_element): Use ASM_VOLATILE_P. + (build_asm_expr): Adapt to GENERIC/GIMPLE syntax. + (c_finish_case): Call c_do_switch_warnings. + * c.opt (fdump-): Remove. + * calls.c (try_to_integrate): Remove. + (prepare_call_address): Replace fndecl arg with a + precomputed static chain value. + (emit_call_1): New argument for full call expr. + (flags_from_decl_or_type): Call special_function_p. + (initialize_argument_information): Add argument + may_tailcall. + (purge_reg_equiv_notes): New. + (expand_call): Do not try to expand calls inline. + (fixup_tail_calls): New. + * cfg.c: Include timevar.h and ggc.h. + (bb_pool, edge_pool): Remove. + (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Declare. + (entry_exit_blocks): Remove. + (rbi_pool): Declare. + (init_flow): Do not create pools. + Allocate entry/exit block. + (free_edge, alloc_block, expunge_block, unchecked_make_edge): Use GGC. + (alloc_rbi_pool, free_rbi_pool, initialize_bb_rbi): New. + (unlink_block): Clear b->prev_bb and b->next_bb. + (compact_blocks): Clear all slots of BASIC_BLOCK array. + (dump_flow_info): Work on trees too. + (dump_cfg_bb_info): New. + (brief_dump_cfg): New. + * cfganal.c (need_fake_edge_p, flow_call_edges_add): Remove. + (find_edge): New. + * cfgbuild.c (rtl_make_eh_edge): Rename from + make_eh_edge. Update all users. + (find_basic_blocks): Don't call VARRAY_FREE on + basic_block_info. + * cfgcleanup.c (outgoing_edges_match): Initialize newpos1 + and newpos2. + (delete_unreachable_blocks): Return changed status. + (merge_seq_blocks): New. + * cfghooks.c: Include tree-flow.h + (tree_register_cfg_hooks, ir_type): New. + (redirect_edge_and_branch): Change return type to edge. + (predict_edge, predicted_by_p, can_duplicate_block_p, + duplicate_block, block_ends_with_call_p, + block_ends_with_condjump_p, flow_call_edges_add): New. + * cfghooks.h (redirect_edge_and_branch): Change return + type to edge. + (predict_edge, predicted_by_p, can_duplicate_block_p, + duplicate_block, block_ends_with_call_p, + block_ends_with_condjump_p, flow_call_edges_add): Declare. + (redirect_edge_and_branch): Change return type to edge. + (struct cfg_hooks): Add fields block_ends_with_call_p, + block_ends_with_condjump_p, flow_call_edges_add, + predict_edge, predicted_by_p, can_duplicate_block_p and + duplicate_block. + (tree_cfg_hooks, ir_type, tree_register_cfg_hooks): Declare. + * cfglayout.c (cfg_layout_pool, cfg_layout_initialize_rbi): Removed. + (fixup_reorder_chain): Use initialize_bb_rbi. + (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Hookized. + (cfg_layout_initialize): Use cfg.c rbi pool manipulation functions. + (can_copy_bbs_p, copy_bbs): Use cfghooks for bb duplication. + (insn_locators_initialize): Use new info about blocks. + * cfglayout.h (typedef struct reorder_block_def): Moved to + basic_block.h. + (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Declaration + removed. + * cfgloop.c: Include tree.h and tree-flow.h. + * cfgloop.h (create_loop_notes): Declare. + * cfgloopmanip.c (create_loop_notes): New. + * cfgrtl.c (cfg_layout_create_basic_block): Use initialize_bb_rbi. + (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Fill in can_duplicate_block_p + and duplicate_block fields. + (create_basic_block_structure): Don't look at + RTX_INTEGRATED_P. + (rtl_block_ends_with_call_p): New. + (rtl_block_ends_with_condjump_p): New. + (need_fake_edge_p): Moved from cfganal.c. + (rtl_flow_call_edges_add): Moved from cfganal.c (flow_call_edges_add). + (rtl_cfg_hooks): Add rtl_block_ends_with_call_p, + rtl_block_ends_with_condjump_p, rtl_flow_call_edges_add. + (cfg_layout_rtl_cfg_hooks): Ditto. + * cgraph.c (cgraph_mark_reachable_node): Don't force nested + functions to be reachable. + * cgraphunit.c (decide_is_function_needed): + * cgraphunit.c (decide_is_function_needed): Nested functions of extern + inline functions don't need to be output. + (cgraph_assemble_pending_functions): Don't do anything + special for nested functions. + (cgraph_mark_functions_to_output): Likewise. + (cgraph_finalize_function): Don't zap DECL_STRUCT_FUNCTION. + (cgraph_analyze_function): Use estimate_num_insns. + (cgraph_mark_functions_to_output): Likewise. + (cgraph_estimate_growth, cgraph_clone_inlined_nodes): Likewise. + (cgraph_expand_function): Allow functions to not be + emitted. + (cgraph_remove_unreachable_nodes): + (cgraph_recursive_inlining_p): Simplify. + (lookup_recursive_calls, + cgraph_decide_recursive_inlining): New. + (cgraph_decide_inlining_*): Update calls of + cgraph_mark_inline. + * combine.c (get_pos_from_mask): Always set *plen. + * common.opt (fdump-, fmudflap, fmudflapth, fmudflapir, + ftree-based-profiling, ftree-ccp, ftree-ch, + ftree-combine-temps, ftree-copyrename, ftree-dce, + ftree-dominator-opts, ftree-dse, ftree-loop-optimize, + ftree-points-to, ftree-pre, ftree-sra, ftree-ter, + ftree-lrs): Add. + * config.in (HAVE_LD_PIE, HAVE_BANSHEE, PREFIX_INCLUDE_DIR): + Undefine. + * configure.ac: Add --enable-tree-browser option. + Add --with-libbanshee option. + Add GMPLIBS and GMPINC. + * configure: Regenerate. + * coverage.c (tree_ctr_tables): New. + (coverage_counter_alloc): Use it. + (build_ctr_info_value): Ditto. + (coverage_counter_ref): Ditto. Rename to rtl_coverage_counter_ref. + (tree_coverage_counter_ref): New. + * coverage.h (coverage_counter_ref): Remove declaration. + (rtl_coverage_counter_ref): Declare. + (tree_coverage_counter_ref): Declare. + * cppexp.c (append_digit): Rearrange unsignedp/overflow setting. + (eval_token, num_binary_op, num_part_mul, num_div_op): Likewise. + * cse.c (fold_rtx): Do not handle CONSTANT_P_RTX. + (struct cse_basic_block_data): Rename enum values to not + conflict with profile.h; update all uses. + * dbxout.c (dbxout_symbol_location): Don't mention integrate.c + in comments. + * defaults.h (TRAMPOLINE_ALIGNMENT): Move from function.c. + * diagnostic.h (debug_output_buffer, dump_generic_node, + print_generic_stmt, print_generic_stmt_indented, + print_generic_expr, print_generic_decl, + debug_generic_expr, debug_generic_stmt, debug_c_tree): + Declare. + * dominance.c: Cache immediate dominators. + * domwalk.c: New file. + * domwalk.h: New file. + * dwarf2out.c (is_fortran): Support DW_LANG_Fortran95. + (gen_subprogram_die): Generate a DIE for a named + return value. + (loc_descriptor_from_tree): Treat RESULT_DECL like VAR_DECL. + (add_location_or_const_value_attribute): Likewise. + (add_bound_info): Likewise. + (gen_decl_die): Likewise. + * emit-rtl.c (maybe_set_first_label_num): New. + (copy_most_rtx): Don't copy the integrated flag. + Copy the new return_val flag. + * et-forest.c (MAX_NODES): Define. + (record_path_before_1): Abort if len is greater than + MAX_NODES. + * except.c (gen_eh_region, gen_eh_region_cleanup, gen_eh_region_try, + gen_eh_region_catch, gen_eh_region_allowed, + gen_eh_region_must_not_throw, get_eh_region_number, + get_eh_region_may_contain_throw, get_eh_region_tree_label, + set_eh_region_tree_label, expand_resx_expr): New. + (expand_eh_region_start, expand_start_catch): Use them. + (expand_end_catch): Tidy. + (note_eh_region_may_contain_throw): Take region argument. + (note_current_region_may_contain_throw): New. + (get_exception_filter): Export. + (collect_eh_region_array): Export. + (remove_unreachable_regions): Check ERT_TRY based on reachability + of catches, not reachability of continue_label. Never remove + ERT_MUST_NOT_THROW regions. + (collect_rtl_labels_from_trees): New. + (convert_from_eh_region_ranges): Use it. + (connect_post_landing_pads): Handle dying cleanups. + (struct reachable_info): Add callback data. + (add_reachable_handler): Invoke the callback. + (foreach_reachable_handler): New. + (reachable_handlers): Use it. + (arh_to_landing_pad, arh_to_label): New. + (can_throw_internal_1): Split out from can_throw_internal. + (can_throw_external_1): Similarly. + * except.h: Update. + * explow.c (emit_stack_save): Remove savearea mode check. + (update_nonlocal_goto_save_area): New. + (allocate_dynamic_stack_space): Use it. + (probe_stack_range): Never emit loop notes. + * expmed.c (extract_fixed_bit_field): Always propagate the + target for the shift if it is a REG. + * expr.c: Include tree-iterator.h + (is_zeros_p): Remove. + (categorize_ctor_elements_1, categorize_ctor_elements): New. + (count_type_elements): New. + (mostly_zeros_p): Use them. + (expr_wfl_stack): Remove. + (convert_move): Do nothing if to and from are the same. + (emit_block_move_via_loop): Don't emit LOOP notes. + (emit_move_insn): Don't handle CONSTANT_P_RTX. + (emit_move_insn_1): Don't generate inline warnings. + (expand_vars, expand_var): Split from ... + (expand_expr_1): ... here. + (expand_expr_real, expand_expr_real_1): Use new macros + EXPR_LOCATION and EXPR_HAS_LOCATION. + * expr.h (simplify_builtin_fputs, + simplify_builtin_strcpy, simplify_builtin_strncpy, + expand_var, fixup_tail_calls, + update_nonlocal_goto_save_area): Declare. + (lookup_static_chain, expand_inline_function, + mark_seen_cases): Remove. + (prepare_call_address): Change type of 2nd argument to + rtx. + * final.c (profile_function): Update static chain test. + (final): Don't look at RTX_INTEGRATED_P. + * flags.h (flag_mudflap, flag_mudflap_threads, + flag_mudflap_ignore_reads, flag_tree_pre, flag_tree_ccp, + flag_tree_dce, flag_tree_combine_temps, + flag_tree_live_range_split, flag_tree_dom, flag_tree_ch, + flag_tree_dse, flag_tree_sra, flag_tree_copyrename, + flag_tree_points_to): Declare. + (enum pta_type): Declare. + * flow.c (lang_missing_noreturn_ok_p): Remove. + (check_function_return_warnings): Remove. + (update_life_info): Update comments. + (free_basic_block_vars): Don't call VARRAY_FREE for + basic_block_info. + (regno_uninitialized): Remove. + * fold-const.c (int_const_binop): Make extern. + (non_lvalue): Rely on build to set TREE_CONSTANT. + (operand_equal_p): Replace only_const argument with + flags. Allow pure functions if OEP_PURE_SAME. + (fold): Use OEP_ONLY_CONST. + (invert_truthvalue) Break if argument is of + boolean type. + (fold_relational_hi_lo, + nondestructive_fold_binary_to_constant, + nondestructive_fold_unary_to_constant, + fold_read_from_constant_string): New. + * function.c (struct function): Remove calls_constant_p. + (current_function_calls_constant_p): Remove. + (inline_function_decl): Remove. + (put_var_into_stack): Don't use it. + (fix_lexical_addr): Likewise. + (inline_function_decl): Remove extern declaration. + (TRAMPOLINE_ALIGNMENT): Move to defaults.h. + (trampolines_created): Move to varasm.c. + (free_after_compilation): Update for removed fields. + (allocate_struct_function): Likewise. + (delete_handlers, lookup_static_chain): Remove. + (fix_lexical_addr): Don't consider non-local variable refs. + (trampoline_address): Remove. + (round_trampoline_addr): Move to builtins.c. + (adjust_trampoline_addr): Remove. + (expand_function_start): Update for changes to static chain + and nonlocal goto handling. + (initial_trampoline): Move to varasm.c. + (expand_function_end): Don't build trampolines or kill + unreferenced nonlocal goto labels. + (free_after_compilation): Don't set it. + (expand_function_end): Likewise. + (setjmp_vars_warning): Rename from + uninitialized_vars_warning, remove uninitialized vars warning. + (uninitialized_vars_warning): Remove old comment + and check for DECL_INITIAL, replace with a check of TREE_NO_WARNING + and do not call the langhook. + (expand_function_start, expand_function_end): Don't do + function instrumentation here. + (clear_block_marks): Rename from reorder_blocks_0, export. + (blocks_nreverse): Export. + (uninitialized_vars_warning): Use DECL_RTL_SET_P to test for presence + of rtl. + (reset_block_changes, record_block_change, finalize_block_changes, + check_block_change, free_block_changes): New functions. + (assign_parms): Setting of current_function_stdarg + moved ... + (allocate_struct_function): ... here. + * function.h (struct function): Remove x_nonlocal_labels, + x_nonlocal_goto_handler_slots, x_nonlocal_goto_stack_level, + x_context_display, x_trampoline_list, needs_context. + Add static_chain_decl, nonlocal_goto_save_area. + (struct function): Remove x_clobber_return_insn. + Add tail_call_emit field, last_label_uid, + unexpanded_var_list, dont_emit_block_notes, + ib_boundaries_block, function_end_locus and saved_tree/saved_args. + (clear_block_marks): Declare. + * gcc.c (MFWRAP_SPEC, MFLIB_SPEC): Add -fmudflapth support. + (mfwrap_spec, mflib_spec): Declare. + (cpp_unique_options, cc1_options): Ditto. + (default_compilers): Add .F and .f90. + (static_specs): Add mfwrap and mflib. + * gcse.c (want_to_gcse_p, gcse_constant_p): Don't handle + CONSTANT_RTX_P. + (reg_used_on_edge, reg_killed_on_edge, bypass_block): + Update to match insns field in struct edge_def. + * gdbinit.in (pgs, pge): Define. + * genattrtab.c (ATTR_PERMANENT_P): Use the return_val flag + instead of the integrated flag. + * gengtype-lex.l (IWOrD): Add HOST_WIDEST_INT + * gengtype-yacc.y (bitfieldlen): Add empty action. + (struct_fields): Accept unnamed bitfields. + (bitfieldlen): Split from ... + (bitfieldopt): ... here. + * gengtype.c (ifiles): Add tree-alias-type.h and + tree-flow.h. + * genrecog.c (validate_pattern): Do not handle + CONSTANT_P_RTX. + * gimple-low.c: New file. + * gimplify.c: New file. + * haifa-sched.c (priority): Do not handle CONSTANT_P_RTX. + (restore_line_notes): Do not set RTX_INTEGRATED_P. + * ifcvt.c (dead_or_predicable): Initialize local variable + 'earliest'. + * input.h (expr_wfl_stack): Remove. + * integrate.c (INTEGRATE_THRESHOLD): Remove. + (setup_initial_hard_reg_value_integration): Likewise. + (initialize_for_inline): Likewise. + (note_modified_parmregs): Likewise. + (integrate_parm_decls): Likewise. + (process_reg_param): Likewise. + (save_parm_insns): Likewise. + (copy_insn_list): Likewise. + (copy_insn_notes): Likewise. + (compare_blocks): Likewise. + (find_block): Likewise. + (inlining): Likewise. + (function_cannot_inline_p): Likewise. + (parmdecl_map): Likewise. + (in_nonparam_insns): Likewise. + (save_for_inline): Likewise. + (FIXED_BASE_PLUS): Likewise. + (expand_inline_function): Likewise. + (copy_rtx_and_substitute): Don't look at map->integrating, + map->inline_target, and inlining, since we are never copying + for integrating. + Don't abort on RTX_INTEGRATED_P. + (old_fun): Remove. + (output_inline_function): Remove. + * integrate.h (struct inline_map): Remove fields integrating, + block_map, leaf_reg_map, inline_target, and local_return_label. + * jump.c (next_nonnote_insn_in_loop, duplicate_loop_exit_test, + copy_loop_headers, never_reached_warning): Removed. + (any_uncondjump_p): Reject nonlocal goto. + * langhooks-def.h (lhd_types_compatible_p, + lhd_expand_decl, lhd_gimplify_expr): Declare. + (LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P, + LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P, + LANG_HOOKS_FUNCTION_LEAVE_NESTED, + LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P, + LANG_HOOKS_GIMPLIFY_EXPR, + LANG_HOOKS_GIMPLE_BEFORE_INLINING, + LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P, + LANG_HOOKS_GIMPLIFY_EXPR, + LANG_HOOKS_GIMPLE_BEFORE_INLINING): Define. + (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_START, + LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END, + LANG_HOOKS_FUNCTION_LEAVE_NESTED, + LANG_HOOKS_RTL_EXPAND_INITIALIZER, + LANG_HOOKS_DECL_UNINIT, + LANG_HOOKS_RTL_EXPAND_INITIALIZER): Remove. + * langhooks.c: Include tree-simple.h. + (lhd_expand_decl): New. + (lhd_types_compatible_p): New. + (lhd_decl_uninit): Remove. + (lhd_gimplify_expr): New. + * langhooks.h (struct lang_hooks_for_rtl_expansion): + Remove. + (struct lang_hooks_for_functions): Add field + missing_noreturn_ok_p. + (struct lang_hooks): Add field expand_decl, + types_compatible_p, gimplify_expr and + gimple_before_inlining. + Remove fields decl_uninit and rtl_expand + * opts.c (decode_options): Set flag_tree_ccp, + flag_tree_dce, flag_tree_dom, flag_tree_dse, + flag_tree_pre, flag_tree_ter, + flag_tree_live_range_split, flag_tree_sra, + flag_tree_copyrename and flag_tree_ch at -O1 and higher. + (common_handle_option): Handle OPT_fdump_, OPT_fmudflap, + OPT_fmudflapth, OPT_fmudflapir, + OPT_ftree_based_profiling, OPT_ftree_ccp, OPT_ftree_dce, + OPT_ftree_combine_temps, OPT_ftree_ter, OPT_ftree_lrs, + OPT_ftree_dominator_opts, OPT_ftree_copyrename, + OPT_ftree_ch, OPT_ftree_dse, OPT_ftree_sra, + OPT_ftree_points_to_ and OPT_ftree_pre. + * output.h (regno_uninitialized, find_basic_blocks, + cleanup_cfg, delete_unreachable_blocks, + check_function_return_warnings): Remove. + * params.def (PARAM_MAX_INLINE_INSNS_RECURSIVE, + PARAM_MAX_INLINE_INSNS_RECURSIVE_AUTO, + PARAM_MAX_INLINE_RECURSIVE_DEPTH, + PARAM_MAX_INLINE_RECURSIVE_DEPTH_AUTO, + PARAM_GLOBAL_VAR_THRESHOLD, PARAM_MAX_ALIASED_VOPS): + * params.h (GLOBAL_VAR_THRESHOLD, MAX_ALIASED_VOPS): + Define. + * passes.c (rest_of_decl_compilation): + (rest_of_handle_sibling_calls): Remove. + (rest_of_handle_inlining): Remove. + (rest_of_handle_gcse): Do not run + purge_builtin_constant_p. + (rest_of_compilation): Update. + Do not call copy_loop_headers. + Do rtl-based profiling only when + !flag_tree_based_profiling. Register rtl-based profiling + hooks. + * predict.c: Include tree-flow.h, ggc.h, tree-dump.h + (predicted_by_p): Rename to ... + (rtl_predicted_by_p): .. this one; make global + (tree_predicted_by_p): New. + (dump_prediction): Add FILE argument. + (predict_edge): Rename to ... + (rtl_predict_edge): .. this one. + (tree_predict_edge): New. + (combine_predictions_for_insn): Update calls of predict_edge. + (predict_loops): Break out from ... + (estimate_probability): ... here; update comments; move updating + of unknown probabilities from ... + (estimate_bb_frequencies): ... here. + (combine_predictions_for_bb): New. + (tree_predict_by_opcode): New. + (tree_estimate_probability): New. + * predict.def (PRED_TREE_POINTER, PRED_TREE_OPCODE_POSITIVE, + PRED_TREE_OPCODE_NONEQUAL, PRED_TREE_FPOPCODE): New predictors. + * predict.h: Add include guard. + (predict_edge, predict_edge_def): Move prototypes to basic_block.h + * pretty-print.c (pp_write_text_to_stream): Make extern. + * pretty-print.h (pp_write_text_to_stream): Declare. + * print-rtl.c (print_rtx): Don't print the integrated flag. + Print the return_val flag. + * print-tree.c: Use TREE_FILENAME and TREE_LINENO instead + of DECL_SOURCE_FILE and DECL_SOURCE_LINE respectively. + Remove support for EXPR_WITH_FILE_LOCATION nodes. + (print_node): Print TREE_INVARIANT and TREE_VISITED. + * profile.c: Include cfghooks.h, tree-flow.h. + (profile_hooks): New. + (profile_dump_file): New. + (instrument_edges): Use hooks instead of RTL-specific code. + (instrument_values): Ditto. + (get_exec_counts): Ditto. + (compute_branch_probabilities): Ditto. + (compute_value_histograms): Ditto. + (branch_prob): Ditto. + (find_spanning_tree): Ditto. + (end_branch_prob): Ditto. + (gen_edge_profiler): Move to rtl-profile.c (rtl_gen_edge_profiler). + (gen_interval_profiler): Ditto (rtl_gen_interval_profiler). + (gen_pow2_profiler): Ditto (rtl_gen_pow2_profiler). + (gen_one_value_profiler): Ditto (rtl_gen_one_value_profiler). + (tree_register_profile_hooks): New. + (rtl_register_profile_hooks): New. + * ra-rewrite.c (rewrite_program): Clear variable info. + * recog.c (immediate_operand): Do not handle CONSTANT_P_RTX. + * regs.h: Add include guards. + * reload.c (decompose): Clear val using memset. + * rtl.def (CONSTANT_P_RTX): Remove. + * rtl.h (CONSTANT_P): Do not handle CONSTANT_P_RTX. + (copy_loop_headers): Remove. + (struct rtx_def): Replace the integrated flag with the + return_val flag. + (maybe_set_first_label_num): Declare. + (init_branch_prob): Move declaration to value-prof.h. + (end_branch_prob): Ditto. + (branch_prob): Ditto. + (never_reached_warning): Don't declare it. + * rtlanal.c (get_related_value): Initialize get_jump_table_offset + (hoist_insn_to_edge): Update to match field insns in + struct edge_def. + * sbitmap.c (sbitmap_realloc): New. + * sbitmap.h (sbitmap_realloc): Declare. + * sibcall.c: Remove file. + * simplify-rtx.c (simplify_rtx): Do not handle + CONSTANT_P_RTX. + * stmt.c (parse_output_constraint): Don't warn for read-write + memory operand. + (tail_recursion_args): Use types_compatible_p langhook. + (force_label_rtx): Don't look at inline_function_decl. + (label_rtx): Set LABEL_PRESERVE_P appropriately. + (expand_label): Handle DECL_NONLOCAL and FORCED_LABEL. + (declare_nonlocal_label): Remove. + (expand_goto): Don't handle nonlocal gotos. + (expand_nl_handler_label): Remove. + (expand_nl_goto_receivers): Remove. + (expand_end_bindings): Don't expand_nl_goto_receivers. Use + update_nonlocal_goto_save_area. + (expand_expr_stmt_value): Check TREE_NO_WARNING. + (warn_if_unused_value): Likewise. + (expand_start_loop, expand_loop_continue_here, + expand_end_loop): Don't create loop notes. + (all_cases_count, BITARRAY_TEST, BITARRAY_SET, + mark_seen_cases, check_for_full_enumeration_handling): Remove. + (expand_end_case_type): Don't do warn_switch handling. + (pushcase, pushcase_range) Update add_case_node calls. + (add_case_node): Add dont_expand_label argument. + (same_case_target_p): Don't search rtl. + (expand_start_bindings_and_block, expand_end_bindings): + Don't emit block notes when dont_emit_block_notes. + (using_eh_for_cleanups_p): Export. + (expand_return): Allow any typed rhs. + (expand_stack_alloc): New. + (expand_stack_save, expand_stack_restore): New. + (containing_blocks_have_cleanups_or_stack_level): New + function. + (asm_op_is_mem_input): New fn. + (expand_asm_expr): New fn. + (warn_if_unused_value): Check operand 0 of SAVE_EXPR + nodes. + * stor-layout.c (layout_type): Just return if type is + error_mark_node. + (update_alignment_for_field): Export. + (variable_size): We don't care about global_bindings_p if + the frontend doesn't want a list of the expressions. + * system.h: Poison INTEGRATE_THRESHOLD. + * timevar.def (TV_TREE_GIMPLIFY, TV_TREE_EH, TV_TREE_CFG, + TV_TREE_CLEANUP_CFG, TV_TREE_PTA, TV_TREE_MAY_ALIAS, + TV_TREE_INSERT_PHI_NODES, TV_TREE_SSA_REWRITE_BLOCKS, + TV_TREE_SSA_OTHER, TV_TREE_OPS, + TV_TREE_SSA_DOMINATOR_OPTS, TV_TREE_SRA, TV_TREE_CCP, + TV_TREE_SPLIT_EDGES, TV_TREE_PRE, TV_TREE_PHIOPT, + TV_TREE_FORWPROP, TV_TREE_DCE, TV_TREE_CD_DCE, + TV_TREE_DSE, TV_TREE_LOOP, TV_TREE_CH, + TV_TREE_SSA_TO_NORMAL, TV_TREE_SSA_TO_NORMAL, + TV_TREE_NRV, TV_TREE_COPY_RENAME, TV_TREE_SSA_VERIFY, + TV_TREE_STMT_VERIFY, TV_DOM_FRONTIERS, + TV_CONTROL_DEPENDENCES): Define. + * toplev.c: Include tree-alias-common.h + (current_file_decl, flag_mudflap, flag_mudflap_threads, + flag_mudflap_ignore_reads, flag_tree_based_profiling, + flag_tree_gvn, flag_tree_points_to, flag_tree_ccp, + flag_tree_dce, flag_tree_ch, flag_tree_sra, + flag_tree_combine_temps, flag_tree_ter, + flag_tree_live_range_split, flag_tree_dom, + flag_tree_copyrename, flag_tree_dse): Declare. + (f_options): Add tree-based-profiling, tree-gvn, + tree-pre, tree-ccp, tree-dce, + tree-dominator-opts, tree-copyrename, tree-dse, + tree-combine-temps, tree-ter, tree-lrs and tree-ch. + (wrapup_global_declarations): Don't output nested inlined functions. + (general_init): Call init_tree_optimization_passes. + (process_options): Sorry for -ftree-based-profiling plus + -ftest-coverage or -fprofile-values. + * toplev.h (init_tree_optimization_passes, + flag_tree_based_profiling): Declare. + * tracer.c (tail_duplicate): Use cfghooks for bb duplication. + * tree-alias-ander.c: New file. + * tree-alias-ander.h: New file. + * tree-alias-common.c: New file. + * tree-alias-common.h: New file. + * tree-alias-type.c: New file. + * tree-alias-type.h: New file. + * tree-browser.c: New file. + * tree-browser.def: New file. + * tree-cfg.c: New file. + * tree-complex.c: New file. + * tree-dfa.c: New file. + * tree-dump.c (dump_enable_all): New. + (dequeue_and_dump): Do not handle EXPR_WITH_FILE_LOCATION. + (dump_node): Remove const from field suffix and swtch. + (dump_files): Add null entry, .generic, .nested, .vcg, + .xml and a match-all entry. + (extra_dump_files, extra_dump_files_in_use, + extra_dump_files_alloced): Declare + (dump_option_value_info): Add raw, details, stats, + blocks, vops, lineno, uid and all. + (dump_register): New. + (get_dump_file_info): New. + (dump_begin): Call it. + Do nothing for TDI_none. + (dump_begin): Include phase number in dump filename. + (dump_enable_all): New. + (dump_switch_p_1): Split out from dump_switch_p. + (dump_switch_p): Handle extra_dump_files. + Start our scan at TDI_none + 1. + If -fdump-tree-all was given, call dump_enable_all. + * tree-dump.h: Include splay-tree.h. + (dump_function, dump_function_to_file, dump_register): + Declare. + * tree-eh.c: New file. + * tree-flow-inline.h: New file. + * tree-flow.h: New file. + * tree-inline.c: Re-write to handle inlining on GIMPLE. + * tree-inline.h (walk_tree, + walk_tree_without_duplicates): Move to tree.h. + (estimate_num_insns): Declare. + * tree-into-ssa.c: New file. + * tree-iterator.c: New file. + * tree-iterator.h: New file. + * tree-mudflap.c: New file. + * tree-mudflap.h: New file. + * tree-nested.c: New file. + * tree-nomudflap.c: New file. + * tree-nrv.c: New file. + * tree-optimize.c (dump_flags, vars_to_rename, + in_gimple_form, all_passes, pass_gimple, + pass_rebuild_bind, pass_all_optimizations, pass_del_cfg): Declare. + (execute_gimple, execute_rebuild_bind, + gate_all_optimizations, execute_del_cfg, + register_one_dump_file, register_dump_files, dup_pass_1, + init_tree_optimization_passes, execute_todo, + execute_one_pass, execute_pass_list): New. + (clear_decl_rtl): Remove. + (tree_rest_of_compilation): Update to use tree + optimizers. + * tree-outof-ssa.c: New file. + * tree-pass.h: New file. + * tree-phinodes.c: New file. + * tree-pretty-print.c: New file. + * tree-profile.c: New file. + * tree-simple.c: New file. + * tree-simple.h: New file. + * tree-sra.c: New file. + * tree-ssa-alias.c: New file. + * tree-ssa-ccp.c: New file. + * tree-ssa-copy.c: New file. + * tree-ssa-copyrename.c: New file. + * tree-ssa-dce.c: New file. + * tree-ssa-dom.c: New file. + * tree-ssa-dse.c: New file. + * tree-ssa-forwprop.c: New file. + * tree-ssa-live.c: New file. + * tree-ssa-live.h: New file. + * tree-ssa-loop.c: New file. + * tree-ssa-operands.c: New file. + * tree-ssa-operands.h: New file. + * tree-ssa-phiopt.c: New file. + * tree-ssa-pre.c: New file. + * tree-ssa.c: New file. + * tree-ssanames.c: New file. + * tree-tailcall.c: New file. + * tree.c: Include tree-iterator.h, basic-block.h and + tree-flow.h. + (tree_node_kind): Add phi_nodes and ssa names. + (tree_size): Handle PHI_NODE, EPHI_NODE, SSA_NAME, + EUSE_NODE, EKILL_NODE, EEXIT_NODE and STATEMENT_LIST. + (make_node_stat): Handle PHI_NODE and SSA_NAME. + <'c'> Set TREE_INVARIANT. + (copy_node_stat): Abort if trying to copy a + STATEMENT_LIST. + Clear TREE_VISITED. + Clear annotation field. + (build_constructor): Copy TREE_INVARIANT from vals. + Don't clear TREE_CONSTANT. + (expr_first, expr_last, expr_length): Remove. + (staticp): Pass unknown component references to the language. + (save_expr): Check TREE_INVARIANT instead of TREE_CONSTANT. + (skip_simple_arithmetic): Likewise. + (stabilize_reference_1): Likewise. + (tree_node_structure): Handle PHI_NODE, EPHI_NODE, + EUSE_NODE, EKILL_NODE, EEXIT_NODE, SSA_NAME and + STATEMENT_LIST. + (lhd_unsave_expr_now): Remove. + (unsafe_for_reeval): Handle LABEL_EXPR and BIND_EXPR. + (recompute_tree_invarant_for_addr_expr): New. + (build1_stat): Clear EXPR_LOCUS and TREE_BLOCK. + Call recompute_tree_invarant_for_addr_expr. + Set TREE_INVARIANT accordingly. + (build2_stat): Don't handle CALL_EXPR. + (build3_stat): Don't call build2_stat for CALL_EXPRs. + (build_expr_wfl): Remove. + (annotate_with_file_line, annotate_with_locus): New. + (simple_cst_equal): Call simple_cst_list_equal to compare + CONSTRUCTOR_ELTS pointers. + (iterative_hash_expr): Don't hash types associated + with conversions. Instead hash on the signedness of the + toplevel object and the operand of the conversion. + (dump_tree_statistics): Call ssanames_print_statistics + and phinodes_print_statistics. + (ephi_node_elt_check_failed, phi_node_elt_check_failed, + add_var_to_bind_expr, build_empty_stmt, is_essa_node, + needs_to_live_in_memory): New. + (initializer_zerop): Handle VECTOR_CST. Don't check + AGGREGATE_TYPE_P for CONSTRUCTOR. + * tree.def (FILTER_EXPR, CASE_LABEL_EXPR, RESX_EXPR, + SSA_NAME, EUSE_NODE, EKILL_NODE, EPHI_NODE, EEXIT_NODE, + PHI_NODE, CATCH_EXPR, EH_FILTER_EXPR, STATEMENT_LIST): Define. + (GOTO_SUBROUTINE_EXPR): Change type to 's'. + (CALL_EXPR): Add another operand. + (EXPR_WITH_FILE_LOCATION): Remove. + (SWITCH_EXPR): Add another operand. + * tree.h: Update various comments. + (union tree_ann_d): Forward declare. + (struct tree_common): Add fields nowarning_flag, + invariant_flag and visited. + (EREF_NODE_CHECK, EPHI_NODE_ELT_CHECK, + PHI_NODE_ELT_CHECK, EREF_NODE_CHECK, PHI_NODE_ELT_CHECK, + EPHI_NODE_ELT_CHECK, TREE_BLOCK, + STRIP_USELESS_TYPE_CONVERSION, CALL_EXPR_TAILCALL, + TREE_NO_WARNING, FORCED_LABEL, TREE_INVARIANT, + IS_EMPTY_STMT, EXPR_LOCUS, SET_EXPR_LOCUS, EXPR_FILENAME, + EXPR_LINENO, EXPR_LOCATION, EXPR_HAS_LOCATION, + EXIT_EXPR_COND, SWITCH_COND, SWITCH_BODY, SWITCH_LABELS, + CASE_LOW, CASE_HIGH, CASE_LABEL, BIND_EXPR_VARS, + BIND_EXPR_BODY, BIND_EXPR_BLOCK, GOTO_DESTINATION, + ASM_STRING, ASM_OUTPUTS, ASM_INPUTS, ASM_CLOBBERS, + ASM_INPUT_P, ASM_VOLATILE_P, COND_EXPR_COND, + COND_EXPR_THEN, COND_EXPR_ELSE, LABEL_EXPR_LABEL, + CATCH_TYPES, CATCH_BODY, EH_FILTER_TYPES, + EH_FILTER_FAILURE, EH_FILTER_MUST_NOT_THROW, + SSA_NAME_VAR, SSA_NAME_DEF_STMT, SSA_NAME_VERSION, + SSA_NAME_OCCURS_IN_ABNORMAL_PHI, SSA_NAME_IN_FREE_LIST, + PHI_RESULT, PHI_REWRITTEN, PHI_NUM_ARGS, + PHI_ARG_CAPACITY, PHI_ARG_ELT, PHI_ARG_EDGE, PHI_ARG_DEF, + EREF_PROCESSED, EREF_ID, EREF_NAME, EREF_STMT, + EREF_RELOAD, EREF_SAVE, EREF_CLASS, EREF_INJURED, + EREF_TEMP, EUSE_DEF, EUSE_PHIOP, EUSE_INSERTED, + EUSE_LVAL, EPHI_NUM_ARGS, EPHI_ARG_CAPACITY, + EPHI_ARG_ELT, EPHI_ARG_EDGE, EPHI_ARG_PRED, EPHI_ARG_DEF, + EPHI_ARG_INJURED, EPHI_ARG_DELAYED_RENAME, + EPHI_ARG_HAS_REAL_USE, EPHI_ARG_STOPS, + EPHI_ARG_PROCESSED2, EPHI_IDENTITY, EPHI_IDENT_INJURED, + EPHI_REP_OCCUR_KNOWN, EPHI_IDENTICAL_TO, EPHI_DOWNSAFE, + EPHI_CANT_BE_AVAIL, EPHI_DEAD, EPHI_USES, EPHI_STOPS, + TREE_VISITED, SSA_VAR_P, DECL_NUM_STMTS, + DECL_HARD_REGISTER, DECL_PTA_ALIASVAR, LABEL_DECL_UID, + DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL, + STATEMENT_LIST_HEAD, STATEMENT_LIST_TAIL, TDF_RAW, + TDF_DETAILS, TDF_STATS, TDF_BLOCKS, TDF_VOPS, TDF_LINENO, + TDF_UID,): Define. + (TREE_NO_UNUSED_WARNING, EXPR_WFL_EMIT_LINE_NOTE, + EXPR_WFL_NODE, EXPR_WFL_FILENAME_NODE, EXPR_WFL_FILENAME, + EXPR_WFL_LINECOL, EXPR_WFL_LINENO, EXPR_WFL_COLNO, + EXPR_WFL_SET_LINECOL): Remove. + (phi_node_elt_check_failed, ephi_node_elt_check_failed, + make_phi_node, init_phinodes, fini_phinodes, + release_phi_node, phinodes_print_statistics, + init_ssanames, fini_ssanames, make_ssa_name, + release_ssa_name, ssanames_print_statistics, + annotate_with_file_line, build_empty_stmt, + annotate_with_locus, expr_only, categorize_ctor_elements, + count_type_elements, add_var_to_bind_expr, is_essa_node, + expand_stack_alloc, expand_stack_save, + expand_stack_restore, add_case_node, operand_equal_p, + nondestructive_fold_unary_to_constant, + nondestructive_fold_binary_to_constant, + fold_read_from_constant_string, int_const_binop, + strip_float_extensions, simplify_builtin, c_strlen, + recompute_tree_invarant_for_addr_expr, + needs_to_live_in_memory, make_vector, + setjmp_vars_warning, update_alignment_for_field, + expand_asm_expr, asm_op_is_mem_input, + containing_blocks_have_cleanups_or_stack_level, + create_artificial_label, gimplify_function_tree, + get_name, unshare_expr, walk_tree, + walk_tree_without_duplicates, in_gimple_form): Declare. + (struct tree_exp): Add fields locus and block. + (struct tree_ssa_name, struct edge_def, struct + tree_phi_node, struct tree_eref_common, struct + tree_euse_node, struct ephi_arg_d, struct tree_ephi_node, + union alias_var_def, struct tree_statement_list_node, + struct tree_statement_list, enum operand_equal_flag): Declare. + (enum tree_node_structure_enum): Add TS_SSA_NAME, + TS_PHI_NODE, TS_EPHI_NODE, TS_EUSE_NODE, TS_EREF_NODE, + TS_STATEMENT_LIST. + (union tree_node): Add fields ssa_name, phi, eref, ephi, + euse and stmt_list. + (function_cannot_inline_p, uninitialized_vars_warning, + save_for_inline, output_inline_function, all_cases_count, + check_for_full_enumeration_handling, + declare_nonlocal_label): Remove. + (enum tree_dump_index): Add TDI_none, TDI_tu, + TDI_generic, TDI_nested, TDI_vcg, TDI_xml. + * unroll.c (unroll_loop): Don't clear map->inline_target. + * unwind-sjlj.c (uw_install_context): Make a proper static inline + function. + * value-prof.c (value_prof_hooks): New. + (find_values_to_profile): Rename to rtl_find_values_to_profile. + Move rtl-specific bits in from branch_prob. + (value_profile_transformations): Rename to + rtl_value_profile_transformations. + (struct value_prof_hooks): New. + (rtl_value_prof_hooks): New. + (rtl_register_value_prof_hooks): New. + (tree_find_values_to_profile): New stub. + (tree_value_profile_transformations): New stub. + (tree_value_prof_hooks): New stub. + (tree_register_value_prof_hooks): New stub. + (find_values_to_profile): New. + (value_profile_transformations): New. + * value-prof.h: Add multiple inclusion guard. + (struct histogram_value): Change rtx fields to void *. + (rtl_register_value_prof_hooks): New declaration. + (tree_register_value_prof_hooks): New declaration. + (find_values_to_profile): New declaration. + (free_profiled_values): New declaration. + (value_profile_transformations): New declaration. + (struct profile_hooks): New declaration. + (init_branch_prob): Declaration moved from rtl.h. + (branch_prob): Declaration moved from rtl.h. + (end_branch_prob): Declaration mooved from rtl.h. + (tree_register_profile_hooks): New declaration. + (rtl_register_profile_hooks): New declaration. + (tree_profile_hooks): New declaration. + (rtl_profile_hooks): New declaration. + * varasm.c: Include tree-mudflap.h. + (TRAMPOLINE_ALIGNMENT): Remove. + (make_decl_rtl): Call mudflap_enqueue_decl. + (assemble_static_space): + (assemble_trampoline_template): Set and return + TRAMPOLINE_ALIGNMENT. + * varray.c (element): Add GENERIC_PTR_NOGC entry. + Add entry for 'tree *'. + Add entry for struct edge_def *. + (varray_copy): New. + * varray.h (enum varray_data_enum): Add + VARRAY_DATA_GENERIC_NOGC, VARRAY_DATA_EDGE and + VARRAY_DATA_TREE_PTR. + (union varray_data_tag): Corresponding changes. + (VARRAY_GENERIC_PTR_NOGC_INIT, VARRAY_EDGE_INIT, + VARRAY_TREE_PTR_INIT, VARRAY_GENERIC_PTR_NOGC, + VARRAY_EDGE, VARRAY_TREE_PTR, + VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_EDGE, + VARRAY_PUSH_TREE_PTR, VARRAY_TOP_GENERIC_PTR_NOGC, + VARRAY_TOP_EDGE, VARRAY_TOP_TREE_PTR): Define. + + * config/*/*: Various updates for changed macros, tree + codes, etc. Check ChangeLog.tree-ssa. + + * doc/cfg.texi: New file. + * doc/tree-ssa.texi: New file. + * doc/c-tree.texi: Document new codes. + * doc/gccint.texi: Include new files. + * doc/install.texi: Document new features. + * doc/invoke.texi: Document new switches. + * doc/passes.texi: Document new passes. + * doc/rtl.texi: Update changed RTL codes. + * doc/sourcebuild.texi: Update build instructions. + * doc/standards.texi: Document Fortran changes. + * doc/tm.texi: Update. + +2004-05-12 Paolo Bonzini + + Replace several arrays with a struct of arrays. + * combine.c (struct reg_stat): New. + (init_reg_last_arrays): Renamed to... + (init_reg_last): ...this. Callers adjusted. + (reg_stat): New. + (combine_instructions): Allocate it and use it. + (reg_last_death, reg_last_set, reg_last_set_value, + reg_last_set_label, reg_last_set_table_tick, + reg_last_set_invalid, reg_nonzero_bits, reg_sign_bit_copies, + reg_last_set_mode, reg_last_set_nonzero_bits, + reg_last_set_sign_bit_copies): Replace throughout + with items of reg_stat. + +2004-05-11 Kaz Kojima + + PR optimization/15100 + * combine.c (distribute_notes): Don't create a dangling + REG_LIBCALL/REG_RETVAL note. + +2004-05-11 Aldy Hernandez + + * config/rs6000/spe.md (spe_evneg): Rename to negv2si2. + + * config/rs6000/rs6000.c (bdesc_1arg): Change spe_evneg to + negv2si2. + +2004-05-11 Aldy Hernandez + + * doc/md.texi (Standard Names): Fix typo in vec_init description. + +2004-05-11 Geoffrey Keating + + * doc/gty.texi (GTY Options): Clarify example. + +2004-05-11 Fariborz Jahanian + + * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): + Add const qualifier to altivec vector type if one is needed. + +2004-05-11 Paul Brook + + * flags.h (flag_short_enums): Update comment. + * opts.c (decode_options): Set flag_short_enums to 2. + * toplev.c (flag_short_enums): Update comment. + (process_options): Call default_short_enums target hook. + +2004-05-11 Andrew Pinski + + PR target/14063 + * config/rs6000/altivec.md (altivec_dssall): + Change to unspec_volatile. + (altivec_dss): Likewise. + +2004-05-10 Aldy Hernandez + + * config/rs6000/altivec.md ("one_cmplv16qi2"): Change vnot to + vnor. + ("one_cmplv8hi2"): Same. + ("one_cmplv4si2"): Same. + +2004-05-10 Kaz Kojima + + PR target/15130 + * config/sh/sh-protos.h (sh_expand_epilogue): Change prototype. + * config/sh/sh.c (output_stack_adjust): Take the sibcall epilogue + into account. Compute the correct number of general registers + for the return value. 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. Set the 3rd argument of output_stack_adjust to + -1 if needed. + (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. + +2004-05-10 Andrew Pinski + + * gcse.c (eliminate_partially_redundant_loads): Instead of returning early, + goto a cleanup label. After the cleanup, free the allocated memory. + +2004-05-10 Ziemowit Laski + + * config/rs6000/altivec.h (vec_sld): Add overloads for + argument/return types of 'vector bool int', 'vector bool short' + and 'vector bool char'. + +2004-05-10 Zack Weinberg + + * c-decl.c (store_parm_decls_newstyle): Correct test for a + nested function. + +2004-05-10 Richard Sandiford + + * read-rtl.c (read_rtx): Allow 's' and 'T' strings to be omitted, + treating missing ones as "". + * config/mips/mips.md: Remove constraints from match_operands and + match_scratches if they appear in define_expands (except reload*), + define_peephole2s, define_splits or attribute specifications. + * config/mips/7000.md, config/mips/sb1.md: Remove match_operand + constraint strings. + +2004-05-10 Alan Modra + + * config/rs6000/rs6000.c (function_arg_boundary): Always align + AltiVec vectors. + (function_arg_advance): Pass TARGET_32BIT -mabi=no-altivec AltiVec + vectors by refererence. Align the same for TARGET_64BIT to a 16 + byte boundary. Remove useless code. Add function comment. + (function_arg): Similarly. Move gpr rs6000_mixed_function_arg + call to where it belongs. + (function_arg_partial_nregs): Return true for all TARGET_32BIT + -mabi=no-altivec AltiVec vectors. Fix debug output. + (rs6000_va_arg): Adjust for AltiVec change. + +2004-05-10 Paul Brook + + * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED. + * config/arm/arm.h (TARGET_AAPCS_BASED): Define. + (TARGET_DOUBLEWORD_ALIGN): Use it. + (WCHAR_TYPE): Define. + (WCHAR_SIZE_TYPE): Define. + (SIZE_TYPE): Define. + +2004-05-10 Alan Modra + + * config/rs6000/rs6000.c (function_arg_boundary): Align for ABI_V4 + when size is 8 bytes. + (function_arg_advance): Account for stack space used by AltiVec + args when -mabi=altivec. Simplify alignment calculations. For + ABI_V4, pass AltiVec vectors by reference when -mabi=no-altivec. + (function_arg): Similarly. + (function_arg_pass_by_reference): True for ABI_V4 AltiVec when + not AltiVec ABI. + (rs6000_va_arg): Correct fp arg test. Adjust for AltiVec change. + Correct alignment, and align before testing reg count. Remove + TREE_THIS_VOLATILE from reg. Don't emit unused labels. + (rs6000_complex_function_value): Check TARGET_HARD_FLOAT and + TARGET_FPRS here.. + (rs6000_function_value): .. not here before call. + +2004-05-09 Aldy Hernandez + + * config/rs6000/spe.md ("tstsflt_gpr"): Fix typo in unspec. + +2004-05-09 Zack Weinberg + + PR 15007 + * c-decl.c (current_file_decl): Rename to all_translation_units, + adjust comment. + (pop_scope): If popping file_scope, construct a + TRANSLATION_UNIT_DECL and make it the context of all the + symbols in the scope. + (push_file_scope): Don't construct a TRANSLATION_UNIT_DECL here. + (pushdecl): Clarify comment. Do not set DECL_CONTEXT of + anything to current_file_decl. + (pushdecl_top_level): Likewise. + (store_parm_decls_newstyle): Adjust check for nested function. + (c_write_global_declarations): Update for renamed variable. + +2004-05-09 Aldy Hernandez + + * config/rs6000/rs6000-protos.h + (rs6000_conditional_register_usage): Protoize. + + * config/rs6000/rs6000.c (rs6000_conditional_register_usage): New. + + * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Call + function. + +2004-05-08 Roger Sayle + + * fold-const.c (fold_div_compare): New function to optimize X/C1 op C2 + where op is a comparison operator and C1 and C2 are integer constants + into a range check. + (fold): Call fold_div_compare. + +2004-05-08 Eric Botcazou + + * doc/install.texi (sparc-sun-solaris2*): Document bootstrap + problems with earlier versions of the GNU compiler. + +2004-05-07 Aldy Hernandez + + * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p): + Declare. + + * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): New. + (rs6000_hard_regno_mode_ok): New. + (rs6000_init_hard_regno_mode_ok): New. + (rs6000_override_options): Call rs6000_init_hard_regno_mode_ok. + + * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Use precomputed + result. + +2004-05-07 Ziemowit Laski + + * config/rs6000/altivec.h (vector, pixel, bool): Do not + define as macros #ifdef __APPLE_ALTIVEC__. + +2004-05-07 Fariborz Jahanian + + * config/rs6000/rs6000.c (rs6000_mixed_function_arg): + Generate appropriate parallels for vector arguments + passed to vararg functions. (function_arg): make the call + to rs6000_mixed_function_arg for vector args as needed. + +2004-05-07 Richard Sandiford + + * config/mips/mips.c (mips_va_arg): Fix calculation of osize for + EABI_FLOAT_VARARGS_P. + +2004-05-07 Richard Sandiford + + * config/mips/mips.h (ISA_HAS_BRANCHLIKELY): Remove TARGET_MIPS5500. + * config/mips/mips.c (override_options): Disable branch likely + instructions if TUNE_MIPS5500. + +2004-05-07 Richard Sandiford + + * config/mips/mips.c (override_options): Allow the hi and lo registers + to store any integral mode, not just MODE_INTs. + +2004-05-07 Paul Brook + + * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED. + * config/arm/arm.h (TARGET_AAPCS_BASED): Define. + (TARGET_DOUBLEWORD_ALIGN): Use it. + (WCHAR_TYPE): Define. + (WCHAR_SIZE_TYPE): Define. + (SIZE_TYPE): Define. + +2004-05-07 Uros Bizjak + + * config/i386/i386.c (ix86_emit_fp_unordered_jump): Use + testb $4, %ah insn instead of sahf insn if !TARGET_USE_SAHF. + +2004-05-07 Andrew Pinski + + * loop-doloop.c (doloop_valid_p): Make sure that body + gets freed. + +2004-05-07 Eric Botcazou + + * config/sparc/sparc-protos.h (sparc_skip_caller_unimp): New + declaration. + * config/sparc/sparc.c (SKIP_CALLERS_UNIMP_P): Delete. + (sparc_skip_caller_unimp): New global variable. + (sparc_function_epilogue): Set 'sparc_skip_caller_unimp'. + Use it instead of SKIP_CALLERS_UNIMP_P. + * config/sparc/sparc.md (call expander): Add sanity check. + (call_address_struct_value_sp32): Re-sync with expander. + (call_symbolic_struct_value_sp32): Likewise. + (return peepholes): Use 'sparc_skip_caller_unimp' instead + of custom predicate. + +2004-05-07 Eric Botcazou + + PR c++/14962 + * c-pragma.c (handle_pragma_redefine_extname): Only change + the assembler name of FUNCTION_DECLs and VAR_DECLs. + +2004-05-07 Uros Bizjak + + * optabs.h (enum optab_index): Add new OTI_log1p. + (log1p_optab): Define corresponding macro. + * optabs.c (init_optabs): Initialize log1p_optab. + * genopinit.c (optabs): Implement log1p_optab using log1p?f2 + patterns. + * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG1P{,F,L} + using log1p_optab. + (expand_builtin): Expand BUILT_IN_LOG1P{,F,L} using + expand_builtin_mathfn if flag_unsafe_math_optimizations is set. + + * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FYL2XP1. + + * config/i386/i386.c (ix86_emit_i387_log1p): New function. + * config/i386/i386-protos.h (ix86_emit_i387_log1p): + Prototype here. + * config/i386/i386.md (UNSPEC_FYL2XP1): New unspec to represent + x87's fyl2xp1 instruction. + (*fyl2x_xf3): Rename insn definition to fyl2x_xf3. + (fyl2xp1_xf3): New pattern to implement fyl2xp1 x87 instruction. + (log1psf2, log1pdf2, log1pxf2): New expanders to implement log1pf, + log1p and log1pl built-ins as inline x87 intrinsics. + +2004-05-07 Loren James Rittle + + * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Proper redefinition. + * config/arm/freebsd.h: Likewise. + * config/ia64/freebsd.h: Likewise. + * config/sparc/freebsd.h: Likewise. + +2004-05-07 Hans-Peter Nilsson + + PR optimization/15296 + * reorg.c (fill_simple_delay_slots): Use next_real_insn when + getting last consecutive label at a branch. + (relax_delay_slots): Similar, near top of loop. + +2004-05-06 John David Anglin + + PR target/15202 + * pa.md (movdi, movsi, movhi, movqi): Support move from shift amount + register to general register. + +2004-05-07 Alan Modra + + * config/rs6000/rs6000.h (STACK_BOUNDARY): Use 128 bit for either + TARGET_ALTIVEC or TARGET_ALTIVEC_ABI. + * config/rs6000/sysv4.h (ABI_STACK_BOUNDARY): Likewise. + (STACK_BOUNDARY): Delete. + +2004-05-06 Stuart Hastings + + * gcc/doc/invoke.texi: Restore -fgcse-after-reload doc from 1.421, + mistakenly clobbered by 1.423. + +2004-05-06 Richard Sandiford + + * doc/invoke.texi: Document -mvr4130-align. + * config/mips/mips.h (MASK_VR4130_ALIGN, TARGET_VR4130_ALIGN) + (TUNE_MIPS4120, TUNE_MIPS4130): New macros. + (TUNE_MACC_CHAINS): Include TUNE_MIPS4120 and TUNE_MIPS4130. + (TARGET_SWITCHES): Add -mvr4130-align and -mno-vr4130-align. + * config/mips/mips.md: Include sched-int.h. + (USEFUL_INSN_P, SEQ_BEGIN, SEQ_END, FOR_EACH_SUBINSN): New macros. + (mips_rtx_costs): Set integer multiplication costs for TUNE_MIPS4130. + (override_options): Enable -mvr4130-align at -O3 and above. + (mips_sim_insn): New variable. + (mips_sim): New structure. + (mips_sim_reset, mips_sim_init, mips_sim_next_cycle, mips_sim_wait_reg) + (mips_sim_wait_regs_2, mips_sim_wait_regs_1, mips_sim_wait_regs) + (mips_sim_wait_units, mips_sim_wait_insn, mips_sim_record_set) + (mips_sim_issue_insn, mips_sim_issue_nop, mips_sim_finish_insn) + (vr4130_avoid_branch_rt_conflict, vr4130_align_insns): New functions. + (mips_reorg): Call vr4130_align_insns. + (vr4130_last_insn): New variable. + (vr4130_true_reg_dependence_p_1, vr4130_true_reg_dependence_p) + (vr4130_swap_insns_p, vr4130_reorder): New functions. + (mips_sched_reorder, mips_variable_issue): Hook in vr4130 code. + (mips_issue_rate): Return 2 for PROCESSOR_R4130. + (mips_use_dfa_pipeline_interface): Return true for the same. + * config/mips/4130.md: New file. + * config/mips/mips.md: Include it. Add a peephole2 to convert + "mult;mflo" into "mtlo;macc". + (*macc, *umul_acc_di, *smul_acc_di): Use $1 rather than $0 as the + target of maccs. + (*msac_using_macc): New pattern. + +2004-05-06 Richard Sandiford + + * config/mips/5500.md (ir_vr55_store): Set latency to 0. + (ir_vr55_hilo): Split into... + (ir_vr55_mfhilo, ir_vr55_mthilo): ...these new reservations. + (ir_vr55_imul_si, ir_vr55_imadd): Change latency to 5. + (ir_vr55_imul_di): Change latency to 9. Reserve vr55_mac for 4 cycles. + Add various multiplication bypasses. + * config/mips/mips.c (mips_rtx_costs): Adjust VR5500 costs for integer + multiplication. + +2004-05-06 Uros Bizjak + + * config/i386/i386.md (*fscalexf4): Correct insn "mode" + attribute to "XF". + +2004-05-05 Uros Bizjak + + * optabs.h (enum optab_index): Add new OTI_fmod and OTI_drem. + (fmod_optab, drem_optab): Define corresponding macros. + * optabs.c (init_optabs): Initialize fmod_optab and drem_optab. + * genopinit.c (optabs): Implement fmod_optab and drem_optab + using fmod?f3 and drem?f3 patterns. + * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_FMOD{,F,L} + using fmod_optab and BUILT_IN_DREM{,F,L} using drem_optab. + (expand_builtin): Expand BUILT_IN_FMOD{,F,L} and + BUILT_IN_DREM{,F,L} using expand_builtin_mathfn_2 if + flag_unsafe_math_optimizations is set. + + * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FPREM_F, + UNSPEC_FPREM_U, UNSPEC_FPREM1_F and UNSPEC_FPREM1_U. + + * config/i386/i386.c (ix86_emit_fp_unordered_jump): New function. + * config/i386/i386-protos.h (ix86_emit_fp_unordered_jump): + Prototype here. + * config/i386/i386.md (UNSPEC_FPREM_F, UNSPEC_FPREM_U, + UNSPEC_FPREM1_F, UNSPEC_FPREM1_U): New unspecs to represent x87's + fprem and fprem1 instructions. + (*x86_fnstsw_1): Change input parameter to (reg:CCFP 18). + Rename insn definition to x86_fnstsw_1. + (fpremxf4, fprem1xf4): New patterns to implement fprem and fprem1 + x87 instructions. + (fmodsf3, fmoddf3, fmodxf3): New expanders to implement fmodf, fmod + and fmodl built-ins as inline x87 intrinsics. + (dremsf3, dremdf3, dremxf3): New expanders to implement dremf, drem + and dreml built-ins as inline x87 intrinsics. + +2004-05-05 Roger Sayle + + * reload1.c (inherit_piecemeal_p): Mark parameters potentially unused. + +2004-05-05 Ian Lance Taylor + + PR driver/9822 + * doc/invoke.texi (Spec Files): Remove documentation of %c. + +2004-05-05 Chris Demetriou + + * config/mips/mips.md: Update the msub define_split for new mflo/mfhi + representation. + +2004-05-06 Paul Brook + + * config/arm/arm-protots.h (vfp_mem_operand): Rename ... + (arm_coproc_mem_operand): ... To this. + * config/arm/arm.c (arm_legitimate_address_p): Allow ldrd modes. + (arm_legitimate_index_p): Ditto. + (vfp_mem_operand): Rename ... + (arm_coproc_mem_operand): ... To this. Handle writeback modes. + (vfp_secondary_reload_class): Use it. + (output_move_double): Use doubleword load/store instructions. + (arm_hard_regno_mode_ok): Only allow even reg pairs for ldrd. + * config/arm/arm.h (TARGET_LDRD): Define. + (EXTRA_CONSTRAINT_STR_ARM): Add 'Uy'. + * config/gcc/arm/arm.md (arm_movdi): Allow all valid memory operands. + New splitter for invalid doubleword loads. + * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Use Uy constraint. + * config/arm/vfp.md (arm_movdi_vfp): Allow all valid memory operands. + * doc/md.texi: Document Uy constraint. + +2004-05-05 Jan Hubicka + + PR opt/14980 + * cgraphunit.c (cgraph_remove_unreachable_nodes): Deal properly with + inline clones. + +2004-05-05 H.J. Lu + + PR target/15290 + * config/i386/i386.c (ix86_split_to_parts): Use real_to_target + instead of REAL_VALUE_TO_TARGET_LONG_DOUBLE. + +2004-05-05 Mike Stump + + * config/darwin-c.c (add_framework): Copy the directory name as it + can be freed later. Also, ensure we always allocate enough room + for the cached framework information. + (find_subframework_header): Keep track of the directory where the + subframework header was found. + (framework_construct_pathname): Speed up by not trying to re-add a + framework. + * cppfiles.c (search_path_exhausted): Arrange for the missing + header callback to be able to set the directory where the header + was found. + (cpp_get_dir): Add. + * cpplib.h (missing_header_cb): Add a parameter. + (cpp_get_dir): Add. + +2004-05-03 Mike Stump + + * doc/invoke.texi (Directory Options): Document -iquote. + * doc/cpp.texi: Likewise. + * doc/cppopts.texi: Likewise. + * c-opts.c (c_common_missing_argument): Add -iquote processing. + (c_common_handle_option): Likewise. + * c.opt (iquote): Add. + * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -iquote. + * c-incpath.c (merge_include_chains): Update comment to use -iquote. + + * c-opts.c (case OPT_I): Deprecate -I- support. + * doc/invoke.texi: Likewise. + * doc/cpp.texi: Likewise. + * doc/cppopts.texi: Likewise. + +2004-05-05 Steven Bosscher + + * basic-block.h (free_basic_block_vars): Update prototype. + * flow.c (free_basic_block_vars): Remove the keep_head_end_p + argument. + (life_analysis): Update call. + * ifcvt.c (if_convert): Likewise. + * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise. + * passes.c (rest_of_handle_final): Likewise. + (rest_of_compilation): Likewise. + * config/sh/sh.c (sh_output_mi_thunk): Likewise. + + * emit-rtl.c (next_real_insn): Use INSN_P. + (prev_real_insn): Likewise. + +2004-05-05 Eric Christopher + + * config/mips/mips.md: Update the madd define_split for new mflo/mfhi + representation. + +2004-05-05 Paolo Bonzini + + * config/rs6000/rs6000.c (build_opaque_vector_type): + New function. + (rs6000_init_builtins): Use it. + +2004-05-04 Bernard Giroud + + * gcc/gcc/vmsdbgout.c (vms_func_node, vms_func_ref): New. + (func_table): Change type from char ** to vms_func_ref. + (write_rtnbeg): Update to reflect func_table change. Use + fde->funcdef_number instead of rtnnum in output. + (write_rtnend, vmxdbgout_begin_function, vmsdbgout_init): Likewise. + +2004-05-04 Paolo Bonzini + Richard Henderson + + PR target/14899 + + * c-common.c (vector_types_convertible_p): New function. + * c-typeck.c (comptypes): Recurse on vector types. + (convert_for_assignment): Use vector_types_convertible_p. + (digest_init): Use vector_types_convertible_p to check + validness of constant vector initializers; otherwise treat + them as scalars. + * tree.c (make_or_reuse_type): New. + (build_common_tree_nodes): Use it. + * cp/call.c (standard_conversion): Likewise. + * cp/typeck.c (comptypes): Recurse on vector types. + (convert_for_assignment): Use vector_types_convertible_p. + +2004-05-04 Chris Demetriou + + * config/mips/mips.c (override_options): Default to no + generation of branch-likely operations when tuning for + CPUs where they tend to have a negative performance impact + (e.g., SB-1). + +2004-05-04 Richard Kenner + + * expr.c (store_constructor_field): Don't call store_constructor + if bitsize is not a multiple of a byte. + +2004-05-04 Richard Sandiford + + * reload1.c (inherit_piecemeal_p): New function. + (emit_reload_insns): When reloading a group of hard registers, use + inherit_piecemeal_p to decide whether the values of individual hard + registers can be inherited. + +2004-05-04 H.J. Lu + + * config/ia64/t-ia64 (LIB2ADDEH): Remove gthr-gnat.c. + * config/s390/t-tpf (LIB2ADDEHDEP): Likewise. + * config/t-linux (LIB2ADDEHDEP): Likewise. + +2004-05-04 Paul Brook + + * config/arm/crti.asm: Push an even number of registers. + * config/arm/crtn.asm: And restore them. Load via sp. + +2004-05-04 Paolo Bonzini + + * ggc-zone.c (ggc_alloc_zone_1): Add MEM_STAT_DECL parameter. + Collect overhead information. + (ggc_alloc_stat): New name of ggc_alloc. Add MEM_STAT_DECL + parameter and pass it through. + (ggc_alloc_typed_stat): New name of ggc_alloc_typed. Add + MEM_STAT_DECL parameter and pass it through. + (ggc_alloc_zone_stat): New name of ggc_alloc_zone. Add + MEM_STAT_DECL parameter and pass it through. + +2004-05-03 Aldy Hernandez + + * config/rs6000/rs6000-protos.h: Protoize rs6000_hard_regno_nregs. + + * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): New. + + * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Call + rs6000_hard_regno_nregs. + +2004-05-03 Eric Christopher + + * config/s390/s390.c (s390_emit_prologue): Call unspec tpf + prologue insn instead of setting up call. + (s390_emit_epilogue): Ditto. + * config/s390/s390.md (prologue_tpf, epilogue_tpf): New patterns. + (define_constants): Add numbers for above patterns. + +2004-05-03 Eric Christopher + + * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Move body... + * config/s390/s390.c (s390_conditional_register_usage): ...here. + * config/s390/s390-protos.h: Prototype. + +2004-05-03 Joe Buck + + * cppfiles.c (pchf_adder): Eliminate use of |= in d->have_once_only + assignment. + +2004-05-03 Eric Christopher + + * config/mips/mips.md: Fix branch length attribute definition. + +2004-05-03 Aldy Hernandez + + * config.gcc: Remove --enable-altivec support. + + * config/rs6000/altivec-defs.h: Remove. + +2004-05-03 Rainer Orth + + * fixinc/inclhack.def (svr4_profil): Don't apply on IRIX 5/6. + * fixinc/fixincl.x: Regenerate. + +2004-05-03 Uros Bizjak + + * config/i386/i386.md (*fyl2x_sfxf3, *fyl2x_dfxf3): Remove insn + definition. + (log?f2, log10?f2, log2?f2): Reimplement expanders with + float_truncate insn. + (*fxtractsf3, *fxtractdf3): Remove insn definition. + (logb?f2): Reimplement expanders with float_truncate insn. + +2004-05-03 Graham Stott + + PR 14718 + * dwarf2out.c (dwarf2out_imported_module_or_decl): Use + force_type_die for CONST_DECL. + +2004-05-03 Eric Botcazou + Rainer Orth + + * config.gcc (sparc64-*-solaris2*, sparcv9-*-solaris2*): Add + tm-dwarf2.h to tm_file. + (sparc-*-solaris2*): Add tm-dwarf2.h to tm_file for Solaris 7+. + * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Delete. + (ASM_DEBUG_SPEC): Delete. + +2004-05-03 Uros Bizjak + + * optabs.h (enum optab_index): Add new OTI_expm1. + (expm1_optab): Define corresponding macro. + * optabs.c (init_optabs): Initialize expm1_optab. + * genopinit.c (optabs): Implement expm1_optab using expm1?f2 + patterns. + * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXPM1{,F,L} + using expm1_optab. + (expand_builtin): Expand BUILT_IN_EXPM1{,F,L} using + expand_builtin_mathfn if flag_unsafe_math_optimizations is set. + + * config/i386/i386.md (expm1df2, expm1sf2, expm1xf2): New expanders + to implement expm1, expm1f and expm1l built-ins as inline x87 + intrinsics. + +2004-05-02 Alexandre Oliva + + 2003-11-19 Richard Sandiford + * config/frv/frv.md (*return_true, *return_false): New patterns. + +2004-05-02 Kazu Hirata + + * rtl.h (PHI_NODE_P): Remove. + +2004-05-02 Eric Botcazou + + PR middle-end/14988 + * function.c (assign_stack_local_1): Use BITS_PER_UNIT alignment + when passed -2 as 'align'. + (put_var_into_stack): Use 'bool' as the type for the three local + predicates. Adjust calls to put_reg_into_stack. + When passed a CONCAT, instruct put_reg_into_stack to use + a consecutive stack slot for the second part. + (put_reg_into_stack): Remove 'promoted_mode' parameter, add + 'consecutive_p' parameter. Turn the three predicates into 'bool' + parameters. Retrieve the register mode from 'reg'. + When consecutive_p is true, instruct assign_stack_local_1 to use + BITS_PER_UNIT alignment. + (put_addressof_into_stack): Use 'bool' as the type for the two + local predicates. Adjust call to put_reg_into_stack. + +2004-05-02 Kaveh R. Ghazi + + * fold-const.c (fold_convert_const, fold): Add missing + FIX_ROUND_EXPR case. + +2004-05-02 Alexandre Oliva + + * configure.ac (FLEX, BISON): Only use tools from the build tree + if build equals host. + * configure: Rebuilt. + + * config/frv/frv-protos.h (frv_expand_epilogue, + frv_expand_fdpic_call): Add bool argument. + * config/frv/frv.c (frv_function_ok_for_sibcall): New. + (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to it. + (frv_expand_epilogue): Use new argument to decide whether to emit + return instruction or copy the return address to LR. + (frv_expand_fdpic_call): Inline PLT entry when emitting direct + sibcalls. + (sibcall_operand): New. + * config/frv/frv.h (PREDICATE_CODES): call_operand doesn't match + PLUS nor LABEL_REF. Add sibcall_operand. + * config/frv/frv.md (call, call_value): Pass false to + frv_expand_fdpic_call. + (call_fdpicdi, call_value_fdpicdi): Insert %i0 in calll. + (sibcall, sibcall_internal, sibcall_fdpicdi, sibcall_value, + sibcall_value_internal, sibcall_value_fdpicdi): New. + (return_unsigned_true, return_unsigned_false): New. + (epilogue): Adjust call to frv_expand_epilogue. + (sibcall_epilogue): New. + + * config/frv/frv.h (ASM_SPEC): Pass -mno-fdpic as -mnopic. + (CPP_SPEC, CPP_SIMPLE_SPEC): Undefine __FRV_ACC__ and __FRV_FPR__ + before redefining them. + +2004-05-01 Kaveh R. Ghazi + + * builtins.c (fold_fixed_mathfn): New function. + (fold_builtin_lround, fold_builtin): Use it. + +2004-05-01 Jakub Jelinek + + * config/sparc/linux64.h (TARGET_DEFAULT): Make 64-bit by default + also for TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3. + +2004-05-01 Kazu Hirata + + * config/cris/cris.h: Revert my "fix comment typos" patch. + +2004-05-01 Richard Sandiford + + * config/mips/mips.h (TUNE_MACC_CHAINS): Fix comment. + +2004-05-01 Falk Hueffner + + * config/alpha/alpha.md (builtin_insbl, builtin_inswl, + builtin_insll): Disallow 0 as first input operand. + +2004-05-01 Falk Hueffner + + * config/alpha/alpha.c (alpha_rtx_costs): Fix shiftadd costs. + +2004-05-01 Ulrich Weigand + + 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. + +2004-05-01 Paolo Bonzini + + * simplify-rtx.c (simplify_ternary_operation): When + converting an IF_THEN_ELSE to a relational op, return + correct mode. + +2004-04-30 Kaveh R. Ghazi + + * builtins.c (fold_builtin_round): Fix comment typo. + (fold_builtin_lround): New function. + (fold_builtin): Use it. + +2004-04-20 Andrew Pinski + + PR target/11608 + * config/sh/elf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Update and make it + more like the one in config/dbxelf.h. + +2004-04-30 Zack Weinberg + + * tree.h (SET_ARRAY_OR_VECTOR_CHECK): Rename to SET_OR_ARRAY_CHECK + and adjust definition accordingly. + (TYPE_DOMAIN): Allow only SET_TYPE and ARRAY_TYPE. + (TYPE_DEBUG_REPRESENTATION_TYPE): Allow only VECTOR_TYPE. + * expr.c (store_constructor): Do not access TYPE_DOMAIN of a + VECTOR_TYPE. + +2004-04-30 Jason Merrill + + PR c++/14587 + * config/i386/winnt.c (associated_type): Look for attributes on + the TYPE_MAIN_VARIANT of *this. + * attribs.c (decl_attributes): If ATTR_FLAG_TYPE_IN_PLACE, also + apply the attributes to the variants. + +2004-04-30 Paul Brook + + * config.gcc: Simplify arm --with-{cpu,tune} test. + * config/arm/arm-cores.def: Document whitespace restrictions. + +2004-04-30 Rainer Orth + + PR other/1963 + * config/alpha/osf.h (SWITCHES_NEED_SPACES): Define. + +2004-04-30 Brian Ford + DJ Delorie + + * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC] + (DWARF2_DEBUGGING_INFO): Define to enable. + (DBX_REGISTER_NUMBER): Define to use the svr4 register map for + DWARF2. + * configure.ac (Target-specific assembler checks) + : New test for .secrel32 + relocs. + * configure: Regenerate. + * config.in: Likewise. + + * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC] + (ASM_OUPUT_DWARF_OFFSET): Define. + +2004-04-29 Andreas Krebbel + + * config/s390/s390-protos.h (s390_emit_epilogue): Parameter added. + (s390_emit_call): New function prototype added. + (s390_tls_get_offset): Function removed. + * config/s390/s390.c (s390_function_ok_for_sibcall, + s390_call_saved_register_used_p): New functions. + (TARGET_FUNCTION_OK_FOR_SIBCALL): Definition of target macro added. + (s390_tls_get_offset): Function merged into s390_emit_tls_call_insn. + (s390_emit_tls_call_insn): New function. + (legitimize_tls_address): Call s390_emit_tls_call_insn instead of + emit_call_insn. + (s390_emit_prologue): Use s390_emit_call instead of emit_call_insn. + (s390_emit_epilogue): Like s390_emit_prologue. Parameter for sibcalls + added. + * config/s390/s390.h (SIBCALL_REGNUM): New macro representing the + register number used to hold the target address for sibcalls. + * config/s390/s390.md ("sibcall", "sibcall_value", "sibcall_epilogue"): + New expanders. + ("*sibcall_br", "*sibcall_brc", "*sibcall_brcl", "*sibcall_value_br", + "*sibcall_value_brc", "*sibcall_value_brcl"): New insns. + ("call_exp", "call_value_exp", "call_value_tls", "call_value_tls_exp"): + Expanders removed. + ("call", "call_value"): Call s390_emit_call to emit the call patterns. + ("*bras", "*brasl", "*bras_r", "*brasl_r", "*bras_tls", "*brasl_tls", + "*basr", "*basr_r", "*basr_tls"): Added constraint: !SIBLING_CALL_P. + ("epilogue"): Changed the call to s390_emit_epilogue to use the + new parameter. + +2004-04-30 Kazu Hirata + + * bb-reorder.c, c-opts.c, cfglayout.c, cgraph.c, cgraphunit.c, + cppfiles.c, fold-const.c, ggc-zone.c, loop-doloop.c, optabs.c, + reg-stack.c, varasm.c, config/alpha/ev4.md, + config/alpha/ev5.md, config/alpha/ev6.md, config/arm/arm.c, + config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.c, + config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c, + config/frv/frv.h, config/frv/frv.md, config/h8300/h8300.c, + config/i386/i386.c, config/i386/i386.md, config/i386/winnt.c, + config/ia64/itanium2.md, config/ip2k/ip2k.c, + config/mips/mips.c, config/mips/mips.h, config/mips/sr71k.md, + config/pa/pa.c, config/s390/s390.c, config/sh/sh.c: Fix + comment typos. + +2004-04-30 Paul Brook + + * config.gcc: Default ep9312 to hard-float. + * config/arm/arm-cores.def: Add ARCH field. + * config/arm/arm.c (FL_FOR_ARCH*): Define. + (arm_arch_cirrus): New variable. + (all_cores): Set and use arch. + (all_architectures): Ditto. + (arm_arch_name): New variable. + (arm_override_options): Set it. Use [SUB]TARGET_CPU_DEFAULT. + Set and use arm_arch_cirrus. + * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set arch defines. + (enum processor_type): Update ARM_CORE define. + (enum target_cpus): Add. Replaces TARGET_CPU_* defines. + (CPP_SPEC): Remove %(cpp_cpu_arch). + (CPP_ARCH_DEFAULT_SPEC): Remove. + (CPP_CPU_ARCH_SPEC): Remove. + (EXTRA_SPECS): Don't use CPP_*ARCH*_SPEC. + (FPUTYPE_DEFAULT): Don't define here. + +2004-04-30 J"orn Rennecke + + * flow.c (propagate_one_insn): Call mark_set_regs for stack pointer + updates too. + +2004-04-30 Paul Brook + + * arm.c (arm_needs_doubleword_align): Use mode alignment. + +2004-04-30 Paolo Bonzini + + * config/altivec/altivec.h [__cplusplus] (vec_subsubs): Rename to + vec_sububs. + [__cplusplus] (vec_subsuhs): Rename to vec_subuhs, without + duplicates. + +2004-04-30 Uros Bizjak + + * config/i386/i386.md (atansf2, atandf2, atanxf2): Move near + atan2?f3 expanders. + +2004-04-29 Nick Clifton + + Bug 14093 + * config/sh/sh-protos.h (sh_promote_prototypes): Declare. + * config/sh/sh.c (sh_promote_prototypes): Remove declaration. + Delete static from definition. + * config/sh/sh.h (FUNCTION_VALUE): Add sh_promote_prototypes call. + +2004-04-30 Uros Bizjak + + * reg-stack.c (subst_stack_regs_pat): : abort() if src1 dies. + : Same. + : Same. + +2004-04-29 Richard Guenther + + * commom.opt (Wfatal-errors): Add it. + * diagnostic.c (flag_fatal_errors): Define it. + (diagnostic_action_after_output): Check for flag_fatal_errors. + * flags.h (flag_fatal_errors): Declare it. + * opts.c (common_handle_option): Add OPT_Wfatal_errors. + * doc/invoke.texi (Warning Options): Document -Wfatal-errors. + +2004-04-30 Josef Zlomek + + * gcse.c (remove_reachable_equiv_notes): Delete notes also in + blocks which have kill flag set. + +2004-04-29 Ben Elliston + + * configure.ac (--with-as): Abort if user-supplied assembler + cannot be executed. + (--with-ld): Likewise for the linker. + * configure: Regenerate. + +2004-04-29 Kaveh R. Ghazi + + * convert.c (convert_to_integer): Ensure `long_integer_type_node' + isn't NULL before using it. + +2004-04-29 Richard Sandiford + + PR target/15189 + * config/mips/mips.md (load_df_low): Use default length. + (load_df_high, store_df_high): Likewise. + +2004-04-29 Kazu Hirata + + * config/mips/mips.md, config/mips/sb1.md, + config/rs6000/rs6000.c: Fix comment typos. + +2004-04-29 Kazu Hirata + + * builtins.c, cgraph.c, cgraphunit.c, final.c, fold-const.c: + Fix comment typos. + +2004-04-29 Douglas B Rupp + + * gcc.c (DELETE_IF_ORDINARY): New macro default definition. + (delete_if_ordinary): Use above macro. + * config/alpha/xm-vms.h (DELETE_IF_ORDINARY): New macro VMS definition. + Update copyright. + * doc/hostconfig.texi (DELETE_IF_ORDINARY): Document new macro. + +2004-04-29 Richard Earnshaw + + * c-decl.c (get_parm_info): Use the correct tag keywords when + warning about type declarations in prototypes. + +2004-04-29 Paul Brook + + * config.gcc: Pull list of cores from arm-cores.def. + +2004-04-29 Paolo Bonzini + + * combine.c (combine_simplify_rtx): Adjust call to use + simplify_relational_operation. Do not use SELECT_CC_MODE + when a comparison already has a MODE_CC mode. + +2004-04-29 Paolo Bonzini + + (simplify_set): simplify_relational_operation may now + return another relational expression. + * cse.c (fold_rtx): simplify_relational_operation now + takes of computing the comparison mode. + * dojump.c (compare_from_rtx): Use simplify_relational_operation, + remove dead code. + (do_compare_rtx_and_jump): Likewise. + * integrate.c (subst_constants): simplify_relational_operation + may now return another relational expression. + * simplify-rtx.c (simplify_gen_relational): Move most code to + the new simplify_relational_operation and + simplify_relational_operation_1 functions. + (simplify_relational_operation): Rewritten. + (simplify_relational_operation_1): New function. + (simplify_ternary_operation): simplify_relational_operation + may now return another relational expression. + (simplify_rtx): Remove unnecessary temp variable. + +2004-04-29 Uros Bizjak + + * reg-stack.c (swap_to_top): New function. + (subst_stack_regs_pat): UNSPEC_FPATAN, UNSPEC_FYL2X: Use + swap_to_top(). + (subst_stack_regs_pat): UNSPEC_FSCALE: Remove. + (subst_stack_regs_pat): Handle UNSPEC_FSCALE_FRACT and + UNSPEC_FSCALE_EXP. + + * config/i386/i386.md (UNSPEC_FSCALE): Remove. + (*fscale_sfxf3, *fscale_dfxf3, *fscale_xf3): Remove insn pattern. + (UNSPEC_FSCALE_FRACT, UNSPEC_FSCALE_EXP): New unspecs to represent + x87's fscale insn. + (*fscalexf4: Define new insn pattern to implement x87 fscale insn. + (exp?f2, exp10?f2, exp2?f2): Use *fscalexf4 and float_truncate + patterns. + +2004-04-28 Serge Belyshev <1319@bot.ru> + + PR 14944 + * coverage.c (read_counts_file): Fix usage of warning () call. + * pretty-print.c (pp_base_format_text): Fix typo in the comment. + +2004-04-28 Ben Elliston + + * doc/invoke.texi (Objective-C Dialect Options): Don't prefix + options with "-" in the option index. + (SPARC Options): Likewise. + (M32R/D Options): Likewise. + +2004-04-28 Kaveh R. Ghazi + + * convert.c (convert_to_integer): Convert (long)round -> lround, + etc. + +2004-04-28 Andrew Pinski + + * config/rs6000/rs6000.c (registers_ok_for_quad_peep): + Return false if we do not have fp register. + (addrs_ok_for_quad_peep): Rename to ... + (mems_ok_for_quad_peep): this. + Add check for volatile memory. + * config/rs6000/rs6000-protos.h (addrs_ok_for_quad_peep): + Rename to ... + (mems_ok_for_quad_peep): this. + * config/rs6000/rs6000.md: Change peephole's for lfq/stq + to peephole2's. + (lfq_power2): New instruction. + (stfq_power2): Likewise. + +2004-04-28 Jan Hubicka + + PR c/15004 + * function.c (do_warn_unused_parameter): Break out form ... + (expand_function_end): ... here; warn only when not using cgraphunit. + * function.h (do_warn_unused_parameter): Declare. + * cgraphunit.c: Include function.h. + (cgraph_finalize_function): Do unused parameter warning. + * Makefile.in (cgraphunit.o): Depend on function.h + +2004-04-28 Joseph S. Myers + + * Makefile.in ($(DESTDIR)$(infodir)/%.info): Don't condition + calling install-info on $(DESTDIR)$(infodir)/dir already being + present. + +2004-04-28 Paul Brook + + * dwarf2out.c (mem_loc_descriptor): Handle shifts. + +2004-04-28 Ulrich Weigand + + * gcse.c (find_moveable_store): Do not accept store insns with + REG_EH_REGION note. + +2004-04-28 Paul Brook + + * calls.c (precompute_arguments): Remove PROMOTE_FOR_CALL_ONLY. + * function.c (assign_temp): Ditto. + * system.h (PROMOTE_FOR_CALL_ONLY): Poison. + +2004-04-28 Paul Brook + + * config/arm/lib1funcs.asm: Recognize armv5tej and armv6. + +2004-04-28 Josef Zlomek + + * var-tracking.c (variable_different_p): Add a parameter + compare_current_location, compare current location of variable parts + if it is true. + (dataflow_set_different_1): Pass compare_current_location == false. + (dataflow_set_different_2): Pass compare_current_location == false. + (emit_notes_for_differences_1): Pass compare_current_location == true. + +2004-04-28 Ulrich Weigand + + * config/s390/s390.md ("casesi"): Mark jump table access as + non-trapping and unchanging. + +2004-04-27 John David Anglin + + PR debug/14829 + * dwarf2out.c (reg_number): Rename to dbx_reg_number. Adjust all + callers. + (multiple_reg_loc_descriptor, reg_loc_descriptor): Use gcc register + number for indexing hard_regno_nregs array. + +2004-04-27 Geoffrey Keating + + * config/darwin.h (STARTFILE_SPEC): Use %s to find crt2.o. + * config/darwin-crt2.c: Only have contents on __ppc__. + +2004-04-27 Bob Wilson + + * config/xtensa/xtensa.c (call_insn_operand): Check + SYMBOL_REF_EXTERNAL_P in addition to SYMBOL_REF_LOCAL_P. + * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND): Likewise. + * config/xtensa/xtensa.md (call, call_value): Likewise. + +2004-04-27 Wu Yongwei + + * gthr-win32.h (__gthread_mutex_t): Change typedef to new structure. + (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust. + (__gthread_mutex_init_function): Replace CreateMutex with + initialization of custom mutex using CreateSemaphore. + (__gthread_mutex_lock): Use InterlockedIncrement. + (__gthread_mutex_trylock): Use InterlockedCompareExchange. + (__gthread_mutex_unlock): Use InterlockedDecrement and + ReleaseSemaphore to unlock + * config/i386/gthr-win32.c (__gthread_mutex_init_function, + __gthread_mutex_lock, __gthread_mutex_trylock, + __gthread_mutex_unlock): Adjust to match inline versions in + gthr-win32.h. + +2004-04-27 Paul Brook + + * config/arm/arm.c (arm_promote_prototypes): New function. + (TARGET_PROMOTE_PROTOTYPES): Use it. + +2004-04-27 Paul Brook + + * config/arm/arm.c (arm_expand_epilogue): Count blocks of 4 regs. + +2004-04-26 Bernard Giroud + + * config/alpha.c (alpha_end_function): For OpenVMS gas, + correctly output .pdesc directive before .end. + +2004-04-26 James E Wilson + + Bug 14927 + * config/ia64/ia64.md (movxf): New local op0. Handle case where + operands[0] is a SUBREG. Handle case where operands[1] is a GR reg. + +2004-04-26 Zack Weinberg + + * config/ia64/hpux.h: Predefine __STDCPP__ when compiling C++. + * config/pa/pa-hpux10.h: Likewise. + * config/pa/pa-hpux11.h: Likewise. + +2004-04-26 Geoffrey Keating + + * doc/invoke.texi (Overall Options): Document default for -o + for PCH files. + +2004-04-26 Richard Kenner + + * builtins.c (expand_builtin_update_setjmp_buf): New function. + (expand_builtin, case BUILT_IN_UPDATE_SETJMP_BUF): New case. + * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): New code. + +2004-04-26 Paul Brook + + * config/arm/arm.c (arm_legitimate_index_p): Correct iwmmxt offsets. + +2004-04-26 Paul Brook + + * config/arm/arm.c (arm_legitimate_index_p): Correct maverick offsets. + +2004-04-25 Roger Sayle + + * fold-const.c (fold): Prefer fold_convert (negate_expr (...)) to + fold (build1 (NEGATE_EXPR, ...)). Optimize X / -1 as -X and + X % -1 as 0. + +2004-04-26 Hans-Peter Nilsson + + PR bootstrap/15141 + * except.c (connect_post_landing_pads): Delete insns after the + barrier when generating a unwind_resume_libfunc call. + +2004-04-25 Richard Kenner + + PR/c++ 15119 + * tree.c (substitute_placeholder_in_expr, case 4): New case, + for TARGET_EXPR. + +2004-04-25 Zdenek Dvorak + + * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle, + __gcov_execv, __gcov_execvp, __gcov_execve): Do not declare when + inhibit_libc is defined. + +2004-04-25 Richard Sandiford + + * config/mips/mips-protos.h (mips_linked_macc_p): Declare. + * config/mips/mips.h (TUNE_MACC_CHAINS): New macro. + * config/mips/mips.c (TARGET_SCHED_REORDER): Define. + (TARGET_SCHED_VARIABLE_ISSUE): Define. + (mips_adjust_cost): Move later in file, next to other sched hooks. + (mips_macc_chains_last_hilo): New variable. + (mips_linked_madd_p, mips_macc_chains_record, mips_macc_chains_reorder) + (mips_promote_ready, mips_sched_reorder, mips_variable_issue): New. + * config/mips/mips.md (may_clobber_hilo): New attribute. + +2004-04-24 Roger Sayle + Bruce Korb + + * fixinc/inclhack.def (aix_syswait_2): New fix. + * fixinc/fixincl.x: Regenerate. + * fixinc/tests/base/sys/wait.h: Update for new test. + +2004-04-24 Alan Modra + + PR target/14960 + * config/rs6000/rs6000.c (rs6000_stack_info): Rename total_raw_size + to non_fixed_size, and leave out fixed_size from the sum. + (generate_set_vrsave): Correct clobbers. + (rs6000_emit_epilogue): Test TARGET_ALTIVEC with TARGET_ALTIVEC_SAVE. + (rs6000_function_value): Test TARGET_ALTIVEC and TARGET_ALTIVEC_ABI. + (rs6000_libcall_value): Likewise. + * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Likewise. + (FUNCTION_ARG_REGNO_P): Likewise. + +2004-04-24 Ulrich Weigand + + * expmed.c (expand_mult_highpart_adjust): Do not assume OP1 + is a CONST_INT. + (expand_mult_highpart_optab): Call expand_mult_highpart_adjust + with NARROW_OP1 instead of OP1. + +2004-04-24 Ulrich Weigand + + * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __s390__ + and __s390x__ hosts. + +2004-03-23 Zdenek Dvorak + + * Makefile.in (LIBGCOV): Add _gcov_fork, _gcov_execl, _gcov_execlp, + _gcov_execle, _gcov_execv, _gcov_execvp, _gcov_execve. + * builtin-types.def (BT_PID, BT_PTR_CONST_STRING, BT_FN_PID, + BT_FN_INT_CONST_STRING_PTR_CONST_STRING, + BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING): New. + * builtins.c (expand_builtin_fork_or_exec): New. + (expand_builtin): Call it. + * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP,BUILT_IN_EXECLE, + BUILT_IN_EXECV, BUILT_IN_EXECVP, BUILT_IN_EXECVE, BUILT_IN_FORK): New. + * c-common.c (PID_TYPE): New macro. + (c_common_nodes_and_builtins): Initialize pid_type_node. + * calls.c (special_function_p): Do not handle fork and exec. + (expand_call): Do not handle ECF_FORK_OR_EXEC. + * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle, + __gcov_execv, __gcov_execvp, __gcov_execve): Declare. + * libgcov.c (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle, + __gcov_execv, __gcov_execvp, __gcov_execve): New. + * tree.h (enum tree_index): Add TI_PID_TYPE. + (pid_type_node): New macro. + (ECF_FORK_OR_EXEC): Removed. + +2004-04-23 Eric Botcazou + + PR optimization/13985 + * cfgloopmanip.c (fix_loop_placements): New prototype. + Call fix_bb_placements on the preheader of loops that have + been reparented. + (remove_path): Adjust call to fix_loop_placements. + +2004-04-23 Andrew Pinski + + * config/darwin7.h: New file. + * config.gcc (*-*-darwin*): Add darwin7.h if the + version is greater than 6. + * config/darwin.h (TARGET_C99_FUNCTIONS): Define. + (MATH_LIBRARY): Wrap in ifdefs. + +2004-04-23 Daniel Jacobowitz + + * config/arm/arm.c (arm_output_epilogue): Reverse the order of + loading iWMMXt registers with a frame pointer. Use post-increment + without a frame pointer. + (arm_expand_prologue): Reverse the order of saving iWMMXt registers. + +2004-04-23 Paolo Bonzini + + * doc/invoke.texi (Optimize Options): Refer to "unit-at-a-time + mode" rather than "-funit-at-a-time" since -O2 enables it + without requiring -f* options. Refer to -fprofile-generate and + -fprofile-use correctly. Move -funit-at-a-time among options + enabled by -O. Add information about unit-at-a-time caveats. + +2004-04-22 Per Bothner + + * line-map.h (struct line_maps): New field highest_line. + (linemap_position_for_column): Make non-inline function. + (LINEMAP_POSITION_FOR_COLUMN): New macro. + * line-map.c (linemap_init): Clear highest_line field. + (linemap_add): Set highest_line field. + (linemap_line_start): Minor optimization - use highest_line field. + Reduce maximum column hint to 10000. Update highest_line field. + (linemap_position_for_column): Moved from line-map.h. Optimize a bit. + * cpphash.h (struct cpp_reader): Remove line field - instead use + line_table->highest_line. + (saved_line): Remove unused field. + (CPP_INCREMENT_FILE): Don't do linemap_lookup - just use newest map. + Use line_table's highest_line field instead of cpp_reader's line. + * cpplib.c (start_directive): Likewise use highest_line field. + (do_line, do_linemarker): Likewise just use newest map. + (_cpp_do_file_change): Don't need to set cpp_reader's line field. + * cpperror.c (cpp_error): Likewise use highest_line field. + * cppfiles.c (open_file_failed: Likewise. + (cpp_make_system_header): Likewise use newest map and highest_line. + * cppinit.c (cpp_create_reader): Don't initialize removed field. + * cpplex.c (_cpp_process_line_notes, _cpp_skip_block_comment, + skip_line_comment, skip_whitespace, _cpp_get_fresh_line, + _cpp_lex_direct): Likewise use highest_line. + (_cpp_lex_direct): Use new LINEMAP_POSITION_FOR_COLUMN macro. + * cppmacro.c (_cpp_builtin_macro_text): Likewise use highest_line, + and use newest map. + * cpppch.c (cpp_read_state): Don't save+restore cpp_reader's line. + * cpptrad.c (_cpp_overlay_buffer): Don't save cpp_reader's line. + (copy_comment, _cpp_scan_out_logical_line): Likewise use highest_line. + +2004-04-23 Alan Modra + + PR bootstrap/14992 + * gcc.c (init_gcc_specs): Test USE_LD_AS_NEEDED, not HAVE_LD_AS_NEEDED. + * config/linux.h (USE_LD_AS_NEEDED): Define. + * gcc/config/alpha/linux.h (USE_LD_AS_NEEDED): Define. + * gcc/config/arm/linux-elf.h (USE_LD_AS_NEEDED): Define. + * gcc/config/rs6000/linux.h (USE_LD_AS_NEEDED): Define. + * gcc/config/rs6000/linux64.h (USE_LD_AS_NEEDED): Define. + * gcc/config/sh/linux.h (USE_LD_AS_NEEDED): Define. + * gcc/config/sparc/linux.h (USE_LD_AS_NEEDED): Define. + * gcc/config/sparc/linux64.h (USE_LD_AS_NEEDED): Define. + +2004-04-22 Per Bothner + + * cppinit.c (cpp_read_main_file): Return NULL rather than false. + Fixes PR preprocessor/15067. + +2004-04-23 Andreas Schwab + + * config/ia64/ia64intrin.h: Add intermediate cast to void * to + avoid aliasing warning. + +2004-04-22 Jan Hubicka + Mostafa Hagog + + * cfgloopmanip.c (scale_bbs_frequencies): Use RDIV macro + * cfgloopanal.c (expected_loop_iterations): Change the return value + +2004-04-22 Jakub Jelinek + + * cselib.h (struct elt_loc_list): Remove canon_loc field. + * cselib.c (new_elt_loc_list): Remove canon_loc initialization. + (cselib_invalidate_mem): Remove all canon_loc and canon_x + traces. + +2004-04-22 Josef Zlomek + + Revert + 2004-04-20 Josef Zlomek + + * var-tracking.c (variable_part_different_p): Variable parts + differ when the most recent locations differ. + +2004-04-22 Richard Sandiford + + * doc/invoke.texi: Remove the MIPS -membedded-pic option. + * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): Delete. + (embedded_pic_offset): Delete. + * config/mips/mips.h (MASK_EMBEDDED_PIC): Delete. Shuffle other + MASK_* constants. + (TARGET_EMBEDDED_PIC): Delete. + (TARGET_SWITCHES): Remove -m{no-,}embedded-pic. + (ASM_SPEC): Remove -membedded-pic. + (ASM_OUTPUT_ADDR_DIFF_ELT): Remove embedded-pic handling. + (ASM_OUTPUT_CASE_LABEL): Likewise. + * config/mips/vxworks.h (ASM_SPEC): Remove -membedded-pic. + * config/mips/windiss.h (ASM_SPEC): Likewise. + * config/mips/mips.c (struct machine_function): Remove + embedded_pic_fnaddr_rtx. + (TARGET_ENCODE_SECTION_INFO): Remove override. + (embedded_pic_fnaddr_reg, embedded_pic_offset): Delete. + (override_options): Remove -membedded-pic handling. + (print_operand): Remove handling of '%S'. + (mips_select_section: Remove -membedded-pic handling. + (mips_encode_section_info): Delete. + (mips_output_conditional_branch): Remove mention of -membedded-pic. + * config/mips/mips.md (define_attr length, movsi, movdi, jump): Remove + -membedded-pic handling. + (casesi, casesi_internal, casesi_internal_di, get_fnaddr): Delete. + +2004-04-22 Alan Modra + + * var-tracking.c (frame_base_decl): Remove useless GTY. + +2004-04-21 Aldy Hernandez + + * config/rs6000/rs6000.c (rs6000_override_options): Error when + user wants altivec and e500 instructions. + +2004-04-21 H.J. Lu + + PR target/14813 + * config/ia64/crtend.asm: Move pointer to __do_global_ctors_aux + in .init_array section to ... + * config/ia64/crtbegin.asm: Here. + + * config/ia64/crtend.asm: Mark __do_global_ctors_aux global + and hidden if HAVE_INITFINI_ARRAY is defined. + +2004-04-21 James E Wilson + + * config/mips/mips-protos.h (fp_register_operand, lo_operand): Declare. + * config/mips/mips.c (mips_multipass_dfa_lookahead): Declare. + (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): New. + (fp_register_operand, lo_operand): New. + (mips_rtx_costs): Add TUNE_SB1 support. + (mips_issue_rate): Add comment. Add PROCESSOR_SB1 support. + (mips_use_dfa_pipeline_interface): Add PROCESSOR_SB1 support. + (mips_multipass_dfa_lookahead): New. + * config/mips/mips.h (MASK_FP_EXCEPTIONS, TARGET_FP_EXCEPTIONS, + TUNE_SB1): New. + (TARGET_SWITCHES): Add -mfp-exceptions support. + (TARGET_FP_EXCEPTIONS_DEFAULT): New. + (BRANCH_COST): Fix whitespace. + * config/mips/mips.md: Include sb1.md. + * config/mips/sb1.md: New file. + * doc/invoke.texi: Document -mfp-exceptions. + + * Makefile.in (fixinc.sh): Don't set or export WARN_CFLAGS. Fix + comment. + * fixinc/Makefile.in (FL_LIST): Don't mention WARN_CFLAGS. + (fixincl.o-warn): Delete. + +2004-04-21 Andrew Pinski + + * config/rs6000/rs6000 (print_operand) ['z']: + Change ifdef of TARGET_MACHO to if TARGET_MACHO. + +2004-04-21 Daniel Jacobowitz + + * config.gcc: Support --with-arch=iwmmxt for ARM. + +2004-04-21 Richard Kenner + + * expmed.c (expand_mult_highpart_optab): Use narrower version of OP1 + in two more places; remove unneeded force_reg + +2004-04-21 Andrew Pinski + + * config/rs6000/rs6000.c (symbol_ref_operand): Remove hack + for TARGET_MACHO. + (print_operand): For TARGET_MACHO check to see if we need a stub + and output one if we need it. + + PR debug/15033 + * dwarf2out.c (rtl_for_decl_location): Check for NULL + rtl. + +2004-04-20 James E Wilson + + * config/ia64/ia64.md (call_value_nogp): Add constraints for op0. + (vall_value_gp): Likewise. + +2004-04-20 DJ Delorie + + * dwarf2out.c (rtl_for_decl_location): Adjust rtl for byte + variables stored in word registers, then in memory. + +2004-04-20 Eric Christopher + + * cp/parser.c (cp_parser_declaration): Move translate + up before tokens are lexed. + +2004-04-20 Uros Bizjak + + * optabs.h (enum optab_index): Add new OTI_asin and OTI_acos. + (asin_optab, acos_optab): Define corresponding macros. + * optabs.c (init_optabs): Initialize asin_optab and acos_optab. + * genopinit.c (optabs): Implement asin_optab and acos_optab + using asin?f2 and acos?f2 patterns. + * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_ASIN{,F,L} + using asin_optab, and BUILT_IN_ACOS{,F,L} using acos_optab. + (expand_builtin): Expand BUILT_IN_ASIN{,F,L} and BUILT_IN_ACOS{,F,L} + using expand_builtin_mathfn if flag_unsafe_math_optimizations is set. + + * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2, + acossf2, acosxf2): New expanders to implement asin, asinf, asinl, + acos, acosf and acosl built-ins as inline x87 intrinsics. + +2004-04-20 Paul Brook + + * config/arm/arm.c (arm_legitimate_address_p): Use rtx_equal_p. + +2004-04-20 Paul Brook + + * config/arm/arm.c (arm_expand_prologue): Fix size calculation. + +2004-04-20 Paolo Bonzini + + Revert part of 2004-04-17 change that moved -frename-registers + to -O1. -frename-registers is buggy. + + * toplev.c (flag_rename_registers): Initialize to 0. + * doc/invoke.texi (Optimize options): Move -frename-registers + to "Not triggered by any -O level" section. Adjust commentary + accordingly. + +2004-04-20 Anil Paranjpe + + * toplev.c (compile_file): Move targetm.asm_out.file_end call to end. + +2004-04-20 Richard Sandiford + + * config/mips/mips.c (mips_legitimize_move): Generate special patterns + for mflo and mfhi instructions. + (mips_output_move): Remove mflo and mfhi handling. + * config/mips/mips.md (UNSPEC_MFHILO): New unspec. + (*mulsidi3_64bit): Update for new mfhi/mflo representation. + Likewise various define_peephole2s. + (*movdi_32bit, *movdi_64bit, *movsi_internal): Merge x<-J and x<-d + alternatives. + (*movdi_64bit, *movdi_64bit_mips16, *mov[shq]i_internal) + (*mov[shq]i_mips16): Remove mflo and mfhi alternatives. + (mfhilo_di, mfhilo_si): New patterns. + +2004-04-20 Josef Zlomek + + * function.c (assign_parms): Force + MEM_EXPR (DECL_INCOMING_RTL (parm)) == parm. + +2004-04-20 Josef Zlomek + + * var-tracking.c (variable_part_different_p): Variable parts differ + when the most recent locations differ. + +2004-04-19 James E Wilson + + * rtl.h (reg_set_last): Delete declaration. + * rtlanal.c (reg_set_last): Delete. + +2004-04-19 Roger Sayle + + * fold-const.c (fold_convert): Make function extern/public. + * tree.h (fold_convert): Prototype here. + * builtins.c (expand_builtin_strstr, expand_builtin_strchr, + expand_builtin_strrchr, expand_builtin_strpbrk, + expand_builtin_mempcpy, expand_builtin_bcopy, + expand_builtin_bzero, expand_builtin_memcmp, + expand_builtin_strcmp, expand_builtin_strncmp, + stabilize_va_list, expand_builtin_sprintf, + fold_trunc_transparent_mathfn, fold_builtin_logarithm, + fold_builtin_exponent, fold_builtin_mempcpy, + fold_builtin_strcpy, fold_builtin_strcmp, fold_builtin_strncmp, + fold_builtin_signbit, fold_builtin_isdigit, fold_builtin): Prefer + fold_convert to "convert" or "fold (build1 (NOP_EXPR, ...))". + +2004-04-19 Aldy Hernandez + + * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): New constant. + (move_from_CR_gt_bit): New. + (cceq_ior_compare): Name previously unnamed pattern. Disable for + E500. + (cceq_rev_compare): Name previously unnamed pattern. Allow for + E500. + + * config/rs6000/spe.md (cmpsfeq_gpr): Rewrite as unspec. + (tstsfeq_gpr): Same. + (cmpsfgt_gpr): Same. + (tstsfgt_gpr): Same. + (cmpsflt_gpr): Same. + (tstsflt_gpr): Same. + (e500_cceq_ior_compare): New. + (e500_flip_gt_bit): New. + + * config/rs6000/rs6000.c (ccr_bit): Remove E500 specific code. + (print_operand): Add 'c' and 'D'. + (rs6000_generate_compare): Rewrite to generate correct rtl. + (rs6000_emit_sCOND): Handle E500. + (output_cbranch): Adjust for changes in rs6000_generate_compare. + (output_e500_flip_gt_bit): New. + + * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit): + Protoize. + +2004-04-19 Eric Christopher + + * config/mips/mips.h (DWARF2_ADDR_SIZE): New. + +2004-04-19 David Edelsohn + + * doc/install.texi (*-ibm-aix*): Add AIX 5.1 assembler and archiver + fix information. + +2004-04-19 Rainer Orth + + * doc/install.texi (Specific, mips-sgi-irix5): Fix IRIX 5.3 IDO + download URL. + +2004-04-19 Daniel Jacobowitz + + * stor-layout.c (layout_decl): Check DECL_PACKED before calling + ADJUST_FIELD_ALIGN. Check maximum_field_alignment after. + +2004-04-19 Andrew PInski + + * builtins.c (fold_builtin_cabs): Remove fndecl parameter. + (fold_builtin): Update caller to match. + + PR bootstrap/15009 + * bb-reorder.c (fix_up_fall_thru_edges): Init cond_jump. + + PR bootstrap/14999 + * builtins.c (fold_builtin_cabs): Mark fndecl as unused. + +2004-04-19 Richard Kenner + + * varasm.c (compare_constant, case VIEW_CONVERT_EXPR): Add case. + + * expmed.c (expand_mult_highpart_adjust): Make OP1 valid for MODE. + (expand_mult_highpart_optab): Likewise. + (expand_mult_highpart): Make OP1 valid for WIDER_MODE, not MODE. + +2004-04-19 Paul Brook + + * config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2, + floatunssisf2, floatunssidf2): New patterns. + +2004-04-18 Mark Mitchell + + PR other/14918 + * doc/invoke.texi (-fprofile-generate): Document requirement to + use -fprofile-generate when linking. + + * doc/extend.texi (Strong Using): Warn users against using this + feature. + +2004-04-18 Richard Sandiford + + * config/mips/mips-protos.h (m16_usym8_4, m16_usym5_4): Delete. + * config/mips/mips.h (mips_entry, mips_string_length): Delete. + (CONSTANT_POOL_BEFORE_FUNCTION, ASM_OUTPUT_POOL_EPILOGUE): Undefine. + * config/mips/mips.c (struct mips16_constant): Renamed from struct + constant. Propogate change throughout file. + (struct machine_function): Remove insns_len. + (mips_string_length, mips16_strings, string_constants): Delete. + (mips_classify_symbol): Return SYMBOL_CONSTANT_POOL for LABEL_REFs + when generating mips16 code. Remove special mips16 treatment of + string constants. + (mips_symbolic_constant_p): Allow mips16 constant pool accesses + to have the form LABEL+CONSTANT. + (mips_symbolic_address_p): Fix comment. + (m16_usym8_4, m16_usym5_4): Delete. + (mips_output_function_epilogue): Remove mips16 string handling. + (mips_output_mi_thunk): Call mips16_lay_out_constants. + (mips_select_section, mips_encode_section_info): Remove mips16 + string handling. + (struct mips16_constant_pool): New. + (add_constant): Take a mips16_constant_pool structure. Keep pool + sorted into order of ascending mode size. Keep track of the highest + possible start address, taking padding and the masking of the base PC + value into account. + (dump_constants_1): New function, split out from dump_constants. + Handle vector constants. Use gen_consttable_{int,float} rather than + separate functions for each mode. + (dump_constants): Simplify. Use GET_MODE_ALIGNMENT. Use gen_align + rather than separate functions for each alignment. + (mips_find_symbol): Delete. + (mips16_insn_length): New function, split out from + mips16_lay_out_constants. + (mips16_rewrite_pool_refs): New function. + (mips16_lay_out_constants): Rework. Remove string handling. + Always create an inline constant pool. + * config/mips/mips.md (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT) + (UNSPEC_ALIGN): New constants. + (UNSPEC_CONSTTABLE_[QHSD]I, UNSPEC_CONSTTABLE_[SD]F): Delete. + (UNSPEC_ALIGN_[248]): Delete. + (consttable_int, consttable_float, align): New patterns. + (consttable_[qhsd]i, consttable_[sd]f, align_[248]): Delete. + +2004-04-17 Aldy Hernandez + + * config/rs6000/altivec.h (vec_any_numeric): Correct typo in + __unn_args_eq. + +2004-04-17 Alan Modra + + PR target/14715 + * config/rs6000/rs6000.c (rs6000_stack_info): Make parm_size agree + with STARTING_FRAME_OFFSET. + +2004-04-17 Richard Sandiford + + * config/mips/mips.h (PREDICATE_CODES): Add macc_msac_operand. + * config/mips/mips.c (macc_msac_operand): New function. + * config/mips/mips.md (*msac): Move after *macc. + (*msac2): New. Generalize macc-related peepholes so that they apply + to msac too. + +2004-04-17 Paolo Bonzini + + * opts.c (decode_options): Do not enable flag_rename_registers + and flag_web at -O3. + * toplev.c (flag_rename_registers): Initialize + flag_rename_registers and flag_web to + AUTODETECT_FLAG_VAR_TRACKING. + (default_debug_hooks): New global. + (process_options): Initialize default_debug_hooks. Warn if + -fvar-tracking specified but not supported by the current + debug format. Do not run var tracking at -O0 or if not + supported by the current debug format, even if + -fvar-tracking was given. If -fno-rename-registers + is not specified, always run register renaming if var + tracking is supported by the default debugging information + format for the target, and we are at -O1 or higher; similarly + for -fweb, but only at -O2 or higher. + * doc/invoke.texi (Optimize Options): Document this. + +2004-04-17 Richard Sandiford + + * configure.ac (gcc_cv_ld_as_needed): Use AC_CACHE_CHECK. + * configure: Regenerate. + +2004-04-17 Richard Sandiford + + * gcc.c (used_arg): Check whether an option has been removed. + +2004-04-17 Rainer Orth + + * config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2 + debugging on Solaris 7 and up. + +2004-04-16 Rainer Orth + + * doc/install.texi (Specific, mips-sgi-irix5): Reflect working + IRIX 5 port. + Remove -save-temps workaround, handled automatically. + Require GNU binutils 2.15 for debugging. + Remove SGI make warnings since GNU make is now required. + (Specific, mips-sgi-irix6): Some markup fixes. + Describe MIPSpro C problems and workarounds. + Mention working O32 ABI support. + Recommend GNU as 2.15 for O32 with debugging. + Remove description of fixed structure pass/return bug. + +2004-04-16 DJ Delorie + + * sdbout.c (sdbout_one_type): Use TYPE_VALUES for enums, not + TYPE_FIELDS. + (sdbout_finish): Don't free deferred_global_decls; it's GC'd. + +2004-04-16 John David Anglin + + * pa.md: Remove unnecessary declarations for asm_out_file. + + * 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). + + * pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld. + +2004-04-16 Nick Clifton + + * config/arm/arm.c (arm_override_options): Revert previous patch. + * config/arm/t-xscale-elf: Disable iwmmxt multilibs until they can + be safely built. + +2004-04-16 Kazuhiro Inaoka + + * config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian + bug. + (TARGET_LITTLE_ENDIAN, TARGET_BIG_ENDIAN, + TARGET_DEFAULT): Changed. Ditto. + (LITTLE_ENDIAN_BIT, TARGET_CPU_DEFAULT, + TARGET_ENDIAN_DEFAULT): Added. Ditto. + * config/m32r/little.h (TARGET_LITTLE_ENDIAN): Deleted. + (TARGET_ENDIAN_DEFAULT): Added. + +2004-04-15 Kaveh R. Ghazi + + * builtins.def (BUILT_IN_ISDIGIT, BUILT_IN_ISXDIGIT): Mark with + ATTR_CONST_NOTHROW_LIST. + +2004-04-15 Kaveh R. Ghazi + + PR/middle-end 14915 + * builtins.c (expand_builtin_signbit): Test BYTES_BIG_ENDIAN, not + BITS_BIG_ENDIAN. + +2004-04-15 Pat Haugen + + * ra-debug.c (ra_print_rtx): Add break's to case legs. + +2004-04-14 James E Wilson + + * Makefile.in (fixinc.sh): Set WARN_CFLAGS to empty string. + +2004-04-14 Nathanael Nerode + + * libada-mk.in: New file. + * configure.ac: Create libada-mk from libada-mk.in. + * configure: Regenerate. + +2004-04-14 Uros Bizjak + + * optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb. + (logb_optab, ilogb_optab): Define corresponding macros. + * optabs.c (init_optabs): Initialize logb_optab and ilogb_optab. + * genopinit.c (optabs): Implement logb_optab and ilogb_optab + using logb?f2 and ilogb?i2 patterns. + * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOGB{,F,L} + using logb_optab, and BUILT_IN_ILOGB{,F,L} using ilogb_optab. + (expand_builtin): Expand BUILT_IN_LOGB{,F,L} and BUILT_IN_ILOGB{,F,L} + using expand_builtin_mathfn if flag_unsafe_math_optimizations is set. + + * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_XTRACT_FRACT + and UNSPEC_XTRACT_EXP. + + * config/i386/i386.md (*fxtractdf3, *fxtractsf3, *fxtractxf3): New + patterns to implement fxtract x87 instruction. + (logbdf2, logbsf2, logbxf2, ilogbsi2): New expanders to implement + logb, logbf, logbl, ilogb, ilogbf and ilogbl built-ins as inline x87 + intrinsics. + (UNSPEC_XTRACT_FRACT, UNSPEC_XTRACT_EXP): New unspecs to represent + x87's fxtract insn. + +2004-04-14 Eric Christopher + + * config/mips/t-elf: Enable multilibs by default. + +2004-04-14 Andreas Tobler + + * bb-reorder.c (fix_crossing_conditional_branches): Adjust the + previous fix to check HAVE_return at runtime too. + +2004-04-14 Nick Clifton + + * config/arm/arm.c (arm_override_options): If the user has not + specified an ABI, then default to AAPCS for the iWMMXt processor. + * config/arm/t-xscale-elf: Remove redundant multilib specifications. + * config/arm/t-xscale-coff: Likewise. + +2004-04-14 Kaveh R. Ghazi + + * builtins.c (fold_builtin_isdigit): New. + (fold_builtin): Handle BUILT_IN_ISDIGIT. + * defaults.h: Add TARGET_DIGIT0 and sort. + * doc/tm.texi: Add TARGET_BS and TARGET_DIGIT0. + +2004-04-14 Kaveh R. Ghazi + + * builtins.c (fold_builtin_cabs, fold_builtin): Use + `mathfn_built_in' to determine the new builtin. + * fold-const.c (fold): Likewise. + +2004-04-14 Richard Sandiford + + * doc/invoke.texi: Rename MIPS's -mfix-vr4122-bugs to -mfix-vr4120. + * config/mips/mips.h (MASK_FIX_VR4120): Renamed from MASK_FIX_VR4122. + (TARGET_FIX_VR4120): Likewise TARGET_FIX_VR4122. + (TARGET_SWITCHES): Replace -mfix-vr4122-bugs with -mfix-vr4120. + (ASM_SPEC): Update accordingly. + * config/mips/mips.c: Update after above renaming. + * config/mips/mips.md, config/mips/t-vr, config/mips/vr.h: Likewise. + * config/mips/vr4120-div.S: Renamed from vr4122-div.S. + +2004-04-13 James E Wilson + + * c-opt.c (c_common_post_options): If this_input_filename is NULL, + increment errorcount and return false instead of true. + +2004-04-13 Uros Bizjak : + + * optabs.c (expand_twoval_unop): Reorder function arguments. + * builtins.c (expand_builtin_mathfn_3): Update calls to + expand_twoval_unop. + + * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE + and UNSPEC_TAN_TAN. Add missing comment. + + * config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New + patterns to implement fptan x87 instruction. + (tandf2, tansf2, tanxf2): New expanders to implement tan, tanf + and tanl built-ins as inline x87 intrinsics. Define corresponding + peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence. + (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent + x87's fptan insn. + +2004-03-13 Richard Henderson + + * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode + for LABEL_REFs. + + * defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot. + (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise. + * doc/invoke.texi: Update to match. + + * varasm.c (unlikely_text_section): Use assemble_align instead of + ASM_OUTPUT_ALIGN. Use it in the correct place with an approximately + correct alignment argument. + +2004-04-13 Ulrich Weigand + + * reload1.c (emit_reload_insns): Set reg_has_output_reload to one + after setting reg_last_reload_reg for optional output reloads. + +2004-04-12 Fariborz Jahanian + + * config/rs6000/altivec.h (vec_mergeh, vec_mergel): + Definition of these two macros are corrected by adding + matchine right paren. + +2004-04-12 Jonathan Larmour + + * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI. + +2004-04-12 Roger Sayle + + * config/i386/i386.c (output_387_reg_move): New function. + * config/i386/i386-protos.h (output_387_reg_move): Prototype here. + * config/i386/i386.md (*movsf_1, *movsf1_nointerunit, + *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer, + *extendsfdf2_1, *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop, + truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move. + +2004-04-12 Richard Kenner + + * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized + TYPE_DECL. + * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL. + * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN. + * stor-layout.c (variable_size): Don't check for MINUS_EXPR. + Use skip_simple_arithmetic to find SAVE_EXPR. + (force_type_save_exprs, force_type_save_exprs_1): New functions. + * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE): + Properly chain multiple pointers. + (copy_tree_r): Copy a TYPE_DECL. + * tree.c (variably_modified_type_p): Add some missing tests and + make some other minor changes. + * tree.h (force_type_save_exprs): New declaration. + +2004-04-12 Roger Sayle + + * simplify-rtx.c (simplify_binary_operation) : + Remove fall throughs. Convert 0/x and 0%x into x&0 when x has + side-effects. Don't convert x/1.0 into x if we honor signaling NaNs. + Convert x/-1.0 into -x if we don't honor signaling NaNs. Convert + x/-1 into -x. Optimize x%1 into x&0 if x has side-effects. Optimize + x%-1 into 0 (or x&0 if x has side-effects). + +2004-04-11 Aldy Hernandez + + * config/rs6000/rs6000.md: Document why a pattern is not + available. + + * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons + of floats on the E500. + (branch_positive_comparison_operator): Do not allow NE even on the + E500. + +2004-04-11 Aldy Hernandez + + * config/rs6000/rs6000.c (rs6000_assemble_integer): Change + in_text_unlikely_section to in_unlikely_text_section. + +2004-04-11 Roger Sayle + + * fold-const.c (fold_binary_op_with_conditional_arg): Tweak + calling convention to allow a NULL_TREE to be returned. Factor + sanity checks from callers, return NULL_TREE when appropriate. + (fold): Handle COMPOUND_EXPR operands of binary expressions + before COND_EXPR operands. Use reorder_operands_p(a,b) to check + whether a op (b,c) can be rewritten as (b, a op c). Simplify + calls to fold_binary_op_with_conditional_arg. + +2004-04-11 Kaveh R. Ghazi + + * config/mips/iris5.h (current_section_flags): Add + in_unlikely_executed_text and default case. + +2004-04-11 Andreas Tobler + + * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap + failure on solaris. Place ifdef HAVE_return around gen_ret call. + * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef + HAVE_return and place it around the place where it is needed. + +2004-04-11 Andrew Pinski + + * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and + ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING + and NORMAL_TEXT_SECTION_NAME. + (unlikely_text_section): Check targetm.have_named_sections + instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP + instead of SECTION_FORMAT_STRING. + * config/mips/iris5.h (current_section_name): Add + in_unlikely_executed_text case and move the abort into the switch. + * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove. + (NORMAL_TEXT_SECTION_NAME): Remove. + (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove. + (SECTION_FORMAT_STRING): Remove. + * defaults.h (SECTION_FORMAT_STRING): Remove. + * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove. + (SECTION_FORMAT_STRING): Remove. + +2004-04-10 Joseph S. Myers + + * c-typeck.c (common_type): Prefer long long to long when same + precision. + +2004-04-09 Zack Weinberg + + PR 14887 + * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at + mode argument. + * config/ia64/ia64.c (ia64_hpux_file_end): Check + TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME. + +2004-04-09 Roger Sayle + + * simplify-rtx.c (mode_signbit_p): New function to check whether + an RTX is an immediate constant that represents the most significant + bit of a given machine mode. + (simplify_unary_operation) : Optimize ~(X+C) as X ^ ~C, where + C is the sign bit. + (simplify_binary_operation) : Optimize (X^C1) + C2 as X^(C1^C2) + when C2 is the sign bit. + (simplify_binary_operation) : Canonicalize X^C as X+C when C + is the sign bit. Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the + sign bit. + +2004-04-09 Kaveh R. Ghazi + + * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not + TYPE_MODE. + +2004-04-09 Andrew Pinski + + * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead + of TREE_READONLY for types. + +2004-04-09 Caroline Tice + + * basic-block.h (struct edge_def): Add new field, crossing_edge. + (struct basic_block_def): Add new field, partition. + (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION): New constant macro + definitions. + (partition_hot_cold_basic_blocks): Add extern function + declaration. + * bb-reorder.c (function.h, obstack.h, expr.h, regs.h): Add four new + include statements. + (N_ROUNDS): Increase the maximum number of rounds by 1. + (branch_threshold): Add array value for new round. + (exec_threshold): Add array value for new round. + (push_to_next_round_p): New function. + (add_unlikely_executed_notes): New function. + (find_rarely_executed_basic_blocks_and_crossing_edges): New function. + (mark_bb_for_unlikely_executed_section): New function. + (add_labels_and_missing_jumps): New function. + (add_reg_crossing_jump_notes): New function. + (fix_up_fall_thru_edges): New function. + (find_jump_block): New function. + (fix_crossing_conditional_branches): New function. + (fix_crossing_unconditional_branches): New function. + (fix_edges_for_rarely_executed_code): New function. + (partition_hot_cold_basic_blocks): New function. + (find_traces): Add an extra round for partitioning hot/cold + basic blocks. + (find_traces_1_round): Add a parameter. Modify to push all cold blocks, + and only cold blocks, into the last (extra) round of collecting traces. + (better_edge_p): Add a parameter. Modify to favor non-crossing edges + over crossing edges. + (bb_to_key): Add code to correctly identify cold blocks when + doing partitioning. + (connect_traces): Modify to connect all the non-cold traces first, then + go back and connect up all the cold traces. + (reorder_basic_blocks): Add call to add_unlikely_executed_notes. + * cfg.c (entry_exit_blocks): Add initialization for partition field in + entry and exit blocks. + * cfgbuild.c (make_edges): Update current_function_has_computed_jump + if we are doing hot/cold partitioning. + * cfgcleanup.c (cfglayout.h): Add new include statement. + (try_simplify_condjump): Modify to not attempt on blocks with jumps + that cross section boundaries. + (try_forward_edges): Likewise. + (merge_blocks_move_predecessor_nojumps): Likewise. + (merge_blocks_move_successor_nojumps): Likewise. + (merge_blocks_move): Likewise. + (try_crossjump_to_edge): Modify to not attempt after we have done + the block partitioning. + (try_crossjump_bb): Modify to not attempt on blocks with jumps that + cross section boundaries. + (try_optimize_cfg): Likewise. + * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect + jumps that cross section boundaries. + * cfglayout.c (flags.h): Add new include statement. + (update_unlikely_executed_notes): New function. + (fixup_reorder_chain): Add code so when a new jumping basic block is + added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are + updated appropriately. + (duplicate_insn_chain): Add code to duplicate the new NOTE insn + introduced by this optimization. + * cfglayout.h (scan_ahead_for_unlikely_executed_note): Add new + extern function declaration. + * cfgrtl.c (can_delete_note_p): Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to + list of notes that can be deleted. + (create_basic_block_structure): Add initialization for partition field. + (rtl_can_merge_blocks): Modify to test blocks for jumps that cross + section boundaries. + (try_redirect_by_replacing_jump): Modify to not attempt on jumps that + cross section boundaries. + (commit_one_edge_insertion): Add code so newly created basic block + ends up in correct (hot or cold) section. Modify to disallow + insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes. + (rtl_verify_flow_info_1): Add code to verify that no fall_thru edge + crosses section boundaries. + (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that + cross section boundaries. + (force_nonfallthru_and_redirect): Modify to make sure new basic block + ends up in correct section, with correct notes attached. + * common.opt (freorder-blocks-and-partition): Add new flag for this + optimization. + * dbxout.c (dbx_function_end): Add code to make sure scope labels at + the end of functions are written into the correct (hot or cold) + section. + (dbx_source_file): Add code so writing debug file information + doesn't incorrectly change sections. + * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use + in partitioning hot/cold basic blocks into separate sections. + (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold + section partitioning. + (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not + conditional branches can span all of memory. + (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not + unconditional branches can span all of memory. + * final.c (scan_ahead_for_unlikely_executed_note): New function. + (final_scan_insn): Add code to check for NOTE instruction indicating + whether basic block belongs in hot or cold section, and to make sure + the current basic block is being written to the appropriate section. + Also added code to ensure that jump table basic blocks end up in the + correct section. + * flags.h (flag_reorder_blocks_and_partition): New flag. + * ifcvt.c (find_if_case_1): Modify to not attempt if conversion if + one of the branches has a jump that crosses between sections. + (find_if_case_2): Likewise. + (ifcvt): Modify to not attempt to mark loop exit edges after + hot/cold partitioning has occurred. + * opts.c (decode_options): Code to handle new flag, + flag_reorder_blocks_and_partition; also to turn it off if + flag_exceptions is on. + (common_handle_option): Code to handle new flag, + flag_reorder_blocks_and_partition. + * output.h (unlikely_text_section): New extern function declaration. + (in_unlikely_text_section): New extern function declaration. + * passes.c (rest_of_handle_stack_regs): Add + flag_reorder_blocks_and_partition as an 'or' condition for calling + reorder_basic_blocks. + (rest_of_handle_reorder_blocks): Add flag_reorder_blocks_and_partition + as an 'or' condition for calling reorder_basic_blocks. + (rest_of_compilation): Add call to partition_hot_cold_basic_blocks. + * print-rtl.c (print_rtx): Add code for handling new note, + NOTE_INSN_UNLIKELY_EXECUTED_CODE + * rtl.c (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below). + (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that + cross between section boundaries. + * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note instruction, + indicating the basic block containing it belongs in the cold section. + (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross + between hot and cold sections. + * toplev.c (flag_reorder_blocks_and_partition): Add code to + initialize this flag, and to tie it to the command-line option + freorder-blocks-and-partition. + * varasm.c (cfglayout.h): Add new include statement. + (unlikely_section_label_printed): New global variable, used for + determining when to output section name labels for cold sections. + (in_section): Add in_unlikely_executed_text to enum data structure. + (text_section): Modify code to use SECTION_FORMAT_STRING and + NORMAL_TEXT_SECTION_NAME macros. + (unlikely_text_section): New function. + (in_unlikely_text_section): New function. + (function_section): Add code to make sure beginning of function is + written into correct section (hot or cold). + (assemble_start_function): Add code to make sure stuff is written to + the correct section. + (assemble_zeros): Add in_unlikely_text_section as an 'or' condition + to an if statement that was checking 'in_text_section'. + (assemble_variable): Add 'in_unlikely_text_section' as an 'or' + condition to an if statement that was checking 'in_text_section'. + (default_section_type_flags_1): Add check: if in cold section + flags = SECTION_CODE. + * config/darwin.c (darwin_asm_named_section): Modify to use + SECTION_FORMAT_STRING if we are partitioning hot/cold blocks. + * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro + specifically for the i386. + (HAS_LONG_UNCOND_BRANCH): Defined this macro specifically for the i386. + * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change + text string to something more informative. + (NORMAL_TEXT_SECTION_NAME): Add new definition. + (SECTION_FORMAT_STRING): Add new definition. + * config/rs6000/rs6000.c (rs6000_assemble_integer): Add + '!in_unlikely_text_section' as an 'and' condition to an if statement + that was already checking '!in_text_section'. + * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME, + UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make + sure these are properly defined for linux on ppc. + * doc/invoke.texi (freorder-blocks-and-partition): Add documentation + for this new flag. + * doc/rtl.texi (REG_CROSSING_JUMP): Add documentation for new + reg_note. + * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING, + HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for + these new macros. + +2004-04-08 Roger Sayle + + * function.c (gen_mem_addressof): When changing the RTX from a REG + to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P. + +2004-04-08 Roger Sayle + + PR target/14888 + * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop, + truncxfdf2_noop): Provide dummy "fmov" implementations. + +2004-04-08 Ian Lance Taylor + + * gcc.c (default_compilers): Add missing initializers. + + * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address): + Return 1 if file was successfully mapped. + +2004-04-08 Geoffrey Keating + + PR pch/13419 + PR pch/14137 + Radar #: 3315288 + * doc/invoke.texi (Precompiled Headers): Suggest -o + to put an output file in a particular place. Be more detailed + about which options affect PCH validity and which options + might not work. + * c-pch.c (pch_matching): New. + (MATCH_SIZE): New. + (struct c_pch_validity): New field 'match'. + (pch_init): Handle pch_matching. + (c_common_valid_pch): Check pch_matching. + + * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE. + +2004-04-08 Mark Mitchell + + * doc/invoke.texi (Precompiled Headers): Warn about known + problems. + +2004-04-08 Danny Smith + + PR c++/14808 + * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default + to 1 if ASM_OUTPUT_DEF is defined. + * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document. + * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define. + Set to non-zero iff not a one_only decl. + +2004-04-08 Paul Brook + + * arm.h (CLASS_LIKELY_SPILLED_P): Define. + +2004-04-08 Paul Brook + + * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of + PROMOTE_FOR_CALL_ONLY. + * config/arm/arm-protos.h (arm_function_value): Declare. + * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define. + (TARGET_PROMOTE_PROTOTYPES): Return false. + (arm_function_value): New function. + * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define. + (FUNCTION_VALUE): Call arm_function_value. + * config/cris/cris.h (PROMOTE_MODE): Rename ... + (PROMOTE_FUNCTION_MODE): ... to this. + (PROMOTE_FOR_CALL_ONLY): Remove. + * config/mmix/mmix.h: Likewise. + * config/s390/s390.h: Likewise. + * config/sparc/sparc.h: Likewise. + * config/sparc/sparc.c: Update comments about PROMOTE_MODE. + * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document. + (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update. + (PROMOTE_FOR_CALL_ONLY): Remove. + +2004-04-08 Joel Sherrill + + PR ada/14538 + * ada/5rosinte.adb: Remove fake mprotect() body. + * ada/5rosinte.ads: Add SA_SIGINFO. + * ada/5rtpopsp.adb: Rewrite to use new interface. + * ada/init.c: Reorder so the simple single OS conditional __rtems__ + is tested before more complex ones which mix UNIX and embedded + systems in the conditional. + +2004-04-08 Joel Sherrill + + PR ada/14665 + * ada/osint.adb (Find_Program_Name): Rework to properly handle + filenames which end in .exe or have versioning suffixes like VMS. + +2004-04-08 Andrew Pinski + + PR target/10129 + * config/darwin.c (darwin_encode_section_info): When the decl has + a DECL_INITIAL, it is only defined also when it is not a common. + +2004-04-08 Kaveh R. Ghazi + + * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New. + (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII. + +2004-04-07 H.J. Lu + + * config/ia64/ia64.c (ia64_encode_section_info): Don't prod + global register variables. + +2004-04-07 Joseph S. Myers + + * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a, + rpc_xdr_lvalue_cast_b): New fixes. + * fixinc/fixincl.x: Regenerate. + * fixinc/tests/base/rpc/xdr.h: Add new tests. + +2004-04-07 David Edelsohn + + * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF + to power4 and power5 entries. + +2004-04-06 Geoffrey Keating + + * c-common.h (pending_lang_change): Mark for PCH. + +2004-04-07 Caroline Tice + + * gcc.c (main): Move 'break' in main loops (on an error) + to wait until error processing has occurred. + +2004-04-06 Nathanael Nerode + + * config.gcc: Stop changing enable_threads midstream. + Replace uses of enable_threads_flag with enable_threads. + * configure.ac: Replace uses of enable_threads_flag with + enable_threads. Improve autoconf quotation in one place. + * configure: Regenerate. + +2004-04-06 Uros Bizjak + + * builtins.c: Implement support for sincos function. + (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and + BUILT_IN_COS{,F,L}. + (expand_builtin_mathfn_3): New function. + (expand_builtin): Expand BUILT_IN_SIN{,F,L} and + BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if + flag_unsafe_math_optimization is set. + + * optabs.h (enum optab_index): Add new OTI_sincos. + (sincos_optab): Define corresponding macro. + + * optabs.c (init_optabs): Initialize sincos_optab. + (expand_twoval_unop): New function. + + * genopinit.c (optabs): Implement sincos_optab using sincos?f3 + patterns. + + * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS + and UNSPEC_SINCOS_SIN. + + * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3, + sincosxf3): New patterns to implement sincos, sincosf and sincosl + built-ins as inline x87 intrinsics. Define splits for + sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2, + cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding + sincos patterns. + (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2. + (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2. + + (UNSPEC_SINCOS_SIN, UNSPEC_SINCOS_COS): New unspecs to represent + x87's fsincos insn. + +2004-04-06 Devang Patel + + PR 14467 + * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3. + +2004-04-06 John David Anglin + + * doc/install.texi: Update HP-UX 11 installation procedure. + +2004-04-06 Paul Brook + + * doc/sourcebuild.texi: Remove obsolete contraint on testcases. + +2004-04-05 Kaz Kojima + + * config/sh/sh.c (prepare_move_operands): Use emit_call_insn + when the TLS address is generated by a function call. + * config/sh/sh.md (tls_global_dynamic): Use a call expression. + (tls_local_dynamic): Likewise. + +2004-04-05 Andrew Pinski + + * tree.c (reconstruct_complex_type): Use TYPE_READONLY + and TYPE_VOLATILE. + +2004-04-05 Caroline Tice + + * gcc.c (combine_flag): New global variable, for new driver option. + (struct compiler): Add two new fields, to be used when + combining multiple input files in a single pass (IMA). + (default_compilers): Add values for the new fields to all + compiler entries. Modify the "@c" compiler entry for doing IMA + properly with "-save-temps" and the "combine" flag. + (option_map): Add new driver option, "--combine", to tell driver + to pass multiple input files to compiler at one time. + (have_o_argbuf_index): New global variable. + (store_arg): Modify to assign value to have_o_argbuf_index. + (struct infile): Add three new fields, to help with IMA. + (display_help): Add help for new "combine" option. + (process_command): Remove local variable have_o; add code to check + for new "combine" option; remove assignment to combine_inputs. + (do_spec_1): Modify to deal with IMA better. + (main): Make variable 'lang_n_infiles' local to entire function + rather than to a single block. Use flag combine_flag to + determine whether to do IMA or not; Modify loop initializing + infiles to deal properly with linker files. + Add code for doing preprocessing in presence of + IMA with "-save-temps" flag. Modify "main" loop to handle + multiple input files, in multiple languages, with or without + preprocessing, gracefully. + * toplev.c (set_src_pwd): Modify to not complain if attempting to + re-set it to same directory it's previously been set to (avoid + irritating, meaningless warning messages when doing IMA with + save-temps). + * doc/invoke.texi: Add "-combine" to list of Overall Options; + remove documentation about IMA that is no longer accurate; Add + documentation explaining what "-combine" does. + * ada/lang-specs.h: Add initialization values for new fields in + "struct compiler". + * cp/lang-specs.h: Likewise. + * f/lang-specs.h: Likewise. + * java/lang-specs.h: Likewise. + * objc/lang-specs.h: Likewise. + * treelang/lang-specs.h: Likewise. + +2004-04-05 David Edelsohn + + * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special + symbol handling. + +2004-04-05 Jakub Jelinek + John David Anglin + + PR optimization/13424 (hppa), bootstrap/14462, c/14828 + * pa.md: Use replace_equiv_address to retain the attributes of the + memory operands used in the split and peephole2 patterns for optimizing + the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns. + +2004-04-05 Richard Kenner + + * c-decl.c (build_compound_literal): Use TYPE_READONLY. + * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise. + * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise. + * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a + PARM_DECL. + * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only + for a type. + * print-tree.c (print_node): Properly handle side-effects, readonly, + and constant flags. + * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS + and TREE_CONSTANT if not a type. + * tree.h (IS_NON_TYPE_CODE_CLASS): New macro. + (IS_EXPR_CODE_CLASS): Write 'E', not 'e'. + (NON_TYPE_CHECK): New macro. + (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check. + +2004-04-05 Eric Botcazou + + * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set + to DWARF2_DEBUG unconditionally. + (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally. + +2004-04-04 Ian Lance Taylor + Nathanael Nerode + + PR target/14548 + * config.host: Set the shell variable host_can_use_collect2. + Set it to yes by default, and to no for alpha*-dec-*vms*, + i[34567]86-*-mingw32*, and powerpc-*-beos*. + * configure.ac: Set and substitute the shell variable collect2. + Give an error if use_collect2 is yes and host_can_use_collect2 is + no. + * Makefile.in (COLLECT2): Rename from USE_COLLECT2. Change all + uses. Initialize to @collect2@. + (STAGESTUFF): Remove $(USE_COLLECT2). + * config/alpha/x-vms (USE_COLLECT2): Don't set. + * config/i386/t-mingw32 (USE_COLLECT2): Likewise. + * config/rs6000/t-beos (USE_COLLECT2): Likewise. + * config/pa/t-pa64: Remove commented out USE_COLLECT2. + * configure: Regenerate. + +2004-04-04 Roger Sayle + + * simplify-rtx.c (simplify_binary_operation): Constant fold + DIV, MOD, UDIV and UMOD using div_and_round_double. + +2004-04-04 Mark Mitchell + + PR c++/14804 + * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to + RECORD_TYPEs. + +2004-04-04 Mark Mitchell + + * doc/invoke.texi (-mabi=o64): Create link to O64 ABI + documentation. + +2004-04-04 Roger Sayle + + * cse.c (cse_insn): Correct usage of simplify_replace_rtx when + updating the REG_EQUAL note on an insn's libcall_insn. + +2004-04-04 Roger Sayle + + * df.h: Tidy up whitespace in the definitions of the DF_ flags. + +2004-04-03 Roger Sayle + + * fold-const.c (fold) : Guard (-A)+B -> B-A transformation + with reorder_operands_p. + +2004-04-03 Jan Hubicka + + * md.texi (vec_set, vec_extract, vec_init): Document. + +2004-04-02 Gabor Loki + + * opts.c (decode_options): Do function inlining with very small + max-inline-insns-* parameters when optimizing for size. + +2004-04-02 Vladimir Makarov + + * config/i386/i386.h (TARGET_NOCONA): New macro. + (TARGET_CPU_CPP_BUILTINS): Add code for Nocona. + (processor_type): Add PROCESSOR_NOCONA. + + * config/i386/i386.md (cpu): Add nocona to the attribute values. + + * config/i386/i386.c (nocona_cost): New variable. + (m_NOCONA): New macro. + (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch, + x86_branch_hints, x86_use_sahf, x86_single_stringop, + x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8, + x86_integer_DFmode_moves, x86_partial_reg_dependency, + x86_memory_mismatch_stall, x86_accumulate_outgoing_args, + x86_decompose_lea, x86_arch_always_fancy_math_387, + x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor, + x86_ext_80387_constants, x86_four_jump_limit): + (override_options): Add nocona_cost to processor_target_table. + Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table. + (incdec_operand): Prevent inc/dec generation for Nocona too. + (ix86_issue_rate): Add PROCESSOR_NOCONA. + +2004-04-01 Andrew Pinski + + * rtlanal.c (find_reg_note): Manually + unswitch the loop. + +2004-04-01 Mark Mitchell + + * genemit.c (gen_split): Change prototype of generated code. + * genrecog.c (write_action): Adjust prototype for and calls to + gen_split_*. + * gensupport.c (struct queue_elem): Add split field. + (queue_pattern): Return a value. Clear the split field. + (process_rtx): Maintain an association between an insn and the + split generated from it for a define_insn_and_split. + (process_one_cond_exec): Generate a new split for a + define_insn_and_split. + * config/arm/arm-protos.h (arm_split_constant): Add insn + parameter. + (emit_constant_insn): New function. + (arm_gen_constant): Use it. + * config/arm/arm.md: Adjust calls to arm_split_constant. + +2004-04-02 Jan Hubicka + + * cgraph.c: Add overall comment. + (cgraph_inline_hash): New global variable. + (cgraph_create_node): Break out from ... + (cgraph_node): ... here. + (cgraph_edge): New function. + (cgraph_create_edge): New CALL_EXPR argument; some sanity checking. + (cgraph_remove_edge): Accept edge, intead of source and destination. + (cgraph_redirect_edge_callee): New. + (cgraph_remove_node): Update all new datastructures. + (cgraph_record_call, cgraph_remove_call): Kill. + (dump_cgraph_node): Break out from ... ; dump new datastructures. + (dump_cgraph): ... here. + (cgraph_function_possibly_inlined_p): Use new hashtable. + (cgraph_clone_edge, cgraph_clone_node): New. + * cgraph.h: Include hashtab.h + (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output + fields, add inlined_to pointer. + (cgraph_node): Add pointer to next_clone. + (cgraph_remove_edge, cgraph_create_edge): Update prototype. + (cgraph_remove_call, cgraph_record_call): Kill. + (cgraph_inline_hash): Declare. + (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node, + cgraph_redirect_edge_callee): Declare. + (cgraph_create_edges, cgraph_inline_p): Update prorotype. + (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node, + cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare. + * cgraphunit.c: Add overall comment. + (cgraph_optimize_function): Kill. + (cgraph_assemble_pending_functions): Do not assemble inline clones. + (cgraph_finalize_function): Update call of cgraph_remove_node + (record_call_1): Record call sites. + (cgraph_create_edges): Accept node instead of decl argument. + (error_found): New static variable. + (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions. + (cgraph_analyze_function): Update for new datastructures. + (cgraph_finalize_compilation_unit): Plug memory leak. + (cgraph_optimize_function): Kill. + (cgraph_expand_function): Do not use cgraph_optimize_function. + (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into, + cgraph_inlined_callees): Kill. + (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of + clones. + (estimate_growth): Simplify. + (cgraph_clone_inlined_nodes): New function. + (cgraph_mark_inline_edge): Re-implement. + (cgraph_mark_inline): Likewise. + (cgraph_check_inline_limits): Simplify. + (cgraph_recursive_inlining_p): New. + (update_callee_keys): Break out from ... + (cgraph_decide_inlining_of_small_functions): ... here; simplify. + (cgraph_decide_inlining, cgraph_decide_inlining_incrementally): + Likewise. + (cgraph_expand_all_functions): Remove inline clones from the ordered + list. + (cgraph_preserve_function_body_p): New predicate. + (cgraph_optimize): Verify cgraph. + * function.h (struct function): Add fields saved_tree/saved_args. + * timevar.def (TV_CGRAPH_VERIFY): Use verifier. + * toplev.c (rest_of_compilation): Do not free cfun. + * tree-inline.c: Include function.h + (struct inline_data): Add saving_p field; replace decl/current_decl by + node/current_node. + (insert_decl_map): New function. + (copy_body_r): Handle saving; update cgraph datastructure. + (copy_body): Handle recursive inlining. + (initialize_inlined_parameters): Likewise. + (expand_call_inline): Propagate node attributes; update cgraph. + (optimize_inline_calls): Verify that datastructure still match. + (save_body): New function. + * tree-inline.h (save_body): New. + * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining. + * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New. + * langhooks.c (lang_hooks): Add update_decl_after_saving. + +2004-04-01 Serge Belyshev <1319@bot.ru> + + PR target/14702 + * config/i386/i386.md: fix source operand constraints in + mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw + +2004-04-01 Waldek Hebisch + + * fold-const.c (folda): Preserve types of comparisons. + +2004-04-01 Richard Henderson + + * toplev.c (backend_init): Move init_optimization_passes call ... + (lang_dependent_init): ... here. + +2004-04-01 Alan Modra + Jakub Jelinek + + * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with + -lgcc --as-needed -lgcc_s --no-as-needed by default. + * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed. + * configure: Rebuilt. + * config.in: Rebuilt. + * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT). + (stage2-start, stage3-start, stage4-start): Likewise. + (stageprofile-start, stagefeedback-start): Likewise. + +2004-04-01 Jakub Jelinek + + * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0. + * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1. + * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1. + * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1. + (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS. + * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs + with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS. + * config.gcc (sparc-*-linux*): Revert 2004-03-23 change. + * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise. + * config/sparc/t-linux: Removed. + +2004-04-01 Jakub Jelinek + + PR c++/14755 + * fold-const.c (fold) : Properly compute newconst in + "bitfld++ == const" to "++bitfld == const + incr" transformations. + +2004-04-01 Richard Kenner + + * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED. + * stor-layout.c (layout_decl): Likewise. + * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED. + * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED. + * print-tree.c (print_node): Handle various used of unsigned_flag. + * tree.def (BIT_FIELD_REF): Update comment. + * tree.h (TREE_UNSIGNED): Deleted. + (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros. + +2004-03-31 Richard Kenner + + * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c: + Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED. + * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise. + * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise. + * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise. + * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise. + * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise. + * config/mips/mips.c, config/rs6000/rs6000.c: Likewise. + * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise. + * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for + REAL_TYPE, not INTEGER_TYPE. + (layout_type, case VECTOR_TYPE): Simplify code. + * tree.c (build_vector_type_for_mode): Remove dup unsigned setting. + * tree.h: Update comments. + (STRIP_NOPS): Use TYPE_UNSIGNED. + (TYPE_UNSIGNED): New macro. + (TYPE_TRAP_SIGNED): Remove now redundant check. + (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED. + +2004-03-31 Richard Kenner + + * function.c (put_var_into_stack): Properly set orig_reg for indirect. + +2004-03-31 Andrew Pinski + + * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA): + Add darwin-fpsave.asm, darwin-vecsave.asm, + and darwin-world.asm. + (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL + as the asm files contain altivec instructions. + * config/rs6000/darwin-fpsave.asm: New file. + * config/rs6000/darwin-vecsave.asm: New file. + * config/rs6000/darwin-world.asm: New file. + +2004-03-31 Zack Weinberg + + * gengtype-yacc.y (option, stringseq): Add missing + terminating semicolon. + +2004-03-30 David Edelsohn + + * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64, + tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64, + tls_dtprel_ha_32, tls_dtprel_ha_64, + tls_dtprel_lo_32, tls_dtprel_lo_64, + tls_got_dtprel_64, tls_tprel_32, tls_tprel_64, + tls_tprel_ha_32, tls_tprel_ha_64, + tls_tprel_lo_32, tls_tprel_lo_64, + tls_got_tprel_32, tls_got_tprel_64, + tls_tls_32, tls_tls_64): Replace register_operand with + gpc_reg_operand. + +2004-03-30 Mostafa Hagog + + * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2, + *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3, + *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4, + *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5, + *ctrdi_internal6): Replace register_operand with + nonimmediate_operand. + +2004-03-29 Fariborz Jahanian + + * fold-const.c (fold): Reassociate multiply expression + with an adjacent non-multiply expression to use + architecture's multiply-add instruction. + +2004-03-30 Zack Weinberg + + * gengtype.c (create_option): New function. + * gengtype.h: Prototype it. + * gengtype-yacc.y (stringseq): New rule. + (option): Use create_option. Add new bare ID production. Use + stringseq, not STRING directly. + + * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h + * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h + * varray.h, config/alpha/alpha.c: + Use new shorter form of GTY markers. + + * doc/gty.texi: Rewrite. + +2004-03-30 Andrew Pinski + + * config/darwin.c (machopic_function_base_name): + Remove current_name and getting the name of the + current function. + +2004-03-30 Nick Clifton + + * config/arm/arm.md (thumb_jump): Reduce the backward branch + range, and increase the forward branch range, to allow for + the fact that the PC will be off by 4. + +2004-03-30 Alan Modra + + * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL) + +2004-03-30 Hartmut Penner + + * config/rs6000/rs6000.c (output_vec_const_move): + Find all cases of EASY_VECTOR_15_ADD_SELF. + (easy_vector_constant_add_self): Accept + all vector constant loadable by vsplt* and vadd*. + (easy_vector_same): Use easy_vector_splat_const. + (easy_vector_const): Use easy_vector_splat_const. + (easy_vector_splat_const): New function. + (gen_easy_vector_constant_add_self): New function. + + * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self): + New prototype. + + * config/rs6000/altivec.md (movv4si splitter): Change to + emit move insn with halfed vector constant. + (*movv8hi splitter): Likewise. + (*movv16qi splitter): Likewise. + +2004-03-30 Hartmut Penner + + PR 11591 + * config/rs6000/rs6000.c (rs6000_legitimate_address): + Allow any offset to argument pointer in no-strict case. + +2004-03-30 Jan Hubicka + + * toplev.c (backend_init): Add missing call to inint_optimization_passes. + * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph + dump file in non-unit-at-a-time mode. + +2004-03-29 Hans-Peter Nilsson + + * config/cris/cris.h: Correct #ifdef to test for + HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not + HAVE_AS_MUL_BUG_ABORT_OPTION. + +2004-03-29 Richard Kenner + + * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update + the address inside the old RTL. + +2004-03-28 Zack Weinberg + + * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct. + (struct c_binding, struct c_scope): Add chain_next + attributes to GTY markers. + (struct lang_identifier, struct lang_tree_node): Define + here... + * c-tree.h: ... not here. No longer need to declare struct + c_binding either. Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER. + * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE + to C_SIZEOF_STRUCT_LANG_IDENTIFIER. + + PR 14734, 11944 + * c-decl.c (get_parm_info): If error_mark_node is encountered + in the bindings chain, unbind and discard it; don't abort. + +2004-03-28 Olga Golovonevsky + Dorit Naishlos + + * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2, + one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling. + +2004-03-28 Stephane Carrez + + * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare. + + * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New. + (m68hc11_attribute_table): New attribute "page0" to mark a global + variable as being allocated from within page0 section. + (m68hc11_encode_label): New function. + (m68hc11_strip_name_encoding): New function. + (m68hc11_page0_symbol_p): New function. + (m68hc11_indirect_p): Accept global variables marked in page0. + (m68hc11_encode_section_info): Lookup "page0" attribute. + + * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also + represents access to page0 variables. + + * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG. + ("*logicalsi3_silshl16_zext"): Likewise. + ("*ashldi3_const32"): Likewise. + (peephole2 ashift): Likewise. + +2004-03-28 Joseph S. Myers + + * c-tree.h (C_DECL_REGISTER): New. + * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile, + finish_decl, grokdeclarator, get_parm_info), c-typeck.c + (build_array_ref, c_mark_addressable): Set and use it. + * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable): + Allow structures with volatile fields to be declared register. + Don't check TREE_ADDRESSABLE before warning about taking address + of register. + * c-decl.c (finish_decl): Don't allow structures with volatile + fields to be placed in named register. + * doc/trouble.texi: Remove reference to structures with volatile + fields in registers. + +2004-03-27 Ulrich Weigand + + * function.c (thread_prologue_and_epilogue): Move + NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes + before the epilogue. + +2004-03-27 Ulrich Weigand + + * expr.c (store_constructor): Use gen_int_mode to correctly + sign-extend CONST_INT value. + +2004-03-27 Kaveh R. Ghazi + + * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New. + * builtins.def (DEF_C94_BUILTIN): New. Add wctype builtins. + * doc/extend.texi: Likewise. + +2004-03-26 Diego Novillo + + * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN + with TYPE_ORIG_SIZE_TYPE. + +2004-03-25 Aldy Hernandez + + PR 14219 + * c-typeck.c (build_binary_op): Do not allow comparisons of + vectors. + +2004-03-26 James A. Morrison + + * config.gcc: Remove sparc-tti-*. + * config/sparc/pbd.h: Delete. + + * config/sparc/sol2.h: Remove note about Sun OS 4.x. + * config/sparc/aout.h: Likewise. + + * config/sparc/sparc.h: Remove if 0'd code. + * config/sparc/sparc.md (call): Remove if 0'd code. + (call_value): Likewise. + (nonlocal_goto): Likewise. + (unimp_insn): Delete. + +2004-03-25 Roger Sayle + + * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like + BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative. + +2004-03-25 Richard Henderson + + PR 11527 + * c-typeck.c (pop_init_level): Emit pending init elements earlier + rather than later. + +2004-03-25 Kaveh R. Ghazi + + * builtins.c (fold_builtin): Fix error in last change. + +2004-03-25 Richard Sandiford + + * config/mips/mips.h: Formatting fix. + +2004-03-25 Kaveh R. Ghazi + + * builtins.def: Add ctype builtins. + * doc/extend.texi: Likewise. + +2004-03-25 Kaveh R. Ghazi + + * builtins.c (fold_builtin): Add new builtin optimizations for + sqrt and/or cbrt. + * fold-const.c (fold): Likewise. + +2004-03-25 David Edelsohn + + * config/rs6000/rs6000.c (rs6000_always_hint): New variable. + (rs6000_sched_groups): New variable. + (processor_target_table): Add power5. + (rs6000_override_options): Set rs6000_sched_insert_nops, + rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority + from rs6000_sched_groups. + (output_cbranch): Use rs6000_always_hint. + (rs6000_variable_issue): Use rs6000_sched_groups. + (rs6000_adjust_cost): Add CPU_POWER5. + (is_microcoded_insn): Use rs6000_sched_groups. + (is_dispatch_slot_restricted): Use rs6000_sched_groups. + Return 2 for POWER5 cracked instructions. + (is_cracked_insn): Use rs6000_sched_groups. + (is_branch_slot_insn): Use rs6000_sched_groups. + (rs6000_issue_rate): Add CPU_POWER5. + (rs6000_sched_finish): Use rs6000_sched_groups. + (rs6000_rtx_costs): Add PROCESSOR_POWER5. + * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5. + (DEFAULT_SCHED_COSTLY_DEP): Delete. + (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete. + (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete. + * config/rs6000/rs6000.md (define_attr "cpu"): Add power5. + * config/rs6000/power5.md: New file. + * doc/invoke.texi: Add power5 option. + +2004-03-25 Kazu Hirata + + * cfgrtl.c, dbxout.c, tree.def, config/darwin.h, + config/arm/arm.c, objc/objc-act.c: Fix comment typos. + * doc/invoke.texi: Fix a typo. + +2004-03-25 Kazu Hirata + + PR optimization/9707. + * stmt.c (emit_case_nodes): Emit equality comparisons instead + of recursing if both children are single-valued cases with no + children. + +2004-03-25 Paul Brook + + * config/arm/arm.c (vfp_print_multi): Remove. + (arm_output_fldmx): New function. + (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix. + (arm_expand_prologue): Update to match. + (arm_get_vfp_saved_size): New Function. + (arm_get_frame_offsets): Use it. + (arm_output_epilogue): Use new functions. + +2004-03-24 Richard Henderson + + * 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): Free reg_known_value with gc. + * 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. + +2004-03-24 Kazu Hirata + + * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h, + config/i386/mmintrin.h: Update copyright. + +2004-03-24 Nathanael Nerode + + * configure.ac: Add --enable-werror-always (for top level bootstrap + support). + * configure: Regenerate. + +2004-03-24 Ziemowit Laski + + * objc/objc-act.c (objc_comptypes): Treat comparisons + between 'Class' and ' *' as explicitly invalid. + +2004-03-24 David Edelsohn + + * doc/invoke.texi (-frename-registers): Add enabled at -O3. + (-fprofile-values): Add enabled with profile-{generate,use}. + (-fvpt): Same. + (-ftracer): Add enabled with profile-use. + (-funit-at-a-time): Add enabled at -O2,-O3. + (-funroll-loops): Add enabled with profile-use. + (-funswitch-loops): Add enabled with profile-use. Remove duplicates. + (max-gcse-passes): Mention default. + (max-cse-path-length): Mention default. + +2004-03-24 Nathanael Nerode + + * Makefile.in (STRICT2_WARN): Reorder. + * configure.ac: Check for -Wold-style-definition, and use it + in strict1_warn if it's available. + * configure: Regnerate. + +2004-03-24 Paul Brook + + * config.gcc : Add --with-abi= + * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size, + thumb_far_jump_used): Remove prototypes. + (arm_needs_doubleword_align): Add prototype. + (thumb_compute_initial_elimination_offset): Ditto. + * config/arm/arm.c (arm_get_frame_offsets): New function. + (use_return_insn, output_return_instruction, arm_output_epilogue, + arm_output_function_epilogue, arm_compute_initial_elimination_offset, + arm_expand_prologue, thumb_expand_epilogue): Use it. + (arm_abi, target_abi_name, all_arm_abis): New variables. + (arm_override_options): Set them. Set structure padding for AAPCS. + (arm_return_in_memory): Update ABI check. + (arm_init_cumulative_args): Initialize can_split. + (arm_needs_doubleword_align): New function. + (arm_function_arg): Don't split args after pushing to stack. Handle + doubleword/even reg alignment. + (arm_va_arg): Handle all doubleword aligned args. + (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based + on ABI, not CPU. + (arm_compute_save_reg0_reg12_mask): Fix comment. + (thumb_get_frame_size, thumb_get_frame_size): Remove. + (thumb_jump_far_used_p): Remove superfluous argument. Return save + value for alignment. + (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change + to match. + (thumb_compute_initial_elimination_offset): New function. + (thumb_expand_prologue): Use arm_get_frame_offsets. Remove + unneccessary rounding. + * config/arm/arm.h (target_abi_name): Declare. + (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI, + arm_abi_type, ARM_DEFAULT_ABI): Define. + (ARM_FLAG_ATPCS): Remove. + (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=. + (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it. + (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT, + TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove. + (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P): + Contitionalize on ABI, not CPU. + (struct arm_stack_offsets): Define. + (struct machine_function): Add stack_offsets. Remove frame_size. + (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been + pushed. + (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general + doubleword alignment. + (THUMB_INITIAL_ELIMINATION_OFFSET, + ARM_INITIAL_ELIMINATION_OFFSET): Remove. + (INITIAL_ELIMINATION_OFFSET): Call functions directly. + * config/arm/arm.md (align_8): Enable for all targets. + * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS. + (ARM_DEFAULT_ABI): Define. + * doc/invoke.texi : Document -mabi=. Update documentation for + -mstructure-size-boundary. + +2004-03-24 Nathanael Nerode + + * configure.ac: Check for -Wno-variadic-macros; don't use + -pedantic (in stage 1 or a simple 'make all') unless it's available, + and if it's available, use it. Also, clean up check for + -Wno-long-long. + * configure: Regenerate. + +2004-03-24 Richard Sandiford + + * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines. + * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130. + (MULTILIB_DEFAULTS): Use it. + (MIPS_CPU_STRING_DEFAULT): Remove. + (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define. + (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120. Make + EABI64 -mlong32 the default ABI. Enforce the default architecture. + * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs, + march=vr4130, march=vr4300, march=vr5000 and march=vr5500. + (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120. + (MULTILIB_EXCEPTIONS): Change choice of multilibs. Update comments + accordingly. + +2004-03-24 DJ Delorie + Richard Sandiford + + * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros. + (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs. + (ASM_SPEC): Pass down -mfix-vr4122-bugs. + * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions + in .set noreorder and .set nomacro if TARGET_FIX_VR4122. + (mips_init_libfuncs): Use special functions for divsi3 and modsi3 + if TARGET_FIX_VR4122. + * config/mips/mips.md (define_attr length): Account for nops inserted + after macc and dmult when using -mfix-vr4122-bugs. + (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122. + * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of + LIB2FUNCS_EXTRA. Add config/mips/vr4122-div.S. + * config/mips/vr4122-div.S: New file. + * doc/invoke.texi: Document -mfix-vr4122-bugs. + +2004-03-24 Richard Sandiford + + * config/mips/mips.h (PROCESSOR_R4130): New processor_type. + (TARGET_MIPS4130): New macro. + (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16. + * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry. + (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal + with PROCESSOR_R4130. + * config/mips/mips.md (define_attr cpu): Add r4130. + * doc/invoke.texi: Document vr4130 as a supported MIPS architecture. + +2004-03-24 Maciej W. Rozycki + Richard Sandiford + + * doc/invoke.texi: Apply missed hunk from 2004-03-03 change. + +2004-03-24 Alexandre Oliva + + PR preprocessor/14438 + * cpplib.c (do_pragma): Remove line_change call after pragma + handler. + +2004-03-23 Ian Lance Taylor + + * doc/extend.texi (ARM Built-in Functions): Replace with correct + declarations. + +2004-03-23 Roger Sayle + + * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND + if flag_unsafe_math_optimizations. + * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations + and TARGET_80387 expand using truncdfsf2_noop pattern. + (truncxfsf2): Likewise using truncxfsf2_noop. + (truncxfdf2): Likewise using truncxfdf2_noop. + (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns. + +2004-03-23 Ziemowit Laski + + * hooks.c (hook_constcharptr_tree_null): New hook. + * hooks.h (hook_constcharptr_tree_null): New prototype. + * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook. + * target.h (mangle_fundamental_type): New target hook. + * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point + target hook at rs6000_mangle_fundamental_type. + (rs6000_mangle_fundamental_type): New function. + * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document. + +2004-03-23 Zack Weinberg + + PR 12267, 12391, 12560, 13129, 14114, 14133 + * c-tree.h: Forward declare struct c_binding. Declare + c_override_bindings_to_false. Update prototypes. + (struct lang_identifier): Update comments. Change fields to be + struct c_binding *. + (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE) + (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE) + (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete. + (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New. + * c-common.h: Update prototypes. + * c-decl.c (struct c_scope): Update commentary. Remove names, + names_last, parms, parms_last, tags, and shadowed fields. Add + bindings and depth fields. + (scope_freelist): Move to more appropriate location. + (c_print_identifier): Update for changes to struct lang_identifier. + (objc_mark_locals_volatile): Update for new bindings structures. + (global_bindings_p): Honor c_override_global_bindings_to_false. + (pushlevel): Rename to push_scope; take no arguments; use the + scope_freelist; initialize scope->depth and check for overflow. + (poplevel): Rename to pop_scope; totally rewritten for new bindings + structures. + (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not + C_DECL_INVISIBLE, for certain decisions. Adjust some diagnostics. + Improve some commentary. Adjust handling of forward parm decls. + (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate. + Preserve C_DECL_IN_EXTERNAL_SCOPE. + (warn_if_shadowing): Correct indentation. Improve diagnostics. + (pushdecl): Remove unnecessary assertion. Short-circuit anonymous + decls. Rewrite for new bindings structures. Improve commentary. + Eliminate the copy_node call. + (implicit_decl_warning): Use the "diag" idiom (as seen in + locate_old_decl) to reduce code duplication; call locate_old_decl + if appropriate. Relocate to remove need for forward declaration. + (implicitly_declare): Adjust for new bindings structures. Kludge + around Objective-C not-really-builtin functions. + (undeclared_variable): Improve diagnostics. If current_function_decl + is nonnull but current_function_scope is null, use current_scope. + Use bind. + (lookup_tag): Adjust for new bindings structures. Kludge around + Objective-C's tag declarations that wind up in the external scope. + (lookup_name): Adjust for new bindings structures. Kludge around + c-common.c's pseudo-typedefs that wind up in the external scope. + (lookup_name_current_level): Rename lookup_name_in_scope; take a + second argument indicating the scope to examine; rewrite for + new bindings structures. + (c_init_decl_processing): Adjust for renamed functions. Do not + initialize current_file_decl, first_builtin_decl, last_builtin_decl. + First scope pushed is the external scope, not the global scope. + (builtin_function): Use bind, not pushdecl. Adjust other bits + for new data structures. Keep track of builtins that should be + made visible automatically. + (start_decl): Adjust diagnostics. Remove unnecessary call to + expand_decl. + (grokparms): Return 0 if arg_types is error_mark_node. + (get_parm_info): Rename "void_at_end" argument to "ellipsis", with + reversed sense. Rewrite for new bindings structures. Do not + leave any decls in the scope, to prevent pop_scope from doing + contradictory things with them. + (finish_struct, finish_enum): Remove redundant diagnostics. + (build_enumerator): Don't cascade diagnostics for error_mark_node. + Mark location where -pedantic changes the meaning of the program. + (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the + parameter decls into the function's scope structure using bind. + Warn here about function definitions in the wrong style. + Adjust diagnostics. + (store_parm_decls): Correct the determination of whether a + function was defined with a prototype. + (c_write_global_declarations): Operate on all file decls and on + the external scope. Split body of the loop to... + (c_write_global_declarations_1): ... this new function, to avoid + code duplication. + (truly_local_externals, first_builtin_decl, last_builtin_decl) + (make_scope, pop_scope, in_parm_level_p, set_block) + (any_external_decl, record_external_decl, bind_label, getdecls) + (link_hash_hash, link_hash_eq, merge_translation_unit_decls) + (c_reset_state): Delete. + (visible_builtins, c_override_global_bindings_to_false) + (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING) + (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope) + (external_scope, binding_freelist, bind, free_binding_and_advance) + (push_file_scope, pop_file_scope): New. + (pushtag, pushdecl_top_level, lookup_label, declare_label) + (define_label, c_make_fname_decl, finish_decl) + (mark_forward_parm_decls, build_compound_literal) + (grokdeclarator, start_function, check_for_loop_decls) + (identifier_global_value, record_builtin_type): Minor adjustments + for new bindings structures. Improve diagnostics and commentary. + * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to + pushlevel/poplevel respectively. + (c_objc_common_finish_file): Don't call merge_translation_unit_decls. + * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED. + Warn about YYDEBUG not being defined only if -dy. Remove no-longer- + correct loop over multiple translation units; call fatal_error if + requested to compile more than one file at once. (This disables + IMA temporarily - an up-front error being preferable to a crash.) + * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope. + (all actions): Adjust calls to pushlevel/poplevel. + (parsing_iso_function_signature): Delete. + (extdef_1): Fold into extdef. + (old_style_parm_decls_1): Fold into old_style_parm_decls. Don't + warn here about function definitions in the wrong style. + (after_tyle_declarator, parm_declarator_starttypename) + (parm_declarator_nostarttypename, notype_declarator): Remove + commented-out productions. + (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create + an empty TREE_LIST node. Adjust calls to get_parm_info. + (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node + to suppress -Wold-style-definition after this error. + (c_parse_file): Don't clear the binding stack or call + finish_fname_decls here. Correct comment. + * c-typeck.c (same_translation_unit_p): Export. + (common_type): Use c_override_global_bindings_to_false, not + pushlevel/poplevel/declare_parm_level. + * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK, + LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK, + and LANG_HOOKS_GETDECLS with do-nothing stubs. + * objc/objc-lang.c: Likewise. + * objc/objc-act.c: Adjust all calls to pushlevel, poplevel, + get_parm_info. + (OBJC_VOID_AT_END): Delete; replace all uses + with void_list_node. + (generate_forward_declaration_to_string_table): Delete. + * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete. + + * coverage.c (create_coverage): Don't pushdecl anything. + * langhooks.c (lhd_clear_binding_stack): Call + lang_hooks.decls.poplevel, not poplevel. + * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a + circular list rather than going into an infinite loop. + +2004-03-23 Olivier Hainque + + * optabs.c (expand_binop): When synthesizing double word rotates + from single word shifts, use a new register target if the provided + target is not a REG already. + +2004-03-23 Richard Kenner + + * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL. + * c-common.c (handle_mode_attribute): Add extra arg to + build_pointer_type_for_mode and build_reference_type_for_mode. + * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW + for INTEGER_CST. + * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL. + Chain pointers via TYPE_NEXT_PTR_TO. + (build_reference_type_for_mode): Similarly. + (build_type_no_quals): Add extra arg to build_pointer_type_for_mode + and build_reference_type_for_mode. + (tree_check4_failed): New function. + * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros. + (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise. + (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW): + Add check. + +2004-03-23 Roger Sayle + + * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when + A is nonnegative or B is nonnegative. Similarly A|B is nonnegative + when both A and B are nonnegative. + (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is + nonzero. + +2004-03-23 Kazu Hirata + + * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST, + VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR. + +2004-03-23 Kazu Hirata + + PR optimization/14669 + * fold-const.c (fold): Only unwiden integer comparisons for equality + and inequality operators, or when the signedness doesn't change. + +2004-03-23 Jakub Jelinek + + * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file. + * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set. + * config/sparc/t-linux: New file. + +2004-03-23 Richard Sandiford + + * gcse.c (can_assign_to_reg_p): New function, split out from... + (want_to_gcse_p): ...here. + (compute_ld_motion_mems): Use can_assign_to_reg_p to validate + the rhs of a store. + +2004-03-22 Diego Novillo + + * c-typeck.c (same_translation_unit_p): Fix pasto. + +2004-03-22 David Edelsohn + + * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New. + (PARAM_MAX_SCHED_REGION_INSNS): New. + * sched-rgn.c: Include params.h + (MAX_RGN_BLOCKS): Delete. + (MAX_RGN_INSNS): Delete. + (too_large): Return bool. Convert to PARAM_VALUE. + * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H). + * doc/invoke.texi (param): Document max-sched-region-blocks and + max-sched-region-insns. + +2004-03-22 Joel Brobecker + + * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE + for base types. + +2004-03-22 Joel Brobecker + + * dwarf2out.c (is_subrange_type): Minor code rework. No behavior + change. + +2004-03-22 Jakub Jelinek + + PR c/14069 + * c-decl.c (finish_struct): Change type of incorrect flexible array + field into error_mark_node. + +2004-03-22 Andrew Pinski + + PR target/14580 + * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols + who are not local for Darwin PIC. + +2004-03-22 Ulrich Weigand + + * regrename.c (regrename_optimize): Set regs_ever_live for all + registers introduced as replacement. + +2004-03-22 Eric Botcazou + + 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. + +2004-03-22 Nathanael Nerode + + * configure.ac: Allow --disable-coverage-flags (for the future benefit + of top level bootstrap, and consistency). Reindent. + * configure: Regenerate. + +2004-03-21 Kazu Hirata + + * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c, + ggc-page.c, integrate.c, var-tracking.c, web.c: Remove + unnecessary casts. + +2004-03-22 Danny Smith + + PR target/14291 + * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for + __MINGW32__. + +2004-03-21 Ulrich Weigand + + * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2 + to nonimmediate_operand. + ("*doloop_di"): Likewise. + +2004-03-21 Alexandre Oliva + + * real.h (struct real_value): Use the same type for all + bitfields. Rename exp to uexp. + (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp. + Adjust all uses of exp... + * builtins.c: ... here, ... + * emit-rtl.c: ... here, and ... + * real.c: ... and here. + +2004-03-21 Gabriel Dos Reis + + * pretty-print.c (pp_base_maybe_space): New function. + * pretty-print.h (pp_base_maybe_space): Declare. + (pp_maybe_space): New macro. + +2004-03-21 Ulrich Weigand + + * config/s390/s390.md ("addti3", "subti3"): New insns and splitters. + +2004-03-21 Ulrich Weigand + + * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead + of using register multiplication cost. + (expand_mult): Adapt choose_mult_variant call. + (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE + of MODE; pass appropriate cost bound. Adjust result when + performing signed multiplication by a negative constant. + Don't use intermediate modes larger than word_mode. + +2004-03-21 Richard Kenner + + * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR. + * emit-rtl.c (component_ref_for_mem_expr): Likewise. + (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR. + * explow.c (expr_size): Likewise. + * expr.h (placeholder_list, find_placeholder): Deleted. + * expr.c (store_constructor): Likewise. + (get_inner_reference): Likewise. Also don't call find_placeholder. + (placeholder_list, find_placeholder): Deleted. + (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR. + (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise. + (highest_pow2_factor, case WITH_RECORD_EXPR): Remove. + * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise. + * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR): + Likewise. + * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise. + (extract_muldiv, case WITH_RECORD_EXPR): Likewise. + * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise. + (contains_placeholder_p): Don't handle WITH_RECORD_EXPR. + Clean up by using first_rtl_op. + (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call. + (substitute_placeholder_in_expr): New function. + * tree.def (WITH_RECORD_EXPR): Deleted. + * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New. + (substitute_placeholder_in_expr): New. + +2004-03-21 Andrew Pinski + + * dojump.c (prefer_and_bit_test): Fix which part of + the and_test is replaced. + +2004-03-21 Joseph S. Myers + + * frontends.texi: Add missing line. + +2004-03-21 Zack Weinberg + Chris Devers + Joseph S. Myers + + * doc/frontends.texi: Rewrite. + * doc/gcc.texi: Update last modification date. + +2004-03-21 Josef Zlomek + + * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug + message before redirecting the edge. + +2004-03-20 Zdenek Dvorak + + * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER + flag. + * explow.c (force_not_mem): Set REG_POINTER flag according to + MEM_POINTER one. + * rtl.h (MEM_POINTER): New macro. + (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related + for MEM_POINTER. + +2004-03-20 Roger Sayle + + PR target/13889 + * cse.c (fold_rtx): Avoid substituting constants into unary + conversion operations. + +2004-03-20 Kazu Hirata + + * fold-const.c (fold): Replace "expr" with "t". + +2004-03-20 Ian Lance Taylor + + PR c/12373 + * c-typeck.c (tagged_types_tu_compatible_p): Don't use + DECL_ORIGINAL_TYPE if there isn't one. + +2004-03-20 Kazu Hirata + + * fold-const.c (fold): Replace "final_type" with "type". + Remove variable "final_type". + +2004-03-20 Kazu Hirata + + * fold-const.c (fold): Constify "type". + Replace "TREE_TYPE (t)" with "type". + +2004-03-20 Kazu Hirata + + * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c, + dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls + via (*targetm.foo) () with targetm.foo (). + +2004-03-20 Joseph S. Myers + + PR other/14630 + * doc/install.texi: Add info directory category and entry. + +2004-03-20 Kazu Hirata + + * fold-const.c (fold): Replace "t" with "tem" where it is used + as a temporary variable. Remove "orig_t" and all of its uses. + +2004-03-20 Kazu Hirata + + * fold-const.c (fold): Remove variable "invert". + Move the handling of relational expressions that can be folded + to a constant ... + (fold_relational_const): ... here. + (tree_expr_nonzero_p): New. + +2004-03-20 Joseph S. Myers + + PR c/14635 + * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to + DEF_GCC_BUILTIN. + +2004-03-20 Richard Sandiford + + * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h. + (GTFILES): Add $(srcdir)/dojump.h. + (gt-dojump.h): New dependency. + * dojump.c (and_reg, and_test, shift_test): New static variables. + (prefer_and_bit_test): New function. + (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1. + +2004-03-20 Kazu Hirata + + * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c, + expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c, + reorg.c, tree.h: Fix comment typos. + +2004-03-19 Kazu Hirata + + * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c, + c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c, + cse.c, dbxout.c, dwarf2out.c, except.c, final.c, + haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c, + sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c, + vmsdbgout.c: Replace calls via (*targetm.foo) () with + targetm.foo (). + +2004-03-19 Ziemowit Laski + + * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt, + vec_dstt, vec_sld, vec_splat): Add prototypes, marked with + always_inline attribute. + * config/rs6000/rs6000.c (altivec_expand_dst_builtin): + Treat expansion as completed even if literal argument is + invalid (so that other expansions are not tried in vain). + +2004-03-19 Kazu Hirata + + * loop-doloop.c (add_test): Replace GEN_INT (0) with + const0_rtx. + +2004-03-19 Kazu Hirata + + * fold-const.c (fold) : Move the handling of constants + ... + (fold_abs_const): ... here. + +2004-03-19 Richard Kenner + + * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly. + +2004-03-19 Denis Chertykov + + PR target/11520 + * config/avr/avr.md ("call_insn"): Handle explicit integer + specially. + (call_value_insn): Likewise. + +2004-03-19 Richard Kenner + + * tree.c (substitute_in_expr): Rewrite to simplify and be more generic. + +2004-03-19 Kazu Hirata + + * fold-const.c (negate_expr): Move the handling of constants + ... + (fold_negate_const): ... here. + +2004-03-19 Richard Kenner + + * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook. + * langhooks.h (struct lang_hooks_for_types): New field hash_types. + * tree.c (debug_no_type_hash): Deleted. + (type_hash_canon): Abort if passed a variant. + Check lang_hooks.types.hash_types. + (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE. + (build_array_type): Remove unnecessary allocation of pointer type. + (build_complex_type): Properly qualify resulting type. + +2004-03-19 Paolo Bonzini + + * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo. + +2004-03-19 Richard Sandiford + + * expmed.c (choose_mult_variant, expand_mult_const): New, split from... + (expand_mult): ...here. + (extract_high_half): New, split out from expand_mult_highpart. + (expand_highpart_optab): Likewise. Don't clobber target prematurely. + (expand_highpart): Evaluate the cost of a shift/add sequence, + then see if any of the specialized optabs are cheaper. + +2004-03-18 Ian Lance Taylor + + * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2. + +2004-03-18 Kaveh R. Ghazi + + * convert.c (convert_to_real): Add more math builtins. + +2004-03-18 Kaveh R. Ghazi + + * convert.c (convert_to_real): Reformat using switch stmt. + +2004-03-18 Mark Mitchell + + * c-common.c (pointer_int_sum): Do not complain about using + pointers to pointers-to-members. + +2004-03-18 Kazu Hirata + + * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that + have moved to the target hooks structure". + +2004-03-18 James E Wilson + + * config/mips/mips.md (type): Split move into arith and fmove. Split + hilo into mthilo and mfhilo. Add trap. Delete icmp. Fix all uses. + * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs): + Likewise. + * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs): + Likewise. + * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo, + rm7_fp_quick): Likewise. + * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo, + rm9k_fquick): Likewise. + * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs): + Likewise. + (ir_sr70_icmp): Delete. + +2004-03-18 Richard Kenner + + * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros. + (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl. + (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros. + (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise. + (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD): + Protect with proper check. + (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise. + (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise. + * tree.c (type_hash_eq): Rewrite to access proper fields for each type. + (tree_check2_failed, tree_check3_failed, tree_check5_failed): New. + * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES. + * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES, + not TYPE_FIELDS. + * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE. + +2004-03-18 Mostafa Hagog + + * gcse.c (eliminate_partially_redundant_loads): Reject change if + dest is set between beginning and current insn. + +2004-03-18 Mark Mitchell + + * c-decl.c (grokdeclarator): Do not complain about redeclaring + visible "static" identifiers "extern" in a local scope. + * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and + post-increments/decrements. + +2004-03-18 Bob Wilson + + * config/xtensa/xtensa.c (current_function_arg_words): Delete. + (xtensa_builtin_saveregs): Use current_function_args_info.arg_words. + (xtensa_va_start): Remove assignment to current_function_arg_words. + +2004-03-18 Richard Sandiford + + * alias.c (record_set): Detect the case where a register is assigned + a new value that has the same base term as the old one. + +2004-03-18 Zdenek Dvorak + + * doloop.c: Removed. + * loop-doloop.c: New file. + * Makefile.in (doloop.o): Remove. + (loop-doloop.o): New. + * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare. + * cfgloopanal.c (get_loop_level): New function. + * loop-iv.c (iv_number_of_iterations): Handle case when loop + is leaved immediatelly. + * loop.c (strength_reduce): Do not call doloop optimization. + * loop.h (LOOP_BCT): Removed. + * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT. + (rest_of_handle_loop2): Call doloop_optimize_loops. + (rest_of_compilation): Test for optimizations moved to + rest_of_handle_loop2. + +2004-03-17 Fariborz Jahanian + + * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size + for mixed mode. + (rs6000_emit_prologue): Ditto. + (rs6000_emit_epilogue): Ditto. + * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT + macro for mixed mode. + +2004-03-18 Jan Hubicka + + * predict.c (propagate_freq): Compute correctly frequency of + EXIT_BLOCK. + +2004-03-17 Eric Christopher + + * builtins.c (apply_args_size): Use reg_raw_mode. + (apply_result_size): Ditto. + +2004-03-17 Ralf Corsepius + + PR target/14620 + * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC. + +2004-03-17 Jakub Jelinek + + * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for + 32-bit builds when defaulting to 32-bit. + +2004-03-17 Jan Hubicka + + * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info + array. + +2004-03-17 James E Wilson + + * config/mips/mips.md (zero_extendsidi2): Add length attribute. + (hazard_nop): Change type to nop. + (type): Split arith into arith, shift, slt, clz. Delete darith. + Fix all uses. Change arith to multi if more than one insn emitted. + * config/mips/5400.md (ir_vr54_arith): Likewise. + * config/mips/5500.md (ir_vr55_arith): Likewise. + * config/mips/7000.md (rm7_int_other): Likewise. + * config/mips/9000.md (rm9k_int): Likewise. + * config/mips/sr71k.md (ir_sr70_arith): Likewise. + +2004-03-17 Joel Brobecker + + * dwarf2out.c (subrange_type_die): Define new variable "subtype" + to hold the subtype tree instead of recomputing it several times. + +2004-03-17 Kazu Hirata + + * config/mn10300/mn10300.c (notice_update_cc): Don't handle + CC_INVERT. + * config/mn10300/mn10300.md (cc): Remove "invert". + +2004-03-16 Kaveh R. Ghazi + + * builtins.c (integer_valued_real_p): Add builtin rint. + (fold_builtin): Likewise. + * convert.c (convert_to_real): Likewise. + + * convert.c (convert_to_real): Fix typos in `long double' + builtins. + +2004-03-16 Mark Mitchell + + PR c++/14481 + * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly + generated COMPOUND_EXPRs. + +2004-03-16 Ralf Corsepius + + * config/h8300/t-rtems (h8300-*-rtems*): New. + +2004-03-16 Eric Christopher + + * doc/cppopts.texi(fwide-exec-charset): Fix typo. + +2004-03-16 Kazu Hirata + + * config/i386/i386-protos.h: Add a prototype for + ix86_reverse_condition. + * config/i386/i386.c (ix86_reverse_condition): New. + * config/i386/i386.h (REVERSE_CONDITION): Use + ix86_reverse_condition. + * config/i386/i386.md: Use ix86_reverse_condition instead of + REVERSE_CONDITION. + +2004-03-16 J. Brobecker + + * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR. + +2004-03-16 Nathanael Nerode + + PR bootstrap/12974 + * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly. + +2004-03-16 Paolo Bonzini + + * c-common.c (c_common_type_for_mode): Build vector types on + demand. + (handle_mode_attribute): Deprecate using the mode attribute + to create vector types. Fix indentation. + (vector_type_node_list): Remove. + (handle_vector_size_attribute): Create vector types on demand. + Strip a NON_LVALUE_EXPR from the attribute if there is one. + * c-typeck.c (comptypes): Make vector types compatible if they + have the same underlying mode. + (convert_for_assignment): Use comptypes to convert between + vector types. + * tree.c (build_common_tree_nodes_2): Do not create vector types. + * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary + vector types. + * tree.h: Remove vector types. + * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise. + * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise. + (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node, + V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals. + * doc/extend.texi (Vector Types): Document how to use the + vector_size attribute to create vectors, rather than mode. + + * config/arm/mmintrin.h: Use vector_size attribute, not mode. + * config/i386/emmintrin.h: Likewise. + * config/i386/mmintrin.h: Likewise. + * config/i386/xmmintrin.h: Likewise. + * config/sh/ushmedia.h: Likewise. + +2004-03-16 Kazu Hirata + + * config/freebsd-spec.h, config/arc/arc-protos.h, + config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h, + config/arm/linux-gas.h, config/arm/semi.h, + config/cris/cris-protos.h, config/i386/xm-djgpp.h, + config/ia64/freebsd.h, config/mips/7000.md, + config/mips/9000.md, config/ns32k/ns32k-protos.h, + config/sparc/pbd.h: Update copyright. + +2004-03-16 Ralf Corsepius + + PR target/14577 + * config.gcc: Switch sh-*-rtems* to ELF. Add sh-*-rtemscoff. + +2004-03-16 Paolo Bonzini + + * combine.c (combine_simplify_rtx): Remove the "last" + parameter and its documentation. Adjust recursive calls. + (simplify_logical): Always perform the only simplification + controlled by "last", if the simplified expression is + actually different. + (try_combine): Do not pass the "last" parameter to + combine_simplify_rtx. + +2004-03-16 Richard Sandiford + + PR target/14599 + * config/mips/mips.md (UNSPEC_GP): New constant. + * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain + an UNSPEC instead of (reg $gp). + (mips16_gp_pseudo_reg): Change accordingly. + (print_operand): Print $gp directly when handling CONST_GP_P. + +2004-03-16 Richard Zidlicky + + * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux. + * longlong.h: Make code 68060 clean when compiling for m68060. + +2004-03-16 Richard Zidlicky + + * config/m68k/m68k.md: Fix constraints for bitfield instructions. + * doc/md.texi: Clarify description of "i" constraint. + +2004-03-15 James E Wilson + + * config/mips/mips.md (type): Split load into load, fpload, fpidxload. + Split store into store, fpstore, fpidxstore. Fix all uses. + * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore): + Likewise. + * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise. + * config/mips/7000.md (rm7_ld, rm7_st): Likewise. + * config/mips/9000.md (rm9k_load, rm9k_store): Likewise. + * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload, + ir_sr70_fstore): Likewise. + +2004-03-15 Richard Henderson + + PR middle-end/14535 + * except.c (collect_one_action_chain): Record action for cleanup + outer of exception spec. + +2004-03-15 Ian Lance Taylor + + * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address): + Fix the check for abort and only do the mmap if we can. + +2004-03-15 Eric Botcazou + + * config/sparc/sparc.h: Rework comments about the code model + in 64-bit environment and the mode 'Pmode'. + * doc/invoke.texi (SPARC options): Rework description of the + different code models supported in 64-bit environment. + +2004-03-15 Kazu Hirata + + * defaults.h (REVERSIBLE_CC_MODE): Define. + * jump.c (reversed_comparison_code_parts): Don't check if + REVERSIBLE_CC_MODE is defined. + +2004-03-15 Kazu Hirata + + * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c, + et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h, + hosthooks.h, params.h, ra-colorize.c, web.c, + config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c, + config/avr/avr-protos.h, config/avr/avr.md, + config/fr30/fr30-protos.h, config/fr30/fr30.md, + config/h8300/fixunssfsi.c, config/i386/darwin.h, + config/i386/freebsd.h, config/i386/freebsd64.h, + config/ia64/hpux.h, config/ia64/unwind-ia64.c, + config/ip2k/libgcc.S, config/m32r/xm-m32r.h, + config/mmix/mmix-modes.def, config/ns32k/netbsd.h, + config/ns32k/ns32k.md, config/pa/pa64-hpux.h, + config/pa/pa64-regs.h, config/rs6000/aix41.h, + config/rs6000/aix43.h, config/rs6000/host-darwin.c, + config/sparc/aout.h, config/sparc/freebsd.h, + config/sparc/litecoff.h, config/vax/vax-protos.h, + doc/hostconfig.texi, doc/include/gcc-common.texi: Update + copyright. + +2004-03-15 Paul Brook + + * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp. + +2004-03-15 Gabriel Dos Reis + + * c-pretty-print.c (pp_c_semicolon): Fix formatting. + (pp_c_cv_qualifier): Document. + (pp_c_space_for_pointer_operator): Likewise. + (pp_c_integer_constant): Likewise. + (pp_c_identifier): Likewise. + (pp_c_init_declarator): Don't print function body. + +2004-03-14 Joseph S. Myers + + * doc/contrib.texi, doc/extend.texi, doc/gcov.texi, + doc/install.texi, doc/invoke.texi, doc/makefile.texi, + doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize + "gcc", "g++" and "g77" or mark up with appropriate markup. Adjust + wording and grammar. + +2004-03-14 Roger Sayle + + * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) () + with lang_hooks.foo (). + * builtins.c (expand_builtin_va_arg): Likewise. + * c-common.c (fname_as_string, c_common_truthvalue_conversion, + c_common_type_for_mode, c_common_nodes_and_builtins, + handle_mode_attribute, handle_vector_size_attribute): Likewise. + * c-convert.c (convert): Likewise. + * c-format.c (check_format_types): Likewise. + * c-objc-common.c (c_tree_printer): Likewise. + * c-typeck.c (build_unary_op, build_conditional_expr, + build_binary_op): Likewise. + * calls.c (try_to_integrate, expand_call, + emit_library_call_value_1): Likewise. + * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p): + Likewise. + * cgraphunit.c (record_call_1, cgraph_analyze_function, + cgraph_expand_function): Likewise. + * convert.c (convert_to_pointer, convert_to_integer): Likewise. + * coverage.c (build_fn_info_type, build_ctr_info_type, + build_gcov_info, create_coverage): Likewise. + * dbxout.c (dbxout_init): Likewise. + * diagnostic.c (diagnostic_report_current_function): Likewise. + * dojump.c (do_jump): Likewise. + * dwarf2out.c (dwarf2_name): Likewise. + * except.c (init_eh): Likewise. + * explow.c (expr_size, int_expr_size): Likewise. + * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add): + Likewise. + * expr.c (store_expr, store_constructor, safe_from_p, + expand_expr_real, do_store_flag, try_casesi): Likewise. + * function.c (push_function_context_to, pop_function_context_from, + free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type, + put_var_into_stack, allocate_struct_function, current_function_name): + Likewise. + * integrate.c (copy_decl_for_inlining, expand_inline_function): + Likewise. + * langhooks.c (lhd_clear_binding_stack, write_global_declarations, + lhd_print_error_function): Likewise. + * opts.c (handle_option, decode_options): Likewise. + * passes.c (open_dump_file): Likewise. + * print-tree.c (print_node): Likewise. + * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands, + expand_decl_cleanup, emit_case_nodes): Likewise. + * stor-layout.c (variable_size): Likewise. + * toplev.c (announce_function, wrapup_global_declarations, + check_global_declarations, compile_file, default_tree_printer, + process_options, lang_dependent_init, finalize): Likewise. + * tree-dump.c (dequeue_and_dump): Likewise. + * tree-inline.c (remap_decl, remap_block, copy_body_r, + initialize_inlined_parameters, declare_return_variable, + inlinable_function_p, expand_call_inline, optimize_inline_calls, + walk_tree, copy_tree_r): Likewise. + * tree-optimize.c (tree_rest_of_compilation): Likewise. + * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp, + unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl, + variably_modified_type_p, dump_tree_statistics): Likewise. + * varasm.c (assemble_variable, compare_constant, copy_constant, + force_const_mem, compute_reloc_for_constant, output_constant, + output_addressed_constants, initializer_constant_valid_p): Likewise. + +2004-03-14 Kelley Cook + + * doc/install.texi: Make autoconf 2.13 the exception, not the rule. + +2004-03-14 Andreas Tobler + + * doc/install.texi: Reflect autoconf and automake version for + libffi. Update autoconf version to 2.59. + +2004-03-13 Roger Sayle + + * fold-const.c (negate_expr, operand_equal_for_comparison_p, + optimize_bit_field_compare, decode_field_reference, all_ones_mask_p, + make_range, build_range_check, fold_range_test, unextend, + constant_boolean_node, fold_binary_op_with_conditional_arg, + fold_truthop, fold_mathfn_compare, fold_inf_compare, + fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) () + with lang_hooks.foo (). + +2004-03-14 Richard Earnshaw + + * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment. + +2004-03-13 Dara Hazeghi + + * doc/install.texi: Note status of -fnew-ra. + +2004-03-13 Eric Botcazou + + 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. + +2004-03-13 Jakub Jelinek + + PR target/14533 + * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC + other than UNSPEC_GOTOFF. + +2004-03-13 Richard Earnshaw + + * arm.c (arm_legitimate_address_p): New argument, OUTER. Pass through + to arm_legitimate_index_p. Update all callers with SET as default + value. + (arm_legitimate_index_p): New argument, OUTER. Restrict the index + range if OUTER is a sign-extend operation on QImode. Correctly + reject shift operations on sign-extended QImode addresses. + (bad_signed_byte_operand): Delete. + (arm_extendqisi_mem_op): New function. + * arm.h (EXTRA_CONSTRAINT_ARM): Delete. Replace with... + (EXTRA_CONSTRAINT_STR_ARM): ... this. Handle extended address + constraints. + (CONSTRAINT_LEN): New. + (EXTRA_CONSTRAINT): Delete. Replace with... + (EXTRA_CONSTRAINT_STR): ... this. + (PREDICATE_CODES): Remove bad_signed_byte_operand. + * arm.md (extendqihi_insn): Use new constraint Uq. Rework. Length + is now always default. + (define_splits for bad sign-extend loads): Delete. + (arm_extendqisi, arm_extendqisi_v5): Likewise. + * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp): + Rework 'U' constraint to 'Uv'. + * arm-protos.h: Remove bad_signed_byte_operand. Add + arm_extendqisi_mem_op. + * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv). + Add Uq constraint. + +2004-03-13 Alan Modra + + * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS + with targetm version. + + PR target/14567 + * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete. + (HARD_REGNO_MODE_OK): Disallow TFmode for fp31. + * config/rs6000/rs6000.c (rs6000_arg_size): New function. + Update all users of RS6000_ARG_SIZE. + (function_arg_advance): Count fregno using mode size. + (function_arg): Handle long double split over regs and memory. + (function_arg_partial_nregs): Likewise. + (rs6000_va_arg): Repackage complex args. + +2004-03-13 Dean Ferreyra + + PR target/14047 + * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter. + (avr_insert_attributes): Pass "attributes" to avr_progmem_p. + * config/avr/avr-protos.h (avr_progmem_p): Change prototype. + +2004-03-12 Jakub Jelinek + + * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add + prototype. + * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New. + * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define. + +2004-03-12 Andrew Pinski + + * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address): + Use ret instead of result. Use addr instead of base. + +2004-03-12 David Edelsohn + + * doc/install.texi (*-ibm-aix*): Document assembler and achiver + fixes required by libstdc++ and update installation instructions + for libstdc++.a. + +2004-03-12 Danny Smith + + * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip + leading '@' on fastcall symbols before stripping suffix. + +2004-03-12 Roger Sayle + + * combine.c (unmentioned_reg_p): New function to check whether an + expression is a "specialization" of another, i.e. that there are + no registers or memory references mentioned in the first that don't + appear in the second. + (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p. + (combine_instructions): Also try combining instructions using the + REG_EQUAL note from a preceding log-linked instruction. + +2004-03-12 Roger Sayle + + * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63. + +2004-03-12 Matt Austern + + * target.h (struct gcc_target): New target hook, unwind_label. + * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook. + * output.h (default_emit_unwind_label): New function. + * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro. + (TARGET_USES_WEAK_UNWIND_INFO): New target macro. + (TARGET_SUPPORTS_HIDDEN): New target macro. + * dwarf2out.c (struct dw_fde_struct): Add field for function decl + that corresponds to this FDE. + (FRAME_BEGIN_LABEL): Allow target to override default label. + (output_call_frame_info): If FDEs are linknonce, then use extra + indirection for FDE encoding, output a label for each FDE, and + output an empty label for each function without an FDE. + (dwarf2out_begin_prologue): Set up decl field when creating an FDE. + * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for + decls with DECL_ONE_ONLY set, if that macro is defined. + (make_decl_one_only): Don't use DECL_COMMON if we're compiling + for a SUPPORTS_ONE_ONLY target. + * config/darwin-protos.h (darwin_unique_section): Declare. + (darwin_asm_named_section): Likewise. + (darwin_section_type_flags): Likewise. + (darwin_non_lazy_pcrel): Likewise. + (darwin_emit_unwind_label): Likewise. + (darwin_make_decl_one_only): Likewise. + * config/darwin.c (machopic_finish): Get rid of tweak that + eliminate stubs for symbols that are defined. + (darwin_encode_section_info): Don't treat weak functions as defined. + (darwin_make_decl_one_only): Define. + (darwin_asm_named_section): Likewise. + (darwin_section_type_flags): Likewise. + (darwin_unique_section): Likewise. + (darwin_emit_unwind_label): Likewise. + (darwin_non_lazy_pcrel): Likewise. + (darwin_asm_output_dwarf_delta): Difference between two labels is + local only if both labels are local. + * config/darwin.h (MAKE_DECL_ONE_ONLY): Define. + (ASM_MAKE_LABEL_LINKONCE): Likewise. + (TARGET_SUPPORTS_HIDDEN): Likewise. + (TARGET_USES_WEAK_UNWIND_INFO): Likewise. + (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise. + (FRAME_BEGIN_LABEL): Likewise. + (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect. + (ASM_DECLARE_FUNCTION_NAME): Likewise. + (darwin_eh_frame_section): Give __eh_frame section the coalesced flag. + (TARGET_ASM_UNIQUE_SECTION): Define. + (EH_FRAME_SECTION_NAME): Define. + (EH_FRAME_SECTION_ATTR): Likewise. + (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise. + (TARGET_ASM_NAMED_SECTION): Likewise. + (TARGET_SECTION_TYPE_FLAGS): Likewise. + * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO, + TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN, + TARGET_ASM_EMIT_UNWIND_LABEL. + +2004-03-12 Kaveh R. Ghazi + + * builtins.c (expand_builtin_mathfn): Add pow10* to the + existing exp10* case. + (expand_builtin): Likewise. + +2004-03-12 Eric Botcazou + + * doc/tm.texi (registers) : Add + entry for REGMODE_NATURAL_SIZE. + +2004-03-12 Richard Henderson + + PR target/14547 + * target.h (struct gcc_target): Move calls substructure before + booleans. Add split_complex_arg. + * function.c (assign_parms, split_complex_args): Use it. + * calls.c (expand_call): Likewise. + (split_complex_values): Likewise. Check for splittable types + before allocating memory. + (split_complex_types): Likewise. + * system.h (SPLIT_COMPLEX_ARGS): Poison. + * expr.h (SPLIT_COMPLEX_ARGS): Remove. + * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New. + * config/alpha/alpha.c (alpha_split_complex_arg): New. + (TARGET_SPLIT_COMPLEX_ARG): New. + * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove. + * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New. + (rs6000_override_options): Zap it for non-AIX. + (rs6000_function_value): Use targetm.calls.split_complex_arg. + * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove. + * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New. + * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove. + * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old + SPLIT_COMPLEX_ARGS entry. + +2004-03-11 Richard Henderson + + * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New. + (alpha_lookup_xfloating_lib_func): Use them, return rtx. + (alpha_emit_xfloating_arith): Update to match. + (alpha_emit_xfloating_compare): Likewise. + (alpha_emit_xfloating_cvt): Likewise. + (alpha_emit_xfloating_libcall): Take already built symbol, + mark call const. + * config/alpha/alpha.md (extendsftf2, extenddftf2): Take + op1 in a register. + +2004-03-11 Richard Henderson + + PR target/14539 + * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128. + + * simplify-rtx.c (simplify_relational_operation): Fix typo. + +2004-03-11 Richard Henderson + + PR middle-end/14477 + * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER. + +2004-03-11 Ulrich Weigand + + PR target/14262 + * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not + defined, pass small BLKmode values in registers in the low-order part. + +2004-03-11 Ulrich Weigand + + * combine.c (if_then_else_cond): Check for NULL return value of + simplify_gen_subreg. + +2004-03-11 Richard Sandiford + + PR target/14496 + * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for + TARGET_SINGLE_FLOAT. + +2004-03-11 Steve Ellcey + + * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef. + * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define. + * config/ia64/ia64.c (ia64_init_libfuncs): New. + (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs. + +2004-03-11 Roger Sayle + + * fold-const.c (negate_expr_p) : We can optimize + -((int)X>>C) where C is an integer constant one bit less than the + size of X into (unsigned)X>>C. Similarly for unsigned->signed. + (negate_expr) : Implement the above transformations. + + * simplify-rtx.c (simplify_unary_operation): Also implement the + above transformations at the RTL level. + +2004-03-11 Alan Modra + + * real.c (encode_ibm_extended): Do round low word. + +2004-03-11 Ben Elliston + + * config/arm/arm.md (is_xscale): Comment this attribute and move + it a bit further up in the file, closer to related attributes. + +2004-03-11 Eric Botcazou + + * config/host-solaris.c (sol_gt_pch_use_address): Add + missing terminating marker to comment. + +2004-03-11 Richard Sandiford + + * config/mips/mips.md: Use move_operand in splitters for 64-bit moves. + (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates. + (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16) + (*movsf_mips16, *movdf_mips16): Name unnamed patterns. Use + move_operand as source predicate in all cases. + (*movdi_32bit): Renamed from movdi_internal. Remove 'F' constraint. + Test reg_or_0_operand. Use move_operand as source predicate. + (*movdi_64bit): Renamed from movdi_internal2. Test reg_or_0_operand. + (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16. + (*movsi_internal): Renamed from movsi_internal. Test reg_or_0_operand. + (movhi, movqi, movsf, movdf): Use mips_legitimize_move. + (*movhi_internal): Renamed from movhi_internal. Test reg_or_0_operand. + Use move_operand as source predicate. Remove 'K' constraint. + (*movqi_internal): Likewise movqi_internal. + (*movsf_hardfloat): Renamed from movsf_internal1. Test + reg_or_0_operand. Use move_operand as source predicate. + (*movsf_softfloat): Likewise movsf_internal2. + (*movdf_hardfloat_64bit): Likewise movsf_internal1a. + (*movdf_hardfloat_32bit): Likewise movsf_internal1b. + (*movdf_softfloat): Likewise movdf_internal2. + * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs + for DImode if !TARGET_64BIT. + (mips_legitimize_move): Simplify accordingly. + +2004-03-11 Josef Zlomek + + PR/14362 + * var-tracking.c (struct variable_def): Added field refcount. + (variable_htab_free): Decrease the refcount and delete variable + only if there are no more references. + (unshare_variable): New function. + (vars_copy_1): Increase refcount instead of copying the variable. + (variable_union): Share the variables where possible, unshare + the variables if needed. + (variable_different_p): Return false if var1 and var2 are + the same structure. + (variable_was_changed): Init the refcount of new variable. + (set_frame_base_location): Unshare variable if needed. + (set_variable_part): Init the refcount of new variable. + Unshare the variables if needed. + (delete_variable_part): Unshare the variables if needed. + (emit_notes_for_differences_1): Init the refcount of new variable. + (vt_add_function_parameters): Do not add function parameters to + IN set of ENTRY_BLOCK_PTR because it is unused anyway. + (vt_initialize): Do not add frame_base_decl to IN set of + ENTRY_BLOCK_PTR because it is unused anyway. + +2004-03-11 Josef Zlomek + + * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations. + (vars_copy): Likewise. + (variable_union): Likewise. + (set_variable_part): Likewise. + (delete_variable_part): Likewise. + +2004-03-11 Kazu Hirata + + * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h, + ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c, + config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c, + config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h, + config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md, + config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h, + config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h, + config/pdp11/pdp11.h, config/rs6000/rs6000.c, + config/stormy16/stormy16.c: Fix comment typos and formatting. + +2004-03-11 Nathanael Nerode + + * configure: Regenerate, since I forgot to while committing Paolo's + changes. + +2004-03-08 Paolo Bonzini + + PR ada/14131 + Move language detection to the top level. + * configure.ac: Remove code to detect languages, + it now lives exclusively in the top level. + * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the + top level, renamed to ACX_PROG_GNAT. + +2004-03-10 Richard Henderson + + * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address + extra arguments. + * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj + and host_xmake_file fragments. + * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change. + (gt_pch_restore): Similarly for gt_pch_use_address. + (default_gt_pch_get_address): New. + (mmap_gt_pch_get_address): Split out of gt_pch_save. + (default_gt_pch_use_address): Split out of gt_pch_restore. + (mmap_gt_pch_use_address): Likewise. + * hooks.c (hook_voidp_size_t_null): Remove. + (hook_bool_voidp_size_t_false): Remove. + * hooks.h: Likewise. + * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the + default_ or mmap_ definitions. + (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise. + * hosthooks.h (struct host_hooks): Update gt_pch_get_address + and gt_pch_use_address. + * config/host-linux.c, config/host-solaris.c: New files. + * config/x-linux, config/x-solaris: New files. + * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address): + Update for changed definition. + (darwin_rs6000_gt_pch_use_address): Likewise. + * doc/hostconfig.texi: Update docs. + +2004-03-10 Richard Henderson + + PR c/14517 + * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers + except for pedantic c90 mode. + +2004-03-10 Kelley Cook + + * configure.ac: Bump AC_PREREQ to 2.59. + * configure: Regenerate. + +2004-03-10 Uros Bizjak + + * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2. + (exp10_optab, exp2_optab): Define corresponding macros. + * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab. + * genopinit.c (optabs): Implement exp10_optab and exp2_optab + using exp10?f2 and exp2?f2 patterns. + * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L} + using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab. + (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L} + using expand_builtin_mathfn if flag_unsafe_math_optimizations is set. + + * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2, + exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l, + exp2, exp2f and exp2l built-ins as inline x87 intrinsics. + +2004-03-10 Anthony Green + + * doc/invoke.texi (ARM Options): Fix -mpfu typo. + +2004-03-10 David Edelsohn + + * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ... + (TARGET_OS_AIX_CPP_BUILTINS): this. Conditionally define + __LONGDOUBLE128. + * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use + TARGET_OS_AIX_CPP_BUILTINS. + * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same. + * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same. + * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same. + * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert + previous change. + +2004-03-10 Kaveh R. Ghazi + + * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases. + +2004-03-10 David Edelsohn + + * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define + __LONGDOUBLE128 on AIX. + +2004-03-10 Andrew Haley + + PR optimization/14381 + * function.c (expand_function_end): Emit a blockage insn before + the epilogue when -fnon-call-exceptions is used. + + * except.c (expand_start_all_catch): Make comment more accurate. + +2004-03-08 Joel Sherrill + + PR target/14480 + * config/rs6000/t-rtems: Add missing file on branch. + +2004-03-10 Ulrich Weigand + + * dbxout.c (dbxout_symbol_location): Do not output references + to optimized-out constant pool symbols. + +2004-03-10 Andreas Schwab + + * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable + twon34_r. + +2004-03-09 James E Wilson + + * alias.c (alias_sets_might_conflict_p): New. + * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1. + * common.opt (Wstrict-aliasing=): New. + * flags.h (warn_strict_aliasing): Change type to int. + * opts.c (warn_strict_aliasing): Change type to int. + (common_handle_option): Handle OPT_Wstrict_aliasing_. + * tree.h (alias_sets_might_conflict_p): Declare it. + * doc/invoke.tex (-Wstrict-aliasing=2): Document it. + +2004-03-10 Roman Zippel + + PR bootstrap/12371 + * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer. + (CALL_USED_REGISTERS): Likewise. + (REG_CLASS_CONTENTS): Likewise. + (REG_ALLOC_ORDER): New. + (REGNO_REG_CLASS): Use regno_reg_class. + * config/m68k/m68k.c: Add regno_reg_class array. + +2004-03-09 Steve Ellcey + + * config/ia64/ia64.md (divsi3): Fix algorithm. + (udivsi3): Ditto. + (setf_exp_xf): Remove '*' from name. + * testsuite/gcc.dg/20040309-1.c: New test. + +2004-03-09 Ian Lance Taylor + + * system.h (SUNOS4_SHARED_LIBRARIES): Poison. + * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code. + * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define. + * config/sparc/sparc.c (sparc_aout_select_section): Remove. + (sparc_aout_select_rtx_section): Don't check + SUNOS4_SHARED_LIBRARIES. + * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define. + +2004-03-10 Hans-Peter Nilsson + + PR other/14474 + * doc/md.texi (Pattern Ordering, Dependent Patterns) + (Jump Patterns, Looping Patterns): Wrap in separate "@ifset + INTERNALS". + +2004-03-09 Zack Weinberg + + * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define. + (LIBGCC_SPEC): Update to match. + +2004-03-09 Zack Weinberg + + * c-decl.c (last_function_parms, last_function_parm_tags) + (last_function_parm_others, current_function_parms) + (current_function_parm_tags, current_function_parm_others): + Delete. + (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS): + New macros. + (grokdeclarator): For function definitions, save the arg-info + block from the declarator in DECL_ARGUMENTS. + (grokparms): Do not write to last_function_parm*. Use ARG_INFO_* + macros to operate on arg-info block. Can assume ARG_INFO_PARMS + contains only PARM_DECLs. Improve diagnostics. + (get_parm_info): Use ARG_INFO_* macros. Improve comments and + diagnostics. Disable some expensive checks if not ENABLE_CHECKING. + (store_parm_decls_newstyle): Take the function to operate on, + and an arg-info block, as arguments; don't get anything from + current_function_* globals. + (store_parm_decls_oldstyle): Likewise. + (store_parm_decls): Pass fndecl and its arg-info block down to + store_parm_decls_newstyle/oldstyle. Send functions with empty + argument lists through store_parm_decls_newstyle to reduce + overhead. + (pushdecl): Comment on the problems with the call to copy_node. + Clear DECL_ARGUMENTS of the old node after copying it, if it + is an arg-info block instead of a chain of decls. + (start_function): Do not manipulate current_function_parm* or + last_function_parm*. + +2004-03-09 Roger Sayle + Andrew Pinski + + * ifcvt.c (noce_try_sign_mask): New function to transform + "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z". + (noce_process_if_block): Call noce_try_sign_mask. + +2004-03-09 Andrew Pinski + + * c-typeck.c (tagged_types_tu_compatible_p): + Fix typo. + +2004-03-09 Roger Sayle + + * simplify-rtx.c (simplify_const_relational_operation): New function + renamed from simplify_relational_operation. + (simplify_relational_operation): Change prototype to accept an + additional mode argument. Call simplify_const_relational_operation. + (simplify_gen_relational): Update simplify_relational_operation call. + (simplify_ternary_operation): Update simplify_relational_operation + subroutine call to use simplify_const_relational_operation instead. + + * rtl.h (simplify_const_relational_operation): Prototype here. + (simplify_relational_operation): Add addtional mode argument. + + * combine.c (combine_simplify_rtx): Update calls to + simplify_relational_operation. + (simplify_set): Likewise. + (gen_binary): Likewise. + * cse.c (fold_rtx): Likewise. + * dojump.c (compare_from_rtx): Likewise. + (do_compare_rtx_and_jump): Likewise. + * integrate.c (subst_constants): Likewise. + * unroll.c (simplify_cmp_and_jump_insns): Likewise. + +2004-03-09 Kazu Hirata + + * config/m32r/m32r.md: Remove all define_peephole's. + +2004-03-09 Alan Modra + + * config/rs6000/rs6000.md: Remove trailing whitespace. + +2004-03-08 Eric Christopher + + * Makefile.in (site.exp): Add libiconv variable definition. + +2004-03-09 Hans-Peter Nilsson + + * configure: Regenerate for config/accross.m4 correction. + +2004-03-08 Joel Sherrill + + PR target/14480 + * config/rs6000/t-rtems: Add missing file on branch. + +2004-03-08 Roger Sayle + + 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. + +2004-03-08 Ulrich Weigand + + * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber. + ("*extendqisi2_short_displ"): Likewise. + +2004-03-08 Kazu Hirata + + * config/pdp11/pdp11.c (comparison_operator_index): Remove. + (comp_operator): Likewise. + * config/pdp11/pdp11-protos.h: Remove corresponding + prototypes. + +2004-03-08 Eric Botcazou + + * expr.c (highest_pow2_factor_for_type): Rename into + highest_pow2_factor_for_target. Use DECL_ALIGN instead of + TYPE_ALIGN when the target is a COMPONENT_REF. + (expand_assignment): Ajust call to highest_pow2_factor_for_type. + +2004-03-08 Alan Modra + + * config/rs6000/rs6000.c: Formatting fix. + (legitimate_offset_address_p): Correct offset range check. + + * config/rs6000/rs6000.c (rs6000_override_options): Don't override + -msoft-float by -mcpu. Consolidate similar code for MASK_MULTIPLE + and MASK_STRING. + +2004-03-07 Aldy Hernandez + + * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power + for little endian. + ("ashrdi3_no_power"): Disable for little endian. + (ashrdi3): Same. + +2004-03-07 Kaveh R. Ghazi + + * fold-const.c (tree_expr_nonnegative_p): Reformat checks for + builtins. + +2004-03-08 Hans-Peter Nilsson + + PR target/14471 + * configure.ac (Target-specific assembler checks) : New + case, checking for -no-mul-bug-abort option. + * configure, config.in: Regenerate. + * 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) : New case. + +2004-03-08 Alan Modra + + PR debug/11983 + * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to + dw_val_class_vec. Replace use throughout file. + (dw_float_const): Delete. + (dw_vec_const): New. + (dw_val_struct_union): Rename val_float to val_vec. Replace use + throughout file. + (add_AT_vec): Rename from add_AT_float. Add elt_size param. + (same_dw_val_p): Adjust vec comparison. Use memcmp. + (size_of_die): Adjust dw_val_class_vec sizing. + (output_die): Output dw_val_class_vec. + (insert_int, extract_int, insert_float): New functions. + (add_const_value_attribute): Use insert_float for CONST_DOUBLE. + Handle CONST_VECTOR. + (add_location_or_const_value_attribute): Handle CONST_VECTOR. + +2004-03-07 Aldy Hernandez + + * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and + AltiVec abi cannot co-exist. + + * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same. + +2004-03-07 Jan Hubicka + + * except.c (emit_to_new_bb_before): Break fallthru edges. + +2004-03-07 Stephane Carrez + + * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12. + ("*lshrsi3"): Also accept an immediate for 68HC12. + ("*ashrsi3_const"): Likewise. + ("*ashrsi3"): Likewise. + ("*ashlsi3_const"): Likewise. + ("*ashlsi3"): Likewise. + ("cmphi_1_hc12"): Compare two hard register by pushing them and + comparing with a pop; don't use a split for that. + ("cmphi split"): Disable compare split for 68HC12. + + * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate + the status operands if they have side effects. + +2004-03-07 Kazu Hirata + + * defaults.h (LEGITIMIZE_ADDRESS): Provide a default + definition. + * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h, + config/h8300/h8300.h, config/ia64/ia64.h, + config/mcore/mcore.h, config/mmix/mmix.h, + config/ns32k/ns32k.h, config/pdp11/pdp11.h, + config/stormy16/stormy16.h, config/v850/v850.h, + config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove. + * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default + definition. + +2004-03-07 Roger Sayle + + * fold-const.c (fold) : Fold x | x as x. + : Fold x ^ x as zero. + : Fold x & x as x. + +2004-03-07 Roger Sayle + + * fold-const.c (fold) : Rewrite optimization to transform + "foo++ == const" into "++foo == const+incr". + +2004-03-07 Richard Sandiford + + * config/mips/mips.c (mips_in_small_data_p): Return false if + TARGET_ABICALLS. + +2004-03-06 Stephane Carrez + + * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push + the stack register. + (expand_prologue): Don't make an interrupt or a trap handler a far + symbol. + (m68hc11_initial_elimination_offset): Likewise. + +2004-03-06 Richard Henderson + + * config/alpha/alpha.c (alpha_in_small_data_p): False for functions. + +2004-03-06 Kazu Hirata + + * config/ns32k/ns32k-protos.h: Add a prototype for + ns32k_notice_update_cc. + * config/ns32k/ns32k.c (ns32k_notice_update_cc): New. + * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call + ns32k_notice_update_cc. + +2004-03-06 Ulrich Weigand + + * config/s390/s390.md ("load_multiple", "*load_multiple_di", + "*load_multiple_si"): Allow only if reload_completed. + ("store_multiple", "*store_multiple_di", "*store_multiple_si"): + Likewise. + +2004-03-06 Kazu Hirata + + * config/vax/vax-protos.h: Add a prototype for + vax_notice_update_cc. + * config/vax/vax.c (vax_notice_update_cc): New. + * config/vax/vax.h (NOTICE_UPDATE_CC): Call + vax_notice_update_cc. + +2004-03-06 David Edelsohn + + * collect2.c (main): Only export initfunc and finifunc if + LD_INIT_SWITCH not defined. + (scan_prog_file): Only export constructors and destructors if + LD_INIT_SWITCH not defined. Only export symbols not found in + shared objects. + +2004-03-06 John David Anglin + + * pa.md (icacheflush): Reorder operands to make match_scratch operand + last. + * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument + from calls to gen_icacheflush. + +2004-03-06 Richard Henderson + + * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New. + (TARGET_LONG_DOUBLE_128): New. + (TARGET_SWITCHES): Add long-double-{128,64}. + (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128. + (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128. + (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New. + (WIDEST_HARDWARE_FP_SIZE): New. + (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__. + * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128 + if TARGET_VAX_FLOAT. + * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove. + (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128. + +2004-03-06 Richard Henderson + + * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix + botched rtx class conversion. + +2004-03-06 Kaveh R. Ghazi + + * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P, + BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros. + + * builtins.c (fold_builtin_logarithm, fold_builtin): Use new + macros. + * fold-const.c (fold_mathfn_compare, fold): Likewise. + +2004-03-06 Eric Botcazou + + PR target/14343 + * config/i386/i386.md (movv2di_internal): Conditionalize on + TARGET_SSE, not TARGET_SSE2. + +2004-03-05 Chris Demetriou + + * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete + duplicated line. + +2004-03-05 Kaveh R. Ghazi + + * builtins.c: Consistently use logN not log* in comments. + +2004-03-05 Andreas Krebbel + + * rtl.h (mem_expr_equal_p): Function prototype added. + * cfgcleanup.c (merge_memattrs): New function. + (flow_find_cross_jump): Call merge_memattrs for matching insns. + * emit-rtl.c (mem_expr_equal_p): New function. + +2004-03-05 Ziemowit Laski + + * objc/objc-act.c (synth_module_prologue): Const-qualify + objc_selector type if using the GNU runtime; fix generated + signatures for objc_msg_lookup and objc_msg_lookup_super + to match what GNU ObjC headers provide; reformat and clean up. + (synth_self_and_ucmd_args): Use previously constructed (and + hence possibly const-qualified) objc_selector type. + +2004-03-05 Kazu Hirata + + * doc/tm.texi (HARD_REGNO_RENAME_OK): Document. + +2004-03-05 Jason Merrill + + * tree.h (TYPE_HASH): Use TYPE_UID. + (TREE_HASH): New macro with old definition of TYPE_HASH. + * tree.c (build_type_attribute_variant): Use iterative_hash_object. + (build_array_type, build_function_type): Likewise. + (build_method_type_directly): Likewise. + (build_offset_type, build_complex_type): Likewise. + (type_hash_list, attribute_hash_list): Likewise. Now static. + * except.c: s/TYPE_HASH/TREE_HASH/. + +2004-03-05 Bob Wilson + + * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args. + (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32). Adjust + __va_ndx by 2 words when referencing an argument on the stack. + (xtensa_va_arg): Handle 16-byte aligned args. Adjust __va_ndx by 2 + words when an arg on the stack is first seen. + +2004-03-05 Paul Brook + + * arm.h (ARM_FLAG_VFP): Remove. + (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber. + * netbsd-elf.h (ARM_FLAG_VFP): Remove. + +2004-03-05 Paul Brook + + * function.c (assign_parms): Include pretend alignment offset. + +2004-03-05 Richard Kenner + + * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size + FUNCTION_BOUNDARY, not POINTER_SIZE * 2. + +2004-03-05 Ian Lance Taylor + + * configure.ac: When passing --enable-languages to subdir + configure when host != build, make sure we don't pass an empty + value. + * configure: Regenerate. + +2004-03-05 Nathan Sidwell + + PR 13577 + * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o + options. + +2004-03-05 Paolo Bonzini + + * simplify-rtx.c (simplify_relational_operation): If + flag_wrapv is set, do not move terms between the two + side of a relational operator. + +2004-03-05 Paolo Bonzini + + * rtlanal.c: Include target.h and output.h + (rtx_cost, address_cost, default_address_cost): Move from... + * cse.c (rtx_cost, address_cost, default_address_cost): + ... this file. + * rtl.h (rtx_cost, address_cost): Move under rtlanal.c. + * Makefile.in: Adjust dependencies. + +2004-03-05 Paolo Bonzini + + * cse.c (cse_end_of_basic_block): Make static. + * local-alloc.c (function_invariant_p): Move to + reload1.c. + * loop.c (libcall_other_reg, record_excess_regs): + Make static. + * reload1.c (function_invariant_p): Moved here + from local-alloc.c, made static. + * rtl.h (cse_end_of_basic_block, function_invariant_p, + libcall_other_reg, record_excess_regs): Remove + declarations. + +2004-03-05 Kazu Hirata + + * config/m32r/m32r.c (signed_comparison_operator): Add a + missing parenthesis. + +2004-03-04 Ian Lance Taylor + + * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are + going to call mmap again. Read the file into the right place. + Give a fatal error if we have to relocate. + +2004-03-04 Bob Wilson + + * config/xtensa/xtensa.c (xtensa_return_in_msb): New function. + (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb. + +2004-03-05 Hans-Peter Nilsson + + PR other/14354 + * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would + round the same. When rounding, clear bits that would cause a + second rounding in pack_d. + (_fpmul_parts): Ditto. Remove #if 0:d code. + +2004-03-04 Ziemowit Laski + + PR c++/14425, c++/14426 + * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16, + vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32): + Change C++ definitions to accept a 'const int' argument; + the prototypes already do. + * config/rs6000/rs6000.c (rs6000_common_init_builtins): + Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char, + v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char, + v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char, + v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char, + v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to + end in ..._int; change them to accept an int instead of a char + as the last parameter. + +2004-03-04 Phil Edwards + + * genmultilib: Change '=' to '-' when translating option names + to directory names. + +2004-03-04 Richard Kenner + + * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of + stack slot for temp used for result of BLKmode but in integral mode. + +2004-03-04 Jan Hubicka + + * reload.c (find_reloads): Reorganize if seqeunce to switch. + + * cfgrtl.c (rtl_redirect_edge_and_branch): Set the source BB as dirty. + (cfglayout_redirect_edge_and_branch): Set the source BB as dirty. + +2004-03-04 Steve Ellcey + + * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm. + * testsuite/gcc.dg/20040303-1.c: New test. + +2004-03-04 Steven Bosscher + + * ppro.md: Rewrite as a DFA pipeline description. + * i386.md: Remove all uses of the ppro_uops attribute. + * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet, + ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init, + ix86_sched_reorder, ix86_variable_issue, + struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE, + TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove. + (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO. + (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO. + * athlon.md (athlon_ssecmp_load): Fix comment + +2004-03-04 Stuart Hastings + + * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC. + +2004-03-04 Stuart Hastings + + * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before + 686, tell Darwin assembler to allow prefetch insns, non-empty def + of SUBTARGET_OPTION_TRANSLATE_TABLE. + +2004-03-04 DJ Delorie + + PR optimization/14282 + * sched-deps.c (sched_analyze_insn): Allow a stack adjustment + between a call and the assignment of its return value. + +2004-03-04 Kazu Hirata + + * config/h8300/h8300.c: Put a comment for every function. + +2004-03-04 Kazu Hirata + + * config/h8300/h8300.md: Add comments about peephole2's. + +2004-03-04 Steven Bosscher + + * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value. + +2004-03-04 Jan Hubicka + + * cfgcleanup.c (thread_jump): Update call of cselib_init. + * cselib.c (cselib_record_memory): New static variable. + (cselib_lookup_mem, cselib_record_set, cselib_record_sets): + Give up on memories when asked for. + (cselib_init): Accept new argument. + * cselib.h (cselib_init): Update prototype. + * gcse.c (local_cprop_pass): Update call of cselib_init. + * loop.c (load_mems): Update call of cselib_init. + * postreload.c (reload_cse_regs_1): Update call of cselib_init. + * sched-deps.c (sched_analyze): Update call of cselib_init. + +2004-03-04 David Edelsohn + GP + + * config/rs6000/rs6000.c (output_function_profiler): Append @plt + when compiling PIC. + +2004-03-04 Josef Zlomek + + PR/14362 + * var-tracking.c (track_expr_p): Do not track variables which + should be ignored for debugging purposes. + +2004-03-04 Alan Modra + + * real.c (encode_ibm_extended): Don't bother rounding low double. + * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX + when fmt->pnan < fmt->p. + +2004-03-04 Eric Christopher + + * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check + only range of valid arg registers and fixed_regs. + +2004-03-04 Alan Modra + + PR target/14406 + * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn. + (abstf2, abstf2_internal): New define_expand. + +2004-03-04 Eric Botcazou + + PR optimization/14235 + * 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. + +2004-03-03 Zack Weinberg + + PR 13728 + * c-decl.c (diagnose_mismatched_decls): Issue an error for two + parameters with the same name, unless one is a forward decl. + Do not issue a redundant-redeclaration warning for forward + decls of parameters. + +2004-03-04 David Edelsohn + + * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up + configuration. + +2004-03-03 Ian Lance Taylor + + * ggc-zone.c (ggc_pch_write_object): Don't align file pointer. + +2004-03-04 Alan Modra + + * target-def.h (TARGET_OPTF): Delete. + * c-opts.c (TARGET_OPTF): Define. + +2004-03-04 Jan Hubicka + + * cselib.c (cselib_finish): Fix another miss-application of my previous + patch. + +2004-03-03 Mike Stump + + Add framework support for darwin. + + * c-incpath.c: Include target.h and machmode.h. + (add_path): Use a consistent style for cpp_dir. Initialize + p->construct to 0. + (add_cpp_dir_path): New. + (register_include_chains): Add use of extra_includes callback. + (hook_void_int): Add. + (target_c_incpath): Add. + * c-incpath.h (add_cpp_dir_path): New. + (target_c_incpath_s): Add. + (target_c_incpath): Add. + (C_INCPATH_INIT): Add. + * c-opts.c (c_common_missing_argument, + c_common_handle_option): Add -F argument processing. + * c.opt: Add -F argument processing. + * gcc.c (trad_capable_cpp): Add -F argument processing. + * cppfiles.c (find_file_in_dir): Update to use construct + callback. + (search_path_exhausted, cpp_get_path, cpp_get_buffer, + cpp_get_prev): New. + (_cpp_find_file): Use search_path_exhausted. + (make_cpp_dir): Initialize construct to 0. + * cpplib.h (missing_header_cb + cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New. + (cpp_callbacks): Add missing_header + (cpp_dir): Add construct. + * target-def.h: (TARGET_OPTF): New. + * hooks.c (hook_void_int, hook_void_charptr): Add. + * hooks.h (hook_void_int, hook_void_charptr): Add. + * Makefile.in (c-incpath.o) : Add $(TARGET_H) and + $(MACHMODE_H) dependencies. + * doc/invoke.texi (Darwin Options): Document -F. + * doc/tm.texi (TARGET_EXTRA_INCLUDES): Add. + (TARGET_OPTF): Add. + * fix-header.c (target_c_incpath): Add. + + * config/darwin-c.c: Add c-incpath.h include. + (using_frameworks, find_subframework_file, + find_subframework_header, add_system_framework_path, + frameworks_in_use, num_frameworks, max_frameworks, + add_framework, find_framework, struct framework_header, + framework_header_dirs, framework_construct_pathname, + find_subframework_file, add_system_framework_path, + add_framework_path, framework_defaults, + darwin_register_frameworks, find_subframework_header): Add. + * config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New. + (TARGET_OPTION_TRANSLATE_TABLE): Add -framework support. + (CPP_SPEC): Add __APPLE_CC__ support. + * t-darwin (darwin-c.o): Add c-incpath.h dependency. + +2004-03-04 Jan Hubicka + + * cselib.c (cselib_finish): Fix miss-application of my previous + patch. + +2004-03-03 Kazu Hirata + + * hooks.c (hook_tree_tree_identity): New. + * hooks.h: Add a prototype for hook_tree_tree_identity. + * stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers + instead of MD_ASM_CLOBBERS. + * system.h (MD_ASM_CLOBBERS): Poison. + * target-def.h (TARGET_MD_ASM_CLOBBERS): New. + (TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS. + * target.h (gcc_target): Add md_asm_clobbers. + * config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New. + (ix86_md_asm_clobbers): New. + * config/i386/i386.h (MD_ASM_CLOBBERS): Remove. + * doc/tm.texi (MD_ASM_CLOBBERS): Change to + TARGET_MD_ASM_CLOBBERS. + +2004-03-03 Stuart Hastings + + * gcc/config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a. + +2004-03-03 Eric Botcazou + + * config/sparc/sparc.c (noov_compare64_op): Fix typo. + + * config/sparc/sparc.h (ASM_FLOAT): Delete. + (ASM_DOUBLE): Likewise. + (ASM_LONGDOUBLE): Likewise. + * config/sparc/pbd.h (ASM_INT_OP): Delete. + +2004-03-03 Richard Henderson + + PR opt/13862 + * cselib.c (cselib_record_sets): Don't record multiple sets in + asm insns. + +2004-03-03 Mostafa Hagog + + * common.opt: Add description of the new -fgcse-after-reload flag. + + * flags.h (flag_gcse_after_reload): Declaration of global variable. + + * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p, + reg_used_between_after_reload_p, rtx get_avail_load_store_reg, + is_jump_table_basic_block, bb_has_well_behaved_predecessors, + get_bb_avail_insn, hash_scan_set_after_reload, + compute_hash_table_after_reload, eliminate_partially_redundant_loads, + gcse_after_reload, get_bb_avail_insn): New functions to implement + gcse-after-reload. + (gcse_after_reload_main): New function, the main entry point to + gcse-after-reload. + + * rtl.h (gcse_after_reload_main): Declaration of the new function. + + * opts.c (common_handle_option): Handle the -fgcse-after-reload flag. + + * toplev.c (flag_gcse_after_reload): Initialization. + + * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main. + + * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION, + PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning + the gcse after reload optimization. + + * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION, + GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning + parameters. + + * doc/invoke.texi: Documentation for the new flag gcse-after-reload. + +2004-03-03 Nicolas Pitre + + * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of + small negative values. + +2004-03-03 Jan Hubicka + + * cselib.c (hash_table): Remove GTY marker. + (reg_values): Turn into array. + (used_regs): Likewise. + (n_used_regs): New static variable. + (reg_values_old): Kill. + (clear_table): Update uses of arrays. + (cselib_lookup): Likewise. + (cselib_record_set): Likewise. + (cselib_init): Likewise. + (cselib_finish): Likewise. + (cselib_udpate_varray_sizes): Kill. + * cselib.h (cselib_update_varray_sizes): Kill. + +2004-03-03 Paul Brook + + * flow.c (ior_reg_cond, and_reg_cond): Remove stray ")". + +2004-03-03 Jan Hubicka + + * ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat): + Rename from ...; make statistics transparent. + (ggc_alloc_cleared, ggc_realloc_stat): ... these. + (loc_descriptor): New structure. + (hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics, + add_statistics): + New static function. + (ggc_record_overhead, dump_statistics): New global function. + * ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat, + ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename + from ...; accept locations + (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared, + ggc_realloc, ggc_alloc_typed): ... this one. + from ...; accept locations + * ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat, + ggc_alloc_stat): Rename from ... ; pass locations + * ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc): + ... this one. + (ggc_alloc_stat): Record overehead. + * ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared, + ggc_realloc, ggc_alloc_typed): Turn to macros + (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat, + ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare. + (dump_ggc_loc_satistics, ggc_record_overehead): Declare. + * langhooks.h (lhd_make_node): Declare. + (LANG_HOOKS_MAKE_TYPE): Default to new function, + * langhooks.c (lhd_make_node): New. + * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass + locations. + (rtx_alloc, swallow_copy_rtx): ... this one. + * rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros. + * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare. + * toplpev.c (finalize): Dump stats. + * tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat, + build_tree_list_stat, tree_cons_stat, build?_stat, build_decl_stat): + Rename from ... ; pass locators. + (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons, + build?, build_decl): Declare. + * tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat, + build_tree_list_stat, tree_cons_stat, build?_stat, build_decl_stat): + Declare. + (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons, + build?, build_decl): New macros. + * Makefile.in (RTL_H, TREE_H): Add statistics.h dependency. + * statistics.h: New file. + +2004-03-03 Maciej W. Rozycki + Richard Sandiford + + * config/mips/mips.h (MASK_FIX_SB1): Bump. + (MASK_FIX_R4400, TARGET_FIX_R4400): New macros. + (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400. + * config/mips/mips.c (mips_output_division): Fill the branch delay + slot with a nop if TARGET_FIX_R4000. Extend R4000 workarounds to + TARGET_FIX_R4400. + (mips_output_division): Adjust accordingly. + (override_options): Make -march=r4400 imply -mfix-r4400 by default. + * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds. + +2004-03-03 Paolo Bonzini + + * alias.c (rtx_equal_for_memref_p): Use predicates + to test rtx classes and new rtx class codes, possibly + splitting conditionals that tested against '<' and 'o'. + * caller-save.c (save_call_clobbered_regs): Likewise. + * combine.c (contains_muldiv, find_split_point, subst, + combine_simplify_rtx, simplify_if_then_else, + simplify_set, simplify_logical, expand_compound_operation, + make_compound_operation, if_then_else_cond, known_cond, + apply_distributive_law, cached_nonzero_bits, + cached_num_sign_bit_copies, simplify_shift_const, + gen_binary, simplify_comparison, update_table_tick, + record_value_for_reg, get_lsat_value_validate): Likewise. + * cse.c (mention_regs, find_best_addr, find_comparison_args, + fold_rtx, cse_insn, invalidate_memory, cse_basic_block): + Likewise. + * emit-rtl.c (copy_insn_1): Likewise. + * expr.c (force_operand): Likewise. + * final.c (final_scan_insn, get_mem_expr_from_op): Likewise. + * flow.c (notice_stack_pointer_modification_1, + invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond, + and_reg_cond, elim_reg_cond): Likewise. + * function.c (update_epilogue_consts): Likewise. + * genattrtab.c (attr_rtx_1): Likewise. + * genopinit.c (gen_insn): Likewise. + * integrate.c (subst_constants): Likewise. + * jump.c (reversed_comparison_code_parts, + reversed_comparison_code, delete_related_insns, + rtx_renumbered_equal_p): Likewise. + * local-alloc.c (block_alloc): Likewise. + * loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv, + canonicalize_condition): Likewise. + * loop-iv.c (simplify_using_conditions, iv_number_of_iterations): + Likewise. + * optabs.c (add_equal_node, expand_binop): Likewise. + * predict.c (estimate_probability): Likewise. + * ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise. + * recog.c (validate_replace_rtx_1, comparison_operator, + offsettable_address_p, constrain_operands): Likewise. + * reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat): + Likewise. + * regclass.c (scan_one_insn): Likewise. + * regmove.c (stable_and_no_regs_but_for_p): Likewise. + * regrename.c (kill_autoinc_value): Likewise. + * reload.c (find_reusable_reload, find_reloads, + reg_overlap_mentioned_for_reload_p): Likewise. + * reload1.c (gen_reload, delete_address_reloads_1): Likewise. + * rtl.c (copy_rtx): Likewise. + * rtl.h (CONSTANT_P, INSN_P): Likewise. + * rtlanal.c (commutative_operand_precedence): Likewise. + * sched-deps.c (conditions_mutex_p): Likewise. + * sched-rgn.c (is_cfg_nonregular): Likewise. + * simplify-rtx.c (simplify_gen_binary, + simplify_gen_relational, simplify_replace_rtx, + simplify_unary_operation, simplify_binary_operation, + simplify_ternary_operation, simplify_rtx): Likewise. + * unroll.c (reg_dead_after_loop): Likewise. + * config/alpha/alpha.c (alpha_swapped_comparison_operator, + print_operand): Likewise. + * config/arc/arc.c (proper_comparison_operator): Likewise. + * config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode): + Likewise. + * config/avr/avr.c (_reg_unused_after): Likewise. + * config/frv/frv.c (frv_ifcvt_modify_tests, + frv_ifcvt_modify_insn, frv_pack_insn): Likewise. + * config/i386/i386.c (ix86_comparison_operator, + ix86_carry_flag_operator, fcmov_comparison_operator, + arith_or_logical_operator, print_operand, + ix86_expand_binary_operator, ix86_binary_operator_ok): + Likewise. + * config/i386/i386.md: Likewise. + * config/ia64/ia64.c (not_postinc_memory_operand, + ia64_print_operand, update_set_flags, errata_emit_nops): + Likewise. + * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS, + CONSTRAINT_OK_FOR_S): Likewise. + * config/ip2k/ip2k.c (mdr_resequence_xy_yx, + mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref, + ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p, + ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator): + Likewise. + * config/iq2000/iq2000.c (cmp_op, symbolic_expression_p, + eqne_comparison_operator, signed_comparison_operator): + Likewise. + * config/mips/mips.c (cmp_op, symbolic_expression_p): + Likewise. + * config/mmix/mmix (mmix_foldable_comparison_operator, + mmix_comparison_operator): Likewise. + * config/pa/pa.c (hppa_legitimize_address): Likewise. + * config/rs6000/rs6000.c (stmw_operation, + branch_comparison_operator, trap_comparison_operator, + ccr_bit): Likewise. + * config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise. + * config/s390/s390.c (s390_alc_comparison, + s390_slb_comparison):L Likewise. + * config/sh/sh.c (gen_block_redirect, reg_unused_after): + Likewise. + * config/sparc/sparc.c (eq_or_neq, normal_comp_operator, + noov_compare_op, noov_compare64_op, v9_regcmp_op, + emit_hard_tfmode_operation, reg_unused_after) + * doc/md.texi, doc/rtl.texi: Likewise. + + * ra-debug.c: Add 2004 to list of copyright years. + * unroll.c: Likewise. + + * combine.c (simplify_logical): Remove dummy test, + (apply_distributive_law): Fix typo in comment. + GET_CODE (x) == AND so x is a commutative binary op. + * jump.c (delete_related_insns): simplify loop + condition, move testing of RTX codes inside the loop. + (rtx_renumbered_equal_p): do not use RTX_CODE. + * rtl.c (rtx_class): Declare as enum rtx_class. + * rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED): + Move to RTX_COMM_COMPARE class. + (HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE): + Move to RTX_CONST_OBJ class. + * rtl.h (enum rtx_class): New declaration, + (RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK, + RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT, + RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK, + RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT, + RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P, + ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P, + SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P, + OBJECT_P): New macros. + * config/sparc/sparc.c (noov_compare_op): Remove register + from parameter. + +2004-03-03 Kazu Hirata + + * target.h: Remove texi jargons in comments. + +2004-03-02 Kazu Hirata + + * config/h8300/lib1funcs.asm (___fixunssfsi): Change the + threshold to 0x4f. + + Revert: + 2004-02-27 Kazu Hirata + * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300 + as well. + * config/h8300/lib1funcs.asm (___fixunssfsi): Remove. + * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm. + +2004-03-02 Kazu Hirata + + * doc/md.texi (cbranchmode4): New. + +2004-03-02 Eric Christopher + + * config/mips/mips16.S: Change fixsfsi and fixdfsi to + fix_trunc. + * config/mips/mips.c (mips_init_libfuncs): Change accordingly. + * config/mips/t-elf (LIB1ASMFUNCS): Ditto. + * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto. + * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto. + +2004-03-02 Richard Henderson + + PR middle-end/11767 + * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P. + * optabs.c (prepare_cmp_insn): Force trapping memories to registers + before the compare, if flag_non_call_exceptions. + +2004-03-02 Richard Henderson + + PR middle-end/14327 + * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before + emitting the label, not after. + +2004-03-02 Stephane Carrez + + * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable. + (m68hc11_mov_addr_mode): Likewise. + (m68hc11_override_options): Initialize them based on target. + (register_indirect_p): Allow a MEM for indirect addressing modes and + use flags to control what is allowed. + (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for + supported addressing modes. + (m68hc11_register_indirect_p): Use m68hc11_addr_mode. + (go_if_legitimate_address_internal): Likewise. + (m68hc11_indirect_p): Likewise and check the mode. + (print_operand): Allow a (MEM (MEM)) and generate indirect addressing. + +2004-03-02 Kazu Hirata + + * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove. + (expand_builtin_setjmp_setup): Use + targetm.builtin_setjmp_frame_value instead of + BUILTIN_SETJMP_FRAME_VALUE. + * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison. + * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New. + (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE. + * target.h (gcc_target): Add builtin_setjmp_frame_value. + * targhooks.c (default_builtin_setjmp_frame_value): New. + * targhooks.h: Add a prototype for + default_builtin_setjmp_frame_value. + * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to + TARGET_BUILTIN_SETJMP_FRAME_VALUE. + +2004-03-02 Stephane Carrez + + * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize + sequences of moves. + (add peepholes): New peepholes to optimize sequences adding small + constants. + (bset peepholes): New peepholes to transform an OR in a bset form + (bclr peepholes): Likewise for bclr form. + (cmp peepholes): New peepholes to avoid register copies when comparing. + +2004-03-02 Stephane Carrez + + * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split + to separate push from moves. + ("*pushdf_internal"): Likewise. + ("*pushsf_internal"): Likewise. + ("*pushsi_internal"): Likewise. + ("movdi_internal"): Use define_insn_and_split; non push operand. + ("movdf_internal"): Likewise. + ("movsf_internal"): Likewise. + ("movsi_internal"): Likewise. + ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints + ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise. + ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise. + +2004-03-02 Stephane Carrez + + * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split. + ("cmphi_z_used", "cmpqi_z_used"): Likewise. + ("movstrictsi", "movstricthi", "movstrictqi"): Likewise. + ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise. + ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise. + ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise. + ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise. + ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise. + ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise. + ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise. + ("*lshrdi3_const32", "*lshrdi_const1"): Likewise. + +2004-03-02 Stephane Carrez + + * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define. + (SOFT_XY_REGNUM): Define. + (cmp split): Use the above instead of hard coded numbers. + (8-bit op split): No need to check the mode; allow Q_REG. + (ashift split): Adjust the first operand if it uses the SP and we + are pushing the shifted value. + (plus shift split): Fix when a source is in register D+X. + ("doloop_end"): Pass dummy arguments to gen_rtx_NE. + +2004-03-02 Stephane Carrez + + * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when + comparing with Z register. + +2004-03-02 Zdenek Dvorak + + * cfgloop.h (struct loop_desc): Removed. + (struct loop): Fields simple, desc and has_desc removed. + (simple_loop_p, count_loop_iterations): Declaration removed. + * cfgloopanal.c (struct unmark_altered_insn_data): Removed. + (unmark_altered, blocks_invariant_registers, unmark_altered_insn + blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper, + invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations, + simple_loop_exit_p, variable_initial_value, variable_initial_values, + simple_condition_p, simple_increment, count_strange_loop_iterations, + inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations): + Removed. + * loop-iv.c (check_simple_exit, find_simple_exit): Update comments. + +2004-03-02 Kazu Hirata + + * genattrtab.c: Don't handle MATCH_INSN. + * genrecog.c: Likewise. + * gensupport.c: Likewise. + * rtl.def (match_insn): Remove. + * doc/md.texi (match_insn, match_insn2): Remove. + +2004-03-02 Mark Mitchell + + * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this + macro results in memory allocation. + +2004-03-02 David O'Brien + + * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add. + * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define + %(fbsd_dynamic_linker), + (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with + config/i386/freebsd.h + * config/arm/freebsd.h: Ditto. + * config/i386/freebsd.h: Ditto. + * config/i386/freebsd64.h: Ditto. + * config/ia64/freebsd.h: Ditto. + * config/rs6000/sysv4.h: Ditto. + * config/sparc/freebsd.h: Ditto. + +2004-03-02 Loren James Rittle + + * gcc/doc/install.texi (*-*-freebsd*): Update target information. + +2004-03-02 Kazu Hirata + + * rtl.def (define_combine): Remove. + +2004-03-02 Kazu Hirata + + * config/h8300/h8300.md: Tweak formatting. + +2004-03-02 Kazu Hirata + + * config/h8300/h8300.md (*cmphi_h8300): Rename to + *cmphi_h8300_znvc. + (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc. + +2004-03-01 Mark Mitchell + + PR bootstrap/14356 + * gcc.c (process_command): Remove const-qualification from argv. + (main): Likewise. + +2004-03-02 Kazu Hirata + + * config/h8300/h8300.md (pushqi1_h8300hs): Rename to + pushqi1_h8300hs_advanced. Adjust its caller. + (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced. + Adjust its caller. + +2004-03-02 Nicolas Roche + + * Makefile.in (install-libgcc, install-multilib): Pass + mkinstalldirs var to libgcc.mk. + +2004-03-01 Kazu Hirata + + * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison. + * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove. + +2004-03-01 Kazu Hirata + + * config/h8300/h8300.c (gtle_operator): Accept GT and LE. + * config/h8300/h8300.md: Split several peephole2's, each into + two. + +2004-03-02 Zdenek Dvorak + + * dominance.c (recount_dominator): Handle postdominators. + +2004-03-01 Richard Sandiford + + * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h. + (NUM_SYMBOL_TYPES): Likewise. + (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types. + (mips_unspec_address): Declare. + (mips_gotoff_page, mips_gotoff_global): Delete. + * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand. + * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete. + (mips_symbolic_constant_p, mips_symbolic_address_p) + (mips_symbol_insns): Handle new symbol types. + (general_symbolic_operand): New predicate. + (mips_unspec_address): Make extern. + (mips_gotoff_page, mips_gotoff_global): Delete. + (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs. + Handle new symbol types. + * config/mips/mips.md (*lea_high64, *lea64): New patterns. + (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call + mips_unspec_address directly. + * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from + the documentation of -mexplicit-relocs. + +2004-03-01 Jeff Law + + * fold-const.c (fold): An equality comparison of a non-weak object + against zero has a known result. Similarly an equality comparison + of the address of two non-weak, unaliased symbols has a known result. + + * ggc-page.c (struct page_entry): New field PREV. + (ggc_alloc): Update PREV field appropriately. + (sweep_pages): Likewise. + (ggc_free): Likewise. Use PREV field rather than loop to + improve ggc_free performance. + +2004-03-01 Richard Sandiford + + * config/mips/mips.c (mips_output_division): Use the division + instruction to fill the delay slot of a zero check. + (mips_idiv_insns): Adjust accordingly. + +2004-03-01 Nathanael Nerode + + * config.gcc: Create a default tmake_file for linux, and use + it in all but two linux clauses. Comment those two. + +2004-03-01 Paolo Bonzini + + * combine.c (try_combine): Do not refer to is_replaced. + (gen_lowpart_for_combine): Perverse subregs now have a + more politically correct name. + * cse.c (cse_insn): Likewise. + * jump.c: Fix bogus reference to delete_insn. + +2004-02-29 Mark Mitchell + + PR debug/14328 + * dwarf2out.c (gen_enumeration_type_die): Output all enumeration + constants as signed values. + + 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. + +2004-02-29 Nathanael Nerode + + * configure.ac: Rearrange some threading code for clarity; + add section comment. + * configure: Regenerate. + +2004-02-29 Kazu Hirata + + * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment + typos. + * doc/cppopts.texi: Fix a typo. + +2004-02-29 Kazu Hirata + + * config/i386/i386.md: Fix formatting. + +2004-02-29 Nathanael Nerode + + * configure.ac: Add some comments delineating sections of code. + + * doc/install.texi: Note that libada uses autoconf 2.57 also. + + * doc/install.texi: Fix idiot typo in previous commit. + + * doc/install.texi: Update for conversion of intl to autoconf 2.57. + +2004-02-29 Kazu Hirata + + * config/h8300/h8300.md: Add comments about peephole2's. + +2004-02-29 Kazu Hirata + + * config/h8300/h8300.md: Tweak operand numbers of some + peephole2's. + +2004-02-29 Kazu Hirata + + * config/h8300/h8300.md: Tweak comments about peephole2's. + +2004-02-29 Waldek Hebisch + + PR middle-end/14203 + * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P + instead of testing whether DECL_RTL is not NULL. + +2004-02-28 Kazu Hirata + + * config/sh/sh.c: Fix formatting. + +2004-02-28 Kazu Hirata + + * config/sh/sh.c: Convert to ISO-C. + +2004-02-28 Andrew Pinski + + * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in + my previous patch. + + * config/darwin.h (machopic_finish): Output stub even if the + symbol is already defined. + +2004-02-28 John David Anglin + + * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg. + +2004-02-28 Kazu Hirata + + * genattr.c (main): Don't define + TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE. + * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison. + (DFA_PIPELINE_INTERFACE): Likewise. + * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove. + (DFA_PIPELINE_INTERFACE): Likewise. + +2004-02-28 Richard Sandiford + + * config/mips/mips.md (tstsi, tstdi): Delete. + +2004-02-28 Maciej W. Rozycki + + * config/mips/mips.c (override_options): Remove an obsolete + duplicate definition of the "e" constraint. + * config/mips/mips.h: Update a comment accordingly. + +2004-02-28 Maciej W. Rozycki + + * config/mips/mips.md: Complete the unfinished R4000 + multiply/shift errata workaround. Improve documentation. + (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction + has a hilo hazard. + (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000. + (muldi3, muldi3_internal): Likewise. + (muldi3_internal2): Remove, replacing with... + (muldi3_mult3, muldi3_r4000): ...these new patterns. + (mulsidi3): Take the errata into account. + (mulsidi3_32bit): Remove, replacing with... + (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns. + (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000. + (umulsidi3): Take the errata into account. + (umulsidi3_32bit): Remove, replacing with.. + (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns. + (umulsi3_highpart, umulsi3_highpart_internal): Disable if + TARGET_FIX_R4000. + (smulsi3_highpart, smulsi3_highpart_internal): Likewise. + (smuldi3_highpart, umuldi3_highpart): Likewise. + * doc/invoke.texi: Document the errata workaround. + +2004-02-28 Maciej W. Rozycki + + * config/mips/mips-protos.h (mips_idiv_insns): Declare. + * config/mips/mips.h (MASK_FIX_SB1): Bump. + (MASK_FIX_R4000, TARGET_FIX_R4000): New macros. + (TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000. + * config/mips/mips.c (mips_idiv_insns): New function. + (override_options): Make -march=r4000 imply -mfix-r4000 by default. + (mips_output_division): Add a workaround for the R4000 divide/shift + errata. + * config/mips/mips.md (length): Use mips_idiv_insns() to calculate + the length of an "idiv" instruction. + * doc/invoke.texi: Document the new switches. + +2004-02-28 Kazu Hirata + + * doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to + TARGET_SCHED_IS_COSTLY_DEPENDENCE. + +2004-02-28 Zdenek Dvorak + + PR optimization/14229 + * cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump. + +2004-02-28 Eric Botcazou + + * fold-const.c (fold): Strip NOPs that change the signedness + for RSHIFT too. Expand comment. + +2004-02-27 Ian Lance Taylor + + PR optimization/7871 + * flow.c (mark_set_1): Don't add LOG_LINKS for global registers + from or to call insns. + +2004-02-27 Eric Botcazou + + PR optimization/7871 + * flow.c (propagate_one_insn): Interpret calls as setting global + registers, not merely clobbering them. + +2004-02-27 Dale Johannesen + + * config/darwin.c (machopic_output_possible_stub_label): Remove. + config/darwin-protos.h: Ditto. + config/darwin.h: Remove call to it. + * combine.c (distribute_notes): Do not place a REG_DEAD note + when value is both set and used. + +2004-02-27 Kazu Hirata + + * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300 + as well. + * config/h8300/lib1funcs.asm (___fixunssfsi): Remove. + * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm. + +2004-02-27 Andrew Pinski + + * c-typeck.c (tagged_types_tu_compatible_p) : + Speedup common case of the type values being in the same order. + +2004-02-27 Steve Ellcey + + * config/ia64/ia64.h (no-inline-float-divide): New option. + * config/ia64/ia64.h (no-inline-int-divide): New option. + * config/ia64/ia64.h (no-inline-sqrt): New option. + (TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define. + * config/ia64/hpux.h (TARGET_DEFAULT): Ditto. + * config/ia64/ia64.c (ia64_override_options): Modify error + checking for inlined division/sqrt. + +2004-02-27 Kazu Hirata + + * bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c, + ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c, + value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h, + config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update + copyright. + +2004-02-27 Paul Brook + + * function.c (assign_parms): Don't count pretend args for alignment. + +2004-02-27 Richard Henderson + + * passes.c: New file. + * Makefile.in (OBJS-common): Add it. + * diagnostic.c (rtl_dump_and_exit): Move decl ... + * flags.h (rtl_dump_and_exit): ... here. + * output.h (size_directive_output, last_assemble_variable_decl): + Move from toplev.c. + * rtl.h (reg_alloc): Move from toplev.c. + * toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT, + struct dump_file_info, enum dump_file_index, dump_file_tbl, + open_dump_file, close_dump_file, rest_of_decl_compilation, + rest_of_type_compilation, rest_of_handle_final, + rest_of_handle_delay_slots, rest_of_handle_stack_regs, + rest_of_handle_variable_tracking, rest_of_handle_machine_reorg, + rest_of_handle_new_regalloc, rest_of_handle_old_regalloc, + rest_of_handle_regrename, rest_of_handle_reorder_blocks, + rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove, + rest_of_handle_tracer, rest_of_handle_if_conversion, + rest_of_handle_if_after_combine, rest_of_handle_web, + rest_of_handle_branch_prob, + rest_of_handle_value_profile_transformations, rest_of_handle_cfg, + rest_of_handle_addressof, rest_of_handle_sibling_calls, + rest_of_handle_jump_bypass, rest_of_handle_inlining, + rest_of_handle_null_pointer, rest_of_handle_combine, + rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2, + rest_of_handle_gcse, rest_of_handle_loop_optimize, + rest_of_handle_loop2, rest_of_compilation): Move to passes.c. + (decode_d_option): Use enable_rtl_dump_file. + (compile_file, finalize, do_compile): Move profile+combine+graph + cleanup to finish_optimization_passes. + * toplev.h (init_optimization_passes, finish_optimization_passes, + enable_rtl_dump_file): Declare. + +2004-02-27 Eric Botcazou + Roger Sayle + + * fold-const.c (fold): Revert 2004-02-25 change. Use the original + operands to build a tree with swapped operands. + * expr.c (expand_expr_real) : Consistently use the + 'unsignedp' predicate to specify the signedness. + +2004-02-27 Kazu Hirata + + * c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c, + expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c, + params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix + comment typos and formatting. Follow spelling conventions. + +2004-02-26 Aldy Hernandez + + * config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and + fix_truncsfsi2. + + * config/rs6000/spe.md: Delete spe_efsctuiz. + Add spe_fixuns_truncsfsi2. + Add spe_fix_truncsfsi2. + +2004-02-26 Eric Christopher + + * c-lex.c (c_lex_string_translate): New variable. + (lex_string): Use to determine string translation. + * c-pragma.h: Prototype. + * c-parse.in (start_string_translation): New. Set above. + (stop_string_translation): Ditto. + (attribute, attribute_list, asm_def, asm_stmt, + asm_operand): Use above functions. + * cp/parser.c (cp_parser_declaration): Translate strings + unless token is RID_EXTERN. Set c_lex_string_translate + for recursive use. + (cp_parser_asm_definition): Only translate argument strings + to asms. + (cp_parser_asm_operand_list): Ditto. + (cp_parser_attribute_list): Do not translate attribute strings. + +2004-02-26 Kazu Hirata + + * stmt.c (expand_start_case_dummy): Remove. + * tree.h: Remove the corresponding prototype. + +2004-02-26 Kazu Hirata + + * builtins.c (apply_args_register_offset): Remove. + * tree.h: Remove the corresponding prototype. + +2004-02-26 Kazu Hirata + + * stor-layout.c (is_pending_size): Remove. + * tree.h: Remove the corresponding prototype. + +2004-02-26 Kazu Hirata + + * recog.c (validate_replace_src): Remove. + * recog.h: Remove the corresponding prototype. + +2004-02-26 Kazu Hirata + + * calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or + MAYBE_REG_PARM_STACK_SPACE. + * function.c: Likewise. + * system.h (FINAL_REG_PARM_STACK_SPACE): Poison. + (MAYBE_REG_PARM_STACK_SPACE): Likewise. + * doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove. + (MAYBE_REG_PARM_STACK_SPACE): Likewise. + +2004-02-26 Kazu Hirata + + * c-decl.c (c_expand_deferred_function): Remove. + * c-tree.h: Remove the corresponding prototype. + +2004-02-26 Kazu Hirata + + * postreload.c (reload_cse_move2add): Generate just a PLUS + instead of an entire SET. + +2004-02-26 Jan Hubicka + + * config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m + /pentium4m. + * i386.c (override_options): Add support for new CPUs. + * i386.h (TARGET_CPU_DEFAULT_NAMES): New names. + (TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New + constants. + * invoke.texi: Extend documentation of -mtune/-march for new CPUs. + +2004-02-26 Bob Wilson + + * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__. + +2004-02-26 Eric Botcazou + + * config/sparc/sparc-protos.h (sparc_emit_floatunsdi): Add 'mode'. + (sparc_emit_fixunsdi): New prototype. + * config/sparc/sparc.c (sparc_emit_floatunsdi): Use 'mode' argument. + (sparc_emit_fixunsdi): New function. + * config/sparc/sparc.md (floatunsdisf2): Use 'general_operand' for + operand 1. Pass SFmode to sparc_emit_floatunsdi. + (floatunsdidf2): Use 'general_operand' for operand 1. Pass DFmode + to sparc_emit_floatunsdi. + (fixuns_truncsfdi2): New expander. + (fixuns_truncdfdi2): Likewise. + +2004-02-26 Alan Modra + + * gcse.c (delete_null_pointer_checks_1): Do not delete CC setter + unless HAVE_cc0. + +2004-02-25 Richard Henderson + + * explow.c (force_reg): Call mark_reg_pointer as appropriate. + * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't + use (op0-op1) == 0 if op0 is a pointer. + * config/alpha/alpha.md (cmpdi): Use some_operand. + (three comparison combine splits): Remove. + +2004-02-25 Richard Henderson + + PR c/12794 + * c-common.c (handle_alias_attribute): Reject the attribute if + current_function_decl is set. + +2004-02-25 Kelley Cook + + * config.gcc: Add comment describing extra_gcc_objs. + i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs. + * configure.ac (extra_gcc_objs): New substitution variable. + (host_extra_gcc_objs): Don't substitute. + * configure: Regenerate. + * Makefile.in: Use extra_gcc_objs. + +2004-02-25 Kelley Cook + + * doc/contrib.texi: Add an entry for myself. + +2004-02-25 Jan Hubicka + + * basic-block.h (make_eh_edge, break_superblocks): Declare. + * cfgbuild.c (make_eh_edge): Make global. + * cfglayout.c (break_superblocks): Likewise; fix memory leak. + * except.c (build_post_landing_pads, connect_post_landing_pads, + dw2_build_landing_pads, sjlj_emit_function_enter, + sjlj_emit_function_exit, sjlj_emit_dispatch_table, + sjlj_build_landing_pads): Update CFG. + (emit_to_new_bb_before): New function. + (finish_eh_generation): Do not rebuild the CFG. + +2004-02-25 John David Anglin + + * config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all + target_cpu_default defines. + * pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define. + * pa.h (TARGET_DEFAULT): Likewise. + +2004-02-25 Eric Botcazou + + * fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like + comparisons with regard to signedness. + +2004-02-25 Richard Earnshaw + + * arm.c (thumb_legitimize_address): New function. + * arm-protos.h: Prototype it. + * arm.h (THUMB_LEGITIMIZE_ADDRESS): Define. + (LEGITIMIZE_ADDRESS): Use it. + +2004-02-25 J"orn Rennecke + + * reload1.c (reload): Only spill eliminable register with multiple + adjacent elimination alternatives if all alternatives fail. + +2004-02-25 Richard Earnshaw + + * arm.c (arm_legitimate_index_p): For QImode the range of an offset + is -4095...+4095 inclusive. + +2004-02-25 Eric Botcazou + + * doc/install.texi (sparc-sun-solaris2* specific notes): Document + the bootstrap failure with Sun CC 5.4 and 5.5. + +2004-02-24 Kazu Hirata + + * 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-24 Michael Matz + + * config/i386/i386.c (ix86_comp_type_attributes): Check for + regparm attributes. + +2004-02-24 Richard Henderson + + * toplev.c (dump_file_tbl): Rename from dump_file. + * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c, + cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c, + config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c, + config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c, + loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c, + ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c, + toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c: + s/rtl_dump_file/dump_file/g. + +2004-02-24 Aldy Hernandez + + * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete. + (spe_fixuns_truncsfsi2): Delete. + + * config/rs6000/rs6000.md (fix_truncsfsi2): Delete. + (fixuns_truncsfsi2): Delete. + +2004-02-24 Josef Zlomek + + PR/14240 + * rtlanal.c (replace_label): Fix replacing labels in constant pool. + +2004-02-24 Geoffrey Keating + + * config/darwin.h (TARGET_HAS_F_SETLKW): Define. + +2004-02-24 Jason Merrill + + * tree.c (check_qualified_type): New fn. + (get_qualified_type): Use it. If type already has the desired + quals, just return it. + * tree.h: Declare it. + +2004-02-24 Sanjiv Kumar Gupta + + * target-def.h (TARGET_SCHED_INIT_GLOBAL, + TARGET_SCHED_FINISH_GLOBAL): New macros. + + * target.h (md_init_global, md_finish_global): Function + declarations corresponding to new target macros. + + * haifa-sched.c (sched_init, sched_finish): Allow target to + call the new schedular hooks. + + * flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in + call to update_life_info. + + * config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable + flag_schedule_insns for SH4. + + * config/sh/sh.c (sh_md_init_global, sh_md_finish_global, + find_set_regmode_weight, find_insn_regmode_weight, + find_regmode_weight), sh_md_init, sh_dfa_new_cycle, + sh_variable_issue, high_pressure, ready_reorder, + rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New + functions used to throttle the insn movement in first + scheduling pass for SH. + + * gcc/doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and + TARGET_SCHED_FINISH_GLOBAL. + +2004-02-24 Alexandre Oliva + + Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux. + 2004-02-05 Alexandre Oliva + * config/frv/frv.c (frv_emit_movsi): Use GOT relocations for + symbols in sections named by the user. + 2004-01-30 Alexandre Oliva + * config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New. + 2004-01-27 Alexandre Oliva + * config.gcc (frv-*-*linux*): Handle like *-*-linux*. + * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by + the above. + 2004-01-20 Alexandre Oliva + * config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add + one more pseudo to further improve code generation. + 2004-01-19 Alexandre Oliva + * config/frv/frv.md (movdi_ldd): Introduce explicit indirection + inside UNSPEC. + 2004-01-16 Alexandre Oliva + * config/frv/frv.c (frv_legitimate_address_p): Added + allow_double_reg_p argument. Adjust all callers. Use it to + decide whether to enable double-register indirect addressing. + (frv_funcdesc_alias_set): Remove. + (frv_expand_fdpic_call): Force non-SYMBOL_REF operand into + register. Emit movdi_ldd. + (ldd_address_operand): New. + * config/frv/frv-protos.h (frv_legitimate_address_p): Adjust. + * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise. + (PREDICATE_CODES): Add ldd_address_operand. + * config/frv/frv.md (movdi_ldd): New. + (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for + intermediate computations if possible. + (symGOTOFF2reg_i): Fix harmless typo. + 2003-12-18 Alexandre Oliva + * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast + relocated p_vaddr to vaddr type. + * config/frv/frv-protos.h (frv_expand_fdpic_call): Return void. + * config/frv/frv.c (frv_get_funcdesc_alias_set): New. + (frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc + MEM, or use a funcdesc alias set. Use regular move instead of + ldd. + (dbl_memory_one_insn_operand): Recognize function descriptors by + type or by alias set, and don't split them. + * config/frv/frv.md (call, call_value): Never use call_internal + for fdpic. + (call_internal, call_value_internal): Never match for FDPIC. + (call_fdpicdi, call_fdpicsi, call_value_fdpicdi, + call_value_fdpicsi): Require FDPIC. + (ldd): Removed. + 2003-12-17 Alexandre Oliva + * config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__. + * unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more. + (_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV + FDPIC. Compute data base address. + * config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic + before the other self-specs are processed. + * config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS): + Build with -fPIC. + 2003-12-15 Alexandre Oliva + * unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if + inhibit_libc is defined. + 2003-12-12 Alexandre Oliva + * unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for + __FRV_FDPIC__. + (__RELOC_POINTER): Define. + (_Unwind_IteratePhdrCallback): Use it. + * config/frv/frv.h (Twrite): Define. + (TRANSFER_FROM_TRAMPOLINE): Use it. + * config/frv/linux.h (INVOKE__main): Undefine. + (Twrite): Override. + 2003-12-05 Richard Sandiford + * doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options. + (-mlibrary-pic): Emphasize that this option generates EABI code. + (-mcpu): Add fr550. + (-mpack): Remove. + 2003-11-30 Alexandre Oliva + * config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs + and CONSTs in FDPIC mode. + * gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*. + 2003-11-29 Richard Sandiford + * config/frv/frv.c (move_source_operand): Don't accept symbolic + constants. + * config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n' + rather than 'i' constraint for the 2-instruction alternative. + (*movsi_2word): New, incorporating existing int_2word_operand splitter. + 2003-11-29 Richard Sandiford + * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from + EXTRA_CONSTRAINT_FOR_Y. + (EXTRA_CONSTRAINT): Remove handling of 'Y'. + * config/frv/frv.md (*movsi_internal): Remove 'Q' constraint. + (addsi3): Change 'Y' constraint to 'Q'. + 2003-11-27 Richard Sandiford + * reload.c (CONST_POOL_OK_P): New macro. + (find_reloads): Use it to decide whether a constant can be forced + into memory. + * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the + constant satisfies got12_operand. + (frv_cannot_force_const_mem): Always return true for TARGET_FDPIC. + (frv_legitimate_address_p): Check for valid unspec offsets using + got12_operand rather than frv_legitimate_fdpic_operand_p. + (frv_legitimate_fdpic_operand_p): Delete. + (frv_emit_movsi): Abort if we try to use the FDPIC register during + or after reload. + (frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if + TARGET_FDPIC. + * config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE. + 2003-11-19 Richard Sandiford + * config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand) + (frv_fdpic_fptr_operand): Don't declare here. + * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand + rather than fdpic_got12_operand. + (PREDICATE_CODES): Remove symbolic_operand entry. Add entries for + got12_operand and const_unspec_operand. + * config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand. + (gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls. + (symbolic_operand): Remove. + (const_unspec_operand): New predicate. + * config/frv/frv.md (*movsi_got): Use got12_operand. + (*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand. + 2003-11-18 Richard Sandiford + * config/frv/frv-protos.h (frv_output_addr_const_extra): Remove. + * config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition. + * config/frv/frv.c (frv_unspec): New structure. + (frv_small_data_reloc_p, frv_const_unspec_p): New functions. + (frv_print_operand_memory_reference): Use frv_const_unspec_p to + validate CONST indices. Use frv_output_const_unspec to print them. + (frv_print_operand): Update call to unspec_got_name. Use + frv_output_const_unspec to print constant unspecs. + (frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p. + Reject UNSPECs otherwise. + (unspec_got_name): Take the relocation number as argument, not an + rtx containing it. + (frv_output_addr_const_extra): Remove, replacing with... + (frv_output_const_unspec): ...this new function. + (frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p. + (gpr_or_int12_operand): Use fdpic_got12_operand. + (dbl_memory_one_insn_operand): Likewise. + (fdpic_got12_operand): Use frv_const_unspec_p. + (frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that + are already legitimate. Use frv_small_data_reloc_p when deciding + whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12. + 2003-11-18 Alexandre Oliva + * config/frv/t-linux (SHLIB_MAPFILES): Override so as to export... + * config/frv/libgcc-frv.ver: ... frv-specific symbols. New file. + * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local + label, for real this time. + * config/frv/frv.c (frv_local_funcdesc_p): Update to new + representation of visibility. + (fdpic_got12_operand, symbolic_operand): Mark unused arguments as + such. + 2003-11-17 Richard Sandiford + * config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros. + (TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp. + * config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless + it was explicitly disabled. + (frv_stack_info): There is no need to save the link register in every + frame unless TARGET_LINKED_FP is true. + (frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a + frame pointer if the stack pointer might change value. + (frv_return_addr_rtx): Check and process "count" argument. + 2003-11-14 Richard Sandiford + * config/frv/frv-protos.h (frv_legitimize_address): Remove. + (frv_find_base_term): Declare. + * config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing. + (FIND_BASE_TERM): Define. + (PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand, + small_data_register_operand, small_data_symbolic_operand. Add + symbolic_operand. + * config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete. + (frv_print_operand_memory_reference, output_move_single): Remove + special handling for unlegitimized sdata addresses. + (frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG + and symbolic addresses. + (frv_legitimize_address, frv_legitimize_fdpic_address): Delete. + (frv_find_base_term): New function. + (int_2word_operand): Check specifically for symbolic address constants. + (pic_register_operand, pic_symbolic_operand): Delete. + (small_data_register_operand, small_data_symbolic_operand): Delete. + (dbl_memory_one_insn_operand): Don't call plus_small_data_p. + Allow UNSPEC_GOT constants if !TARGET_FDPIC. + (move_source_operand): Only accept CONSTs if they're a two-insn + symbolic constant. + (fdpic_got12_operand): Don't require TARGET_FDPIC. + (frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses + using gen_symGOTOFF2reg*. + (frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases. + (frv_rtx_costs): Give all MEM addresses a cost of 0. Give MEMs + themselves a cost of 3 insns. + * config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too. + Change predicate to symbolic_operand. + (*movsi_high_got, *movsi_lo_sum_got): Likewise. + (*movsi_lda_sdata): Delete. + (*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete. + 2003-11-05 Alexandre Oliva + * config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for + frv-*-*linux*. + * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local + label. + * config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before + -multilib-library-pic. + (LINK_SPEC): Add -z text for -mfdpic. + * config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC. + * config/frv/frvend.c (__ROFIXUP_END__): Likewise. + * config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC): + Override. + (OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP, + FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define. + * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use + crtstuff-generated files. + 2003-10-31 Alexandre Oliva + * config.gcc: Add frv-*-*linux*. + * config/frv/linux.h, config/frv/t-linux: New. + 2003-10-06 Alexandre Oliva + * config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker + when -mfdpic even if a linker script is explicitly listed. + 2003-10-02 Alexandre Oliva + * config/frv/frv.c (frv_override_options): Clear asm_out + unaligned_op for SImode on FDPIC. + (frv_emit_movsi): Use compute_reloc_for_constant to compute the + argument passed to decl_readonly_section. + (frv_assemble_integer): Revert 2003-09-30's change, but make the + whole block run with FDPIC even with -fno-PIC. + 2003-10-02 Alexandre Oliva + * config/frv/frv.c (frv_cannot_force_const_mem): Don't force + symbol or label plus offset to memory. + (frv_emit_movsi): Emit GPREL only if -mgprel-ro. Emit 32-bit + GOTOFF and GPREL for LABEL_REF. + * config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with + -mfdpic unless -mno-gprel-ro, -fpic or -fpie. + (MASK_GPREL_RO, TARGET_GPREL_RO): New. + (TARGET_SWITCHES): Added gprel-ro and no-gprel-ro. + * doc/invoke.texi: Document them. + 2003-09-30 Alexandre Oliva + * config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare. + (frv_splittable_got_operand): Removed. + * config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and + LO_SUM. Add comments. + (frv_override_options): Moved enabling of FDPIC to + DRIVER_SELF_SPECS. Don't enable MASK_DWORD. + (frv_local_funcdesc_p): Remove unnecessary heck for flag_pie. + (frv_legitimize_fdpic_address): Don't duplicate logic in + frv_emit_movsi. + (frv_gen_GPsym2reg): New. + (unspec_got_name): Added gprel. + (frv_expand_fdpic_call): Add support for inlining PLTs. + (fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand. + (gpr_or_int12_operand): Added GPREL12. + (pic_symbolic_operand): Match even if !flag_pic for FDPIC. + (small_data_symbolic_operand): Fail if FDPIC. + (fdpic_splittable_got_operand): Removed. + (fdpic_got12_operand): Added GPREL12. + (frv_emit_movsi): Reorganize to avoid duplication. Emit GPREL + when appropriate. Fix sdata GOTOFF. + (frv_legitimate_constant_p): Require legitimate PIC operand for + FDPIC with pic, but only a legitimate fdpic operand for non-pic. + (frv_assemble_integer): Move FDPIC funcdesc handling out of + flag_pic case. + (frv_asm_out_constructor, frv_asm_out_destructor): Abort if + frv_assemble_integer fails. + * config/frv/frv.h (DRIVER_SELF_SPECS): New. + (SUBTARGET_DRIVER_SELF_SPECS): New. + (ASM_SPEC): Don't pass -mno-fdpic. + (LINK_SPEC): Pass -melf32frvfd for FDPIC. + (MASK_INLINE_PLT, TARGET_INLINE_PLT): New. + (TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and + -multilib-library-pic. + (PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand, + condexec_si_media_operator, condexec_sf_add_operator and + condexec_sf_conv_operator. Removed condexec_sf_binary_operator + and condexec_sf_unary_operator. + * config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO): + New. + (movsi_got, movsi_high_got, movsi_lo_sum_got): Move before + movsi_internal. Give them internal names. movsi_got has type + int. + (fdpic got splitters): Remove. + (symGPREL2reg, symGPREL2reg_hilo): New. + * config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC + to -mlibrary-pic. Map -multilib-library-pic to it. + * doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic: + Document. + 2003-09-28 Alexandre Oliva + * config/frv/frv.c (frv_function_symbol_referenced_p): Declare. + (TARGET_CANNOT_FORCE_CONST_MEM): Define to... + (frv_cannot_force_const_mem): New function. + (const_small_data_p, plus_small_data_p): Update comments on sdata + on FDPIC. + (frv_override_options): Set flag_pie for FDPIC too. + (frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed, + call-saved registers on FDPIC. + (frv_stack_info): Don't preserve the PIC register on FDPIC, and + don't force LR to be preserved. + (frv_expand_prologue): Likewise. + (frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic. + (frv_frame_pointer_required): Don't force it just because the + FDPIC register is used. + (frv_legitimate_address_p) : Accept a legitimate FDPIC + operand only if !condexec_p. + (frv_legitimize_address): Return the FDPIC-legitimized address. + Don't match small data here on FDPIC. + (frv_legitimate_fdpic_operand_p): Don't accept unadorned function + symbols. Use TRUE/FALSE instead of 1/0. + (frv_local_funcdesc_p): New. + (frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit + immediates when possible. + (pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC. + (dbl_memory_one_insn_operand): Accept addresses that add a REG and + an UNSPEC_GOT. + (frv_emit_movsi): Handle FDPIC before small data. Use GOTOFF and + 12-bit immediates when possible. + (frv_legitimate_constant_p): In FDPIC, reject SImode operands that + are not legitimate pic operands. + (frv_in_small_data_p): Re-enable for FDPIC. + * config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC. + (FRV_GLOBAL_P): Removed. + * config/frv/frv.md: Add modes to CONSTs. + (movsi_got): New. + (movsi_lo_sum_got): Use separate matches instead of match_dup. + (movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only. + (fdpic splittable operations): Match on flag_pic != 1. + 2003-09-22 Alexandre Oliva + * config/frv/frv.c (frv_asm_out_constructor, + frv_asm_out_destructor): Pass to frv_assemble_integer the size in + bytes, not bits. + 2003-09-19 Alexandre Oliva + * config/frv/frv.c (frv_assemble_integer): Reject complex + expressions referencing function SYMBOL_REFs. + * config/frv/frv.c (frv_function_symbol_referenced_p): New. + (move_source_operand): Reject CONSTs that reference function + SYMBOL_REFs on FDPIC. + (frv_emit_movsi): If we get such a CONST, break it up. + * config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic. + (TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC. + * config/frv/frv.c (frv_print_operand) : Recognize PLUS without + MEM. + (frv_assemble_integer): Don't use funcdesc for LABEL_REFs. + (frv_trampoline_size): Increase for FDPIC. + * config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC. + (TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines. + * config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi): + Disable use of GOTOFF for now. + (const_small_data_p, plus_small_data_p, frv_in_small_data_p): + Disable use of small data in FDPIC for now. + (frv_asm_output_mi_thunk): Implement for FDPIC. + * config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC. + * config/frv/frv.c (frv_asm_out_constructor): Use + frv_assemble_integer for FDPIC pointers. + (frv_asm_out_destructor): Likewise. + * config/frv/frv.md (ldd): Fix order of operands. Use + address_operand for input. + 2003-09-18 DJ Delorie + * config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC. + (unspec_got_name): Correct typo. + (frv_emit_movsi): Pre-expand splittable GOTs. + (frv_expand_fdpic_call): Rename gen_lddi to gen_ldd. + * config/frv/frv.md (lddi): Fix syntax error, rename to ldd. + (symGOT2reg_hilo, symGOTOFF2reg_hilo): New. + * config/frv/t-frv: Add -mfdpic multilibs. + * config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic. + (TARGET_SWITCHES): Add -mno-fdpic, fix documentation. + * config/frv/frv.c (frv_override_options): -mfdpic assumes + flag_pic, default to 32-bit pics, require DWORD ops. + (frv_override_options): Add W and Z constraints. + (frv_expand_prologue): No pic prologue for -mfdpic. + (frv_asm_output_mi_thunk): Support -mfdpic (soon). + (frv_print_operand_memory_reference): Handle GOT constants. + (frv_legitimate_address_p): Allow GOT constants. + (frv_legitimize_address): Handle GOT addresses too. + (frv_legitimate_fdpic_operand_p): New. + (frv_legitimize_fdpic_address): New. + (unspec_got_name): New. + (frv_output_addr_const_extra): New. + (frv_expand_fdpic_call): New. + (frv_fdpic_fptr_operand): New. + (gpr_or_int12_operand): Handle GOT operands. + (int_2word_operand): Handle GOT operands. + (fdpic_operand): New. + (fdpic_splittable_got_operand): New. + (fdpic_got12_operand): New. + (frv_emit_movsi): Handle GOT operands. + (frv_assemble_integer): -mfdpic doesn't use rofixups. + (frv_print_operand): Support 'g' code for GOT operands. + * config/frv/frv-protos.h: Add prototypes as needed. + * config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO, + R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI, + R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE, + R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI, + R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI, + R_FRV_GOTOFFLO): New. + (movsi_high_got, movsi_lo_sum_got): New. + (*movsi_pic): Don't use this splitter for -mfdpic. + (addsi3): Allow GOT references also. + (call, call_value): Handle -mfdpic separately. + (call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi, + call_value_fdpicsi): New. + (symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg, + symGOTOFF2reg_i): New. + * config/frv/frv.h (MASK_FDPIC): New. + (TARGET_FDPIC): New. + (TARGET_SWITCHES): Add -mfdpic. + (FDPIC_FPTR_REGNO): New. + (FDPIC_REGNO): New. + (OUR_FDPIC_REG): New. + (enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and + FDPIC_CALL_REGS. + (REG_CLASS_NAMES): Likewise. + (REG_CLASS_CONTENTS): Likewise. + (EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs. + (EXTRA_CONSTRAINT): Add it here. + (FRV_GLOBAL_P): New. + (OUTPUT_ADDR_CONST_EXTRA): New. + +2004-02-24 Kazu Hirata + + * config/sparc/sparc.h: Remove commented-out definitions of + TARGET_EDOM and GEN_ERRNO_RTX. + +2004-02-24 Kazu Hirata + + * df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace + df_analyse with df_analyze. + +2004-02-24 Alan Modra + + * gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not + beginning of block. + +2004-02-23 James E Wilson + + * calls.c (precompute_arguments): Update comment. + +2004-02-23 Kazu Hirata + + * et-forest.c: Replace et_occurences with et_occurrences. + +2004-02-23 Kazu Hirata + + * cfgloop.h, loop-iv.c, loop-unswitch.c: Replace iv_analyse + with iv_analyze. + +2004-02-23 Kelley Cook + + * config/i386/i386.c: Rename pni to sse3. + * config/i386/i386.h: Likewise. + * config/i386/i386.md: Likewise. + * config/i386/pmmintrin.h: Likewise. + * doc/extend.texi: Likewise. + * doc/invoke.texi: Likewise. + +2004-02-23 Zack Weinberg + Kazu Hirata + + Remove -fwritable-strings. + * c-common.c (fix_string_type): Don't check + flag_writable_strings. + (fix_string_type): Likewise. + * c-opts.c (set_std_c89): Don't initialize + flag_writable_strings. + (set_std_c99): Likewise. + * common.opt (fwritable-strings): Remove. + * flags.h: Remove the external declaration of + flag_writable_strings. + * opts.c (common_handle_option) : + Remove. + * toplev.c (flag_writable_strings): Remove. + (f_options): Remove an entry for writable-strings. + * varasm.c (const_hash_1) : Don't check + flag_writable_strings. + (compare_constant) : Likewise. + (build_constant_desc): Likewise. + * config/darwin.c (machopic_select_section): Likewise. + * config/arm/arm.c (AOF_ASSEMBLER): Likewise. + * config/arm/pe.c (arm_pe_encode_section_info): Likewise. + * config/iq2000/iq2000.c (iq2000_select_section): Likewise. + * config/mips/mips.c (mips_select_section): Likewise. + (mips_encode_section_info): Likewise. + * config/pa/pa.c (pa_select_section): Likewise. + * config/pa/pa.h (TEXT_SPACE_P): Likewise. + * config/v850/v850.c (v850_select_section): Likewise. + * doc/invoke.texi (-fwritable-strings): Remove. + (-fno-const-strings): Don't mention -fwritable-strings. + * doc/trouble.texi: Don't mention -fwritable-strings. + +2004-02-23 Nathanael Nerode + + * doc/install.texi: Update for switch of boehm-gc to autoconf 2.57. + +2004-02-23 Dale Johannesen + + * config/rs6000.md (movsf_hardfloat): Add POWER form of nop. + (movdf_hardfloat64): Ditto. + (movdf_softfloat64): Ditto. + +2004-02-23 Fariborz Jahanian + * config/rs6000/rs6000.c (function_arg): call to + rs6000_mixed_function_arg for DFmode moved to allow + normal DFmode incoming register assignment. + +2004-02-23 Dale Johannesen + + * config/rs6000.md (movsf_hardfloat): Accept CTR-to-CTR copy. + (movdf_hardfloat64): Ditto. + +2004-02-23 Kazu Hirata + + * convert.c, gcov-io.c, libgcov.c, sched-int.h, sibcall.c, + config/rs6000/linux.h, config/rs6000/rs6000-c.c: Update + copyright. + +2004-02-23 Andrew Pinski + + PR c/14156 + * c-typeck.c (c_expand_return): Change check for VAR_DECL + to use DECL_P instead. + + * config/rs6000/linux.h (OS_MISSING_POWERPC64): Define. + * config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define. + +2004-02-23 Kazu Hirata + + * Makefile.in (opts.o): Depend on target.h. + * opts.c (decode_options): Use targetm.default_short_enums + instead of DEFAULT_SHORT_ENUMS. + * system.h (DEFAULT_SHORT_ENUMS): Poison. + * target-def.h (TARGET_DEFAULT_SHORT_ENUMS): New. + (TARGET_INITIALIZER): Add TARGET_DEFAULT_SHORT_ENUMS. + * target.h (gcc_target): Add default_short_enums. + * config/cris/cris.h: Remove a comment about + DEFAULT_SHORT_ENUMS. + * config/ip2k/ip2k.h: Likewise. + * doc/tm.texi (DEFAULT_SHORT_ENUMS): Change to + TARGET_DEFAULT_SHORT_ENUMS. Update the description. + +2004-02-23 Eric Botcazou + Falk Hueffner + + PR c/14188 + * builtins.c (expand_builtin_va_arg): Emit an informative message + if a trap is generated. + * c-typeck.c (build_function_call): Likewise. + +2004-02-22 Jakub Jelinek + + * gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of + fopen. + * libgcov.c: Include sys/stat.h. + * config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define. + * config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define. + * config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define. + * config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define. + +2004-02-22 Kazu Hirata + + * reorg.c: Remove comments about dead ports. + +2004-02-22 Christopher Faylor + + * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify + extra host object file when targetting cygwin rather than generic + object files. + +2004-02-22 Josef Zlomek + + Merge from tree-ssa: + 2003-11-20 Richard Henderson + + * tree-inline.c (insert_decl_map): New. + (remap_decl, remap_type, remap_block, copy_body_r, + initialize_inlined_parameters, declare_return_variable, + remap_save_expr): Use it. + + * function.c (copy_body_r): Add mapping from id->ret_label to + id->ret_label. Revert test for ret_label. + +2004-02-22 Jakub Jelinek + + * genoutput.c (process_template): Strip trailing whitespace in @ + templates and issue a warning if there was any. + +2004-02-21 Christopher Faylor + + * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host + object file when targetting cygwin. + * config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is + overridden by top-level Makefile. + +2004-02-21 Roger Sayle + + * config/i386/i386.c (standard_80387_constant_p): Also prefer + the x87's load constant instructions when optimizing for size. + +2004-02-21 Kazu Hirata + + * combine.c (SHIFT_COUNT_TRUNCATED): Remove. + * defaults.h (SHIFT_COUNT_TRUNCATED): Provide the default. + * expmed.c: Assume SHIFT_COUNT_TRUNCATED is always defined. + * fold-const.c: Likewise. + * simplify-rtx.c: Likewise. + +2004-02-21 Alan Modra + + * combine.c (can_combine_p): Don't ignore SETs marked with + REG_EH_REGION notes. + (try_combine): When attemting to fix unrecognized insns, don't + split a PARALLEL that contains the original i2. + +2004-02-21 Ziemowit Laski + + * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to + SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options. + * config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it. + * config/rs6000/altivec.h: #error out if '-maltivec' not specified. + (vector, pixel, bool): #define to __vector, __pixel and __bool. + (__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific + portion of header. + (__altivec_link_error_invalid_argument): Remove prototype; will use + __builtin_altivec_compiletime_error("vec_*") instead. + (vec_*): Fix/complete set of available operation overloads given the + existence of distinct 'vector bool ...' and 'vector pixel' types; tighten + cv-correctness of pointer arguments; in C, always check for correct + argument types before macro expansion. + * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro + defining Darwin/PowerPC-specific '-f[no-]altivec' and + '-W[no-]altivec-long-deprecated' switches. + * config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define + '__vector', '__pixel' and '__bool' macros using + '__attribute__((altivec(...)))' types. + * config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node, + bool_int_type_node, pixel_type_node, bool_V16QI_type_node, + bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node): + New type nodes. + (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for + handling '-W[no-]altivec-long-deprecated'. + (rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'. + (rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin, + altivec_expand_dst_builtin): Remove casts from integer literals. + (altivec_expand_builtin): Likewise; handle expansion of new + '__builtin_altivec_compiletime_error' function. + (rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel' + types, and make them distinct from other vector types; register + '__builtin_altivec_compiletime_error' function. + (print_operand): For 'P', print a full target register name instead of + merely its number. + (rs6000_attribute_table): Add "altivec" attribute. + (rs6000_handle_altivec_attribute): New function. + * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe + '-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated' + maps to). + (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward + declare. + (ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration. + +2004-02-20 James E Wilson + + * config/ia64/ia64.md (shift_mix4left+1): Delete reload_completed + check. + (shift_mix4left+2): Delete redundant pattern. + +2004-02-20 Kazu Hirata + + * alias.c (OUTGOING_REGNO): Don't define the default. + * builtins.c (OUTGOING_REGNO): Likewise. + (INCOMING_REGNO): Likewise. + (apply_args_register_offset): Always use OUTGOING_REGNO. + * combine.c (OUTGOING_REGNO): Likewise. + * sibcall.c (OUTGOING_REGNO): Likewise. + * defaults.h (INCOMING_REGNO): Provide the default. + (OUTGOING_REGNO): Likewise. + +2004-02-21 Jan Hubicka + + * params.def (max-peeled-insns, max-completely-peeled-insns, + max-once-peeled-insns): Set to 400. + +2004-02-20 John David Anglin + + PR c++/12007 + * dbxout.c (dbxout_parms): Check that DECL_RTL and DECL_INCOMING_RTL + are set for parameters before outputing debugging information. + +2004-02-20 Falk Hueffner + + PR target/14201 + * config/alpha/alpha.md (*fix_truncsfsi_ieee): Fix typoed operand + numbers. + +2004-02-20 Per Bothner + + * input.h: Don't #include line-map.h. It may cause link problems + with undefined linemap_line_start when line-map.h is included but + line-map.o is not linked, as currently happens with gengtype on + compilers that don't support inline. + * toplev.c: So we do have to explicitly #include line-map.h here. + +2004-02-20 Richard Henderson + + * doc/invoke.texi: Add -Wvariadic-macros. + +2004-02-20 Kazu Hirata + + * haifa-sched.c (sched_emit_insn): Remove. + * sched-int.h: Remove the corresponding prototype. + +2004-02-20 Kazu Hirata + + Revert: + 2004-02-19 Kazu Hirata + * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS. + * system.h (DEFAULT_SHORT_ENUMS): Poison. + * config/cris/cris.h: Remove a comment about + DEFAULT_SHORT_ENUMS. + * config/ip2k/ip2k.h: Likewise. + * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove. + +2004-02-20 Mohan Embar + Tom Tromey + + * doc/install.texi: Moved --disable-libgcj and + --with-system-zlib documentation to new section for + Java-specific options. + Added explicit Cross-Compiler-Specific Options subheading. + Added section for Java-specific options. + +2004-02-20 Matt Kraai + + * doc/install.texi (Building the Ada compiler): Remove + example. + +2004-02-20 James E Wilson + + * toplev.c (dump_file_index, dump_file): Put ce3 before rnreg. + +2004-02-20 Kazu Hirata + + * gcc.c (process_command): Allow translation of the copyright + symbol but not the rest of the copyright message. + * gcov.c (print_version): Likewise. Allow translation of the + message about warranty. + +2004-02-20 Hans-Peter Nilsson + + * config/cris/cris.md ("*andsi_movu"): Correct parentheses in + predicate. + ("*andsi_clear"): Tweak constraints to not match postincrement. + Adjust the predicate to exclude a volatile memory reference. + ("*andhi_clear"): Ditto. Rename from "*andhi_clear_signed". + ("*andhi_clear_unsigned"): Remove, non-matching pattern. + +2004-02-19 Matt Kraai + + * move-if-change: Remove. + * Makefile.in (s-mlib, c-parse.y, s-check, s-gencheck) + (s-specs, s-options, s-config, s-conditions, s-flags, s-codes) + (s-constants, s-emit, s-recog, s-opinit, s-extract, s-peep) + (s-attr, s-attrtab, s-output, s-genrtl, s-modes, s-preds) + (s-gtyp-gen, s-iov): Use the top level move-if-change. + * objc/Make-lang.in (objc/objc-parse.y): Likewise. + +2004-02-19 James E Wilson + + * config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand + for operand2. Add condition that requires register_operand operand2 + before reload. + +2004-02-19 Richard Sandiford + Maciej W. Rozycki + + * config/mips/mips.c (mips_address_insns): Treat BLKmode specially. + * config/mips/mips.md: Expand comment above unaligned loads and stores. + +2004-02-19 Richard Henderson + + * Makefile.in (STRICT2_WARN): Add -Wno-variadic-macros. + * tree.c (build0, build1, build2, build3, build4): Split out from... + (build): ... here. Call them. + * tree.h (build, _buildN1, _buildN2, _buildC1, _buildC2): New. + + * convert.c (convert_to_integer): Remove extra build argument. + * tree-inline.c (expand_call_inline): Likewise. + +2004-02-19 Richard Henderson + + * c-opts.c (warn_variadic_macros): New. + (c_common_handle_option): Set it. + (sanitize_cpp_opts): Copy it to cpp_opts. + * c.opt (Wvariadic-macros): New. + * cpplib.h (struct cpp_options): Add warn_variadic_macros. + * cppinit.c (cpp_create_reader): Initialize it. + * cppmacro.c (parse_params): Check it. + +2004-02-19 David Daney + + PR preprocessor/14198 + * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Add + builtin_assert ("machine=mips") + +2004-02-19 Kazu Hirata + + * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS. + * system.h (DEFAULT_SHORT_ENUMS): Poison. + * config/cris/cris.h: Remove a comment about + DEFAULT_SHORT_ENUMS. + * config/ip2k/ip2k.h: Likewise. + * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove. + +2004-02-19 Zack Weinberg + + * config/ia64/ia64.c (ia64_function_arg): In big-endian mode, + when passing single SFmode quantities in general registers, + put them in the high half. + +2004-02-19 Aldy Hernandez + + * doc/md.texi (Standard Names): Document additional dependency on + fix pattern. + + * optabs.c (ftruncify): Remove. + (expand_fix): Manually inline ftruncify above. + (can_fix_p): Add FIXME note. + +2004-02-19 Aldy Hernandez + + * config/rs6000/spe.md (spe_fixunssfsi2): Rename to + spe_fixuns_truncsfsi2. + + * config/rs6000/rs6000.md (fixunssfsi2): Rename to + fixuns_truncsfsi2. + +2004-02-19 Steve Ellcey + + * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro. + * testsuite/gcc.dg/20040219-1.c: New test. + +2004-02-19 Ulrich Weigand + + * config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc", + "*subsf3_cconly"): Subtraction is not commutative. + +2004-02-19 Zack Weinberg + + * sdbout.c (preinit_symbols, sdbout_initialized): New statics. + (sdbout_symbol): If called before sdbout_init, queue DECL for + later and return. + (sdbout_init): Set sdbout_initialized true, process decls + queued earlier by sdbout_symbol. + (sdbout_finish): Use size_t for index variable. + +2004-02-19 Jeff Law + + * fold-const.c (invert_truthvalue): Do not call invert_tree_comparison + for unordered comparison codes. + +2004-02-19 Ian Lance Taylor + + * reload1.c (reload): Correct comment. + (scan_paradoxical_subregs): Remove #if 0 and old comment. + * doc/extend.texi (Local Reg Vars): Remove obsolete comment that + register variables are not used by reload. + +2004-02-19 Hans-Peter Nilsson + + PR target/14209 + * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak + constraints to not match postincrement. Adjust the predicate to + exclude a volatile memory reference. + +2004-02-19 Kazu Hirata + + * config/mcore/mcore.h (ASM_OUTPUT_EXTERNAL): Remove. + +2004-02-19 Kazu Hirata + + * hooks.c (hook_void_tree_int): Remove. + (hook_void_constcharptr): Likewise. + (hook_int_void_0): Likewise. + * hooks.h: Remove the prototypes for the above three + functions. + * targhooks.c (hook_bool_machine_mode_true): Remove. + * targhooks.h: Remove the prototype for + hook_bool_machine_mode_true. + +2004-02-19 Kazu Hirata + + * emit-rtl.c (subreg_realpart_p): Remove. + (reorder_insns_with_line_notes): Likewise. + (end_full_sequence): Likewise. + * rtl.h: Remove the prototype for the above functions. + +2004-02-19 Kazu Hirata + + * config/arc/arc.h, config/arm/arm.h, config/frv/frv.h, + config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h, + config/iq2000/iq2000.h, config/m32r/m32r.h, + config/pdp11/pdp11.h, config/sparc/sparc.h, + config/xtensa/xtensa.h: Remove commented-out or useless + definitions of CASE_VECTOR_PC_RELATIVE. + +2004-02-19 Kazu Hirata + + * loop.c (all_sets_invariant_p): Remove. + +2004-02-19 Eric Botcazou + + PR target/12916 + * config/sparc/sparc.h (NPARM_REGS): Delete. + (BASE_RETURN_VALUE_REG): Likewise. + (BASE_OUTGOING_VALUE_REG): Likewise. + (BASE_PASSING_ARG_REG): Likewise. + (BASE_INCOMING_ARG_REG): Likewise. + * config/sparc/sparc.c (sparc_strict_argument_naming): Test + TARGET_ARCH64, not TARGET_V9. + (function_arg_slotno): Dispatch based on the mode class. + Handle vector modes like floating-point modes. + (function_arg_record_value_1): Handle vector types like + floating-point types. + (function_arg_record_value_2): Likewise. + Calculate regno after mode transformation. + (function_arg): Handle vector modes like floating-point modes. + (function_arg_partial_nregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX. + If ARCH64, do not recheck alignment. + (function_arg_pass_by_reference): Reorder the conditions. + (sparc_return_in_memory): Move after function_arg_padding. + Implement calling conventions for vector modes. + (sparc_struct_value_rtx): Move after sparc_return_in_memory. + (function_value): Move scope of 'regbase'. + Implement calling conventions for vector modes. + (sparc_builtin_saveregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX + and BASE_INCOMING_ARG_REG by SPARC_INCOMING_INT_ARG_FIRST. + (sparc_va_arg): Use function_arg_pass_by_reference to test whether + the argument is passed by reference. + (sparc_type_code): Handle vector types. + +2004-02-19 Alan Modra + + * function.c (assign_parms): When building decl_rtl for + SPLIT_COMPLEX_ARGS, ensure inner modes of concat match outer. + +2004-02-19 Olivier Hainque + + * expr.c (is_aligning_offset): Check if we are aligning the + expressions's address over BIGGEST_ALIGNMENT in bytes, not + in bits. + +2004-02-18 Matt Austern + + * gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and + LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC. + (init_gcc_spec): Don't define or call if REAL_LIBGCC_SPEC is + defined. Instead use REAL_LIBGCC_SPEC, unmodifed, as the libgcc + spec string. + * doc/tm.texi (REAL_LIBGCC_SPEC): Document. + +2004-02-18 Zack Weinberg + + * dwarf2out.c (loclabel_num): Move outside #ifdef + DWARF2_DEBUGGING_INFO and mark with GTY(()). + * config/ia64/ia64.c (struct extern_func_list,extern_func_head): + Mark with GTY(()). + (ia64_hpux_add_extern_decl): Save the decl, not the name string. + Allocate memory with ggc_alloc. No need to copy anything. + (ia64_hpux_file_end): Update to match. + +2004-02-18 Jakub Jelinek + + * config/i386/i386.c (override_options): Don't imply 3DNow! for -m64 + by default. + +2004-02-18 Ulrich Weigand + + * config/s390/s390.md ("divmodtidi3"): Use canonical RTL. + ("divmodtisi3"): Likewise. + ("udivmoddi4", "udivmodtidi3"): Likewise. + ("divmodsi4", "divmoddisi3"): Likewise. + ("udivmodsi4", "udivmoddisi3"): Likewise. + ("udivsi3", "umodsi3"): Likewise. + +2004-02-18 Ulrich Weigand + + * config/s390/s390.c (s390_mainpool_start): Delete the main pool + placeholder insn when chunkifying the pool. + +2004-02-18 John David Anglin + + * pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not + generating PIC code. + +2004-02-18 Kazu Hirata + + * config/h8300/h8300-protos.h: Add a prototype for + h8300_expand_branch. + * config/h8300/h8300.c (h8300_expand_branch): New. + * config/h8300/h8300.md (ble, bleu, bge, bgeu, blt, bltu, bgt, + bgtu, beq, bne): Call h8300_expand_branch(). + +2004-02-18 Kazu Hirata + + * config/h8300/h8300-protos.h: Add prototypes for + h8300_hard_regno_nregs and h8300_hard_regno_mode_ok. + * config/h8300/h8300.c (h8300_hard_regno_nregs): New. + (h8300_hard_regno_mode_ok): Likewise. + * config/h8300/h8300.h (HARD_REGNO_NREGS): Call + h8300_hard_regno_nregs(). + (HARD_REGNO_MODE_OK): Call h8300_hard_regno_mode_ok(). + +2004-02-18 Per Bothner + + * cpphash.h (struct cpp_buffer): Restore return_at_eof field. This + partly reverts my 2003-10-01 change, because we're back to logically + including inside the main line. + * cpplex.c (_cpp_get_fresh_line): Check return_at_eof field. + * cppmacro.c (cpp_scan_nooutput): Set return_at_eof of current buffer. + Fixes PR preprocessor/14103. + + * cppfiles.c (_cpp_stack_include): When appropriate decrement + line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION. + (cpp_push_include): Don't need to increment pfile's line field. + * line-map.h (LAST_SOURCE_LINE_LOCATION): Only decrement by 1. + + * c-ppoutput.c (print struct): New first_time field. + (init_pp_output): Set print.first_time. + (pp_file_change): Use print.first_time, rather than MAIN_FILE_P, + which is set also for (say) . Clear print.first_time. + + * cppfiles.c (struct _cpp_file): Comment and type for pch field + does not match the code, so fix both. + (should_stack_file): Inline include_pch_p function. + (include_pch_p): Remove pointless function. + + * cpphash.h (struct cpp_buffer): Remove unused search_cached field. + +2004-02-18 Kazu Hirata + + * config/h8300/h8300.md (four define_peephole2's): Use + h8300_regs_ok_for_stm(). + +2004-02-18 Kazu Hirata + + * config/h8300/h8300-protos.h: Update the prototype for + expand_a_rotate(). + * config/h8300/h8300.c (expand_a_rotate): Remove the first + argument. + * config/h8300/h8300.md: Update all callers. + +2004-02-18 Jan Hubicka + + * simplify-rtx.c (simplify_unary_operation): Deal with logicals on + floats. + (simplify_binary_operation): Deal with logicals on floats. + + * i386.md (SSE fabs splitters): Emit new patterns. + (SSE cmov splitters): Likewise. + (sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3 + (sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use + subregs. + (sse_andsf3, sse_nandsf3, sse_xorsf3): Kill. + (sse_anddf3, sse_nanddf3, sse_xordf3): Kill. + +2004-02-18 Kazu Hirata + + * config/h8300/h8300.c (expand_a_rotate): Don't generate insns + by hand. + (output_a_rotate): Tweak a comment. + * config/h8300/h8300.md (*rotlqi3_1): Change to rotlqi3_1. + (*rotlhi3_1): Change to rotlhi3_1. + (*rotlsi3_1): Change to rotlsi3_1. + +2004-02-18 Richard Earnshaw + + PR target/13866 + * arm.c (load_multiple_operation): Don't insist that the source reg + of a post-increment component is the same as the destination. + (store_multiple_operation): Likewise. + +2004-02-18 Kazu Hirata + + * config/h8300/h8300.md: Move movsf patterns into one section + of the file. + +2004-02-18 Kazu Hirata + + * cfgloop.h, cfgloopanal.c, cpplex.c, except.h, loop-init.c, + loop-unroll.c, scan-decls.c, scan.h, stor-layout.c, + xcoffout.c, xcoffout.h, config/arm/mmintrin.h, + config/mips/linux64.h, config/pa/pa-64.h, + config/rs6000/aix51.h, config/rs6000/aix52.h, + config/rs6000/spe.md, config/sparc/linux.h, + config/sparc/linux64.h: Update copyright. + +2004-02-18 Kazu Hirata + + * config/h8300/h8300.md: Move push patterns into one + section of the file. + +2004-02-18 Mark Mitchell + + PR c++/11326 + * config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL + fntype. + +2004-02-18 Paul Brook + + * rtlanal.c (rtx_varies_p): Return 0 for NULL_RTX + +2004-02-18 Paul Brook + + PR debug/12934 + * dwarf2out.c (loc_descriptor_from_tree): Handle + EXPR_WITH_FILE_LOCATION. + +2004-02-18 Jakub Jelinek + + * config/i386/i386.md (zero_extendqidi2, zero_extendqidi2, + testdi_1_rex64, anddi_2, xordi_1_rex64, xordi_2_rex64): Remove + trailing whitespace from instructions. + +2004-02-17 Geoffrey Keating + + * configure.ac: When generating auto-build.h, pass + --enable-languages to the sub-configure. + Put quotes around ${program_transform_name} when generating + name of as, ld, nm, objdump. + * configure: Regenerate. + +2004-02-17 Matt Kraai + + * Makefile.in (s-check, s-config, s-conditions, s-flags) + (s-codes, s-constants, s-emit, s-recog, s-opinit, s-extract) + (s-peep, s-attr, s-attrtab, s-output, s-genrtl, s-modes) + (s-preds, s-iov): Do not depend on move-if-change. + +2004-02-17 James E Wilson + + * caller-save.c (insert_restore): Pass mem through copy_rtx. + (insert_save): Likewise. + +2004-02-17 Kazu Hirata + + * config/h8300/h8300.c (h8300_emit_stack_adjustment): Fix a + warning. + +2004-02-17 Kazu Hirata + + * config/h8300/h8300.md (*one_complsi2_h8300): Change to + *one_cmplsi2_h8300. + (*one_complsi2_h8300hs): Change to *one_cmplsi2_h8300hs. + +2004-02-17 Kazu Hirata + + * config/h8300/h8300-protos.h: Update the prototype of + fix_bit_operand(). + * config/h8300/h8300.c (fix_bit_operand): Remove the second + argument "what". + * config/h8300/h8300.md: Update all callers. + +2004-02-17 Kazu Hirata + + * config/h8300/h8300.c (fix_bit_operand): Change the name of + the last argument to "code" from "type". + +2004-02-17 Kazu Hirata + + * config/h8300/h8300.c: Remove an extern declaration of + rtx_equal_function_value_matters. + +2004-02-17 Kazu Hirata + + * config/h8300/h8300.c (fix_bit_operand): Don't generate insns + by hand. + * config/h8300/h8300.md (*andqi3_1): Change to andqi3_1. + (*iorqi3_1): Change to iorqi3_1. + (*xorqi3_1): Change to xorqi3_1. + +2004-02-17 Kazu Hirata + + * c-common.c, cfghooks.c, rtlanal.c, varasm.c: Fix comment + typos. + +2004-02-17 Jan Hubicka + + * i386.c (x86_prologue_using_move, x86_epilogue_using_move): Disable for P4. + +2004-02-18 Alan Modra + + PR optimization/14119 + * combine.c (try_combine): When attemting to fix unrecognized insns, + don't delete SETs marked with REG_EH_REGION notes. + +2004-02-17 Ulrich Weigand + + * combine.c (simplify_if_then_else): Do not replace + (if_then_else (ne reg 0) (0) (const_int)) by (reg) if the + modes differ. + +2004-02017 Steven Bosscher + + * (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c, + function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c, + tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION. + * ada/utils.c: Likewise. + * cp/decl.c: Likewise. + * f/com.c: Likewise. + * java/class.c: Likewise. + +2004-02-17 Kazu Hirata + + * config/h8300/h8300.md: Fix comment typos. + +2004-02-17 Rainer Orth + + * config/mips/t-iris6gld: Renamed to ... + * config/mips/t-irix-gld: ... this. + * config.gcc (mips-sgi-irix6*): Reflect this + (mips-sgi-irix5*): Use it with GNU ld. + + * config/mips/irix6-crti.asm, config/mips/irix6-crtn.asm: Renamed + to ... + * config/mips/irix-crti.asm, config/mips/irix-crtn.asm: ... this. + * config/mips/t-irix-gld: Reflect this. + * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise. + + * config/mips/iris5gld.h: New file. + * config.gcc (mips-sgi-irix5*): Use it with GNU ld. + Only use collect2 without gas. + + * config/mips/iris6.h (IRIX6_STARTFILE_SPEC, IRIX6_ENDFILE_SPEC): + Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC. + (STARTFILE_SPEC, ENDFILE_SPEC, SUBTARGET_EXTRA_SPECS): Reflect this. + * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise. + + * config/mips/iris6.h (SUBTARGET_EXTRA_SPECS): Moved ... + * config/mips/iris5.h: ... here. + + * config/mips/iris5.h (STARTFILE_SPEC, ENDFILE_SPEC): Renamed to + IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC. + (STARTFILE_SPEC, ENDFILE_SPEC): Define. + + * config/mips/iris5gas.h (STARTFILE_SPEC, ENDFILE_SPEC): Simplify + using irix_startfile_spec, irix_endfile_spec. + +2004-02-16 Gunther Nikl + + * config/m68k/m68k.c: Remove obsolete support for HPUX_ASM. + +2004-02-17 Kazu Hirata + + * config/h8300/h8300.c (h8300_expand_prologue): Don't generate + insns by hand. + +2004-02-17 Zdenek Dvorak + + * cfghooks.c (split_edge): Speed up updating of dominators. + +2004-02-17 Mark Mitchell + + PR c++/11326 + * c-common.c (flag_abi_version): Remove. + * c-common.h (flag_abi_version): Likewise. + * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case. + * c.opt (fabi-version): Remove. + * calls.c (expand_call): Always pass a function type to + struct_value_rtx. Use convert_memory_address. + * common.opt (fabi-version): Add it. + * flags.h (flag_abi_version): Likewise. + (abi_version_at_least): New macro. + * opts.c (common_handle_option): Add OPT_fabi_version. + * toplev.c (flag_abi_version): Define it. + * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p): + New function. + (ia64_output_mi_thunk): Use it. + (ia64_struct_value_rtx): Likewise. + +2004-02-17 Kazu Hirata + + * config/h8300/h8300.c (h8300_emit_stack_adjustment): + Don't generate insns by hand. + +2004-02-17 Andrew Pinski + + PR c++/14178 + * doc/invoke.texi (fabi-version): The default is 2 now. + +2004-02-17 Zdenek Dvorak + + * loop-iv.c: New file. + * Makefile.in (loop-iv.o): New. + * basic_block.h (FOR_BB_INSNS, FOR_BB_INSNS_REVERSE): New macros. + * cfgloop.c (fill_sons_in_loop, get_loop_body_in_dom_order, + num_loop_branches): New functions. + * cfgloop.h (get_loop_body_in_dom_order, num_loop_branches, + iv_analysis_loop_init, iv_get_reaching_def, iv_analyse, get_iv_value, + find_simple_exit, iv_number_of_iterations, iv_analysis_done, + get_simple_loop_desc, free_simple_loop_desc): Declare. + (simple_loop_desc): New inline function. + (struct rtx_iv, struct niter_desc): New. + * cfgloopmanip.c (loopify): Specify semantics more precisely. + * expr.c (force_operand): Handle subregs of expressions created by + loop unroller. + * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Move + parts of the initialization to toplev.c + * loop-unroll.c (loop_exit_at_end_p): New. + (unroll_and_peel_loops): Call iv_analysis_done. + (decide_peel_once_rolling, decide_peel_completely, + decide_unroll_stupid, decide_unroll_constant_iterations, + decide_unroll_runtime_iterations, decide_peel_simple, + peel_loop_simple, unroll_loop_stupid, unroll_loop_constant_iterations, + unroll_loop_runtime_iterations): Use new simple loop analysis. + * loop-unswitch.c (compare_and_jump_seq): New. + (may_unswitch_on_p): Renamed to ... + (may_unswitch_on): Use new iv analysis. + (reversed_condition): Export. + (unswitch_single_loop, unswitch_loop): Use new iv analysis. + * predict.c (estimate_probability): Use new simple loop analysis. + * rtl.h (get_mode_bounds, reversed_condition,compare_and_jump_seq, + canon_condition, simplify_using_condition): Declare. + * stor-layout.c (get_mode_bounds): New. + * toplev.c (rest_of_handle_loop2): Some parts of + initialization/finalization moved here from loop-init.c. + +2004-02-17 Kazu Hirata + + * config/h8300/h8300.h (FIXED_REGISTERS): Add the soft frame + pointer. + (CALL_USED_REGISTERS): Likewise. + (REG_ALLOC_ORDER): Likewise. + (REG_CLASS) : Likewise. + +2004-02-16 Geoffrey Keating + + * doc/md.texi (Insn Canonicalizations): Document left-chaining + in associative operators. + * rtlanal.c (commutative_operand_precedence): Create some new + variables. Prefer a commutative operand on the left, then + binary expressions, then NEG and NOT. + +2004-02-16 Matthias Klose + + * config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME + in terms of SHLIB_SOVERSION. + * config/m68k/t-slibgcc-elf-ver: New file. + * config/pa/t-slibgcc-elf-ver: New file. + * config.gcc (m68k-linux, parisc-linux): Use them when not + sjlj exceptions are not configured. + +2004-02-16 Eric Botcazou + + * config/sparc/sparc.c (get_pc_symbol_name): Mark with GTY(()). + +2004-02-16 Zack Weinberg + + * sdbout.c (sdb_debug_hooks): Correct the type_decl entry. + +2004-02-16 Joseph S. Myers + + * doc/sourcebuild.texi: Mention backends.html. + +2004-02-16 Kazu Hirata + + * c-decl.c, c-ppoutput.c, cpphash.h, cpplib.h, dbxout.c, + line-map.c, line-map.h, var-tracking.c: Fix comment + formatting. + +2004-02-16 Richard Henderson + + * cse.c (cse_insn): Don't lose REG_NON_LOCAL_GOTO note. + + * fold-const.c (operand_equal_p): Fix VECTOR_CST comparison. + +2004-02-15 Kazu Hirata + + * config/h8300/h8300.md: Remove unnecessary parallels from + all define_insn and define_split patterns. + +2004-02-15 Kazu Hirata + + * config/h8300/h8300.md: Remove explicit (set_attr "cc" + "clobber"). + +2004-02-15 Bernardo Innocenti + + * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Restore support for + '%#'. + +2004-02-15 Kazu Hirata + + * config/ia64/ia64.c, config/mips/mips.c, + config/mmix/mmix-modes.def: Fix comment typos. + +2004-02-15 Roger Sayle + + * c-common.h (GET_DIRECTIVE_LINE): Remove unused macro. + (get_directive_line): Remove unused function prototype. + +2004-02-14 Josef Zlomek + + * tree-inline.c (copy_body_r): Do not replace ret_label. + +2004-02-14 Jan Hubicka + + * i386.c (x86_four_jump_limit): New variable. + (k8_avoid_jump_misspredicts): Rename to ... + (ix86_avoid_jump_misspredicts): .. this one. + (ix86_pad_returns): Break out from ... + (ix86_reorg): ... this one; do ix86_avoid_jump_misspredicts when asked + to. + * i386.h (TARGET_FOUR_JUMP_LIMIT): New macro. + +2004-02-14 Josef Zlomek + + * emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of + PARALLEL is NULL. + +2004-02-14 Per Bothner + + * fix-header.c (line_table): Move local variable in main to global. + * scan.h (line_table): Use it. + * scan-decls.c (scan_decls): Need to call linemap_lookup on token's + line (recently renamed to src_loc) before calling recognized_function. + +2004-02-14 Matt Kraai + + * Makefile.in: Fix comment typos. + +2004-02-14 Olivier Hainque + + * loop.c (check_dbra_loop): Use gen_int_mode instead of GEN_INT + for start_value when it is directly moved into reg, and factorize + the retrieval of GET_MODE (reg). + +2004-02-14 Richard Sandiford + + * config/mips/mips-protos.h (mips_load_got_page): Delete. + (mips_load_got_global): Delete. + (mips_gotoff_page): Declare. + * config/mips/mips.md (UNSPEC_LOAD_GOT): New constant. + (*xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i): Build an + UNSPEC_LOAD_GOT pattern rather than a MEM. + (*load_got[sd]i): New patterns. + * config/mips/mips.c (mips_got_alias_set, mips_load_got): Delete. + (mips_load_got_page, mips_load_got_global): Delete. + (mips_gotoff_page): New function. + (override_options): Don't initialize mips_got_alias_set. + +2004-02-14 Richard Sandiford + + * config/mips/mips.h (MASK_DEBUG_[ABEFI], TARGET_DEBUG_[ABEFI]_MODE) + (TARGET_MIPS4100, TARGET_MIPS4300, TARGET_MIPS4KC, TARGET_MIPS5KC) + (TARGET_SB1, TUNE_SB1, TUNE_SR71K, BIGGEST_MAX_ARGS_IN_REGISTERS) + (GO_PRINTF, GO_PRINTF2, GO_DEBUG_RTX, DFMODE_NAN, SFMODE_NAN): Delete. + (TARGET_SWITCHES): Remove MASK_DEBUG_[ABEFI]. + * config/mips/mips.c: Fix some overly-long lines. + (SINGLE_WORD_MODE_P, PIC_OFFSET_TABLE_MASK): Delete. + (init_cumulative_args): Remove TARGET_DEBUG_E_MODE handling. + +2004-02-13 Rainer Orth + + * configure.ac: Search for as, ld below libexec/gcc. + * configure: Regenerate. + +2004-02-14 Ben Elliston + + * config/arm/mmintrin.h (_mm_setwcx): Reverse arguments in call to + __builtin_arm_setwcx (). + * config/arm/arm.c (arm_expand_builtin): Generate operands + correctly and reverse their order in call to gen_iwmmxt_tmcr (). + +2004-02-14 Ben Elliston + + * config/arm/arm.c (bdesc_2arg): Correct builtin names "wmulsh" + and "wmuluh" to "wmulsm" and "wmulum", respectively. + * config/arm/arm.h (enum arm_builtins): Rename enumerators to + ARM_BUILTIN_WMULSM and ARM_BUILTIN_WMULUM. + * config/arm/mmintrin.h (_mm_mulhi_pi16): Update intrinsic call. + (_mm_mulhi_pu16): Likewise. + +2004-02-13 Zack Weinberg + + * xcoffout.c (xcoff_assign_fundamental_type_number): Check + DECL_NAME != 0 before dereferencing. + +2004-02-13 Ulrich Weigand + + * config/s390/s390-protos.h (s390_output_symbolic_const): Remove. + (s390_output_addr_const_extra): Declare. + (s390_output_pool_entry): Remove FILE * argument. + * config/s390/s390.c (s390_output_symbolic_const): Remove. + (s390_output_addr_const_extra): New function. + (print_operand_address): Call output_addr_const instead of + s390_output_symbolic_const. + (print_operand): Likewise. + (s390_output_pool_entry): Use assemble_integer for symbolic constants. + Remove FILE * argument. + * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Define. + * config/s390/s390.md ("*pool_entry"): Adapt s390_output_pool_entry + call. + +2004-02-13 Zdenek Dvorak + + * cfgloopanal.c (mark_irreducible_loops): Rewriten. + (struct edge, struct vertex, struct graph): New. + (dump_graph, new_graph, add_edge, dfs, check_irred, for_each_edge, + free_graph): New functions. + +2004-02-12 Chris Demetriou + + * config/mips/mips.md (casesi_internal, casesi_internal_di): + Use ".set macro" to avoid warnings about multi-instruction + macros, since they're intentional. + +2004-02-12 Geoffrey Keating + + * config/darwin.h: Add include guards. Remove old, now incorrect, + comment about STANDARD_EXEC_PREFIX. + + * Makefile.in (install-man): Use $(CPP_INSTALL_NAME) and + $(GCOV_INSTALL_NAME) to install manpages. Remove generic rule + for installing .1 manpages. Add rules for installing cpp + and gcov manpages under their installed names. + +2004-02-12 Alexandre Oliva + + * configure.ac (gcc_cv_ld): Don't set to LD if target is not + host, but try LD_FOR_TARGET first. + * configure: Rebuilt. + +2004-02-12 Zack Weinberg + + * dbxout.c: Move declaration of dbxout_type_decl outside + #ifdef DBX_DEBUGGING_INFO. + * c-parse.in: Don't give the asmdef production a type. + +2004-02-12 Zack Weinberg + + * debug.h (struct gcc_debug_hooks): Add type_decl field. + (debug_nothing_tree_int): Prototype. + (dwarf_debug_hooks): Delete, unused. + * debug.c (do_nothing_debug_hooks): Update. + (debug_nothing_tree_int): New function. + * langhooks.h (struct lang_hooks_for_decls): + Remove builtin_type_decls field. + * langhooks-def.h (LANG_HOOKS_BUILTIN_TYPE_DECLS): Delete. + (LANG_HOOKS_DECLS): Update. + * toplev.c (rest_of_decl_compilation, rest_of_type_compilation): + Use debug_hooks->type_decl. + * dbxout.c (preinit_symbols): New static. + (dbx_debug_hooks, xcoff_debug_hooks): Update. + (dbxout_init): Don't call DBX_OUTPUT_STANDARD_TYPES or + lang_hooks.decls.builtin_type_decls. Do scan preinit_symbols + for symbols to output. + (dbxout_type_decl): New function. + (dbxout_symbol): If called before dbxout_init has run, queue + the symbol for later. Apply DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER + to TYPE_DECLs before emitting them. + * xcoffout.c (assign_type_number): Delete. + (xcoff_type_numbers): New static table. + (xcoff_assign_fundamental_type_number): New function. + * xcoffout.h: Define DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER, not + DBX_OUTPUT_STANDARD_TYPES. Remove unnecessary #ifdefs. + * sdbout.c: Include varray.h. + (deferred_global_decls): New static. + (sdb_debug_hooks): Update. + (sdbout_global_decl): If we can't emit something right now, + remember it in deferred_global_decls. + (sdbout_finish): Just scan deferred_global_decls; don't call getdecls. + (sdbout_init): Initialize deferred_global_decls. + * Makefile.in: Update dependencies of sdbout.o. + * dwarf2out.c (dwarf2out_type_decl): New function. + (dwarf2_debug_hooks): Update. + * vmsdbgout.c (vmsdbg_debug_hooks): Update. + * c-decl.c (getdecls): Just return 0. + (check_for_loop_decls): Don't use getdecls. + (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL. + * c-objc-common.c (c_objc_common_finish_file): Don't use getdecls. + +2004-02-12 Ulrich Weigand + + * config/s390/s390.c (s390_sched_reorder2): Remove. + (TARGET_SCHED_REORDER2): Do not redefine. + +2004-02-12 Zack Weinberg + + * c-parse.in (maybe_type_qual): Delete. + (maybe_volatile, simple_asm_expr, asmdef, asm_stmt) + (asm_argument): New grammar rules. + (extdef_1): Use asmdef. + (maybeasm): Move down with other asm rules; use simple_asm_expr. + (xexpr): Move up with other expression rules. + (stmt): Use asm_stmt. + + * c-typeck.c (build_asm_expr): New function - body mostly + pulled from build_asm_stmt. + (build_asm_stmt): Just handle tacking on the volatile qualifier. + * c-tree.h (build_asm_expr, build_asm_stmt): Update prototypes. + +2004-02-12 Richard Sandiford + + PR bootstrap/13617 + * config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare. + (mips_declare_object): Make variadic. + * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use + mips_output_aligned_decl_common. + * config/mips/mips.c (mips_output_aligned_decl_common): New function. + (mips_declare_object): Make variadic. + +2004-02-12 Richard Kenner + + * function.c (update_epilogue_consts): Teach about binary operations. + + * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill + previous MEM_VOLATILE in REF. + * function.c (fixup_var_refs): Save volatile_ok and set to 1. + * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok. + +2004-02-12 Gunther Nikl + + * config.gcc: Restore support for m68k-openbsd. + +2004-02-12 Jan Hubicka + + * tree-optimize.c (tree_rest_of_compilation): Do not release + DECL_ARGUMENTS. + +2004-02-11 Matt Kraai + + * doc/install.texi: Fix the spelling of "explicitly". + +2004-02-11 Eric Christopher + + * cppcharset.c (_cpp_interpret_string_notranslate): Rename and + duplicate argument structure of cpp_interpret_string. + * cpphash.h: Move prototype... + * cpplib.h: Here. + * cpplib.c: Fix calls to match new function signature. + +2004-02-11 Joseph S. Myers + + PR c/456 + * cppexp.c (num_binary_op): Don't allow comma operators in #if + constant expressions at all outside C99 mode if pedantic. + +2004-02-11 Uros Bizjak + + * optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2. + (log10_optab, log2_optab): Define corresponding macros. + * optabs.c (init_optabs): Initialize log10_optab and log2_optab. + * genopinit.c (optabs): Implement log10_optab and log2_optab + using log10?f2 and log2?f2 patterns. + * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L} + using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab. + (expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L} + using expand_builtin_mathfn if flag_unsafe_math_optimizations is set. + + * config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2, + log2df2, log2xf2): New patterns to implement log10, log10f, log10l, + log2, log2f and log2l built-ins as inline x87 intrinsics. + +2004-02-11 Richard Henderson + + PR target/1532 + * flow.c (insn_dead_p): A clobber of a dead hard register is a + dead insn after reload. + +2004-02-11 Ulrich Weigand + + * tree.h (frame_base_decl): Add GTY marker. + * var-tracking.c (frame_base_decl): Likewise. + +2004-02-11 Daniel Berlin + + * dwarf2out.c (output_loc_list): Remove no longer necessary, and now + incorrect, hunk. + (add_location_or_const_value_attribute): Use text_section_label, + not TEXT_SECTION_NAME. + +2004-02-11 Per Bothner + + Represent column numbers using line-map's source_location. + The "next available source_location" is now managed internally by + line-maps.c rather than by clients. + * line-map.h (struct line_map): New field column_bits. + : Rename field to start_location. + (struct line_maps): New fields highest_location and max_column_hint. + (linemap_check_files_exited): New declaration. + (linemap_line_start): New declaration. + (linemap_add): Remove from_line parameter; use highest_location field. + (SOURCE_LINE, LAST_SOURCE_LINE): Modify to use column_bits. + (SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION): New macros. + (CURRENT_LINE_MAP): Remove macro. + (linemap_position_for_column): New inline function. + * line-map.c (linemap_init): Clear new fields. + (linemap_check_files_exited): New function, extracted from ... + (linemap_free): Use linemap_check_files_exited. + (linemap_add): Remove from_line parameter. Various updates. + (linemap_line_start): New function. + (linemap_lookeup): Update for new field names. + * cpphash.h (struct cpp_reader) : Field removed. Because + linemap_position_for_column may unpredictably change the current map, + it is cleaner and simpler for us to not cache it in cpp_reader. + (struct cpp_buffer): New sysp field. + Changed warned_cplusplus_comments and from_stage3 to bitfields. + * cppinit.c (cpp_read_min_file): pfile->map no longer exists. + * cpplib.c (do_line, do_linemarker, _cpp_do_file_change): Get + current map using linemap_lookup. + (do_linemarker): Also set buffer's sysp field. + (destringize_and_run): No longer need to decrement current line. + * cppfiles.c (_cpp_stack_file): Set sysp from and in buffer. + (search_path_head, open_file_failed): Use buffer's sysp. + (cpp_make_system_header): Get current map using linemap_lookup. + Also set buffer's sysp flag. + * cppmacro.c (_cpp_builtin_macro_text): Likewise use linemap_lookup. + * cpphash.h (CPP_INCREMENT_LINE): New macro. + (struct cpp_buffer): Moved fields saved_cur, saved_rlimit to ... + (struct cpp_reader): ... and adding saved_line_base field. + * cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay): + Update accordingly. Don't adjust line. + (_cpp_scan_out_logical_line): Use CPP_INCREMENT_LINE. + * cpphash.c (CPP_IN_SYSTEM_HEADER): Replaced macro by ... + (cpp_in_system_header): ... new inline function, using buffer's sysp. + * cpperror.c (_cpp_begin_message): Update to use cpp_in_system_header. + * cpplex.c (_cpp_lex_direct): Likewise. + * cppmacro.c (_cpp_builtin_macro_text): Likewise. + * cppmacro.c (_cpp_create_definition): Use buffer's sysp field. + * cpplib.h (struct cpp_token): Rename line field to src_loc. + Remove col field as it is now subsumed by src_loc. + * cpperror.c: Update various field, parameter, and macro names. + (print_location): If col==0, try SOURCE_COLUMN of line. + (cpp_error): Use cur_token's src_loc field, rather than line+col. + * cpplib.c (do_diagnostic): Token's src_loc fields replaces line+col. + * cpplex.c (_cpp_process_line_notes, _cpp_lex_direct, + _cpp_skip_block_comment): Use CPP_INCREMENT_LINE. + (_cpp_temp_token): Replace cpp_token's line+col fields by src_loc. + (_cpp_get_fresh_line): Don't need to adjust line for missing newline. + (_cpp_lex_direct): Use linemap_position_for_column. + * c-ppoutput.c (maybe_print_line, print_line): Don't take map + parameter. Instead get it from the line_table global. Adjust callers. + (print): Remove map field. Replace line field to src_line. + (init_pp_output, account_for_newlines, maybe_print_line): Adjust. + (cb_line_change): Use SOURCE_COLUMN. Minor optimizations. + (pp_file_change): Use MAIN_FILE_P since we cannot checked print.map. + Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include. + * cpptrad.c (copy_comment): Rename variable. + * c-lex.c (map): Remove static variable, for same reason we removed + cpp_reader's map field. + (cb_line_change, cb_def_pragma, cb_define, cb_undef): Hence we need + to call linemap_lookup. + (cb_line_change): Token's line field replaced by src_loc. + (fe_file_change): Use MAINFILE_P and LAST_SOURCE_LINE macros. + Don't save new_map. + + * cpphash.h, cpperror.c, cpplib.h: Some renames of fileline to + source_location. + +2004-02-11 Hartmut Penner + + * config/rs6000/altivec.md (*movv4si_internal): At least one + operand must be register_operand. + (*movv8hi_internal1): Likewise. + (*movv16qi_internal1): Likewise. + (*movv4sf_internal1): Likewise. + +2004-02-10 Aldy Hernandez + + * config/rs6000/spe.md ("*movv2si_internal"): Check for register + operand. + (movv4hi_internal): Same. + (movv2sf_internal): Same. + (movv1di_internal): Same. + +2004-02-11 Thiemo Seufer + + * config/mips/mips.h (TARGET_OLDABI): Define. Use TARGET_NEWABI and + TARGET_OLDABI consistently. + * config/mips/mips.c (function_arg,mips_setup_incoming_varargs, + mips_va_arg,override_options,compute_frame_size, + mips_initial_elimination_offset,mips16_fp_args,build_mips16_call_stub + ,mips_return_in_memory,mips_strict_argument_naming): Use TARGET_NEWABI + and TARGET_OLDABI consistently. + * config/mips/mips.md (exception_receiver): Likewise. + * config/mips/linux64.h: Likewise. + +2004-02-11 Hartmut Penner + + * gcc/config/rs6000/rs6000.c (rs6000_override_options) + Set AltiVec ABI and vrsave as default for ppc64 linux. + (init_cumulative_args): Post error, if try to return + value in AltiVec register without enable AltiVec. + (function_arg_advance): Ditto for passing arguments. + +2004-02-11 Richard Sandiford + + * emit-rtl.c (mark_label_nuses): Check that a LABEL_REF refers to + a label before updating its usage count. + +2004-02-10 Matt Kraai + + * doc/install.texi: Remove extra cd. + +2004-02-10 Ziemowit Laski + + * c-common.c (vector_size_helper): Remove; call + reconstruct_complex_type() instead. + * tree.c (reconstruct_complex_type): New function + (formerly vector_size_helper() in c-common.c). + (make_vector): Make externally visible. + * tree.h (reconstruct_complex_type, make_vector): Add prototypes. + +2004-02-10 Kazu Hirata + + * config/h8300/h8300-protos.h: Add a prototype for + h8300_regs_ok_for_stm. + * config/h8300/h8300.c (h8300_regs_ok_for_stm): New. + * config/h8300/h8300.md (stm_h8300s_2_advanced, + stm_h8300s_2_normal, stm_h8300s_2, stm_h8300s_3_advanced, + stm_h8300s_3_normal, stm_h8300s_3, stm_h8300s_4_advanced, + stm_h8300s_4_normal, stm_h8300s_4, ldm_h8300s_2_advanced, + ldm_h8300s_2_normal, ldm_h8300s_2, ldm_h8300s_3_advanced, + ldm_h8300s_3_normal, ldm_h8300s_3, ldm_h8300s_4_advanced, + ldm_h8300s_4_normal, ldm_h8300s_4): Use + h8300_regs_ok_for_stm(). + +2004-02-10 Danny Smith + + PR c/14088 + * real.c (real_from_string): Look for 'X' as well as 'x' in + hexfloat strings. + +2004-02-10 Kazu Hirata + + * config/h8300/h8300.md: Remove an incorrect comment about + peephole2. Add comments. + +2004-02-10 Josef Zlomek + + PR/14058 + * emit-rtl.c (set_decl_incoming_rtl): New. + * tree.h (set_decl_incoming_rtl): New. + * function.c (assign_parms): Use set_decl_incoming_rtl for setting + DECL_INCOMING_RTL. + * ada/misc.c (adjust_decl_rtl): Likewise. + +2004-02-10 Per Bothner + + * c-opts.c (c_common_post_options): Don't emit working directory + in cpp output if -P was specified. + +2004-02-10 Paolo Bonzini + + PR c/14092 + * fold-const.c (fold) : Convert result of + negate_expr back to the original type. + +2004-02-10 Alan Modra + + * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't + bump retaddr here. + +2004-02-10 Paolo Bonzini + + * rtl.h (schedule_insns, schedule_ebbs, fix_sched_param, + gen_lowpart_SUBREG): Move under the file in which they + are actually declared. + +2004-02-10 Arnaud Charlet + + * doc/sourcebuild.texi: Add libada documentation. + + * doc/install.texi: Update documentation on Ada build, now + that the GNAT lib and tools are built automatically. + +2004-02-10 Richard Sandiford + + * config/mips/mips.h (TARGET_GPWORD): Return false for TARGET_NEWABI + && TARGET_IRIX. + +2004-02-09 Ziemowit Laski + + * objc/objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS' + boundaries outside build_component_ref() call (a macro in ObjC++). + +2004-02-09 Bob Wilson + + * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update. + (init_cumulative_args): Likewise. + (a7_overlap_mentioned_p): Delete prototype. + * config/xtensa/xtensa.c (struct machine_function): Replace + incoming_a7_copied field with need_a7_copy and vararg_a7 flags. + Add set_frame_ptr_insn field. + (xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7. + (xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check + if the operand is an argument in a7. If so, copy a7 to a new pseudo + at the function entry and replace the operand with the pseudo. + (init_cumulative_args): Remove unused arguments. Add new "incoming" + argument and record this flag in CUMULATIVE_ARGS. + (function_arg): Remove result_mode and special-case code to handle + arguments in a7. Instead, set need_a7_copy flag when there is an + incoming argument in a7. + (xtensa_expand_prologue): Remove code to search for set_frame_ptr insn + and use the value recorded in cfun->machine->set_frame_ptr_insn. + (xtensa_builtin_saveregs): Check for negative gp_left value. Set + need_a7_copy and vararg_a7 flags. Use move_block_from_reg instead of + special-case code. + (a7_overlap_mentioned_p): Delete. + * config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag. + (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless + arguments to init_cumulative_args and pass "incoming" flag instead. + (BLOCK_REG_PADDING): Delete. + * config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary + checks for reload_in_progress and reload_completed. Update calls to + xtensa_copy_incoming_a7. + (ashlsi3): Rename existing insn to ashlsi3_internal. Add expander + to call xtensa_copy_incoming_a7. + +2004-02-09 DJ Delorie + + * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No + longer modify standard_exec_prefix, standard_bindir_prefix, or + standard_startfile_prefix. + +2004-02-09 James E Wilson + + PR c++/11295 + * c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call + to expand_expr_real call, and pass in alt_rtl as last argument. + + PR libstdc++/5625 + * builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New. + * builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER. + * builtins.def (BUILT_IN_EXTEND_POINTER): New. + * except.c (expand_builtin_extend_pointer): New. + * except.h (expand_builtin_extend_pointer): Declare. + +2004-02-09 David Edelsohn + + * config/rs6000/rs6000.c (rs6000_emit_move): Remove splitting slow + unaligned loads and stores. + +2004-02-09 Rainer Orth + + * config/mips/iris5.h (BSS_SECTION_ASM_OP): Define. + * config/mips/iris6.h (BSS_SECTION_ASM_OP): Undef. + + * config/mips/iris6.h (TARGET_ASM_NAMED_SECTION): Moved ... + * config/mips/iris5.h: ... here. + * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Remove. + + * config/mips/iris6.h (EXTRA_SECTION_FUNCTIONS): Move ... + * config/mips/iris5.h: ... here. + +2004-02-09 Rainer Orth + + * configure.ac: Remove default executable files before AC_PROG_CC. + * configure: Regenerate. + +2004-02-09 Kazu Hirata + + PR target/13721 + * config/h8300/h8300.c (byte_reg): Call abort() if asked to + print a operand other than a register. + +2004-02-09 Roger Sayle + + * fold-const.c (fold) : Use the original type conversion + tree code rather than call fold_convert, which doesn't specify a + default floating point to integer conversion. + +2004-02-08 Bernardo Innocenti + + * config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove + code to support SGS assembler. Reformat adjacent code where possible. + * config/m68k/m68k.c (switch_table_difference_label_flag): Remove + definition. + * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support + for '%#'. + * config/m68k/linux.h, config/m68k/m68k.c, + * config/m68k/math-68881.h: Replace `%#' with `#' in inline asm + macros and asm_printf() format strings. + * config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition. + * config/m68k/linux.h: Update copyright. + * config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace. + +2004-02-08 Andreas Schwab + Bernardo Innocenti + + * config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with + REGISTER_PREFIX. + * (M68K_FP_REG_NAME): New macro to specify an alternate name for the + frame pointer register, overridable by OS targets. + * (M68K_REGNAME): Macro to obtain register name for asm output, + eventually replacing %a6 with M68K_FP_REG_NAME. + * config/m68k/coff.h (REGISTER_NAMES): Don't redefine. + * config/m68k/linux.h (REGISTER_NAMES): Likewise. + * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise. + * config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise. + * config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x]. + +2004-02-08 Kazu Hirata + + * target-def.h (TARGET_STRUCT_VALUE_RTX): Define as + hook_rtx_tree_int_null. + * targhooks.c (default_struct_value_rtx): Remove. + * targhooks.h: Remove the prototype for + default_struct_value_rtx. + * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c, + config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c, + config/ip2k/ip2k.c, config/iq2000/iq2000.c, + config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c, + config/mn10300/mn10300.c, config/pdp11/pdp11.c, + config/rs6000/rs6000.c, config/s390/s390.c, + config/stormy16/stormy16.c, config/v850/v850.c, + config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove. + * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default. + +2004-02-08 Joseph S. Myers + + * README.Portability: Change "ISO C89" to "ISO C90". + * c-parse.in (primary, initelt): Likewise. + +2004-02-08 Richard Sandiford + + * real.c (encode_ibm_extended): Normalize the input value before + converting it to a double. Handle the case where a normal value + rounds to infinity. + +2004-02-08 Kazu Hirata + + * c-objc-common.c (c_cannot_inline_tree_fn): Fix a typo in a + warning. + * cse.c (preferrable): Change to preferable. Update all of its + callers. + * genautomata.c (ainsn): Change + first_ainsn_with_given_equialence_num to + first_ainsn_with_given_equivalence_num. Update all of its + references. + +2004-02-08 Jan Hubicka + + * schedule-ebb.c (schedule_ebbs): Do not allocate reg life data. + +2004-02-07 David Edelsohn + + * function.c (assign_parms): Fix formatting. + +2004-02-07 Kazu Hirata + + * default.h (PROMOTE_PROTOTYPES): Remove. + * system.h (PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES, + STRUCT_VALUE_REGNUM, SETUP_INCOMING_VARARGS, + EXPAND_BUILTIN_SAVEREGS): Poison. + * target-def.h (TARGET_PROMOTE_FUNCTION_RETURN): Define as + hook_bool_tree_false. + (TARGET_PROMOTE_PROTOTYPES): Likewise. + * target.h: Replace SETUP_INCOMING_VARARGS with + targetm.calls.setup_incoming_varargs(). + * targhooks.c (default_promote_function_return): Remove. + (default_promote_prototypes): Likewise. + (default_struct_value_rtx): Always abort(). + (default_expand_builtin_saveregs): Always print an error + message. + (default_setup_incoming_varargs): Do nothing. + (default_pretend_outgoing_varargs_named): Don't depend on + SETUP_INCOMING_VARARGS. + * targhooks.h: Remove the prototype for + default_promote_function_return and + default_promote_prototypes. + +2004-02-07 Kazu Hirata + + * system.h (SHARED_SECTION_ASM_OP): Poison. + * varasm.c (data_section): Don't use SHARED_SECTION_ASM_OP. + * doc/tm.texi (SHARED_SECTION_ASM_OP): Remove. + +2004-02-07 Zack Weinberg + + Bug 13856 + * c-decl.c (diagnose_mismatched_decls): Only give special + treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE + is also true. + (merge_decls): Don't clear DECL_BUILT_IN_CLASS and + DECL_FUNCTION_CODE when defining a built-in function. + Don't update DECL_ESTIMATED_INSNS. + * dwarf2out.c (dwarf2out_decl): Don't ignore built-in + FUNCTION_DECLs. + * tree.h: Delete DECL_ESTIMATED_INSNS. + * tree-inline.c (struct inline_data): Delete inlined_insns field. + (expand_call_inline, optimize_inline_calls): Don't update + DECL_ESTIMATED_INSNS nor inlined_insns. + * cgraphunit.c (cgraph_analyze_function): Don't update + DECL_ESTIMATED_INSNS. + +2004-02-07 Zack Weinberg + + * c-common.c (shadow_warning): Delete. + * c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete. + * c-decl.c (warn_if_shadowing): Issue shadow warnings directly. + * c-opts.c (c_common_parse_file): Don't call free_parser_stacks. + * c-parse.in (free_parser_stacks): Delete. + +2004-02-07 Nathanael Nerode + + * Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver, + config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux: + Use the top level mkinstalldirs, not the one in the gcc subdir. + * mkinstalldirs: Remove (from the gcc subdir). + +2004-02-07 Roger Sayle + + PR middle-end/13696 + * fold-const.c (fold_convert): New function to provide type + conversion to the middle-end without using convert. + (negate_expr, associate_trees, size_diffop, omit_one_operand, + operand_equal_for_comparison_p, pedantic_omit_one_operand, + invert_truthvalue, optimize_bit_field_compare, range_binop, + decode_field_reference, make_range, build_range_check, unextend, + fold_truthop, extract_muldiv_1, fold_mathfn_compare, + fold_binary_op_with_conditional_arg, fold_inf_compare, + fold_single_bit_test, fold, multiple_of_p): Replace all calls to + convert with calls to fold_convert. + +2004-02-07 Jan Hubicka + + * genrecog.c (find_operand): add extra argument stop. + (validate_pattern): Verify that mach_dup is duplicating operand + defined lexically earlier. + +2004-02-07 Kazu Hirata + + * config.gcc: Don't mention MAX_LONG_TYPE_SIZE. + * system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, + MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison. + * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h, + config/ia64/ia64.h, config/ip2k/ip2k.h, + config/iq2000/iq2000.h, config/mips/iris5.h, + config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h, + config/rs6000/aix51.h, config/rs6000/aix52.h, + config/rs6000/darwin.h, config/rs6000/rs6000.h, + config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h, + config/sparc/linux.h, config/sparc/linux64.h, + config/sparc/netbsd-elf.h, config/sparc/sparc.h, + config/xtensa/xtensa.h: Remove the definitions of + MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or + MAX_WCHAR_TYPE_SIZE. + * doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, + MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove. + +2004-02-07 Stephane Carrez + + PR bootstrap/13990 + * config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to + gen_rtx_NE. + +2004-02-07 Josef Zlomek + + * var-tracking.c (vt_add_function_parameters): Surround checkings by + #ifdef ENABLE_CHECKING and #endif. + +2004-02-07 Roger Sayle + + * fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into + either (-A)-B or (-B)-A, if A or B is easily negated respectively. + (fold) : Optimize (A*C) - (B*C) -> (A-B)*C for both + integer types and floating point with unsafe_math_optimizations. + Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2). + Optimize A - B as A + (-B), if B is easily negated. + +2004-02-07 Kazu Hirata + + * c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c, + config/darwin.c, config/darwin.h, config/ia64/ia64-c.c, + config/m32r/linux.h, config/rs6000/ppc64-fp.c, + config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi: + Update copyright. + +2004-02-07 Kazu Hirata + + * c-ppoutput.c, var-tracking.c: Fix comment typos. + +2004-02-06 James E Wilson + + * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for + glibc 2.3 or better. + +2004-02-06 Kazu Hirata + + * doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change + to FLOAT_LIB_COMPARE_RETURNS_BOOL. + +2004-02-07 Alan Modra + + * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c. + (SHLIB_MAPFILES): Add libgcc-ppc64.ver. + (SHLIB_MKMAP_OPTS): Delete. + (TARGET_LIBGCC2_CFLAGS): Add -specs. + (bispecs): Add rule. + * config/rs6000/libgcc-ppc64.ver: New file. + * config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions. + (__floatdidf, __floatdisf): Optimize multiply. + (__fixunstfdi): New function. + * config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for + real and imag parts larger than one register. + (function_arg): Correct type of reg used when fp arg split partially + to stack. + * config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT + and __MACH__ or __powerpc64__. + +2004-02-06 Roger Sayle + Ulrich Weigand + + * builtins.c (expand_builtin_signbit): Use extract_bit_field instead + of gen_highpart or gen_lowpart when the floating point format is + wider than the result mode. + +2004-02-06 Andrew Pinski + + * dwarf2out.c (loclabel_num): Move into #ifdef + DWARF2_DEBUGGING_INFO. + +2004-02-06 Ziemowit Laski + + * objc/objc-act.c (build_super_template) the 'class' field of + 'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS. + (get_super_receiver): Likewise. + +2004-02-06 Kazu Hirata + + * reload1.c (check_eliminable_occurrences): Optimize the reset + of can_eliminate. + (eliminate_regs_in_insn): Likewise. + +2004-02-06 Daniel Berlin + Josef Zlomek + + * dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function + at the beginning of function, call dwarf2out_var_location for + NOTE_INSN_VAR_LOCATION note. + (struct var_loc_node, struct var_loc_list_def, loclabel_num, + decl_loc_table): New. + (lookup_decl_loc): New function. + (add_var_loc_to_decl): New function. + (based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used + only if can_use_fbreg. + (mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other + functions. + (loc_descriptor): Likewise. Process VAR_LOCATION. + (concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true. + (loc_descriptor_from_tree): Call mem_loc_descriptor with + can_use_fbreg == true. + (add_location_or_const_value_attribute): Added parameter enum + dwarf_attribute attr, generate attribute ATTR. Create the location list. + (add_bound_info): Call loc_descriptor with can_use_fbreg == true. + (gen_formal_parameter_die): Call add_location_or_const_value_attribute + with attr == DW_AT_location. + (gen_subprogram_die): Generate the location list for DW_AT_frame_base + if frame_base_decl is defined and has a location list. + (gen_variable_die): Call add_location_or_const_value_attribute with + attr == DW_AT_location. + (dwarf2out_var_location): New function. + (dwarf2out_begin_function): New function. + (dwarf2out_init): Create decl_loc_table. + +2004-02-06 Ulrich Weigand + + * loop.c (force_movables): Transitively increase the priorities of + all insns forces by an insn, not just the first one. + +2004-02-06 Josef Zlomek + Daniel Berlin + + Josef Zlomek + * Makefile.in (var-tracking.o): New. + * common.opt (fvar-tracking): New. + * flags.h (flag_var_tracking): New. + * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added. + * opts.c (common_handle_option): Add OPT_fvar_tracking. + * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added. + * rtl.c (note_insn_name): Likewise. + * rtl.def (VAR_LOCATION): New. + * rtl.h (NOTE_VAR_LOCATION): New. + (NOTE_VAR_LOCATION_DECL): New. + (NOTE_VAR_LOCATION_LOC): New. + (enum insn_note): NOTE_INSN_VAR_LOCATION was added. + (variable_tracking_main): New exported function. + * timevar.def (TV_VAR_TRACKING): New. + * toplev.c (enum dump_file_index): Added DFI_vartrack. + (dump_file): "vartrack" was added (-dV). + (flag_var_tracking): New. + (f_options): "var-tracking" was added. + (rest_of_handle_variable_tracking): New function. + (rest_of_compilation): Run variable tracking. + (process_options): If user has not specified flag_var_tracking set it + according to optimize, debug_info_level and debug_hooks. + * tree.h (frame_base_decl): New. + * var-tracking.c: New file. + * config/ia64/ia64.c (ia64_flag_var_tracking): New variable. + (ia64_override_options): Set flags to run variable tracking in machine + dependent reorg instead of toplev.c. + (ia64_reorg): Run variable tracking if wanted. + * doc/invoke.texi: Mention variable tracking in -dV, + add and -fvar-tracking. + * doc/passes.texi: Added variable tracking pass. + + Daniel Berlin + * debug.h (struct gcc_debug_hooks): Added var_location debug hook. + * dbxout.c (dbx_debug_hooks): Likewise. + (xcoff_debug): Likewise. + * debug.c (do_nothing_debug_hooks): Likewise. + * dwarf2out.c (dwarf2_debug_hooks): Likewise. + * dwarfout.c (dwarf_debug_hooks): Likewise. + * sdbout.c (sdb_debug_hooks): Likewise. + * vmsdbgout.c (vmsdbg_debug_hooks): Likewise. + * final.c (final_scan_insn): Call var_location debug hook for each + NOTE_INSN_VAR_LOCATION. + +2004-02-06 Jan Hubicka + + * flow.c (update_life_info): Allocate reg_deaths when called from + scheudler. + (attempt_auto_inc): Update life ranges accordingly. + +2004-02-06 Ulrich Weigand + + PR debug/11816 + * dwarf2out.c (gen_decl_die): Handle anonymous struct members. + +2004-02-06 Ulrich Weigand + + * cfganal.c (flow_call_edges_add): Never split a libcall block. + +2004-02-06 Daniel Berlin + + * dwarf2out.c (output_loc_list): Don't use deltas if we have + a separate line info table in use. + Use the correct size for terminators. + (output_die): Use offset, not delta. + +2004-02-06 H.J. Lu + + * doc/invoke.texi: Remove the pni option from -mfpmath=. + +2004-02-06 Jan Hubicka + + * recog.c (split_all_insns): Do not update reg info. + * regrename.c (regrename_optimize): Likewise. + * toplev.c (rest_of_handle_reorder_blocks): Likewise. + * flow.c (struct propagate_block_info): Add insn_num field. + (reg_deaths): New array. + (life_analysis): Free reg_deaths info. + (allocate_reg_life_data): Allocate reg_deaths array. + (propagate_one_insn): Use new array. + (init_propagate_block): Initialize it. + (free_propagate_block_info): Finish compuation of + REG_LIVE_LENGTH + (attempt_auto_inc): Sanity check that REG_INFO is not + computed at same time. + (mark_used_regs): Update new array. + + * reg-stack.c (subst_stack_regs): Unshare clobbers before + substitution. + +2004-02-06 Kazu Hirata + + * config/s390/s390.md (*extendsiqi2_short_displ): Change to + *extendqisi2_short_displ. + +2004-02-06 Alan Modra + + * doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco. + * calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS. + (emit_library_call_value_1): Likewise pass nargs. + * expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here. + * function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS. + * config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args + parameter instead of scanning TYPE_ARGS_TYPES to count args. + * config/rs6000/rs6000-protos.h (init_cumulative_args): Update + prototype. + * config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg. + (INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000. + (INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0. + * config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to + INIT_CUMULATIVE_ARGS. + * config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update. + * config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h, + config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h, + config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h, + config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h, + config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h, + config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h, + config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h, + config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h, + config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h, + config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h, + config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise. + +2004-02-06 Kazu Hirata + + * genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever + possible. + +2004-02-06 Kazu Hirata + + * reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL + note containing (plus (reg) (const_int)), where reg is an + eliminable reg, then perform the register elimination without + depending on eliminate_regs(). + +2004-02-06 Kazu Hirata + + * config/arc/arc.c (arc_return_in_memory): Check the return + value of int_size_in_bytes against -1. Don't check + TREE_ADDRESSABLE. + * config/avr/avr.c (avr_return_in_memory): Check the return + value of int_size_in_bytes against -1. + * config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise. + * config/m68hc11/m68hc11.c (m68hc11_return_in_memory): + Likewise. + * config/mcore/mcore.c (mcore_return_in_memory): Likewise. + * config/stormy16/stormy16.c (xstormy16_return_in_memory): + Likewise. + +2004-02-06 Kazu Hirata + + * config/frv/frv-protos.h: Remove the prototype for + frv_setup_incoming_varargs. + * config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New. + (frv_setup_incoming_varargs): Make it static. + * config/frv/frv.h (SETUP_INCOMING_VARARGS): Remove. + +2004-02-06 Kazu Hirata + + * config/fr30/fr30-protos.h: Remove the prototype for + fr30_setup_incoming_varargs. + Update the prototypes for fr30_num_arg_regs and + fr30_function_arg_partial_nregs. + * config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New. + (TARGET_SETUP_INCOMING_VARARGS): Likewise. + (fr30_setup_incoming_varargs): Make it static. + Add argument second_time. Don't do anything when second_time + is nonzero. + (fr30_num_arg_regs): Change the type of the first argument to + enum machine_mode. + (fr30_function_arg_partial_nregs): Change the type of the + second argument to enum machine_mode. + * config/fr30/fr30.h (STRUCT_VALUE): Remove. + (SETUP_INCOMING_VARARGS): Remove. + +2004-02-06 Kazu Hirata + + * config/arc/arc-protos.h: Remove the prototype for + arc_setup_incoming_varargs. + * config/arc/arc.c (TARGET_ASM_EXTERNAL_LIBCALL): New. + (TARGET_SETUP_INCOMING_VARARGS): Likewise. + (arc_setup_incoming_varargs): Make it static. + (arc_external_libcall): Likewise. + * config/arc/arc.h (SETUP_INCOMING_VARARGS): Remove. + Remove the commented-out definition of + ASM_OUTPUT_EXTERNAL_LIBCALL. + +2004-02-05 SUGIOKA Toshinobu + + * config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR) + to $$(slibdir) in the installation commands. + +2004-02-05 David Edelsohn + + * reload.c (refers_to_regno_for_reload_p): Index hard_regno_nregs + with inner_regno, not regno. + * rtlanal.c (refers_to_regno_p): Same. + +2004-02-05 Kazu Hirata + + * config.gcc: Remove i370 support. + +2004-02-05 Kelley Cook + + * doc/install.texi: Update automake and autoconf version + requirements. Note where to find gcj automake version. + +2004-02-05 Kelley Cook + + * Makefile.in (generate-manpages): Move dependencies to ... + (man): here. + * doc/makefile.texi: Document new targets. + * doc/sourcebuild.texi (Make-lang.in): Document new langhooks. + +2004-02-05 Kelley Cook + + PR/13485 + Makefile.in (srcextra): Add a level of indirection to ... + (gcc.srcextra): ... here. + (po-generated): Delete. + (po/$(PACKAGE).pot: Use srcextra instead of po-generated. Depend on + options.c. + (start.encap): Remove superfluous lang.srcextra dependency. + objc/Make-lang.in (po-generated): Delete. + +2004-02-05 Kazu Hirata + + * config/ia64/ia64.c (REG_GP): Remove. + +2004-02-05 Rainer Orth + + * config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define. + +2004-02-05 Devang Patel + + * dwarf2out.c (force_type_die): Look up input type itself + instead of root_type() of type. + +2004-02-05 Andreas Krebbel + + * config/s390/s390.md ("*tmqidi_ext"): New insn. + ("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old + pre-reload splitters are transformed to post-reload + define_insn_and_split patterns. + ("*tmqisi_ext"): Renamed old "*tmqi_ext". + +2004-02-05 Kazu Hirata + + * config/cris/cris.h: Replace PROMOTE_PROTOTYPES with + TARGET_PROMOTE_PROTOTYPES. + +2004-02-05 Rainer Orth + + PR middle-end/13750 + Revert: + 2004-01-15 Geoffrey Keating + PR pch/13361 + * c-typeck.c (constructor_asmspec): Delete. + (struct initializer_stack): Delete field 'asmspec'. + (start_init): Delete saving of asmspec. + (finish_init): Don't update constructor_asmspec. + * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree. + * stmt.c (expand_asm): Duplicate strings from tree. + (expand_asm_operands): Likewise. + * tree.c (tree_size): Update computation of size of STRING_CST. + (make_node): Don't make STRING_CST nodes. + (build_string): Allocate string with tree node. + * tree.def (STRING_CST): Update comment. + * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST. + (tree_string): Place contents of string in tree node. + * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string + from tree. + +2004-02-05 Joseph S. Myers + + * diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to + msgid. + +2004-02-05 Dorit Naishlos + + * config/rs6000/altivec.md (*movv4si_internal): At least one + operand must be altivec_register_operand. + (*movv8hi_internal1): Likewise. + (*movv16qi_internal1): Likewise. + (*movv4sf_internal1): Likewise. + +2004-02-05 David Edelsohn + + * configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr. + * configure: Regenerate. + +2004-02-05 Jonathan Wakely + + * doc/install.texi: Update description of --gxx-include-dir to + give correct default value. + +2004-02-05 Kazu Hirata + + * config/h8300/h8300.h (REG_OK_FOR_BASE_NONSTRICT_P): Replace + 8 with MAC_REG. + +2004-02-05 Kazu Hirata + + * config/pa/pa.c (emit_hpdiv_const): Replace gen_rtx with + gen_rtx_PARALLEL. + +2004-02-05 Kazu Hirata + + * emit-rtl.c: Update the comment about the file. + +2004-02-05 Joseph S. Myers + + * sourcebuild.texi (Test Idioms): Update testcase naming + conventions. + +2004-02-04 Per Bothner + + Partially revert/redo 2003-10-01 change; fix -fworking-directory. + * c-ppoutput.c (pp_dir_change): New function. + * c-common.h (pp_dir_change): New declaration. + * cpplib.h (struct cpp_options): Remove working_directory field. + * cppinit.c (cpp_find_main_file, cpp_push_main_file): Merge back to + (cpp_read_main_file): as before 10-01. Call _cpp_stack_file. + Don't handle -fworking_directory here, but in c_common_post_options. + (read_original_directory): Don't back up when done. + Don't clear no-longer used working_directory flag. + * cpplib.h: Update declarations to match. + * c-lex.c (cb_dir_change): Move to c-opts.c. + (init_c_lex): Don't set dir_change callback here, since we want + to set it even if flag_preprocess_only. + * c-opts.c (cb_dir_change): Function moved from c-lex.c. + (c_common_post_options): Set dir_change callback. + Call pp_dir_change if approporiate. + (finish_options): Don't call cpp_find_main_file here. Hence remove + unneeded parameter and result. Do LC_RENAME for . + (c_common_post_options): Call cpp_read_main_file here instead. + (c_common_init): Update accordingly. + (push_command_line_include): Don't cpp_push_main_file. + Do LC_RENAME rather than LC_LEASE to get back to main file. + Compared to pre-10-01 version, inline cpp_rename_to_main_file. + (c_common_parse_file): Call cpp_read_main_file for subsequent main + files, but call finish_options for all files. + * c-opts.c (sanitize_cpp_opts): Don't set cpp_opts->working_directory. + * fix-header.c (read_scan_file): Call cpp_read_main_file instead of + cpp_find_main_file + cpp_push_main_file. + * c-lex.c (fe_file_change): Don't set main_input_filename here. + * opts.c (handle_options): Only set main_input_filename first time. + +2004-02-05 Ian Lance Taylor + + * config/arm/arm.h (REG_CLASS_NAMES): Add missing comma. + +2004-02-04 Geoffrey Keating + + * reload.c (find_equiv_reg): When checking for register overlap, + don't index hard_regno_nregs with a pseudo-reg. + +2004-02-04 Ulrich Weigand + + * config/s390/s390.c (s390_trampoline_template): Remove gen_rtx(). + +2004-02-04 David Edelsohn + + * reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno, + against FIRST_PSEUDO_REGISTER. + +2004-02-04 Rainer Orth + + * Makefile.in: Move target, host overrides after per-language + fragments. + + * config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear. + (GNATLIBCFLAGS): Remove -g. + +2004-02-04 Kazu Hirata + + * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c, + config/i386/i386.c, config/i386/i386.h, config/i386/i386.md, + config/ia64/ia64.c, config/ia64/unwind-ia64.c, + config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c, + config/pdp11/pdp11.c, config/rs6000/rs6000.c, + config/sparc/sparc.c, config/vax/vax.c: Revert the + replacements of "FALLTHRU" with "Fall through" done in the + previous patch. + +2004-02-04 Kazu Hirata + + * config/darwin.c, config/darwin.h, config/freebsd-spec.h, + config/arm/arm.c, config/arm/arm.md, + config/cris/cris-protos.h, config/fr30/fr30.c, + config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h, + config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c, + config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h, + config/ip2k/ip2k.md, config/ip2k/libgcc.S, + config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h, + config/m68k/m68k.c, config/m68k/netbsd-elf.h, + config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md, + config/ns32k/netbsd.h, config/ns32k/ns32k.c, + config/ns32k/ns32k.h, config/pdp11/pdp11.h, + config/rs6000/darwin-ldouble.c, config/s390/s390.h, + config/s390/s390.md, config/sparc/netbsd-elf.h, + config/sparc/openbsd.h, config/sparc/sparc.c, + config/xtensa/lib2funcs.S: Fix comment formatting. + +2004-02-04 Kazu Hirata + + * config/alpha/alpha.c, config/arc/arc.c, + config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h, + config/arm/arm1026ejs.md, config/arm/arm1136jfs.md, + config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c, + config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md, + config/i386/i386.c, config/i386/i386.h, config/i386/i386.md, + config/ia64/ia64.c, config/ia64/unwind-ia64.c, + config/iq2000/iq2000.c, config/m32r/m32r.c, + config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h, + config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c, + config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c, + config/rs6000/rs6000.h, config/sparc/sparc.c, + config/vax/vax.c: Fix comment typos. Follow spelling + conventions. + +2004-02-04 Kazu Hirata + + * alloc-pool.h, c-convert.c, c-lang.c, c-tree.h, + caller-save.c, df.h, genconfig.c, global.c, lcm.c, + ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c, + sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md, + config/arm/fpa.md, config/arm/iwmmxt.md, + config/arm/netbsd-elf.h, config/arm/netbsd.h, + config/m68hc11/m68hc11.md, config/mips/iris5.h, + config/mn10300/mn10300.md, config/rs6000/altivec.md, + config/sparc/netbsd-elf.h: Update copyright. + +2004-02-04 Eric Botcazou + + * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1 + for all modes whose size is greater than 8 bytes if ARCH32. + (sparc_va_arg): Handle all modes whose size is greater than 8 bytes + by reference if ARCH32. + +2004-02-04 Aldy Hernandez + + * cgraphunit.c (cgraph_postorder): Fix typo in comment. + +2004-02-04 Ulrich Weigand + + * config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move + to before adddi3 insn patterns. + ("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31", + "reload_insi"): Move to before addsi3 insn patterns. + +2004-02-04 Mark Mitchell + + * calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P + parameter. Use it instead of current_function_is_thunk. + * function.h (struct function): Update documentation for is_thunk. + * tree.h (CALL_FROM_THUNK_P): New macro. + * config/alpha/alpha.c (alpha_sa_mask): Do not check + no_new_pseudos when testing current_function_is_thunk. + * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse. + +2004-02-04 Kazu Hirata + + * doc/tm.texi: Replace SETUP_INCOMING_VARARGS with + TARGET_SETUP_INCOMING_VARARGS. + +2004-02-04 Kazu Hirata + + * emit-rtl.c (gen_rtx): Remove. + * genattrtab.c: Don't mention gen_rtx in a comment. + * rtl.h: Remove the prototype for gen_rtx. + * doc/md.texi: Replace gen_rtx with gen_rtx_REG. + +2004-02-04 Kazu Hirata + + * config/arc/arc.h, config/fr30/fr30.h + (SETUP_INCOMING_VARARGS): Remove the target-independent + comments. + * doc/tm.texi: Don't mention deprecated target macros. + +2004-02-04 Kazu Hirata + + * config/fr30/fr30.h (FUNCTION_VALUE): Remove the + target-independent comment. + +2004-02-04 Kazu Hirata + + * doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't + mention deprecated target macros. + +2004-02-04 Kazu Hirata + + * config.gcc: Remove obsolete ports and configurations. + * config/linux-aout.h, config/netware.h, + config/t-linux-gnulibc1, config/d30v/abi, + config/d30v/d30v-protos.h, config/d30v/d30v.c, + config/d30v/d30v.h, config/d30v/d30v.md, + config/d30v/libgcc1.asm, config/d30v/t-d30v, + config/dsp16xx/dsp16xx-modes.def, + config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c, + config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md, + config/i370/README, config/i370/i370-c.c, + config/i370/i370-protos.h, config/i370/i370.c, + config/i370/i370.h, config/i370/i370.md, config/i370/linux.h, + config/i370/mvs.h, config/i370/oe.h, config/i370/t-i370, + config/i386/freebsd-aout.h, config/i386/linux-aout.h, + config/i386/moss.h, config/i386/netware.h, + config/i386/svr3.ifile, config/i386/svr3dbx.h, + config/i386/svr3gas.h, config/i386/svr3z.ifile, + config/i386/t-udk, config/i386/udk.h, config/i386/vsta.h, + config/i960/i960-c.c, config/i960/i960-coff.h, + config/i960/i960-modes.def, config/i960/i960-protos.h, + config/i960/i960.c, config/i960/i960.h, config/i960/i960.md, + config/i960/rtems.h, config/i960/t-960bare, + config/m68k/hp310.h, config/m68k/hp320.h, + config/m68k/hp320base.h, config/m68k/m68kv4.h, + config/m68k/netbsd.h, config/m68k/sgs.h, config/m68k/t-hp320: + Remove. + * doc/extend.texi, doc/install.texi, doc/invoke.texi, + doc/md.texi: Remove mentions of obsolete ports. + +2004-02-04 Jan Hubicka + + * alias.c (find_base_term, get_addr): Do not dereference NULL + pointer when all VALUE's locations has been invalidated. + (rtx_equal_for_memref_p): Simplify checking of VALUEs. + +2004-02-03 Wolfgang Bangerth + + * doc/invoke.texi (x86 options): Fix spelling/wording. + +2004-02-03 Richard Sandiford + + * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to + put the original string in a comment. + * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument. + * config/mips/mips.c (mips_output_ascii): Likewise. + * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly. + +2004-02-03 Kazu Hirata + + * system.h (GIV_SORT_CRITERION): Poison. + * config/avr/avr.h (GIV_SORT_CRITERION): Remove. + * config/ip2k/ip2k.h (GIV_SORT_CRITERION): Likewise. + +2004-02-03 Roger Sayle + + PR target/9348 + * expr.c (expand_expr_real) : When performing widening + multiplies with a multiplication of the wrong signedness, its the + signedness of the multiplication that we've performed that needs to + be passed to expand_mult_highpart_adjust. Avoid emitting a nop-move + if expand_mult_highpart_adjust places the result in target. + +2004-02-03 Richard Henderson + + * varasm.c (const_desc_rtx_sym_eq): Compare symbol strings. + +2004-02-03 J"orn Rennecke + + * config.gcc (sh[234]l): Use little endian fragments. + +2004-02-03 Paul Koning + + * config/pdp11/pdp11-modes.def: Add RESET_FLOAT_FORMAT calls. + * config/pdp11/pdp11-protos.h (legitimate_const_double_p): Add. + * config/pdp11/pdp11.c (encode_pdp11_f, decode_pdp11_f, + encode_pdp11_d, decode_pdp11_d): New functions to handle PDP11 + floating point format. + (pdp11_f_format, pdp11_d_format): New real_format descriptors for + the above functions. + (output_move_quad): Output float values in correct target format. + (legitimate_const_double_p): New function. + * config/pdp11/pdp11.h: Fix typos. + (FLOAT_WORDS_BIG_ENDIAN): Add definition. + (TARGET_FLOAT_FORMAT): Ditto. + (pdp11_f_format, pdp11_d_format): Add external declarations. + (MAX_REGS_PER_ADDRESS): Corrected. + (LEGITIMATE_CONSTANT_P): Use legitimate_const_double_p(). + (PRINT_OPERAND): Output float literals in target format. + +2004-02-03 Mark Mitchell + + PR c++/13975 + * tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and + TI_PRIVATE. + (access_public_node): Redefine. + (access_protected_node): Likewise. + (access_private_node): Likewise. + * tree.c (build_common_tree_nodes): Create access_public_node, + access_protected_node, and access_private_node. + +2004-02-03 Steve Ellcey + + * config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value. + (MASK_INLINE_INT_DIV_THR): Ditto. + (MASK_INLINE_SQRT_LAT): Ditto. + (MASK_INLINE_SQRT_THR): Ditto. + (MASK_DWARF2_ASM): Ditto. + (MASK_EARLY_STOP_BITS): Ditto. + +2004-02-02 Paul Brook + + Merge from csl-arm-branch. + + 2004-01-30 Paul Brook + + * aof.h (REGISTER_NAMES): Add vfp reg names + (ADDITIONAL_REGISTER_NAMES): Ditto. + * aout.h (REGISTER_NAMES): Ditto. + (ADDITIONAL_REGISTER_NAMES): Ditto. + * arm-protos.h: Update/Add Prototypes. + * arm.c (init_fp_table): Rename from init_fpa_table. Update users. + Only allow 0.0 for VFP. + (fp_consts_inited): Rename from fpa_consts_inited. Update users. + (values_fp): Rename from values_fpa. Update Users. + (arm_const_double_rtx): Rename from const_double_rtx_ok_for_fpa. + Update users. Only check valid constants for this hardware. + (arm_float_rhs_operand): Rename from fpa_rhs_operand. Update Users. + Only allow consts for FPA. + (arm_float_add_operand): Rename from fpa_add_operand. Update users. + Only allow consts for FPA. + (use_return_insn): Check for saved VFP regs. + (arm_legitimate_address_p): Handle VFP DFmode addressing. + (arm_legitimize_address): Ditto. + (arm_general_register_operand): New function. + (vfp_mem_operand): New function. + (vfp_compare_operand): New function. + (vfp_secondary_reload_class): New function. + (arm_float_compare_operand): New function. + (vfp_print_multi): New function. + (vfp_output_fstmx): New function. + (vfp_emit_fstm): New function. + (arm_output_epilogue): Output VPF reg restore code. + (arm_expand_prologue): Output VFP reg save code. + (arm_print_operand): Add 'P'. + (arm_hard_regno_mode_ok): Return modes for VFP regs. + (arm_regno_class): Return classes for VFP regs. + (arm_compute_initial_elimination_offset): Include space for VFP regs. + (arm_get_frame_size): Ditto. + * arm.h (FIXED_REGISTERS): Add VFP regs. + (CALL_USED_REGISTERS): Ditto. + (CONDITIONAL_REGISTER_USAGE): Enable VFP regs. + (FIRST_VFP_REGNUM): Define. + (LAST_VFP_REGNUM): Define. + (IS_VFP_REGNUM): Define. + (FIRST_PSEUDO_REGISTER): Include VFP regs. + (HARD_REGNO_NREGS): Handle VFP regs. + (REG_ALLOC_ORDER): Add VFP regs. + (enum reg_class): Add VFP_REGS. + (REG_CLASS_NAMES): Ditto. + (REG_CLASS_CONTENTS): Ditto. + (CANNOT_CHANGE_MODE_CLASS) Handle VFP Regs. + (REG_CLASS_FROM_LETTER): Add 'w'. + (EXTRA_CONSTRAINT_ARM): Add 'U'. + (EXTRA_MEMORY_CONSTRAINT): Define. + (SECONDARY_OUTPUT_RELOAD_CLASS): Handle VFP regs. + (SECONDARY_INPUT_RELOAD_CLASS): Ditto. + (REGISTER_MOVE_COST): Ditto. + (PREDICATE_CODES): Add arm_general_register_operand, + arm_float_compare_operand and vfp_compare_operand. + * arm.md (various): Rename as above. + (divsf3): Enable when TARGET_VFP. + (divdf3): Ditto. + (movdfcc): Ditto. + (sqrtsf2): Ditto. + (sqrtdf2): Ditto. + (arm_movdi): Disable when TARGET_VFP. + (arm_movsi_insn): Ditto. + (movsi): Only split with general regs. + (cmpsf): Use arm_float_compare_operand. + (push_fp_multi): Restrict to TARGET_FPA. + (vfp.md): Include. + * vfp.md: New file. + * fpa.md (various): Rename as above. + * doc/md.texi: Document ARM w and U constraints. + + 2004-01-15 Paul Brook + + * config.gcc: Add with_fpu. Allow with-float=softfp. + * config/arm/arm.c (arm_override_options): Rename *-s to *s. + Break out of loop when we find a float-abi. Fix typo. + * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "fpu". + Set -mfloat-abi=. + * doc/install.texi: Document --with-fpu. + + 2003-01-14 Paul Brook + + * config.gcc (with_arch): Add armv6. + * config/arm/arm.h: Rename TARGET_CPU_*_s to TARGET_CPU_*s. + * config/arm/arm.c (arm_overrride_options): Ditto. + + 2004-01-08 Richard Earnshaw + + * arm.c (FL_ARCH3M): Renamed from FL_FAST_MULT. + (FL_ARCH6): Renamed from FL_ARCH6J. + (arm_arch3m): Renamed from arm_fast_multiply. + (arm_arch6): Renamed from arm_arch6j. + * arm.h: Update all uses of above. + * arm-cores.def: Likewise. + * arm.md: Likewise. + + * arm.h (CPP_CPU_ARCH_SPEC): Emit __ARM_ARCH_6J__ define for armV6j, + not arm6j. Add entry for arch armv6. + + 2004-01-07 Richard Earnshaw + + * arm.c (arm_emit_extendsi): Delete. + * arm-protos.h (arm_emit_extendsi): Delete. + * arm.md (zero_extendhisi2): Also handle zero-extension of + non-subregs. + (zero_extendqisi2, extendhisi2, extendqisi2): Likewise. + (thumb_zero_extendhisi2): Only match if not v6. + (arm_zero_extendhisi2, thumb_zero_extendqisi2, arm_zero_extendqisi2) + (thumb_extendhisi2, arm_extendhisi2, arm_extendqisi) + (thumb_extendqisi2): Likewise. + (thumb_zero_extendhisi2_v6, arm_zero_extendhisi2_v6): New patterns. + (thumb_zero_extendqisi2_v6, arm_zero_extendqisi2_v6): New patterns. + (thumb_extendhisi2_insn_v6, arm_extendhisi2_v6): New patterns. + (thumb_extendqisi2_v6, arm_extendqisi_v6): New patterns. + (arm_zero_extendhisi2_reg, arm_zero_extendqisi2_reg): Delete. + (arm_extendhisi2_reg, arm_extendqisi2_reg): Delete. + (arm_zero_extendhisi2addsi): Remove subreg. Add attributes. + (arm_zero_extendqisi2addsi, arm_extendhisi2addsi): Likewise. + (arm_extendqisi2addsi): Likewise. + + 2003-12-31 Mark Mitchell + + Revert this change: + * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG + + REG addressing modes. + + * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG + + REG addressing modes. + + 2003-12-30 Mark Mitchell + + * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept + CONSTANT_P_RTX. + + 2003-30-12 Paul Brook + + * longlong.h: protect arm inlines with !defined (__thumb__) + + 2003-30-12 Paul Brook + + * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Always define __arm__. + + 2003-12-30 Nathan Sidwell + + * builtins.c (expand_builtin_apply_args_1): Fix typo in previous + change. + + 2003-12-29 Nathan Sidwell + + * builtins.c (expand_builtin_apply_args_1): Add pretend args size + to the virtual incoming args pointer for downward stacks. + + 2003-12-29 Paul Brook + + * config/arm/arm-cores.def: Add cost function. + * config/arm/arm.c (arm_*_rtx_costs): New functions. + (arm_rtx_costs): Remove + (struct processors): Add rtx_costs field. + (all_cores, all_architectures): Ditto. + (arm_override_options): Set targetm.rtx_costs. + (thumb_rtx_costs): New function. + (arm_rtx_costs_1): Remove cases handled elsewhere. + * config/arm/arm.h (processor_type): Add COSTS parameter. + + 2003-12-29 Nathan Sidwell + + * config/arm/arm.md (generic_sched): arm926 has its own scheduler. + (arm926ejs.md): Include it. + * config/arm/arm926ejs.md: New pipeline description. + + 2003-12-24 Paul Brook + + * config/arm/arm.c (arm_arch6j): New variable. + (arm_override_options): Set it. + (arm_emit_extendsi): New function. + * config/arm/arm-protos.h (arm_emit_extendsi): Add prototype. + * config/arm/arm.h (arm_arch6j): Declare. + * config/arm/arm.md: Add sign/zero extend insns. + + 2003-12-23 Paul Brook + + * config/arm/arm.c (all_architectures): Add armv6. + * doc/invoke.texi: Document it. + + 2003-12-19 Paul Brook + + * config/arm/arm.md: Add load1 and load_byte "type" attrs. Modify + insn patterns to match. + * config/arm/arm-generic.md: Ditto. + * config/arm/cirrus.md: Ditto. + * config/arm/fpa.md: Ditto. + * config/amm/iwmmxt.md: Ditto. + * config/arm/arm1026ejs.md: Ditto. + * config/arm/arm1135jfs.md: Ditto. Add insn_reservation and bypasses + for 11_loadb. + + 2003-12-18 Nathan Sidwell + + * config/arm/arm-protos.h (arm_no_early_alu_shift_value_dep): Declare. + * config/arm/arm.c (arm_adjust_cost): Check shift cost for + TYPE_ALU_SHIFT and TYPE_ALU_SHIFT_REG. + (arm_no_early_store_addr_dep, arm_no_early_alu_shift_dep, + arm_no_early_mul_dep): Correctly deal with conditional execution, + parallels and single shift operations. + (arm_no_early_alu_shift_value_dep): Define. + * arm.md (attr type): Replace 'normal' with 'alu', + 'alu_shift' and 'alu_shift_reg'. + (attr core_cycles): Adjust. + (*addsi3_carryin_shift, andsi_not_shiftsi_si, *arm_shiftsi3, + *shiftsi3_compare0, *notsi_shiftsi, *notsi_shiftsi_compare0, + *not_shiftsi_compare0_scratch, *cmpsi_shiftsi, *cmpsi_shiftsi_swp, + *cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0, + *arith_shiftsi_compare0_scratch, *sub_shiftsi, + *sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch, + *if_shift_move, *if_move_shift, *if_shift_shift): Set type + attribute appropriately. + * config/arm/arm1026ejs.md (alu_op): Adjust. + (alu_shift_op, alu_shift_reg_op): New. + * config/arm/arm1136.md: Add better bypasses for early + registers. Remove load[234] and store[234] bypasses. + (11_alu_op): Adjust. + (11_alu_shift_op, 11_alu_shift_reg_op): New. + + 2003-12-15 Nathan Sidwell + + * config/arm/arm-protos.h (arm_no_early_store_addr_dep, + arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Declare. + * config/arm/arm.c (arm_no_early_store_addr_dep, + arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Define. + * config/arm/arm1026ejs.md: Add load-store bypass. + * config/arm/arm1136jfs.md (11_alu_op): Take 2 cycles. + Add bypasses between instructions. + + 2003-12-10 Paul Brook + + * config/arm/arm.c (arm_fpu_model): New variable. + (arm_fload_abi): New variable. + (target_fpe_name): Rename from target_fp_name. + (target_fpu_name): New variable. + (arm_is_cirrus): Remove. + (fpu_desc): New struct. + (all_fpus): Define. + (pf_model_for_fpu): Define. + (all_loat_abis): Define. + (arm_override_options): Set fp arch flags based on -mfpu= + and -float-abi=. + (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM. + (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM. + (*): Use new TARGET_* flags. + * config/arm/arm.h (TARGET_ANY_HARD_FLOAT): Remove. + (TARGET_HARD_FLOAT): No longer implies TARGET_FPA. + (TARGET_SOFT_FLOAT): Ditto. + (TARGET_SOFT_FLOAT_ABI): New. + (TARGET_MAVERICK): Rename from TARGET_CIRRUS. No longer implies + TARGET_HARD_FLOAT. + (TARGET_VFP): No longer implies TARGET_HARD_FLOAT. + (TARGET_OPTIONS): Add -mfpu=. + (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM. + (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM. + (arm_pf_model): Define. + (arm_float_abi_type): Define. + (fputype): Add FPUTYPE_VFP. Change SOFT_FPA->NONE + * config/arm/arm.md: Use new TARGET_* flags. + * config/arm/cirrus.md: Ditto. + * config/arm/fpa.md: Ditto. + * config/arm/elf.h (ASM_SPEC): Pass -mfloat-abi= and -mfpu=. + * config/arm/semi.h (ASM_SPEC): Ditto. + * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Specify vfp. + (FPUTYPE_DEFAULT): Set to VFP. + * doc/invoke.texi: Document -mfpu= and -mfloat-abi=. + + 2003-11-22 Phil Edwards + + PR target/12476 + * config/arm/arm.c (arm_output_mi_thunk): In Thumb mode, use + 'bx' instead of 'b' to avoid branch range restrictions. Output + the thunk immediately before the thunked-to function. + * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Do not emit + .thumb_func if a thunk is being generated. Emit .code 16 along + with .thumb_func if a thunk is not being generated. + + 2003-11-15 Nicolas Pitre + + * config/arm/arm.md (ashldi3, arm_ashldi3_1bit, ashrdi3, + arm_ashrdi3_1bit, lshrdi3, arm_lshrdi3_1bit): New patterns. + * config/arm/iwmmxt.md (ashrdi3_iwmmxt): Renamed from ashrdi3. + (lshrdi3_iwmmxt): Renamed from lshrdi3. + * config/arm/arm.c (IWMMXT_BUILTIN2): Renamed argument accordingly. + + 2003-11-12 Steve Woodford + Ian Lance Taylor + + * config/arm/lib1funcs.asm (ARM_DIV_BODY, ARM_MOD_BODY): Add new + code for __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__). + + 2003-11-05 Phil Edwards + + * config/arm/arm.md (insn): Add new V6 instruction names. + (generic_sched): New attr. + * config/arm/arm-generic.md: Use generic_sched here. + * config/arm/arm1026ejs.md: Do not model fetch/issue/decode + stages of pipeline. Adjust latency counts accordingly. + * config/arm/arm1136jfs.md: New file. + + 2003-10-28 Mark Mitchell + + * config/arm/arm.h (processor_type): New enumeration type. + (CPP_ARCH_DEFAULT_SPEC): Set appropriately for ARM 926EJ-S, + ARM1026EJ-S, ARM1136J-S, and ARM1136JF-S processor cores. + (CPP_CPU_ARCH_SPEC): Likewise. + * config/arm/arm.c (arm_tune): New variable. + (all_cores): Use cores.def. + (all_architectures): Add representative processor. + (arm_override_options): Restructure way in which tuning + information is deduced. + * arm.md: Update "insn" and "type" attributes throughout. + (insn): New attribute. + (type): Compute "mult" from "insn" attribute. Add load2, + load3, load4 alternatives. + (arm automaton): Move to arm-generic.md. + * config/arm/arm-cores.def: New file. + * config/arm/arm-generic.md: Likewise. + * config/arm/arm1026ejs.md: Likewise. + +2004-02-03 Eric Botcazou + + * doc/invoke.texi (SPARC options): Remove -mflat and + all -mxxx (xxx:chip) options. + * config/sparc/aout.h (DBX_REGISTER_NUMBER): Delete. + * config/sparc/litecoff.h (DBX_REGISTER_NUMBER): Likewise. + * config/sparc/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise. + * config/sparc/sol2.h (DBX_REGISTER_NUMBER): Likewise. + * config/sparc/sparc-protos.h: Delete sparc_flat_* prototypes. + * config/sparc/sparc.c: Likewise. + (sparc_output_function_prologue): Remove TARGET_FLAT handling. + (sparc_nonflat_function_prologue): Rename into sparc_function_prologue. + (sparc_output_function_epilogue): Remove TARGET_FLAT handling. + (sparc_nonflat_function_epilogue): Rename into sparc_function_epilogue. + (struct sparc_frame_info, current_frame_info, zero_frame_info): Delete. + (sparc_flat_must_save_register_p): Likewise. + (sparc_flat_compute_frame_size): Likewise. + (sparc_flat_save_restore): Likewise. + (sparc_flat_function_prologue): Likewise. + (sparc_flat_function_epilogue): Likewise. + (sparc_flat_epilogue_delay_slots): Likewise. + (sparc_flat_eligible_for_epilogue_delay): Likewise. + (sparc_function_ok_for_sibcall): Remove TARGET_FLAT handling. + * config/sparc/sparc.h (MASK_FLAT, TARGET_FLAT): Delete. + (TARGET_SWITCHES): Remove -mflat and all -mxxx (xxx:chip) options. + (SPARC_INCOMING_INT_ARG_FIRST): Remove TARGET_FLAT handling. + (CONDITIONAL_REGISTER_USAGE): Likewise. + (FRAME_POINTER_REQUIRED): Likewise. + (INITIAL_ELIMINATION_OFFSET): Likewise. + (BASE_RETURN_VALUE_REG): Likewise. + (BASE_OUTGOING_VALUE_REG): Likewise. + (BASE_PASSING_ARG_REG): Likewise. + (BASE_INCOMING_ARG_REG): Likewise. + (INCOMING_REGNO): Likewise. + (OUTGOING_REGNO): Likewise. + (LOCAL_REGNO): Likewise. + (DELAY_SLOTS_FOR_EPILOGUE): Likewise. + (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise. + (EPILOGUE_USES): Likewise. + * config/sparc/sparc.md ("isa" attribute): Change "v6" into "v7". + ("flat" attribute): Delete. + (do_builtin_setjmp_setup): Remove TARGET_FLAT and "flat" attribute + handling. + (call followed by jump define_peephole's): Delete. + (exception_receiver): Likewise. + (builtin_setjmp_receiver): Likewise. + * config/sparc/t-sparclite (MULTILIB_OPTIONS): Remove -mflat. + +2004-02-03 Paolo Bonzini + + PR c/11658 + PR c/13994 + * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend + on langhooks.h. + * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h. + * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c: + Include langhooks.h. Replace c_common_truthvalue_conversion + with the truthvalue_conversion language hook throughout. + (expr_no_commas): Call default_conversion before save_expr + for the first term of the production 'x ? : y'. + * c-common.c (c_common_truthvalue_conversion): Remove + obsolete block. Invoke recursively the hook instead + of this function. + * c-convert.c (convert): handle ERROR_MARK_NODE. + * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE + returned by the truthvalue_conversion language hook. + * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use + c_objc_common_truthvalue_conversion. + * c-objc-common.c (c_objc_common_truthvalue_conversion): + New function. + * c-tree.h (c_objc_common_truthvalue_conversion): Declare it. + * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use + c_objc_common_truthvalue_conversion. + +2004-02-03 Kazu Hirata + + * config/c4x/c4x.h (FUNCTION_VALUE): Use gen_rtx_REG instead + of gen_rtx. + (LIBCALL_VALUE): Likewise. + * config/ip2k/ip2k.c (mdr_try_propagate_clr_sequence): Use + gen_rtx_CC0 instead of gen_rtx. + * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use + gen_rtx_fmt_e and gen_rtx_fmt_ee instead of gen_rtx. + (m68hc11_expand_compare): Use gen_rtx_fmt_ee instead of + gen_rtx. + (m68hc11_emit_logical): Likewise. + +2004-02-03 Kazu Hirata + + * config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c, + config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md, + config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md, + config/m32r/m32r.md, config/m68hc11/m68hc11.c, + config/mips/mips.md, config/mmix/mmix.c, + config/mn10300/mn10300.c, config/mn10300/mn10300.md, + config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c, + config/rs6000/altivec.md, config/s390/s390.c, + config/s390/s390.h, config/s390/s390.md, config/sh/sh.c, + config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c: + Use const0_rtx instead of GEN_INT (0). Do the same for other + constants that are readily available. + +2004-02-03 Kazu Hirata + + * doloop.c, optabs.c, regmove.c, sched-deps.c, + config/i386/i386.c, config/i386/i386.md: Use const0_rtx + instead of GEN_INT (0). Do the same for other constants that + are readily available. + +2004-02-03 Kazu Hirata + + * combine.c (simplify_set): Use gen_rtx_fmt_e instead of + gen_rtx. + * emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0 + instead of gen_rtx. + * reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of + gen_rtx. + * config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and + gen_rtx_ASHIFT instead of gen_rtx. + (udivmodqi4): Likewise. + +2004-02-02 Richard Henderson + + PR target/13789 + * expr.c (store_expr): Use force_operand before emit_move_insn. + +2004-02-02 Jeff Law + Roger Sayle + + * tree.c (commutative_tree_code, associative_tree_code): New + functions. + (iterative_hash_expr): Use commutative_tree_code. + * tree.h (commutative_tree_code, associative_tree_code): Declare. + * fold-const.c (operand_equal_p): Use commutative_tree_code + rather than inlining the commutativity check. + (fold): Likewise. + +2004-02-02 Kazu Hirata + + * system.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Poison. + * config/frv/frv-protos.h: Remove the prototype for + frv_function_arg_keep_as_reference. + * config/frv/frv.c (frv_function_arg_keep_as_reference): + Remove. + * config/frv/frv.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Likewise. + * config/stormy16/stormy16.h: Remove the commented-out + definition of FUNCTION_ARG_KEEP_AS_REFERENCE. + +2004-02-03 Alan Modra + + PR target/13914 + * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap + for retaddr_column. + +2004-02-02 Kazu Hirata + + * genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of + gen_rtx. + +2004-02-02 Eric Christopher + Zack Weinberg + + * c-opts.c (c_common_handle_option): Add -finput-charset. + * c.opt: Ditto. + * cppcharset.c (one_iso88591_to_utf8): Remove. + (convert_iso88591_utf8): Ditto. + (conversion_tab): Remove 8859-1 converter. + (_cpp_input_to_utf8): Remove. + (_cpp_init_iconv_buffer): Ditto. + (_cpp_close_iconv_buffer): Ditto. + (_cpp_convert_input): New function. + (_cpp_default_encoding): Ditto. + * cpphash.h: Add/remove prototypes for above. + * cppfiles.c (read_file_guts): Use _cpp_convert_input. + * cppinit.c (cpp_create_reader): Use _cpp_default_encoding + for narrow execution and input character sets. + * cpplib.c (cpp_push_buffer): Delete uses of removed functions. + * doc/cppopts.texi: Document -finput-charset. + +2004-02-02 David Edelsohn + + * rtlanal.c (refers_to_regno_p): Test regno, not inner_regno, + against FIRST_PSEUDO_REGISTER. + +2004-02-02 Eric Botcazou + + * doc/invoke.texi (SPARC options): Further improve. + +2004-02-02 Kazu Hirata + + * config/arm/arm.md, config/c4x/c4x.md, config/cris/cris.md, + config/h8300/h8300.c, config/ip2k/ip2k.md, + config/iq2000/iq2000.c, config/mips/mips.c, + config/rs6000/rs6000.c, config/rs6000/rs6000.md, + config/sh/sh.c, config/sh/sh.md, config/stormy16/stormy16.c, + config/v850/v850.md: Fix indentation. + +2004-02-02 Eric Botcazou + + * config/sparc/sparc.c (function_arg_slotno): Align TImode + arguments on a 16-byte boundary in the parameter array if ARCH64. + Split handling of TFmode. + +2004-02-02 Paolo Bonzini + + * rtlanal.c (reg_overlap_mentioned_p) [!ENABLE_CHECKING]: + Don't test CONSTANT_P (x). + (reg_overlap_mentioned_p): Merge check for STRICT_LOWPART, + ZERO_EXTRACT, SIGN_EXTRACT with the switch statement. + Fix misindentation. + +2004-02-02 Eric Botcazou + + * doc/invoke.texi (SPARC options): Document that -mflat is deprecated. + +2004-02-02 Kazu Hirata + + * config/arc/arc.md, config/arm/arm.c, config/arm/arm.md, + config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md, + config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md, + config/iq2000/iq2000.c, config/m32r/m32r.c, + config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md, + config/mn10300/mn10300.c, config/rs6000/rs6000.c, + config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md, + config/stormy16/stormy16.c, config/v850/v850.md, + config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*. + +2004-02-01 Kazu Hirata + + * config/mcore/mcore.c (block_move_sequence): Replace + gen_rtx_CONST_INT with GEN_INT. + +2004-02-02 Jan Hubicka + + * alias.c (record_set): Use hard_regno_nregs. + * bt-load.c (find_btr_reference, note_btr_set): Likewise. + * builtins.c (apply_args_size): Likewise. + * caller-save.c (setup_save_areas, save_call_clobbered_regs, + mark_set_regs, add_stored_regs, mark_referenced_regs, + insert_restore, insert_save, insert_one_insn): Likewise. + * cfgcleanup.c: Include regs.h + (mark_effect, mentions_nonequal_regs): Likewise. + * cfgrtl.c (mark_killed_regs): Likewise + * combine.c (update_table_tick, record_value_for_reg, + record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p, + reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths, + reg_bitfield_target_p, distribute_notes): Likewise. + * cse.c (mention_regs, insert, invalidate, invalidate_for_call, + exp_equiv_p, cse_insn): Likewise. + * cselib.c (cselib_lookup): Likewise. + (cselib_invalidate_regno, cselib_record_set): Likewise. + * df.c (df_ref_record): Likewise. + * dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor): + Likewise. + * flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg, + count_or_remove_death_notes_bb): Likewise. + * function.c (aggregate_value_p, keep_stack_depressed): Likewise. + * gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts, + mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise. + * integrate.c (mark_stores): Likewise. + * jump.c (delete_prior_computation): Likewise. + * lcm.c (reg_dies, reg_becomes_live): Likewise. + * local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise. + * loop.c (LOOP_REGNO_NREGS): Likewise. + * postreload.c (reload_combine, reload_combine_note_store, + reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise. + * ra-colorize.c (combine, color_usable_p, get_free_reg, + calculate_dont_begin, calculate_dont_begin, colorize_one_web, + try_recolor_web, insert_coalesced_conflicts, check_colors, + break_precolored_alias): Likewise. + * ra-debug.c: Include regs.h + (ra_print_rtx_object): Likewise. + * ra-rewrite (choose_spill_colors): Likewise. + (spill_same_color_p, update_spill_colors, spill_is_free): Likewise. + * ra.c (init_ra): Likewise. + * recog.c (reg_fits_class_p, peep2_reg_dead_p, + peep2_find_free_register): Likewise. + * reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise. + * regclass.c (hard_regno_nregs): New array. + (init_reg_modes_once): Initialize it. + (choose_hard_reg_mode): Use it. + (record_reg_classes): Likewise. + * regmove.c (mark_flags_life_zones): Likewise. + * regrename.c (note_sets, clear_dead_regs, regrename_optimize, + scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno, + copy_value, maybe_mode_change, find_oldest_value_reg, + copyprop_hardreg_forward_1): + * regs.h (hard_regno_nregs): Declare. + * realod.c (reload_inner_reg_of_subreg): Use it. + (push_reload, combine_reloads, find_dummy_reload, + hard_reg_set_here_p, operands_match_p, decompose, find_reloads, + refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p, + reload_adjust_reg_for_mode): Likewise. + * reload1.c (compute_use_by_pseudos, count_pseudo, + count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live, + spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use, + clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p + allocate_reload_reg, choose_reload_regs, emit_reload_insns, + delete_output_reload): Likewise. + * resource.c (update_live_status, mark_referenced_resources, + mark_set_resources, mark_target_live_regs): Likewise. + * rtlanal.c: Include regs.h + (refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p, + dead_or_set_regno_p, find_regno_note, find_reg_fusage, + subreg_regno_offset, subreg_offset_representable_p, + hoist_test_store): Likewise. + * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise. + * sched-rgn.c (check_live_1, update_live_1): Likewise. + * stmt.c: Include regs.h + (decl_conflicts_with_clobbers_p): Likewise. + * varasm.c (make_decl_rtl): Likewise. + * Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy. + +2004-02-01 Kazu Hirata + + * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md, + config/arm/linux-gas.h, config/arm/netbsd-elf.h, + config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c, + config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h, + config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c, + config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c, + config/iq2000/iq2000.h, config/m32r/m32r.c, + config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h, + config/m68hc11/m68hc11.md, config/m68k/m68k.md, + config/mcore/mcore.c, config/mcore/mcore.h, + config/mcore/mcore.md, config/mips/mips.c, + config/ns32k/ns32k.h, config/ns32k/ns32k.md, + config/rs6000/rs6000.c, config/s390/s390.c, + config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c, + config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace + "gen_rtx (FOO, " with "gen_rtx_FOO (". + +2004-02-01 Kazu Hirata + + * config/h8300/h8300.md (two peephole2's): New. + +2004-02-01 Eric Botcazou + + * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3. + (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3. + (ASM_CPU_SPEC): Likewise + * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3. + (ASM_CPU_SPEC): Remove -mcpu=v8plus. Handle -mcpu=ultrasparc3. + +2004-02-01 Roger Sayle + + * builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations + isn't set, don't call expand_builtin_mathfn_2 to use the pow optab. + (expand_builtin): Always call expand_builtin_pow. + +2004-02-01 Roger Sayle + + * builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF, + BUILT_IN_SIGNBITL): New GCC builtins. + * builtins.c (expand_builtin_signbit): New function to RTL expand + calls to signbit, signbitf and signbitl as inline intrinsics. + (expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*. + (fold_builtin_signbit): New function to perform constant folding + of signbit, signbitf and signbitl. + (fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*. + + * doc/extend.texi: Document new signbit{,f,l} builtins. + +2004-02-01 Richard Sandiford + + * config/mips/mips.md (adddi3_internal_2): Remove superfluous %s. + +2004-02-01 Chris Demetriou + + * config/mips/mips.h (PREDICATE_CODES): Remove entries for + "mips_const_double_ok" and "simple_memory_operand", which were + removed from the MIPS port with the mips-3_4-rewrite branch merge. + * config/mips/mips.c (mips16_lay_out_constants): Update comment + for removal of simple_memory_operand. + +2004-01-31 Kazu Hirata + + * config/c4x/c4x.md: Use GEN_INT instead of + gen_rtx (CONST_INT, ...). + +2004-01-31 Richard Henderson + + * varasm.c (output_constant_pool): Don't zap the pool. + +2004-01-31 Kazu Hirata + + * genrecog.c (decision_type): Add DT_const_int. + (write_cond) [DT_const_int]: Print a comparison against small + constant. + (write_node): Simplify comparisons against small constants + before printing tests. + +2004-01-31 Kazu Hirata + + * config/m32r/m32r.c (m32r_load_pic_register): Use GEN_INT + instead of gen_rtx_CONST_INT. + +2004-01-31 Kazu Hirata + + * config/xtensa/xtensa.h (DYNAMIC_CHAIN_ADDRESS): Use GEN_INT + instead of gen_rtx_CONST_INT. + +2004-01-31 Kazu Hirata + + * target-def.h (TARGET_STRICT_ARGUMENT_NAMING): Define as + hook_bool_CUMULATIVE_ARGS_false. + * targhooks.c (default_strict_argument_naming): Rename to + hook_bool_CUMULATIVE_ARGS_false. + * targhooks.h: Update the prototype for + default_strict_argument_naming. + +2004-01-31 Kazu Hirata + + * config/sh/sh.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (". + * config/sh/sh.h: Likewise. + * config/sh/sh.md: Likewise. + +2004-01-31 Eric Botcazou + + * doc/invoke.texi (SPARC options): Restructure and update. + +2004-01-31 Kazu Hirata + + * system.h (PROMOTE_FUNCTION_ARGS, STRUCT_VALUE_INCOMING, and + STRICT_ARGUMENT_NAMING): Poison. + * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS): Define as + hook_bool_tree_false. + * targhooks.c (default_promote_function_args): Remove. + (default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING. + Don't check incoming. + (default_strict_argument_naming): Don't use + STRICT_ARGUMENT_NAMING. + * targhooks.h: Remove the prototype for + default_promote_function_args. + +2004-01-31 Kazu Hirata + + * config/i386/i386-protos.h: Remove the prototype for + ix86_setup_incoming_varargs. + * config/i386/i386.c (TARGET_SETUP_INCOMING_VARARGS): New. + (ix86_setup_incoming_varargs): Make it static. + * config/i386/i386.h (SETUP_INCOMING_VARARGS): Remove. + +2004-01-31 Kazu Hirata + + * alloc-pool.c: Fix comment typos. + * builtin-types.def: Likewise. + * builtins.def: Likewise. + * c-pretty-print.c: Likewise. + * df.h: Likewise. + * reload1.c: Likewise. + +2004-01-31 Kazu Hirata + + * doc/invoke.texi: Follow spelling conventions. + * doc/tm.texi: Likewise. + +2004-01-31 Kazu Hirata + + * doc/install.texi: Fix typos. + * doc/invoke.texi: Likewise. + +2004-01-31 Ulrich Weigand + + * config/s390/s390.c (s390_decompose_address): Do not treat virtual + registers as pointers. + * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode. + +2004-01-31 Paolo Bonzini + + * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine + and restore it to gen_lowpart_general on exit. + (gen_lowpart_for_combine): Adjust all callers to go through + gen_lowpart. + * cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible + and restore it to gen_lowpart_general on exit. + (gen_lowpart_if_possible): Adjust all callers to go through + gen_lowpart. + * emit-rtl.c (gen_lowpart_general): New name of gen_lowpart. + (gen_lowpart): Declare as pointer to function, initialized to + gen_lowpart_general. + * rtl.h (gen_lowpart): Declare as pointer to function. + +2004-01-31 Kazu Hirata + + * bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (". + * calls.c: Likewise. + * emit-rtl.c: Likewise. + * function.c: Likewise. + * reload1.c: Likewise. + * config/i386/cygming.h: Likewise. + * config/i386/i386.c: Likewise. + * config/i386/winnt.c: Likewise. + +2004-01-30 Dara Hazeghi + + PR bootstrap/9249 + * doc/install.texi: document --enable-__cxa_atexit option. + * configure.ac: Disable __cxa_atexit if not supported. + * configure: Regenerate. + +2004-01-30 Daniel Berlin + + * ggc-zone.c (ggc_free): New function. + +2004-01-30 Kazu Hirata + + alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c, + cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h, + flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h, + ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def, + tree-optimize.c, vmsdbgout.c, config/fp-bit.c, + config/alpha/alpha.c, config/alpha/alpha.h, + config/alpha/alpha.md, config/alpha/unicosmk.h, + config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c, + config/c4x/c4x-protos.h, config/c4x/c4x.md, + config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c, + config/frv/frvend.c, config/i386/cygming.h, + config/i386/djgpp.h, config/i386/emmintrin.h, + config/i386/gthr-win32.c, config/i386/i386-interix.h, + config/i386/i386-protos.h, config/i386/openbsd.h, + config/i386/winnt.c, config/i386/xm-mingw32.h, + config/i386/xmmintrin.h, config/ia64/ia64.md, + config/iq2000/iq2000.md, config/m32r/m32r.md, + config/m68k/m68k.md, config/mcore/mcore-elf.h, + config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h, + config/mips/iris5gas.h, config/mips/iris6.h, + config/mips/iris6gas.h, config/mips/linux.h, + config/mips/mips.md, config/mips/netbsd.h, + config/mips/openbsd.h, config/mips/windiss.h, + config/pa/fptr.c, config/rs6000/aix.h, + config/rs6000/altivec.h, config/rs6000/darwin.h, + config/rs6000/xcoff.h, config/s390/s390-protos.h, + config/s390/s390.c, config/s390/s390.h, config/s390/s390.md, + config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h, + config/sparc/sol2.h: Update copyright. + +2004-01-30 Kelley Cook + + * Makefile.in (abs_docdir, abs_srcdir): Define. + (doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir). + +2004-01-30 Kazu Hirata + + * genconfig.c (main): Have CC0_P check its operand even on a + target without cc0. + +2004-01-30 Kazu Hirata + + * config/alpha/alpha.c: Remove mentions of deprecates macros + in comments, remove some target-independent comments about target + macros, and/or add minimal function comments for target hook + implementations. + * config/avr/avr.c: Likewise. + * config/ia64/ia64.h: Likewise. + * config/ip2k/ip2k.c: Likewise. + * config/iq2000/iq2000.c: Likewise. + * config/m32r/m32r.h: Likewise. + * config/m68hc11/m68hc11.c: Likewise. + * config/mcore/mcore.c: Likewise. + * config/mmix/mmix.c: Likewise. + * config/mn10300/mn10300.c: Likewise. + * config/pa/pa.c: Likewise. + * config/pdp11/pdp11.c: Likewise. + * config/rs6000/rs6000.h: Likewise. + * config/sh/sh.c: Likewise. + * config/sh/sh.h: Likewise. + * config/sparc/sparc.c: Likewise. + * config/sparc/sparc.h: Likewise. + * config/stormy16/stormy16.c: Likewise. + * config/xtensa/xtensa.c: Likewise. + +2004-01-30 Ulrich Weigand + + PR optimization/12147 + * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with + RELOAD_FOR_OPADDR_ADDR. + (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register + might be reused as RELOAD_FOR_OPADDR_ADDR register. + +2004-01-30 Jan Hubicka + + * reload.c (get_secondary_mem): Fix updating of + secondary_memlocs_elim_used. + +2004-01-30 Richard Henderson + + * varasm.c (struct rtx_const, struct pool_constant): Remove. + (MAX_RTX_HASH_TABLE): Remove. + (const_rtx_hash_table, const_rtx_sym_hash_table): Remove. + (first_pool, last_pool, pool_offset): Remove. + (struct rtx_constant_pool): Split out from ... + (struct varasm_status): ... here. Reference one via pointer. + (struct constant_descriptor_rtx): Merge struct pool_constant. + (SYMHASH): Remove. + (decode_rtx_const): Remove. + (const_hash_rtx, compare_constant_rtx): Remove. + (record_constant_rtx): Remove. + (const_desc_rtx_hash, const_desc_rtx_eq): New. + (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New. + (const_rtx_hash_1, const_rtx_hash): New. + (init_varasm_status): Allocate a rtx_constant_pool, and its hashes. + (simplify_subtraction): Use simplify_rtx. + (force_const_mem): Rewrite to use new data structures. + (find_pool_constant): Likewise. + (get_pool_constant, get_pool_constant_mark, + get_pool_constant_for_function, get_pool_mode, + get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise. + (output_constant_pool_2): Split out from output_constant_pool. + (output_constant_pool_1): Likewise. Use new pool datastructures. + (output_constant_pool): Zap entire pool datastructure. + (mark_constant): Use new pool datastructures. + (mark_constants): Use for_each_rtx. + (mark_constant_pool): Use new pool datastructures. + +2004-01-30 Fariborz Jahanian + + * config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0. + Copy operands[1] to pseudo for simplify_gen_subreg. + +2004-01-30 Kazu Hirata + + * gcse.c (bypass_block): Fix a typo in the previous check-in + to the file. + +2004-01-30 Andrew Pinski + + * toplev.c: Include alloc-pool.h. + * Makefile.in (toplev.c): Update dependencies. + +2004-01-30 Richard Kenner + + * combine.c (simplify_shift_const, case XOR): Be careful when + commuting XOR with ASHIFTRT. + +2004-01-30 Kazu Hirata + Eric Botcazou + + * config/sparc/sparc-protos.h: Remove the prototype for + sparc_builtin_saveregs. + * config/sparc/sparc.c (TARGET_PROMOTE_FUNCTION_ARGS): New. + (TARGET_PROMOTE_FUNCTION_RETURN): Likewise. + (TARGET_PROMOTE_PROTOTYPES): Likewise. + (TARGET_STRUCT_VALUE_RTX): Likewise. + (TARGET_RETURN_IN_MEMORY): Likewise. + (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise. + (TARGET_STRICT_ARGUMENT_NAMING): Likewise. + (sparc_builtin_saveregs): Make it static. + (sparc_promote_prototypes): New. + (sparc_struct_value_rtx): Likewise. + (sparc_return_in_memory): Likewise. + * config/sparc/sparc.h: (PROMOTE_FUNCTION_ARGS): Remove. + (PROMOTE_FUNCTION_RETURN): Likewise. + (RETURN_IN_MEMORY): Likewise. + (STRUCT_VALUE): Likewise. + (STRUCT_VALUE_INCOMING): Likewise. + (EXPAND_BUILTIN_SAVEREGS): Likewise. + (STRICT_ARGUMENT_NAMING): Likewise. + (PROMOTE_PROTOTYPES): Likewise. + + * config/sparc/sparc.h (PROMOTE_MODE): Use word_mode. + +2004-01-30 Eric Botcazou + + PR c/12818 + * varasm.c (const_hash_1) : Use the + address to compute the hash value if flag_writable_strings. + (compare_constant) : Compare the addresses + if flag_writable_strings. + (build_constant_desc): Do not copy the expression for a + STRING_CST if flag_writable_strings. + +2004-01-30 Jan Hubicka + + * alloc-pool.c: Include hashtab.h + (alloc_pool_descriptor): New structure + (alloc_pool_hash): New global variable. + (hash_descriptor, eq_descriptor, alloc_pool_descriptor): New. + (create_alloc_pool): Update statistics. + (free_alloc_pool): Likewise. + (pool_alloc): Likewise. + (output_info): New structure + (print_statistics, dump_alloc_pool_statistics): New function. + * alloc-pool.h (alloc_pool_def): Turn name to be constant. + (dump_alloc_pool_statistics): Declare. + * toplev.c (finalize): Dump statistics. + + * reload.c (secondary_memlocs_elim_used): New static variable. + (get_secondary_mem): Update it. + (find_reloads): Use it. + +2004-01-30 Steven Bosscher + + * toplev.c: Fix broken checkin of 2003-12-30, again. + +2004-01-30 Ulrich Weigand + + * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for + s390*-*-* targets by specifying a 'nop' insn. + * configure: Regenerate. + +2004-01-30 Eric Botcazou + + PR target/11475 + * config/sparc/sparc.md (movhi_lo_sum): Tighten predicates. + +2004-01-29 Jakub Jelinek + + * emit-rtl.c (change_address): Use XEXP (memref, 0) instead + of addr when creating MEM copy. + +2004-01-29 Devang Patel + + * dwarf2out.c (gen_field_die): Do not equate decl number to die. + +2004-01-28 Ian Lance Taylor + + PR inline-asm/6162 + * reload.c (find_reloads): Only support one pair of commutative + operands. + +2004-01-29 Roger Sayle + + PR java/13824 + * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially + as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded + recursion. + +2004-01-29 Kazu Hirata + + * config/frv/frv.c: Don't mention deprecated macros in + comments. Remove some target-independent comments about + target macros. + * config/frv/frv.h: Likewise. + +2004-01-29 Zdenek Dvorak + + * cfghooks.c (split_block): Set probability and count of the + new edge. + +2004-01-29 Josef Zlomek + + * dwarf2out.c (struct die_struct): Added field decl_id. + (decl_die_table): Changed to hash table. + (decl_die_table_allocated): Deleted. + (decl_die_table_in_use): Deleted. + (DECL_DIE_TABLE_INCREMENT): Deleted. + (decl_die_table_hash): New function. + (decl_die_table_eq): New function. + (lookup_decl_die): Lookup in a hash table. + (equate_decl_number_to_die): Insert into a hash table. + (dwarf2out_init): Init hash table decl_die_table. + +2004-01-29 Jakub Jelinek + + PR optimization/13424 + * expr.c (store_constructor): Revert 2003-12-03 change. + + * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as + expected before returning early. Avoid sharing RTL if they + need to be changed. + + * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov + handling so that memory attributes are preserved. Don't call + ix86_set_move_mem_attrs. + (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed. + (ix86_expand_clrstr): Rename src argument to + dst. Rework rep_stos and strset handling so that memory attributes + are preserved. + (ix86_expand_strlen): Pass src argument to + ix86_expand_strlensi_unroll_1. Rework strlenqi_1 handling so that + memory attributes are preserved. + (ix86_expand_strlensi_unroll_1): Add src argument. Use + change_address instead of gen_rtx_MEM. + * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New + expanders. + (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64, + strmovqi, strmovqi_rex64): Remove. + (rep_mov*, strmov*): Prefix insn names with *. + (strset, strset_singleop, rep_stos): New expanders. + (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64, + strsetqi, strsetqi_rex64): Remove. + (rep_stos*, strset*): Prefix insn names with *. + (rep_stosqi_rex64): Likewise. Fix mode of dirflag reg from DImode + to SImode. + (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes + are preserved. + (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1): + Prefix insn names with *. + (cmpstrqi_nz_1, cmpstrqi_1): New expanders. + (strlenqi_1, strlenqi_rex_1): Prefix insn names with *. + (strlenqi_1): New expander. + * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype. + +2004-01-29 Zdenek Dvorak + + * Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency. + * basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb, + verify_flow_info): Declaration removed. + * cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c. + (debug_bb, debug_bb_n): Add argument to dump_bb call. + * cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge, + try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block + instead of delete_block. + * cfghooks.c: Include timevar.h and toplev.h. + (cfg_hooks): Define here. + (verify_flow_info, dump_bb): Moved from cfg.c. + (redirect_edge_and_branch, redirect_edge_and_branch_force, + split_block, split_block_after_labels, move_block_after, + delete_basic_block, split_edge, create_basic_block, + create_empty_bb, can_merge_blocks_p, merge_blocks, + make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges): + New functions. + * cfghooks.h (struct cfg_hooks): Added fields name, + make_forwarder_block, tidy_fallthru_edge and + move_block_after. Changed type of verify_flow_info, dump_bb, + split_block fields. Renamed cfgh_split_edge and delete_block + fields. + (redirect_edge_and_branch, redirect_edge_and_branch_force, + split_block, delete_block, split_edge, create_basic_block, + can_merge_blocks_p, merge_blocks): Macros removed. + (cfg_hooks): Do not export. + (verify_flow_info, dump_bb, redirect_edge_and_branch, + redirect_edge_and_branch_force, split_block, split_block_after_labels, + move_block_after, delete_basic_block, split_edge, create_basic_block, + create_empty_bb, can_merge_blocks_p, merge_blocks, + make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges): + Declare. + (cfg_layout_rtl_cfg_hooks): Declare. + * cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch): + New functions. + (canonicalize_loop_headers): Use new semantics of make_forwarder_block. + (redirect_edge_with_latch_update): Removed. + (make_forwarder_block): Moved to cfghooks.c, semantics changed. + * cfgloopmanip.c (remove_bbs): Do not update dominators here. + * cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb, + rtl_delete_block, rtl_split_block, rtl_merge_blocks, + tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block, + cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to + cfghooks.c. + (rtl_create_basic_block): Coding style fix. + (rtl_tidy_fallthru_edge, rtl_move_block_after, + rtl_make_forwarder_block): New functions. + (update_cfg_after_block_merging): Removed. + (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries. + * flow.c (verify_wide_reg, verify_local_live_at_start): Add argument + to dump_bb. + * ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1, + find_if_case_2): Don't update dominators. + * timevar.def (TV_CFG_VERIFY): New. + * loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info. + * cfglayout.c (copy_bbs): Don't call add_to_dominance_info. + * cfgloopmanip.c (split_loop_bb): Don't update dominators. + (remove_bbs): Don't call remove_bbs. + (create_preheader): Use make_forwarder_block. + (mfb_keep_just, mfb_update_loops): New static functions. + +2004-01-29 Kazu Hirata + + * config/avr/avr.h: Remove target-independent comments about + target macros. + +2004-01-28 Daniel Berlin + + * timevar.c (timevar_print): Mention when checking is enabled. + +2004-01-28 Giovanni Bajo + + * c-lex.c (c_lex): Rename to... + (c_lex_with_flags): Add new parameter to get CPP flags. + (c_lex): Thunk to c_lex_with_flags while keeping the old interface. + * c-pragma.h (c_lex_with_flags): Declare. + +2004-01-28 Kazu Hirata + + * config/mcore/mcore.c (mcore_external_libcall): Add a + comment. + (mcore_return_in_memory): Likewise. + +2004-01-28 Kazu Hirata + + * config/mcore/mcore-protos.h: Remove the prototype for + mcore_setup_incoming_varargs. + * config/mcore/mcore.c (TARGET_ASM_EXTERNAL_LIBCALL): New. + (TARGET_PROMOTE_FUNCTION_ARGS): Likewise. + (TARGET_PROMOTE_FUNCTION_RETURN): Likewise. + (TARGET_PROMOTE_PROTOTYPES): Likewise. + (TARGET_STRUCT_VALUE_RTX): Likewise. + (TARGET_RETURN_IN_MEMORY): Likewise. + (TARGET_SETUP_INCOMING_VARARGS): Likewise. + (mcore_setup_incoming_varargs): Make it static. Receive the + first argument by reference. Add argument second_time. + (mcore_external_libcall): New. + (mcore_return_in_memory): Likewise. + * config/mcore/mcore.h (PROMOTE_FUNCTION_ARGS): New. + (PROMOTE_FUNCTION_RETURN): Likewise. + (STRUCT_VALUE): Likewise. + (RETURN_IN_MEMORY): Likewise. + (SETUP_INCOMING_VARARGS): Likewise. + (PROMOTE_PROTOTYPES): Likewise. + (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise. + +2004-01-28 Kazu Hirata + + * config/m32r/m32r-protos.h: Remove the prototype for + m32r_setup_incoming_varargs. + * config/m32r/m32r.c (TARGET_PROMOTE_PROTOTYPES): New. + (TARGET_STRUCT_VALUE_RTX): Likewise. + (TARGET_RETURN_IN_MEMORY): Likewise. + (TARGET_SETUP_INCOMING_VARARGS): Likewise. + (m32r_return_in_memory): New. + (m32r_setup_incoming_varargs): Make it static. + * config/m32r/m32r.h: Remove #undef of + ASM_OUTPUT_EXTERNAL_LIBCALL. Remove the commented-out + definitions of PROMOTE_FUNCTION_ARGS and + PROMOTE_FUNCTION_RETURN. + (PROMOTE_PROTOTYPES): Remove. + (RETURN_IN_MEMORY): Likewise. + (STRUCT_VALUE): Likewise. + +2004-01-28 Kazu Hirata + + * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES): New. + (TARGET_STRUCT_VALUE_RTX): Likewise. + (m68k_struct_value_rtx): Likewise. + * config/m68k/m68k.h (STRUCT_VALUE_REGNUM): Rename to + STRUCT_VALUE_REGNUM. + (PROMOTE_PROTOTYPES): Remove. + * config/m68k/m68kelf.h (STRUCT_VALUE_REGNUM): Rename to + STRUCT_VALUE_REGNUM. + * config/m68k/m68kv4.h (STRUCT_VALUE_REGNUM): Likewise. + * config/m68k/netbsd-elf.h (STRUCT_VALUE_REGNUM): Likewise. + +2004-01-28 Kazu Hirata + + * config/stormy16/stormy16.c + (TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Rename to + TARGET_BUILD_BUILTIN_VA_LIST. + +2004-01-28 Kazu Hirata + + * config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New. + (TARGET_STRUCT_VALUE_RTX): Likewise. + (TARGET_RETURN_IN_MEMORY): Likewise. + (TARGET_SETUP_INCOMING_VARARGS): Likewise. + (v850_return_in_memory): Likewise. + (v850_setup_incoming_varargs): Likewise. + * config/v850/v850.h (PROMOTE_PROTOTYPES): Remove. + (SETUP_INCOMING_VARARGS): Likewise. + (RETURN_IN_MEMORY): Likewise. + (STRUCT_VALUE): Likewise. + +2004-01-28 Kazu Hirata + + * config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New. + (fr30_setup_incoming_varargs): Don't use + STRICT_ARGUMENT_NAMING. + * config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove. + (STRICT_ARGUMENT_NAMING): Likewise. + +2004-01-28 Kazu Hirata + + * config/frv/frv-protos.h: Remove the prototype for + frv_expand_builtin_saveregs. + * config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise. + (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise. + (frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of + STRUCT_VALUE_REGNUM. + (frv_expand_builtin_saveregs): Make it static. + (frv_struct_value_rtx): New. + * config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove. + +2004-01-29 Jan Hubicka + + PR c++/12850 + * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and + initial pointers. + * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS + for functions that will be only inlined. + (cgraph_mark_function_to_output): Likewise. + (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear; + do not clear function body. + * tree-optimize.c (clear_decl_rtl): Use decl_function_context. + (tree_rest_of_compilation): Reorganize the logic releasing function + body to use callgraph datastructure. + +2004-01-28 John David Anglin + + * pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand + to register_operand. + +2004-01-28 Zack Weinberg + + * config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di) + (cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and + match_operand expressions so that all match_dups appear + lexically after their corresponding match_operands. + +2004-01-28 Kazu Hirata + + * config/h8300/h8300.c (WORD_REG_USED): Use + HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM. + (compute_saved_regs): Likewise. + (h8300_expand_prologue): Likewise. Allocate locals after + saving registers. + (h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead + of FRAME_POINTER_REGNUM. Deallocate locals before saving + registers. + (h8300_initial_elimination_offset): Adjust for the new frame + layout, which swaps flips the order of locals and saved + registers. + * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12. + (HARD_FRAME_POINTER_REGNUM): New. + (ELIMINABLE_REGS): Add an elimination rule from + FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM. + (REGISTER_NAMES): Add fp. + * config/h8300/h8300.md (FP_REG): Change to 11. + (HFP_REG): New. + +2004-01-28 Kazu Hirata + + * genrecog.c (write_node): Remove a useless local variable. + +2004-01-28 Ian Lance Taylor + + * Makefile.in (options.c options.h): Use stamp file s-options to + avoid unnecessary rebuilds. + (options.o): New target listing dependencies. + (gtyp-gen.h): Use stamp file s-gtyp-gen. + (STAGESTUFF): Add s-gtyp-gen. + +2004-01-28 Richard Henderson + + * ggc.h (ggc_free): Declare. + * ggc-common.c (ggc_realloc): Use it. + * ggc-page.c: Remove lots of inline markers. + (globals): Add free_object_list. + (ggc_alloc): Tidy. + (ggc_free, validate_free_objects): New. + (poison_pages): Provide default. + (ggc_collect): Call validate_free_objects; emit markers to + the debug file. + +2004-01-28 Zack Weinberg + Jim Wilson + + * config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move): + Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a + scratch pointer. + (ia64_secondary_reload_class): Delete case GR_REGS. + * config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal): + Do not allocate a scratch register. + (reload_inti, reload_outti, reload_intf, reload_outtf): Delete. + +2004-01-28 Jan Hubicka + + * gcse.c (bypass_block): Prevent edges to be unified when we are + about to emit compenstation code. + +2004-01-28 Nick Clifton + + * config/arm/arm.c (arm_expand_builtin): Force second argument of + the setcwx insn into a register. + +2004-01-28 Richard Sandiford + + * config/fp-bit.c (pack_d): When using paired doubles to implement + a long double, round the high part separately. + (unpack_d): Fix the case in which the high part is a power of two + and the low part is a nonzero value of the opposite sign. + +2004-01-28 Kazu Hirata + + * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New. + (TARGET_STRUCT_VALUE_RTX): Likewise. + (c4x_external_libcall): Likewise. + (c4x_struct_value_rtx): Likewise. + * config/c4x/c4x.h: Remove. + (STRUCT_VALUE_REGNUM): Likewise. + (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise. + +2004-01-28 Kazu Hirata + + * config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New. + (TARGET_STRUCT_VALUE_RTX): Likewise. + * config/i386/i386.h (STRUCT_VALUE_INCOMING): Remove. + (STRUCT_VALUE): Likewise. + (PROMOTE_PROTOTYPES): Likewise. + +2004-01-27 Roger Sayle + + * config/pa/pa.c (emit_move_sequence): Check that operand1 is a + CONST_INT before using INTVAL. + +2004-01-27 Ulrich Weigand + + * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN. + * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current + frame if !TARGET_BACKCHAIN. + * config/s390/s390.md ("allocate_stack"): Use pattern only if + TARGET_BACKCHAIN. + * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default. + +2004-01-27 Zack Weinberg + + * ia64.c (ia64_function_arg): When placing HFAs in integer + registers, do not special case the mode used for complex + types. Do not advance int_regs until the current register + is full. + +2004-01-27 Richard Sandiford + + PR target/7297 + * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp(). + +2004-01-27 David Edelsohn + + * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting + slow, unaligned loads and stores while debugging. Fix formatting. + +2004-01-27 David Edelsohn + + * config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead + of computing wmode. + (restore_stack_nonlocal): Same. + +2004-01-27 Devang Patel + + * Makefile.in (dwarf2out.o): Depend on input.h + * dbxout.c (dbx_debug_hooks): Add new empty hook for + imported_module_or_decl. + (xcoff_debug_hooks): Same. + * sdbout.c (sdb_debug_hooks): Same. + * vmsdbgout.c (vmsdbg_debug_hooks): Same. + * debug.c (do_nothing_debug_hooks): Same. + (debug_nothing_tree_tree): New function. + * debug.h (gcc_debug_hooks): New hook, imported_module_or_decl. + * dwarf2out.c: Include input.h. + (dwarf2_debug_hooks): Add new hook for imported_module_or_decl. + (remove_child_TAG): New function. + (dwarf_tag_name): Handle DW_TAG_imported_module. + (gen_subprogram_die): Equate decl number to declaration die. Do not + remove all children dies while reusing declaration die for definition. + Instead, selectively remove only formal parameters. + (gen_variable_die): Equate variable decl to declaration die. + (gen_field_die): Equate field decl to line number. + (force_namespace_die): Replace it with ... + (force_decl_die): ... this. + (force_type_die): New function. + (setup_namespace_context): Replace use of force_namespace_die() with + force_decl_die(). + (gen_namespace_die): Same. + (dwarf2out_imported_module_or_decl): New function. + +2004-01-27 Bob Wilson + + * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG + on CQImode and CHImode incoming arguments in register a7. + (function_arg): Wrap BLKmode argument in register a7 in a PARALLEL. + * config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define. + * config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or + xtensa_copy_incoming_a7 before reload. + +2004-01-27 J"orn Rennecke + + * coverage.c (get_coverage_counts): Give a different message + if flag_guess_branch_prob is set. + * predict.c (counts_to_freqs): Return an int. + (estimate_bb_frequencies): If counts_to_freqs returns zero, + calculate estimates. + +2004-01-27 Kazu Hirata + + * config/iq2000/iq2000-protos.h: Remove the prototype for + iq2000_setup_incoming_varargs. + * config/iq2000/iq2000.c (TARGET_PROMOTE_FUNCTION_ARGS): New. + (TARGET_PROMOTE_FUNCTION_RETURN): Likewise. + (TARGET_PROMOTE_PROTOTYPES): Likewise. + (TARGET_STRUCT_VALUE_RTX): Likewise. + (TARGET_RETURN_IN_MEMORY): Likewise. + (TARGET_SETUP_INCOMING_VARARGS): Likewise. + (TARGET_STRICT_ARGUMENT_NAMING): Likewise. + (iq2000_return_in_memory): Likewise. + (iq2000_setup_incoming_varargs): Make it static. Receive the + first argument by reference. + * config/iq2000/iq2000.h (PROMOTE_FUNCTION_ARGS): Remove. + (PROMOTE_FUNCTION_RETURN): Likewise. + (PROMOTE_PROTOTYPES): Likewise. + (RETURN_IN_MEMORY): Likewise. + (STRUCT_VALUE): Likewise. + (SETUP_INCOMING_VARARGS): Likewise. + (STRICT_ARGUMENT_NAMING): Likewise. + +2004-01-24 James A. Morrison + + * fixinc/fixinc.c (test_test): Initialize res. + (start_flexer): Initialize pz_cmd_save. + +2004-01-27 Zack Weinberg + + * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS, + SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS. + +2004-01-27 Zack Weinberg + + PR 7198 + * config/ia64/ia64.md (*nmaddsf4, *nmadddf4, *nmadddf4_alts) + (*nmadddf4_trunc, *nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf) + (*nmaddxf4_alts, *nmaddxf4_truncdf_alts): + Rewrite pattern as (minus (op 3) (mult (op 1) (op 2))). + Possibly rename pattern for consistency. + Remove ??? comments suggesting that this be done. + (*nmaddsf4_alts, *nmadddf4_truncsf_alts, *nmaddxf4_truncsf_alts): + New patterns. + (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr) + (divsf3_internal_lat, divsf3_internal_thr, sqrtsf2_internal_thr) + (divdf3_internal_lat, divdf3_internal_thr, sqrtdf2_internal_thr) + (divxf3_internal_lat, divxf3_internal_thr, sqrtxf2_internal_thr): + Update to match. + +2004-01-27 Ian Lance Taylor + + * config/arm/arm.c (output_return_instruction): Only restore IP + into SP if frame_pointer_needed. + +2004-01-27 Eric Botcazou + + * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1 + for SCmode and DCmode if ARCH32. + (sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32. + * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode + if ARCH32. + (BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode + if ARCH32. + (BASE_OUTGOING_VALUE_REG): Likewise. + +2004-01-27 Eric Botcazou + + PR target/10904 + PR target/13058 + * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New. + Forbid mode changes from SImode for lower FP regs if ARCH64. + +2004-01-27 J"orn Rennecke + + * Makefile.in (bt-load.o): Depend on except.h. + * bt-load.c (except.h): #include. + (compute_defs_uses_and_gen): If insn at end of BB can throw + within this function, consider registers used by it unavailable for + btr migration. + (move_btr_def): If insn at end of BB can throw, insert before rather + than after. + + * flags.h (flag_btr_bb_exclusive): Declare. + * toplev.c (flag_btr_bb_exclusive): New variable. + (f_options): Add btr-bb-exclusive. + * bt-load.c (augment_live_range): Restore old behaviour if + flag_btr_bb_exclusive is set. + * common.opt: Add entry for -fbtr-bb-exclusive. + * opts.c (common_handle_options): Same. + * doc/invoke.texi: Document -fbtr-bb-exclusive. + + * bt-load.c (btrs_live_at_end): New variable. + (compute_defs_uses_and_gen): Compute its pointed-to array. + (clear_btr_from_live_range, add_btr_to_live_range): Update it. + (augment_live_range): When augmenting with a new dominator, + use only its btrs_live_at_end set, but also add in the full set + of the old dominator. + (btr_def_live_range): Use btrs_live_at_end. + (move_btr_def): Set other_btr_uses_before_def, and move new set + to the end of the basic block, if appropriate. + (migrate_btr_defs): Allocate and free btrs_live_at_end. + + * bt-load.c (basic_block_freq): Remove outdated comment. + +2004-01-27 Alan Modra + + * config/rs6000/rs6000.h: Correct target_flags free bits comment. + (PREDICATE_CODES): Remove duplicate. + * config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define. + (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL. + (MASK_PROFILE_KERNEL): Adjust define. + +2004-01-27 Jakub Jelinek + + * config/i386/i386.c (ix86_constant_alignment): Decrease alignment + of long string literals from 32 bytes to sizeof (void *) when !-Os + and to 1 with -Os. + +2004-01-26 Kazu Hirata + + * config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept + constant addresses in the normal mode. + +2004-01-26 Kaveh R. Ghazi + + * system.h (CHAR_BITFIELD): Delete. + (BOOL_BITFIELD): New. + * c-decl.c (c_scope): Use BOOL_BITFIELD. + * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD. + +2004-01-26 Kazu Hirata + + * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New. + (TARGET_PROMOTE_FUNCTION_RETURN): Likewise. + (TARGET_PROMOTE_PROTOTYPES): Likewise. + (TARGET_STRUCT_VALUE_RTX): Likewise. + (TARGET_RETURN_IN_MEMORY): Likewise. + (arc_return_in_memory): Likewise. + * config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove. + (PROMOTE_FUNCTION_RETURN): Likewise. + (RETURN_IN_MEMORY): Likewise. + (STRUCT_VALUE): Likewise. + +2004-01-26 Richard Henderson + + * c-parse.in (extension): Use itype. + (SAVE_EXT_FLAGS): Don't allocate a tree. + (RESTORE_EXT_FLAGS): Don't read a tree. + +2004-01-26 Jan Hubicka + + * cselib.c (discard_useless_values): Clear out value pointer pointing + to datastructure to be recycled. + +2004-01-25 Jan Hubicka + + * genextract.c (main): Do not output the memset when not checking. + +2004-01-26 Kazu Hirata + + * config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a + switch statement instead of a chain of if statements. + +2004-01-26 Jeff Law + + * doc/contrib.texi: Minor cleanup for Paolo Carlini's entry. Add + acute accents for Petur Runolfsson's entry. + +2004-01-26 Kazu Hirata + + * config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New. + (TARGET_RETURN_IN_MEMORY): Likewise. + * config/pdp11/pdp11.h (STRUCT_VALUE): Remove. + (RETURN_IN_MEMORY): Likewise. + +2004-01-26 Fariborz Jahanian + + * config/rs6000/rs6000.c (rs6000_emit_move): split slow + unaligned load/store into smaller loads and stores. + +2004-01-26 Fariborz Jahanian + + * function.c (assign_parms): Do not assign + long long argument to memory in prologue if + is it loaded into register. + +2004-01-26 Fariborz Jahanian + + PR middle-end/13779 + * expr.c (emit_group_load): split constant + correctly into register components of PARALLEL insn. + +2004-01-26 Fariborz Jahanian + + * gcc/config/rs6000/rs6000.md (save_stack_nonlocal): + Use adjust_address_nv directly with appropriate mode. + (restore_stack_nonlocal): Ditto. + +2004-01-26 Kazu Hirata + + * config/xtensa/xtensa-protos.h: Remove the prototype for + xtensa_builtin_saveregs. + * config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New. + (TARGET_PROMOTE_FUNCTION_RETURN): Likewise. + (TARGET_PROMOTE_PROTOTYPES): Likewise. + (TARGET_STRUCT_VALUE_RTX): Likewise. + (TARGET_RETURN_IN_MEMORY): Likewise. + (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise. + (xtensa_builtin_saveregs): Make it static. + (xtensa_return_in_memory): New. + * config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove. + (PROMOTE_FUNCTION_RETURN): Likewise. + (PROMOTE_PROTOTYPES): Likewise. + (STRUCT_VALUE): Likewise. + (RETURN_IN_MEMORY): Likewise. + (EXPAND_BUILTIN_SAVEREGS): Likewise. + +2004-01-26 Kazu Hirata + + * config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New. + (arm_setup_incoming_varargs): Likewise. + * config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove. + +2004-01-26 Kazu Hirata + + * config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New. + (cris_setup_incoming_varargs): Likewise. + * config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove. + +2004-01-26 Kazu Hirata + + * config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New. + (ns32k_struct_value_rtx): Likewise. + * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to + NS32K_STRUCT_VALUE_REGNUM. + +2004-01-26 Kazu Hirata + + * config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New. + (TARGET_PROMOTE_PROTOTYPES): Likewise. + (TARGET_STRUCT_VALUE_RTX): Likewise. + (arm_struct_value_rtx): Likewise. + * config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove. + (STRUCT_VALUE): Likewise. + (STRUCT_VALUE_REGNUM): Likewise. + (PROMOTE_PROTOTYPES): Likewise. + +2004-01-26 Kazu Hirata + + * config/ia64/ia64-protos.h: Remove the prototype for + ia64_setup_incoming_varargs and ia64_return_in_memory. + * config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New. + (TARGET_RETURN_IN_MEMORY): Likewise. + (TARGET_SETUP_INCOMING_VARARGS): Likewise. + (TARGET_STRICT_ARGUMENT_NAMING): Likewise. + (ia64_setup_incoming_varargs): Adjust the arguments to meet + the requirement of TARGET_SETUP_INCOMING_VARARGS. + (ia64_return_in_memory): Make it static. Change the return + type to bool from int. Add an argument. + (ia64_struct_value_rtx): New. + * config/ia64/ia64.h: Remove commented-out definitions of + PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and + PROMOTE_PROTOTYPES. + (RETURN_IN_MEMORY): Remove. + (STRUCT_VALUE_REGNUM): Likewise. + (STRICT_ARGUMENT_NAMING): Likewise. + +2004-01-26 Eric Botcazou + + PR target/13666 + * config/sparc/sparc.c (function_arg_union_value): New function. + (function_arg): Use it to deal with unions. + (function_value): Likewise. Define 'regbase' only for ARCH64. + Replace a conditional statement by a simpler one. + +2004-01-26 Richard Sandiford + + * config/mips/mips.c (mips16_optimize_gp): Delete. + (mips_reorg): Don't call it. + +2004-01-26 Michael Hayes + + * config/c4x/c4x.md (addqi3_noclobber): Move up pecking order. + (floatunsqihf2): Remove operand 6. + (fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other + fix patterns. + (ldi_conditional, ldf_conditional): Validate operands. + +2004-01-26 Michael Hayes + + * config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove. + (HAVE_GAS_HIDDEN): Undefine as interim measure. + +2004-01-26 Michael Hayes + + * config/c4x/c4x.c (c4x_legitimate_address_p): Invalidate direct + memory references if TARGET_EXPOSE_LDP nonzero. + +2004-01-26 Michael Hayes + + * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts. + +2004-01-26 Michael Hayes + + * config/c4x/c4x.c (c4x_valid_operands): More aggressively reject + invalid operand combinations. + +2004-01-26 Michael Hayes + + * config/c4x/c4x.c (c4x_check_legit_addr): Rename to + c4x_legitimate_address_p. Fix post_modify check. + + * config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust. + * config/c4x/c4x.h (c4x_check_legit_addr): Adjust. + +2004-01-25 Kazu Hirata + + * config/pa/pa-protos.h: Remove the prototype for + hppa_builtin_saveregs. Add a prototype for + pa_return_in_memory. + * config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New. + (TARGET_PROMOTE_PROTOTYPES): Likewise. + (TARGET_STRUCT_VALUE_RTX): Likewise. + (TARGET_RETURN_IN_MEMORY): Likewise. + (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise. + (pa_struct_value_rtx): Likewise. + (pa_return_in_memory): Likewise. + * config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to + PA_STRUCT_VALUE_REGNUM. + (INIT_CUMULATIVE_ARGS): Use pa_return_in_memory. + (EXPAND_BUILTIN_SAVEREGS): Remove. + (PROMOTE_PROTOTYPES): Likewise. + (PROMOTE_FUNCTION_RETURN): Likewise. + +2004-01-25 Kazu Hirata + + * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New. + (TARGET_STRUCT_VALUE_RTX): Likewise. + (vax_struct_value_rtx): Likewise. + * config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to + VAX_STRUCT_VALUE_REGNUM. + (PROMOTE_PROTOTYPES): Remove. + +2004-01-26 Michael Hayes + + * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS): Handle symref. + +2004-01-25 Chris Demetriou + + * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2, + and MIPS64 have HI/LO interlocks. Update comment. + +2004-01-25 Kazu Hirata + + * config/stormy16/stormy16-protos.h: Remove the prototype for + xstormy16_setup_incoming_varargs. + * config/stormy16/stormy16.c + (xstormy16_setup_incoming_varargs): Remove. + (xstormy16_return_in_memory): New. + (TARGET_PROMOTE_FUNCTION_ARGS): Likewise. + (TARGET_PROMOTE_FUNCTION_RETURN): Likewise. + (TARGET_PROMOTE_PROTOTYPES): Likewise. + (TARGET_STRUCT_VALUE_RTX): Likewise. + (TARGET_RETURN_IN_MEMORY): Likewise. + * config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove. + (PROMOTE_FUNCTION_RETURN): Likewise + (PROMOTE_PROTOTYPES): Likewise + (RETURN_IN_MEMORY): Likewise + (STRUCT_VALUE): Likewise + (SETUP_INCOMING_VARARGS): Likewise + +2004-01-25 Richard Sandiford + + * config/mips/mips.c (mips_offset_within_object_p): New function. + (mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and + SYMBOL_CONSTANT_POOL cases. Also use it for SYMBOL_GENERAL if the + ABI has 64-bit pointers and the object file only allows 32-bit symbols. + +2004-01-25 Kazu Hirata + + * config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove. + (PROMOTE_FUNCTION_RETURN): Likewise. + +2004-01-25 Kazu Hirata + + * config/mn10300/mn10300-protos.h: Remove the prototype for + mn10300_builtin_saveregs. + * config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New. + (TARGET_STRUCT_VALUE_RTX): Likewise. + (TARGET_RETURN_IN_MEMORY): Likewise. + (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise. + (mn10300_return_in_memory): Likewise. + (mn10300_builtin_saveregs): Make it static. + * config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove. + (RETURN_IN_MEMORY): Likewise. + (STRUCT_VALUE): Likewise. + (EXPAND_BUILTIN_SAVEREGS): Likewise. + +2004-01-25 Eric Botcazou + + PR bootstrap/13853 + * cfgcleanup.c (try_optimize_cfg): Explicitly test against 0. + +2004-01-25 Kazu Hirata + + * config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by + using ccr. + +2004-01-25 Kazu Hirata + + * config/i860/i860-protos.h: Remove the prototype for + i860_saveregs. + * config/i860/i860.c (i860_saveregs): Make it static. + (i860_struct_value_rtx): New. + (TARGET_STRUCT_VALUE_RTX): Likewise. + (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise. + * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to + I860_STRUCT_VALUE_REGNUM. + (EXPAND_BUILTIN_SAVEREGS): Remove. + +2004-01-25 Kazu Hirata + + * config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New. + (TARGET_RETURN_IN_MEMORY): Likewise. + (m68hc11_struct_value_rtx): Likewise. + (m68hc11_return_in_memory): Likewise. + * config/m68hc11/m68hc11.h: Remove a commented-out definition + of PROMOTE_PROTOTYPES. + (RETURN_IN_MEMORY): Remove. + (STRUCT_VALUE_REGNUM): Likewise. + +2004-01-25 Kazu Hirata + + * config/mmix/mmix-protos.h: Remove the prototype for + mmix_setup_incoming_varargs. + * config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New. + (TARGET_STRUCT_VALUE_RTX): Likewise. + (TARGET_SETUP_INCOMING_VARARGS): Likewise. + (mmix_setup_incoming_varargs): Make it static. + (mmix_struct_value_rtx): New. + * config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove. + Remove a commented-out definition of PROMOTE_FUNCTION_RETURN. + (STRUCT_VALUE_REGNUM): Remove. + (SETUP_INCOMING_VARARGS): Likewise. + +2004-01-25 Kazu Hirata + + * config/mips/mips-protos.h: Remove the prototypes for + mips_setup_incoming_varargs and mips_return_in_memory. + * config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New. + (TARGET_PROMOTE_FUNCTION_RETURN): Likewise. + (TARGET_PROMOTE_PROTOTYPES): Likewise. + (TARGET_STRUCT_VALUE_RTX): Likewise. + (TARGET_RETURN_IN_MEMORY): Likewise. + (TARGET_SETUP_INCOMING_VARARGS): Likewise. + (TARGET_STRICT_ARGUMENT_NAMING): Likewise. + (mips_setup_incoming_varargs): Match the prototype for + TARGET_SETUP_INCOMING_VARARGS. + (mips_return_in_memory): Make it static. Add argument fntype. + (mips_strict_argument_naming): New. + * config/mips/mips.h (PROMOTE_PROTOTYPES): Remove. + (PROMOTE_FUNCTION_ARGS): Likewise. + (PROMOTE_FUNCTION_RETURN): Likewise. + (STRUCT_VALUE): Likewise. + (RETURN_IN_MEMORY): Likewise. + (SETUP_INCOMING_VARARGS): Likewise. + (STRICT_ARGUMENT_NAMING): Likewise. + +2004-01-25 Kazu Hirata + + * config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New. + (TARGET_RETURN_IN_MEMORY): Likewise. + (TARGET_SETUP_INCOMING_VARARGS): Likewise. + (ip2k_return_in_memory): Likewise. + (ip2k_setup_incoming_varargs): Likewise. + * config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove. + (STRUCT_VALUE): Likewise. + (STRUCT_VALUE_INCOMING): Likewise. + (SETUP_INCOMING_VARARGS): Likewise. + +2004-01-25 Kazu Hirata + + * config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New. + (TARGET_RETURN_IN_MEMORY): Likewise. + (TARGET_STRICT_ARGUMENT_NAMING): Likewise. + (avr_return_in_memory): Remove. + * config/avr/avr.h (RETURN_IN_MEMORY): Remove. + (STRUCT_VALUE): Likewise. + (STRUCT_VALUE_INCOMING): Likewise. + (STRICT_ARGUMENT_NAMING): Likewise. + +2004-01-25 Jan Hubicka + + * combine.c (recog_for_combine): Avoid allocating unnecesary RTX. + +2004-01-25 Richard Sandiford + + * config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete. + (mips_regno_mode_ok_for_base_p): Declare. + * config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77. + (FRAME_POINTER_REGNUM): Renumber to 78. + (FIRST_PSEUDO_REGISTER): Update comment accordingly. + (BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete. + (GP_REG_OR_PSEUDO_NONSTRICT_P): Delete. + (REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p. + (REG_MODE_OK_FOR_BASE_P): Likewise. + * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change + entry for 77 to "$arg" and entry for 78 to "$frame". + (mips_regno_to_class): Map 77 and 78 to ALL_REGS. + (mips_reg_mode_ok_for_base_p): Remove. + (mips_regno_mode_ok_for_base_p): New function, derived from old + BASE_REG_P macro. Don't enforce the mips16 stack pointer + restrictions unless we're being strict. + (mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p. + +2004-01-24 Kazu Hirata + + * c-common.h: Fix comment typos. + * c-decl.c: Likewise. + * cgraphunit.c: Likewise. + * combine.c: Likewise. + * et-forest.c: Likewise. + * flow.c: Likewise. + * function.c: Likewise. + * ifcvt.c: Likewise. + * integrate.c: Likewise. + * jump.c: Likewise. + * postreload.c: Likewise. + * varray.c: Likewise. + +2004-01-24 Kazu Hirata + + * doc/frontends.texi: Update copyright. + * doc/gcov.texi: Likewise. + * doc/gty.texi: Likewise. + * doc/sourcebuild.texi: Likewise. + * doc/standards.texi: Likewise. + +2004-01-24 Herman A.J. ten Brugge + + PR target/12978 + * c4x.md: (movstrqi*) Use match_scratch instead of match_dup. + Remove movstrqi_small because it conflicts with movstrqi_large. + +2004-01-24 Kazu Hirata + + * config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New. + (TARGET_STRUCT_VALUE_RTX): Likewise. + (cris_struct_value_rtx): Likewise. + * config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove. + (CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of + STRUCT_VALUE_REGNUM. + (STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM. + +2004-01-24 Ian Lance Taylor + + PR bootstrap/13848 + * 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 Jan Hubicka + + * emit-rtl.c (change_address, adjust_address_1, offset_address, + widen_memory_access): Return early when there is nothing to change. + +2004-01-24 Jakub Jelinek + + * simplify-rtx.c (simplify_relational_operation): Don't + simplify address == constant into address + -constant == 0. + +2004-01-24 Kazu Hirata + + * gcc.c (process_command): Don't internationalize the + Copyright message. + * mips-tfile.c (main): Likewise. + +2004-01-24 Andreas Tobler + + * cse.c: (cse_cc_succs) Fix comparison warning. + +2004-01-24 Kazu Hirata + + * config/h8300/h8300.md: Remove extraneous USE in expanders. + +2004-01-24 Kazu Hirata + + * config/h8300/h8300-protos.h: Provide prototypes for + h8300_legitimate_constant_p and h8300_legitimate_address_p. + * config/h8300/h8300.c (h8300_legitimate_constant_p): New. + (h8300_rtx_ok_for_base_p): Likewise. + (h8300_legitimate_address_p): Likewise. + * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use + h8300_legitimate_constant_p. + (RTX_OK_FOR_BASE_P): Remove. + (GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p. + +2004-01-24 Kazu Hirata + + * config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New. + (REG_OK_FOR_BASE_NONSTRICT_P): Likewise. + (REG_OK_FOR_INDEX_STRICT_P): Likewise. + (REG_OK_FOR_BASE_STRICT_P): Likewise. + (REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P. + (REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P. + (REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P. + (REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P. + +2004-01-24 Jan Hubicka + + * cselib.c (remove_useless_values): Do not access discarded values. + +2004-01-24 Joseph S. Myers + + * c-typeck.c (build_conditional_expr): Do not allow non-lvalue + arrays. + +2004-01-23 Kazu Hirata + + * recog.c: Fix a typo in copyright. + +2004-01-23 Andrew Pinski + + * config/rs6000/rs6000.md (call): Fix misappiled patch. + (call_value): Likewise. + +2004-01-23 Richard Henderson + + PR opt/12941 + * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value. + (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0) + if SHIFT_COUNT_TRUNCATED is set. + +2004-01-23 Bob Wilson + + * config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as + separate real and imaginary parts. + * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define. + +2004-01-23 Hartmut Penner + + PR target/13674 + * config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage + loading into GPR. + +2004-01-23 Jan Hubicka + + * emit-rtl.c (change_address_1): Do not re-generate the RTX if nothing + change. + + * alloc-pool.c (align_four): Kill. + (create_alloc_pool): Align size to eight. + (free_alloc_pool, free_pool): Invalidate deallocated data. + +2004-01-23 Ian Lance Taylor + + PR gcc/1532 + * cse.c (cse_change_cc_mode): New static function. + (cse_change_cc_mode_insns, cse_cc_succs): Likewise. + (cse_condition_code_reg): New function. + * rtl.h (cse_condition_code_reg): Declare. + * toplev.c (rest_of_handle_cse2): 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): New function. + * 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/tm.texi (Condition Code): Document new hooks. + +2004-01-23 Rainer Orth + + * fixinc/inclhack.def (bad_lval): Renamed to ... + (alpha_bad_lval): ... this. + Removed file list. + Restrict to alpha*-dec-osf*. + * fixinc/fixincl.x: Regenerate. + * fixinc/tests/base/dirent.h: Remove, moving test ... + * fixinc/tests/base/testing.h: ... here, reflecting new name. + +2004-01-23 Zack Weinberg + + PR c/13814 + * c-decl.c (diagnose_mismatched_decls): Also discard a + built-in if we encounter an old-style definition with the + same name. + +2004-01-23 Jakub Jelinek + + * config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was + set to default{32,64}. + +2004-01-21 Jakub Jelinek + + * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR) + [!__powerpc64__]: Corrected to handle kernels with changed ucontext. + +2004-01-23 Eric Botcazou + Olivier Hainque + + * fold-const.c (fold_binary_op_with_conditional_arg): Only + build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR. + +2004-01-23 Daniel Jacobowitz + + * config/arm/arm.c (arm_legitimate_address_p): Don't check the mode + size for minipool references. + +2004-01-23 Roger Sayle + + * real.c (real_floor, real_ceil): Tweak to allow input and output + arguments to overlap. + (real_round): New function to implement round(3m) semantics. + * real.h (real_round): Prototype here. + * builtins.c (fold_builtin_round): New function to constant fold + round, roundf and roundl. + (fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}. + +2004-01-23 Alexandre Oliva + + PR optimization/13819 + * config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs + introduced by 2004-01-20's Jan Hubicka's copy_insn change. + (sh_handle_sp_switch_attribute): Remove warning. + +2004-01-23 Jan Hubicka + + * i386.c (ix86_emit_restore_regs_using_mov): Deal with large offsets. + +2004-01-23 J"orn Rennecke + + * doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP + may or may not return non-NIL. + * postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code, + check CANNOT_CHANGE_MODE_CLASS + +2004-01-23 Jan Hubicka + + * basic-block.h (PROP_POSTRELOAD): New macro. + (CLEANUP_LOG_LINKS): New. + * cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to. + * toplev.c (rest_of_handle_life): Preserve LOG_LINKS trought cleanup_cfg. + + * cselib.c (value_pool): New. + (new_cselib_val): Use pool. + (cselib_init): Initialize value_pool + (cselib_finish): Free pool. + +2004-01-23 Eric Botcazou + + * config/sparc/sparc.c (scan_record_type): New function. + (function_arg_slotno): Use it to determine which kinds of + registers the record can be passed in. + +2004-01-22 James A. Mmorrison + + * config/pa/fptr.c: Fix old-style definition. + +2004-01-22 Paolo Bonzini + + PR optimization/13724 + * cse.c (fold_rtx) : Fold a SUBREG to zero if it + represents the zero bits produced by a ZERO_EXTEND operation. + +2004-01-22 Roger Sayle + + PR optimization/13821 + * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to + correctly calculate the lowpart offset of the contracted subreg. + +2004-01-22 Ian Lance Taylor + + * doc/invoke.texi (Optimize Options): Note that --param arguments + are subject to change without notice. + +2004-01-22 Rainer Orth + + * config.gcc (mips-sgi-irix6*o32): Removed. + * config/mips/iris6-o32-as.h: Likewise. + * config/mips/iris6-o32-gas.h: Likewise. + * config/mips/iris6-o32.h: Likewise. + +2004-01-22 Jan Hubicka + + * cfgcleanup.c (first_pass): New static variable. + (try_forward_edges): Add work limiting check for threading. + (try_crossjump_bb): Add work limiting check for crossjumping. + (try_optimize_cfg): Maintain first pass variable. + +2004-01-22 Bob Wilson + + * config/xtensa/xtensa.c (function_arg): Generalize logic so that it + handles complex and vector modes. + +2004-01-22 Kazu Hirata + + * config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove. + (REG_OK_FOR_BASE_P_STRICT): Likewise. + (STRICT): Likewise. + +2004-01-22 Daniel Jacobowitz + + * c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1) + (genrtl_for_stmt): Remove emit_nop calls. + +2004-01-22 John David Anglin + + PR target/13713 + PR target/13324 + * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload, + movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload, + clrstrdi_prereload, clrstrdi_postreload): Fix constraints. + +2004-01-22 Daniel Jacobowitz + + * config/arm/arm.c: Include "debug.h". + (thumb_pushpop): Take two new arguments. Add some commentary. + Output frame information when pushing. + (thumb_exit, thumb_unexpanded_epilogue): Update calls to + thumb_pushpop. + (thumb_output_function_prologue): Likewise. Accumulate a CFA + offset, and pass it to thumb_pushpop. Output CFI information. + (thumb_expand_prologue): Add some frame-related markers and notes. + +2004-01-22 Ulrich Weigand + + * config/s390/s390.c (s390_frame_info): Allow large frame sizes + for TARGET_64BIT. + (s390_arg_frame_offset): Change return type to HOST_WIDE_INT. + * config/s390/s390-protos.h (s390_arg_frame_offset): Likewise. + +2004-01-22 Roger Sayle + Paolo Bonzini + + * rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb. + (subreg_lsb): Change to call new subreg_lsb_1 helper function. + * rtl.h (subreg_lsb_1): Prototype here. + * simplify-rtx.c (simplify_subreg): Optimize subregs of zero and + sign extensions. + +2004-01-22 Kazu Hirata + + * doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the + macro need not be defined if jump-tables should contain + relative addresses only when -fPIC or -fPIC is in effect. + +2004-01-22 Jan Hubicka + + * alias.c (reg_base_value): Turn into varray. + (reg_base_value_size): Kill. + (old_reg_base_value): New deletable varray. + (alias_invariant_size): New variable. + (REG_BASE_VALUE): Update to use varray. + (find_base_value): Likewise. + (record_set): Likewise. + (record_base_value): Likewise. + (memrefs_conflict_p): Likewise. + (record_set): Likewise + (record_base_value): Likewise. + (memrefs_conflict_p): Use alias_invariant_size. + (init_alias_analysis): Use varray; set alias_invariant_size; + rescale other arrays to be sized by maxreg. + (end_alias_analysis): Save reg_base_value; clear alias_invariant_size. + +2004-01-22 Eric Botcazou + + * config/sparc/sparc.c (function_arg_slotno): Use + FLOAT_TYPE_P to detect FP fields in structures. + (function_arg_record_value_1): Likewise. + (function_arg_record_value_2): Likewise. + +2004-01-22 Jan Hubicka + + * function.c (allocate_struct_function): Do not initialize expr, emit + and varasm. + (prepare_function_start): Do it here. + * c-parse.in (maybe_type_qual): Do not produce line number notes. + +2004-01-22 Eric Botcazou + + PR target/13559 + * config/sparc/sparc.c (function_arg_record_value_3): Revert + to 'word_mode' once the first slot has been filled. + +2004-01-22 Olivier Hainque + + * config/sparc/sparc.c (function_arg_record_value_1): Fix + computation of the number of integer registers required. + +2004-01-21 Kazu Hirata + + * config/i386/i386.md: Simplify certain comparisons of + const_int. + +2004-01-21 Andrew Pinski + + PR target/13785 + * config/rs6000/rs6000.md (call_value): Force operand + 1 not operand 0 into a register. + +2004-01-21 Kazu Hirata + + * cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def, + unwind-dw2-fde.h: Update copyright. + +2004-01-21 John David Anglin + + * pa-protos.h: Update copyright. + * pa.h: Likewise. + * pa.md: Likewise. + +2004-01-21 Caroline Tice + + PR target/12308 + * config/i386/i386.md (fix_truncxfdi2): Add clause to clobber + flags register. + (fix_truncdfdi2): Likewise. + (fix_truncsfdi2): Likewise. + (*fix_truncdi_1): Likewise. + (fix_truncxfsi2): Likewise. + (fix_truncdfsi2): Likewise. + (fix_truncsfsi2): Likewise. + (*fix_truncsi_1): Likewise. + (fix_truncxfhi2): Likewise. + (fix_truncdfhi2): Likewise. + (fix_truncsfhi2): Likewise. + (*fix_trunchi_1): Likewise. + +2004-01-21 Kazu Hirata + + * alias.c, basic-block.h, c-common.c, c-common.h, + c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c, + calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c, + combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c, + cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h, + defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c, + expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c, + genautomata.c, genconditions.c, genemit.c, genflags.c, + gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c, + ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c, + langhooks-def.h, langhooks.c, langhooks.h, line-map.c, + line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c, + ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c, + rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h, + target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h, + unwind.h, varray.c, varray.h: Update copyright. + +2004-01-21 Kazu Hirata + + * config/h8300/coff.h: Update copyright. + * config/h8300/elf.h: Likewise. + * config/h8300/h8300-protos.h: Likewise. + * config/h8300/h8300.c: Likewise. + * config/h8300/h8300.h: Likewise. + * config/h8300/h8300.md: Likewise. + +2004-01-21 John David Anglin + + * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3, + ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time, + ultrix_unistd): New hacks. + * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK, + ULTRIX_CONST2_CHECK): Add checks. + * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise. + * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise. + * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise. + * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise. + * fixinc/tests/base/locale.h: New file. + * fixinc/fixincl.x: Rebuilt. + +2004-01-21 Andreas Jaeger + Michael Matz + + * doc/extend.texi (Extended Asm): Clarify memory clobber. + +2004-01-21 Jakub Jelinek + + * crtstuff.c (frame_dummy, __do_global_ctors_1): Call + _Jv_RegisterClasses through a function pointer. + +2004-01-21 Falk Hueffner + + PR target/12898 + * config/alpha/alpha.c (alpha_emit_set_const_1): If + no_new_pseudos, use gen_rtx_SET directly for SImode constants + which need multiple instructions to emit. + +2004-01-21 Inaoka Kazuhiro + + * config/m32r/m32r.h (CPP_SPEC): Define. + +2004-01-21 Zack Weinberg + + * c-decl.c (merge_decls): Kill different_binding_level and + different_tu arguments; simplify throughout. + (duplicate_decls): Likewise. + (pushdecl, merge_translation_unit_decls): Update calls to + duplicate_decls. + +2004-01-20 Kaveh R. Ghazi + + * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and + $(SYSTEM_H). + (print-rtl1.o): Depend on $(SYSTEM_H). + +2004-01-20 Kelley Cook + + PR bootstrap/12730 + * configure.ac: Delete definition and subsitution of docdir. + Add info, man, srcman and srcinfo to target hooks. Create doc/ + directory. + * configure: Regenerate. + * Makefile.in: Don't substitute docdir and delete all references + throughout. + (MAKEINFOFLAGS): Define. + (stmp-docobjdir): Delete. + (INFOFILES, MANFILES): Define. + (info): Call lang.info, srcinfo and lang.srcinfo. + (generated-manpages): Call lang.man, srcman and lang.srcman. + (srcinfo, srcman): New rules to copy back files to source directory. + (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule. + (install-man): Revamp rule. + (clean): Update dvi directory. + (distclean): Delete TAGS from front end directorys. + (maintainer-clean): Delete all document files in source directory. + + objc/Make-lang.in (objc.man, objc.info): Dummy entries. + (objc.srcman, objc.srcinfo): Likewise. + +2004-01-20 Bruce Korb + + * fixinc/inclhack.def(math_exception): bypass only for glibc. + (matherr_decl): rename & relocate as exception_structure. + This fix must precede the math_exception fix. + +2004-01-20 Roger Sayle + + * fold-const.c (fold_convert): Rename to fold_convert_const. + (fold_convert_const): Change arguments to take a tree_code, + a type and the operand/expression to be converted. Return + NULL_TREE if no simplification is possible. Add support for + FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR. + (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR. + Adjust call to fold_convert to match new fold_convert_const. + Avoid modifying the tree passed to fold in-place. + +2004-01-21 Alan Modra + + * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define. + * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT. + * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document. + +2004-01-20 John David Anglin + + * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes. + * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d): + Likewise. Handle frames larger than 0x7fffffff on 64-bit ports. + (emit_move_sequence): Check scratch_reg first in various if statements. + Extend source simplification to handle all 64-bit CONST_INTs. + (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing + frame size. + (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for + frame offset calculations. + * pa.h (NEW_HP_ASSEMBLER): Add comment. + (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT, + LEGITIMATE_64BIT_CONST_INT_P): Define. + (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P. Treat + any CONST_INT as legitimate during and after reload. + (VAL_32_BITS_P, INT_32_BITS): Define. + (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets. + +2004-01-20 Jan Hubicka + + * emit-rtl.c (verify_rtx_sharing, copy_insn_1, + emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers + containing hard regs are shared. + (gen_hard_reg_clobber): New function. + (hard_reg_clobbers): New array. + * genemit.c (gen_exp): Use gen_hard_reg_clobber. + (copy_rtx): Do not copy clobbers containing hard regs. + * rtl.h (gen_hard_reg_clobber): Declare. + +2004-01-20 Jan Hubicka + + * varray.c: Include hashtab.h + (varray_descriptor): New structure. + (hash_descriptor, eq_descriptor, varray_descriptor, + print_statistics): New static functions + (varray_init, varray_grow): Update statistics + (dump_varray_statistics): New function. + * varray.h (dump_varray_statistics): Declare. + * toplev.c (finalize): Call it. + * Makefile.in (varray.o): Add dependency. + +2004-01-20 Jan Hubicka + + * cselib.c: Include alloc-pool.h + (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill. + (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare. + (new_elt_list, new_elt_loc_list, unchain_one_elt_list, + unchain_one_elt_loc_list_pool, unchain_one_value, + new_cselib_val): Simplify using allocpool. + (cselib_init): Initialize allocpools. + (cselib_finish): Finish allocpools. + * Makefile.in (cselib.o): Depend on alloc-pool.h + +2004-01-20 Richard Sandiford + + * config/mips/mips.c (mips_load_call_address): Make the call insn + use $gp if it could be calling a lazy binding stub. + +2004-01-20 Kazu Hirata + + * config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define. + (TARGET_PROMOTE_FUNCTION_RETURN): Likewise. + (TARGET_STRUCT_VALUE_RTX): Likewise. + * config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove. + (PROMOTE_FUNCTION_RETURN): Remove. + (STRUCT_VALUE): Remove. + +2004-01-20 Denis Chertykov + + PR bootstrap/13735 + * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X + register as pointer after reload. + +2004-01-20 Zdenek Dvorak + + PR optimization/12440 + * loop.c: Include ggc.h. + (loop_optimize): Run garbage collector between optimization of loops. + * Makefile.in (loop.o): Add GGC_H dependency. + +2004-01-20 Hartmut Penner + + * gcc/config/rs6000/rs6000.c (function_arg) Handle + vector register special in function without prototype. + (function_arg_advance): Vector parameters get always + GPRs allocated for the linux64 target. + +2004-01-20 Kazuhiro Inaoka + + * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK + not TARGET_M32RX_MASK. + +2004-01-20 Eric Botcazou + + PR target/13557 + * config/sparc/sparc.c (function_arg): Reorder the cases. + +2004-01-19 Per Bothner + + Move cpp_reader's line_maps field to a shared global. + * cpphash.h (cpp_reader): Rename line_maps field to line_table + and change the type to a pointer rather than a struct. + * cppinit.c (cpp_push_main_field): Adjust accordingly. + * cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks): + Likewise. + * cppfiles.c (validate_pch): Likewise. + * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text): + Likewise. + * cpperror.c (print_location): Likewise. + * cpplib.h (cpp_create_reader): New line_maps pointer parameter. + * cppinit.c (cpp_create_reader): Handle new parameter. + (cpp_destroy): Don't free line_maps - that's no longer our job. + * input.h (line_table): New variable. + * toplev.c (line_table): Declare variable. + (general_init): Initialize line_table. + * c-opts.c (c_common_init_options): Pass line_table to + cpp_create_reader. + * fix-header.c (read_scan_file): New local variable line_table. + Initialize, and pass it to cpp_create_reader. + * Makefile.in (LIBS, LIBDEPS): Add libcpp.a. + (C_AND_OBJC_OBJS, fix-header): Remove redundant libcpp.a. + +2004-01-19 Per Bothner + + Implement a cache for linemap_lookup. + * line-map.h (struct_line_maps): Add cache field. + * line-map.c (linemap_init): Zero cache field. + (linemap_add): Set cache field to offset of newly allocated map. + (linemap_lookup): Use and set cache field. + +2004-01-20 Kaz Kojima + + PR optimization/13567 + * cse.c (cse_basic_block): Call cse_insn with a non-null + libcall_insn for the last SET insn of a no-confilict block. + +2004-01-20 Kelley Cook + + * Makefile.in (target_noncanonical, program_transform_name): Use + immediate define instead of deferred. + (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME, + PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME, + GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of + deferred backquote. + +2004-01-20 Joseph S. Myers + + * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to + true unconditionally. + * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning): + Remove. + (build_unary_op, build_modify_expr): Don't handle extended + lvalues. + (build_component_ref, build_conditional_expr): Call non_lvalue + instead of pedantic_non_lvalue. + (build_c_cast): Don't condition use of non_lvalue on pedantic. + * fold-const.c (fold): Don't check pedantic directly for + COMPOUND_EXPR. Ensure that results for COMPOUND_EXPR are + passed to pedantic_non_lvalue. + * doc/extend.texi: Remove documentation of extended lvalues. + +2004-01-19 Roger Sayle + + PR optimization/5263 + * simplify-rtx.c (associative_constant_p): Delete. + (simplify_associative_operation): Rewrite to linearize terms, and + attempt to simplify new term against both left and right subterms. + (simplify_binary_operation): Call swap_commutative_operands_p on + op0 and op1, not trueop0 and trueop1. Move the initialization of + trueop0 and trueop1 down to where first needed. + (simplify_relational_operation): Likewise. + * rtlanal.c (commutative_operand_precedence): Also order constant + operands using avoid_constant_pool_reference. + +2004-01-19 Richard Henderson + + * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN, + don't check memory mode. + (unaligned_memory_operand): Likewise. + (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't + abort for op0 not MEM. + + * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination + is not a reg, copy to a scratch first. + (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi, + unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le, + unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG. + (reload_inqi, reload_inhi): Fix mode of op0. + (reload_inqi_help, reload_inhi_help, reload_outqi_help, + reload_outhi_help): Likewise. Use define_insn_and_split. + + * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN + as well as $29 dead. + +2004-01-19 Eric Botcazou + + * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New. Emit + "tls_object" for thread-local objects. + * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit + "#tls" for thread-local sections. + * configure.ac (thread-local checks): Specify --fatal-warnings in + every binutils-specific checks. For sparc*-*-*, test whether the + OS is Solaris and the tools are native and act accordingly. + * configure: Rebuild. + +2004-01-19 Jeff Law + + * contrib.texi: Update Paolo Carlini's entry. New entries for + Jerry Quinn and Petur Runolfsson. + +2004-01-19 Roger Sayle + + * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for + size, don't use the larger zero-extending loads. + +2004-01-19 Richard Henderson + + * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs. + * alpha.md (UNSPEC_NT_LDA): Remove. + (UNSPEC_CVTLQ, cvtlq): New. + (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f. + (extendsidi2_fix): Remove. + (extendsidi2 splitter): Use cvtlq. + (extendsidi2 fp peepholes): Remove. + (cvtql): Use SFmode instead of SImode. + (fix_trunc?fsi): Update to match. + (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New. + (movsi): Rename from movsi_nofix, remove f alternatives. + (movsi_nt_vms): Similarly. + (movsi_fix, movsi_nt_vms_fix): Remove. + (nt_lda): Remove. + * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda. + +2004-01-19 Jan Hubicka + + * cgraph.c (cgraph_remove_node): Fix removal from linked list. + * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed + list. + (cgraph_remove_unreachable_nodes): New function + (cgraph_decide_inlining_of_small_function): Fix pasto. + (cgraph_decide_inlining_incrementally): Fix pasto. + (cgrpah_decide_inlining): Likewise; remove unreachable nodes. + +2004-01-19 Steven Bosscher + + * gengtype.c (header_file): Make it static. + (write_types_process_field, write_enum_defn): Minor whitespace fixes. + * gengtype.h (header_file): No longer extern. + +2004-01-18 Kazu Hirata + + * defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default. + * expr.c (CASE_VECTOR_PC_RELATIVE): Remove. + * stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise. + +2004-01-18 Kazu Hirata + + * stmt.c (HAVE_casesi): Define it not already defined. + (HAVE_tablejump): Likewise. + (expand_end_case_type): Resort to the binary tree method if + neither casesi or tablejump is available. + +2004-01-18 Daniel Jacobowitz + + * final.c (final_scan_insn): Make non-static again. + * output.h (final_scan_insn): Re-add prototype. + * config/arc/arc.c (arc_output_function_epilogue): Add NULL + to final_scan_insn call. + * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise. + * config/mips/mips.c (mips_output_conditional_branch): Likewise. + * config/pa/pa.c (output_lbranch, output_call): Likewise. + * config/sh/sh.c (print_slot): Likewise. + * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise. + (output_sibcall, sparc_flat_function_epilogue): Likewise. + +2004-01-18 Jan Hubicka + + * basic-block.h (try_redirect_by_replacing_jump): Declare. + * cfgcleanup.c (try_optimize_cfg): Use it. + * cfgrtl.c (try_redirect_by_replacing_jump): Export. + (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch): + Kill hack. + (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump. + + Revert: + 2004-01-16 Geoffrey Keating + + * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps + even after reload, just don't remove the actual jump tables. + +2004-01-18 Kazu Hirata + + * config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove. + +2004-01-18 Kazu Hirata + + * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of + the size of a pointer in bytes. + +2004-01-18 Roger Sayle + + * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing + live "next" variable, which could lead to an infinite loop. + +2004-01-18 Andrew Pinski + + * config/rs6000/altivec.h: Wrap C++ functions in extern "C++" + block. + + * config/rs6000/rs6000.c (rs6000_special_round_type_align): + Check for NULL in the chain and remove repeated code. + +2004-01-18 Jan Hubicka + + * coverage.c (checksum_string): Rename to ... + (coverage_checksum_string): ... this one, Use crc32_string; recognize + names containing random number and zero the number out in order to get + match. + +2004-01-18 Richard Sandiford + + * config/mips/mips.c (mips_got_alias_set): Mark for PCH. + +2004-01-18 Joseph S. Myers + + * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi, + doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi, + doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi, + doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi, + doc/trouble.texi: Remove trailing whitespace. + +2004-01-18 Richard Sandiford + + PR target/7618 + * config/mips/mips.c: Include cfglayout.h. + (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define. + (mips_unspec_offset_high): Add temporary register argument. + (mips_load_call_address): New function, split out from... + (mips_expand_call): ...here. + (mips_output_cplocal): New function. + (mips_output_function_prologue, mips_output_function_epilogue): Use it. + (mips_emit_loadgp): New function, split out from... + (mips_expand_prologue): ...here. + (mips_output_mi_thunk): New function. + +2004-01-17 Bernardo Innocenti + + * longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040, + mcpu32): Remove redundant checks for implied target predefines. + +2004-1-17 Andrew Pinski + + * config/rs6000/rs6000.c (rs6000_special_round_type_align): + Return type is unsigned int not int. + * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align): + Likewise. + +2004-01-18 Joseph S. Myers + + * doc/contrib.texi, doc/cppenv.texi, doc/extend.texi, + doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use + "GNU/Linux" and "Microsoft Windows" terminology. + +2004-01-18 Joseph S. Myers + + * doc/c-tree.texi, doc/compat.texi, doc/cpp.texi, + doc/cppopts.texi, doc/extend.texi, doc/install.texi, + doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi, + doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use + @smallexample instead of @example. + +2004-01-17 Ziemowit Laski + + * objc/objc-act.c (build_objc_method_call): Use target + hooks instead of macros to determine if ..._stret + dispatchers should be used (NeXT runtime only). + +2004-01-17 Roger Sayle + + * builtins.c (expand_builtin_expect_jump): Fix mistake in my + last patch. Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL. + +2004-01-17 Daniel Jacobowitz + + * rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc) + (emit_call_insn_before_sameloc, emit_insn_after_sameloc) + (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New + macros. + * reload1.c (emit_reload_insns): Use them. + * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc) + (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check + for NULL PATTERN. + +2004-01-17 Daniel Jacobowitz + + * final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define. + (final_scan_insn): Update to take an additional SEEN argument. Emit + a line note after the prologue. Make static. + (line_note_exists): Remove. + (final): Don't initialize line_note_exists. Update call to + final_scan_insn. + * output.h (final_scan_insn): Remove prologue. + * function.c (set_insn_locators): Update comment. + (thread_prologue_and_epilogue_insns): Add a comment. + +2004-01-17 Andrew Pinski + + PR target/10781 + * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align): + Prototype. + * config/rs6000/rs6000.c (rs6000_special_round_type_align): + New function. + * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it. + * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise. + * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise. + +2004-01-17 Jan Hubicka + + * toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous + commit. + + * toplev.c (HAVE_conditional_execution): Provide default. + (rest_of_handle_reorder_blocks): For conditional_execution target + update liveness once after all transformations + (rest_of_compilation): Do crossjumping before ce3. + +2004-01-17 Geoffrey Keating + + * alias.c (new_alias_set): Mark last_alias_set for PCH. + (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it + for PCH. + (get_frame_alias_set): Likewise, except rename it to 'frame_set'. + * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH. + (get_TOC_alias_set): Mark 'set' for PCH. + +2004-01-16 Geoffrey Keating + + * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps + even after reload, just don't remove the actual jump tables. + +2004-01-17 J. Brobecker + + * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type(). + Remove checks for is_ada() and TREE_UNSIGNED. + (subrange_type_die): Emit a byte_size attribute if the subrange + type size is different from the base type size. + (modified_type_die): Replace call to is_ada_subrange_type() by + call to is_subrange_type(). + +2004-01-16 Andrew Pinski + + * config/sh/sh.c: Include ggc.h. + +2004-01-16 Geoffrey Keating + + * Makefile.in (MD5_H): New. + (fold-const.o): Depend on md5.h. + (dwarf2out.o): Likewise. + (cppfiles.o): Likewise. + * cppfiles.c: Include md5.h. + (should_stack_file): Check against list read from PCH file. + (struct pchf_data): New. + (pchf): New variable. + (struct pchf_adder_info): New. + (pchf_adder): New. + (pchf_save_compare): New. + (_cpp_save_file_entries): New. + (_cpp_read_file_entries): New. + (struct pchf_compare_data): New. + (pchf_compare): New. + (check_file_against_entries): New. + * cpphash.h (_cpp_save_file_entries): Prototype. + (_cpp_read_file_entries): Prototype. + * cpppch.c (cpp_write_pch_state): Write the list of headers. + (cpp_read_state): Read the list of headers. + +2004-01-17 Jan Hubicka + + * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and + builtin_expect specially. + * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100. + (PARAM_LARGE_FUNCTION_INSNS): Set to 3000. + * invoke.texi (max-inline-insns-single): Set to 100. + (large-function-insns): Set to 3000. + +2004-01-16 Eric Christopher + Chandrakala Chavva + + * cppcharset.c (one_iso88591_to_utf8): New function. + (convert_iso88591_utf8): Ditto. Use. + (conversion_tab): Use. + (_cpp_input_to_utf8): New function. + (_cpp_init_iconv_buffer): Ditto. + (_cpp_close_iconv_buffer): Ditto. + * cpphash.h: Prototype new functions. + (cpp_buffer): Add input_cset_desc. + * cppinit.c: Add input_charset default. + * cpplib.c (cpp_push_buffer): Support init and + close of iconv. + * cpplib.h (cpp_options): Add input_charset. + +2004-01-16 Kazu Hirata + + * system.h (ASM_OUTPUT_SECTION_NAME): Poison. + * config/alpha/unicosmk.h: Remove a commented-out definition + of ASM_OUTPUT_SECTION_NAME. + * config/stormy16/stormy16.h: Likewise. + +2004-01-16 Rainer Orth + + * fixinc/inclhack.def (alpha___extern_prefix): Renamed to ... + (alpha___extern_prefix_sys_stat): ... this. + Apply to , too. + Tweak to match more variations. + * fixinc/tests/base/sys/stat.h: Adapt for new hackname. + + * fixinc/inclhack.def (alpha___extern_prefix, + alpha___extern_prefix_standards): New hacks to obey + __PRAGMA_EXTERN_PREFIX. + * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New + test. + * fixinc/tests/base/standards.h: Likewise. + + * fixincl/inclhack.def (alpha_pthread): Tweak to match more + variations. + New testcase. + * fixinc/tests/base/pthread.h: Handle it. + + * fixincl/inclhack.def (bad_lval): Sort file list. + Add many missing files up to Tru64 UNIX V5.1B. + * gcc/fixinc/tests/base/libgen.h: Renamed to ... + * gcc/fixinc/tests/base/dirent.h: ... this to match new file list + order. + + * fixinc/fixincl.x: Regenerate. + +2004-01-16 Mark Mitchell + + * version.c (version_string): Change to 3.5.0. + * doc/include/gcc-common.texi (version-GCC): Likewise. + +2004-01-16 Jan Hubicka + + * i386.md (load_tp_di): Fix pasto. + + PR opt/13608 + * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function. + + * c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator, + pp_c_character_constant, pp_c_floating_constant, + pp_c_additive_expression, pp_c_shift_expression, + pp_c_equality_expression, pp_c_and_expression, + pp_c_exclusive_or_expression, pp_c_inclusive_or_expression, + pp_c_logical_and_expression): Remove inline modifier. + * dwarf2out.c (get_AT): Likewise. + * et-forest.c (et_splay): Likewise. + * ra.h (ra_alloc, ra_calloc): Likewise + +2004-01-16 Kazu Hirata + + * config/frv/frv-protos.h: Fix comment formatting. + * config/frv/frv.c: Likewise. + * config/frv/frv.h: Likewise. + * config/frv/frv.md: Likewise. + * config/frv/frvbegin.c: Likewise. + * config/frv/frvend.c: Likewise. + +2004-01-16 Kazu Hirata + + * system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison. + * doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention + LINKER_DOES_NOT_WORK_WITH_DWARF2. + (LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove. + +2004-01-16 J"orn Rennecke + + PR 11864 + * postreload.c (reload_cse_simplify_operands): Don't remove + implicit extension from LOAD_EXTEND_OP. + +2004-01-16 Jan Hubicka + + PR opt/11350 + * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal + after reload. + * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks, + rtl_try_redirect_by_replacing_branch): Likewise. + +2004-01-15 Geoffrey Keating + + PR pch/13689 + * alias.c (struct alias_set_entry): Mark for GC. + (alias_sets): Make static, mark for GC. + (record_alias_subset): Use GC to allocate alias structures. + * varray.c (element): Make generic varrays GCed. + + PR pch/13361 + * c-typeck.c (constructor_asmspec): Delete. + (struct initializer_stack): Delete field 'asmspec'. + (start_init): Delete saving of asmspec. + (finish_init): Don't update constructor_asmspec. + * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree. + * stmt.c (expand_asm): Duplicate strings from tree. + (expand_asm_operands): Likewise. + * tree.c (tree_size): Update computation of size of STRING_CST. + (make_node): Don't make STRING_CST nodes. + (build_string): Allocate string with tree node. + * tree.def (STRING_CST): Update comment. + * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST. + (tree_string): Place contents of string in tree node. + * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string + from tree. + + * config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case + altivec operands. + +2004-01-15 Kazu Hirata + + * c-common.h: Fix comment formatting. + * c-cppbuiltin.c: Likewise. + * c-pragma.c: Likewise. + * calls.c: Likewise. + * collect2.c: Likewise. + * cppcharset.c: Likewise. + * cpptrad.c: Likewise. + * dbxout.c: Likewise. + * defaults.h: Likewise. + * dwarf2out.c: Likewise. + * fold-const.c: Likewise. + * genautomata.c: Likewise. + * genconditions.c: Likewise. + * genflags.c: Likewise. + * gengtype.c: Likewise. + * integrate.c: Likewise. + * loop.c: Likewise. + * predict.c: Likewise. + * sdbout.c: Likewise. + +2004-01-15 Zack Weinberg + + * config/ia64/ia64.md (*movti_internal): C output template + extracted to ia64.c. + (*movti_internal_reg): Delete. + (reload_inti, reload_outti): Use the correct mode on operand 2 + in the first place, don't fix it up in the output template. + (movtf, reload_ointf, reload_outtf): New expanders. + (*movtf_internal): New define_insn_and_split. + * config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode; + make static; do not hand TFmode CONST_DOUBLEs to split_double. + (ia64_split_tmode_move): New function, body mostly pulled + from ia64.md:*movti_internal. + (ia64_function_arg_words): New function, extracted common + logic from ia64_function_arg et seq. + (ia64_function_arg_offset): Likewise. Handle correctly the + case of a scalar quantity 16 bytes wide with only 8-byte alignment. + (ia64_function_arg, ia64_function_arg_partial_nregs) + (ia64_function_arg_advance): Use ia64_function_arg_words and + ia64_function_arg_offset. + (ia64_function_value): TCmode does not go in float regs. + (ia64_secondary_reload_class): Also handle TFmode. + * config/ia64/ia64-protos.h: Remove prototype for + ia64_split_timode; add prototype for ia64_split_tmode_move. + +2004-01-15 Kelley Cook + + * Makefile.in (MAINT): Make it an immediate assignment. + +2004-01-15 Kazu Hirata + + * config/m32r/m32r.md: Remove useless calls to gen_lowpart. + +2004-01-15 Kazu Hirata + + * config/h8300/coff.h: Replace Hitachi with Renesas. + * config/h8300/elf.h: Likewise. + * config/h8300/h8300-protos.h: Likewise. + * config/h8300/h8300.c: Likewise. + * config/h8300/h8300.h: Likewise. + * config/h8300/h8300.md: Likewise. + * config/h8300/lib1funcs.asm: Likewise. + +2004-01-15 Andrew Pinski + + * config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF + around it. + +2004-01-15 Kazu Hirata + + * config/h8300/h8300.c (h8300_return_in_memory): New. + (TARGET_STRUCT_VALUE_RTX): Likewise. + (TARGET_RETURN_IN_MEMORY): Likewise. + * config/h8300/h8300.h (STRUCT_VALUE): Remove. + (RETURN_IN_MEMORY): Likewise. + +2004-01-15 Richard Earnshaw + + PR optimization/13375 + * gcse.c (handle_avail_expr): Just return if the source is not a + single set. + +2004-01-15 Richard Earnshaw + Daniel Jacobowitz + + * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case. + (EQUIV): Define. + (ARM_FUNC_ALIAS): New macro. + * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it. + * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it. + +2004-01-15 John David Anglin + + PR optimization/12372 + * calls.c (expand_call): Add call_fusage data for stack arguments in + constant calls. + +2004-01-15 Alan Modra + + * config/rs6000/rs6000.c (uses_TOC): Correct comment. Make static. + (rs6000_elf_declare_function_name): Formatting. + * config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration. + +2004-01-15 Jan Hubicka + + PR bootstrap/13692 + * sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in + previous patch. + +2004-01-15 Richard Henderson + + * config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after + integer regs of the same call-savedness. + +2004-01-15 Andreas Schwab + + PR bootstrap/13562 + * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc + status for NOTB/NOTW/NEGW methods. + +2004-01-15 Kazu Hirata + + * doc/invoke.texi: Update dump file names. Fix a typo. + +2004-01-15 Kazu Hirata + + * builtins.c (expand_builtin_va_end): Don't use + EXPAND_BUILTIN_VA_END. + * system.h (EXPAND_BUILTIN_VA_END): Poison. + * config/d30v/d30v.h: Remove a commented-out definition of + EXPAND_BUILTIN_VA_END. + * config/stormy16/stormy16.h: Likewise. + +2004-01-15 Kazu Hirata + + * system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison. + * targhooks.c (default_struct_value_rtx): Don't use + STRUCT_VALUE_INCOMING_REGNUM. + +2004-01-15 Kelley Cook + + PR bootstrap/12744 + * configure.in: Revamp enable-generated-files-in-srcdir rule to define + GENINSRC and not parsedir. Define srcextra as a langhook. + * configure: Regenerate. + * Makefile.in: Suppress default .l.c rule. Don't substitute + parsedir and delete all references throughout. Conditionally define + rule for srcextra dependent on GENINSRC. + (stmp-docobjdir): Delete. + (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule. + (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c, + and gengtype-yacc.h back to source directory. + (maintainer-clean): Delete all parse files in source directory. + (distclean): Delete generated files. + + * objc/Make-lang.in (objc-parse.o): Use implicit build rule. + (objc-parse.c, objc-parse.y): Don't use parsedir. + (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source + directory if requested. + (po-generated): Don't use parsedir. + (objc.maintainer-clean): Delete above files from source directory. + +2004-01-14 Kazu Hirata + + * doc/tm.texi (FUNCTION_VALUE): Fix a typo. + +2004-01-14 Kazu Hirata + + * doc/tm.texi: Replace RETURN_IN_MEMORY with + TARGET_RETURN_IN_MEMORY. + +2004-01-15 Jan Hubicka + + * builtins.c (std_expand_builtin_va_arg): Align operand when needed. + * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic + functions accepting SSE arguments + (function_arg): Warn only when asked to warn. + * i386.h (ix86_args): Add warn_sse/warn_mmx fiels. + +2004-01-14 Joseph S. Myers + + * c-parse.in (stmts_and_decls): Make label at end of compound + statement a hard error. + +2004-01-14 Jan Hubicka + + * cgraph.c (create_edge): Use local.redefined_extern_inline. + * cgraph.h (cgraph_local_info): Sort fields by size; add + redefined_extern_inline + (cgraph_global_info): Sort fields by size. + (cgraph_node): Likewise. + * cgraphunit.c (cgraph_finalize_function): Se + local.redefined_extern_inline on redefinition. + (cgraph_analyze_function): Use it; fix formating. + +2004-01-14 Jan Hubicka + + PR c++/10776 + * sched-deps.c (trye_dependency_cache, anti_dependency_cache, + outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of + bitmaps + (cache_size): New variable + (add_dependence): Update use; canonize early memory locations + (sched_analyze_1): Likewise. + (sched_analyze_2): Likewise. + (init_dependency_caches): Initialize bitmaps. + (free_dependency_caches): Free bitmaps + +2004-01-14 Kazu Hirata + + * calls.c: Replace STRICT_ARGUMENT_NAMING in comments with + targetm.calls.strict_argument_naming(). + * target.h: Likewise. + +2004-01-14 Richard Henderson + + PR debug/13231 + * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue + instructions. + +2004-01-14 Richard Henderson + + PR c++/12491 + * except.c (struct eh_region): Add u.fixup.resolved. + (resolve_one_fixup_region): Split out from ... + (resolve_fixup_regions): ... here. + +2004-01-14 Kazu Hirata + + * config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0. + +2004-01-14 Kazu Hirata + + * config/alpha/alpha.h (STRUCT_VALUE): Remove. + * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef. + (STRUCT_VALUE): Remove. + +2004-01-14 Steven Bosscher + + * system.h: Poison PROMOTED_MODE + * integrate.c (expand_inline_function): Don't mention the + PROMOTED_MODE. + * loop.c (update_giv_derive): Same. + * tree.h (DECL_RTL): Same. + +2004-01-14 J"orn Rennecke + + PR target/9365 + * sh.c (gen_block_redirect): Add special handling of RETURN. + (gen_far_branch) Don't call gen_stuff_delay_slot if there is no + far branch target (i.e. it's a return). + +2004-01-14 Kazu Hirata + + * regrename.c (find_oldest_value_reg): Fix a warning. + +2004-01-14 Richard Earnshaw + + 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. + +2004-01-14 Kazu Hirata + + * config/m32r/m32r.md: Use GEN_INT instead of gen_rtx + (CONST_INT, VOIDmode, ...). + +2004-01-14 Richard Earnshaw + + * regrename.c (find_oldest_value_reg): If the replacement uses + multiple hard registers, check that all of them are in CLASS. + +2004-01-14 Jan Hubicka + + * alias.c (get_alias_set): Initialize alias set to 0 when subset is + impossible. + +2004-01-14 Kelley Cook + + * Makefile.in: Define MAINT from --enable-maintainer-mode. + +2004-01-14 Hartmut Penner + + * gcc/config/rs6000/rs6000.c (rs6000_stack_info) + Calculate always vrsave_mask if TARGET_ALTIVEC. + (rs6000_emit_prologue): Emit code for vrsave + only if TARGET_ALTIVEC_VRSAVE. + (rs6000_emit_epilogue): Likewise. + +2004-01-14 Eric Botcazou + + * config/sparc/sparc.md (tie_add32): Fix pasto. + (tie_add64): Likewise. + +2004-01-14 Zdenek Dvorak + + * config/i386/i386.md (*addqi_1_slp): Do not access operands[2]. + +2004-01-13 Kazu Hirata + + * config/iq2000/iq2000-protos.h: Fix comment formatting. + * config/iq2000/iq2000.c: Likewise. + * config/iq2000/iq2000.md: Likewise. + +2004-01-14 J. Brobecker + + * dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME. + (subrange_type_die): Add handle for nameless subrange types. + +2004-01-13 Kazu Hirata + + * config/h8300/h8300-protos.h: Replace do_movsi with + h8300_expand_movsi. + * config/h8300/h8300.c (do_movsi): Change to + h8300_expand_movsi. + * config/h8300/h8300.md (movsi): Replace do_movsi with + h8300_expand_movsi. + (movsf): Likewise. + +2004-01-13 Kazu Hirata + + * config/h8300/h8300.c (dosize): Change to + h8300_emit_stack_adjustment. Update callers. + +2004-01-13 Kazu Hirata + + * config/h8300/h8300.md (movstrictqi): Add an alternative with + the source being post_inc. Tighten the predicate for the + destination to register_operand. + (movstricthi): Likewise. + +2004-01-13 Kazu Hirata + + * system.h (SHARED_BSS_SECTION_ASM_OP): Poison. + * varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP. + * doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove. + +2004-01-14 Jan Hubicka + + Partial fix PR c++/12850 + * cgraphunit.c (cgraph_finalize_function): Always ggc_collect when + at zero nest level. + +2004-01-13 Bernardo Innocenti + + * config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr" + pseudo-register. + +2004-01-13 Devang Patel + + PR c++/12709 + * c-common.c (finish_fname_decls): Use the chain only if the + tree is an expr_stmt. + +2004-01-13 Vladimir Makarov + + * rtl.def: Add comment about new option in automata_option. + + * genautomata.c (PROGRESS_OPTION): New macro. + (progress_flag): New global variable. + (gen_automata_option): Process `progress'. + (transform_insn_regexps, check_unit_distributions_to_automata, + make_automaton, NDFA_to_DFA, build_automaton, create_automata, + expand_automata, write_automata): Print about the progress only if + progress_flag. Remove fflush. + (initiate_automaton_gen): Process command line flag `-progress'. + + * doc/md.texi: Describe the new option. + +2004-01-13 Zdenek Dvorak + + * cfg.c (dump_bb): Dump entry edges. + +2004-01-13 Richard Earnshaw + + * arm.c (thumb_legitimate_address_p): Only allow constant pool + references from SImode. + * arm.md (thumb_movhi_insn): Don't allow minipool references. + +2004-01-13 Kazu Hirata + + * system.h (TEXT_SECTION): Poison. + * varasm.c (text_section): Don't use TEXT_SECTION. + * config/sh/sh.c (sh_file_start): Fix a comment typo. + * doc/tm.texi (TEXT_SECTION): Remove. + +2004-01-13 Ben Elliston + + * doc/rtl.texi (Vector Operations): Remove defunct vec_const item. + +2004-01-12 James E Wilson + + * unwind-libunwind.c: Delete. + +2004-01-12 Zack Weinberg + + PR 13656 + * c-decl.c (diagnose_mismatched_decls): Whenever newtype or + oldtype is set, set *newtypep or *oldtypep too. Do not set + them at the very end. + (validate_proto_after_old_defn): Restructure for comprehensibility; + make error messages clearer. + +2004-01-12 Zack Weinberg + + * varray.h (VARRAY_POP): Add checking variant, aborts on underflow. + (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked. + * varray.c: No need to prototype error. + (varray_check_failed): Wrap long string onto two lines. + (varray_underflow): New function. + +2004-01-13 Steven Bosscher + + PR c++/13376 + * function.h (struct function): Kill `name' field. + (current_function_name): Make it an extern function. + * function.c (current_function_name): New function. + * graph.c: Update all uses of current_function_name. + * gcse.c: Likewise. + * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c, + config/mips/mips.c, config/pdp11/pdp11.c: Likewise. + * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P + instead of a strcmp with "main". + +2004-01-13 Jan Hubicka + + * c-decl.c (diagnose_mismatched_decls): Fix warning calls. + + * cgraphunit.c (cgraph_optimize_function): Always do + optimize_inline_calls when there is always_inline callee. + (cgraph_decide_inlining): Fix formating. + * tree-inline.c (inlinable_function_p): Do sorry for alwaysinline + functions. + (expand_call_inline): Likewise. + * toplev.h (sorry): Fix prototype. + +2004-01-12 Roger Sayle + + * builtins.c (expand_builtin_expect_jump): Simplify logic. Handle + conditional jumps that drop through to unconditional jumps or the + end of the sequence. + +2004-01-13 Jan Hubicka + + * alias.c (new_alias_set): Construct the alias_set varray. + (init_alias_once): Don't do it here. + +2004-01-12 Marc Espie + + * system.h: handle YYBYACC like YYBISON. + +2004-01-12 Jonathan Merriman + + PR target/10847 + * config.gcc: No longer includes conflicting header sparc/sol2.h when + building on sparc64-*-openbsd*. + +2004-01-12 Andrew Pinski + + PR debug/13539 + * dbxout.c (dbxout_type): Protected inheritance is not + private but protected. + +2004-01-12 Richard Sandiford + + * config/mips/mips.c (mips_symbolic_constant_p): Revert last patch. + +2004-01-12 Kazu Hirata + + PR optimization/12508. + * combine.c (try_combine): Remove a dead set in a parallel + even if its destination is a subreg. + + Revert: + 2003-06-03 Kazu Hirata + * combine.c (simplify_set): Don't move a subreg in SET_SRC to + SET_DEST if WORD_REGISTER_OPERATIONS is not defined. + +2004-01-12 Geoffrey Keating + + * real.c: Update copyright date. + * emit-rtl.c: Likewise. + * rtl.h: Likewise. + * dwarf2out.c: Likewise. + * config/rs6000/darwin-ldouble.c: Likewise. + * config/rs6000/rs6000.md: Likewise. + +2004-01-12 David Edelsohn + + * config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX + TFmode to SImode libfuncs. + +2004-01-12 Roger Sayle + + PR middle-end/11397 + * varasm.c (assemble_alias): Remove weak aliases from weak_decls. + +2004-01-12 Jan Hubicka + + PR opt/12826 + * loop.c (insert_loop_mem): Preffer VOLATILE memory references to be + stored. + + PR opt/12863 + * cfgcleanup.c (label_is_jump_target_p): Move to... + * rtlanal.c (label_is_jump_target_p): ... here. + * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Fix redirecting of fallthru + edges unified with branch edges. + +2004-01-12 Richard Earnshaw + + * simplify-rtx.c (simplify_immed_subreg): Correctly extract the + high word of an integral CONST_DOUBLE. + +2004-01-12 Paul Brook + + * simplify-rtx.c (simplify_plus_minus): Always generate canonical form. + +2004-01-12 J"orn Rennecke + + PR target/13585 + * sh-protos.h (check_use_sfunc_addr): Declare. + * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions. + * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate. + +2004-01-12 Jan Hubicka + + * alias.c: Invlude varray.h + (alias_sets): Turn into varray. + (get_alias_set_entry): Use VARRAY; mark inline. + (mems_in_disjoint_alias_sets_p): Mark inline. + (record_alias_subset): Use varray. + (init_alias_once): Initialize varray. + (new_alias_set): Grow array. + * varray.c: Make VARRAY_GENERIC_PTR non GTYized. + +2004-01-12 Jan Hubicka + + Partial fix for PR opt/10776 II + * cselib.c: Include params.h + (cselib_invalidate_mem): Limit amount of nonconflicting memory + locations. + * params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New. + * Makefile.in (cselib.o): Depend on params.h + +2004-01-12 Richard Sandiford + + * combine.c (combine_simplify_rtx): Don't pass VOIDmode to + simplify_unary_operation if the operand has a known mode. + +2004-01-12 Hartmut Penner + + PR target/13534 + * gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New + predicate to handle 'ld' conform addresses. + * gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y' + contraint. + (EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint + are memory contraints. + * gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand): + New prototype. + * gcc/config/rs6000/rs6000.md (*movdf_hardfloat64): + Change 'o' to 'Y' constraint. + (*movdf_softfloat64): Ditto. + +2004-01-12 Bernardo Innocenti + + * gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the + brace-enclosed syntax in all C output statements. + +2004-01-12 David Edelsohn + + PR target/13401 + * config/rs6000/rs6000.c (rs6000_output_function_epilogue): + Objective-C language type value is 14. + +2004-01-12 Markus F.X.J. Oberhumer + + PR c/12148 + * config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of + `int' in a number of places to make sure we always have a SImode + and not a HImode. Add a 'L' suffix to a number of constants. + +2004-01-11 John David Anglin + + * pa.c: Don't include obstack.h. + + * pa.md: Correct constraint in pattern for loading PIC label address. + +2004-01-11 Kaz Kojima + + * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine + before defining. + +2004-01-11 Steven Bosscher + + PR fortran/9972 + * toplev.c (rest_of_handle_inline): Also consider functions + for deferral if the language is GNU F77. + +2004-01-11 Zack Weinberg + + * c-decl.c (diagnose_arglist_conflict): Add missing space to + diagnostic messages. + +2004-01-11 Jakub Jelinek + + PR middle-end/13392 + * builtins.c (expand_builtin_expect_jump): Handle conditional jumps + to drop through label. Don't fall back to SCC even when conditional + jump has not been found. + +2004-01-11 Jan Hubicka + + * invoke.texi: Fix syntax error in previous patch. + + Partial fix for PR opt/10776 + * Makefile.in (reload.o): Include param.h + * params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter. + * reload.c: Include params.h. + (find_equiv_reg): Work limiting check. + * invoke.texi: Document. + +2004-01-11 Richard Sandiford + + * config/mips/mips.c (mips_symbolic_constant_p): Don't allow + out-of-bounds accesses to string constants. Simplify mips16 + case accordingly. + +2004-01-11 Richard Sandiford + + PR optimization/13469 + * toplev.c (rest_of_compilation): Call purge_all_dead_edges after + reload_cse_regs (-fnon-call-exceptions only). + +2004-01-11 Kazu Hirata + + * config/mcore/lib1.asm: Fix comment formatting. + * config/mcore/mcore-elf.h: Likewise. + * config/mcore/mcore.c: Likewise. + * config/mcore/mcore.h: Likewise. + * config/mcore/mcore.md: Likewise. + +2004-01-10 Zack Weinberg + + * c-decl.c (duplicate_decls): Break apart into... + (diagnose_arglist_conflict, validate_proto_after_old_defn) + (locate_old_defn, diagnose_mismatched_decls, merge_decls): + ... these new functions. Restructure for comprehensibility. + Remove various archaic special cases. Always report the + location of the previous declaration when a diagnostic is issued. + (redeclaration_error_message): Fold into diagnose_mismatched_decls. + (match_builtin_function_types): Delete unnecessary forward declaration. + +2004-01-10 Zack Weinberg + + * genautomata.c (make_automaton, NDFA_to_DFA): + Print progress bars with '.' characters instead of '*'. + (build_automaton): Change notes to match. + +2004-01-10 Kazu Hirata + + * config/m32r/m32r.md: Use define_constants for unspec and + unspec_volatile. + +2004-01-10 Jan Hubicka + + PR opt/11635 + * expr.c (expand_expr_real): More curefully expand union casts. + +2004-01-10 Kazu Hirata + + * config/m32r/m32r.md (flush_icache): Use 1 for + unspec_volatile. + +2004-01-10 David Edelsohn + James E Wilson + + PR debug/12860 + * dbxout.c (dbxout_symbol): Remove initialization of + current_sym_code, current_sym_value, and current_sym_addr. + (dbxout_symbol_location): Same. + (dbxout_prepare_symbol): Zero current_sym_code, + current_sym_value, and current_sym_addr. + +2004-01-10 Richard Sandiford + + * tree.c (get_unwidened): Reorder conditions so that the null pointer + check is done first. + +2004-01-09 Eric Christopher + + * toplev.c (rest_of_handle_cfg): Add reg_scan pass + if we're running mark_constant_function. + +2004-01-09 Jeff Bailey + + PR target/12561 + * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR. + +2004-01-09 Andrew Pinski + + PR debug/11231 + * dbxout.c (dbxout_type_fields): Return if any item is + error_mark_node or the type is error_mark_node. + +2004-01-09 Geoffrey Keating + + * config/rs6000/darwin-ldouble.c: Add big comment explaining + exactly what is expected as a 'long double'. + (_xlqadd): When a value to be returned is representable as a + 'double', just return it directly, do not construct it using a union. + Also, correct final fixup. + (_xlqmul): Likewise. + (_xlqdiv): Likewise. + * real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c. + + * config/rs6000/rs6000.md (fix_trunctfdi2): Delete. + +2004-01-09 Richard Henderson + + * recog.c (constrain_operands): Validate mem operands. + +2004-01-09 James E Wilson + + * gcc.c (init_spec): Remove -lunwind from shared case. + * conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind. + +2004-01-09 Steve Ellcey + + * configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*. + * configure: Regenerate + +2004-01-09 Joseph S. Myers + + PR c/11234 + * c-typeck.c (build_c_cast): If pedantic, warn for conversions + between function and object pointers. + (digest_init): When comparing a pointer to function type to the + target type, only apply TREE_TYPE once to the pointer to function + type. + * except.c (for_each_eh_label_1): Treat data as a pointer to a + function pointer rather than casting it to a function pointer. + (for_each_eh_label): Update caller. + * recog.h (struct insn_data): Use a struct or union for output. + * genoutput.c (output_insn_data): Update. + * final.c (get_insn_template): Update. + +2004-01-09 Mark Mitchell + + * expr.h (expand_expr): Make it a macro, not a function. + (expand_expr_real): New function. + * expr.c (store_expr): Adjust logic for deciding whether or not to + copy the value returned by expand_expr. + (expand_expr): Rename to ... + (expand_expr_real): ... this. Add alt_rtl parameter. Adjust + calls to language hooks. + * c-common.h (c_expand_expr): Adjust prototype. + * c-common.c (c_expand_expr): Add alt_rtl parameter. + * langhooks-def.h (lhd_expand_expr): Change prototype. + * langhooks.c (lhd_expand_expr): Add all_rtl parameter. + * langhooks.h (lang_hooks): Change type of expand_expr. + * stmt.c (stmt_status): Add x_last_expr_alt_rtl. + (last_expr_alt_rtl): Likewise. + (expand_expr_stmt_value): Set last_expr_alt_rtl. + (clear_last_expr): Clear it. + (expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL. + (expand_end_bindings): Save and restor last_expr_alt_rtl. + * tree.def (RTL_EXPR): Give it an additional operand. + * tree.h (RTL_EXPR_ALT_RTL): New macro. + +2004-01-09 Kazuhiro Inaoka + + * config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__. + * config/m32r/m32r.c (call26_operand): Allow in PIC mode. + +2004-01-09 Kazu Hirata + + PR target/13380. + * config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17) + or (ne:SI (reg:CC 17) (const_int 0)). + Be specific about modes wherever possible. + +2004-01-09 Kazu Hirata + + * config/m32r/m32r.c (m32r_expand_block_move): Call + gen_movestrsi_internal with two more arguments. + (m32r_output_block_move): Adjust operand numbers. + Properly update the source and destination pointers. + * config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of + 'r+'. Change the set detinations to match_operand. + +2004-01-09 Kazu Hirata + + * final.c (FIRST_INSN_ADDRESS): Remove. + (shorten_branches): Don't use FIRST_INSN_ADDRESS. + * system.h (FIRST_INSN_ADDRESS): Poison. + * config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS. + * config/m32r/m32r-protos.h: Remove the prototype for + m32r_first_insn_address. + * config/m32r/m32r.c (m32r_first_insn_address): Remove. + * config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise. + * doc/md.texi (FIRST_INSN_ADDRESS): Likewise. + +2004-01-09 J. Brobecker + + * dwarf2out.c (gen_enumeration_type_die): Return the DIE that + we just created. + (is_ada_subrange_type): DIEs for enumeration subtypes should be + emitted as subrange types too. + (subrange_type_die): Add handling of enumeration subtypes. + +2004-01-08 Richard Henderson + + PR opt/12441 + Revert: Sat Mar 30 14:08:55 CET 2002 Jan Hubicka + * i386.c (aligned_operand): Be prepared for SUBREGed registers. + (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG. + (ix86_address_cost): Be prepared for SUBREGed registers. + (legitimate_address_p): Accept SUBREGed registers. + +2004-01-08 Kelley Cook + + * Makefile.in: Rename configure.in to configure.ac + * doc/sourcebuild.texi: Likewise. + * configure: Regenerate. + * config.in: Regenerate. + +2004-01-08 Stuart Hastings + + * config/i386/i386.md: Typos in MMX/SSE immediate shifts. + +2004-01-08 Jan Hubicka + + * cgraphunit.c (cgraph_decide_inlining): Fix typo. + +2004-01-08 Geoffrey Keating + + * config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset. + (UNSPEC_FIX_TRUNC_TF): New constant. + (movtf_internal): Make splitter active only when insn is active. + (extenddftf2): Rewrite to properly load zero into low part. + (extenddftf2_internal): New. + (extendsftf2): Rewrite. + (truncdftf2): Correct length. + (floatditf2): Delete. + (fix_trunc_helper): New. + (fix_trunctfdi2): Use fix_trunc_helper. + (fix_trunctfsi2): Likewise.fix_trunc + (fix_trunctfsi2_internal): New. + + * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum + addresses are legitimate on Darwin even when flag_pic. + (rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create + non-offsettable addresses for loads of TFmode constants. + +2004-01-08 Kazuhiro Inaoka + + * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit + variables in the appropriate bss section. + +2004-01-09 Alan Modra + + * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure + target_flags has MASK_POWERPC64 when -m64. + * config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64 + to 620, 630, power3, power4 and rs64a entries. + * config/rs6000/rs6000.h (MASK_64BIT): Expand comment. + +2004-01-08 Richard Sandiford + + * simplify-rtx.c (simplify_immed_subreg): Fix construction of + floating-point constants. + +2004-01-08 J. Brobecker + + * dwarf2out.c (subrange_type_die): Add context_die parameter. + Create the subrange_type DIE using the given context DIE. + (modified_type_die): Update call to subrange_type_die. + +2004-01-08 Zack Weinberg + + * dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h: + Add multiple-include guard. + +2004-01-08 Hartmut Penner + + * gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept + all vector constant loadable by vsplt*. + (output_vec_const_move): Likewise. + +2004-01-07 Joseph S. Myers + + PR c/6024 + * c-typeck.c (comptypes): Only treat enumerated types in the same + translation unit as compatible with each other when they are the + same type. + * doc/extend.texi: Update. + +2004-01-07 Joseph S. Myers + + PR c/12165 + * c-decl.c (grokdeclarator): Take type qualifiers of typedefed + array type from the array element type. + +2004-01-07 Alan Modra + + * config/rs6000/rs6000.c (rs6000_dbx_register_number): New function. + * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare. + * config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define. + (DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment. + * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define. + +2004-01-06 Eric Christopher + + * config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default. + (DWARF2_DEBUGGING_INFO): Define. + (PREFERRED_DEBUGGING_TYPE): Set to dwarf2. + * config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove. + * config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0 + for irix as. + (SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as. + * config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove. + * config/mips/iris5gas.h: Ditto. + (DBX_DEBUGGING_INFO): Remove. + (DWARF2_DEBUGGING_INFO): Ditto. + (MIPS_DEBUGGING_INFO): Ditto. + (PREFERRED_DEBUGGING_TYPE): Ditto. + * config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove. + (PREFERRED_DEBUGGING_TYPE): Ditto. + (SUBTARGET_ASM_DEBUGGING_SPEC): Ditto. + * config/mips/elf64.h: Ditto. + +2004-01-06 Jan Hubicka + + * Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate. + (STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use. + +2004-01-06 Geoffrey Keating + + * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c. + (TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128. + * config/rs6000/darwin-ldouble.c: New. + + * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg + for constants. + (constant_subword): Delete. + * rtl.h (constant_subword): Delete prototype. + (immed_double_const): Is not in varasm.c. + * simplify-rtx.c (simplify_immed_subreg): New. + (simplify_subreg): Use simplify_immed_subreg. + + * config/rs6000/rs6000.md (floatsitf2): Use expand_float rather + than trying to generate RTL directly. + (fix_trunctfsi2): Use expand_fix rather than trying to generate + RTL directly. + + * dwarf2out.c (add_const_value_attribute): Remove incorrect comment. + +2004-01-06 David Edelsohn + + * config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each + function into a separate macro. + (read_only_data_section): Add void argument. + (private_data_section): Same. + (read_only_private_data_section): Same. + (toc_section): Same. + +2004-01-06 Jan Hubicka + + * invoke.texi: Remove typo in last change. + + PR target/10301 + * config.gcc: Accept opteron and athlon-64 as variants + of k8. + * i386.c (override_options): Likewise. + * invoke.texi (i386 -mtune): Expand documentation. + +2004-01-06 Kazu Hirata + + * alias.c: Fix comment typos. + * builtins.c: Likewise. + * cfg.c: Likewise. + * df.c: Likewise. + * dominance.c: Likewise. + * dwarf2out.c: Likewise. + * emit-rtl.c: Likewise. + * expr.c: Likewise. + * final.c: Likewise. + * fold-const.c: Likewise. + * gcse.c: Likewise. + * genattrtab.c: Likewise. + * genrecog.c: Likewise. + * gensupport.c: Likewise. + * ggc-zone.c: Likewise. + * integrate.c: Likewise. + * local-alloc.c: Likewise. + * loop.c: Likewise. + * recog.c: Likewise. + * regmove.c: Likewise. + * reg-stack.c: Likewise. + * reorg.c: Likewise. + * rtlanal.c: Likewise. + * rtl.h: Likewise. + * sched-ebb.c: Likewise. + * simplify-rtx.c: Likewise. + * toplev.c: Likewise. + * varasm.c: Likewise. + +2004-01-06 Kazu Hirata + + * doc/install.texi: Fix typos. + * doc/invoke.texi: Likewise. + * doc/md.texi: Likewise. + +2004-01-06 Kazuhiro Inaoka + + * config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed + +2004-01-06 Jan Hubicka + + * i386.c (init_cumulative_args): Add handling of MMX_REGPARM. + (function_arg_advance): Do not pass aggregates in SSE; deal handling + of MMX_REGPARM. + (function_arg): Add new warnings about ABI changes; fix SSE_REGPARM; + add MMX_REGPARM. + * i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields. + (SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI. + (MMX_REGPARM_MAX): Similarly for -mmmx. + +2004-01-05 Kazu Hirata + + * config/sh/linux.h: Fix comment formatting. + * config/sh/netbsd-elf.h: Likewise. + * config/sh/sh.c: Likewise. + * config/sh/sh.h: Likewise. + * config/sh/vxworks.h: Likewise. + +2004-01-05 Kazu Hirata + + * system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison. + * toplev.c (output_file_directive): Don't use + ASM_OUTPUT_MAIN_SOURCE_FILENAME. + +2004-01-05 Steven Bosscher + + * toplev.c: Fix broken checkin of 2003-12-30. + +2004-01-05 Daniel Berlin + + * ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS + (USING_MMAP): We don't support non-mmap. + (struct alloc_chunk): Steal 1 bit from typecode, use it to mark + large objects. + (struct page_entry): Remove bytes_free. + (struct page_table_chain): Remove. + (struct globals): Remove page_table member. + (loookup_page_table_entry): Function deleted. + (set_page_table_entry): Ditto. + (ggc_allocated_p): No longer need page table lookups. + (ggc_marked_p): Ditto. + (alloc_small_page): Don't care about bytes_free anymore. + (alloc_large_page): Round up size. + (ggc_alloc_zone_1): Mark large objects as such, and calculate + their size the new way. + Remove page table lookups and setting. + (ggc_get_size): Calculate large object size the new way. + (sweep_pages): Redo to account for fact that we no longer have + bytes_free. + (ggc_collect): No longer need to reincrement bytes_free. + (ggc_pch_alloc_object): Handle new large objects properly. + (ggc_pch_read): Put PCH stuff into it's own uncollected zone. + +2004-01-05 Kazu Hirata + + * doc/invoke.texi: Remove a page break. + +2004-01-05 Kazu Hirata + + * config/avr/avr.c (avr_output_function_prologue): Remove an + extra pair of curly braces. + +2004-01-05 Kazu Hirata + + * config/mn10300/mn10300.c: Fix comment formatting. + * config/mn10300/mn10300.h: Likewise. + +2004-01-05 Richard Kenner + + * tree.h: Update documentation on nothrow_flag. + * print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for + types. + +2004-01-05 Kazu Hirata + + * doc/invoke.texi: Remove traces of dead ports. + +2004-01-05 Richard Sandiford + + * doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs + option. + +2004-01-05 Richard Sandiford + + PR target/12945 + * coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for + counter labels. + * config/mips/mips.c (INTERNAL_SYMBOL_P): Delete. + (mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating + string constants if TARGET_MIPS16. Use SYMBOL_REF_DECL to check + the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P. + (mips_symbol_insns): Don't trust the local/global classification. + (m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol. + (override_options): Make -mabicalls -fno-unit-at-a-time imply + -mno-explicit-relocs. + (mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish + between local and global symbols. + +2004-01-05 Richard Sandiford + + * config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare. + (mips_preferred_reload_class): Declare. + * config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function. + (EXTRA_CONSTRAINT): Update accordingly. + (PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class. + * config/mips/mips.c (mips_dangerous_for_la25_p): New function. + (mips_preferred_reload_class): New function. Prefer LEA_REGS if + mips_dangerous_for_la25_p. + (mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS + if mips_dangerous_for_la25_p. + +2004-01-05 Bernardo Innocenti + + * config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison + warning. + +2004-01-04 Nathanael Nerode + + * configure.ac: Use AC_PROG_CPP_WERROR. + * configure: Regenerate. + +2004-01-04 Zack Weinberg + + * .cvsignore: Add autom4te.cache. + +2004-01-04 Richard Sandiford + + * doc/invoke.texi: Revamp documentation of MIPS options. Remove + -mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile, + -m4650, -mfix7000 and -(m)no-crt0. Put endianness options first, + then architecture options, then ABI options. General rewording. + +2004-01-04 Joseph S. Myers + + PR c/3414 + * doc/extend.texi: Clarify definition of malloc attribute. + +2004-01-04 Jan Hubicka + + * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency. + * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed + * cgraph.h (cgraph_edge): Replace inline_call by inline_failed + (cgraph_inline_p): Add extra argument reason. + * cgraphunit.c: Minor formating fixes. + cgraph_first_inlined_callee): New functions. + (record_call_1): Record builtins too. + (cgraph_analyze_function): Update inline_failed messages. + (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into, + cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed. + (cgraph_check_inline_limits): Likewise; Add argument reason. + (cgraph_set_inline_failed): New static function. + (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set + reasons. + (cgraph_inline_p): Add new argument reason. + * tree-inline.c (expand_call_inline): Update warning. + +2004-01-03 Nathanael Nerode + + * configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM + with modern equivalents. + * configure: Regenerate. + + * configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE. + * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove. + * configure: Regenerate. + + * doc/install.texi: Note that 'gcc' is now a 2.57 directory. + + * configure.in: Rename to configure.ac. + * configure.ac: Renamed from configure.in; make minimum necessary + changes for autoconf 2.5x. + * aclocal.m4: Make minimum necessary changes for autoconf 2.5x. + * configure: Regenerate with autoconf 2.57. + +2004-01-03 Kazu Hirata + + * config/mips/linux.h: Fix comment formatting. + * config/mips/mips.c: Likewise. + * config/mips/mips.h: Likewise. + * config/mips/mips.md: Likewise. + * config/mips/netbsd.h: Likewise. + * config/mips/windiss.h: Likewise. + +2004-01-02 Richard Henderson + + * config/i386/i386.md (fp constant pool splitter): Reorg suppression + for sse and 387; add suppression for mmx. + +2004-01-02 Andrew Pinski + + * loop.c (loop_optimize): Free all loops_info's mems. + + * c-typeck.c (finish_init): Free spelling_base before + setting it again. + + * cfgloop.c (flow_loops_find): Always free the sbitmap + headers. + + * predict.c (estimate_probability): Free bbs after being + done with it. + +2004-01-02 Kazu Hirata + + * config/mn10300/mn10300.h (PREDICATE_CODES): Add + const_8bit_operand and call_address_operand. + +2004-01-02 Jan Hubicka + + * cgraphunit.c (cgraph_optimize_function): Call optimize_inline_calls + when there is nothing to inline but warnings are requested. + (cgraph_decide_inlining): Fix memory leak. + +2004-01-02 Jan Hubicka + + * expr.c (store_constructor): Fix pasto in previous patch. + +2004-01-02 Kazu Hirata + + * config/i386/cygming.h: Fix comment formatting. + * config/i386/djgpp.h: Likewise. + * config/i386/gthr-win32.c: Likewise. + * config/i386/i386-interix.h: Likewise. + * config/i386/i386.c: Likewise. + * config/i386/i386.h: Likewise. + * config/i386/openbsd.h: Likewise. + * config/i386/winnt.c: Likewise. + * config/i386/xm-mingw32.h: Likewise. + +2004-01-02 Joseph S. Myers + + * doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update + copyright and last modification dates. + +2004-01-02 Andreas Jaeger , Gerald Pfeifer + + * doc/install.texi (Specific): Mention x86_64. + +2004-01-01 Hans-Peter Nilsson + + * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]: + Call force_operand on plus_constant result. + +2004-01-01 Jan Hubicka + + * expmed.c (store_bit_field, extract_bit_field): Use new named patterns + * expr.c (store_constructor): Use vec_init pattern. + * genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init. + * optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init + (vec_set_optab, vec_extract_optab, vec_init_optab): New. + * i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf): + New patterns. + (sse2_unpc?pd): Fix pattern. + (sse2_movlpd): Kill. + (sse2_movsd): Deal with movlpd too. + * i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd. + (ix86_expand_vector_init): New. + * emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions. + * md.texi (vec_set, vec_extract): Document diff --git a/gcc/ChangeLog.0 b/gcc/ChangeLog.0 deleted file mode 100644 index 4ed06520ca47..000000000000 --- a/gcc/ChangeLog.0 +++ /dev/null @@ -1,13011 +0,0 @@ -Tue Jul 14 02:20:38 1998 Jeffrey A Law (law@cygnus.com) - - * version.c: Bump to avoid problems with old spec files during - bootstrap. - -Mon Jul 13 23:11:44 1998 David S. Miller - - * config/sparc/sparc.c (output_scc_insn): Enclose || conditions in - parens while walking over notes. - * config/sparc/sparc.md (reg movdi split): Clean up matching - conditions. - (all DI arithop splits on 32-bit): Handle immediate arguments - correctly when they are CONST_INTs. - -Mon Jul 13 23:57:21 1998 Kamil Iskra - - * m68k/m68k.h (TARGET_SWITCHES): Clear MASK_68040_ONLY for - -m68020-40, -m68020-60 and -m5200. - -Mon Jul 13 23:52:05 1998 Weiwen Liu - - * gcc.c (do_spec_1): Fix %O handling for secure temporary file - creation. - -Mon Jul 13 23:42:36 1998 Ralf Corsepius - - * sh/elf.h (MAX_OFILE_ALIGNMENT): Undefine before including svr4.h. - -Mon Jul 13 23:36:08 1998 Jim Wilson - - * i386/i386.h (CPP_486_SPEC, CPP_586_SPEC, CPP_686_SPEC): New specs. - (CPP_CPU_DEFAULT_SPEC, CPP_CPU_SPEC): Use them. - (EXTRA_SPECS): Support them. - * gcc.c: Delete %[spec] support. - (do_spec_1, case '('): Likewise. - (do_spec_1, case '['): Call error. - * i386/aix386ng.h, cygwin32.h, freebsd-elf.h, gas.h, isc.h, - linux-aout.h, linux-oldld.h, linux.h, osfelf.h, osfrose.h, sco.h, - sco4.h, sco4dbx.h, sco5.h, sol2.h, sysv3.h (CPP_SPEC): Delete - %[cpp_cpu]. - -Mon Jul 13 23:31:04 1998 Andreas Schwab - - * m68k.c (output_scc_di): Use cmpw #0 only for address registers. - -Mon Jul 13 23:26:43 1998 Jeffrey A Law (law@cygnus.com) - - * tree.h (tree_common): Note front-end dependencies on layout of - this structure. - -Mon Jul 13 23:18:39 1998 Craig Burley - - * stmt.c (expand_expr_stmt): If not assigning fresh - value to last_expr_value, zero it, so old garbage - doesn't get dereferenced. - -Mon Jul 13 23:06:55 1998 Henning.Petersen@t-online.de (Henning Petersen) - - * gcse.c (hash_scan_insn): Add missing argument declaration. - -Mon Jul 13 18:59:13 1998 Jim Wilson - - * configure.in (mips-sgi-irix5cross64, mips-sgi-irix5*): Remove - HAVE_INTTYPES_H from xm_defines. Define xm_file to mips/xm-iris5.h. - * mips/xm-iris5.h (USG): Delete. - -Mon Jul 13 17:18:47 1998 Nick Clifton - - * cccp.c (main): Add support for parsing --help. - (display_help): New function: display command line switches. - - * cpplib.c (cpp_handle_option): Add support for parsing --help. - (display_help): New function: display command line switches. - - * gcc.c (main): Add support for parsing --help, and passing it on - to the sub-processes invoked by gcc. - (display_help): New function: display command line switches. - - * tm.texi (TARGET_SWITCHES and TARGET_OPTIONS): Document - 'description' field added to structure. - - * toplev.c: Add support for parsing --help. - Add documentation strings to command line option tables. - (display_help): New function: display comman line switches. - -Mon Jul 13 16:15:10 1998 John Carr - - * sparc.c, sparc.h, sparc.md: New trampoline code. - Allow integer operand 1 to V8+ DImode shift instructions. - Fix bugs in V8+ wide multiply patterns. - In 32 bit mode, split DImode register moves and logical instructions. - Write V9 branch prediction flag. - Use V9 conditional move more often for scc. - -Mon Jul 13 15:10:09 1998 Philippe De Muyter - - * invoke.texi(-fno-builtin): Explain that the names of built-in - functions begin with `__builtin_', not `__'. - -Mon Jul 13 19:01:52 1998 J"orn Rennecke - - * reload1.c (reload_reg_free_before_p): Abort for RELOAD_FOR_OUTPUT. - -Mon Jul 13 10:50:17 1998 Mark Mitchell - - * cplus-dem.c (SCOPE_STRING): Remove DMGL_JAVA stuff. - (cplus_demangle_opname): Initialize work. - (demangle_template): Remove is_java_array. - (do_type): Remove DMGL_JAVA stuff. - (long_options): Remove "java". - (main): Remove 'j' option. - -Mon Jul 13 10:19:00 1998 Jeffrey A Law (law@cygnus.com) - - * mn10300.h (REG_CLASS_FROM_LETTER): Map 'y' to SP_REGS. - Handle 'x' as NO_REGS for this cpu. - (REGNO_OK_FOR_BIT_BASE_P): Define. - (REG_OK_FOR_BIT_BASE_P): Define. - (GO_IF_LEGITIMATE_ADDRESS): Use them. - (REG_OK_FOR_INDEX_P): Tweak. - * mn13000.c (REG_SAVE_BYTES): Define. - (expand_epilogue, initial_offset): Use it. - (secondary_reload_class): Slightly reformat. - (output_tst): Tweak comments. - * mn10300.md: Change 'x' to 'y' for SP_REGS. Then add 'x' to many - patterns. - (addsi3): Turn into a define_expand/define_insn pair. Rework code for - three operand addition case to be more efficient. - (subsi3): Turn into a define_expand/define_insn pair. - - * expr.c (expand_expr): Only set MEM_IN_STRUCT_P if the memory address - is not varying for REFERENCE_TYPE or when we think we might have found - an optimized access to the first element in an array. - -Mon Jul 13 02:24:08 1998 David S. Miller - - * regclass.c (reg_scan_mark_refs): New arg min_regno. Only update - regscan information for REGs with numbers greater than or equal to - this. All callers changed. - (reg_scan_update): New function to efficiently update regscan - information on the fly. - * rtl.h: Add prototype. - * jump.c (jump_optimize): Call it when we make a transformation - which generates new pseudo-REGs. - -Sun Jul 12 13:08:14 1998 Jeffrey A Law (law@cygnus.com) - - * collect2.c (main): Use "-x c" instead of "-lang-c" for force the - compiler into C mode. - -Sun Jul 12 01:27:05 1998 Jason Merrill - - * cplus-dem.c (demangle_nested_args): Return a value. - - * tree.h (TYPE_P): New macro. - -Sat Jul 11 16:19:48 1998 Mark Mitchell - - * cplus-dem.c (string): Move definition before work_stuff. - (work_stuff): Add volatile_type, forgetting_types, - previous_argument, and nrepeats fields. - (SCOPE_STRING): New macro. - (demangle_template): Add `remember' parameter. Add comment. - Register the `B' code type here, if remembering. Tidy. Fix crash - on NULL tmpl_argvec. Be consistent with use of tname/trawname. - (demangle_nested_args): New function. - (internal_cplus_demangle): Handle volatile-qualified member - functions. - (mop_up): Delete the previous_argument string if present. - (demangle_signature): Tidy. Handle volatile-qualified member - functions. Handle back-references using the `B' code. Use extra - parameter to demangle_template and SCOPE_STRING where appropriate. - (demangle_template_value_parm): Fix thinko; 'B' is not an integral - code. - (demangle_class): Use SCOPE_STRING. - (gnu_special): Pass additional argument to demangle_template. - Use SCOPE_STRING. - (demangle_qualified): Save qualified types for later - back-references. Handle constructors and destructors for template - types correctly. - (do_type): Tidy. Use SCOPE_STRING. Pass extra argument to - demangle_template. Use demangled_nested_args. Don't remember - qualified types here; that's now done in demangle_qualified. - Similarly for templates. - (do_arg): Improve comment. Handle 'n' repeat code. - (remember_type): Check forgetting_types. - (demangle_args): Deal with 'n' repeat codes. Tidy. - -Sat Jul 11 02:59:08 1998 Richard Earnshaw - - * arm.md (extendhisi2_mem, movhi, movhi_bytes): Propagate the volatile - and structure attribute flags to MEMs generated. - (splits for sign-extended HI & QI mode from memory): Also propagate - the volatile flag. - - * configure.in (thumb-*-coff*): Don't cause fixincludes to be run. - -Fri Jul 10 19:06:59 1998 Michael Meissner - - * varray.h: Include system.h if it hasn't already been included - before to get size_t declared. - -Fri Jul 10 12:53:58 1998 David S. Miller - - * jump.c (jump_optimize): If after_regscan and our transformations - generate new REGs, rerun reg_scan. - -Fri Jul 10 11:50:43 1998 Andrew MacLeod - - * config/i960/i960.c (i960_address_cost): MEMA operands with - positive offsets < 4096 are free. - -Fri Jul 10 12:34:37 1998 Andreas Schwab - - * config/m68k/m68k.c (const_uint32_operand): Recognize - CONSTANT_P_RTX. - (const_sint32_operand): Likewise. - -Thu Jul 9 22:58:59 1998 Jeffrey A Law (law@cygnus.com) - - * Makefile.in (alias.o): Depend on $(EXPR_H). - -Thu Jul 9 18:24:56 1998 J"orn Rennecke - - * reload1.c (choose_reload_regs): If using an equivalence from - find_equiv_reg and reg_reloaded_valid is not set for this register, - clear the associated spill_reg_store. - -Thu Jul 9 18:12:49 1998 J"orn Rennecke - - * reload1.c (emit_reload_insns): If an output reload copies only - to a secondary reload register, indicate that the secondary reload - does the actual store. - -Thu Jul 9 18:01:05 1998 J"orn Rennecke - - * reload.c (find_equiv_reg): If need_stable_sp is set, - check if stack pointer is changed directly in a PARALLEL. - -Thu Jul 9 10:38:14 1998 Jeffrey A Law (law@cygnus.com) - - * jump.c (duplicate_loop_exit_test): Fix thinko. - -Thu Jul 9 01:30:37 1998 Joel Sherrill - Ralf Corsepius - - * config/i386/rtemself.h: Updated to keep in sync with - config/i386/linux.h. - - * configure.in: Added sh-rtemself. - * configure: Rebuilt. - * config/sh/rtems.h: Removed -D__ELF__ since it is now COFF. - * config/sh/rtemself.h: New file. - - * config/rs6000/rtems.h: Defined STARTFILE_DEFAULT_SPEC. - -Wed Jul 8 21:43:14 1998 Jeffrey A Law (law@cygnus.com) - - * configure.in: Check if the assembler supports ".balign" and - ".p2align" and define HAVE_GAS_BALIGN_AND_P2ALIGN appropriately. - * acconfig.h (HAVE_GAS_BALIGN_AND_P2ALIGN): New tag. - * i386/gas.h (ASM_OUTPUT_ALIGN): If the assembler has support for - ".balign" then use it. - - * print-rtl.c (print_rtx): Revert previous patch. - - * jump.c (duplicate_loop_exit_test): Do not duplicate the loop exit - test if the exit code has an insn with ASM_OPERANDS. - - * i386/cygwin32.h (STDIO_PROTO): Fix typo. - * m32r.h (STDIO_PROTO): Fix typo. - - * pa.h (LEGITIMIZE_RELOAD_ADDRESS): Handle addresses created by - LEGITIMIZE_RELOAD_ADDRESS. - * tm.texi (LEGITIMIZE_RELOAD_ADDRESS): Note that this macro must be - able to handle addresses created by previous invocations of the macro. - - * flow.c (find_auto_inc): Remove most recent change. Real bug was - elsewhere. - - * cse.c (count_reg_usage): Count registers used in addresses of - CLOBBERs. - -Wed Jul 8 15:08:29 1998 Jim Wilson - - * Makefile.in (STAGESTUFF): Readd line lost during June 9 FSF merge. - - * configure.in (mips64orion-*-rtems*): Use elf64.h not elfl64.h. - -1998-07-08 Vladimir N. Makarov - - * config/fp-bit.c (__gexf2, __fixxfsi, __floatsixf): Add function - stubs. - - * toplev.c (lang_options): Add -Wlong-long, -Wno-long-long - options. - * c-decl.c (warn_long_long): Define. - (c_decode_option): Parse -Wlong-long, -Wno-long-long options. - (grokdeclarator): Add flag `warn_long_long' as guard for - warning "ANSI C does not support `long long'". - * invoke.texi: Add description of options -Wlong-long, - -Wno-long-long. - * gcc.1: The same as above. - -Wed Jul 8 02:43:34 1998 Jeffrey A Law (law@cygnus.com) - - * rtlanal.c (reg_overlap_mentioned_p): Handle STRICT_LOW_PART. If - either argument is CONSTANT_P, then return zero. - * reload.c (reg_overlap_mentioned_for_reload_p): Similarly. - - * configure.in: Also look at $srcdir/gas/configure to find a - gas version #. - -Wed Jul 8 00:28:22 1998 Carlo Wood - - * dsp16xx.h : Clean up of macro OPTIMIZATION_OPTIONS - -Tue Jul 7 21:18:14 1998 Mumit Khan - - * i386/cygwin32.h (ASM_DECLARE_FUNCTION_NAME): Merge duplicate - definitions from last two patches. - -Tue Jul 7 23:03:34 1998 J"orn Rennecke - - * reload1.c (choose_reload_regs): Don't set reload_override_in - if EQUIV is clobbered in INSN and the reload is done after INSN. - -Tue Jul 7 21:23:36 1998 J"orn Rennecke - - * expr.c (emit_queue): If emitting a SEQUENCE, set QUEUED_INSN - to the first insn of the sequence. - -Tue Jul 7 21:05:25 1998 J"orn Rennecke - - * cse.c (cse_insn): Don't make change without validation. - -Tue Jul 7 11:40:05 1998 Jeffrey A Law (law@cygnus.com) - - * mn10200.md (various zero/sign extension patterns): Zero and sign - extensions which use "sub" clobber cc0. - -Tue Jul 7 09:12:08 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Tue Jul 7 10:07:20 1998 Jeffrey A Law (law@cygnus.com) - - * print-rtl.c (print_rtx): Use REAL_VALUE_TYPE instead of "double". - -Tue Jul 7 08:41:27 1998 Richard Henderson (rth@cygnus.com) - - * print-rtl.c (print_rtx): Only print fp values when REAL_VALUE_TYPE - is a double. - -Tue Jul 7 00:31:58 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Tue Jul 7 01:03:03 1998 Mumit Khan - - Support for dllimport and dllexport attributes for i386-pe. - - * tree.h (DECL_NON_ADDR_CONST_P): New accessor macro. - (struct tree_decl): Add non_addr_const_p field. - * tree.c (staticp): Use. - - * i386/cygwin32.h (CPP_PREDEFINES): Map __declspec(x) to GCC - attributes. - (SUBTARGET_SWITCHES): Switches to turn on/off dllimport|export - attributes. Also accept -mwindows option. - (VALID_MACHINE_DECL_ATTRIBUTE): New macro. - (MERGE_MACHINE_DECL_ATTRIBUTE): New macro. - (REDO_SECTION_INFO_P): New macro. - (DRECTVE_SECTION_FUNCTION): New macro. - (drectve_section): Cover function to implement above. - (SWITCH_TO_SECTION_FUNCTION): New macro. - (switch_to_section): Covert function to implement above. - (EXTRA_SECTIONS): Add in_drectve. - (EXTRA_SECTION_FUNCTIONS): Add in_drectve and switch_to_section. - (ENCODE_SECTION_INFO): Delete old macro and redefine as a function. - (STRIP_NAME_ENCODING): Handle new attributes. - (ASM_OUTPUT_LABELREF): New macro. - (ASM_OUTPUT_FUNCTION_NAME): New macro. - (ASM_OUTPUT_COMMON): New macro. - (ASM_OUTPUT_DECLARE_OBJECT_NAME): New macro. - - * i386/mingw32.h (CPP_PREDEFINES): Map __declspec(x) to GCC - attributes. - - * i386/winnt.c (i386_pe_valid_decl_attribute_p): New function. - (i386_pe_merge_decl_attributes): New function. - (i386_pe_check_vtable_importexport): New function. - (i386_pe_dllexport_p): New function. - (i386_pe_dllimport_p): New function. - (i386_pe_dllexport_name_p): New function. - (i386_pe_dllimport_name_p): New function. - (i386_pe_mark_dllexport): New function. - (i386_pe_mark_dllimport): New function. - (i386_pe_encode_section_info): New function. - (i386_pe_unique_section): Strip encoding from name first. - -Tue Jul 7 00:50:17 1998 Manfred Hollstein (manfred@s-direktnet.de) - - * libgcc2.c (L_exit): Provide a fake for atexit on systems which - define ON_EXIT but not HAVE_ATEXIT. - -Tue Jul 7 00:44:35 1998 Franz Sirl - - * m68k.md (zero_extend QI to HI): Correctly handle TARGET_5200. - -Tue Jul 7 00:36:41 1998 Ulrich Drepper - - * i386.c: Remove random whitespace at end of lines. - - * i386.c (ix86_epilogue): For pentium processors, try to deallocate - 4 or 8 byte stacks with pop instructions instead of an add instruction. - -Tue Jul 7 00:30:08 1998 Klaus Kaempf - - * alpha.c: Include tree.h before expr.h. - -Mon Jul 6 22:50:48 1998 Jason Merrill - - * c-parse.in (struct_head, union_head, enum_head): New nonterminals. - (structsp): Use them. Update files generated from c-parse.in. - * extend.texi (Type Attributes): Document it. - - * c-decl.c: Add warn_multichar. - (c_decode_option): Handle -Wno-multichar. - * c-lex.c (yylex): Check it. - * c-tree.h: Declare it. - * toplev.c (lang_options): Add it. - * invoke.texi: Document it. - -Mon Jul 6 22:47:55 1998 J"orn Rennecke - - * reload.c (find_equiv_reg): When looking for stack pointer + const, - make sure we don't use a stack adjust. - - * reload.c (find_equiv_reg): If need_stable_sp is set, - check if stack pointer is changed directly. - - * reload1.c (delete_dead_insn): Don't delete feeding insn - if that insn has side effects. - - * flow.c (find_auto_inc): Clear UNCHANGING bit of register that is - changed. - - * reload1.c (reload_reg_free_before_p): RELOAD_FOR_OPADDR_ADDR - precedes RELOAD_FOR_OUTADDR_ADDRESS. - - * gcse.c (hash_scan_insn): New argument IN_LIBCALL_BLOCK. Changed - caller. - -Mon Jul 6 22:21:56 1998 Kamil Iskra - - * m68k.c (output_scc_di): Use cmpw #0 instead of tstl when - testing address registers on the 68000. - -Mon Jul 6 22:17:19 1998 Alasdair Baird - - * i386.c (is_fp_test): Fix thinko. - - * jump.c (jump_optimize): Check for CONST_INT before using INTVAL. - -Mon Jul 6 22:14:31 1998 Richard Henderson (rth@cygnus.com) - - * print-rtl.c (print_rtx): Display the real-value equivalent of - a const_double when easy. - - * real.h (REAL_VALUE_TO_TARGET_SINGLE): Use a union to pun types. - Zero memory first for predictability. - (REAL_VALUE_TO_TARGET_DOUBLE): Likewise. - * varasm.c (immed_real_const_1): Notice width of H_W_I == double. - - * regclass.c (allocate_reg_info): Initialize the entire reg_data - virtual array. - -Mon Jul 6 22:09:32 1998 Ian Lance Taylor - Jeff Law - - * i386/cygwin32.h: Add some declaration of external functions. - (ASM_DECLARE_FUNCTION_NAME): Define. - (ASM_OUTPUT_EXTERNAL, ASM_OUTPUT_EXTERNAL_LIBCALL): Define. - (ASM_FILE_END): Define. - * i386/winnt.c (i386_pe_declare_function_type): New function. - (struct extern_list, extern_head): Define. - (i386_pe_record_external_function): New function. - (i386_pe_asm_file_end): New function. - - * cpplib.c (cpp_options_init): Initialize cplusplus_comments to 1, - matching July 18, 1995 change to cccp.c. If -traditional then - disable cplusplus_comments. - -Mon Jul 6 21:28:14 1998 Jeffrey A Law (law@cygnus.com) - - * combine.c (expand_compound_operation): Fix thinko in code to optimize - (zero_extend:DI (subreg:SI (foo:DI) 0)) to foo:DI. - - * Disable the following change from gcc2. Not appropriate for egcs: - - Sun Jun 7 09:30:31 1998 Richard Kenner - * reload.c (find_reloads): Give preference to pseudo that was the - reloaded output of previous insn. - -Mon Jul 6 21:07:14 1998 Kaveh R. Ghazi - - * aclocal.m4 (GCC_FUNC_PRINTF_PTR): Don't define HOST_PTR_PRINTF. - Instead, define a new macro HAVE_PRINTF_PTR which only signifies - whether we have the %p format specifier or not. - - * acconfig.h: Delete stub for HOST_PTR_PRINTF, add HAVE_PRINTF_PTR. - - * machmode.h (HOST_PTR_PRINTF): When determining the definition, - check HAVE_PRINTF_PTR to see whether "%p" is okay. - - * mips-tfile.c: Include machmode.h to get HOST_PTR_PRINTF. - - * Makefile.in (mips-tfile.o): Depend on machmode.h. - -Mon Jul 6 10:42:05 1998 Mark Mitchell - - * jump.c (duplicate_loop_exit_test): Don't refuse to copy a - section of code just because it contains - NOTE_INSN_BLOCK_{BEG,END}. - * stmt.c (expand_end_loop): Likewise. Also, don't refuse to - move CALL_INSNs or CODE_LABELs. When moving code, don't move - NOTE_INSN_BLOCK_{BEG,END}. - -Mon Jul 6 09:38:15 1998 Mark Mitchell - - * cse.c (CSE_ADDRESS_COST): New macro, based on ADDRESS_COST, but - dealing with ADDRESSOF. - (find_best_addr): Use it. - -Mon Jul 6 09:27:08 1998 Richard Henderson - - * alpha/vms.h (TRAMPOLINE_TEMPLATE): Revert last change. - -Mon Jul 6 09:25:06 1998 Dave Love - - * libgcc2.c (__eprintf): Make args consistent with prototype in - assert.h. - -Mon Jul 6 00:28:43 1998 Mark Mitchell - - * cse.c (cse_insn): When SETting (MEM (ADDRESSOF (X))) to Y, - don't claim that the former is equivalent to the latter. - -Sun Jul 5 23:58:19 1998 Jeffrey A Law (law@cygnus.com) - - * cse.c (cse_insn): Second arg is an RTX now. Update all callers. - (cse_basic_block): Keep track of the current RETVAL insn for a - libcall instead of just noting that we're in a libcall. - - * combine.c (simplify_comparison): Do not commute a AND into - a paradoxical SUBREG if not WORD_REGISTER_OPERATIONS. - - * i386/freebsd-elf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Protect with - HAVE_GAS_MAX_SKIP_P2ALIGN. - * i386/linux.h: Likewise. - -Fri Jul 3 02:33:35 1998 David S. Miller - - * sparc.c (sparc_operand, move_operand, arith_operand, - arith11_operand, arith10_operand, arith_double_operand, - arith11_double_operand, arith10_double_operand, small_int, - uns_small_int): Recognize CONSTANT_P_RTX. - (output_sized_memop, output_move_with_extension, - output_load_address, output_size_for_block_move, - output_block_move, delay_operand): Remove, has not been - enabled or referenced for years. - * sparc.md (movstrsi, block_move_insn): Likewise. - * sparc.h (PREDICATE_CODES): Define. - * linux-aout.h (MACHINE_STATE_{SAVE,RESTORE}): Override with - version which uses getcc/setcc traps to save/restore condition - codes. - * linux64.h: Likewise. - * sunos4.h: Likewise. - * linux.h: Likewise. - * sol2.h: Likewise. - * sun4o3.h: Likewise. - -Fri Jul 3 02:28:05 1998 Richard Henderson - - * alpha.c (alpha_initialize_trampoline): Hack around Pmode/ptr_mode - lossage on VMS. Reported by kkaempf@rmi.de. - * alpha/vms.h (TRAMPOLINE_TEMPLATE): Add missing 0. - -Thu Jul 2 17:41:14 1998 Nick Clifton - - * config/m32r/m32r.h (MUST_PASS_IN_STACK): Override default - version. - -Thu Jul 2 14:34:48 1998 David Edelsohn - - * expr.h (STACK_SIZE_MODE): New macro. - * explow.c (allocate_dynamic_stack_space): Use it for - mode of allocate_stack pattern increment operand. - * tm.texi (STACK_SAVEAREA_MODE, STACK_SIZE_MODE): Document. - * md.texi (stack_save_block, ...): Reflect use of macro. - - * rs6000.h (PROMOTE_MODE): Always promote to word_mode. - (PROMOTE_FUNCTION_ARGS): Define. - (PROMOTE_FUNCTION_RETURN): Define. - (FUNCTION_VALUE): Promote to word_mode if smaller. - Convert to gen_rtx_FOO. - * rs6000.md (call_indirect): Store doubleword in 64-bit mode. - Convert to gen_rtx_FOO. - * rs6000.c: Convert to gen_rtx_FOO. - -Thu Jul 2 14:16:11 1998 Michael Meissner - - * varray.{c,h}: New files to provide virtual array support. - - * Makefile.in (OBJS): Add varray.o. - (varray.o): Add new file. - (REGS_H): New variable for dependencies for files including - regs.h. Add varray.h and files it includes. Change all regs.h - dependencies to $(REGS_H). - - * toplev.c (x{m,re}alloc): If size is 0, allocate 1 byte. - (xcalloc): Provide frontend for calloc. - * {tree,rtl}.h (xcalloc): Add declaration. - - * basic-block.h (REG_BASIC_BLOCK): Convert reg_n_info to be a - varray. - - * regs.h (toplevel): Include varray.h. - (reg_n_info): Switch to use a varray. - (REG_*): Likewise. - (allocate_reg_info): Change num_regs argument to be size_t. - - * regclass.c (reg_info_data): New structure to remember groups of - reg_info structures allocated that are to be zeroed. - ({pref,alt}class_buffer): New statics to hold buffers - allocate_reg_info allocates for {pref,alt}class_buffer. - (regclass): Use {pref,alt}class_buffer to initialize - {pref,alt}class. - (allocate_reg_info): Switch to make reg_n_info use varrays. - Allocate buffers for the preferred and alter register class - information. Change num_regs argument to be size_t, not int. - - * flow.c (reg_n_info): Switch to use varrays. - -Thu Jul 2 10:11:47 1998 Robert Lipe - - * install.texi (sco3.2v5): Document new --with-gnu-as flag. - * config/i386/sco5.h (JUMP_TABLES_IN_TEXT_SECTION): Defined as - in other targets. - (USE_GAS): Conditionalize away native assembler usage. - * config/i386/sco5gas.h: New file. - * config/i386/t-sco5gas: New file. - * configure.in (ix86-sco3.2v5*): Use new files if --with-gnu-as - -Thu Jul 2 08:20:00 1998 Catherine Moore - - * haifa-sched.c (alloc_EXPR_LIST): Change to use - unused_expr_list. - -Thu Jul 2 14:13:28 1998 Dave Love - - * Makefile.in (install-info): Don't use $realfile. Ignore - possible errors from the install-info program. - -Thu Jul 2 01:53:32 1998 Alasdair Baird - - * combine.c (simplify_comparison): Apply SUBREG_REG to SUBREGs. - -Wed Jul 1 23:06:03 1998 Richard Henderson - - * i386.h (HARD_REGNO_MODE_OK): Kill spurious test. - (MODES_TIEABLE_P): Tie SImode and HImode. - -1998-07-01 Andreas Jaeger - - * invoke.texi (Optimize Options): Fix typo. - -Wed Jul 1 22:25:43 1998 Jim Wilson - - * xcoffout.c (xcoffout_begin_function): Call xcoffout_block for - the zero'th block. - -Wed Jul 1 23:12:58 1998 Ken Raeburn - - * h8300.c (print_operand): Delete %L support. - * h8300.md (branch_true, branch_false): Use %= with a prefix - instead of %L for local branch labels. - -Wed Jul 1 21:27:13 1998 J"orn Rennecke - - * reload1.c (emit_reload_insns): Use proper register classes for - SECONDARY_INPUT_RELOAD_CLASS / SECONDARY_MEMORY_NEEDED code. - -Wed Jul 1 21:17:36 1998 J"orn Rennecke - - * reload.c (find_reloads): If there are multiple - RELOAD_FOR_INPUT_ADDRESS / RELOAD_FOR_OUTPUT_ADDRESS reloads for - one operand, change RELOAD_FOR_INPADDR_ADDRESS / - RELOAD_FOR_OUTADDR_ADDRESS for all but the first - RELOAD_FOR_INPUT_ADDRESS / RELOAD_FOR_OUTPUT_ADDRESS reloads. - -Wed Jul 1 17:23:23 1998 J"orn Rennecke - - * regmove.c (fixup_match_2): Check that P has RTX_CLASS 'i' before - using its PATTERN. - -Wed Jul 1 05:04:41 1998 Richard Henderson - - * expr.c (emit_group_load, emit_group_store): Rewrite considering - the size and alignment of the structure being manipulated. - * expr.c, calls.c, function.c: Update all callers. - * expr.h: Update prototypes. - * cse.c (invalidate): Cope with parallels. - -Wed Jul 1 04:22:23 1998 Richard Henderson - - * sparc.c (function_arg_record_value): Take a MODE arg with which to - create the PARALLEL. Update all callers. - -Wed Jul 1 04:10:35 1998 Richard Henderson - - * expr.c (expand_assignment, store_constructor, expand_expr): Use - convert_memory_address instead of convert_to_mode when possible. - -Wed Jul 1 03:48:00 1998 Richard Henderson - - * alpha.c (alpha_initialize_trampoline): Take arguments describing - the layout. Use ptr_mode. Disable hint generation. Use gen_imb. - * alpha.h (INITIALIZE_TRAMPOLINE): Pass extra args to the init func. - (TRANSFER_FROM_TRAMPOLINE): Move ... - * alpha/osf.h: ... here. - * alpha/vms.h (INITIALIZE_TRAMPOLINE): Use alpha_initialize_trampoline. - (TRANSFER_FROM_TRAMPOLINE): Remove undef. - * alpha/win-nt.h: Likewise. - * alpha/vxworks.h: Likewise. - - * alpha/linux.h: Revert gcc2 merge lossage. - -Wed Jul 1 10:56:55 1998 Andreas Schwab - - * c-decl.c (grokdeclarator): Don't warn about implicit int in - `typedef foo = bar'. - -Wed Jul 1 02:12:33 1998 Robert Lipe - - * i386.c (asm_output_function_prefix): Make 686 function - prologues not issue .types for non-global labels. - -Tue Jun 30 23:46:53 1998 Dmitrij Tejblum - - * i386/freebsd.h (WCHAR_TYPE): Chagne to an "int". - (WCHAR_TYPE_SIZE): Update appropriately. - -Tue Jun 30 23:16:39 1998 Jeffrey A Law (law@cygnus.com) - - * flow.c (recompute_reg_usage): Does not return a value. - * rtl.h (recompute_reg_usage): Update prototype. - - * jump.c (jump_optimize): Show that the jump chain is not - valid when not optimizing. - -Tue Jun 30 16:01:01 1998 Richard Henderson - - * rtl.def (CONSTANT_P_RTX): New. - * rtl.h (CONSTANT_P): Recognize it. - * cse.c (fold_rtx): Eliminate it. - * expr.c (can_handle_constant_p): New variable. - (init_expr_once): Initialize it. - (expand_builtin): Generate CONSTANT_P_RTX if the expression is not - immediately recognizable as a constant. - - * alpha.c (reg_or_6bit_operand): Recognize CONSTANT_P_RTX. - (reg_or_8bit_operand, cint8_operand, add_operand): Likewise. - (sext_add_operand, and_operand, or_operand): Likewise. - (reg_or_cint_operand, some_operand, input_operand): Likewise. - * alpha.h (PREDICATE_CODES): Add CONSTANT_P_RTX where needed. - -1998-06-30 Benjamin Kosnik - - * dbxout.c (dbxout_type_methods): Remove warn_template_debugging. - -Tue Jun 30 14:03:34 1998 Kaveh R. Ghazi - - * aclocal.m4 (GCC_NEED_DECLARATION): Accept an optional second - argument, which is typically preprocessor code used to draw in - additional header files when looking for a function declaration. - (GCC_NEED_DECLARATIONS): Likewise. - - * configure.in (GCC_NEED_DECLARATIONS): Add checks for getrlimit - and setrlimit, search for them in sys/resource.h. - - * acconfig.h: Add stubs for NEED_DECLARATION_GETRLIMIT and - NEED_DECLARATION_SETRLIMIT. - - * system.h: Prototype getrlimit/setrlimit if necessary. - -Tue Jun 30 10:54:48 1998 Mark Mitchell - - * rtl.texi: Don't say that RTX_INTEGRATED_P is not depended - upon. - -Tue Jun 30 13:11:42 1998 Franz Sirl - - * rs6000/sysv4.h (asm output): Add tabs for asm directives. - -Tue Jun 30 13:11:42 1998 David Edelsohn - - * Makefile.in (FLAGS_TO_PASS): Set AR_FLAGS to AR_FOR_TARGET_FLAGS. - -Tue Jun 30 08:59:15 1998 Kaveh R. Ghazi - - * gansidecl.h (ATTRIBUTE_UNUSED): Use __unused__ not `unused'. - Don't define NULL here. Also, remove all vestiges of autoconf - based checks for bcmp/bcopy/bzero/index/rindex. - - * system.h: Immediately after including stdio.h, check for and if - necessary provide a default definition of NULL. - -Tue Jun 30 08:22:05 1998 Michael Meissner - - * reload1.c (reload_cse_simplify_operands): Call - fatal_insn_not_found, not abort. - -Tue Jun 30 02:34:02 1998 Jeffrey A Law (law@cygnus.com) - - * choose-temp.c (make_temp_file): Accept new argument for the - file suffix to use. Allocate space for it and add it to the - template. - * mkstemp.c (mkstemps): Renamed from mkstemp. Accept new argument - for the length of the suffix. Update template structure checks - to handle optional suffix. - * collect2.c (make_temp_file): Update prototype. - (main): Put proper suffixes on temporary files. - * gcc.c (make_temp_file): Update prototype. - (do_spec_1): Put proper suffixes on temporary files. - -Tue Jun 30 00:56:19 1998 Bruno Haible - - * invoke.texi: Document new implicit structure initialization - warning. - -Mon Jun 29 21:40:15 1998 J"orn Rennecke - - * toplev.c (flag_dump_unnumbered): Declare. - (f_options): Add dump-unnumbered. - * print-rtl.c (flag_dump_unnumbered): Define. - (print_rtx): Print only '#' for insn numbers if flag_dump_unnumbered - is nonzero. - (print_rtl): Don't output line number notes if flag_dump_unnumbered - is nonzero. - * flow.c (print_rtl_with_bb): Don't output newline after line - numbers note if flag_dump_unnumbered is nonzero. - -Mon Jun 29 22:12:06 1998 Jeffrey A Law (law@cygnus.com) - - * Merge from gcc2 June 9, 1998 snapshot. See ChangeLog.13 for - details. - - * pa.c, pa.h, pa.md: Convert to gen_rtx_FOO. - -Mon Jun 29 20:12:41 1998 Kaveh R. Ghazi - - * Makefile.in (fix-header): Don't needlessly depend on cpperror.o. - - * alias.c (CHECK_ALIAS_SETS_FOR_CONSISTENCY): Cast expansion to - void since it is evaluated in a comma list. - - * mips.h (ASM_GENERATE_INTERNAL_LABEL): Always sprintf `NUM' - argument as a long and cast `NUM' to long to ensure it is of the - proper width. Wrap macro arguments in parens when they appear in - the expansion. - - * sol2.h (ASM_GENERATE_INTERNAL_LABEL): Likewise. - - * sparc.h (ASM_GENERATE_INTERNAL_LABEL): Likewise. - (ASM_DECLARE_RESULT): Fix fprintf format specifier to match - function argument return type. - (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_FP_P, - REGNO_OK_FOR_CCFP_P): Use `(unsigned)' not `U'. - - * cpplib.c (cpp_message_from_errno): Remove unneeded argument to - cpp_message. - - * dbxout.c: Fix the comments after an #endif to reflect the actual - condition tested in the preceding #if. - - * except.c (find_all_handler_type_matches): Switch to old-style - function definition. - - * expr.c (expand_builtin): Remove unused variable `type' twice. - - * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Cast -1 before comparing it - to an unsigned long. - - * haifa-sched.c (print_insn_chain): Remove unused function. - - * objc/objc-act.c (build_msg_pool_reference): Hide prototype and - definition. - - * toplev.c: When testing whether to include dbxout.h, also include - it when XCOFF_DEBUGGING_INFO is defined. - - * unroll.c (unroll_loop): Add parentheses around assignment used - as truth value. - -Mon Jun 29 12:18:00 1998 Catherine Moore - - * config/lb1spc.asm (.div, .udiv): Replace routines. - -Mon Jun 29 09:44:24 1998 Mark Mitchell - - * rtl.h: Update comment about special gen_rtx variants. - * emit-rtl.c (gen_rtx): Handle MEMs using gen_rtx_MEM. - -Sun Jun 28 20:58:51 1998 Jeffrey A Law (law@cygnus.com) - - * choose-temp.c (choose_temp_base): Restore original variant of - this function for compatibility. - (make_temp_file): This is the new, preferred interface to create - temporary files. - * collect2.c (choose_temp_base): Delete declaration. - (make_temp_file): Declare. - (temp_filename_length, temp_filename): Delete. - (main): Use make_temp_file to get temporary files. Use --lang-c - to force the resulting ctort/dtor file to be compiled with the C - compiler. Make sure to remove temporary files on all exit paths. - * gcc.c (make_temp_file): Provide prototype if MKTEMP_EACH_FILE is - defined. - (choose_temp_base): Only provide prototype if MKTEMP_EACH_FILE is - not defined. - (do_spec): Use make_temp_file if MKTEMP_EACH_FILE is defined. - -Sun Jun 28 08:57:09 1998 Kaveh R. Ghazi - - * configure.in (GCC_NEED_DECLARATIONS): Add strerror, getcwd and - getwd. - - * acconfig.m4: Add stubs for NEED_DECLARATION_STRERROR, - NEED_DECLARATION_GETCWD and NEED_DECLARATION_GETWD. - - * cccp.c: Remove strerror()/sys_nerr/sys_errlist decls. - (my_strerror): Add prototype and make it static. - - * collect2.c: Likewise. - - * cpplib.c: Likewise. - - * gcc.c: Likewise, but keep `my_strerror' extern. - - * protoize.c: Likewise. - - * pexecute.c (my_strerror): Add argument to prototype. - - * system.h: Add prototypes for getcwd, getwd and strerror. Add - extern decls for sys_nerr and sys_errlist. Make abort decl - explicitly extern. - - * getpwd.c: Remove decls for getwd and getcwd. - -Sun Jun 28 02:11:16 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sat Jun 27 23:32:25 1998 Richard Henderson - - * jump.c (jump_optimize): Use side_effects_p & may_trap_p instead - of rtx_unsafe_p. Use modified_between_p instead of reg_set_between_p. - Allow FP moves to be optimized. - (rtx_unsafe_p): Delete. - -Sat Jun 27 23:02:04 1998 Richard Henderson - - * objc/archive.c: Remove prototypes. - -Sat Jun 27 22:37:05 1998 Jeffrey A Law (law@cygnus.com) - - * tm.texi (NEED_MATH_LIBRARY): Document new target macro. - - * Makefile.in (gencheck): Remove $(TREE_H) dependency. - -Sat Jun 27 20:20:00 1998 John Carr - - * dsp16xx.h (FIRST_PSEUDO_REGISTER): Add parentheses to definition. - * dsp16xx.c (next_cc_user_unsigned): New function. - Remove save_next_cc_user_code. - (print_operand): Use HOST_WIDE_INT_PRINT_* macros. - * dsp16xx.md: Call next_cc_user_unsigned instead of using - save_next_cc_user_code. - Use gen_rtx_* functions instead of gen_rtx. - -Sat Jun 27 20:18:34 1998 Franz Sirl - - * rs6000.h: Add trap_comparison_operator to PREDICATE_CODES. - -Sat Jun 27 16:45:42 1998 Jeffrey A Law (law@cygnus.com) - - * flow.c (count_reg_sets): New function. - (count_reg_sets_1, count_ref_references): Likewise. - (recompute_reg_usage): Likewise. - * rtl.h (recompute_reg_usage): Add prototype. - * toplev.c (rest_of_compilation): Call recompute_reg_usage just - before local register allocation. - -Sat Jun 27 13:15:30 1998 Richard Henderson - - * alpha.md (negsf, negdf): Revert Jan 22 change. - -Sat Jun 27 07:35:21 1998 Kaveh R. Ghazi - - * mkstemp.c: Include gansidecl.h. Rename uint64_t to gcc_uint64_t. - (mkstemp): Remove size specifier for variable `letters'. Call - gettimeofday, not __gettimeofday. - - * Makefile.in (EXPR_H): New dependency variable. - (c-typeck.o): Depend on $(EXPR_H) instead of expr.h. - (c-iterate.o): Likewise. - (gencheck): Depend on $(TREE_H) instead of tree.h, etc. - (stor-layout.o): Depend on $(EXPR_H) instead of expr.h. - (toplev.o): Likewise. Also depend on $(RECOG_H) instead of recog.h. - (varasm.o): Depend on $(EXPR_H) instead of expr.h. - (function.o): Likewise. - (stmt.o): Likewise. - (except.o): Likewise. - (expr.o): Likewise. - (calls.o): Likewise. - (expmed.o): Likewise. - (explow.o): Likewise. - (optabs.o): Likewise. - (sdbout.o): Likewise. - (dwarf2out.o): Likewise. - (emit-rtl.o): Likewise. - (integrate.o): Likewise. - (jump.o): Likewise. - (cse.o): Likewise. - (gcse.o): Likewise. Also depend on $(BASIC_BLOCK_H) instead of - basic-block.h. - (loop.o): Depend on $(EXPR_H) instead of expr.h. - (unroll.o): Likewise. - (combine.o): Likewise. - (reload.o): Likewise. - (reload1.o): Likewise. - (caller-save.o): Likewise. - (reorg.o): Likewise. - (alias.o): Don't depend on insn-codes.h. - (regmove.o): Depend on $(RECOG_H)/$(EXPR_H) instead of recog.h/expr.h. - (insn-emit.o): Depend on $(EXPR_H) instead of expr.h. - (insn-opinit.o): Likewise. - -Sat Jun 27 01:35:14 1998 Jeffrey A Law (law@cygnus.com) - - * choose-temp.c (choose_temp_base): Remove MPW bits. Use mkstemp - instead of mktemp. - * gcc.c (MKTEMP_EACH_FILE): Define. - (main): No need to call choose_temp_base if we are going to - use choose_temp_base to create each file later. - * mkstemp.c: New file. Adapted from glibc. - * Makefile.in (xgcc, colect2, protoize, unprotoize): Link in mkstemp.o. - (mkstemp.o): Add dependencies. - - * configure.in (gettimeofday): Check for its existence. - * config.in (HAVE_GETTIMEOFDAY): Define. - * configure: Rebuilt. - -1998-06-26 Michael Meissner - - * rs6000.md (ne 0, non power case): Add missing & constraint. - Name pattern ne0. - (negative abs insns): Add pattern names. - -Fri Jun 26 17:36:42 1998 Dave Love - - * Makefile.in (install-info): Run install-info program in separate - loop. - -Fri Jun 26 16:03:15 1998 Michael Meissner - - * haifa-sched.c (schedule_block): Add hooks for the machine - description to reorder the ready list, and update how many more - instructions can be issued this cycle. - * tm.texi (MD_SCHED_{INIT,REORDER,VARIABLE_ISSUE}): Document. - -Fri Jun 26 11:54:11 1998 David S. Miller - - * config/sparc/sparc.h (REGNO_OK_FOR_{INDEX,BASE,FP,CCFP}_P): - Explicitly mark the constant being compared against as unsigned. - * config/sparc/sparc.c (sparc_select, cpu_default, cpu_table): - Fully initialize final members. - (mem_aligned_8): Explicit init of offset to zero. - (output_function_prologue): Explicit init of n_regs to zero. - (output_function_epilogue): Likewise, and mark arg size as - unused. - (init_cumulative_args): Mark libname and indirect as unused. - (function_arg_pass_by_reference): Likewise for cum and named. - (sparc_builtin_saveregs): Likewise for arglist. - (sparc_flat_eligible_for_epilogue_delay): Likewise for slot. - -Fri Jun 26 06:58:54 1998 Richard Earnshaw (rearnsha@arm.com) - - * arm.h (SECONDARY_INPUT_RELOAD_CLASS): Only need a secondary reload - if reloading a MEM. - - * arm.h (arm_adjust_cost): Renamed bogus prototype from - arm_adjust_code. - (bad_signed_byte_operand): Add prototype. - * arm.c (arm_override_options): Make I unsigned. - (const_ok_for_arm): Add casts to the constants. - (load_multiple_operation): Don't redeclare elt in sub-block. - (arm_gen_movstrqi): Delete external declaration of optimize. - (gen_compare_reg): Declare parameter fp. - - * arm.c (final_prescan_insn): Only initialize scanbody if the insn - has a pattern. - -Fri Jun 26 09:31:24 1998 Kaveh R. Ghazi - - * alpha.c: Include system.h and toplev.h. - (cint8_operand): Mark parameter `mode' with ATTRIBUTE_UNUSED. - (const48_operand): Likewise. - (mode_width_operand): Likewise. - (mode_mask_operand): Likewise. - (mul8_operand): Likewise. - (current_file_function_operand): Likewise. - (signed_comparison_operator): Likewise. - (divmod_operator): Likewise. - (any_memory_operand): Likewise. - (alpha_return_addr): Likewise for parameter `frame'. - (alpha_builtin_saveregs): Likewise for parameter `arglist'. - (vms_valid_decl_attribute_p): Likewise for parameters `decl' and - `attributes'. - (alpha_start_function): Likewise for parameter `decl'. Use - HOST_WIDE_INT_PRINT_DEC in call to fprintf. Fix various format - specifiers. Remove unused variables `lab' and `name'. - (alpha_end_function): Mark parameter `decl' with ATTRIBUTE_UNUSED. - (check_float_value): Likewise for parameter `overflow'. - (alpha_need_linkage): Likewise for parameters `name' and `is_local'. - - * alpha.h (ASM_IDENTIFY_GCC, ASM_IDENTIFY_LANGUAGE): Define as - taking an argument. - (ASM_OUTPUT_SHORT): Cast argument to `int' in call to fprintf. - (ASM_OUTPUT_CHAR): Likewise. - (ASM_OUTPUT_BYTE): Likewise. - (PRINT_OPERAND_ADDRESS): Use HOST_WIDE_INT_PRINT_DEC in call to - fprintf. - (PUT_SDB_EPILOGUE_END): Mention argument `NAME' in definition. - Add prototypes for functions in alpha.c. - - * alpha.md (ashldi3): Add default case in switch. - -1998-06-26 Manfred Hollstein - - * Makefile.in (gcc_version, gcc_version_trigger): New macros. - (version): Initialize from $(gcc_version). - - * configure.in (version): Rename to gcc_version. - (gcc_version_trigger): New variable; call AC_SUBST for it and - emit it into the generated config.status. - * configure: Regenerate. - -Thu Jun 25 12:47:41 1998 Mark Mitchell - - * fold-const.c (make_range): Don't go looking at TREE_OPERANDs of - nodes that are not expressions. - -Thu Jun 25 15:08:16 1998 Mark Mitchell - - * invoke.texi (-fstrict-aliasing): Document. - * rtl.texi (MEM_ALIAS_SET): Document. - - * flags.h (flag_strict_aliasing): Declare. - * toplev.c (flag_strict_aliasing): Define. - (f_options): Add -strict-aliasing. - (main): Set flag_strict_aliasing if -O2 or higher. - - * tree.h (tree_type): Add alias_set field. - (TYPE_ALIAS_SET): New macro. - (TYPE_ALIAS_SET_KNOWN_P): Likewise. - (get_alias_set): Declare. - * tree.c (lang_get_alias_set): Define. - (make_node): Initialize TYPE_ALIAS_SET. - (get_alias_set): New function. - * print-tree.c (print_node): Dump the alias set for a type. - - * c-tree.h (c_get_alias_set): Declare. - * c-common.c (c_get_alias_set): New function. - * c-decl.c (init_decl_processing): Set lang_get_alias_set. - - * expr.c (protect_from_queue): Propagate alias sets. - (expand_assignment): Calculate alias set for new MEMs. - (expand_expr): Likewise. - * function.c (put_var_into_stack): Likewise. - (put_reg_into_stack): Likewise. - (gen_mem_addressof): Likewise. - (assign_parms): Likewise. - * stmt.c (expand_decl): Likewise. - * varasm.c (make_decl_rtl): Eliminate redundant clearing of - DECL_RTL. Calculate alias set for new MEMs. - - * rtl.def (REG): Add dummy operand. - (MEM): Add extra operand to store the MEM_ALIAS_SET. - * rtl.h (MEM_ALIAS_SET): New macro. - (gen_rtx_MEM): Declare. - * emit-rtl.c (gen_rtx_MEM): New function. - * gengenrtl.c (sepcial_rtx): Make MEMs special. - - * alias.c (CHECK_ALIAS_SETS_FOR_CONSISTENCY): New macro. - (DIFFERENT_ALIAS_SETS_P): Likewise. - (canon_rtx): Propagate the alias set to the new MEM. - (true_dependence): Check the alias sets. - (anti_dependence): Likewise. - (output_dependence): Likewise. - * explow.c (stabilize): Progoate alias sets. - * integrate.c (copy_rtx_and_substitute): Likewise. - * final.c (alter_subreg): Make sure not to leave MEM_IN_STRUCT_P - in an unpredictable state. Propagate alias sets. - * reload1.c (reload): Clear MEM_ALIAS_SET for new MEMs about which - we have no alias information. - -Thu Jun 25 16:59:18 1998 Andrew MacLeod - - * except.h (CATCH_ALL_TYPE): Definition moved to eh-common.h. - (find_all_handler_type_matches): Add function prototype. - * eh-common.h (CATCH_ALL_TYPE): Definition added. - * except.c (find_all_handler_type_matches): Add function to find all - runtime type info in the exception table. - (output_exception_table_entry): Special case for CATCH_ALL_TYPE. - -Thu Jun 25 15:47:55 1998 Kaveh R. Ghazi - - * Makefile.in (xcoffout.o): Depend on toplev.h, output.h and dbxout.h. - - * config/fp-bit.c (_fpmul_parts): Move variables `x', `ylow', - `yhigh' and `bit' into the scope in which they are used. - (_fpdiv_parts): Remove unused variables `low', `high', `r0', `r1', - `y0', `y1', `q', `remainder', `carry', `d0' and `d1'. - - * rs6000.c: Move include of output.h below tree.h. Include toplev.h. - (any_operand): Mark unused parameters `op' and `mode' with - ATTRIBUTE_UNUSED. - (count_register_operand): Likewise for parameter `mode'. - (fpmem_operand): Likewise. - (short_cint_operand): Likewise. - (u_short_cint_operand): Likewise. - (non_short_cint_operand): Likewise. - (got_operand): Likewise. - (got_no_const_operand): Likewise. - (non_add_cint_operand): Likewise. - (non_logical_cint_operand): Likewise. - (mask_operand): Likewise. - (current_file_function_operand): Likewise. - (small_data_operand): Likewise for parameters `op' and `mode' but - only when !TARGET_ELF. - (init_cumulative_args): Mark parameters `libname' with - ATTRIBUTE_UNUSED. - (function_arg_pass_by_reference): Likewise for parameters `cum', - `mode' and `named'. - (expand_builtin_saveregs): Likewise for parameter `args'. - (load_multiple_operation): Likewise for parameter `mode'. - (store_multiple_operation): Likewise. - (branch_comparison_operator): Likewise. - (secondary_reload_class): Likewise. - (print_operand): Add parentheses around & operation. - (output_prolog): Mark parameter `size' with ATTRIBUTE_UNUSED. - (output_epilog): Likewise. Cast argument to fprintf to int. - (rs6000_adjust_cost): Mark parameter `dep_insn' with ATTRIBUTE_UNUSED. - (rs6000_valid_decl_attribute_p): Likewise for parameters `decl', - `attributes', `identifier' and `args'. - (rs6000_valid_type_attribute_p): Likewise for parameter `attributes'. - (rs6000_comp_type_attributes): Likewise for parameters `type1' and - `type2'. - (rs6000_set_default_type_attributes): Likewise for parameter `type'. - - * rs6000.h (RTX_COSTS): Add parentheses around & operation. - (toc_section, private_data_section, trap_comparison_operator): Add - prototypes. - - * dbxout.h (dbxout_parms, dbxout_reg_parms, dbxout_syms): Add - prototypes. - - * xcoffout.c: Include toplev.h, outout.h and dbxout.h. - - * xcoffout.h (stab_to_sclass, xcoffout_begin_function, - xcoffout_begin_block, xcoffout_end_epilogue, - xcoffout_end_function, xcoffout_end_block, - xcoff_output_standard_types, xcoffout_declare_function, - xcoffout_source_line): Add prototypes. - -Thu Jun 25 09:54:55 1998 Nick Clifton - - * config/arm/arm.h (REG_ALLOC_ORDER): Add ARG_POINTER_REGNUM, - noticed by grahams@rcp.co.uk. - -Thu Jun 25 11:12:29 1998 Dave Brolley - - * gcc.c (default_compilers): Use new | syntax to eliminate - string concatenation. - -Thu Jun 25 01:00:48 1998 Richard Henderson - - * alpha.c (alpha_function_name): Delete. - (alpha_ra_ever_killed): Notice current_function_is_thunk. - (alpha_sa_mask, alpha_sa_size, alpha_does_function_need_gp): Likewise. - (alpha_start_function): Reorg from output_prologue. - (alpha_end_function): Reorg from output_epilogue. - * alpha.h (ASM_DECLARE_FUNCTION_NAME): Call alpha_start_function. - (ASM_DECLARE_FUNCTION_SIZE): New. - (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Delete. - (PROFILE_BEFORE_PROLOGUE): Set. - (ASM_OUTPUT_MI_THUNK): Remove bits now output by start/end_function. - * alpha/win-nt.h (ASM_OUTPUT_MI_THUNK): Likewise. - -Thu Jun 25 01:18:47 1998 John Wehle (john@feith.com) - - * i386/freebsd-elf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Define. - -1998-06-25 Herman A.J. ten Brugge - - * expr.c (expand_assignment): Rework address calculation for structure - field members to expose more invariant computations to the loop - optimizer. - (expand_expr): Likewise. - -Wed Jun 24 22:44:22 1998 Jeffrey A Law (law@cygnus.com) - - * local-alloc.c (block_alloc): Do not try to avoid false dependencies - when SMALL_REGISTER_CLASSES is nonzero. - -Wed Jun 24 17:55:15 1998 Klaus Kaempf - - * alpha.md (call_vms, call_value_vms): Strip leading * from symbol. - -Wed Jun 24 16:27:23 1998 John Carr - - * expr.c (get_memory_rtx): New function. - (expand_builtin): Call get_memory_rtx for MEM arguments to builtin - string functions. - - * expmed.c (init_expmed): Initialize all elements of *_cost arrays. - - * optabs.c: Use gen_rtx_FOO (...) instead of gen_rtx (FOO, ...). - * expr.c: Likewise. - * explow.c: Likewise. - * combine.c: Likewise. - * reload1.c: Likewise. - * gcse.c: Likewise. - -Wed Jun 24 15:13:01 1998 Dave Brolley - - * README.gnat: Add patch for new lang_decode_options interface. - -Wed Jun 24 09:14:04 1998 Andrew MacLeod - - * except.c (start_catch_handler): Do nothing if EH is not on. - -1998-06-24 Manfred Hollstein - - * configure.in (gxx_include_dir): Initialize default value depending on - new flag --enable-version-specific-runtime-libs; remove superfluous - default initialization afterwards. - * configure: Regenerate. - -Wed Jun 24 01:32:12 1998 David S. Miller - - * toplev.c (rest_of_compilation): Revert May 15 change. - -Tue Jun 23 21:27:27 1998 Ken Raeburn - - * reload.c (find_reloads): Fix check for failure to match any - alternative, to account for Mar 26 change in initial "best" cost. - -Tue Jun 23 16:44:21 1998 Dave Brolley - - * cpplib.c (do_line): Typo broke #line directive. - (cpp_message_from_errno): New function. - (cpp_error_from_errno): Call cpp_message_from_errno. - * cpplib.h (cpp_message_from_errno): New function. - -Tue Jun 23 13:38:18 1998 Andrew MacLeod - - * libgcc2.c (__get_eh_table_version, __get_eh_table_language): New - functions to return exception descriptor information. - (find_exception_handler): Pass match_info field to runtime matcher, - not a descriptor table entry. - -Tue Jun 23 09:30:58 1998 Dave Love - - * cpp.texi, gcc.texi: Add @dircategory, @direntry meant to - accompany previous Makefile.in (install-info) change. - -Tue Jun 23 10:06:07 1998 Andrew MacLeod - - * eh-common.h (struct __eh_info): Remove coerced value field. - * libgcc2.c (find_exception_handler): Don't set coerced_value field. - * except.c (get_dynamic_handler_chain, get_dynamic_cleanup_chain): Use - POINTER_SIZE instead of Pmode. - (expand_start_all_catch): Call start_catch_handler() if we are not - using new style exceptions. - -Tue Jun 23 06:45:00 1998 Catherine Moore - - * varasm.c (assemble_variable): Remove reference to warn_bss_align. - -Mon Jun 22 23:57:31 1998 David S. Miller - - * config/sparc/sparc.md (zero_extendhidi2, extendhisi2, - extendqihi2, extendqisi2, extendqidi2, extendhidi2, adddi3, - subdi3, negdi2, call, call_value, untyped_return, nonlocal_goto, - splits and peepholes): Change remaining generic gen_rtx calls to - specific genrtl ones. - * config/sparc/sparc.c: Likewise. - -Mon Jun 22 22:21:46 1998 Richard Henderson - - * gcc.c (handle_braces): Recognize | between options as an or. - -Mon Jun 22 23:13:47 1998 John Wehle (john@feith.com) - - * i386/freebsd-elf.h (JUMP_TABLES_IN_TEXT_SECTION): Define as flag_pic. - * i386/sysv4.h (JUMP_TABLES_IN_TEXT_SECTION): Define as flag_pic. - - * i386.md (exception_receiver): Define. - -Mon Jun 22 12:01:48 1998 Jim Wilson - - * Makefile.in (PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, - PROTOIZE_CROSS_NAME, UNPROTOIZE_CROSS_NAME): New variables. - (install-common): Use them. - - * gcse.c (add_label_notes): New function. - (pre_insert_insn): Call it. - * unroll.c (unroll_loop): Look for insns with a REG_LABEL note, and - pass the label to set_label_in_map. - -Mon Jun 22 19:01:14 1998 Dave Love - - * Makefile.in (install-info): Fix typpo in previous change. - -Mon Jun 22 11:10:00 1998 Catherine Moore - - * varasm.c (assemble_variable): Emit alignment warning. - -Mon Jun 22 08:18:46 1998 Kaveh R. Ghazi - - * Makefile.in (varasm.o): Depend on sdbout.h. - (sdbout.o): Depend on toplev.h. - - * collect2.c (scan_prog_file): Cast fprintf argument to `long' and - use %ld specifier. - - * final.c (shorten_branches): Cast first arg of `bzero' to char *. - - * genextract.c (main): When creating insn-extract.c, mark variable - `i' with ATTRIBUTE_UNUSED. - - * genpeep.c (main): When creating insn-peep.c, mark variables - `insn', `x' and `pat' with ATTRIBUTE_UNUSED. - - * objc/init.c (__objc_tree_print): Wrap function definition in - macro `DEBUG'. - - * objc/objc-act.c (encode_array): Cast sprintf argument to `long' - and use %ld specifier. - (adorn_decl): Likewise, twice. - - * reload1.c (reload_cse_regs): Cast first arg of `bzero' to char *. - - * sdbout.c: Include output.h and toplev.h. - (PUT_SDB_INT_VAL): Use HOST_WIDE_INT_PRINT_DEV to print argument - `a'. Cast `a' to HOST_WIDE_INT to force it to always be so. - (PUT_SDB_SIZE): Likewise. - - * sdbout.h (sdbout_mark_begin_function): Add prototype. - - * stmt.c (check_for_full_enumeration_handling): Cast argument of - `warning' to long and use %ld specifier. - - * toplev.c (main): Likewise for `fprintf'. - - * toplev.h (output_file_directive): Add prototype. - - * unroll.c (unroll_loop): Use HOST_WIDE_INT_PRINT_DEC specifier in - call to `fprintf'. - (precondition_loop_p): Likewise. - - * varasm.c Include sdbout.h. - (assemble_static_space): Move sometimes-unused variable `rounded' - into the scope in which it is used. - - * mips.c (gpr_mode): Don't say `static' twice. - - * cpplib.c (cpp_handle_option): Don't pass unneeded NULL to cpp_fatal. - - * objc/objc-act.c (init_selector): Hide prototype and definition. - - * optabs.c (gen_cond_trap): Remove unused variable `icode'. - - * regmove.c (copy_src_to_dest): Likewise for `i'. - - * mips-tfile.c (add_local_symbol): Cast width format specifier to int. - (add_ext_symbol): Likewise. - (add_file): Likewise. - (parse_def): Likewise. - (write_varray): Use HOST_PTR_PRINTF to print a pointer. Fix - remaining format specifiers and arguments. - (write_object): Likewise, several times. - (read_seek): Likewise. - (out_of_bounds): Likewise. - (allocate_cluster): Likewise. - (xmalloc): Likewise. - (xcalloc): Likewise. - (xrealloc): Likewise. - (xfree): Likewise. - - * mips-tdump.c (print_symbol): Likewise. - -Sun Jun 21 17:05:34 1998 Dave Love - - * Makefile.in (install-info): Use install-info program if - available, per GNU standard. - -Sun Jun 21 18:56:44 1998 Jeffrey A Law (law@cygnus.com) - - * invoke.texi: Document -mrelax for the mn10300 and mn10200. - - * basic-block.h (init_regset_vector): Delete declaration. - * flow.c (init_regset_vector): Make it static and add a prototype. - - * bitmap.h (debug_bitmap): Declare. - - * haifa-sched.c (debug_ready_list): Make static. - - * toplev.h (fancy_abort): Declare. - -Sun Jun 21 18:30:13 1998 H.J. Lu (hjl@gnu.org) - - * basic-block.h (init_regset_vector): New declaration. - - * Makefile.in (sdbout.o): Add insn-codes.h to dependency. - - * global.c: Include machmode.h amd move hard-reg-set.h before - rtl.h. - - * haifa-sched.c (insn_issue_delay, birthing_insn_p, - adjust_priority, print_insn_chaino): New declaration. - (schedule_insns): Remove declaration. - (init_target_units, get_visual_tbl_length, - init_block_visualization): Add prototype. - - * integrate.c (pushdecl, poplevel): Remove declaration. - - * rtl.h (expand_expr): Remove declaration. - - * loop.c (oballoc): Remove declaration. - (replace_call_address): Add prototype. - -Sun Jun 21 01:08:17 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sun Jun 21 01:16:38 1998 John Wehle (john@feith.com) - - * i386.c (output_fp_conditional_move): Don't bother handling - (cc_prev_status.flags && CC_NO_OVERFLOW) since the INSN patterns - prevent this from happening. - - * i386.md (nonlocal_goto_receiver): Delete. - -Sun Jun 21 00:42:20 1998 H.J. Lu (hjl@gnu.org) - - * Makefile.in (crtbeginS.o, crtendS.o): Add -fno-exceptions and - -DCRTSTUFFS_O. - (INSTALL): cd $(srcdir) before make. - - * flow.c (allocate_for_life_analysis, init_regset_vector): - Remove declaration. - - * function.h (get_first_block_beg): New declaration. - - * gbl-ctors.h (__do_global_dtors): Add prototype. - - * gcov-io.h (__fetch_long): New declaration. - (__store_long): Likewise. - (__read_long): Likewise. - (__write_long): Likewise. - - * gcov.c (print_usage): New declaration. - - * Makefile.in (c-iterate.o): Depend on insn-codes.h too. - -Sat Jun 20 00:36:16 1998 Jeffrey A Law (law@cygnus.com) - - * calls.c (expand_call): Initialize "src" and "dest". - * stmt.c (expand_return): Likewise. - * expmed.c (extract_split_bit_field): Similarly for "result" - * gcse.c (compute_hash_table): Mark first arg as unused. - * jump.c (jump_optimize): Initialize reversep. - * tree.c (make_node): Initialize length. - - * c-common.c (check_format_info): Initialize length_char and - fci to keep -Wall quiet. - - * except.c (jumpif_rtx): Put declaration and definition - inside a suitable #ifdef. - (jumpifnot_rtx): Delete dead function. - - * i386.h (output_int_conditional_move): Declare. - (output_fp_conditional_move): Likewise. - (ix86_can_use_return_insn_p): Likewise. - - * optabs.c (init_traps): Put prototype inside a suitable #ifdef. - -Sat Jun 20 00:27:40 1998 Graham - - * alias.c: Include toplev.h. - * caller-save.c: Include toplev.h. - * combine.c: Include toplev.h. - * flow.c Include toplev.h. - * global.c: Include toplev.h. - * jump.c: Include toplev.h. - * local-alloc.c: Include toplev.h. - * loop.c: Include toplev.h. - * regmove.c: Include toplev.h. - * stupid.c: Include toplev.h. - * unroll.c: Include toplev.h. - * Makefile.in: Add toplev.h dependencies. - -Fri Jun 19 22:40:25 1998 Jason Merrill - - * regmove.c (copy_src_to_dest): Add decl for loop_depth. - - * svr4.h (ASM_GENERATE_INTERNAL_LABEL): Cast arg to unsigned. - * dwarf2out.c (ASM_OUTPUT_DWARF_DATA1): Likewise. - Add parens to various macros. - -Fri Jun 19 23:22:42 1998 Bruno Haible - - * c-typeck.c (pop_init_level): Warn about implicit zero initialization - of struct members. - -Fri Jun 19 23:06:33 1998 Jason Merrill - - * varasm.c (assemble_start_function): Add weak_global_object_name. - * tree.c (get_file_function_name): Use it. - -Fri Jun 19 22:55:14 1998 Jeffrey A Law (law@cygnus.com) - - * except.c (jumpif_rtx): Make static and add prototype. - (jumpifnot_rtx): Likewise. - - * README.gnat: Add a build patch from Fred Fish. - - * c-lang.c (GNU_xref_begin, GNU_xref_end): Deleted. - - * Makefile.in (c-iterate.o): Depend on expr.h. - -Fri Jun 19 20:38:34 1998 H.J. Lu (hjl@gnu.org) - - * except.h (emit_unwinder, end_eh_unwinder): Removed. - - * dwarfout.c (getpwd): Add prototype. - (is_pseudo_reg, type_main_variant, is_tagged_type, - is_redundant_typedef): New declaration. - (output_decl): Add prototype for FUNC. - (type_main_variant): Make it static. - (is_tagged_type): Likewise. - (is_redundant_typedef): Likewise. - - * expr.c (do_jump_by_parts_greater_rtx): Removed. - (truthvalue_conversion): Likewise. - - * c-iterate.c: Include "expr.h". - (expand_expr): Use proper values when calling the function. - - * explow.c (emit_stack_save): Add prototype for FCN. - (emit_stack_restore): Likewise. - - * dwarf2out.c (getpwd): Add prototype. - - * dwarf2out.h (debug_dwarf, debug_dwarf_die): New declarations. - - * c-typeck.c (c_expand_asm_operands): Use proper values when calling - expand_expr. - - * c-lex.c (yyprint): Add prototype. - (check_newline, build_objc_string): Remove declaration. - - * c-tree.h (comptypes_record_hook): Removed. - (finish_incomplete_decl): New prototype. - - * alias.c (find_base_value): Add prototype. - (true_dependence): Add prototype for function argument. - - * c-aux-info.c (xmalloc): Remove declaration. - -Fri Jun 19 20:23:05 1998 Robert Lipe - - * i386.c: Include system.h. Remove redundant includes. - (optimization_options): Mark param 'size' with ATTRIBUTE_UNUSED. - (i386_cc_probably_useless_p): Likewise for 'decl', 'attributes', - 'identifier', 'args'. - (i386_valid_type_attribute_p): Likewise for 'attributes'. - (i386_comp_type_attribute_p): Likewise for 'type1', 'type2'. - (function_arg_partial_nregs): Likewise for 'cum', 'mode', 'type', - and 'named'. - (symbolic_operand): Likewise for 'mode'. - (call_insn_operand): Likewise. - (expander_call_insn_operand): Likewise. - (ix86_logical_operator): Likewise. - (ix86_binary_operator_ok): Likewise. - (emit_pic_move): Likewise. - (VOIDmode_compare_op): Likewise. - (is_mul): Likewise. - (str_immediate_operand): Likewise. - (ix86_uary_operator_ok): Likewise for 'code', 'mode', and 'operands'.yy - (asm_output_function_prefix): Likewise for 'name'. - (function_prologue): Likewise for 'file', and 'size'. - (function_epilogue): Likewise. - -1998-06-19 Jim Wilson - - * loop.h (struct induction): Clarify comment for unrolled field. - * unroll.c (find_splittable_givs): Move set of unrolled field - after address validity check. - -Fri Jun 19 18:38:04 1998 Michael Meissner - - * config/fp-bit.c (INLINE): Only define if not already defined. - -1998-06-19 Manfred Hollstein - - * Makefile.in (installdirs): Loop over directories in $(libsubdir) - creating probably missing ones, instead of single if statements. - -Fri Jun 19 10:43:52 1998 Andreas Schwab - - * c-common.c (truthvalue_conversion): Protect side effects in the - expression when splitting a complex value. - * fold-const.c (fold): Likewise. - -Fri Jun 19 02:31:16 1998 Klaus Kaempf (kkaempf@progis.de) - - * cccp.c (hack_vms_include_specification): Rewrite to handle - '#include

' correctly. - -Fri Jun 19 02:24:11 1998 H.J. Lu (hjl@gnu.org) - - * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Defined. - -Fri Jun 19 02:10:10 1998 John Wehle (john@feith.com) - - * i386.c (notice_update_cc): Integer conditional moves don't - affect cc0. - - * i386.md (movsfcc, movdfcc, movxfcc): Use emit_store_flag - to support LT, LE, GE, and GT signed integer comparisons. - (movsfcc+1, movsfcc+2, movdfcc+1, movdfcc+2, - movxfcc+1, movxfcc+2): Pattern doesn't match if the comparison - is LT, LE, GE, or GT. - (movdicc): Remove code resulting from an earlier patch which - didn't apply correctly. - -Fri Jun 19 02:00:19 1998 Richard Kenner - - * reload1.c (reload_cse_regno_equal_p): If -ffloat-store, don't - consider a MEM in FP mode as equal. - -Fri Jun 19 01:02:17 1998 Jeffrey A Law (law@cygnus.com) - - * c-decl.c (duplicate_decls): Avoid setting TREE_ASM_WRITTEN for - duplicate declarations of a function. - -Fri Jun 19 00:33:33 1998 H.J. Lu (hjl@gnu.org) - - * config/float-i386.h: New. - - * configure.in (i[34567]86-*-linux-*): Set float_format to i386. - -Thu Jun 18 20:11:00 1998 Jim Wilson - - * sched.c (schedule_insns): Use xmalloc not alloca for max_uid - indexed arrays. Call free at the end of the function for them. - * haifa-sched.c (schedule_insns): Likewise. - -Thu Jun 18 18:16:01 1998 Jim Wilson - - * dwarf2out.c (size_of_string): Do count backslashes. - -Thu Jun 18 11:43:54 1998 Nick Clifton - - * config/arm/thumb.h (GO_IF_LEGITIMATE_ADDRESS): Disallow REG+REG - addressing when one register is the frame pointer or stack - pointer. Disallow REG+CONST addressing in HI mode. - -Thu Jun 18 17:30:39 1998 J"orn Rennecke - - * reload.c (find_reloads): Don't narrow scope of RELOAD_OTHER to - RELOAD_FOR_INSN. - -Thu Jun 18 09:36:50 1998 Kaveh R. Ghazi - - * Makefile.in (c-lang.o): Depend on output.h. - - * c-lang.c: Include output.h. - - * sparc.c (sparc_builtin_saveregs): Remove unused variable `fntype'. - - * except.c (expand_builtin_eh_stub): Likewise for variable `jump_to'. - - * genrecog.c (write_subroutine): When writing insn-recog.c, mark - variables `insn', `pnum_clobbers', `x[0 .. max_depth]' and `tem' - with ATTRIBUTE_UNUSED. - - * regmove.c (copy_src_to_dest): Make function static to match its - prototype. - - * reload1.c Include hard-reg-set.h before rtl.h to get macro - HARD_CONST. Include machmode.h before hard-reg-set.h. - - * rtl.h: Prototype `retry_global_alloc' and wrap with macro - HARD_CONST to protect usage of typedef HARD_REG_SET. - - * tree.c: Prototype `_obstack_allocated_p'. - - * varasm.c: Wrap prototype of `asm_output_aligned_bss' in macro - BSS_SECTION_ASM_OP. - -Thu Jun 18 09:20:47 1998 Kaveh R. Ghazi - - * pa.c: Include system.h and toplev.h. Remove redundant code. - (call_operand_address): Mark parameter `mode' with ATTRIBUTE_UNUSED. - (symbolic_operand): Likewise. - (symbolic_memory_operand): Likewise. - (pic_label_operand): Likewise. - (fp_reg_operand): Likewise. - (pre_cint_operand): Likewise. - (post_cint_operand): Likewise. - (ireg_or_int5_operand): Likewise. - (int5_operand): Likewise. - (uint5_operand): Likewise. - (int11_operand): Likewise. - (uint32_operand): Likewise. - (ior_operand): Likewise. - (lhs_lshift_cint_operand): Likewise. - (pc_or_label_operand): Likewise. - (legitimize_pic_address): Likewise. - (hppa_legitimize_address): Likewise for parameter `old'. - (output_block_move): Likewise for parameter `size_is_constant'. - (output_function_prologue): Likewise for parameter `size'. - (output_function_epilogue): Likewise. - (return_addr_rtx): Likewise for parameter `count'. - (output_mul_insn): Likewise for parameter `unsignedp'. - (hppa_builtin_saveregs): Likewise for parameter `arglist'. - (output_bb): Likewise for parameter `operands'. - (output_bvb): Likewise. - (function_label_operand): Likewise for parameter `mode'. - (plus_xor_ior_operator): Likewise. - (shadd_operand): Likewise. - (non_hard_reg_operand): Likewise. - (eq_neq_comparison_operator): Likewise. - (movb_comparison_operator): Likewise. - (pa_combine_instructions): Likewise for parameter `insns'. - - * pa.h: Add prototypes for functions `output_deferred_plabels', - `override_options', `output_ascii', `output_function_prologue', - `output_function_epilogue', `print_operand', - `symbolic_expression_p', `reloc_needed', `compute_frame_size', - `hppa_address_cost', `and_mask_p', `symbolic_memory_operand', - `pa_adjust_cost', `pa_adjust_insn_length' and - `secondary_reload_class'. - -Wed Jun 17 22:28:48 1998 Jason Merrill - - * configure.in: Don't turn on collect2 unconditionally. - -Wed Jun 17 20:20:48 1998 Mark Mitchell - - * cse.c (cse_basic_block): Don't include NOTE insns in the count - that is used to decide whether or not it is time to erase the - equivalence table. - -Wed Jun 17 18:30:43 1998 Franz Sirl - - * rs6000/linux.h (JUMP_TABLES_IN_TEXT_SECTION): Define to zero. - -Wed Jun 17 19:05:03 1998 John Carr - - * haifa-sched.c (haifa_classify_insn): TRAP_IF is risky. - (sched_analyze_2): Allow scheduling TRAP_IF. - - * reorg.c (mark_referenced_resources): Examine operands of TRAP_IF. - - * rtl.h (TRAP_CODE): New macro. - - * rtl.def (TRAP_IF): Change second operand type to rtx. - - * optabs.c (gen_cond_trap): New function. - (init_traps): New function. - (init_optabs): Call init_traps. - * expr.h: Declare gen_cond_trap. - - * jump.c (jump_optimize): Optimize jumps to and around traps. - - * sparc.md: Define trap instructions. - - * rs6000.md: Define trap instructions. - * rs6000.c (print_operand): New code 'V' for trap condition. - (trap_comparison_operator): New function. - - * m88k.md: Update use of TRAP_IF. - - * tree.h (enum built_in_function): New function code BUILT_IN_TRAP. - * c-decl.c (init_decl_processing): New builtin __builtin_trap. - * expr.c (expand_builtin): Handle BUILT_IN_TRAP. - - * expr.c (expand_builtin): Error if __builtin_longjmp second argument - is not 1. - -Wed Jun 17 15:20:00 1998 Catherine Moore - - * reload1.c (spill_hard_reg): Check mode of register when - spilling from scratch_list. - -Wed Jun 17 16:25:38 1998 Andrew MacLeod (amacleod@cygnus.com) - - * except.c (add_new_handler): Fix bug in finding last region handler. - * libgcc2.c (find_exception_handler): Pass exception table pointer - to runtime type matcher, not the match info field. - -Wed Jun 17 15:57:48 1998 Andrew MacLeod (amacleod@cygnus.com) - - * eh-common.h (struct eh_context): Add comment for hidden use of - field dynamic_handler_chain. - * except.c (get_dynamic_handler_chain): Comment on, and use the - correct offset of the dynamic_handler_chain field. - -1998-06-17 Jim Wilson - - * mips/iris6.h (LINK_SPEC): Add -woff 131. - -1998-06-17 Jason Merrill - - * dwarf2out.c: Disable EH_FRAME_SECTION if we don't have .init. - - * configure.in: Don't disable collect2 when we have GNU ld. - -Wed Jun 17 08:38:13 1998 Jeffrey A Law (law@cygnus.com) - - * fold-const.c (make_range): Do not widen the type of the expression. - - * expr.c (check_max_integer_computation_mode): New function. - (expand_expr): Avoid integer computations in modes wider than - MAX_INTEGER_COMPUTATION_MODE. - * fold-const.c (fold): Likewise. - * tree.h (check_max_integer_computation_mode): Declare. - * tm.texi (MAX_INTEGER_COMPUTATION_MODE): Document it. - - * configure.in (nm): Make a link to "nm" in the build tree too. - - * mn10300.md (andsi3): Fix typo. - -Tue Jun 16 22:58:40 1998 Richard Henderson - - * reload1.c (reload_cse_regs): Call bzero instead of looping. - -Tue Jun 16 18:30:35 1998 Jim Wilson - - * dwarf2out.c (stripattributes): Prepend '*' to the section name. - -Tue Jun 16 16:49:26 1998 Richard Henderson - - * alpha.c (alpha_expand_prologue, alpha_expand_epilogue): New fns. - (output_prologue, output_epilogue): Merge VMS and OSF versions; - Remove anything related to the actual code generation. - (output_end_prologue): New function. - (alpha_sa_mask, alpha_sa_size): Merge VMS and OSF versions. - (alpha_does_function_need_gp): Return false for VMS. - (alpha_function_needs_gp): Make static. - (add_long_const): Delete. - (summarize_insn): Don't assume a SUBREG is of a REG. - Prototype all static functions. Rename VMS-specific global - variables vms_*. - * alpha.h (TARGET_CAN_FAULT_IN_PROLOGUE): Default to 0. - (FUNCTION_BOUNDARY): Align to cache line. - (LOOP_ALIGN, ALIGN_LABEL_AFTER_BARRIER): Align to octaword. - (FUNCTION_END_PROLOGUE): New macro. - * alpha.md (attribute length): New. Mark all insns. - (return_internal, prologue_stack_probe_loop): New patterns. - (prologue, init_fp, epilogue): New patterns. - Disable peepholes. - * linux.h (TARGET_CAN_FAULT_IN_PROLOGUE): Define. - -Tue Jun 16 17:36:35 1998 Dave Brolley - - * toplev.c (lang_options): Add -trigraphs option for cpplib. - -Tue Jun 16 23:33:24 1998 J"orn Rennecke - - * reload1.c (reload_reg_free_before_p): RELOAD_FOR_OUTADDR_ADDRESS - is earlier than RELOAD_FOR_OUTPUT_ADDRESS; RELOAD_FOR_INPADDR_ADDRESS - is earlier than RELOAD_FOR_INPUT_ADDRESS. - -Tue Jun 16 13:15:16 1998 Jim Wilson - - * libgcc1-test.c (memcpy): Define. - -Tue Jun 16 13:44:02 1998 Michael Meissner - - * genattrtab.c (struct attr_desc): Change int flags to bit - fields. Add bit fields for this being function_units_used - or *_blockage_range attributes. - (write_unit_name): New function to print a function unit name - given unit #. - (expand_units): Indicate whether this is function_units_used or - *_blockage_range attributes. - (write_toplevel_expr): Print function_units_used and - *_blockage_range attributes in a more friendly fashion. - (make_internal_attr): Indicate whether this attribute is either - function_units_used or *_blockage_range. - -Mon Jun 15 17:06:43 1998 Michael Meissner - Jim Wilson - - * regmove.c (copy_src_to_dest): Do not copy src to dest if either - the source or destination is special. - -Mon Jun 15 13:20:33 1998 Jim Wilson - - * c-decl.c (shadow_tag_warned): Use specs not declspecs in for loop. - -Mon Jun 15 07:16:29 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sat Jun 13 13:10:40 1998 Krister Walfridsson - - * config/sparc/netbsd.h (DEFAULT_PCC_STRUCT_RETURN): Undefine before - redefining it. - -Fri Jun 12 18:06:45 1998 Doug Evans - - * m32r/m32r.h (STARTFILE_SPEC): Delete crtsysc.o. - (ENDFILE_SPEC): Add -lgloss. - -Fri Jun 12 14:57:59 1998 Kaveh R. Ghazi - - * mips.c (small_int): Mark parameter `mode' with ATTRIBUTE_UNUSED. - (large_int): Likewise. - (pc_or_label_operand): Likewise. - (call_insn_operand): Likewise. - (consttable_operand): Likewise. - (m16_uimm3_b): Likewise. - (m16_simm4_1): Likewise. - (m16_nsimm4_1): Likewise. - (m16_simm5_1): Likewise. - (m16_nsimm5_1): Likewise. - (m16_uimm5_4): Likewise. - (m16_nuimm5_4): Likewise. - (m16_simm8_1): Likewise. - (m16_nsimm8_1): Likewise. - (m16_uimm8_1): Likewise. - (m16_nuimm8_1): Likewise. - (m16_uimm8_m1_1): Likewise. - (m16_uimm8_4): Likewise. - (m16_nuimm8_4): Likewise. - (m16_simm8_8): Likewise. - (m16_nsimm8_8): Likewise. - (m16_usym8_4): Likewise. - (m16_usym5_4): Likewise. - (mips_move_1word): Change type of variable `i' from int to size_t. - (mips_move_2words): Likewise. - (output_block_move): Mark parameter `libname' with ATTRIBUTE_UNUSED. - (function_arg_advance): Use HOST_PTR_PRINTF to print an address. - (function_arg): Likewise. - (function_arg_partial_nregs): Mark parameter `named' with - ATTRIBUTE_UNUSED. - (override_options): Use ISDIGIT instead of isdigit. - (mips_output_external): Mark parameter `file' with ATTRIBUTE_UNUSED. - (final_prescan_insn): Likewise for parameters `opvec' and `noperands'. - (save_restore_insns): Cast HOST_WIDE_INT arguments passed to - function `fatal' to long before printing. Use - HOST_WIDE_INT_PRINT_DEC in fprintf. Both changes done several - times in this function. - (function_prologue): Mark parameter `size' with ATTRIBUTE_UNUSED. - (function_epilogue): Likewise for parameters `file' and `size'. - Print an int with "%d" not "%ld". - (mips_select_rtx_section): Mark parameter `x' with ATTRIBUTE_UNUSED. - (mips_function_value): Likewise for parameter `func'. - (function_arg_pass_by_reference): Likewise for parameters `cum' - and `named'. - (extend_operator): Likewise for parameter `mode' - (highpart_shift_operator): Likewise. - - * mips.md (mul_acc_si): Remove unused variable `macc'. - -Fri Jun 12 09:33:44 1998 Richard Henderson - - * fold-const.c (fold): Revert last change. It breaks constant - expressions somehow. - -Fri Jun 12 10:23:36 1998 Andreas Schwab - - * expr.c (do_jump, case EQ_EXPR, NE_EXPR): When comparing complex - prevent operands from being evaluated twice. - -Fri Jun 12 00:50:27 1998 Sergey Okhapkin - - * toplev.c (lang_options): Add -remap as a preprocessor option. - -Fri Jun 12 00:30:32 1998 John Wehle (john@feith.com) - - * i386.md (cmpsi_1, cmphi_1, cmpqi_1): Remove code - which set CC_REVERSED since reload should ensure that - the operands are already the correct type. - -Thu Jun 11 17:14:15 1998 Jim Wilson - - * except.c (expand_builtin_eh_stub): Call emit_move_insn rather than - calling gen_rtx_SET. - -Thu Jun 11 18:45:49 1998 David Edelsohn - - * config/rs6000/x-aix43 (AR): Delete. - (AR_FOR_TARGET_FLAGS): Add -X32_64 here. - -Thu Jun 11 16:19:17 1998 David W. Schuler - - * config/i386/aix386ng.h (CPP_SPEC): Remove extraneous quote. - -Thu Jun 11 12:40:27 1998 Jim Wilson - - * mips.c (override_options): Replace word_mode with explicit - TARGET_64BIT check. - -Thu Jun 11 14:50:02 1998 Michael Meissner - - * regmove.c (regmove_optimize): If we can't replace the - destination in an insn that sets the source, generate an explicit - move of the source to the destination. - (copy_src_to_dest): New function. - (toplevel): Include basic-block.h. - - * Makefile.in (regmove.o): Add basic-block.h dependencies. - -Thu Jun 11 10:30:09 1998 Dave Brolley - - * toplev.c (lang_options): Add missing options (nostdinc, idirafter). - -Wed Jun 10 23:39:32 1998 Mark Mitchell - - * rtl.h (rtx_def): Improve documentation. - (MEM_IN_STRUCT_P): Likewise. - -Wed Jun 10 23:23:17 1998 Graham - - * c-decl.c (start_decl): Correct test for -Wmain. - - * c-decl.c (grokdeclarator): Remove unused variable "last". - -Wed Jun 10 14:52:27 1998 Jim Wilson - - * expr.c (expand_builtin_setjmp): Store const1_rtx in target. - (expand_builtin_longjmp): Abort if value isn't const1_rtx. - Delete code storing value in static_chain_rtx. - (expand_builtin, case BUILT_IN_LONGJMP): Pass NULL_RTX for target - to second expand_expr call. - -Wed Jun 10 13:08:41 1998 Mark Mitchell - - * mips/mips.c: Remove -mabi=o32 and -mabi=n64. - -Wed Jun 10 13:41:23 1998 Dave Brolley - - * cppmain.c (fatal): New function. - * configure.in (cpp_main): New configuration variable. - * configure: Regenerated. - * Makefile.in (CCCP): Use a configuration variable to select basex - for cccp. - (cppmain$(exeext)): Add @extra_cpp_objs@. - -Wed Jun 10 13:07:02 1998 Dave Brolley - - * objc/objc-act.c: Add cpplib declarations. - (lang_decode_option): Initialize cpplib if necessary. - (lang_decode_option): New argc/argv interface. - * tree.h (lang_decode_option): New argc/argv interface. - * toplev.c (lang_options): Add cpp options. - (main): New interface for lang_decode_option. - * gcc.c (default_compilers): Don't call cpp for a cpplib-enabled C compiler - unless -E, -M or -MM is specified. - * cpplib.h (cpp_handle_option): New function. - * cpplib.c (cpp_handle_option): New function. - (cpp_handle_options): Now calls cpp_handle_option. - * c-tree.h (c_decode_option): New argc/argv interface. - * c-lex.c (init_parse): cpplib now initialized in c_decode_option. - * c-lang.c (lang_decode_option): New argc/argv interface. - * c-decl.c: Add cpplib declarations. - (c_decode_option): New argc/argv interface. - (c_decode_option): Call cpp_handle_option. - (c_decode_option): Now returns number of strings processed. - -Wed Jun 10 09:47:13 1998 Richard Earnshaw (rearnsha@arm.com) - - * unroll.c (verify_addresses): Use validate_replace_rtx to undo the - changes. Abort if the undo fails. - -1998-06-10 Vladimir N. Makarov - - * config/rs6000/rs6000.c (output_prolog): Change locations and - directions of saving and restoring arguments of main on the stack. - -Wed Jun 10 08:56:27 1998 John Carr - - * reload1.c (reload_cse_simplify_operands): Do not call gen_rtx_REG - for each alternative. Do not replace a CONST_INT with a REG unless - the reg is cheaper. - -Wed Jun 10 02:11:55 1998 Jeffrey A Law (law@cygnus.com) - - * decl.c (init_decl_processing): Fix typo. - - * mips.c (gpr_mode): New variable. - (override_options): Initialize gpr_mode. - (compute_frame_size): Use "gpr_mode" instead of "word_mode" to - determine size and offset of general purpose registers save slots. - (save_restore_insns, mips_expand_prologue): Similarly. - - * reload.c (find_reloads_toplev): Use gen_lowpart common to convert - between constant representations when we have (SUBREG (REG)) with - REG equivalent to a constant. - -Wed Jun 10 01:39:00 1998 Juha Sarlin - - * h8300.c (get_shift_alg): Add special cases for shifts of 8 and 24. - -Tue Jun 9 22:05:34 1998 Richard Henderson - - * fold-const.c (fold): Even with otherwise constant trees, look for - opportunities to combine integer constants. - -Wed Jun 3 23:41:24 1998 John Wehle (john@feith.com) - - * i386.c (notice_update_cc): Clear cc_status.value2 in the - case of UNSPEC 5 (bsf). - - * i386.md (movsfcc, movdfcc, movxfcc): The floating point - conditional move instructions don't support signed integer - comparisons. - -Tue Jun 9 14:31:19 1998 Nick Clifton - - * config/v850/t-v850 (TCFLAGS): Add assembler options to warn of - overflows. - - * config/v850/lib1funcs.asm (__return_interrupt): Use 'addi - 16,sp,sp' ratehr than 'add 16,sp'. Patch courtesy of Biomedin - . - -Tue Jun 9 16:23:13 1998 Andrew MacLeod - - * except.c (expand_start_catch): Rename to start_catch_handler. - (expand_end_catch): Delete function. - (expand_end_all_catch): Remove catch status that expand_end_catch - use to do. - * except.h (expand_start_catch): Rename prototype. - (expand_end_catch): Delete prototype. - -Tue Jun 9 12:57:32 1998 Mark Mitchell - - * invoke.texi: Add documentation for -mips4 and -mabi=*. - -Tue Jun 9 12:12:34 1998 Klaus Kaempf (kkaempf@progis.de) - - * alpha/vms.h (EXTRA_SECTIONS): Add in_ctors and in_dtors. - (EXTRA_SECTION_FUNCTIONS): Add ctors_section and dtors_section. - (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Define. - -Tue Jun 9 12:10:27 1998 John Carr - - * haifa-sched.c (update_flow_info): Use UNITS_PER_WORD, not MOVE_MAX, - as the threshold to permit splitting memory operations. - -Tue Jun 9 12:36:16 1998 Jeffrey A Law (law@cygnus.com) - - * mips.c (gpr_mode): New variable. - (override_options): Initialize gpr_mode. - (compute_frame_size): Use "gpr_mode" instead of "word_mode" to - determine size and offset of general purpose registers save slots. - (save_restore_insns, mips_expand_prologue): Similarly. - - * Makefile.in (LIB2FUNCS_EH): Define. Just "_eh" for now. - (LIBGCC2_CFLAGS): Remove -fexceptions. - (LIB2FUNCS): Remove "_eh". - (libgcc2.a): Iterate over LIB2FUNCS_EH and build everything in - it with -fexceptions. - - * Makefile.in (local-alloc.o): Depend on insn-attr.h. - * local-alloc.c (block_alloc): Avoid creating false - dependencies for targets which use instruction scheduling. - -Tue Jun 9 02:40:49 1998 Richard Henderson - - * mips/elf.h (ASM_DECLARE_OBJECT_NAME): Define. - (ASM_FINISH_DECLARE_OBJECT): Define; - * mips/elf64.h: Likewise. - -Tue Jun 9 01:08:47 1998 Richard Henderson - - * toplev.c (flag_new_exceptions): Remove extraneous `extern'. - -Mon Jun 8 23:24:48 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Mon Jun 8 23:24:58 1998 David Edelsohn - - * rs6000.md (mulsidi3): Add !TARGET_POWERPC64 constraint. - (mulsidi3_ppc64): Delete. - -Mon Jun 8 20:57:40 1998 Kaveh R. Ghazi - - * Makefile.in (varasm.o): Depend on dbxout.h. - (cse.o): Depend on toplev.h and output.h. - (gcse.o): Depend on output.h. - - * mips.c: Include system.h and toplev.h and remove redundant code. - Include output.h after tree.h so all its prototypes get activated. - * mips.md (table_jump): Remove unused variable `dest'. - - * sparc.h: Add prototype for `v8plus_regcmp_op'. - - * crtstuff.c (fini_dummy, init_dummy): Mark function definitions - with __attribute__ ((__unused__)). - (__frame_dummy): Provide prototype before use, wrap it with - EH_FRAME_SECTION_ASM_OP. - - * cse.c: Move inclusion of above local headers. - Include toplev.h and output.h. - - * dbxout.h: Add prototype for `dbxout_begin_function'. - - * final.c (final_scan_insn): Wrap variable `max_skip' in macro - ASM_OUTPUT_MAX_SKIP_ALIGN. - - * gcse.c: Include system.h and output.h. - (dump_cuid_table, dump_rd_table, dump_cprop_data, dump_pre_data): - Make extern instead of static. - (compute_can_copy): Only declare variables `reg' and `insn' when - AVOID_CCMODE_COPIES is not defined. - (record_set_info): Mark parameter `setter' with ATTRIBUTE_UNUSED. - (hash_scan_clobber): Likewise for `x' and `insn'. - (hash_scan_call): Likewise. - (record_last_set_info): Likewise for `setter'. - (mark_call): Likewise for `pat'. - (pre_insert_insn): Wrap variable `note' in macro HAVE_cc0. - - * libgcc2.c (__bb_init_prg): Replace bzero with memset and fix the - length parameter so that it multiplies the number of elements by - the sizeof(element). - - * output.h: Add prototype for `weak_finish'. - - * recog.h: Likewise for `validate_replace_src'. - - * rtl.h: Likewise for `optimize_save_area_alloca', - `fix_sched_param', `purge_addressof', `gcse_main', - `regmove_optimize', `dbr_schedule', `branch_prob' and - `end_branch_prob'. - - * toplev.h: Likewise for `set_float_handler' and - `output_quoted_string'. - - * varasm.c: Include dbxout.h. - -Mon Jun 8 18:12:06 1998 Jim Wilson - - * mips.c (mips_secondary_reload_class): Use gp_reg_p instead of - GP_REG_P. Use gr_regs instead of GR_REGS. - -Mon Jun 8 16:54:12 1998 Ken Raeburn - Jeff Law - - * Revamped multiply support for MIPS chips. - * mips.c (extend_operator): New function. - (highpart_shift_operator): Likewise. - * mips.h: Declare new functions. - (PREDICATE_CODES): Add support for new predicates. - * mips.md (mulsi3 expander): Simplify. - (mulsi_mult3): Add another constraint alternative. Support - 3 operand multiply instructions as found on various mips - parts. - (mulsi3_r4650): Delete pattern, now handled by mulsi_mult3. - (mul_acc_si): New pattern and associated splitters. - (mulsidi3 expander): Rework to use mulsidi3_64bit and - mulsidi3_internal. - (umulsidi3): New expander. - (mulsidi3_internal): Accept either sign or zero extended - operands and generate code as appropriate appropriately. - (mulsidi3_64bit): Similarly. - (smulsi3_highpart): Turn into an expander and generate code - to match new patterns. - (umulsi3_highpart): Likewise. - (xmulsi3_highpart_internal): New pattern. - (maddi patterns): Delete. Replace with: - (mul_acc_di, mul-acc_64bit_di): New patterns. - -Mon Jun 8 14:16:15 1998 Andrew MacLeod - - * eh-common.h: Remove NEW_EH_MODEL compile time flag, and replace with - flag_new_exceptions runtime flag. - (struct old_exception_table): New struct which represents what - the exception table looks like without the new model. - (NEW_EH_RUNTIME): New value used as a tag in the exception table to - flag that this is a new style table. - * except.h: Remove compile time flag NEW_EH_MODEL. - (expand_builtin_eh_stub_old): New prototype. - * tree.h (enum built_in_function): Add BUILT_IN_EH_STUB_OLD. - * expr.c (expand_builtin): New builtin func BUILT_IN_EH_STUB_OLD. - * c-decl.c (init_decl_processing): Add new builtin function - __builtin_eh_stub_old. - * final.c (final_scan_insn): Replace compile time flag NEW_EH_MODEL. - * flags.h (flag_new_exceptions): New runtime flag. - * toplev.c (flag_new_exceptions): Initialize default to 0, - -fnew-exceptions sets to 1. - * except.c (output_exception_table_entry): Output New style exception - identifier into table, and replace compile time flag NEW_EH_MODEL - with runtime flag flag_new_exceptions. - (output_exception_table): Replace compile time flag NEW_EH_MODEL. - (expand_builtin_eh_stub_old): Duplicates original functionality of - expand_builtin_eh_stub. - (expand_builtin_eh_stub): Replace compile time flag NEW_EH_MODEL. - * libgcc2.c (find_exception_handler): Remove NEW_EH_MODEL #ifdefs. - (old_find_exception_handler): New func, same as find_exception_handler - except it works on the old style exception table. - (__throw): Replace NEW_EH_MODEL. Detect new model based on presence - of identifier in the exception table, and call appropriate routines. - -Mon Jun 8 01:21:13 1998 Jason Merrill - - * function.c: Define current_function_cannot_inline. - (push_function_context_to): Save it. - (pop_function_context_from): Restore it. - * function.h (struct function): Provide it a home. - * output.h: Declare it. - * integrate.c (function_cannot_inline_p): Check it. - -Mon Jun 8 10:43:15 1998 Richard Henderson - - * expr.c (force_operand): Detect PIC address loads before - splitting arithmetic. - -Mon Jun 8 09:22:38 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Mon Jun 8 02:55:56 1998 Graham - - * tree.c (tree_class_check): Add braces to eliminate ambiguous - else warning. - (tree_check): Likewise. - -Mon Jun 8 02:49:23 1998 H.J. Lu (hjl@gnu.org) - - * reg-stack.c (subst_stack_regs_pat): Make sure the top of - stack is the destination for conditional move insn. - -Mon Jun 8 01:21:13 1998 Jason Merrill - - * tree.h (TREE_VEC_END): Cast unused value to void. - - * i386.c (print_operand): Use %lx for long operand. - -Mon Jun 8 00:04:07 1998 Richard Henderson - - * alpha.c (summarize_insn): Ignore rtl slot format 'i'. - -Sun Jun 7 14:15:45 1998 John Carr - - * sol2.h (INIT_SUBTARGET_OPTABS): Use Solaris libc float/long long - conversion functions. - -Sun Jun 7 14:02:58 1998 Richard Henderson - - * toplev.c (flag_exceptions): Default to 0. - (compile_file): Remove flag_exceptions == 2 hack. - (main): Call lang_init_options. - * tree.h: Declare it. - * c-lang.c: Implement it. - * objc/objc-act.c: Likewise. - -Sun Jun 7 12:27:30 1998 David Edelsohn - - * rs6000.md (restore_stack_block): Generate MEM and specify mode. - * rs6000.h (STACK_SAVEAREA_MODE): SAVE_FUNCTION is VOIDmode. - * rs6000.c (rs6000_output_load_toc_table): Use fputs. - (output_function_profiler): Use asm_fprintf and fputs. - -Sat Jun 6 12:17:12 1998 Kaveh R. Ghazi - - * gencheck.c: Remove redundant stdio.h include. Add a definition - of xmalloc for when we are forced to link with alloca.o. - - * reload1.c (reload_reg_free_for_value_p): Use `(unsigned)1' - instead of `1U'. - - * fold-const.c (constant_boolean_node): Make definition static to - match the prototype. - -Fri Jun 5 15:53:17 1998 Per Bothner - - * gcc.c (lang_specific_pre_link): New LANG_SPECIFIC_DRIVER function. - (lang_specific_extra_outfiles): New LANG_SPECIFIC_DRIVER variable. - (do_spec, input_filename, input_filename_length): Make public. - (main): Adjust outfiles allocation by lang_specific_extra_outfiles. - Call lang_specific_pre_link befor elinking. - -Fri Jun 5 12:29:28 1998 Jeffrey A Law (law@cygnus.com) - - * haifa-sched.c (rank_for_schedule): For "equally good insns", prefer - the insn which has the most insns dependent on it. - -Fri Jun 5 09:03:22 1998 John Carr - - * alias.c (find_base_value): Avoid reading past end of reg_base_value. - -Fri Jun 5 03:05:34 1998 Richard Henderson - - * alpha.md (insxh-1): New insxl pattern for combine. - -Fri Jun 5 01:12:15 1998 H.J. Lu (hjl@gnu.org) - - * i386/i386.c (output_fp_conditional_move): New function - to output floating point conditional move. - (output_int_conditional_move): New function to output integer - conditional move. - - * i386/i386.md (movsicci+5, movhicc+5, movdicc+5): Call - output_int_conditional_move () to output int conditional move. - (movsfcc+5, movdfcc+5, movxfcc+5): Call - output_fp_conditional_move () to output floating point - conditional move. - - * i386/i386.c (put_condition_code): In INT mode, check - cc_prev_status.flags & CC_NO_OVERFLOW for GE and LT. - -Thu Jun 4 16:09:51 1998 Dave Brolley - - * dbxout.c (dbxout_type): Output arrays of bits as if - they were bitstrings for Chill - -Thu Jun 4 14:35:27 1998 David Edelsohn - - * tree.c (get_inner_array_type): New function. - * tree.h (get_inner_array_type): Prototype. - * expr.h (STACK_SAVEAREA_MODE): New macro. - * expr.c (expand_builtin_setjmp): Initialize sa_mode using - STACK_SAVEAREA_MODE. - (expand_builtin_longjmp): Likewise. - * explow.c (emit_stack_save): Likewise. - (allocate_dynamic_stack_space): Use Pmode not insn_operand_mode. - - * rs6000/aix41.h (ASM_CPU_SPEC): Define relative to ASM_DEFAULT_SPEC. - (CPP_CPU_SPEC): Define relative to CPU_DEFAULT_SPEC. - * rs6000/aix43.h: New file. - * rs6000/t-aix43: New file. - * rs6000/x-aix41: New file. - * rs6000/x-aix43: New file. - * configure.in (rs6000-ibm-aix*): Use them. - * rs6000/powerpc.h: Delete. - * rs6000/sysv4.h: Move necessary powerpc.h definitions to here, - * rs6000/netware.h: and here, - * rs6000/win-nt.h: and here. - - * rs6000/rs6000.c (processor_target_table, 620): Do not affect - MASK_POWERPC64. - (rs6000_override_options): Ignore flag_pic for AIX. - (rs6000_immed_double_const): Delete. - (u_short_cint_operand): Don't assume 32-bit CONST_INT. - (reg_or_u_short_operand): Don't assume 32-bit CONST_INT. - (num_insns_constant): mask64_operand() is 2 insns. - (logical_operand): Don't assume 32-bit CONST_INT. - (non_logical_cint_operand): Don't assume 32-bit CONST_INT. - (easy_fp_constant): Any CONST_DOUBLE_HIGH is okay for 64-bit. - (mask_constant): HOST_WIDE_INT parameter. - (non_and_cint_operand): Delete. - (mask64_operand): New function. - (and64_operand): New function. - (function_arg_advance): DImode arguments do not need special - alignment when 64-bit. - (function_arg): Likewise. - (setup_incoming_varargs): Reverse reg_size assignment. - (print_operand): HOST_WIDE_INT second parameter. - (print_operand, 'B'): New case. - (print_operand, 'M'): Fix typo in lossage string. - (print_operandm 'S'): New case. - (rs6000_stack_info): Reverse reg_size assignment. Use total_raw_size - to compute AIX push_p. Use reg_size to compute {cr,lr}_save_offset. - (rs6000_output_load_toc_table): Reverse init_ptr assignment. Use - TARGET_64BIT not TARGET_POWERPC64. Convert fprintf to fputs. - Load GOT highpart, don't add it. Add lowpart with {cal|la}. - (rs6000_allocate_stack_space): Use {cal|la}. - (output_epilog): Use {cal|la} - (output_function_profiler): Add call glue to mcount call. - Load GOT highpart, don't add it. Add lowpart with {cal|la}. - - * rs6000/rs6000.h (TARGET_SWITCHES): Add powerpc64. - (STACK_BOUNDARY): Depend on TARGET_32BIT. - (ADJUST_FIELD_ALIGN): Calculate array alignment using innermost type. - (CONST_OK_FOR_LETTER_P): Don't assume 32-bit CONST_INT. - (EXTRA_CONSTRAINTS): Remove NT 'S' and 'T'. Replace 'S' with - 64-bit mask operand. - (RS6000_SAVE_TOC): Depend on TARGET_32BIT. - (STACK_SAVEAREA_MODE): New macro. - (LEGITIMATE_CONSTANT_P): DImode okay for 64bit. - (LEGITIMIZE_RELOAD_ADDRESS): New macro. - (RTX_COSTS, AND/IOR/XOR): Reflect current machine description. - (ASM_FILE_START): Emit 64-bit ABI directive. - (ASM_DECLARE_FUNCTION_NAME): Align CSECT on doubleword in 64-bit mode. - (ASM_OUTPUT_SPECIAL_POOL_ENTRY): DImode okay for 64-bit. - (PREDICATE_CODES): Add "and64_operand" and "mask64_operand". - Delete "non_and_cint_operand". "input_operand" includes CONST_DOUBLE. - - * rs6000/rs6000.md (iorsi3, xorsi3): Use HOST_WIDE_INT for mask. - Restore define_splits. - (floatsidf2, floatunssidf2): Remove !TARGET_POWERPC64 final constraint. - (floatsidf2_internal, floatunssidf2_internal2): Likewise. - Do not specify base register operand mode. - (floatsidf2_loadaddr): Do not specify base register operand mode. - (floatsidf2_store1, floatsidf2_store2): Operand 1 must be base - register; do not specify mode. Remove !TARGET_POWERPC64 final - constraint. - (floatsidf2_load): Do not specify base register operand mode. Remove - !TARGET_POWERPC64 final constraint. - (fix_truncdfsi2_internal, fix_truncdfsi2_{store,load}): Do not specify - base register operand mode. - (adddi3): Split large constants early. - (absdi3): Shift by 63, not 31. - (*mulsidi3_ppc64): New pattern. - (rotldi3): Add masking combiner patterns. - (anddi3): Add rldic{r,l} masking. Remove split of large constants - because PPC insns zero-extend. - (iordi3, xordi3): Split large constants early. - (movsi matcher): Remove S and T constraints. - (movsf const_double): Create SImode constant from TARGET_DOUBLE. - (movdf_hardfloat32): Add default abort() case. - (movdf easy_fp_const): Create DImode constant from TARGET_DOUBLE. - (movdi): Remove 64-bit constant generator. Try to convert - CONST_DOUBLE to CONST_INT. Handle TOC memory constants. - (movdi_32): Add default abort() case. - (movdi_64): Add numerous ways to split 64-bit constants. - Make catch-all define_split more optimal and never FAIL. - (movti_ppc64): Add default abort() case. - (allocate_stack): Remove operand modes. Use Pmode. - (restore_stack_block): Remove operand modes. Generate Pmode - temporary. - (save_stack_nonlocal, restore_stack_nonlocal): Generate Pmode - temporary. Save area is double Pmode. - (call_indirect_aix64, call_value_indirect_aix64): New patterns. - (call, call_value): Do not specify address operand mode. Choose - appropriate AIX ABI. - (*call_local64, *ret_call_local64): New patterns. - (*call_nonlocal_aix64, *ret_call_nonlocal_aix64): New patterns. - (*ret_call_nonlocal_aix32): Use call_value_indirect for REG. - (compare): Materialize DImode truthvalues. - -Thu Jun 4 01:26:57 1998 Craig Burley - - * expr.c (safe_from_p): Avoid combinatorial explosion - over duplicate SAVE_EXPRs by ensuring we never recurse - on one that has already been visited. - -Thu Jun 4 00:54:21 1998 Graham - - * loop.c (check_dbra_loop): Initialize final_value before - normalizing the loop. - -Wed Jun 3 20:00:04 1998 J"orn Rennecke - - * reload1.c (reload_reg_free_for_value_p): New arguments out and - reloadnum. Changed all callers. - -1998-06-03 Ulrich Drepper - - * system.h: Add _() and N_() macros in preparation for gettext. - -Wed Jun 3 11:02:24 1998 Andreas Schwab - - * c-common.c (check_format_info): Put back check for C9x `hh' - length modifier. Warn about %n format writing into const. Remove - obsolete comment. - (format_char_info): Fix comments. - - * configure.in: Set float_format to m68k for all m68k targets that - do not override LONG_DOUBLE_TYPE_SIZE. - * config/float-m68k.h: New file. - -Tue Jun 2 23:14:01 1998 Richard Henderson - - * jump.c (jump_optimize): Remove debug messages accidentally left in - with the previous change. - -Tue Jun 2 22:46:08 1998 Richard Henderson - - * expr.c (store_expr): Revert stray patch associated with - 1998-05-23 commit. - -Tue Jun 2 21:59:01 1998 Richard Henderson - - * jump.c (rtx_unsafe_p): New function. - (jump_optimize): Use it on if/then/else transformations and - conditional move transformations. - -Tue Jun 2 22:50:10 1998 Andreas Schwab - - * fold-const.c (fold, case EQ_EXPR): When folding VAR++ == CONST - or VAR-- == CONST construct a proper mask if VAR is a bitfield. - Cope with CONST being out of range for the bitfield. - -Tue Jun 2 22:28:31 1998 Bernd Schmidt - - * expr.c (emit_move_insn_1): When moving complex values in several - steps, emit a CLOBBER to show the destination dies. - -Tue Jun 2 22:17:26 1998 Jeffrey A Law (law@cygnus.com) - - * Makefile.in (site.exp): Use the object testsuite directory as - the temporary directory. - - * expr.c (expand_expr, case ADDR_EXPR): Handle taking the - address of an ADDRESSOF rtx. - -1998-06-02 Mike Stump - - * expr.c (expand_builtin_setjmp): Handle BUILTIN_SETJMP_FRAME_VALUE. - * i960.h (SETUP_FRAME_ADDRESSES, BUILTIN_SETJMP_FRAME_VALUE): Define. - * i960.md (ret, flush_register_windows): Define. - (nonlocal_goto): Likewise. Nested function nonlocal gotos don't - work yet. - * tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Document new macro. - -Tue Jun 2 14:02:38 1998 Richard Henderson - - * alpha.md (divsi3, udivsi3, modsi3, umodsi3): Enable, and work - around an OSF/1 library bug wrt sign-extension of inputs. - -Tue Jun 2 13:02:44 1998 Richard Henderson - - * vax/netbsd.h (DWARF2_UNWIND_INFO): Must be undef, not defined 0. - -Mon Jun 1 03:44:03 1998 Catherine Moore - - * config/sh/sh.h (MAX_OFILE_ALIGNMENT): Define. - - * varasm.c (assemble_variable): Augment alignment warning. - -Mon Jun 1 12:14:28 1998 Michael Meissner - - * config/fp-bit.c (_fp{add,div}_parts): Return correct IEEE result - in the presence of IEEE negative 0's. - -Sun May 31 16:11:41 1998 John Wehle (john@feith.com) - - * reload.c (find_reloads): Record the existing mode if - operand_mode == VOIDmode before replacing a register with - a constant. - * i386.md (tstsi, tsthi, tstqi, tstsf, tstdf, tstxf): Set - i386_compare_op1 to const0_rtx for the benefit of the - conditional move patterns. - (movsicc, movhicc, movsfcc, movdfcc, movxfcc, movdicc): Rewrite - based on suggestions from Jim Wilson. - -Sun May 31 00:44:02 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sun May 31 00:34:17 1998 Bruce Korb - - * Makefile.in (fixinc.sh): Update rules again. - -Sun May 31 00:27:47 1998 Jeffrey A Law (law@cygnus.com) - - * extend.texi: Bring back reference to trampoline paper. - -Sun May 31 00:22:34 1998 Ulrich Drepper - - * Makefile.in (USER_H): Add stdbool.h. - * ginclude/stdbool.h: New file. - -Fri May 29 01:48:25 1998 Jeffrey A Law (law@cygnus.com) - - * jump.c (thread_jumps): Do not look at the NOTE_LINE_NUMBER - of a non-note insn. - - * gcse.c (pre_delete): Fix code to determine the mode of - the reaching pseudo register. - -Fri May 29 01:07:28 1998 Bernd Schmidt - - * Makefile.in (GEN): Add gencheck. - (STAGESTUFF): Add tree-check.h and gencheck. - -Fri May 29 00:57:37 1998 Bruce Korb - - * Makefile.in (cstamp-h.in): Remove before trying to recreate. - (fixinc.sh): Set some additional environment variables before - calling mkfixinc.sh. - -Thu May 28 12:57:05 1998 Jeffrey A Law (law@cygnus.com) - - * reload.c (find_reloads): Do not force a reloads of match_operators. - -Thu May 28 10:22:22 1998 Andrew MacLeod - - * except.h (remove_handler): Add new prototype. - * except.c (remove_handler): New function to remove handlers - from an exception region. - * flow.c (find_basic_blocks_1): Remove handlers from regions when - handler label is deleted; remove exception regions with no handlers. - -Thu May 28 09:36:39 1998 Michael Meissner - - * except.h (rtx): Define rtx type correctly if needed. - * function.h (rtx): Likewise. - (tree): Define tree type correctly if needed. - - * c-pragma.c (toplevel): Include rtl.h. - - * stor-layout.c (toplevel): Move include of rtl.h before - except.h. - - * Makefile.in (c-pragma.o): Add except.h, rtl.h dependencies. - (tree.o): Add except.h dependency. - -Wed May 27 22:02:40 1998 Jeffrey A Law (law@cygnus.com) - - * reload1.c: Revert accidental checkin. - - * configure.lang: Fix thinko when adding a definition for - target_alias to the Makefile. - -Wed May 27 02:50:00 1998 Catherine Moore (clm@cygnus.com) - - * config/sparc/lb1spc.asm (.rem and .urem): Replace - routines. - -Wed May 27 02:48:31 1998 Richard Earnshaw (rearnsha@arm.com) - - * arm.c (arm_gen_constant): Rework to eliminate uninitialized - variable warnings. Don't generate scratch registers if only - counting insns. - (find_barrier): Eliminate unused variable SRC. - -1998-05-27 Manfred Hollstein - - * toplev.h (rtx_def): Provide global declaration to avoid - `limited scope' warnings. - -Tue May 26 23:47:52 1998 Mumit Khan - - * Makefile.in (gencheck.o): Use HOST_CC. - * i386/t-mingw32: New file. - * configure.in (i386-*-mingw32*): Use. - -Tue May 26 07:31:04 1998 Richard Earnshaw (rearnsha@arm.com) - - * arm.c (bad_signed_byte_operand): New predicate function. - * arm.h (PREDICATE_CODES): Add it to the list. - * arm.md (*extendqi[sh]i_insn): Split any addresses that ldrsb - can't handle. - (define_split): Two new splits for above insns. - - * arm.c: Include toplev.h. - (arm_override_options): Add parentheses around use of tune_flags. - (arm_split_constant): Remove unused variable. - (arm_gen_constant, arm_gen_movstrqi, add_constant): Likewise. - (output_func_prologue, arm_expand_prologue): Likewise. - (arm_canonicalize_comparison): Make I unsigned; rework constants - accordingly. Add missing parentheses around << operation. - (arm_rtx_costs): Correctly parenthesize MULT costs. Add a DEFAULT - clause. - ({load,store}_multiple_sequence): Initialize BASE_REG. - (select_dominance_cc_mode): Add DEFAULT clauses. - (broken_move): Return zero if the destination is not a register. - (arm_reorg): Move unused REGNO declaration into the dead code. - * arm.h (CANONICALIZE_COMPARISON): Ensure OP1 is updated. - -Mon May 25 22:49:56 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Mon May 25 11:56:24 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Mon May 25 14:00:13 1998 Dave Brolley - - * cpperror.c (v_cpp_message): Remove static prototype. - * cpplib.c (v_cpp_message): Move prototype to cpplib.h. - * cpplib.h (v_cpp_message): Add protoptype. - (stdarg.h,varargs.h): Needed for v_cpp_message prototype. - -Sun May 24 20:36:15 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sun May 24 02:08:57 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -1998-05-24 Andreas Schwab - - * m68k.h: Declare more functions used in macros. - (REG_CLASS_CONTENTS): Completely embrace initializer. - * m68k.md (adddi3, subdi3): Add abort call to avoid warning - about returning no value. - * cse.c (find_best_addr): Declare p and found_better only if - needed. - * dbxout.c (dbxout_continue): Define only if DBX_CONTIN_LENGTH > 0. - * dwarfout.c (string_length_attribute): #if 0 away. - * function.c (expand_function_end): Define varible blktramp only - if needed. - * jump.c (find_insert_position): Define only if !HAVE_cc0. - * loop.c (combine_givs_p): Define variable tem only if needed. - * real.c: Comment out unused functions eabs, eround, - e{24,53,64,113}toasc and eiinfin. - -Sat May 23 23:44:53 1998 Alexandre Oliva - - * Makefile.in (boostrap2-lean, bootstrap3-lean, - bootstrap4-lean): New targets. - -Sat May 23 23:35:14 1998 Jeffrey A Law (law@cygnus.com) - - * warn_summary, test_summary: Moved into the contrib directory. - -1998-05-23 Manfred Hollstein - - * Makefile.in (ENQUIRE_CFLAGS, ENQUIRE_LDFLAGS): Move down to the end - of the Makefile. - (FLOAT_H_TEST): Likewise. - (ENQUIRE): Likewise. - (float.h-nat): Likewise. - (float.h-cross): Likewise. - (enquire): Likewise. - (enquire.o): Likewise. - (stmp-int-hdrs): Fix comment about enquire; depend upon gfloat.h. - (stmp-headers): Move actions to stmp-int-hdrs, retaining only a - no-op. - (FLOAT_H): Remove old float.h-nat version; move current definition - to CROSS_FLOAT_H location. - (all.cross): Remove comments about enquire stuff. - - * Makefile.in (all.cross): Swap $(LIBGCC) and $(STMP_FIXPROTO). - (rest.encap): Likewise. - (libgcc2.ready): Depend upon $(STMP_FIXPROTO) - - * toplev.h (tree_node): Provide global declaration to avoid - `limited scope' warnings. - -Sat May 23 23:23:35 1998 Robert Lipe - - * test_summary: Display section breaks for each entry - in a multilibbed target's output. - -1998-05-23 Richard Henderson - - * expr.c (expand_expr): For {BITFIELD,COMPONENT,ARRAY}_REF, if the - offset's mode is not ptr_mode, convert it. - -1998-05-22 Jason Merrill - - * fold-const.c (ssize_binop): New fn. - * tree.h: Declare it. - -Fri May 22 03:42:05 1998 Richard Earnshaw (rearnsha@arm.com) - - * genextract.c (print_path): Handle zero-length path as a special - case. - -Fri May 22 01:38:07 1998 Hans-Peter Nilsson - - * cplus-dem.c (MBUF_SIZE): Bumped from 512 to 32767. - -Fri May 22 00:57:00 1998 Bernd Schmidt (crux@pool.informatik.rwth-aachen.de> - - * final.c (JUMP_TABLES_IN_TEXT_SECTION): Provide a default value. - (shorten_branches, final_scan_insn): Test value of - JUMP_TABLES_IN_TEXT_SECTION instead of just testing whether it - is defined. - * tm.texi (JUMP_TABLES_IN_TEXT_SECTION): Corresponding changes. - * arm/coff.h: Define JUMP_TABLES_IN_TEXT_SECTION to 1. - * arm/tcoff.h: Likewise. - * i386/386bsd.h: Likewise. - * i386/freebsd-elf.h: Likewise. - * i386/freebsd.h: Likewise. - * i386/netbsd.h: Likewise. - * i386/ptx4-i.h: Likewise. - * i386/sysv4.h: Likewise. - * pa/pa.h: Likewise. - * rs6000/linux.h: Likewise. - * rs6000/rs6000.h: Likewise. - * sh/sh.h: Likewise. - * sparc/sp64-elf.h: Likewise. - * v850/v850.h: Likewise. - * rs6000/sysv4.h: Define JUMP_TABLES_IN_TEXT_SECTION to 0. - * i386/linux.h: Define JUMP_TABLES_IN_TEXT_SECTION to (flag_pic). - -Thu May 21 19:50:13 1998 J"orn Rennecke - - * regmove.c (gen_add3_insn): New function. - (fixup_match_2): Use it instead of calling gen_addsi3. - -Thu May 21 23:09:50 1998 Jeffrey A Law (law@cygnus.com) - - * Makefile.in (gencheck): Depend on HOST_LIBDEPS. - - * alias.c (rtx_equal_for_memref_p): Handle SCRATCH as a memory - address. - -Thu May 21 20:18:13 1998 Martin von Loewis - - * Makefile.in (TREE_H): Add tree-check.h. - (tree-check.h, gencheck): New targets. - * gencheck.c: New file. - * tree.c (tree_check, tree_class_check): New functions. - * tree.h (TREE_CHECK, TREE_CLASS_CHECK): Define. - (TYPE_CHECK, DECL_CHECK): Define. - Modify all access macros to use generated checking macros. - -Wed May 20 23:44:28 1998 John Wehle (john@feith.com) - - * acconfig.h (HAVE_GAS_MAX_SKIP_P2ALIGN): New tag. - * configure.in: Check for it. - * i386/gas.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Use it. - * final.c (uid_align, uid_shuid, label_align): Make static. - (label_align): Change type to struct label_alignment pointer. - (LABEL_TO_ALIGNMENT, shorten_branches): Update due to type change. - (LABEL_TO_MAX_SKIP): Define. - (LABEL_ALIGN_MAX_SKIP, LOOP_ALIGN_MAX_SKIP, - LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Provide defaults. - (shorten_branches): Record the maximum bytes to skip when - aligning a label. - (final_scan_insn): Use the maximum bytes to skip when aligning a label - if ASM_OUTPUT_MAX_SKIP_ALIGN is available. - * i386.h (LOOP_ALIGN_MAX_SKIP, - LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define. - * i386.c (override_options): i386_align_jumps and i386_align_loops - default to 4 if ASM_OUTPUT_MAX_SKIP_ALIGN is available. - * invoke.texi: Document new i386 align-loops and align-jumps behavior. - -1998-05-21 Mark Mitchell - - * cplus-dem.c (do_type): Handle volatile qualification. - -Thu May 21 12:23:17 1998 Per Bothner - - * function.c (init_function_start): Don't call emit_line_note if - lineno is 0. (Can happen when compiling Java .class files.) - -Thu May 21 19:50:13 1998 J"orn Rennecke - - * reload1.c (reload_reg_free_for_value_p): Fix RELOAD_FOR_INPUT - end of lifetime and RELOAD_FOR_OUTPUT start of lifetime. - -Thu May 21 19:32:27 1998 J"orn Rennecke - - * combine.c (nonzero_bits): For paradoxical subregs, take - LOAD_EXTENDED_OP into account. - -Thu May 21 11:51:15 1998 Dave Brolley - - * configure.in (extra_c_objs): Add prefix.o. - (extra_cxx_objs): Extra objects for C++ with cpplib. - * configure: Regenerate. - - * c-tree.h (get_directive_line): Different prototype for cpplib. - (GET_DIRECTIVE_LINE): Macro wrapper for get_directive_line. - - * c-lex.h (get_directive_line): Not needed here for cpplib. - - * c-lex.c (yy_cur,yy_lim,yy_get_token): Move to c-common.c. - (GET_DIRECTIVE_LINE): Move to c-common.c and rename to get_directive_line. - - * c-common.c (parse_in,parse_options,cpp_token): Declare for cpplib. - (yy_cur,yy_lim,yy_get_token,get_directive,line): Moved here from c-lex.c - -Thu May 21 09:04:42 1998 Kaveh R. Ghazi - - * gengenrtl.c (type_from_format, accessor_from_format): Change - type of parameter `c' from `char' to `int'. - -Wed May 20 22:28:34 1998 Jeffrey A Law (law@cygnus.com) - - * warn_summary, test_summary: New scripts from - Kaveh Ghazi and Alexandre Oliva respectively. - - * gcse.c (current_function_calls_longjmp): Declare. - -1998-05-20 Jason Merrill - - * dwarf2out.c (base_type_die): Use int_size_in_bytes. - -Wed May 20 01:11:02 1998 Doug Evans (devans@cygnus.com) - Jeff Law (law@cygnus.com) - - * Global CSE and constant/copy propagation. - * Makefile.in (OBJS): Add gcse.o. - (STAGESTUFF): Add *.gcse. - (gcse.o): Add dependencies. - (mostlyclean): Remove *.gcse and */*.gcse. - * gcse.c: New file. - * loop.c (loop_optimize): Move call to init_alias_analysis. - * recog.c (validate_replace_src): New function. - * toplev.c (gcse_dump): New global variable. - (flag_gcse, gcse_time): Likewise. - (compile_file): Initialize gcse_time and clean out the gcse dump - file if necessary. - (rest_of_compilation): Call gcse_main as requested. Dump RTL - after gcse if requested. - (main): Enable gcse for -O2 and above. Handle -dG. Enable gcse - dumps for -da. - * gcc.texi: Add gcse related internal documentation. - * invoke.texi: Note new command line options for gcse. - * tm.texi: Document AVOID_CCMODE_COPIES. - * mips.h (AVOID_CCMODE_COPIES): Define. - -Tue May 19 22:31:20 1998 Jeffrey A Law (law@cygnus.com) - - * Makefile.in (deduced.h): Only run scan-types if $(SYSTEM_HEADER_DIR) - exists. - (stmp-fixproto): Simlarly for running fixproto. - * cross-make (SYSTEM_HEADER_DIR): Now $(tooldir)/sys-include. - -Tue May 19 19:08:52 1998 Jim Wilson - - * config/mips/mips.c (double_memory_operand): Accept any MEM during - reload when TARGET_64BIT. - -Tue May 19 18:21:25 1998 Jim Wilson - - Finish incomplete change started by Kenner. - * configure.in (*-*-linux-gnu*): Delete NO_STAB_H from xm_defines. - (powerpcle-*-cygwin32): Delete xm_defines. - * final.c, mips-tfile.c, xcoffout.c, config/mips/mips.c: Use - HAVE_STAB_H instead of NO_STAB_H. - * config/xm-linux.h (NO_STAB_H): Delete. - (HAVE_STAB_H): Undefine. - * config/i386/xm-go32.h (NO_STAB_H): Delete. - -1998-05-19 Jim Wilson - - * dwarfout.c (dwarfout_file_scope_decl, case TYPE_DECL): Ignore - LANG_TYPE trees with DECL_SOURCE_LINE of 0. - -Tue May 19 15:07:54 1998 Todd Vierling - - * arm/netbsd.h: Ensure DWARF2_UNWIND_INFO is undefined. - -Tue May 19 17:19:16 1998 J"orn Rennecke - - * reload1.c (reload_reg_free_for_value_p): New function. - (allocate_reload_reg, choose_reload_regs): Use it. - -Tue May 19 11:51:00 1998 Andrew MacLeod (amacleod@cygnus.com) - - * except.c (expand_start_catch): Correct logic for when to - generate a new handler label, and when to use the old one. - -Tue May 19 11:08:52 1998 Kaveh R. Ghazi - - * Makefile.in (print-rtl.o): Depend on bitmap.h. - (dbxout.o): Depend on toplev.h. - ($(SCHED_PREFIX)sched.o): Likewise. - ($(out_object_file)): Likewise for system.h and toplev.h. - (cppmain.o): Depend on gansidecl.h. - (cpplib.o): Likewise. - (cpperror.o): Likewise. - (cppexp.o): Likewise. - (cpphash.o): Likewise. - (cppalloc.o): Likewise. - (fix-header.o): Depend on cpplib.h and cpphash.h. - (scan-decls.o): Depend on gansidecl.h. - - * basic-block.h (free_regset_vector): Add prototype. - - * cccp.c (check_precompiled): Mark parameter `fname' with - ATTRIBUTE_UNUSED. - (do_assert): Likewise for `op' and `keyword'. - (do_unassert): Likewise. - (do_line): Likewise for `keyword'. - (do_error): Likewise for `op' and `keyword'. - (do_warning): Likewise. - (do_ident): Likewise for `keyword'. - (do_pragma): Likewise for `limit', `op' and `keyword'. - (do_sccs): Likewise. - (do_if): Likewise for `keyword'. - (do_elif): Likewise. - (do_else): Likewise. - (do_endif): Likewise. - - * collect2.c (getenv): Remove redundant prototype. - (collect_exit, collect_execute, dump_file): Likewise. - (dump_list): Wrap prototype and definition in COLLECT_EXPORT_LIST. - (dump_prefix_list): Hide prototype and definition. - - * sparc.c: Include toplev.h. - (intreg_operand): Mark parameter `mode' with ATTRIBUTE_UNUSED. - (symbolic_memory_operand): Likewise. - (sp64_medium_pic_operand): Likewise. - (data_segment_operand): Likewise. - (text_segment_operand): Likewise. - (splittable_symbolic_memory_operand): Likewise. - (splittable_immediate_memory_operand): Likewise. - (eq_or_neq): Likewise. - (normal_comp_operator): Likewise. - (noov_compare_op): Likewise. - (v9_regcmp_op): Likewise. - (v8plus_regcmp_op): Likewise. - (extend_op): Likewise. - (cc_arithop): Likewise. - (cc_arithopn): Likewise. - (small_int): Likewise. - (uns_small_int): Likewise. - (clobbered_register): Likewise. - (legitimize_pic_address): Likewise. - (delay_operand): Likewise. - (sparc_builtin_saveregs): Remove unused variable `stdarg'. - - * sparc.h (order_regs_for_local_alloc, eligible_for_return_delay, - sparc_issue_rate, v8plus_regcmp_p): Add prototypes. - - * sparc.md (cmpdi_v8plus): Add abort for default case in switch. - - * cppalloc.c: Include gansidecl.h. - - * cpperror.c: Include stdarg.h/varargs.h and gansidecl.h. - (cpp_file_line_for_message): Mark parameter `pfile' with - ATTRIBUTE_UNUSED. - (v_cpp_message): New function. - (cpp_message): Use it. Also convert to variable arguments. - (cpp_fatal): Likewise. - (cpp_pfatal_with_name): Constify parameter `name'. - - * cppexp.c: Move gansidecl.h before cpplib.h. - * cpphash.c: Likewise. - * cpphash.h (hashf, delete_macro): Add prototypes. - - * cpplib.c: Include stdarg.h/varargs.h and move gansidecl.h before - cpplib.h. Don't include errno.h. - (update_path): Add arguments to prototype. - (cpp_fatal, cpp_file_line_for_message, cpp_message, delete_macro, - cpp_print_containing_files): Remove redundant prototypes. - (cpp_hash_cleanup, add_import, append_include_chain, - make_assertion, path_include, initialize_builtins, - initialize_char_syntax, finclude, validate_else, comp_def_part, - lookup_import, redundant_include_p, is_system_include, - read_name_map, read_filename_string, open_include_file, - check_macro_name, compare_defs, compare_token_lists, - eval_if_expression, change_newlines): Add prototype arguments. - (hashf): Remove redundant prototype. - (read_token_list, free_token_list, safe_read, xcalloc, savestring, - conditional_skip, skip_if_group): Add prototype arguments. - (fdopen): Remove redundant prototype. - (do_define, do_line, do_include, do_undef, do_error, do_pragma, - do_ident, do_if, do_xifdef, do_else, do_elif, do_endif, do_sccs, - do_once, do_assert, do_unassert, do_warning): Add prototype arguments. - (struct directive): Add prototype arguments to function pointer - member `func'. - (handle_directive): Add missing arguments to call to `do_line'. - (do_include): Mark parameters `unused1' and `unused2' with - ATTRIBUTE_UNUSED. - (do_line): Likewise for `keyword' and new parameters `unused1' and - `unused2'. - (do_error): Likewise for `keyword'. - (do_warning): Likewise. Also add missing argument `pfile' in call - to cpp_pedwarn. - (do_once): Mark parameter `keyword', `unused1' and `unused2' with - ATTRIBUTE_UNUSED. - (do_ident): Likewise for `keyword', `buf' and `limit'. - (do_pragma): Likewise. Also add missing arguments in call to do_once. - (do_sccs): Mark parameter `keyword', `buf' and `limit' with - ATTRIBUTE_UNUSED. - (do_if): Likewise for `keyword'. - (do_elif): Likewise. - (eval_if_expression): Likewise for `buf' and `length'. - (do_xifdef): Likewise for `unused1' and `unused2'. - (do_else): Likewise for `keyword', `buf' and `limit'. - (do_endif): Likewise. - (parse_name): Add missing argument `pfile' in call to cpp_pedwarn. - (cpp_handle_options): Remove superfluous NULL argument in call to - cpp_fatal. - (cpp_handle_options): Likewise. - (do_assert): Mark parameter `keyword', `buf' and `limit' with - ATTRIBUTE_UNUSED. - (do_unassert): Likewise. - (cpp_print_file_and_line): Add missing argument `pfile' in call to - cpp_file_line_for_message. - (v_cpp_error): New function. - (cpp_error): Use it. Also accept variable arguments. - (v_cpp_warning): New function. - (cpp_warning): Use it. Also accept variable arguments. - (cpp_pedwarn): Accept variable arguments. - (v_cpp_error_with_line): New function. - (cpp_error_with_line): Use it. Accept variable arguments. - (v_cpp_warning_with_line): New function. - (cpp_warning_with_line): Use it. Accept variable arguments. Hide - definition. - (cpp_pedwarn_with_line): Accept variable arguments. - (cpp_pedwarn_with_file_and_line): Likewise. - (cpp_error_from_errno): Constify parameter `name'. Add missing - argument `pfile' in call to cpp_file_line_for_message. - (cpp_perror_with_name): Constify parameter `name'. - - * cpplib.h: Define PARAMS() in terms of PROTO(). - (fatal): Remove redundant prototype. - (cpp_error, cpp_warning, cpp_pedwarn, cpp_error_with_line, - cpp_pedwarn_with_line, cpp_pedwarn_with_file_and_line, - cpp_error_from_errno, cpp_perror_with_name, cpp_pfatal_with_name, - cpp_fatal, cpp_message, cpp_pfatal_with_name, - cpp_file_line_for_message, cpp_print_containing_files): Add - arguments to prototypes. - (scan_decls, cpp_finish): Add prototypes. - - * cppmain.c: Include gansidecl.h. - (main): Remove unused variable `i'. - - * dbxout.c: Include toplev.h. - - * demangle.h (do_tlink, collect_execute, collect_exit, - collect_wait, dump_file, file_exists): Add prototype. - - * dwarf2out.c (dwarf_type_encoding_name, decl_start_label): Hide - prototype and definition. - (gen_unspecified_parameters_die): Don't assign results of call to - function new_die() to unused variable `parm_die'. - (dwarf2out_line): Mark parameter `filename' with ATTRIBUTE_UNUSED. - (dwarf2out_define): Likewise for `lineno' and `buffer'. - - * dwarfout.c (output_unsigned_leb128, output_signed_leb128): Hide - prototype and definition. - (output_die): Add prototype arguments to function pointer arg. - (output_unspecified_parameters_die): Mark parameter `arg' with - ATTRIBUTE_UNUSED. - - * except.c (output_exception_table_entry): Remove unused variable - `eh_entry'. - - * except.h (expand_fixup_region_start, expand_fixup_region_end): - Add prototypes. - - * expr.c (do_jump_by_parts_equality_rtx): Remove prototype. - - * expr.h (do_jump_by_parts_equality_rtx): Add prototype. - - * fix-header.c: Include stdarg.h/varargs.h, move gansidecl.h - before cpplib.h, include cpphash.h, remove redundant prototype of - cpp_fatal, don't define `const', add a prototype for `fatal'. - (cpp_file_line_for_message): Add missing arguments `pfile'. - (v_cpp_message): New function. - (cpp_message): Use it. - (v_fatal): New function. - (fatal, cpp_fatal): Use it. - (cpp_pfatal_with_name): Constify parameter `name'. - - * flow.c (free_regset_vector): Remove redundant prototype. - - * function.c (round_down): Wrap prototype and definition with - macro ARGS_GROW_DOWNWARD. - (record_insns): Wrap prototype and definition with - defined (HAVE_prologue) || defined (HAVE_epilogue). - - * gansidecl.h (ATTRIBUTE_PRINTF_4, ATTRIBUTE_PRINTF_5): New macros. - - * gen-protos.c: Include gansidecl.h. - (hashf): Don't make it static, constify parameter `name'. - - * genattrtab.c (check_attr_test): Change XEXP() to XSTR() to match - specifier %s in calls to function `fatal'. - - * haifa-sched.c: Include toplev.h. - (find_rgns): Remove unused variable `j'. - - * integrate.c (note_modified_parmregs): Mark parameter `x' with - ATTRIBUTE_UNUSED. - (mark_stores): Likewise. - - * jump.c (mark_modified_reg): Likewise. - - * output.h (insn_current_reference_address): Add prototype. - (eh_frame_section): Likewise. - - * print-rtl.c: Include bitmap.h. - - * reload1.c (reload): Wrap variables `note' and `next' in macro - PRESERVE_DEATH_INFO_REGNO_P. - (forget_old_reloads_1): Mark parameter `ignored' with - ATTRIBUTE_UNUSED. - (choose_reload_regs): Remove unused variable `in'. - (reload_cse_invalidate_mem): Mark parameter `ignore' with - ATTRIBUTE_UNUSED. - (reload_cse_check_clobber): Likewise. - - * rtl.h (expand_null_return, reg_classes_intersect_p): Add prototype. - (mark_elimination): Fix typo in prototype. - - * scan-decls.c: Include gansidecl.h. - - * tree.h (using_eh_for_cleanups, supports_one_only): Add prototype. - -Mon May 18 22:37:33 1998 Jeffrey A Law (law@cygnus.com) - - * function.c (identify_blocks): Fix thinko when setting the - block number for NOTE_INSN_BLOCK_END. - -Mon May 18 15:30:42 1998 Nick Clifton - - * config/v850/lib1funcs.asm: Add .text pseudo op to start of - ___udivsi3. - - * config/v850/lib1funcs.asm: Fix .size pseudo ops to use three - underscores for the prefixes to the names of the maths functions. - - * dbxout.c (dbxout_parms): Revert to using DECL_ARG_TYPE. Add - comment explaining why. - -Mon May 18 13:20:23 1998 Richard Henderson - - * tree.h (TYPE_SIZE_UNIT): New. - (struct tree_type): Add size_unit member. - * stor-layout.c (layout_type): Initialize it. - * expr.c (get_inner_reference) [ARRAY_REF]: Use it. - * tree.c (size_in_bytes, int_size_in_bytes): Likewise. - -Mon May 18 12:07:37 1998 Richard Earnshaw (rearnsha@arm.com) - - * stor-layout.c (layout_record): Fix off-by-one error when checking - length of the TYPE_BINFO vector. - -Mon May 18 10:59:23 1998 Nick Clifton - - * dbxout.c (dbxout_parms): Use TREE_ARG to compute the type of a - function parameter passed in memory. - -Mon May 18 09:02:09 1998 Robert Lipe - - * dwarfout.h, dwarf2out.h, dbxout.h, sdbout.h: New files. - Prototypes for externally used functions in respective C files. - * dwarfout.c, dbxout.c, dwarf2out.c, sdbout.c, toplev,c, - final.c: Include above files. - * Makefile.in (toplev.o): Add dependency for above four headers. - (final.o): Likewise. - (dwarfout.o, dbxout.o, dwarf2out.o, sdbout.o): Depend on four - respective header files. - -Mon May 18 01:23:33 1998 Jeffrey A Law (law@cygnus.com) - - * Makefile.in (TARGET_TOOLPREFIX): No longer define. - (AR_FOR_TARGET, RANLIB_FOR_TARGET): Define to use versions in - the build tree if they exist. - (AR, AR_FLAGS, OLDAR, OLDAR_FLAGS, RANLIB, RANLIB_TEST): Update - appropriately. - (objdir): Let configure substitute value. - (FLOAT_H): Let configure select a pre-built version from the - config subdir. - * build-make (INSTALL_TARGET, ALL): Disable, no longer needed. - * configure.in: Substitute for objdir. - - * Makefile.in (build_canonical, host_canonical): Let configure - substitute values for these variables. - * configure.in: Substitute for build_canonical, host_canonical - and target_subdir in generated Makefile. - - * output.h (find_basic_blocks): Declare. - (free_basic_block_vars, set_block_num, life_analysis): Likewise. - - * Makefile.in (BISON): Use bison from the build tree if it exists. - (FLEX): Similarly. - -Mon May 18 00:08:19 1998 Nick Clifton - - * gcc.c (SWITCH_CURTAILS_COMPILATION): Definition. - (DEFAULT_SWITCH_CURTAILS_COMPILATION): True for options -S and -c. - (process_command): If HAVE_EXECUTABLE_SUFFIX is defined then scan - command line arguments to see if an executable is not being - created, and if so - do not append the suffix. - - * tm.texi (SWITCH_CURTAILS_COMPILATION): Add description of new - driver macro. - -Sun May 17 23:59:45 1998 John Wehle (john@feith.com) - - * i386.h (ALIGN_DFmode): Delete. - (CONSTANT_ALIGNMENT): Define. - * varasm.c (force_const_mem): Use it. - -Sun May 17 19:31:05 1998 Richard Henderson - - * alpha.c (alpha_emit_conditional_branch): Clear cmp_code after - using it with swap_condition, not before. - -Sun May 17 13:44:32 1998 Jim Wilson - - * alias.c (mode_alias_check): Delete. - (true_dependence, anti_dependence, output_dependence): Revert April 21 - change. - -Sun May 17 08:45:21 1998 Krister Walfridsson - - * toplev.c (output_lang_identify): Enable prototype and definition. - -Sun May 17 01:12:27 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sat May 16 23:20:32 1998 Richard Henderson - - * alpha/osf.h (HAVE_STAMP_H): Define. - * alpha.c: Use it. - * alpha/netbsd.h, alpha/netbsd-elf.h: New files. - * configure.in (alpha*-*-netbsd*): New. - Based on patches from Paul H. Anderson . - - * configure.in (alpha*-*-linux-*): Kill xm_defines. - (alpha*-*-linux-gnulibc1*) [fixincludes]: Define. - * alpha/xm-linux.h: Remove file. - -Sat May 16 18:32:45 1998 Doug Evans - - * dbxout.c (dbxout_parms): If mode of type of parameter living - in memory doesn't match mode of DECL_RTL, make big endian correction. - -Fri May 15 21:40:06 1998 John Wehle (john@feith.com) - - * i386.md (movdi-1, movdi): Rewrite based on SI move patterns. - -Fri May 15 18:55:22 1998 Jason Merrill - - * tree.h (BINFO_SIZE, TYPE_BINFO_SIZE): New macros. - * stor-layout.c (layout_record): Set it. - -Fri May 15 18:49:30 1998 Mark Mitchell - - * toplev.c (rest_of_compilation): Don't defer nested functions. - -Fri May 15 17:42:52 1998 Bob Manson - - * config/rs6000/rs6000.c (rs6000_stack_info): Align the stack bottom - to an 8-byte boundary if info_ptr->fpmem_p. - -Fri May 15 17:36:11 1998 Bill Moyer - - * loop.c (basic_induction_var): Added test preventing - CCmode parameter passed to convert_modes(). - -Fri May 15 17:26:18 1998 Alexandre Petit-Bianco - - * expr.c (expand_expr, case EXPR_WITH_FILE_LOCATION): Save/restore - input_filename and lineno around expand_expr call. Set them to values - in WFL before expand_expr call. - -Fri May 15 12:44:57 1998 Benjamin Kosnik - - * stor-layout.c (set_sizetype): Set TYPE_NAME on bitsizetype. - -Fri May 15 07:20:03 1998 Mark Mitchell - - * fold-const.c (constant_boolean_node): New function. - (fold): Use it. - -Fri May 15 11:21:16 1998 J"orn Rennecke - - * sh.c (gen_shl_and): Don't sign extend constant for kind two. - Abort if trying to split kind 3 or 4 outside of combine. - -Fri May 15 01:47:37 1998 Jeffrey A Law (law@cygnus.com) - - * mips.c (print_operand, case 'x'): Use HOST_WIDE_INT_PRINT_HEX. - -Fri May 15 01:42:45 1998 Mumit Khan - - * objc/Make-lang.in (OBJC_O): Add missing exeext. - (libobjc.a, runtime-info.h): Likewise. - -Fri May 15 01:29:39 1998 John Wehle (john@feith.com) - - * i386.h (DATA_ALIGNMENT): Define. - -Fri May 15 05:35:37 1998 J"orn Rennecke - - * reload1.c (delete_output_reload): Ignore single USE that - was emitted for the pseudo use of this INSN. - If the no reference to REG between OUTPUT_RELOAD_INSN and INSN - remains, we can always delete OUTPUT_RELOAD_INSN. - -Thu May 14 18:38:50 1998 Jim Wilson - - * reload.c (find_reloads): Don't penalize SCRATCH output reload. - -Thu May 14 15:10:30 1998 Jeffrey A Law (law@cygnus.com) - - * Makefile.in (expr.o): Remove dependency on deleted modemap.def file. - -Thu May 14 16:30:47 1998 Andrew MacLeod - - * eh-common.h: New file for basic EH data structures. - * except.h: Various prototypes and structures for NEW_EH_MODEL. - * function.h (struct function): Add a struct eh_stack for the catch - clause stack. - * except.c (gen_exception_label): New function to generate an - exception label. - (push_eh_entry): Use gen_exception_label() and init 'label_used' field. - (push_entry): New function to push an existing entry onto a stack. - (receive_exception_label): New function to emit the code required - at the start of all catch blocks. - (struct func_eh_entry): New structure for maintaining handlers - associated with EH regions. - (new_eh_region_entry): New function to register an EH region. - (add_new_handler): New function to register a handler with a region. - (get_new_handler): Creates anew handler entry for registering. - (find_func_region): New function to convert a NOTE eh region number - to an Eh region index. - (get_first_handler): New function to get the first handler in a region. - (clear_function_eh_region): New function to release memory. - (duplicate_handlers): New function to duplicate a list of handlers. - (expand_eh_region_end): Create a new region entry node as well. - (expand_leftover_cleanups): Call receive_exception_label() and - register the cleanup as a handler to the current region. - (expand_start_catch): New function to start a catch clause. - (expand_end_catch): New function to end a catch clause. - (expand_start_all_catch): Restructure to not do the equivalent of - what expand_start_catch() does now. Push the exception region being - handled onto the catch stack. - (output_exception_table_entry): Issue an entry for each handler - associated with a region. - (set_exception_lang_code): New function for setting the language code. - (set_exception_version_code): New function to set the version number. - (output_exception_table): Output version and language codes. - (find_exception_handler_labels): Find handler labels using new scheme. - (is_exception_handler_label): New function, returns 1 if label is - present as a handler in some exception region. - (check_exception_handler_labels): Use the new scheme. - (init_eh_for_function): Initialize the catch stack. - (save_eh_status): Save the catch stack. - (restore_eh_status): Restore the catch stack. - (scan_region): Don't remove unreferenced handler label. Flow does it. - (get_reg_for_handler): New function to get the eh_context pointer - passed by __throw. - (expand_builtin_eh_stub): Changes required for NEW_EH_MODEL only. - * final.c (final_scan_insn): With NEW_EH_MODEL, add EH table - entry when processing END region rather that START region. - * flow.c (find_basic_blocks_1): Find all potential handler regions - now that we don't automatically know what the labels might be. - Let scan_region() remove unreferenced EH BEGIN/END labels. - * integrate.c (get_label_from_map): Put inlined labels onto the - permanent obstack since we don't know which ones might be exception - labels. - (save_for_inline_copying): Make new copies of all the handlers. - (expand_inline_function): Make new copies of all the handlers. - * libgcc2.c: Remove local struct decls, and include eh-common.h. - (find_exception_handler): With NEW_EH_MODEL the first matching - region we find is the right one. Add eh_info as a new parameter. - (__throw): Pass eh_info to find_exception_handler. Set handler - and pass use different regs under NEW_EH_MODEL. - -Thu May 14 12:58:21 1998 Jim Wilson - - * i960.h (hard_regno_mode_ok): Changed to function from array of - unsigned. - (HARD_REGNO_MODE_OK): Call function instead of testing bit. - * i960.c (hard_regno_mode_ok): Changed to function from array of - unsigned. - -Thu May 14 08:41:46 1998 J"orn Rennecke - - * reload.c (remove_replacements): New function. - * reload.h (remove_replacements): Declare. - * reload1.c (choose_reload_regs): Disable some reloads that - belong to inherited reloads. - -Thu May 14 02:17:17 1998 J"orn Rennecke - - * loop.c (scan_loop): Don't call move_movables for optimize_size. - - * reload1.c (merge_assigned_reloads): When merging, reset - reload_spill_index for the eliminated reload. - -Wed May 13 17:51:13 1998 Jeffrey A Law (law@cygnus.com) - - * haifa-sched.c (schedule_insns): Fix merge goof. - -1998-05-13 Jim Wilson - - * varasm.c (make_decl_rtl): Revert April 1 change. - * alpha/alpha.h, alpha/win-nt.h, arm/arm.h, i386/unix.h, i960/i960.h, - m68k/linux.h, pa/pa.h, sparc/sparc.h, vax/vax.h (ASM_OUTPUT_MI_THUNK): - Get function name from the SYMBOL_REF in the DECL_RTL, not from - DECL_ASSEMBLER_NAME. - * i386/winnt.c (gen_stdcall_suffix): Comment for questionable use of - DECL_ASSEMBLER_NAME. - -Wed May 13 13:09:19 1998 Jim Wilson - - * i386.c (notice_update_cc, output_float_compare): Disable - TARGET_CMOVE support. - -Wed May 13 15:28:59 1998 Michael Meissner - Jeff Law - - * rtlanal.c (find_reg_note): Ignore notes that are not on on - insns of class 'i'. - (find_regno_note): Likewise. - - * Makefile.in (stor-layout.o): Depend on except.h. - (varasm.o, function.o): Likewise. - (expr.o): Depend on except.h, modemap.def and hard-reg-set.h. - - * Makefile.in (HOST_RTL): Add $(HOST_PREFIX)bitmap.o. - (rtl.o, emit-rtl.o): Add dependency on bitmap.h. - ($(HOST_PREFIX_1)rtl.o): Likewise. - ($(HOST_PREFIX_1)bitmap.o): New host object. - * emit-rtl.c (toplevel): Include bitmap.h. - (gen_rtx): Handle 't' and 'b' nodes. - * print-rtl.c (print_rtx): Handle printing NOTE_INSN_LIVE notes. - Print block number for block begin/end notes. Print 't' type - nodes as a pointer. Know that the 3rd argument of live range - start/stop notes is really a range_info rtx. If type is 'b', print - out argument as a bitmap. - * rtl.c: Include bitmap.c. - (copy_rtx): Copy tree nodes as is. Copy bitmaps if type is 'b'. - (note_insn_name): Add NOTE_INSN_RANGE_{START,END}, NOTE_INSN_LIVE. - * rtl.def (RANGE_LIVE): New node to hold live information while we - recalculate the basic blocks. - (RANGE_REG, RANGE_INFO): New rtl types for live range splitting. - (RANGE_VAR): New node, to hold information saved in symbol node for New - communicating live range information to the debug output functions. - * rtl.h (rtunion_def): Add rttree and rtbit fields. - (XBITMAP, XTREE): New accessor macros. - (NOTE_LIVE_INFO): Overload NOTE_SOURCE_FILE for NOTE_INSN_LIVE notes. - (NOTE_RANGE_INFO): Similarly for NOTE_INSN_RANGE_{START,END} notes. - (NOTE_BLOCK_LIVE_RANGE_BLOCK): Define. - (NOTE_INSN_RANGE_START, NOTE_INSN_RANGE_END, NOTE_INSN_LIVE): New notes. - (RANGE_LIVE_{BITMAP,ORIG_BLOCK}): New accessor macros. - (RANGE_REG_{SYMBOL,BLOCK}_NODE, RANGE_VAR_*): New accessor macros. - (RANGE_INFO_*): Likewise. - * sched.c (sched_analyze): Keep live range start/stop notes. - (unlink_other_notes): Likewise. - * haifa-sched.c (sched_analyze): Keep live range start/stop notes. - (unlink_other_notes): Likewise. - * tree.h (BLOCK_LIVE_RANGE_{START,END,VAR_FLAG}): New accessor macros. - (BLOCK_LIVE_RANGE_FLAG): Likewise. - (DECL_LIVE_RANGE_RTL): Likewise. - (struct tree_block): Add live_range_flag, live_range_var_flag, - live_range_start and live_range_end. - (struct tree_decl): Add live_range_rtl field. - * gengenrtl.c (type_from_format): Handle 'b' and 't'. - (accessor_from_format): Likewise. - - * haifa-sched.c (schedule_block): Make verbose output line up. - Also add a blank line in printing the individual ready lists. - -Wed May 13 15:43:44 1998 Kaveh R. Ghazi - - * Makefile.in (c-lang.o): Depend on c-tree.h, c-lex.h and toplev.h. - (c-lex.o): Depend on output.h. - (c-common.o): Likewise. - (stmt.o): Likewise. - (calls.o): Likewise. - (integrate.o): Depend on toplev.h. - (regclass.o): Depend on output.h. - (final.o): Depend on reload.h. - - * c-common.c: Include output.h. - (check_format_info): Remove unused variable `integral_format'. - - * c-decl.c (print_lang_decl): Mark parameters `file', `node' and - `indent' with ATTRIBUTE_UNUSED. - (print_lang_type): Likewise. - (maybe_build_cleanup): Likewise for parameter `decl'. - (copy_lang_decl): Likewise for parameter `node'. - - * c-lang.c: Include c-tree.h, c-lex.h and toplev.h. - (lang_print_xnode): Mark parameters `file', `node' and `indent' - with ATTRIBUTE_UNUSED. - (lookup_interface): Likewise for parameter `arg'. - (is_class_name): Likewise. - (maybe_objc_check_decl): Likewise for parameter `decl'. - (maybe_objc_comptypes): Likewise for parameters `lhs', `rhs' and - `reflexive'. - (maybe_objc_method_name): Likewise for parameter `decl'. - (build_objc_string): Likewise for parameters `len' and `str'. - - * c-lex.c: Include output.h. - - * c-lex.h (position_after_white_space): Correct typo in prototype. - - * c-tree.h (finish_file, c_expand_start_cond, c_expand_start_else, - c_expand_end_cond, init_iterators): Add prototypes. - - * caller-save.c (set_reg_live): Mark parameters `reg' and `setter' - with ATTRIBUTE_UNUSED. - - * calls.c: Include output.h. - - * cccp.c (pipe_closed): Mark parameter `signo' with - ATTRIBUTE_UNUSED. - - * combine.c: Move inclusion of expr.h to after insn-config.h. - - * iris6.h (ASM_IDENTIFY_GCC, ASM_IDENTIFY_LANGUAGE): Don't define - as empty, rather define as ((void)0). - - * sparc.c (sparc_check_64): Add braces around ambiguous `else'. - Add parentheses around assignment used as truth value. - - * cplus-dem.c (squangle_mop_up): Change return type to void. - (internal_cplus_demangle): Remove unused parameter `options'. - All callers changed. - (cplus_demangle_opname): Remove function wide variable `int i' and - replace with `size_t i' at each location where it is used. - (cplus_demangle_opname): Change type of `i' from int to size_t. - - * cppexp.c (right_shift): Mark parameter `pfile' with - ATTRIBUTE_UNUSED. - - * cpphash.c (cpp_lookup): Likewise. - (cpp_hash_cleanup): Likewise. - - * cpplib.c (parse_name): Add a prototype and make it static. - (null_underflow): Mark parameter `pfile' with ATTRIBUTE_UNUSED. - (null_cleanup): Likewise for parameters `pbuf' and `pfile'. - (macro_cleanup): Likewise for parameter `pfile'. - (file_cleanup): Likewise. - - * cpplib.h (cpp_reader_init, cpp_options_init, cpp_start_read, - cpp_read_check_assertion, skip_rest_of_line): Add prototypes. - - * crtstuff.c (force_to_data, __CTOR_LIST__, force_to_data, - __DTOR_END__, __FRAME_END__): Mark with ATTRIBUTE_UNUSED. - - * cse.c (cse_check_loop_start): Mark parameter `set' with - ATTRIBUTE_UNUSED. - - * dbxout.c (flag_minimal_debug, have_used_extensions, - source_label_number): Move inside macro wrapper check against - defined (DBX_DEBUGGING_INFO) || defined (XCOFF_DEBUGGING_INFO). - - * dwarf2out.c (gen_entry_point_die): Hide prototype and definition. - - * except.h (doing_eh): Provide prototype. - - * expr.c: Move inclusion of expr.h to after insn-config.h. - - * final.c: Include reload.h. - (shorten_branches): Cast the first argument of bzero to char *. - - * fix-header.c (cpp_print_containing_files): Mark parameter - `pfile' with ATTRIBUTE_UNUSED. - (cpp_fatal): Likewise. - - * flow.c (find_basic_blocks_1): Cast the first argument of bzero - to char *. - - * genattrtab.c (make_length_attrs): Change the type of variable - `i' from int to size_t. - (zero_fn): Mark parameter `exp' with ATTRIBUTE_UNUSED. - (one_fn): Likewise. - - * genextract.c (main): When generating insn-extract.c, mark - variable `junk' with ATTRIBUTE_UNUSED. - - * gengenrtl.c (gencode): When generating genrtl.c, cast the first - argument of bzero to char*. - - * integrate.c: Include toplev.h. - - * libgcc2.c: Wrap `struct exception_table' and - `find_exception_handler' in macro DWARF2_UNWIND_INFO. - - * objc/Make-lang.in (objc-act.o): Depend on toplev.h. - - * objc/objc-act.c: Include toplev.h. - (lang_print_xnode): Mark parameters `file', `node' and `indent' - with ATTRIBUTE_UNUSED. - (finish_protocol): Likewise for parameter `protocol'. - - * output.h (declare_weak): Add prototype. - (decode_reg_name): Don't wrap with TREE_CODE macro. - (assemble_alias): Add prototype. - - * regclass.c: Include output.h. - - * reload.h (reloads_conflict): Add prototype. - - * rtl.h (print_rtl_single, mark_elimination, reg_class_subset_p, - output_func_start_profiler): Add prototypes. - - * rtlanal.c (reg_set_p_1): Mark parameters `x' and `pat' with - ATTRIBUTE_UNUSED. - - * scan-decls.c: Include scan.h. - - * scan.h (recognized_function, recognized_extern): Add prototypes. - - * stmt.c: Include output.h. - - * toplev.c (error_for_asm, warning_for_asm): Remove prototypes. - (output_lang_identify): Hide prototype and definition. - (float_signal): Mark parameter `signo' with ATTRIBUTE_UNUSED. - (pipe_closed): Likewise. - - * toplev.h (count_error, strip_off_ending, error_for_asm, - warning_for_asm): Add prototypes. - -Wed May 13 12:54:19 1998 Michael Meissner - - * toplev.c (rest_of_compilation): "Charge" final for any time - doing various cleanup operations after finishing compilation - of a function. - - * flow.c (dump_flow_info): Also print number of sets and - whether or not the pseudo is a user variable. - - * flow.c (reg_n_max): New global variable. - * regclass.c (allocate_reg_info): Keep reg_n_max up to date. - Delete regno_max variable. - * regs.h (REG_N_CHECK): Define. - (REG_N_REFS, REG_N_SETS, REG_N_DEATHS): Use REG_N_CHECK. - (REG_N_CHANGES_SIZE, REG_N_CALLS_CROSSED, REG_LIVE_LENGTH): Likewise. - (REGNO_FIRST_UID, REGNO_LAST_UID, REGNO_LAST_NOTE_UID): Likewise. - -Wed May 13 12:54:19 1998 Martin von Loewis - - * acconfig.h (ENABLE_CHECKING): Undefine. - * configure.in (--enable-checking): New option. - -Wed May 13 08:52:08 1998 J"orn Rennecke - - * reload1.c (merge_assigned_reloads): Can merge - RELOAD_FOR_INPUT_ADDRESS and RELOAD_FOR_OTHER_ADDRESS even - if RELOAD_FOR_INPUT with the same reload_reg_rtx is present. - -Tue May 12 20:05:57 1998 Jim Wilson - - * collect2.c (main): Ignore do_collecting when COLLECT_EXPORT_LIST. - -Wed May 13 03:23:45 1998 J"orn Rennecke - - * reload1.c (gen_reload): Create REG_EQUIV notes. - -Tue May 12 22:21:07 1998 J"orn Rennecke - - * reload1.c (reload): Fix check for USEs to use code of pattern. - (choose_reload_regs): Remove dead variable use_insn. - -Tue May 12 14:04:49 1998 Jeffrey A Law (law@cygnus.com) - - * pa.h (DBX_CONTIN_LENGTH): Reduce to 3000 bytes. - -Tue May 12 15:16:02 1998 Michael Meissner - - * haifa-sched.c (HAIFA_INLINE): Define to be __inline unless - already defined. - (find_insn_{,mem_}list): Use HAIFA_INLINE, not __inline. - (insn_{unit,issue_delay}): Likewise. - (blockage_range): Likewise. - (actual_hazard{,_this_instance}): Likewise. - (schedule_unit): Likewise. - (potential_hazard): Likewise. - (insn_cost): Likewise. - (swap_sort): Likewise. - (queue_insn): Likewise. - (birthing_insn_p): Likewise. - (adjust_priority): Likewise. - (get_block_head_tail): Likewise. - (init_rgn_data_dependences): Likewise. - -Tue May 12 10:27:54 1998 Klaus Kaempf - - * alpha/vms.h (COMMON_ASM_OP, ASM_OUTPUT_ALIGNED_COMMON): Define. - -Tue May 12 11:44:14 1998 Gavin Koch - - * config/mips/mips.h (ASM_OUTPUT_ALIGN): Remove trailing semi-colon. - -Tue May 12 11:38:31 1998 Gavin Koch - - * config/mips/mips.md (dslot): Move after definition of "cpu" - attribute. Handle r3900 case. - -Tue May 12 10:21:36 1998 Kaveh R. Ghazi - - * system.h: Define the STRINGIFY macro here. - * protoize.c: Not here. - * gengenrtl.c (DEF_RTL_EXPR): Use the STRINGIFY macro. - -Tue May 12 00:47:33 1998 John Wehle (john@feith.com) - - * varasm.c (assemble_variable): Compute the alignment of the data - earlier so that both initialized and uninitialized variables are - effected by DATA_ALIGNMENT. - * tm.texi (DATA_ALIGNMENT): Updated appropriately. - -Mon May 11 19:57:58 1998 Jeffrey A Law (law@cygnus.com) - - * mips.c: Prototype static functions. - -Mon May 11 17:43:03 1998 Jim Wilson - - * regmove.c (fixup_match_2, find_matches, regmove_profitable): - Add explanatory comments. - - * sparc.h (SPARC_INCOMING_INT_ARG_FIRST): Support TARGET_FLAT. - -Mon May 11 17:24:27 1998 Richard Henderson - - * sparc.md (ffsdi2): Disable. Simplify the expression as well. - -Mon May 11 13:30:44 1998 Jim Wilson - - * varasm.c (make_decl_rtl): Disable April 1 change. - -Mon May 11 09:14:41 1998 Richard Henderson - - * configure.in (alpha-*-linux-gnu): Undo lossage from gcc2 merge. - -Mon May 11 08:24:18 1998 Richard Henderson - - * alpha.h (PRINT_OPERAND_PUNCT_VALID_P): Add '`'. - * alpha.c (print_operand): Handle it. - * alpha.md (fix_truncdfsi2, fix_truncsfsi2): New patterns and - related define_splits. Also add peepholes for SImode reload - plus sign_extend lossage. - -Mon May 11 09:33:10 1998 Kaveh R. Ghazi - - * genattr.c: Include stdarg.h/varargs.h. Change function - `fatal' to use variable arguments instead of faking it with - integer parameters. Provide a prototype which also - checks the format specifiers using ATTRIBUTE_PRINTF_1. - - * genattrtab.c: Likewise. - * gencodes.c: Likewise. - * genconfig.c: Likewise. - * genemit.c: Likewise. - * genextract.c: Likewise. - * genflags.c: Likewise. - * genopinit.c: Likewise. - * genpeep.c: Likewise. - * genrecog.c: Likewise. - * genoutput.c: Likewise. Similarly for function `error'. - -Sun May 10 02:27:03 1998 Kaveh R. Ghazi - - * acconfig.h (HAVE_VOLATILE): Insert stub for autoconf. - * alocal.m4 (GCC_C_VOLATILE): New autoconf test. - * configure.in: Use GCC_C_VOLATILE. - * system.h (volatile): Define as empty if no volatile support is - available. - -Sun May 10 01:21:43 1998 Jeffrey A Law (law@cygnus.com) - - * genemit.c (output_add_clobbers): Removed unused variable 'i' from - generated function. - -Sat May 9 02:02:15 1998 Richard Henderson - - * loop.c (get_condition): Don't combine when either compare is MODE_CC. - * alpha.c (alpha_emit_conditional_branch): New function. Taken from - the body of beq; additionally set the mode of the branch to CCmode for - FP compares and not fast_math. - (alpha_emit_conditional_move): Always use a compare insn for FP - when not fast_math, as well as setting CCmode on the cmov. - * alpha.md (beq, bne, blt, et al): Call alpha_emit_conditional_branch. - - * machmode.h (COMPLEX_MODE_P): New macro. - -Sat May 9 01:53:23 1998 Richard Henderson - - * haifa-sched.c (print_exp): Fix typo. - -Fri May 8 21:48:50 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Fri May 8 18:23:08 1998 Michael Meissner - - * final.c (final_scan_insn): Call fatal_insn instead of abort if - we could not split an insn when required to. - - * m32r.md ({add,sub}di3): Add define_splits and appropriate low - level insns. - (peepholes): Disable peepholes that call dead_or_set_p. - (movsi): Rewrite to handle addresses better after last change. - Add define_split to split load of addresses in large/medium modes. - (prologue): Call m32r_expand_prologue. - (movsi_{push,pop}): Generators for push/pop. - (movsi): Support PRE_{INC,DEC}, POST_INC. - (mov{di,df}): Rewrite. Always split the insns. - (movsf): Add define_split to get register load in correct mode. - (cmp_ne_small_const_insn): Use 'N' instead of 'S' constraint. - (attributes): Rewrite attributes so that type indicates both the - type and the length of the insn directly. - (all insns): Change to use new type attributes. - (debug): New attribute to convey whether -mdebug was used. - (opt_space): New attribute to convey whether -Os was used. - (function units): Loads are 3 cycles, not 2. Better classify all - insns into short/long. - (load/store/extend insns): Add separate case for load/store - indirect operations without an offset. - (divsi3): Division is a long operation, not short. - - * m32r.h (LEGITIMATE_LO_SUM_ADDRESS_P): Do not allow LO_SUM for - modes > 1 word. - (GO_IF_MODE_DEPENDENT_ADDRESS): LO_SUM is now mode dependent. - (CONST_OK_FOR_LETTER_P): Make 'N' handle reverse 8 bit compares. - (EXTRA_CONSTRAINT): Remove 'S' special support. Add 'U' for - operands with PRE_{INC,DEC}, POST_INC. - (FUNCTION_PROFILER): Call abort instead of doing nothing. - (GO_IF_LEGITIMATE_ADDRESS): Allow PRE_{INC,DEC}, POST_INC of - SImode variables. - (gen_split_move_double): Declare. - (EXTRA_CONSTRAINT): Add 'T' for memory reference with no offset. - - * m32r.c (gen_split_move_double): Fix typo. Also, don't call - emit_move_insn, build up SET's directly. - (toplevel): Include system.h, not stdio.h. - (move_double_src_operand): Allow any DF or DI mode constant. - (gen_split_move_double): Split moves of DI or DF values into the - appropriate moves, loads, or stores. Don't handle use of auto - inc/dec if using dead index. Do handle overlapping moves, etc. - (m32r_frame_info): Remove prologue_size field. - (m32r_compute_frame_size): Don't calculate prologue size. - (m32r_output_function_prologue): Change to pretty much a NOP. - (m32r_expand_prologue): Expand prologue as a series of INSNs. - (m32r_print_operand): Add support for PRE_{INC,DEC}, POST_INC. - (m32r_print_operand_address): Likewise. - -Fri May 8 14:13:21 1998 H.J. Lu (hjl@gnu.org) - - * reload1.c (emit_reload_insns): When performing expensive - optimizations, do not output the last reload insn if OLD is - not the dest of NSN and is in the src and is clobbered by INSN. - -Fri May 8 09:47:29 1998 Kaveh R. Ghazi - - * Makefile.in (genrtl.o): Depend on system.h. - * gengenrtl.c (gencode): When creating genrtl.c, have it - include system.h. - -Fri May 8 10:57:33 1998 Andreas Schwab - - * config/m68k/t-linux: Remove extra stuff already included in - config/t-linux. - -Fri May 8 09:53:24 1998 Paul Eggert - - * fixinc.wrap: Renamed from fixinc.math. Put wrapper around - curses.h if it contains `typedef char bool;', as suggested by - Manfred Hollstein . - - * configure.in: Rename fixinc.math to fixinc.wrap. - -Thu May 7 19:26:34 1998 Jim Wilson - - * gcc.c (read_specs): Handle missing blank line at end of specs file. - - * i386.md (movsicc, movhicc, movsicc_1, movhicc_1, movsfcc_1, - movdfcc_1): Disable. - -Thu May 7 15:39:14 1998 Jim Wilson - - * configure.in (enable_threads): Rename to enable_threads_flag before - main loop. Set enable_threads to enable_threads_flag inside main - loop. - -Thu May 7 17:38:03 1998 Michael Meissner - - * r6000/eabi.asm (__eabi): Restore LR in case __eabi is called - multiple times. - -Thu May 7 14:26:05 1998 Kaveh R. Ghazi - - * aclocal.m4 (GCC_FUNC_VFPRINTF_DOPRNT): New macro. - - * configure.in: Add a call to GCC_FUNC_VFPRINTF_DOPRNT. - (AC_CHECK_HEADERS): Remove unused check for varargs.h,sys/varargs.h. - (AC_CHECK_FUNCS): Remove unused check for vprintf. - - * Makefile.in: Add support for linking in vfprintf.c and doprint.c. - (cccp.o): Depend on gansidecl.h. - (cexp.o): Likewise. - - * cccp.c: Convert from using PRINTF_ALIST/PRINTF_DCL to VPROTO as - per the rest of gcc source. - * cexp.y: Likewise. Include gansidecl.h and remove all code made - redundant. - - * cccp.c: Remove checks for HAVE_VPRINTF and the associated code - used when vfprintf is missing. - * cexp.y: Likewise. - * gcc.c: Likewise. - * genattrtab.c: Likewise. - * mips-tfile.c: Likewise. - * toplev.c: Likewise. - - * vfprintf.c: New file. - * doprint.c: New file. - -Thu May 7 10:18:41 1998 Jeffrey A Law (law@cygnus.com) - - * config/linux.h (ASM_COMMENT_START): Remove from here, - * config/linux-aout.h (ASM_COMMENT_START): and here, - * config/i386/linux.h (ASM_COMMENT_START): to here, - * config/i386/linux-aout.h (ASM_COMMENT_START): and here. - * config/i386/linux-oldld.h (ASM_COMMENT_START): Define - here as '#' too. - -Thu May 7 10:55:59 1998 Andreas Schwab - - * config/m68k/m68k.md (adddi3, subdi3): Properly negate the DImode - constant. - -Wed May 6 22:32:37 1998 Robert Lipe - - * Makefile.in (dwarfout.o): Add toplev.h dependency. - * dwarfout.c, i386.c: Include toplev.h. - * toplev.h (pfatal_with_name): Add prototype. - -Wed May 6 19:02:29 1998 Jason Merrill - - * Makefile.in: Fix .SUFFIXES. - -Wed May 6 19:31:32 1998 Alan Modra - - * config/linux.h (ASM_COMMENT_START): Define as "#". - * config/linux-aout.h (ASM_COMMENT_START): Likewise. - -Wed May 6 15:51:39 1998 Jim Wilson - - * objc/Make-lang.h (objc-parse.o): Add toplev.h dependency. - * objc/objc-parse.y, objc/objc-parse.c: Regenerate. - - * toplev.c: Include toplev.h. - * Makefile.in (c-common.o, c-convert.o, c-decl.o, c-iterate.o, - c-lex.o, c-parse.o, c-pragma.o, c-typeck.o, calls.o, convert.o, - dwarf2out.o, except.o, expr.o, final.o, fold-const.o, function.o, - hash.o, profile.o, real.o, reg-stack.o, regclass.o, reload.o, - reload1.o, stmt.o, stor-layout.o, tlink.o, tree.o, varasm.o): Add - toplev.h dependency. - - * mips/mips.c (save_restore_insns): Change FRAME_POINTER_REGNUM to - HARD_FRAME_POINTER_REGNUM. - - * expr.c (target_temp_slot_level): Delete duplicate definition. - -Wed May 6 16:46:01 1998 Jeffrey A Law (law@cygnus.com) - - * stmt.c (mark_seen_cases): Make it have external linkage again. - * expr.h (mark_seen_cases): Add declaration, but only when tree.h - has been included. - - * haifa-sched.c (print_value, case SUBREG): Fix typo. - - * i386.c (output_387_binary_op): Add some braces to avoid warnings. - * i386.h (REG_CLASS_CONTENTS): Similarly. - - * toplev.c (-fsched-max): Delete flag. - (-fsched-interblock-max-blocks,-fsched-interblock-max-insns): Likewise. - * haifa-sched.c: Remove -fsched-max-N, -fsched-interblock-max-blocks-N - and -fsched-interblock-max-insns-N support. Remove INTERBLOCK_DEBUG - conditionals. - - * haifa-sched.c (find_rgns): Correctly handle reducible loops with - inner loops which are not reducible. - - * loop.c (regs_match_p): Fix typo in prototype. - - * regmove.c (try_auto_increment): Wrap declaration inside an - #ifdef AUTO_INC_DEC. - -Wed May 6 17:07:47 1998 Michael Meissner - - * final.c (output_operand_lossage): Call fatal with the operand - lossage message instead of calling abort. - -Wed May 6 15:37:27 1998 Kaveh R. Ghazi - - * c-common.c: Convert to using ctype macros defined in system.h. - * c-lex.c: Likewise. - * cccp.c: Likewise. - * collect2.c: Likewise. - * rs6000.c: Likewise. - * cpplib.c: Likewise. - * fix-header.c: Likewise. - * gcc.c: Likewise. - * gen-protos.c: Likewise. - * pexecute.c: Likewise. - * protoize.c: Likewise. - * rtl.c: Likewise. - * scan.c: Likewise. - * stmt.c: Likewise. - * tlink.c: Likewise. - * toplev.c: Likewise. - -Wed May 6 14:44:14 1998 Gavin Koch - - * config/mips/r3900.h (SUBTARGET_ASM_DEBUGGING_SPEC) : - Replace -gdwarf-2 with -g0. - -Wed May 6 11:43:18 1998 Kaveh R. Ghazi - - * Makefile.in (mips-tfile.o, mips-tdump.o): Depend on system.h. - * mips-tdump.c: Include system.h, remove redundant headers. - * mips-tfile.c: Likewise. Also, convert all ctype function calls - to calls of the macro versions defined in system.h. - - * objc/Make-lang.in (objc-act.o): Depend on system.h. - * objc/objc-act.c: Include system.h, remove redundant headers. - -Wed May 6 11:21:06 1998 Kaveh R. Ghazi - - * configure.in (AC_CHECK_FUNCS): Add isascii. - (GCC_NEED_DECLARATIONS): Add atof. - - * system.h: Provide prototypes for abort, atof, atol and sbrk here. - * rtl.c, rtl.h, toplev.c, tree.h: Not here. - -Wed May 6 10:52:49 1998 Kaveh R. Ghazi - - * system.h: Wrap time.h and sys/file.h in autoconf checks. - Provide default definitions for O_RDONLY and O_WRONLY here. - - * cccp.c, cpplib.c, fix-header.c, gcc.c, protoize.c: Not here. - -1998-05-06 Mark Mitchell - - * tree.h (IS_EXPR_CODE_CLASS): Remove bogus '3'. - -Wed May 6 06:35:38 1998 Robert Lipe - - * toplev.h: New file. Protypes for functions in toplev.c. - * tree.h, rtl.h: Deleted protos for functions in toplev.c. - * c-common.c, c-convert.c, c-decl.c, c-iterate.c, c-lex.c, - c-parse.in, c-parse.y, c-pragma.c, c-typeck.c, calls.c, - convert.c, dwarf2out.c, except.c, expr.c, final.c, fold-const.c, - function.c, hash.c, profile.c, real.c, reg-stack.c, regclass.c, - reload.c, reload1.c, stmt.c, stor-layout.c, tlink.c, tree.c, - varasm.c: Include it. - -Wed May 6 01:09:01 1998 Jeffrey A Law (law@cygnus.com) - Jim Wilson (wilson@cygnus.com) - - * haifa-sched.c (find_rgns): In no_loops case, fix test for leaf - blocks. Check for 1 successor which is the EXIT_BLOCK. - - * haifa-sched.c (find_rgns): Detect unreachable blocks, including - unreachable loops with more than one block. - -Wed May 6 08:22:24 1998 Manfred Hollstein - - * fix-header.c (write_rbrac): Add "abort" to functions which need to - be protected. - -Wed May 6 00:09:36 1998 Jeffrey A Law (law@cygnus.com) - - * Check in merge from gcc2. See ChangeLog.12 for details. - -Tue May 5 14:33:49 1998 Jim Wilson - - * c-common.c (scan_char_table): Separate 's' and 'c'. 'c' does not - accept 'a' flag. 'S' does accept 'a' flag. - (check_format_info): When pedantic, warn for m/C/S/a/A formats, - and `a' flag. - - * elf64.h (MULTILIB_DEFAULTS): Move definition after mips.h include. - -Tue May 5 10:50:39 1998 Andreas Schwab - - * config/m68k/m68k.h: Declare functions from m68k.c used in - macros and machine description. - (ASM_OUTPUT_LONG_DOUBLE): Always use `l' flag in print format for - long values. - (ASM_OUTPUT_FLOAT): Likewise. - (ASM_OUTPUT_FLOAT_OPERAND): Likewise. - -Tue May 5 01:28:12 1998 Jason Merrill - - * tree.def: Add NAMESPACE_DECL. - * dwarfout.c (type_ok_for_scope): Ignore NAMESPACE_DECLs for now. - * dwarf2out.c (push_decl_scope): Likewise. - (scope_die_for): Likewise. - * tree.c (decl_function_context): Use TREE_CODE_CLASS to determine - how to get next context level. - -Tue May 5 01:43:16 1998 Jim Wilson - - * i386.c (output_fix_trunc): Add code to emulate non-popping DImode - case. - -Tue May 5 01:15:06 1998 Jeffrey A Law (law@cygnus.com) - - * h8300.h (ADDITIONAL_REGISTER_NAMES): Add "er" registers. - - * reorg.c (fill_slots_from_thread): Update REG_DEAD/REG_UNUSED notes - for any insns skipped at the start of a block because they were - redundant. - -Mon May 4 20:23:51 1998 Jim Wilson - - * alpha.h (DBX_CONTIN_LENGTH): Decrease to 3000. - -1998-05-04 Ulrich Drepper - - * c-common.c (format_char_info): Add new field hhlen. - (print_char_table, scan_char_table, time_char_table): Initialize - hhlen field appropriately. - (char_format_info): Recognize hh modifier and lookup correct char - table entry. - -Mon May 4 19:15:29 1998 Jim Wilson - - * expr.c (expand_expr, case INDIRECT_REF): Don't optimize string - reference if this is a store. - -Mon May 4 17:25:17 1998 Richard Henderson - - * sparc.c (output_move_quad): Fix typo in mov_by_64 argument. - -Sun May 3 23:57:25 1998 Robert Lipe - - Make UnixWare 7 bootstrap support work with final shipping product. - * configure.in (i[34567]86-*-sysv5): Append, not overwrite, xm_file. - Pick up xm-siglist and xm-alloca. - (xm_defines): Add USG so dbxout will build. - * configure: Regenerate. - -Sun May 3 13:51:34 1998 Richard Henderson - - Support for official SPARC V9 ABI: - * sparc.c (sparc_override_options): Force stack bias off for !arch64. - Care for flag_pcc_struct_return default. - (output_move_quad): Rewrite to move by halves on v9 and in the - proper direction. - (move_quad_direction): New function. - (output_fp_move_quad): Use it to determine the direction of copy. - (function_arg_slotno): Return -1 for FP reg overflow as well. - (function_arg_record_value*): New functions. - (function_arg): Use them. Streamline unprototyped parameter passing. - (function_arg_pass_by_reference): Pass TCmode by reference. - (function_value): New function. - * sparc.h (PTRDIFF_TYPE, SIZE_TYPE): For -pedantic's sake, don't use - long long in 64-bit mode. - (RETURN_IN_MEMORY): v9 returns structs < 32-bytes in regs. - (DEFAULT_PCC_STRUCT_RETURN): Make the default detectable. - (BASE_RETURN_VALUE_REG): Consider complex float types for arch64. - (BASE_OUTGOING_VALUE_REG, BASE_PASSING_ARG_REG): Likewise. - (BASE_INCOMING_ARG_REG): Likewise. - (FUNCTION_VALUE): Call function_value. - (FUNCTION_OUTGOING_VALUE, LIBCALL_VALUE): Likewise. - * sparc.md (movdi_sp32_v9): Disable for arch64. - (movsf, movdf, movtf): Sort all alternatives using fp regs first. - (call_value_address_sp64): Remove register class constraints. - (call_value_symbolic_sp64): Likewise. - (nonlocal_goto): Pass label reg directly to goto_handlers. Constrain - v9 case to 32-bit constants. - (goto_handler_and_restore_v9): Provide a version for arch64. - * sparc/linux64.h (SIZE_TYPE, PTRDIFF_TYPE): Remove private definition. - * sparc/sp64-aout.h (TARGET_DEFAULT): Turn on stack bias. - (CPP_PREDEFINES): New. - * sparc/sp64-elf.h: Likewise. - (PREFERRED_DEBUGGING_TYPE): Dwarf2. - (ASM_OUTPUT_DWARF2_ADDR_CONST): New. - * sparc/sysv4.h (SIZE_TYPE, PTRDIFF_TYPE): Undo svr4.h's changes. - -Sat May 2 17:47:17 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sat May 2 01:37:29 1998 J"orn Rennecke - - * reload.c (find_reloads): Emit USEs to mark where a pseudo - is reloaded with the MEM of its stack slot. - * reload1.c (cannot_omit_stores): Delete. - (reload): Don't initialize it. - Don't apply avoid_return_reg logic to USEs. - When done, remove USEs that have a REG_EQUAL note on them. - (emit_reload_insns): Handle case where we have inherited a MEM. - (choose_reload_regs): Likewise. - (delete_output_reload): Don't use cannot_omit_stores. - -Thu Apr 30 18:59:03 1998 Jim Wilson - - * Makefile.in (cpp.info, gcc.info): Put -o option before input file. - -Thu Apr 30 16:57:34 1998 Michael Meissner - - * haifa-sched.c (print_{exp,value}): Various changes to make the - debug output easier to read. Also, use only one buffer, and make - sure the buffer we are passed in doesn't overflow. - (safe_concat): Concatenate to a buffer without overflow. - -Thu Apr 30 16:57:34 1998 Kaveh R. Ghazi - - * haifa-sched.c (alloc_{INSN,EXPR}_LIST): Make static to agree - with the prototype. - -Wed Apr 29 21:45:16 1998 J"orn Rennecke - - * sched.c (new_insn_dead_notes): Check if the register was - used in the original instruction. - * haifa-sched.c (new_insn_dead_notes): Likewise. - -Wed Apr 29 13:46:03 1998 Jim Wilson - - * dwarf2out.c (scope_die_for): If could not find proper scope, - check for and handle tagged type with incorrect TYPE_CONTEXT. - -Wed Apr 29 15:34:40 1998 John Carr - - * calls.c (expand_call): Fix recognition of C++ operator new. - - * alias.c (mode_alias_check): Disable type based alias detection. - -Wed Apr 29 15:06:42 1998 Gavin Koch - - * config/mips/elf.h (ASM_OUTPUT_DEF,ASM_WEAKEN_LABEL, - ASM_OUTPUT_WEAK_ALIAS): Define. - * config/mips/elf64.h: Same. - * config/mips/r3900.h (ASM_OUTPUT_DEF,SUPPORTS_WEAK, - ASM_WEAKEN_LABEL): Removed. - -Wed Apr 29 10:53:29 1998 Andreas Schwab - - * calls.c (expand_call): Bump the length limit on the specially - recognized function names to 17. - -Tue Apr 28 17:53:33 1998 Jim Wilson - - * ginclude/stddef.h: Add check for _MACHINE_ANSI_H_ for BSD/OS - when undefining macros at the end. - - * expr.c (expand_builtin, case BUILT_IN_MEMSET): Break if either - val or len has TREE_SIDE_EFFECTS set. - - * sparc.md (mulsidi3): Call const v8plus and v8plus routines. - (mulsidi3_v8plus, const_mulsidi3_v8plus): Delete asterisk from name. - (smuldi3_highpart): Call const v8plus routine. - (smulsi3_highpart_v8plus): Renamed from smulsidi3_highpart_v8plus. - (const_smulsi3_highpart_v8plus): New pattern. - (smulsi3_highpart_sp32): Renamed from smulsidi3_highpart_sp32. - (umulsidi3): Call const v8plus routine. - (umulsi3_highpart): Handle const before v8plus. Call const v8plus - routine. - (umulsi3_highpart_v8plus): Renamed from umulsidi3_highpart_v8plus. - (umulsi3_highpart_sp32): Renamed from umulsidi3_highpart_sp32. - -Tue Apr 28 08:55:26 1998 Michael Meissner - - * m32r.c (*_oper{and|ator}): Change enum arguments and return - values to int, so they can be prototyped even in files that don't - include rtl.h. - ({small,large}_insn_p): Likewise. - (m32r_select_cc_mode): Likewise. - (gen_compare): Likewise. - (function_arg_partial_nregs): Likewise. - (m32r_setup_incoming_varargs): Likewise. - (init_reg_tables): Add prototype. - (m32r_frame_info): Add prolog_size field. - (m32r_compute_frame_size): Calculate the size of the prologue. - (m32r_first_insn_address): Return prologue size. - (m32r_output_function_prologue): Calculate frame size before - printing out information. Print out the prologue size. - - * m32r.h: Prototype all functions in m32r.c. - (FIRST_INSN_ADDRESS): Declare, returning prologue size. - - * m32r.md (bcc functions): Cast enum's to int. - - * m32r.c (conditional_move_operand): Silence a debug message. - ({small,long}_insn): New predicates. - - * m32r.h (TARGET_M32R): New macro. - (PREDICATE_CODES): Rearrange somewhat, add small_insn/long_insn. - (HAIFA_P): Define as 1/0 depending on whether the Haifa scheduler - was selected. - (ISSUE_RATE): Define as 2. - - * m32r.md (insn_size): New attribute. - ({,rev_}branch_insn): Add .s qualifier to branches believed to be - short. - (m32r): New attribute. - - * configure.in (enable_haifa): Switch m32r to Haifa by default. - * configure: Regenerate. - - (Changes from Nick Clifton ) - * m32r.h (EXTRA_CONSTRAINT): Implement 'S' constraint to perfoirm - the equivalent of a negated 'I' constraint. - (PRESERVE_DEATH_INFO_REGNO_P): Define in order to allow peephole - optimization to work. - - * m32r.md (cmp_ne_small_const_insn): Use 'S' constraint rather - than 'I' since the value is negated. - (peephole): Add peephole optimization to cope with optimization of - divide and subtracts of the same operands. - - * m32r.c zero_and_one, emit_cond_move): Add support for MVFC. - * m32r.h: Likewise. - * m32r.md: Likewise. - - * m32r.h (PREDICATE_CODES): Add declaration of machine specific - predicates. - -Tue Apr 28 07:25:53 1998 Manfred Hollstein - - * Makefile.in (libgcc2.ready): Revert last patch (Apr 24). - -Mon Apr 27 18:39:47 1998 Nick Clifton - - * config/arm/thumb.h (GO_IF_LEGITIMATE_ADDRESS): Check against - frame_pointer_rtx not FRAME_POINTER_REGNUM. - -Mon Apr 27 18:36:28 1998 Jim Wilson - - * reg-stack.c: Revert last patch (Apr 20). - (convert_regs): Set insn to PREV_INSN (next) after do while loop. - - * m68k/lb1sf68.asm (Laddsf$3): Fix typos in mcf5200 exg code. - - * loop.c (check_dbra_loop): New locals jump, first_compare, and - compare_and_branch. Call get_condition to set first_compare. - Set compare_and_branch to number of compare/branch instructions. - Replace PREV_INSN (PREV_INSN (loop_end)) with first_compare. - Replace '2' with compare_and_branch. - -Mon Apr 27 15:53:30 1998 Andrew MacLeod - - * cplus-dem.c (demangle_qualified): Replace missing else. - -Mon Apr 27 20:22:08 1998 J"orn Rennecke - - * sh.c (gen_ashift_hi): Don't make SUBREG of a SUBREG. - -Mon Apr 27 18:23:51 1998 J"orn Rennecke - - * sh.c (sh_expand_prologue, sh_expand_epilogue): - If TARGET_DOUBLE_ALIGN, preserve 64 bit stack alignment. - * sh.h (STACK_BOUNDARY): Likewise. - -Mon Apr 27 17:22:48 1998 J"orn Rennecke - - * sh.h (LEGITIMIZE_RELOAD_ADDRESS): Define. - -Mon Apr 27 08:55:23 1998 Michael Meissner - - * system.h (abort): If abort is not defined, and neither is - USE_SYSTEM_ABORT, redefine abort to call fprintf and exit, - reporting the line and filename of the error. - - * .gdbinit: Add breakpoints on exit and fancy_abort. - - * final.c (split_double): Avoid a compiler warning if - BITS_PER_WORD is less than or equal to HOST_BIT_PER_WIDE_INT. - - * rtl.h (JUMP_{CROSS_JUMP,NOOP_MOVES,AFTER_REGSCAN}): New macros - for calling jump_optimize. - - * toplev.c (rest_of_compilation): Call jump_optimize using JUMP_* - macros, rather than 0/1's. - -Sun Apr 26 23:19:10 1998 Richard Henderson - - * alpha.h (CONST_COSTS): Zero is always free. - (RTX_COSTS): Add EV6 costs. Abort if alpha_cpu is unknown. - -Sun Apr 26 15:38:50 1998 Andreas Schwab - - * cplus-dem.c (gnu_special): Fix off-by-one bug when checking the - length in the name of a virtual table. - -Sun Apr 26 01:21:06 1998 Richard Henderson - - * alpha.c (print_operand): Don't add 'v' suffix for ALPHA_FPTM_N. - -Sat Apr 25 22:11:38 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sat Apr 25 17:17:15 1998 Jeffrey A Law (law@cygnus.com) - - * fold-const.c (fold_convert): Fix typo. - -Sat Apr 25 17:55:54 1998 John Carr - - * alias.c (alias_invariant): New variable. - (record_base_value): New argument INVARIANT. - (memrefs_conflict_p): If a register has an entry in the alias_invariant - array, try substituting that value for the register. - - * rtl.h: Declare record_base_value. - - * loop.c, unroll.c: Update callers of record_base_value. - - * alias.c (find_base_value, find_base_term): SIGN_EXTEND and - ZERO_EXTEND do not affect base values. - -Fri Apr 24 15:57:02 1998 Jeffrey A Law (law@cygnus.com) - - * dbxout.c (dbxout_type): Fix typo. - (dbxout_range_type): Another HOST_WIDE_INT_PRINT_DEC fix. - - * configure.in: Use CC_FOR_BUILD, not BUILD_CC. - -Fri Apr 24 16:11:47 1998 John Carr - - * expr.c (expand_builtin, case MEMSET): Set MEM_IN_STRUCT_P - if the argument is the address of a structure or array. - - * configure.in: Enable Haifa scheduler by default for SPARC. - -Fri Apr 24 20:55:47 1998 J"orn Rennecke - - * cse.c (cse_set_around_loop): Don't do optimization when - new pseudos are created. - -Fri Apr 24 11:00:18 1998 Jeffrey A Law (law@cygnus.com) - - * dbxout.c (dbxout_type_fields): Use HOST_WIDE_INT_PRINT_DEC - appropriately. - (dbxout_type_method_1, dbxout_type): Likewise. - (print_int_cst_octal, print_octal, dbxout_symbol): Likewise. - (dbxout_type): Fix check for when to print a type range in - octal vs decimal. - -Fri Apr 24 16:45:03 1998 J"orn Rennecke - - * (gen_shl_and, in case 1): Fix comparison with mask. - -Fri Apr 24 06:46:40 1998 Nick Clifton - - * config/arm/thumb.h (GO_IF_LEGITIMATE_ADDRESS): Disallow frame - pointer as second register in REG+REG pair. - -Fri Apr 24 09:22:23 1998 Kaveh R. Ghazi - - * c-common.c (check_format_info): Don't check for the 'x' format - character twice, instead check for 'x' and 'X' - -Fri Apr 24 08:02:30 1998 Manfred Hollstein - - * Makefile.in (libgcc2.ready): Add explicit dependency from - $(STMP_FIXPROTO) to ensure all necessary include files have - been created and to guarantee proper parallel builds. - -Fri Apr 24 04:42:35 1998 J"orn Rennecke - - * sh.c (sh_expand_prologue, in !SH3E code): Don't push an extra - register for stdarg functions. - * sh.h (current_function_varargs): Declare. - (FUNCTION_ARG): Ignore NAMED for stdarg functions. - -1998-04-23 Jim Wilson - - * frame.c, libgcc2.c (stdlib.h, unistd.h): Don't include when - inhibit_libc is defined. - - * c-aux-info.c (gen_type): Use DECL_NAME only for TYPE_DECL. - -Thu Apr 23 19:09:33 1998 Jim Wilson - - * profile.c (tablejump_entry_p): New function. - (branch_prob): Add code to recognize MIPS tablejump entry branch. - Use tablejump_entry_p in MIPS and HPPA tablejump checking code. - -Thu Apr 23 15:01:13 1998 Nick Clifton - - * config/arm/arm.c (find_barrier): Return as soon as a barrier is - found, rather than at end of the loop, after the insn has been - changed. - -Thu Apr 23 20:21:06 1997 J"orn Rennecke - - * sh.c (gen_ashift_hi): Implement right shifts via gen_ashift. - * sh.md (ashrhi3_k, lshrhi3_k, lshrhi3_m, lshrhi3, lshrhi3+1): Delete. - -Wed Apr 22 17:07:35 1998 Michael Meissner - - * loop.c (note_addr_stored): Correct function to take 2 arguments, - instead of 1. - - * rtl.def (MATCH_INSN2): Add new matching pattern. - * genrecog.c (add_to_sequence): Support MATCH_INSN2. - -Wed Apr 22 15:52:22 1998 John Carr - - * emit-rtl.c (gen_highpart): The high part of a CONST_INT is not zero - if HOST_BITS_PER_WIDE_INT is larger than BITS_PER_WORD. - - * final.c (split_double): Sign extend both halves of a split CONST_INT. - -Wed Apr 22 10:42:45 1998 Jeffrey A Law (law@cygnus.com) - - * mips.c (compute_frame_size): Change only argument to a HOST_WIDE_INT. - -Wed Apr 22 10:53:49 1998 Andrew MacLeod - - * cplus-dem.c (struct work stuff): Add field for B and K mangle codes. - (cplus_demangle_opname): Call mop_up_squangle. - (cplus_demangle): Initialize squangle info, then call - internal_cplus_demangle. (Most code moved there as well) - (internal_cplus_demangle): New function, performs most of what use - to be done in cplus_demangle, but is only called with this file. - (squangle_mop_up): New function to clean up B and K code data. - (mop_up): Set pointers to NULL after freeing. - (demangle_signature, demangle_template, demangle_class): Add - switch elements to handle K and B codes. - (demangle_prefix, gnu_special, demangle_qualified): Add - code to handle K and B codes. - (do_type, demangle_fund_type): Handle B and K codes. - (remember_Ktype): New function to store K info. - (register_Btype, remember_Btype): New functions for B codes. - (forget_B_and_K_types): New function to destroy B and K info. - -1998-04-21 Jim Wilson - - * stmt.c (check_seenlabel): When search for line number note for - warning, handle case where there is no such note. - -Tue Apr 21 20:48:37 1998 John Carr - - * genemit.c (gen_exp): Allow machine description to set mode of - MATCH_OP_DUP. - -Tue Apr 21 16:36:01 1998 John Carr - - * alias.c (mode_alias_check): New function. - (true_dependence, anti_dependence, output_dependence): Call - mode_alias_check. - -Tue Apr 21 12:05:32 1998 Jeffrey A Law (law@cygnus.com) - - * mips.h (STACK_BOUNDARY): Allow specific targets to override. - (MIPS_STACK_ALIGN): Similarly. - - * c-common.c (type_for_mode): Handle TI types. - * c-decl.c (intTI_type_node, unsigned_int_TI_type_node): Define. - (init_decl_processing): Handle TI types. - * c-tree.h (intTI_type_node, unsigned_int_TI_type_node): Declare. - - * mips.c (block_move_loop): Test Pmode == DImode instead of - TARGET_MIPS64. - (expand_block_move, save_restore_insns): Likewise. - (function_prologue, mips_expand_prologue): Likewise. - (mips_expand_epilogue): Likewise. - * mips.h (POINTER_SIZE): Allow specific targets to override. - (Pmode): Allow specific targets to override. - (FUNCTION_PROFILER): Test Pmode == DImode instead of TARGET_MIPS64. - (POINTER_BOUNDARY, FUNCTION_MODE): Likewise. - (TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE): Likewise. - (TRAMPOLINE_ALIGNMENT, INITIALIZE_TRAMPOLINE): Likewise. - (CASE_VECTOR_MODE, ASM_OUTPUT_ADDR_VEC_ELT): Likewise. - (ASM_OUTPUT_ADDR_DIFF_ELT, SIZE_TYPE, PTRDIFF_TYPE): Likewise. - * mips.md (indirect, tablejump & casesi support): Test for - Pmode == DImode instead of TARGET_MIPS64. - (call patterns): Likewise. - -Tue Apr 21 09:43:55 1998 Kaveh R. Ghazi - - * objc/sendmsg.c: Define gen_rtx_MEM() to 1, as is already done - for gen_rtx(MEM, ...). - -Tue Apr 21 02:15:36 1998 Richard Henderson - - * sparc.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Rewrite - to not be so gross, and to properly function with PIC. - -Mon Apr 20 20:44:25 1998 Jim Wilson - - * frame.c (heapsort): Rename to frame_heapsort. - - * gcc.c (do_spec_1, case '['): Move flag out of loop and initialize it. - -Mon Apr 20 12:43:09 1998 Doug Evans - - * flow.c (sbitmap_vector_alloc): Ensure sbitmaps properly aligned. - -Mon Apr 20 15:04:14 1998 John Wehle (john@feith.com) - - * i386.md (movsf_push, movdf_push, movxf_push): Allow memory - operands during and after reload. - -Mon Apr 20 22:37:50 1998 J"orn Rennecke - - * final.c (shorten_branches, init_insn_lengths): Move code - to free label_align, uid_shuid, insn_lengths, insn_addresses - and uid_align from the former function into the latter one; - Add code to clear these variables. - * sh.h (label_align): Remove declaration. - -Mon Apr 20 14:48:29 1998 Michael Meissner - - * gcc.c (lang_specific_driver): Declare prototype properly so - fatal can be passed to it without error. - - * configure.in (AC_CHECK_FUNCS): Check for strchr and strrchr. - * configure: Regenerate. - * config.in: Add #undef's for strchr and strrchr. - - * protoize.c (toplevel): If we have rindex, but not strrchr, map - rindex to strrchr. - (file_could_be_converted): Use strrchr, not rindex since rindex is - not defined on Linux systems when _POSIX_SOURCE is defined. - (file_normally_convertible): Likewise. - (process_aux_info_file): Likewise. - (main): Likewise. - - * rs6000.md (mov{sf,df} define_splits): When splitting a move of - a constant to an integer register, don't split the insns that do - the simple AND and OR operations, rather just split each word, and - let the normal movsi define split handle it further. - -Mon Apr 20 18:19:40 1998 J"orn Rennecke - - * sh.c (find_barrier): Fix bug in ADDR_DIFF_VEC handling. - (split_branches): Call init_insn_lengths. - -Mon Apr 20 07:37:49 1998 Michael Meissner - - * i386.c: Include expr.h to get the change_address prototype - declared. - -Mon Apr 20 01:00:05 1998 H.J. Lu (hjl@gnu.org) - - * reg-stack.c (subst_asm_stack_regs): Change to return the last - new insn generated by this function. - (subst_stack_regs): Likewise. - (convert_regs): Record the last newly generated insn and use - it for change_stack () instead of INSN. - -Sun Apr 19 15:41:24 1998 Manfred Hollstein - - * fix-header.c (enum special_file): Undefine enumerators if they - are already defined by include files. - * fixproto (rel_source_file in unistd.h stdlib.h): Prefix file protection - macro with '__' to not pollute user namespace. - -Sun Apr 19 02:42:06 1998 Richard Henderson - - * haifa-sched.c (queue_to_ready): Fix typo in prototype. - -Sat Apr 18 23:52:35 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sat Apr 18 18:30:22 1998 Jim Wilson - - * i386.md (fix_truncsfdi2+[123]): Add + to operand 1 constraints. - - * i386.h (CPP_CPU_DEFAULT): Renamed to CPP_CPU_DEFAULT_SPEC. - Add missing -Dpentium* options. - (CPP_CPU_SPEC): Delete redundant definition. Include cpp_cpu_default - instead of CPP_CPU_DEFAULT. - (EXTRA_SPECS): Add entry for cpp_cpu_default. - -Sat Apr 18 19:06:59 1998 David Edelsohn - - * rs6000.md (floatsidf2_loadaddr): rs6000_fpmem_offset will be - negative in a stackless frame. - * rs6000.c (rs6000_stack_info): Don't include fixed-size link area - in stackless frame size. Support 64-bit stackless frame size. - Combine fpmem offset calculations and don't add total_size to - offset if not pushing a stack frame. - -Sat Apr 18 15:41:16 1998 Jim Wilson - - * regmove.c (fixup_match_1): In three places, in flag_exceptions - check, change p to q. - -Sat Apr 18 15:30:49 1998 Jim Wilson - - * gcc.c (lang_specific_driver): Add new parm type to prototype. - (added_libraries): New file scope static variable. - (process_command): Initialize added_libraries. Pass it to - lang_specific_driver. - (main): Use added_libraries in check for no input files. - -Sat Apr 18 01:23:11 1998 John Carr - - * sparc.c, sparc.h, sparc.md, sol2.h: Many changes related to V9 - code generation. Use 64 bit instructions in 32 bit mode when - possible. Use V9 return instruction. UltraSPARC optimizations. - - * sparc.h: Change gen_rtx (CODE to gen_rtx_CODE (. - -Fri Apr 17 22:38:17 1998 Jeffrey A Law (law@cygnus.com) - - * global.c (global_alloc): Don't pass HARD_CONST (0) to find_reg, - just pass zero. That will work regardless of the size of HARD_REG_SET. - - * libgcc2.c (__floatdisf): Fix a couple typos. - -Fri Apr 17 17:28:26 1998 Jim Wilson - - * Makefile.in (mostlyclean): Delete *.mach and *.bp files. - -Fri Apr 17 16:35:35 1998 Greg McGary - - * emit-rtl.c (gen_highpart): Initialize `word' properly for pseudo. - -Fri Apr 17 14:30:37 1998 John Carr - - * emit-rtl.c (operand_subword_force): If a register can not be - accessed by words, copy it to a pseudo register. - -Fri Apr 17 14:30:37 1998 Jim Wilson - - * rs6000/vxppc.h (CPP_SPEC): Add support for mrelocatable*. - -Fri Apr 17 17:01:25 1998 Michael Meissner - - * tree.h (mark_seen_cases): Delete declaration. - -Fri Apr 17 13:32:20 1998 Jeffrey A Law (law@cygnus.com) - - * stmt.c (mark_seen_cases): Make static and add prototype. - -Fri Apr 17 11:21:43 1998 Kaveh R. Ghazi - - * frame.c: Include stdlib.h and unistd.h to possibly get various - function prototypes. The fixproto script guarantees these header - files exist on the target system. - * libgcc2.c: Likewise. - - * gthr-single.h (__gthread_mutex_lock, __gthread_mutex_trylock, - __gthread_mutex_unlock): Add __attribute__ ((__unused__)) to the - function parameters. - * libgcc2.c (__udiv_w_sdiv): Likewise. - -Thu Apr 16 22:41:02 1998 Jeffrey A Law (law@cygnus.com) - - * varasm.c (asm_output_bss): Add prototype. - (asm_output_aligned_bss): Likewise. - - * unroll.c (verify_addresses): Add prototype. - - * toplev.c: Add many prototypes. Too many to mention here. - - * stmt.c (check_seenlabel): Add prototype. - - * rtlanal.c (reg_set_p_1): Add prototype. - (reg_set_last_1): Likewise. - - * reorg.c (find_dead_or_set_registers): Add prototype. - - * regmove (try_auto_increment): Add prototype. - - * reg-stack.c (pop_stack): Add prototype. - - * recog.c (validate_replace_rtx_1): Add prototype. - (find_constant_term_loc): Likewise. - - * loop.c (regs_patch_p): Add prototype. - (add_label_notes, count_nonfixed_reads): Likewise. - (find_single_use_in_loop): Likewise. - (express_from): Surround prototype with #ifdef. - (giv_sort): Similarly. - - * jump.c (mark_modified_reg): Add prototype. - - * haifa-sched.c (is_prisky): Add prototype. - (queue_to_ready): Likewise. - - * genextract.c (gen_insn): Add prototype. - - * genemit.c (max_operand_1): Add prototype. - (max_operand_vec, print_code, gen_exp, gen_insn): Likewise. - (gen_expand, gen_explit, output_add_clobbers): Likewise. - (output_init_mov_optab): Likewise. - - * genattrtab.c (attr_hash_add_rtx): Add prototype. - (attr_hash_add_string, write_length_unit_log): Likewise. - - * genattr.c (init_range): Add prototype. - - * combine.c (sets_function_arg_p): Add prototype. - - * expr.c (store_constructor_field): Add prototype. - (get_memory_usage_from_modifier): Likewise. - - * expmed.c (synth_mult): Add prototype. - (choose_multiplier, invert_mod2n): Likewise. - - * except.c (push_eh_entry): Add prototype. - (pop_eh_entry, enqueue_eh_entry, dequeu_eh_entry): Likewise. - (call_get_eh_context, start_dynamic_cleanup): Likewise. - (start_dynamic_handler, can_throw): Likewise. - (output_exception_table_entry, scan_region): Likewise. - (eh_regs, set_insn_eh_region): Likewise. - - * dwarfout.c (decl_class_context): Add prototype. - (output_inheritance_die, type_ok_for_scope): Likewise. - - * c-lex.c (skip_white_space_on_line): Add prototype. - - * alias.c (record_set): Add prototype. - (find_base_term, base_alias_check): Likewise. - - * function.c (assign_outer_stack_local): Make static and add prototype. - - * haifa-sched.c (build_control_flow): Accept raw data as inputs - instead of computing it locally. Callers changed. - (find_rgns): Several new arguments. Callers changed. - Generally clean up and comment better. Use dominators to - identify reducible loops. Convert some flag arrays to bitmaps. - Convert most of the code to work on pred/succ lists instead of - an edge table. Add comments for future improvements. - (schedule_insns): Allocate temporary tables for flow data, call - routines to compute flow data and pass it along to children as - arguments. - (debug_control_flow): Delete. Use dump_bb_data instead. - - * basic-block.h (compute_dominators): Declare. - - * flow.c (dump_sbitmap, dump_sbitmap_vector): New debugging - functions. - * basic-block.h: Declare them. - -Thu Apr 16 13:45:51 1998 Jim Wilson - - * reg-stack.c (constrain_asm_operands): Set n_alternatives to zero if - no operands. - -Wed Apr 15 11:33:09 1998 Alexandre Petit-Bianco - - * tree.c (build_expr_wfl): Use NULL_TREE if the file name is NULL. - Propagate TREE_SIDE_EFFECTS and TREE_TYPE iff the encapsulated - node is non NULL. Cache last file name and file name identifier node. - -1998-04-15 Mark Mitchell - - * c-common.c (declare_hidden_char_array): Use TYPE_DOMAIN to get - the length of an array, not TREE_TYPE. - -Wed Apr 15 15:31:34 1998 Jeffrey A Law (law@cygnus.com) - - * flow.c (sbitmap_union_of_successors): New function. - * basic-block.h (sbitmap_union_of_successors): Declare it. - -Wed Apr 15 12:38:03 1998 Jim Wilson - - * configure.in (gnu_ld): Rename to gnu_ld_flag before main loop. - Set gnu_ld to gnu_ld_flag inside main loop. - (gas): Likewise. - -Wed Apr 15 14:50:05 1998 Dave Brolley - - * toplev.c (compile_file): Call init_parse using new interface. - (init_lex): Remove declaration. - - * c-lex.c (init_parse): Now returns char* containing filename. - -Wed Apr 15 12:37:10 1998 Jeffrey A Law (law@cygnus.com) - - * pa.h (LEGITIMIZE_RELOAD_ADDRESS): Do nothing if not optimizing. - -Wed Apr 15 12:10:18 1998 Michael Meissner - - * Makefile.in (gen{config,flags,codes,emit}): Link in host print-rtl.o. - (gen{extract,peep,opinit,output}): Likewise. - - * gen{attr,codes,config,emit,output}.c (insn_attr_name): Provide a - global definition so print-rtl.o can be linked in. - * gen{peep,recog}.c (insn_attr_name): Likewise. - -Tue Apr 14 07:30:57 1998 K. Richard Pixley - - * fixincludes: Discard empty C++ comments, as found in sys/time.h - on hpux-11.0. - -Wed Apr 15 10:47:21 1998 Andreas Schwab - - * config/m68k/m68k.md (adddi3, subdi3): Optimize for constant - operand. - -Wed Apr 15 01:21:21 1998 Jeffrey A Law (law@cygnus.com) - - * emit-rtl.c (operand_subword): Rework slightly to avoid - bogus warning from previous change. - -Tue Apr 14 23:39:13 1998 Richard Henderson - - * alpha.md: Revert Oct 27 change, as it is superseded by Kenner's - Nov 8 find_replacement change. Move decls of get_unaligned_address - * alpha.h: ... here. - -Tue Apr 14 22:00:39 1998 John Carr - - * function.c (assign_parms): Initialize unsignedp before passing - its pointer to promote_mode. - - * genattrtab.c (check_attr_test): Handle MATCH_INSN like MATCH_OPERAND. - (write_test_expr): Allow MATCH_INSN. - -Tue Apr 14 21:57:57 1998 Paul Eggert - - * install.texi: Update section on warnings that can be safely ignored. - -Tue Apr 14 14:55:16 1998 Jim Wilson - - * mips.md (reload_outdi): Change the scratch mode from DImode to - TImode. New variable scratch, used instead of operand[2] in template. - Add code for MIPS16 HILO_REGNUM case where output reg is not M16_REG_P. - -Tue Apr 14 16:19:03 1998 Michael Meissner - - * expr.c (MOVE_RATIO): Set to 3 if optimizing for space. - -Tue Apr 14 11:31:28 1998 Krister Walfridsson - - * i386/bsd386.h (ASM_OUTPUT_ALIGN): Redefine. - -Tue Apr 14 09:02:32 1998 Jeffrey A Law (law@cygnus.com) - - * svr4.h (ASM_DECLARE_OBJECT_NAME): Use HOST_WIDE_INT_PRINT_DEC. - (ASM_FINISH_DECLARE_OBJECT): Likewise. - - * Idea and part of the patch from HJ. - * Makefile.in: auto-host.h renamed from auto-config.h. All references - changed. - (distclean): Remove auto-build.h too. - * configure.in: Rename host autoconf generated file to auto-host.h. - If host != build, then run autoconf to generate auto-build.h for - the build machine and include it in build_xm_files. - Check for wait.h and sys/wait.h. - - * combine.c (simplify_rtx, case TRUNCATE): Respect value of - TRULY_NOOP_TRUNCATION. - -Mon Apr 13 11:31:49 1998 Jason Merrill - - * tree.h (BINFO_OFFSET_ZEROP): Use integer_zerop. - -Sun Apr 12 20:55:32 1998 Catherine Moore - - * invoke.texi (ld options): Include memset requirements - for options -nodstdlib and -nodefaultlibs. - -1998-04-12 Paul Eggert - - This change is from an idea suggested by Arthur David Olson. - - * c-common.c (decl_attributes, record_function_format, - check_format_info, init_function_format_info): - Add support for strftime format checking. - (enum format_type): New type. - (record_function_format): Now static, and takes value of type - enum format_type instead of int. - (time_char_table): New constant. - (struct function_format_info): format_type member renamed from is_scan. - (check_format_info): Use `warning' rather than sprintf followed by - `warning', to avoid mishandling `%' in warnings. - Change `pedwarn' to `warning', since these warnings do not necessarily - mean the program does not conform to the C Standard, as the code - need not be executed. - - * c-tree.h (record_function_format): Remove decl; no longer extern. - - * extend.texi: Add documentation for strftime format checking. - -Sun Apr 12 20:23:03 1998 Jeffrey A Law (law@cygnus.com) - - * mips/ecoffl.h: Do not include mips.h. - * mips/elf.h: Likewise. - - * configure.in (mips-*-ecoff): Do not mention mips/mips.h in tm_files. - * mips/ecoff.h: Include "mips/mips.h". - -Sat Apr 11 22:42:54 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sat Apr 11 01:24:28 1998 Jeffrey A Law (law@cygnus.com) - - * cse.c (count_reg_usage): Correctly handle REG_NONNEG notes. - (delete_trivially_dead_insns): Renamed from delete_dead_from_cse. - * toplev.c (rest_of_compilation): Call delete_trivially_dead_insns instead of delete_dead_from_cse. Also call delete_trivially_dead_insns - between loop optimization passes. - * rtl.h: Updated appropriately. - -Fri Apr 10 22:28:32 1998 Jeffrey A Law (law@cygnus.com) - - Reinstall this patch from Jason. - * function.c (push_function_context_to): Don't call init_emit. - -Fri Apr 10 13:40:20 1998 Nick Clifton - - * rtl.c (read_skip_spaces): Prevent infinite loops upon - encountering unterminated comments. - -Fri Apr 10 10:43:41 1998 Jeffrey A Law (law@cygnus.com) - - * emit-rtl.c (operand_subword): Properly handle CONST_INTs for - 64x32 cross builds. - - * configure.in: Handle --with-fast-fixincludes. - (fixincludes): If --with-fast-fixincludes, then use a different - fixincludes program by default. - * Makefile.in (fixinc.sh): New rule. - -Fri Apr 10 00:36:31 1998 H.J. Lu (hjl@gnu.org) - - * i386.md (movqi+1): Handle invalid QI register. - (movsf_push-1): Likewise. - -Thu Apr 9 16:53:59 1998 Nick Clifton - - * config/m32r/m32r.c: call_address_operand(): Only accept symbolic - addresses. - symbolic_memort_operand(), call32_operand(), int8_operand(), - int16_operand(), uint24_operand(), reg_or_int8_operand(): Removed. - Not used. - uint16_operand(): Made static. - -Thu Apr 9 01:43:04 1998 Jeffrey A Law (law@cygnus.com) - - * calls.c (expand_call): Fix typo. - -Thu Apr 9 00:18:44 1998 Dave Brolley (brolley@cygnus.com) - - * c-lex.c (finput): New global. - (init_parse): Always included. Handle !USE_CPPLIB using - code originally in compile_file. - (finish_parse): Update for CPPLIB. - * toplev.c (init_parse, finish_parse): Declare. - (finput): Delete variable. Now in front-ends. - (compile_file): Remove code which is now handled by init_parse - which is unconditionally called. Similarly for finish_parse. - -Wed Apr 8 23:13:50 1998 Gavin Koch - - * config/mips/r3900.h (ASM_OUTPUT_DEF,SUPPORTS_WEAK, - ASM_WEAKEN_LABEL): Add. - -Wed Apr 8 18:21:30 1998 Richard Henderson - - * alpha/crtbegin.asm, alpha/crtend.asm, alpha/t-crtb: New files. - * configure.in (alpha-*-linux*): Use them. - -Fri Apr 3 17:02:13 1998 Alexandre Petit-Bianco - - * tree.def (EXPR_WITH_FILE_LOCATION): New tree node definition. - * tree.h (EXPR_WFL_{NODE,FILENAME,FILENAME_NODE,LINENO, - COLNO,LINECOL,SET_LINECOL,EMIT_LINE_NOTE}): New macros. - (build_expr_wfl): New prototype declaration. - * tree.c (build_expr_wfl): New function, to build - EXPR_WITH_FILE_LOCATION nodes. - (copy_node): Don't zero TREE_CHAIN if copying a - EXPR_WITH_FILE_LOCATION node. - * print-tree.c (print_node): Handle EXPR_WITH_FILE_LOCATION. - * expr.c (expand_expr): Handle EXPR_WITH_FILE_LOCATION. - -Wed Apr 8 12:51:19 1998 Jeffrey A Law (law@cygnus.com) - - * configure.in (v850): Use t-v850. - (ix86-wrs-vxworks): Recognize 786 just like other x86 configurations. - - * protoize.c (creat, read, write): Do not declare. - - * jump.c (mark_jump_label): Record REG_LABEL notes for insns which - refer to the CODE_LABEL before a dispatch table. - - * invoke.texi: Add ARC options. - - * gcc.c (process_command): Improve error message for -o with - either -c or -S. - - * i386/x-cygwin32 (CLIB): Link in advapi32. - - * alpha.h (ASM_IDENTIFY_GCC): Define to nothing. - (ASM_IDENTIFY_LANGUAGE): Likewise. - - * i386.md (movqi recognizer): Don't perfom byte increment into - a NON_QI_REG_P. - - * configure.in (x86-dg-dgux): Run fixinc.dgux. - - * i370.h: Fix typo in GEN_INT changes. - - * bitmap.c (bitmap_element_allocate): Use "void" for arglist instead - of an empty arglist in prototype. - - * Makefile.in: Remove bytecode crud that crept back in after the - gcc2 merge. - -1998-04-08 Brendan Kehoe - - * c-lex.h (is_class_name): Fix arg type to be tree, not void. - (make_pointer_declarator, reinit_parse_for_function): Fix typo. - -Wed Apr 8 06:16:45 1998 Richard Earnshaw (rearnsha@arm.com) - - * arm.h (LEGITIMIZE_RELOAD_ADDRESS): Define. - -Wed Apr 8 00:44:18 1998 Bernd Schmidt (crux@pool.informatik.rwth-aachen.de> - - * c-lex.c (is_class_name): Delete declaration. - (whitespace_cr): Make static and add prototype. - * c-lex.h (make_pointer_declarator, reinit_parse_for_function, - yylex, get_directive_line): Turn declarations into prototypes. - (position_after_whitespace, check_newline, yyerror,, is_class_name, - forget_protocol_qualifiers, remember_protocol_qualifiers): Add - prototypes. - * genattr.c (extend_range, write_upcase, gen_attr, write_units): Add - prototypes. - * gencodes.c (gen_insn): Add prototype. - * genconfig.c (walk_insn, gen_insn, gen_expand, gen_split, - gen_peephole): Add prototypes. - * genflags.c (num_operands, gen_proto, gen_nonproto, gen_insn): Add - prototypes. - * gengenrtl.c (type_from_format, accessor_from_format, special_rtx, - special_format, find_formats, gendecl, genmacro, gendef, genlegend, - genheader, gencode): Add prototypes. - * genopinit.c (gen_insn): Add prototype. - * genoutput.c (output_prologue, output_epilogue, scan_operands, - process_template, validate_insn_alternatives, gen_insn, gen_peephole, - gen_expand, gen_split, n_occurrences): Add prototypes. - * genpeep.c (gen_peephole): Add prototype. - * loop.c (find_and_verify_loops, mark_loop_jump, prescan_loop, - reg_in_basic_block_p, consec_sets_invariant_p, libcall_other_reg, - labels_in_range_p, count_loop_regs_set, note_addr_stored, - loop_reg_used_before_p, scan_loop, replace_call_address, - skip_consec_insns, libcall_benefit, ignore_some_movables, - force_movables, combine_movables, rtx_equal_for_loop_p, move_movables, - strength_reduce, valid_initial_value_p, find_mem_givs, record_biv, - check_final_value, record_giv, update_giv_derive, basic_induction_var, - simplify_giv_expr, general_induction_var, consec_sets_giv, - check_dbra_loop, express_from, combine_givs_p, combine_givs, - product_cheap_p, maybe_eliminate_biv, maybe_eliminate_biv_1, - last_use_this_basic_block, record_initial, update_reg_last_use, - iteration_info, analyze_loop_iterations, insert_bct, - instrument_loop_bct, indirect_jump_in_function_p): Turn declarations - into prototypes. - -Tue Apr 7 21:48:52 1998 Jeffrey A Law (law@cygnus.com) - - * pa.h (LEGITIMIZE_RELOAD_ADDRESS): Define. - -1998-04-07 Ken Raeburn - - * config/mips/mips.c (siginfo): Deleted. - (override_options): Don't install SIGINFO signal handler. - -Tue Apr 7 11:58:04 1998 Jim Wilson - - * loop.c (check_dbra_loop): When normalize comparison_val, add check - to verify it is non-negative. - -Tue Apr 7 02:01:47 1998 Richard Henderson - - * alpha.c (alpha_expand_block_move): Correctly collect block offsets. - (alpha_expand_block_clear): Likewise. - -Mon Apr 6 23:36:01 1998 Richard Henderson - - * tree.h (sizetype_tab): Fix previous change for K&R. - -Mon Apr 6 22:23:29 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Mon Apr 6 23:16:10 1998 Richard Earnshaw (rearnsha@arm.com) - - * configure.in (sparc-*-solaris2*): Add xm-siglist.h to xm_file. - Add USG and POSIX to xm_defines. - -Mon Apr 6 21:49:57 1998 Bob Manson - - * gcc.c: Add linker spec. - (link_command_spec): Use %(linker) instead of ld. - (main): If collect2 is requested as the linker, see if it exists; - if not, use ld instead. - - * Makefile.in (USE_COLLECT2): It's named collect2 now, not ld. - (ld): Deleted. - (install-collect2): Install as collect2, not ld. - - * configure.in(will_use_collect2): It's named collect2 now. - - * collect2: Remove checks to see if we were invoked recursively. - (collect_execute): Use _spawnvp under cygwin32. - -Mon Apr 6 17:23:41 1998 Jim Wilson - - * haifa-sched.c (build_control_flow): Set unreachable for block whose - only predecessor is itself. - -Mon Apr 6 16:08:04 1998 Kaveh R. Ghazi - - * c-parse.in: Include system.h, and remove stuff now made redundant. - * cccp.c: Likewise. - * cexp.y: Likewise. - * protoize.c: Likewise. Properly check for cpp stringification. - - * Makefile.in (c-parse.o, cccp.o, cexp.o, protoize.o, unprotoize.o): - Depend on system.h. - - * objc/Make-lang.in (objc-parse.o): Likewise. - -Mon Apr 6 14:59:58 1998 Kaveh R. Ghazi - - * gansidecl.h: Check if compiler supports __attribute__. Provide - definitions for ATTRIBUTE_UNUSED and ATTRIBUTE_PRINTF using - __attribute__ when its available. Also provide definitions for - ATTRIBUTE_PRINTF_1, ATTRIBUTE_PRINTF_2 and ATTRIBUTE_PRINTF_3 in - terms of ATTRIBUTE_PRINTF. - - * genoutput.c (process_template): Use ATTRIBUTE_UNUSED in place - of __attribute__. - -Mon Apr 6 07:17:52 1998 Catherine Moore - - * combine.c (can_combine_p): Include successor in volatile test. - -Mon Apr 6 14:16:33 1998 J"orn Rennecke - - * sh.h (CASE_VECTOR_SHORTEN_MODE): Fix logic when to set - offset_unsigned. - -Mon Apr 6 02:03:29 1998 Jeffrey A Law (law@cygnus.com) - - * objc/objc-act.c (encode_aggregate_within): Avoid GNU extensions - in prototype and definition. - -Mon Apr 6 00:48:56 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Mon Apr 6 00:08:50 1998 Richard Henderson - - * alpha.c (alpha_expand_block_clear): Add missing offset arg to - alpha_expand_unaligned_store_words. - -Sun Apr 5 21:31:24 1998 John Wehle (john@feith.com) - - * i386.md (movsf_push, movsf_mem): Remove. - (movsf_push): Rename from movsf_push_nomove and move in front of - movsf. Use nonmemory_operand predicate and don't bother checking - TARGET_MOVE. - (movsf_push_memory): New pattern. - (movsf): Don't bother checking for push_operand. If TARGET_MOVE and - both operands refer to memory then force operand[1] into a register. - (movsf_normal): Change to unnamed pattern. - Likewise for movdf, movxf, and friends. - -Sun Apr 5 18:45:51 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sun Apr 5 16:31:10 1998 Richard Henderson - - * configure.in (alpha-dec-osf*): Match osf1.3 correctly. - -Sun Apr 5 16:53:37 1998 Don Bowman - - * configure.in (mips-wrs-vxworks): New target. - -Sat Apr 4 23:34:32 1998 Jeff Law (law@cygnus.com) - - * expmed.c (synth_mult): The value -1, has no zeros, so it can - never have the form ...011. - - * version.c: Bump for snapshot. - -Sat Apr 4 20:16:46 1998 Richard Henderson - - * i386.c (asm_output_function_prefix, load_pic_register): - Use ASM_GENERATE_INTERNAL_LABEL properly. - (output_pic_addr_const): Recognize %X to suppress any PIC sym suffix. - (print_operand): Ignore it. - (load_pic_register): Use it for the got load call. - * i386.md (prologue_set_got, prologue_get_pc): Likewise. - (prologue_get_pc_and_set_got): Likewise. - * i386.h: Update print_operand docs. - -Sat Apr 4 19:08:37 1998 Richard Henderson - - * i386.md (ffssi, ffshi): Rewrite as define_expands. - (ffssi_1, ffshi_1): New (unspec [] 5) support patterns. - * i386.c (notice_update_cc): Recognize unspec 5. - -Sat Apr 4 18:07:16 1998 David Mosberger-Tang (davidm@mostang.com) - - * alpha.h (PRINT_OPERAND_PUNCT_VALID_P): Accept '(' for s/sv/svi. - * alpha.c (print_operand): Handle it. - * alpha.md (fix_truncsfdi2): Use it. Add earlyclobber pattern - for ALPHA_TP_INSN. - (fix_truncdfdi2): Likewise. - -Sat Apr 4 17:42:05 1998 Richard Henderson - - * tree.h (sizetype_tab[2], sbitsizetype, ubitsizetype): Merge all - of these into a single struct, with additional [us]sizetype entries. - * stor-layout.c (set_sizetype): Initialize [us]sizetype. - * fold-const.c (size_int_wide): Don't rely on sizetype_tab being - an array. - -Sat Apr 4 17:04:41 1998 Richard Henderson - - * configure.in (alpha-*-linux-*): Undo tm_file changes from gcc2 merge. - -Sat Apr 4 13:50:01 1998 Richard Henderson - - * haifa-sched.c (split_block_insns): Don't suppress insn splitting - on subsequent passes. - - * alpha.c (hard_fp_register_operand): New function. - * alpha.h (PREDICATE_CODES): Add it. - * alpha.md (extendsidi2): Kill bogus f<-f cvtql+cvtlq case. Add an - f<-m case and accompanying define_split. - (trapb): Use a unique unspec_volatile number. - -Sat Apr 4 13:32:08 1998 Richard Henderson - - * configure.in (alpha-*-linux-gnu*): Undo Feb 3 change brought in - from gcc2 merge. - -Sat Apr 4 10:23:41 1998 Jeffrey A Law (law@cygnus.com) - - * Check in merge from gcc2. See ChangeLog.11 and ChangeLog.12 - for details. - - * haifa-sched.c: Mirror recent changes from gcc2. - -Fri Apr 3 00:17:01 1998 Jeffrey A Law (law@cygnus.com) - - * Makefile.in (insn*.o): Depend on system.h. - - * pa.c (output_global_address): Initialize base. - * pa.h (GO_IF_LEGITIMATE_ADDRESS): Initialize index. - -1998-04-03 Mike Stump - - * gthr.h: Support systems that don't have weak, but have threads. - * configure.in (*wrs-vxworks*): Use VxWorks threads by default. - * gthr-vxworks.h: New file. - * objc/thr-vxworks.h: Dummy file from thr-single.c for now. - -Thu Apr 2 18:00:52 1998 Jim Wilson - - * i386.md (movqi+1): Change alternative 1 from *r/r to *r/*rn. - -1998-04-02 Vladimir N. Makarov - - * ginclude/va-i960.h (va_end): Change void * to void. - -Thu Apr 2 13:51:10 1998 Kaveh R. Ghazi - - * Makefile.in (choose-temp.o): Depend on system.h. - - * choose-temp.c: Include system.h when IN_GCC. - -Thu Apr 2 02:37:07 1998 Joern Rennecke (amylaar@cygnus.co.uk) - Richard Henderson - - * reload.c (find_reloads_address): Try LEGITIMIZE_RELOAD_ADDRESS. - (move_replacements): New function. - * reload.h: Prototype it. - - * alpha.h (LEGITIMIZE_RELOAD_ADDRESS): New definition. - -Thu Apr 2 01:01:34 1998 Richard Henderson - - * configure (alpha-*-linuxecoff, alpha-*-linux-gnulibc1): - Run fixincludes. - - * emit-rtl.c (gen_lowpart_common): Skip count by HARD_REGNO_NREGS. - (gen_highpart): Likewise. - * final.c (alter_subreg): Allow the target to hook by-mode subreg - hard register number changes. - -Wed Apr 1 22:26:22 1998 Jeffrey A Law (law@cygnus.com) - - * fold-const.c optimze_bit_field_compare): Initialize rnbitpos, - rnbitsize, rnmode and rinner. - (make_range): Initialize type. - (fold): Initialize arg0, arg1 and varop. - - * function.c (instantiate_virtual_regs_1): Initialize offset, regnoi - and regnor. - (expand_function_start): Initialize last_ptr. - - * stor-layout.c (layout_record): Initialize desired_align. - (get_best_mode): Initialize unit. - - * tree.c (copy_node): Initialize length. - - * c-lex.c (yylex): Initialize traditional_type, ansi_type and type. - - * caller-save.c (insert_save_restore): Initialize pat, code and - numregs. - - * emit-rtl.c (push_to_sequence): Initialize top. - (push_topmost_sequence): Likewise. - - * genattrtab.c (simplify_by_exploding): Initialize defval. - - * profile.c (branch_prob): Initialize dest. - - * rtl.h (note_stores): Remove duplicate prototype. - (GEN_INT): Reinstate cast of second arg to HOST_WIDE_INT. - - * cplus-dem.c (gnu_special): Don't get confused by . - strings that are not actually lengths. - - * genattrtab.c: Make generated file use system.h, instead of - including stdio.h, etc directly. - * genextract.c, genopinit.c, genoutput.c: Likewise. - * genpeep.c, genrecog.c: Likewise. - - * genoutput.c (process_template): Mark operands in the generated - function as potentially unused if compiling with GNU CC. - - * i386/freebsd-elf.h (CPP_PREDEFINES): Update from FreeBSD folks. - - * pa.md (reload peepholes): Remove unused variable "mode". - -Wed Apr 1 17:06:19 1998 Nick Clifton - - * config/arm/thumb.h: Add super interworking support. - * config/arm/thumb.c: Add super interworking support. - * config/arm/thumb.md: Add super interworking support. - * config/arm/lib1funcs.asm: Add interworking support. - * config/arm/lib1thumb.asm: Add super interworking support. - * config/arm/t-semi: Add interworking support. - * config/arm/t-thumb: Add interworking support. - * config/arm/README-interworking: New file. - -Wed Apr 1 14:38:10 1998 Jim Wilson - - * config/mips/iris6.h (MD_EXEC_PREFIX): Set to /usr/bin/. - (MD_STARTFILE_PREFIX): Unset. - -1998-04-01 Mark Mitchell - - * varasm.c (make_decl_rtl): Update the DECL_ASSEMBLER_NAME for a - entity in a local scope. - - * fold-const.c (fold): Call truthvalue_conversion for values which - are folded to boolean type. - -Wed Apr 1 06:09:53 1998 Jeffrey A Law (law@cygnus.com) - - * 1750a.md, arm.c, clipper.c, clipper.md: Use GEN_INT consistently. - * convex.h, dsp16xx.c, fx80.md, gmicro.c, gmicro.md: Likewise. - * i370.h, i370.md, i860.c, i860.h, i860.md, i960.c: Likewise. - * i960.h, i960.md, m32r.md, m68k.md, m68kv4.h, m88k.c: Likewise. - * m88k.md, ns32k.c, ns32k.md, pdp11.c, pdp11.h, pdp11.md: Likewise. - * pyr.c, pyr.h, pyr.md, romp.c, romp.h, romp.md: Likewise. - * rs6000.md, sparc.c, sparc.h, sparc.md, spur.c, spur.md: Likewise. - * tahoe.md, vax.h, vax.md, we32k.c, we32k.h, we32k.md: Likewise. - * md.texi: Likewise. - -Wed Apr 1 08:33:44 1998 Manfred Hollstein - - * fixincludes (limits.h): Fix nested comments in Motorola's - limits.h and sys/limits.h. - -Tue Mar 31 16:57:33 1998 Jim Wilson - - * alpha.c (alpha_expand_unaligned_load): Use tgt instead of addr - as dest of expand_binop call. - - * alpha.md (extzv): Correct check for valid operand[2] values. - - * profile.c (branch_prob): Add code to recognize HPPA tablejump entry - branch. - - * toplev.c (rest_of__compilation): Call init_recog_no_volatile at end. - -Mon Mar 30 13:11:05 1998 Stan Cox - - * libgcc2.c (__main, __do_global_dtors, __do_global_ctors): - For __CYGWIN32__ use the versions in winsup/dcrt0.cc. - - * gcc.c, cccp.c, cpplib.c, collect2.c (GET_ENVIRONMENT): Added. - cygwin32 can override this to allow both unix and win32 style PATHs. - - * i386/xm-cygwin32.h (GET_ENVIRONMENT): Defined to allow win32 - style environment paths. - -Mon Mar 30 14:43:20 1998 Kaveh R. Ghazi - - * Makefile.in (cppalloc.o, cpperror.o, cppexp.o, cpphash.o, - cpplib.o, cppmain.o, fix-header.o, gcov.o, gen-protos.o, - gengenrtl.o, halfpic.o, hash.o, scan-decls.o, scan.o): Depend on - system.h. - - * cpphash.c: Include config.h. - * cppalloc.c: Include system.h. Add parameters to various - function prototypes. - * cpperror.c: Likewise. - * cppexp.c: Likewise. - * cpphash.c: Likewise. - * cpplib.c: Likewise. - * cppmain.c: Likewise. - * fix-header.c: Likewise. - * gcov.c: Likewise. - * gen-protos.c: Likewise. - * gengenrtl.c: Likewise. - * halfpic.c: Likewise. - * hash.c: Likewise. - * scan-decls.c: Likewise. - * scan.c: Likewise. - -Mon Mar 30 11:06:45 1998 Jim Wilson - - * README.gnat: Add lang_print_xnode definition. - -Mon Mar 30 11:12:24 1998 Andreas Schwab - - * config/m68k/m68k.c (standard_68881_constant_p): Don't use - fmovecr on the 68060. - -Mon Mar 30 00:21:03 1998 Jeffrey A Law (law@cygnus.com) - - * genemit.c (DONE): Rework so that it works in the true arm if - an if-else conditional. - (FAIL): Likewise. - -Sun Mar 29 12:45:23 1998 Jeffrey A Law (law@cygnus.com) - - * rs6000.c: Do not include stdioh or ctype.h anymore. - - * Makefile.in (c-typeck.o): Delete on expr.h, insn-codes.h and - $(RTL_H). - (stor-layout.o): Likewise. - * c-typeck.c: Include rtl.h and expr.h. - * stor-layout.c: Likewise. - - * cpplib.c (cpp_file_line_for_message): Delete unused parameter. - All callers changed. - (do_sccs): Wrap in an SCCS_DIRECTIVE ifdef. - * fix-header.c (cpp_file_line_for_message): Delete unused parameter. - All callers changed. - - * collect2.c (is_in_list): Wrap inside COLLECT_EXPORT_LIST ifdef. - - * local-alloc.c (reg_classes_overlap_p): Delete dead function. - - * tree.h (lang_print_xnode): Provide prototype. - -Sat Mar 28 23:50:44 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sun Mar 29 00:42:21 1998 Jeffrey A Law (law@cygnus.com) - - * objc/sendmsg.c (__objc_block_forward): Add braces for return - value if INVISIBLE_STRUCT_RETURN. - - * pa.c (arith_double_operand): Fix parens. - - * haifa-sched.c (print_pattern): Correct arg to sprintf. - - * Makefile.in (libgcc1.null): Make return type for __foo void. - -Sat Mar 28 14:37:20 1998 Jeffrey A Law (law@cygnus.com) - - * pa.h: Add declarations for many functions defined in pa.c. - - * genpeep.c (main): Remove unused variable 'i' from the generated - file. - - * genemit.c (gen_expand): Do not emit "_done" or "_fail" labels. - (gen_split): Likewise. - (main): Rework generated definitions of DONE and FAIL so that they - no longer use gotos. Avoids warnings about unused labels. - - * integrate.c (copy_rtx_and_substitute): Rework to avoid need for - unused "junk" variable. - - * genattrtab.c (write_complex_function): Add a default case in - generated switch statement to keep -W -Wall quiet. - -Sat Mar 28 10:47:21 1998 Nick Clifton - - * invoke.texi: Document more ARM and Thumb command line options. - - * config/arm/xm-thumb.h: New file. - -Sat Mar 28 01:37:33 1998 Craig Burley - - * stmt.c (expand_expr_stmt): Must generate code for - statements within an expression (gcc's `({ ... )}') - even if -fsyntax-only. - -Sat Mar 28 01:06:12 1998 Bernd Schmidt - Jeffrey A Law (law@cygnus.com) - - * basic-block.h (basic_block_computed_jump_target): Declare. - * flags.h (current_function_has_computed_jump): Declare. - * flow.c (basic_block_computed_jump_target): Define. - (flow_analysis): Allocate it. Set current_function_has_computed_jump - to 0. - (find_basic_blocks): Set current_function_has_computed_jump and - elements of basic_block_computed_jump_target to 1 as appropriate. - * function.c (current_function_has_computed_jump): Define. - * global.c (global_conflicts): Don't allocate pseudos into stack regs - at the start of a block that is reachable by a computed jump. - * reg-stack.c (stack_reg_life_analysis): If must restart, do so - immediately. - (subst_stack_regs): Undo change from Sep 4 1997. - (uses_reg_or_mem): Now unused, deleted. - * stupid.c (stupid_life_analysis): Compute - current_function_has_computed_jump. - (stupid_find_reg): Don't allocate stack regs if the function has a - computed goto. - * haifa-sched.c (is_cfg_nonregular): Delete code to determine if - the current function has a computed jump. Use the global value - instead. - -Sat Mar 28 00:21:37 1998 Jeffrey A Law (law@cygnus.com) - - * i386/freebsd.h (CPP_PREDEFINES): Remove __386BSD__. - (DWARF2_UNWIND_INFO): Define to zero. - -Fri Mar 27 16:04:49 1998 Michael Meissner - - * gcc.c (set_std_prefix): Add declaration. - (process_command): If GCC_EXEC_PREFIX is set, remove /lib/gcc-lib/ - suffix, and update the standard prefix prefix.c uses. - - * prefix.c (std_prefix): New global to hold default prefix value. - (get_key_value): Change to use std_prefix instead of PREFIX. - (translate_name): Likewise. - (update_path): Likewise. - (get_key_value): Release allocated scratch storage. - (set_std_prefix): New function to reset the standard prefix. - -Fri Mar 27 18:08:21 1998 J"orn Rennecke - - * sh.c (find_barrier): Fix calculations for alignment increase. - -Fri Mar 27 08:56:52 1998 Manfred Hollstein - - * Makefile.in (stmp-fixinc): If we're actually fixing include - files, copy gcc's assert.h into the fixed include dir. - * fixincludes (assert.h): Avoid any attempts to fix a probably - broken system specific assert.h file. - * fixproto (stdlib.h): Make sure, it'll contain a definition of - size_t. - -Fri Mar 27 00:49:46 1998 Jeffrey A Law (law@cygnus.com) - - * regclass.c (reg_scan_mark_refs): Be more selective about - when we mark a register with REGNO_POINTER_FLAG. - -Thu Mar 26 23:00:11 1998 J"orn Rennecke - - reload inheritance improvement: - * reload1.c (reg_reloaded_contents, reg_reloaded_insn): - Change meaning: index is now hard reg number. - (reg_reloaded_valid, reg_reloaded_dead): New variables. - (reload_spill_index): Content is now a hard reg number. - (reload_as_needed): Change to fit new variable meaning. - (forget_old_reloads_1, allocate_reload_reg): Likewise. - (choose_reload_regs, emit_reload_insns): Likewise. - -Thu Mar 26 18:34:13 1998 J"orn Rennecke - - * regclass.c (record_reg_classes): '?' increases cost by two. - - * reload.c (find_reloads): Double previous costs. Output - reloads cost one unit extra. - - * reload1.c (eliminate_regs): Delete LOAD_EXTENDED_OP code that - boiled down to && ! 0. - - * reload.c (find_equiv_reg): Also consider a goal offset from the - frame pointer to be constant. - -Thu Mar 26 17:34:46 1998 J"orn Rennecke - - * sh.h (OPTIMIZATION_OPTIONS): Define. - -Thu Mar 26 00:19:47 1998 Richard Henderson - - * combine.c (make_compound_operation): Simplify (subreg (*_extend) 0). - -Wed Mar 25 23:53:11 1998 Jeffrey A Law (law@cygnus.com) - - * pa.c (pa_adjust_cost): Avoid redundant calls to get_attr_type. - -Wed Mar 25 13:40:48 1998 Jim Wilson - - * c-common.c (check_format_info): Initialize type, is_type. New local - integral_format. Don't warn for 'L' when pedantic. Do warn for 'L' - when pedantic if used with integral format specifier. - -Wed Mar 25 16:09:01 1998 Michael Meissner - - * rs6000.h (FUNCTION_ARG_PADDING): Cast result to be enum - direction. - (function_arg_padding): Declare. - - * rs6000.c: Include system.h. - (function_arg_padding): Change return type to int, cast enum's to - int. - - (From Kaveh R. Ghazi ) - * collect2.c (scan_prog_file): Add explicit braces to avoid - ambiguous `else'. - - * dbxout.c (dbxout_type_fields): Add braces around empty body in - an if-statement. - (dbxout_type): Likewise. - - * rs6000.c (rs6000_override_options): Change type of `i', `j' and - `ptt_size' from int to size_t. - (rs6000_file_start): Likewise for `i'. - (rs6000_replace_regno): Add default case in enumeration switch. - (output_epilog): Remove unused variable `i'. - (rs6000_longcall_ref): Remove unused variables `len', `p', `reg1' - and `reg2'. - - * rs6000.h (ADDITIONAL_REGISTER_NAMES): Add missing braces around - initializer. - (get_issue_rate, non_logical_cint_operand): Add prototype. - (rs6000_output_load_toc_table): Likewise. - - * rs6000.md (udivmodsi4): Add explicit braces to avoid ambiguous - `else'. - -Wed Mar 25 10:05:19 1998 Nick Clifton - - * config/arm/thumb.c: New File. Support for ARM's Thumb - instruction set. - * config/arm/thumb.h: New File. Thumb definitions. - * config/arm/thumb.md: New File. Thumb machine description. - * config/arm/tcoff.h: New File. Thumb COFF support. - * config/arm/t-thumb: New File. Thumb makefile fragment. - * config/arm/lib1thumb.asm: New File. Thumb libgcc support functions. - - * configure.in: Add Thumb-coff target. - * configure: Add Thumb-coff target. - * config.sub: Add Thumb-coff target. - -Wed Mar 25 10:30:32 1998 Jim Wilson - - * loop.c (scan_loop): Initialize move_insn_first to zero. - -Wed Mar 25 01:06:49 1998 Joel Sherrill (joel@OARcorp.com) - - * config/i386/go32-rtems.h: Defined TARGET_MEM_FUNCTIONS. - * config/i386/rtems.h: Likewise. - * config/i960/rtems.h: Likewise. - * config/m68k/rtems.h: Likewise. - * config/mips/rtems64.h: Likewise. - * config/pa/rtems.h: Likewise. - * config/rs6000/rtems.h: Likewise. - * config/sh/rtems.h: Likewise. - * config/sparc/rtems.h: Likewise. - -Wed Mar 25 00:57:26 1998 Richard Kenner - - * pa.c (emit_move_sequence): If in reload, call find_replacement. - -Tue Mar 24 10:44:11 1998 Nick Clifton - - * Makefile.in (gcov$(exeext)): Support .exe extension to gcov. - - * collect2.c (find_a_file): Add debugging. - (find_a_file): Test for win32 style absolute paths if - DIR_SERPARATOR is defined. - (prefix_from_string): Add debugging. - (main): Test for debug command line switch at start of program - execution. - (main): Use GET_ENVIRONMENT rather than getenv(). - (prefix_from_env): Use GET_ENVIRONMENT. - -1998-03-24 Mark Mitchell - - * cplus-dem.c (optable): Add sizeof. - (demangle_template_value_parm): New function containing code - previously found in demangle_template. - (demangle_integral_value): New function which handles complicated - integral expressions. - (demangle_template): Use them. - -Tue Mar 24 12:13:18 1998 Kaveh R. Ghazi - - * Makefile.in (genconfig.o, genflags.o, gencodes.o, genemit.o, - genopinit.o, genrecog.o, genextract.o, genpeep.o, genattr.o, - genattrtab.o, genoutput.o): Depend on system.h. - - * genattr.c: Include system.h. Add arguments to various function - prototypes. Remove redundant prototype of read_rtx(). - * genattrtab.c: Likewise. - * gencodes.c: Likewise. - * genconfig.c: Likewise. - * genemit.c: Likewise. - * genextract.c: Likewise. - * genflags.c: Likewise. - * genopinit.c: Likewise. - * genoutput.c: Likewise. - * genpeep.c: Likewise. - * genrecog.c: Likewise. - -1998-03-24 Martin von Loewis - - * c-lang.c (lang_print_xnode): New function. - * objc/objc-act.c (lang_print_xnode): Likewise. - * print-tree.c (print_node): Call it - -Mon Mar 23 23:59:11 1998 H.J. Lu (hjl@gnu.org) - - * c-parse.in: Recognize protocol qualifiers in class - definitions for objc. - Include "output.h". - (yyerror): Remove redundant decl. - (yyprint): Fix prototype. - -Mon Mar 23 23:49:47 1998 Jeffrey A Law (law@cygnus.com) - - * cse.c (rtx_cost): Only call CONST_COSTS if it is defined. - - * stmt.c (unroll_block_trees): Free block_vector if needed. - -Mon Mar 23 23:26:42 1998 Philippe De Muyter - - * m68k/m68k.md (zero_extendqidi2, zero_extendhidi2): New patterns. - (zero_extendsidi2): Avoid useless copy. - (iordi_zext): New pattern. - (iorsi_zexthi_ashl16): Pattern reworked to avoid "0" constraint for - operand 2. - (iorsi_zext): New name for old unnamed pattern; indentation fixes. - - * m68k/m68k.md (ashldi_const): Allow shift count in range ]32,63]. - (ashldi3): Allow constant shift count in range ]32,63]. - (ashrdi_const, ashrid3, lshrdi_const, lshrdi3): Likewise. - -1998-03-22 Mark Mitchell - - * tree.h (IS_EXPR_CODE_CLASS): New macro. - -Mon Mar 23 23:18:48 1998 Jeffrey A Law (law@cygnus.com) - - * h8300.h (CONST_COSTS): Remove definition. - (DEFAULT_RTX_COSTS): Define. - -Mon Mar 23 22:58:22 1998 Joel Sherrill (joel@OARcorp.com) - - * config/sh/rtems.h: Switched from ELF to COFF. - -Mon Mar 23 14:14:20 1998 J"orn Rennecke - - * freebsd.h (ASM_OUTPUT_ALIGN): Redefine. - -Sat Mar 21 23:52:56 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sun Mar 22 00:50:42 1998 Nick Clifton - Geoff Noer - - * Makefile.in: Various fixes for building cygwin32 native toolchains. - - * objc/Makefile.in: Various fixes for building cygwin32 native toolchains. - * objc/Make-lang.in: Likewise. - - * config/i386/xm-cygwin32.h (PATH_SEPARATOR): Set to a semi-colon. - -Sun Mar 22 00:21:46 1998 R. Ganesan - - * configure.in: Handle with-PACKAGE=no correctly - -Fri Mar 20 17:36:23 1998 Kaveh R. Ghazi - - * Makefile.in (alias.o, bitmap.o, c-aux-info.o, c-common.o, - c-decl.o, c-iterate.o, c-lang.o, c-lex.o, c-pragma.o, c-typeck.o, - caller-save.o, calls.o, collect2.o, combine.o, cse.o, dbxout.o, - dwarf2out.o, dwarfout.o, emit-rtl.o, except.o, explow.o, expmed.o, - expr.o, final.o, flow.o, function.o, getpwd.o, global.o, - integrate.o, jump.o, local-alloc.o, loop.o, optabs.o, pexecute.o, - prefix.o, print-rtl.o, print-tree.o, profile.o, real.o, recog.o, - reg-stack.o, regclass.o, regmove.o, reload.o, reload1.o, reorg.o, - rtl.o, rtlanal.o, sdbout.o, stmt.o, stor-layout.o, stupid.o, - tlink.o, toplev.o, tree.o, unroll.o, varasm.o, xcoffout.o): Depend - on system.h. - - * alias.c, bitmap.c, c-aux-info.c, c-common.c, c-decl.c, - c-iterate.c, c-lang.c, c-lex.c, c-pragma.c, c-typeck.c, - caller-save.c, calls.c, collect2.c, combine.c, cse.c, dbxout.c, - dwarf2out.c, dwarfout.c, emit-rtl.c, except.c, explow.c, expmed.c, - expr.c, final.c, flow.c, function.c, gcc.c, getpwd.c, global.c, - integrate.c, jump.c, local-alloc.c, loop.c, optabs.c, pexecute.c, - prefix.c, print-rtl.c, print-tree.c, profile.c, real.c, recog.c, - reg-stack.c, regclass.c, regmove.c, reload.c, reload1.c, reorg.c, - rtl.c, rtlanal.c, sched.c, sdbout.c, stmt.c, stor-layout.c, - stupid.c, tlink.c, toplev.c, tree.c, unroll.c, varasm.c, - xcoffout.c: Include system.h. Organize include ordering so - that stdarg/varargs comes before other system headers. Remove - spurious casts of functions assured of a prototype in system.h. - -Fri Mar 20 11:19:40 1998 Stan Cox - - * reg-stack.c (pop_stack): Define. Pops any register on the - regstack and adjusts regstack. - (compare_for_stack_reg): Use pop_stack. - -Thu Mar 19 23:51:01 1998 Jeffrey A Law (law@cygnus.com) - - * configure.in (hppa1.0-hp-hpux10): Handle threads for this - config too. - -Thu Mar 19 20:30:31 1998 Philippe De Muyter - - * libgcc2.c (exit): Do not call __bb_exit_func if HAVE_ATEXIT. - - * fold-const.c (fold): Replace sign-extension of a zero extended - value by a single zero extension. - -Thu Mar 19 00:58:07 1998 Jason Merrill - - * except.c (init_eh): Do nothing. - (save_eh_status): Call init_eh_for_function, not init_eh. - * function.c (push_function_context_to): Don't call init_emit. - -Thu Mar 19 13:39:52 1998 Michael Meissner - - * rs6000/sysv4.h (RELATIVE_PREFIX_NOT_LINKDIR): Undef for System V - and EABI. - -Thu Mar 19 10:10:36 1998 Kaveh R. Ghazi - - * final.c (shorten_branches): Add parentheses around +/- in - operand of &. - - * flow.c (life_analysis): Wrap variable `i' in macro ELIMINABLE_REGS. - -Thu Mar 19 09:15:17 1998 Manfred Hollstein - - * regclass.c (memory_move_secondary_cost): Wrap uses of - SECONDARY_INPUT_RELOAD_CLASS and SECONDARY_OUTPUT_RELOAD_CLASS - with #ifdef tests. - -Thu Mar 19 09:06:35 1998 Manfred Hollstein - - * config/m68k/m68k.md (addqi3): Fix typo gen_INT vs. GEN_INT. - - * flow.c (life_analysis): #include to make sure - size_t is defined. - * cplus-dem.c (demangle_function_name): Likewise. - -Thu Mar 19 09:00:01 1998 Manfred Hollstein - - * final.c (insn_noperands): Change type to unsigned int. - (final_scan_insn): Likewise for noperands; - properly check operand number boundaries. - -Wed Mar 18 16:20:30 1998 Richard Henderson - - * alpha.md (extzv): Don't reject register operands. Fix - mode of operand 1. - -Wed Mar 18 16:14:23 1998 Richard Henderson - - * dbxout.c (dbxout_function_end): Fix last change. The correct - predicate is ASM_OUTPUT_SECTION_NAME. - -Wed Mar 18 12:43:20 1998 Jim Wilson - - * sh.md (ashlsi_c-1): Delete 3rd argument to gen_ashlsi_c. - (ashlsi): Use match_dup 1 instead of match_operand 2. - -Wed Mar 18 13:46:07 1998 Richard Kenner - - * fold-const.c (operand_equal_for_comparison_p): See if equal - when nop conversions are removed. - -Wed Mar 18 13:42:01 1998 Richard Kenner - - * expr.c (expand_expr, case COND_EXPR): If have conditional move, - don't use ORIGINAL_TARGET unless REG. - -Wed Mar 18 16:53:19 1998 J"orn Rennecke - - * netbsd.h (ASM_OUTPUT_ALIGN): Redefine. - -Wed Mar 18 12:43:20 1998 Jim Wilson - - * loop.c (struct movable): New field move_insn_first. - (scan_loop): In consec sets code, set it. Clear it otherwise. - (move_movables): In consec sets code, use it. Copy REG_NOTES from - p to i1 only if i1 does not have REG_NOTES. Delete obsolete ifdefed - out code. - -Wed Mar 18 09:52:56 1998 Richard Henderson - - * rtl.c (read_rtx): Fall back on homebrew atoll if HOST_WIDE_INT - is large, and the system doesn't provide atoll or atoq. - (atoll): New. - - * alpha/xm-vms.h (HAVE_ATOLL): Define. - Reported by Klaus Kaempf . - -Wed Mar 18 09:56:26 1998 Kaveh R. Ghazi - - * c-lang.c (finish_file): Wrap variable `void_list_node' with macro - test !ASM_OUTPUT_CONSTRUCTOR || !ASM_OUTPUT_DESTRUCTOR. - - * calls.c (emit_call_1): Wrap variable `already_popped' with macro - test !ACCUMULATE_OUTGOING_ARGS. - - * collect2.c (write_c_file_glob): Wrap function definition in - macro test !LD_INIT_SWITCH. - - * combine.c (try_combine): Wrap variables `cc_use' and - `compare_mode' in macro test EXTRA_CC_MODES. - - * cpplib.c (do_ident): Remove unused variable `len'. - (skip_if_group): Remove unused variables `at_beg_of_line' and - `after_ident'. - (cpp_get_token): Remove unused variable `dummy'. - - * dbxout.c (scope_labelno): Move static variable definition inside - the one function scope where it is used. - (dbxout_function_end): Wrap prototype and definition in - macro test !NO_DBX_FUNCTION_END. - - * dwarf2out.c (add_subscript_info): Wrap variable `dimension_number' - in macro test !MIPS_DEBUGGING_INFO. - - * expr.c (expand_builtin_setjmp): Move declaration of variable `i' - into the scope where it is used. Wrap empty else-statement body - in braces. - - * fix-header.c: Fix typo in comment. - (inf_skip_spaces): Cast results of INF_UNGET to (void). - (check_protection, main): Likewise. - - * flow.c (find_basic_blocks_1): Remove dangling comment text. - - * function.c (contains): Wrap prototype and definition in macro - test HAVE_prologue || HAVE_epilogue. - (fixup_var_refs_1): Remove unused variable `width'. - - * gen-protos.c (main): Remove unused variable `optr'. - - * haifa-sched.c (debug_control_flow): Remove unused variable `j'. - - * libgcc2.c (__udiv_w_sdiv): Provide dummy return value of 0. - (__sjpopnthrow): Remove unused variable `jmpbuf'. - (__throw): Remove unused variable `val'. - - * protoize.c: Check for a previously existing definition before - defining *_OK macros. - - * scan-decls.c (scan_decls): Remove unused variable `old_written'. - -Tue Mar 17 00:45:48 1998 J"orn Rennecke - - * vax.h (ADDR_VEC_ALIGN): Define. - -Mon Mar 16 15:57:17 1998 Michael Meissner - - * gcc.c (default_arg): Don't wander off the end of allocated - memory. - - (From Geoffrey Keating ) - * rs6000.c (small_data_operand): Ensure that any address - referenced relative to the small data area is inside the SDA. - -Mon Mar 16 12:55:15 1998 Jim Wilson - - * config/m68k/netbsd.h (ASM_SPEC): Add %{m68060}. - -Mon Mar 16 15:50:20 1998 Andrew MacLeod - - * except.h (in_same_eh_region): New prototype. - (free_insn_eh_region, init_insn_eh_region): New prototypes. - * except.c (insn_eh_region, maximum_uid): New static variables. - (set_insn_eh_region): New static function to set region numbers. - (free_insn_eh_region): New function to free EH region table. - (init_insn_eh_region): New function to initialize EH region table. - (in_same_eh_region): New function used to determine if two rtl - instructions are in the same exception region or not. - * final.c (final): Initialize the table indicating which instructions - belong in which exception region. - * genpeep.c (main): Add "except.h" to include file list in generated - file insn-peep.c. - * config/sparc/sparc.md: Add calls to 'in_same_eh_region' in 4 - peepholes involving calls and unconditional branches. - -Mon Mar 16 11:16:50 1998 Jim Wilson - - * README.gnat: New file. - -Mon Mar 16 11:14:20 1998 Andreas Schwab - - * config/m68k/m68k.c: Include for atoi. Include - "recog.h" for offsettable_memref_p. - (legitimize_pic_address): Remove unused variable `offset'. - (notice_update_cc): Change return type to void. Add default label - to switch. - (standard_68881_constant_p): Remove unused variable mode. - (print_operand): Define local variable i only if SUPPORT_SUN_FPA. - (const_int_cost): Explicitly declare as returning int. - (output_dbcc_and_branch): Change return type to void. - - * config/m68k/linux.h, config/m68k/m68k.md, config/m68k/m68k.c, - config/m68k/m68k.h: Replace gen_rtx (XXX, ...) with gen_rtx_XXX - (...). Use GEN_INT instead of gen_rtx_CONST_INT. - -Sun Mar 15 22:30:44 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Fri Mar 13 11:30:12 1998 Andreas Schwab - - * config/m68k/m68k.h (CONST_OK_FOR_LETTER_P): Fix logic in range - check for 'M' constraint. - -Thu Mar 12 14:47:14 1998 Jim Wilson - - * cccp.c (create_definition): If pedantic, call pedwarn for macro - varargs feature. - -Thu Mar 12 13:43:25 1998 Bernd Schmidt - - * i386.c (ix86_logical_operator): New function. - (split_di): Ensure that when a MEM is split, the resulting MEMs have - SImode. - * i386.md (anddi3, xordi3, iordi3): New patterns. Add a define_split - to implement them. - -Thu Mar 12 15:13:16 1998 Kaveh R. Ghazi - Richard Earnshaw - Nick Clifton - - * tm.texi (DEFAULT_RTX_COSTS): Document new macro. - - * arm.h (DEFAULT_RTX_COSTS): Define instead of RTX_COSTS. - - * cse.c (rtx_cost): Provide a default case in an enumeration - switch, and call DEFAULT_RTX_COSTS if it's defined. - -Thu Mar 12 10:02:38 1998 Manfred Hollstein - - * basic-block.h (compute_preds_succs): Change return type in - prototype to void. - * flow.c (compute_preds_succs): Likewise in function definition. - - * regmove.c (find_matches): Cast char used as array index to unsigned char - to suppress warning. - -Thu Mar 12 09:39:40 1998 Manfred Hollstein - - * i386.h (RTX_COSTS): Insert braces around nested if. - (ADDITIONAL_REGISTER_NAMES): Insert braces around structured - elements. - - * gcc.c (default_compilers): Properly put brackets around array elements in - initializer. - - * getopt.c (_getopt_internal): Add explicit braces around nested if; - reformatted. - - * reg-stack.c (record_asm_reg_life): Add explicit braces around nested if's. - (record_reg_life_pat): Add explicit parens around && and || in expression. - (stack_reg_life_analysis): Add parens around assignment used as expression. - (convert_regs): Likewise. - -Thu Mar 12 09:25:29 1998 Manfred Hollstein - - * bitmap.c (bitmap_element_allocate): Remove unused parameter; - change callers accordingly. - - * cplus-dem.c (arm_special): Remove unused parameter work in prototype - and definition; change all callers accordingly. - - * except.c (init_eh): Avoid assignment of unused return value of - build_pointer_type; cast it to void, instead, and remove unused - variable type. - - * gcc.c (lang_specific_driver): Define prototype only #ifdef - LANG_SPECIFIC_DRIVER. - (temp_names): Define only #ifdef MKTEMP_EACH_FILE. - - * genoutput.c (output_epilogue): Initialize next_name to 0. - - * real.c (efrexp): #if 0 prototype and function definition. - (eremain): Likewise. - (uditoe): Likewise. - (ditoe): Likewise. - (etoudi): Likewise. - (etodi): Likewise. - (esqrt): Likewise. - - * reload.c (push_secondary_reload): Define prototype only - #ifdef HAVE_SECONDARY_RELOADS. - - * varasm.c (assemble_static_space): Define rounded only - #ifndef ASM_OUTPUT_ALIGNED_LOCAL. - -Thu Mar 12 09:11:35 1998 Manfred Hollstein - - * i386.md (andsi): Add default case in enumeration switch. - (iorsi3): Likewise. - (iorhi3): Likewise. - (xorsi3): Likewise. - -Thu Mar 12 08:37:02 1998 Manfred Hollstein - - * c-decl (finish_struct): Change type of min_align to unsigned. - - * cplus-dem.c (demangle_function_name): Change type of variable i to size_t; - remove unused variable len. - - * dwarf2out.c (reg_save): Add explicit cast of -1 to unsigned and a - comment indicating this is proper behavior. - (reg_loc_descriptor): Remove redundant comparison of unsigned variable - reg >= 0. - (based_loc_descr): Likewise. - - * enquire.c (bitpattern): Change type of variable i to unsigned. - - * final.c (output_asm_insn): Don't cast insn_noperands to unsigned. - - * flow.c (life_analysis): Change type of variable i to size_t; - remove unused variable insn. - - * gcc.c (translate_options): Change type of variables optlen, arglen and - complen to size_t. - (input_filename_length): Change type to size_t. - (do_spec_1): Change type of variable bufsize to size_t. - (main): Change type of variables i and j to size_t; - remove subblock local definition of variable i. - (lookup_compiler): Change type of second argument to size_t; - change type of variable i to size_t. - - * genemit.c (output_init_mov_optab): Change type of variable i to size_t. - - * genopinit.c (get_insn): Change type of variable pindex to size_t. - - * genrecog.c (add_to_sequence): Change type of variable i to size_t. - - * global.c (global_alloc): Change type of variable i to size_t. - - * regclass.c (init_reg_sets): Change type of variables i and j to unsigned. - - * stmt.c (expand_end_bindings): Change type of variable i to size_t. - (expand_end_case): Change type of variable count to size_t. - - * toplev.c (main): Change type of variable j to size_t. - (set_target_switch): Change type of variable j to size_t. - (print_switch_values): Change type of variable j to size_t; - remove unused variable flags. - - * varasm.c (assemble_variable): Change type of variable align to size_t. - (const_hash_rtx): Change type of variable i to size_t. - -1998-03-11 Mark Mitchell - - * dbxout.c (dbxout_type_methods): Only treat TYPE_METHODS as a - TREE_VEC if that's what it really is. - -Wed Mar 11 15:16:01 1998 Michael Meissner - - * {haifa-,}sched.c (rank_for_schedule): Only take void * arguments - as per ISO C spec. - -Wed Mar 11 12:05:20 1998 Teemu Torma - - * gthr.h: Changed the comment about return values. - * gthr-solaris.h (__gthread_once): Do not use errno; return the - error number instead of -1. - (__gthread_key_create): Any nonzero return value is an error. - * libgcc2.c (eh_context_initialize): Check for nonzero return - value from __gthread_once. - Check that the value of get_eh_context was really changed. - -Wed Mar 11 18:26:25 1998 J"orn Rennecke - - * sh.h (LOOP_ALIGN): Only align when optimizing. - * sh.c (find_barrier): Clear inc for CODE_LABELs. - When not optimizing, calculate alignment for BARRIERs directly. - -Wed Mar 11 15:07:18 1998 J"orn Rennecke - - * final.c (shorten_branches): Remove conditionalizing on - SHORTEN_WITH_ADJUST_INSN_LENGTH. - * sh.h, pa.h (SHORTEN_WITH_ADJUST_INSN_LENGTH): Remove. - -Wed Mar 11 02:37:41 1998 Jeffrey A Law (law@cygnus.com) - - * flow.c (find_basic_blocks_1): Keep the cfg accurate when removing - an unconditional jump around deleted blocks. - -Mon Mar 9 12:02:23 1998 Jim Wilson - - * profile.c (branch_prob): If see computed goto, call fatal instead of - abort. - - * config/mips/sni-svr4.h (CPP_PREDEFINE): Add -DSNI and -Dsinix. - - * configure.in (alpha-dec-osf): Add default case for osf* to switch. - Patch from Bruno Haible. - - * function.c (put_reg_into_stack): Copy MEM_IN_STRUCT_P from new. - (assign_parms): Set aggregate if hide_last_arg and last_named. - -Mon Mar 9 19:57:56 1998 J"orn Rennecke - - * final.c (shorten_branches): Initialize insn_addresses. - -Mon Mar 9 14:10:23 1998 J"orn Rennecke - - * sh.h (MUST_PASS_IN_STACK): Define. - -Sun Mar 8 13:01:56 1998 Jeffrey A Law (law@cygnus.com) - - * final.c (shorten_branches): Fix minor logic error in - ADDR_DIFF_VEC shortening support. - -Sun Mar 8 02:17:42 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sat Mar 7 00:54:15 1998 Jeffrey A Law (law@cygnus.com) - - * haifa-sched.c (is_cfg_nonregular): Change return type to - an int. No longer compute "estimated" number of edges. Use - computed_jump_p instead of duplicating the code. Fixup/add - some comments. - (build_control_flow): Returns a value indicating an irregularity - in the cfg was detected. Count the number of edges in the cfg. - allocate various edge tables. - (find_rgns): No longer look for unreachable blocks. - (schedule_insns): Do not allocate memory for edge tables here. - Free memory for edge tables before returning. Do not perform - cross block scheduling if build_control_flow returns nonzero. - * flow.c (compute_preds_succs): More accurately determine when - a block drops in. - - * basic-block.h (free_basic_block_vargs): Provide prototype. - - * cccp.c (main): Fix dumb mistakes in last change. - -Fri Mar 6 21:28:45 1998 J"orn Rennecke - - * rtl.h (addr_diff_vec_flags): New typedef. - (union rtunion_def): New member rt_addr_diff_vec_flags. - (ADDR_DIFF_VEC_FLAGS): New macro. - - * sh.c (output_branch): Fix offset overflow problems. - - * final.c (shorten_branches): Implement CASE_VECTOR_SHORTEN_MODE. - (final_scan_insn): New argument BODY for ASM_OUTPUT_ADDR_DIFF_ELT. - * rtl.def (ADDR_DIFF_VEC): Three new fields (min, max and flags). - * stmt.c (expand_end_case): Supply new arguments to - gen_rtx_ADDR_DIFF_VEC. - * 1750a.h (ASM_OUTPUT_ADDR_DIFF_ELT): New argument BODY. - * alpha.h, arc.h, clipper.h, convex.h : Likewise. - * dsp16xx.h, elxsi.h, fx80.h, gmicro.h, h8300.h : Likewise. - * i370.h, i386.h, i860.h, i960.h, m32r.h, m68k.h, m88k.h : Likewise. - * mips.h, mn10200.h, mn10300.h, ns32k.h, pa.h, pyr.h : Likewise. - * rs6000.h, sh.h, sparc.h, spur.h, tahoe.h, v850.h : Likewise. - * vax.h, we32k.h, alpha/vms.h, arm/aof.h, arm/aout.h : Likewise. - * i386/386bsd.h, i386/freebsd-elf.h : Likewise. - * i386/freebsd.h, i386/linux.h : Likewise. - * i386/netbsd.h, i386/osfrose.h, i386/ptx4-i.h, i386/sco5.h : Likewise. - * i386/sysv4.h, m68k/3b1.h, m68k/dpx2.h, m68k/hp320.h : Likewise. - * m68k/mot3300.h, m68k/sgs.h : Likewise. - * m68k/tower-as.h, ns32k/encore.h, sparc/pbd.h : Likewise. - * sh.h (INSN_ALIGN, INSN_LENGTH_ALIGNMENT): Define. - (CASE_VECTOR_SHORTEN_MODE): Define. - (short_cbranch_p, align_length, addr_diff_vec_adjust): Don't declare. - (med_branch_p, braf_branch_p): Don't declare. - (mdep_reorg_phase, barrier_align): Declare. - (ADJUST_INSN_LENGTH): Remove alignment handling. - * sh.c (uid_align, uid_align_max): Deleted. - (max_uid_before_fixup_addr_diff_vecs, branch_offset): Deleted. - (short_cbranch_p, med_branch_p, braf_branch_p, align_length): Deleted. - (cache_align_p, fixup_aligns, addr_diff_vec_adjust): Deleted. - (output_far_jump): Don't use braf_branch_p. - (output_branchy_insn): Don't use branch_offset. - (find_barrier): Remove checks for max_uid_before_fixup_addr_diff_vecs. - Remove paired barrier stuff. - Don't use cache_align_p. - Take alignment insns into account. - (fixup_addr_diff_vecs): Reduce to only fixing up the base label of - the addr_diff_vec. - (barrier_align, branch_dest): New function. - (machine_dependent_reorg, split_branches): Remove infrastructure - for branch shortening that is now provided in the backend. - * sh.md (short_cbranch_p, med_branch_p, med_cbranch_p): New attributes. - (braf_branch_p, braf_cbranch_p): Likewise. - (attribute length): Use new attributes. - (casesi_worker): Get mode and unsignednedd from ADDR_DIFF_VEC. - (addr_diff_vec_adjust): Delete. - (align_2): Now a define_expand. - (align_log): Now length 0. - -Fri Mar 6 14:41:33 1998 Michael Meissner - - * m32r.md (right): Correctly check for length == 2, not 1. - -Fri Mar 6 14:00:04 1998 Kaveh R. Ghazi - - * mips/mips.h: Prototype `machine_dependent_reorg'. - (ASM_OUTPUT_ALIGN): Remove unused variable `mask'. - -Fri Mar 6 11:43:35 1998 Joern Rennecke (amylaar@cygnus.co.uk) - - * final.c (shorten_branches): Restore accidentally removed code. - -Fri Mar 6 11:00:49 1998 Andreas Schwab - - * configure.in: Remove duplicate uses of AC_PROG_CC and - AC_PROG_MAKE_SET. - -Fri Mar 6 00:59:30 1998 Richard Henderson - - * configure.in (target_cpu_default2): Correct typo for alphapca56. - -Thu Mar 5 23:24:50 1998 Jeffrey A Law (law@cygnus.com) - Doug Evans (devans@cygnus.com) - - * haifa-sched.c (build_jmp_edges): Delete dead function. - (build_control_flow): Use cfg routines from flow.c. - (schedule_insns): Remove debugging code accidentally checked - in earlier today. - - * basic-block.h: Add external integer list structures, typdefs, - accessor macros and function declarations. Similarly for - basic block pred/succ support and simple bitmap stuff. - * flow.c: Add functions for integer list, basic block pred/succ - support and simple bitmap support. - (compute_dominators): New function to compute dominators and - post dominators. - (find_basic_blocks): Split into two functions. - (life_analysis): Likewise. - (flow_analysis): Removed. Now handled by calling find_basic_blocks, - the life_analysis from toplev.c. - * toplev.c (rest_of_compilation): Call find_basic_blocks, then - life_analysis instead of flow_analysis. - -Thu Mar 5 23:06:26 1998 J"orn Rennecke - - * jump.c (jump_optimize): Call mark_jump_label also for deleted - insns. - (mark_jump_label): Don't increment ref counts for deleted insns. - -Thu Mar 5 09:55:15 1998 Kaveh R. Ghazi - - * mips/iris6.h (TARGET_DEFAULT): Parenthesize macro definition. - - * mips/mips.c: Include stdlib.h and unistd.h. - (mips_asm_file_end): Add braces around empty body in an if-statement. - (function_prologue): Wrap variable `fnname' in - !FUNCTION_NAME_ALREADY_DECLARED. Correct format specifier in fprintf. - (mips_select_rtx_section, mips_select_section): Declare as void. - - * mips/mips.h: Add prototypes for extern functions in mips.c. - (FUNCTION_ARG_REGNO_P): Add parentheses around && within ||. - (ENCODE_SECTION_INFO): Add braces around empty body in an - if-statement. - - * mips/mips.md (movdi): Add parentheses around && within ||. - (movsf, movdf): Likewise. - (branch_zero, branch_zero_di): Add default case in - enumeration switch. - -Thu Mar 5 02:45:48 1998 Richard Henderson - - * alpha/alpha.h (TARGET_WINDOWS_NT, TARGET_OPEN_VMS): Just make them - real constants, since they can't be changed. - (TARGET_AS_CAN_SUBTRACT_LABELS): New. - * alpha/alpha.md (builtin_setjmp_receiver): Use it. - * alpha/osf.h (TARGET_AS_CAN_SUBTRACT_LABELS): New. - * alpha/osf2or3.h (TARGET_AS_CAN_SUBTRACT_LABELS): New. - * alpha/vms.h (TARGET_OPEN_VMS): New. - * alpha/win-nt.h (TARGET_WINDOWS_NT): New. - -Thu Mar 5 02:41:27 1998 Richard Henderson - - * reload.c (find_reloads): Always force (subreg (mem)) to be - reloaded if WORD_REGISTER_OPERATIONS. - -Thu Mar 5 02:14:44 1998 Richard Henderson - - * haifa-sched.c (free_list): Rename from free_pnd_lst. - (free_pending_lists): Rename free_pnd_lst uses. - (remove_dependence): Place expunged element on unused_insn_list. - (alloc_INSN_LIST, alloc_EXPR_LIST): New. Change all callers of - gen_rtx_*_LIST and alloc_rtx to use them. - (compute_block_backward_dependences): Free the reg_last_* lists. - -Thu Mar 5 00:05:40 1998 Jeffrey A Law (law@cygnus.com) - - * cccp.c (main): Avoid undefined behavior when setting pend_includes - and pend_files. - -Wed Mar 4 21:58:25 1998 Franz Sirl - - * rs6000/linux.h: Don't define DEFAULT_VTABLE_THUNKS to 1 if - USE_GNULIBC_1 is defined. - * configure.in: Add a new case powerpc-*-linux-gnulibc1 which - includes the t-linux-gnulibc1 fragment. - -Wed Mar 4 12:11:36 1998 Jim Wilson - - * mips.md (movdf_internal1a): Fix misplaced parenthesis in condition. - -Wed Mar 4 18:47:48 1998 J"orn Rennecke - - * final.c (final_scan_insn, case CODE_LABEL: Cleanup. - -Wed Mar 4 15:51:19 1998 J"orn Rennecke - - * final.c (shorten_branches): Tag the loop alignment onto the - first label after NOTE_INSN_LOOP_BEG even if there is an - intervening insn. - -Tue Mar 3 21:48:35 1998 J"orn Rennecke - - * final.c (insn_current_reference_address): - Use SEQ instead of BRANCH as argument to align_fuzz, to get a - proper alignment chain. - - * final.c (max_labelno): New static variable. - (final_scan_insn): Check max_labelno before outputting an - alignment for a label. - (shorten_branches): Remove unused variable length_align. - -Tue Mar 3 14:27:23 1998 Kaveh R. Ghazi - - * sparc.c (ultrasparc_adjust_cost): Add default case in - enumeration switch. - - * sparc.h: Add prototypes for extern functions defined in - sparc.c. - -Tue Mar 3 10:00:11 1998 Nick Clifton - - * toplev.c: Only generate .dbr file when dumping RTL if - DEALY_SLOTS is defined. - -Tue Mar 3 07:36:37 1998 Manfred Hollstein - - * reorg.c (fill_eager_delay_slots): Add new argument delay_list - in call to fill_slots_from_thread. - -Mon Mar 2 13:45:03 1998 Richard Henderson - - * alpha/linux.h (CPP_PREDEFINES): Correct connecting whitespace - to SUB_CPP_PREDEFINES. Reported by asun@saul4.u.washington.edu. - -Mon Mar 2 22:59:28 1998 J"orn Rennecke - - * final.c (insn_last_address, insn_current_align, uid_align): - New variables. - (in_align_chain, align_fuzz, align_shrink_fuzz): New functions. - (insn_current_reference_address): Likewise. - (shorten_branches, final_scan_insn): Implement LABEL_ALIGN, - LABEL_ALIGN_AFTER_BARRIER and LOOP_ALIGN target macros. - (label_to_alignment): New function. - * genattrtab.c (write_test_expr): If one of LABEL_ALIGN, - LABEL_ALIGN_AFTER_BARRIER or LOOP_ALIGN is defined, call - insn_current_reference_address instead of insn_current_address. - (or_attr_value, write_length_unit_log): New functions. - (main): Call write_length_unit_log. - (write_const_num_delay_slots): Output extra '\n'. - * alpha.h (ASM_OUTPUT_LOOP_ALIGN, ASM_OUTPUT_ALIGN_CODE): - Replace with: - (LOOP_ALIGN, ALIGN_LABEL_AFTER_BARRIER). - * i386.h, i386/osfrose.h, i386/svr3dbx.h, m68k.h, sparc.h: Likewise. - * arc.h, m32r.h (ASM_OUTPUT_LOOP_ALIGN): Replace with: - (LOOP_ALIGN). - * i960.h, m88k.h (ASM_OUTPUT_ALIGN_CODE): Replace with: - (LABEL_ALIGN_AFTER_BARRIER). - * ns32k/encore.h, ns32k/merlin.h, ns32k.h, ns32k/sequent.h: Likewise. - * ns32k/tek6000.h: Likewise. - * i386/gas.h (ASM_OUTPUT_LOOP_ALIGN, ASM_OUTPUT_ALIGN_CODE): Delete. - * i386.md (casesi+1): Use ASM_OUTPUT_ALIGN instead of - ASM_OUTPUT_ALIGN_CODE. - -Mon Mar 2 01:05:50 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Mon Mar 2 00:52:18 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sun Mar 1 18:25:49 1998 Michael P. Hayes - - * reorg.c (fill_slots_from_thread): Don't steal delay list from target - if condition code of jump conflicts with opposite_needed. - - * reorg.c (fill_slots_from_thread): Mark resources referenced in - opposite_needed thread. Return delay_list even when cannot get - any more delay insns from end of subroutine. - -Sun Mar 1 18:26:21 1998 Ken Rose (rose@acm.org) - - * reorg.c (fill_slots_from_thread): New parameter, delay_list. - All callers changed. - -Sun Mar 1 18:25:37 1998 Bruno Haible - - * frame.c (start_fde_sort, fde_split, heapsort, fde_merge, - end_fde_sort): New functions for fast sorting of an FDE array. - (fde_insert): Simplified. - (add_fdes): Change argument list. - (frame_init): Use the new functions. - -Sun Mar 1 18:06:21 1998 Jeffrey A Law (law@cygnus.com) - - * ginclude/va-ppc.h (va_arg): Fix typo in long long support. - - * i386.c (reg_mentioned_in_mem): Fix dangling else statement. - - * fold-const.c (fold_range_test): Always return a value. - -Sun Mar 1 17:57:34 1998 Mumit Khan - - * config/i386/winnt.c (i386_pe_unique_section): Put read-only - data in the text section unless READONLY_DATA_SECTION is defined. - -Sun Mar 1 17:48:46 1998 Jeffrey A Law (law@cygnus.com) - - * c-parse.in (undeclared variable error): Tweak error message to - be clearer. - -Sun Mar 1 10:22:36 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -1998-02-28 Mark Mitchell - - * final.c (final_scan_insn): Undo overzealous removal of `set'. - -Sat Feb 28 07:54:03 1998 Kaveh R. Ghazi - - * pa.h (CONST_COSTS): When checking the CONST_DOUBLE enumerated - case, add parentheses to specify the proper order of precedence in - the if-statement. - - * c-aux-info.c: Include string.h/strings.h. - - * pa.c: Include stdlib.h. - (pa_combine_instructions): Prototype the function. - (pa_can_combine_p, forward_branch_p, shadd_constant_p): Likewise. - (reloc_needed): Add default case for enumeration switch. - (remove_useless_addtr_insns): Remove unused variable `all'. - (hppa_expand_prologue): Add explicit braces to avoid - ambiguous `else'. - (output_function_epilogue): Remove unused variable `i'. - (output_millicode_call): Remove unused variable `link'. - (shadd_constant_p, forward_branch_p): Make the function static. - (following_call): Explicitly declare to return int. - (pa_reorg): Declare as void. - (pa_combine_instructions): Declare as static void. Add - parentheses around && within ||. - - * pa.h: Add prototypes for pa_reorg, symbolic_operand, - following_call, function_label_operand, lhs_lshift_cint_operand - and zdepi_cint_p. - - * pa.md: Add parentheses around && within ||. - - * cppalloc.c: Include stdlib.h. - - * cpperror.c (cpp_print_containing_files): Remove unused variable - `i'. Fix format specifier in fprintf. - - * cse.c (cse_around_loop): Add explicit braces to avoid - ambiguous `else'. - (delete_dead_from_cse): Wrap variable `tem' in macro HAVE_cc0. - - * expr.c (expand_expr): Add parentheses around && within ||. - - * final.c (app_enable): Replace fprintf with fputs where there are - no format specifiers and no trailing argument after the string. - Eg, when printing ASM_APP_ON/ASM_APP_OFF. - (app_disable): Likewise. - (final_end_function): Likewise. - (final_scan_insn): Likewise. Remove unused variable `set'. - (profile_function): Wrap empty if-statement body in {} brackets. - - * function.c: Include stdlib.h. - (pad_below): Wrap prototype and definition in ARGS_GROW_DOWNWARD. - (reposition_prologue_and_epilogue_notes): Add parentheses - around assignment used as truth value. - - * integrate.c (expand_inline_function): Wrap variable - `cc0_insn' in macro HAVE_cc0. - - * jump.c (jump_optimize): Wrap variable `q' in macro - HAVE_cc0. Remove unused variable `prev1'. - - * libgcc2.c (__bb_exit_trace_func): Add parentheses around && - within ||. Fix format specifier in fprintf. - (__bb_init_prg): Add parentheses around assignment used as - truth value. - - * local-alloc.c: Include stdlib.h. - (requires_inout): Add parentheses around assignment used - as truth value. - - * loop.c (analyze_loop_iterations): Wrap prototype and definition - in macro HAVE_decrement_and_branch_on_count. - (insert_bct, instrument_loop_bct): Likewise. - (move_movables): Add parentheses around assignment used as - truth value. - (consec_sets_invariant_p): Likewise. - (maybe_eliminate_biv_1): Wrap variable `new' in macro HAVE_cc0. - - * objc/objc-act.c: Include stdlib.h. - (lookup_method_in_protocol_list): Wrap empty else-statement body - in braces. - (lookup_protocol_in_reflist): Likewise. - (objc_add_static_instance): Remove unused variables `decl_expr' - and `decl_spec'. - (get_objc_string_decl): Remove unused variable `decl'. - (generate_static_references): Remove unused variables `idecl' and - `instance'. - (check_protocols): Wrap empty else-statement body in braces. - - * protoize.c: Include stdlib.h. - (substr): Add parentheses around assignment used as truth value. - (abspath): Likewise. - (shortpath): Likewise. - - * regmove.c (fixup_match_1): Add parentheses around assignment - used as truth value. - - * reload.c (push_secondary_reload): Remove unused variable `i'. - (find_reloads): Add parentheses around assignment used as truth - value. - - * reload1.c: Include stdlib.h. - - * rtl.h: Correct typo in prototype of offsettable_memref_p. - - * stmt.c (add_case_node): Add parentheses around assignment used - as truth value. - (case_tree2list): Likewise. - - * tree.c (valid_machine_attribute): Wrap variable `decl_attr_list' - in macro VALID_MACHINE_DECL_ATTRIBUTE. Wrap variable - `type_attr_list' in macro VALID_MACHINE_TYPE_ATTRIBUTE. - (merge_attributes): Add explicit braces to avoid ambiguous - `else'. - - * unroll.c (copy_loop_body): Wrap variable `cc0_insn' in - macro HAVE_cc0. - - * varasm.c: Include stdlib.h. - - * system.h: Remove sys/stat.h. - * gcc.c: Add sys/stat.h. - - * genattr.c: Wrap prototype of `free' in NEED_DECLARATION_FREE. - * genattrtab.c: Likewise. - * genconfig.c: Likewise. - * genemit.c: Likewise. - * genextract.c: Likewise. - * genflags.c: Likewise. - * genopinit.c: Likewise. - * genoutput.c: Likewise. - * genpeep.c: Likewise. - * genrecog.c: Likewise. - * tlink.c: Likewise. Also wrap `getenv' in NEED_DECLARATION_GETENV. - -Fri Feb 27 11:02:47 1998 Andreas Schwab - - * invoke.texi: Use @itemx for a secondary item in a @table. - - * config/m68k/m68k.md (movsf+1): Optimize moving a CONST_DOUBLE - zero. - -Thu Feb 26 00:13:21 1998 Ian Lance Taylor - - * choose-temp.c: Fix handling of sys/file.h to work in libiberty. - -Wed Feb 25 23:40:54 1998 Jeffrey A Law (law@cygnus.com) - - * i386.c (struct machine_function): Add new fields for PIC stuff. - (save_386_machine_status): Fix argument to xmalloc. Save pic_label_rtx - and pic_label_name. - (restore_386_machine_status): Corresponding changes. - (clear_386_stack_locals): Also clear pic_label_rtx and pic_label_name. - -Wed Feb 25 01:31:40 1998 Jeffrey A Law (law@cygnus.com) - - * c-parse.y (undeclared variable error): Tweak error message - to be clearer. - -Tue Feb 24 23:54:07 1998 Richard Henderson - - * flags.h (g_switch_value, g_switch_set): Declare. - * alpha.c (override_options): Set g_switch_value=8 if not set. - * alpha/elf.h (CC1_SPEC): New. - (ASM_SPEC): New. - (LINK_SPEC): Pass along the -G value we were given. - (LOCAL_ASM_OP): Remove. - (ASM_OUTPUT_ALIGNED_LOCAL): Output to .bss or .sbss by size. - (MAX_OFILE_ALIGNMENT): New. - (BSS_SECTION_ASM_OP, SBSS_SECTION_ASM_OP, SDATA_SECTION_ASM_OP): New. - (EXTRA_SECTIONS): Add sbss and sdata. - (SECTION_FUNCTION_TEMPLATE): New. - (EXTRA_SECTION_FUNCTIONS): Use it. - (CTORS_SECTION_FUNCTION, DTORS_SECTION_FUNCTION): Remove. - (SELECT_SECTION): Use sdata when small enough. - * alpha/linux.h (ASM_SPEC): Remove. - -Mon Feb 23 15:09:18 1998 Bruno Haible - * config.sub (sco5): Fix typo. - -Mon Feb 23 18:19:31 1998 Manfred Hollstein - - * config/t-linux (LIBGCC1, CROSS_LIBGCC1, LIBGCC1_TEST): Add macros and - set to empty. - * config/t-linux-aout (LIBGCC1, CROSS_LIBGCC1, LIBGCC1_TEST): Likewise. - * config/alpha/t-linux: Remove file. - * config/sparc/t-linux: Remove file. - * config/m68k/t-linux (LIBGCC1, CROSS_LIBGCC1): Remove. - * config/m68k/t-linux-aout (LIBGCC1, CROSS_LIBGCC1): Likewise. - * configure.in (alpha*-*-linux-gnulibc1*): Use t-linux instead of alpha/t-linux - for tmake_file. - (alpha*-*-linux-gnu*): Likewise. - (sparc-*-linux-gnulibc1*): Use t-linux instead of sparc/t-linux for tmake_file. - (sparc-*-linux-gnu*): Likewise. - -Mon Feb 23 10:47:39 1998 Robert Lipe - * collect2.c (ldd_file_name): Bracket declaration with same - manifests as use. - (full_real_ld_suffix): Deleted. Variable was calloced and - written into, but never read. - -1998-02-23 Mike Stump - - * configure.in: Add support for i386-wrs-vxworks configuration. - * i386/vxi386.h: New file. - -Sun Feb 22 21:16:51 1998 Bruno Haible - - * tree.c (contains_placeholder_p): Ensure function always returns - a value. - * sparc.md (movdi_sp64_insn): Add default case in enumeration switch. - (movsf_const_insn, movdf_const_insn, movtf_const_insn): Likewise. - -Sun Feb 22 20:58:19 1998 Jeffrey A Law (law@cygnus.com) - - * vms.h (SELECT_SECTION): Use TREE_CODE_CLASS correctly. - -1998-02-22 Paul Eggert - - * config/sparc/sol2-sld.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): - Define this new symbol. - (DWARF2_DEBUGGING_INFO, DWARF_DEBUGGING_INFO): Do not #undef. - * toplev.c (main): Do not default to DWARF2_DEBUG with -ggdb if - LINKER_DOES_NOT_WORK_WITH_DWARF2 is defined. - -Sun Feb 22 20:07:32 1998 Jim Wilson - - * iris5.h (DWARF2_UNWIND_INFO): Define to 0. - * iris5gas.h (DWARF2_UNWIND_INFO): Define to 1. - -Sun Feb 22 15:29:48 1998 Richard Henderson - - * objc/Object.m (-error): Call objc_verror with our va_list. - -Sun Feb 22 09:45:39 1998 Kaveh R. Ghazi - - * collect2.c (scan_prog_file): Completely cover uses of variable - `exports' with macro COLLECT_EXPORT_LIST. - -Sat Feb 21 20:36:23 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Fri Feb 20 16:22:13 1998 Michael Meissner - - * sched.c (schedule_block): Remove code to get arguments from hard - regs into pseudos early. Same as Aug 25, 1997 change to - haifa-sched.c. - -1998-02-20 Jason Merrill - - * collect2.c (main): Still handle !do_collecting for non-AIX targets. - -1998-02-16 Mark Mitchell - - * toplev.c (rest_of_compilation): Do not defer the output of a - nested function. - -Fri Feb 20 10:39:47 1998 Michael Tiemann - - * ginclude/va-mips.h (va_arg): Remove trailing space after '\' - continuation character (line 243). - -Fri Feb 20 12:10:26 1998 Andreas Schwab - - * genrecog.c (main): Remove duplicated sentence in emitted comment. - -Thu Feb 19 22:36:53 1998 Andrey Slepuhin - David Edelsohn - - * collect2.c (XCOFF_SCAN_LIBS): Remove. - (export_flag): New variable. - (export_file): #ifdef COLLECT_EXPORT_LIST. - (import_file, exports, imports, undefined): New variables. - (libs, cmdline_lib_dirs, libpath_lib_dirs, libpath, libexts): Same. - (dump_list, dump_prefix_list, is_in_list): New functions. - (write_export_file): $ifdef COLLECT_EXPORT_LIST. - (write_import_file, resolve_lib_name): New functions. - (use_import_list, ignore_library): Same. - (collect_exit): maybe_unlink import_file and #ifdef. - (handler): Same. - (main): New variable importf, #ifdef exportf. Move parsing of - -shared before general argument parsing. Resolve AIX library - paths and import libgcc.a symbols. Treat .so shared libraries the - same as objects and .a libraries. Create alias for object_lst and - increment it instead of original pointer. Scan AIX libraries as - objects earlier instead of using scan_libraries. Perform AIX - tlink later to resolve templates instead of forking ld. - (GCC_OK_SYMBOL): Ensure symbol not in undef section. - (GCC_UNDEF_SYMBOL): New macro. - (scan_prog_file): Loop for members of AIX libraries. Handle - export/import of ctors/dtors. - (aix_std_libs): New variable. - (scan_libraries, XCOFF): Delete. - -Thu Feb 19 22:36:52 1998 Robert Lipe - - * collect2.c (full_real_ld_suffix): #ifdef CROSS_COMPILE. - -1998-02-19 Mike Stump - - * Makefile.in: Use $tooldir for sys-include to match toplevel - configure. - -Thu Feb 19 01:32:37 1998 Jeffrey A Law (law@cygnus.com) - Richard Kenner - - * emit-rtl.c (gen_lowpart_common): Suppress last change if __complex__. - - * emit-rtl.c (hard-reg-set.h): Include. - (get_lowpart_common): Don't make new REG for hard reg in a - class that cannot change size. - * Makefile.in (emit-rtl.o): Depend on hard-reg-set.h. - - * combine.c: Revert previous patch. - -1998-02-19 Paul Eggert - - * config/sparc/sol2-sld.h: New file. - * configure.in (sparc-*-solaris2*): Use it when using the - system linker. - -Thu Feb 19 00:46:59 1998 Jeffrey A Law (law@cygnus.com) - - * loop.c (force_movables): Fix typo. - -Thu Feb 19 08:26:30 1998 Manfred Hollstein - - * m88k.h: Change file pattern to match reality. - -Wed Feb 18 23:19:52 1998 Jeffrey A Law (law@cygnus.com) - - * varasm.c (output_constant_pool): Fix dumb thinko in last - change. - - * pa.h (ASM_OUTPUT_FUNCTION_PREFIX): Correctly translate from - a function name to a section name. - -1998-02-18 Doug Evans - - * tree.h (merge_machine_{type,decl}_attributes): Declare. - (split_specs_attrs, strip_attrs): Add prototypes. - * tree.c (merge_machine_{type,decl}_attributes): New functions. - * c-decl.c (duplicate_decls): Call merge_machine_decl_attributes. - Update olddecl's attributes too. - * c-common.c (strip_attrs): New function. - * c-typeck.c (common_type): Call merge_machine_type_attributes. - * varasm.c (make_function_rtl): New target macro REDO_SECTION_INFO_P. - (make_decl_rtl): Likewise. - -1998-02-18 Jim Wilson - - * c-decl.c (shadow_tag_warned): Call split_specs_attrs. - -Wed Feb 18 09:09:50 1998 Jeffrey A Law (law@cygnus.com) - - Remove this change until we can fix it correctly. - * collect2.c: Bracket declaration of 'exportf' and - 'full_real_ld_suffix'. - -Wed Feb 18 08:44:25 1998 Bernd Schmidt - - * Makefile.in (STAGESTUFF): Add genrtl.c, genrtl.h and gengenrtl. - -Tue Feb 17 23:30:20 1998 Bernd Schmidt - - * c-common.c (c_expand_start_cond, c_expand_end_cond, - c_expand_start_else): Don't warn about non-ambiguous else even if - braces are missing. - -Tue Feb 17 23:56:50 1998 Robert Lipe - - * sco5.h (ASM_OUTPUT_DOUBLE, ASM_OUTPUT_FLOAT, - ASM_OUTPUT_LONG_DOUBLE): Delete. Use the ones from i386.h - instead. - -Tue Feb 17 22:56:14 1998 Richard Henderson - - * combine.c (simplify_rtx): Obey CLASS_CANNOT_CHANGE_SIZE when - simplifying a subreg of a hard reg. - (expand_compound_operation): Likewise. - (force_to_mode): Likewise. - -Tue Feb 17 22:37:22 1998 Kaveh R. Ghazi - - * fold-const.c: Include "system.h" to get stdlib.h and stdio.h. - (lshift_double): Add parentheses around + or - inside shift. - (rshift_double): Likewise. - (size_int_wide): Explicitly set type of `bit_p' to `int'. - - * Makefile.in (fold-const.o): Depend on system.h. - - * Makefile.in (gcc.o): Depend on system.h, in accordance with last - change to gcc.c. - - * haifa-sched.c: Include "system.h" to get and . - (BLOCKAGE_RANGE): Add parentheses around arithmetic in operand of |. - (sched_note_set): Remove unused parameter `b', all callers changed. - (schedule_block): Likewise for `rgn'. - (split_hard_reg_notes): Likewise for `orig_insn'. - (check_live): Likewise for `trg'. - (update_live): Likewise. - (check_live_1): Explicitly declare variable `i' as int. - (update_live_1): Likewise. - (insn_issue_delay): Remove unused variable `link'. - (sched_analyze_2): Add default case in enumeration switch. - (schedule_insns): Remove unused variable `i'. - - * Makefile.in ($(SCHED_PREFIX)sched.o): Depend on system.h. - -Tue Feb 17 22:31:04 1998 Jeffrey A Law (law@cygnus.com) - - * loop.c (rtx_equal_for_loop_p): Add some braces to disambiguate - a dangling else clause. - -Tue Feb 17 21:28:12 1998 Gavin Koch - - * mips/mips.h (CAN_ELIMINATE): Don't eliminate the frame - pointer for the stack pointer in MIPS16 and 64BIT. - -Tue Feb 17 21:17:30 1997 J"orn Rennecke - - * rtl.h (force_line_numbers, restore_line_number_status): Declare. - * emit-rtl.c (force_line_numbers, restore_line_number_status): - New functions. - * stmt.c (struct nesting): Replace seenlabel with line_number_status. - (expand_start_case): Adjust to this change. - (check_seenlabel): New function. - (pushcase, pushcase_range, expand_endcase): Use it. - -Tue Feb 17 10:14:32 1998 J"orn Rennecke - - * i386.md (adddi3): Add =!r,0,0,X alternative. - -Mon Feb 16 16:13:43 1998 David Edelsohn - - * rs6000.h (MY_ISCOFF): Add numeric value of U803XTOCMAGIC. - * x-aix31 (INSTALL): Delete. - -Mon Feb 16 09:24:32 1998 Gavin Koch - - * mips/mips.c (mips_expand_epilogue): Update tsize_rtx if - tsize changes to something other than zero. - -Mon Feb 16 09:11:48 1998 Gavin Koch - - * ginclude/va-mips.h: Replace casts of pointers to int with - casts of pointers to __PTRDIFF_TYPE__. - -Mon Feb 16 08:17:14 1998 John Carr - - * loop.c (strength_reduce, record_biv, record_giv): Use - HOST_WIDE_INT_PRINT_DEC to print CONST_INT values. - -1998-02-16 Jason Merrill - - * tree.c (first_rtl_op): New fn. - (unsave_expr_now): Use it. - * print-tree.c (print_node): Likewise. - * tree.c (has_cleanups): New fn. - * fold-const.c (fold, case CLEANUP_POINT_EXPR): Use it. Be more - conservative about pushing the cleanup point down. - * tree.h: Declare them. - -Sun Feb 15 23:28:44 1998 Jeffrey A Law (law@cygnus.com) - - * toplev.c (flag_schedule_reverse_before_reload): Delete variable. - (flag_schedule_reverse_after_reload): Likewise. - (f_options): Remove reverse scheduling support. - * flags.h (flag_schedule_reverse_before_reload): Delete declaration. - (flag_schedule_reverse_after_reload): Likewise. - * haifa-sched.c (rank_for_schedule): Remove support for reverse - scheduling. - -Sun Feb 15 21:33:55 1998 Kaveh R. Ghazi - - * gcc.c: Get system includes, prototypes and macros via "system.h" - instead of doing it manually. Change all calls of the ctype - macros to custom versions defined in "system.h". - - * system.h: Fix return type of bcmp prototype from `void' to `int'. - Make bcopy, bcmp and bzero prototypes explicitly `extern'. - Add a prototype for getenv. - -Sun Feb 15 17:05:41 1998 Jim Wilson - - * mips/mips.h (INITIAL_ELIMINATION_OFFSET): Readd Jun 6 change. - -Sun Feb 15 15:23:15 1998 John Carr - - * alias.c: Include and . - (init_alias_analysis): Pass NULL_RTX instead of 0 to record_set. - -Sat Feb 14 11:23:09 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sat Feb 14 05:08:21 1998 Richard Earnshaw (rearnsha@arm.com) - - * arm.md (movsfcc): Also validate operands[3] when compiling hard - float. - (movdfcc): Only accept fpu_add_operand for operands[3]. - - * arm/t-semi (STMP_FIXPROTO): Define to nothing. - * arm/t-semiaof (STMP_FIXPROTO): Likewise. - -Sat Feb 14 02:02:41 1998 Jeffrey A Law (law@cygnus.com) - - * varasm.c (output_constant_pool): Bring back 'done' label inside - an appropriate #ifdef. - - * bitmap.c (bitmap_element_allocate): Wrap variable 'i' in an - appropriate #ifdef. - (bitmap_copy, bitmap_operation): Likewise. - * combine.c (combinable_i3pat): Similarly for 'src'. - * function.c (fixup_var_refs_1): Similarly for 'outerdest'. - (locate_and_pad_parm): Similarly for 'reg_parm_stack_space'. - * regclass.c (copy_cost): Similarly for 'secondary_class'. - * reload.c (make_memloc): Similarly for 'i'. - (find_reloads_address_1): Similarly for 'link'. - * reload1.c (reload): Similarly for 'previous_frame_pointer_needed'. - (emit_reload_insns): Similarly for 'second_reloadreg'. - * unroll.c (iteration_info): Similarly for 'v'. - - * caller-save.c (insert_save_restore): Remove unused variable 'i'. - * calls.c (expand_call): Similarly for 'i'. - (emit_library_call, emit_library_call_value): Similarly for 'mode'. - * fold-const.c (strip_compound_expr): Similarly for 'type'. - * function.c (fixup_var_refs_1): Similarly for 'width'. - (fixup_memory_subreg): Similarly for 'saved'. - (locate_and_pad_parm): Similarly for 'boundary_in_bytes.' - (setjmp_protect): Similarly for 'sub'. - (thread_prologue_and_epilogue_insns): Similarly for 'insn'. - * loop.c (record_giv): Similarly for 'p'. - (combine_givs): Similarly for 'temp_iv'. - (indirect_jump_in_function_p): Similarly for 'is_indirect_jump'. - * recog.c (validate_replace_rtx_1): Similarly for 'width'. - * tree.c (get_set_constructor_bytes): Similarly for 'vals'. - * unroll.c (unroll_loop): Similarly for 'copy'. - (iteration_info): Similarly for 'b'. - * varasm.c (assemble_string): Similarly for 'i'. - * i386.h (LEGITIMIZE_ADDRESS): Similarly for 'orig_x'. - -1998-02-13 Martin von Loewis - - * c-lang.c (lang_print_xnode): New function. - * objc/objc-act.c (lang_print_xnode): Likewise. - * print-tree.c (print_node): Call it - -Fri Feb 13 14:38:34 1998 Jim Wilson - - * dwarf2out.c (decl_scope_node): New type. - (decl_scope_table): Change type to use it. - (decl_scope_table_allocated, decl_scope_depth): Change type to int. - (push_decl_scope): Use new type. New locals containing_scope, i. - Add code to handle setting previous field. - (scope_die_for): Change type of local i to int. Add code to use - previous field. - (dwarf2out_init): Use new type. - -1998-02-13 Jason Merrill - - * except.c (emit_throw): Lose throw_used. - -Fri Feb 13 20:36:05 1998 J"orn Rennecke - - * sched.c (update_flow_info, REG_WAS_0): Ignore if setting insn - was deleted. - * haifa-sched.c (update_flow_info, REG_WAS_0): Likewise. - -Fri Feb 13 12:18:40 1998 Jeffrey A Law (law@cygnus.com) - - * genextract.c (main): Fix typo. - -Fri Feb 13 08:41:49 1998 Robert Lipe - - * c-lang.c (finish_file): Bracket declaration of static_ctors, - static_dtors. - - * calls.c (expand_call): Bracket declaration of 'rtx_before_call', - 'old_stack_arg_under_construction' - (emit_library_call): Bracket declaration of 'upper_bound', - 'lower_bound', 'i', 'reg_parm_stack_space' - (emit_library_call_value): Likewise. - (store_one_arg): - - * collect2.c: Include when appropriate. - Bracket declaration of 'exportf' and 'full_real_ld_suffix'. - - * emit-rtl.c (prev_cc0_setter): Remove unused variable 'link'. - - * explow.c (plus_constant_for_output_wide): Remove unused variable - 'code'. - (memory_address): Remove unused variable 'orig_x'. - - * genattrtab.c (make_canonical): Remove unreferenced label 'cond:'. - (write_const_num_delay_slots): Remove unused variable 'i'. - - * genopinit.c (main): Remove unused variables 'dummy', 'insn_ptr'. - (gen_insn): Remove unused variable 'obstack_ptr'. - - * libgcc2.c (__bb_exit_func): Remove unused variables 'ret', - 'j', 'tmp', 'i'. - (__bb_exit_trace_func): Remove unused variable 'e'. - - * optabs.c (expand_binop): Remove unused variables 'lhs', 'rhs', - 'funexp'. - (expand_unop): Remove unused variable 'funexp'. - (expand_complex_abs): Remove unused variable 'funexp'. - (init_optabs): Bracket declaration of 'j'. - (init_complex_libfuncs): Deleted. Dead static function. - - * profile.c (branch_prob): Remove unused variables 'insn', 'dest'. - - * reg-stack.c: Fix typo in proto for 'get_asm_operand_lengths' - (reg_to_stack): 'initialized', 'before_function_beg' - explicitly type as ints instead of defaulting. - (emit_swap_insn): Remove unused variable 'i2'. - (compare_for_stack_reg): Remove unused variable 'src_note'. - - * rtlanal.c (computed_jump_p): Remove unused variable 'computed_jump'. - - * sched.c (actual_hazard): Bracket declaration of 'this_cost'. - - * stmt.c (add_case_node): Add parens for assignment used as truth. - (all_cases_count): Remove unused variable 'count_high'. - (mark_seen_cases): Remove unused variable 'i'. - (check_for_full_enumeration_handling): Remove unused variable 't'. - Bracket declaration of 'all_values', 'l'. - - * tlink.c: Include , , /. - - * varasm.c (assemble_string): Remove unused variable 'i'. - (immed_double_const): Remove unused variable 'in_current_obstack'. - (immed_real_const_1): Likewise. - (output_constant_pool): Remove unreferenced label 'done'. - (output_constant): Remove unused variable 'x'. - - * i386/i386.h (ENCODE_SECTION_INFO): TREE_PUBLIC is an int, not - a string. - - * i386/sco5.h (ASM_OUTPUT_ASCII): Add parens for assignment used - as truth. - -Fri Feb 13 10:21:41 1998 J"orn Rennecke - - * combine.c (can_combine_p): Handle USEs in PARALLELs. - -Fri Feb 13 01:34:14 1998 H.J. Lu (hjl@gnu.org) - - * config/linux.h (LIB_SPEC): Add -lc for -shared if - USE_GNULIBC_1 is not defined. - * config/sparc/linux.h; Likewise. - - * config/sparc/linux64.h (LIB_SPEC): Add -lc for -shared. - - * config/alpha/linux-elf.h (LIB_SPEC): New. Defined if - USE_GNULIBC_1 is not defined. - -Fri Feb 13 01:29:29 1998 Franz Sirl - - * rs6000/sysv4.h (ENDFILE_SPEC): Add missing %(endfile_linux) - for -mcall-linux. - -Fri Feb 13 01:23:46 1998 Kaveh R. Ghazi - - * system.h: New file to get common systems includes and various - definitions and declarations based on autoconf macros. - -Fri Feb 13 00:46:19 1998 Jeffrey A Law (law@cygnus.com) - - * cccp.c (new_include_prefix): Correctly handle -I./. - -Thu Feb 12 20:16:35 1998 Michael Meissner - - * rs6000.md: Replace gen_rtx (CONST_INT,...) with GEN_INT. - -Thu Feb 12 16:45:17 1998 Robert Lipe - - * expr.c (expand_assignment): Correct typo exposed by -Wall. - offset should have been a truth value, not an assignment. - -Thu Feb 12 15:26:50 1998 Jeffrey A Law (law@cygnus.com) - - * cse.c (delete_dead_from_cse): If a libcall produces a constant - result and that result can be substituted into SET_SRC of the - insn with the REG_RETVAL note, then perform the substitution - and delete the libcall. - -Thu Feb 12 14:04:09 1998 Gavin Koch - - * mips.md (trucndihi2,truncdiqi2): Change these to support - mips16. - -Thu Feb 12 11:34:55 1998 Gavin Koch - - * mips/mips.c (movdi_operand): Direct references to symbols - that arn't mips16 consts in mips16 mode arn't valid operands. - - * mips/mips.c (mips_move_2words): Add gprel handling. - -Thu Feb 12 11:18:37 1998 Gavin Koch - - * mips.md (extendsidi2): Allow extension to/from a non-mips16 - register. - -Thu Feb 12 00:04:16 1998 Marc Lehmann - - * i386.c: Conditionally include , , and - . - -Wed Feb 11 11:43:34 1998 Kaveh R. Ghazi - - * Makefile.in (WARN_CFLAGS): New variable. - (bootstrap, bootstrap2, bootstrap3, bootstrap4): Use it. - -1998-02-11 Mark Mitchell - - * config/i386/i386.c (reg_mentioned_in_mem): Don't abort when - falling through default case in switch. - (i386_aligned_p): Likewise. - -Wed Feb 11 12:59:56 1998 Lee Iverson - - * mips/mips.h (mips_abi_string): Correct typo in comment. - -Wed Feb 11 08:29:56 1998 Gavin Koch - - * mips/mips.md (movdi): These PLUS's need to be Pmode. - -Wed Feb 11 01:47:54 1998 Kaveh R. Ghazi - - * Makefile.in (dwarf2out.o, emit-rtl.o, jump.o, cse.o, unroll.o, - reorg.o, regmove.o): Depend on insn-codes.h, it gets included - indirectly via expr.h. - -Wed Feb 11 01:44:13 1998 Richard Henderson - - * stor-layout.c (layout_type): Do upper - lower in the native type, - so as to properly handle negative indices. - -Wed Feb 11 01:35:55 1998 Robert Lipe - - * except.c (start_dynamic_cleanup): Remove unused variable 'dhc'. - (expand_eh_region_start_tree): Remove unused variable 'note'. - (exception_optimize): Remove unused variable 'regions'. - (expand_builtin_eh_stub): Remove unused variable 'temp'. - (copy_eh_entry): Deleted. Dead function. - - * expr.c (move_block_to_reg): Bracket declaration of 'pat' and - 'last' with same #if HAVE_load_multiple as use of it. - (move_block_from_reg): Likewise. - (emit_move_insn_1): Remove unused variable 'insns'. - (store_constructor): Bracket declaration of startb, endb with - #if TARGET_MEMFUNCTIONS. Remove unused variables 'set_word_size' - 'target', and 'xtarget'. - (expand_builtin_setjmp): Remove unused variables 'op0', - 'next_arg_reg', 'old_inhibit_defer_pop'. - (expand_builtin): Remove unused variable 'offset'. - (do_store_flag): Remove unused variables 'pattern', 'jump_pat'. - (emit_queue): Add parens for assignment used as conditional. - (expand_expr): Case TARGET_EXPR: Remove unused variable 'temp'. - -Wed Feb 11 01:30:49 1998 Marc Lehmann - - * i386.c: Added include for recog.h. - (override_options): Removed unused variable p. Initialized regno to - avoid warning. - (order_regs_for_local_alloc): Initialized regno to avoid warning. - (legitimize_address): Likewise for 'other'. - (i386_aligned_reg_p): Added default case with abort (). - (print_operand): Likewise. - (reg_mentioned_in_mem): Likewise. - (ix86_expand_binary_operator): Removed unused variables i & insn. - (ix86_expand_unary_operator): Removed unused variable insn. - (output_fp_cc0_set): Removed unused variable unordered_label. - -Wed Feb 11 01:23:03 1998 John F. Carr - - * i386.c, i386.h, i386.md: Change gen_rtx (X, ...) to gen_rtx_X (...). - Use GEN_INT instead of gen_rtx (CONST_INT). Make printf arguments - and format string match. - -Wed Feb 11 01:17:39 1998 Jeffrey A Law (law@cygnus.com) - - * flow.c (life_analysis): Do not consider the stack pointer live at - the end of a function if the function calls alloca. - (mark_used_regs): Similarly. - -1998-02-10 John F Carr - - * config/sparc/sparc.md (movdi_v8plus): Output stx on alternative - 1, fzero on alternative 8. - -Tue Feb 10 09:02:19 1998 Richard Kenner - - * rs6000.c (setup_incoming_varargs): Always set rs6000_sysv_varargs_p. - -Tue Feb 10 03:35:43 1998 J"orn Rennecke - - * reload.c (find_reloads_toplev): Handle arbitrary non-paradoxical - SUBREGs of CONST_INTs. - -Mon Feb 9 17:52:36 1998 John Carr - - * mips.c (print_operand, function_prologue): Make printf format - match argument type. - -Mon Feb 9 02:37:25 1998 Kaveh R. Ghazi - - * alpha.c (alpha_return_addr): Remove unused variable `first'. - (alpha_ra_ever_killed): Remove unused variables `ra' and `i'. - (output_epilog): Remove unused variable `frame_size_from_reg_save'. - -Sun Feb 8 14:56:03 1998 Richard Kenner - - * loop.c (strength_reduce): When placing increment for auto-inc - case, do comparison in loop order. - -Sun Feb 8 13:21:38 1998 John Carr - - * bitmap.c (bitmap_debug_file): HOST_PTR_PRINTF converts a pointer, - not a HOST_WIDE_INT. - - * calls.c (expand_call): Change test of expand_inline_function - return value to stop compiler warning. - - * genattrtab.c (RTL_HASH): Cast pointer to long, not HOST_WIDE_INT. - -Sun Feb 8 12:04:24 1998 Jim Wilson (wilson@cygnus.com) - Jeff Law (law@cygnus.com) - - * regmove.c: Fix various minor formatting problems. - (optimize_reg_copy_1): Stop search at CALL_INSNs if flag_exceptions - is true. Make end of basic block tests consistent through regmove.c. - (optimize_reg_copy_2, optimize_reg_copy_3): Likewise. - (fixup_match_2, fixup_match_1, regmove_optimize): Likewise. - -Sun Feb 8 01:49:18 1998 Kaveh R. Ghazi - - * gansidecl.h: Check for a conflicting macro definition before - attempting to prototype bcopy, bcmp or bzero. - -Sun Feb 8 00:09:59 1998 Jeffrey A Law (law@cygnus.com) - - * expr.c (clear_pending_stack_adjust): Handle case where a function - calls alloca, but the user has specified -fomit-fframe-pointer. - - * function.c (assign_parms): Fix typo in last change. - -Sat Feb 7 23:54:29 1998 Robert Lipe - - * gcc.c: Include /, , , - . - (free_path_suffix): Remove unreferenced static function. - (process_command): Remove unused variable temp. - (default_arg): Remove unused variable i. - (do_spec_1): Add parens for assignment used as truth value. - (main): Likewise. - (validate_all_switches): Likewise. - (main): Remove unused variables i, first_time> - - * c-common.c: Include and /. - - * calls.c (expand_call): Remove unused variables funtree, - n_regs, and tmpmode. - - * dbxout.c, except.c: Include /. - - * explow.c (plus_constant_for_output_wide): Removed unused - variable all_constant. - - * c-decl.c, genattr.c, genattrtab.c, getconfig.c, genemit.c - genextract.c, genflags.c, genopinit.c genoutput.c, genpeep.c, - genrecog.c, global.c, integrate.c , stupid.c : Include - . - - * genextract.c (walk_rtx): Remove unused variable link. - - * genrecog.c (concat): Remove unreferenced static function. - - * prefix.c: Include /, - - * stmt.c: Include . - (expand_asm_operands): Remove unused variable val1. - (expand_return): Remove unused variable block. - (pushcase): Remove unused variables l and n. - (pushcaserange): Likewise. - - * unroll.c (unroll_loop): Remove unused variable temp. - -Sat Feb 7 23:46:09 1998 Greg McGary - - * c-decl.c (pushdecl): Set DECL_ORIGINAL_TYPE once only. - -Sat Feb 7 15:11:28 1998 Kaveh R. Ghazi - - * aclocal.m4 (GCC_FUNC_PRINTF_PTR): New macro to test the printf - functions for whether they support the %p format specifier. - * acconfig.h (HOST_PTR_PRINTF): Insert stub for autoconf. - * configure.in (GCC_FUNC_PRINTF_PTR): Use it. - * configure, config.in: Rebuild. - -Fri Feb 6 14:20:16 1998 Jim Wilson - - * function.c (assign_parms): New variable named_arg, with value - depending on STRICT_ARGUMENT_NAMING. Use instead of ! last_named. - -Fri Feb 6 14:34:28 1998 Gavin Koch - - * mips/t-r3900: New - same as t-ecoff but eliminate - multilibs: mips1 and mips3. - * configure.in (tx39*): Use new mips/t-r3900. - * configure: Rebuild. - * mips/r3900.h (MULTILIB_DEFAULTS): Eliminate mips1. - -1998-02-06 Jason Merrill - - * dwarf2out.c: Add old_args_size. - (dwarf2out_args_size): Use it. - (dwarf2out_begin_prologue): Initialize it. - (dwarf2out_stack_adjust): If !asynchronous_exceptions, save up - pushed args until we see a call. - * final.c (final_scan_insn): Hand CALL_INSNs off to the dwarf2 code - before outputting them. - -1998-02-06 Kriang Lerdsuwanakij - - * cplus-dem.c (demangle_template_template_parm): New function. - (demangle_template): Handle template template parameters. - -1998-02-02 Mark Mitchell - - * calls.c (expand_call): Don't confuse member functions named - realloc, setjmp, and so forth with the standard library - functions of the same names. - -Thu Feb 5 21:59:49 1998 Jeffrey A Law (law@cygnus.com) - - * stmt.c (expand_asm_operands): Correctly identify asm statements - no output operands. - -Thu Feb 5 21:56:06 1998 Mumit Khan - - * c-common.c (decl_attributes): Flag unrecognized attribute - functions as warnings instead of as errors. - -1998-02-05 Marc Lehmann - - * integrate.c (INTEGRATE_THRESHOLD): Inline only small functions - when -Os is specified. - * toplev.c (main): Don't disable flag_inline_functions anymore when - -Os is in effect. - -Fri Feb 6 00:27:36 1998 J"orn Rennecke - - * regmove.c: Update. - * flags.h (flag_regmove): Declare. - * rtl.h (optimize_reg_copy_1, optimize_reg_copy_2): Don't declare. - * local-alloc.c (optimize_reg_copy_1, optimize_reg_copy_2): - Moved into regmove; changed caller. - * toplev.c (rest_of_compilation): Call regmove_optimize also for - expensive_optimizations. - -Thu Feb 5 13:38:42 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Thu Feb 5 01:45:19 1998 J"orn Rennecke - Undo this change (the problem was actually in reload): - Fri Jan 23 23:28:59 1998 J"orn Rennecke - - * sh.md (movqi_i+1): New peephole. - -Tue Feb 3 01:11:12 1998 Jeffrey A Law (law@cygnus.com) - - * jump.c (jump_optimize): Lose calls to modified_in_p they are - not needed anymore due to changes elsewhere in jump.c. - - * jump.c (jump_optimize): Fix first arg to modified_in_p in - previous change. - -Mon Feb 2 19:18:14 1998 Richard Henderson - - * expr.c (expand_builtin_setjmp): Accept two new arguments for - the labels to branch to on first and subsequent executions. Don't - play with __dummy. Rename `setjmp' insn to `builtin_setjmp_setup', - and provide it with the jmp_buf. Use only one of - `builtin_setjmp_receiver' or `nonlocal_goto_receiver', - and provide the former with the target label. - (expand_builtin) [BUILTIN_SETJMP]: Generate a label for use by setjmp. - (expand_builtin) [BUILTIN_LONGJMP]: Split out to ... - (expand_builtin_longjmp): ... here. Recognize a `builtin_longjmp' - insn to replace all of the normal nonlocal_goto code. Don't play - with __dummy. Correct arguments to nonlocal_goto. - * expr.h (expand_builtin_setjmp): Update prototype. - * except.c (start_dynamic_handler): When using builtin_setjmp, - generate more accurate flow information. - - * alpha.md (nonlocal_goto_receiver_osf): Delete. - (nonlocal_goto_receiver_vms): Rename to nonlocal_goto_receiver. - (builtin_longjmp, builtin_setjmp_receiver): New. - * sparc.md (update_return): Disambiguate unspec number. - (nonlocal_goto): Rearrange arguments to match caller in except.c. - (builtin_setjmp_setup): Rename from setjmp. Match and ignore the - jmp_buf operand. - * mips.md (nonlocal_goto_receiver, builtin_setjmp_receiver): Remove. - (builtin_setjmp_setup*, builtin_longjmp): New. - -Mon Feb 2 16:43:10 1998 John Carr - - * mips.md: Change gen_rtx (CONST_INT) to GEN_INT. - -Mon Feb 2 13:06:47 1998 Jim Wilson - - * vmsconfig.com: Remove bytecode references. - -1998-01-30 Andreas Schwab - - * dwarf2out.c (dwarf2out_frame_init): Undo last change, so that - -fno-sjlj-exceptions works for a target that defines - DWARF2_UNWIND_INFO as zero. - - * regmove.c (fixup_match_1): Undo last change which removed some - "useless" code, and add a comment explaining this. - -Mon Feb 2 10:47:14 1998 Gavin Koch (gavin@cygnus.com) - - * mips.c (mips_expand_prologue): Change uses of TARGET_64BIT - to TARGET_LONG64. - -Mon Feb 2 10:38:41 1998 Klaus Kaempf - - * makefile.vms: Remove bytecode references. - Create genrtl files. - -Mon Feb 2 02:08:04 1998 Michael P. Hayes - - * jump.c (jump_optimize): Allow conditional loading of floating point - constants and constants from memory. Reinstalled modified_in_p tests. - -Mon Feb 2 01:38:39 1998 J"orn Rennecke - - * loop.c (get_condition): Handle sign-extended constants. - -Mon Feb 2 01:22:46 1998 Hans-Peter Nilsson - - * expr.c (emit_push_insn): Add code to use movstrti if present. - - * expr.c (emit_push_insn): Use same max-move-amount for movstrhi - and movstrqi as in emit_block_move (). - -Mon Feb 2 00:09:52 1998 Toon Moene - - * config/m68k/x-next: Remove /NextDeveloper/Headers from - the directories to fixinclude - /usr/include is a link - to it and hence its contents are fixed by default. - -Sun Feb 1 14:15:33 1998 Franz Sirl - - * rs6000/linux.h: Define JUMP_TABLES_IN_TEXT_SECTION. - -Sun Feb 1 13:01:15 1998 Klaus Kaempf - - * cccp.c (main): Predefine __VMS_VER on VMS. - -Sun Feb 1 12:39:53 1998 J"orn Rennecke - - * expr.c (get_inner_reference): Use sbitsizetype for type sizes. - * fold-const.c (size_int): Replace with - (size_int_wide). - (make_bit_field_ref): Use bitsize_int for bit position. - * stor-layout.c (sizetype): Delete. - (sizetype_tab, sbitsizetype, ubitsizetype): Declare. - (layout_record, layout_union, layout_type): - Use bitsize_int for bit size. - (set_sizetype): New function. - (make_signed_type, make_unsigned_type): Use it. - * c-decl.c (init_decl_processing): Likewise. - * tree.h (size_int): Don't delcare, #define. - (size_int_wide, sizetype_tab, sbitsize, ubitsize): Declare. - (set_sizetype): Declare. - (bitsize_int, size_int_2, BITS_PER_UNIT_LOG, sizetype, bitsizetype): - Define. - * c-typeck.c (c_sizeof, c_sizeof_nowarn, c_size_in_bytes): - Convert result to sizetype. - (really_start_incremental_init, push_init_level): - Set type of constructor_bit_index to sbitsizetype. - (push_init_level): Use unsigned arithmetic to determine padding. - (output_init_element): Likewise. - -Sun Feb 1 03:32:07 1998 Jeffrey A Law (law@cygnus.com) - - * combine.c (simplify_shift_const): Fix typo in last change. - -Sun Feb 1 02:50:46 1998 John Carr - - * combine.c (simplify_shift_const): (lshiftrt (truncate (lshiftrt))) - is (truncate (lshiftrt)). - -Sun Feb 1 01:06:53 1998 Richard Henderson - - * alpha.c (alpha_expand_unaligned_load): Use expand_binop properly. - Make sure result winds up in TGT. - (alpha_expand_unaligned_store): Use expand_binop properly. Allow - src to be other than DImode. - (alpha_expand_unaligned_load_words): Tidy. Take an offset argument. - (alpha_expand_unaligned_store_words): Likewise. - (alpha_expand_block_move): Use REGNO_POINTER_ALIGN. Restructure so - that source and destination are separately optimized for alignment. - (alpha_expand_block_clear): Use REGNO_POINTER_ALIGN. - -Sun Feb 1 01:55:09 1998 Jeffrey A Law (law@cygnus.com) - - * mips.md (adddi3_internal_2): Be consistent with adddi3 expander - with handling of -32768. - -Sun Feb 1 01:48:18 1998 Kaveh R. Ghazi - - * aclocal.m4 (GCC_NEED_DECLARATION): Modify macro to accept a - shell variable argument instead of only hard coded functions. - (GCC_NEED_DECLARATIONS): New macro to accept multiple functions. - - * configure.in: Collapse multiple calls to AC_CHECK_FUNCS into one - call. Collapse multiple calls to GCC_NEED_DECLARATION into one - call to GCC_NEED_DECLARATIONS (new macro.) Check if we need - declarations for bcopy, bcmp and bzero. - - * acconfig.h: Add stubs for bcopy, bcmp and bzero declarations. - - * gansidecl.h: If we have bcopy but don't declare it, then do so. - Likewise for bcmp and bzero. Only define macros for bcopy, bcmp, - bzero, index and rindex if they aren't already present. - -Sat Jan 31 11:26:58 1998 Jeffrey A Law (law@cygnus.com) - - * toplev.c (close_dump_file): Wrap function prototype for - argument "func" in PROTO. - (dump_rtl): Likewise. - -Fri Jan 30 22:30:39 1998 John Carr - - * sparc.c (sparc_override_options): Make v8plus and ultrasparc set - MASK_V8PLUS. - (output_function_epilogue): Omit epilogue if nothing drops through. - (output_move_double): Suppress int ldd usage on ultrasparc and v9. - (registers_ok_for_ldd_peep): Likewise. - (print_operand): Suppress b,a on ultrasparc. Let Y accept a constant. - (ultrasparc_adjust_cost): New function. - (sparc_issue_rate): New function. - * sparc.h (MASK_VIS, TARGET_VIS): New. - (MASK_V8PLUS, TARGET_V8PLUS): New. - (TARGET_HARD_MUL32, TARGET_HARD_MUL): New. - (TARGET_SWITCHES): Add vis and v8plus. - (REG_CLASS_FROM_LETTER): Accept d and b for VIS. - (REGISTER_MOVE_COST): FP<->INT move cost 12 for ultrasparc. - (RTX_COSTS): Use TARGET_HARD_MUL. - (ADJUST_COST): Call ultrasparc_adjust_cost. - (ISSUE_RATE): New. - * sparc.md (attr type): Add sload, fpmove, fpcmove. Adjust users - of load & fp appropriately. - (supersparc function units): Adjust for Haifa. - (ultrasparc function units): Likewise. - (get_pc_via_rdpc): All v9, not just arch64. - (movdi_v8plus, movdi_v8plus+1): New. - (adddi3_sp32+1): New. - (subdi3_sp32+1): New. - (movsi_insn, movsf_const_insn, movdf_const_insn): Know VIS. - (addsi3, subsi3, anddi3_sp32, andsi3, and_not_di_sp32): Likewise. - (and_not_si, iordi3_sp32, iorsi3, or_not_di_sp32, or_not_si): Likewise. - (xorsi3_sp32, xorsi3, xor_not_di_sp32, xor_not_si): Likewise. - (one_cmpldi2_sp32, one_cmplsi2): Likewise. - (ldd peepholes): Suppress for v9. - (return_adddi): Kill redundant test. Arg1 may be arith_operand. - (return_subsi): Revmove. - -Fri Jan 30 18:30:03 1998 John F Carr - - * mips.c (save_restore_insns): Set RTX_UNCHANGING_P in register - save/restore MEM rtl. - -Fri Jan 30 09:08:16 1998 Jeffrey A Law (law@cygnus.com) - - * configure.in: Check for declaration of abort. - * acconfig.h: Corresponding changes. - * toplev.c: Use NEED_DECLARATION_ABORT to determine if abort should - be declared. - -Thu Jan 29 20:26:12 1998 Jeffrey A Law (law@cygnus.com) - - * genattrtab.c (optimize): Define in case PRESERVE_DEATH_INFO_REGNO_P - uses it. - -Thu Jan 29 09:27:56 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Thu Jan 29 10:12:27 1998 Jeffrey A Law (law@cygnus.com) - - * configure.in: Check for atoq and atoll. - * rtl.c (read_rtx): Use HAVE_ATOLL and HAVE_ATOQ to select the - proper routine for converting ascii into long long values. - -Thu Jan 29 01:28:14 1998 Klaus Kaempf - - * cccp.c (SYS$SEARCH, SYS$PARSE): Write as upper-case. - - * vmsconfig.com: Remove bytecode references. - - * alpha/vms.h (PREFIX): Define. - - * alpha/vms.h (ASM_OUTPUT_ALIGNED_COMMON): Remove. - - * am-alpha.h: Don't include alloca for OPEN_VMS. - - * alpha/xm-vms.h (HAVE_CPP_STRINGIFY): Define. - - * alpha/xm-vms.h (INCLUDE_DEFAULTS): Define. - (GCC_INCLUDE_DIR): Define. - - * make-cc.com, make-cccp.com, make-cc1.com: Removed. - * makefile.vms: New file. - - * alpha/vms.h (CPP_PREDEFINES): Remove -Dalpha. - - * alpha.c (output_prolog): Output '.name' directive - for minimal traceback information. - - * alpha.c (output_prolog): Don't prepend entry point symbols - with '$' on OPEN_VMS. - -Thu Jan 29 00:25:35 1998 David S. Miller - Jeffrey A Law (law@cygnus.com) - - * rtl.c (read_rtx): Use atol/atoq based upon disposition of - HOST_WIDE_INT. - - * genattrtab.c (write_test_expr): Use HOST_WIDE_INT_PRINT_DEC - as needed. - * genemit.c (gen_exp): Likewise. - * genpeep.c (match_rtx): Likewise. - * genrecog.c (write_tree_1): Likewise. - - * c-lex.c (yyprint): Use proper format string based upon - disposition of HOST_BITS_PER_WIDE_INT. - (yylex): Put casts in right place for args to build_int_2. - -Thu Jan 29 00:24:29 1998 Jeffrey A Law (law@cygnus.com) - - * combine.c: Fix typos in Jan27 changes. - -Thu Jan 29 00:07:49 1998 Ollivier Robert - - * i386/freebsd.h (LIB_SPEC): Correctly handle -shared, -p and friends. - (LINK_SPEC): Likewise. - (STARTFILE_SPEC): Likewise. - -1998-01-28 Mike Stump - - * rtlanal.c (dead_or_set_regno_p): Ignore REG_DEAD notes after - reload completes. - * genattrtab.c (reload_completed): Define. - - * m32r.md, mips.md, mn10200.md, mn10300.md, pyr.md: Remove obsolete - comments. - -Wed Jan 28 20:11:06 1998 J"orn Rennecke - - * reload.c (push_reload): If WORD_REGISTER_OPERATIONS, reload the - SUBREG_REG if the word count is unchanged, also in the input reload - case. Disable non-applicable sanity checks. - -Wed Jan 28 20:08:26 1998 Jeffrey A Law (law@cygnus.com) - - * config/t-svr4 (TARGET_LIBGCC2_CFLAGS): Add -fPIC. - -Wed Jan 28 20:04:43 1998 Ian Lance Taylor - - * i386/t-cygwin32 (LIMITS_H_TEST, LIBGCC2_INCLUDES): Define. - -Wed Jan 28 11:45:27 1998 Per Bothner - - * dbxout.c (dbxout_type): For a RECORD_TYPE, check that TYPE_BINFO - is a TREE_VEC before trying to use it for baseclasses. - (Chill uses the same field for a different purpose.) - - * toplev.c (strip_off_ending): Generalize to endings up to 5 chars. - -Tue Jan 27 23:15:55 1998 Lassi A. Tuura - - * config.sub: More accurate determination of HP processor types. - -Tue Jan 27 23:11:11 1998 Kaveh R. Ghazi - - * c-lex.c: Include and /. Add - prototype for `handle_sysv_pragma', and make it static. Add - parentheses around assignment used as truth value. - - * combine.c (combine_instructions): Protect variable `prev' with - macro HAVE_cc0. - (can_combine_p): Protect variable `link' with AUTO_INC_DEC. - (extract_left_shift): Add parentheses around operand of &. - (merge_outer_ops): Avoid an empty body in an else-statement. - (gen_rtx_combine): Remove unused variable `i'. - - * sparc/gmon-sol2.c: Include . Make return type of - function monstartup `void'. Likewise for internal_mcount. Add - `static void' prototype for moncontrol. Reconcile sprintf format - vs. args. - - * sparc/sparc.c: Include and /. - Make return type of function_arg_slotno explicitly `int'. - (reg_unused_after): Add parentheses around assignment used as - truth value. - (save_regs): Add explicit braces to avoid ambiguous `else'. - (function_arg_slotno): Add parentheses around && within ||. - (function_arg_pass_by_reference): Likewise. - (sparc_flat_output_function_prologue): Reconcile fprintf format - vs. args. - - * svr4.h (ASM_OUTPUT_LIMITED_STRING): Add parentheses around - assignment used as truth value. - - * cplus-dem.c: Include . - (demangle_signature): Avoid an empty body in an else-statement. - (do_type): Remove unused variable `lvl'. - - * cppexp.c: Don't have depend on MULTIBYTE_CHARS. - Include /. - (cpp_lex): Remove unused variable `namelen'. - (cpp_lex): Explicitly declare `num_chars' as an int. - - * cpplib.c: Avoid duplicate inclusion of , include - instead. Explicitly declare is_system_include - returning int. - (make_assertion): Remove unused variable `kt'. - (cpp_expand_to_buffer): Hide variable `obuf'. - (output_line_command): Remove unused variables, `line_end', - `line_cmd_buf' and `len'. - (macarg): Remove unused variable `arg_start'. - (special_symbol): Remove unused variable `i'. Add parentheses - around assignment used as truth value. - (do_include): Remove unused variables `pcfname' and `retried', - hide `pcf' and `pcfbuflimit'. - (do_line): Remove unused variable `i'. - (finclude): Hide variable `missing_newline'. - (cpp_handle_options): Remove unused variable `j'. - (read_token_list): Remove unused variable `eofp'. - (cpp_error_with_line): Remove unused variable `i'. - (cpp_warning_with_line): Likewise. - (cpp_pedwarn_with_line): Explicitly declare `column' as int. - (cpp_error_from_errno): Remove unused variable `i'. - - * cse.c (invalidate): Add parentheses around assignment used as - truth value. - (find_best_addr): Move declaration of variable `our_cost' inside - the conditional macro where its used. - (fold_rtx): Avoid an empty body in an if-statement. - (cse_insn): Wrap variables `this_insn_cc0_mode' and - `this_insn_cc0' in macro HAVE_cc0. - - * dwarf2out.c: Include and /. - (ASM_OUTPUT_DWARF_DATA8): Reconcile format vs. args in fprintf's. - (output_uleb128): Likewise. - (output_sleb128): Likewise. - (output_cfi): Likewise. - (output_call_frame_info): Remove unused variables `j', `fde_size' - and `fde_pad'. - (comp_unit_has_inlines): Hide declaration as per rest of file. - (size_of_line_prolog): Correct typo in prototype. - (add_arange): Likewise. - (output_aranges): Likewise. - (add_name_and_src_coords_attributes): Likewise. - (gen_array_type_die): Likewise. - (gen_inlined_subroutine_die): Likewise. - (equate_decl_number_to_die): Remove unused variable `i'. - (print_die): Reconcile format vs. args in fprintf's. - (print_dwarf_line_table): Likewise. - (output_die): Likewise. - (output_line_info): Likewise. - (add_subscript_info): Avoid an empty body in an else-statement. - (gen_subprogram_die): Remove unused variable `fp_loc'. - - * dwarfout.c: Explicitly declare `next_pubname_number' as int. - Protect `ordering_attribute' prototype with USE_ORDERING_ATTRIBUTE - macro. Protect `src_coords_attribute' prototype with - DWARF_DECL_COORDINATES macro. Hide `output_entry_point_die' - prototype as in the rest of the file. Likewise for - `output_pointer_type_die' and `output_reference_type_die'. Remove - prototype for `type_of_for_scope'. - (output_unsigned_leb128): Reconcile format vs. args in fprintf. - (type_attribute): Add explicit braces to avoid ambiguous `else'. - - * final.c: Include and /. - (shorten_branches): Protect declaration of tmp_length with - SHORTEN_WITH_ADJUST_INSN_LENGTH and ADJUST_INSN_LENGTH macros. - (profile_function): Protect declaration of `sval' and `cxt' - variables with appropriate macros. - (final_scan_insn): Likewise for `note' variable. Add explicit - braces to avoid empty body in an if-statement. - (output_asm_insn): Move variable `i' inside macro conditional - where it is used. Add parentheses around assignment used as truth - value. - (asm_fprintf): Likewise, likewise. - - * fix-header.c (main): Remove unused variable `done'. Protect - declaration of `i' with FIXPROTO_IGNORE_LIST. - - * pexecute.c: Include . Prototype `my_strerror'. - - * print-rtl.c (print_inline_rtx): Explicitly declare the parameter - `ind'. - - * profile.c: Include /. - (instrument_arcs): Remove unused variables `note', `inverted', - `zero' and `neg_one'. - (branch_prob): Avoid empty body in an if-statement. - - * regclass.c: Include . - (reg_alternate_class): Explicitly declare parameter `regno'. - - * regmove.c (regmove_optimize): Remove unused variable `p'. Add - parentheses around assignment used as truth value. - (find_matches): Remove unused variables `output_operand' and - `matching_operand'. - (fixup_match_1): Remove statement with no effect: "if (0) ;". - - * scan.c (sstring_append): Explicitly declare `count' as int. - (scan_string): Explicitly declare parameter `init' as int. - - * sched.c: Include . - (BLOCKAGE_RANGE): Add parentheses around arithmetic in operand of |. - (rank_for_schedule): Add parentheses around assignment used as - truth value. - (schedule_block): Likewise. - (regno_use_in): Likewise. - (schedule_insns): Remove unused variable `i'. - - * toplev.c: Include and /. - (v_message_with_decl): Remove unused variable `n'. - (botch): Explicitly declare parameter `s' as char *. - (main): Add parentheses around assignment used as truth value. - - * tree.c (make_node): Protect the variable `kind' with the - GATHER_STATISTICS macro. - (real_value_from_int_cst): Move variable `e' inside conditional - macro area where it is used. - (tree_last): Add parentheses around assignment used as truth value. - (build1): Protect the variable `kind' with the GATHER_STATISTICS - macro. - (print_obstack_statistics): Reconcile format vs. args in fprintf. - Protect variables `i', `total_nodes', and `total_bytes' with the - GATHER_STATISTICS macro. - -Tue Jan 27 23:01:55 1998 Mike Stump - - * m32r.md, mips.md, mn10200.md, mn10300.md, pyr.md: Add - some comments regarding use of dead_or_set_p. - -Tue Jan 27 22:14:48 1998 Todd Vierling - - * fixincludes: Tweak fix for struct exception in math.h - -Tue Jan 27 17:21:09 1998 Gavin Koch (gavin@cygnus.com) - - * mips/mips.c (mips_expand_prologue,mips_expand_epilogue): - Change mode of registers used to add/sub from - hard_frame_pointer_rtx from word_mode to Pmode. - -Tue Jan 27 11:02:04 1998 Nick Clifton - - * v850.h (ASM_OUTPUT_ALIGNED_BSS): Use - asm_output_aligned_bss() instead of asm_output_bss(). - - * toplev.c (rest_of_compilation): Replace references to - stack_reg_dump_file and dbr_sched_dump_file with references to - rtl_dump_file. - -Tue Jan 27 10:22:13 1998 Kamil Iskra - - * tlink.c (scan_linker_output): Call fclose() for opened files. - -Tue Jan 27 05:05:26 1998 Richard Henderson - - * alpha.c (output_epilog [!VMS]): Don't tag global functions if - compiling with -fpic -- we want to be able to override symbols - properly. - (alpha_expand_block_move): Fix thinko in last change. - - * alpha.h (ASM_OUTPUT_MI_THUNK): New define. - * config/alpha/win-nt.h (ASM_OUTPUT_MI_THUNK): New define. - * config/alpha/vms.h (ASM_OUTPUT_MI_THUNK): New undef. - -Tue Jan 27 03:21:23 1998 Richard Henderson - - * alpha.md (abssf, absdf): Revert last change. - -Tue Jan 27 00:26:50 1998 John Carr - - * dwarf2out.c (dwarf2out_frame_init): Test value of DWARF2_UNWIND_INFO. - * mips/sni-svr4.h: Define DWARF2_UNWIND_INFO as 0. - -Tue Jan 27 00:07:02 1998 Jeffrey A Law (law@cygnus.com) - - * emit-rtl.c (gen_lowpart_common): Handle more case where converting - a CONST_INT into SFmode. - -Tue Jan 20 16:01:03 1998 Anthony Green - - * flags.h: New flag (optimize_size). - * toplev.c (main): Parse -Os option and set optimize_space - accordingly. - * gcc.c (default_compilers), cp/lang-specs.h, f/lang-specs.h: Define - __OPTIMIZE_SIZE__ when compiling with -Os. - * config/dsp16xx/dsp16xx.h, config/i386/i386.h, - config/i386/dgux.h, config/i960/i960.h, config/pdp11/pdp11.h, - config/v850/v850.h (OPTIMIZATION_OPTIONS): New SIZE argument - to macro. - * config/i386/i386.c (optimization_options): Accept new SIZE argument. - -Mon Jan 26 23:57:39 1998 Manfred Hollstein - - * libgcc2.c (__clear_insn_cache): On sysV68 enable the memctl - stuff only if MCT_TEXT is #define'd. - -Mon Jan 26 23:52:51 1998 Markus F.X.J. Oberhumer - - * configure.in (i*86-pc-msdosdjgpp): Treat like msdos & go32 - configurations. - -Fri Jan 23 09:39:36 1998 Nick Clifton - - * toplev.c: Add -dM command line option to dump RTL after the - machine dependent reorganization pass, if there is one. - Reorganize RTL dump code, so that only one file handle is - needed. - -Mon Jan 26 12:09:42 1998 Benjamin Kosnik - - * except.c (check_exception_handler_labels): Disable warning when - flag_syntax_only. - -Mon Jan 26 18:17:32 1998 Jim Wilson - - * sparc.c (pic_setup_code): Don't set LABEL_PRESERVE_P. - -Mon Jan 26 18:11:30 1998 J"orn Rennecke - - * c-decl.c (grokdeclarator): Get parameter tags from - last_function_parm_tags. - * dwarfout.c (output_formal_types): Set TREE_ASM_WRITTEN before - traversing the parameter types. - (output_type): No early exit for FUNCTION_TYPE / METHOD_TYPE context. - -Mon Jan 26 01:44:12 1998 Jeffrey A Law (law@cygnus.com) - - * h8300.c (print_operand): Handle CONST_DOUBLE for 'e', 'f', and - the default case. - (get_shift_alg): Fix typo. - -Sun Jan 25 22:22:04 1998 Richard Henderson - - * alpha.c (alpha_expand_block_move): Copy ADDRESSOF to reg. - -Sun Jan 25 22:14:28 1998 Richard Henderson - - * toplev.c (get_run_time): Make sure each case gets its variables. - -Sun Jan 25 22:10:21 1998 Richard Henderson - - * configure.in (build_xm_file): Add auto-config.h if host=build. - (host_xm_file_list): Don't add $(srcdir) to auto-config.h. - (build_xm_file_list): Likewise. - * configure: Rebuild. - -Sun Jan 25 22:00:25 1998 Alasdair Baird - - * recog.c (validate_replace_rtx_1): Only perform substitutions - of arguments to commutative and comparison operators once. - -Sun Jan 25 12:30:18 1998 Kaveh R. Ghazi - - * sparc.c (output_cbranch): Add default case in - enumeration switch. - - * reorg.c (insn_sets_resource_p): Correct typo in prototype. - (emit_delay_sequence): Eliminate unused parameter, all callers - changed. - (fill_simple_delay_slots): Likewise. - (fill_slots_from_thread): Likewise. - (fill_eager_delay_slots): Likewise. - (mark_referenced_resources): Add default case in enumeration switch. - (mark_set_resources): Likewise. - (rare_destination): Likewise. - (mostly_true_jump): Likewise. - (find_dead_or_set_registers): Likewise. - (redirect_with_delay_slots_safe_p): Remove unused variable `slots'. - (update_reg_unused_notes): Remove unused variable `p'. - (mark_target_live_regs): Remove unused variables `next' and - `jump_count'. - (fill_simple_delay_slots): Remove unused variable `j'. - (fill_slots_from_thread): Add parentheses around assignment used - as truth value. - (dbr_schedule): Likewise. - - * objc/Make-lang.in (objc.stage1): Depend on stage1-start. - (objc.stage2, objc.stage3, objc.stage4): Likewise. - -Sun Jan 25 12:13:47 1998 Michael Tiemann - - * cse.c (simplify_ternary_operation): Don't try to simplify - IF_THEN_ELSE expressions (created by combine) that don't use - relational operators. - -Fri Jan 23 22:48:24 1998 Jeffrey A Law (law@cygnus.com) - - * cse.c (simplify_ternary_operation): Handle more IF_THEN_ELSE - simplifications. - - * crtstuff.c (init_dummy): Keep the epilogue in the init - section for non-ELF systems. - -Fri Jan 23 23:28:59 1998 J"orn Rennecke - - * sh.md (movqi_i+1): New peephole. - -Fri Jan 23 15:39:42 1998 Jim Wilson - - * Makefile.in: Remove remaining bytecode stuff. - * emit-rtl.c, expr.c: Likewise. - -Fri Jan 23 12:41:10 1998 Nick Clifton (nickc@cygnus.com) - - * toplev.c (lang_options): Add unknown-pragma options. - -Thu Jan 22 23:43:38 1998 Per Bothner - - * dwarfout.c (byte_size_attribute): Simplify and fix - don't need - special (and incomplete) handling for Chill arrays. - -Fri Jan 23 00:27:23 1998 John Carr - - * toplev.c (get_run_time): Call sysconf(_SC_CLK_TCK), when available, - to get clock rate. - -Fri Jan 23 00:19:36 1998 Gavin Koch (gavin@cygnus.com) - - * mips.md (muldi3_internal2): Reverse test for TARGET_MIPS16. - -1998-01-22 scott snyder - - * mips.c (function_prologue): Use HARD_FRAME_POINTER_REGNUM in - .frame directive instead of FRAME_POINTER_REGNUM. - -Fri Jan 23 00:08:55 1998 Robin Kirkham - - * m68k.h (TARGET_SWITCHES): -mcpu32 now clears MASK_68881. - (MACHINE_STATE_m68010_up): Replaced __mc68332__ with __mcpu32__. - * m68k/m68k-none.h(CPP_FPU_SPEC): Update relative to TARGET_SWITCHES. - (CPP_SPEC, ASM_SPEC, CC1_SPEC): Likewise. - (CPP_SPEC): -m68332 defines both __mc68332 and __mcpu32__. - * m68k/t-m68kbare (MULTILIB_OPTIONS): Add mcpu32. - (MULTILIB_MATCHES): -m68332 now uses mcpu32 libraries, not m68000. - (MULTILIB_EXCEPTIONS): Don't build 68881 libraries for m68000, - mcpu32 or m5200. - * longlong.h: Replace __mc68332__ with __mcpu32__. - -Thu Jan 22 19:55:40 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Thu Jan 22 14:47:31 1998 Jim Wilson - - * reload.c (push_reload): In WORD_REGISTER_OPERATIONS code, add test - to require the SUBREG mode to be smaller than the SUBREG_REG mode. - * reload1.c (eliminate_regs): Likewise. - -Thu Jan 22 14:49:14 1998 Jeffrey A Law (law@cygnus.com) - - * regmove.c (find_matches): Initialize matches->earlyclobber too. - -Thu Jan 22 01:40:52 1998 Richard Henderson - - * alpha.md (abssf2, absdf2): Disable in IEEE mode. - (negsf2, negdf2): Use proper subtract in IEEE mode. - -Tue Jan 20 09:29:09 1998 Jeffrey A Law (law@cygnus.com) - - * Makefile.in: Remove more bytecode stuff. - * expr.c, stmt.c, config/msdos/top.sed: Likewise. - * vax/xm-vms.h, winnt/config-nt.sed: Likewise. - * f/install.texi, objc/Make-lang.in: Likewise. - - * Makefile.in: Remove all bytecode support. - (OBJS): Make sure last entry is a real object file, not EXTRA_OBJS. - * emit-rtl.c: Remove all bytecode support. - * expr.c, expr.h function.c, integrate.c: Likewise. - * output.h, regclass.c, rtl.h, stmt.c, toplev.c: Likewise. - * tree.h, varasm.c: Likewise. - * config/m68k/m68k.h: Likewise. - * bi-*, bc-*, bytecode*: Delete bytecode related files. - * modemap.def: Likewise. - -Tue Jan 20 09:02:31 1998 Gavin Koch (gavin@cygnus.com) - - * mips/mips.md (divsi3,divdi3,modsi3,moddi3,udivsi3,udivdi3, - umodsi3,umoddi3): Handle mips16 div/mod by a constant. - -Mon Jan 19 21:57:00 1998 Richard Henderson - - * i386.md (push): Prohibit symbolic constants if flag_pic. - (movsi+1): Likewise for move to non-register. - -Mon Jan 19 11:15:38 1998 Jim Wilson - - * alpha.c (mode_mask_operand): Accept 0xffffffff on 32 bit host. - (print_operand): Handle 0xffffffff on 32 bit host. - - * configure.in (thread_file): Rename uses before main loop to - target_thread_file. Initialize to empty in main loop. Set thread_file - to target_thread_file after main loop if not set. - * configure: Rebuild. - - * genattrtab.c (find_and_mark_used_attributes): Handle CONST_INT. - (add_values_to_cover): Revert last change (which had no ChangeLog - entry). - (simplify_with_current_value_aux): Handle CONST_INT. - -Mon Jan 19 10:14:55 1998 Andreas Schwab - - * unprotoize.c: Define UNPROTOIZE first, to actually take effect. - -Mon Jan 19 10:11:52 1998 Richard Henderson - - * configure.in: Add cpp stringify test. - * acconfig.h (HAVE_CPP_STRINGIFY): New tag. - * gengenrtl.c: Use it. - * configure, config.in: Rebuild. - -Mon Jan 19 09:43:15 1998 Andreas Schwab - - * Makefile.in (genrtl.c genrtl.h): Add dummy command for GNU make. - -Mon Jan 19 09:38:18 1998 Richard Henderson - - * configure.in: Find declaration for sbrk. - * acconfig.h (NEED_DECLARATION_SBRK): New tag. - * config.in, configure: Rebuild. - * mips-tfile.c: Properly protect declaration of sbrk and free. - * toplev.c: Properly protect declaration of sbrk. - -Sun Jan 18 20:18:01 1998 Richard Henderson - - * alpha.c (alpha_handle_trap_shadows): Ignore CLOBBERs. - -Sun Jan 18 01:54:27 1998 Jeffrey A Law (law@cygnus.com) - - * alpha/xm-winnt.h (HAS_INIT_SECTION): Undefine. - -Sun Jan 18 00:57:35 1998 Mike Stump - - * configure.in (i960-wrs-vxworks): Default to latest vxworks release. - -Sat Jan 17 23:41:36 1998 David S. Miller - - * combine.c (force_to_mode, nonzero_bits): Correctly optimize - constant offset computations from objects with known alignment in - the presence of STACK_BIAS. - - * varasm.c (immed_double_const): Add casts to HOST_WIDE_INT where - necessary. - (const_hash): Hash val is unsigned long. - (SYMHASH): Likewise. - - * tree.c (TYPE_HASH): Type of hash val is unsigned long. - - * print-tree.c (print_node_brief): HOST_PTR_PRINTF format wants a - char pointer, not HOST_WIDE_INT. - (print_node): Likewise. Also hash is unsigned long not - HOST_WIDE_INT. - - * cse.c (canon_hash): Hash is unsigned long not HOST_WIDE_INT. - - * explow.c (optimize_save_area_alloca): New function for targets - where SETJMP_VIA_SAVE_AREA is true. - (allocate_dynamic_stack_space): On SETJMP_VIA_SAVE_AREA targets, - compute the amount of stack space needed should we find later that - setjmp is never called by this function, stuff rtl for this inside - a REG_NOTE of the final SET of stack_pointer_rtx. - * toplev.c (rest_of_compilation): If SETJMP_VIA_SAVE_AREA and - current_function_calls_alloca, call optimize_save_area_alloca. - -Sat Jan 17 23:22:59 1998 John Wehle (john@feith.com) - - * i386.md: Remove redundant integer push patterns. - Don't bother checking for TARGET_PUSH_MEMORY when - pushing constants or registers. - -Sat Jan 17 22:35:39 1998 Mumit Khan - J.J VanderHeijden - - * pexecute.c (pexecute): New function for mingw32. Supports pipes. - (pwait): New function for mingw32. - - * gcc.c (execute): Mingw32 pexecute() supports pipes, but cygwin32 - pipe support is broken for now. - -1998-01-17 Lee Iverson - - * emit_rtl.c (init_emit_once): Ensure that potential aliasing - between frame_pointer_rtx, hard_frame_pointer_rtx, and - arg_pointer_rtx is respected in initialization. - (init_emit_once): Use gen_rtx_raw_REG() to create - return_address_pointer_rtx. - - * reorg.c: #include "expr.h" for rtx prototypes. - * Makefile.in (reorg.o): Depend on expr.h - -Sat Jan 17 21:28:08 1998 Pieter Nagel - - * Makefile.in (FLAGS_TO_PASS): Pass down gcc_include_dir and - local_prefix to sub-make invocations. - -Sat Jan 17 21:24:16 1998 David T. McWherter - - * objc-parse.c: Recognize protocol qualifiers in class definitions. - -Sat Jan 17 21:16:19 1998 Jeffrey A Law (law@cygnus.com) - - * rtl.h: Fix typos. - - * acconfig.h (NEED_DECLARATION_ATOL): New declaration to check for. - * configure.in: Check for atol. - * rtl.c (atol): Only provide the declaration if NEED_DECLARATION_ATOL. - - * rtl.c (read_rtx): Initialize list_rtx to NULL, not NULL_RTX. - - * loop.c (find_and_verify_loops): When attempting to move insns from - inside the loop outside the loop, create a BARRIER if no suitable - one was found. - - * jump.c (jump_optimize): Remove Dec 17, 1997 chance in - favor of an equivalent change from gcc-2.8. - - * i386/x-sco5 (CC): Remove trailing whitespace. - -Sat Jan 17 21:09:46 1998 Kaveh R. Ghazi - - * gengenrtl.c (type_from_format): De-ANSIfy function signature. - (accessor_from_format): Likewise. - (xmalloc): New function for use when linking with alloca.o. - -Mon Jan 5 02:53:01 1998 Bruno Haible - - * frame.c (find_fde): Correct FDE's upper bound. - -Fri Jan 16 16:23:52 1998 Richard Henderson - - * gengenrtl.c (DEF_RTL_EXPR): Provide a K&R compliant version. - -Fri Jan 16 10:16:10 1998 Jeffrey A Law (law@cygnus.com) - - * calls.c (expand_call): Move #ifdef code out of macro argument - lists. - (emit_library_call, emit_library_call_value): Likewise. - -Fri Jan 16 00:46:40 1998 Jeffrey A Law (law@cygnus.com) - - * rtl.def (INLINE_HEADER): Fix bug exposed by gen_rtx_FOO changes. - -Thu Jan 15 01:02:30 1998 Jeffrey A Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Wed Jan 14 22:49:17 1998 Richard Henderson - - * alias.c: Change all uses of gen_rtx(FOO...) to gen_rtx_FOO; - change gen_rtx(expr...) to gen_rtx_fmt_foo(expr...). - * caller-save.c, calls.c, combine.c, cse.c: Likewise. - * dwarf2out.c, except.c, explow.c, expmed.c, expr.c: Likewise. - * final.c, flow.c, function.c, genpeep.c, haifa-sched.c: Likewise. - * halfpic.c, integrate.c, jump.c, local-alloc.c, loop.c: Likewise. - * profile.c, recog.c, reg-stack.c, regclass.c, regmove.c: Likewise. - * reload.c, reload1.c, reorg.c, sched.c, stmt.c, stupid.c: Likewise. - * unroll.c, varasm.c: Likewise. - * config/alpha/alpha.c, config/alpha/alpha.md: Likewise. - -Wed Jan 14 19:36:08 1998 Gavin Koch (gavin@cygnus.com) - - * mips.h: Fix some type-o's from a previous change. - -Wed Jan 14 01:26:05 1998 Jeffrey A Law (law@cygnus.com) - - * loop.c (check_dbra_loop): Make sure initial value is a - CONST_INT before trying to normalize it. - -Tue Jan 13 23:27:54 1998 Robert Lipe (robertl@dgii.com) - - * sco5.h (ASM_OUTPUT_SECTION_NAME): Refresh from ../svr4.h. - -Tue Jan 13 22:47:02 1998 Herman ten Brugge - - * cppexp.c: Include gansidecl.h - -Tue Jan 13 22:43:35 1998 Ian Lance Taylor - - * svr4.h (LINK_SPEC): Never specify -h. - * ptx4.h (LINK_SPEC): Likewise. - * rs6000/sysv4.h (LINK_SPEC): Likewise. - * sparc/sol2.h (LINK_SPEC): Likewise. - -Tue Jan 13 22:39:40 1998 Richard Henderson (rth@cygnus.com) - - * c-typeck.c (comptypes): Exit early on NULL input. - - * haifa-sched.c (schedule_insns): Correctly remove inter-block - dependencies after reload. - -Tue Jan 13 22:22:31 1998 Franz Sirl - - * rs6000/linux.h (CPP_PREDEFINES): Add -D__ELF__. - -Tue Jan 13 22:14:57 1998 Klaus Kaempf - - * alpha/vms.h (DIR_SEPARATOR): Define. - -Tue Jan 13 22:13:04 1998 Bruno Haible - - * Makefile.in (stamp-proto): Remove. - (protoize.o, unprotoize.o): Straightforward compile. - * unprotoize.c: Define UNPROTOIZE here, not in the Makefile. - -Tue Jan 13 21:59:39 1998 Mumit Khan - - * i386/cygwin32.h (STRIP_NAME_ENCODING): Define for Win32 to strip - off the trailing @[NUM] added by ENCODE_SECTION_INFO. - -Tue Jan 13 21:55:06 1998 Jeffrey A Law (law@cygnus.com) - - * arm/netbsd.h (DWARF2_UNWIND_INFO): Define as zero for now. - * i386/netbsd.h, m68k/netbsd.h, ns32k/netbsd.h: Likewise. - * sparc/netbsd.h, vax/netbsd.h: Likewise. - -Tue Jan 13 21:37:07 1998 Shigeya Suzuki - - * i386/bsd386.h (DWARF2_UNWIND_INFO): Define as zero for now. - -Tue Jan 13 17:50:55 1998 Jim Wilson - - * configure.in (target_cpu_default, target_cpu_default2): Use double - quotes around them when testing their value. - * configure: Rebuilt. - -Tue Jan 13 09:07:44 1998 John Carr - - * gengenrtl.c (gencode): Emit new function obstack_alloc_rtx - to allocate rtx. - (gendef): Call obstack_alloc_rtx. - -Tue Jan 13 01:16:36 1998 Robert Lipe (robertl@dgii.com) - - * configure.in (i[3456]86-UnixWare7-sysv5): Treat much like SVR4 - for now. - -Thu Dec 18 18:40:17 1997 Mumit Khan - - * i386/mingw32.h (INCOMING_RETURN_ADDR_RTX): Delete. Use the value - of DWARF2_UNWIND_INFO, if any, from i386/cygwin32.h instead. - (STANDARD_INCLUDE_DIR): Change to /usr/local/i386-mingw32/include. - -Tue Jan 13 00:44:02 1998 Jim Wilson - - * mips.md (return_internal): Change mode from SImode to VOIDmode. - -Sat Jan 10 22:11:39 1998 J. Kean Johnston - - * i386/sco5.h (STARTFILE_SPEC, ENDFILE_SPEC): Correctly handle - "-static". - -Sat Jan 10 22:04:15 1998 Stan Cox - - * i386.md (movsicc_1, movhicc_1): For alternate 3 set the opcode - suffix from operand 3. - -Sat Jan 10 21:50:16 1998 J"orn Rennecke - Jeffrey A Law (law@cygnus.com) - - * regmove.c: New implementation of regmove pass. - * local-alloc.c (optimize_reg_copy_1, optimize_reg_copy_2): Remove - decls, make them have external linkage. Return a value from - optimize_reg_copy_1. - * reload.h (count_occurrences): Add decl. - * reload1.c (count_occurrences): Delete decl, make it have external - linkage. - * rtl.h (optimize_reg_copy_1, optimize_reg_copy_2): Declare. - -Sat Jan 10 20:30:12 1998 Jeffrey A Law (law@cygnus.com) - - * regclass.c (record_address_regs): Don't use REG_OK_FOR_BASE_P - if it is not defined. - -Thu Jan 8 21:06:54 1998 Richard Henderson - - * Makefile.in (OBJ, GEN, RTL_H): Add genrtl.[oh] bits. - * emit-rtl.c (gen_rtx): Move special code to ... - (gen_rtx_CONST_INT): New function. - (gen_rtx_REG): New function. - (*): Update all calls to gen_rtx. - * genemit.c (gen_exp): Emit calls to gen_rtx_FOO for constant FOO. - * rtl.h: Include genrtl.h; prototype CONST_INT & REG generators. - (GEN_INT): Call gen_rtx_CONST_INT. - * gengenrtl.c: New file. - -Mon Jan 5 13:00:18 1998 John F. Carr - - * alias.c (*_dependence): Call base_alias_check before canon_rtx. - (base_alias_check): If no base found for address call canon_rtx and - try again. - -Mon Jan 5 11:39:49 1998 Jeffrey A Law (law@cygnus.com) - - * mips.c (mips_expand_prologue): Handle large frame with no outgoing - arguments for mips16. - (mips_expand_epilogue): Pass "orig_tsize" to save_restore_insns. - Don't lose if tsize is zero after handling large stack for mips16. - * mips.md (return): For trivial return, return address is in $31. - -Sun Jan 4 20:24:00 1998 Nigel Stephens - - * mips/mips16.S: Various changes to make it work with -msingle-float - and -EL. - -Sun Jan 4 14:25:18 1998 Gavin Koch - Ian Lance Taylor - Jeff Law - - * mips.c, mips.h, mips.md: First cut at merging in mips16 - support. Major modifications throughout all three files. - -Sun Jan 4 01:01:50 1998 scott snyder - - * configure.in: Make gthr-default.h a forwarding header instead of - a symlink. - -Sat Jan 3 12:08:06 1998 Kaveh R. Ghazi - - * gcov-io.h: Include sys/types.h to ensure we get size_t. - - * pa.h (ASM_OUTPUT_MI_THUNK): Add missing % in fprintf. - -Fri Jan 2 23:40:09 1998 Jim Wilson (wilson@cygnus.com) - Jeffrey A Law (law@cygnus.com) - - * crtstuff.c (__frame_dummy): New function for irix6. - (__do_global_ctors): Call __frame_dummy for irix6. - * iris6.h (LINK_SPEC): Hide __frame_dummy too. - -Fri Jan 2 04:57:57 1998 Weiwen Liu - - * alpha.c (vms_valid_decl_attribute_p): Move within #if OPEN_VMS. - -Fri Jan 2 04:34:14 1998 Richard Henderson - - * c-decl.c (init_decl_processing): Provide proper fallback symbol - for __builtin_memset. - * expr.c (expand_builtin) [MEMSET]: Arg 3 type code is INTEGER_TYPE - not INTEGER_CST. Assert arg 3 is a constant. - - * alpha.c (mode_width_operand): Accept 64-bit modes. - (mode_mask_operand): Likewise. - (print_operand): Likewise for 'M' and 'U' codes. - (alpha_expand_unaligned_load): New function. - (alpha_expand_unaligned_store): Likewise. - (alpha_expand_unaligned_load_words): Likewise. - (alpha_expand_unaligned_store_words): Likewise. - (alpha_expand_block_move): Likewise. - (alpha_expand_block_clear): Likewise. - * alpha.h (MOVE_RATIO): New define. - * alpha.md (extxl, ext*h, ins*l, mskxl): Name them. - (insql, insxh, mskxh, extv, extzv, insv, movstrqi, clrstrqi): New. - - * alpha.h (ASM_OUTPUT_LOOP_ALIGN, ASM_OUTPUT_ALIGN_CODE): Set to 3. - (CONSTANT_ALIGNMENT, DATA_ALIGNMENT): Disable. - -Thu Jan 1 15:40:15 1998 Richard Henderson - - * configure.in: Put parenthesis around TARGET_CPU_DEFAULT's value. - * configure: Update. - -Thu Jan 1 10:49:12 1998 Jeffrey A Law (law@cygnus.com) - - * emit-rtl.c (operand_subword): Correctly handle extracting a word - from a CONST_DOUBLE for 16bit targets with !WORDS_BIG_ENDIAN. - - * mn10200.md (tstxx, cmpxx): Use "nonimmediate_operand" as predicate - for first argument. - -Wed Dec 31 14:42:18 1997 Ian Lance Taylor - - * configure.in: Set and substitute 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. - -Wed Dec 31 10:05:44 1997 Jeffrey A Law (law@cygnus.com) - - * mn10200.md (addsi3, subsi3): Fix thinkos. - -Tue Dec 30 00:04:49 1997 Richard Henderson - - * 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. - -Mon Dec 29 14:37:31 1997 Ian Lance Taylor - - * mips/t-ecoff (CROSS_LIBGCC1): Define to libgcc1-asm.a. - (LIB1ASMSRC, LIB1ASMFUNCS): Define. - -Mon Dec 29 14:03:38 1997 Jeffrey A Law (law@cygnus.com) - - * expr.c (expand_expr): For {BITFIELD,COMPONENT,ARRAY}_REF, if the - offset's mode is not ptr_mode, convert it. - -Mon Dec 29 15:58:18 1997 Michael Meissner - - * libgcc2.c (inhibit_libc): Don't define inhibit_libc when cross - compiling if it was already defined. - -Sun Dec 28 00:32:16 1997 Jeffrey A Law (law@cygnus.com) - - * flow.c (find_basic_blocks): Don't create a new basic block - for calls in a LIBCALL block. - -Sun Dec 28 00:30:24 1997 David Edelsohn - - * config/fp-bit.c (L_df_to_sf): Fix typo in last change. - -Sat Dec 27 22:43:12 1997 Jeffrey A Law (law@cygnus.com) - - * cse.c (rtx_cost): Remove conflicting default case. - -Sat Dec 27 21:20:02 1997 Richard Henderson - - * configure.in: Move default enabling of Haifa out of for loop. - * configure: Rebuild. - -Thu Dec 25 01:02:54 1997 Jeffrey A Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -1997-12-25 Teemu Torma - - * 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: Likewise. - - * 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. - -Wed Dec 24 23:33:17 1997 Jeffrey A Law (law@cygnus.com) - - * expr.h (MUST_PASS_IN_STACK): Allow target port to override. - -Wed Dec 24 23:12:14 1997 Jim Wilson - - * cse.c (max_insn_uid): New variable. - (cse_around_loop): Use max_insn_uid. - (cse_main): Set max_insn_uid. - - * 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. - -Wed Dec 24 22:38:34 1997 John Carr - - * 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. - -Wed Dec 24 22:34:55 1997 Jeffrey A Law (law@cygnus.com) - - * tree.c (restore_tree_status): Do not dereference a null pointer. - -Tue Dec 23 12:56:46 1997 Paul Eggert - - * 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. - -Tue Dec 23 05:17:28 1997 Richard Henderson - - * 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. - -Tue Dec 23 03:53:21 1997 Richard Henderson - - * 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 independent 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. - -Tue Dec 23 03:14:54 1997 Richard Henderson - - * Makefile.in (clean): Remove the stages with their objects here ... - (distclean): ... instead of here. - -Mon Dec 22 11:24:01 1997 Kaveh R. Ghazi - - * cse.c (rtx_cost): Add default case in enumeration switch. - * fix-header.c (recognized_macro): Likewise. - (recognized_extern): Likewise. - (write_rbrac): Likewise. - * objc/objc-act.c (encode_aggregate): Likewise. - (gen_declarator): Likewise. - (gen_declspecs): Likewise. - -Mon Dec 22 09:58:51 1997 Jeffrey A Law (law@cygnus.com) - - * 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. - -Mon Dec 22 09:18:37 1997 Jeffrey A Law (law@cygnus.com) - - * c-pragma.c: Include flags.h. - -Sun Dec 21 22:10:59 1997 Mumit Khan - - * 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. - -Sun Dec 21 21:54:22 1997 Jeffrey A Law (law@cygnus.com) - - * pa.c (emit_move_sequence): Handle a function label source - operand. - -Sun Dec 21 16:13:55 1997 Nick Clifton - - * 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. - -Sun Dec 21 15:51:10 1997 Manfred Hollstein - - * m68k/mot3300.h (ASM_BYTE_OP): Don't include '\t' in the - definition. - (ASM_OUTPUT_ASCII): Prefix ASM_BYTE_OP by one single '\t'. - -Sun Dec 21 13:58:39 1997 Jeffrey A Law (law@cygnus.com) - - * 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. - -Sat Dec 20 11:26:47 1997 Kaveh R. Ghazi - Jeff Law - - * bitmap.c (bitmap_clear): Ensure `inline' is at the beginning - of the declaration. - * c-decl.c (finish_decl): Use parentheses around && within ||. - * rtl.c: Include stdlib.h. - (read_skip_spaces): Add parentheses around assignments used as - truth values. - (read_rtx): Initialize list_rtx. - * cppexp.c (parse_number): Use || when operands are truth values. - * alias.c (find_base_value): Add default case. - (memrefs_conflict): Likewise. - * combine.c (sets_function_arg_p): Likewise. - * genemit.c (gen_exp): Likewise. - * local-alloc.c (contains_replace_regs): Likewise. - * rtlanal.c (jmp_uses_reg_or_mem): Likewise. - * fold-const.c (fold_convert): Use "&&" for truth values. - (fold): Add default case. - * sdbout.c (sdbout_field_types): Fix typo in declaration. - (sdbout_one_type): Add default case. - * alpha.c (alpha_sa_mask): Prototype only if OPEN_VMS. - (some_operand): Add default case. - (input_operand): Likewise. - (signed_comparison_operator): Likewise. - (divmod_operator): Likewise. - (alpha_set_memflags_1): Likewise. - * reload1.c (reload_cse_simplify_operands): Ensure function - always returns a value. - * scan-decls.c (scan_decls): Likewise. - * c-lex.c (skip_white_space): Fix typo in declaration. - * c-typeck.c (comp_target_types): Add parentheses around assignment - used as truth value. - (print_spelling): Likewise. - (constructor_implicit, constructor_result): Remove unused variables. - * collect2.c (scan_library): Protect prototype with - #ifdef SCAN_LIBRARIES. - * emit-rtl.c (find_line_note): Fix typo in declaration. - * final.c (asm_insn_count): Protect prototype with - #ifdef HAVE_ATTR_length. - * flow.c (find_auto_inc): Protect prototype with #ifdef AUTO_INC_DEC. - (try_pre_increment_1, try_pre_increment): Likewise. - * regclass.c (auto_inc_dec_reg_p): Protect prototype with - #ifdef FORBIDDEN_INC_DEC_CLASSES. Make return type explicit. - * gcov-io.h (__store_long, __write_long, __read_long): Fix - unsigned/signed comparisons. - * gcov.c (read_files): Remove unused "first_type" variable. - (scan _for_source_files): Initialize s_ptr. - (function_summary): Eliminate "%lf" formatting, use %ld for - longs. - (output_data): Initialize branch_probs and last_line_num. - Eliminate "%lf" formatting, use "%ld" for longs. - -Fri Dec 19 17:31:11 1997 Ian Lance Taylor - - * mips16.S: New file. - - * libgcc2.c (varargs): Handle mips16. - - * expr.c (do_tablejump): Let CASE_VECTOR_PC_RELATIVE be an - expression. - * stmt.c (expand_end_case): Likewise. - * alpha.h (CASE_VECTOR_PC_RELATIVE): Update. - * fx80.h, gmicro.h, m68k.h, m88k.h, ns32k.h: Likewise. - * rs6000.h, sh.h, tahoe.h, v850.h, vax.h: Likewise. - -Tue Dec 16 15:14:09 1997 Andreas Schwab - - * 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. - -Fri Dec 19 00:19:42 1997 Richard Henderson - - * tree.c (build_range_type): Allow creation of ranges with no maximum. - * dbxout.c (dbxout_range_type): Handle missing TYPE_MAX_VALUE. - * dwarf2out.c (add_subscript_info): Likewise. - * dwarfout.c (subscript_data_attribute, byte_size_attribute): Likewise. - * sdbout.c (plain_type_1): Likewise. - * stmt.c (pushcase_range, all_cases_count, node_has_high_bound): - Likewise. - * fold-const.c (int_const_binop, fold_convert, make_range, fold): - Likewise. - -Thu Dec 18 17:05:10 1997 Kaveh R. Ghazi - - * mips.c (fatal): Remove declaration. - -1997-12-18 Mark Mitchell - - * 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): Likewise. - -Thu Dec 18 19:19:57 1997 Ian Lance Taylor - - * mips/mips.h (INIT_SUBTARGET_OPTABS): Define if not defined. - (INIT_TARGET_OPTABS): Define. - * mips/ecoff.h: Include gofast.h before mips.h. - (INIT_SUBTARGET_OPTABS): Define instead of INIT_TARGET_OPTABS. - * mips/elf64.h: Likewise. - * mips/elf.h (ASM_OUTPUT_SECTION_NAME): Define. - -Thu Dec 18 14:51:12 1997 Jason Merrill - - * except.c: Remove register_exception_table{,_p}. - -Thu Dec 18 14:57:29 1997 Gavin Koch - - * unroll.c (calculate_giv_inc): Handle constant increment found in - a MEM with an appropriate REG_EQUAL note. - - * calls.c (expand_call): Implement LOAD_ARGS_REVERSED. - - * dwarf2out.c (dwarf2out_frame_debug): Handle adjustments of the - frame pointer in the prologue. - -Thu Dec 18 00:19:38 1997 Robert Lipe - - * i386/x-sco5 (CLIB): Deleted. - (ALLOCA): Added. - * i386/xm-sco5.h (USE_C_ALLOCA): Added. - -Tue Dec 16 18:51:00 1997 Bill Moyer - - * config/m68k/m68k.c (output_function_prologue): Typecast - dwarf2out_cfi_label to (char *). - * config/m68k/m68kemb.h (STARTFILE_SPEC): Redefined to "". - -Wed Dec 17 15:06:04 1997 Richard Henderson - - * sparc.md (jump): Don't use the annul bit around an empty loop. - Patch from Kevin.Kelly@East.Sun.COM. - -Wed Dec 17 00:51:36 1997 Stan Cox (scox@cygnus.com) - - * jump.c (jump_optimize): Don't use the return register as a - source1 of a conditional move. - -Tue Dec 16 23:45:40 1997 Richard Henderson - - * sparc.c (DF_MODES): Or the mask not the bit number. - (function_arg) [ARCH64]: Send unprototyped arg to fp reg first. - -Wed Dec 17 00:13:48 1997 Christian Iseli - - * combine.c (force_to_mode): Return immediately if operand is a - CLOBBER. - -Tue Dec 16 23:44:54 1997 Manfred Hollstein - - * 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. - - * m68k/xm-mot3300.h (ADD_MISSING_POSIX, ADD_MISSING_XOPEN): Define to - prevent unresolved externals in libio. - * m88k/xm-sysv3.h (ADD_MISSING_POSIX, ADD_MISSING_XOPEN): Likewise. - -Tue Dec 16 23:25:45 1997 H.J. Lu (hjl@gnu.org) - - * config/sparc/linux64.h (LIBGCC_SPEC): Removed. - (CPP_SUBTARGET_SPEC): Add %{pthread:-D_REENTRANT}. - (LIB_SPEC): Updated for glibc 2. - -Tue Dec 16 20:11:36 1997 Jeffrey A Law (law@cygnus.com) - - * ginclude/stdarg.h: Undo BeOS changes, they break hpux. - * ginclude/varargs.h: Likewise. - -Tue Dec 16 00:32:01 1997 Jeffrey A Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Tue Dec 16 00:14:29 1997 H.J. Lu (hjl@gnu.org) - - * frame.h (__register_frame, __register_frame_table, - __deregister_frame): New. - * frame.c (__register_frame, __register_frame_table, - __deregister_frame): New. - * frame.c (__deregister_frame_info): Return void *. - * frame.h (__deregister_frame_info): Likewise. - * collect2.c (__deregister_frame_info): Likewise. - -Mon Dec 15 18:40:08 1997 Richard Henderson - - * expmed.c (expand_shift): If SHIFT_COUNT_TRUNCATED, drop a SUBREG. - -Mon Dec 15 18:31:43 1997 Richard Henderson - - * alpha.c (alpha_cpu_name): New variable. - (alpha_mlat_string): Likewise. - (alpha_memory_latency): Likewise. - (override_options): Handle -mmemory-latency. - (alpha_adjust_cost): Adjust load cost for latency. - * alpha.h (TARGET_OPTIONS): Add memory-latency. - (REGISTER_MOVE_COST): Define in terms of memory_latency. Take - TARGET_CIX into account. - (MEMORY_MOVE_COST): Define in terms of memory_latency. - * invoke.texi (DEC Alpha Options): Document -mmemory-latency. - - * alpha.h (ASM_COMMENT_START): New macro. - -Mon Dec 15 17:48:05 1997 Richard Henderson - - * 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. - -Mon Dec 15 11:41:32 1997 Mark Mitchell - - * toplev.c (rest_of_compilation): Don't call save_for_inline_copy - if all we're doing is dealing with -Wreturn-type. - -Mon Dec 15 09:44:39 1997 Richard Henderson - - * alpha.md (zero_extendqihi2, zero_extendqisi2, zero_extendqidi2): - Use and 255 instead of zapnot 1, since it schedules better. - -Mon Dec 15 08:48:24 1997 Jeffrey A Law (law@cygnus.com) - - * stmt.c (expand_asm_operands): If an ASM has no outputs, then treat - it as volatile. - -Mon Dec 15 00:04:48 1997 Jeffrey A Law (law@cygnus.com) - - * haifa-sched.c (remove_dependencies): Set RTX_INTEGRATED_P on - dependency we delete. Properly update prev for multiple consecutive - deletions. - (priority): Skip deleted dependence. - -Fri Dec 12 18:54:23 1997 Per Bothner - - * expr.c (expand_builtin): Support BUILT_IN_FMOD - just call fmod. - -Fri Dec 12 01:19:48 1997 Jason Merrill - - * flow.c (flow_analysis): Be consistent with find_basic_blocks in - determining when a new basic block starts. - - * alpha/osf2or3.h (LIB_SPEC): Restore missing defn. - - * pa.h (TEXT_SPACE_P): Use TREE_CODE_CLASS. - * pa.md (iorsi3): Add missing args to *_operand calls. - - * except.c (call_get_eh_context): Don't mess with sequences. - (emit_eh_context): Include the call in the sequence here. - -1997-12-11 Paul Eggert - - * collect2.c (write_c_file_glob): Allocate initial frame object - in static storage and pass its address. - -Thu Dec 11 23:33:48 1997 Jason Merrill - - * except.c (call_get_eh_context): Don't take a parm. - Put the call at the top of the function. - (emit_eh_context): Adjust. - (get_eh_context): Replace with former use_eh_context. - (get_eh_context_once, get_saved_pc_ref): Remove. - (start_eh_unwinder, end_eh_unwinder, emit_unwinder): Remove. - * except.h: Adjust. - * integrate.c (expand_inline_function): Adjust. - * toplev.c (rest_of_compilation): Don't call emit_unwinder. - -Fri Oct 10 17:58:31 1997 Marc Lehmann - - * i386/xm-go32.h (EXECUTABLE_SUFFIX): Define. - (DIR_SEPARATOR, NO_SYS_SIGLIST): Likewise. - -Thu Dec 11 23:55:17 1997 Manfred Hollstein - - * fixincludes (strlen,strspn,strcspn return value): Handle different - layout on sysV88. - (hypot): Provide a fake for hypot which is broken on - m88k-motorola-sysv3. - -Thu Dec 11 23:50:17 1997 John F. Carr - - * tree.c, tree.h: Change tree_code_type, tree_code_length, and - tree_code_name from pointers to arrays. - * tree.c: Remove standard_tree_code_* variables, no longer used. - * print-tree.c: Remove declaration of tree_code_name. - - * cp/lex.c (init_lex): Update for tree_code_* changes. - * objc/objc-act.c (init_objc): Likewise. - - * tree.def, cp/cp-tree.def, objc/objc-tree.def: Update for tree_code - changes. - -Thu Dec 11 23:34:54 1997 Fred Fish - - * config.sub: Add support for BeOS target. - * configure.in: Likewise. - * ginclude/stdarg.h: Likewise. - * ginclude/stddef.h: Likewise. - * ginclude/varargs.h: Likewise. - * rs6000/beos.h: New file for BeOS. - * rs6000/t-beos: Likewise. - * rs6000/x-beos: Likewise. - * rs6000/xm-beos.h: Likewise. - * toplev.c (get_run_time): Just return 0 on BeOS. - -Thu Dec 11 23:25:23 1997 Jeffrey A Law (law@cygnus.com) - Toon Moene (toon@moene.indiv.nluug.nl) - - * m68k.h (GO_IF_LEGITIMATE_ADDRESS): No longer cater to horribly - old and broken Sun3 assemblers. Newer versions handle large - offsets correctly as does the GNU assembler. - -Thu Dec 11 23:06:48 1997 H.J. Lu (hjl@gnu.ai.mit.edu) - - * objc/objc-act.c (lang_report_error_function): Disable. - * objc/objc-parse.y: Include "output.h". - (yyerror): Remove redundant decl. - (yyprint): Fix prototype. - (apply_args_register_offset): Remove redundant decl. - (get_file_function_name): Likewise. - -Thu Dec 11 22:02:10 1997 Jason Merrill - - * flow.c (find_basic_blocks): A CALL_INSN that can throw starts - a new basic block. - (find_basic_blocks_1): Likewise. - -Thu Dec 11 21:08:48 1997 Jason Merrill - - * except.c (use_eh_context): Don't copy_rtx a REG. - (emit_throw): Lose old unwinder support. - (expand_internal_throw): Likewise. - * libgcc2.c (struct eh_context): Likewise. - (new_eh_context): Likewise. - (__get_eh_info): Lose redundant cast. - (__get_dynamic_handler_chain): Likewise. - (__get_saved_pc): Lose. - Lose all old unwinder support code. - -Thu Dec 11 20:42:18 1997 Teemu Torma - - Thread-safe EH support for pthreads, DCE threads and Solaris threads. - - * integrate.c (expand_inline_function): If the inline fn uses eh - context, make sure that the current fn has one. - * toplev.c (rest_of_compilation): Call emit_eh_context. - * except.c (use_eh_context): New fn. - (get_eh_context_once): New fn. - (call_get_eh_context): New fn. - (emit_eh_context): New fn. - (get_eh_context): Call either get_eh_context_once or - call_get_eh_context, depending on what we have. - (get_dynamic_handler_chain): Call get_eh_context_once. - * except.h: Prototypes for fns above. - * optabs.c (get_eh_context_libfunc): Removed. - (init_optabs): Don't initialize it. - * expr.h (get_eh_context_libfunc): Removed. - * rtl.h, rtl.c: New reg_note REG_EH_CONTEXT. - * config/pa/pa.h (CPP_SPEC): Support for -threads. - * config/pa/pa-hpux10.h (LIB_SPEC): Likewise. - * config/pa/t-pa (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): - New multilib for -threads. - * config/sparc/t-sol2: Added multilibs for -threads and - made -pthreads alias to it. - * config/sparc/sol2.h (CPP_SPEC, LIB_SPEC): - Added -threads and -pthreads options. - * libgcc-thr.h: New file. - * libgcc2.c (__get_cpp_eh_context): Removed. - (struct cpp_eh_context): Removed. - (struct eh_context): Replaced cpp_eh_context with generic language - specific pointer. - (__get_eh_info): New function. - (__throw): Check eh_context::info. - (__sjthrow): Likewise. - * libgcc2.c: Include libgcc-thr.h. - (new_eh_context, __get_eh_context, - eh_pthread_initialize, eh_context_initialize, eh_context_static, - eh_context_specific, eh_context_free): New functions. - (get_eh_context, eh_context_key): New variables. - (__sjthrow, __sjpopnthrow, __eh_pcnthrow, __throw): Use - get_eh_context to get the context. - (longjmp): Move the declaration inside - #ifdef DONT_USE_BUILTIN_SETJMP. - * frame.c: Include libgcc-thr.h. - (object_mutex): Mutex to protect the object list. - (find_fde, __register_frame, __register_frame_table, - __deregister_frame): Hold the lock while accessing objects. - * except.h (get_eh_context): Declare. - * except.c (current_function_ehc): Define. - (current_function_dhc, current_function_dcc): Removed. - (get_eh_context): New function. - (get_dynamic_handler_chain): Use get_eh_context. - (get_saved_pc_ref): Likewise. - (get_dynamic_cleanup_chain): Removed references to - current_function_dcc. - (save_eh_status, restore_eh_status): Save and restore - current_function_ehc instead. - * optabs.c (get_eh_context_libfunc): New variable. - (init_optabs): Initialize it. - * expr.h: Declare get_eh_context_libfunc. - * function.h (struct function): Replaced dhc and dcc with ehc. - * except.c (get_saved_pc_ref): New functions. - (eh_saved_pc_rtx, eh_saved_pc): Deleted. - (expand_internal_throw_indirect): Use get_saved_pc_ref() instead - of eh_saved_pc. - (end_eh_unwinder): Likewise. - (init_eh): Remove initialization of eh_saved_pc. - * optabs.c (get_saved_pc_libfunc): New variable. - (init_optabs): Initialize it. - * expr.h: Declare get_saved_pc_libfunc. - * except.h (eh_saved_pc_rtx): Deleted. - (get_saved_pc_ref): Declared. - - From Scott Snyder : - * libgcc2.c (__get_saved_pc): New. - (__eh_type, __eh_pc): Deleted. - (__eh_pcnthrow): Use __get_saved_pc() instead of __eh_pc. - (__get_dynamic_handler_chain): Move __dynamic_handler_chain inside - this fcn. - -Thu Dec 11 17:23:48 1997 John F. Carr - - * sparc/sol2.h: Use 64 bit multiply and divide functions in - Solaris libc. Define TARGET_LIVE_G0 and TARGET_BROKEN_SAVERESTORE - as 0. - - * rtl.h (global_rtl): New variable, replacing separate variables for - commonly used rtl. - (const_int_rtx): Now array of rtx_def, not rtx. - * emit-rtl.c: Update for new rtl data structures. - * genattrtab.c: Define global_rtl. - -Thu Dec 11 15:50:29 1997 David Edelsohn - - * configure.in ({rs6000,powerpc}-*-*): Enable Haifa scheduler by - default. - -Wed Dec 10 12:30:18 1997 Anthony Green - - * crtstuff.c (__do_global_ctors): Fix typo. - -Tue Dec 9 09:43:59 1997 Manfred Hollstein - - * toplev.c (main): Check HAVE_GETRLIMIT and HAVE_SETRLIMIT in addition - to RLIMIT_STACK to see if we can call getrlimit and setrlimit. - -Tue Dec 9 09:38:58 1997 David Edelsohn - - * rs6000.h (FUNCTION_ARG_PADDING): Define. - * rs6000.c (function_arg_padding): New function. - -Tue Dec 9 10:34:21 1997 Manfred Hollstein - - * m68k.c: Include tree.h only once. - -Tue Dec 9 09:32:33 1997 Richard Kenner - - * integrate.c (save_for_inline_copying): Make a new reg_parm_stack_loc. - -Tue Dec 9 01:16:06 1997 Jeffrey A Law (law@cygnus.com) - - * Partially cleaned up prototyping code from HJ. - * tree.h: Add many prototypes. - * haifa-sched.c (haifa_classify_insn): Renamed from classify_insn. - All references changed. - * rtl.h: Protect from multiple inclusions. Add many prototypes. - -Tue Dec 9 01:15:15 1997 Fred Fish - - * libgcc2.c (string.h): Hoist inclusion to occur before first use of - string functions like strlen. - -Tue Dec 9 00:57:38 1997 Manfred Hollstein - - * configure.in: Check for functions getrlimit and setrlimit. - * cccp.c (main): Check HAVE_GETRLIMIT and HAVE_SETRLIMIT in addition - to RLIMIT_STACK to see if we can call getrlimit and setrlimit. - -Mon Dec 8 23:53:26 1997 Jay Sachs - - * Makefile.in (compare*): Handle losing behavior from 4.4bsd make. - -Mon Dec 8 21:03:28 1997 Richard Henderson - - * alpha.c (REG_RA, alpha_return_addr, output_epilog): - Fix merge problems. - - * alpha.c (override_options): Don't know about scheduling for EV6. - * alpha.md (ev5 function units): Don't overload as ev6. - - * alpha.c (alpha_adjust_cost): Simplify. Fix typo in ev5 mult case. - * alpha.md (define_attr type): Add mvi. - (ev5_e0): Define sceduling parameters for it. - (TARGET_MAX insns): Type is mvi not shift. - -Mon Dec 8 18:15:00 1997 Richard Henderson - - * alpha/win-nt.h (TRAMPOLINE_TEMPLATE): Fix backported gcc-2.8 bug. - -Mon Dec 8 21:17:28 1997 J"orn Rennecke - - * cstamp-h, auto-config.h: Delete. - -Sun Dec 7 19:19:03 1997 Jeffrey A Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sat Dec 6 22:22:22 1997 Jeffrey A Law (law@cygnus.com) - - * cccp.c: Fix typo brought over in merge. - - * Merge in changes from gcc-2.8. - -Mon Nov 3 05:45:32 1997 Philippe De Muyter - - * m68k.c: Include tree.h for dwarf2out_cfi_label. - - * gcc.c (process_command): Do not take address of function fatal when - calling lang_specific_driver. - -Sat Dec 6 01:02:38 1997 Mumit Khan - - * config/i386/cygwin32.h (DWARF2_UNWIND): Exception handling - doesn't work with it yet, so set it to 0. - * config/i386/xm-cygwin32.h (NO_SYS_SIGLIST): Define. - -Sat Dec 6 01:01:02 1997 Christian Iseli - - * cse.c (cse_insn): Check for invalid entries when taking references. - -Fri Dec 5 18:26:25 1997 J"orn Rennecke - - * loop.c (invariant_p): Don't test flag_rerun_loop_opt. - (loop_optimize, scan_loop, strength_reduce): New argument unroll_p. - * toplev.c (rest_of_compilation): Pass it. Remove code to - save / clear / restore flag_unroll_{,all_}loops. - -Fri Dec 5 16:26:03 1997 Bernd Schmidt - - * i386.c (notice_update_cc): Remove bogus pentium GCC code. - -Fri Dec 5 16:25:14 1997 Jeffrey A Law (law@cygnus.com) - - * stmt.c (warn_if_unused_value): Don't warn for TRY_CATCH_EXPR. - -Thu Dec 4 11:51:00 1997 Jason Merrill - - * except.c (get_dynamic_handler_chain): Only make the call once per - function. - - * except.c (expand_end_all_catch): Fix for sjlj exceptions. - -Thu Dec 4 12:30:40 1997 J"orn Rennecke - - * sh.c (final_prescan_insn): Use local label prefix - when emitting .uses pseudo-ops. - -Wed Dec 3 12:01:56 1997 Jason Merrill - - * libgcc2.c (__throw): Use __builtin_return_addr instead of __eh_pc. - * except.c: Lose outer_context_label_stack. - (expand_eh_region_end): Rethrow from outer_context here. - (expand_fixup_region_end): Let expand_eh_region_end do the rethrow. - (expand_internal_throw): Take no args. - (expand_internal_throw_indirect): Lose. - (expand_leftover_cleanups, expand_start_all_catch): Use expand_rethrow. - (expand_start_all_catch): Start a rethrow region. - (expand_end_all_catch): End it. - (expand_rethrow): New fn. - * except.h: Reflect above changes. - * flow.c: Revert change of Nov 27. - -Thu Dec 4 00:24:09 1997 Jeffrey A Law (law@cygnus.com) - - * i386/t-sol2 (CRTSTUFF_T_CFLAGS): Turn on the optimizer. - -Wed Dec 3 12:01:56 1997 Jason Merrill - - * except.c (expand_fixup_region_end): New fn. - (expand_fixup_region_start): Likewise. - (expand_eh_region_start_tree): Store cleanup into finalization here. - * stmt.c (expand_cleanups): Use them to protect fixups. - -Wed Dec 3 11:41:13 1997 Gavin Koch - - * mips/mips.md (muldi3_r4000): Broaden the output template - and attribute assignments to handle three operand dmult; - rename to muldi3_internal2. - (muldi3): Call the new muldi3_internal2 for R4000, and - any GENERATE_MULT3 chip. - -Tue Dec 2 19:40:43 1997 Jason Merrill - - * stmt.c (expand_decl_cleanup): Update thisblock after eh_region_start. - -Tue Dec 2 12:54:33 1997 Jim Wilson - - * unroll.c (find_splittable_givs): Remove last change. Handle givs - with a dest_reg that was created by loop. - -Sat Nov 29 12:44:57 1997 David Edelsohn - - * rs6000.c (function_arg_partial_nregs): Undo Nov. 26 patch. - - * rs6000/aix41.h (ASM_CPU_SPEC): Define. - -Fri Nov 28 10:00:27 1997 Jeffrey A Law (law@cygnus.com) - - * configure.in: Fix NCR entries. - -Thu Nov 27 12:20:19 1997 Jeffrey A Law (law@cygnus.com) - - * flow.c (find_basic_blocks): Handle cfg issues for rethrows and - nested exceptions correctly. - - * unroll.c (find_splittable_givs): Don't split givs with a dest_reg - that was created by loop. - -Thu Nov 27 09:34:58 1997 Jason Merrill - - * expr.c (preexpand_calls): Don't look past a TRY_CATCH_EXPR. - - * except.c (expand_start_all_catch): One more do_pending_stack_adjust. - -Wed Nov 26 15:47:30 1997 Michael Meissner - - * rs6000.c (SMALL_DATA_REG): Register to use for small data relocs. - (print_operand): Use SMALL_DATA_REG for the register involved in - small data relocations. - (print_operand_address): Likewise. - - * rs6000/linux.h (LINK_SPEC): Pass -dynamic-linker /lib/ld.so.1 if - -dynamic linker is not used. - - * rs6000.md (call insns): For local calls, use @local suffix under - System V. Don't use @plt under Solaris. - - * rs6000.c (output_function_profiler): Put label address in r0, and - store LR in 4(sp) for System V/eabi. - - * rs6000.h (ASM_OUTPUT_REG_{PUSH,POP}): Keep stack aligned to 16 - byte boundary, and maintain stack backchain. - -Tue Nov 25 14:08:12 1997 Jim Wilson - - * mips.md (fix_truncdfsi2, fix_truncsfsi2, fix_truncdfdi2, - fix_truncsfdi2): Change *. - -Wed Nov 26 11:12:26 1997 Jason Merrill - - * toplev.c (main): Complain about -gdwarfn. - -Tue Nov 25 22:43:30 1997 Jason Merrill - - * dwarfout.c (output_type): If finalizing, write out nested types - of types we've already written. - -Tue Nov 25 20:32:24 1997 Michael Meissner - - (patches originally from Geoffrey Keating) - * rs6000.c (function_arg): Excess floating point arguments don't - go into GPR registers after exhausting FP registers under the - System V.4 ABI. - (function_arg_partial_nregs): Likewise. - - * rs6000.md (call insns): If -fPIC or -mrelocatable, add @plt - suffix to calls. - -Tue Nov 25 23:37:27 1997 Jason Merrill - - * integrate.c (output_inline_function): Just unset DECL_INLINE. - -Tue Nov 25 23:33:29 1997 scott snyder - - * dwarf2out.c (outout_call_frame_info): Ensure that the info has - proper alignment. - - * libgcc2.c (__throw): Initialize HANDLER. - -Tue Nov 25 14:08:12 1997 Jim Wilson - - * mips.md (fix_truncdfsi2, fix_truncsfsi2, fix_truncdfdi2, - fix_truncsfdi2): Change *X to ?*X. - -Tue Nov 25 10:00:42 1997 Richard Henderson (rth@cygnus.com) - - * alpha.h (CONST_OK_FOR_LETTER): Fix 'L' handling. - -Tue Nov 25 10:00:42 1997 Jeffrey A Law (law@cygnus.com) - - * crtstuff.c (do_global_dtors_aux): Handle multiple calls better. - -Tue Nov 25 01:26:55 1997 Bruno Haible - - * dwarf2out.c (ASM_OUTPUT_DWARF_DELTA1): Implement. - -Mon Nov 24 22:41:55 1997 Jason Merrill - - * except.c (get_dynamic_handler_chain): Build up a FUNCTION_DECL. - * optabs.c (init_optabs): Lose get_dynamic_handler_chain_libfunc. - * expr.h: Likewise. - -Sat Nov 22 18:58:20 1997 Jeffrey A Law (law@cygnus.com) - - * pa-hpux10.h (NEW_HP_ASSEMBLER): Define. - * pa.h (LEGITIMATE_CONSTANT_P): Reject LABEL_REFs if not using - gas and not using the new HP assembler. - -Fri Nov 21 15:20:05 1997 Jeffrey A Law (law@cygnus.com) - - * Makefile.in (program_transform_cross_name): Clean up "-e" confusion. - (GCC_INSTALL_NAME, GCC_CROSS_NAME): Likewise. - -Fri Nov 21 19:37:40 1997 Andrew Cagney - - * config/mips/elf64.h (MULTILIB_DEFAULTS): Test for - TARGET_ENDIAN_DEFAULT == zero instead of testing for macro - definition. - -Fri Nov 21 12:49:56 1997 Bruno Haible - - * stmt.c (expand_end_bindings): Allow jump into block with cleanups. - -Fri Nov 21 12:18:51 1997 Jason Merrill - - * except.h: Add outer_context_label_stack. - * except.c: Likewise. - (expand_start_all_catch): Push the outer_context for the try block - onto outer_context_label_stack. - (expand_end_all_catch): Use it and pop it. - -Fri Nov 21 10:13:11 1997 Robert Lipe (robertl@dgii.com) - - * i386/sco5.h (HAVE_ATEXIT): Revert last change. - -Thu Nov 20 16:11:50 1997 Richard Henderson - - * alpha.c (alpha_emit_set_const_1): Handle narrow hosts better. - -Thu Nov 20 16:11:50 1997 Klaus Kaempf - - * alpha/vms.h (ASM_OUTPUT_ADDR_VEC_ELT): Add an L for the local label - to correspond with the change to ASM_GENERATE_INTERNAL_LABEL. - -Thu Nov 20 14:42:15 1997 Jason Merrill - - * Makefile.in (LIB2FUNCS): Remove C++ memory management support. - * libgcc2.c: Remove __builtin_new, __builtin_vec_new, set_new_handler, - __builtin_delete, and __builtin_vec_delete. - - * except.c (output_exception_table): Don't bother with - __EXCEPTION_END__. - -Thu Nov 20 16:11:50 1997 Jeffrey A Law (law@cygnus.com) - - * pa.md (pre_stwm, post_stwm, pre_ldwm, post_ldwm): Base register - is an in/out operand. - (zero extended variants of stwm/stwm patterns): Similarly. - - * mips/x-iris (FIXPROTO_DEFINES): Add -D_SGI_SOURCE. - -Thu Nov 20 13:19:32 1997 Jason Merrill - - * dwarf2out.c (ASM_OUTPUT_DWARF_OFFSET4): Rename from VALUE4. - Use assemble_name. - (ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL): Use assemble_name. - (output_call_frame_info): Emit a \n after using it. - -Thu Nov 20 00:38:46 1997 Dave Love - - * configure.in: Add AC_ARG_ENABLE for Haifa as documentation. - -Wed Nov 19 12:03:04 1997 Philippe De Muyter - - * dwarf2out.c (CIE_LENGTH_LABEL, FDE_LENGTH_LABEL): New macros. - (ASM_OUTPUT_DWARF_VALUE4): New macro. - (ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL): Define if SET_ASM_OP is - defined. - (output_call_frame_info): Do not output forward label differences - if ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL is defined. - * m68k/mot3300.h (SET_ASM_OP): Define when not using gas. - -Tue Nov 18 23:03:30 1997 J"orn Rennecke - - * sh.md (attribute "type"): Add nil. - (movsi_ie): y/y alternative is type nil. - (movsf_ie): Replace ry/yr/X alternative by r/y/X , y/r/X and y/y/X - alternatives. - (movsf_ie+1): Delete. - -Tue Nov 18 15:39:59 1997 Jim Wilson - - * mips/mips.c (save_restore_insns): If gp_offset or fp_offset are - large_int, emit two insns instead of one splitable insn. - * dwarf2out.c (dwarf2out_frame_debug): When set cfa_store_offset - from cfa_temp_value, use cfa_offset. Add assert checking that - cfa_reg is SP. - -Mon Nov 17 15:35:38 1997 Tom Tromey - - * cccp.c (deps_output): Properly quote file names for make. - -Mon Nov 17 13:21:40 1997 Jeffrey A Law (law@cygnus.com) - - * t-h8300 (MULTILIB_EXCEPTIONS): Define. - -Fri Nov 7 15:33:11 1997 Robert Lipe (robertl@dgii.com) - - * i386/sco5.h (HAVE_ATEXIT): Delete definition. - -Sun Nov 16 23:52:48 1997 Jeffrey A Law (law@cygnus.com) - - * cse.c (cse_insn): Don't look at JUMP_LABEL field of a conditional - return. - (cse_end_of_basic_block): Similarly. - -Sun Nov 16 23:01:40 1997 J. Kean Johnston - - * i386/sco5.h (ASM_OUTPUT_ALIGNED_BSS): Define. - (SELECT_RTX_SECTION): Define. - (LIBGCC_SPEC, LIB_SPEC): Do the right thing for PIC. - -Sun Nov 16 22:47:03 1997 Manfred Hollstein - - * Makefile.in (compare, compare-lean): Define $stage for each - shell command. - (gnucompare, gnucompare-lean): Likewise. - -Sun Nov 16 22:02:16 1997 Richard Henderson (rth@cygnus.com) - - * alpha/win-nt.h (TRAMPOLINE_TEMPLATE): Fix offsets. - - * alpha.h (ASM_OUTPUT_ADDR_DIFF_ELT): Add an L for the local label - to correspond with the change to ASM_GENERATE_INTERNAL_LABEL. - -Fri Nov 14 09:09:20 1997 Fred Fish (fnf@cygnus.com) - - * dwarfout.c (byte_size_attribute): Add local var upper_bound - and add case to handle STRING_TYPE. - * dwarfout.c (output_string_type_die): Fix code to generate - correct string length attribute for fixed length strings. - Still needs support for varying length strings. - -Fri Nov 14 08:46:56 1997 Jeffrey A Law (law@cygnus.com) - - * toplev.c (get_run_time): Do something sensible for cygwin32. - -Fri Nov 14 07:24:20 1997 Richard Henderson - - * expr.c (expand_builtin_setjmp): Set - current_function_has_nonlocal_label. - * stupid.c (stupid_life_analysis): If has_nonlocal_label, kill - call-saved registers across calls. - - * alpha.md (exception_receiver): Remove. - (nonlocal_goto_receiver_osf): New. - (nonlocal_goto_receiver_vms): Renamed from nonlocal_goto_receiver. - (nonlocal_goto_receiver): New, select _osf or _vms. - - * alpha.c (output_prolog [*]): Prefix entry labels with '$' to - keep them from being propagated to the object file. - (alpha_write_linkage): Likewise. - * alpha.md (call_vms): Likewise. - (call_value_vms): Likewise. - (unnamed osf call insns): Likewise. - - * alpha.h (ASM_OUTPUT_INTERNAL_LABEL): Don't omit L from local label. - (ASM_GENERATE_INTERNAL_LABEL): Likewise. - - * alpha.c (call_operand): Any reg is valid for WinNT. - * alpha.md (call_nt, call_value_nt): Don't force address into $27. - (anon nt calls): Add 'R' alternative. - * alpha/win-nt.h (TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE, - INITIALIZE_TRAMPOLINE): Handle lack of original $27 and 32-bit ptrs. - -Fri Nov 14 06:59:33 1997 Jeffrey A Law (law@cygnus.com) - - * calls.c (expand_call): Handle pcc_struct_value correctly for C++. - - * i386/xm-cygwin32.h (HAVE_FILE_H, HAVE_RUSAGE): Delete defines. - * i386/xm-mingw32.h (HAVE_FILE_H, HAVE_RUSAGE): Likewise. - * rs6000/xm-cygwin32.h (HAVE_FILE_H, HAVE_RUSAGE): Likewise. - -Thu Nov 13 20:37:33 1997 Michael Meissner - - * reload1.c (new_spill_reg): Improve fixed or forbidden register - spill error message. - -Thu Nov 13 20:29:08 1997 Kaveh R. Ghazi - - * prefix.c: Use stdarg.h only ifdef __STDC__. Otherwise, - use varargs.h. Wrap header with <>, not "". - -Thu Nov 13 20:21:17 1997 Jeffrey A Law (law@cygnus.com) - - * integrate.c (save_for_inline_copying): Add return value from - savealloc. - -Thu Nov 13 19:12:33 1997 Brendan Kehoe - - * fixincludes: Be a little more restrictive on what we will - substitute to replace definitions of MAXINT for HPUX. - -Thu Nov 13 18:41:02 1997 Michael Meissner - - * dbxout.c (dbxout_symbol_location): Don't assume that variables - whose address is the stack or argument pointers are indirect - pointers. - -1997-11-13 Paul Eggert - - * cccp.c, cpplib.c (compare_defs): - Don't complain about arg name respellings unless pedantic. - * cpplib.c (compare_defs): Accept pfile as new arg. - All callers changed. - -Thu Nov 13 23:33:50 1997 J"orn Rennecke - - * fold-const.c (fold_truthop): Fix bug in last change. - -1997-11-13 Paul Eggert - - Fix some confusion with IEEE minus zero. - - * real.h (REAL_VALUES_IDENTICAL): New macro. - - * expr.c (is_zeros_p): Don't consider -0.0 to be all zeros. - * fold-const.c (operand_equal_p): Don't consider -0.0 to be - identical to 0.0. - * tree.c (simple_cst_equal): Don't consider -0.0 to have the - same tree structure as 0.0. - - * varasm.c (immed_real_const_1): Use new REAL_VALUES_IDENTICAL - macro instead of doing it by hand. - -Thu Nov 13 16:56:14 1997 Jeffrey A Law (law@cygnus.com) - - * v850/lib1funcs.asm: Minor whitespace changes. - * v850.c: Fix minor formatting problems in many places. - (construct_restore_jr, construct_save_jarl): Remove unwanted aborts. - -Thu Nov 13 12:53:44 1997 Jim Wilson - - * mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete code swapping xplus0 and - xplus1 when xplus0 is not a register. - -Thu Nov 13 11:41:42 1997 Jeffrey A Law (law@cygnus.com) - - * flow.c (find_basic_blocks): During marking phase, if we encounter - an insn with a REG_LABEL note, make the target block live and - create an edge from the insn to the target block. Do not make - edges from all blocks to the target block. - - * m68k/x-next (OTHER_FIXINCLUDES_DIRS): Include /NextDeveloper/Headers. - - * confiugre.in: Tweak NCR entries. - * configure: Rebuilt. - -Thu Nov 13 11:07:41 1997 Michael Meissner - - * rs6000.c (num_insns_constant): Use REAL_VALUE_FROM_CONST_DOUBLE to - pick apart floating point values, instead of using CONST_DOUBLE_LOW - and CONST_DOUBLE_HIGH. - - * rs6000.md (define_splits for DF constants): Use the appropriate - REAL_VALUE_* interface to pick apart DF floating point constants in - a machine independent fashion. - -Thu Nov 13 00:06:58 1997 J"orn Rennecke - - * fold-const.c (fold_truthop): When changing a one-bit comparison - against zero into a comparison against mask, do a proper sign - extension. - -Wed Nov 12 09:37:01 1997 Jeffrey A Law (law@cygnus.com) - - * except.c: Do not include "assert.h". - (save_eh_status): Turn asserts into conditional aborts. - (restore_eh_status, scan_region): Likewise. - * dwarfout.c: Do not include "assert.h". - (bit_offset_attribute): Turn asserts into conditional aborts. - (bit_size_attribute, output_inlined_enumeration_type_die): Likewise. - (output_inlined_structure_type_die): Likewise. - (output_inlined_union_type_die): Likewise. - (output_tagged_type_instantiation): Likewise. - (dwarfout_file_scope_decl): Likewise. - * dwarf2out.c: Do not include "assert.h" - (expand_builtin_dwarf_reg_size): Turn asserts into conditional aborts. - (reg_save, initial_return_save, dwarf2out_frame_debug): Likewise. - (add_child_die, modified_type_die, add_bit_offset_attribute): Likewise. - (add_bit_size_attribute, scope_die_for): Likewise. - (output_pending_types_for_scope): Likewise. - (get_inlined_enumeration_type_die): Likewise. - (get_inlined_structure_type_die): Likewise. - (get_inlined_union_type_die, gen_subprogram_die): Likewise. - (gen_tagged_type_instantiation_die): Likewise. - - * flow.c (find_basic_blocks): Refine further to get a more correct - cfg, especially in the presense of exception handling, computed - gotos, and other non-trivial cases. Call abort if an inaccuracy - is detected in the cfg. - -Tue Nov 11 21:47:27 1997 J"orn Rennecke - - * glimits.h (SHRT_MIN): Define in a way suitable for 16 bit hosts. - - * c-lex.c (whitespace_cr, skip_white_space_on_line): New functions. - (skip_white_space): Use whitespace_cr. - (check_newline): Handle whitespace more consistently. - -Tue Nov 11 16:25:49 1997 Jim Wilson - - * i386/cygwin32.h (CPP_PREDEFINES): Delete -DPOSIX. - * i386/xm-cygwin32.h (POSIX): Define. - -Mon Nov 10 20:53:11 1997 Gavin Koch - - * config/mips/mips.h (MASK_DEBUG_H): Set to zero, so this bit - is available elsewhere. - -Mon Nov 10 16:21:58 1997 Doug Evans - - * sparc/sparc.md (mov[sdt]f_const_insn): Fix condition to match - what the instruction can handle. - -Mon Nov 10 03:02:19 1997 Jason Merrill - - * stmt.c (expand_decl_cleanup_no_eh): New fn. - - * except.c (expand_leftover_cleanups): do_pending_stack_adjust. - -Mon Nov 10 00:05:56 1997 Jeffrey A Law (law@cygnus.com) - - * alias.c (MAX_ALIAS_LOOP_PASSES): Define. - (init_alias_analysis): Break out of loops after MAX_ALIAS_LOOP_PASSES. - -Sun Nov 9 14:34:47 1997 David Edelsohn - - * rs6000.md (lshrdi3_power): Delete '&' from first alternative and - swap instruction order. - -Sun Nov 9 02:07:16 1997 Jeffrey A Law (law@cygnus.com) - - * fixinc.svr4 (__STDC__): Add another case. - -Sun Nov 9 02:00:29 1997 J"orn Rennecke - - * a29k.h (ELIGIBLE_FOR_EPILOGUE_DELAY): Avoid loads from varying - addresses in the epilogue delay slot. - -Sun Nov 9 01:40:40 1997 Manfred Hollstein (manfred@s-direktnet.de) - - * m88k/dgux.h (ASM_CPU_SPEC): Reformatted to suppress wrong whitespace - in generated `specs' file. - -Sun Nov 9 01:37:11 1997 Jim Wilson (wilson@cygnus.com) - - * flags.h (flag_rerun_loop_opt): Declare. - * loop.c (invariant_p, case LABEL_REF): Check flag_rerun_loop_opt. - * toplev.c (flag_rerum_loop_opt): Delete static. - -Sat Nov 8 18:20:21 1997 J"orn Rennecke - - Bring over from FSF: - - Thu Oct 30 12:21:06 1997 J"orn Rennecke - - * va-sh.h (__va_arg_sh1): Define. - (va_arg): Use it. - SH3E doesn't use any integer registers for subsequent arguments - once a non-float value was passed in the stack. - * sh.c (machine_dependent_reorg): If optimizing, put explicit - alignment in front label for ADDR_DIFF_VEC. - * sh.h (PASS_IN_REG_P): Fix SH3E case. - (ADJUST_INSN_LENGTH): If not optimizing, add two extra bytes length. - - Tue Oct 28 15:06:44 1997 J"orn Rennecke - - * sh/elf.h (PREFERRED_DEBUGGING_TYPE): Undefine before including - svr4.h. - - Mon Oct 27 16:11:52 1997 J"orn Rennecke - - * sh.c (machine_dependent_reorg): When -flag_delayed_branches, - put an use_sfunc_addr before each sfunc. - * sh.md (use_sfunc_addr, dummy_jump): New insns. - (casesi): For TARGET_SH2, emit a dummy_jump after LAB. - - Tue Oct 21 07:12:28 1997 J"orn Rennecke - - * sh/elf.h (PREFERRED_DEBUGGING_TYPE): Don't redefine. - -Fri Nov 7 10:22:24 1997 Jason Merrill - - * frame.c (add_fdes, count_fdes): Go back to checking pc_begin for - linked once FDEs. - -Wed Nov 5 14:26:05 1997 Jeffrey A Law (law@cygnus.com) - - * alias.c (find_base_value): Only return the known base value for - pseudo registers. - -Wed Nov 5 11:27:14 1997 Jim Wilson - - * i386.c (load_pic_register): Call prologue_get_pc_and_set_got. - * i386.md (prologue_set_got, prologue_get_pc): Add UNSPEC_VOLATILE - to pattern. - (prologue_get_pc_and_set_got): New pattern. - -Tue Nov 4 20:36:50 1997 Richard Henderson (rth@cygnus.com) - - * alpha.c (summarize_insn): Handle ASM_OPERANDS. Don't recurse - for SUBREG, just fall through. - - * alpha.c (alpha_handle_trap_shadows): Init sum.defd to zero. - - * alpha.md (attr trap): Make TRAP_YES nonzero for sanity's sake. - -Tue Nov 4 18:49:42 1997 Jeffrey A Law (law@cygnus.com) - - * fixincludes: Fix "hypot" prototype in NeXT math.h. - - * Makefile.in (USE_ALLOCA): Always include alloca.o. - (USE_HOST_ALLOCA): Likewise. - - * rtl.def (CODE_LABEL): Use separate fields for LABEL_NUSES - and LABEL_REFS fields. - * rtl.h (LABEL_REFS): Update. - -Tue Nov 4 16:55:11 1997 Jim Wilson - - * combine.c (try_combine): When setting elim_i2, check whether newi2pat - sets i2dest. When calling distribute_notes for i3dest_killed, pass - elim_i2 and elim_i1. When setting elim_i1, check if newi2pat - sets i1dest. - - * mips.md (insv, extzv, extv): Add change_address call. - (movsi_ulw, movsi_usw): Change QImode to BLKmode in pattern. - - * integrate.c (save_for_inline_copying): Copy parm_reg_stack_loc. - - * reload.c (find_reloads, case 'm' and 'o'): Reject HIGH constants. - - * mips.c (mips_expand_epilogue): Emit blockage insn before call to - save_restore_insns if no FP and GP will be restored. - - * dwarf2out.c (expand_builtin_dwarf_reg_size): New variable mode. - Convert CCmode to word_mode before calling GET_MODE_SIZE. - - * acconfig.h (HAVE_INTTYPES_H): Undef. - * configure.in (inttypes.h): Check for conflicts between sys/types.h - and inttypes.h, and verify that intmax_t is defined. - * config/mips/x-iris (CC, OPT, OLDCC): Comment out. - * config/mips/x-iris3: Likewise. - -Tue Nov 4 16:07:15 1997 Jeffrey A Law (law@cygnus.com) - - * alias.c (find_base_value): When copying arguments, return the - tentative value for a hard register. - -Tue Nov 4 13:40:35 1997 Doug Evans - - * c-lex.c (MULTIBYTE_CHARS): #undef if cross compiling. - (yylex): Record wide strings using target endianness, not host. - -Tue Nov 4 13:13:12 1997 Jeffrey A Law (law@cygnus.com) - - * mn10200.h (ASM_OUTPUT_BSS): Delete. - (ASM_OUTPUT_ALIGNED_BSS): New macro. - * mn10300.h (ASM_OUTPUT_BSS): Delete. - (ASM_OUTPUT_ALIGNED_BSS): New macro. - * v850.h (ASM_OUTPUT_BSS): Delete. - (ASM_OUTPUT_ALIGNED_BSS): New macro. - -Tue Nov 4 00:55:48 1997 J"orn Rennecke - - * profile.c (branch_prob): Insert an insn after a NOTE_INSN_SETJMP. - -Mon Nov 3 14:36:50 1997 Jeffrey A Law (law@cygnus.com) - - * configure.in (sco5): Use cpio to install header files. - -Sun Nov 2 23:31:43 1997 Manfred Hollstein - - * aclocal.m4 (conftestdata_from, conftestdata_to): Names shortened to - 14 char length. - * configure: Rebuild. - -Sun Nov 2 19:44:00 1997 Robert Lipe (robertl@dgii.com) - - * i386/sco5.h: Enable -gstabs once again. - -Sun Nov 2 19:27:21 1997 Jeffrey A Law (law@cygnus.com) - - * arm.c (output_move_double): Allocate 3 entries in otherops array. - -Sat Nov 1 21:43:00 1997 Mike Stump - - * except.c (expand_eh_region_start_for_decl): Emit EH_REGION_BEG - notes for sjlj exceptions too. - (expand_eh_region_end): Similarly for EH_REGION_END notes. - (exception_optimize): Optimize EH regions for sjlj exceptions too. - * final.c (final_scan_insn): Don't output labels for EH REGION - notes if doing sjlj exceptions. - -Sat Nov 1 19:15:28 1997 Jeffrey A Law (law@cygnus.com) - - * alias.c (init_alias_analysis): Handle -fno-alias-check when - optimizing correctly. - - * expr.c (expand_builtin_setjmp): Don't emit a SETJMP note - or set current_function_calls_setjmp anymore. - - * flow.c (find_basic_blocks): If we delete the label for an - exception handler, remove it from the EH label list and remove - the EH_BEGIN/EH_END notes for that EH region. - -Sat Nov 1 16:44:49 1997 Jason Merrill (jason@cygnus.com) - - * flow.c (find_basic_blocks): Generate correct flow control - information when exception handling notes are present. - -Sat Nov 1 13:42:19 1997 Jeffrey A Law (law@cygnus.com) - - * dwarf2out.c (output_call_frame_info): Fix length argument - to ASM_OUTPUT_ASCII. - (output_die, output_pubnames, output_line_info): Likewise. - -Fri Oct 31 07:10:09 1997 Jeffrey A Law (law@cygnus.com) - - * version.c: Bump for snapshot. - - * dwarf2out.c (output_call_frame_info): Use ASM_OUTPUT_ASCII to - output ASCII by default. Only use ASM_OUTPUT_DWARF_STRING if - flag_debug_asm is on. - (output_die, output_pubnames, output_line_info): Likewise. - - * alias.c (init_alias_analysis): Add struct_value_incoming_rtx - and static_chain_rtx into the potential base values array if - they are registers. - - * alias.c (new_reg_base_value): New array of potential base values. - (unique_id): Now file scoped static. - (find_base_value, case REG): Return the value in reg_base_value - array for the REG if it exists. Else, return the value from - new_reg_base_value if copying args and REG is a hard register. - (find_base_value, case PLUS): If either operand of the PLUS is - a REG, try to get its base value. Handle base + index and - index + base. - (record_set): Use new_reg_base_value instead of reg_base_value. - (init_alias_analysis): Allocate space for new_reg_base_value too. - Rework code to iterate over the insns propagating base value - information until nothing changes. - - * global.c (global_alloc): Free the conflict matrix after - reload has finished. - -Fri Oct 31 01:45:31 1997 Jason Merrill - - * libgcc2.c (L_eh): Define __eh_pc. - Replace __eh_type with generic pointer __eh_info. - -Fri Oct 31 00:34:55 1996 J"orn Rennecke - - * expr.c (expand_increment): When enqueing a postincrement for a MEM, - use copy_to_reg if address is not a general_operand. - -Fri Oct 31 00:16:55 1997 J"orn Rennecke - - * profile.c (output_func_start_profiler): Clear flag_inline_functions - for the duration of the call to rest_of_compilation. - -Thu Oct 30 14:40:10 1997 Doug Evans - - * configure.in (sparc-*-elf*): Use sparc/elf.h, sparc/t-elf. - Set extra_parts. - (sparc*-*-*): Recognize --with-cpu=v9. - * sparc/elf.h: New file. - * sparc/t-elf: New file. - -Thu Oct 30 13:26:12 1997 Jeffrey A Law (law@cygnus.com) - - * mn10300.c (const_8bit_operand): New function. - (mask_ok_for_mem_btst): New function. - * mn10300.md (btst patterns with mem operands): Use new functions - to avoid creating btst instructions with invalid operands. - -Wed Oct 29 16:57:19 1997 Michael Meissner - - * rs6000/xm-sysv4.h: Include xm-linux.h instead of xm-svr4.h if we - are running on PowerPC Linux. - -Wed Oct 29 13:10:11 1997 Gavin Koch - - * config/mips/elf64.h (PREFERRED_DEBUGGING_TYPE): Only define - if not previously defined. - -Tue Oct 28 23:55:27 1997 Doug Evans (devans@cygnus.com) - - * function.c (assign_parms): Correct mode of stack_parm if - entry_parm underwent a mode conversion. - -1997-10-28 Brendan Kehoe - - * global.c (global_alloc): Use xmalloc instead of alloca for - CONFLICTS, since max_allocno * allocno_row_words alone can be more - than 2.5Mb sometimes. - -Tue Oct 28 15:29:15 1997 Richard Henderson - - * reload1.c (eliminate_regs [SET]): If [SUBREG] widened the mode of - DEST for the spill, adjust mode of SRC to compensate. - -Tue Oct 28 14:36:45 1997 Richard Henderson - - * alpha.md (reload_inqi): Check for MEM before strict_memory_address_p, - since any_memory_operand() allows pseudos during reload. - (reload_inhi, reload_outqi, reload_outhi): Likewise. - -Tue Oct 28 11:53:14 1997 Jim Wilson - - * m68k.md (btst patterns): Add 5200 support. - -Tue Oct 28 11:58:40 1997 Toon Moene - - * fold-const.c (fold): For ((a * C1) / C3) or (((a * C1) + C2) / C3) - optimizations, look inside dividend to determine if the expression - can be simplified by using EXACT_DIV_EXPR. - -Tue Oct 28 10:19:01 1997 Jason Merrill - - From Brendan: - * dwarf2out.c (output_call_frame_info): Use l1 instead of ".". - -Tue Oct 28 00:32:14 1997 Richard Henderson - - * alpha.c (summarize_insn [SUBREG]): Propagate SET. - -Mon Oct 27 23:59:26 1997 Richard Henderson - - * alpha.c (alpha_handle_trap_shadows): Don't call get_attr_trap - on a CLOBBER. - -Mon Oct 27 21:25:20 1997 Richard Henderson - - * alpha.md (movqi, movhi): Make sure new insns created during reload - won't need reloading themselves. - (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Likewise. - -Mon Oct 27 16:11:10 1997 Jeffrey A Law (law@cygnus.com) - - * mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Disable reg+reg. - -Sun Oct 26 13:50:44 1997 Richard Henderson - - * alpha.c (alpha_sa_mask [VMS]): Don't include $26 in the mask. - Patch from Klaus Kaempf . - -Sun Oct 26 13:31:47 1997 Jim Wilson (wilson@cygnus.com) - - * expr.c (expand_expr, case INDIRECT_REF): Optimize a reference - to an element in a constant string. - -Sun Oct 26 11:41:49 1997 Jason Merrill - - * dwarf2out.c (output_call_frame_info): The CIE pointer is now a 32 - bit PC-relative offset. The exception range table pointer is now in - the CIE. - * frame.c (dwarf_cie, dwarf_fde): Rename CIE_pointer to CIE_delta. - (count_fdes, add_fdes, get_cie): Adjust. - (cie_info, extract_cie_info, __frame_state_for): Adjust eh_ptr uses. - - From H.J. Lu: - * frame.c (count_fdes, add_fdes): Skip linked once FDE entries. - -Sun Oct 26 11:52:01 1997 Richard Henderson - - * alias.c (memrefs_conflict_p): Treat arg_pointer_rtx just - like stack_pointer_rtx. - -Sun Oct 26 11:32:16 1997 Manfred Hollstein - - * Makefile.in (bootstrap-lean): Combined with `normal' bootstrap - targets using "$@" to provide support for similar but not identical - targets without having to duplicate code. - (bootstrap4): New goal. - - * Makefile.in (compare, compare-lean, compare3): Combined to one - ruleset determining actions to be performed via $@. - (compare4, compare4-lean): New targets. - (gnucompare, gnucompare3): Combined to one ruleset determining - actions to be performed via $@. Also, note which files failed - the comparison test in .bad_compare. - (gnucompare-lean, gnucompare3-lean, gnucompare4-lean): New targets. - -Sun Oct 26 10:06:11 1997 Toon Moene - - * fold-const (fold): Also simplify FLOOR_DIV_EXPR to EXACT_DIV_EXPR - if the dividend is a multiple of the divisor. - -Sun Oct 26 09:21:40 1997 Jeffrey A Law (law@cygnus.com) - - * Makefile.in (LIBGCC2_CFLAGS): Add -fexceptions. - - * alias.c (find_base_term): Handle PRE_INC, PRE_DEC, POST_INC, - and POS_DEC. - - * alias.c (true_dependence): Fix typo. - - * toplev.c (flag_rerun_loop_opt): New variable. - (f_options): Handle -frerun-loop-opt. - (rest_of_compilation): If -frerun-loop-opt, then run the loop - optimizer twice. - (main): Enable -frerun-loop-opt by default for -O2 or greater. - - * loop.c (simplify_giv_expr): Adding two invariants results - in an invariant. - -Sun Oct 26 09:15:15 1997 Richard Henderson - - * expr.c (get_inner_reference): Remove the array bias after - converting the index to Pmode. - -Sat Oct 25 12:20:58 1997 Jeffrey A Law (law@cygnus.com) - - * mn10300.h (TARGET_SWITCHES): Add -mmult-bug and -mno-mult-bug. - (TARGET_MULT_BUG): Define. - (TARGET_DEFAULT): Default to TARGET_MULT_BUG. - * mn10300.md (mulsi3): Handle TARGET_MULT_BUG. - -Fri Oct 24 17:40:34 1997 Jeffrey A Law (law@cygnus.com) - - * mn10200.c (indirect_memory_operand): Delete unused function. - * mn10200.h (EXTRA_CONSTRAINT): Handle 'R'. - * mn10200.md (bset, bclr insns): Handle output in a reg too. - -Fri Oct 24 15:54:57 1997 Richard Henderson - - * alpha.md (call patterns): Revert Oct 16 change; if we are to elide - the callee's ldgp, we must do it ourselves, and we use the jsr tag - for more than scheduling. - -Fri Oct 24 13:23:04 1997 Doug Evans - - * sparc/sparc.h (ASM_SPEC): Delete asm_arch. - -Fri Oct 24 13:19:40 1997 Jeffrey A Law (law@cygnus.com) - - * mn10300.c (symbolic_operand, legitimize_address): New functions. - * mn10300.h (LEGITIMIZE_ADDRESS): Call legitimize_address. - (GO_IF_LEGITIMATE_ADDRESS): Don't allow base + symbolic. - -Thu Oct 23 09:35:12 1997 Jeffrey A Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Thu Oct 23 08:03:59 1997 J"orn Rennecke - - * dbxout.c (dbxout_start_new_source_file): Use output_quoted_string - for FILENAME. - -Wed Oct 22 00:34:12 1997 Jeffrey A Law (law@cygnus.com) - - * toplev.c (flag_exceptions): Default value is 2. - (compile_file): If flag_exceptions still has the value 2, then - set it to 0. - - * rs6000.c (struct machine_function): Add pic_offset_table_rtx. - (rs6000_save_machine_status): Save pic_offset_table_rtx. - (rs6000_restore_machine_status: Restore pic_offset_table_rtx. - - * local-alloc.c (block_alloc): Don't lose if two SCRATCH expressions - are shared. - - * rs6000.md (*movsi_got_internal_mem): New pattern. - (*movsi_got_internal_mem splitter): New define_split. - -Tue Oct 21 18:14:03 1997 Jim Wilson - - * obstack.h (obstack_empty_p): Fix spurious space after backslash. - -Tue Oct 21 18:34:01 1997 Geoffrey KEATING - - * rs6000.c: Avoid creating a stack frame under SYSV ABI if we - only need to save LR. - -Tue Oct 21 10:06:40 1997 Jeffrey A Law (law@cygnus.com) - - * mn10300.md (movqi, movhi): Avoid using address registers as - destinations unless absolutely necessary. - - * mn10200.c (expand_prologue): Fix typo. - - * mn10200.h (GO_IF_LEGITIMATE_ADDRESS): Do not allow indexed - addresses. - * mn10200.md (neghi2): Provide an alternative which works if - the input and output register are the same. - - * mn10300.c (print_operand): Handle 'S'. - * mn10300.md (ashlsi3, lshrsi3, ashrsi3): Use %S for - shift amount in last alternative. - - * mn10300.c (expand_epilogue): Rework to handle register restores - in "ret" and "retf" instructions correctly. - -Mon Oct 20 16:47:08 1997 Jim Wilson - - * expmed.c (extract_bit_field): Don't make flag_force_mem disable - extzv for memory operands. - - * cse.c (simplify_ternary_operation, case IF_THEN_ELSE): Collapse - redundant conditional moves to single operand. - -Mon Oct 20 15:30:26 1997 Nick Clifton - - * v850.h: Move define of __v850__ from CPP_PREDEFINES - to CPP_SPEC. - - * xm-v850.h: Use __v850 rather than __v850__ to - identify v850 port. - -Mon Oct 20 14:15:02 1997 Jim Wilson - - * mips/mips.c (compute_frame_size): Not a leaf function if - profile_flag set. - -Mon Oct 20 14:16:38 1997 Geoffrey KEATING - - * rs6000/t-ppccomm: Use -msdata=none for crtstuff. - -Mon Oct 20 12:28:17 1997 Doug Evans - - * sparc/sparc.h (SPARC_V9,SPARC_ARCH64): Delete. - (DEFAULT_ARCH32_P): New macro. - (TARGET_ARCH{32,64}): Allow compile time or runtime selection. - (enum cmodel): Declare. - (sparc_cmodel_string,sparc_cmodel): Declare. - (SPARC_DEFAULT_CMODEL): Provide default. - (TARGET_{MEDLOW,MEDANY}): Renamed to TARGET_CM_{MEDLOW,MEDANY}. - (TARGET_FULLANY): Deleted. - (TARGET_CM_MEDMID): New macro. - (CPP_CPU_DEFAULT_SPEC): Renamed from CPP_DEFAULT_SPEC. - (ASM_CPU_DEFAULT_SPEC): Renamed from ASM_DEFAULT_SPEC. - (CPP_PREDEFINES): Take out stuff now handled by %(cpp_arch). - (CPP_SPEC): Rewrite. - (CPP_ARCH{,32,64,_DEFAULT}_SPEC): New macros. - (CPP_{ENDIAN,SUBTARGET}_SPEC): New macros. - (ASM_ARCH{,32,64,_DEFAULT}_SPEC): New macros. - (ASM_SPEC): Add %(asm_arch). - (EXTRA_SPECS): Rename cpp_default to cpp_cpu_default. - Rename asm_default to asm_cpu_default. - Add cpp_arch32, cpp_arch64, cpp_arch_default, cpp_arch, cpp_endian, - cpp_subtarget, asm_arch32, asm_arch64, asm_arch_default, asm_arch. - (NO_BUILTIN_{PTRDIFF,SIZE}_TYPE): Define ifdef SPARC_BI_ARCH. - ({PTRDIFF,SIZE}_TYPE): Provide 32 and 64 bit values. - (MASK_INT64,MASK_LONG64): Delete. - (MASK_ARCH64): Renamed to MASK_64BIT. - (MASK_{MEDLOW,MEDANY,FULLANY,CODE_MODEL}): Delete. - (EMBMEDANY_BASE_REG): Renamed from MEDANY_BASE_REG. - (TARGET_SWITCHES): Always provide 64 bit options. - (ARCH64_SWITCHES): Delete. - (TARGET_OPTIONS): New option -mcmodel=. - (INT_TYPE_SIZE): Always 32. - (MAX_LONG_TYPE_SIZE): Define ifdef SPARC_BI_ARCH. - (INIT_EXPANDERS): sparc64_init_expanders renamed to sparc_init_.... - (FUNCTION_{,BLOCK_}PROFILER): Delete TARGET_EMBMEDANY support. - (PRINT_OPERAND_PUNCT_VALID_P): Add '_'. - * sparc/linux-aout.h (CPP_PREDEFINES): Take out stuff handled by - CPP_SPEC. - (CPP_SUBTARGET_SPEC): Renamed from CPP_SPEC. - * sparc/linux.h: Likewise. - * sparc/linux64.h (SPARC_V9,SPARC_ARCH64): Delete. - (ASM_CPU_DEFAULT_SPEC): Renamed from ASM_DEFAULT_SPEC. - (TARGET_DEFAULT): Delete MASK_LONG64, MASK_MEDANY, add MASK_64BIT. - (SPARC_DEFAULT_CMODEL): Define. - (CPP_PREDEFINES): Take out stuff handled by CPP_SPEC. - (CPP_SUBTARGET_SPEC): Renamed from CPP_SPEC. - (LONG_DOUBLE_TYPE_SIZE): Define. - (ASM_SPEC): Add %(asm_arch). - * sparc/sol2.h (CPP_PREDEFINES): Take out stuff handled by CPP_SPEC. - (CPP_SUBTARGET_SPEC): Renamed from CPP_SPEC. - (TARGET_CPU_DEFAULT): Add ultrasparc case. - * sparc/sp64-aout.h (SPARC_V9,SPARC_ARCH64): Delete. - (TARGET_DEFAULT): MASK_ARCH64 renamed to MASK_64BIT. - (SPARC_DEFAULT_CMODEL): Define. - * sparc/sp64-elf.h (SPARC_V9,SPARC_ARCH64): Delete. - (TARGET_DEFAULT): MASK_ARCH64 renamed to MASK_64BIT. Delete - MASK_LONG64, MASK_MEDANY. - (SPARC_DEFAULT_CMODEL): Define. - (CPP_PREDEFINES): Delete. - (CPP_SUBTARGET_SPEC): Renamed from CPP_SPEC. - (ASM_SPEC): Add %(asm_arch). - (LONG_DOUBLE_TYPE_SIZE): Define. - (DWARF2_DEBUGGING_INFO): Define. - * sparc/splet.h (CPP_SPEC): Delete. - * sparc/sysv4.h (CPP_PREDEFINES): Take out stuff handled by CPP_SPEC. - (FUNCTION_BLOCK_PROFILER): Delete TARGET_EMBMEDANY support. - (BLOCK_PROFILER): Likewise. - * sparc/sparc.c (sparc_cmodel_string,sparc_cmodel): New globals. - (sparc_override_options): Handle code model selection. - (sparc_init_expanders): Renamed from sparc64_init_expanders. - * sparc/sparc.md: TARGET_ renamed to TARGET_CM_.... - TARGET_MEDANY renamed to TARGET_CM_EMBMEDANY. - (sethi_di_embmedany_{data,text}): Renamed from sethi_di_medany_.... - (sethi_di_fullany): Delete. - -Mon Oct 20 02:00:18 1997 Klaus Kaempf - Jeff Law - Richard Kenner - - * alpha/vms.h (DIVSI3_LIBCALL): OTS$ functions are upper case. - (DIVDI3_LIBCALL, UDIVSI3_LIBCALL, UDIVDI3_LIBVALL): Likewise. - (MODSI3_LIBCALL, MODDI3_LIBCALL): Likewise. - (UMODSI3_LIBCALL, UMODDI3_LIBCALL): Likewise. - * alpha/alpha.md (arg_home): Likewise. - - * alpha/alpha.c (vmskrunch): Delete. - * alpha/vms.h (ENCODE_SECTION_INFO, ASM_DECLARE_FUNCTION_NAME): Delete. - * alpha.c (output_prolog, VMS): Use alloca for entry_label and don't - truncate to 64 characters. - - * make-l2.com: Support openVMS/Alpha. - - * vmsconfig.com: Fix to work on openVMS/Alpha and openVMS/VAX. - -Sun Oct 19 19:00:35 1997 J"orn Rennecke - - * longlong.h (count_leading_zeros): Add missing casts to USItype. - -Sun Oct 19 18:44:06 1997 Jeffrey A Law (law@cygnus.com) - - * i386/bsd386.h (ASM_COMMENT_START): Define. - -Sat Oct 18 13:47:15 1997 Jason Merrill - - * tree.c (restore_tree_status): Also free up temporary storage - when we finish a toplevel function. - (dump_tree_statistics): Print stats for backend obstacks. - -Sat Oct 18 12:47:31 1997 Doug Evans - - * expr.c (use_group_regs): Don't call use_reg for MEMs. - -Sat Oct 18 09:49:46 1997 Jason Merrill - - * libgcc2.c (__throw): Don't copy the return address. - * dwarf2out.c (expand_builtin_dwarf_reg_size): Ignore return address. - - * except.c (exceptions_via_longjmp): Initialize to 2 (uninitialized). - * toplev.c (main): Initialize exceptions_via_longjmp. - - * tree.c: Add extra_inline_obstacks. - (save_tree_status): Use it. - (restore_tree_status): If this is a toplevel inline obstack and we - didn't want to save anything on it, recycle it. - (print_inline_obstack_statistics): New fn. - * function.c (pop_function_context_from): Pass context to - restore_tree_status. - * obstack.h (obstack_empty_p): New macro. - -Sat Oct 18 00:43:59 1997 Jeffrey A Law (law@cygnus.com) - - * i386/freebsd.h (ASM_COMMENT_START): Fix. - -Fri Oct 17 23:48:52 1997 Jim Wilson (wilson@cygnus.com) - - * v850.c (ep_memory_offset): New function. - (ep_memory_operand, substitute_ep_register, v850_reorg): Call it. - - * v850.h (CONST_OK_FOR_*): Add and correct comments. - (CONSTANT_ADDRESS_P): Add comment. - (EXTRA_CONSTRAINT): Define 'U'. - * v850.md: Add comments on bit field instructions. - (addsi3): Delete &r/r/r alternative. Add r/r/U alternative. - (lshrsi3): Use N not J constraint. - - * v850.md (v850_tst1+1): New define_split for tst1 instruction. - - * v850.c (reg_or_0_operand): Call register_operand. - (reg_or_int5_operand): Likewise. - * v850.h (MASK_BIG_SWITCH, TARGET_BIG_SWITCH): New macros. - (TARGET_SWITCHES): Add "big-switch". - (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT, CASE_VECTOR_MODE, - ASM_OUTPUT_BEFORE_BASE_LABEL): Add support for TARGET_BIG_SWITCH. - (CASE_DROPS_THROUGH): Comment out. - (CASE_VECTOR_PC_RELATIVE, JUMP_TABLES_IN_TEXT_SECTION): Define. - * v850.md (cmpsi): Delete compare mode. - (casesi): New pattern. - - * v850.h (CONST_OK_FOR_N): Delete redundant compare against zero. - * v850.md (ashlsi3): Use SImode not QImode for shift count. - (lshrsi3): Likewise. - - * v850.c (print_operand): Add 'c', 'C', and 'z' support. Delete - unreachable switch statement after 'b' support. Remove "b" from - strings for 'b' support. - * v850.md (branch_normal, branch_invert): Change %b to b%b. - -Fri Oct 17 23:33:20 1997 Jeffrey A Law (law@cygnus.com) - - * Makefile.in (LIBGCC2_CFLAGS): Avoid a backslash then an - empty line if @inhibit_libc@ is empty. - -Fri Oct 17 23:24:40 1997 Robert Lipe (robertl@dgii.com) - - * i386/sco5.h: Let ELF use dwarf2 unwinding. COFF uses sjlj. - (EH_FRAME_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP_ELF): Defined. - (EH_FRAME_SECTION_ASM_OP_COFF): Likewise. - (DWARF2_UNWIND_INFO): Let this track object file format. - (EXTRA_SECTIONS): Add in_eh. - (EH_FRAME_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP_ELF): Define. - (EH_FRAME_SECTION_ASM_OP_COFF): Likewise. - -Fri Oct 17 17:13:42 1997 David S. Miller - - * sparc/linux64.h (LINK_SPEC): Dynamic linker is ld-linux64.so.2. - * sparc/sparc.h (FUNCTION_PROFILER): Fix format string when - TARGET_MEDANY. - * sparc/sparc.c (dwarf2out_cfi_label): Extern no longer needed. - (output_double_int): Output DI mode values correctly when - HOST_BITS_PER_WIDE_INT is 64. - (output_fp_move_quad): If TARGET_V9 and not TARGET_HARD_QUAD, use - fmovd so it works if a quad float ends up in one of the upper 32 - float regs. - * sparc/sparc.md (pic_{lo_sum,sethi}_di): New patterns - necessary for PIC support on sparc64. - -Fri Oct 17 13:39:56 1997 Doug Evans - - * sparc/sp64-elf.h (TARGET_DEFAULT): Delete MASK_STACK_BIAS. - * sparc/sparc.h (PROMOTE_MODE): Promote small ints if arch64. - (PROMOTE_FUNCTION_ARGS,PROMOTE_FUNCTION_RETURN): Define. - (SPARC_FIRST_FP_REG, SPARC_FP_REG_P): New macros. - (SPARC_{OUTGOING,INCOMING}_INT_ARG_FIRST): New macros. - (SPARC_FP_ARG_FIRST): New macro. - (CONDITIONAL_REGISTER_USAGE): All v9 fp regs are volatile now. - (REG_ALLOC_ORDER,REG_LEAF_ALLOC_ORDER): Reorganize fp regs. - (NPARM_REGS): There are 32 fp argument registers now. - (FUNCTION_ARG_REGNO_P): Likewise. - (FIRST_PARM_OFFSET): Update to new v9 abi. - (REG_PARM_STACK_SPACE): Define for arch64. - (enum sparc_arg_class): Delete. - (sparc_arg_count,sparc_n_named_args): Delete. - (struct sparc_args): Redefine and use for arch32 as well as arch64. - (GET_SPARC_ARG_CLASS,ROUND_REG,ROUND_ADVANCE): Delete. - (FUNCTION_ARG_ADVANCE): Rewrite. - (FUNCTION_ARG,FUNCTION_INCOMING_ARG): Rewrite. - (FUNCTION_ARG_{PARTIAL_NREGS,PASS_BY_REFERENCE}): Rewrite. - (FUNCTION_ARG_CALLEE_COPIES): Delete. - (FUNCTION_ARG_{PADDING,BOUNDARY}): Define. - (STRICT_ARGUMENT_NAMING): Define. - (doublemove_string): Declare. - * sparc/sparc.c (sparc_arg_count,sparc_n_named_args): Delete. - (single_move_string): Use GEN_INT, and HOST_WIDE_INT. - (doublemove_string): New function. - (output_move_quad): Clean up some of the arch64 support. - (compute_frame_size): Add REG_PARM_STACK_SPACE if arch64. - Don't add 8 bytes of reserved space if arch64. - (sparc_builtin_saveregs): Combine arch32/arch64 versions. - (init_cumulative_args): New function. - (function_arg_slotno): New static function. - (function_arg,function_arg_partial_nregs): New functions. - (function_arg_{pass_by_reference,advance}): New functions. - (function_arg_padding): New function. - * ginclude/va-sparc.h: Rewrite v9 support. - -Fri Oct 17 12:29:48 1997 Christian Iseli - - * regclass.c (record_address_regs): Look at REG_OK_FOR_{BASE,INDEX}_P - for hard regs to determine base and index registers. - - * reload.c (debug_reload_to_stream): New function. Specify stream - into which to write debug info. - (debug_reload): Modify to call debug_reload_to_stream with stderr. - -Thu Oct 16 15:07:51 1997 Richard Henderson - - * combine.c (can_combine_p): Don't combine with an asm whose - output is a hard register. - -Thu Oct 16 15:43:26 1997 Mike Stump - - * c-decl.c (start_struct): Ensure that structs with forward - declarations are in fact packed when -fpack-struct is given. - - * stor-layout.c (layout_record): Ignore STRUCTURE_SIZE_BOUNDARY if - we are packing a structure. This allows a structure with only - bytes to be aligned on a byte boundary and have no padding on a - m68k. - -Thu Oct 16 15:17:54 1997 Richard Kenner - - * rs6000.h (ROUND_TYPE_ALIGN): Don't blow up if no fields in record. - -Thu Oct 16 11:20:30 1997 Richard Henderson - - * alpha.c (alpha_return_addr_rtx): New variable. - (alpha_save_machine_status): New; save it. - (alpha_restore_machine_status): New; restore it. - (alpha_init_expanders): New; clear it. - (alpha_return_addr): New; set it. - (alpha_ra_ever_killed): New; if alpha_return_addr_rtx, regs_ever_live - is overly conservative, so search the insns explicitly. - (alpha_sa_mask [VMS]): Check alpha_ra_ever_killed. - (alpha_sa_size [VMS && !VMS]): Likewise. - * alpha.h (RETURN_ADDR_RTX): Call alpha_return_addr. - (INIT_EXPANDERS): New definition. - - * alpha.c: Move REG_PV, REG_RA somewhere more visible in the file. - (output_prolog [!VMS]): Use them. - - * alpha.c (output_prolog [!VMS]): Move gp detection to ... - (alpha_does_function_need_gp): ... a new function. Refine the - CALL_INSN test to just TYPE_JSR. - * alpha.md (most call insns): Fix some jsr/ibr type transpositions. - -Thu Oct 16 09:36:47 1997 Jeffrey A Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Wed Oct 15 21:38:18 1997 Richard Kenner - - * pa.c (move_operand): Respect -mdisable-indexing. - * pa.h (GO_IF_LEGITIMATE_ADDRESS): Likewise. - -Wed Oct 15 21:34:45 1997 David Edelsohn - - * rs6000.md (udivsi3, divsi3): Split into MQ and non-MQ cases for - PPC601. - (umulsidi3,umulsi3_highpart): Likewise. - (smulsi3_highpart_no_mq): Add !TARGET_POWER. - -Wed Oct 15 18:21:46 1997 Richard Henderson - - * alpha.c (final_prescan_insn): Gut, remove and transform to ... - (alpha_handle_trap_shadows): ... a new function. Handle the entire - function in one go. Emit RTL for trapb, instead of printf directly. - (alpha_reorg): New function. Call alpha_handle_trap_shadows. - (trap_pending): Kill global variable. - (output_epilog): Don't call final_prescan_insn. - (struct shadow_summary): Elide $31 and $f31; now it fits in a word. - * alpha.h (FINAL_PRESCAN_INSN): Remove. - (MACHINE_DEPENDENT_REORG): Define. - * alpha.md (jsr patterns with trapb): Stupid and useless. Kill. - (trapb): New insn. - -Wed Oct 15 18:16:05 1997 Richard Henderson - - Tune Haifa scheduler for Alpha: - * alpha.h (ISSUE_RATE): Define. - * alpha.c (alpha_adjust_cost): Handle EV5 mult delay; don't apply - EV4 adjustments to EV5. - * alpha.md: Remove all scaling from function unit delays. Rework - EV5 function units to match the CPU. - (umuldi3_highpart): EV5 added the IMULH insn class. - -Wed Oct 15 17:42:41 1997 Jeffrey A Law (law@cygnus.com) - - * pa.c (following_call): Fail if the CALL_INSN is an indirect - call. - -Tue Oct 14 12:01:00 1997 Mark Mitchell - - * cplus-dem.c (demangle_signature): Don't look for return types on - constructors. Handle member template constructors. - -Tue Oct 14 11:30:29 1997 Jason Merrill - - * tree.c (expr_tree_cons, build_expr_list, expralloc): New fns. - * tree.h: Declare them. - -Fri Oct 10 13:46:56 1997 Doug Evans - - * configure.in: Handle --with-newlib. - * Makefile.in (LIBGCC2_CFLAGS): Add @inhibit_libc@. - - * sparc/t-sp64 (LIBGCC2_CFLAGS): Delete. - -Wed Oct 8 14:37:44 1997 Jeffrey A Law (law@cygnus.com) - - * config/ptx4.h: Fix typo. - -Wed Oct 8 08:57:20 1997 Jeffrey A Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Tue Oct 7 16:27:34 1997 Manfred Hollstein - - * aclocal.m4: Substitute INSTALL. - * configure: Re-built. - -Tue Oct 7 15:37:35 1997 Jeffrey A Law (law@cygnus.com) - - * integrate.c (save_for_inline_copying): Avoid undefined pointer - operations. - (expand_inline_function): Likewise. - - * dwarf2out.c (output_call_frame_info): Reinstate last change - using flag_debug_asm check instead of flag_verbose_asm. - -Tue Oct 7 12:57:26 1997 Jim Wilson - - * dwarf2out.c (output_call_frame_info): Remove last change. - -1997-10-04 Andreas Schwab - - * frame.c (__frame_state_for): Execute the FDE insns until the - current pc value is strictly bigger than the target pc value. - -Tue Oct 7 11:00:42 1997 Jason Merrill - - * regclass.c (init_reg_modes): If we can't find a mode for the - register, use the previous one. - -Tue Oct 7 10:55:34 1997 Richard Henderson - - * haifa-sched.c (print_block_visualization): Call fprintf directly, - don't sprintf through an alloca'ed buffer. - -Tue Oct 7 10:52:29 1997 Thomas Koenig (ig25@rz.uni-karlsruhe.de) - - * reload.c (decompose): Always initialize val.base. - -Tue Oct 7 10:19:26 1997 Manfred Hollstein (manfred@lts.sel.alcatel.de) - - * m68k/mot3300.h (ASM_OUTPUT_ALIGN): Accept any alignment - instead of aborting. - * dwarf2out.c (output_call_frame_info): Call app_enable and - app_disable to let GNU as accept the generated comments. - -Tue Oct 7 11:41:21 1997 Michael Meissner - - * tree.h (get_file_function_name): Add declaration. - * dwarf2out.c (output_call_frame_info): No need to cast - get_file_function_name call anymore. - * profile.c (toplevel): Remove get_file_function_name - declaration. - * c-lang.c (finish_file): Likewise. - -Tue Oct 7 10:01:45 1997 Chip Salzenberg - - * Makefile.in (program_transform_name): Let autoconf substitute - the correct value. - -Tue Oct 7 09:54:35 1997 Jeffrey A Law (law@cygnus.com) - - * haifa-sched.c (schedule_block): If the first real insn in a - block has any special notes attached to it, remove them. - -Tue Oct 7 09:48:51 1997 Richard Henderson - - * alpha.h (FLOAT_STORE_FLAG_VALUE): It's 2.0 not 0.5. - -Mon Oct 6 12:47:32 1997 Manfred Hollstein (manfred@lts.sel.alcatel.de) - - * m88k.c (m88k_begin_prologue): Remove superfluous backslash. - -Mon Oct 6 12:04:24 1997 Jeffrey A Law (law@cygnus.com) - - * Makefile.in (check-g77): New test target. - (CHECK-TARGETS): Add check-g77. - -Fri Oct 3 11:56:36 1997 Jason Merrill - - * toplev.c (rest_of_compilation): Defer all non-nested inlines. - -Fri Oct 3 15:49:27 1997 Michael Meissner - - * flow.c (print_rtl_with_bb): Cast alloca return value for - in_bb_p. - -Thu Oct 2 21:15:03 1997 Richard Henderson - - * i386.h (RETURN_ADDR_RTX): New definition that works for - __builtin_return_address(0) and -fomit-frame-pointer. - -Wed Oct 1 13:43:53 1997 Jim Wilson - - Bring over from FSF. - Tue Aug 5 16:10:45 1997 Jason Merrill - - * mips.c (function_arg): Handle passing a struct - containing a double in a DFmode register without the PARALLEL. - -Wed Oct 1 11:13:25 1997 Ian Lance Taylor - - * pexecute.c: Use spawn if __CYGWIN32__. - - * pexecute.c: Include "config.h" first, as per autoconf manual - (from Paul Eggert ). - -Wed Oct 1 01:44:36 1997 Philippe De Muyter - - * m68k/x-mot3300 (XCFLAGS): Disable as's long/short jump - optimization for f/expr.o and f/stb.o. - -Tue Sep 30 23:48:57 1997 Jeffrey A Law (law@cygnus.com) - - * cse.c (this_insn_cc0_mode): Initialize. - -Tue Sep 30 23:09:40 1997 Thomas Koenig - - * cccp.c (expand_to_temp_buffer): Initialize all members of obuf. - - * haifa-sched.c (get_block_head_tail): Remove unneeded initialization. - -Tue Sep 30 23:06:43 1997 Richard Henderson - - * alpha.md (beq): For registers and ints 0-255, use cmpeq+bne, since - that pair will dual-issue on the 21164 and plus+beq won't. - (bne): Likewise for cmpeq+beq. - -Tue Sep 30 16:07:58 1997 Jim Wilson - - * except.c (find_exception_handler_labels): Correct argument to free. - -Tue Sep 30 11:00:00 1997 Brendan Kehoe - - * except.c (find_exception_handler_labels): Free LABELS when we're - done. - -Mon Sep 29 14:04:35 1997 Jeffrey A Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Mon Sep 29 10:51:53 1997 Jason Merrill - - * flow.c (find_basic_blocks): Mark calls as potentially jumping - to the EH labels. - -Mon Sep 29 09:58:06 1997 Jeffrey A Law (law@cygnus.com) - - * configure.in: Substitute for "install" too. - * configure: Rebuilt. - -Mon Sep 29 00:38:42 1997 Aaron Jackson - - * Makefile.in (bootstrap-lean, compare-lean): New targets. - -Mon Sep 29 00:18:16 1997 Richard Henderson (rth@cygnus.com) - - * alias.c (base_alias_check): Two symbols can conflict if they - are accessed via AND. - (memrefs_conflict_p): Likewise. - - * alpha.h (SETUP_INCOMING_VARARGS): Emit a blockage insn - after flushing argument registers to the stack. - - * Makefile.in (mostlyclean): Remove .regmove files. - -Sun Sep 28 18:59:58 1997 Jason Merrill - - * libgcc2.c (__throw): Fix thinko. - -Sun Sep 28 12:00:52 1997 Mark Mitchell - - * cplus-dem.c (demangle_template): Add new parameter. Handle new - template-function mangling. - (consume_count_with_underscores): New function. - (demangle_signature): Handle new name-mangling scheme. - -Sun Sep 28 01:55:04 1997 Philippe De Muyter - - * flow.c (print_rtl_with_bb): Cast alloca return values for variables - start and end. - -Sun Sep 28 01:05:16 1997 Jeffrey A Law (law@cygnus.com) - - * frame.c: Remove last change. - * dwarf2.h: Remove last change. - * tree.h: Add declarations of DWARF2 unwind info support - functions. - -Sat Sep 27 11:02:38 1997 Jason Merrill - - * c-decl.c (init_decl_processing): Add __builtin_dwarf_reg_size. - * tree.h (built_in_function): Likewise. - * expr.c (expand_builtin): Likewise. - * except.h: Likewise. - * dwarf2out.c (expand_builtin_dwarf_reg_size): New fn. - * libgcc2.c (copy_reg): New fn. - (__throw): Use it. - -Fri Sep 26 08:54:59 1997 Paul Eggert - - * c-typeck.c (build_binary_op): Warn about comparing signed vs - unsigned if -W is specified and -Wno-sign-compare is not. - * c-decl.c (warn_sign_compare): Initialize to -1. - (c_decode_option): -Wall no longer implies -Wsign-compare. - -Fri Sep 26 09:00:13 1997 Andreas Schwab - - * frame.c: Include gansidecl.h for PROTO. - * dwarf2out.c: Move inclusion of dwarf2.h down so that PROTO is - defined. Don't declare dwarf2out_cfi_label here. - * dwarf2.h: Add declarations of DWARF2 unwind info support - functions. - * m68k.c: Include dwarf2.h. - (output_function_prologue): Add dwarf2 support. - * m68k.h (INCOMING_RETURN_ADDR_RTX, DWARF_FRAME_REGNUM): New macros. - (INCOMING_FRAME_SP_OFFSET): Likewise. - - * integrate.c (expand_inline_function): Make sure there is at - least one insn that can be used as an insertion point. - -Wed Sep 24 21:34:06 1997 Jason Merrill - - * dwarf2out.c: s/flag_verbose_asm/flag_debug_asm/ - -Wed Sep 24 22:05:30 1997 Jeffrey A Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Wed Sep 24 17:36:23 1997 Doug Evans - - Bring over from FSF. - - Wed Sep 24 19:17:08 1997 Doug Evans - - * sparc/sparc.md (get_pc_via_call): Renamed from get_pc_sp32. - (get_pc_via_rdpc): Renamed from get_pc_sp64. - * sparc/sparc.c (finalize_pic): Update call to gen_get_pc_via_call. - - Wed Sep 24 18:38:22 1997 David S. Miller - - * sparc/sparc.h (ASM_CPU_SPEC): Pass -Av9a for v8plus, ultrasparc. - (TARGET_OPTIONS): Add -malign-loops=, -malign-jumps=, - -malign-functions=. - (sparc_align_{loops,jumps,funcs}_string): Declare. - (sparc_align_{loops,jumps,funcs}): Declare. - (DEFAULT_SPARC_ALIGN_FUNCS): New macro. - (FUNCTION_BOUNDARY): Use sparc_align_funcs. - (STACK_BIAS): Define. - (SPARC_SIMM*_P): Cast to unsigned HOST_WIDE_INT first, then perform - test. - (SPARC_SETHI_P): New macro. - (CONST_OK_FOR_LETTER_P): Use it. - (ASM_OUTPUT_ALIGN_CODE): Define. - (ASM_OUTPUT_LOOP_ALIGN): Define. - * sparc/sparc.c (sparc_align_{loops,jumps,funcs}_string): New globals. - (sparc_align_{loops,jumps,funcs}): New globals. - (sparc_override_options): Handle -malign-loops=, -malign-jumps=, - -malign-functions=. - (move_operand): Use SPARC_SETHI_P. - (arith_double_operand): Cast to unsigned HOST_WIDE_INT first, then - perform test. - (arith11_double_operand): Likewise. - (arith10_double_operand): Likewise. - (finalize_pic): Finish sparc64 support. - (emit_move_sequence): Use SPARC_SETHI_P. Simplify low part of - 64 bit constants if able. - (output_fp_move_quad): Don't use fmovq unless TARGET_HARD_QUAD. - (sparc_builtin_saveregs, sparc64 case): Don't save fp regs if - ! TARGET_FPU. - * sparc/sparc.md (*): Use GEN_INT instead of gen_rtx. - (get_pc_sp32): Use for sparc64 as well. - (lo_sum_di_sp{32,64}): Fix handling on 64 bit hosts. - (sethi_di_sp64_const): Likewise. - (movtf_cc_sp64): Check TARGET_HARD_QUAD. - (cmp_zero_extract_sp64): Use unsigned HOST_WIDE_INT in cast. - (ashlsi3, ashldi3, ashrsi3, ashrdi3, lshrsi3, lshrdi3): Likewise. - - Tue Sep 23 19:02:46 1997 Doug Evans - - * sparc/linux-aout.h (COMMENT_BEGIN): Delete. - * sparc/linux.h (COMMENT_BEGIN): Likewise. - * sparc/linux64.h (COMMENT_BEGIN): Likewise. - - Tue Sep 23 14:48:18 1997 David S. Miller - - Add sparc64 linux support. - * configure.in (sparc64-*-linux*): Recognize. Add sparc/xm-sparc.h - to xm_file list on 32-bit sparc-linux. - * sparc/xm-sp64.h: New file. - * sparc/linux64.h: New file. - * sparc/xm-linux.h: Include some standard headers if not inhibit_libc. - Don't include xm-sparc.h. - * config/xm-linux.h (HAVE_PUTENV, HAVE_ATEXIT): Define. - * glimits.h (LONG_MAX): Handle sparc64. - - Sat Sep 20 03:07:54 1997 Doug Evans - - * sparc/sysv4.h (ASM_COMMENT_START): Delete. - * sparc.h (ASM_COMMENT_START): Define. - * sparc.c (output_function_prologue): Use it. - (sparc_flat_output_function_{epi,pro}logue): Likewise. - - Wed Sep 17 15:04:19 1997 Doug Evans - - * sparc/sysv4.h (ASM_OUTPUT_{FLOAT,DOUBLE,LONG_DOUBLE}): Delete, - use sparc.h's copies. - * sparc/sparc.h (ASM_OUTPUT_{FLOAT,DOUBLE,LONG_DOUBLE}): Print - ascii form as well. - - Mon Sep 8 08:45:19 1997 Richard Kenner - - * sparc.c (dwarf2out_cfi_label): Add declaration. - (save_regs, output_function_prologue): Remove cast for it. - (sparc_flat_{save_restore,output_function_prologue): Likewise. - ({save,restore}_regs): No longer inline. - -Tue Sep 23 12:34:51 1997 Richard Kenner - - * fold-const.c (make_range): Correctly handle cases of converting - from unsigned to signed type. - -Tue Sep 23 12:34:51 1997 Bernd Schmidt - - * fold-const.c (merge_ranges): Make sure that if one range is subset - of another, it will always be the second range. Correct (+,-) case to - account for this. - -Tue Sep 23 08:32:51 1997 Jason Merrill - - * final.c (final_end_function): Also do dwarf2 thing if - DWARF2_DEBUGGING_INFO. - (final_start_function): Likewise. - -Tue Sep 23 01:15:50 1997 David S. Miller - - * expmed.c (expand_divmod): If compute_mode is not the same as - mode, handle the case where convert_modes() causes op1 to no - longer be a CONST_INT. - - * reorg.c (dbr_schedule): At end of this pass, add REG_BR_PRED - note holding get_jump_flags() calculation to all JUMP_INSNs. - * rtl.h (enum reg_note): New note types REG_BR_PRED and REG_SAVE_AREA. - * rtl.c (reg_note_name): Add new note types. - -Tue Sep 23 00:59:54 1997 Jeffrey A Law (law@cygnus.com) - - * rtlanal.c (computed_jump_p): Fix typo in last change. - -Tue Sep 23 00:42:44 1997 H.J. Lu (hjl@gnu.ai.mit.edu) - - * loop.c (indirect_jump_in_function_p): Return 0 - by default. - -Tue Sep 23 00:33:55 1997 Jeffrey A Law (law@cygnus.com) - - * rs6000/xm-rs6000.h: Fix thinko in last change. - * rs6000/xm-sysv4.h: Likewise. - -Mon Sep 22 19:33:53 1997 Jim Wilson - - * mips.c (save_restore_insns): Only set RTX_FRAME_RELATED_P if store_p. - -Mon Sep 22 14:41:00 1997 Jeffrey A Law (law@cygnus.com) - - * reg-stack.c (find_blocks): Fix thinko in last change. - -1997-09-21 Andreas Schwab - - * m68k.c (output_function_prologue): Add dwarf2 support. - - * m68k.h (INCOMING_RETURN_ADDR_RTX, DWARF_FRAME_REGNUM, - INCOMING_FRAME_SP_OFFSET): New definitions. - -Mon Sep 22 11:36:42 1997 David S. Miller - - * combine.c (try_combine): Use NULL_RTX instead of '0' where - appropriate in calls to gen_rtx(). - * cse.c (cse_main): Likewise. - * emit-rtl.c (gen_label_rtx): Likewise. - * expr.c (init_expr_once): Likewise. - * haifa-sched.c (flush_pending_lists, sched_analyze_insn, - sched_analyze, init_rgn_data_dependences, - compute_block_backward_dependences): Likewise. - * sched.c (schedule_insns): Likewise. - * varasm.c (immed_double_const): Likewise. - - * sparc.h (INCOMING_FRAME_SP_OFFSET): Define to - SPARC_STACK_BIAS for sake of dwarf2 on sparc64. - -Mon Sep 22 11:21:33 1997 J. Kean Johnston - - * i386/sco5.h: Make ELF default file format and add -mcoff/-melf.. - (MULTILIB_DEFAULTS): Define. - (ASM_SPEC, CPP_SPEC): Handle -mcoff. - (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC): Likewise. - (LIBGCC_SPEC): Likewise. - (MASK_COFF, TARGET_COFF, TARGET_ELF): Define. - (SUBTARGET_SWITCHES): Add -mcoff and -melf. - * i386/t-sco5 (CRTSTUFF_T_CFLAGS): Add -fPIC. - (CRTSTUFF_T_CFLAGS_S): Tweak for COFF. - (EXTRA_PARTS, TAROUTOPTS): Delete. - (libgcc1-elf, libgcc2-elf, libgcc-elf targets): Delete. - (MULTILIB_OPTIONS): Define. - (MULTILIB_DIRNAMES, MULTILIB_EXCEPTIONS): Likewise. - (MULTILIB_MATCHE, MULTILIB_EXTRA_OPTS): Likewise. - -Mon Sep 22 02:10:43 1997 Jeffrey A Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sun Sep 21 17:45:45 1997 Jeffrey A Law (law@cygnus.com) - - * loop.c (loop_number): Delete function. Change all references - to use uid_loop_num array. - * loop.h (loop_number): Delete declaration. - * unroll.c (unroll_loop): Change "loop_number" references to - use uid_loop_num instead. - - * loop.c (loop_unroll_factor): Move outside #ifdef HAIFA - conditional. - (loop_unroll_iter): Remove unused variable and all references. - (loop_optimize): Always allocate and clear space for loop_unroll_factor. - (insert_bct): Fix minor formatting problems. - * loop.h (loop_unroll_factor): Move decl outside #ifdef HAIFA. - (loop_unroll_iter): Removed unused decl. - * unroll.c (unroll_loop): Remove code to set loop_unroll_iter. - Always record the unrolling factor. - - * cse.c (simplify_relational_operation): Set h0u just like h0s. - Similarly for h1u and h1s. - - * flow.c (jmp_uses_reg_or_mem): Deleted unused function. - (find_basic_blocks): Use computed_jump_p to determine if a - particular JUMP_INSN is a computed jump. - * reg-stack.c (find_blocks): Use computed_jump_p to determine - if a particular JUMP_INSN is a computed jump. - * rtlanal.c (jmp_uses_reg_or_mem): New function. - (computed_jump_p): Likewise. - * rtl.h (computed_jump_p): Declare. - * genattrtab.c (pc_rtx): Define and initialize. - * loop.c (loop_optimize): Always determine if the current - function has a computed jump. - (indirect_jump_in_function_p): Use computed_jump_p to determine - if a particular JUMP_INSN is a computed jump. - - * loop.c (fix_bct_param): Delete unused function. - (check_bct_param): Likewise. - -Sat Sep 20 16:22:06 1997 Jason Merrill - - * frame.c (__deregister_frame): Check properly for initialized object. - -Fri Sep 19 20:51:03 1997 H.J. Lu (hjl@gnu.ai.mit.edu) - - * alpha/linux.h (HANDLE_SYSV_PRAGMA): Defined. - -Fri Sep 19 18:53:50 1997 J"orn Rennecke - - * jump.c (thread_jumps): Check can_reverse_comparison_p before - threading a reversed-condition jump. - - * sched.c (update_flow_info): Don't pass SCRATCH to dead_or_set_p. - * haifa-sched.c (update_flow_info): Likewise. - -Thu Sep 18 21:13:40 1997 Jeffrey A Law (law@cygnus.com) - - * Makefile.in (BOOT_CFLAGS): Use -O2. - - * configure.in (strtoul, bsearch): Have autoconf check for these - functions. - * configure, config.in: Rebuilt. - - * m68k/xm-mot3300.h (alloca): Properly declare if __STDC__. - * mips/mips.h (alloca): Likewise. - * rs6000/xm-rs6000.h (alloca): Likewise. - * rs6000/xm-sysv4.h: Likewise. - -Thu Sep 18 14:22:22 1997 Jason Merrill - - * final.c (final_scan_insn): Hand BARRIERs off to the dwarf2 code. - * dwarf2out.c (dwarf2out_frame_debug): Pass the whole insn along. - (dwarf2out_stack_adjust): A BARRIER resets the args space to 0. - - * except.c (end_eh_unwinder): Subtract 1 from return address. - * libgcc2.c (__throw): Likewise. - (find_exception_handler): Don't change PC here. Compare end with >. - -Thu Sep 18 10:43:07 1997 Nick Clifton - - * v850.c (compute_register_save_size): Correct register - number. - * v850.md (save_interrupt, return_interrupt): Correct - register number. - * v850/lib1funcs.asm (save_interrupt): Correct register number. - (return_interrupt): Use stack pointer, not element pointer. - -1997-09-18 Brendan Kehoe - - * configure.in, configure: Make sure to create the stage* and include - symbolic links in each subdirectory. - -Thu Sep 18 01:47:06 1997 Jeffrey A Law (law@cygnus.com) - - * pa.md (reload_peepholes): Don't allow addresses with side - effects for the memory operand. - -Wed Sep 17 18:19:53 1997 Jason Merrill - - * libgcc2.c (find_exception_handler): Subtract one from our PC when - looking for a handler, to avoid hitting the beginning of the next - region. - - * except.c (expand_builtin_set_return_addr_reg): Use force_operand. - -Wed Sep 17 18:33:59 1997 Jeffrey A Law (law@cygnus.com) - - * mips/abi64.h (LONG_MAX_SPEC): Define. - * mips.h (LONG_MAX_SPEC): Define. - (CPP_SPEC): Include long_max_spec. - (EXTRA_SPECS): Include long_max_spec. - -Wed Sep 17 14:11:38 1997 Jeffrey A Law (law@cygnus.com) - - * v850.c (construct_save_jarl): Fix thinko in last change. - -Wed Sep 17 09:53:07 1997 Jeffrey A Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Tue Sep 16 14:22:36 1997 Jason Merrill - - * libgcc2.c (find_exception_handler): Not found is -1. - - * integrate.c (expand_inline_function): Move expand_start_bindings - after expanding the arguments. - -Tue Sep 16 11:13:46 1997 Jim Wilson - - * expr.c (expand_expr): Remove previous incorrect change. - If target and slot has no DECL_RTL, then call mark_addressable - again for the slot after we give it RTL. - -Tue Sep 16 09:18:52 1997 Jason Merrill (jason@cygnus.com) - - * expr.c (expand_expr, case TARGET_EXPR): Call mark_addressable - again for the slot after we give it RTL. - -Tue Sep 16 00:13:20 1997 Nick Clifton - - * v850.c (register_is_ok_for_epilogue, - pattern_is_ok_for_epilogue, construct_restore_jr, - pattern_is_ok_for_prologue, construct_save_jarl): New functions. - - * v850.h (pattern_is_ok_for_prologue, - pattern_is_ok_for_epilogue, register_is_ok_for_epilogue): New - predicates. - - * v850.md: Replace prologue and epilogue patterns with a - match_parallel pattern. - -Mon Sep 15 22:53:01 1997 Jeffrey A Law (law@cygnus.com) - - * aclocal.m4: Add replacement for AC_PROG_INSTALL. - * configure.in: Use EGCS_PROG_INSTALL. - -Mon Sep 15 22:40:55 1997 Jim Wilson (wilson@cygnus.com) - - * dwarf2out.c (gen_subprogram_die): Handle redefinition of an - extern inline function. - -Mon Sep 15 22:40:55 1997 Richard Henderson (rth@cygnus.com) - - * dwarf2out.c (reg_loc_descriptor): Fix prototype. - (concat_loc_descriptor): New function. - (loc_descriptor): Call it. - (add_AT_location_description): Also elide the descriptor if both - halves of a CONCAT are pseudos. - (add_location_or_const_value_attribute): Recognize CONCAT too. - -Mon Sep 15 15:24:00 1997 Richard Henderson - - * alpha.md (movdi): Handle CONST_DOUBLE for TARGET_BUILD_CONSTANTS. - - * alpha/alpha.c (output_prolog): New variable sa_reg. Use it for - out-or-range reg_offset. - (output_epilog): Likewise. - -Mon Sep 15 15:39:26 1997 Jeffrey A Law (law@cygnus.com) - - * cse.c (simplify_relational_operation): If MODE specifies a - mode wider than HOST_WIDE_INT, then the high word of a CONST_INT - is derived from the sign bit of the low word. - -Mon Sep 15 11:43:38 1997 Jason Merrill - - Support dwarf2 unwinding on PUSH_ROUNDING targets like the x86. - - * dwarf2.h: Add DW_CFA_GNU_args_size. - * frame.c (execute_cfa_insn): Likewise. - * dwarf2out.c (dwarf_cfi_name, output_cfi): Likewise. - (dwarf2out_args_size, dwarf2out_stack_adjust): New fns. - (dwarf2out_frame_debug): If this isn't a prologue or epilogue - insn, hand it off to dwarf2out_stack_adjust. - (dwarf2out_begin_prologue): Initialize args_size. - * frame.h (struct frame_state): Add args_size. - * libgcc2.c (__throw): Use args_size. - * final.c (final_scan_insn): If we push args, hand off all insns - to dwarf2out_frame_debug. - * defaults.h (DWARF2_UNWIND_INFO): OK for !ACCUMULATE_OUTGOING_ARGS. - - * dwarf2out.c dwarf2out_frame_debug): Fix typo. - Handle epilogue restore of SP from FP. - * emit-rtl.c (gen_sequence): Still generate a sequence if the - lone insn has RTX_FRAME_RELATED_P set. - - * frame.c (extract_cie_info): Handle "e" augmentation. - * dwarf2out.c (ASM_OUTPUT_DWARF_*): Provide definitions in the - absence of UNALIGNED_*_ASM_OP. - (UNALIGNED_*_ASM_OP): Only provide defaults if OBJECT_FORMAT_ELF. - (output_call_frame_info): Use "e" instead of "z" for augmentation. - Don't emit augmentation fields length. - (dwarf2out_do_frame): Move outside of #ifdefs. - * defaults.h (DWARF2_UNWIND_INFO): Don't require unaligned data - opcodes. - - * sparc.h (UNALIGNED_INT_ASM_OP et al): Don't define here after all. - * sparc/sysv4.h (UNALIGNED_INT_ASM_OP): Define here. - * sparc/sunos4.h (DWARF2_UNWIND_INFO): Define to 0. - * sparc/sun4gas.h: New file. - * configure.in: Use sun4gas.h if SunOS 4 --with-gnu-as. - - * collect2.c (write_c_file_stat, write_c_file_glob): Declare - __register_frame_table and __deregister_frame. - -1997-09-15 Brendan Kehoe - - * except.c (find_exception_handler_labels): Use xmalloc instead of - alloca, since MAX_LABELNO - MIN_LABELNO can be more than 1 million - in some cases. - -Sun Sep 14 21:01:23 1997 Jeffrey A Law (law@cygnus.com) - - * Makefile.in: Various changes to build info files - in the object tree rather than the source tree. - -Sun Sep 14 12:24:30 1997 Jeffrey A Law (law@cygnus.com) - - * fixinc.math: New file to fix math.h on some systems. - * configure.in (freebsd, netbsd): Use fixinc.math on these - systems. - * configure: Rebuilt. - -Sun Sep 14 11:11:05 1997 Jeffrey A Law (law@cygnus.com) - - * regmove.c (regmove_optimize): If we end up moving the - original insn due to lifetime overlaps, make sure to move - REG_NOTES too. - -Sat Sep 13 15:51:11 1997 Manfred Hollstein - - * Makefile.in (INSTALL_{PROGRAM,DATA}): Use value found by configure. - -Sat Sep 13 12:57:26 1997 Jeffrey A Law (law@cygnus.com) - - * haifa-sched.c (add_branch_dependences): Make each insn in - a SCHED_GROUP_P block explicitly depend on the previous insn. - -Fri Sep 12 13:49:58 1997 Jason Merrill - - * except.h: Prototype dwarf2 hooks. - * expr.c: Adjust. - -Thu Sep 11 17:43:55 1997 Jim Wilson - - * configure.in (native_prefix): Delete. - (mips-dec-netbsd): Don't set prefix. - (*linux*): Don't set prefix. - -Thu Sep 11 15:48:32 1997 Fred Fish - - * protoize.c: Include only if HAVE_VARARGS_H is - defined. If not defined, include if - HAVE_SYS_VARARGS_H is defined. - * configure.in: Test for varargs.h and sys/varargs.h. - * configure: Regenerate with autoconf. - * config.in: Regenerate with autoheader. - - * cpplib.c (quote_string): Cast first arg of sprintf call - from "unsigned char *" to "char *". - (output_line_command): Likewise. - (macroexpand): Likewise. - (do_line): Cast atoi arg from "unsigned char *" to "char *". - -Wed Sep 10 21:37:30 1997 Jeffrey A Law (law@cygnus.com) - - * version.c: Bump for snapshot. - - * Makefile.in (compare): Exit with nonzero status if there - are comparison failures. Note which files failed the - comparison test in .bad_compare. - -Wed Sep 10 17:05:46 1997 H.J. Lu (hjl@gnu.ai.mit.edu) - - * config/alpha/elf.h (CPP_PREDEFINES): Remove -D__PIC__ -D__pic__. - -Wed Sep 10 16:37:28 1997 Fred Fish - - * Makefile.in (LN, LN_S): New macros, use where appropriate. - * aclocal.m4 (GCC_PROG_LN_S, GCC_PROG_LN): New tests. - * configure.in: Use GCC_PROG_LN_S and GCC_PROG_LN. - * configure: Regenerated. - -Thu Sep 11 11:09:43 1997 Jeffrey A Law (law@cygnus.com) - - * loop.c (strength_reduce): Fix typo. - -Wed Sep 10 16:01:15 1997 Jim Wilson - - * m88k/m88k.c (struct option): Rename to struct options. - * m88k/dolph.h (INITIALIZE_TRAMPOLINE): Delete here. - * m88k/sysv3.h (INITIALIZE_TRAMPOLINE): Delete ifdef and comments. - * libgcc2.c (__enable_execute_stack): Check for __sysV88__ not - __DOLPHIN__ or sysV88. - -Wed Sep 10 14:58:40 1997 Jim Wilson - - * emit-rtl.c (gen_lowpart_common): For a SUBREG, add in word when - create new subreg. - -Wed Sep 10 15:19:22 1997 Jeffrey A Law (law@cygnus.com) - - * config.sub: Accept 'amigados' for backward compatibility. - -Wed Sep 10 14:05:08 1997 H.J. Lu (hjl@gnu.ai.mit.edu) - - * Makefile.in (testsuite/site.exp): New target. - (check-gcc, check-g++): Depend on testsuite/site.exp. - Don't stop for failure. - -Wed Sep 10 12:59:57 1997 Jason Merrill - - * expr.c (expand_builtin): Only support __builtin_dwarf_fp_regnum() - if DWARF2_UNWIND_INFO. - -Wed Sep 10 11:49:20 1997 Jason Merrill - - Add support for exception handling using DWARF 2 frame unwind info. - Currently works on SPARC and MIPS, and almost on x86. - - * libgcc2.c (get_reg, put_reg, get_return_addr, put_return_addr, - next_stack_level, in_reg_window): Helper fns. - (__throw): Implement for DWARF2_UNWIND_INFO. - - * expr.c (expand_builtin): Handle builtins used by __throw. - * tree.h (enum built_in_function): Add builtins used by __throw. - * c-decl.c (init_decl_processing): Declare builtins used by __throw. - * dwarf2out.c (expand_builtin_dwarf_fp_regnum): Used by __throw. - * except.c (expand_builtin_unwind_init): Hook for dwarf2 __throw. - (expand_builtin_extract_return_addr): Likewise. - (expand_builtin_frob_return_addr): Likewise. - (expand_builtin_set_return_addr_reg): Likewise. - (expand_builtin_eh_stub): Likewise. - (expand_builtin_set_eh_regs): Likewise. - (eh_regs): Choose two call-clobbered registers for passing back values. - - * frame.c, frame.h: New files for parsing dwarf 2 frame info. - * Makefile.in (LIB2ADD): New variable. Add $(srcdir)/frame.c. - (libgcc2.a): Use it instead of $(LIB2FUNCS_EXTRA) $(LANG_LIB2FUNCS) - (stmp-multilib): Likewise. - ($(T)crtbegin.o, $(T)crtend.o): Add -fno-exceptions. - - * except.c: #include "defaults.h". - (exceptions_via_longjmp): Default depends on DWARF2_UNWIND_INFO. - (emit_throw): Don't defeat assemble_external if DWARF2_UNWIND_INFO. - (register_exception_table_p): New fn. - (start_eh_unwinder): Don't do anything if DWARF2_UNWIND_INFO. - (end_eh_unwinder): Likewise. - - * crtstuff.c: Wrap .eh_frame section, use EH_FRAME_SECTION_ASM_OP, - call __register_frame and __deregister_frame as needed. - * varasm.c (eh_frame_section): New fn if EH_FRAME_SECTION_ASM_OP. - * dwarf2out.c (EH_FRAME_SECTION): Now a function-like macro. Check - EH_FRAME_SECTION_ASM_OP. - * sparc/sysv4.h (EH_FRAME_SECTION_ASM_OP): Define. - * mips/iris6.h (EH_FRAME_SECTION_ASM_OP): Define. - (LINK_SPEC): Add __EH_FRAME_BEGIN__ to hidden symbols. - - * dwarf2out.c (output_call_frame_info): If no support for - EXCEPTION_SECTION, mark the start of the frame info with a - collectible tag. - * collect2.c (frame_tables): New list. - (is_ctor_dtor): Recognize frame entries. - (scan_prog_file): Likewise. - (main): Pass -fno-exceptions to sub-compile. Also do collection - if there are any frame entries. - (write_c_file_stat): Call __register_frame_table and - __deregister_frame as needed. - (write_c_file_glob): Likewise. - - * defaults.h (DWARF2_UNWIND_INFO): Default to 1 if supported. - Also require unaligned reloc support. - * sparc.h (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP, - UNALIGNED_DOUBLE_INT_ASM_OP): Define here. - * sparc/sysv4.h: Not here. - - * toplev.c (compile_file): Call dwarf2out_frame_{init,finish}. - * dwarf2out.c (dwarf2out_init): Don't call dwarf2out_frame_init. - (dwarf2out_finish): Don't call dwarf2out_frame_finish. - - * libgcc2.c (L_eh): Reorganize, moving code shared by different - EH implementations to the top. - (find_exception_handler): Split out. Start from 0. Compare against - end with >=. - (__find_first_exception_table_match): Use it. - * except.c (output_exception_table): Don't do anything if there's - no table. Don't output a first entry of zeroes. - (eh_outer_context): Adjust properly. - (add_eh_table_entry): Use xrealloc. - * toplev.c (compile_file): Just call output_exception_table. - -Wed Sep 10 11:30:36 1997 Jason Merrill - - * i386.c (ix86_prologue): Add dwarf2 support for !do_rtl case. - -Wed Sep 10 08:17:10 1997 Torbjorn Granlund - - * except.c (eh_outer_context): Do masking using expand_and. - -Wed Sep 10 01:38:30 1997 Doug Evans - - Add port done awhile ago for the ARC cpu. - * arc/arc.h: New file. - * arc/arc.c: New file. - * arc/arc.md: New file. - * arc/initfini.c: New file. - * arc/lib1funcs.asm: New file. - * arc/t-arc: New file. - * arc/xm-arc.h: New file. - * ginclude/va-arc.h: New file. - * ginclude/stdarg.h: Include va-arc.h ifdef __arc__. - * ginclude/varargs.h: Likewise. - * Makefile.in (USER_H): Add va-arc.h. - * configure.in (arc-*-elf*): Recognize. - * longlong.h: Add ARC support. - -Wed Sep 10 01:32:54 1997 Jeffrey A Law (law@cygnus.com) - - * expr.c (clear_storage): Use CONST0_RTX instead of const0_rtx. - when clearing non-BLKmode data. - -Wed Sep 10 00:29:29 1997 Manfred Hollstein - - * m88k/sysv3.h (INITIALIZE_TRAMPOLINE): Define. - * libgcc2.c (__enable_execute_stack): Provide for sysV88 too. - - * xm-m88k.h (USG): Only define if it hasn't already been defined. - - * Makefile.in (risky-stage1): Delete gratuitous whitespace. - - * Makefile.in (clean): Delete libgcc1-test. - - * Makefile.in (INSTALL): cd to $(srcdir) before running texinfo. - -Tue Sep 9 17:07:36 1997 Stan Cox - - * m88k.c (m88k_expand_prologue): Set MEM_IN_STRUCT_P of va_list - template. - -Tue Sep 9 09:50:02 1997 Richard Kenner - - * dwarf2out.c (output_call_frame_info): Call named_section. - -Tue Sep 9 09:12:17 1997 Jeffrey A Law (law@cygnus.com) - - * haifa-sched.c (print_value): Fix last change. - -Tue Sep 9 01:30:37 1997 Jason Merrill - - * mips.h (DWARF_FRAME_REGNUM): Use the same numbering regardless of - write_symbols. - -Mon Sep 8 16:32:43 1997 Jason Merrill - - * mips.c (function_prologue): Set up the CFA when ABI_32. - - * sparc.c (save_regs): Check dwarf2out_do_frame instead of DWARF2_DEBUG - for dwarf2 unwind info. - (output_function_prologue, sparc_flat_output_function_prologue): Same. - - * final.c (final_end_function): Check dwarf2out_do_frame instead - of DWARF2_DEBUG for dwarf2 unwind info. - (final_scan_insn): Likewise. - (final_start_function): Likewise. Initialize dwarf2 frame debug here. - (final): Not here. - - * expr.c (expand_builtin_return_addr): Only SETUP_FRAME_ADDRESSES if - count > 0. - - * varasm.c (exception_section): Check EXCEPTION_SECTION first. - -Mon Sep 8 15:15:11 1997 Nick Clifton - - * v850.h (ASM_SPEC): Pass on target processor. - (CPP_PREDEFINES): Only define if not already specified. - (TARGET_VERSION): Only define if not already specified. - (MASK_CPU, MASK_V850, MASK_DEFAULT): Bits to specify target - processor. - (EXTRA_SWITCHES): Extra entries in the switches array. - (TARGET_DEFAULT): Set default target processor. - -Mon Sep 8 18:26:35 1997 Jim Wilson - - * m68k.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): In MOTOROLA - cases, add %# and %/, and add : to make them into extended asms. - -Sun Sep 7 23:57:50 1997 Weiwen Liu - - * alias.c (init_alias_analysis): Clean up incompatible pointer - type warning in bzero. - * regmove.c (regmove_optimize): Likewise. - * haifa-sched.c (find_rgns): Likewise. - - * haifa-sched.c (print_value): Clean up ptr->int cast - warnings. - -Sun Sep 7 23:18:32 1997 Fred Fish - - * INSTALL: Change 'amigados' to 'amigaos' to match current usage. - * install.texi (Configurations): Likewise. - * config.sub: Likewise. - -Sun Sep 7 22:56:56 1997 Weiwen Liu (liu@hepvms.physics.yale.edu) - - * Makefile.in (sdbout.o): Depend on insn-config.h. - -Sun Sep 7 18:44:50 1997 Jim Wilson - - * m68k/m68k.h (TARGET_SWITCHES): For 68000, 68302, subtract MASK_68881. - For 68303, 68332, cpu32, subtract MASK_68040_ONLY. - -Sun Sep 7 18:30:46 1997 Jason Merrill - - * dwarf2out.c (dwarf2out_frame_debug): Assume that in a PARALLEL - prologue insn, only the first elt is significant. - (output_call_frame_info): For exception handling, always use 4-byte - fields as specified by the dwarf2 spec. - Don't skip trivial FDEs. - -Sun Sep 7 14:19:39 1997 Jeffrey A Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sun Sep 7 14:17:36 1997 Torbjorn Granlund (tege@pdc.kth.se) - - * expmed.c (expand_divmod): Make op1_is_pow2 depend on unsignedp - for negative constants. Promote EXACT_DIV_EXPR to TRUNC_DIV_EXPR - when op1_is_pow2. - -Sun Sep 7 13:46:46 1997 Jeffrey A Law (law@cygnus.com) - - * final.c (shorten_branches): During first pass, assume worst - possible alignment for ADDR_VEC and ADDR_VEC_DIFF insns. - - * Makefile.in (distclean): Remove various things left around - by running the testsuite. - -Sun Sep 7 13:16:06 1997 Manfred Hollstein - - * configure.in (out_file): Emit definition to config.status in order - to have a defined value for configure.lang. - * configure: Re-built. - -Sun Sep 7 09:59:08 1997 Jan-Jaap van der Heijden (J.J.vanderHeijden@student.utwente.nl) - - * configure.in: Make symlink to as-new rather than as.new. Similarly - for ld-new. - * configure: Rebuilt. - -Fri Sep 5 16:54:55 1997 Jim Wilson - - * profile.c (output_func_start_profiler): Set DECL_EXTERNAL to zero. - -Fri Sep 5 16:16:44 1997 Christian Kuehnke - - * sparc/sparc.md: Add ultrasparc scheduling support. - * sparc/sparc.h (RTX_COSTS): For MULT give v9 a cost of 25 insns. - -Fri Sep 5 14:04:59 1997 Philippe De Muyter - - * integrate.c (save_for_inline_copying): Use 0, not NULL_PTR, - as initial value for real_label_map. - (copy_for_inline): Likewise. - -Fri Sep 5 13:36:44 1997 J"orn Rennecke - - * sched.c (update_flow_info): When looking if to set found_split_dest - or found_orig_dest, look at all parts of a PARALLEL. - * haifa-sched.c (update_flow_info): Likewise. - -Fri Sep 5 10:08:44 1997 Jeffrey A Law (law@cygnus.com) - - * v850: New directory for v850 port. - * v850/lib1funcs.asm: New file. - * t-v850, v850.c, v850.h, v850.md, xm-v850.h: New files. - * ginclude/va-v850.h: New file. - * ginclude/varargs.h, ginclude/stdarg.h: Include va-mn10200.h. - * configure.in (mn10200-*-*): New target. - * configure: Rebuilt. - * config.sub: Handle v850-elf. - * Makefile.in (USER_H): Add va-mn10200.h. - * invoke.texi: Document v850 stuff. - -Fri Sep 5 09:37:50 1997 Jim Wilson (wilson@cygnus.com) - - * sdbout.c (plain_type_1, case ARRAY_TYPE): Verify that TYPE_DOMAIN - has integer TYPE_{MAX,MIN}_VALUE before using them. - - * m68k/m68k.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Add - __HPUX_ASM__ versions. - -Fri Sep 5 09:08:44 1997 Jeffrey A Law (law@cygnus.com) - - * install.sh: Delete duplicate install script. - -Thu Sep 4 23:14:27 1997 Stan Cox (coxs@dg-rtp.dg.com) - - * reg-stack.c (subst_stack_regs): Pop the stack register for a - computed goto which sets the same stack register. - - * reg-stack.c (compare_for_stack_reg): Swap only if the source and - destination are both on the regstack. - (subst_stack_regs_pat): Put the destination at the top of the regstack. - -Thu Sep 4 15:02:27 1997 Jim Wilson - - * mips.md (nonlocal_goto_receiver): Define. - - * profile.c (output_arc_profiler): Check next_insert_after for non - NULL before deferencing it. - - * i386/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define to -fPIC. - -Thu Sep 4 14:51:57 1997 Jeffrey A Law (law@cygnus.com) - - * i386.h (CPP_CPU_DEFAULT): Avoid using #elif. - -Thu Sep 4 15:01:49 1997 Michael Meissner - - * toplev.c (rest_of_compilation): For passes starting with - flow_analysis, use print_rtl_with_bb instead of print_rtl. - - * print-rtl.c (print_rtl_single): Print a single rtl value to a - file. - - * flow.c (print_rtl_with_bb): Print which insns start and end - basic blocks. For the start of a basic block, also print the live - information. - -Thu Sep 4 11:51:43 1997 Jim Wilson - - * toplev.c (main): Change #elif to #else/#ifdef. - - * tlink.c: Include ctype.h. - * ginclude/va-mips.h: Add _VA_MIPS_H_ENUM ifdef/define/endif. - -Thu Sep 4 11:17:16 1997 Mikeael Meissner (meissner@cygnus.com) - - * bitmap.c: Conditionally include stdlib.h. - (free): Provide a declaration if NEED_DECLARATION_FREE. - -Thu Sep 4 09:58:53 1997 Joel Sherrill (joel@OARcorp.com) - - * i960/i960.h: Added default for SUBTARGET_SWITCHES macro. - -Thu Sep 4 09:53:20 1997 Jim Wilson (wilson@cygnus.com) - - * profile.c (output_arc_profiler): Verify next_insert_after is an - INSN before and after skipping a stack pop. - -Thu Sep 4 07:39:19 1997 J"orn Rennecke - - * final.c (shorten_branches): Don't count the lengths of deleted - instructions. - -Thu Sep 4 09:43:01 1997 Jeffrey A Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Thu Sep 4 11:04:21 1997 Michael Meissner - - * bitmap.h (EXECUTE_IF_AND_IN_BITMAP): New macro, to iterate over - two bitmaps ANDed together. - (bitmap_print): Declare. - - * bitmap.c (function_obstack): Don't declare any more. - (bitmap_obstack): Obstack for allocating links from. - (bitmap_obstack_init): New static to say whether to initialize - bitmap_obstack. - (bitmap_element_allocate): Use bitmap_obstack to allocate from. - (bitmap_release_memory): Free all memory allocated from - bitmap_obstack. - - * basic-block.h (EXECUTE_IF_AND_IN_REG_SET): New macro, invoke - EXECUTE_IF_AND_IN_BITMAP. - -Wed Sep 3 10:39:42 1997 Jim Wilson - - * alias.c (true_dependence): Address with AND can alias scalars. - (anti_dependence, output_dependence): Likewise. - - * alias.c (true_dependence): Test x for BLKmode, in addition to mem. - -Wed Sep 3 09:28:50 1997 Joel Sherrill (joel@OARcorp.com) - - * i386/go32-rtems.h, i386/rtems.h, i960/rtems.h, m68k/rtems.h, - mips/rtems64.h, pa/rtems.h, rs6000/rtems.h, sh/rtems.h, - sparc/rtems.h (subtarget_switches): Removed SUBTARGET_SWITCHES - definitions. Use -qrtems instead of -mrtems. - -Wed Sep 3 09:05:41 1997 Robert Lipe (robert@dgii.com) - - * xm-sco5.h (sys_siglist): Define. - (SYS_SIGLIST_DECLARED): Likewise. - -Tue Sep 2 23:33:33 1997 Jeffrey A Law (law@cygnus.com) - - * expr.c (convert_move): Handle truncation from TQFmode to QFmode. - -Wed Sep 3 02:09:30 1997 Torbjorn Granlund - - * except.c (eh_outer_context): Expand masking operation using - expand_binop. - -Tue Sep 2 18:09:39 1997 Jim Wilson - - * alpha.md (floatdisf2-1): New pattern. - -Tue Sep 2 18:41:55 1997 Jeffrey A Law (law@cygnus.com) - - * xm-svr4.h (SYS_SIGLIST_DECLARED): Define. - * xm-news.h (SYS_SIGLIST_DECLARED): Likewise. - * xm-sysv4.h (SYS_SIGLIST_DECLARED): Likewise. - * gcc.texi: Note that if you define sys_siglist that you should - also define SYS_SIGLIST_DECLARED. - - * mn10200.h (INITIALIZE_TRAMPOLINE): PC relative instructions - are relative to the next instruction, not the current instruction. - -Tue Sep 2 14:22:43 1997 Jim Wilson - - * local-alloc.c (contains_replace_regs): New function. - (update_equiv_regs): When adding a REG_EQUIV note for a set of a MEM, - verify that there is no existing REG_EQUIV note, and add a call to - contains_place_regs. - -Tue Sep 2 12:48:11 1997 H.J. Lu (hjl@gnu.ai.mit.edu) - - * config/alpha/elf.h (CPP_PREDEFINES): Add -D__PIC__ -D__pic__. - (STARTFILE_SPEC): Always use crtbegin.o%s. - (ENDFILE_SPEC): Always use crtend.o%s. - -Tue Sep 2 12:00:36 1997 Jim Wilson - - * alpha/alpha.h (PREFERRED_RELOAD_CLASS): Return NO_REGS if NO_REGS - is passed in. - * emit-rtl.c (gen_lowpart_common): Add code to convert CONST_INT to - SFmode for 64 bit hosts. - -Tue Sep 2 13:42:38 1997 Paul N. Hilfinger - - * fixincludes: Permits spaces between # and define. Discard C++ - comments in sys/pci.h on HP/UX 10.20. - -Mon Sep 1 22:13:18 1997 Jeffrey A Law (law@cygnus.com) - - * version.c: Bump for snapshot. - - * pa.c (restore_unscaled_index_insn_codes): New function. - (record_unscaled_index_insn_codes): Likewise. - (output_function_prologue): Call restore_unscaled_index_insn_codes. - (output_function_epilogue): Free memory for unscaled_index_insn_codes. - (pa_reorg): Call record_unscaled_index_insn_codes. - - * haifa-sched.c (move_insn): Handle notes correctly for insns - with SCHED_GROUP_P set. - -Mon Sep 1 16:58:57 1997 H.J. Lu (hjl@gnu.ai.mit.edu) - - * alpha/xm-linux.h (USE_BFD): Undef before define. - -Mon Sep 1 16:25:34 1997 Jim Wilson - - * cse.c (cse_insn): Don't record BLKmode values. - -Mon Sep 1 11:25:47 1997 Stephen Williams (steve@icarus.icarus.com) - - * i960.h (LINK_SPEC): Handle "-mjX" and "-mrp" switches. - -Mon Sep 1 08:29:46 1997 Jeffrey A Law (law@cygnus.com) - - * cccp.c (sys_errlist): Remove special 4.4bsd declaration. - * collect2.c (sys_errlist): Likewise. - * cpplib.c (sys_errlist): Likewise. - * gcc.c (sys_errlist): Likewise. - * protoize (sys_errlist): Likewise. - * configure.in: Check for strerror. - * xm-freebsd.h (HAVE_STRERROR): Remove definition. - * xm-gnu.h (HAVE_STRERROR): Likewise. - * xm-linux.h (HAVE_STRERROR): Likewise. - * xm-netbsd.h (HAVE_STRERROR): Likewise. - * xm-bsd386.h (HAVE_STRERROR): Likewise. - * xm-cygwin32.h (HAVE_STRERROR): Likewise. - * xm-dos.h (HAVE_STRERROR): Likewise. - * xm-mingw32.h (HAVE_STRERROR): Likewise. - * xm-pa.h (HAVE_STRERROR): Likewise. - * xm-papro.h (HAVE_STRERROR): Likewise. - * xm-sysv4.h (HAVE_STRERROR): Likewise. - * configure, config.in: Rebuilt. - - * Makefile.in: Add several missing "else true" clauses. - - * collect2.c: Change DONT_DECLARE_SYS_SIGLIST to SYS_SIGLIST_DECLARED. - * mips-tfile.c: Likewise. - * gcc.texi: DONT_DECLARE_SYS_SIGLIST: Remove docs. - * xm-linux.h (DONT_DECLARE_SYS_SIGLIST): Delete definition. - * xm-freebsd.h, xm-bsd386.h, xm-sysv4.h, xm-sol2.h: Likewise. - * configure.in: Check for sys_siglist declaration. - * configure, config.in: Rebuilt. - -Mon Sep 1 08:04:07 1997 Joel Sherrill (joel@OARcorp.com) - - * i386/go32-rtems.h, i386/rtems.h, i960/rtems.h, - m68k/rtems.h, mips/rtems64.h, pa/rtems.h, rs6000/rtems.h, - sparc/rtems.h (subtarget_switches): Added -mrtems as a switch. - * i960/i960.h: Added SUBTARGET_SWITCHES macro. - * rs6000/sysv4.h (extra_subtarget_switches): Added new - macro EXTRA_SUBTARGET_SWITCHES. - * configure.in (sh*-*-rtems*): New target. - * sh/rtems.h: New file. - * sh/sh.h: Added SUBTARGET_SWITCHES macro. - * configure: Rebuilt. - -Sat Aug 30 22:54:26 1997 Jim Wilson - - * unroll.c (calculate_giv_inc): Handle increment with code PLUS. - -Sat Aug 30 10:49:46 1997 David Edelsohn - - * rs6000.md: Make DF fused-add operations pay attention to - -mno-fused-add. - -Fri Aug 29 19:19:54 1997 Jim Wilson - - * i386/xm-sysv4.h (DONT_DECLARE_SYS_SIGLIST): Define. - -Fri Aug 29 16:13:51 1997 Jeffrey A Law (law@cygnus.com) - - * pa.md (reload_peepholes): Make sure operand is a REG before - examining REGNO. Allow general registers too. - -Fri Aug 29 11:42:04 1997 Jim Wilson - - * varasm.c (mark_constants): Don't look inside CONST_DOUBLEs. - -Fri Aug 29 09:33:20 1997 Philipp Thomas (kthomas@lxi165.gwdg.de) - - * dwarf2out.c (build_abbrev_table): Use xrealloc, not xmalloc - to reallocate abbrev_die_table. - -Thu Aug 28 15:14:46 1997 Jim Wilson - - * m68k/m68k.md (iorsi_zexthi_ashl16): Disable. - -1997-08-27 Andreas Schwab - - * Makefile.in (config.status): Depend on version.c. - - * expr.h (insn_gen_function): Reenable prototype. - - * expr.c (move_by_pieces_1, clear_by_pieces_1): Fix prototype of - first parameter. - -Thu Aug 28 13:01:43 1997 Jim Wilson - - * i386.c (ix86_expand_epilogue): Emit blockage instruction when pic. - -Thu Aug 28 07:03:15 1997 Jeffrey A Law (law@cygnus.com) - - * version.c: Bump for latest snapshot. - - * bc-optab.c: Conditionally include stdlib.h. - (free): Provide a declaration if NEED_DECLARATION_FREE. - * tree.c (free): Provide a declaration if NEED_DECLARATION_FREE. - * rtl.h (free): Remove declaration. - * tree.h (free): Remvoe declaration. - - * configure: Rebuilt. - -Wed Aug 27 21:32:20 1997 Jeffrey A Law (law@cygnus.com) - - * flags.h (flag_move_all_movables): Declare. - (flag_reduce_all_givs): Likewise. - * loop.c (move_movables): Handle flag_move_all_movables. - (strength_reduce): Handle flag_reduce_all_givs. - * toplev.c (flag_move_all_movables): Define. - (flag_reduce_all_givs): Likewise. - (f_options): Add -fmove-all-movables and -freduce-all-givs. - * invoke.texi: Document new options, including alias stuff that - wasn't included last time. - -Wed Aug 27 18:08:51 1997 Bob Manson (manson@cygnus.com) - - * t-h8300: Use TARGET_LIBGCC2_CFLAGS instead of LIBGCC2_CFLAGS. - * t-mn10200: Likewise. - * t-vxsparc: Likewise. - * t-vxworks68: Likewise. - * t-vxworks960: Likewise. - * t-vx29k: Likewise. - -Wed Aug 27 16:35:29 1997 Richard Henderson - - * alpha/xm-alpha.h (alloca): Define alloca to builtin_alloca for GNUC - if not already defined, and USE_C_ALLOCA not defined. - -Wed Aug 27 16:08:43 1997 Jim Wilson - - * config.guess: Replace with script that uses ../config.guess. - - * config/alpha/elf.h (DEFAULT_VTABLE_THUNKS): New. Defined as 1 - if USE_GNULIBC_1 is not defined. - -Wed Aug 27 15:49:12 1997 Richard Henderson - - * alpha/elf.h (LINK_SPEC): Conditionalize on USE_GNULIBC_1. - * config.guess: Recognize alpha-linux-gnulibc1. - * configure.in (alpha-*-linux-gnulibc1): New target. - (alpha-*-linux-gnu*): Don't build crtbegin/end. - -Wed Aug 27 11:52:58 1997 Jim Wilson - - * m68k.md (iorsi3_internal): Readd ! TARGET_5200 check lost in - last change. - -Wed Aug 27 01:56:18 1997 Doug Evans - - * loop.c (combine_movables): Earlier insns don't match later ones. - -Wed Aug 27 01:24:25 1997 H.J. Lu (hjl@gnu.ai.mit.edu) - - * config/linux.h (CC1_SPEC): Define it only if not defined. - - * config/m68k/linux.h (CC1_SPEC): Undefine it before include - - - * config/linux.h (DEFAULT_VTABLE_THUNKS): New. Defined as 1 if - USE_GNULIBC_1 is not defined. - - * config/rs6000/linux.h (DEFAULT_VTABLE_THUNKS): New. Defined as 1. - - * config/sparc/linux.h (DEFAULT_VTABLE_THUNKS): New. Defined - as 1 if USE_GNULIBC_1 is not defined. - -Wed Aug 27 00:49:14 1997 Jeffrey A Law (law@cygnus.com) - - * reorg.c (dbr_schedule): Allow current_function_return_rtx - to be something other than a REG. - * function.c (expand_function_end): Fix current_function_return_rtx - if it was a pseudo. - - * t-freebsd (USER_H): Include EXTRA_HEADERS and LANG_EXTRA_HEADERS. - * x-netbsd: Likewise. - * x-dgux (USER_H): Include EXTRA_HEADERS and LANG_EXTRA_HEADERS. - (INSTALL_HEADERS): Delete. - * x-dguxbcs: Likewise. - * x-hp3bsd44: Likewise. - * x-pa: Likewise. - -Wed Aug 27 00:30:00 1997 Bernd Schmidt - - * i386.md (pop): pop increments the stack pointer. - (prologue_set_stack_ptr): New pattern. - * i386.c (ix86_expand_prologue): Use prologue_set_stack_ptr - instead of subsi3. - -Tue Aug 26 18:50:32 1997 Jim Wilson - - * reload.c (find_reloads, case '0'): Reject matching a non-offsettable - address where an offsettable address is required. - -Tue Aug 26 17:54:56 1997 Michael P. Hayes (michaelh@ongaonga.chch.cri.nz> - - * loop.c (check_final_value): Don't miss a biv increment in a - parallel. - -Tue Aug 26 12:03:49 1997 Jim Wilson (wilson@cygnus.com) - - * dwarfout.c (dwarfout_file_scope_decl, case TYPE_DECL): Check - TYPE_DECL_IS_STUB instead of DECL_NAME. - -Mon Aug 25 23:27:10 1997 H.J. Lu (hjl@gnu.ai.mit.edu) - - * objc/Make-lang.in ($(OBJC_O)): Also depend on cc1obj. - -Mon Aug 25 23:27:10 1997 Jim Meyering - - * objc/Make-lang.in ($(OBJC_O)): Also depend on $(GCC_PASSES). - -Mon Aug 25 13:12:24 1997 Jeffrey A Law (law@cygnus.com) - - * haifa-sched.c (find_pre_sched_live): Remove #if 0 code. - (find_post_sched_live): Likewise. - - * haifa-sched.c (schedule_block): Remove old code to get arguments - from hard regs into pseudos early. - -Mon Aug 25 08:55:00 1997 Jeffrey A Law (law@cygnus.com) - - * version.c: Bump for new snapshot. - - * local-alloc.c (update_equiv_regs): All the target to reject - promotion of some REG_EQUAL to REG_EQUIV notes. - * pa.h (DONT_RECORD_EQUIVALENCE): Define. - - * pa.c (secondary_reload_class): (mem (mem ... )) does not need - secondary reloads. - - * pa.c (hppa_builtin_saveregs): Emit a blockage insn after the - store of the argument registers. - -Mon Aug 25 08:39:02 1997 Craig Burley (burley@gnu.ai.mit.edu) - - * fold-const.c (multiple_of_p): New function. - (fold): Turn some cases of *_DIV_EXPR into EXACT_DIV_EXPR. - -Mon Aug 25 01:47:41 1997 Jeffrey A Law (law@cygnus.com) - - * expr.h (insn_gen_function): Temporarily remove prototype. - -Sun Aug 24 17:22:21 1997 Jim Wilson - - * Makefile.in (install-info): Don't cd into srcdir. Add srcdir to - filenames. Use sed to extract base filename for install. - -Sat Aug 23 18:19:40 1997 John F. Carr - - * unroll.c (find_splittable_givs): Only share if two givs have the - same add and multiply values. - -Sat Aug 23 14:36:27 1997 Jim Wilson - - * m68k/next.h (GO_IF_INDEXABLE_BASE): Fix typo in undef. - * m68k/m68kemb.h (LIB_SPEC): Add missing comment end before it. - -Sat Aug 23 00:18:22 1997 Jeffrey A Law (law@cygnus.com) - - * pa.c (pa_reorg): Always put begin_brtab and end_brtab insns - around branch tables. - * pa.md (begin_brtab, end_brtab): Only emit the .begin_brtab - and .end_brtab directives if TARGET_GAS. - -Fri Aug 22 14:05:55 1997 Jim Wilson - - * alias.c (true_dependence): Pass x_addr not x to varies. - - * acconfig.h (NEED_DECLARATION_CALLOC): Add. - * configure.in: Add GCC_NEED_DECLARATION call for calloc. - * rs6000/xm-rs6000.h (malloc, realloc, calloc, free): Delete - declarations. - * config.in, configure: Regenerate. - -Thu Aug 21 23:52:16 1997 John F. Carr - - * alias.c (find_base_value): Improve handling of PLUS, MINUS, and - LO_SUM. - (record_set): Handle LO_SUM like PLUS. - (init_alias_analysis): When following chains of base addresses, - do not stop on reaching a hard register. - -Thu Aug 21 20:17:37 1997 Jeffrey A Law (law@cygnus.com) - - * version.c: Bump for new snapshot. - -Thu Aug 21 17:28:00 1997 Jim Wilson - - * alpha.h (ARCH_ASM_FILE_START): Define. - (ASM_FILE_START): Use ARCH_ASM_FILE_START. - * osf12.h, osf2or3.h (ARCH_ASM_FILE_START): Redefine to null string. - -Thu Aug 21 10:22:19 1997 Jeffrey A Law (law@cygnus.com) - - * Makefile.in (install-common): Put gcov comment at start of line. - -Wed Aug 20 22:47:33 1997 Jeffrey A Law (law@cygnus.com) - - * alias.c (init_alias_analysis): When simplifying the reg_base_value - array, simplify entries for hard registers too. - -Wed Aug 20 12:35:47 1997 Dave Love - - * dwarf2.h (enum dwarf_call_frame_info): Remove trailing comma from - list. - -Wed Aug 20 11:58:33 1997 Jim Wilson - - * stmt.c (start_cleanup_deferral, end_cleanup_deferral): Test - block_stack before dereferencing it. - -Wed Aug 20 11:57:11 1997 Michael Meissner - - * rs6000.h (ISSUE_RATE): Define instead of MACHINE_issue_rate. - -Tue Aug 19 17:10:56 1997 Jason Merrill - - * cplus-dem.c: Add 'extern' to prepends_underscore. - -Tue Aug 19 09:34:57 1997 Jeffrey A Law (law@cygnus.com) - - * haifa-sched.c (ISSUE_RATE): Renamed from MACHINE_issue_rate. - (get_issue_rate): Delete. - * pa.h (ISSUE_RATE): Define. - - * configure.in: Turn on haifa by default for the PA. - * configure: Rebuilt. - * pa.c (override_options): Accept -mschedule=7200 option. - (pa_adjust_cost): No longer need to scale costs for newer - processors. - * pa.h (enum processor_type): Add PROCESSOR_7200. - * pa.md: Revamp scheduling parameters to work better with - haifa. Add scheduling parameters for the 7200. - - * haifa-sched.c (move_insn): Reemit notes for SCHED_GROUP_P - insns too. - (schedule_block): When adjusting basic_block_{head,end}, account - for movement of SCHED_GROUP_P insns too. - - * haifa-sched.c (debug_dependencies): Fix thinko. - - * Makefile.in (EXPECT, RUNTEST, RUNTESTFLAGS): Define. - (site.exp, check, check-g++, check-gcc): New targets. - - * haifa-sched.c: Make lots of variables static. - -Tue Aug 19 07:18:34 1997 H.J. Lu (hjl@gnu.ai.mit.edu) - - * expr.h, real.h: Finish prototyping. - -Mon Aug 18 21:49:02 1997 Jim Wilson - - * reload.c (find_reloads): Add code to convert RELOAD_FOR_OPADDR_ADDR - reloads to RELOAD_FOR_OPERAND_ADDRESS reloads. - * reload1.c: Undo bugfix from Aug 11. - -Mon Aug 18 17:39:02 1997 Mike Meissner - - * configure.in ({powerpc,rs6000}*-*-*, --with-cpu): Remove single - quotes around the name. - * configure: Regenerate. - -Mon Aug 18 13:46:47 1997 Jim Wilson - - * Makefile.in (stmp-multilib-sub): Fix typo in last change. - -Thu Aug 7 10:33:13 1997 Manfred Hollstein - - * Makefile.in (sub-makes): Pass the current value of LANGUAGES down - to sub-makes to avoid building more passes than the user might have - requested on the command line. - -Sun Aug 17 15:42:17 1997 Dave Love (d.love@dl.ac.uk) - - * configure.in: Expurgate `broken_install' (install is - autoconfed). - - * configure.lang: Substitute autoconfed ${INSTALL} (not currently - relevant). - -Sat Aug 16 01:08:12 1997 Jeffrey A Law (law@cygnus.com) - - * loop.c (is_power_of_2, is_conditional_branch): Delete unused - functions and declarations. - (analyze_loop_iterations): Use condjump_p. - (insert_bct): Likewise. Use exact_log2. - -Fri Aug 15 23:48:32 1997 Jeffrey A Law (law@cygnus.com) - - * haifa-sched.c (find_post_sched_live): Call FREE_REG_SET as needed. - (schedule_region): Likewise. - (schedule_insns): Likewise. - - * PROJECTS: Update with Haifa stuff. - -Fri Aug 15 12:49:56 1997 Jeffrey A Law (law@cygnus.com) - - * version.c: Change the version string to look like: - egcs-2.90.00 970814 (gcc2-970802 experimental). - - * loop.c (is_conditional_branch): Make definition match declaration. - - * gcc.c: Take out experimental snapshot warning message. - -Fri Aug 15 13:43:39 1997 Michael Meissner - - * haifa-sched.c (debug_dependencies): Use GET_NOTE_INSN_NAME to - print out the names of the notes. Print out the name of the insn - that is not a note, and not an {,CALL_,JUMP_}INSN. - -Wed Aug 13 17:32:38 1997 Jason Merrill - - * expr.c (expand_expr, case TARGET_EXPR): Call mark_addressable - again for the slot after we give it RTL. - -Wed Aug 13 01:03:37 1997 Doug Evans - - * configure.in (haifa configury): Fix typo. - * configure: Regenerate. - -Tue Aug 12 10:20:36 1997 Jeffrey A Law (law@cygnus.com) - - * version.c: Bump version to "gcc-3.0.0 970802 experimental". - - * gcc.info*: Rebuilt. - - * COPYING.g77, README.g77: New files. - * real.c (ereal_unto_float, ereal_unto_double): New functions. - * real.h (ereal_unto_float, ereal_unto_double): Declare them. - (REAL_VALUE_UNTO_TARGET_DOUBLE, REAL_VALUE_UNTO_TARGET_SINGLE): Define. - -Mon Aug 11 14:50:55 1997 Jeffrey A Law (law@cygnus.com) - - * Integrate Haifa instruction scheduler. - * Makefile.in (ALL_CFLAGS): Add SCHED_CFLAGS. Prefix all references - to sched with $(SCHED_CFLAGS. - * configure.in: Handle --enable-haifa. - * configure: Rebuilt. - * flags.h: Add new flags for haifa instruction scheduler. - * genattrtab.c (expand_units): For haifa, don't subtract one - when computing blockage. - * toplev.h (flag_schedule_interblock): Haifa scheduler flag. - (flag_schedule_speculative): Likewise. - (flag_schedule_speculative_load): Likewise. - (flag_schedule_speculative_load_dangerous): Likewise. - (flag_schedule_reverse_before_reload): Likewise. - (flag_schedule_reverse_after_reload): Likewise. - (flag_branch_on_count_reg): Likewise. - (f_options): Add Haifa switches. - (main): Turn off some Haifa options if appropriate macro is - defined. Process Haifa switches. - * unroll.c (iteration_info): No longer static, since Haifa - scheduler uses it. - (unroll_loop): Inform HAIFA scheduler about loop unrolling factor. - * unroll.c (unroll_loop): Set loop_unroll_iter, loop_start_value. - * loop.h (loop_unroll_factor, loop_number): Add HAIFA decls. - * loop.h (loop_initial_value,loop_unroll_iter): New globals. - * loop.c (loop_optimize): If HAIFA is defined, allocate additional - storage for the Haifa scheduler. - (mark_loop_jump): If HAIFA defined, set LABEL_OUTSIDE_LOOP_P and - LABEL_NEXTREF. - (strength_reduce): If HAIFA and HAVE_decrement_and_branch_on_count - are defined, call analyze_loop_iterations and insert_bct to use - countdown loops. - (record_giv): Refine test for jumps out of loops if HAIFA is - defined. - (analyze_loop_iterations): New function to identify if we can use - a countdown loop. - (insert_bct): Insert countdown loop. - (instrument_loop_bct): Low level code to insert countdown loop. - (loop_number): Calculate UID of loop. - (indirect_jump_in_function_p): Return true if an indirect jump is - in the function. - (is_power_of_2): Return true if value is a power of 2. - (is_conditional_branch): Return true if insn is a conditional - jump. - (fix_bct_param): Process -fbct-{min,max}-N switches. - (check_bct_param): Return true if loop should be instrumented. - * loop.c (loop_initial_value,loop_unroll_iter): New globals. - (loop_optimize): Initialize. - (get_condition_for_loop): Likewise. - * loop.c (strength_reduce): Inside of code that uses #ifdef - HAVE_decrement_and_branch_on_count code, test it to make sure the - condition is true. - (instrument_loop_bct): Likewise. - * haifa-sched.c: New file. - - * Integrate regmove pass. - * Makefile.in (OBJS): Add regmove.o. - (regmove.o): Add dependencies. - * flow.c (find_use_as_address): No longer static. - * rtl.h (find_use_as_address): Declare. - * toplev.c (regmove_dump, flag_regmove): Define. - (f_options): Add -fregmove. - (regmove_dump_file, regmove_time): Define. - (fatal_insn): Close the regmove dump file. - (compile_file): Initialize regmove_time; open/close the regmove dump - file as needed. Print regmove time as needed. - (rest_of_compilation): Run regmove pass if requested, dump - RTL after regmove if requested. - (main): If -O2 or more, turn on regmove. Handle dump switches. - * regmove.c: New file. - -Mon Aug 11 14:15:02 1997 Jeffrey A Law (law@cygnus.com) - - * Integrate tlink patch from jason@cygnus.com - * gcc.c (SWITCH_TAKES_ARG): Add 'V', 'B' and 'b'. - (process_command): Increment n_switches for them. Don't discard - their args. Validate them. - (main): Escape " marks when creating COLLECT_GCC_OPTIONS. - From Rohan Lenard. - (process_command): Set include_prefixes from COMPILER_PATH. - (main): Set COLLECT_GCC_OPTIONS sooner. - * confiugre.in: Link ../ld/ld.new to collect-ld rather than real-ld. - * tlink.c, hash.c, hash.h: New files. - * Makefile.in (USE_COLLECT2): Always use collect2. - (collect2): Depend on and link in hash.o and tlink.o. - (tlink.o, hash.o): Add dependencies. - -Mon Aug 11 10:04:49 1997 Jeffrey A Law (law@cygnus.com) - - * Integrate alias analysis changes from jfc@mit.edu - * Makefile.in (OBJS): Add alias.o. - (alias.o): Add dependencies. - * alias.c: New file. - * sched.c: Remove alias analysis code. It lives in alias.c now. - (sched_analyze_2): Add new arguments to true_dependence. - (schedule_insns): Always call init_alias_analysis. - * calls.c (expand_call): Note calls to malloc, calloc, and realloc; - mark return value from such functions as a pointer and keep track of - them for alias analysis. If a return value from a function is a - pointer, mark it as such. - * combine.c (distribute_notes): Handle REG_NOALIAS. - * cse.c (struct write_data): Delete. No longer needed. - (invalidate): Don't call set_nonvarying_address_components anymore. - Use true_dependence to decide if an entry should be removed from - the hash table. - (invalidate_memory): Remove WRITES argument, simplify appropriately. - Fix all callers. - (note_mem_written): Similarly for WRITE_PTR argument. - (invalidate_from_clobbers): Similarly for W argument. - (invalidate_for_call): Remove memory elements from the hash table. - (refers_to_mem_p, cse_rtx_addr_varies_p): Deleted. - (cse_rtx_varies_p): New function. Derived from old - cse_rtx_addr_varies_p. - (cse_insn): Remove WRITES_MEMORY and INIT variables and all references. - Don't call note_mem_written anymore. Stack pushes invalidate the stack - pointer if PUSH_ROUNDING is defined. No longer need to call - cse_rtx_addr_varies_p to decide if a MEM should be invalidated. - (skipped_writes_memory): Remove variable. - (invalidate_skipped_set): Simplify and wewrite to use invalidate_memory. - (invalidate_skipped_block): Simplify for new alias analysis code. - (cse_set_around_loop): Likewise. - (cse_main): Call init_alias_analysis. - * flags.h (flag_alias_check, flag_argument_noalias): Declare. - * toplev.c (flag_alias_check, flag_argument_noalias): Define. - (f_options): Add new alias checking arguments. - (main): Set flag_alias_check when optimizing. - * local_alloc (validate_equiv_mem_from_store): Add new arguments - to true_dependence. - (memref_referenced_p): Likewise. - * loop.c (NUM_STORES): Increase to 30. - (prescan_loop): Only non-constant calls set unknown_address_altered. - (invariant_p): Add new arguments to true_dependence. - (record_giv): Initialize unrolled and shared fields. - (emit_iv_add_mult): Call record_base_value as needed. - * loop.h (struct induction): Add unrolled and shared fields. - * unroll.c (unroll_loop): Call record_base_value as needed. - (copy_loop_body): Likewise. - (final_biv_value): Likewise. - (final_giv_value): Likewise. - (find_splittable_regs): Likewise. Only create one new pseudo - if we have multiple address GIVs that were combined with the same - dst_reg GIV. Note when a new register is created due to unrolling. - * rtl.c (reg_note_name): Add REG_NOALIAS. - * rtl.h (enum reg_note): Similarly. - (rtx_varies_p, may_trap_p, side_effects_p): Declare. - (volatile_refs_p, volatile_insn_p, remove_note): Likewise. - (note_stores, refers_to_regno_p, reg_overlap_mentioned_p): Likewise. - (true_dependence, read_dependence, anti_dependence): Likewise. - (output_dependence, init_alias_analysis, end_alias_analysis): Likewise. - (mark_user_reg, mark_reg_pointer): Likewise. - - * Integrate reload bugfix from Wilon which enables the PA port - to bootstrap again. - * reload1.c (reload): Sum needs for both OPADDR_ADDR and - OPERAND_ADDRESS when computing how many registers an insn needs. - (reload_reg_free_p): OPADDR_ADDR and OPERAND_ADDRESS reloads do - conflict. - (reload_reg_free_before_p): Treat OPERAND_ADDRESS reloads just like - OPADDR_ADDR reload. - (reload_reg_reaches_end_p): For RELOAD_FOR_OPADDR_ADDR insns, registers - in reload_reg_use_in_op_addr do not reach the end. - do not reach the end. - (reloads_conflict): RELOAD_FOR_OPADDR_ADDR conflicts with - RELOAD_FOR_OPERAND_ADDRESS. - -Sun Aug 10 12:00:20 1997 Jeffrey A Law (law@cygnus.com) - - * egcs project officially starts. - -Local Variables: -add-log-time-format: current-time-string -End: diff --git a/gcc/ChangeLog.10 b/gcc/ChangeLog.10 deleted file mode 100644 index 83a80fd8664d..000000000000 --- a/gcc/ChangeLog.10 +++ /dev/null @@ -1,16352 +0,0 @@ -2003-12-31 Richard Kenner - - * print-rtl.c (print_rtx): For hard register, write out register - number and register name instead of calling PRINT_REG. - * defaults.h (PRINT_REG): Deleted. - * config/i386/i386.c (print_reg): Remove handling of CODE of -1. - Move comments here from i386.h. - (print_operand, print_operand_address): Call print_reg directly. - * config/i386/i386.h (PRINT_REG): Deleted. - -2003-12-31 Roger Sayle - - * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Define - _INCLUDE_LONGLONG. - -2003-12-31 Zack Weinberg - - * gcc.c (init_spec): Add -lunwind to shared case too if - USE_LIBUNWIND_EXCEPTIONS. - -2003-12-31 Joseph S. Myers - - * doc/include/texinfo.tex: Update to version 2003-12-21.10. - * doc/gcc.texi, doc/gccint.texi: Don't set font for - @def... commands. - * doc/invoke.texi: Don't use empty @opindex. - -2003-12-31 Mark Mitchell - - * c-common.c (c_expand_expr): Remove code to return a value - different from that returned by expand_expr. - * expr.c (store_expr): Use the validity of a target MEM, rather - than checking DECL_RTL (exp), to figure out if a copy is - required. - -2003-12-31 Kazu Hirata - - * config/v850/lib1funcs.asm: Fix comment formatting. - * config/v850/v850.c: Likewise. - * config/v850/v850.h: Likewise. - * config/v850/v850.md: Likewise. - -2003-12-31 Kazu Hirata - - * config/i386/i386.md (*movqi_insv_2): Remove AND in the - set source. - -2003-12-31 Kazuhiro Inaoka - - * config.gcc: Added m32r-linux m32rle-elf and m32le-linux targets. - * doc/invoke.texi: Document -mflush-func, -mflush-trap options. - Also add documentation for -mdebug, -malign-loops, -missue-rate, - and -mbranch-cost options. - * config/m32r/t-linux: New file: m32r-linux support. - * config/m32r/xm-linux.h: Likewise. - * config/m32r/xm-m32r.h: Likewise. - * config/m32r/linux.h: Likewise. - * config/m32r/little.h: New file: Little endian code generation - support. - * config/m32r/m32r-protos.h (m32r_legitimize_pic_address, - m32r_legitimate_pic_operand_p, load_pic_register): Add - prototypes. - * config/m32r/m32r.c (m32r_init): Add options for cache-flush. - (addr24_operand): Changes for PIC code generation. - * config/m32r/m32r.h (LABEL_ALIGN): Define to calculate PNOP - length at labels. - (ASM_SPEC): Add PIC support. - (FUNCTION_PROFILER): New define. - (TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE): Changed to support - trampoline. - (CONDITIONAL_REGISTER_USAGE, CONSTANT_ADDRESS_P, - LEGITIMIZE_ADDRESS, JUMP_TABLES_IN_TEXT_SECTION, - PIC_OFFSET_TABLE_REGNUM, FINALIZE_PIC, LEGITIMATE_PIC_OPERAND_P, - ASM_OUTPUT_ADDR_DIFF_ELT, CASE_VECTOR_MODE): Define for PIC. - (move_src_operand, m32r_compute_frame_size, m32r_expand_prologue, - m32r_finalize_pic): Changes for PIC and profile support. - (global_offset_table, load_pic_register, m32r_legitimate_pic_operand_p, - m32r_legitimize_pic_address): Add for PIC support. - (m32r_file_start): Changed for little-endian-target. - * config/m32r/m32r.md (mvqi, movhi, movsi, movdi, movsf, movdf, - tablejump, tablejump_insn, call, call_value, call_value_via_label): - Changes for PIC. - (pic_load_addr, get_pc, builtin_setjmp_receiver): Added for PIC. - (flush_icache): Changes for cache-flush trap. - -2003-12-30 Kazu Hirata - - * config/i386/i386.h: Remove an unnecessary #undef. - -2003-12-30 Roger Sayle - - * cppfiles.c (pch_open_file): Minor tweak to work-around native - HPPA compiler bug. - -2003-12-30 Kazu Hirata - - * config/rs6000/aix.h: Fix comment formatting. - * config/rs6000/rs6000-modes.def: Likewise. - * config/rs6000/rs6000.c: Likewise. - * config/rs6000/rs6000.h: Likewise. - * config/rs6000/rs6000.md: Likewise. - -2003-12-30 Kazu Hirata - - * config/i386/i386-protos.h: Remove prototype for - const_int_1_operand. - * config/i386/i386.c (const_int_1_operand): Remove. - * config/i386/i386.h (PREDICATE_CODES): Remove - const_int_1_operand. - * config/i386/i386.md: Replace all uses of const_int_1_operand - with const1_operand. - * config/i386/pentium.md: Likewise. - -2003-12-30 Geoffrey Keating - - * doc/tm.texi (PREFERRED_RELOAD_CLASS): Describe use of NO_REGS - with constants. - -2003-12-30 Mark Mitchell - - * stor-layout.c (layout_decl): Turn bitfields into ordinary - fields, even if they are the first field in a structure. - -2003-12-30 Roger Sayle - - * fold-const.c (fold) : Don't require strict type - equality, instead just prevent replacing a COND_EXPR of non-void - type by one of its operands of void type. - -2003-12-30 Andreas Schwab - - * doc/c-tree.texi: Fix @item vs. @itemx. - * doc/cpp.texi: Likewise. - * doc/install.texi: Likewise. - * doc/invoke.texi: Likewise. - -2003-12-30 Nathan Sidwell - - * builtins.c (expand_builtin_apply_args_1): Fix typo in previous - change. - -2003-12-30 Jan Hubicka - - PR target/11936 - * i386.h (CLASS_LIKELY_SPILLED_P): Return true for - FP_TOP_REG/FP_SECOND_REG. - -2003-12-30 Steven Bosscher - - Backport from tree-ssa (relevant changes only): - 2003-12-18 Zdenek Dvorak - - * et-forest.h (et_forest_create, et_forest_delete, - et_forest_add_node, et_forest_add_edge, et_forest_remove_node, - et_forest_remove_edge, et_forest_parent, - et_forest_common_ancestor, et_forest_node_value, - et_forest_enumerate_sons): Declarations removed. - (struct et_node): New. - (et_new_tree, et_free_tree, et_set_father, et_split, et_nca, - et_below): Declare. - * et-forest.c (struct et_forest_occurrence, struct et_forest, - struct et_forest_node): Removed. - (et_forest_create, et_forest_delete, - et_forest_add_node, et_forest_add_edge, et_forest_remove_node, - et_forest_remove_edge, et_forest_parent, - et_forest_common_ancestor, et_forest_node_value, - et_forest_enumerate_sons, splay, remove_all_occurrences, - find_leftmost_node, find_rightmost_node, calculate_value): Removed. - (struct et_occ): New. - (et_nodes, et_occurences): New. - (set_depth, set_depth_add, set_prev, set_next, et_recomp_min, - et_check_occ_sanity, et_check_sanity, et_check_tree_sanity, - record_path_before_1, record_path_before, check_path_after_1, - check_path_after, et_splay, et_new_occ, et_new_tree, - et_free_tree, et_set_father, et_split, et_nca, et_below): New. - * basic-block.h (struct basic_block_def): New field dom. - (struct dominance_info): Type removed. - (calculate_dominance_info, free_dominance_info, - nearest_common_dominator, set_immediate_dominator, - get_immediate_dominator, dominated_by_p, get_dominated_by, - add_to_dominance_info, delete_from_dominance_info, - recount_dominator, redirect_immediate_dominators, - iterate_fix_dominators, verify_dominators): Declarations - changed. - (enum dom_state): New. - (dom_computed): New variable. - (first_dom_son, next_dom_son): Declare. - * dominance.c (struct dominance_info): Removed. - (BB_NODE, SET_BB_NODE): Removed. - (calculate_dominance_info, free_dominance_info, - nearest_common_dominator, set_immediate_dominator, - get_immediate_dominator, dominated_by_p, get_dominated_by, - add_to_dominance_info, delete_from_dominance_info, - recount_dominator, redirect_immediate_dominators, - iterate_fix_dominators, verify_dominators, - debug_dominance_info): Work over new datastructure. Access - dominance datastructures through CFG. - (assign_dfs_numbers, compute_dom_fast_query, first_dom_son, - next_dom_son): New. - * bt-load.c (dom): Variable removed. - (augment_live_range, combine_btr_defs, migrate_btr_def, - migrate_btr_defs, branch_target_load_optimize): Updated for the - new interface for dominance information. - * cfg.c {exit_entry_blocks): Update initializer. - * cfglayout.c (copy_bbs): Removed loops argument. Updated for - the new interface for dominance information. - * cfglayout.h (copy_bbs): Declaration changed. - * cfgloop.c (flow_loop_pre_header_find, flow_loops_cfg_dump, - flow_loop_scan, canonicalize_loop_headers, flow_loops_find): Updated - for the new interface for dominance information. - (flow_loop_scan): Loops argument removed. - (flow_loops_free): Don't release dominators. - * cfgloop.h (struct cfg): Dom field removed. - (flow_loop_scan, loop_split_edge_with, simple_loop_p, - just_once_each_iteration_p, split_loop_bb): Declaration changed. - * cfgloopanal.c (simple_loop_exit_p, simple_increment, - just_once_each_iteration_p, simple_loop_p): Remove loops argument. - Updated for the new interface for dominance information. - * cfgloopmanip.c (remove_bbs, find_path, create_preheader, - split_loop_bb, loopify, duplicate_loop_to_header_edge, - force_single_succ_latches, loop_split_edge_with): Ditto. - * gcse.c (dominators): Variable removed. - (free_code_hoist_mem, compute_code_hoist_data, hoist_code): - Updated for the new interface for dominance information. - * ifcvt.c (post_dominators): Variable removed. - (mark_loop_exit_edges, merge_if_block, find_if_header, - find_cond_trap, find_if_case_1, find_if_case_2, if_convert): - Updated for the new interface for dominance information. - * loop-init.c (rtl_loop_optimizer_init, - rtl_loop_optimizer_finalize): Ditto. - * loop-unroll.c (decide_peel_simple, decide_peel_once_rolling, - decide_peel_completely, decide_unroll_stupid, - decide_unroll_constant_iterations, - decide_unroll_runtime_iterations): Loops argument removed. - Updated for the new interface for dominance information. - (unroll_and_peel_loops, peel_loops_completely, - unroll_loop_runtime_iterations): Updated for the new interface for - dominance information. - * loop-unswitch.c (may_unswitch_on_p, unswitch_loops, - unswitch_single_loop, unswitch_loop): Updated for the new - interface for dominance information. - * predict.c (process_note_predictions, process_note_prediction, - estimate_probability, note_prediction_to_br_prob): Ditto. - * sched-rgn.c (find_rgns, init_regions): Ditto. - * toplev.c (rest_of_handle_branch_prob): Free the dominators. - -2003-12-30 Jan Hubicka - - PR target/13456 - * i386.md (allocate_stack_worker): Use different pattern for pre and - post reload expansion. - (allocate_stack_worker_1, allocate_stack_worker_rex64): Use - match_scratch. - (allocate_stack_worder_1_postreload, - allocate_stack_worker_rex64_postreload): New. - -2003-12-29 Nathan Sidwell - - * builtins.c (expand_builtin_apply_args_1): Add pretend args size - to the virtual incoming args pointer for downward stacks. - -2003-12-29 Roger Sayle - - PR fortran/12632 - * fold-const.c (fold) : Don't fold a constant condition, - if the type of the selected branch doesn't match its' parent. - -2003-12-29 Jan Hubicka - - * coverage.c (read_counts_file): Better error messages; cause corrupted - profiles to produce hard errors, not just warnings - (get_coverage_counts): Similarly. - - * toplev.c (rest_of_handle_loop_optimize): Enable LOOP_AUTO_UNROLL. - -2003-12-29 Phil Edwards - - * doc/cppopts.texi: Use of -idirafter, -iprefix, -iwithprefix, and - -iwithprefixbefore is not discouraged. - -2003-12-28 Mostafa Hagog - - * sbitmap.c (sbitmap_union_of_diff_cg, sbitmap_a_and_b_cg, - sbitmap_a_xor_b_cg): Accumulate "changed" properly. - (sbitmap_not): Zero all bits past n_bit. - -2003-12-27 Zdenek Dvorak - - PR opt/13159 - * cfgloopanal.c (mark_irreducible_loops): Fix the strongly connected - components detection. - * loop-unswitch.c (unswitch_loop): Preserve simple preheaders. - -2003-12-27 Bernardo Innocenti - - * config/m68k/uclinux.h (LIB_SPEC): Add elf2flt magic required for - correct linking of executables using id-based shared libraries. - -2003-12-27 Kazu Hirata - - * config/i386/i386-interix.h: Remove uses of "register" - specifier in declarations of arguments and local variables. - * config/i386/i386.c: Likewise. - * config/i386/i386elf.h: Likewise. - * config/i386/ptx4-i.h: Likewise. - * config/i386/sysv4.h: Likewise. - -2003-12-26 Fariborz Jahanian - Geoffrey Keating - David Edelsohn - - * config/rs6000/rs6000.c (legitimate_offset_address_p): Do not - restrict DFmode and TFmode to word alignment. - * config/rs6000/rs6000.md (movdf_hardfloat64): Use 'o' constraint - for ld/std and order before mr. - -2003-12-26 Andrew Pinski - - * config/darwin.h (LINK_COMMAND_SPEC): Arrange - -fprofile-generate to imply -lgcov. - -2003-12-26 Kazu Hirata - - * config/h8300/h8300.md (ldm_h8300s_2_normal): Use HImode for - addresses. - -2003-12-25 Kazu Hirata - - * config/m32r/m32r.md: Remove a constraint from a splitter. - -2003-12-25 Andrew Pinski - - PR C++/13429, C/11944 - * c-common.c (c_build_qualified_type): Return early when type is - error_mark_node. - (c_apply_type_quals_to_decl): Likewise. - -2003-12-25 Kazu Hirata - - * config/alpha/alpha-modes.def: Fix comment formatting. - * config/alpha/alpha.c: Likewise. - * config/alpha/alpha.h: Likewise. - * config/alpha/elf.h: Likewise. - * config/alpha/lib1funcs.asm: Likewise. - * config/alpha/openbsd.h: Likewise. - * config/alpha/vms-cc.c: Likewise. - * config/alpha/vms-crt0-64.c: Likewise. - * config/alpha/vms-crt0.c: Likewise. - * config/alpha/vms-ld.c: Likewise. - * config/alpha/vms-psxcrt0-64.c: Likewise. - * config/alpha/vms-psxcrt0.c: Likewise. - * config/alpha/vms.h: Likewise. - * config/arc/arc.c: Likewise. - * config/arm/aof.h: Likewise. - * config/arm/arm-modes.def: Likewise. - * config/arm/arm.c: Likewise. - * config/arm/arm.h: Likewise. - * config/arm/arm.md: Likewise. - * config/arm/linux-elf.h: Likewise. - * config/arm/vxworks.h: Likewise. - * config/avr/avr.c: Likewise. - * config/avr/avr.h: Likewise. - -2003-12-24 Kazu Hirata - - * config/xtensa/elf.h: Fix comment formatting. - * config/xtensa/xtensa-protos.h: Likewise. - * config/xtensa/xtensa.c: Likewise. - * config/xtensa/xtensa.h: Likewise. - -2003-12-24 Kazu Hirata - - * config/avr/avr.c: Fix comment formatting. - * config/avr/avr.md: Likewise. - -2003-12-24 Kazu Hirata - - PR target/12721. - * config/avr/avr.c: Include ggc.h. - (tmp_reg_rtx): Declare with GTY. - (zero_reg_rtx): Likewise. - (ldi_reg_rtx): Remove. - (avr_override_options): Initialize zero_reg_rtx and - ldi_reg_rtx. - (avr_init): Remove. - Include gt-avr.h. - * config/avr/avr.h (LDI_REG_REGNO): Remove. - Remove externs for tmp_reg_rtx, zero_reg_rtx, and ldi_reg_rtx. - -2003-12-24 David Edelsohn - - * doc/md.texi: Document PowerPC vector register constraint letter. - -2003-12-23 Mark Mitchell - - * calls.c (expand_call): Recognize calls to "sqrt" and create - corresponding notes. - -2003-12-23 Kaveh R. Ghazi - - * config/mips/mips.c (override_options): Use `inform' instead - of `warning' for -g -mabi=32 and native assembler. - - * config/mips/t-iris6 (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS): - Don't pass -Wno-error. - -2003-12-23 David Edelsohn - - * function.c (assign_parms): Update max_parm_reg and - parm_reg_stack_loc when adding new parm reg. - -2003-12-23 Kazu Hirata - - * config/ns32k/ns32k.c: Convert to ISO-C. - -2003-12-23 Zack Weinberg - - * config/ia64/ia64.c (ia64_va_arg): Pass pointer for - variable-sized type through convert_memory_address. - (ia64_in_small_data_p): Always return false for FUNCTION_DECLs. - -2003-12-23 Jan Hubicka - - * common.opt (fprofile-generate,fprofile-use): Add. - * gcc.c (LINK_COMMAND_SPEC): Arrange -fprofile-generate to imply -lgcov - * opts.c (profile_arc_flag_set, flag_profile_values_set, - flag_unroll_loops_set, flag_tracer_set, - flag_value_profile_transformations_set, - flag_peel_loops_set): New static variables. - (common_handle_option): Deal with -fprofile-generate/-fprofile-use - * invoke.texi (-fprofile-generate, -fprofile-use): Describe. - -2003-12-23 Mark Mitchell - - * Makefile.in (OBJS-common): Remove dwarfout.o. - (dwarfout.o): Remove. - * common.opt: Remove -gdwarf, -gdwarf+. - * defaults.h (PREFERRED_DEBUGGING_TYPE): Do not check for - DWARF_DEBUGGING_INFO. - * dwarf2out.c: Fix typo in comment. - * dwarfout.c: Remove. - * opts.c (common_handle_option): Remove OPT_gdwarf, OPT_gdwarf_. - * toplev.c (process_options): Remove check for - DWARF_DEBUGGING_INFO. - * config/elfos.h (DWARF_DEBUGGING_INFO): Do not #define it or - #undef it. - * config/netware.h (DWARF_DEBUGGING_INFO): Likewise. - * config/ptx4.h (DWARF_DEBUGGING_INFO): Likewise. - * config/vxworks.h (DWARF_DEBUGGING_INFO): Likewise. - * config/alpha/unicosmk.h (DWARF_DEBUGGING_INFO): Likewise. - * config/arc/arc.h (DWARF_DEBUGGING_INFO): Likewise. - * config/i386/sco5.h (DWARF_DEBUGGING_INFO): Likewise. - * config/i386/x86-64.h (DWARF_DEBUGGING_INFO): Likewise. - * config/m32r/m32r.h (DWARF_DEBUGGING_INFO): Likewise. - * config/mcore/mcore-elf.h (DWARF_DEBUGGING_INFO): Likewise. - * config/sparc/linux64.h (DWARF_DEBUGGING_INFO): Likewise. - * config/sparc/liteelf.h (DWARF_DEBUGGING_INFO): Likewise. - * config/sparc/sol26-sld.h (DWARF_DEBUGGING_INFO): Likewise. - * config/sparc/sp86x-elf.h (DWARF_DEBUGGING_INFO): Likewise. - * doc/invoke.texi: Do not mention -gdwarf, -gdwarf-1, -gdwarf-1+, - or -gdwarf+. - * doc/tm.texi: Likewise. - - * c-common.c (flag_abi_version): Default to 2. - * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_ABI_VERSION - uniformly for versions above 2. - * doc/invoke.texi: Update documentation for -fabi-version. - -2003-12-22 Geoffrey Keating - - * config/rs6000/rs6000.md: Change many instances of '! - TARGET_POWERPC64' to 'TARGET_32BIT' when the pattern being guarded - was guarded only because it changed CR0 or the carry bit in XER. - -2003-12-23 Eric Botcazou - - PR optimization/13394 - * toplev.c (rest_of_compilation): Move call to - check_function_return_warnings right after the sibcall - optimization pass. - -2003-12-23 Eric Botcazou - - PR c/13382 - * c-typeck.c (convert_for_assignment): When converting from - integral type to pointer type, always call convert. - -2003-12-22 Mark Mitchell - - * doc/invoke.texi: Deprecate -fwritable-strings. - - * c-common.c (flag_external_templates): Remove. - (flag_alt_external_templates): Likewise. - * c-common.h (flag_external_templates): Remove. - (flag_alt_external_templates): Likewise. - * c-opts.c (c_common_handle_option): Unsupport - -falt-external-templates and -ftemplates. - * doc/invoke.texi: Remove mention of -fexternal-templates and - -falt-external-templates. - -2003-12-22 Andrew Pinski - - PR target/13466 - * config.gcc (powerpc-*-darwin): Remove overridden value of need_64bit_hwint. - - * emit-rtl.c (copy_rtx_if_shared): Add comment about its use of - copy_rtx_if_shared_1. - (copy_rtx_if_shared_1): Add comment about what the function does. - - * c-decl.c (finish_function): Change order of checks. - (c_expand_body): Likewise. - -2003-12-22 Fariborz Jahanian - - * config/rs6000/rs6000.c (legitimate_offset_address_p): Correct - check for the legitimate offset when memory of - DImode/DFmode/TFmode/TImode mode is being referenced and target - is TARGET_POWERPC64. - -2003-12-22 Dale Johannesen - - * reload1.c: Add reg_reloaded_call_part_clobbered. - (reload_as_needed): Use it. - (forget_old_reloads_1): Ditto. - (emit_reload_insns): Ditto. - -2003-12-22 Dale Johannesen - - PR optimization/12828 - * loop.c: Add find_regs_nested to look inside CLOBBER(MEM). - (scan_loop): Call it. - * regclass.c (reg_scan_mark_regs): Look inside CLOBBER(MEM). - -2003-12-22 Andrew Pinski - - PR c/9163 - * c-decl.c (poplevel): Only set DECL_INITIAL of a current function - if it is non-null. - (finish_function): Check for error_mark_node or null on DECL_RESULT and - DECL_RESULT of fndecl. - (c_expand_body): Only expand when DECL_INITIAL of fndecl is not - error_mark_node and not null. - -2003-12-21 Dan Nicolaescu - - * rtl.h (dump_rtx_statistics): Declare it. - * rtl.c (rtx_alloc_counts, rtx_alloc_sizes, rtvec_alloc_counts, - rtx_alloc_sizes): New static vars. - (rtx_alloc, rtvec_alloc): Update them. - (dump_rtx_statistics): New function. - * toplev.c (finalize): Call it. - * ggc-page.c (struct globals): Fix comments. Add new member - total_allocated_per_order. - (ggc_alloc): Keep track of the total allocated memory. - (ggc_print_statistics): Clarify message. Print total allocated - memory stats. - * configure.in (gather-detailed-mem-stats): New flag. - * configure: Regenerate. - * config.in: Regenerate. - * doc/install.texi (Configuration): Document - --enable-gather-detailed-mem-stats. - -2003-12-22 Kazu Hirata - - * system.h (CONVERT_HARD_REGISTER_TO_SSA_P): Poison. - * config/i386/i386.h (CONVERT_HARD_REGISTER_TO_SSA_P): Remove. - -2003-12-21 Roger Sayle - - * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Define _ILP32 - when compiling in ILP32 mode. - -2003-12-21 Andrew Pinski - - * config/rs6000/rs6000.c (rs6000_tls_referenced_p): Return early if - TARGET_HAVE_TLS is false. - -2003-12-21 Kazu Hirata - - * config/ip2k/ip2k-protos.h: Remove the prototype for - asm_output_section_name. - * config/ip2k/ip2k.c (asm_output_section_name): Remove. - -2003-12-21 Kazu Hirata - - * alias.c: Fix comment formatting. - * alloc-pool.c: Likewise. - * bitmap.c: Likewise. - * bitmap.h: Likewise. - * bt-load.c: Likewise. - * c-common.c: Likewise. - * c-common.h: Likewise. - * c-decl.c: Likewise. - * c-opts.c: Likewise. - * c-pretty-print.c: Likewise. - * caller-save.c: Likewise. - * cfghooks.h: Likewise. - * cgraph.c: Likewise. - * collect2.c: Likewise. - * cppfiles.c: Likewise. - * cpplib.h: Likewise. - * dwarf2out.c: Likewise. - * dwarfout.c: Likewise. - * emit-rtl.c: Likewise. - * final.c: Likewise. - * function.c: Likewise. - * gcov.c: Likewise. - * gcse.c: Likewise. - * genemit.c: Likewise. - * ggc.h: Likewise. - * haifa-sched.c: Likewise. - * ifcvt.c: Likewise. - * libgcc2.h: Likewise. - * loop.c: Likewise. - * predict.h: Likewise. - * unwind-libunwind.c: Likewise. - * varasm.c: Likewise. - -2003-12-21 Kazu Hirata - - * config/mn10300/mn10300.c (mn10300_encode_section_info): Fix - a warning. - -2003-12-21 Kazu Hirata - - * config/arm/arm.c: Convert to ISO-C. - * config/avr/avr.h: Likewise. - * config/fr30/fr30.c: Likewise. - * config/ip2k/ip2k.c: Likewise. - * config/mn10300/mn10300.c: Likewise. - -2003-12-20 Andrew Pinski - Matt Thomas - - PR target/12749 - * config/i386/i386.c (print_operand): Print only the first - 8 characters of the float in hex. - -2003-12-20 John David Anglin - - * pa.h (TRAMPOLINE_TEMPLATE): Shorten sequence when generating PA - 2.0 code. - (TRAMPOLINE_CODE_SIZE, MIN_CACHELINE_SIZE): New defines. - (INITIALIZE_TRAMPOLINE): Rework to pass line length, and aligned start - and end addresses to I and D cache instruction patterns. - * pa.md (anddi3, iordi3): Change predicates of operands 1 and 2 to - and_operand and ior_operand, respectively. When generating 64-bit - code, only one operand needs to be a register operand. - (xordi3): Change predicates of operands 1 and 2 to register_operand. - (one_cmpldi2): Change predicate of operand 1 to register_operand. - (dcacheflush, icacheflush): Revise to flush an arbitrary number of - cache lines. - -2003-12-20 Josef Zlomek - - PR optimization/13430, PR optimization/12322 - * bb-reorder.c (copy_bb_p): Do not allow block with many successors to - be copied. - (find_traces_1_round): Surround check for fake edges by - #ifdef ENABLE_CHECKING #endif. - -2003-12-20 Eric Botcazou - - PR other/7956 - * genmultilib: New variable disable_multilib. Set it to 'yes' - if enable_multilib was set to 'no'. Emit DISABLE_MULTILIB - if disable_multilib was set to 'yes'. - * gcc.c: Include multilib.h before tm.h. - * config/sparc/sol2-bi.h (LINK_ARCH_SPEC): Emit an error - message for multiarch options if DISABLE_MULTILIB is set. - * config/sparc/sol2-gld-bi.h (LINK_ARCH_SPEC): Likewise. - -2003-12-20 Eric Botcazou - - PR c/12085 - * c-typeck.c (build_function_call): Issue a warning if a - function is called through an incompatible prototype and - replace the call by a trap in this case. - -2003-12-19 James E Wilson - - * install.texi (ia64-*-linux): Document minimum libunwind version - number. - -2003-12-19 Per Bothner - - * langhooks.c (lhd_print_error_function): Fix for PR c/13110. - Don't do pp_newline; it causes an extra blank line. - * pretty-print.c (pp_base_flush): Clear pp_needs_newline. - -2003-12-19 Jason Merrill - - * tree.c (get_unwidened): Decide whether to narrow a bitfield - reference based on TYPE_SIZE, not TYPE_PRECISION. - - * stmt.c (parse_output_constraint): Warn about in-out constraint - that doesn't allow a register. - (parse_input_constraint): Warn about matching constraint that - doesn't allow a register. - -2003-12-19 James E Wilson - - * flow.c (mark_set_regs, case PARALLEL): Scan loop forwards. - Add case for ASM_OPERANDS. - * global.c (global_alloc): Set regs_ever_live for regs_asm_clobbered - registers. - -2003-12-19 Kazu Hirata - - * expr.c (check_max_integer_computation_mode): Remove. - * dojump.c (do_jump): Don't use MAX_INTEGER_COMPUTATION_MODE. - * fold-const.c (fold): Likewise. - * system.h (MAX_INTEGER_COMPUTATION_MODE): Poison. - * doc/tm.texi (MAX_INTEGER_COMPUTATION_MODE): Remove. - -2003-12-19 James E Wilson - - * configure.in: Delete libunwind_has_eh_support test. - * configure: Regenerate. - * config.gcc (ia64*-*-linux*): Delete reference to t-libunwind-no-eh - and libunwind_has_eh_support check. - * config/t-libunwind-no-eh: Delete. - -2003-12-19 Joseph S. Myers - - * c-format.c (print_char_table): Allow 'I' flag on floating point - decimal formats. - -2003-12-19 Stuart Hastings - - * gcc/config/i386/i386.c (ix86_expand_call, x86_output_mi_thunk): - Trivial fixes for i386.c on Darwin/x86. - -2003-12-19 Fariborz Jahanian - - * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Add code to - recognize macho-style lo_sum adrress patterns. - -2003-12-19 Kazu Hirata - - * dwarfout.c: Remove uses of "register" specifier in - declarations of arguments and local variables. - * gensupport.c: Likewise. - * local-alloc.c: Likewise. - * regclass.c: Likewise. - -2003-12-19 Kelley Cook - - * config.guess: Remove. - -2003-12-19 Jakub Jelinek - - * config/ia64/unwind-ia64.c (ia64_copy_rbs): New function. - (unw_access_gr): Only call ia64_rse_rnat_addr if addr is above - regstk_top. - (uw_frame_state_for): Handle locations inside bundles. - (uw_init_context_1): Initialize context->rnat. - Set context->regstk_top to lowest rbs address which has nat collection - in context->rnat. - (uw_install_context): Fix rnat restoring. - Restore ar.rsc to previous state. - * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR, - MD_HANDLE_UNWABI): Handle unwinding through SA_ONSTACK frames. - -2003-12-19 Jakub Jelinek - - PR c++/13239 - * builtins.c (expand_builtin_expect_jump): Update - TREE_VALUE (arglist) if unsave_expr_now langhook - created a new tree. - -2003-12-19 Richard Earnshaw - - * arm.c (thumb_base_register_rtx_p): Use regno in comparison against - FIRST_PSEUDO_REGISTER. - -2003-12-18 Hartmut Penner - - * gcc/config/rs6000/rs6000.c (USE_ALTIVEC_FOR_ARG_P): Don't check - for SVR4 ABI. - -2003-12-18 Geoffrey Keating - - * config/rs6000/aix.h (OS_MISSING_POWERPC64): Define. - (OS_MISSING_ALTIVEC): Define. - * config/rs6000/darwin.h (ASM_SPEC): Be generous about supplying - -force_cpusubtype_ALL. - * config/rs6000/rs6000.c (rs6000_override_options): Rearrange - CPU information table; now always set all CPU-specific values. - Also, use Altivec and powerpc64 when chip and OS supports them. - -2003-12-18 Geoffrey Keating - - * fixinc/inclhack.def (darwin_macho_dyldh): New. - * fixinc/fixincl.x: Regenerate. - -2003-12-18 Dara Hazeghi - - * version.c (version_string): Renumber as 3.4.0 - * doc/include/gcc-common.texi: Likewise - -2003-12-18 Richard Henderson - - * genrecog.c (print_host_wide_int): New. - (write_switch, write_cond): Use it. - -2003-12-18 Richard Henderson - - * c-decl.c (check_bitfield_type_and_width): Remove enum special - case suppression of pedwarn. - * system.h (ENUM_BITFIELD): Use __extension__. - (CHAR_BITFIELD): Likewise. - -2003-12-18 Ulrich Weigand - Mark Dettinger - - * config/s390/s390.md (UNSPEC_SRST): New constant. - ("strlendi", "strlensi"): New expanders. - ("*strlendi", "*strlensi"): New insns. - -2003-12-18 Mark Mitchell - - * config/sol2.h (LINK_ARCH32_SPEC): Define in terms of ... - (LINK_ARCH32_SPEC_BASE): ... this new macro. - * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC): Define in terms of - ... - (LINK_ARCH64_SPEC_BASE): ... this new macro. - * config/sparc/sol2-gld-bi.h (LINK_ARCH32_SPEC): New macro. - (LINK_ARCH64_SPEC): Likewise. - -2003-12-18 Jason Merrill - - PR middle-end/13234 - * tree-dump.c (dequeue_and_dump): Handle 'r' and 's' code - classes. - -2003-12-18 Steven Bosscher - - * Makefile.in (tracer.o, bb-reorder.o): Depend on timevar.h - * toplev.c (rest_of_handle_reorder_blocks, rest_of_handle_tracer): - Don't push and pop TV_REORDER_BLOCKS timevars, do it... - * bb-reorder.c (reorder_basic_blocks): ...here, and... - * tracer.c (tracer): here. - -2003-12-18 Ulrich Weigand - - * loop.c (move_movables): Handle combination of m->consec, - m->move_insn_first, and m->insert_temp all nonzero correctly. - -2003-12-18 Kazu Hirata - - * calls.c (load_register_parameters): Don't use - LOAD_ARGS_REVERSED. - * system.h (LOAD_ARGS_REVERSED): Poison. - * doc/tm.texi (LOAD_ARGS_REVERSED): Remove. - -2003-12-17 Per Bothner - - * emit-rtl.c (set_new_first_and_last_label_num): Remove function. - * rtl.h (set_new_first_and_last_label_num): Remove declaration. - -2003-12-17 Alexandre Oliva - - * config/frv/frv.c (frv_ifcvt_modify_insn): Don't leave alone - scratch insns of the then branch that clobber regs needed by the - else branch. - -2003-12-17 Kazu Hirata - - * calls.c (expand_call): Update comments. - * system.h (PRETEND_OUTGOING_VARARGS_NAMED): Poison. - * targhooks.c: Do not refer to PRETEND_OUTGOING_VARARGS_NAMED. - -2003-12-17 James E Wilson - Roger Sayle - - * Makefile.in (gcse.o): Add $(TREE_H) to dependencies. - * gcse.c: Include tree.h. - (implicit_set_cond_p): New. - (find_implicit_sets): Call it. - -2003-12-17 Santiago Vila - - * config/kfreebsdgnu.h (TARGET_OS_CPP_BUILTINS): Rename from - TARET_OS_CPP_BUILTINS. - -2003-12-16 Kazu Hirata - - * emit-rtl.c: Fix signed/unsigned comparison warnings. - -2003-12-17 Joseph S. Myers - - * predict.c (struct block_info_def, struct edge_info_def): Change - bit-fields of width 1 to unsigned int. - -2003-12-16 Geoffrey Keating - - PR 12480 - * c-pch.c (pch_init): Improve error message when precompiled - header can't be written. - - PR 12606 - * c-pch.c (pch_init): Make a PCH file appear invalid while it's - being written. - (c_common_write_pch): Make it valid once it's done. - -2003-12-17 Ulrich Weigand - - PR target/11992 - * config/s390/s390.md ("*cmpmem_long_64"): Use CLCLE instruction - instead of CLCL. - ("*cmpmem_long_31"): Likewise. - -2003-12-17 Vladimir Makarov - - * config/ia64/ia64.c: Add more comments about insn bundling. - -2003-12-17 Richard Earnshaw - - PR optimization/10592 - * caller-save.c (mark_referenced_regs): Don't short-circuit a reg - or subreg in SET_DEST if it isn't a hard register. - -2003-12-17 David Edelsohn - - * collect2.c (main): Add -fno-profile-arcs -fno-test-coverage - -fno-branch-probabilities to arguments when compiling ctors and - dtors. - -2003-12-17 Eric Botcazou - - * config/sparc/sol2.h: Set SUPPORTS_INIT_PRIORITY to 0. - * config/sparc/sol2-gld.h: Set SUPPORTS_INIT_PRIORITY to 1. - -2003-12-17 Richard Earnshaw - - * arm.c (thumb_base_register_rtx_p): Don't allow virtual registers - as base registers for sub-word operations. - (thumb_legitimate_address_p): Simplify REG+REG test. - -2003-12-17 Segher Boessenkool - - * opts.c (wrap_help): Fix overflow. - -2003-12-17 Fred Fish - - * configure.in: Remove code to examine linker scripts and set - HAVE_MIPS_LIBGLOSS_STARTUP_DIRECTIVES. - * configure, config.in: Regenerate. - -2003-12-16 Mark Mitchell - - PR c++/12218 - * varasm.c (initializer_constant_valid_p): Allow a conversion from - an integral constant to an OFFSET_TYPE. - -2003-12-16 Kazu Hirata - - PR target/11012 - * config/m32r/m32r.c (gen_compare): Call gen_addsi3 instead of - gen_cmp_ne_small_const_insn. - * config/m32r/m32r.md (cmp_ne_small_const_insn): Remove. - -2003-12-17 Neil Booth - Joseph S. Myers - - PR c/3347 - * c-decl.c (enum_decl_context): Remove BITFIELD. - (grokdeclarator): Take bit-field width as an input. - Perform bit-field width validation with - check_bitfield_type_and_width rather than waiting for - finish_struct. - (groktypename, groktypename_in_parm_context, start_decl, - push_parm_decl, grokfield, start_function): Update calls to - grokdeclarator. - (check_bitfield_type_and_width): New function. - (finish_struct): Move bit-field validation to grokdeclarator - and check_bitfield_type_and_width. - -2003-12-16 John David Anglin - - PR bootstrap/13386 - * configure.in (gcc_cv_ld_hidden): Set to yes on hppa64*-*-hpux* when - using HP native linker. - * configure: Rebuilt. - -2003-12-16 Mark Mitchell - - PR c++/13275 - * c-common.h (enum rid): Add RID_OFFSETOF. - * c-parser.in (rid_to_yy): Ignore RID_OFFSETOF. - * ginclude/stddef.h (offsetof): Reimplement for C++, using - __offsetof__. - * doc/extend.texi: Document __offsetof__. - -2003-12-16 Stan Cox - - * config/iq2000/iq2000.h: Formatting. - (MAX_INT_TYPE_SIZE, MAX_INT_TYPE_SIZE, CONST_COSTS, RTX_COSTS) - (ADDRESS_COST, ASM_OUTPUT_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL) - (IMPLICIT_FIX_EXPR, EASY_DIV_EXPR, SLOW_ZERO_EXTEND): Remove - * config/iq2000/iq2000.c: Formatting. - (iq2000_rtx_costs): New. - -2003-12-16 Richard Earnshaw - - * arm.md (addsi3_carryin_shift): Add missing register constraints. - -2003-12-16 Loren James Rittle - - * testsuite/g++.old-deja/g++.eh/badalloc1.C: Tweak to - pass with -pthread on FreeBSD systems. - -2003-12-16 Richard Sandiford - - * config/mips/mips.c (mips_file_end): Only write symbols that have - been referenced at some point. - -2003-12-16 Richard Sandiford - - * config/mips/mips.c: Include langhooks.h - (mips_build_builtin_va_list): Use lang_hooks.types.make_type. - -2003-12-16 Eric Botcazou - - PR optimization/13313 - * combine.c (make_extraction) [REG]: Do not use - gen_lowpart_for_combine when POS is non-zero. - -2003-12-16 Hartmut Penner - - * altivec.h (vec_cmple, vec_all_numeric): Fix typo. - * testsuite/gcc.dg/altivec-10.c: Test for above. - -2003-12-15 David O'Brien - - * Makefile.in (CPPFLAGS): Initialize from configure. - -2003-12-15 Roger Sayle - - PR middle-end/13400 - * ifcvt.c (noce_process_if_block): Disable unconditional write - optimizations if we could introduce a store to trapping memory - that wasn't present previously. - -2003-12-15 Kazu Hirata - - * system.h (DEFAULT_CALLER_SAVES): Poison. - * toplev.c (flag_caller_saves): Always initialize with 0. - * doc/tm.texi (DEFAULT_CALLER_SAVES): Remove. - -2003-12-15 Kazu Hirata - - * flow.c (EXIT_IGNORE_STACK): Move to ... - * defaults.h (EXIT_IGNORE_STACK): ... here. - * dojump.c (clear_pending_stack_adjust): Don't use #ifdef - EXIT_IGNORE_STACK. - * function.c (expand_function_end): Likewise. - * global.c (global_alloc): Likewise. - * ra.c (init_ra): Likewise. - * reload1.c (init_elim_table): Likewise. - * reorg.c (fill_simple_delay_slots): Likewise. - * resource.c (init_resource_info): Likewise. - * doc/tm.texi (EXIT_IGNORE_STACK): Document that the default - is 0. - -2003-12-15 J"orn Rennecke - - * reload.c (reg_overlap_mentioned_for_reload_p): - When looking at a PLUS in X, avoid spuriously returning nonzero - when IN is a REG or another simple PLUS, or a MEM containing one. - - * loop.c (loop_invariant_p): Amend comment about where new registers - might come from. - -2003-12-15 Andreas Jaeger - - * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Remove - handling of obsolete language CHILL. - -2003-12-15 Waldek Hebisch - - * tree.c (initializer_zerop): Add test for empty set. - * integrate.c (function_cannot_inline_p): Forbid inlining - functions calling `longjmp'. - -2003-12-15 Nathan Sidwell - - PR c++/11773 - * doc/gcov.texi (Gcov and Optimization): Document inline function - behaviour. Fix some file suffixes. - -2003-12-14 David O'Brien - - * config/i386/i386.h (__amd64, __amd64__): Remove duplicates. - -2003-12-14 Mark Mitchell - - * c-common.h (c_parse_error): Declare it. - * c-common.c (c_parse_error): New function. - * c-parse.y (yyerror): Use it. - -2003-12-14 John David Anglin - - PR target/13054 - * pa-protos.h (indexed_memory_operand, borx_reg_operand, - move_dest_operand, move_src_operand): New protypes. - (basereg_operand, move_operand, reg_or_nonsymb_mem_operand): Deleted. - * pa.c (copy_reg_pointer, indexed_memory_operand, move_dest_operand, - move_src_operand): New functions. - (basereg_operand, reg_or_nonsymb_mem_operand, move_operand): Delete. - (reg_or_0_or_nonsymb_mem_operand): Return false for unscaled indexed - address until cse is not expected on targets with non-equivalent - space registers. - (hppa_legitimize_address): Canonicalize unscaled indexed addresses - on targets non-equivalent space registers. - (emit_move_sequence): Break out indexed addresses from destination - operand. Similarly, break out unscaled indexed addresses from - source operand on targets with non-equivalent space registers. Fix - REG_POINTER flag when possible. Mark register pointer when creating - new pointers. - (print_operand): Handle unscaled index addresses. - * pa.h (IS_INDEX_ADDR_P, IS_LO_SUM_DLT_ADDR_P): New macro subroutines - for EXTRA_CONSTRAINT. - (EXTRA_CONSTRAINT): Rework to make more readable. - (MODE_OK_FOR_SCALED_INDEXING_P, MODE_OK_FOR_UNSCALED_INDEXING_P): New - subroutines for GO_IF_LEGITIMATE_ADDRESS. - (GO_IF_LEGITIMATE_ADDRESS): Rework using new subroutines. Allow scaled - and unscaled addresses. Canonicalize unscaled indexed addresses on - targets with non-equivalent space registers. Document issues in - handling indexed address modes on PA-RISC. - (PREDICATE_CODES): Update for new and deleted predicates. - * pa.md (move_dest_operand, move_src_operand, indexed_memory_operand): - Use new predicates in move patterns. - Add peephole2 patterns to optimize floating point stores. Fix - constrain preferencing in move patterns. Delete patterns for handling - unscaled indexed memory loads. Add missing load and store with - base-register modification patterns. Correct SFmode floating point - store pattern. Add missing zero extension loads. - -2003-12-13 Steven Bosscher - - * ggc-zone.c (struct alloc_zone): Don't pre-declare, it already - comes in with ggc.h. Add a new bool field `dead'. - (destroy_ggc_zone): Don't destroy a zone at once. Instead, only - set the `dead' flag for the dead zone. Wrap a sanity check in - ENABLE_CHECKING. - (ggc_collect_1): Always mark and sweep if a zone has the `dead' - flag set. - (ggc_collect): Free dead zones after collecting. - -2003-12-13 Jan Hubicka - - * coverage.c (get_coverage_counts): Use inform instead of warning - about missing profile. - -2003-12-12 Steven Bosscher - - * Makefile.in (opts.o, explow.o): Depend on langhooks.h - -2003-12-12 Geoffrey Keating - - * config.gcc : Don't use fixproto. - : Likewise. - -2003-12-12 Jakub Jelinek - - * config/ia64/linux.h (IA64_GATE_AREA_END): Increase by 64K. - (MD_FALLBACK_FRAME_STATE_FOR): Set fpsr_loc, br_loc[6] and - br_loc[7]. Update comment. - (MD_HANDLE_UNWABI): Define. - * config/ia64/unwind-ia64.c (struct unw_state_record): Add - unwabi field. - (struct _Unwind_Context): Increase br_loc array size to 8 entries. - (desc_abi): Set unwabi. - (uw_update_reg_address): Allow br up to 7. - (uw_update_context): Invoke MD_HANDLE_UNWABI if defined. - (uw_install_context): Load b1..b5 from correct locations. - Fix insn loading ar.fpsr. - * doc/tm.texi: Document MD_HANDLE_UNWABI. - -2003-12-12 Roger Sayle - - PR optimization/13037 - * loop.c (update_giv_derive): Ignore redundant sets of a biv when - calculating how to derive a giv from a biv. - -2003-12-12 Neil Booth - - PR preprocessor/12935 preprocessor/12952 preprocessor/13046 - * cpplib.c (prepare_directive_trad): Clear skipping only in - #if and #elif directives. - (do_undef): Call the handler even if the identifier is not a macro. - * cpptrad.c (scan_parameters): Emit an error message. - (_cpp_create_trad_definition): Remember the params list even on - failure. - -2003-12-11 Zack Weinberg - - * arm.c (ARM_ADDRESS_COST, THUMB_ADDRESS_COST): Convert macros - to inline functions: arm_arm_address_cost, arm_thumb_address_cost - respectively. - (arm_address_cost): Use 'em. - -2003-12-12 Rainer Orth - - * config/alpha/osf.h (TARGET_OS_CPP_BUILTINS): Define - __STDC_VERSION__ to ISO C94 for C++. - - * fixinc/inclhack.def (alpha_wchar): New fix. - * fixinc/fixincl.x: Regenerate. - * fixinc/tests/base/wchar.h: New file. - -2003-12-11 David Mosberger - - * unwind-libunwind.c (_Unwind_SetGR): Clear the NaT bit as - required by C++ ABI for Itanium. - * config/t-libunwind (LIB2ADDEH): Remove unwind-libunwind.c. - * config/t-libunwind-no-eh: New file. - * configure.in: Check libunwind for _Unwind_Resume() and if it's - present, set libunwind_has_eh_support to "yes". - * configure: Regenerate. - * config.gcc (ia64*-*-linux*): If $libunwind_has_eh_support is - set to yes, use t-libunwind, otherwise, use t-libunwind-no-eh. - -2003-12-11 Richard Sandiford - - * config/mips/mips.c (mips_global_pointer): Force functions with - a nonlocal goto to set up $gp. - -2003-12-11 James E Wilson - - PR target/13132 - * function.c (gen_mem_addressof): When no decl, explicitly clear flag - bits. - -2003-12-12 Nick Clifton - - * config/m32r/m32r.c: Convert to ISO-C - -2003-12-12 Kazuhiro Inaoka - - * doc/invoke.texi: Replace Mitsubishi with Renesas. - * config/m32r/m32r.h: Ditto. - * config/m32r/m32r.c: Ditto. - * config/m32r/m32r.md: Ditto. - -2003-12-11 Steven Bosscher - - * basic-block.h (BLOCK_HEAD, BLOCK_END): Remove. - (BLOCK_HEAD_TREE, BLOCK_END_TREE): Remove. - (basic_block_def): Rename `head' to `head_' and `end' to `end_'. - (BB_HEAD, BB_END): New accessor macros for the `head_' and `end_' - fields of a basic block. - * bb-reorder.c, bt-load.c, caller-save.c, cfg.c, cfganal.c, - cfgbuild.c, cfgcleanup.c, cfglayout.c, cfgloop.c, cfgloopanal.c, - cfgloopmanip.c, cfgrtl.c, combine.c, conflict.c, df.c, emit-rtl.c, - final.c, flow.c, function.c, gcse.c, global.c, graph.c, - haifa-sched.c, ifcvt.c, lcm.c, local-alloc.c, loop-unswitch.c, - loop.c, postreload.c, predict.c, profile.c, ra-build.c, ra-debug.c, - ra-rewrite.c, ra.c, recog.c, reg-stack.c, regclass.c, regmove.c, - regrename.c, reload1.c, resource.c, sched-ebb.c, sched-rgn.c, - sibcall.c, tracer.c, config/frv/frv.c, config/i386/i386.c, - config/ia64/ia64.c: Use the BB_HEAD and BB_END macros instead of - accessing the `head' and `end' fields of a basic block directly. - - * gengtype.c: Teach about "void**" pointers and "void *" function - types. Fixes earlier commit. - -2003-12-10 Geoffrey Keating - - * doc/extend.texi (Vector Extensions): Document that bitwise - operations also work on vectors. - -2003-12-10 Richard Earnshaw - - * arm.md: New split patterns for optimizing bitfield accesses. - -2003-12-10 Steven Bosscher - - * README.Portability: Remove K+R section. - - * gengtype-lex.l: Teach about "void**" pointers and - "void*" function types. - -2003-12-10 Eric Botcazou - - PR target/13354 - * config/sparc/sparc.c (sparc_output_mi_thunk): Load DELTA - manually if one can do that with only one instruction. - -2003-12-10 Nick Clifton - - * config.gcc (arm-linux): Include linux.h in tm_file so that - LINUX_TARGET_OS_CPP_BUILTINS is defined. - * config/arm/linux-elf.h (LIB_SPEC): Protect the definition. - -2003-12-09 James E Wilson - - * rtl.def (CODE_LABEL, NOTE): Correct operand numbers in comments. - -2003-12-09 Matt Austern - - PR c/13134 - * c-decl.c (duplicate_decls): Copy visibility flag when appropriate. - -2003-12-09 Kazuhiro Inaoka - - * config/m32r/m32r.h: Add support for m32r2 processor. Including - a new command line option -m32r2 to select it. - * config/m32r/m32r.c: Add support for the new processor variant. - * config/m32r/m32r.md: Likewise. - * config/m32r/t-m32r: Add m32r2 multilibs. - * doc/invoke.texi: Document the new command line switch. - -2003-12-08 Kazu Hirata - - * defaults.h (LOCAL_REGNO): Give the default definition. - * flow.c (LOCAL_REGNO): Remove. - * reload1.c (LOCAL_REGNO): Likewise. - -2003-12-08 Geoffrey Keating - - PR target/11848 - * rs6000.h (CANNOT_CHANGE_MODE_CLASS): Allow change of mode - in floating-point registers between TFmode and DImode. - * rs6000.c (rs6000_emit_move): Split moves early. - (secondary_reload_class): Random Whitespace Change. - (rs6000_split_multireg_move): Support moves involving FP registers. - Emit instructions directly. - * rs6000-protos.h (rs6000_split_multireg_move): Update prototype. - * altivec.md: Update for changes to rs6000_split_multireg_move. - * rs6000.md: Update for changes to rs6000_split_multireg_move. - (movtf_internal): Support moves to/from GPRs. - -2003-12-08 Stuart Hastings - - * config/i386/i386.md: Typo in split of fp-valued if_then_else. - -2003-12-08 James E Wilson - - PR target/13132 - * expmed.c (extract_bit_field): Only call mode_for_size for scalar - integer modes. - -2003-12-08 Nathanael Nerode - - * doc/install.texi: Revert change of Dec 7; gcc is still a 2.13 - directory. - -2003-12-08 Alexandre Oliva - - * config/frv/frv.md (subdi2): Merge with _internal insn_and_split, - by using match_scratch. - (negdi2): New. - -2003-12-08 Jason Merrill - Daniel Berlin - - PR debug/11114 - Support namespaces in DWARF 2 output. - * dwarf2out.c (gen_namespace_die): New function. - (force_namespace_die, setup_namespace_context): New fns. - (declare_in_namespace): New fn. - (gen_decl_die): Call declare_in_namespace. Handle namespaces. - (dwarf2out_decl): Handle namespaces. - (scope_die_for): Pass through a namespace scope. - (class_scope_p): Rename to class_or_namespace_scope_p. - (gen_subprogram_die, gen_variable_die): Adjust. - (gen_struct_or_union_die): Always emit a declaration - if context_die is a namespace. - -2003-12-08 Jan Hubicka - - * unwind-pe.h (read_uleb128): Fix handling of large values - (read_sleb128): Fix handling of large values - -2003-12-08 Andrew Pinski - - 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. - -2003-12-08 Richard Earnshaw - - * arm.md: New split to transform ((X << y) - 1) into ~(~(X-1) << y) - for constant X. - -2003-12-08 Richard Sandiford - - * calls.c (expand_call): Don't try using tail or recursive calls - after the function body has been expanded. - -2003-12-08 Jan Hubicka - - * i386.md (cmpstr expander): Obey TARGET_INLINE_ALL_STRINGOPS - -2003-12-08 Arnaud Charlet - - PR ada/13324, PR ada/12614 - * doc/install.texi: Update requirements for building Ada. - -2003-12-07 David Edelsohn - Graham Reed - - * collect2.c (GCC_OK_SYMBOL): Add support for AIX C_WEAKEXT. - (GCC_UNDEF_SYMBOL): Same. - -2003-12-07 Kazu Hirata - - * final.c (final_scan_insn): Don't use FINAL_PRESCAN_LABEL. - * system.h (FINAL_PRESCAN_LABEL): Poison. - * doc/tm.texi (FINAL_PRESCAN_LABEL): Remove. - -2003-12-07 Kaveh R. Ghazi - - * Makefile.in (compare): Combine toplevel and $(SUBDIRS) cases. - -2003-12-07 Nathanael Nerode - - * configure.in, aclocal.m4: Revert to pre-2.5x conversion status. - * configure: Regenerate with autoconf 2.13. - - * configure.in: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM - with modern equivalents. - * configure: Regenerate. - - * configure.in: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE. - * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove. - * configure: Regenerate. - - * configure: Regenerate with (preferred) autoconf 2.57. - * doc/install.texi: Note that 'gcc' is now a 2.57 directory. - -2003-12-07 Eric Botcazou - - PR optimization/12965 - * caller-save.c (save_call_clobbered_regs): Do not save/restore - registers around no-return calls. - -2003-12-07 Nathanael Nerode - - * configure.in: Make minimum necessary changes for autoconf 2.5x. - * aclocal.m4: Make minimum necessary changes for autoconf 2.5x. - * configure: Regenerate with autoconf 2.58. - -2003-12-07 Eric Botcazou - - PR optimization/13318 - * loop.c (express_from): Protect integer division from overflow. - -2003-12-07 Eric Botcazou - - PR optimization/13060 - * function.c (fixup_var_refs_1) [SUBREG]: Recognize even if a - replacement already exists. Fix again the whole insn if that fails. - -2003-12-06 Andrew Pinski - - * config/rs6000/rs6000.c (macho_branch_islands): Use - HOST_WIDE_INT_PRINT_UNSIGNED. - -2003-12-06 Richard Sandiford - - * varasm.c (incorporeal_function_p): New. - (assemble_external): Use it as a filter. - * config/mips/mips.c (mips_output_external): Don't check for builtin - functions here. - -2003-12-06 Richard Earnshaw - - * arm.md (IOR (COMPARISON) (AND)): New define_splits. - -2003-12-06 Kelley Cook - - * Makefile.in (program_transform_cross_name): Delete. - (GCC_CROSS_NAME, CPP_CROSS_NAME): Delete. - (PROTOIZE_CROSS_NAME, UNPROTOIZE_CROSS_NAME): Delete. - (AR_FOR_TARGET, RANLIB_FOR_TARGET, NM_FOR_TARGET): Adjust for above. - (install_cpp, install_driver, install-man, uninstall): Likewise. - -2003-12-06 Alan Modra - - PR 13169 - * basic-block.h (PROP_ASM_SCAN): Define. - * final.c (regs_asm_clobbered): New array. - * regs.h (regs_asm_clobbered): Declare. - * flow.c (life_analysis): Init it. - (mark_set_regs): Set PROP_ASM_SCAN for asms. - (mark_set_1): Set regs_asm_clobbered. - * global.c (global_alloc): Don't set eliminable_regset when - regs_asm_clobbered. - -2003-12-05 Mark Mitchell - - * config/ia64/ia64.h (MUST_PASS_IN_STACK): Define. - - PR c++/13314 - * emit-rtl.c (set_mem_attributes_minus_bitpos): Robustify. - -2003-12-05 Andrew Pinski - - PR driver/13211 - * gcc.c (execute) Increment execution_count when returning - early because verbose_only_flag is true. - -2003-12-05 Per Bothner - - * cppfiles.c (file_hash_hash): New static function. - (hash_string_eq): Renamed static function to file_hash_eq. - (_cpp_init_files): Create file_hash table with above callbacks. - (cpp_included): Must use htab_find_with_hash insead of htab_find. - (_cpp_find_find, make_cpp_dir): Must use htab_find_slot_with_hash. - -2003-12-05 Per Bothner - - * line-map.h (source_location): New typedef. - (fileline): Redefined as source_location. - (struct line_map, linemap_add, linemap_lookup): Replace filefile - by source_location. - * line-map.c (linemap_add, linemap_lookup): Use source_location. - -2003-12-05 Richard Henderson - - * config/alpha/alpha.c (alpha_build_builtin_va_list): Add dummy - field to suppress -Wpadded warnings. - -2003-12-05 Stuart Hastings - - * config/rs6000/rs6000.md: Correct macro test of TARGET_MACHO. - -2003-12-05 Stuart Menefy - J"orn Rennecke - - PR target/13302 - * sh.c (sh_build_builtin_va_list): Use (*lang_hooks.types.make_type). - -2003-12-05 Roger Sayle - - * dojump.c (do_jump): If the expression being compared against - zero, is the subreg of a promoted variable, perform the comparison - in the promoted mode. - * simplify-rtx.c (simplify_unary_operation): Optimize sign and - zero-extensions of subregs of promoted variables where the - extension is identical to that used to promote the variable. - -2003-12-05 Hans-Peter Nilsson - - PR target/13256 - * resource.h (enum mark_resource_type): Remove member MARK_DEST. - The only user changed as follows: - * resource.c (mark_set_resources) : Always recurse for - SET_SRC (x). - : Always recurse on - operands. - : Delete, deferring to default code. - -2003-12-05 Waldek Hebisch - - * stmt.c (expand_nl_goto_receiver): Copy hard register clobbers - and ASM_INPUT barrier from expand_builtin_setjmp_receiver. - -2003-12-05 Richard Sandiford - - * config/mips/mips.c (mips_expand_call): Don't allow laziy binding - for n32 & n64 abicalls. - -2003-12-05 Richard Sandiford - - PR bootstrap/13145 - * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Adjust comment. - * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Add $fcall. - (mips_load_got): Always create a constant MEM. - (mips_expand_call): Use load_callsi and load_calldi. - * config/mips/mips.md (UNSPEC_LOAD_CALL, FAKE_CALL_REGNO): New consts. - (load_callsi, load_calldi): New patterns. - -2003-12-05 Peter Gerwinski - - * tree.def (PLACEHOLDER_EXPR): Clarify commentary. - -2003-12-05 Steven Bosscher - - * config/d30v/d30v-protos.h , config/d30v/d30v.c, - config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c, - config/fr30/fr30-protos.h, config/fr30/fr30.c, - config/i370/i370-protos.h, config/i370/i370.c, - config/i960/i960-protos.h, config/i960/i960.c, - config/ip2k/ip2k-protos.h, config/ip2k/ip2k.c, - config/m32r/m32r-protos.h, config/m32r/m32r.c, - config/mn10300/mn10300-protos.h, config/mn10300/mn10300.c, - config/ns32k/ns32k-protos.h, config/ns32k/ns32k.c: - Convert to ISO C90 function declarations and definitions. - -2003-12-05 Eric Botcazou - - * doc/extend.texi (Constructing Calls): Add warning about - the limitations of the functions. - -2003-12-05 Eric Botcazou - - PR middle-end/11151 - * function.h (struct function): New field 'x_naked_return_label'. - * function.c (free_after_compilation): Set it to NULL. - (expand_function_end): Emit 'naked_return_label' if it exists. - * rtl.h (expand_naked_return): Declare. - * stmt.c (expand_naked_return): New function to generate a - jump to 'naked_return_label'. - * builtins.c (expand_builtin_return): Call expand_naked_return - instead of expand_null_return. - * config/sparc/sparc.md (untyped_return): Likewise. - -2003-12-04 Andrew Pinski - - PR target/11322 - * config/sh/netbsd-elf.h (NO_PROFILE_COUNTERS): Define. - - PR target/12467 - * config/rs6000/altivec.md (altivec_vmsummbm): Fix typo. - -2003-12-04 Stuart Hastings - - * rs6000.c (output_call, macho_branch_islands, - add_compiler_branch_island, no_previous_def, get_previous_label) - Revisions of xx_stub functions for branch islands, - add -fPIC support for Darwin. - * rs6000-protos.h (output_call) Prototype. - * rs6000.md Use output_call. - * invoke.texi Explain Darwin semantics of -longcall. - * testsuite/gcc.dg/darwin-abi-1.c Revise testcase for -longcall/jbsr. - -2003-12-04 Richard Henderson - - * config/i386/i386.md (addqi3_carry): Use q not r constraints. - (subqi3_carry): Likewise. - -2003-12-04 J"orn Rennecke - - PR optimization/13260 - * sh-protos.h (sh_expand_t_scc): Declare. - * sh.h (PREDICATE_CODES): Add cmpsi_operand. - * sh.c (cmpsi_operand, sh_expand_t_scc): New functions. - * sh.md (cmpsi): Use cmpsi_operand. If T_REG is compared to - something that is not a CONST_INT, copy it into a pseudo register. - (subc): Fix description of new T value. - (slt, sgt, sge, sgtu): Don't clobber T after rtl generation is over. - (sltu, sleu, sgeu): Likewise. - (seq, sne): Likewise. Use sh_expand_t_scc. - -2003-12-04 Nathanael Nerode - - * configure.in: Generalize the CONFIG_HEADERS pattern under which - we stamp cstamp-h. - * configure: Regenerate. - - * configure.in: Pull AC_CHECK_HEADER call out of shell if statement - to avoid trouble when updating to autoconf 2.5x. - * configure: Regenerate (with autoconf 2.13 still). - -2003-12-04 J"orn Rennecke - - * sh.md (truncdiqi2): Use andi opcode for immediate. - (reload_outdf+1,reload_outdf+2): Remove constraints. - (movv16sf_i): Fxi multiplier for SUBREG_BYTE. - (movv8qi_i+2): Zero-extend low byte before adding it to high byte. - (fipr, ftrv): Add .s suffix to opcode. - -2003-12-04 Richard Sandiford - - PR target/13186 - - Revert all of the following patch, except the addition of - hook_bool_machine_mode_true: - - 2003-11-02 Richard Sandiford - - * 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. - -2003-12-03 Mark Mitchell - - * 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-12-03 James E Wilson - - * gcc.c (init_spec): Pass -lunwind to init_gcc_specs in eh_name. - - * gcc-page.c (extra_order_size_tab): Correct comment. - -2003-12-03 Kazu Hirata - - * config/h8300/h8300.c (push): Call gen_push_h8300hs_advanced - instead of gen_push_h8300hs. - (pop): Call gen_pop_h8300hs_advanced instead of - gen_pop_h8300hs. - * config/h8300/h8300.h (TRAMPOLINE_SIZE): Use Pmode. - * config/h8300/h8300.md (*tablejump_h8300hs_advanced): - Tighten the predicate. - (*tablejump_h8300hs_normal): Tighten the predicate. - (push_h8300hs): Change to - push_h8300hs_advanced. - (pop_h8300hs): Change to pop_h8300hs_advanced. - -2003-12-03 Eric Christopher - - * rtl.c: Fix typo. - * config/mips/mips.h: Ditto. Fix formatting. - -2003-12-04 Ben Elliston - - * future.options: Remove. Move to gnu.org web pages. - -2003-12-03 Eric Christopher - - * c-parse.in (c_in_iteration_stmt, c_in_case_stmt): Move - from here... - * c-tree.h: to here. - -2003-12-03 Jan Hubicka - - PR optimization/12324 - * toplev.c (rest_of_decl_compilation): Do not deffer when compiling - in unit-at-a-time mode. - -2003-12-03 Jakub Jelinek - - * expr.c (store_constructor): Only set RTX_UNCHANGING_P for - read-only field if cleared is 0. - -2003-12-03 Nathanael Nerode - - * config.gcc: Mark obsolete targets for GCC 3.4. - -2003-12-03 Zack Weinberg - - * aclocal.m4 (AM_ICONV): Add explicit check for iconv.h. - * config.in, configure.in: Regenerate. - * cpphash.h: Check both HAVE_ICONV and HAVE_ICONV_H before - including iconv.h. - -2003-12-03 Alan Modra - - PR target/11229 - * cse.c (cse_insn): Set classp using src_const_elt if - src_eqv_elt is NULL. - -2003-12-03 Richard Earnshaw - - * gcse.c (reg_clear_last_set): New function. - (reg_set_info): If data is non-null, treat it as an sbitmap of - registers, set the bit for the register being set. - (compute_store_table): Allocate last_set_in with xcalloc. Do not - memset this array on each iteration. Pass reg_set_in_block[bb->index] - to note_stores while computing last_set_in instead of scanning - last_set_in after the first pass through the insns. - Clear last_set_in using reg_clear_last_set instead of explicitly - rescanning after each insn. If checking is enabled, assert that - last_set_in is completely zeroed after each bb has been processed. - -2003-12-02 Geoffrey Keating - - * df.c (df_uses_record) : The argument of a MEM is read-only, - never read-write. - : Delete incorrect comment. - : Remove 'use_flags' variable. - -2003-12-03 David Edelsohn - - * function.c (assign_parms): Make sure parm PARALLEL combined - in reg is composed of more than one object and the mode really - produces a reg. - -2003-12-03 Jan Hubicka - - * i386.c (classify_argument): Make it 64bit clean. - -2003-12-02 Richard Sandiford - - * config/mips/mips.c (mips_output_external): Replace checks for - specific builtin-in functions with a check for DECL_BUILTIN_IN. - -2003-12-02 Richard Henderson - - * rtl.h (PUT_CODE, PUT_MODE): Remove ENUM_BITFIELD cast. - * tree.h (TREE_SET_CODE): Likewise. - * recog.h (struct insn_operand_data): Move const after ENUM_BITFIELD. - -2003-12-02 Ben Elliston - - * dbxstclass.h: Rename from this .. - * xcoff.h: .. to this. - * xcoffout.c: Include xcoff.h. - -2003-12-01 Kaveh R. Ghazi - - * Makefile.in (GCC_CFLAGS): Add -Wold-style-definition. - -2003-12-01 James Lemke - - * config/arm/arm.c (arm_rtx_costs): Improve for xscale multiply. - -2003-12-01 Roger Sayle - - 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. - -2003-12-01 Roger Sayle - - PR optimization/12322 - * gcse.c (struct ls_expr): Change type of hash_index from int to - unsigned int. - (hash_expr): Document hash_table_size parameter and wrap long line. - (ldst_entry): Calculate expression's hash_index and record in ptr. - (trim_ld_motion_mems): Use hash_index to search a single bucket - instead of scanning the entire hash_table. Remove the "del" local - variable and use the equivalent "expr == 0" instead. Change last - to be a pointer to the pointer to the current element, to simplify - and speed-up deleting from a linked list. - -2003-12-01 James E Wilson - - * doc/contrib.texi: Update David Mosberger. - - * doc/c-tree.texi (CONSTRUCTOR): Clarify element order and handling - of missing fields. - - PR target/8407 - * config/ia64/ia64.c (ia64_function_arg): For single-reg HFA, call - gen_rtx_REG to create new reg with argument mode. - -2003-12-01 Steven Bosscher - - * ggc.h (struct alloc_zone): Move forward declaration up. - (new_ggc_zone): New function prototype. - (destroy_ggc_zone): Ditto. - * ggc-simple.c (new_ggc_zone): New function, does nothing. - (destroy_ggc_zone): Ditto. - * ggc-page.c (new_ggc_zone): New function, does nothing. - (destroy_ggc_zone): Ditto. - * ggc-zone.c (struct page_entry): Fix comment. - (ggc_alloc_typed): Use a switch statement instead of ifs. - (new_ggc_zone): New function to set up a new GC zone. - (destroy_ggc_zone): New function to remove a GC zone. - init_ggc): Use new_ggc_zone to set up the default zones. - (ggc_collect): Walk a list of zones, instead of just the - default zones. Report statistics using the zone name. - -2003-12-01 Ulrich Weigand - - * unroll.c (find_splittable_givs): Add missing extend_value_for_giv. - -2003-12-01 Roger Sayle - - PR optimization/12628 - * toplev.c (rest_of_handle_jump_bypass): Call reg_scan. - * regclass.c (reg_scan): Include allocate_reg_info time in - TV_REG_SCAN. Minor clean-ups. - (reg_scan_update): Minor clean-ups. - -2003-12-01 Ulrich Weigand - - * config.gcc (s390x-ibm-tpf*): Add extra_parts. - -2003-12-01 James E Wilson - - * config/ia64/ia64.h (FUNCTION_ARG_REGNO_P): Use AR_REG_FIRST not - GR_ARG_FIRST. - -2003-12-01 Zack Weinberg - - * common.opt: Remove -fgnu-linker. - * flags.h: Remove flag_gnu_linker. - * opts.c: Don't handle OPT_fgnu_linker. - * toplev.c: Don't initialize flag_gnu_linker. - Remove gnu-linker entry from f_options. - * config/dsp16xx/dsp16xx.h (OPTIMIZATION_OPTIONS): - Don't reset flag_gnu_linker. - * config/mips/mips.c (override_options): Likewise. - * doc/invoke.texi: Remove all mention of -fgnu-linker. - -2003-12-01 Daniel Berlin - - * ggc-zone.c (ggc_pch_write_object): Calculate object size using - ggc_get_size (which accounts for large objects properly). - -2003-12-01 Jeff Sturm - - PR optimization/13024 - * toplev.c (rest_of_handle_new_regalloc): Remove rebuild_notes - parameter. - (rest_of_handle_old_regalloc): Likewise. Add rebuild_notes - declaration. Rebuild jump labels following local_alloc if necessary. - (rest_of_compilation): Remove rebuild_label_notes_after_reload - declaration. Don't pass rebuild_notes parameter to - rest_of_handle_new_regalloc and rest_of_handle_old_regalloc. - Don't rebuild jump labels. - -2003-12-01 Jeff Law - - * flow.c (count_or_remove_death_notes_bb): New. Extracted from - count_or_remove_death_notes. - (count_or_remove_death_notes): Use EXECUTE_IF_SET_IN_SBITMAP. - -2003-12-01 Andreas Krebbel - - * builtins.c (expand_builtin_longjmp): Added two memory clobbers. - -2003-12-01 Ulrich Weigand - - * reload.c (find_reloads_address): Split addresses of type - (plus (plus (reg) (reg)) (const_int)) only if one register - is either a valid base register or else one of the stack - frame related registers (sp/fp/ap). - -2003-12-01 Steven Bosscher - - * function.c (update_epilogue_consts): Don't use PARAMS. - * rtl.h (web_main): Ditto. - * target.h (is_costly_dependence): Ditto - -2003-12-01 Eric Botcazou - - PR middle-end/7847 - * expr.c (expand_expr) [normal_inner_ref]: When 'offset' is non-zero, - do not recheck that 'op0' is a MEM. Move comment. When testing for - unaligned objects, take also into account the alignment of 'op0' and - 'mode1' if 'op0' is a MEM. - -2003-12-01 Gabriel Dos Reis - - * doc/c-tree.texi (Function Bodies): Update HANDLER documentation. - -2003-12-01 Kelley Cook - - * doc/install.texi: Note that fastjar is built with automake 1.7.x - and autoconf 2.57. - -2003-12-01 Alan Modra - - * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Test - target_flags directly rather than using TARGET_* defines. - -2003-11-30 Ben Elliston - - * doschk.c: Remove. - -2003-11-30 Richard Sandiford - - PR target/12727 - * config/mips/mips.c (mips_save_reg): Fix frame information for sdc1 - on 32-bit big-endian targets. - -2003-11-30 Kazu Hirata - - * genemit.c (register_constraints): Remove. - -2003-11-30 Andreas Krebbel - - * config/s390/s390.md ("tmdi_reg", "tmsi_reg", "*movdi_64", "*movdi_31", - "iordi3"): Insns now use multiple letter constraints. - ("*movdi_lhi", "*movdi_lli", "*movdi_lay"): Insns deleted. They are now - covered by "*movdi_64". - ("*movsi_lhi", "*movsi_lli", "*movsi_lay"): Insns deleted. They are now - covered by "*movsi_zarch" and "*movsi_esa". - ("*movsi_zarch", "*movsi_!zarch"): New insns. - ("*llgt_sisi_split", "*llgt_didi_split"): Insns deleted. Now covered - by "*andsi3_zarch" and "anddi3". - ("*anddi3_ni"): Insn merged with "anddi3". - ("*andsi3_ni"): Insn merged with "*andsi3_zarch". - ("*andsi3_zarch", "*andsi3_esa"): New insns. - ("*iordi3_oi"): Insn merged with "iordi3". - ("*iorsi3_oi"): Insn merged with "*iorsi3_zarch". - ("*iorsi3_zarch", "*iorsi3_esa"): New insns. - - * config/s390/s390.c (s390_single_qi, s390_single_hi): Functions - merged to s390_single_part. - (s390_single_part): New function. - NOTE: Semantics have changed a bit. Now the value of the part must - be different from the others to get a non-negative return value. - (s390_extract_qi, s390_extract_hi): Functions merged to - s390_extract_part. - (s390_extract_part, s390_extra_constraint_str, - s390_const_ok_for_constraint_p): New functions. The L constraint got a - new meaning and the N constraint was added as a multiple letter - constraint. - (s390_extra_constraint): Function deleted. - (print_operand): New output modifier 'i' and 'j' added. - All uses of CONST_OK_FOR_LETTER_P were replaced by - CONST_OK_FOR_CONSTRAINT_P. - - * config/s390/s390-protos.h: Function prototypes adapted. - * doc/md.texi: Documentation for new constraint letters added. - -2003-11-30 Andreas Schwab - - * Makefile.in ($(DESTDIR)$(infodir)/%.info): Fix missing semicolon. - -2003-11-29 James E Wilson - - * gcc.c (init_spec): Pass -lunwind to init_gcc_specs in eh_name - instead of in shared_name. - - * final.c (final_start_function): Delete code for NON_SAVING_SETJMP. - * reload1.c (reload): Re-add it here. - -2003-11-30 Alan Modra - - * config/rs6000/rs6000.c (rs6000_elf_section_type_flags): Don't - set SECTION_WRITE on TARGET_RELOCATABLE. - -2003-11-29 Kazu Hirata - - * config/h8300/h8300.h (LIBCALL_VALUE): Use R0_REG. - -2003-11-28 Gunther Nikl - - * config/m68k/m68k.c (MOTOROLA): Move from here... - * config/m68k/m68k.h (MOTOROLA): ... to here. - (OUTPUT_JUMP): Use do {...} while (0). - * config/m68k/m68k.md: Replace #ifdef MOTOROLA with C statements. - -2003-11-28 Gunther Nikl - - * config.gcc (m68020-*-elf*, m68k-*-elf*, m68010-*-netbsdelf*, - m68k*-*-netbsdelf*, m68k-*-rtems*): Add tm_defines containing - MOTOROLA and USE_GAS. - * config/m68k/rtemself.h (MOTOROLA): Delete. - * config/m68k/netbsd-elf.h (MOTOROLA, USE_GAS): Delete. - * config/m68k/m68kelf.h (MOTOROLA, USE_GAS, SGS_CMP_ORDER): Delete. - -2003-11-29 Kazu Hirata - - * config/h8300/h8300.h (WORDS_BIG_ENDIAN): Update the comment. - -2003-11-29 Kelley Cook - - * Makefile.in (install-info): Install gccinstall.info too. - -2003-11-29 Ulrich Weigand - - * config/s390/s390.md ("cmpint_di"): Fix incorrect instruction lengths. - -2003-11-29 Ulrich Weigand - - * config/s390/s390.md ("movhi"): Do not emit extender pattern - when loading from a (MEM (ADDRESSOF ...)). - ("movqi"): Likewise. - -2003-11-29 Joseph S. Myers - - PR c/10333 - * c-parse.in (typespec_reserved_nonattr): Reject typeof on - bit-fields. - -2003-11-29 Richard Sandiford - - * stmt.c (expand_asm_operands): Check whether force_const_mem - succeeded. - -2003-11-28 Kaveh R. Ghazi - - * config/gnu.h (HURD_TARGET_OS_CPP_BUILTINS): New. - * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): New. - - * config/alpha/gnu.h, config/alpha/linux.h, - config/arm/linux-elf.h, config/cris/cris.h, config/cris/linux.h, - config/i370/linux.h, config/i386/gnu.h, config/i386/i386.h, - config/i386/linux-aout.h, config/i386/linux.h, - config/i386/linux64.h, config/ia64/linux.h, config/m68k/linux.h, - config/m68k/uclinux.h, config/mips/linux.h, - config/mn10300/linux.h, config/pa/pa-linux.h, - config/rs6000/sysv4.h, config/s390/linux.h, config/sh/linux.h, - config/sparc/linux.h, config/sparc/linux64.h, - config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Use - HURD_TARGET_OS_CPP_BUILTINS/LINUX_TARGET_OS_CPP_BUILTINS or ensure - all necessary assertions are included. - -2003-11-28 Jan Hubicka - - * emit-rtl.c (set_used_flags): New. - (verify_rtx_sharing, verify_rtl_sharing): New. - (unshare_all_rtl_1): Rename to.... - (unshare_all_rtl_in_chain): ... this one; make static. - (copy_rtx_if_shared): LABEL_REF chan be shared. - * ifcvt.c (unshare_ifcvt_sequence): New. - (noce_try_move, noce_try_store_flag, noce_try_store_flag_constants, - noce_try_addcc, noce_try_addcc, noce_try_store_flag_mask, - noce_try_cmove, noce_try_store_flag_mask, noce_try_minmax, - noce_try_abs, noce_process_if_block, find_cond_trap - * rtl.h (verify_rtl_sharing, set_used_flags, unshare_all_rtl_in_chain): - Declare. - -2003-11-28 Kazu Hirata - - * config/h8300/h8300.md: Fix a comment typo. - -2003-11-28 Kazu Hirata - - * config/h8300/h8300.md (*movsf_h8300h): Change to - *movsf_h8300hs. - (addsi_h8300): Change to *addsi_h8300. - (addsi_h8300h): Change to *addsi_h8300hs. - (subsi3_h8300): Change to *subsi3_h8300. - (subsi3_h8300h): Change to *subsi3_h8300hs. - (neghi2_h8300h): Change to *neghi2_h8300hs. - (negsi2_h8300h): Change to *negsi2_h8300hs. - -2003-11-28 Kazu Hirata - - * config/h8300/h8300.md (*subhi3_h8300): Remove '&' from the - constraint. - (*subhi3_h8300hs): Likewise. - -2003-11-28 David Edelsohn - - * config/rs6000/rs6000.h (MASK_MFCRF): New. - (TARGET_MFCRF): Test target_flags, not processor type. - (TARGET_SWITCHES): Add mfcrf and no-mfcrf. - Change Don't to Do not. - * config/rs6000/rs6000.c (processors_target_table): Add MASK_MFCRF - to power4, 970, G5. - -2003-11-27 J"orn Rennecke - - * cse.c (cse_set_around_loop): When changing a constant load - to a register -register copy, add a REG_EQUAL note. - -2003-11-27 Randolph Chung - John David Anglin - - * pa.c (hppa_profile_hook): Split gen_call_profiler into separate - insns. Use the regular call expander for the call to the profiler. - * pa.md (call_profiler): Delete. - (load_offset_label_address): New insn to load the address of the - current function for the profiler. - (lcla1, lcla2): New insns to output a code label and load its address. - -2003-11-27 Kazu Hirata - - * final.c (final_scan_insn): Remove commented-out code. - -2003-11-27 Nathanael Nerode - - * doc/install.texi: Remove ADAC reference and make accurate. - -2003-11-27 Kazu Hirata - - * config/h8300/h8300.h (FUNCTION_VALUE): Use R0_REG. - (FUNCTION_VALUE_REGNO_P): Likewise. - * config/h8300/h8300.md: Define R0_REG. - -2003-11-27 Kazu Hirata - - * config/h8300/h8300.c: Fix formatting. - * config/h8300/h8300.md: Likewise. - -2003-11-27 Kazu Hirata - - * config/h8300/h8300.h (ELIMINABLE_REGS): Update a comment. - -2003-11-27 Kazu Hirata - - * config/h8300/h8300.md: Give names to anonymous insns. - -2003-11-27 Kazu Hirata - - * config/h8300/h8300.md (extendqisi2): Remove constraints. - -2003-11-27 Gunther Nikl - - * doc/tm.texi (SYSROOT_HEADERS_SUFFIX_SPEC): Fix typo. - -2003-11-27 Eric Botcazou - - 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. - -2003-11-27 Eric Botcazou - - 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. - -2003-11-27 Eric Botcazou - - PR middle-end/8028 - PR middle-end/9890 - PR middle-end/11151 - PR middle-end/12210 - PR middle-end/12503 - PR middle-end/12692 - * builtins.c (expand_builtin_apply): Use virtual_outgoing_args_rtx - as the base address to copy the memory arguments to. - -2003-11-26 Danny Smith - - * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Declare - function aliases as functions. - -2003-11-26 Nathanael Nerode - - * aclocal.m4 (gcc_AC_PROG_GNAT): Rewrite to account for removal - of ADAC. - * configure: Regenerate. - - * Makefile.in: Remove references to ADAC. - - * configure.in: Remove check for whether ${ADAC} accepts -Wno-long-long. - * configure: Regenerate. - -2003-11-26 Eric Botcazou - Olivier Hainque - - PR target/6466 - * config/sparc/sparc-protos.h (compute_frame_size): New prototype. - (sparc_flat_compute_frame_size): Likewise. - (sparc_flat_save_restore): Move prototype... - * config/sparc/sparc.c (sparc_flat_save_restore): ...here. - (save_regs): New prototype. - (build_big_number): Likewise. - (apparent_fsize): Change type to HOST_WIDE_INT. - (actual_fsize): Likewise. - (frame_base_offset): Likewise. - (build_big_number): Add support for HOST_BITS_PER_WIDE_INT == 64. - Change string descriptor to HOST_WIDE_INT_PRINT_DEC. - [TARGET_ARCH64]: Use the sequence of sparc_emit_set_const64_longway - to load a 64-bit constant. - (sparc_nonflat_function_prologue): Change string descriptor to - HOST_WIDE_INT_PRINT_DEC. Change offset type to HOST_WIDE_INT. - (output_restore_regs): Change offset type to HOST_WIDE_INT. - (sparc_nonflat_function_epilogue): Change string descriptor to - HOST_WIDE_INT_PRINT_DEC. Use build_big_number. - (output_sibcall): Change size type to HOST_WIDE_INT. Use - build_big_number. Change string descriptor to HOST_WIDE_INT_PRINT_DEC. - (sparc_frame_info): Change types for several components. - (sparc_flat_compute_frame_size): Update types according to previous - change. - (sparc_flat_function_prologue): Change string descriptor to - HOST_WIDE_INT_PRINT_DEC. Change offset type to int. Use - build_big_number. - (sparc_flat_function_epilogue): Change offset type to int. - Rename 'size1' into 'reg_offset1'. Change string descriptor to - HOST_WIDE_INT_PRINT_DEC. Use build_big_number. Change big number - limit to 4096 instead of 4095. - - * config/sparc/sparc.c (mems_ok_for_ldd_peep): Change offset type to - HOST_WIDE_INT. - -2003-11-24 Waldek Hebisch - - * function.c: Make outer_function-chain external. - * function.h: Likewise. - -2003-11-24 Richard Sandiford - - * config.gcc (mips-sgi-irix6*): Add t-iris6gld to tmake_file when - using GNU ld. - * config/mips/iris6.h (IRIX6_STARTFILE_SPEC): New, taking the - whole of the previous STARTFILE_SPEC except crtbegin.o%s. - (IRIX6_ENDFILE_SPEC): Likewise ENDFILE_SPEC and crtend.o%s. - (STARTFILE_SPEC, ENDFILE_SPEC): Define in terms of the above. - (SUBTARGET_EXTRA_SPECS): Define. - * config/mips/iris6gld.h (LINK_SPEC): Change -init function - to __gcc_init and -fini function to __gcc_fini. - (STARTFILE_SPEC): Redefine, including irix6-crti.o before crtbegin.o. - (ENDFILE_SPEC): Likewise, including irix6-crtn.o after crtend.o. - (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Define. - * config/mips/t-iris6gld, - * config/mips/irix6-crti.asm, - * config/mips/irix6-crtn.asm: New files. - -2003-11-24 Eric Christopher - - PR C/13014 - * c-decl.c (c_in_iteration_stmt, c_in_case_stmt): New. - (start_function): Use. - (c_push_function_context): Ditto. - (c-pop_function_context): Ditto. - (language_function): Move... - * c-tree.h: ... here. Add x_in_iteration_stmt, and - x_in_case_stmt. - * c-parse.in (do_stmt_start, select_or_iter_stmt, stmt): Use - c_in_iteration_stmt, c_in_case_stmt for parser state. Move - check for valid break or continue statment here... - * c-semantics.c (genrtl_break_stmt, genrtl_continue_stmt): From - here. Change original errors to abort. - -2003-11-24 Jan Hubicka - - * fold-const.c (fold): Do not return early when optimizing - COMPONENT_REF and constant. - -2003-11-24 Kazu Hirata - - * config/h8300/h8300.md (tablejump_h8300): Change to - *tablejump_h8300. - (tablejump_h8300h): Change to *tablejump_h8300hs_advanced. - (tablejump_normal_mode): Change to *tablejump_h8300hs_normal. - (indirect_jump_h8300): Change to *indirect_jump_h8300. - (indirect_jump_h8300h): Change to - *indirect_jump_h8300hs_advanced. - (indirect_jump_normal_mode): Change to - *indirect_jump_h8300hs_normal. - -2003-11-24 Kazu Hirata - - * config/h8300/h8300.md: Remove constraints from expanders. - -2003-11-24 Kazu Hirata - - * config/h8300/h8300.md: (stm_h8300s_2): Change the name to - stm_h8300s_2_advanced. - (stm_h8300s_2_normal): New. - (stm_h8300s_2): Likewise. - (stm_h8300s_3): Change the name to stm_h8300s_3_advanced. - (stm_h8300s_3_normal): New. - (stm_h8300s_3): Likewise. - (stm_h8300s_4): Change the name to stm_h8300s_4_advanced. - (stm_h8300s_4_normal): New. - (stm_h8300s_4): Likewise. - (ldm_h8300s_2): Change the name to ldm_h8300s_2_advanced. - (ldm_h8300s_2_normal): New. - (ldm_h8300s_2): Likewise. - (ldm_h8300s_3): Change the name to ldm_h8300s_3_advanced. - (ldm_h8300s_3_normal): New. - (ldm_h8300s_3): Likewise. - (ldm_h8300s_4): Change the name to ldm_h8300s_4_advanced. - (ldm_h8300s_4_normal): New. - (ldm_h8300s_4): Likewise. - (two peephole2's): Enable only with !TARGET_NORMAL_MODE. - (two peephole2's): New. - -2003-11-24 Zdenek Dvorak - - * genattrtab.c (simplify_cond): Update indices correctly. - (attr_alt_subset_p, attr_alt_subset_of_compl_p, attr_alt_intersection, - attr_alt_union, attr_alt_complement, attr_alt_bit_p, mk_attr_alt): New. - (check_attr_test, encode_units_mask, compute_alternative_mask, - make_alternative_compare, simplify_and_tree, - attr_rtx_cost, simplify_test_exp, gen_attr, - write_test_expr, walk_attr_value): Handle EQ_ATTR_ALT. - * rtl.def (EQ_ATTR_ALT): New. - -2003-11-23 Zdenek Dvorak - - * genattrtab.c (strcmp_check, DEF_ATTR_STRING): New macros. - (length_str, delay_type_str, delay_1_0_str, num_delay_slots_str): - New variables. - (main): Initialize them. - (find_attr): Canonicalize the attribute name string. - (attr_rtx_1, copy_boolean, expand_delays, gen_unit): Always canonicalize - string arguments. - (attr_printf, attr_eq): Use DEF_ATTR_STRING. - (check_attr_test, check_attr_value, make_length_attrs, - write_length_unit_log, simplify_by_exploding, gen_attr, - write_test_expr, write_attr_value, write_eligible_delay, - write_complex_function, make_internal_attr, - write_const_num_delay_slots): Changed due to change of type of - find_attr. - (fill_attr, evaluate_eq_attr, simplify_and_tree, - attr_rtx_cost, simplify_by_exploding, walk_attr_value): Use - strcmp_check. - -2003-11-23 Kazu Hirata - - PR target/13122 - * config/h8300/h8300.c (push): Call push_h8300hs_normal in - normal mode. - (pop): Call pop_h8300hs_normal in normal mode. - * config/h8300/h8300.md: Likewise. - (pushqi1_h8300hs_normal): New. - (pushqi1): Call pushqi1_h8300hs_normal in normal mode. - (pushhi1_h8300hs_normal): New. - (pushhi1): Call pushhi1_h8300hs_normal in normal mode. - (push_h8300hs_normal): New. - (pop_h8300hs_normal): Likewise. - -2003-11-23 Zdenek Dvorak - - * genattrtab.c (count_sub_rtxs): Removed. - -2003-11-23 Richard Earnshaw - - * recog.c (preprocess_constraints): Only zero those elements of - recog_op_alt that are needed for this insn. - * arm.c (note_invalid_constants): A function can't contain invalid - constants if it has no constraints. - -2003-11-22 Jan Hubicka - - * i386.c (classify_argument): Pass __float128 in memory. - (ix86_return_in_memory): Likewise. - (ix86_libcall_value): Likewsie. - -2003-11-22 Kazu Hirata - - * config/h8300/h8300.c (dosize): Convert to ISO-C. - -2003-11-22 J"orn Rennecke - - * flow.c (update_life_info): Amend comment about when a register - can become dead. - -2003-11-21 Kelley Cook - - * doc/.cvsignore: Delete. - -2003-11-21 Daniel Berlin - David Edelsohn - - * dwarf2out.c (add_location_or_const_value_attribute): Add support - for PARALLEL. - -2003-11-21 Rainer Orth - - * config/mips/t-iris6 (CRTSTUFF_T_CFLAGS): Add -Wno-error. - (TARGET_LIBGCC2_CFLAGS): Define. - - * crtstuff.c [HAS_INIT_SECTION] (__do_global_dtors): Declare. - (__do_global_ctors): Likewise. - -2003-11-21 Mark Wielaard - - * doc/invoke.texi (-O2): Doesn't enable -fweb. - -2003-11-21 Kazu Hirata - - * doc/invoke.texi: Mention dV and dZ. - -2003-11-21 Kazu Hirata - - * doc/invoke.texi: Update dump file names. - Remove de, dW, and dX. - -2003-11-20 James E Wilson - - PR c/13133 - * reload1.c (reload): Delete special handling for setjmp. - -2003-11-21 Andreas Tobler - - * mklibgcc.in: Evaluate shlib_slibdir_qual during link - step too. - * config/t-slibgcc-darwin: Adjust install path. - * config/rs6000/t-darwin: Revert multilib matches since - it is not used on darwin. - -2003-11-20 Richard Henderson - - * ssa.c, ssa-dce.c, ssa-ccp.c: Remove files. - * Makefile.in (OBJS-common, GTFILES): Don't reference them. - (gtype-desc.o, toplev.o, flow.o): Remove ssa.h. - (ssa.o, ssa-dce.o, ssa-ccp.o): Remove. - * flow.c: Don't include ssa.h. - (set_phi_alternative_reg): Remove. - (calculate_global_regs_live): Don't call it. - (mark_used_regs): Don't handle PHI. - * gengtype.c (open_base_files): Don't reference ssa.h. - * rtl.def (PHI): Remove. - * timevar.def (TV_TO_SSA, TV_SSA_CCP, TV_SSA_DCE, TV_FROM_SSA): Kill. - * common.opt: Remove -fssa, -fssa-ccp, -fssa-dce. - * opts.c (common_handle_option): Likewise. - * toplev.c (f_options): Likewise. - (DFI_ssa, DFI_ssa_ccp, DFI_ssa_dce, DFI_ussa): Remove. - (dump_file): Update to match. - (flag_ssa, flag_ssa_ccp, flag_ssa_dce): Remove. - (rest_of_handle_ssa): Remove. - (rest_of_compilation): Don't call it. - * toplev.h (flag_ssa, flag_ssa_dce, flag_ssa_ccp): Remove. - * doc/invoke.texi: Remove -fssa, -fssa-ccp, -fssa-dce. - * doc/passes.texi (SSA optimizations): Remove. - -2003-11-20 Bob Wilson - - * configure.in: Add xtensa-*-* targets to test for dwarf2 debug_line. - * configure: Regenerate. - -2003-11-20 Kelley Cook - - * Makefile.in (Makefile): Pass along CONFIG_SHELL. - -2003-11-20 David Mosberger - - * config/t-libunwind (LIB2ADDEH): Add unwind-c.c. - (SHLIB_LC): Define. - * unwind-libunwind.c (_Unwind_GetCFA): Implement. - (_Unwind_GetBSP) [UNW_TARGET_IA64]: New function. - -2003-11-20 Fariborz Jahanian - David Edelsohn - - * calls.c (expand_call): Allocate new temp in pass1. - (store_one_arg): If PARALLEL, calculate excess using mode size of - rtvec elt. - * expr.c (emit_push_insn): If PARALLEL, calculate offset using - mode size of rtvec elt. - * function.c (assign_parms): Use parm in register, if available. - -2003-11-20 Kazu Hirata - - * config/h8300/lib1funcs.asm (MOVP): Remove. - (ADDP): Likewise. - (CMPP): Likewise. - -2003-11-20 Richard Earnshaw - - * arm.c (use_return_insn): New argument, SIBLING. Support returning - with a single instruction if the stack has been decremented by 4 - and we have a frame pointer. Update all callers. - (output_return_instruction): Likewise. - (arm_output_epilogue): Change argument to SIBLING. Calculate - really_return from the new argument. Update all callers. - * arm.h (USE_RETURN_INSN): Pass NULL for the sibling. - * arm.md (sibcall_epilogue): Call use_return_insn directly, and - pass the sibling call. - * arm-protos.h (use_return_insn, arm_output_epilogue): Update - prototypes. - -2003-11-20 Joseph S. Myers - - * Makefile.in (extraclean): Delete. - * configure.in (target_list): Remove extraclean. - * configure: Regenerate. - * doc/makefile.texi, doc/sourcebuild.texi: Update. - * objc/Make-lang.in (objc.extraclean): Delete. - -2003-11-20 Joseph S. Myers - - * Makefile.in (lang_checks): Add. - (check-c++, check-f77, check-java, check-g++, check-g77, - check-objc): Remove hardcoded targets. - * doc/sourcebuild.texi: Document testsuite hooks. - * objc/Make-lang.in (check-objc, lang_checks): Add. - -2003-11-19 Scott Snyder - - PR target/13131 - * dwarf2out.c (gen_array_type_die): DW_AT_declaration should be a - flag, not a constant. - -2003-11-19 Kelley Cook - - * config/arc/arc-protos.h: Update to C90 prototypes. - * config/arc/arc.c: Likewise. - * config/arc/initfini.c: Likewise. - -2003-11-19 Andreas Krebbel - - * stmt.c (expand_goto): Memory clobbers added. - -2003-11-19 Andreas Krebbel - - * reload.c (find_reloads): Added missing type casts. - -2003-11-19 James E Wilson - - * combine.c (sets_function_arg_p): Delete unused function. - -2003-11-19 Eric Christopher - - * reload1.c (reload): Revert 2 previous checkins. - -2003-11-19 Nathanael Nerode - - * cpptrad.c (_cpp_scan_out_logical_line): Improve test for - whether directive begins at the beginning of a line. - -2003-11-19 Richard Sandiford - - * config/frv/frv.c (frv_init_libfuncs): Correct ufix_optab entries. - -2003-11-19 Gerald Pfeifer - - * doc/install.texi (Specific): Remove information on old versions - of glibc versus old versions of GCC. - -2003-11-19 Richard SAndiford - - * emit-rtl.c (gen_lowpart): Don't force MEMs into a register unless - the register lowpart is a TRULY_NOOP_TRUNCATION. - -2003-11-19 Richard Henderson - - * config/i386/i386.c (print_reg): Handle QI and HI modes for - non Q regs. - -2003-11-19 Andreas Tobler - - * config/config.gcc (powerpc-*-darwin*): Add libgcc build - specification file. - * config/t-slibgcc-darwin: New file, libgcc build specification. - * config/t-darwin: Add libgcc2 flag -fPIC. - * config/rs6000/t-darwin: Multilib matches float. - * libgcc-darwin.ver: New file, contains libgcc symbols. - -2003-11-18 Nathanael Nerode - - * config/ns32k/ns32k.h: Remove obsolete comment. - -2003-11-18 Roger Sayle - - PR middle-end/11821 - * config/arm/arm.c (arm_rtx_costs_1): Improve estimate of the code - size for calls to libgcc's div & mod subroutines when using -Os. - -2003-11-18 Jan Hubicka - - * cgraph.c (change_decl_assembler_name): Avoid bogus warnings. - -2003-11-18 Marc Espie - - * config/rs6000/sysv4.h: OpenBSD hooks. - -2003-11-18 Richard Henderson - - * expr.c (expand_expr): Don't look through constant arrays if - they don't bind locally. - -2003-11-17 Richard Kenner - - * expr.c (convert_move): Use GET_MODE_PRECISION instead of bitsize - when seeing if truncation or extension. - -2003-11-17 Eric Christopher - - * reload1.c (reload): Fix previous change. - -2003-11-17 Scott Snyder - - PR debug/11325 - * dwarf2out.c (struct die_struct): Add die_definition field. - (add_AT_specification): New. - (gen_subprogram_die, gen_variable_die, - gen_struct_or_union_type_die): Use it. - (prune_unused_types_mark): If we're marking a forward declaration, - also mark the full definition, if it exists. - -2003-11-16 Nick Clifton - - * config/stormy16/stormy16.h (BUILD_VA_LIST_TYPE): Delete. - * config/stormy16/stormy16-protos.h (xstormy16_build_va_list): - Remove prototype. - * config/stormy16/stormy16.c (xstormy16_build_va_list): Rename - to xstormy16_build_builtin_va_list and make static. - (TARGET_BUILD_BUILTIN_VA_LIST): Define. - -2003-11-16 Kazu Hirata - - * config/h8300/h8300-protos.h: Add the prototype for - same_cmp_following_p. - * config/h8300/h8300.c (same_cmp_following_p): New. - * config/h8300/h8300.md (peephole2): Use it. - -2003-11-16 Kazu Hirata - - * config/h8300/h8300.md: Don't use REGNO when its operand is - not guaranteed to be a REG. - -2003-11-16 Richard Sandiford - - * Makefile.in (expr.o): Depend on $(TARGET_H). - * target.h (return_in_msb): New target hook. - * target-def.h (TARGET_RETURN_IN_MSB): New macro. - (TARGET_CALLS): Include it. - * calls.c (shift_returned_value): New function. - (expand_call): Use it. - * expr.c: Include target.h. - (copy_blkmode_from_reg): Check targetm.calls.return_in_msb when - deciding what padding is needed. Change the name of the local - padding variable from big_endian_correction to padding_correction. - * stmt.c (shift_return_value): New function. - (expand_return): Use it. Adjust memory->register copy in the same - way as copy_blkmode_from_reg. Only change the return register's - mode if it was originally BLKmode. - * doc/tm.texi (TARGET_RETURN_IN_MSB): Document. - * config/mips/mips.c (TARGET_RETURN_IN_MSB): Define. - (mips_fpr_return_fields): New, split out from mips_function_value. - (mips_return_in_msb, mips_return_fpr_pair): New functions. - (mips_function_value): Rework to use the functions above. - * config/mips/irix6-libc-compat.c: Delete. - * config/mips/t-iris6 (LIB2FUNCS_STATIC_EXTRA): Undefine. - -2003-11-16 Kazu Hirata - - * doc/install.texi (--enable-checking): Update valgrind's URL. - -2003-11-16 Kazu Hirata - - * config/h8300/h8300.md: Fix warnings by replacing -2147483648 - with -2147483647 - 1. - -2003-11-16 Gerald Pfeifer - - Fix links in online manuals. - * doc/invoke.texi (H8/300 Options): @xref to ld, not ld.info. - (Precompiled Headers): @pxref to cpp, not cpp.info. - -2003-11-16 Jason Merrill - - * Makefile.in, objc/Make-lang.in (objc.tags): Create TAGS.sub - files in each directory and TAGS files that include them for each - front end. - -2003-11-15 Kazu Hirata - - * config/h8300/lib1funcs.asm (divnorm): Store the sign in bit - 3 of S2L. - (modnorm): Likewise. - (exitdiv): Look at bit 3 of S2L only. - -2003-11-15 Kazu Hirata - - * config/h8300/h8300.h (DO_GLOBAL_CTORS_BODY): Fix warnings. - (DO_GLOBAL_DTORS_BODY): Likewise. - -2003-11-15 Joseph S. Myers - - * doc/install.texi (Prerequisites): Refine documentation of - autoconf, automake and perl requirements. Document required - gettext version. - -<2003-11-14 Jason Merrill - - * function.c (assign_parms): Use TREE_TYPE to determine the real - type of the argument object. - -2003-11-14 Kazu Hirata - - * config/h8300/lib1funcs.asm (___udivsi3): Peel off the first - iteration. - -2003-11-14 Fariborz Jahanian - - * config/rs6000/rs6000.c (rs6000_move_block_from_reg): - New routine to save vararg registers on stack. Support for - -mpowerpc64 in mixed mode. - -2003-11-14 Bernardo Innocenti - - * config/m68k/m68k.c: Use C statements instead of #ifdef's when testing - for MOTOROLA versus MIT syntax. Improves readability and provides - better compile-time error checking for both code paths. - -2003-11-14 Kelley Cook - - * config/frv/frv-protos.h: Update for C90. - * config/frv/frv.h: Likewise. - * config/frv/frvbegin.c: Likewise. - * config/frv/frv.c: Likewise. - (frv_adjust_field_align): Delete unused variable. - -2003-11-14 Geoffrey Keating - - * config/rs6000/rs6000.md: Add 'DEFAULT_ABI == ABI_DARWIN' - to each place where TARGET_LONG_DOUBLE_128 is used with - DEFAULT_ABI == ABI_AIX. - - * cppfiles.c (_cpp_find_file): Make 'one or more PCH files were found' - message comply with GNU standards. - -2003-11-14 Richard Kenner - - PR/6552 - * function.c (struct epi_info): New field const_equiv. - (update_epilogue_consts): New function. - (keep_stack_depressed): Clear new field and verify scratch register - doesn't have it set. - Call new function via note_stores. - (handle_epilogue_set): Allow setting SP equiv reg in different mode. - Allow PLUS where second operand is register known set to constant. - (emit_equiv_load): Write load using proper mode if source different. - * config/mips/mips.md (return_internal): Put (return) first. - -2003-11-14 Kazu Hirata - - * config/h8300/lib1funcs.asm (___udivsi3): Add a comment. - -2003-11-14 Kazu Hirata - - * config/h8300/lib1funcs.asm (modsi3): Don't save unused - registers. - (divsi3): Likewise. - (reti): Don't restore unused registers. - -2003-11-14 Nick Clifton - - * config/fr30/fr30.c: Include toplev.h - -2003-11-14 Richard Earnshaw - - * except.c (sjlj_emit_function_enter): Mark internal label as LOCAL. - -2003-11-14 Richard Earnshaw - - * arm.c (arm_emit_vector_const, arm_output_load_gr): Use ISO C - function definition syntax. - -2003-11-14 Eric Christopher - - * reload1.c (reload): Revert previous patch. Make - check for assignment into reg_equiv_address stricter. - -2003-11-14 Arnaud Charlet - - * Makefile.in (POSTSTAGE1_FLAGS_TO_PASS): Pass ADAFLAGS. - -2003-11-14 Richard Sandiford - - * config/frv/frv.c (frv_in_small_data_p): Return false for unknown - section names. - -2003-11-14 Jason Merrill - - PR middle-end/12526 - * tree.c (build): A CALL_EXPR has side-effects if its arguments do. - * calls.c (call_expr_flags): New fn. - * tree.h: Declare it. - -2003-11-13 Kazu Hirata - - * config/h8300/lib1funcs.asm (__udivsi3): Remove. - (divmodsi3): Change the name to ___udivsi3. - Update all callers. - -2003-11-13 Kaveh R. Ghazi - - * libgcc2.c (__negdi2, __addvsi3, __addvdi3, __subvsi3, __subvdi3, - __mulvsi3, __negvsi2, __negvdi2, __mulvdi3, __lshrdi3, __ashldi3, - __ashrdi3, __ffsDI2, __muldi3, __clzDI2, __ctzDI2, __parityDI2, - __udivmoddi4, __divdi3, __moddi3, __cmpdi2, __ucmpdi2, - __fixunstfDI, __fixunsxfDI, __fixunsdfDI, __fixunssfDI, - __floatdixf, __floatditf, __floatdidf, __floatdisf, __gcc_bcmp): - Const-ify and/or initialize automatic variables at declaration. - -2003-11-13 Kazu Hirata - - * config/h8300/lib1funcs.asm (divmodsi4): Replace all the uses - of er4 with er3. Adjust all callers. - -2003-11-13 Andrew Pinski - - * config/darwin.c (machopic_output_possible_stub_label): - Allow stub symbol be not defined when outputting possible - stub label. - -2003-11-13 Kazu Hirata - - * config/h8300/lib1funcs.asm (___udivsi3): Jump to reti - instead of exitdiv. - (___umodsi3): Likewise. - (exitdiv): Do not restore any register. - (reti): Restore registers. - -2003-11-13 Steven Bosscher - - * tree-inline.c (walk_tree): Handle PLACEHOLDER_EXPR. - -2003-11-13 Kazu Hirata - - * config/h8300/lib1funcs.asm: Fix comment typos. - -2003-11-13 Kazu Hirata - - * config/h8300/lib1funcs.asm (udivsi3): Don't save/restore - unused registers. Don't jump to exitdiv. - (umodsi3): Likewise. - -2003-11-13 Mark Mitchell - Kean Johnston - - PR c/13029 - * toplev.c (check_global_declarations): Do not warn about unused - static consts. - -2003-11-13 Pavel Pisa - Kazu Hirata - - * config/h8300/lib1funcs.asm (DenHighNonZero): Optimize using - the approximate quotient method. - -2003-11-13 Richard Earnshaw - - * combine.c (distribute_notes): When re-distributing the notes from - an insn we are about to delete, ensure we can't end up with a cyclic - list of notes. - -2003-11-13 Eric Botcazou - - 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. - -2003-11-12 Kazu Hirata - - * config/h8300/lib1funcs.asm (divmodsi4): Clear S0P in - DenHighNonZero. - -2003-11-13 Jan Hubicka - - PR opt/12275 - * c-decl.c (finish_decl): Use change_decl_assembler_name. - * c-pragma.c (handle_pragma_redefine_extname): Likewise. - * varasm.c (make_decl_rtl): Likewise. - * cgraph.c (change_decl_assembler_name): New function. - * tree.h (set_decl_assembler_name): Kill dead declaration. - (change_decl_assembler_name): Declare. - - * decl.c (make_rtl_for_nonlocal_decl): Use change_decl_assembler_name. - * decl2.c (make_rtl_for_nonlocal_decl): Use change_decl_assembler_name. - -2003-11-12 Kazu Hirata - - * config/h8300/lib1funcs.asm (___mulsi3): Don't save/restore - an unused register. - -2003-11-12 Richard Sandiford - - PR bootstrap/12752 - * config/mips/t-iris6 (MULTILIB_OPTIONS): Put -mabi=n32 first. - (MULTILIB_OSDIRNAMES): Reorder accordingly. - -2003-11-12 Janis Johnson - - * rs6000-protos.h (rs6000_initial_elimination_offset): Add. - (rs6000_stack_info): Remove. (debug_stack_info): Remove. - (rs6000_emit_eh_reg_restore): Add - * rs6000.c (rs6000_stack_t): Move from rs6000.h, change data type - of vars_size and total_size to HOST_WIDE_INT. - (emit_frame_save): Change parameter size to HOST_WIDE_INT. - (rs6000_stack_info): Make static; change data size to HOST_WIDE_INT. - (debug_stack_info): Make static; change output format of HOST_WIDE_INT - values. - (rs6000_emit_eh_reg_restore): New, with code formerly in rs6000.md. - (rs6000_initial_elimination_offset): New, with code formerly in - INITIAL_ELIMINATION_OFFSET. - * rs6000.h (rs6000_stack_t): Remove. - (INITIAL_ELIMINATION_OFFSET): Replace code with call to function - rs6000_initial_elimination_offset. - * rs6000.md (UNSPECV_EH_RR split): Replace code with call to - rs6000_emit_eh_reg_restore. - -2003-11-12 Mike Stump - - * c-typeck.c (c_convert_parm_for_inlining): Add argnum, which - is the argumnt we are processing so that warnings and errors - will have that information. - * c-tree.h (c_convert_parm_for_inlining): Add argnum. - * lang-hooks-def.h - (lhd_tree_inlining_convert_parm_for_inlining): Likewse. - * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining): Likewise. - * langhooks.h (convert_parm_for_inlining): Likewise. - * tree-inline.c (initialize_inlined_parameters): Compute and - pass argnum down. - -2003-11-12 Alexey Starovoytov - Roger Sayle - - PR optimization/12953 - * tree-inline.c (inline_forbidden_p_1): Added check for BUILT_IN - before switch by FUNCTION_CODE. - -2003-11-12 Richard Earnshaw - - * arm.md (storehi): Avoid use of explicit subreg. - (storehi_bigend, storeinthi, movhi_bigend): Likewise. - -2003-11-12 J"orn Rennecke - - * config/sh/sh.md (prefetch): New pattern. - -2003-11-11 Eric Christopher - - * reload1.c (reload): Verify that addresses for - reg_equiv_* are valid for the architecture. - -2003-11-11 Eric Christopher - - * function.c (purge_addressof_1): Add libcall check. - Remove test for cached replacements on fallback case. - Simplify mode comparisons. Add libcall test for - paradoxical subregs. - -2003-11-11 Kazu Hirata - - * config/h8300/t-h8300: Fix an obsolete comment. - -2003-11-11 James E Wilson - - * expmed.c (store_bit_field, extract_bit_field): Revert last two - changes. - -2003-11-11 Kazu Hirata - - * config/h8300/lib1funcs.asm: Replace DenHighZero with - DenHighNonZero. - -2003-11-11 Jan Hubicka - - * cgraphunit.c (cgraph_function_possibly_inlined_p): Use - really_no_inline. - -2003-11-11 John David Anglin - - * pa.h (TRAMPOLINE_TEMPLATE): Fix flushing of cache lines when - generating 64-bit code. - -2003-11-10 David Edelsohn - - * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Remove - accidental commit in previous change. - -2003-11-10 Fariborz Jahanian - - * config/rs6000/rs6000.h (STACK_SIZE_MODE): Add definition. - * config/rs6000/rs6000.c (reg_or_mem_operand): Add macho-style - address recognition. - (macho_lo_sum_memory_operand): Routine to recognize macho-style - address recognition. - -2003-11-10 Richard Henderson - - * dwarf2out.c (gen_label_die): Cope with DECL_RTL not set. - -2003-11-10 Matt Austern - - * config/darwin-protos.h (darwin_assemble_visibility): Declare. - * config/darwin.c (darwin_assemble_visibility): Define. Warn for - anything other than VISIBILITY_DEFAULT and VISIBILITY_HIDDEN. - * config/darwin.h (TARGET_ASM_ASSEMBLE_VISIBILITY): Use - darwin_assemble_visibility instead of default. - -2003-11-10 Waldek Hebisch - - PR target/12865 - * config/sparc/sparc.c (sparc_initialize_trampoline): Call - __enable_execute_stack only after writing onto the stack. - (sparc64_initialize_trampoline): Likewise. - -2003-11-09 Roger Sayle - - * loop.c (check_dbra_loop): Try swapping the comparison operands - of the loop condition to identify a suitable induction variable. - * unroll.c (loop_iterations): Likewise. - -2003-11-09 Kaveh R. Ghazi - - * config/sparc/sparc.h (TARGET_CPU_CPP_BUILTINS): Fix sparc vs - sparc64 #cpu and #machine assertions. - -2003-11-09 Richard Henderson - - * Makefile.in (rtlanal.o): Depend on BASIC_BLOCK_H. - -2003-11-09 Jan Hubicka - - * tree-optimize.c (tree_rest_of_compilation): Fix warning. - - * cgraphunit.c (cgraph_expand_function): Use - cgraph_possibly_inlined_p. - * tree-optimize.c (tree_rest_of_compilation): Do not kill saved tree. - - * opts.c (common_handle_option): Do not set max-inline-insns. - * params.def: Update comments. - (PARAM_MAX_INLINE_INSNS): Kill. - * invoke.texi (max-inline-insns): Kill. - -2003-11-08 Joseph S. Myers - - PR c/3190 - PR c/8714 - * c-format.c (set_Wformat): Do not enable -Wformat-y2k by default. - * invoke.texi: Update. - -2003-11-08 John David Anglin - - PR optimization/12630 - * pa.c (compute_movstrsi_length): Rename to compute_movstr_length. - Handle length computation 64-bit moves. - (compute_clrstr_length, output_block_clear): Implement block clear. - (output_block_move): Handle 64-bit moves. - (pa_adjust_insn_length): Use compute_movstr_length and - compute_clrstr_length. - * pa.md (movstrsi): Revise operand order and comments. Don't use - match_scratch. - (movstrsi_internal): Delete. - (movstrsi_prereload, movstrsi_postreload): New insns. Define splitter - and peephole2 patterns to transform prereload to postreload form. - (movstrdi, movstrdi_prereload, movstrdi_postreload, clrstrsi, - clrstrsi_prereload, clrstrsi_postreload, clrstrdi, clrstrdi_prereload, - clrstrdi_postreload): New patterns for 64-bit block move, and block - clear. - * pa-protos.h (output_block_clear): New prototype. - -2003-11-08 Andreas Schwab - - * dbxout.c (current_file): Also wrap inside DBX_DEBUGGING_INFO || - XCOFF_DEBUGGING_INFO. - -2003-11-08 Kaveh R. Ghazi - - * dbxout.c (current_file): Wrap declaration in DBX_USE_BINCL. - -2003-11-07 Geoffrey Keating - - * config/rs6000/rs6000.c (rs6000_legitimize_address): Remove - redundant parens. - - * cppfiles.c (pch_open_file): New parameter 'invalid_pch', set it. - (find_file_in_dir): Likewise. - (_cpp_find_file): Print message if no header file is found - but an invalid PCH file was. - -2003-11-08 Joseph S. Myers - - * c-typeck.c (pedantic_lvalue_warning): Deprecate compound - expressions as lvalues. - (internal_build_compound_expr): Remove special handling for - non-pedantic case. - * doc/extend.texi: Document that all extended lvalues are now - deprecated. - -2003-11-07 Geoffrey Keating - - PR 11654 - * dbxout.c (struct dbx_file): Do not save for PCH. - (current_file): Likewise. - (dbxout_init): Don't allocate struct dbx_file using GC. - (dbxout_start_source_file): Likewise. - -2003-11-07 Falk Hueffner - - * config/alpha/elf.h, config/alpha/unicosmk.h, - config/alpha/vms.h: Convert to ISO C90. - -2003-11-07 Nathanael Nerode - - * config/arm/pe.h: Convert to ISO C90. - -2003-11-07 J"orn Rennecke - - * sh-protos.h (sh_pch_valid_p): Declare. - * sh.c ("intl.h"): Include. - (TARGET_PCH_VALID_P): Override. - (sh_target_switches): New variable. - (target_switches): Define. - (sh_pch_valid_p): New function. - - * sh.h (MODE_AFTER): Don't change mode unless TARGET_HITACHI. - -2003-11-07 Jan Hubicka - - * i386.c (x86_64_sign_extended_value): Return false from tls variables. - (x86_64_zero_extended_value): likewise. - -2003-11-07 Richard Sandiford - - * config/mips/mips.md (loadgp): Take $25 as a second operand. - * config/mips/mips.c (mips_expand_prologue): Modify accordingly. - -2003-11-06 Matt Austern - - * c-common.c (handle_visibility_attribute): Set DECL_VISIBILITY - field instead of hanging an attribute object off the decl. - * tree.h (DECL_VISIBLITY): New accessor macro for - symbol_visibility field in struct tree_decl. - (enum symbol_visibility): Move definition to before tree_decl. - (struct tree_decl): Define new two-bit field, symbol_visibility. - (decl_visibility): Remove declaration. - * varasm.c (maybe_assemble_visibility): Use DECL_VISIBILITY - instead of decl_visibility. - (default_binds_local_p_1): Use DECL_VISIBILITY instead of - decl_visibility. - (decl_visibility): Remove. - -2003-11-06 Ulrich Weigand - - * config/s390/s390.c (s390_emit_epilogue): Recognize more cases - where register 14 will be saved. - -2003-11-06 Geoffrey Keating - - * config/rs6000/rs6000.h (USE_FP_FOR_ARG_P): Move to rs6000.c. - (USE_ALTIVEC_FOR_ARG_P): Likewise. - * config/rs6000/rs6000.c (USE_FP_FOR_ARG_P): Move from rs6000.h. - Take a pointer as the CUM parameter. Update callers. - (USE_ALTIVEC_FOR_ARG_P): Likewise. Also correct for Darwin/AIX - 32-bit ABIs. - (function_arg_advance): Use USE_ALTIVEC_FOR_ARG_P. Correct case - of vector parameters as named arguments of stdarg function. - (function_arg): Likewise. - - * config/rs6000/darwin.h (ASM_SPEC): Use -force_cpusubtype_ALL when - -maltivec is specified, not the non-existent -faltivec. - -2003-11-06 Ulrich Weigand - - * config/s390/s390-protos.h (s390_function_value): Declare. - * config/s390/s390.c (TARGET_RETURN_IN_MEMORY): Define. - (s390_return_in_memory): New function. - (s390_function_value): New function. - (s390_function_arg_float): Return false for all arguments larger - than 8 bytes. - (s390_function_arg_pass_by_reference): Likewise. Return true for - all vector arguments. - (s390_function_arg_integer): New function. - (s390_function_arg_advance): Call it. Add sanity checks. - (s390_function_arg): Likewise. - * config/s390/s390.h (FUNCTION_VALUE): Call s390_function_value. - (LIBCALL_VALUE): Likewise. - (RET_REG): Remove. - (RETURN_IN_MEMORY): Remove. - -2003-11-06 Richard Sandiford - - * config/mips/mips-protos.h (mips_initial_elimination_offset): Change - return type to HOST_WIDE_INT. - * config/mips/mips.c (mips_frame_info): Give sizes type HOST_WIDE_INT. - Make initialized a bool. Make register masks unsigned ints. - (compute_frame_size): Make same mask change here. Use HOST_WIDE_INT - where appropriate. - (mips_initial_elimination_offset): Return a HOST_WIDE_INT. - (mips_output_function_prologue): Print sizes as HOST_WIDE_INTs. - -2003-11-06 Richard Sandiford - - * config/frv/frv.c (frv_initial_elimination_offset): Remove bogus - negation. - -2003-11-06 Richard Sandiford - - * config/frv/frv.h (ASM_OUTPUT_ALIGN_WITH_NOP): Define. - -2003-11-06 Momchil Velikov - - * config/mips/mips.c (override_options): Set MASK_SOFT_FLOAT - for VR4111 too. - -2003-11-06 Jan Hubicka - - * builtins.c (simplify_builtin_strrchr, simplify_builtin_strpbrk): Add - missing casts. - -2003-11-06 Zack Weinberg - - * genmodes.c: Change the word "bitsize" to "precision" throughout. - * machmode.def: Likewise. - * machmode.h (GET_MODE_SIZE): Cast value to unsigned short. - (GET_MODE_BITSIZE): Define as GET_MODE_SIZE * BITS_PER_UNIT. - (GET_MODE_PRECISION): New macro. - (mode_bitsize): Renamed mode_precision. - * stor-layout.c (mode_for_size, smallest_mode_for_size): - Use GET_MODE_PRECISION; clarify comments. - -2003-11-05 Joseph S. Myers - - * doc/install-old.texi: Remove old documentation of building - cross-compilers. - * doc/install.texi: Move some of it to here. - -2003-11-05 Per Bothner - - PR preprocessor/12891 - * c-opts.c (finish_options): Set include_cursor to disable premature - calls to push_command_line_include from cpp_scan_nooutput. - Fixes bug reported by DJ Delorie. - -2003-11-05 Geoffrey Keating - - * config/rs6000/rs6000.c (setup_incoming_varargs): Remove - code supporting old-style varargs. - - * config/rs6000/rs6000.c (rs6000_machopic_legitimize_pic_address): Use - an intermediate register for better optimisation. - -2003-11-05 Zdenek Dvorak - - PR optimization/10080 - * cfgloopanal.c (variable_initial_value, variable_initial_values, - simple_loop_exit_p): Record the fact that initial value is extended - from inner mode. - (count_strange_loop_iterations, count_loop_iterations): Handle - ivs that iterate in a narrower mode. Fix handling of overflows. - Improve handling of NE conditions. - (inverse, fits_in_mode_p): New static functions. - (simple_increment): Detect variables that iterate in a narrower mode. - * cfgloop.h (struct loop_desc): Fields inner_mode and extend added. - -2003-11-05 Geoffrey Keating - - * config/rs6000/rs6000.c (compute_vrsave_mask): Correct off-by-one - error. - - * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Darwin - needs VRSAVE. - -2003-11-05 Joseph S. Myers - - * c-typeck.c (pedantic_lvalue_warning): Deprecate use of - conditional expressions as lvalues. - -2003-11-05 Kazu Hirata - - * tsystem.h: Add the prototype of strlen. - * unwind-pe.h (read_encoded_value_with_base): Add an - appropriate cast to handle a case where the pointer size is - smaller than sizeof (int). - -2003-11-04 Richard Sandiford - - * config/mips/mips-protos.h (mips_global_pic_constant_p): Delete. - (mips_delegitimize_address): Delete. - (mips_gotoff_global, mips_load_got_page): Declare. - (mips_load_got_global, mips_rewrite_small_data): Declare. - - * config/mips/mips.h (FIND_BASE_TERM): Remove definition. - (DANGEROUS_FOR_LA25_P): Use global_got_operand. - (PREDICATE_CODES): Add global_got_operand, local_got_operand and - small_data_pattern. Remove CONST from const_arith_operand's entry. - - * config/mips/mips.c (UNSPEC_ADDRESS_P, CONST_GP_P): New macros. - (UNSPEC_ADDRESS, UNSPEC_ADDRESS_TYPE): Likewise. - (mips_constant_type): Delete. - (mips_symbol_type): Add SYMBOL_GOTOFF_PAGE, SYMBOL_GOTOFF_GLOBAL, - SYMBOL_GOTOFF_CALL and SYMBOL_GOTOFF_LOADGP. - (NUM_SYMBOL_TYPES): New macro. - (mips_address_type): Remove ADDRESS_INVALID. - (machine_function): Add has_gp_insn_p. - (mips_constant_info): Delete. - (mips_address_info): Add the address type as an extra field. Replace - the c field with symbol_type. - (mips_split_p, mips_lo_relocs, mips_hi_relocs): New arrays. - (TARGET_DELEGITIMIZE_ADDRESS): Remove definition. - (mips_reloc_offset_ok_p, mips_classify_constant): Delete. - (mips_split_const, mips_symbolic_constant_p): New functions. - (mips_symbolic_address_p): Take the symbol type and mode as arguments. - (mips_classify_address): Return true if the address is valid, storing - its type in INFO. Use mips_symbolic_constant_p. Use mips_lo_relocs[] - to test whether a LO_SUM address is allowed. - (mips_symbol_insns): Return 0 for general mips16 symbols. - Reorder SYMBOL_GOT_GLOBAL case to match mips_symbol_type definition. - Handle the new SYMBOL_GOTOFF_*s. - (mips_address_insns): Update call to mips_classify_address. - (mips_const_insns): Be more fussy about HIGH constants. Remove use - of mips_classify_constant. Be more accurate about CONSTs. - (mips_global_pic_constant_p): Delete. - (const_arith_operand): Only accept CONST_INTs. - (call_insn_operand): Remove call to mips_classify_constant. - Let mips_symbolic_constant_p check for invalid offsets. - (move_operand): Check for general_operands first. Only accept symbolic - constants if they satisfy mips_symbolic_constant_p and cannot be split. - (symbolic_constant): Use mips_symbolic_constant_p. - (global_got_operand, local_got_operand): New predicates. - (stack_operand): Update call to mips_classify_address. - (mips_legitimate_address_p): Likewise. - (mips_reloc, mips_lui_reloc): Delete. - (mips_force_temporary): Only use the given temporary if no_new_pseudos. - Use emit_move_insn. - (mips_split_symbol, mips_unspec_address): New functions. - (mips_unspec_offset_high): New function. - (mips_load_got): Replace reloc argument with a symbol_type. - Use mips_unspec_address to create the address and put it in a - LO_SUM with the base register. - (mips_load_got16, mips_load_got32): Delete. - (mips_emit_high, mips_legitimize_symbol): Delete. - (mips_gotoff_global): New function. - (mips_load_got_page, mips_load_got_global): New functions. - (mips_legitimize_symbol): Inline handling of LO_SUM splits. - (mips_legitimize_const_move): Likewise. Remove HIGH handling. - Inline code to handle constants plus invalid offsets. Use - mips_split_symbol to legitimize constant pool addresses. - (mips_delegitimize_address): Delete. - (mips_rtx_costs): Give legitimate symbolic constants and CONST_DOUBLEs - a cost of 1 insn. Give the rest a cost of CONSTANT_POOL_ADDRESS. - (mips_subword): Pass memrefs through mips_rewrite_small_data. - (mips_output_move): Remove use of mips_classify_constant. - (mips_expand_call): Use mips_unspec_offset_high to calculate the - high part of the GOT address for calls to global functions. - (override_options): Initialize mips_split_p[], mips_lo_relocs[] - and mips_hi_relocs[]. - (print_operand): Use print_operand_reloc to handle '%h' and '%R'. - Remove use of mips_classify_constant. - (mips_reloc_string): Delete. - (print_operand_reloc): New function. - (print_operand_address): Update call to mips_classify_address. - (mips_rewrite_small_data_p, small_data_pattern_1): New functions. - (small_data_pattern): New predicate. - (mips_rewrite_small_data_1, mips_rewrite_small_data): New functions. - (mips_function_has_gp_insn): New function. - (mips_global_pointer): Use it. - (mips_gp_insn): Delete. - (mips_expand_prologue): When compiling for n32/n64 abicalls, use a - single loadgp pattern to initialize $gp. Pass it the offset of _gp - from the start of the current function. - (mips16_gp_pseudo_reg): Revert last patch. - - * config/mips/mips.md (RELOC_*): Delete. - (UNSPEC_LOADGP, UNSPEC_FIRST_ADDRESS): New constants. - (got): New insn attribute. - (type): Set to "load" if got == load. - (length): Set to 4 if got == load, 8 if got == xgot_high. - (lui[sd]i): Delete. - (*xgot_hi[sd]i, *xgot_lo[sd]i): New patterns. - (*got_disp[sd]i, *got_page[sd]i): Likewise. - (*low[sd]i): Change constraints to "d". Add a new define_split to - rewrite small data constants into LO_SUMs. - (loadgp): New insns. - -2003-11-04 Rainer Orth - - * config/mips/_tilib.c: Use _ABI* in _MIPS_SIM tests. - -2003-11-04 DJ Delorie - - * config/v850/v850.md (mulhisi3): Expand the const_int case - separately to avoid trying to sign extend the const. - -2003-11-04 Richard Sandiford - - * emit-rtl.c (copy_rtx_if_shared): Don't allow MEMs with constant - addresses to be shared. - (force_const_mem): Return a copy of the pool entry. - -2003-11-03 Andreas Jaeger - - * Makefile.in (GCC_CFLAGS): Remove @WERROR@ again. - -2003-11-03 Kelley Cook - - * Makefile.in (cpp.dvi): New target split from cpp.info. - (gcc.dvi): New target split from gcc.info. - (gccint.dvi): New target split from gccint.info. - (cppinternals.dvi): New target split from cppinternals.info - (gccinstall.info): New specific rule. - (gccinstall.dvi): Likewise. - (dvi): Move targets to $(docobjdir). - ($(docobjdir)/%.dvi): New implicit rule. - -2003-11-03 Richard Kenner - - * doc/gty.texi (tag, desc): Say more about role of desc values in - selecting between tags. - -2003-11-03 Alexander Kabaev - - * real.c (encode_ieee_single): Ensure proper promotion. - -2003-11-03 Volker Reichelt - - * doc/contrib.texi: Add Giovanni Bajo, Dara Hazeghi, Falk Hueffner, - and Andrew Pinski. - -2003-11-03 Syd Polk - - * config/rs6000/rs6000.c (rs6000_override_options): Add G3, G4, and G5 - marketing names to the list of supported processors. - * config/rs6000/rs6000.h: Ditto. - * doc/invoke.texi: Ditto. - * config.gcc: Ditto. - -2003-11-03 Rainer Orth - - * fixinc/inclhack.def (stdio_va_list): Allow tab before va_list. - Merge two substitutions. - * fixinc/fixincl.x: Regenerate. - Fixes PR bootstrap/12666. - -2003-11-03 Joseph S. Myers - - * doc/install-old.texi: Remove VMS documentation. - -2003-11-03 Jan Hubicka - - * i386.c (override_options): Remove hack enabling 128bit long double - commited by accident. - -2003-11-02 Per Bothner - - * c-opts.c (needValue): Do cpp_find_main_file before processing - any imacros flags, so pfile->main_file is set for the latter. - -2003-11-03 Andreas Jaeger - Zack Weinberg - - * Makefile.in (GCC_CFLAGS): Allow blacklisting of warnings. - (SYSCALLS.c.X-warn): Suppress warnings. - -2003-11-02 John David Anglin - - PR optimization/12845 - * pa.c (output_cbranch): Use cmpb for DImode comparisons with 0. - -2003-11-02 Zack Weinberg - - * print-rtl.c (print_rtx): Call PRINT_REG with second argument -1. - * config/i386/i386.c (print_reg): Abort on a virtual register - if code != -1; not if file == asm_out_file. - * config/i386/i386.h (PRINT_REG): Document meaning of CODE == -1. - (DEBUG_PRINT_REG): Delete, unused. - -2003-11-02 Andreas Schwab - - * config/ia64/fde-glibc.c (_GNU_SOURCE): Define to 1 instead of - empty to avoid conflict with the definition from configure. - -2003-11-02 Roger Sayle - - 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. - -2003-11-02 Richard Sandiford - - * 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. - -2003-11-02 Eric Botcazou - - PR optimization/12799 - * postreload.c (reload_cse_move2add): Generate the add2 - patterns manually. - -2003-11-02 Eric Botcazou - - * 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. - -2003-11-01 Kelley Cook - - * .cvsignore: Remove c-parse* and tradcif.c. - * objc/.cvsignore: Delete. - -2003-11-01 Roger Sayle - - * unwind-sjlj.c (_Unwind_GetCFA): Return (_Unwind_Word)0 instead - of NULL. - -2003-11-01 John David Anglin - - * som.h (DO_GLOBAL_DTORS_BODY): Change to C90 declaration. - - * libgcc2.c (SYMBOL__MAIN): Provide C90 declaration. - - * collect2.c (scan_libraries): Fix typos. - - PR preprocessor/12847 - * cppfiles.c, cppexp.c, cpperror.c, cpplib.h, cpplib.c, cpplex.c, - cppinit.c, cpptrad.c, cppmacro.c, fix-header.c, cpppch.c, c-pch.c, - c-incpath.c, cppcharset.c (DL_WARNING, DL_WARNING_SYSHDR, DL_PEDWARN, - DL_ERROR, DL_ICE, DL_EXTRACT, DL_WARNING_P): Prefix macro names with - "CPP_". - -2003-11-01 Fariborz Jahanian - - * config/rs6000/rs6000.c (rs6000_mixed_function_arg): Correct - no_units calculation. - -2003-11-01 Andreas Jaeger - - * unwind-dw2.c (_Unwind_FrameState): Remove commas at end of - enumeration list. - -2003-11-01 Andreas Schwab - - * config/ia64/sysv4.h (SDATA_SECTION_FUNCTION): Update to C90 - prototypes. - (SBSS_SECTION_FUNCTION): Likewise. - -2003-11-01 Andreas Jaeger - - * Makefile.in (GCC_CFLAGS): Add @WERROR@ for target files. - -2003-11-01 Andreas Tobler - - * config/rs6000/sysv4.h (EXTRA_SECTION_FUNCTIONS): Update to C90 - prototypes. - -2003-11-01 Andreas Jaeger - - * unwind-dw2.c (_Unwind_FindEnclosingFunction): Constify variable. - (uw_frame_state_for): Constify variables. - (extract_cie_info): Constify first argument. - - * 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. - -2003-10-31 Per Bothner - - * c-opts.c (finish_options): Change to returns boolean - false iff - the call to cpp_find_main_file fails. - (c_common_init): Skip preprocess_file if finish_options failed. - (c_common_parse_file): Break if finish_options failed. - Fixes PR preprocessor/12545. - -2003-10-31 John David Anglin - - * aclocal.m4: Blacklist ultrix* for mmap file. - * configure: Rebuilt. - - * function.c (assign_parms): Add ATTRIBUTE_UNUSED to variable - reg_parm_stack_space. - * toplev.c (default_get_pch_validity): Fix warning. - - * 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 Roger Sayle - - PR middle-end/11968 - * expr.c (expand_expr ): Remove inappropriate and - confusing comment; distributivity isn't handled in expand_expr. - * fold-const.c (extract_muldiv_1 ): Allow overflow - in distributivity, if wrap-around semantics are specified with - -fwrapv. - -2003-11-01 Alan Modra - - PR 12315 - * final.c (profile_function): Allow for NULL svrtx. - -2003-10-31 John David Anglin - - * pa.c (pa_select_section): Use new style declaration. - * som.h (readonly_data): Likewise. - -2003-10-31 Kelley Cook - - * config/rs6000/rs6000.c: Update to C90 prototypes. - -2003-10-31 Richard Earnshaw - - PR target/7513 - * arm.h (CONDITIONAL_REGISTER_USAGE): Disable use of LR in Thumb - code. - -2003-10-31 Andreas Jaeger , - Zack Weinberg - - - * crtstuff.c (__register_frame_info, __register_frame_info_bases) - (__deregister_frame_info, __deregister_frame_info_bases): - Constify void * argument. - * unwind-dw2-fde.h (struct fde_vector): - Constify 'orig_data' and 'array' fields. - (__register_frame_info, __register_frame_info_bases) - (__deregister_frame_info, __deregister_frame_info_bases): - Constify void * argument. - (get_cie, next_fde, _Unwind_Find_FDE): Constify arguments, - return values, and casts of type fde *, struct dwarf_fde *, - and struct dwarf_cie *. - * unwind-dw2-fde.c (__register_frame_info, __register_frame_info_bases) - (__deregister_frame_info, __deregister_frame_info_bases): - Constify void * argument. - (get_cie_encoding, ): Constify struct dwarf_cie * argument. - (get_fde_encoding, fde_unencoded_compare, fde_single_encoding_compare) - (fde_mixed_encoding_compare, fde_compare_t, start_fde_sort, fde_insert) - fde_split, SWAP, frame_downheap, frame_heapsort) - (classify_object_over_fdes, add_fdes, linear_search_fdes, - binary_search_unencoded_fdes, binary_search_single_encoding_fdes, - binary_search_mixed_encoding_fdes, search_object, _Unwind_Find_FDE): - Constify arguments, local variables, return values, and casts - of type fde *, fde **, struct dwarf_fde *, and struct dwarf_cie *. - Use const pointer types in sizeof expressions, for clarity. - * unwind-dw2-fde-glibc.c - (_Unwind_find_registered_FDE, _Unwind_find_FDE): Constify return value. - (struct unw_eh_callback_data): Constify 'ret' field. - -2003-10-31 Fariborz Jahanian - David Edelsohn - - * 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. - (UNITS_PER_ARG): New. - (RS6000_ARG_SIZE): Use it. - -2003-10-31 Gerald Pfeifer - - * .cvsignore: No longer ignore gengtype-lex.c, gengtype-yacc.c, - and gengtype-yacc.h. - -2003-10-31 Richard Earnshaw - - 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. - -2003-10-31 Josef Zlomek - - PR/10239 - * cfgrtl.c (delete_insn): Decrease LABEL_NUSES for all REG_LABEL notes. - -2003-10-31 Josef Zlomek - - PR/11640 - * cfgrtl.c (try_redirect_by_replacing_jump): Move jump - immediatelly before BARRIER. - -2003-10-31 Kelley Cook - - * Makefile.in (STRICT2_WARN): Add -Wold-style-definition. - -2003-10-31 Richard Earnshaw - - PR target/11271 - * reload.c (find_reloads_address): Handle any register in - (PLUS (PLUS (REG) (REG)) (CONST_INT). - -2003-10-31 Richard Earnshaw - - * ggc-page.c (ggc_pch_read): Wrap call to poison_pages in - ENABLE_GC_CHECKING not in GGC_POISON. - -2003-10-31 Nathanael Nerode - - PR bootstrap/9863 - * configure.in: Bail out if awk is missing. - * configure: Regenerate. - - 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. - -2003-10-30 Richard Henderson - - * c-objc-common.c (c_tree_printer): Handle types correctly. - Factor code a bit. - -2003-10-30 Kelley Cook - - * value-prof.c, web.c: Update to C90. - -2003-10-30 Eric Christopher - - * function.c (purge_addressof_1): Add case for REG_RETVAL - notes when modes are unequal. - -2003-10-31 Jan Hubicka - - * i386-modes.def: Add XFmode format adjustment. - -2003-10-30 Jan Hubicka - - * real.c (encode_ieee_extended): Back out previous patch. - -2003-10-30 Jan Hubicka - - * real.c (encode_ieee_extended): Initialize whole array. - * reg-stack.c (move_for_stack_reg0: Use always XFmode. - * i386-modes.def: Change definitions of TFmode and XFmode. - * i386.c (classify_argument): Rename TFmodes to XFmodes; add new TFmode - code. - (construct_container): Allow constructing of TFmode integer containers. - (ix86_return_in_memory): XFmode is not returned in memory. - (init_ext_80387_constants): Always use XFmode. - (print_operand): Likewise. - (ix86_prepare_fp_compare_regs): Likewise. - (split_to_parts): Deal with TFmode. - (split_long_move): Simplify. - (ix86_init_mmx_sse_builtins): Add __float80, __float128. - (ix86_memory_move_cost): Do not confuse TFmode. - * i386.h (LONG_DOUBLE_TYPE_SIZE): Set to 96. - (IS_STACK_MODE): TFmode is not stack mode. - (HARD_REGNO_NREGS, CLASS_MAX_NREGS): Deal nicely with XFmode. - (VALID_SSE_REG_MODE): Allow TFmode. - (VALID_FP_MODE_P): Disallow TFmode. - (VALID_INT_MODE_P): Allow TFmode in 64bit mode. - * i386.md (TFmode patterns): Kill. - (movtf, motf_rex64): New patterns. - -2003-10-30 Richard Sandiford - - * config/mips/mips.md (adddi3): Fix typo in mips16 stack pointer code. - -2003-10-30 Richard Sandiford - - * config/mips/mips.md (mov_lwl): Use memory_operand where appropriate. - (mov_lwr, mov_swl, mov_swr): Likewise. - (mov_ldl, mov_ldr, mov_sdl, mov_sdr): Likewise. - -2003-10-30 Richard Sandiford - - * config/mips/mips.c (mips_global_pointer): Don't try to use $25. - -2003-10-30 Richard Henderson - - * config/mips/mips.c (mips_build_builtin_va_list): Use runtime - test for irix6 rather than preprocessor test. - -2003-10-30 Richard Henderson - - * cppcharset.c (one_utf8_to_utf16): Initialize 's' to silence warning. - -2003-10-30 Ulrich Weigand - - * 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. - -2003-10-30 Richard Earnshaw - - * arm.c (arm_override_options): Revert change of arm_constant_limit - when optimizing for size. - -2003-10-29 Richard Henderson - - * fold-const.c (fold_single_bit_test): Convert the input to the - operational intermediate type. - -2003-10-29 Richard Henderson - - * builtins.c (std_build_builtin_va_list): New. - * expr.h (std_build_builtin_va_list): Declare. - * defaults.h (BUILD_VA_LIST_TYPE): New. - * system.h (BUILD_VA_LIST_TYPE): Poison. - * target-def.h (TARGET_BUILD_BUILTIN_VA_LIST): New. - * target.h (struct gcc_target): Add build_builtin_va_list. - * tree.c (build_common_tree_nodes_2): Use it. - - * config/alpha/alpha-protos.h, config/alpha/alpha.c, - config/alpha/alpha.h, config/alpha/unicosmk.h, - config/d30v/d30v-protos.h, config/d30v/d30v.c, config/d30v/d30v.h, - config/i386/i386-protos.h, config/i386/i386.c, config/i386/i386.h, - config/i860/i860-protos.h, config/i860/i860.c, config/i860/i860.h, - config/i960/i960-protos.h, config/i960/i960.c, config/i960/i960.h, - config/mips/iris6.h, config/mips/mips-protos.h, config/mips/mips.c, - config/mips/mips.h, config/rs6000/rs6000-protos.h, - config/rs6000/rs6000.c, config/rs6000/rs6000.h, - config/s390/s390-protos.h, config/s390/s390.c, config/s390/s390.h, - config/sh/sh-protos.h, config/sh/sh.c, config/sh/sh.h, - config/xtensa/xtensa-protos.h, config/xtensa/xtensa.c, - config/xtensa/xtensa.h: Rename foo_build_va_list to - foo_build_builtin_va_list; make it static. Define - TARGET_BUILD_BUILTIN_VA_LIST. Remove BUILD_VA_LIST_TYPE. - Update protos. - - * config/i386/i386.c (ix86_expand_carry_flag_compare): Make static. - * config/iq2000/iq2000.h (BUILD_VA_LIST_TYPE): Remove. - -2003-10-29 James E Wilson - - * 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. - -2003-10-29 Richard Henderson - - * config/m68k/m68k.c (notice_update_cc): Clear cc status for - shifts and rotates. - -2003-10-30 Alan Modra - - * config/rs6000/rs6000.md: Remove duplicate pattern. - -2003-10-29 Hans-Peter Nilsson - - * real.c (do_divide): Initialize result with a 0. - - * configure.in : Look for - 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 . Use - #elif for other alternatives. - * ggc-page.c: Ditto. - * ggc-zone.c: Don't assume ; instead copy - include structure from ggc-common.c. - -2003-10-29 John David Anglin - - * 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. - -2003-10-29 David Edelsohn - - * config/rs6000/rs6000.h (UNITS_PER_WORD): Revert to - !TARGET_POWERPC64. - (UNITS_PER_GPR_WORD): Delete. - (HARD_REGNO_NREGS): Revert to UNITS_PER_WORD. - (HARD_REGNO_MODE_OK): Same. - (CLASS_MAX_NREGS): Same. - -2003-10-29 John David Anglin - - * pa.h (ASM_COMMENT_START): Define. - -2003-10-29 Zack Weinberg - - * genmodes.c (complete_mode): Record MODE_CC, MODE_INT, - MODE_FLOAT, and MODE_PARTIAL_INT modes as having one - component, not zero. - -2003-10-29 Andreas Schwab - - * config/ia64/t-ia64 (LIB2ADDEH): Add $(srcdir)/gthr-gnat.c. - -2003-10-29 Eric Botcazou - - * config/sparc/sparc.c (function_arg_partial_nregs) [TARGET_ARCH64]: - Never return 1 for complex integral modes whose size is lesser or - equal to a word. - (function_arg_pass_by_reference) [TARGET_ARCH64]: Mention CTImode - in the comment. - (function_arg_advance) [TARGET_ARCH64]: Don't special-case complex - modes. - (sparc_va_arg) [TARGET_ARCH64]: Handle any types whose size is - greater than 16 bytes by reference. - -2003-10-29 Richard Kenner - - * config/ia64/ia64.c (ia64_assemble_integer): Test POINTER_SIZE, - not TARGET_ILP32. - (ia64_initialize_trampoline): Use globalize_label target call. - -2003-10-29 Andreas Schwab - - * doc/install.texi (Building): Add a sentence about building Ada - for a canadian cross. - -2003-10-28 Zack Weinberg - - * config/ia64/ia64.c (cmptf_libfunc): New static. - (ia64_expand_compare): Add logic to open-code calls to - _U_Qfcmp for TFmode comparisons. - (ia64_hpux_init_libfuncs): Initialize cmptf_libfunc. - Set libfuncs for TFmode eq/ne/gt/ge/lt/gt to 0; these should - never be generated anymore. - * config/ia64/ia64.md (cmptf): New expander. - -2003-10-28 Zack Weinberg - - * ia64.md (UNSPEC_SETF_EXP,UNSPEC_FR_SQRT_RECIP_APPROX): New constants. - (*sqrt_approx): New instruction pattern for approximate square roots. - (*setf_exp_xf): New instruction pattern for exponentiation. - (*maddxf4_alts_truncsf): New instruction pattern for truncation. - (sqrtsf2_internal_thr): New define_and_split implementing - throughput-optimized inline calculation of SFmode square root. - (sqrtdf2_internal_thr): Likewise for DFmode. - (sqrtxf2_internal_thr): Likewise for XFmode. - (sqrtsf2, sqrtdf2, sqrtxf2): New expanders to choose between - latency- and throughput-optimized square root algorithms. - * ia64.h (MASK_INLINE_SQRT_LAT, MASK_INLINE_SQRT_THR, - TARGET_INLINE_SQRT_LAT, TARGET_INLINE_SQRT_THR, TARGET_INLINE_SQRT): - New macros. - (TARGET_SWITCHES): Add -minline-sqrt-min-latency and - -minline-sqrt-max-throughput. - * ia64.c (ia64_override_options): If both -minline-sqrt-min-latency - and -minline-sqrt-max-throughput are given, notify the user - that both options cannot be used simultaneously. - If -minline-sqrt-min-latency is given, notify the user that - this mode is not yet implemented. - (rtx_needs_barrier): Reformat initial comment to obey - 72-character width limit. Support UNSPEC_SETF_EXP and - UNSPEC_FR_SQRT_RECIP_APPROX. - -2003-10-29 Alan Modra - - * config/rs6000/rs6000.md (movdf_softfloat64): Allow dummy ctr,ctr - moves. - -2003-10-28 Franz Sirl - - PR target/11598 - PR libgcj/10610 - * config/rs6000/sysv4.h (PREFERRED_STACK_BOUNDARY): New macro. - -2003-10-28 Richard Earnshaw - - * arm.c (arm_output_epilogue): When using a frame pointer, don't emit - an extra stack adjustment insn if the stack pointer is already - pointing at the right place. - (use_return_insn): Allow a return insn to be used when we have a - frame pointer if the stack pointer is in the right place. - (output_return_instruction): Handle it. - -2003-10-28 Andreas Jaeger - - * ggc-zone.c (check_cookies): Add missing variable. - Add void to prototypes. - -2003-10-27 Kaveh R. Ghazi - - * config/mips/irix6-libc-compat.c (inet_makeaddr): Prototype. - * crtstuff.c (__do_global_ctors_1): Move prototype. - * unwind-dw2.c (NO_SIZE_OF_ENCODED_VALUE): Define when - appropriate. - * unwind-sjlj.c (_Unwind_GetCFA, _Unwind_FindEnclosingFunction): - Mark parameter with __attribute__((unused)). - -2003-10-27 Zack Weinberg - - * c-decl.c (pushdecl): Clarify comment. - -2003-10-27 Arnaud Charlet - - * doc/install.texi: Update instructions for Ada cross builds - - PR ada/5909: - * doc/sourcebuild.texi: Document Ada test suite. - -2003-10-27 Stephane Carrez - - * config/m68hc11/m68hc11.c: Convert to ISO C90. - * config/m68hc11/m68hc11-protos.h: Likewise. - -2003-10-27 Jan Hubicka - Eric Botcazou - - * toplev.c (enum dump_file_index, dump_file): Fix ordering of - webizer pass dump. - -2003-10-27 Jakub Jelinek - Jan Hubicka - - * reload1.c (struct elim_table): Change offset, initial_offset and - previous_offset fields to HOST_WIDE_INT. - (offsets_at): Change from int to HOST_WIDE_INT. - (reload): Adjust offsets_at initialization. - (eliminate_regs_in_insn): Change type of offset to HOST_WIDE_INT. - (verify_initial_elim_offsets): Change type of t to HOST_WIDE_INT. - * config/i386/i386.c (ix86_compute_frame_layout): Change offset type - to HOST_WIDE_INT. Don't save regs using mov for huge frame sizes - if TARGET_64BIT. - (pro_epilogue_adjust_stack): New function. - (ix86_expand_prologue, ix86_expand_epilogue): Use it. - * config/i386/i386.md (pro_epilogue_adjust_stack): Remove. - (pro_epilogue_adjust_stack_1): Remove * in front of name. - (pro_epilogue_adjust_stack_rex64): Handle -2147483648 properly. - (pro_epilogue_adjust_stack_rex64_2): New insn. - - * config/i386/i386.c (ix86_expand_epilogue): Fix comment typo. - - * config/i386/i386.c (ix86_expand_call): Replace 40 with - FIRST_REX_INT_REG + 3 /* R11 */. - -2003-10-26 Richard Henderson - - * config/alpha/alpha.md (attr cannot_copy): New. - (call_osf_2_er, call_value_osf_2_er, ldgp_er_1, ldgp_er_2, - prologue_ldgp_er_2, prologue_ldgp_1): Set it. - * config/alpha/alpha.c (alpha_cannot_copy_insn_p): Test it. - -2003-10-26 Daniel Berlin - - * ggc-zone.c: New file, zone allocating collector. - * configure: Accept zone option for --with-gc - * configure.in: Ditto. - * ggc.h (ggc_pch_count_object): Pass bool indicating - stringiness. Update all callers. - (ggc_pch_alloc_object): Ditto. - (ggc_pch_write_object): Ditto. - (ggc_alloc_rtx): Use typed allocation, since all RTX's are of a single - type. - (ggc_alloc_rtvec): Ditto. - (ggc_alloc_tree): Use zone allocation, since some things using this macro - aren't a single typecode. - * ggc-none.c (ggc_alloc_typed): New function. - (ggc_alloc_zone): Ditto. - * ggc-page.c: Ditto on both functions. - -2003-10-26 Gunther Nikl - - * config/m68k/m68k.c (m68k_compute_frame_layout): Ensure FPU related - frame information is always valid. - (m68k_output_function_prologue): Remove superfluous TARGET_68881 - test; fix formatting. - -2003-10-26 Gunther Nikl - - * config/m68k/m68k.c (m68k_compute_frame_layout): Swap reg_mask and - reg_rev_mask computation. - (m68k_output_function_prologue): Fix usage of current_frame (one typo - and one missing); use reg_rev_mask not reg_mask. - (m68k_output_function_epilogue): Fix usage of current_frame; - use fpu_rev_mask not fpu_mask. - -2003-10-26 Bernardo Innocenti - - * config/m68k/m68k.c (m68k_output_function_prologue): Eliminate - num_saved_regs, use current_frame.reg_no instead. - -2003-10-26 Bernardo Innocenti - Paul Dale - - * doc/extend.texi (interrupt_handler): Add m68k to the - list of processors implementing it. - * doc/invoke.texi (-msep-data): Document new m68k option. - (-mno-sep-data): Likewise. - (-mid-shared-library): Likewise. - (-mno-id-shared-library): Likewise. - (-mshared-library-id): Likewise. - -2003-10-26 Andreas Jaeger - - * unwind-dw2.c (_Unwind_GetGR): Avoid warning about unsigned - comparison. - (_Unwind_SetGR): Likewise. - -2003-10-26 Ottavio Campana - - PR target/12690 - * config/i386/mmintrin.h (_mm_set1_pi8): Fix comment. - -2003-10-26 Gunther Nikl - - * config/m68k/m68k.c (m68k_output_function_prologue): Move front - comment from here to... - (m68k_save_reg): ...here. Fix comment formatting. - (m68k_output_function_prologue): Fix comment formatting. - (m68k_output_function_epilogue): Likewise. - (const_method): Likewise. - -2003-10-26 Kazu Hirata - - * toplev.c (default_get_pch_validity): Guard the use of - target_options with #ifdef TARGET_OPTIONS. - (default_pch_valid_p): Likewise. - -2003-10-26 Andreas Jaeger - Zack Weinberg - Andreas Tobler - - * dwarf2out.c (output_cfi): Use HOST_WIDE_INT_PRINT. - (output_die): Likewise. - (print_die): Likewise. - -2003-10-26 Andreas Jaeger - - * tree.h (dwarf2out_def_cfa, dwarf2out_args_size, - dwarf2out_reg_save, new_loc_descr): Update prototypes for recent - dwarf2out.c change. - - * toplev.c (default_pch_valid_p): Fix warning. - -2003-10-25 Roger Sayle - - * simplify-rtx.c (simplify_replace_rtx): Avoid allocating duplicate - RTL nodes. If an operator's operands are unchanged, return the - original argument unchanged. - -2003-10-26 Graham Stott - - Fix bootstrap failure. - * expmed.c (store_bit_field): Don't compare bitsize against - modes with zero bit-size. - - (extract_bit_field): Likewise - -2003-10-25 Jan Hubicka - - * dwarf2out.c (dw_cfi_oprnd_struct): Offset is HOST_WIDE_INT. - (cfa_loc): Likewise. - (reg_save, stack_adjust_offset, queue_reg_save): Replace long by - HOST_WIDE_INT. - (args_size, old_args_size): change type to HOST_WIDE_INT. - (dwarf2out_def_cfa, dwarf2out_args_size, - dwarf2out_reg_save, new_loc_descr): offset is HOST_WIDE_INT. - (dw_val_struct): integers, unsigneds and offsets are HOST_WIDE_INT. - (add_AT_int, add_AT_unsigned, att_AT_offset, AT_int, AT_unsigned, - AT_offset): Use HOST_WIDE_INT. - (based_loc_descr): offset is HOST_WIDE_INT. - (add_data_member): Likewise. - (add_const_value_attribute): Simplify. - -2003-10-25 Richard Henderson - - * config/i386/i386.c (ix86_eax_live_at_start_p): New. - (ix86_expand_prologue): Save and restore eax around stack probe - if it's live. - -2003-10-25 Jan Hubicka - - * cppcharset.c (one_utf8_to_utf32): Initialize 's' to silence warning. - -2003-10-25 Eric Botcazou - - PR target/12712 - * reg-stack.c (convert_regs_1): Create an arbitrary input stack - if the block has no predecessors. - (convert_regs_2): Document the problem with successors whose - only predecessor is the block to be processed. - (convert_regs): Don't create the arbitrary input stack here. - -2003-10-24 Zack Weinberg - - * genmodes.c (struct mode_data): Add contained and next_cont - fields. - (complete_mode): Maintain linked list of modes that have a - given component. - (emit_mode_unit_size): Delete. - (emit_mode_nunits): New. - (emit_insn_modes_c): Update to match. - (emit_mode_adjustments): Propagate size and alignment - adjustments from component modes to their containers. - * machmode.h (mode_unit_size): Delete. - (mode_nunits): New. - (GET_MODE_NUNITS): Just return the value in the table. - (GET_MODE_UNIT_SIZE): Compute using GET_MODE_INNER and - GET_MODE_SIZE. - * expmed.c (store_bit_field, extract_bit_field): Can use a - plain move instruction if bitsize >= GET_MODE_BITSIZE of - destination/source mode, respectively. - * varasm.c (assemble_real): Write out the full size of the - constant, not just its bitsize. - (output_constant): Honor TYPE_MODE of TREE_REAL_CSTs. - - * config/ia64/ia64-modes.def: Define XFmode as well as TFmode. - Use ADJUST_BYTESIZE and ADJUST_ALIGNMENT to set size and - alignment of XF and TF modes in compliance with ia64 ABIs. - Can now hardwire the format of both modes. - * config/ia64/ia64.c: Change TFmode to XFmode wherever appropriate. - (general_tfmode_operand, destination_tfmode_operand) - (tfreg_or_fp01_operand, spill_tfmode_operand): Rename to - general_xfmode_operand, destination_xfmode_operand, - xfreg_or_fp01_operand, spill_xfmode_operand respectively. - (ia64_init_builtins): Make TYPE_PRECISION of fpreg_type - and float80_type be 96 so they get XFmode. Use !TARGET_HPUX, - not INTEL_EXTENDED_IEEE_FORMAT, to decide how to define - __float128. - * config/ia64/ia64.h: Default TARGET_HPUX to 0. - Change TFmode to XFmode wherever appropriate. Remove all - references to INTEL_EXTENDED_IEEE_FORMAT. - (LONG_DOUBLE_TYPE_SIZE): Varies with TARGET_HPUX. - (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define (always 96). - (PREDICATE_CODES): Update to match function renames. - * config/ia64/ia64.md: Change TF to XF throughout; rename all - patterns to match. Remove all references to - INTEL_EXTENDED_IEEE_FORMAT. Update predicate calls to match - function renames. - * config/ia64/ia64-protos.c: Update all prototypes to match - renamed functions. - * config/ia64/hpux.h: Redefine TARGET_HPUX to 1. - Remove all references to INTEL_EXTENDED_IEEE_FORMAT. - * config/ia64/lib1funcs.asm: Add __divxf3 as new name for - __divtf3; keep old name for backward compatibility. - (L__compat): New section providing forwarding stubs for - __fixtfti, __fixunstfti, __floattitf. - * config/ia64/t-ia64: Add __compat to LIB1ASMFUNCS. - -2003-10-24 Geoffrey Keating - - PR 10757 - * c-pch.c: Include target.h. Improve comments. - (struct c_pch_validity): Add target_data_length. - (pch_init): Add target's validity data. - (c_common_valid_pch): Check target's validity data. - * target-def.h (TARGET_GET_PCH_VALIDITY): New. - (TARGET_PCH_VALID_P): New. - (TARGET_INITIALIZER): Add new fields. - * target.h: Include tm.h. - (struct gcc_target): Add get_pch_validity, pch_valid_p. - * toplev.h (default_get_pch_validity): New prototype. - (default_pch_valid_p): New prototype. - * toplev.c (default_get_pch_validity): New routine. - (default_pch_valid_p): New routine. - * Makefile.in (TARGET_H): Add TM_H. Replace all users of - target.h with $(TARGET_H). - (c-pch.o): Add TARGET_H. - * doc/tm.texi (PCH Target): New node. - (TARGET_GET_PCH_VALIDITY): Document. - (TARGET_PCH_VALID_P): Document. - -2003-10-24 Kelley Cook - - * Makefile.in: Define a vpath for %.texi. Remove explicit $(docdir) - and $(docdir)/include from any *.texi dependencies. - ($(docobjdir)/%.dvi): Depend on stmp-docobjdir. - ($(docobjdir)/%.1): Depend on .pod instead of .texi. - ($(docobjdir)/%.7): Likewise. - (%.pod): New implicit rule. - (cpp.pod): New dependency only rule. - (gcc.pod): New intermediate rule with dependencies and commands. - (gfdl.pod): Likewise. - (fsf-funding.pod): Likewise. - -2003-10-24 Nathanael Nerode - - * fixinc/mkfixinc.sh: Remove special cases for svr4 and ptx, and - related code. - * fixinc/fixinc.ptx: Remove. - * fixinc/fixinc.svr4: Remove. - -2003-10-24 Ulrich Weigand - - * config/s390/s390.c (load_multiple_operation): Allow both SImode - and DImode if word_mode is DImode. - (store_multiple_operation): Likewise. - * config/s390/s390.md ("load_multiple", "store_multiple"): Likewise. - ("*load_multiple_di"): Allow only if word_mode == DImode. - ("movqi"): Use LLGC whenever TARGET_ZARCH. - ("fix_truncdfsi2"): Fix incorrect temporary size. - ("fix_truncsfsi2"): Likewise. - ("*bras_r", "*brasl_r", "*basr_r"): Remove predicate and constraint - string for function return value operand. - ("*bras_tls", "*brasl_tls", "*basr_tls"): Likewise. - -2003-10-24 Joseph S. Myers - - * c-parse.in (array_declarator): Use expr_no_commas. - Fixes PR c/11943. - -2003-10-24 Richard Sandiford - - * config/mips/linux.h: Wrap MD_FALLBACK_FRAME_STATE_FOR and - associated includes in #ifndef inhibit_libc. - -2003-10-24 Roger Sayle - - * doc/libgcc.texi: Document some more of the libgcc API. - -2003-10-24 Richard Earnshaw - - * arm.c (arm_rtx_costs_1, case TARGET_THUMB): Adjust costs for - comparing a constant with small negative numbers and add costing - for constants in conjunction with AND. - (note_invalid_constants): Tidy previous change. - (thumb_cmp_operand): Tidy. - (thumb_cmpneg_operand): New function. - * arm.h (CONDITIONAL_REGISTER_USAGE): Don't use HI regs if optimizing - for size. - (FIRST_LO_REGNUM, FIRST_HI_REGNUM, LAST_HI_REGNUM): Define. - (PREDICATE_CODES): Add thumb_cmpneg_operand. - * arm.md (cbranchsi4): Convert to define_expand. Handle comparison - with a negative constant. - (cbranchsi4_insn): Matcher for cbranchsi4. - (cbranchsi4_scratch): Similar, but a scratch is available for - handling negative constants. - (movsi_cbranchsi4): New pattern. - (tstsi3_cbranch): Renamed from andsi3_cbranch_scratch, remove scratch - and use the TST instruction. - (andsi3_cbranch, orrsi3_cbranch, xorsi3_cbranch, cbranchne_decr1) - (addsi3_cbranch, subsi3_cbranch): Ensure that register preferencing - cannot see high regs or memory alternatives. - (bicsi3_cbranch_scratch, bicsi3_cbranch): New patterns. - -2003-10-24 Richard Earnshaw - - * arm.c (note_invalid_constants): Try to extract the constant - pool value using avoid_constant_pool_reference; only use - get_pool_constant if that returns the original reference. - -2003-10-24 Jan Hubicka - - PR c++/12624 - * varasm.c (notice_global_symbol): Disqualify global registers. - -2003-10-23 Roger Sayle - - PR middle-end/11414 - * loop.c (load_mems): Use redirect_jump to forward jumps from - the original loop end label to the new "loop sink" block's label. - -2003-10-23 Roger Sayle - - PR middle-end/12705 - * optabs.c (expand_binop): When expanding complex operations - inline, always calculate result into a new temporary register. - Minor code clean-ups. - -2003-10-24 Rainer Orth - - * objc/lang-specs.h: Handle -print-objc-runtime-info. - * doc/invoke.texi (Objective-C Dialect Options): Document it. - -2003-10-24 Danny Smith - - * config/i386/cygwin.asm: Add copyright notice. Add comment - on why this code is needed. - -2003-10-23 Kazu Hirata - - * config/h8300/clzhi2.c: Fix warnings. - * config/h8300/ctzhi2.c: Likewise. - * config/h8300/fixunssfsi.c: Likewise. - * config/h8300/parityhi2.c: Likewise. - * config/h8300/popcounthi2.c: Likewise. - -2003-10-23 James E Wilson - - * gcc.c (option_map): Delete --target and --use-version. - -2003-10-23 Fariborz Jahanian - David Edelsohn - - * config/rs6000/rs6000.h (UNITS_PER_WORD): Use TARGET_32BIT, not - TARGET_POWREPC64. - (UNITS_PER_GPR_WORD): Define. - (HARD_REGNO_NREGS): Use UNITS_PER_GPR_WORD. - (HARD_REGNO_CALL_PART_CLOBBERED): Define. - (HARD_REGNO_MODE_OK): Use UNITS_PER_GPR_WORD. - (CLASS_MAX_NREGS): Use UNITS_PER_GPR_WORD. - * config/rs6000/rs6000.c (function_arg): Generate PARALLEL for - DFmode and DImode in 32-bit ABI / 64-bit computation mode. - (rs6000_emit_prologue): Select reg_mode and reg_size using - TARGET_32BIT, not TARGET_POWERPC64. - (rs6000_function_value): Generate PARALLEL for DImode in 32-bit - ABI / 64-bit computation mode - -2003-10-22 Andrew Haley - - * toplev.c (output_file_directive): Allow for null input_name. - -2003-10-22 Waldek Hebisch - - * config/i386/i386.c (classify_argument): Handle SET_TYPE. - -2003-10-22 Chris Demetriou - - * configure.in: In --enable-generated-files-in-srcdir option - handling, fix default case handling. - * configure: Regenerate. - -2003-10-22 Phil Edwards - - * config.gcc: Update *-*-vxworks* generic hook and comments. - (arm-wrs-vxworks, i[4567]86-wrs-vxworks, mips-wrs-vxworks, - mips-wrs-windiss, sh-wrs-vxworks): New stanzas. - * genmultilib: Allow the MULTILIB_OSDIRNAMES to be mapped directly. - * config/svr4.h (SWITCH_TAKES_ARG): Undefine it before redefining it. - * config/windiss.h: New file. - * config/arm/t-vxworks: New file. - * config/arm/vxworks.h: New file. - * config/i386/t-vxworks: New file. - * config/i386/vxworks.h: New file. - * config/mips/t-vxworks: New file. - * config/mips/vxworks.h: New file. - * config/mips/windiss.h: New file. - * config/sh/t-vxworks: New file. - * config/sh/vxworks.h: New file. - -2003-10-22 Kazu Hirata - - * config/h8300/h8300.c (h8300_output_function_epilogue): Remove. - (h8300_saveall_function_p): New. - (h8300_insert_attributes): Insert the saveall attribute if - #pragma saveall is specified. - (h8300_attribute_table): Add saveall. - (TARGET_ASM_FUNCTION_EPILOGUE): Remove. - * doc/extend.texi: Mention the saveall attribute. - -2003-10-22 Joseph S. Myers - - * 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. - * fixinc/tests/base/obstack.h: New test. - -2003-10-22 Andreas Schwab - - PR target/12676 - * config/m68k/m68k.c (output_addsi3): Fix range check to work on - LP64 platforms. - -2003-10-22 Jan Hubicka - - * dwarf2out.c (dwarf2out_abstract_function): Use DW_AT to check - presence of DW_AT_inline. - (gen_subprogram_die): Likewise; do not abort instead of emitting - DW_AT_not_inline. - -2003-10-22 Jan Hubicka - - * cgraph.c (cgraph_function_possibly_inlined_p): Be conservative when - global info is not ready. - -2003-10-22 Kazu Hirata - - * doc/extend.texi: Mention H8S wherever H8/300H is mentioned. - -2003-10-22 Ulrich Weigand - - * config/s390/s390.md ("movstr_short_64", "movstr_short_31"): Merge ... - ("*movstr_short"): ... into this insn pattern. - ("movstr_short"): New expander. - ("*movstr_long_64"): Rename from "movstr_long_64", simplify. - ("*movstr_long_31"): Rename from "movstr_long_31", simplify. - ("movstr_long"): New expander. - ("clrstr_short_64", "clrstr_short_31"): Merge ... - ("*clrstr_short"): ... into this insn pattern. - ("clrstr_short"): New expander. - ("*clrstr_long_64"): Rename from "clrstr_long_64", simplify. - ("*clrstr_long_31"): Rename from "clrstr_long_31", simplify. - ("clrstr_long"): New expander. - ("cmpmem_short_64", "cmpmem_short_31"): Merge ... - ("*cmpmem_short"): ... into this insn pattern. - ("cmpmem_short"): New expander. - ("*cmpmem_long_64"): Rename from "cmpmem_long_64". - ("*cmpmem_long_31"): Rename from "cmpmem_long_31". - ("cmpmem_long"): New expander. - * config/s390/s390.c (s390_expand_movstr): Use new expanders. - (s390_expand_clrstr): Likewise. - (s390_expand_cmpmem): Likewise. - -2003-10-22 Mark Mitchell - - * c-pch.c (struct c_pch_validity): Add pch_init field. - (pch_init): Set it. - (c_common_valid_pch): Check it. - -2003-10-22 David Taylor - - PR debug/12500 - * dbxout.c (dbxout_typedefs): Use COMPLETE_OR_VOID_TYPE_P. - -2003-10-22 Richard Kenner - - * config/alpha/alpha.c (function_value [ENABLE_CHECKING]): Don't call - alpha_return_in_memory if no VALTYPE specified. - -2003-10-22 Jan Hubicka - - PR debug/12389 - * Makefile.in (dwarf2out.o): Depend on cgraph.h. - * cgraph.c (cgraph_function_possibly_inlined_p): New function. - * cgraph.h (cgraph_function_possibly_inlined_p): Declare. - (cgraph_global_info): Add flag inlined - * dwarf2out.c (gen_subprogram_die, gen_decl_die): Use - cgraph_function_possibly_inded_p - * cgraphunit.c (mark_inline): Set inlined flag. - * toplev.c (rest_of_decl_compilation): Call outlining_inline_function - only for possibly inlined functions. - * c-decl.c (duplicate_decls): Never output abstract DIE representing old - body of function. - -2003-10-22 Andrew Haley - - * varasm.c (output_constructor): Make constructor annotation - conditional on ASM_COMMENT_START. - -2003-10-21 Jason Merrill - - * tree.c (get_unwidened): Check TREE_UNSIGNED on the field's type. - (get_narrower): Likewise. - - * stor-layout.c (layout_decl): Do packed field alignment for - bit-fields, too. - -2003-10-21 Eric Christopher - - * expr.c (convert_move): Use FLOAT_EXTEND for extensions. - -2003-10-21 Geoffrey Keating - - * c-pch.c: Add comments in various places. - (struct c_pch_validity): Add the lengths of various strings. - (host_machine): New static. - (target_machine): New static. - (get_ident): Bump version number. - (pch_init): Write out version, host, target validity data. - (c_common_valid_pch): Check version, host, target. - * Makefile.in (c-pch.o): Add version.h; define HOST_MACHINE and - TARGET_MACHINE. - -2003-10-21 Jason Merrill - - * tree.h (IS_EXPR_CODE_CLASS): Use strchr. - (EXPR_P): New macro. - -2003-10-21 Zack Weinberg - - * config/ia64/ia64.md (cmpxchg_acq_si): Mark operand 3 as DImode. - * config/ia64/ia64.c (ia64_expand_fetch_and_op, - ia64_expand_op_and_fetch): Make sure the REG for ar.ccv is - DImode. Use convert_move to load ar.ccv. - (ia64_expand_compare_and_swap): Likewise. - If expand_expr doesn't put 'old' and 'new' in the proper - modes, run them through convert_to_mode. - -2003-10-21 Eric Christopher - - * config/frv/frv.c (frv_adjust_field_align): Check DECL_ARTIFICIAL - for too large bitfields. - -2003-10-21 Mark Mitchell - - * Makefile.in ($(docobjdir)/%.info): Honor BUILD_INFO. - -2003-10-21 Andrew Haley - - * varasm.c (output_constructor): Annotate constructor. - -2003-10-21 Mark Mitchell - - * Makefile.in ($(DESTDIR)$(infodir)/%.info): Conditionalize chmod - on existence of destination file. - -2003-10-21 Jan Hubicka - - * haifa-sched.c (choose_ready): Initialize index. - -2003-10-21 Jason Merrill - - * tree.c (build1): Fix off-by-one error. - -2003-10-21 Robert Millan - - * config/i386/kfreebsdgnu.h: New. i386-*-kfreebsd-gnu definitions. - * config/kfreebsdgnu.h: New. *-*-kfreebsd-gnu definitions. - * config/t-kfreebsd-gnu: New. *-*-kfreebsd-gnu tmake_file. - * config.gcc: Add *-*-kfreebsd*-gnu and i[34567]86-*-kfreebsd*-gnu. - -2003-10-21 Eric Botcazou - - * web.c: Fix various comments. - -2003-10-20 Nicolas Pitre - - * config/arm/arm.c (arm_override_options): Set arm_constant_limit - to 2 instead of 1 when optimize_size is true. Gather code based on - optimize_size together. Add comment about XScale load latency. - -2003-10-21 Gunther Nikl - - * config/m68k/m68k.c (m68k_output_function_prologue): Remove - obsolete comments. - -2003-10-20 Kelley Cook - - * Makefile.in: Get parsedir and docobjdir from configure. - * configure.in: Recogonize --enable-generated-files-in-srcdir. - Pass along parsedir and docobjdir. - * configure: Regenerate. - * doc/install.texi: Document --enable-generated-files-in-srcdir. - -2003-10-20 Kelley Cook - - * Makefile.in: Define $(docdir) before the Make-lang.in fragments are - included. - -2003-10-20 Joseph S. Myers - - * c-common.c (expand_tree_builtin): Ensure creal and cimag - functions do not return lvalues. - -2003-10-20 Jason Merrill - - PR c/12553 - * tree.c (build1) : Set TREE_SIDE_EFFECTS - appropriately. - - PR c/11446 - * stor-layout.c (layout_decl): Fix alignment handling. - -2003-10-20 Joseph S. Myers - - * doc/extend.texi: Deprecate casts as lvalues. - -2003-10-20 Jan Hubicka - - * toplev.c (rest_of_compilation): Fix webizer pass ordering. - - * cgraphunit.c (decide_is_function_needed): Fix test dealing - with functions implicitly made inline. - - * cgraphunit.c (cgraph_decide_inlining_incrementally): New function. - (cgraph_finalize_function): Use it. - (cgraph_mark_inline): Allow incrmental decisions - * invoke.texi (max-inline-slope, min-inline-insns): Kill. - * params.def (PARAM_MAX_INLINE_SLOPE, PARAM_MIN_INLINE_INSNS): Kill. - * tree-inline.c (limits_allow_inlining): Kill. - (expand_call_inline): Always use unit-at-a-time path. - -2003-10-20 Zack Weinberg - - * fixinc/inclhack.def (hpux11_snprintf): New edit. - * fixinc/fixincl.x: Regenerate. - * fixinc/tests/base/stdio.h: Add test for hpux11_snprintf. - -2003-10-20 Mark Mitchell - - * Makefile.in (install-info): Simplify. - ($(DESTDIR)$(infodir)/%.info): New rule. - * configure.in (target_list): Remove install-info. - * doc/.cvsignore (gcc.info*): Remove. - (gccint.info*): Likewise. - (gccinstall.info*): Likewise. - (cpp.info*): Likewise. - (cppinternals.info*): Likewise. - (*.info*): Add it. - * doc/sourcebuild.texi: Update description of install-info. - * objc/Make-lang.in (objc.install-info): Remove. - -2003-10-20 Rainer Orth - - * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Define _ABIO32. - Use it in _MIPS_SIM definition. - * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Likewise. - -2003-10-20 Zack Weinberg - - * config/i386/i386.c (print_reg): Abort if REGNO (x) is a - virtual register, but only if file == asm_out_file. - * config/i386/i386.h (HI_REGISTER_NAMES): Use "argp", not "", - for ARG_POINTER_REGNUM. - -2003-10-20 Zack Weinberg - - * c-common.c (registered_builtin_types): New static. - (c_common_type_for_mode): Consult registered_builtin_types. - (c_register_builtin_type): Add type to registered_builtin_types. - * optabs.c (init_floating_libfuncs): Initialize libfuncs for - all MODE_FLOAT modes, not just the ones corresponding to - float_type_node, double_type_node, and long_double_type_node. - -2003-10-20 Richard Henderson - - * config/alpha/alpha.h (PREDICATE_CODES): Add normal_memory_operand. - * config/alpha/alpha-protos.h: Remove PREDICATE_CODES prototypes. - -2003-10-20 Dorit Naishlos - - * config/rs6000/rs6000.h: (rs6000_sched_insert_nops): - support new flag -minsert-sched-nops. - (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Define. - * config/rs6000/rs6000.c: (rs6000_sched_insert_nops): - support new flag -minsert-sched-nops. - (is_cracked_insn, is_microcoded_insn): New functions. - (rs6000_sched_finish): New function. - (rs6000_issue_rate): Return 5 for power4. - (get_next_active_insn, insn_terminates_group_p): New - functions. - (is_costly_group, force_new_group): New functions. - (redefine_groups, pad_groups): New functions. - (rs6000_variable_issue): Use new functions. - * doc/invoke.texi (-minsert-sched-nops): Document new - option. - -2003-10-20 David S. Miller - - * config/sparc/sparc.md (type attribute): Add new insn types - fpa, fpm_pack, fgm_mul, fgm_pdist, and fgm_cmp for VIS. - (patterns emitting VIS insns): Use them. - * config/sparc/ultra1_2.md: Add VIS scheduling rules. - * config/sparc/ultra3.md: Likewise. - -2003-10-20 Falk Hueffner - - PR target/12654 - * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't do - comparison against constant by adjusting the argument except for - EQ and NE. - -2003-10-19 Mark Mitchell - - * config.gcc: Add support for arm926ejs, arm1026ejs, arm1136js, - arm1136jfs, and armv6j. - * config/arm/arm.c (FL_ARCH6J): New macro. - (FL_VFPV2): Likewise. - (all_cores): Add entries for arm926ejs, arm1026ejs, arm1136js, - and arm1136jfs. - (all_architectures): Add entry for armv6j. - (arm_override_options): Add entries for arm926ejs, arm1026ejs, - arm1136js, and arm1136jfs. - * config/arm/arm.h (TARGET_CPU_arm926ej_s): New macro. - (TARGET_CPU_arm1026ej_s): Likewise. - (TARGET_CPU_arm1136j_s): Likewise. - (TARGET_CPU_arm1136jf_s): Likewise. - * doc/invoke.texi: Document new ARM cores and architecture - variants. - -2003-10-19 Zdenek Dvorak - - * Makefile.in (toplev.o): Add value-prof.h dependency. - (value-prof.o): Add REGS_H dependency. - * common.opt (fprofile-values, fvpt): New. - * flags.h (flag_value_profile_transformations): Declare. - * opts.c (common_handle_option): Handle -fprofile_values and - -fvpt. - * profile.c (branch_prob): Don't remove death notes here. - * timevar.def (TV_VPT): New. - * value-prof.c: Include regs.h. - (insn_divmod_values_to_profile, gen_divmod_fixed_value, gen_mod_pow2, - gen_mod_subtract, divmod_fixed_value_transform,mod_pow2_value_transform, - mod_subtract_transform, value_profile_transformations): New. - (insn_values_to_profile): Call insn_divmod_values_to_profile. - (find_values_to_profile): Add dumps. - * value-prof.h (value_profile_transformations): Declare. - * toplev.c: Include value-prof.h. - (rest_of_handle_value_profile_transformations): New. - (enum dump_file_index): Add DFI_vpt. - (dump_file): Add vpt dump. - (flag_value_profile_transformations): New. - (lang_independent_options): Add flag_profile_values and - flag_value_profile_transformations. - (rest_of_compilation): Call - rest_of_handle_value_profile_transformations. - (process_options): Let -fvpt imply -fprofile-values. - * doc/invoke.texi (-fvpt): Document. - -2003-10-19 Jan Hubicka - - * i386.c (print_reg): Do not abort on certain registers. - - PR optimization/12612 - * reg-stack.c (subst_stack_regs_pat): Use st(1) for clobbers. - * i386.md (fpatan, fyl2x, fscale patterns and expanders): Use - match_scratch; avoid bogus paralles. - - PR target/12674 - * i386.c (ix86_function_regparm): Disable implicit register passing - conventions when profiling. - -2003-10-19 Eric Botcazou - Richard Henderson - - PR optimization/8178 - * config/i386/i386.md (*movsi_zero): Delete. - (*ffs_no_cmove): Use ix86_expand_clear to zero the third operand. - -2003-10-19 Richard Henderson - - * config/alpha/alpha.c (fix_operator): New. - (divmod_operator): Tidy. - (alpha_emit_xfloating_cvt): Handle UNSIGNED_FIX. - * config/alpha/alpha.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove. - (PREDICATE_CODES): Update. - * config/alpha/alpha.md (fix_truncdfsi_ieee): Use match_operator. - (fix_truncdfsi_internal, fix_truncdfdi_ieee): Likewise. - (fix_truncsfsi_ieee, fix_truncsfsi_internal): Likewise. - (fix_truncsfdi_ieee): Likewise. - (fix_truncdfdi2, fix_truncsfdi2): Turn into define_expand. - (fixuns_truncdfdi2, fixuns_truncsfdi2, fixuns_trunctfdi2): New. - * config/alpha/alpha-protos.h: Update. - -2003-10-19 Richard Sandiford - - * config/mips/mips.h (INITIALIZE_TRAMPOLINE): Simplify. - * config/mips/mips.c (mips_load_got): Assume Pmode == ptr_mode. - * config/mips/mips.md (extendsidi2, *extendsidi2): Merge. Don't accept - constant operands. - -2003-10-18 Kazu Hirata - - * doc/extend.texi: Fix typos. - * doc/invoke.texi: Likewise. - -2003-10-18 Nicolas Pitre - - * config/arm/arm.c (arm_override_options): Use arm_tune_xscale for - XScale optimizations not arm_arch_xscale. - * config/arm/arm.h (CONSTANT_ALIGNMENT_FACTOR, MOVE_RATIO): Likewise. - -2003-10-18 Ulrich Weigand - - * config/s390/s390-protos.h (shift_count_operand): Add prototype. - * config/s390/s390.c (shift_count_operand): New function. - (s390_extra_constraint): Use it to implement 'Y' constraint. - (print_shift_count_operand): New function. - (print_operand): Use it to implement '%Y'. - * config/s390/s390.h (EXTRA_ADDRESS_CONSTRAINT): Add 'Y' constraint. - (PREDICATE_CODES): Add shift_count_operand. - * config/s390/s390.md ("rotldi3"): Merge alternatives, - using "shift_count_operand" predicate and "Y" constraint, - and "%Y" to output the combined shift count. - ("rotlsi3"): Likewise. - ("ashldi3", "*ashldi3_31", "*ashldi3_64"): Likewise. - ("ashrdi3", "*ashrdi3_31", "*ashrdi3_64", "*ashrdi3_cc_31", - "*ashrdi3_cc_64", "*ashrdi3_cconly_31", "*ashrdi3_cconly_64"): Likewise. - ("ashlsi3", "ashrsi3", "*ashrsi3_cc", "*ashrsi3_cconly"): Likewise. - ("lshrdi3", "*lshrdi3_31", "*lshrdi3_64"): Likewise. - ("lshrsi3"): Likewise. - -2003-10-18 Gunther Nikl - - * config/m68k/m68k.c (m68k_output_function_epilogue): Add missing - argument to asm_fprintf statement. - -2003-10-18 Fariborz Jahanian - - * rs6000.md: Separate TARGET_POWERPC64 patterns for TARGET_64BIT or TARGET_32BIT. - (ashrdisi3_noppc64) Generate more efficient code for 32-bit right-shift of - a "long long" argument. - -2003-10-18 Alexandre Oliva - - * final.c (final_scan_insn): Run FINAL_PRESCAN_INSNS on asm insns - as well. - -2003-10-18 Richard Sandiford - - * rtl.h (rtl_size): Declare. - (rtunion): Remove rtwint. - (rtx_def): Replace 'fld' with a union of an rtunion or a HOST_WIDE_INT. - (RTX_HDR_SIZE, RTX_SIZE): New macros. - (RTL_CHECK1): Adjust for new rtx_def layout. - (RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2): Likewise. - (XWINT, XCWINT): Likewise. Access the rtx structure directly. - (X0WINT): Remove. - (X0ANY): New macro. - * rtl.def: Adjust comments for new rtx_def layout. - * ggc.h (ggc_alloc_rtx): Take the rtx code as argument, not the - number of slots. - * rtl.c (rtx_size): New array. - (rtx_alloc): Adjust call to ggc_alloc_rtx. Use RTX_HDR_SIZE. - (copy_rtx): Use RTX_HDR_SIZE. Adjust for new rtx_def layout. - (shallow_copy_rtx): Adjust call to ggc_alloc_rtx. Use RTX_SIZE. - * integrate.c (copy_rtx_and_substitute): Use X0ANY to copy '0' fields. - * emit-rtl.c (copy_most_rtx): Likewise. - (copy_rtx_if_shared): Use RTX_SIZE. - (copy_insn_1): Use RTX_HDR_SIZE. Adjust for new rtx_def layout. - * gengenrtl.c (gendef): Adjust ggc_alloc_rtx call. Use RTX_HDR_SIZE. - * gengtype.c (write_rtx_next): Use RTX_HDR_SIZE. - (adjust_field_rtx_def): Expect "rtx_def" to be a union rather than - an array. Adjust output for new rtx_def layout. - * ggc-page.c (RTL_SIZE): Use RTX_HDR_SIZE. - * reload1.c (eliminate_regs): Use RTX_SIZE. - * rtlanal.c (loc_mentioned_in_p): Adjust for new rtx_def layout. - * gdbinit.in (pi): Likewise. - -2003-10-18 Jan Hubicka - - * integrate.c (copy_decl_for_inlining): Revert previous patch. - -2003-10-18 Jan Hubicka - - * integrate.c (copy_decl_for_inlining): Fix copying of copies. - -2003-10-18 Roger Sayle - - * libgcc.texi: Group multi-word types, such as "long double" and - "unsigned int", using braces in @deftypefn and @deftypefnx nodes. - Document __unord?f2 as returning a non-zero value, not just one. - -2003-10-18 Hans-Peter Nilsson - - * config/mmix/t-mmix (CRTSTUFF_T_CFLAGS): Define. - ($(T)crti.o, $(T)crtn.o): Pass CRTSTUFF_T_CFLAGS here too. - -2003-10-18 Eric Botcazou - - * config/i386/k6.md (k6_alux): Use the 'mode' attribute instead of - match_operand. - -2003-10-18 Eric Botcazou - - * config/sparc/sparc.c (function_arg_record_value_1): New fourth - parameter packed_p. Search for a DECL_PACKED field only if - packed_p is false. Pass packed_p recursively. - (function_arg_record_value_2): Likewise. - (function_arg_record_value): Update calls to - function_arg_record_value_1 and function_arg_record_value_2. - -2003-10-18 Eric Botcazou - - * cse.c (cse_insn) [src_folded]: Check that the tentative replacement - was successfully forced to memory before using the result. - -2003-10-18 Eric Botcazou - - PR optimization/8178 - * config/i386/i386.md (*movsi_zero): New insn to set - a register to zero on TARGET_USE_MOV0 targets. - -2003-10-18 Kelley Cook - - * Makefile.in (Makefile): Depend on the all Make-lang.in fragments. - (POSTSTAGE1_FLAGS_TO_PASS): Pass down MAKEINFO and MAKEINFOFLAGS. - -2003-10-17 David Edelsohn - - * doc/invoke.texi (gcse-las): Fix typo. - -2003-10-17 Andrew Pinski - - * doc/install.texi: Remove first part of the sentence for - zsh not working. Change gcc to GCC. - - PR bootstrap/12546 - * doc/install.texi: Document that zsh does not work when - configuring gcc. - -2003-10-17 Nathanael Nerode - - * config/ptx4.h: Switch to DWARF 2; update comments. - -2003-10-17 Segher Boessenkool - Hartmut Penner - - PR 10404, partial 11591, partial 11601 - * config/rs6000/altivec.md ("altivec_dst", "altivec_dstt", - "altivec_dstst", "altivec_dststt", "altivec_lvsl", "altivec_lvsr", - "altivec_lvebx", "altivec_lvehx", "altivec_lvewx", "altivec_lvxl", - "altivec_lvx", "altivec_stvx", "altivec_stvxl", "altivec_stvebx", - "altivec_stvehx", "altivec_stvewx"): Use a memory_operand. - * config/rs6000/rs6000.c (altivec_expand_lv_builtin): New function. - (altivec_expand_stv_builtin): Adjust for the memory_operand. - (altivec_expand_builtin): Call altivec_expand_lv_builtin. - (altivec_init_builtins): Use `long int' for memory offsets. - -2003-10-17 Jan Hubicka - - * opts.c (common_handle_option): Handle OPT_fweb - * invoke.texi (-fweb): Add missing parts of documentation. - -2003-10-17 Rainer Orth - - * config/mips/linux.h (FUNCTION_NAME_ALREADY_DECLARED): Undef - before redefinition. - -2003-10-17 Mostafa Hagog - - * common.opt: Add description of the new -fgcse-las flag. - * flags.h (flag_gcse_las): Declaration of global flag_gcse_las. - * gcse.c (hash_scan_set): Handle the case of store expression and - insert the memory expression to the hash table, this way we make it - possible to discover redundant loads after stores and remove them. - (pre_insert_copy_insn): moved the call to update_ld_motion_stores, - to pre_insert_copies, it is not the correct place to call it after - adding stores to be in the available expression hash table. - (pre_insert_copies): Added the call to update_ld_motion_stores when - one or more copies were inserted. - * opts.c (common_handle_option): Handle the -fgcse-las flag. - * toplev.c (flag_gcse_las): Initialization of flag_gcse_las. - - * doc/invoke.tex: Document new -fgcse-las flag. - -2003-10-18 Alan Modra - - * config/rs6000/crtsavres.asm: Correct alignment of powerpc64 code - for posterity, then remove it. - -2003-10-17 Richard Earnshaw - Nathan Sidwell - - * config/arm/arm.c (use_return_insn): Not a single instruction, if - there's a frame pointer. - (arm_output_epilogue): Protect stack pointer from being corrupted - on interrupt. - -2003-10-17 Ulrich Weigand - - * ifcvt.c (noce_try_addcc): Handle ifs with 'else' case. - -2003-10-17 Ulrich Weigand - - * combine.c (simplify_set): Do not clear out undobuf.other_insn - already set elsewhere. - -2003-10-17 Kelley Cook - - * config/i386/i386.c (ix86_expand_prologue): Use - gen_allocate_stack_worker. - -2003-10-17 Rainer Orth - - * config.gcc (mips-sgi-irix6*o32): Only enable use_collect2 - without gas. - (mips-sgi-irix6*): Likewise. - - * config/mips/iris6gas.h: New file. - * gcc/config.gcc (mips-sgi-irix6*): Use it. - - * config/mips/mips.h (TARGET_IRIX): Provide default. - (TARGET_IRIX5): Likewise. - (TARGET_SGI_O32_AS): Likewise. - * config/mips/iris5.h (TARGET_IRIX): Redefine as 1. - (TARGET_IRIX5): Likewise. - * config/mips/iris6.h (TARGET_IRIX6): Remove. - (TARGET_IRIX5): Redefine as 0. - - * config/mips/mips.c (mips_output_external): Test for IRIX 6 O32 - linker workaround with TARGET_IRIX and mips_abi instead of - ASM_OUTPUT_UNDEF_FUNCTION. - (mips_file_end): Inline old ASM_OUTPUT_UNDEF_FUNCTION definition, - testing TARGET_IRIX and mips_abi explicitly. - * config/mips/iris5.h (ASM_OUTPUT_UNDEF_FUNCTION): Remove. - * config/mips/iris6.h (ASM_OUTPUT_UNDEF_FUNCTION): Remove undef. - - * config/mips/mips.c (irix_output_external_libcall): Renamed from - mips_output_external_libcall. - Use new TARGET_IRIX in guard. - * config/mips/mips-protos.h (irix_output_external_libcall): Match - this. - * config/mips/iris5.h (TARGET_ASM_EXTERNAL_LIBCALL): Likewise. - - * config/mips/iris5gas.h (HAVE_GAS_SHF_MERGE): Update comment. - Define as 0. - - * config/mips/iris6.h (FUNCTION_NAME_ALREADY_DECLARED): Define - depending on mips_abi. - * config/mips/linux.h (FUNCTION_NAME_ALREADY_DECLARED): Define as 1. - * config/mips/mips.c (mips_output_function_prologue): Test - FUNCTION_NAME_ALREADY_DECLARED at runtime. - (mips_output_function_epilogue): Likewise. - (build_mips16_function_stub): Likewise. - (build_mips16_call_stub): Likewise. - * config/mips/mips.h (FUNCTION_NAME_ALREADY_DECLARED): Provide - default. - - * config/mips/iris6.h (DWARF2_UNWIND_INFO): Don't define for native - IRIX 6 O32 assembler. - (SUBTARGET_CC1_SPEC): Enforce mips2 ISA with O32 ABI. - (TARGET_OS_CPP_BUILTINS): Define _ABIO32, use it to define - _MIPS_SIM for O32 ABI. - (DWARF2_FRAME_INFO): Don't define for native IRIX 6 O32 assembler. - (ASM_DECLARE_FUNCTION_NAME): Integrate mips.h version. - (ASM_DECLARE_FUNCTION_SIZE): Move undef before redefinition. - Integrate O32 version. - (SUBTARGET_ASM_SPEC): Handle -mabi=32. - (SUBTARGET_ASM_DEBUGGING_SPEC): Add mdebug_asm_spec for gas with - O32 ABI. - (BSS_SECTION_ASM_OP_32): Define. - (BSS_SECTION_ASM_OP_64): Likewise. - (BSS_SECTION_ASM_OP): Define differently for O32 and N32/N64 ABIs - using them. - (TARGET_ASM_NAMED_SECTION): Reflect renaming. - Move up to allow override for O32 ABI without GNU as. - (EH_FRAME_SECTION_NAME): Define explicitly. - (MUST_USE_SJLJ_EXCEPTIONS): Define. - [_MIPS_SIM == _ABIO32 && !GAS] (CTORS_SECTION_ASM_OP, - DTORS_SECTION_ASM_OP): Dummy definitions. - (TARGET_ASM_NAMED_SECTION): Undef statically. - (EH_FRAME_SECTION_NAME): Likewise. - (ASM_OUTPUT_FILENAME): Integrate mips.h version. - (LINK_SPEC): Only use default options -call_shared -no_unresolved - without -r. - Don't pass -init, -fini with -mabi=32. - (COLLECT_PARSE_FLAG): Define. - - * config/mips/mips.c (iris6_asm_named_section_1): Changed guard to - TARGET_IRIX. - Renamed to use irix_ prefix. - (iris6_asm_named_section): Likewise. - (iris_section_align_entry_eq): Likewise. - (iris_section_align_entry_hash): Likewise. - (iris6_file_start): Likewise. - (iris6_section_align_1): Likewise. - (iris6_file_end): Likewise. - (iris6_section_type_flags): Likewise. - (iris_section_align_htab): Likewise. - (iris_orig_asm_out_file): Likewise. - [TARGET_IRIX] (TARGET_ASM_FILE_START): Reflect rename. - (TARGET_ASM_FILE_END): Likewise. - (TARGET_SECTION_TYPE_FLAGS): Likewise. - - * config/mips/mips.c [TARGET_IRIX5 && !TARGET_IRIX6] - (TARGET_ASM_UNALIGNED_HI_OP): Use runtime initialization in - override_options instead. - (TARGET_ASM_UNALIGNED_SI_OP): Likewise. - (TARGET_ASM_UNALIGNED_DI_OP): Likewise. - * config/mips/mips.c (override_options) [USE_COLLECT2]: Restore - flag_gnu_linker to defaults without USE_COLLECT2 for non-IRIX O32 - assemblers. - Likewise for constructor/destructor handling. - (override_options): Handle IRIX O32 assembler quirks. - [TARGET_IRIX] (irix_asm_named_section): Handle O32 ABI with and - without gas. - (mips_file_start): Use new TARGET_IRIX. - (mips_declare_object_name): No special processing for IRIX O32 - assembler. - (mips_finish_declare_object): Likewise. - (irix_asm_output_align): Renamed from iris6_asm_output_align. - Don't record alignment for O32 ABI. - (irix_file_start): Renamed from iris6_file_start. - Return early for O32 ABI. - (irix_file_end): Renamed from iris6_file_end. - Don't emit .section directives for O32 ABI. - * config/mips/iris6.h (ASM_OUTPUT_ALIGN): Reflect renaming. - * config/mips/mips-protos.h (irix_asm_output_align): Likewise. - - * config/mips/t-iris6 (MULTILIB_OPTIONS): Add mabi=32. - (MULTILIB_OSDIRNAMES): Likewise. - -2003-10-17 Rainer Orth - - * collect2.c (COLLECT_PARSE_FLAG): Provide default. - (main): Use it. - * doc/tm.texi (COLLECT_PARSE_FLAG): Document it. - -2003-10-17 Richard Earnshaw - - * arm-modes.def (CC_Nmode): New condition code mode. - * arm.c (thumb_condition_code): Delete. - (arm_select_cc_mode): Handle single-bit test for Thumb. - (arm_print_operand, cases 'd' and 'D'): Don't special case the - condition code logic for Thumb. - (get_arm_condition_code): Handle CC_Nmode. - (thumb_cbrch_target_operand): New function. - * arm.h (PREDICATE_CODES): Add thumb_cbrch_target_operand. - * arm-protos.h (thumb_cbrch_target_operand): Add prototype. - * arm.md: Add Thumb split patterns for zero_extract and - sign_extract. - (tbit_cbranch, andsi3_cbranch_scratch, andsi3_cbranch) - (orrsi3_cbranch_scratch, orrsi3_cbranch, xorsi3_cbranch_scratch) - (xorsi3_cbranch, addsi3_cbranch, addsi3_cbranch_scratch) - (subsi3_cbranch, subsi3_cbranch_scratch): New Thumb patterns. - (cbranchne_decr1): Re-work to use CC_Nmode. - - * arm.c (thumb_expand_epilogue): Add clobbers of registers restored - by the return instruction. Add a use of the link register if it - wasn't stored. - -2003-10-17 Richard Earnshaw - - * flow.c (init_propagate_block_info): Don't abort if a conditional - jump is not a comparison of a register. Instead, just don't record - conditional life information. - -2003-10-16 Jan Hubicka - - PR optimization/12630 - * pa.md (movstrsi, movstrsi_internal): Use match_scratch in clobbers - for operands 7 and 8. - -2003-10-16 Kelley Cook - - * objc/Make-lang.in (objc-parse.o): Honor $(parsedir) for objc-parse.c. - -2003-10-16 Danny Smith - - * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Define. - - * config/i386/winnt.c (gen_stdcall_suffix): Make static - (gen_fastcall_suffix): Likewise. - (i386_pe_dllexport_p): Likewise. - (i386_pe_dllimport_p): Likewise. - (i386_pe_mark_dllexport): Likewise. - (i386_pe_mark_dllimport): Likewise. - (i386_pe_asm_named_section): Fix formatting. - -2003-10-16 Zack Weinberg - - * configure.in: Add snprintf to gcc_AC_CHECK_DECLS list. - * system.h: Declare snprintf if necessary. - * configure, config.in: Regenerate. - -2003-10-15 David Edelsohn - - * config/rs6000/rs6000.c (rs6000_va_arg): Only align vector - arguments if TARGET_ALTIVEC_ABI. - -2003-10-15 Roger Sayle - - * builtins.c (fold_builtin_memcpy, fold_builtin_mempcpy, - fold_builtin_memmove, fold_builtin_strcpy, fold_builtin_strncpy, - fold_builtin_memcmp, fold_builtin_strcmp, fold_builtin_strncmp): - New functions. - (expand_builtin_memcpy): Use integer_zerop instead of testing - host_integerp and tree_low_cst directly. Move misapplied hunk - for optimization wher SRC and DEST point to the same location. - (expand_builtin_mempcpy): From here. - (expand_builtin_memmove): Use integer_zerop instead of testing - host_integerp and tree_low_cst_directly. - (expand_builtin_memset): Likewise. - (expand_builtin_memcmp): Likewise (and for integer_onep). - (expand_builtin_strncmp): Likewise. - (fold_builtin): Call the appropriate fold_builtin_foo functions - to optimize memcpy, mempcpy, memmove, strcpy, strncpy, memcmp, - strcmp and strncmp. - -2003-10-15 Geoffrey Keating - - * config/darwin-protos.h (machopic_non_lazy_ptr_name): Delete - prototype. Clean up some whitespace. - * config/darwin.c: Use gen_rtx_FOO (...) rather than - gen_rtx (FOO, ...). - (machopic_non_lazy_ptr_name): Make static. - (name_needs_quotes): Allow '.' and '$' unquoted. - (machopic_legitimize_pic_address): Improve codegen in dynamic-no-pic - case. - -2003-10-15 Gábor Lóki - - * fold-const.c (tree_swap_operands_p): Disable some features - when optimizing for size. - -2003-10-15 David Daney - - * config/mips/linux.h (MD_FALLBACK_FRAME_STATE_FOR): New - * config/mips/mips.h (DWARF_FRAME_REGNUM): Fixed to allow unwind - from leaf functions. - (DWARF_FRAME_RETURN_COLUMN): Ditto. - (SIGNAL_UNWIND_RETURN_COLUMN): New, used - by MD_FALLBACK_FRAME_STATE_FOR. - * testsuite/gcc.dg/cleanup-9.c: Added mips*-*-linux* target. - -2003-10-15 Zack Weinberg - - * genmodes.c: Include hashtab.h. - (modes_by_name, hash_mode, eq_mode, struct mode_adjust) - (adj_bytesize, adj_alignment, adj_format, new_adjust) - (_ADD_ADJUST, ADJUST_BYTESIZE, ADJUST_ALIGNMENT, ADJUST_FORMAT) - (print_maybe_const_decl, emit_mode_adjustments): New. - (known_modes): Rename to modes. - (find_mode): Kill class argument; look up in hash table. - (new_mode): Insert into hash table also. - (new_adjust): New. - (reset_float_format, make_partial_integer_mode) - (make_vector_mode): Tweak error reporting. - (reset_float_format): Correct type of fourth argument. - (emit_insn_modes_h): Add #defines to help make mode_size, - mode_base_align, and real_format_for_mode conditionally const. - (emit_mode_size, emit_mode_base_align): Use print_maybe_const_decl. - (emit_real_format_for_mode): Likewise, but temporarily disabled. - (emit_insn_modes_c): Call emit_mode_adjustments. - (main): Initialize modes_by_name. - * Makefile.in: Update dependencies. - * machmode.def: Document EXPR arguments and new ADJUST_* statements. - * machmode.h: Use CONST_MODE_SIZE and CONST_MODE_BASE_ALIGN in - declarations of mode_size and mode_base_align. Declare - init_adjust_machine_modes. - * toplev.c (backend_init): Call init_adjust_machine_modes. - -2003-10-15 Olivier Hainque - - * genmodes.c (calc_wider_mode): Allocate enough room for all the - entries we'll possibly assign in the sort buffer. - -2003-10-15 Ulrich Weigand - - * config.gcc (s390x-ibm-tpf*): New target. - * doc/install.texi: Document it. - * config/s390/t-tpf: New file. - * config/s390/tpf.h: New file. - -2003-10-15 Hans-Peter Nilsson - - PR target/12598 - * config/cris/cris.md (define_split "*mov_sidesi_biap_mem"+1) - (define_splits "*mov_sidesi_mem"+1, "casesi"+9, +10, +11, +12): - Use cris_mem_op and replace_equiv_address, not gen_rtx_MEM. - ("call", "call_value", define_split "*mov_sidesi_mem"+19, +20) - (define_split "*mov_sidesi_mem"+21, +22, +23, +24, +25, +26, +27) - (define_split "*mov_sidesi_mem"+28, +29, +30): Use - replace_equiv_address, not gen_rtx_MEM. - * config/cris/cris.c (cris_mem_op): New match_operator function. - (cris_notice_update_cc): Use replace_equiv_address, not - gen_rtx_MEM. - * config/cris/cris.h (PREDICATE_CODES): Add cris_mem_op. - -2003-10-15 Bernardo Innocenti - - * config/m68k/m68k.h (MASK_SEP_DATA, TARGET_SEP_DATA, - MASK_ID_SHARED_LIBRARY, TARGET_ID_SHARED_LIBRARY): Move - definitions after the other flags. - -2003-10-14 Ziemowit Laski - - * c-parse.in (methoddef, methodproto): Call objc_add_method() - instead of add_method(). - * objc/objc-act.c (objc_check_decl): Do not check for - constant_string_type. - (add_method): Rename to objc_add_method(). - (really_start_method): Call objc_add_method() instead of - add_method(). - * objc/objc-act.h (add_method): Rename to objc_add_method(). - -2003-10-14 Ulrich Weigand - - * config/s390/s390-protos.h (s390_alc_comparison): Add prototype. - (s390_slb_comparison): Likewise. - * config/s390/s390.c (s390_alc_comparison, s390_slb_comparison): - New functions. - * config/s390/s390.h (PREDICATE_CODES): Add s390_alc_comparison - and s390_slb_comparison. - * config/s390/s390.md ("*adddi3_31", "*subdi3_31"): Do not use on - zSeries machines. - ("*adddi3_31z", "*subdi3_31z"): New insns. - ("*adddi3_alc_cc", "*adddi3_alc", "*subdi3_slb_cc", "*subdi3_slb", - "*addsi3_alc_cc", "*addsi3_alc", "*subsi3_slb_cc", "*subsi3_slb"): - New insns. - -2003-10-14 Nathanael Nerode - - * configure.in: Clean up some feedback echoes. - * configure: Regenerate. - - * aclocal.m4: Properly quote names of macros being defined. - - * config.gcc (am33_2.0-*-linux*): Use t-slibgcc-elf-ver. - -2003-10-14 Steve Ellcey - - * config/ia64/ia64.c (ia64_expand_call): Force function address - to DImode. - * config/ia64/ia64.md (call_gp): Put DImode on operand 0. - -2003-10-14 Ulrich Weigand - - * config/s390/s390.md ("muldf3", "*muldf3", "*muldf3_ibm", - "mulsf3", "*mulsf3", "*mulsf3_ibm"): Do not clobber CC. - ("divdf3", "*divdf3", "*divdf3_ibm", "divsf3", "*divsf3", - "*divsf3_ibm"): Likewise. - -2003-10-14 Nathanael Nerode - - * config.gcc, config/m68hc11/t-m68hc11-gas: Replace uses of - target_alias with target_noncanonical. - -2003-10-14 Geoffrey Keating - - * expr.c (block_move_libcall_safe_for_call_parm): Clean up, - and add case for machines where outgoing register parameters - get stack space. - - * config/darwin.c (machopic_indirect_data_reference): Use a scratch - register when generating indirect address. - -2003-10-14 Richard Earnshaw - - * arm.c (arm_addimm_operand): MODE arguemnt is unused. - * arm.md (cbranchne_decr1): Fix bootstrap warning. - -2003-10-14 Rainer Orth - - * fixinc/inclhack.def (alpha_pthread_gcc): New fix. - * fixinc/fixincl.x: Regenerate. - * fixinc/tests/base/pthread.h [ALPHA_PTHREAD_GCC_CHECK]: New - testcase. - Fixes PR bootstrap/9330. - -2003-10-13 Eric Christopher - - * config/frv/frv.c (frv_adjust_field_align): Redo check for - too wide bitfields. - (frv_hard_regno_mode_ok): Add SPR_P and AP_FIRST. - * config/frv/frv.h (FUNCTION_PROFILER): Remove abort call. - (SBSS_SECTION_ASM_OP): Remove. - (EXTRA_SECTIONS): Remove in_sbss. - (EXTRA_SECTION_FUNCTIONS): Remove SBSS_SECTION_FUNCTION. - (SBSS_SECTION_FUNCTION, sbss_section): Remove. - (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Change sbss_section to - named_section. - -2003-10-13 Nathanael Nerode - - * Makefile.in, configure.in, config.host, mkheaders.in: Replace - uses of ${target_alias} for directory names (and other places which - won't like the empty string) with ${target_noncanonical}. Introduce - call early in configure.in to _GCC_TOPLEV_NONCANONICAL_TARGET so it's - available. - * configure: Regenerate. - -2003-10-13 Ian Lance Taylor - - * config/arm/iwmmxt.md (cond_iwmmxt_movsi_insn): New pattern. - * config/arm/arm.md: For splits which rely on conditional moves, - remove ! TARGET_IWMMXT condition. - -2003-10-13 David S. Miller - - * ifcvt.c (num_removed_blocks): Rename to num_true_changes. - (find_cond_trap): Always increment if we emit a conditional - trap insn. - -2003-10-13 Zack Weinberg - - * Makefile.in (BUILD_RTL): Replace $(BUILD_PREFIX)insn-modes.o - with min-insn-modes.o. - (STAGESTUFF): Add min-insn-modes.c. - (genobjs): Add genmodes.o. - (print-rtl.o, print-rtl1.o): Depend on $(TM_P_H). - (insn-modes.o): Depend on $(TM_H) not $(GTM_H); also real.h. - (min-insn-modes.c, min-insn-modes.o): New rules. - (s-modes): Also generate min-insn-modes.c. - ($(BUILD_PREFIX_1)insn-modes.o): Kill. - * genmodes.c (struct mode_data): Add format field. - (blank_mode, validate_mode, complete_mode): Update to match. - (make_scalar_mode): Separate into make_int_mode and make_float_mode. - (_SCALAR_MODE): Kill. - (FLOAT_MODE, FRACTIONAL_FLOAT_MODE): Add format argument. - (emit_insn_modes_c_header): Adjust. - (emit_min_insn_modes_c_header, emit_real_format_for_mode) - (emit_min_insn_modes_c): New functions. - (emit_insn_modes_c): Call emit_real_format_for_mode. - (main): Add -m option to generate min-insn-modes.c. - * machmode.h: Update documentation. Add format argument to - all uses of FLOAT_MODE. - * real.c: Don't define real_format_for_mode here. - - * dwarfout.c: Move default definition of PRINT_REG... - * defaults.h: ...here. - * print-rtl.c: Include tm_p.h. - (DEBUG_PRINT_REG, DEBUG_REGISTER_NAMES, debug_reg_names, reg_names): - Kill. - (print_rtx): Use PRINT_REG, not DEBUG_PRINT_REG. But surround - this entire block with #ifndef GENERATOR_FILE. - * regclass.c: Unconditionally define reg_names. - * config/mips/mips.h, config/rs6000/rs6000.h, config/sh/sh.h - Don't define DEBUG_REGISTER_NAMES. - * config/rs6000/darwin.h: Don't use DEBUG_REGISTER_NAMES in - redefinition of REGISTER_NAMES. - * config/i386/i386.h: Don't define DEBUG_PRINT_REG. - - * combine.c: Change all preprocessor conditionals on - EXTRA_CC_MODES to use SELECT_CC_MODE instead; rearrange a bit - for clarity. - * genopinit.c: Remove mention of EXTRA_CC_MODES in comment. - * configure.in: Don't define EXTRA_CC_MODES. - * configure, config.in: Regenerate. - * doc/tm.texi: Remove documentation of EXTRA_CC_MODES. - - * config/arc/arc.c, config/m32r/m32r.c, config/sparc/sparc.c: - May assume that GET_MODE_CLASS is accurate for extra CC modes - at all times. - - * config/i860/i860.h (INIT_CUMULATIVE_ARGS): Pass correct - number of arguments to aggregate_value_p. - - * genmodes.c (RESET_FLOAT_FORMAT, reset_float_format): New. - * machmode.def: Explain ARCH-modes.def. Document - RESET_FLOAT_FORMAT. Improve commentary on various mode - clusters. Do not define OI, PQI, PHI, PSI, PDI, QF, HF, TQF, - XF, or TF modes here. Remove backward-compatibility - definition of CC. - - * config/alpha/alpha-modes.def: New file; define TF mode. - * config/arc/arm-modes.def: Define XF mode. - * config/c4x/c4x-modes.def: Define QF and HF modes. Unset - float format for SF and DF modes. - * config/dsp16xx/dsp16xx-modes.def: New file; define HF mode. - * config/i386/i386-modes.def: Define XF and TF modes. - * config/i960/i960-modes.def: Define TF mode. - * config/ia64/ia64-modes.def: Define TF and OI modes. - * config/m68k/m68k-modes.def: New file; define XF mode. - * config/mips/mips-modes.def: New file; define TF mode, reset - formats for SF and DF modes. - * config/pa/pa-modes.def: Define TF mode. - * config/rs6000/rs6000.c: Define TF and PSI modes. - * config/s390/s390-modes.def: Define OI mode. - * config/sh/sh-modes.def: New file; define PSI mode. - * config/sparc/sparc-modes.def: Define TF mode. - * config/vax/vax-modes.def: New file; reset formats for SF and - DF modes. - - * config/c4x/c4x.c (c4x_override_options): No need to mess - with real_format_for_mode or set REAL_MODE_FORMATs. - (c4x_immed_int_constant): Don't apply GET_MODE_CLASS to rtx - variable. - * config/i386/i386.c (override_options): No need to set - REAL_MODE_FORMATs here. - * config/i960/i960.c (i960_initialize): Likewise. - * config/m68k/m68k.c (m68k_override_options): Likewise. - * config/ia64/ia64.c (ia64_override_options): Set REAL_MODE_FORMAT - for TFmode only if not the default. - * config/mips/mips.c (override_options): Likewise. - * config/vax/vax.c (override_optionms): Set REAL_MODE_FORMAT for - DFmode only if not the default. - - * config/i370/i370.h (RET_REG): Don't consider TFmode. - * config/m68hc11/m68hc11.c (print_operand): Don't consider XFmode. - * config/dsp16xx/dsp16xx.c (hard_regno_mode_ok): #if 0 out use - of modes that don't appear anywhere in the machine description. - - * config/arc/arc-modes.def, config/arm/arm-modes.def - * config/c4x/c4x-modes.def, config/frv/frv-modes.def - * config/i386/i386-modes.def, config/i960/i960-modes.def - * config/ia64/ia64-modes.def, config/mmix/mmix-modes.def - * config/pa/pa-modes.def, config/pdp11/pdp11-modes.def - * config/rs6000/rs6000-modes.def, config/s390/s390-modes.def - * config/sparc/sparc-modes.def: Convert to new style for - declaring extra CC modes. - -2003-10-13 Zack Weinberg - - * cpplex.c (_cpp_clean_line): In the common case of a line - with no trigraphs and no \-newline, avoid writing to memory. - (_cpp_skip_block_comment): Use a local 'cur' pointer instead - of the buffer member. Make c an uchar to avoid unnecessary - sign extensions. - -2003-10-13 Nathanael Nerode - - * configure.in: Remove unnecessary test. - * configure: Regenerate. - - * configure.in: Fix grammatical error. Move UWIN host error to... - * config.host: Here. - * configure: Regenerate. - -2003-10-13 Andreas Krebbel - - * config/s390/s390.md ("*fmadddf4", "*fmsubdf4", "*fmaddsf4", - "*fmsubsf4"): Insns are now dependent on TARGET_FUSED_MADD instead - of flag_unsafe_math_optimizations. - * config/s390/s390.h ("MASK_NO_FUSED_MADD", "TARGET_NO_FUSED_MADD", - "TARGET_FUSED_MADD", "TARGET_SWITCHES"): Introduced new target flags - fused-madd and no-fused-madd. - * doc/invoke.texi: Documented the new options fused-madd and - no-fused-madd for S/390. - -2003-10-14 Alan Modra - - * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Choose - MASK_ALIGN_NATURAL if rs6000_alignment_string not given. Don't - assign DEFAULT_ABI. - (ADJUST_FIELD_ALIGN, ROUND_TYPE_ALIGN): Update comment. - * config/rs6000/rs6000.c: Formatting. - (rs6000_parse_alignment_option): Only set rs6000_alignment_flags - when rs6000_alignment_string given. - -2003-10-13 Eric Botcazou - - PR target/12538 - * config/sparc/sparc.c (MUST_SAVE_REGISTER): Delete. - (sparc_flat_must_save_register_p): New function to decide whether - a register must be saved/restored in the function prologue/epilogue. - (sparc_flat_compute_frame_size): Use it instead of MUST_SAVE_REGISTER. - -2003-10-12 Steven Bosscher - - * config/avr/avr.c, config/avr/avr-protos.h: Convert to - ISO C90 function declarations and definitions. - * config/sh/sh.c, config/sh/sh-protos.h: Likewise. - -2003-10-12 Nathanael Nerode - - * config.gcc (*-*-freebsd*): Use tm_defines instead of tiny - config files which do the same thing. - * config/freebsd3.h, config/freebsd4.h, config/freebsd5.h, - config/freebsd6.h: Remove now unnecessary files. - -2003-10-12 Steven Bosscher - - * c-common.c (c_common_truthvalue_conversion): Warn if the - address of a non-weak function is used as a truth value. - -2003-10-12 Kazu Hirata - - * config/h8300/h8300.c (WORD_REG_USED): Use SP_REG instead of - a literal. - * config/h8300/h8300.h (REGNO_OK_FOR_BASE_P): Use MAC_REG - instead of a literal. - -2003-10-12 Hans-Peter Nilsson - - * doc/extend.texi (Function Attributes): Mention the exceptional - path for noreturn-marked functions. - -2003-10-12 Jan Hubicka - - * cgraphunit.c (cgraph_decide_inlining): Fix uninitialized variable - warning. - -2003-10-12 Danny Smith - - * config/i386/i386.c (x86_this_parameter): Fix typo. - -203-10-11 Jan Hubicka - - * Makefile.in (web.o): New. - * web.c: New file. - * rtl.h (web_main): Declare. - * timervar.def (TV_WEB): New. - * toplev.c (dump_file_index, dump_file_info): Add DFI_web. - (rest_of_hanle_web): New. - (flag_web): New static variable. - (lang_independent_options): Add "web". - (rest_of_compilation): Call rest_of_handle_web. - * invoke.texi (-fweb): Document. - * common.opt (fweb): New. - * flags.h (flag_web): New. - * opts.c (decode_options): Set flag_web at -O3. - - * passes.texi (web construction): Document. - * invoke.texi (-O3): Document that -fweb is enabled. - - * regrename.c (regrename_optimize): Deal better with situation when - replacement failed. - - * sched-ebb.c: Include params.h and profile.h - (schedule_ebbs): Use tracer parameters to discover superblocks - * Makefile.in (sched-ebb.o): Add dependencies. - -2003-10-11 Roger Sayle - - * fold-const.c (negate_mathfn_p): New function to determine whether - a built-in mathematical function is sign preserving, f(-x) == -f(x). - Add support for BUILT_IN_ASIN, BUILT_IN_ASINF and BUILT_IN_ASINL. - (tree_swap_operands_p): Change API to take an additional argument - indicating that the swapped operands evaluate in reverse order. - Canonicalize VAR_DECLs and PARM_DECLs last if we can, i.e. neither - operand side-effects or we don't care about flag_evaluation_order. - (reorder_operands_p): New function to check whether its safe to - evaluate the given operands in reverse order. - (negate_expr_p): We can always negate integer constants unless - we honor -ftrapv and the signed type would overflow. Only allow - -(A-B) into B-A if reorder_operands_p says that its OK. Allow - negation of COMPLEX_CST if both real and imaginary parts can be - negated. Allow negation through floating point extensions and - sign-preserving built-in functions. - (negate_expr): Move the code to negate integers from "fold" to - here. Always negate integer constants unless we honor -ftrapv - and the signed type would overflow. Always negate real constants - unless we honor -ftrapping-math. Only convert -(A-B) into B-A - if allowed by reorder_operands_p. Add support for COMPLEX_CST. - Optimize negation through floating point extensions and - sign-preserving built-in functions (as defined by negate_mathfn_p). - (fold): Adjust calls to tree_swap_operands_p. - (fold ): Move the remaining negation optimizations - to negate_expr_p/negate_expr. - (fold ): Use reorder_operands_p to check whether we're - allowed to convert (-A) - B into (-B) - A. - -2003-10-11 Roger Sayle - - * builtins.c (expand_builtin_strcmp): Defend against the possibility - that gen_cmpstrsi may fail: Stabilize the argument list against - re-evaluation and expand the library call directly using this saved - argument list if a cmpstrsi sequence can't be generated. - (expand_builtin_strncmp): Likewise. - - * config/i386/i386.md (cmpstrsi, movstrsi): Disable with -Os. - -2003-10-11 Roger Sayle - - PR optimization/12260 - * simplify-rtx.c (simplify_unary_operation): Simplify all unary - operations through CONST nodes. Optimize (neg (plus X C)) as - (minus -C X) for constant values C. - (simplify_binary_operation): Optimize (minus (neg X) C) as - (minus -C X) for constant values C. - (simplify_plus_minus): Avoid creating (neg (const (plus X C)), - instead create (minus -C X). - -2003-10-11 Roger Sayle - - * expr.c (expand_expr ): Let expand_operands call - safe_from_p for us, once it chooses an evaluation order. - (expand_expr ): Likewise. - (expand_expr ): Likewise. If expand_operands - places the second operand in "target", swap the operands. - (do_store_flag): Let expand_operands call safe_from_p for us. - -2003-10-11 Eric Botcazou - - PR optimization/12544 - * function.c (put_var_into_stack): Don't generate ADDRESSOFs - for DECL_NONLOCAL decls. - -2003-10-11 Kazu Hirata - - * expr.c: Follow spelling conventions. - * final.c: Likewise. - * optabs.c: Likewise. - * sched-deps.c: Likewise. - * sdbout.c: Likewise. - -Sat Oct 11 12:24:23 CEST 2003 Jan Hubicka - - * varasm.c (notice_global_symbol): Fix handling of variables; avoid - re-computing of variable. - -2003-10-11 Richard Henderson - - * config/alpha/alpha.c (alpha_return_in_memory): Rename from - return_in_memory, make static, change signature to match target hook. - (alpha_setup_incoming_varargs): Make static, change signature to - match target hook, add code for vms and unicos. - (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN, - TARGET_PROMOTE_PROTOTYPES, TARGET_STRUCT_VALUE_RTX, - TARGET_RETURN_IN_MEMORY, TARGET_SETUP_INCOMING_VARARGS, - TARGET_STRICT_ARGUMENT_NAMING, - TARGET_PRETEND_OUTGOING_VARARGS_NAMED): New. - * config/alpha/alpha-protos.h: Update. - * config/alpha/alpha.h (PROMOTE_FUNCTION_ARGS, - PROMOTE_FUNCTION_RETURN, RETURN_IN_MEMORY, - SETUP_INCOMING_VARARGS): Remove. - * config/alpha/unicosmk.h (SETUP_INCOMING_VARARGS): Remove. - * config/alpha/vms.h (SETUP_INCOMING_VARARGS): Remove. - -2003-10-11 Ian Lance Taylor - - * config/arm/arm.c (arm_regno_class): Handle IWMMXT_GR_REGS. - -2003-10-11 Kazu Hirata - - * config/m68k/lb1sf68.asm: Follow spelling conventions. - * config/m68k/m68k.c: Likewise. - * config/m68k/m68k.h: Likewise. - * config/m68k/m68k.md: Likewise. - -2003-10-11 Roger Sayle - - * builtins.c (expand_builtin_memcpy): Optimize case when the two - pointer arguments are the equal, non-volatile and side-effect free. - (expand_builtin_mempcpy): Likewise. - (expand_builtin_memmove): Likewise. - (expand_builtin_strcpy): Likewise. - (expand_builtin_memcmp): Likewise. - (expand_builtin_strcmp): Likewise. - (expand_builtin_strncmp): Likewise. - -2003-10-11 Roger Sayle - - * combine.c (apply_distributive_law): Enable "distributive" floating - point optimizations with -funsafe-math-optimizations. - -2003-10-11 Andrew Pinski - - * genmodes.c (emit_mode_mask) Change MASK to MODE_MASK. - -2003-10-11 Kazu Hirata - - * config/m68k/m68k-protos.h: Remove the prototype for - finalize_pic. - -2003-10-11 Kazu Hirata - - * config/m68k/m68k.c: Fix comment typos. - -2003-10-11 Bernardo Innocenti - - * config/m68k/m68k-protos.h (use_return_insn): Change return type from - int to bool. - * config/m68k/m68k.c (struct m68k_frame): Add funcdef_no member. - (current_frame): New global var. - (m68k_compute_frame_layout): Cache computations in current_frame. - (m68k_initial_elimination_offset): Use values from current_frame - instead of recomputing them. - (use_return_insn): Likewise. - (m68k_output_function_prologue): Likewise. - (m68k_output_function_epilogue): Likewise. - * config/m68k/m68k.h (TARGET_CPU_CPP_PREDEFINES): Fold __PIC__ handling - inside the block for __pic__. - -2003-10-11 Peter Barada - Bernardo Innocenti - - * config/m68k/m68k.c (m68k_frame): Move before protos referencing it. - (m68k_save_reg): Add boolean parameter `interrupt_handler'. - (m68k_interrupt_function_p): New function. - (m68k_handle_fndecl_attribute): Ditto. - (m68k_compute_frame_layout): Ditto. - (m68k_attribute_table): Define back-end specific attributes. - (m68k_output_function_epilogue): Emit RTE instruction for interrupt - functions. - -2003-10-11 Bernardo Innocenti - - * config/m68k/t-uclinux: New target Makefile fragment. - * config/m68k/uclinux.h: New target macro file. - * config.gcc (m68k-*-uclinux): New target definition. - -2003-10-10 Roger Sayle - - * builtins.c (builtin_mathfn_code): Generalize to check whether - the call is to any built-in function by comparing the call's - argument list against the builtin decl's function type. - -2003-10-10 Roger Sayle - - * cse.c (constant_pool_entries_regcost): New global variable to - hold the register cost component of constant_pool_entries_cost. - (fold_rtx): Calculate constant_pool_entries_regcost at the same - time as constant_pool_entries_cost. - (cse_insn): Set both src_folded_cost and src_folded_regcost from - constant_pool_entries_cost and constant_pool_entries_regcost. - (cse_main): Initialize constant_pool_entries_regcost to zero. - - * optabs.c (expand_unop): Attach a REG_EQUAL note describing - the semantics of the sequence of bit operations used to negate - a floating-point value. - (expand_abs_nojump): Likewise attach a REG_EQUAL note describing - the semantics of the bit operations used to abs a floating point - value. - -2003-10-11 Bernardo Innocenti - Paul Dale - - * config/m68k/lb1sf68.asm: Add __PIC__ and __ID_SHARED_LIBRARY__ - support. - * config/m68k/m68k-none.h (ASM_SPEC): Pass --pcrel to assembler on - -fpic, -fPIC, -msep-data and -mid-shared-library. - * config/m68k/m68k.c (m68k_library_id_string): New global variable. - (override_options): Add -msep-data and -mshared-library-id support. - (m68k_output_function_prologue): Generate code to load A5 for - TARGET_ID_SHARED_LIBRARY and TARGET_SEP_DATA. - (m68k_output_mi_thunk): Emit indirect jump on TARGET_ID_SHARED_LIBRARY. - (m68k_output_pic_call): New function. - * gcc/config/m68k/m68k.h (TARGET_SEP_DATA): New target flag. - (TARGET_ID_SHARED_LIBRARY): Ditto. - (TARGET_SWITCHES): Add switches for -mid-shared-library and -msep-data. - * gcc/config/m68k/m68k.md (call): Call m68k_output_pic_call(). - (call_value): Likewise. - -2003-10-10 Zack Weinberg - - * gengenrtl.c (find_formats, genheader): Make i an unsigned - int, remove cast of NUM_RTX_CODE. - * machmode.h: Make the HAVE_MACHINE_MODES #ifdef encompass the - entire file. Remove the #ifs on GET_MODE_MASK etc and - GET_MODE_WIDER_MODE etc. - -2003-10-10 Eric Christopher - - * lcm.c (optimize_mode_switching): Change NORMAL_MODE - to MODE_ENTRY and MODE_EXIT. Add MODE_AFTER for insns - that set mode. - * config/sh/sh.h (MODE_ENTRY): New macro. - (MODE_EXIT): Ditto. - (MODE_AFTER): Ditto. - * config/sh/sh.md: Change for MODE_AFTER. Add - fp_set attribute. - * doc/tm.texi: Document MODE_AFTER, MODE_ENTRY, and MODE_EXIT. - -2003-10-10 Zack Weinberg - - * genmodes.c, mode-classes.def: New files. - * machmode.def: Rewritten to genmodes.c interface. - * Makefile.in (extra_modes_file): New substitution variable. - (MACHMODE_H): No longer includes machmode.def or - @extra_modes_file@; instead, mode-classes.def and insn-modes.h. - (BUILD_RTL): Add $(BUILD_PREFIX)insn-modes.o. - (OBJS-common): Add insn-modes.o. - (STAGESTUFF): Add insn-modes.c, insn-modes.h, s-modes, and - genmodes$(build_exeext). - (insn-modes.o, insn-modes.c, insn-modes.h, s-modes, genmodes.o, - genmodes$(build_exeext), $(BUILD_PREFIX_1)insn-modes.o): New targets. - (s-genrtl): Don't depend on $(RTL_BASE_H). - (gengenrtl.o): Don't depend on coretypes.h, $(GTM_H), real.h, - or $(RTL_BASE_H); just rtl.def. - * gengenrtl.c: Don't include coretypes.h, tm.h, rtl.h, or - real.h. Give fake definition of CONST_DOUBLE_FORMAT and - substitute definition of NUM_RTX_CODE. Add casts to avoid - warnings. - * machmode.h: Include insn-modes.h, not machmode.def. Include - mode-classes.def to define enum mode_class. Tweak definitions - of GET_MODE_CLASS, GET_MODE_SIZE, GET_MODE_BITSIZE, GET_MODE_MASK, - GET_MODE_INNER, GET_MODE_WIDER_MODE, GET_CLASS_NARROWEST_MODE. - (inner_mode_array): Renamed mode_inner. - (mode_base_align): New. - * rtl.c (mode_name, mode_class, mode_bitsize, mode_size, - mode_unit_size, mode_wider_mode, mode_mask_array, - inner_mode_array, class_narrowest_mode): Delete definitions. - * stor-layout.c (get_mode_alignment): Use mode_base_align. - * real.h: Use MIN_MODE_FLOAT and MAX_MODE_FLOAT, not QFmode - and TFmode, in real_format_for_mode and REAL_MODE_FORMAT. - - * config/ip2k/ip2k.h, config/iq2000/iq2000.h: - No need to define BITS_PER_UNIT. - -2003-10-10 Richard Kenner - - * config/ia64/ia64.c (ia64_vms_init_libfuncs): New function. - (ia64_output_function_prologue): Only write .prologue if --with-gnu-as. - (ia64_initialize_trampoline): If not using GAS, declare trampoline - as global. - * config/ia64/ia64.h (ASM_APP_ON, ASM_APP_OFF): Add vers for not GAS. - (ASM_OUTPUT_DEBUG_LABEL): Likewise. - - * stor-layout.c (compute_record_mode): Don't force BLKmode if - field is zero-length BLKmode. - * expr.c (expand_expr, case COMPONENT_REF): Handle case of BLKmode - zero-size references. - - * combine.c (distribute_links): Properly test for REG being set. - - * config/alpha/alpha.c (alpha_expand_block_mode): Don't use - gen_lowpart and company except for REG. - -2003-10-10 John David Anglin - - * pa64-hpux.h (LINK_SPEC): Use `-z' option with HP ld. - -2003-10-10 Nathanael Nerode - - * config.gcc (mips*-*-netbsd*): Remove content-free line. - -2003-10-10 Herman A.J. ten Brugge - - * gcov-io.h: Check BITS_PER_UNIT when defining gcov_unsigned_t, - gcov_position_t and gcov_type. - -2003-10-09 Kaz Kojima - - * configure.in (HAVE_AS_TLS): Add sh-*-* and sh[34]*-*-* cases. - * configure: Regenerate. - -2003-10-09 Kazu Hirata - - * config/h8300/h8300.md (define_asm_attributes): Specify - the length of an asm insn more precisely. - -2003-10-09 Rainer Orth - - * config/mips/iris6.h (SUBTARGET_CPP_SPEC): Define. - -2003-10-09 Bob Wilson - - * config/xtensa/xtensa.c (xtensa_dbx_register_number): Change first - FP register number to 48 and MAC16 accumulator to 0x210. - -2003-10-09 Nathanael Nerode - - * config.gcc: Remove redundant thread_file setting clauses for - various *-*-linux* targets. - -2003-10-09 Kazu Hirata - - * config/h8300/h8300.md (define_asm_attributes): New. - -2003-10-09 Roger Sayle - - * optabs.c (prepare_float_lib_cmp): Always attach a REG_EQUAL note - to the comparison, as emit_libcall_block calls copy_rtx on equiv. - -2003-10-09 Dorit Naishlos - - * haifa-sched.c (ok_for_early_schedule): New function. - (early_queue_to_ready): New function. - (schedule_block): Allow early removal of insns from Q. - (schedule_insn): Update INSN_TICK in case of premature - issue. - * common.opt (sched_stalled_insns): New flag. - (sched_stalled_insns_dep): New flag. - * flags.h: Same above flags. - * opts.c: Same as above. - * toplev.c: Same as above. - * target.h (targetm.sched.is_costly_dependence): New - hook. - * target-def.h: Same as above. - * config/rs6000/rs6000.h: (rs6000_sched_costly_dep): - Support new flag -msched-costly-dep. - (DEFAULT_SCHED_COSTLY_DEP): Define. - * config/rs6000/rs6000.c: - (rs6000_is_costly_dependence): New function. - (is_load_insn, is_store_insn): New functions. - (is_load_insn1, is_store_insn1, is_mem_ref): New - functions. - * doc/invoke.texi (-fsched-stalled-insns-dep) - (-fsched-stalled-insns, -msched-costly-dep): Document - options. - * doc/tm.texi (is_costly_dependence): Define new - scheduler target hook. - -2003-10-09 Jason Merrill - - PR c++/6392 - * c-common.c (c_build_qualified_type): Look through arrays first. - (c_apply_type_quals_to_decl): Look through arrays. - - * c-common.c (c_apply_type_quals_to_decl): Unset TREE_READONLY for - types with constructors. - - * coverage.c (build_ctr_info_value): Use build_decl to make a - VAR_DECL. - (create_coverage): Likewise. - - * stmt.c (resolve_asm_operand_names): Call check_unique_operand_names - here. - (expand_asm_operands): Not here. - (parse_input_constraint): No longer static. - * tree.h: Declare it. - -2003-10-08 Kaz Kojima - - * config/sh/t-linux (SHLIB_LINK): Override to use a linker script - libgcc_s.so. - (SHLIB_INSTALL): Likewise. - -2003-10-08 Nathanael Nerode - - * doc/install.texi: Remove reference to removed 'pthreads' thread - option. - -2003-10-08 Aldy Hernandez - - * config/rs6000/rs6000.md ("abssi2_isel"): Add early clobber to - operand 2. - -2003-10-08 Nathanael Nerode - - * config.gcc: Don't accept --enable-threads=pthreads. Clean - up related case statements. - * configure.in: Don't accept --enable-threads=pthreads, - decosf1, mach, or os2 (none of which work anyway). Alphabetize - supported thread files in case clause. - * configure: Regenerate. - -2003-10-08 Geoffrey Keating - - * function.c (pad_to_arg_alignment): Move 'boundary_in_bytes' - definition to above SPARC_STACK_BOUNDARY_HACK. - -2003-10-08 Jason Merrill - - * c-pretty-print.c (pp_c_postfix_expression) - : Fix thinko. - -2003-10-08 Rainer Orth - - * mklibgcc.in: Don't hide undefined or typeless symbols. - -2003-10-08 John David Anglin - - PR optimization/12142 - * cse.c (count_reg_usage): In a SET with a REG SET_DEST, count the - uses of the register in the SET_SRC. Remove unnecessary argument. - * pa.c (legitimize_pic_address): Before reload, use a scratch register - for the intermediate result in loading the address of a SYMBOL_REF. - Set the MEM_NOTRAP_P flag for the MEM. Add a REG_EQUAL to the insn - which loads the SYMBOL_REF address. - -2003-10-08 Timo Kokkonen - Eric Botcazou - - PR bootstrap/12490 - * scan-decls.c (MAX_EXTERN_C_BRACES): New preprocessor constant - to define the size of the extern_C_braces array. Set it to 200. - (scan_decls): Abort when extern_C_braces_length is out-of-bounds. - -2003-10-08 Carlo Wood - - * Makefile.in (gengtype-lex.c): flex 2.5.4[a] doesn't understand - a space after the -o option. flex 2.5.31 understands both, with - and without the space. Removed that space. - -2003-10-08 Richard Sandiford - - * config/mips/mips.c (mips_frame_info): Add cprestore_size field. - (compute_frame_size): Initialize it. Remove the .cprestore slot - from args_size. - (mips_output_function_prologue): Simplify accordingly. - (mips_debugger_offset): Change the mips16 frame pointer offset from - current_function_outgoing_args to cfun->machine->frame.args_size. - (mips_initial_elimination_offset): Likewise. - (mips_expand_prologue): Likewise. - (mips_expand_epilogue): Likewise. - -2003-10-08 Richard Sandiford - - * config/mips/mips.h (EXTRA_CONSTRAINT): Add 'W' constraint. - (EXTRA_MEMORY_CONSTRAINT): Define. - (CAN_ELIMINATE): Remove lwu workaround. - * config/mips/mips.md (*zero_extendsidi2_mem): Enable for mips16 too. - Use a 'W' constraint for the source operand. - -2003-10-08 Kazu Hirata - - * genopinit.c (main): Output code to declare undefined - variables. - -2003-10-07 Kelley Cook - - * gengtype-lex.l: Remove -Wtraditional cruft. - * Makefile.in (gengtype-lex.c): Likewise. - -2003-10-07 Zdenek Dvorak - - * cfgloopmanip.c (fix_irreducible_loops): Initialize e correctly. - -2003-10-07 Jason Merrill - - PR c++/12519 - * c-semantics.c (genrtl_cleanup_stmt): Ignore the CLEANUP_DECL if - it isn't a decl. - -2003-10-07 Alexandre Oliva - - * gcc.c (cpp_options): Only pass -fworking-directory for -g* if - not overridden. - Fixes PR bootstrap/12173. - -2003-10-07 Zack Weinberg - - * errors.c: Don't include coretypes.h or tm.h. - (trim_filename): Use IS_DIR_SEPARATOR. - * Makefile.in: Update dependencies of errors.o and - $(BUILD_PREFIX_1)errors.o. - -2003-10-07 Geoffrey Keating - - * function.c (pad_to_arg_alignment): Take STACK_POINTER_OFFSET into - account when aligning arguments. - * calls.c (STACK_POINTER_OFFSET): Move default from here ... - * defaults.h (STACK_POINTER_OFFSET): ... to here. - * config/sparc/sparc.h (STACK_BOUNDARY): Add comment about how - it's wrong when TARGET_ARCH64 && TARGET_STACK_BIAS. - (SPARC_STACK_BOUNDARY_HACK): Define. - * config/rs6000/rs6000.c (function_arg): On non-SVR4 systems, - arrange for vector parameters to varargs functions to be passed - in both memory and GPRs when appropriate. - (rs6000_va_arg): Vector arguments passed in memory are 16-byte - aligned. - - * hooks.c (hook_bool_tree_true): New. - (hook_rtx_tree_int_null): New. - (hook_rtx_rtx_null): Use NULL, not 0. - * hooks.h: Add 'extern' to everything. - (hook_bool_tree_true): New. - (hook_rtx_tree_int_null): New. - * targhooks.c (hook_bool_CUMULATIVE_ARGS_true): New. - * targhooks.h (hook_bool_CUMULATIVE_ARGS_true): New. - * config/rs6000/rs6000-protos.h (setup_incoming_varargs): Remove - prototype. - * config/rs6000/rs6000.c (rs6000_return_in_memory): New. - (setup_incoming_varargs): Prototype. - (TARGET_PROMOTE_FUNCTION_ARGS): Define. - (TARGET_PROMOTE_FUNCTION_RETURN): Define. - (TARGET_STRUCT_VALUE_RTX): Define. - (TARGET_RETURN_IN_MEMORY): Define. - (TARGET_SETUP_INCOMING_VARARGS): Define. - (TARGET_STRICT_ARGUMENT_NAMING): Define. - (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Define. - (init_cumulative_args): Use rs6000_return_in_memory. - (setup_incoming_varargs): Make 'static'. - * config/rs6000/rs6000.h (PROMOTE_FUNCTION_ARGS): Delete. - (PROMOTE_FUNCTION_RETURN): Delete. - (STRUCT_VALUE): Delete. - (RETURN_IN_MEMORY): Delete. - (SETUP_INCOMING_VARARGS): Delete. - -2003-10-07 Gerald Pfeifer - - * doc/invoke.texi (Warning Options): Simplify and clarify the - descriptions of -Wnonnull and -Winit-self. - -2003-10-07 Richard Earnshaw - - * optabs.c (init_intraclass_conv_libfuncs): Fix order of array - indicees for floating-point conversersion libcalls. - -2003-10-07 Nathanael Nerode - - * Makefile.in: Add more comments separating large conceptually - separate sections. - - * configure.in: Clean up thread file logic. - * configure: Regenerate. - -2003-10-07 Danny Smith - - * config/i386/cygming.h (READONLY_DATA_SECTION_ASM_OP): Define. - (switch_to_section): Handle in_readonly_data. - * config/i386/winnt.c (i386_pe_asm_named_section): Handle - readonly data. - -2003-10-07 Richard Earnshaw - - * arm.md (cmpsi2_addneg): New ARM pattern. Add peephole2 to generate - it. - (cbranchne_decr1): New Thumb pattern. - * arm.c (arm_addimm_operand): New insn predicate. - * arm-protos.h: Add a prototype for it. - * arm.h (PREDICATE_CODES): Add it. - -2003-10-07 Dorit Naishlos - - * sched-int.h (sched_info): New field - sched_max_insns_priority. - * sched-rgn.c (init_ready_list): Add invocations to - targetm.sched.adjust_priority. - (sched_max_insns_priority): Init new field. - * sched-ebb.c (sched_max_insns_priority): Init new field. - * haifa-sched.c (set_priorities): Set - sched_info->sched_max_insns_priority. - * config/rs6000/rs6000.h: - (rs6000_sched_restricted_insns_priority_str): Support new - flag -mprioritize-restricted-insns. - (DEFAULT_RESTRICTED_INSNS_PRIORITY): Define. - * config/rs6000/rs6000.c (is_dispatch_slot_restricted): New - function. - (rs6000_adjust_priority): Change priority of restricted - insns, using above new function and new flag. - * doc/invoke.texi (-mprioritize-restricted-insns): Document - new option. - -2003-10-07 Zack Weinberg - - * expr.c (cmpstr_optab, cmpmem_optab): New. - * genopinit.c: Initialize them. - * optabs.h: Declare them. - * optabs.c (init_optabs): Clear them. - (prepare_cmp_insn): Use cmpstr_optab and cmpmem_optab to find - block memory compare insns, not conditional chains. Restructure - the fallback generation of a call to memcmp/bcmp for better - readability. - -2003-10-07 Richard Sandiford - - * config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): New macro. - (mips_save_restore_fn): New typedef. - (mips_add_large_offset_to_sp, mips_emit_frame_related_store): Remove. - (mips_set_frame_expr, mips_frame_set): Move above prologue code. - (save_restore_insns): Remove, replacing with... - (mips_save_restore_reg, mips_for_each_saved_reg): ...these new fns. - (mips_save_reg, mips_restore_reg): New function. - (mips_expand_prologue, mips_expand_epilogue): Rework. - * config/mips/mips.h (MIPS_TEMP1_REGNUM, MIPS_TEMP2_REGNUM): Remove. - (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): New macros. - (MIPS_PROLOGUE_TEMP, MIPS_EPILOGUE_TEMP): New macros. - -2003-10-07 Richard Sandiford - - * config/mips/mips.c (mips_expand_prologue): Remove unused - traversal of function arguments. - -2003-10-07 Richard Sandiford - - * doc/invoke.texi: Remove documentation of -mentry. - * config/mips/mips.c (mips_entry_string, mips_entry): Remove. - (override_options, mips_save_reg_p): Remove handling. - (compute_frame_size, mips_output_function_prologue): Likewise. - (mips_expand_prologue, mips_expand_epilogue): Likewise. - * config/mips/mips.h (mips_entry_string): Remove declaration. - (TARGET_OPTIONS): Remove -mentry. - * config/mips/mips16.S: Remove mention of -mentry. - -2003-10-06 Zack Weinberg - - * libfuncs.h (LTI_extendsfdf2, LTI_extendsfxf2, LTI_extendsftf2) - (LTI_extenddfxf2, LTI_extenddftf2, LTI_truncdfsf2, LTI_truncxfsf2) - (LTI_trunctfsf2, LTI_truncxfdf2, LTI_trunctfdf2, LTI_floatsisf) - (LTI_floatdisf, LTI_floattisf, LTI_floatsidf, LTI_floatdidf) - (LTI_floattidf, LTI_floatsixf, LTI_floatdixf, LTI_floattixf) - (LTI_floatsitf, LTI_floatditf, LTI_floattitf, LTI_fixsfsi, LTI_fixsfdi) - (LTI_fixsfti, LTI_fixdfsi, LTI_fixdfdi, LTI_fixdfti, LTI_fixxfsi) - (LTI_fixxfdi, LTI_fixxfti, LTI_fixtfsi, LTI_fixtfdi, LTI_fixtfti) - (LTI_fixunssfsi, LTI_fixunssfdi, LTI_fixunssfti, LTI_fixunsdfsi) - (LTI_fixunsdfdi, LTI_fixunsdfti, LTI_fixunsxfsi, LTI_fixunsxfdi) - (LTI_fixunsxfti, LTI_fixunstfsi, LTI_fixunstfdi, LTI_fixunstfti) - (extendsfdf2_libfunc, extendsfxf2_libfunc, extendsftf2_libfunc) - (extenddfxf2_libfunc, extenddftf2_libfunc, truncdfsf2_libfunc) - (truncxfsf2_libfunc, trunctfsf2_libfunc, truncxfdf2_libfunc) - (trunctfdf2_libfunc, floatsisf_libfunc, floatdisf_libfunc) - (floattisf_libfunc, floatsidf_libfunc, floatdidf_libfunc) - (floattidf_libfunc, floatsixf_libfunc, floatdixf_libfunc) - (floattixf_libfunc, floatsitf_libfunc, floatditf_libfunc) - (floattitf_libfunc, fixsfsi_libfunc, fixsfdi_libfunc, fixsfti_libfunc) - (fixdfsi_libfunc, fixdfdi_libfunc, fixdfti_libfunc, fixxfsi_libfunc) - (fixxfdi_libfunc, fixxfti_libfunc, fixtfsi_libfunc, fixtfdi_libfunc) - (fixtfti_libfunc, fixunssfsi_libfunc, fixunssfdi_libfunc) - (fixunssfti_libfunc, fixunsdfsi_libfunc, fixunsdfdi_libfunc) - (fixunsdfti_libfunc, fixunsxfsi_libfunc, fixunsxfdi_libfunc) - (fixunsxfti_libfunc, fixunstfsi_libfunc, fixunstfdi_libfunc) - (fixunstfti_libfunc): Delete. - * optabs.h (struct optab_handlers): Break out of struct optab. - (struct convert_optab, convert_optab, enum convert_optab_index, - convert_optab_table, sext_optab, zext_optab, trunc_optab, - sfix_optab, ufix_optab, sfixtrunc_optab, ufixtrunc_optab, - sfloat_optab, ufloat_optab): New. - (set_conv_libfunc): Prototype. - (GEN_FCN): Use C90 indirect call syntax, remove unnecessary cast. - (trunc_optab): Renamed btrunc_optab. - * builtins.c (expand_builtin_mathfn): Update to match. - * optabs.c (extendtab, fixtab, fixtrunctab, floattab): Delete. - (convert_optab_table, new_convert_optab, init_convert_optab) - (init_interclass_conv_libfuncs, init_intraclass_conv_libfuncs) - (set_conv_libfunc): New. - (can_extend_p, gen_extend_insn, can_fix_p, can_float_p) - (expand_float, expand_fix): Use new conversion optabs, - not old insn code tables or long chains of ifs. - (init_optabs): No need to clear old insn code tables. - Initialize the new optabs, not the old libfunc array entries. - Don't handle FIXUNS_TRUNC_LIKE_FIX_TRUNC here. - * genopinit.c: Initialize conversion optabs, not the - former insn code tables. Remove unnecessary casts. - Handle FIXUNS_TRUNC_LIKE_FIX_TRUNC here. - * expr.c (convert_move): Remove redundant check that - to_real==from_real. Use the conversion optabs instead - of long chains of tests of modes. Move partial-integer-mode - interconversion above all integer conversion. Do not recurse - on a value forced into a register in the original mode. - - * config/gofast.h, config/frv/frv.c, config/ia64/ia64.c - * config/mips/mips.c, config/pa/pa.c, config/rs6000/rs6000.c - * config/sparc/sparc.c: Use set_conv_libfunc to adjust entries - in new conversion optabs; do not reference the old libfunc - array entries. No need to include libfuncs.h. - -2003-10-06 Roger Sayle - - * config/i386/i386.c (ix86_expand_setcc): Annotate the floating - point comparison sequence with a REG_EQUAL note that describes - the comparison's semantics. - -2003-10-06 Roger Sayle - - * expr.c (expand_expr ): Handle the void type semantics - of COND_EXPR when expanding the "A op 0 ? FOO : A" optimizations. - -2003-10-06 Roger Sayle - Zack Weinberg - - * optabs.c (prepare_float_lib_cmp): Avoid searching for REG_RETVAL - instruction by using LCT_CONST and then calling emit_libcall_block - ourselves. - -2003-10-06 Falk Hueffner - - PR optimization/11974 - * optabs.c (expand_unop): Promote libcall outmode according to - hard_libcall_value. - -2003-10-06 Zack Weinberg - - * real.h (REAL_MODE_FORMAT): New macro. - * c-cppbuiltin.c, optabs.c, real.c, config/alpha/alpha.c - * config/c4x/c4x.c, config/i370/i370.c, config/i386/freebsd.h - * config/i386/i386.c, config/i960/i960.c, config/ia64/ia64.c - * config/m68k/m68k.c, config/mips/mips.c, config/rs6000/rs6000.c - * config/vax/vax.c: Use REAL_MODE_FORMAT instead of referring - directly to real_format_for_mode array, wherever possible. - -2003-10-06 Devang Patel - - * dwarf2out.c (is_main_source): Remove variable. - (dwarf2out_start_source_file): Do not check is_main_source. - Do not reset is_main_source. - (dwarf2out_init): Do not initialize is_main_source. - -2003-10-06 Rainer Orth - - * fixinc/inclhack.def (stdio_va_list): Removed _ap fix. - (irix_stdio_va_list): Don't require leading printf, IRIX 6.5.21 - introduced some multi-line prototypes. - * fixinc/fixincl.x: Regenerate. - -2003-10-06 Richard Sandiford - - * config/mips/mips.h (PREDICATE_CODES): Add stack_operand. - * config/mips/mips.c (stack_operand): New predicate. - * config/mips/mips.md: Use it for the destination of mips16 insns - that store $31. - -2003-10-06 Richard Sandiford - - * config/mips/mips.md (*lowsi): Renamed from lowsi. - (*lowdi): Likewise lowdi. - (*lowsi_mips16, *lowdi_mips16): New patterns. - * config/mips/mips.c (mips_const_insns, mips_output_move): Remove - mips16 CONSTANT_RELOC handling. - (mips_delegitimize_address): Adjust for new sdata representation. - -2003-10-06 Richard Sandiford - - * config/mips/mips.c (mips_arg_info): If MUST_PASS_IN_STACK, - skip any remaining register arguments. - -2003-10-06 Ulrich Weigand - - * reload.c (find_reloads_subreg_address): Use correct offset for - paradoxical MEM subregs on big-endian targets. - -2003-10-06 Andrew Haley - - * tree.c (get_callee_fndecl): Call - lang_hooks.lang_get_callee_fndecl. - * langhooks-def.h (LANG_HOOKS_GET_CALLEE_FNDECL): New. - (lhd_get_callee_fndecl): New. - -2003-10-06 Andrew Pinski - - * config/darwin.c (machopic_non_lazy_ptr_name): Fix off by one - error in calculating the length of the string. - (machopic_stub_name): Likewise. - -2003-10-06 Roger Sayle - - * optabs.c (prepare_float_lib_cmp): Attach a REG_EQUAL note - describing the return value of the comparison libcall to the - REG_RETVAL instruction of the emitted sequence. - -2003-10-06 Eric Botcazou - - PR optimization/12215 - * cse.c (cse_set_around_loop): Emit the move at the beginning - of the next basic block for trapping sets. - -2003-10-06 Eric Botcazou - - PR optimization/11637 - * combine.c (adjust_for_new_dest): New function to adjust the - notes and LOG_LINKS when the dest of an insn has changed. - (try_combine): Use it when deleting the first insn of a two-insn - parallel or splitting a two-load parallel. - -2003-10-06 Richard Sandiford - - * config/mips/mips.c (mips_classify_constant): Only allow UNSPECs - if TARGET_EXPLICIT_RELOCS. - -2003-10-06 Mark Mitchell - - PR bootstrap/12512 - * Makefile.in (info): Use double-colon rules. - (dvi): Likewise. - (generated-manpages): Likewise. - * configure.in: Do not create lang.info, lang.dvi, or - lang.generated-manpages hooks. - * configure: Regenerated. - * objc/Make-lang.in (objc.info): Remove. - (objc.dvi): Remove. - (objc.generated-manpages): Remove. - * doc/sourcebuild.texi: Update description of info, dvi, and - generated-manpages hooks. - -2003-10-06 Richard Sandiford - - * config/mips/mips.md: Merge mips16 lw/srl pattern with its splitter. - -2003-10-05 Andrew Pinski - - * config/darwin.c (machopic_non_lazy_ptr_name): Fix off by one - errors in memcpy destinations. - (machopic_stub_name): Likewise. - -2003-10-05 Andrew Pinski - - * config/darwin.c (machopic_non_lazy_ptr_name): - Change strcat to memcpy and add length together. - (machopic_stub_name): Likewise. - -2003-10-05 Kaz Kojima - - * config/sh/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Handle new - signal trampoline codes. - -2003-10-05 Chris Demetriou - - * config/mips/mips.md (*divsf3): Move description of - SB-1 F2 erratum from here to... - (divsf3): Here. Disable if TARGET_FIX_SB1 is set and - flag_unsafe_math_optimizations is not. - -2003-10-05 Aldy Hernandez - - * config/rs6000/linuxspe.h: Define TARGET_SPE_ABI, TARGET_SPE, - TARGET_E500, TARGET_ISEL, and TARGET_FPRS. - -2003-10-05 Kazu Hirata - - * c-pretty-print.c: Fix comment typos. - * c-pretty-print.h: Likewise. - * calls.c: Likewise. - * cfgloopmanip.c: Likewise. - * cgraphunit.c: Likewise. - * cppfiles.c: Likewise. - * final.c: Likewise. - * function.c: Likewise. - * gcov-io.h: Likewise. - * gcse.c: Likewise. - * genoutput.c: Likewise. - * loop.c: Likewise. - * postreload.c: Likewise. - * reg-stack.c: Likewise. - * regmove.c: Likewise. - * sched-int.h: Likewise. - * sched-rgn.c: Likewise. - * simplify-rtx.c: Likewise. - * tree-inline.c: Likewise. - * config/m68hc11/m68hc11.h: Likewise. - * config/mmix/mmix.c: Likewise. - * config/mn10300/mn10300.md: Likewise. - * config/sh/sh.h: Likewise. - -2003-10-05 Richard Henderson - - * tree-inline.c (remap_type): New. - (remap_decl): Use it. Remap DECL_SIZE*. - (copy_body_r): Use it. - (walk_tree): Walk TREE_TYPE too. - (copy_tree_r): Don't walk subtrees of types. - * tree.c (variably_modified_type_p): Restructure. Consider integer - types with non-const bounds variably modified. - -2003-10-05 Kazu Hirata - - * doc/invoke.texi: Fix typos. - -2003-10-05 Kazu Hirata - - * fold-const.c: Follow spelling conventions. - * function.c: Likewise. - * config/c4x/c4x.h: Likewise. - * config/c4x/c4x.md: Likewise. - * config/frv/frv.md: Likewise. - * config/rs6000/aix.h: Likewise. - * config/rs6000/linux64.h: Likewise. - * config/xtensa/xtensa.c: Likewise. - -2003-10-05 Kazu Hirata - - * c-pretty-print.c: Fix comment formatting. - * cfglayout.c: Likewise. - * cfgloopanal.c: Likewise. - * cppcharset.c: Likewise. - * dbxout.c: Likewise. - * ggc-page.c: Likewise. - * ggc.h: Likewise. - * target.h: Likewise. - -2003-10-04 Kelley Cook - - * gengtype-lex.l: Recognize typedef of functions without PARAMS macro. - -2003-10-04 Nathanael Nerode - - * config/v850/v850-c.c, config/v850/v850-protos.h, config/v850/v850.c: - Convert to ISO C90 function declarations and definitions. - -2003-10-04 Zack Weinberg - - * libfuncs.h - (LTI_eqhf2, LTI_nehf2, LTI_gthf2, LTI_gehf2, LTI_lthf2) - (LTI_lehf2, LTI_unordhf2, LTI_eqsf2, LTI_nesf2, LTI_gtsf2) - (LTI_gesf2, LTI_ltsf2, LTI_lesf2, LTI_unordsf2, LTI_eqdf2) - (LTI_nedf2, LTI_gtdf2, LTI_gedf2, LTI_ltdf2, LTI_ledf2) - (LTI_unorddf2, LTI_eqxf2, LTI_nexf2, LTI_gtxf2, LTI_gexf2) - (LTI_ltxf2, LTI_lexf2, LTI_unordxf2, LTI_eqtf2, LTI_netf2) - (LTI_gttf2, LTI_getf2, LTI_lttf2, LTI_letf2, LTI_unordtf2) - (eqhf2_libfunc, nehf2_libfunc, gthf2_libfunc, gehf2_libfunc) - (lthf2_libfunc, lehf2_libfunc, unordhf2_libfunc, eqsf2_libfunc) - (nesf2_libfunc, gtsf2_libfunc, gesf2_libfunc, ltsf2_libfunc) - (lesf2_libfunc, unordsf2_libfunc eqdf2_libfunc, nedf2_libfunc) - (gtdf2_libfunc, gedf2_libfunc, ltdf2_libfunc, ledf2_libfunc) - (unorddf2_libfunc eqxf2_libfunc, nexf2_libfunc, gtxf2_libfunc) - (gexf2_libfunc, ltxf2_libfunc, lexf2_libfunc, unordxf2_libfunc - (eqtf2_libfunc, netf2_libfunc, gttf2_libfunc, getf2_libfunc) - (lttf2_libfunc, letf2_libfunc, unordtf2_libfunc): - Delete. - * optabs.h (OTI_eq, OTI_ne, OTI_gt, OTI_ge, OTI_lt, OTI_le) - (OTI_unord, eq_optab, ne_optab, gt_optab, ge_optab, lt_optab) - (le_optab, unord_optab): New. - - * optabs.c (prepare_float_lib_cmp): Rewrite. Get the libfuncs - from the code_to_optab table, not a giant switch; use - swap_condition; do widening only if a comparison function that - we can call exists in a wider mode, not if a cmp_optab insn or - libfunc exists in a wider mode; call protect_from_queue - exactly once on each operand. - (init_optabs): Initialize the new optabs, not the deleted libfuncs. - - * config/gofast.h, config/ia64/ia64.c, config/mips/mips.c - * config/pa/pa.c, config/rs6000/rs6000.c, config/sparc/sparc.c: - Set floating point comparison libfuncs using set_optab_libfunc - on the appropriate optab. - - * config/ia64/ia64.c (ia64_hpux_init_libfuncs): Fix typo. - * config/rs6000/rs6000.c (rs6000_init_libfuncs): Correct ABI - selector conditionals. - -2003-10-04 Stephane Carrez - - * config/m68hc11/t-m68hc11-gas (MULTILIB_MATCHES): m68hcs12 is - identical to m68hc12 as far as libraries are concerned. - -2003-10-04 Eric Botcazou - - PR c/12446 - * c-typeck.c (convert_for_assignment): Issue an error for - array to pointer assignment after default conversion. - (digest_init): Likewise. - -2003-10-04 Fariborz Jahanian - - * c-decl.c (duplicate_decls): retain DECL_COMMON of old declaration - -2003-10-03 Gerald Pfeifer - - * doc/extend.texi (Function Attributes): Fix title of GNU C - Preprocessor manual. - (C++ Extensions): Fix reference to "Predefined Macros" in the - GNU C Preprocessor manual. - -2003-10-04 Richard Earnshaw - - * doc/extend.texi: Document how GCC estimates and relies on the size - of an asm. - -2003-10-04 Richard Sandiford - - * config/mips/mips.c (mips_pad_arg_upward): Pad floating-point - arguments downward for big-endian o64. - -2003-10-03 Robert Bowdidge - - * ggc-page.c (ggc_pch_write_object): Replace fseek() with fwrite() in - PCH generation, avoiding too-frequent flushes when writing to NFS - file system. - -2003-10-03 Ziemowit Laski - - * objc/objc-act.c (lookup_category): Mark as 'inline'. - -2003-10-03 Alexander Malmberg - Ziemowit Laski - - * objc/objc-act.c (add_method_to_hash_list, lookup_category): - New functions. - (lookup_method_in_hash_lists): New parameter indicating whether - we are messaging 'Class' or 'id'. - (check_duplicates): Likewise; do not assume all methods will - be either class or instance methods. - (generate_category, finish_class): Use lookup_category(). - (add_method): Use add_method_to_hash_list(); insert instance - methods of root classes into the global class method hash table. - (add_category): Use lookup_category(); avoid constructing - duplicate categories. - (really_start_method): Add method to corresponding @interface, - if not already there (and if the @interface exists). - (finish_message_expr, finish_objc): Adjust calls to - check_duplicates(). - -2003-10-03 Roger Sayle - - PR optimization/9325, PR java/6391 - * fold-const.c (fold_convert): For floating point to integer - conversions, return the maximum/minimum representable integer - value if the real constant overflows the destination type. - * tree.c (real_value_from_int_cst): Allow the type to be NULL, - meaning don't truncate the result to a floating point mode. - Simplify the logic by calling real_from_integer directly. - * simplify-rtx.c (simplify_unary_operation): Implement the - same semantics for folding floating point to integer conversions - in RTL. - -2003-10-03 Chris Demetriou - - * config/mips/mips.c (mips_emit_prefetch): Restructure - to avoid use of arrays, handle indexed prefetch. - * config/mips/mips.h (ISA_HAS_FP4, ISA_HAS_PREFETCH): Update comments. - (ISA_HAS_PREFETCHX): New deffine. - * config/mips/mips.md ("type" attr): Add new "prefetchx" value, - update comments. - (prefetch_indexed_di, prefetch_indexed_si): New insns. - -2003-10-03 Jeff Sturm - Roger Sayle - - PR optimization/12289 - * calls.c (emit_call_1): Pretend to have popped the arguments - to noreturn and longjmp functions instead of ignoring them. - (expand_call): Don't adjust stack_pointer_dela while - inhibit_defer_pop is set. - -2003-10-03 Andreas Schwab - - PR bootstrap/12276 - * configure.in: Check for libunwind on the host only if building - a native compiler. - * configure: Regenerated. - -2003-10-03 Paolo Carlini - - * unwind-pe.h (read_encoded_value_with_base): Constify u and - its inizialization cast. - -2003-10-03 Richard Sandiford - - PR target/12485 - * config/mips/mips.c (mips_load_got): GOT accesses can't trap. - -2003-10-02 Mark Mitchell - - PR optimization/12180 - * tree-inline.c (inline_forbidden_p_1): Do not permit inlining of - functions containing calls to __builtin_next_arg. - -2003-10-02 Chris Demetriou - - * config/mips/mips.c (mips_emit_prefetch): Use operand 3 - in instructions being output. - * config/mips/mips.md (prefetch_si_address): Change third - operand's constraint letter to 'I'. - (prefetch_di_address): Likewise. - (prefetch_si, prefetch_di): Set third operand to const0_rtx. - -2003-10-02 Zack Weinberg - - * system.h: Poison macros obsoleted by earlier patch. - * config/cris/cris.c: C90-ify a function definition. - -2003-10-02 Josef Zlomek - - PR/12292 - * combine.c (make_field_assignment): Check whether rtx's code - is CONST_INT before using INTVAL. - -2003-10-02 Josef Zlomek - - * cgraph.c (cgraph_node): Use INSERT instead of 1 in - htab_find_slot_with_hash. - (cgraph_node_for_identifier): Use NO_INSERT. - (cgraph_remove_node): Use NO_INSERT. - (cgraph_varpool_node): Use INSERT. - (cgraph_varpool_node_for_identifier): Use NO_INSERT. - -2003-10-02 Josef Zlomek - - Waldek Hebisch - PR/12072 - * varasm.c (compare_constant): Fix thinko. - -2003-10-02 Richard Sandiford - - * config/frv/frv.c (frv_issue_rate): New function. - (frv_pack_insns): Use it. - (TARGET_SCHED_ISSUE_RATE): Define. - -2003-10-02 Steven Bosscher - - * config/mcore/mcore.c: Convert to ISO C90 function declarations - and definitions. - * config/mcore/mcore.h: Likewise. - * config/mcore/mcore-protos.h: Likewise. - -2003-10-02 Richard Sandiford - - * config/frv/frv.c (frv_use_dfa_pipeline_interface): New function. - (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define. - -2003-10-01 Per Bothner - - * c-lex.c (src_line): Remove unneeded static variable. - (cb_line_change): Set input_line directly, instead of src_line. - (get_non_padding_token): We no longer need to compensate for the - "horrible things" the C++ front-end does with the current line number, - - * cpplib.c (_cpp_pop_buffer): Do generate a _cpp_do_file_change - callback even when popping the main file. - * c-lex.c (fe_file_change): Handle a NULL new_map. - * fix-header.c (cb_file_change): Likewise. - * c-ppoutput.c (pp_file_change): Likewise. - - * cppinit.c (cpp_read_main_file): Split into two functions: - Distribute _cpp_stack_file call over the two functions. - (cpp_find_main_file): New function. - Don't call _cpp_do_file_change even if working_directory flag set. - (cpp_push_main_file): New function. - * cppfiles.c (_cpp_find_failed): New helper function. - (find_file): Made non-static and renamed to _cpp_find_file. - (_cpp_stack_file): No longer needed. But note the following. - (stack_file): Made non-static and renamed to _cpp_stack_file. - * fix-header.c (cpp_read_main_file): Replace cpp_read_main_file - call with calls to cpp_find_main_file and cpp_push_main_file. - (search_path_head): If there is no current buffer, use main_file. - * cpphash.h: Update function declarations. - * cpplib.h: Update function declarations. - - * c-opts.c (c_common_post_options): Don't call cpp_find_main_file yet. - (c_common_parse_file): No longer need to call cpp_read_main_file - when file_index > 0 (as in multi-file or server compiation). - (finish_options): Change to is an LC_ENTER, not LC_RENAME - as this now happens before cpp_push_main_file. - (push_command_line_include): When done with options, pass LC_LEAVE - instead of LC_RENAME to cpp_change_file and finally cpp_push_main_file. - (fe_file_change): Handle NULL new_map, and simplify. - * cpplex.c (_cpp_get_fresh_line): Revert my no-longer-needed - 08-28 change, since we're never called with a NULL buffer. - (_cpp_lex_direct): Likewise. - * cpptrad.c (_cpp_read_logical_line_trad): Likewise. - Return false if buffer is NULL at end. - - * cpplex.c (_cpp_get_fresh_line): Return value now just depends on - whether pfile->buffer is NULL after pop, ignoring return_at_eof. - * cpphash.h (struct cpp_buffer): Remove unused return_at_eof field. - * cpplib.c (cpp_push_buffer): Since we no longer set return_at_eof, - remove the unused return_at_eof parameter. - * cppfiles.c, cpplib.c, cppmacro.c, cpppch.c, fix-header.c: - Update callers of cpp_push_buffer. - -2003-10-01 Zack Weinberg - - * target.h (init_libfuncs): New hook. - * target-def.h: Default TARGET_INIT_BUILTINS and - TARGET_INIT_LIBFUNCS to hook_void_void. Add - TARGET_INIT_LIBFUNCS to TARGET_INITIALIZER. - * builtins.c (default_init_builtins): Delete. - * expr.h (default_init_builtins): Delete prototype. - * doc/tm.texi: Document TARGET_INIT_LIBFUNCS and US_SOFTWARE_GOFAST. - Tweak documentation of TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL. - Remove documentation of INIT_TARGET_OPTABS, MULSI3_LIBCALL, - DIVSI3_LIBCALL, UDIVSI3_LIBCALL, MODSI3_LIBCALL, UMODSI3_LIBCALL, - MULDI3_LIBCALL, DIVDI3_LIBCALL, UDIVDI3_LIBCALL, MODDI3_LIBCALL, - and UMODDI3_LIBCALL, - - * Makefile.in (optabs.o): Depends on target.h. - * defaults.h: Provide default for FLOAT_LIB_COMPARE_RETURNS_BOOL. - * optabs.c: Include target.h. - (prepare_float_lib_cmp): No need for #ifdef around use of - FLOAT_LIB_COMPARE_RETURNS_BOOL. - (set_optab_libfunc): New function. - (init_optabs): Delete use of all *_LIBCALL defines. - Call targetm.init_libfuncs not INIT_TARGET_OPTABS. - * optabs.h: Prototype set_optab_libfunc. - - * config.gcc: Remove all references to pa/long_double.h, - ia64/hpux_longdouble.h, and gofast.h. - (mips-*-*): When --enable-gofast, just add US_SOFTWARE_GOFAST - to tm_defines; don't set INIT_SUBTARGET_OPTABS or change tm_file. - - * config/alpha/alpha.c, config/c4x/c4x.c, config/cris/cris.c - * config/frv/frv.c, config/h8300/h8300.c, config/i860/i860.c - * config/ia64/ia64.c, config/ip2k/ip2k.c, config/m68hc11/m68hc11.c - * config/mips/mips.c, config/pa/pa.c, config/rs6000/rs6000.c - * config/sparc/sparc.c, config/vax/vax.c: - Provide a definition for TARGET_INIT_LIBFUNCS. Where - necessary, include optabs.h, libfuncs.h, and/or config/gofast.h. - - * config/alpha/unicosmk.h, config/alpha/vms.h, config/c4x/c4x.h - * config/avr/avr.h, config/cris/cris.h, config/frv/frv.h - * config/h8300/h8300.h, config/i860/i860.h, config/ip2k/ip2k.h - * config/iq2000/iq2000.h, config/m68hc11/m68hc11.h, config/mips/mips.h - * config/rs6000/aix.h, config/rs6000/sysv4.h, config/sparc/elf.h - * config/sparc/lite.h, config/sparc/netbsd-elf.h, config/sparc/sol2.h - * config/sparc/sparc.h, config/v850/v850.h, config/vax/vax.h - * config/vax/elf.h: Don't define or use INIT_TARGET_OPTABS, - INIT_SUBTARGET_OPTABS, or any *_LIBCALL macros. - - * config/ia64/hpux.h: Redefine INTEL_EXTENDED_IEEE_FORMAT to 0. - Set TARGET_INIT_LIBFUNCS and FLOAT_LIB_COMPARE_RETURNS_BOOL here. - * config/pa/pa-hpux.h: Define LONG_DOUBLE_TYPE_SIZE, - HPUX_LONG_DOUBLE_LIBRARY, and FLOAT_LIB_COMPARE_RETURNS_BOOL here. - * config/ia64/hpux_longdouble.h, config/pa/long_double.h: Delete. - - * config/rs6000/xcoff.h: Don't define RS6000_ITRUNC nor RS6000_UITRUNC. - * config/sparc/sparc.h: Default SUN_CONVERSION_LIBFUNCS and - SUN_INTEGER_MULTIPLY_64 to 0. - * config/sparc/sol2.h: Redefine SUN_CONVERSION_LIBFUNCS and - SUN_INTEGER_MULTIPLY_64 to 1. - * config/sparc/elf.h: Redefine SUN_CONVERSION_LIBFUNCS and - SUN_INTEGER_MULTIPLY_64 to 0. - * config/sparc/lite.h, config/sparc/liteelf.h, config/sparc/sp86x-elf.h: - Define US_SOFTWARE_GOFAST. - * config/vax/vax.h: Default TARGET_ELF to 0. - * config/vax/elf.h: Redefine TARGET_ELF to 1. - - * config/gofast.h: Don't define any macros here. Provide one - static function, gofast_maybe_init_libfuncs, which does what - INIT_GOFAST_LIBFUNCS used to do but only if US_SOFTWARE_GOFAST - is already defined. Do not clear negation libfuncs. Do - not mess with HFmode, XFmode, or TFmode libfuncs. - - * config/avr/avr.c (avr_init_once): #if 0 out; mark FIXME. - -2003-10-01 Kelley Cook - - PR C/12466 - * c-parse.in (parmlist_2): Mark declaration with an ellipsis as ISO C. - -2003-10-01 Rainer Orth - - * config/mips/xm-iris5.h: Remove, unnecessary. - * config.build (mips-sgi-irix5*): Remove. - (mips-sgi-irix6*o32): Likewise. - * config.gcc (mips-sgi-irix6*o32): Remove xm_file. - (mips-sgi-irix5cross64): Likewise. - (mips-sgi-irix5*): Likewise. - * config.host (mips-sgi-irix5*): Remove. - (mips-sgi-irix6*o32): Likewise. - -2003-10-01 Zack Weinberg - - * dbxout.c (dbxout_fptype_value): Delete. - (dbxout_type): Emit R3 for all COMPLEX_TYPEs. - -2003-10-01 Alexandre Oliva - - * output.h (compute_reloc_for_constant): Declare. - * varasm.c (compute_reloc_for_constant): Extract from... - (output_addressed_constants): ... here. Adjust all callers. - -2003-10-01 John David Anglin - - * aclocal.m4: Add hpux10* and hpux11.00 to /dev/zero blacklist. - * configure: Rebuilt. - -2003-10-01 Richard Kenner - - * fold-const.c (make_range): When handling unsigned, don't reverse - range if high bound is zero. - -2003-09-30 Alexandre Oliva - - * config/frv/frv.h (PREDICATE_CODES): Added - condexec_si_media_operator, condexec_sf_add_operator and - condexec_sf_conv_operator. Removed condexec_sf_binary_operator - and condexec_sf_unary_operator. - -2003-10-01 John David Anglin - - * aclocal.m4: Add ultrix* to /dev/zero blacklist. - * configure: Rebuilt. - -2003-10-01 Rainer Orth - - * except.h (MUST_USE_SJLJ_EXCEPTIONS): Revert 2003-09-23 change. - Allow override. - * doc/tm.texi (MUST_USE_SJLJ_EXCEPTIONS): Document. - -2003-09-23 David S. Miller - - * config/sparc/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Undefine - before redefining. - * config/sparc/linux64.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise. - -2003-10-01 Steven Bosscher - - * config/cris/cris-protos.h, config/cris/cris.c: Convert to ISO - C90 function declarations and definitions. - -2003-10-01 Nathanael Nerode - - * config.gcc (cris-*-linux*): Revert mistaken commit. - -2003-10-01 Eric Botcazou - - PR optimization/11753 - * config/sparc/sparc.md (length attribute) [fcc branch]: Add 1 to - the length in the non-V9 case. - -2003-09-30 Richard Henderson - - * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes): Honor - DWARF_ALT_FRAME_RETURN_COLUMN. - * unwind-dw2.c (dwarf_reg_size_table): Expand by one. - (_Unwind_GetGR, _Unwind_SetGR): Validate lookup column. - (uw_frame_state_for): Return end-of-stack for null return address. - * doc/tm.texi (DWARF_ALT_FRAME_RETURN_COLUMN): Add. - - * config/alpha/alpha.c (alpha_sa_mask): Add r31 for eh_return. - (alpha_expand_prologue): Store a zero for it. - (alpha_expand_epilogue): Don't reload it. - * config/alpha/alpha.h (DWARF_ALT_FRAME_RETURN_COLUMN): New. - * config/alpha/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Use column 64 - for the sigframe return address. - -2003-09-30 Kelley Cook - - * sdbout.c: Convert to ISO C90 prototypes. - * objc/objc-act.c: Likewise. - -2003-09-30 Kelley Cook - - * config/i386/cygwin1.c: Convert to ISO C90 prototypes. - * config/i386/winnt.c: Likewise. - * config/i386/cygming.h: Likewise. - -2003-09-30 Kazu Hirata - - * fold-const.c (fold): Fold (A & ~B) - (A & B) into - (A ^ B) - B for any B. - -2003-09-30 Nathanael Nerode - - * config.gcc (arm*-*-kaos*, i[34567]86-*-kaos*, powerpc-*-kaos*, - powerpcle-*-kaos*, strongarm-*-kaos*): Disable fixproto. - -2003-09-30 Richard Earnshaw - - * arm/ieee754-sf.S: Tidy formatting. - -2003-09-30 Nicolas Pitre - - * arm/lib1funcs.asm (ARM_DIV_MOD_BODY): Split into ARM_DIV_BODY - and ARM_MOD_BODY. - (ARM_MOD_BODY): Rewritten. added clz insns for __ARM_ARCH__ >= 5. - (ARM_DIV_BODY): Added clz insns for __ARM_ARCH__ >= 5, - added better divisor alignment in the other case. - (ARM_DIV2_ORDER): Added, finds the order of a single bit divisor. - (__divsi3, __udivsi3, __modsi3, __umodsi3): rewritten using the - macros above, add fast exits for divisor >= dividend, etc. - -2003-09-30 Nicolas Pitre - - * arm/ieee754-df.S: Split compilation of fixunsdfsi from - L_fixdfsi target. - * arm/t-arm-elf (LIB1ASMFUNCS): Add _fixunsdfsi. - -2003-09-30 Nathanael Nerode - - * config.gcc: Default use_fixproto to 'no'. - -2003-09-30 Richard Sandiford - - PR optimization/12345 - * config/mips/mips-protos.h (mips_restore_gp): Remove. - (mips_gp_save_slot): Declare. - * config/mips/mips.c (mips_restore_gp): Remove in favor of... - (mips_gp_save_slot): ...this new function. - * config/mips/mips.md (exception_receiver): Use mips_gp_save_slot - and mips_output_move to generate the output template. - (call_internal): Force splitting if TARGET_SPLIT_CALLS. Don't emit - a gp load after a noreturn call. Load the gp using a move rather - than an exception_receiver pattern. - (call_value_internal, call_value_multiple_internal): Likewise. - (call_split, call_value_split, call_value_multiple_split): Clobber $28. - -2003-09-30 Carlo Wood - - PR debug/12319 - * cfglayout.c (insn_scope): Use prologue_locator and - epilogue_locator; return the outer function scope for - pro- and epilogue insns. - -2003-09-29 Zack Weinberg - - * objc/objc-act.c (encode_type): Encode INTEGER_TYPEs and - REAL_TYPEs based on the bitsize of the type's mode, not the - mode directly. - -2003-09-29 Rainer Orth - - * dwarf2out.c (default_eh_frame_section): Split into ... - (named_section_eh_frame_section, collect2_eh_frame_section): ... new - functions. - * output.h (named_section_eh_frame_section): Declare. - (collect2_eh_frame_section): Likewise. - -2003-09-29 Zack Weinberg - - * real.c (real_sqrt): Use get_canonical_qnan directly. - - * dwarf2out.c (add_const_value_attribute): Use real_to_target. - - * varasm.c (assemble_real): Use real_to_target directly, - calculate the number of significant elements of the result - array and write them out in a loop, instead of using a giant - switch statement to pick the correct REAL_VALUE_TO_TARGET_* - macro. - -2003-09-29 Jan Hubicka - - PR c++/12175 - * varasm.c (notice_global_symbol): Discard external symbols. - - PR optimization/12286 - * gcov-io.c (gcov_read_words): Fix memmove call. - * profile.c (compute_branch_probabilities): Add extra sanity checks. - -2003-09-29 Rainer Orth - - * config.gcc (sparc-*-solaris2*): Handle Solaris 10 and up like - Solaris 7-9. - - * fixinc/inclhack.def (solaris_widec): Replace solaris2.[0-5]* by - wildcards which explicitly match micro versions. - * fixinc/fixincl.x: Regenerate. - -2003-09-29 Kazu Hirata - - * fold-const.c (fold): Fold (A & ~B) - (A & B) into - (A ^ B) - B, where B is any power of 2 minus 1. - -2003-09-29 Jan Hubicka - - * libgcov.c (gcov_exit): Fix two pastos. - -2003-09-29 Kazu Hirata - - * config/h8300/h8300.md (*tst_extzv_1_n): Combine with the - define_split immediately below to form define_insn_and_split. - -2003-09-29 Kazu Hirata - - * config/h8300/h8300.md (*tstsi_variable_bit): New. - (*tstsi_variable_bit_qi): Likewise. - -2003-09-28 Phil Edwards - - * doc/cppopts.texi: Use 'dashMP' instead of '-MP' as a cross- - reference name. - -2003-09-28 Richard Henderson - - * c-decl.c (duplicate_decls): Copy DECL_SOURCE_LOCATION, not - file and line separately. - -2003-09-28 Ulrich Weigand - - * config/s390/s390.md ("*adddi3_carry1_cc", "*adddi3_carry1_cconly", - "*adddi3_carry2_cc", "*adddi3_carry2_cconly", "*subdi3_borrow_cc", - "*subdi3_borrow_cconly"): New insns. - ("*addsi3_sub", "*subsi3_sub"): Remove. - ("*subdi3_cc", *subdi3_cconly"): Use only if TARGET_64BIT. - ("*subsi3_cc"): Fix op_type attribute. - -2003-09-28 Richard Henderson - - * stmt.c (expand_asm_operands): Take a location_t, instead of - individual file and line. - * c-typeck.c (c_expand_asm_operands): Likewise. - * tree.h (expand_asm_operands): Update decl. - * c-common.h (c_expand_asm_operands): Likewise. - * c-semantics (genrtl_asm_stmt): Update call. - -2003-09-28 Philip Blundell - - * config/arm/arm.c (legitimize_pic_address): Check - SYMBOL_REF_LOCAL_P, not ENCODED_SHORT_CALL_ATTR_P. - (arm_assemble_integer): Likewise. - -2003-09-28 Steven Bosscher - - * config/pdp11/pdp11-protos.h, config/pdp11/pdp11.c, - config/c4x/c4x-c.c, config/c4x/c4x-protos.h, config/c4x/c4x.c, - config/c4x/c4x.h: - Convert to ISO C90 function declarations and definitions. - -2003-09-28 Steven Bosscher - - * config/stormy16/stormy16.c, config/stormy16/stormy16-protos.h: - Convert to ISO C90 function declarations and definitions. - -2003-09-28 Richard Sandiford - - * config/mips/mips.c (mips_constant_info): Add reloc field. - (mips_classify_constant): Initialize it. Always set SYMBOL to the - underlying symbol, not to an unspec. - (mips_delegitimize_address, print_operand): Clean up accordingly. - -2003-09-28 Richard Sandiford - - * config/mips/mips-protos.h (mips16_gp_pseudo_reg): Remove. - * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Remove orphaned comment. - * config/mips/mips.c (mips_reloc_offset_ok_p): New function. - (mips_classify_constant): Use it. - (mips_splittable_symbol_p): Add an offset argument. - (mips_classify_address): Adjust call accordingly. - (mips_legitimize_symbol): Handle sdata references with LO_SUM rather - than a relocation unspec. Update call to mips_splittable_symbol_p. - Generalize the code that copes with symbols + invalid offsets. - (print_operand): Allow '%R' to be applied to small data addresses. - (mips_reloc_string): Remove RELOC_GPREL16. - (mips_sdata_pointer): Renamed from mips16_gp_pseudo_reg. Return $gp - for TARGET_EXPLICIT_RELOCS. Return null if we can't use gp-relative - relocation operators. - * config/mips/mips.md (RELOC_GPREL16): Remove. Shuffle other reloc - constants accordingly. - -2003-09-27 Roger Sayle - - * toplev.c (flag_evaluation_order): New global variable. - * flags.h (flag_evaluation_order): Prototype here. - * expr.c (expand_operands): If we need to preserve observable - evaluation order, protect exp1 from clobbering exp0's result. - -2003-09-28 Andreas Jaeger - - * c-decl.c (finish_function): Convert definition to ISO C90. - * ifcvt.c (mark_loop_exit_edges): Likewise. - * ra-rewrite.c (emit_colors): Likewise. - -2003-09-27 Nathanael Nerode - - * config.gcc (alpha*-dec-osf[45]*): Disable fixproto. - * config.gcc (arm*-*-uclinux*): Disable fixproto. - * config.gcc (powerpc-*-eabispe*, powerpc-*-eabisimaltivec*, - powerpc-*-eabialtivec*): Disable fixproto. - -2003-09-27 Eric Botcazou - - PR optimization/12340 - * loop.h (struct induction): Document the new semantics - of the 'same' field for bivs. - * unroll.c (biv_total_increment): Don't count the same - biv increment several times. - (loop_iterations) [GENERAL_INDUCT]: Likewise. - -2003-09-27 Graham Stott - - * unroll.c (loop_interations)[GT]: Add missing break. - -2003-09-27 Kelley Cook - - * config/chorus.h, config/darwin-c.c, config/darwin-protos.h, - config/darwin.c, config/darwin.h, config/dbx.h, config/dbxcoff.h, - config/dbxelf.h, config/elfos.h, config/fp-bit.h, - config/freebsd-nthr.h, config/freebsd-spec.h, config/freebsd.h, - config/freebsd3.h, config/freebsd4.h, config/freebsd5.h, - config/freebsd6.h, config/netbsd-aout.h, config/netbsd-elf.h, - config/netbsd.h, config/netware.h, config/openbsd-oldgas.h, - config/openbsd.h, config/ptx4.h, config/alpha/alpha-protos.h, - config/alpha/alpha.c, config/alpha/alpha.h, config/alpha/alpha.md, - config/alpha/elf.h, config/alpha/ev4.md, config/alpha/ev5.md, - config/alpha/ev6.md, config/alpha/freebsd.h, config/alpha/linux-elf.h, - config/alpha/linux.h, config/alpha/netbsd.h, config/alpha/openbsd.h, - config/alpha/osf.h, config/alpha/osf5.h, config/alpha/unicosmk.h, - config/alpha/vms-cc.c, config/alpha/vms-crt0-64.c, - config/alpha/vms-crt0.c, config/alpha/vms-dwarf2.asm, - config/alpha/vms-dwarf2eh.asm, config/alpha/vms-ld.c, - config/alpha/vms-psxcrt0-64.c, config/alpha/vms-psxcrt0.c, - config/alpha/vms.h, config/alpha/vms64.h, config/alpha/vms_tramp.asm, - config/alpha/xm-vms.h, config/arc/arc-modes.def, - config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h, - config/arc/arc.md, config/arc/initfini.c, config/arc/lib1funcs.asm, - config/avr/avr-protos.h, config/avr/avr.c, config/avr/avr.h, - config/avr/avr.md, config/d30v/d30v-protos.h, config/d30v/d30v.h, - config/d30v/d30v.md, config/fr30/fr30-protos.h, config/fr30/fr30.c, - config/fr30/fr30.h, config/fr30/fr30.md, config/fr30/lib1funcs.asm, - config/frv/cmovd.c, config/frv/cmovh.c, config/frv/cmovw.c, - config/frv/frv-abi.h, config/frv/frv-asm.h, config/frv/frv-modes.def, - config/frv/frv-protos.h, config/frv/frv.c, config/frv/frv.h, - config/frv/frv.md, config/frv/frvbegin.c, config/frv/frvend.c, - config/frv/lib1funcs.asm, config/h8300/clzhi2.c, config/h8300/ctzhi2.c, - config/h8300/parityhi2.c, config/h8300/popcounthi2.c, - config/i370/i370-c.c, config/i370/i370-protos.h, config/i370/i370.c, - config/i370/i370.h, config/i370/i370.md, config/i370/linux.h, - config/i370/mvs.h, config/i370/oe.h, config/i386/darwin.h, - config/i960/i960-c.c, config/i960/i960-coff.h, - config/i960/i960-modes.def, config/i960/i960-protos.h, - config/i960/i960.c, config/i960/i960.h, config/i960/i960.md, - config/i960/rtems.h, config/ia64/elf.h, config/ia64/ia64.h, - config/m32r/initfini.c, config/m32r/m32r-protos.h, config/m32r/m32r.c, - config/m32r/m32r.h, config/m32r/m32r.md, config/m68hc11/larith.asm, - config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c, - config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md, - config/m68hc11/m68hc12.h, config/m68k/coff.h, config/m68k/crti.s, - config/m68k/crtn.s, config/m68k/hp320.h, config/m68k/hp320base.h, - config/m68k/lb1sf68.asm, config/m68k/linux.h, config/m68k/m68020-elf.h, - config/m68k/m68k-aout.h, config/m68k/m68k-none.h, - config/m68k/m68k-protos.h, config/m68k/m68k.c, config/m68k/m68k.h, - config/m68k/m68k.md, config/m68k/m68kelf.h, config/m68k/m68kv4.h, - config/m68k/netbsd-elf.h, config/m68k/openbsd.h, - config/m68k/rtemself.h, config/m68k/sgs.h, config/mcore/lib1.asm, - config/mcore/mcore-elf.h, config/mcore/mcore-pe.h, - config/mcore/mcore-protos.h, config/mcore/mcore.c, - config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h, - config/mips/elforion.h, config/mips/iris5.h, config/mips/iris6.h, - config/mips/iris6gld.h, config/mips/irix6-libc-compat.c, - config/mips/linux.h, config/mips/mips-protos.h, config/mips/mips.c, - config/mips/mips.h, config/mips/mips.md, config/mips/netbsd.h, - config/mips/openbsd.h, config/mips/r3900.h, config/mips/rtems.h, - config/mips/vr.h, config/mn10300/linux.h, - config/mn10300/mn10300-protos.h, config/mn10300/mn10300.c, - config/mn10300/mn10300.h, config/mn10300/mn10300.md, - config/ns32k/__unorddf2.c, config/ns32k/__unordsf2.c, - config/ns32k/netbsd.h, config/ns32k/ns32k-protos.h, - config/ns32k/ns32k.c, config/ns32k/ns32k.h, config/ns32k/ns32k.md, - config/pdp11/2bsd.h, config/pdp11/pdp11-modes.def, - config/pdp11/pdp11-protos.h, config/pdp11/pdp11.c, - config/pdp11/pdp11.h, config/pdp11/pdp11.md, config/rs6000/biarch64.h, - config/rs6000/default64.h, config/sh/coff.h, config/sh/crt1.asm, - config/sh/crti.asm, config/sh/crtn.asm, config/sh/elf.h, - config/sh/embed-elf.h, config/sh/linux.h, config/sh/little.h, - config/sh/netbsd-elf.h, config/sh/rtems.h, config/sh/rtemself.h, - config/sh/sh-protos.h, config/sh/sh.c, config/sh/sh.h, - config/sh/sh.md, config/sh/sh64.h, config/sh/shmedia.h, - config/sh/sshmedia.h, config/sh/ushmedia.h, config/sparc/pbd.h, - config/sparc/sparc.h, doc/install-old.texi, fixinc/fixinc.ptx, - fixinc/fixinc.svr4: GNU CC -> GCC. - -2003-09-26 Loren James Rittle - - * objc/objc-act.c (tm_p.h): Tweak order. - * objc/Make-lang.in (objc/objc-act.o): Add $(TM_P_H). - -2003-09-26 Nathanael Nerode - - * config.gcc (hppa*64*-*-linux* | parisc*64*-*-linux*): - Include t-slibgcc-elf-ver and t-linux in tmake_file. - * config.gcc (hppa*64*-*-linux* | parisc*64-*-linux*): - Disable fixproto. - * config.gcc (i960-*-coff*, m68k-*-aout*, sparclite-*-coff*): - Disable fixproto. - * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*, - sparcv9-*-solaris2*, sparc-*-solaris2*): Disable fixproto. - - * config/i386/unix.h: Remove (unused) DEFAULT_ASSEMBLER_DIALECT. - -2003-09-26 Loren James Rittle - - * config/i386/i386.h (ix86_return_in_memory): Revert my last patch. - * objc/objc-act.c (tm_p.h): Include. - -2003-09-26 Per Bothner - - * dbxout.c (dbxout_typedefs): Output typedefs in forward order. - No longer any need to reverse by recursion. - -2003-09-26 Roger Sayle - Richard Henderson - - PR optimization/11741 - * gcse.c (pre_insert_copy_insn): Tweak the logic for finding the - appropriate set to match that in hash_scan_insn. Fall back to - the original copy method, if we can't validate changing insn. - (pre_delete): Only delete instructions that have a single_set, - instead of aborting when we encounter an PARALLEL insn with more - then one SET. - -2003-09-26 Andreas Krebbel - - * config/s390/s390.md ("builtin_setjmp_setup"): Insn deleted. - ("builtin_longjmp"): Insn deleted. - ("save_stack_nonlocal"): Save literal pool base pointer behind - backchain and stack pointer. - ("restore_stack_nonlocal"): Restore literal pool base pointer. - * config/s390/s390.h (STACK_SAVEAREA_MODE): Double size of - the stack save area for the nonlocal goto case. - -2003-09-26 John David Anglin - - PR bootstrap/12358 - * pa.c (output_bvb): Fix typo. - -2003-09-26 Richard Sandiford - - * expmed.c (store_bit_field): Don't search for an integer mode - unless we need the result. - -2003-09-26 Richard Sandiford - - * expr.c (emit_move_insn_1): If there is no move pattern for the - original mode, try using a pattern for the corresponding integer mode. - -2003-09-26 Richard Sandiford - - PR middle-end/9200 - * combine.c (if_then_else_cond): Tighten mode check. - -2003-09-25 Nathanael Nerode - - * cppcharset.c, cpphash.h: Rename 'struct strbuf' to - 'struct _cpp_strbuf'. - - * config/i386/netbsd-elf.h, config/i386/netbsd64.h, - config/i386/netware.h, config/i386/nto.h, config/i386/openbsd.h, - config/i386/pentium.md, config/i386/pmmintrin.h, config/i386/ppro.md, - config/i386/ptx4-i.h, config/i386/rtemself.h, config/i386/sco5.h, - config/i386/sol2.h, config/i386/svr3gas.h, config/i386/sysv3.h, - config/i386/sysv4-cpp.h, config/i386/sysv4.h, config/i386/sysv5.h, - config/i386/unix.h, config/i386/uwin.h, config/i386/vsta.h, - config/i386/xm-cygwin.h, config/i386/xm-djgpp.h, - config/i386/xm-mingw32.h, config/i386/xmmintrin.h: Replace - "GNU CC", "GNU compiler", and "GNU C-compiler" with "GCC". - * config/i386/i386-aout.h, config/i386/i386-coff.h, - config/i386/i386-interix.h, config/i386/i386-interix3.h, - config/i386/i386-modes.def, config/i386/i386-protos.h, - config/i386/i386.c, config/i386/i386.h, config/i386/i386.md, - config/i386/i386elf.h, config/i386/k6.md, config/i386/kaos-i386.h, - config/i386/linux-aout.h, config/i386/linux.h, config/i386/linux64.h, - config/i386/lynx-ng.h, config/i386/lynx.h, config/i386/mingw32.h, - config/i386/mmintrin.h, config/i386/moss.h: GNU CC -> GCC. - "GNU compiler" -> GCC. - * config/i386/att.h, config/i386/beos-elf.h, config/i386/biarch64.h, - config/i386/bsd.h, config/i386/crtdll.h, config/i386/cygming.h, - config/i386/cygwin.h, config/i386/cygwin1.c, config/i386/cygwin2.c, - config/i386/darwin.h, config/i386/djgpp.h, config/i386/emmintrin.h, - config/i386/freebsd-aout.h, config/i386/freebsd.h, - config/i386/freebsd64.h, config/i386/gas.h: GNU CC -> GCC. - -2003-09-25 Kelley Cook - - * cgraph.c (dump_cgraph): Don't output newline before dump. Add in - "local" to the callgraph dump. Output "after inlining" earlier. - * cgraphunit.c: Fix dumpfile whitespace and commonize headers of the - callgraph dumps. Correct misspellings. - (cgraph_decide_inlining): Output number of insns before inlining. - Output the calling function into which a function is inlined. - (cgraph_decide_small_functions): Format dump file like always_inline. - -2003-09-25 Loren James Rittle - - * config/i386/i386.h (ix86_return_in_memory): Add prototype. - -2003-09-25 Ulrich Weigand - - * config/s390/s390.c (s390_emit_prologue): Simplify accesses to - FPR slots in the save area. - (s390_emit_epilogue): Likewise. - -2003-09-25 Richard Sandiford - - * cgraph.h (cgraph_remove_edge): Declare. - * cgraph.c (cgraph_remove_edge): Make extern. - * cgraphunit.c (cgraph_finalize_function): Call cgraph_remove_edge - instead of cgraph_remove_call. - -2003-09-25 Ulrich Weigand - - * objc/objc-act.c (gen_declaration_1): Fix printf format. - -2003-09-25 Richard Earnshaw - - * arm.c (all_cores): arm710t, arm720t and arm740t are all based on the - arm7tdmi core. - -2003-09-25 Ziemowit Laski - - * config/darwin-protos.h (objc_image_info_section): - New prototype. - -2003-09-25 Ziemowit Laski - - * Makefile.in (stub-objc.o): Depend on $(GGC_H). - -2003-09-25 Nathanael Nerode - - * config.gcc: Get rid of more gratuitious 'x'es. Actually allow - tsc701 as a --with-cpu, --with-tune setting for sparc. - -2003-09-25 Ziemowit Laski - - * c-parse.in (objc_try_stmt): Do not specify a %type. - -2003-09-25 Nathanael Nerode - - * config.gcc: New 'widely ported system' clause for rtems. - Set thread file there, not in individual clauses. - -2003-09-25 Richard Sandiford - - PR target/6222 - * config/mips/mips.c (mips_va_arg): Handle arguments that must be - passed on the stack. - -2003-09-25 Nathanael Nerode - - * config.gcc (widely ported systems section): Mostly alphabetize - by system. Comment the case where we can't. - * config.gcc (widely ported systems section): Reindent and clean up. - - * config.gcc: Remove some unnecessary uses of 'x' in case statements. - Actually allow ep9312 as an arm --with-arch setting. - - * config.gcc (*-hpux11): Disable fixproto. - -2003-09-24 Phil Edwards - - PR pch/12112 - * gcc/cppfiles.c (pch_open_file): Return based on combined - result of all files. - (validate_pch): Return validate flag for current file. - -2003-09-24 Roger Sayle - - PR bootstrap/12358 - * fold-const.c (tree_swap_operands_p): Only reorder operands when - one of the operands is constant. - -2003-09-24 Ziemowit Laski - - MERGE OF objc-improvements-branch into MAINLINE: - * Makefile.in (C_OBJS): Add in stub-objc.o. - (c-parse.y): Change sed demarcations to begin with '@@'. - (stub-objc.o): New rule. - * c-common.c (flag_nil_receivers, flag_objc_exceptions, flag_zero_link, - flag_replace_objc_classes): New flags. - * c-common.h (RID_AT_THROW, RID_AT_TRY, RID_AT_CATCH, RID_AT_FINALLY, - RID_AT_SYNCHRONIZED): New keywords. - (flag_nil_receivers, flag_objc_exceptions, flag_zero_link, - flag_replace_objc_classes): New flags. - (lookup_interface, is_class_name, objc_is_object_ptr, objc_check_decl, - objc_comptypes, objc_message_selector, lookup_objc_ivar, - get_current_scope, objc_mark_locals_volatile): New prototypes, - some moved from c-tree.h. - * c-decl.c (get_current_scope, objc_mark_locals_volatile): New functions. - (finish_decl): Adjust where objc_check_decl() gets called. - * c-lang.c (lookup_interface, is_class_name, objc_is_id, objc_check_decl, - objc_comptypes, objc_message_selector, lookup_objc_ivar): Remove stubs. - * c-opts.c (c_common_handle_option): Add handling for flag_nil_receivers, - flag_objc_exceptions, flag_replace_objc_classes and flag_zero_link. - * c-parse.in: Replace 'ifc' and 'end ifc' sed markers with '@@ifc' and - '@@end_ifc', respectively. - (AT_THROW, AT_TRY, AT_CATCH, AT_FINALLY, AT_SYNCHRONIZED): New %tokens. - (objc_try_stmt, superclass, class_ivars, objc_try_catch-stmt, - objc_finally_block): New rules. - (component_decl_list2): Clean up semantic action for @defs construct. - (component_decl, c99_block_start): Remove call to add_objc_decls(). - (poplevel): Add call to objc_clear_super_receiver(). - (stmt): Add rules for @throw, @try..@catch..@finally and @synchronized - constructs. - (classdef, methodprotolist): Clean up/simplify. - (methodprotolist2): Eliminate. - (methodproto): Call add_method() instead of add_class_method() and - add_instance_method(). - (receiver): Add TYPENAME production. - (reswords): Add "throw", "try", "catch", "finally" and "synchronized". - (rid_to_yy): Add AT_THROW, AT_TRY, AT_CATCH, AT_FINALLY and - AT_SYNCHRONIZED. - * c-tree.h (lookup_interface, is_class_name, objc_is_id, objc_check_decl, - objc_comptypes, objc_message_selector) - * c-typeck.c (comptypes): In ObjC mode, call objc_comptypes() for - struct and pointer types. - (build_c_cast): Do not discard ObjC protocol qualifiers. - (convert_for_assignment): Cache result of comp_target_types() instead - of calling it more than once. - * c.opt (fnext-runtime): Update description string. - (fnil-receivers, fobjc-exceptions, freplace-objc-classes, fzero-link): - New ObjC/ObjC++-specific flags. - * function.h (GCC_FUNCTION_H): Header guard. - * gengtype-lex.l: Teach lexer about new @@... sed demarcations. - * stub-objc.c: New file, to be used to satisfy references to ObjC - functions by the C and C++ front-ends. - * config/darwin.c (_OBJC_IMAGE_INFO): New global metadata. - * config/darwin.h (FUNCTION): Add in_objc_image_info. - (SECTION_FUNCTION): Add objc_image_info_section. - * doc/invoke.texi: Link to GCC web site for Objective-C information. - (-fconstant-string-class): Update documentation. - (-fno-nil-receivers, -fobjc-exceptions, -freplace-objc-classes, - -fzero-link): New documentation. - * objc/Make-lang.in (objc-parse.y): Change sed demarcations to begin - with '@@'. - * objc/lang-specs.h (@objective-c-header): Fix -E spec. - * objc/objc/objc-act.c: Replace TYPE_NAME with OBJC_TYPE_NAME - throughout; provide casts for return values from memory allocation - functions (xmalloc, alloca, ggc_alloc, etc.). - (OBJC_VOID_AT_END): New macro. - (rtl.h): Do not #include any more. - (STRING_OBJECT_GLOBAL_NAME): Replaced with STRING_OBJECT_GLOBAL_FORMAT. - (TAG_MSGSEND_STRET, TAG_MSGSENDSUPER_STRET, TAG_MSGSEND_NONNIL, - TAG_MSGSEND_NONNIL_STRET, TAG_EXCEPTIONEXTRACT, TAG_EXCEPTIONTRYENTER, - TAG_EXCEPTIONTRYEXIT, TAG_EXCEPTIONMATCH, TAG_EXCEPTIONTHROW, - TAG_SYNCENTER, TAG_SYNCEXIT): New NeXT runtime entry points. - (struct val_stack, catch_count_stack, exc_binding_stack, val_stack_push, - val_stack_pop): New. - (objc_check_decl): Fix precondition for error message, along with - the message itself. - (lookup_and_install_protocols): Remove nonexistent protocols from - protocol list instead of returning error_mark_node. - (create_builtin_decl): Use DECL_ARTIFICIAL only for VAR_DECLs. - (setup_string_decl): Generalize to use STRING_OBJECT_GLOBAL_FORMAT. - (synth_module_prologue): General clean-up; construct NeXT-specific - runtime API prototypes if needed. - (build_string_class_template): Remove. - (check_string_class_template, string_layout_checked): New. - (build_objc_string_object): Generalize to work with - -fconstant-string-class. - (build_objc_symtab_template): Fix layout for the NeXT runtime. - (build_metadata_decl): New. - (forward_declare_categories): Call build_metadata_decl() instead of - create_builtin_decl() et al. - (build_module_descriptor): Use OBJC_VOID_AT_END instead of - void_list_node_1. - (build_selector_reference_decl, build_class_reference_decl, - build_objc_string_decl): Do not set TREE_READONLY. - (get_proto_encoding): Do not call hack_method_prototype(). - (get_class_reference): Add failure mode for invalid class names; - support -fzero-link; defer if in an ObjC++ template declaration. - (objc_declare_alias, objc_declare_class): Fix up duplicate name - lookup; check for global scope if in ObjC++. - (is_class_name): Generalize to work with various tree nodes (TYPE_DECL, - RECORD_TYPE, IDENTIFIER_NODE, etc.) - (objc_is_id): Removed. - (objc_is_object_ptr): New function. - (get_class_ivars_from_name): New function, used for @defs construct. - (get_class_ivars): Add option to return raw ivars; create a - ClASS_OWN_IVARS list for each class as needed. - (objc_enter_block, objc_exit_block, objc_declare_variable, - objc_build_throw_stmt, val_stack_push, val_stack_pop, - objc_build_try_enter_fragment, objc_build_extract_expr, - objc_build_try_exit_fragment, objc_build_extract_fragment, - objc_build_try_prologue, objc_build_try_epilogue, - objc_build_catch_stmt, objc_build_catch_epilogue, - objc_build_finally_prologue, objc_build_finally_epilogue, - objc_build_try_catch_finally_stmt, objc_build_synchronized_prologue, - objc_build_synchronized_epilogue, build_objc_exception_stuff): - New functions. - (_JBLEN): _setjmp jmpbuf size (needs to be made a target hook in - the future). - (build_private_template): Fix up calls to get_class_ivars(). - (offset_is_register, forwarding_offset): Remove. - (objc_method_parm_type, objc_encoded_type_size): New functions. - (encode_method_prototype): Simplify to no longer depend on - back-end information. - (build_tmp_function_decl_xxx, build_tmp_function_decl, - hack_method_prototype): Removed. - (generate_protocol_references): Remove calls to - build_tmp_function_decl(). - (generate_protocols): Adjust calls to encode_method_prototype(). - (build_class_template): Generate sel_id' and 'gc_object_type' fields - for the NeXT runtime. - (synth_forward_declarations): Call build_metadata_decl(). - (check_ivars): Check that the number of ivars matches also. - (build_super_template): Modify super_type directly; disable debugging - output while generating decl. - (build_ivar_list_initializer): Skip list elements that are not - FIELD_DECLs. - (ivar_list_length): New function. - (generate_ivar_lists): Call ivar_list_length() instead of list_length() - and encode_method_prototype() instead of encode_method_def(). - (build_shared_structure_initializer): Generate 'sel_id' field for - the NeXT runtime. - (generate_category): Do not set TREE_USED. - (build_keyword_selector): Ditto; transform into a function argument - chain. - (get_arg_type_list): If there are no user-specified arguments, use - '...'; use OBJC_VOID_AT_END. - (check_duplicates): Add a parameter indicating whether methods or - selectors are being checked. - (receiver_is_class_object): Add parameters indicating whether - receiver is 'self' or 'super'; robustify. - (build_message_expr): Defer call to finish_message_expr() if - inside an ObjC++ template. - (lookup_method_in_hash_lists): New function. - (finish_message_expr): Complete rewrite/fix. - (build_objc_method_call): Ditto; factor out commonalities between - the GNU and NeXT runtimes; acccommodate ..._stret and ...NonNil - messenger variants on the NeXT. - (lookup_instance_method_static, lookup_class_method_static): - Fold into a single lookup_method_static() function with an - additional parameter. - (add_class_method, add_instance_method): Fold into a single - add_method() function with an additional parameter. - (add_category): Make duplicate categories a hard error in ObjC++. - (add_instance_variable): Properly handle unnamed ivars, arrays of - zero or no size and bitfields. In ObjC++, check for nontrivial - C++ class instances. - (is_public): Allow C functions to access non-@public ivars, with - a warning. - (start_class): Move common initializations to - synth_module_prologue(); check for global scope if in ObjC++. - (continue_class): Fix calls to finish_struct(). - (objc_declare_protocols, start_protocol): Check for global scope - if in ObjC++. - (encode_pointer): Encode 'BOOL *' specially on the NeXT. - (encode_aggregate_within): Rewrite to properly distinguish - struct tags from typedefs in both ObjC and ObjC++. - (encode_bitfield, encode_complete_bitfield): Remove. - (encode_next_bitfield, encode_gnu_bitfield): New functions. - (encode_field_decl): Call encode_next_bitfield() or - encode_gnu_bitfield() as needed. - (synth_self_and_ucmd_args): New function. - (start_method_def): Use it. - (objc_types_are_equivalent): New function. - (comp_proto_with_proto): Use it instead of comptypes(), since - we need symmetry. - (really_start_method): Use lookup_method_static() instead of - lookup_class_method_static() and lookup_instance_method_static(); - Emit 'extern "C"' if in ObjC++ mode. - (add_objc_decls): Removed. - (UOBJC_SUPER_scope): New variable. - (get_super_receiver): Move construction of 'super' from - add_objc_decls(); remove dependency on struct objc_class. - (encode_method_def): Removed; encode_method_prototype() is - used instead. - (objc_clear_super_receiver): New function. - (objc_expand_function_end): Do not do anything for ordinary - C functions. - (finish_method_def): Mark ObjC methods as un-inlinable. - (gen_declaration_1): Emit widths of bitfields. - (finish_objc): Call generate_objc_image_info() if needed; - use check_duplicates() when checking for selector duplicates. - (generate_objc_image_info): New function. - * objc/objc-act.h (add_instance_method, add_class_method, - get_class_ivars): Remove prototypes. - (objc_build_throw_stmt, objc_build_try_catch_finally_stmt, - objc_build_synchronized_prologue, objc_build_synchronized_epilogue, - objc_build_catch_stmt, objc_build_catch_epilogue, - objc_build_finally_prologue, objc_build_finally_epilogue, - add_method, get_class_ivars_from_name): New prototypes. - (CLASS_BINFO_ELTS, PROTOCOL_BINFO_ELTS): New. - (TYPE_PROTOCOL_LIST): Robustify to distinguish from - TRANSLATION_UNIT_DECLs. - (OBJC_TYPE_NAME): New. - (objc_tree_code): Ensure that either or - got included. - (IS_SUPER): Robustify. - (umsg_stret_decl, umsg_super_stret_decl, umsg_nonnil_decl, - umsg_nonnil_stret_decl, objc_storage_class, objc_exception_extract_decl, - objc_exception_try_enter_decl, objc_exception_try_exit_decl, - objc_exception_match_decl, objc_exception_throw_decl, - objc_sync_enter_decl, objc_sync_exit_decl, objc_exception_data_template, - objc_setjmp_decl, objc_stack_exception_data, objc_caught_exception, - objc_rethrow_exception, objc_eval_once, objc_exception_block_stack, - objc_catch_type): New ObjC/ObjC++ roots. - * objc/objc-tree.def (MESSAGE_SEND_EXPR, CLASS_REFERENCE_EXPR): New - ObjC/ObjC++ tree node codes. - -2003-09-24 Alexandre Oliva - - * cpplib.c (do_pragma): Reintroduce cb_line_change call in the - code path that calls a handler. - -2003-09-24 Nathanael Nerode - - * config.gcc (c4x-*, tic4x-*, d30v-*, mmix-knuth-mmixware): - Disable fixproto. - - * config.gcc: Clean up and reindent $with_cpu=yes|no clause and - the section giving $with_cpu defaults by target. - - * config.gcc (arm-*-coff*, armel-*-coff*, arm*-*-ecos-elf, - arm*-*-elf, ep9312-*-elf, arm*-wince-pe*, arm*-*-pe*, arm*-*-pe*, - rs6000-ibm-aix4.[3456789]*, powerpc-ibm-aix4.[3456789]*, - rs6000-ibm-aix5.1.*, powerpc-ibm-aix5.1.*, - rs6000-ibm-aix[56789].*, powerpc-ibm-aix[56789].*, - i[34567]86-pc-msdosdjgpp*): Disable fixproto. - -2003-09-24 David Edelsohn - - * config/rs6000/rs6000.md (movti_power): Collapse case 1 and 2 - together. Protect load string instruction with TARGET_STRING. - (movti_string): Collapse case 1 and 2 together. - -2003-09-24 Nathan Sidwell - - * c-common.c (c_common_type_for_mode): Check for VOIDmode. - -2003-09-24 Richard Earnshaw - - * arm.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Wrap in - do...while(0) - -2003-09-23 Nathanael Nerode - - * config.gcc: Move use_fixproto=no from generic vxworks clause to - specific one. - - * config.gcc (powerpc-*-gnu-gnualtivec*): Disable fixproto - (accidentally missed in last pass). - -2003-09-23 Andrew Pinski - - PR bootstrap/12383 - * configure: Regenerate. - -2003-09-23 Nathanael Nerode - - * config.gcc (x86_64-*-freebsd*): Disable fixproto (accidentally - missed in last pass). - -2003-09-23 Alexandre Oliva - - * config/mn10300/mn10300.md (andsi3): Fix cut&pasto in 0xfffffffe - constant. - -2003-09-23 Nathanael Nerode - - * config.gcc: Move vax-*-vms* unsupported notice up with the rest. - - * config.gcc (alpha64*-dec-*vms*, alpha*-dec-*vms*, - powerpc-*-eabisim*, powerpc-*-eabi*, powerpcle-*-eabisim*, - powerpcle-*-eabi*): Disable fixproto. - - * config.gcc: Move use_fixproto=no from generic FreeBSD clause to - specific FreeBSD clauses. - * config.gcc: Move use_fixproto=no from generic NetBSD clause to - specific NetBSD clauses. - * config.gcc: Move use_fixproto=no from generic OpenBSD clause - to specific OpenBSD clauses. - -2003-09-23 John David Anglin - - * pa.c (hppa_expand_prologue): Do pic register save in frame marker - without adding a frame note. - * pa.md (allocate_stack): Save pic register in new frame marker when - generating pic code. - -2003-09-23 Kelley Cook - - * cgraphunit.c (cgraph_expand_all_functions): Renamed from - cgraph_expand_functions. - -2003-09-23 Kaveh R. Ghazi - - * Makefile.in (gnucompare*): Merge into ... - (slowcompare*): ... here. - (fastcompare*): New targets. - * aclocal.m4 (gcc_AC_PROG_CMP_IGNORE_INITIAL): Add checks for - other "fast" cmp programs. - * configure: Regenerate. - -2003-09-23 Rainer Orth - - * targhooks.c: Include output.h. - * Makefile.in (targhooks.o): Add output.h to dependency list. - -2003-09-23 Rainer Orth - - * config.host: Removed superfluous newline. - -2003-09-23 Nathanael Nerode - - * config.gcc: Use ${target}, not $machine. - * configure.in: Don't set $machine. - * configure: Regenerate. - -2003-09-23 Geoffrey Keating - - * config/t-darwin (crt2.o): Add stmp-int-hdrs to dependencies. - - * config/rs6000/rs6000.c (function_arg_pass_by_reference): Don't - pass zero-size arrays by reference. - (rs6000_va_arg): Likewise. - -2003-09-23 Nathanael Nerode - - * config.gcc: Set use_fixproto=no in each specific *-gnu* - configuration, rather than the generic one. - -2003-09-23 Richard Henderson - - * tree-inline.c (remap_save_expr): Map new save_expr to identity - rather than to error_mark_node. - -2003-09-23 Rainer Orth - - * configure.in (HAVE_GAS_SHF_MERGE): Always define to test result. - Update description. - * configure: Regenerate. - * config.in: Likewise. - * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test for - HAVE_GAS_SHF_MERGE value. - * varasm.c (mergeable_string_section): Likewise. - (mergeable_constant_section): Likewise. - -2003-09-23 Rainer Orth - - * except.h (MUST_USE_SJLJ_EXCEPTIONS): Test for DWARF2_UNWIND_INFO - value. - -2003-09-23 Rainer Orth - - * target.h (struct gcc_target): New member external_libcall. - * target-def.h (TARGET_ASM_EXTERNAL_LIBCALL): Provide default. - (TARGET_ASM_OUT): Use it. - * doc/tm.texi (TARGET_ASM_EXTERNAL_LIBCALL): Document. - * targhooks.c: Convert to ISO C 90. - (default_external_libcall): New function. - * targhooks.h (default_external_libcall): Declare. - * varasm.c (assemble_external_libcall): Use - targetm.asm_out.external_libcall instead of - ASM_OUTPUT_EXTERNAL_LIBCALL. - * config/mips/mips-protos.h [TARGET_IRIX5 || TARGET_IRIX 6] - (mips_output_external_libcall): Declare. - * config/mips/mips.c (mips_output_external_libcall): Change - definition guard. - Change to match TARGET_ASM_EXTERNAL_LIBCALL. - Only operate for O32 ABI. - * config/mips/iris5.h (TARGET_ASM_EXTERNAL_LIBCALL): Define - instead of ASM_OUTPUT_EXTERNAL_LIBCALL. - * config/mips/iris6.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Don't undef, - superceded by TARGET_ASM_EXTERNAL_LIBCALL. - -2003-09-22 Nathnael Nerode - - * config.gcc: Do per-target disabling of fixproto here in clauses, - not in t- fragments. - * configure.in: Adjust to set STMP_FIXPROTO correctly. - * configure: Regenerate. - * config/arm/t-semi, config/cris/t-cris, config/i386/t-beos, - config/i386/t-cygming, config/i386/t-nto, config/ia64/t-hpux, - t-freebsd, t-linux, t-netbsd, t-openbsd, t-rtems, t-vxworks, - xtensa/t-xtensa: Remove setting of STMP_FIXPROTO. - * config/i370/t-oe, config/i386/t-netware, config/pa/t-bsd, - t-interix, t-linux-aout: Delete files consisting only of - setting of STMP_FIXPROTO. - - * config.host: Allow unknown hosts (not targets). Allow - ns32k-*-netbsdelf* as a host (not a target). Remove redundant - empty clauses. Remove useless obsolete-configuration clause. - Prune unsupported configuration list. Collapse identical - clauses for closely related systems. Rewrite comment for - unsupported hosts list. Reorganize a little. - -2003-09-22 Richard Henderson - - * c-common.c (c_common_signed_or_unsigned_type): Examine mode, - not precision. - -2003-09-22 David Edelsohn - Hartmut Penner - Segher Boessenkool - - * config/rs6000/rs6000.c (altivec_in_gprs_p): Rename to ... - (gpr_or_gpr_p): Test INT_REGNO_P and convert to boolean. - (rs6000_split_altivec_in_gprs): Rename to ... - (rs6000_split_multireg_move): Add support for update addressing. - * config/rs6000/rs6000-protos.h: Same. - * config/rs6000/altivec.md: Same. - * config/rs6000/rs6000.md (movdi_internal32): Use new splitter for - multiple GPRs. - (movti): Remove TARGET_STRING || TARGET_POWERPC64 final condition. - (movti_power): Use new splitter for multiple GPRs. - (movti_string): Same. - (movti_ppc64): Same. - -2003-09-22 Bob Wilson - - * config/xtensa/xtensa-protos.h: Convert to ISO C90. - * config/xtensa/xtensa.c: Convert to ISO C90. Minor formatting fixes. - -2003-09-22 Alexandre Oliva - - * config/mn10300/mn10300.md: Revert 2003-09-17's patch. - (andsi3): Set attr cc to set_zn when using shifts or adds. - -2003-09-22 Bernardo Innocenti - - * doc/contrib.texi: Add Peter Barada, Paul Dale and myself. - -2003-09-22 Bernardo Innocenti - - * config/m68k/m68k.h (MASK_RTD, TARGET_RTD, RETURN_POPS_ARGS): - Resurrect -mrtd option. - -2003-09-21 Andrew Pinski - - PR target/12281 - * config/darwin.c (machopic_validate_stub_or_non_lazy_ptr): Call - mark_referenced instead of setting TREE_SYMBOL_REFERENCED. - -2003-09-22 Olivier Hainque - - PR target/9786 - * reg-stack.c (convert_regs_1): Purge possible dead eh edges - after potential deletion of trapping insn. Avoids later ICE - from call to fixup_abnormal_edges. - (convert_regs_2): Stack the current block successors before - processing this block, that is, before the potential deletion of - dead edges by convert_regs_1, because these edges have been used - to initialize the predecessors count. - -2003-09-22 Eric Botcazou - - * real.c: Fix several nits in the head comment. - -2003-09-21 Richard Henderson - - * tree.h c-aux-info.c, c-decl.c, c-parse.in, coverage.c, dbxout.c, - diagnostic.c, dwarf2out.c, dwarfout.c, function.c, integrate.c, - print-tree.c, stmt.c, toplev.c, tree-dump.c, tree-inline.c, - tree-optimize.c, tree.c, tree.def, xcoffout.c, config/alpha/alpha.c, - config/mips/mips.c, doc/c-tree.texi, objc/objc-act.c: Revert. - -2003-09-21 Richard Henderson - - * tree.h (TREE_LOCUS): Rename from DECL_SOURCE_LOCATION; make const. - (TREE_FILENAME, TREE_LINENO): Likewise. - (set_tree_locus, copy_tree_locus, set_tree_file_line): New. - (TREE_LOCUS_SET_P): New. - * c-aux-info.c, c-decl.c, c-parse.in, coverage.c, dbxout.c, - diagnostic.c, dwarf2out.c, dwarfout.c, function.c, integrate.c, - print-tree.c, stmt.c, toplev.c, tree-dump.c, tree-inline.c, - tree-optimize.c, tree.c, tree.def, xcoffout.c, config/alpha/alpha.c, - config/mips/mips.c, doc/c-tree.texi, objc/objc-act.c: Update to match. - -2003-09-21 Nathanael Nerode - - * config/vax/vax-protos.h: Convert to ISO C90. - * config/vax/vax.c: Convert to ISO C90. - -2003-09-21 Graham Stott - - PR target/12353 - * config/i386/i386.md(ffs_no_cmove): Fix operand 2 constraint. - -2003-09-21 Eric Botcazou - - PR target/12301 - * reorg.c (stop_search_p): Return 1 for insns that can - throw internally. - -2003-09-20 Richard Henderson - - * c-format.c (gcc_diag_char_table): Add %J. - (gcc_cdiag_char_table, gcc_cxxdiag_char_table): Likewise. - (check_format_types): Fix wanted_type name lookup. - (init_dynamic_diag_info): Setup %J. - * diagnostic.c (text_specifies_location): Implement %J. - * c-common.c, c-decl.c, c-objc-common.c, c-pragma.c, calls.c, - dwarfout.c, expr.c, function.c, stmt.c, stor-layout.c, toplev.c, - tree-inline.c, tree-optimize.c, varasm.c, config/arm/pe.c, - config/i386/winnt.c, config/ia64/ia64.c, config/mcore/mcore.c, - config/v850/v850.c, objc/objc-act.c: Use %J in diagnostics. - - * tree-inline.c: Include intl.h - (inline_forbidden_p_1): Fix i18n of inline_forbidden_reason. - * Makefile.in (tree-inline.o): Update. - -2003-09-20 Roger Sayle - - * config/i386/i386.c (ix86_expand_carry_flag_compare): Fix - transformation of a>=0 into (unsigned)a<0x80000000. - -2003-09-20 Andrew Pinski - - * config/darwin.c (machopic_select_rtx_section): Fix check for PIC code. - -2003-09-20 Nathanael Nerode - - * Makefile.in: Don't set (unused) DLLTOOL. - - * config/arm/t-linux, config/arm/t-netbsd, config/arm-t-semi: - Remove obsolete references to ENQUIRE. - -2003-09-19 Nathanael Nerode - - * configure.in: Remove --with-elf, which doesn't work. - * configure: Regenerate. - * config.gcc: Remove references to $elf, which does nothing. - - * config/i386/xm-vsta.h: Remove xm-file believed useless. - * config.build (i386-vsta): Remove reference to it. - * config.host (i386-vsta): Remove reference to it. - -2003-09-19 Phil Edwards - - * doc/install.texi: Document the multiple testsuite options. - -2003-09-19 Gerald Pfeifer - - * doc/install.texi (Specific): Add the specific versions of GCC - where support for FreeBSD 1, HP-UX version 9 and older, and AIX - version 3 and older was discontinued. - -2003-09-19 Joel Sherrill - - * config/m68k/t-m68kbare, config/m68k/t-rtems: Change 68681 to - 68881. - -2003-09-19 Bernardo Innocenti - - * config/m68k/m68k.h (TARGET_CPU_CPP_PREDEFINES): Add predefines - for -m68030, -m68020-60 and -m68020-40. - * config/m68k/m68k.h (TARGET_68030): New target flag. - * config/m68k/m68k.h (MASK_RTD, TARGET_RTD, MASK_REGPARM, - TARGET_REGPARM): Remove. - * config/m68k/m68k.h: Regroup and renumber target flags. - * config/m68k/m68k.h (TARGET_SWITCHES): Fix some tabulations. - * config/m68k/m68k.h (RETURN_POPS_ARGS): Always evaluate to 0. - * config/m68k/m68k.h (FUNCTION_ARG): Likewise. - * config/m68k/m68k.h (FUNCTION_ARG_PARTIAL_NREGS): Likewise. - * config/m68k/m68k-none.h: Use MASK_xxx values in M68K_CPU_xxx macros. - -2003-09-19 Ralf Corsepius - - * config/m68k/t-rtems (m68k-*-rtems*): New. - * config.gcc: Use config/m68k/t-rtems. - -2003-09-19 Ralf Corsepius - - * config/mips/t-rtems: New. - * config.gcc (mips*-*-rtems*): Use config/mips/t-rtems. - -2003-09-19 Kelley Cook - - * cgraph.c: Fix typo in debugging output. - -2003-09-19 T. Papadopoulo - Eric Botcazou - - PR target/12166 - * config/sparc/sol2-c1.asm (start): Set __Argv if GCRT1. - -2003-09-18 Mike Stump - - * c-ppoutput.c (print): Use fileline typedef for field 'line'. - (print_line, maybe_print_line, cb_define, cb_undef, cb_include, - cb_ident, cb_def_pragma): Use fileline typedef. - * cpphash.h (struct cpp_reader): Likewise for field out.first_line. - -2003-09-18 Danny Smith - - * config/i386/winnt.c (gen_stdcall_suffix): Quit summation of - total parm size if a parm has incomplete type. - (gen_fastcall_suffix): Likewise. - -2003-09-18 Richard Kenner - - * except.c (output_function_exception_table): Adjust last change - to handle TYPE of INTEGER_CST. - -2003-09-18 Mark Mitchell - - PR target/11184 - * builtins.c (expand_builtin_apply): Use convert_memory_address - before returning the value. - - * alias.c (find_base_value): Simplify use of - convert_memory_address. - (find_base_term): Likewise. - * builtins.c (expand_builtin_stejmp_setup): Likewise. - (expand_builtin_longjmp): Likewise. - (expand_builtin_prefetch): Likewise. - (get_memory_rtx): Likewise. - (expand_builtin_return): Likewise. - (expand_builtin_memcpy): Likewise. - (expand_builtin_strncpy): Likewise. - (expand_builtin_memset): Likewise. - (expand_builtin_va_arg): Likewise. - (expand_builtin_va_copy): Likewise. - (expand_builtin_alloca): Likewise. - * calls.c (expand_call): Likewise. - * except.c (expand_builtin_extract_return_addr): Likewise. - (expand_builtin_eh_return): Likewise. - * explow.c (convert_memory_address): Define even when - POINTER_EXTEND_UNSIGNED is not defined. Do nothing if the address - is already in the right mode. - * explow.c (memory_address): Simplify use of convert_memory_address. - (probe_stack_range): Likewise. - * expmed.c (make_tree): Likewise. - * expr.c (emit_block_move_in_libcall): Likewise. - (expand_assignment): Likewise. - (expand_expr): Likewise. - * function.c (assign_parms): Likewise. - (expand_function_end): Likewise. - * integrate.c (copy_rtx_and_substitute): Likewise. - * stmt.c (expand_computed_goto): Likewise. - -2003-09-18 Roger Sayle - - * simplify-rtx.c (simplify_unary_operation): Only transform - (not (eq X Y)) into (ne X Y) when mode is BImode or STORE_FLAG_VALUE - is -1. RTL "not" is a bit-wise not, "~", not a logical not "!". - -2003-09-18 Zdenek Dvorak - - PR target/11674 - * config/i386/i386.c (x86_emit_floatuns): Also handle SImode operand. - -2003-09-18 Roger Sayle - - * tree.def (FFS_EXPR, CLZ_EXPR, CTZ_EXPR, POPCOUNT_EXPR, - PARITY_EXPR): Delete unused tree codes. - * c-common.c (c_common_truthvalue_conversion): Delete references - to FFS_EXPR and POPCOUNT_EXPR. - * c-pretty-print.c (pp_c_postfix_expression): Remove FFS_EXPR. - (pp_c_expression): Likewise. - * expr.c (expand_expr): Delete RTL expansion of FFS_EXPR, CLZ_EXPR, - CTZ_EXPR, POPCOUNT_EXPR and PARITY_EXPR. - * fold-const.c (tree_expr_nonnegative_p): Remove FFS_EXPR, CLZ_EXPR, - CTZ_EXPR, POPCOUNT_EXPR and PARITY_EXPR. Add support for calls to - BUILT_IN_FFS, BUILT_IN_PARITY and BUILT_IN_POPCOUNT and their long - and long long variants. - -2003-09-18 Gabriel Dos Reis - - * c-pretty-print.h (pp_type_specifier_seq): Fix thinko. - * c-pretty-print.c: Fix formatting. - (pp_c_integer_constant): Append type annotation to literals. Tidy. - (pp_c_type_specifier): Tidy. - (pp_c_compound_literal): New function. - (pp_c_initializer): Simplify.. - (pp_c_initializer_list): Likewise. - (pp_c_brace_enclosed_initializer_list): New function. - (pp_c_postfix_expression): Simplify. - -2003-09-17 Alexandre Oliva - - * config/mn10300/mn10300.md (andsi3, iorsi3, xorsi3, - one_complsi2, bit-clear, bit-set, iorqi3): Make them set_zn. - -2003-09-17 Richard Henderson - - * tree-optimize.c (tree_rest_of_compilation): Save and restore - input_location. - -2003-09-17 Daniel Jacobowitz - - * config/rs6000/sysv4.h (LIB_LINUX_SPEC): Give -lpthread before -lc. - -2003-09-17 Richard Henderson - - * cfg.c (dump_flow_info): Skip register dump if reg_n_info null. - -2003-09-17 Rainer Orth - - * configure.in (gcc_cv_ld_hidden): Don't test gnu_ld_flag. - * configure: Regenerate. - -2003-09-17 Mark Mitchell - - PR debug/12066 - * dbxout.c (dbxout_init): Use a langhook to find builtin types. - * langhooks-def.h (lhd_return_null_tree_v): New function. - (LANG_HOOKS_BUILTIN_TYPE_DECLS): New macro. - (LANG_HOOKS_DECLS): Add it to the intializer. - * langhooks.c (lhd_return_null_tree_v): New function. - * langhooks.h (lang_hooks_for_decls): Add builtin_type_decls. - -2003-09-17 Daniel Jacobowitz - - * configure.in: Quote gcc_config_arguments for configargs.h. - * configure: Regenerated. - * gccbug.in: Don't shell-expand gcc_config_arguments. - -2003-09-17 Gabriel Dos Reis - - PR c++/11357 - * c-pretty-print.c (pp_c_floating_constant): Append - type-annotation to floating constants. - -2003-09-17 Rainer Orth - - * config/mips/iris5.h (TARGET_OS_CPP_BUILTINS): Define _LONGLONG. - Define _ABIO32. - Use it for _MIPS_SIM. - * config/mips/iris6-o32.h (TARGET_OS_CPP_BUILTINS): Removed. - - * config/mips/iris6-o32-as.h (SUBTARGET_ASM_OPTIMIZING_SPEC): - Moved ... - * config/mips/iris5.h (SUBTARGET_ASM_OPTIMIZING_SPEC): ... here, - updating comment. - Fixes PR target/10190. - -2003-09-17 Daniel Jacobowitz - - * config/rs6000/sysv4.h (LIB_LINUX_SPEC): Make -pthread apply - to shared libraries. - -2003-09-17 Eric Botcazou - - PR optimization/11646 - * cfgrtl.c (purge_dead_edges) [JUMP_INSN]: Rematerialize the - EDGE_ABNORMAL flag for EH edges. - * toplev.c (rest_of_handle_cse): Delete unreachable blocks - if dead edges were purged. - -2003-09-16 Bernardo Innocenti - - * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Add target predefines. - * config/m68k/m68k-none.h (CPP_CPU_DEFAULT_SPEC): Kill all definitions. - * config/m68k/m68k-none.h (CPP_FPU_SPEC): Remove. - * config/m68k/m68k-none.h (CPP_SPEC): Likewise. - -2003-09-16 Ian Lance Taylor - - * cfgcleanup.c (label_is_jump_target_p): Correct use of table - returned by tablejump_p. - -2003-09-16 Joel Brobecker - - * dwarf2asm.c (dw2_asm_output_nstring): Add comment. - -2003-09-16 Roger Sayle - - PR bootstrap/12269 - * simplify-rtx.c (simplify_gen_relational): Allow the cmp_mode - argument to be VOIDmode, taking the mode of the comparison from - the operands. Only call simplify_relational_operation if we - know the mode of the comparison. Honor FLOAT_STORE_FLAG_VALUE - if comparison has a floating point result. Ensure that the - result is always of the specified mode. - (simplify_replace_rtx): Simplify call to simplify_gen_relational. - (simplify_unary_operation): Ensure the correct mode and cmp_mode - are always passed to simplify_gen_relational. Simplify NOT of - comparison operator in any mode, not just BImode. - (simplify_ternary_operation): Correct tests on the return value - of simplify_relational_operation to use const_true_rtx, not - const1_rtx. Abort if it ever returns a non-constant result. - - * cfgloopanal.c (count_strange_loop_iterations): Use the function - simplify_relational_operation, not simplify_gen_relational, if - we're only interested in constant comparisons and will ignore - non-constant results. - -2003-09-16 Roger Sayle - - * fold-const.c (tree_swap_operands_p): New function to determine - the prefered ordering of operands. - (fold): Numerous clean-ups. Use tree_swap_operands_p when swapping - operands to commutative, comparison or ternary operators. Replace - uses of TREE_SET_CODE with recursive call to fold. Remove duplicate - transformation of A ? B : C into !A ? C : B. - -2003-09-16 Jakub Jelinek - - * config/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Define. - * config/alpha/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Define. - * config/arm/linux-elf.h (LINK_GCC_C_SEQUENCE_SPEC): Define. - * config/rs6000/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Define. - * config/rs6000/linux64.h (LINK_GCC_C_SEQUENCE_SPEC): Define. - * config/sh/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Define. - * config/sparc/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Define. - * config/sparc/linux64.h (LINK_GCC_C_SEQUENCE_SPEC): Define. - -2003-09-16 Jason Merrill - Jakub Jelinek - - * c-common.c (handle_warn_unused_result_attribute): New function. - (c_common_attribute_table): Add warn_unused_result. - (c_expand_expr): Issue warning when result of inlined function - with warn_unused_result attribute is ignored. - * calls.c (expand_call): Issue warning when result of function - with warn_unused_result attribute is ignored. - * c-common.h (STMT_EXPR_WARN_UNUSED_RESULT): Define. - * expr.c (expr_wfl_stack): Define. - (expand_expr) : If ignore, - pass const0_rtx as target. Chain locations into expr_wfl_stack. - * tree-inline.c (expand_call_inline): Set STMT_EXPR_WARN_UNUSED_RESULT - bit if inlined function has warn_unused_result attribute. - * input.h (expr_wfl_stack): Declare. - * doc/extend.texi: Document warn_unused_result attribute. - -2003-09-15 Alexandre Oliva - - * cpplib.c (do_pragma): Remove unnecessary cb_line_change. - -2003-09-15 Bob Wilson - - * config/xtensa/xtensa.c (xtensa_multibss_section_type_flags): Add - ATTRIBUTE_UNUSED. - (call_insn_operand): For PIC, don't allow a direct call to a - function in a different section than the current one. - -2003-09-16 Volker Reichelt - - * doc/invoke.texi (Warning Options): Add missing hyphen before - "Wimport". Change "-Wno-endif-labels" to "-Wendif-labels". - Move "-Wold-style-definition" to the C-only section. - Fix the ordering of the warning options. - -2003-09-15 Zdenek Dvorak - Jeff Law - - * gcse.c (remove_reachable_equiv_notes): New. - replace_store_insn): Call it. Update antic list. - (store_killed_in_insn): Take REG_EQUAL notes into account. - (build_store_vectors, delete_store): Add parameter to - replace_store_insn call. - -2003-09-15 Bob Wilson - - * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND_P): Use - SYMBOL_REF_LOCAL_P. - -2003-09-15 Kazu Hirata - - * expr.h (DEFAULT_FUNCTION_ARG_PADDING): New. - (FUNCTION_ARG_PADDING): Use DEFAULT_FUNCTION_ARG_PADDING. - * config/ia64/ia64.c (ia64_hpux_function_arg_padding): - Likewise. - * config/m68hc11/m68hc11.c (m68hc11_function_arg_padding): - Likewise. - * config/rs6000/rs6000.c (function_arg_padding): Likewise. - * config/sparc/sparc.c (function_arg_padding): Likewise. - -2003-09-15 Vladimir Makarov - - * haifa-sched.c (schedule_block): Use ready_remove_first instead - of choose_ready for non-dfa insn scheduling. - -2003-09-15 Andreas Jaeger - Kaveh R. Ghazi - - * doc/invoke.texi (Warning Options): Describe -Wold-style-definition. - * c-opts.c (c_common_handle_option): Handle OPT_Wold_style_definition. - * c-parse.in: Warn about old-style parameter definition. - * c-common.c: Define warn_old_style_defintion. - * c-common.h: Declare it. - * c.opt: Add Wold-style-defintion. - -2003-09-15 Andreas Jaeger - - * config/rs6000/altivec.h: Convert () prototypes to ISO C90. - * config/rs6000/rs6000.c: Likewise. - -2003-09-12 Zdenek Dvorak - - PR optimization/10914 - * expr.h (get_condition, canonicalize_condition): Declaration changed. - * cfgloopanal.c (simple_loop_exit_p): Add parameter to a get_condition - and canonicalize_condition calls. - * gcse.c (fis_get_condition, delete_null_pointer_checks_1, - delete_null_pointer_checks): Ditto. - * ifcvt.c (noce_get_alt_condition, noce_get_condition): Ditto. - * predict.c (estimate_probability, expected_value_to_br_prob): Ditto. - * loop.c (check_dbra_loop, get_condition_for_loop): Ditto. - (canonicalize_condition, get_condition): Allow to return comparisons - of cc mode registers. - * loop-unswitch.c (may_unswitch_on_p, unswitch_single_loop): Allow - cc mode registers comparison in condition. - -2003-09-12 Mark Mitchell - - * coverage.c (create_coverage): Do not call pushlevel/poplevel. - * langhooks-def.h (lhd_do_nothing_iii_return_null_tree): New - function. - * langhooks.c (lhd_do_nothing_iii_return_null_tree): Define it. - -2003-09-14 Kazu Hirata - - * combine.c (simplify_comparison): Convert - (ne (and (lshiftrt (xor X CST) Y) 1) 0) into - (eq (and (lshiftrt X Y) 1) 0). - -2003-09-14 Kazu Hirata - - * alias.c: Follow spelling conventions. - * cpphash.h: Likewise. - * fold-const.c: Likewise. - -2003-09-14 Alexandre Oliva - - * c-ppoutput.c (cb_line_change): Revert 2003-08-04's change. - * c-lex.c (cb_line_change): Skip line changing whenever - c-ppoutput.c would. - -2003-09-14 Steven Bosscher - - * ra.c: Convert to ISO C90 prototypes. - * ra-build.c: Likewise. - * ra-colorize.c: Likewise. - * ra-debug.c: Likewise. - * ra-rewrite.c: Likewise. - -2003-09-14 Richard Sandiford - - * Makefile.in (%.dvi): Remove excess $(docdir). - -2003-09-14 Richard Sandiford - - * function.c (STACK_BYTES): Move definition to head of file. - (assign_parms): Don't pass current_function_pretend_args_size - directly to SETUP_INCOMING_VARARGS. For partial register arguments, - round current_function_pretend_args_size up to STACK_BYTES. Skip any - excess before laying out the argument. - -2003-09-14 Andreas Jaeger - - * objc/objc-act.c: Convert to ISO C90 prototypes. - * objc/objc-act.h: Likewise. - -2003-09-14 Olaf Hering - - * config/rs6000/rs6000.c: Fix typo: Remove extra ')'. - -2003-09-13 Andrew Pinski - - PR target/12021 - * config/m68k/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Remove the asserts - as they already are done in config/m68k/m68k.h. - * config/m68k/netbsd.h (TARGET_OS_CPP_BUILTINS): Likewise - - * config/rs6000/rs6000.c (GEN_LOCAL_LABEL_FOR_SYMBOL): Remove. - (machopic_output_stub): Only generate pic base symbols when using pic - and generate them in the form L00000000$spb. - -2003-09-13 Richard Henderson - - * cgraphunit.c (cgraph_assemble_pending_functions): Export. - (cgraph_finalize_function): Revert TREE_ASM_WRITTEN check. - * cgraph.h: Update. - -2003-09-12 Dale Johannesen - - * config/rs6000/rs6000.c: Fix typos in previous. - -2003-09-12 Ziemowit Laski - - * pretty-print.c (pp_construct): Use xcalloc instead of xmalloc - when allocating pp->buffer. - -2003-09-12 Geoffrey Keating - - * config/darwin.c (machopic_select_rtx_section): Use - const_data_section for things that might require relocation. - -2003-09-12 H.J. Lu - - PR bootstrap/12264 - * tree-inline.c (inline_forbidden_p_1): Cast the 3rd arg to tree. - -2003-09-12 Bob Wilson - - * config/xtensa/elf.h (ASM_SPEC): Remove no-density option. Reformat. - * config/xtensa/linux.h (ASM_SPEC): Likewise. - * config/xtensa/xtensa.h (TARGET_SWITCHES): Remove -mbig-endian, - -mlittle-endian, -m[no-]density, -m[no-]abs, -m[no-]addx, -m[no-]mac16, - -m[no-]mul16, -m[no-]mul32, -m[no-]nsa, -m[no-]minmax, -m[no-]sext, - -m[no-]booleans, -mhard-float, -msoft-float, -m[no-]hard-float-div, - -m[no-]hard-float-recip, -m[no-]hard-float-sqrt, and - -m[no-]hard-float-rsqrt options. Delete corresponding MASK_* macros - and redefine corresponding TARGET_* macros with constants from the - xtensa-config.h header. - * doc/invoke.texi (Option Summary, Xtensa Options): Remove documention - for the options listed above. - -2003-09-12 Dale Johannesen - - * config/rs6000/rs6000-protos.h: Use C90 prototypes. - * config/rs6000/rs6000-c.c: Ditto. - * config/rs6000/rs6000.c: Ditto. - * config/rs6000/ sysv4.h: Ditto. - -2003-09-12 Chris Lattner - - * loop.c: Move comments describing BIV's and GIV's to top of file - -2003-09-12 Roger Sayle - - PR optimization/8967 - * alias.c (write_dependence_p): Modify to take an additional constp - argument that controls whether the UNCHANGING_RTX_P flags are used. - (anti_dependence, output_dependence): Adjust write_dependence_p - callers to pass this additional argument, to return the same result. - (unchanging_anti_dependence): New variant of anti_dependence that - ignores the UNCHANGING_RTX_P property on memory references. - * rtl.h (unchaning_anti_dependence): Prototype here. - * flow.c (init_propagate_block): Place fake constant mem writes on - the mem_set_list so that dead writes to const variables are deleted. - (insn_dead_p): Change anti_dependence to unchanging_anti_dependence. - (mark_used_regs): Likewise. - -2003-09-12 Richard Sandiford - - * config/mcore/mcore-protos.h (mcore_r15_operand_p): Declare. - (mcore_secondary_reload_class): Declare. - (mcore_output_inline_const_forced): Remove. - * config/mcore/mcore.md (movsi): Remove the code that forced - non-inlineable constants into a register if the target was r15 - or the stack pointer. Remove constant restrictions from the main - define_insn. Remove r <- I, r <- M and r <- N alternatives in favor - of an r <- P alternative. Remove fallback define_insn for reload. - (movhi, movqi): Use gen_lowpart rather than gen_SUBREG. Remove reload - define_insn. Use mcore_output_move in the remaining define_insn. - Adjust condition and constraints in the way as for movsi. - (movdi): Always split unacceptable constants into two. Use - simplify_gen_subreg instead of operand_subword{,_force}. - * config/mcore/mcore.c (mcore_output_inline_const_forced): Remove. - (mcore_output_move): Support HImode and QImode moves as well. - (mcore_m15_operand_p): New function. - (mcore_reload_class): Use it to detect cases where LRW_REGS are better. - (mcore_secondary_reload_class): New function. - * config/mcore/mcore.h (SECONDARY_RELOAD_CLASS): Redefine in - terms of mcore_secondary_reload_class. - -2003-09-11 Mike Stump - - * c-lex.c (fe_file_change): Don't transform to_line with SOURCE_LINE. - -2003-09-11 Kaveh R. Ghazi - - * builtins.c (fold_builtin_logarithm): if N can't be truncated to - MODE exactly, then only convert logN(N) -> 1.0 if - flag_unsafe_math_optimizations is set. - - * builtins.c (builtin_dconsts_init, dconstpi, dconste, - init_builtin_dconsts): Delete. - * emit-rtl.c (dconstpi, dconste): Define. - (init_emit_once): Initialize dconstpi & dconste. - * real.h (dconstpi, dconste): Declare. - -2003-09-11 Alexandre Oliva - - PR fortran/11522 - * dwarf2out.c (gen_inlined_subroutine_die): Emit abstract function - for ultimate origin even if block is abstract. - -2003-09-11 Roger Sayle - - * combine.c (combine_simplify_rtx): Move several NOT and NEG - optimizations from here... - * simplify-rtx.c (simplify_unary_operation): to here. Recursively - simplify expressions using simplify_gen_*ary instead of gen_rtx_*. - -2003-09-11 Richard Henderson - - * cgraphunit.c (cgraph_finalize_function): Add nested arg. - Tweek tests for function already generated. - (cgraph_expand_function): Don't double announce in !unit-at-a-time. - * cgraph.h (cgraph_finalize_function): Update for extra arg. - * c-decl.c (finish_function): Likewise. - -2003-09-10 Joe Buck - - * c-decl.c (poplevel): Eliminate use of |= in function_body assignment. - -2003-09-10 Jerry Quinn - - * real.c: Update URL to VAX floating point docs. - (decode_vax_d): Extract 8 exponent bits instead of 7. - -2003-09-10 Ian Lance Taylor - - * combine.c (force_to_mode): Set fuller_mask based only on mask, - not op_mode. - -2003-09-11 Jan Hubicka - - * c-objc-common.c (c_cannot_inline_tree_fn): Warn - on why function is not inlinable; do not check - the body. - (inline_forbidden_p): Move to... - * tree-inline.c (inline_forbidden_p_1): ... here; Add warnings; - deal with alloca, longjmp. - (inline_forbidden_p): New static function. - (find_alloca_call_1, find_alloca_call, find_builtin_longjmp_call_1, - find_builtin_longjmp_call): Kill. - -2003-09-10 Richard Henderson - - * cgraph.h (struct cgraph_node): Rename lowered to analyzed. - * cgraphunit.c: Update to match. - (record_call_1): Rearrange. Call lang hook for language nodes. - (cgraph_analyze_function): Don't call lower_function. - * langhooks.h (struct lang_hooks_for_callgraph): Replace - lower_function with analyze_expr. - * langhooks-def.h: Update to match. - * langhooks.c (lhd_callgraph_analyze_expr): New. - -2003-09-10 Martin Husemann - - PR target/11965 - * config/sparc/sparc.c (sparc_v8plus_shift): Protect against - constants greater than 63. - * config/sparc/sparc.md (ashlsi3, ashrsi3, lshrsi3): Protect - against constants greater than 31. - (*ashldi3_sp64, *ashrdi3_sp64, *lshrdi3_sp64): Protect against - constants greater than 63. - -2003-09-09 Richard Henderson - - * cgraphunit.c (cgraph_finalize_function): Remove unused argument. - * cgraph.h (cgraph_finalize_function): Update. - * c-decl.c (finish_function): Update. - -2003-09-09 Devang Patel - - * config/darwin.h (LINK_SPEC): Pass -nofixprebinding to linker. - * doc/invoke.texi: Document new Darwin linker option -nofixprebinding. - -2003-09-09 Eric Christopher - - * configure.in: Change usage of 'head' to 'sed 1q'. - * configure: Regenerate. - -2003-09-09 Richard Henderson - - * except.c: Include cgraph.h. - (output_function_exception_table): Invoke - cgraph_varpool_mark_needed_node. - * Makefile.in (except.o): Update. - -2003-09-07 Kelley Cook - - * Makefile.in: Define REMAKEFLAGS for LANGUAGES & BOOT_CFLAGS - and use it throughout. - -2003-09-09 Kaveh R. Ghazi - - * builtins.c (real_dconstp, fold_builtin_logarithm, - fold_builtin_exponent): New, split out from fold_builtin. Also - generalize to add log2, log10, exp2 and exp10/pow10 equivalents. - * emit-rtl.c (dconst3, dconst10, dconstthird): New. - (init_emit_once): Initialize new dconsts, use ARRAY_SIZE in lieu - of hardcoded array size. - * fold-const.c (fold): Add cases for exp2, exp10 and pow10. - (tree_expr_nonnegative_p): Likewise. - * real.h (dconst3, dconst10, dconstthird): New. - -2003-09-09 Jan Hubicka - - * cgraphunit.c (cgraph_finalize_function): Fix handling of extern - inline functions. - (cgraph_finalize_compilation_unit): Fix crash when dealing with lost - DECL_SAVED_TREE. - -2003-09-09 Roger Sayle - - * builtins.c (fold_builtin_cabs): Protect the complex argument - against multiple evaluation when optimizing cabs* into sqrt*. - -2003-09-09 Jan Hubicka - - * varasm.c (notice_global_symbol): Properly deal with weak symbols. - -2003-09-08 Kelley Cook - - * Makefile.in: Revert yesterday's change. - -2003-09-08 Bernardo Innocenti - Peter Barada - - * config/m68k/coff.h (REGISTER_NAMES): Add fake register `argptr' - * config/m68k/hp320.h (REGISTER_NAMES): Likewise. - * config/m68k/linux.h (REGISTER_NAMES): Likewise. - * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise. - * gcc/config/m68k/sgs.h (REGISTER_NAMES): Likewise. - * config/m68k/m68k-protos.h (m68k_initial_elimination_offset): Add prototype. - * config/m68k/m68k.c (m68k_frame): New struct, simular to ix86 back-end. - (m68k_compute_frame_layout): New function. - (m68k_initial_elimination_offset): New function. - (m68k_output_function_prologue): ColdFire-specific movem handling. - (m68k_output_function_epilogue): Likewise. - * config/m68k/m68k.h (FIRST_PSEUDO_REGISTER): Make room for argptr reg. - (ARG_POINTER_REGNUM): Add new definition. - (INITIAL_FRAME_POINTER_OFFSET): Remove macro. - (ELIMINABLE_REGS): Define new macro, like in ix86 back-end. - (CAN_ELIMINATE): Likewise. - (INITIAL_ELIMINATION_OFFSET): Likewise. - -2003-09-08 Bernardo Innocenti - - * config/m68k/m68k.c (m68k_output_function_prologue): Simplify - by removing redundant variable cfa_store_offset. - -2003-09-08 Mark Mitchell - - * langhooks-def.h (lhd_register_builtin_type): New function. - (LANG_HOOKS_REGISTER_BUILTIN_TYPE): New macro. - (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update. - * langhooks.h (lang_hooks_for_types): Add register_builtin_type. - * langhooks.c (lhd_register_builtin_type): New function. - * c-common.h (c_register_builtin_type): Declare. - * c-common.c (c_register_builtin_type): New function. - * c-lang.c (LANG_HOOKS_REGISTER_BUILTIN_TYPE): Define to - c_register_builtin_type. - * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Remove __fpreg, - __float80, and __float128 macros. - * config/ia64/ia64.c (ia64_init_builtins): Create __fpreg, - __float80, and __float128 types. - -2003-09-08 Kaveh R. Ghazi - - * builtin-types.def - (BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE, - BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE_COMPLEX_DOUBLE, - BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT_COMPLEX_FLOAT): New. - * builtins.def (BUILT_IN_CACOS, BUILT_IN_CACOSF, BUILT_IN_CACOSH, - BUILT_IN_CACOSHF, BUILT_IN_CACOSHL, BUILT_IN_CACOSL, - BUILT_IN_CARG, BUILT_IN_CARGF, BUILT_IN_CARGL, BUILT_IN_CASIN, - BUILT_IN_CASINF, BUILT_IN_CASINH, BUILT_IN_CASINHF, - BUILT_IN_CASINHL, BUILT_IN_CASINL, BUILT_IN_CATAN, - BUILT_IN_CATANF, BUILT_IN_CATANH, BUILT_IN_CATANHF, - BUILT_IN_CATANHL, BUILT_IN_CATANL, BUILT_IN_CCOS, BUILT_IN_CCOSF, - BUILT_IN_CCOSH, BUILT_IN_CCOSHF, BUILT_IN_CCOSHL, BUILT_IN_CCOSL, - BUILT_IN_CEXP, BUILT_IN_CEXPF, BUILT_IN_CEXPL, BUILT_IN_CPOW, - BUILT_IN_CPOWF, BUILT_IN_CPOWL, BUILT_IN_CPROJ, BUILT_IN_CPROJF, - BUILT_IN_CPROJL, BUILT_IN_CSIN, BUILT_IN_CSINF, BUILT_IN_CSINH, - BUILT_IN_CSINHF, BUILT_IN_CSINHL, BUILT_IN_CSINL, BUILT_IN_CSQRT, - BUILT_IN_CSQRTF, BUILT_IN_CSQRTL, BUILT_IN_CTAN, BUILT_IN_CTANF, - BUILT_IN_CTANH, BUILT_IN_CTANHF, BUILT_IN_CTANHL, BUILT_IN_CTANL): - New. - * doc/extend.texi: Document new builtins. - -2003-09-09 Jan Hubicka - - * cgraph.c (cgraph_varpool_finalize_decl): Sanity check duplicated - finalization. - * cgraphunit.c (decide_is_fnction_needed): Avoid special case of nested - functions, check for COMDAT. - (cgraph_assemble_pending_functions): Break out from... - (cgraph_finalize_function): ... here; allow redefinig of extern inline - functions. - (record_call_1): Record function references only in non-unit-at-a-time - mode. - (cgraph_analyze_function): Reset current_function_decl. - (cgraph_finalize_compilation_unit): Assemble pending functions. - -2003-09-08 Mark Mitchell - - * mklibgcc.in (libcc.a): Depend on stmp-dirs. - (libgov.a): Likewise. - (libgcc_eh.a): Likewise. - -2003-09-08 Roger Sayle - - * fold-const.c (operand_equal_p): Clarify documentation. - -2003-09-08 Richard Henderson - - * c-decl.c (c_expand_body_1): Push and pop function context here. - * tree-optimize.c (tree_rest_of_compilation): ... not here. Take - nested argument instead of computing nesting ourselves. - -2003-09-08 Jakub Jelinek - - * toplev.c (rest_of_handle_stack_regs): Call split_all_insns before - regstack if optimizing but not scheduling after reload. - -2003-09-08 Jakub Jelinek - - * config/sparc/sparc.c (struct machine_function): New type. - (TARGET_HAVE_TLS, TARGET_CANNOT_FORCE_CONST_MEM): Define. - (sparc_override_options): Initialize init_machine_status. - (tls_symbolic_operand, tgd_symbolic_operand, tld_symbolic_operand, - tie_symbolic_operand, tle_symbolic_operand): New functions. - (symbolic_operand): Disallow tls_symbolic_operand. - (symbolic_memory_operand): Likewise. - (tls_call_delay, sparc_cannot_force_const_mem, legitimate_constant_p, - constant_address_p, legitimate_pic_operand_p, legitimate_address_p): - New functions. - (sparc_tls_symbol): New variable. - (sparc_tls_get_addr, sparc_tls_got, legitimize_tls_address, - legitimize_address): New functions. - (print_operand): Handle %&. - (sparc_init_machine_status, get_some_local_dynamic_name, - get_some_local_dynamic_name_1): New functions. - (sparc_output_dwarf_dtprel): New function. - * config/sparc/sparc.h (CONSTANT_ADDRESS_P): Moved into - constant_address_p. - (LEGITIMATE_PIC_OPERAND_P): Moved into legitimate_pic_operand_p. - (LEGITIMATE_CONSTANT_P): Moved into legitimate_constant_p. - (GO_IF_LEGITIMATE_ADDRESS): Moved into legitimate_address_p. - (LEGITIMIZE_ADDRESS): Moved into legitimize_address. - (PRINT_OPERAND_PUNCT_VALID_P): Add '&'. - (TARGET_TLS, TARGET_SUN_TLS, TARGET_GNU_TLS): Define. - (ASM_OUTPUT_DWARF_DTPREL): Define. - (PREDICATE_CODES): Add tgd_symbolic_operand, tld_symbolic_operand, - tie_symbolic_operand, tle_symbolic_operand. - * config/sparc/sparc.md (UNSPEC_TLSGD, UNSPEC_TLSLDM, UNSPEC_TLSLDO, - UNSPEC_TLSIE, UNSPEC_TLSLE, UNSPEC_TLSLD_BASE): New constants. - (tls_call_delay): New attribute. - (in_call_delay): Use it. - (movqi, movhi, movsi, movdi): Call legitimize_tls_address if needed. - (tgd_hi22, tgd_lo10, tgd_add32, tgd_add64, tgd_call32, tgd_call64, - tldm_hi22, tldm_lo10, tldm_add32, tldm_add64, tldm_call32, tldm_call64, - tldo_hix22, tldo_lox10, tldo_add32, tldo_add64, tie_hi22, tie_lo10, - tie_ld32, tie_ld64, tie_add32, tie_add64, tle_hix22_sp32, - tle_lox10_sp32, tle_hix22_sp64, tle_lox10_sp64): New insns. - (tldo_ldub_sp32, tldo_ldub1_sp32, tldo_ldub2_sp32, tldo_ldsb1_sp32, - tldo_ldsb2_sp32, tldo_ldub_sp64, tldo_ldub1_sp64, tldo_ldub2_sp64, - tldo_ldub3_sp64, tldo_ldsb1_sp64, tldo_ldsb2_sp64, tldo_ldsb3_sp64, - tldo_lduh_sp32, tldo_lduh1_sp32, tldo_ldsh1_sp32, tldo_lduh_sp64, - tldo_lduh1_sp64, tldo_lduh2_sp64, tldo_ldsh1_sp64, tldo_ldsh2_sp64, - tldo_lduw_sp32, tldo_lduw_sp64, tldo_lduw1_sp64, tldo_ldsw1_sp64, - tldo_ldx_sp64, tldo_stb_sp32, tldo_stb_sp64, tldo_sth_sp32, - tldo_sth_sp64, tldo_stw_sp32, tldo_stw_sp64, tldo_stx_sp64): New - insns. - * config/sparc/sparc-protos.h (legitimate_constant_p, - constant_address_p, legitimate_pic_operand_p, legitimate_address_p, - legitimize_tls_address, legitimize_address, tls_symbolic_operand, - tls_call_delay, sparc_output_dwarf_dtprel): New prototypes. - * config/sparc/linux.h (TARGET_GNU_TLS, TARGET_SUN_TLS): Define. - * config/sparc/linux64.h (TARGET_GNU_TLS, TARGET_SUN_TLS): Likewise. - * configure.in (sparc*-*-*): Add TLS check. - * configure: Rebuilt. - -2003-09-07 Eric Botcazou - - PR target/11689 - * config/i386/i386.c (memory_address_length): Fix computation when - the base is esp or ebp. - -2003-09-07 Mark Mitchell - - PR c++/11852 - * varasm.c (initializer_constant_valid_p): Correct logic for - CONSTRUCTORs. - -2003-09-07 Roger Sayle - - * expr.c (expand_operands): New function to expand an operand pair. - (expand_expr): Call expand_operands whenever we need to expand both - operands of a binary operator. - (do_store_flag): Likewise for operands of comparison operations. - -2003-09-07 Roger Sayle - - * combine.c (combine_simplify_rtx): Don't convert -(A*B) into - (-A)*B if we care about sign-dependent rounding. - -2003-09-07 Gabriel Dos Reis - - * c-pretty-print.h (pp_c_left_brace): Declare. - (pp_c_right_brace): Likewise. - * c-pretty-print.c (pp_c_left_brace): Now a function - (pp_c_right_brace): Likewise. - -2003-09-07 Jan Hubicka - - * cfgcleanup.c (try_simplify_condjump): Fix again the preivous patch. - -2003-09-07 Gabriel Dos Reis - - * diagnostic.c (warn_deprecated_use): Move to toplev.c - -2003-09-07 Gabriel Dos Reis - - * langhooks.c (lhd_print_error_function): Move from diagnostic.c. - * Makefile.in (langhooks.o): Depend on diagnostic.h - -2003-09-06 James E Wilson - - * loop.c (loop_regs_update): Delete else clause for PATTERN rtx and - simplify. - -2003-09-07 Kelley Cook - - * Makefile.in: Define $REMAKE to be $MAKE with LANGUAGES & BOOT_CFLAGS - and use it throughout. - -2003-09-07 Jan Hubicka - - * cfgcleanup.c (try_simplify_condjump): Fix my previous patch. - - * toplev.c (rest_of_decl_compilation): Do not finalize external - virables. - - * cgraph.c (cgraph_mark_reachable_node): Only enqueue finalized - functions. - (cgraph_varpool_finalize_decl): Notice global symbol when needed. - -2003-09-06 Jan Hubicka - - PR target/12070 - * calls.c (emit_library_call_value_1): Fix saving of BLKmode arguments. - - PR opt/12082 - * cfgcleanup.c (try_simplify_condjump): Avoid unreachable code warning. - -2003-09-06 Gabriel Dos Reis - - * diagnostic.c (announce_function): Move to toplev.c. - -2003-09-06 Zdenek Dvorak - - * gcse.c (expr_equiv_p): Don't consider anything to be equal to - volatile mem. - -2003-09-06 Kaveh R. Ghazi - - * ggc-common.c (init_ggc_heuristics): Don't use the heuristics - when gc checking is enabled. - -2003-09-06 Steven Bosscher - - PR c/9862 - * c-decl.c (c_expand_body_1): Move return warning from here... - (finish_function): ...to here. - -2003-09-05 Geoffrey Keating - - * config/rs6000/darwin.h (PREFERRED_RELOAD_CLASS): Always return - a subset of the input class. - -2003-09-05 Kazu Hirata - - * config/i860/i860.c: Follow spelling conventions. - * config/i860/i860.h: Likewise. - * config/sh/sh.h: Likewise. - -2003-09-05 Nitin Yewale - - * config/h8300/h8300-protos.h: Declare h8300_hard_regno_rename_ok - * config/h8300/h8300.h (HARD_REGNO_RENAME_OK): New. - * config/h8300/h8300.c (h8300_hard_regno_rename_ok): New. - -2003-09-05 Roger Sayle - Richard Henderson - - PR optimization/1823 - * expmed.c (expand_divmod ): Use an unsigned - multiplication to implement division by constant integer. - -2003-09-05 Jan Hubicka - - * opts.c (decode_options): Enable unit-at-a-time at -O2. - * params.def (max-inline-insns-single): Set to 500 - (max-inline-insns-auto): Set to 150 - * invoke.texi (max-inline-insns-single, max-inline-insns-auto): Update. - -2003-09-04 Richard Henderson - - * cgraph.c (cgraph_mark_reachable_node): Split out from ... - (cgraph_mark_needed_node): Remove needed argument. - * cgraph.h: Update to match. - * cgraphunit.c (decide_is_function_needed): Split out from ... - (cgraph_finalize_function): Reorg. Avoid deferred_inline_function - if we generated the function. - (record_call_1): Update for cgraph_mark_reachable_node. - * varasm.c (mark_referenced): Likewise. - * objc/objc-act.c (mark_referenced_methods): Likewise. - -2003-09-04 DJ Delorie - - * targhooks.c: Add comment explaining the migration process. - -2003-09-04 Eric Christopher - - * config/frv/t-frv: Fix path for frv-abi.h. - * config/frv/frv-asm.h: Fix string concatenation. - -2003-09-04 DJ Delorie - - * builtins.c (apply_args_size): Guard against a NULL cfun. - (expand_builtin_apply_args_1): Likewise. - (expand_builtin_apply): Likewise. - Fixes PR bootstrap/12172. - -2003-09-04 Rainer Orth - - * configure.in (gcc_cv_as_ix86_cmov_sun_syntax): Check if - assembler supports Sun syntax for cmov. - * configure: Regenerate. - * config.in: Likewise. - * config/i386/i386.c: Rename CMOV_SUN_AS_SYNTAX to - HAVE_AS_IX86_CMOV_SUN_SYNTAX. - * config/i386/sol2.h (CMOV_SUN_AS_SYNTAX): Remove. - Fixes PR target/12101. - -2003-09-04 Matt Austern - - * c-common.c (fname_as_string): Use lang_hooks.decl_printable_name - with verbosity 0, instead of DECL_NAME, for human-readable string. - -2003-09-04 Eric Christopher - - * targhooks.c (default_return_in_memory): Allow - unconverted ports. - -2003-09-04 Eric Christopher - - * targhooks.c (default_return_in_memory): Fix typo - in last checkin. - -2003-09-04 Eric Christopher - - * targhooks.c (default_return_in_memory): Fix default - definition. - -2003-09-04 Bernardo Innocenti - - * config/m68k/m68k.c (m68k_coff_asm_named_section): Restore - deleted function. - * config/m68k/coff.h (M68K_TARGET_COFF): Add flag used to - enable coff-only code in m68k.c. - -2003-09-04 Nick Clifton - - * config.gcc: Add v850e1 target. Allow --with-cpu to accept - v850e1. - * config/v850/v850.h: Accept v850e1 as a default CPU. - Accept -mv850e1 as a command line option. - * doc/invoke.texi: Document new -mv850e1 command line switch. - * config/v850/t-v850: Treat -mv850e1 as a multilib alias for - -mv850e. - -2003-09-04 Nick Clifton - - * config.gcc (v850e-*-*): Use t-v850e makefile fragment. - * config/v850/t-v850: Only produce one extra multilib - for - the v850e. - * config/v850/t-v850e: New file: Only produce one extra - multilib - for the v850. - -2003-09-04 Jakub Jelinek - - * config/ia64/libgcc-ia64.ver: Export _Unwind_GetBSP@@GCC_3.3.2. - * config/ia64/unwind-ia64.c (_Unwind_GetBSP): New function. - * unwind.h (_Unwind_GetBSP): New prototype. - * libgcc-std.ver: Add empty GCC_3.3.2 version. - * mkmap-symver.awk: For symbol versions with no exported symbols, - don't put anything into version script, just change all symbol - versions which inherit from it to inherit from its ancestor. - -2003-09-04 Eric Christopher - - * config/mips/mips.c (mips_expand_prologue): Convert to - calls.struct_value_rtx hook. - (reg_or_const_float_1_operand): New. - * config/mips/mips.h: Update Comments. - (mips_arg): Add reg_or_const_float_1_operand. - * config/mips/mips.md (divdf3); Convert to expander. - (divsf3): Ditto. - (*divdf3): New pattern. - (*divsf3): Ditto. - -2003-09-04 Jan Hubicka - - * toplev.c (wrapup_global_declarations): Fix final pass in - unit-at-atime mode. - -2003-09-04 Mark Mitchell - - * doc/extend.texi: Document removal of cast-as-lvalue extension in - C++. - -2003-09-04 Nicolas Roche - - * gcc.c (process_command): Fix typo. - -2003-09-03 David O'Brien - - optimization/11980 - * config/i386/freebsd.h (SIZE_TYPE): Support TARGET_64BIT. - (PTRDIFF_TYPE): Likewise. - (WCHAR_TYPE_SIZE): Likewise. - -2003-09-03 DJ Delorie - - * targhooks.c: New file. - * targhooks.h: New file. - * Makefile.in: Add targhooks.o support. - (function.o): Depend on$(TARGET_H). - (stmt.o): Likewise. - (combine.o): Depend on $(TREE_H) and $(TARGET_H). - * builtins.c (apply_args_size, expand_builtin_apply_args_1, - expand_builtin_apply): Convert to calls.struct_value_rtx hook. - (expand_builtin_saveregs): Convert to - calls.expand_builtin_saveregs hook. - * c-decl.c (start_decl): Handle new calls.promote_prototypes hook - here, instead of ... - (get_parm_info) ... here. - (store_parm_decls_oldstyle): Convert to calls.promote_prototypes - hook. - (finish_function): Handle calls.promote_prototypes hook here too. - * c-typeck.c (convert_arguments): Convert to - calls.promote_prototypes hook. - (c_convert_parm_for_inlining): Likewise. - * calls.c (initialize_argument_information): Convert to - calls.promote_function_args hook. - (expand_call): Convert to calls.struct_value_rtx, - calls.strict_argument_naming, - calls.pretend_outgoing_varargs_named, and - calls.promote_function_return hooks. Pass fndecl to - aggregate_value_p. Initialize CUMULATIVE_ARGS before calling - hooks, so they can use that. - (emit_library_call_value_1): Likewise. - * combine.c (setup_incoming_promotions): Convert to - calls.promote_function_args hook. - * emit-rtl.c: Convert to calls.struct_value_rtx hook. - * expr.c (expand_assignment): Pass call to aggregate_value_p. - (expand_expr): Likewise. - * expr.h: Remove support for SETUP_INCOMING_VARARGS, - STRICT_ARGUMENT_NAMING, PRETEND_OUTGOING_VARARGS_NAMED, - RETURN_IN_MEMORY macro defaults. - * final.c (profile_function): Convert to calls.struct_value_rtx - hook. - * function.c (aggregate_value_p): Accept function type tree as - second parameter; try to deduce fntype from it. Convert to - calls.return_in_memory hook. - (assign_parms): Convert to calls.setup_incoming_varargs, - calls.strict_argument_naming, calls.promote_function_args, - calls.pretend_outgoing_varargs_named hooks. Pass fndecl to - aggregate_value_p. - (expand_function_start): Likewise. Convert to - calls.struct_value_rtx hook. - (expand_function_end): Convert to calls.promote_function_return hook. - (allocate_struct_function): Pass fndecl to aggregate_value_p. - * hard-reg-set.h: Update comments to new hook names. - * integrate.c (expand_inline_function): Pass fndecl to aggregate_value_p. - * reg-stack.c (stack_result): Likewise. - * rtl.h (struct_value_rtx, struct_value_incoming_rtx): Delete. - * stmt.c (expand_value_return): Convert to - calls.promote_function_return hook. - * target-def.h: Add TARGET_PROMOTE_FUNCTION_ARGS, - TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES, - TARGET_STRUCT_VALUE_RTX, TARGET_RETURN_IN_MEMORY, - TARGET_EXPAND_BUILTIN_SAVEREGS, TARGET_SETUP_INCOMING_VARARGS, - TARGET_STRICT_ARGUMENT_NAMING, - TARGET_PRETEND_OUTGOING_VARARGS_NAMED, and TARGET_CALLS. - * target.h: Likewise. - * tree.h (aggregate_value_p): Also takes a tree to deduce function - attributes from (for target hooks). - * doc/tm.texi (PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, - PROMOTE_PROTOTYPES, RETURN_IN_MEMORY, STRUCT_VALUE_REGNUM, - STRUCT_VALUE, STRUCT_VALUE_INCOMING_REGNUM, STRUCT_VALUE_INCOMING, - EXPAND_BUILTIN_SAVEREGS, SETUP_INCOMING_VARARGS, - STRICT_ARGUMENT_NAMING, PRETEND_OUTGOING_VARARGS_NAMED): Convert - to hooks. - - * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Pass function - to aggregate_value_p. - * config/arm/arm.c (arm_init_cumulative_args, - arm_output_mi_thunk): Likewise. - * config/i386/i386.c (ix86_return_pops_args, x86_this_parameter): - Likewise. - * config/mips/mips.c (mips_save_reg_p, mips_expand_prologue, - mips_can_use_return_insn): Likewise. - * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise. - * config/s390/s390.c (s390_output_mi_thunk): Likewise. - * config/sparc/sparc.c (sparc_output_mi_thunk): Pass function to - aggregate_value_p. - * config/story16/stormy16.c (xstormy16_asm_output_mi_thunk): Pass - function to aggregate_value_p. - * objc/objc-act.c (generate_struct_by_value_array): Pass NULL to - aggregate_value_p. - - * config/sh/sh-protos.h (sh_builtin_saveregs): Remove. - (sh_attr_renesas_p, sh_cfun_attr_renesas_p, sh_function_arg, - sh_function_arg_advance, sh_pass_in_reg_p): New. * config/sh/sh.c - (sh_handle_renesas_attribute, sh_promote_prototypes, - sh_struct_value_rtx, sh_return_in_memory, sh_builtin_saveregs, - sh_setup_incoming_varargs, sh_strict_argument_naming, - sh_pretend_outgoing_varargs_named): New decls. - (targetm): Add new hooks. - (calc_live_regs): Save MACL and MACH if the function has the - renesas attribute. - (sh_expand_prologue): Support renesas attribute. - (sh_builtin_saveregs): Make static. - (sh_build_va_list): Support renesas attribute. - (sh_va_start): Likewise. - (sh_va_arg): Likewise. - (sh_promote_prototypes): New. - (sh_function_arg): New, moved from sh.h. Support renesas - attribute. - (sh_function_arg_advance): Likewise. - (sh_return_in_memory): Likewise. - (sh_strict_argument_naming): Likewise. - (sh_pretend_outgoing_varargs_named): Likewise. - (sh_struct_value_rtx): New. - (sh_attribute): Add renesas attribute. - (sh_handle_renesas_attribute): New. - (sh_attr_renesas_p, sh_cfun_attr_renesas_p): New. - (sh_ms_bitfield_layout_p): Support renesas attribute also. - (sh_output_mi_thunk): Pass function to aggregate_value_p. * - config/sh/sh.h (TARGET_SWITCHES): Add -mrenesas as an alias for - -mhitachi. - (STRUCT_VALUE_REGNUM, STRUCT_VALUE, RETURN_IN_MEMORY): Moved to - target hooks. - (sh_args): Add renesas_abi flag. - (INIT_CUMULATIVE_ARGS): Set it. Pass fndecl to aggregate_value_p. - (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Move to sh.c. - (PASS_IN_REG_P): Support renesas attribute. Pass DF and TF on the - stack for the renesas abi. - (STRICT_ARGUMENT_NAMING, PRETEND_OUTGOING_VARARGS_NAMED, - SETUP_INCOMING_VARARGS, EXPAND_BUILTIN_SAVEREGS, - PROMOTE_PROTOTYPES): Moved to sh.c. * config/sh/sh.md (call): Set - call cookie to indicate renesas calls. - -2003-09-03 Mostafa Hagog - - * gcse.c (replace_one_set): New function. - (pre_insert_copy_insn): Change the order of copying - to make copy propagation discover additional PRE opportunities. - -2003-09-03 Roger Sayle - - PR optimization/11700. - * simplify-rtx.c (simplify_subreg): Check that the subreg offset - of a hard register is representable before trying to simplify it - using subreg_hard_regno. - -2003-09-04 Rainer Orth - - * configure.in (gcc_cv_ld_hidden): Disable unless using GNU ld. - * configure: Regenerate. - -2003-09-04 Rainer Orth - - * intl.h (N_): Remove parentheses. - -2003-09-03 Bernardo Innocenti - - * config.gcc (m68k-*-linux*): Remove definition of LINUX_DEFAULT_ELF. - * config/i370/linux.h (LINUX_DEFAULT_ELF): Remove unconditional - definition and code blocks compiled when not defined. - * config/i386/linux.h (LINUX_DEFAULT_ELF): Likewise. - * config/i386/linux64.h (LINUX_DEFAULT_ELF): Likewise. - * config/sparc/linux.h: (LINUX_DEFAULT_ELF): Likewise. - * config/sparc/linux64.h: (LINUX_DEFAULT_ELF): Likewise. - -2003-09-03 Jeff Sturm - - * cgraphunit.c (visited_nodes): New static variable. - (record_call_1): Use walk_tree with visited_nodes. - (cgraph_create_edges): Use walk_tree with visited_nodes. - Setup/teardown visited_nodes hashtable. - -2003-09-03 Roger Sayle - - * toplev.c (flag_rounding_math): New global variable. - (f_options): Add to the list of language independent options. - * flags.h (flag_rounding_math): Prototype here. - (HONOR_SIGN_DEPENDENT_ROUNDING): Use flag_rounding_math instead. - * common.opt (frounding-math): New common command line option. - * opts.c (common_handle_option): Handle OPT_frounding_math. - (set_fast_math_flags): -ffast-math clears flag_rounding_math. - - * doc/invoke.texi: Document this new command line option. - -2003-09-03 Rainer Orth - - * config/sol2.h (NO_IMPLICIT_EXTERN_C): Update comment. - -2003-09-03 Jan Hubicka - - * Makefile.in (c-objc-common.o): Kill gt-c-objc-common.h dependency. - * c-decl.c (finish_function): Kill arguments, always use cgraph path. - * c-objc-common.c: Kill include of gt-c-objc-common.h - (expand_deferred_fns, deffer_fn): Kill function. - (deferred_fns): Kill variable. - (finish_cdtor): Update finish_function call. - (c_objc_common_finish_file): Always call cgraph code. - * c-parse.c: Regenerate. - * c-parse.y: Regenerate. - * c-tree.h (finish_function): Update prototype. - * objc-acct.c (build_module_descriptor, finish_method_def): - Update call of finish_function. - * cgraphunit.c (cgraph_default_inline_p, cgraph_analyze_function): Add - forward prototype. - (cgraph_finalize_function): In non-unit-at-a-time mode analyze the - function and assemble it if needed. - (cgraph_finalize_compilation_unit): Do nothing in non-unit-at-a-time - mode. - (cgraph_optimize): Likewise. - (cgraph_expand_function): In non-unit-at-a-time mode keep function body - even when it has no inline callees. - * c-parse.in: Update calls to finish_function. - -2003-09-03 Nick Clifton - - * config/arm/arm.h: Handle TARGET_CPU_iwmmxt. - Use #error to generate the message if TARGET_DEFAULT is not - recognised. - -2003-09-03 Richard Sandiford - - * config/mips/mips.h (MASK_UNUSED1): Remove. - (MASK_XGOT, TARGET_XGOT): Define. - (TARGET_SWITCHES): Add an entry for -mxgot. - (ASM_SPEC): Map -mxgot to -xgot. - * config/mips/mips.c (mips_symbol_insns): Use TARGET_XGOT to decide - whether we're using a big-GOT sequences. - (mips_legitimize_const_move, mips_expand_call): Likewise. - (override_options): Revert 2003-01-09 change. - * doc/invoke.texi: Document -mxgot. - -2003-09-02 Jason Merrill - - * config/sol2.h (NO_IMPLICIT_EXTERN_C): Define here. - * config/sparc/sol2.h: Not here. - -2003-09-02 Roger Sayle - - * expr.c (expand_expr): The code following both_summands performs - the same task as simplify_gen_binary. Replace all gotos to - both_summands with a call to simplify_gen_binary and delete the - now unused label. - -2003-09-02 Jason Merrill - - PR c++/7327 - * config/sparc/sol2.h (NO_IMPLICIT_EXTERN_C): Define. - -2003-09-02 Jeff Sturm - - * cgraphunit.c (record_call_1): Use walk_tree_without_duplicates. - (cgraph_optimize_function): Set current_function_decl to the - fndecl we're integrating from. - -2003-09-02 Kaveh R. Ghazi - - * builtins.def: Break out _Complex math functions into their - own category. - -2003-09-02 Andreas Jaeger - - * langhooks-def.h (LANG_HOOKS_RTL_EXPAND_STMT): Cast properly. - -2003-09-02 Josef Zlomek - - * cfgbuild.c (compute_outgoing_frequencies): Use NOTE instead of - finding the note again. - -2003-09-02 Nathanael Nerode - - * config.gcc: Remove host-specific rewrites of target_alias. - -2003-09-01 Mark Mitchell - - * Makefile.in (genprogs): Fix typo. - - * Makefile.in (gencheck.o): Remove build commands. - (dummy-conditions.o): Likewise. - (read-rtl.o): Likewise. - (gensupport.o): Likewise. - (genconfig$(build_exeext)): Remove rule. - (genconfig.o): Remove build commands. - (genflags$(build_exeext)): Remove rule. - (genflags.o): Remove build commands. - (gencodes$(build_exeext)): Remove rule. - (gencodes.o): Remove build commands. - (genconstants.o): Remove build commands. - (genemit$(build_exeext)): Remove rule. - (genemit.o): Remove build commands. - (genrecog$(build_exeext)): Remove rule. - (genrecog.o): Remove build commands. - (genextract$(build_exeext)): Remove rule. - (genextract.o): Remove build commands. - (genpeep$(build_exeext)): Remove rule. - (genpeep.o): Remove build commands. - (genattr$(build_exeext)): Remove rule. - (genattr.o): Remove build commands. - (genprognames): New variable. - (genprogs): Likewise. - (genobjs): Likewise. - (genprogs): New rule. - (genobjs): Likewise. - (genattrtab.o): Remove build commands. - (genautomata.o): Likewise. - (genoutput$(build_exeext)): Remove rule. - (genoutput.o): Remove build commands. - (gengenrtl.o): Likewise. - (genpreds.o): Likewise. - (gengtype.o): Likewise. - (genconditions.o): Likewise. - (gen-protos.o): Likewise. - (scan.o): Likewise. - (fix-header.o): Likewise. - (scan-decls.o): Likewise. - (check-g++): Combine with other check targets. - (check-gcc): Likewise. - (check-g77): Likewise. - (check-objc): Likewise. - -2003-09-01 Nathanael Nerode - - * config.gcc: Remove host-specific stuff which is unused here - since the introduction of config.host. - - * doc/fragments.texi: Mention config.host. - * doc/sourcebuild.texi: Mention config.host. Give brief descriptions - of config.build, config.host, and config.gcc. - -2003-09-01 Zack Weinberg - - * c-decl.c (pushdecl): Don't put variables on - C_TYPE_INCOMPLETE_VARS of a type unless that type is itself - incomplete. - -2003-09-01 Nathanael Nerode - - * config.host: New file. - * config.gcc: Remove some host-specific stuff and some - logic needed only for repeated invocation. - * configure.in: Use config.host. - * configure: Regenerate. - -2003-09-01 Josef Zlomek - - * c-typeck.c (build_binary_op): Kill BIT_ANDTC_EXPR. - * convert.c (convert_to_integer): Kill BIT_ANDTC_EXPR. - * fold-const.c (int_const_binop): Kill BIT_ANDTC_EXPR. - (fold): Kill BIT_ANDTC_EXPR and label bit_and. - * tree.def (BIT_ANDTC_EXPR): Kill. - -2003-08-31 Nathanael Nerode - - * configure.in: Remove uses of "for x in .. ${foo}" idiom. - * configure: Regenerate. - - * config.gcc: Remove references to install_headers_dir, now unused - since introduction of config.build. - * config.gcc (i860-*-sysv4*): Don't set unused USG, SVR3 defines. - - * doc/fragments.texi, doc/sourcebuild.texi: Mention new file - config.build. - - * config.build: New file. - * config.gcc: Remove some build-specific stuff. - * configure.in: Use config.build. - * configure: Regnerate. - -2003-08-31 Steven Bosscher - Roger Sayle - - PR middle-end/11823 - * stmt.c (expand_end_case_type): Only use jump tables for dense - switch statements when optimizing for size. - -2003-08-31 Olivier Hainque - - * builtins.c (expand_builtin_setjmp): Use emit_jump to jump around - the != 0 case, which ensures pending stack adjustments are flushed. - -2003-08-30 Zack Weinberg - - * configure.frag: Delete file. - * configure.in: Rename the substitution variables - dep_host_xmake_file and dep_tmake_file to xmake_file and - tmake_file respectively. Do not expand $srcdir in the - value of these; leave that for Make. Introduce a new - substitution varaible, all_lang_makefrags, which lists - subdirectory Make-lang.in files; exclude these from - all_lang_makefiles, which is now only for subdirectory - outputs. Do not invoke configure.frag. Do not set nor - AC_SUBST_FILE target_overrides, host_overrides, or - language_fragments. Create build subdirectories in - config.status extra commands. - * configure: Regenerate. - * Makefile.in: Update substitutions to match changes to - configure. Use include directives instead of @-insertions - to read in host, target, and language fragments. - (Makefile rule): Do not invoke configure.frag. Do not copy - config.status to config.run before executing it. Set - CONFIG_HEADERS and CONFIG_FILES so that only Makefile gets - regenerated. - (cstamp-h rule): Set CONFIG_FILES as well as CONFIG_HEADERS. - -2003-08-30 Zack Weinberg - - * c-tree.h: Delete COMPARE_DIFFERENT_TU from enumeration. - * c-typeck.c (same_translation_unit_p): New function. - (comptypes): Use it instead of flags parameter to identify - structure types from different translation units. - * c-decl.c (duplicate_decls): Always call comptypes with - COMPTYPE_STRICT flags argument. - (c_reset_state): Set BLOCK_SUPERCONTEXT of the block formed - to file_scope_decl. - -2003-08-30 Zack Weinberg - - * c-tree.h (C_TYPE_INCOMPLETE_VARS): New macro. - * c-decl.c (struct c_scope): Remove "incomplete" field. - (pushdecl): Attach variables with incomplete types to - the TYPE_MAIN_VARIANT of the incomplete type in question. - (finish_struct): Look at C_TYPE_INCOMPLETE_VARS for variables - to complete, not at current_scope->incomplete. All such - variables do need completion. - -2003-08-30 Richard Earnshaw - Nicolas Pitre - - * arm/lib1funcs.asm (RETCOND): Delete. - (RETLDM): New assembler macro. Use it for returning with ldm/ldr. - (ARM_LDIV0, THUMB_LDIV0): Collapse multiple definitions. - (__ARM_ARCH__): Move here from ieee754-?f.S. - (RET, RETc): Clean up definitions. - (DIV_FUNC_END): Renamed from FUNC_END. All uses changed. - (FUNC_END): New macro that marks the end of any function. - (ARM_FUNC_START): New macro that allows an assembler routine to be - implemented in ARM code even if a Thumb-only build. - Unconditionally include ieee754-?f.S. - * arm/ieee754-df.S: Delete macros moved to lib1funcs.asm. - Mark ends of functions. - Split into separate conditionally-compiled units. - Use RETLDM to return from routines. - * arm/ieee754-sf.S: Similarly. - * t-arm-elf (LIB1ASMFUNCS): Remove _ieee754_dp and _ieee754_sp. - Add _negdf2 _addsubdf3 _muldivdf3 _cmpdf2 _unorddf2 _fixdfsi - _truncdfsf2 _negsf2 _addsubsf3 _muldivsf3 _cmpsf2 _unordsf2 - _fixsfsi and _fixunssfsi. - - * arm/ieee754-df.S (__muldf3): Fix bug when result of a - multiplication underflows to zero. - (__adddf3): Fix bug when using VFP ordering on little-endian - processors. - (__fixdfsi): Use rrx to extract the carry into a register instead of - MRS instruction. Optimize later use of result. - * arm/ieee754-sf.S (__fixsfsi): Likewise. - (__fixunssfsi): Use a better sequence for handling negative-or-zero. - -2003-08-29 Richard Henderson - - * tree-optimize.c: New file. - * Makefile.in (OBJS-archive): Add tree-optimize.o. - (tree-optimize.o): New. - * c-decl.c (store_parm_decls): Use allocate_struct_function. - (finish_function): Don't free_after_parsing or free_after_compilation. - (set_save_expr_context): Move to tree-optimize.c. - (c_expand_body_1): Use tree_rest_of_compilation. - * c-lang.c (LANG_HOOKS_RTL_EXPAND_STMT): New. - * objc/objc-lang.c (LANG_HOOKS_RTL_EXPAND_STMT): New. - * c-objc-common.c (expand_deferred_fns): Don't emit unused inlines; - iterate until closure. - * langhooks-def.h (LANG_HOOKS_RTL_EXPAND_START, - LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END): New. - (LANG_HOOKS_RTL_EXPAND_INITIALIZER): New. - * langhooks.h (struct lang_hooks_for_rtl_expansion): New. - * toplev.h (tree_rest_of_compilation): Declare it. - -2003-08-29 Richard Henderson - - * function.h (struct function): Add rtl_inline_init, saved_for_inline. - * integrate.c (save_for_inline): Set saved_for_inline. - * c-semantics.c (genrtl_scope_stmt): Check it. - * toplev.c (wrapup_global_declarations): Check it. - (rest_of_handle_inlining): Set and check rtl_inline_init. - (rest_of_compilation): Remove out of date comment. - -2003-08-29 Richard Henderson - - * function.c (allocate_struct_function): New, split out of ... - (prepare_function_start, init_function_start): ... here. - * expr.c (init_expr): Use ggc_alloc_cleared. - * stmt.c (init_stmt_for_function): Likewise. - * tree.h (allocate_struct_function): Declare. - -2003-08-29 Nathanael Nerode - - * config.gcc: Don't use negated character class in shell case - clause. - -2003-08-29 Richard Henderson - - * function.h (struct function): Move function_frequency and - max_jumptable_ents before start of bit field members. - -2003-08-29 Richard Henderson - - * builtins.c (expand_builtin_constant_p): Check cse_not_expected here, - (fold_builtin_constant_p) ... not here. - -2003-08-29 Richard Henderson - - * c-tree.h (C_DECL_FILE_SCOPE): Move ... - * tree.h (DECL_FILE_SCOPE_P): ... here, and rename. - * c-decl.c, c-objc-common.c, c-typeck.c: Update to match. - -2003-08-29 Kaveh R. Ghazi - - * builtins.def: Fix typos. - (ATTR_MATHFN_FPROUNDING_STORE): New macro. - (BUILT_IN_FREXP, BUILT_IN_FREXPF, BUILT_IN_FREXPL, BUILT_IN_MODF, - BUILT_IN_MODFF, BUILT_IN_MODFL, BUILT_IN_REMQUO, BUILT_IN_REMQUOF, - BUILT_IN_REMQUOL, BUILT_IN_SINCOS, BUILT_IN_SINCOSF, - BUILT_IN_SINCOSL): Use ATTR_MATHFN_FPROUNDING_STORE. - - * builtins.def (BUILT_IN_ERFC, BUILT_IN_ERFCF, BUILT_IN_ERFCL): - Use ATTR_MATHFN_FPROUNDING_ERRNO. - -2003-08-29 Nathanael Nerode - - * config.gcc (i386-*-vsta): Fix obvious bogosity. - - * fixinc/inclhack.def: Remove special cases for unsupported - PTX 1 and PTX 2 (including i[34567]86-sequent-sysv3). - * fixinc/fixincl.x: Regenerate. - -2003-08-29 Mark Mitchell - - * Makefile.in (cpp.info): Just state dependencies. - (gcc.info): Likewise. - (gccint.info): Likewise. - (gccinstall.info): Likewise. - (cppinternals.info): Likewise. - (cpp.dvi): Likewise. - (gcc.dvi): Likewise. - (gccint.dvi): Likewise. - (gccinstall.dvi): Likewise. - (cppinternals.dvi): Likewise. - (gcov.1): Likewise. - (cpp.1): Likewise. - (gcc.1): Likewise. - (gfdl.7): Likewise. - (gpl.7): Likewise. - (fsf-funding.7): Likewise. - ($(objdir)/%.info): New pattern rule. - (%.dvi): Likewise. - -2003-08-29 Kelley Cook - - * Makefile.in (restage1): Pass BOOT_CFLAGS to recursive make. - (restage2): Likewise. - (restage3): Likewise. - (restage4): Likewise. - (restageprofile): Likewise. - (restagefeedback): Likewise. - (bubblestrap): Likewise. - -2003-08-29 Nathanael Nerode - - * config.gcc: Narrow unsupported target match to avoid clobbering - i?86-sequent-sysv4*. - -2003-08-29 Kaveh R. Ghazi - - * builtins.c (mathfn_built_in): Handle new math builtins. - -2003-08-28 Per Bothner - - Fix (hopefully temporary) for breakage caused by my 08-21 patch. - * cpplex.c (_cpp_get_fresh_line): Check for null buffer. - (_cpp_lex_buffer): Likewise. - * cpptrad.c (_cpp_read_logical_line_trad): Likewise. - -2003-08-28 Ulrich Weigand - - * config/s390/s390.md ("*mulsi3_sign"): New insn. - ("mulsidi3" expander, "mulsi_6432" insn): Remove, replace by ... - ("mulsidi3"): ... this new insn. - ("umulsidi3"): New insn. - ("divmoddi3", "divmodtidi3", "divmodtisi3"): Simplify by using - mixed-mode matching constraints. - ("udivmodsi4", "udivmoddisi3"): New insns. - ("udivsi3", "umodsi3"): Use only in ESA/390 mode. - -2003-08-28 Kaveh R. Ghazi - - * builtin-types.def (BT_INT_PTR, BT_FLOAT_PTR, BT_DOUBLE_PTR, - BT_LONGDOUBLE_PTR, BT_FN_FLOAT_FLOAT_FLOATPTR, - BT_FN_DOUBLE_DOUBLE_DOUBLEPTR, - BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLEPTR, - BT_FN_FLOAT_FLOAT_INTPTR, BT_FN_DOUBLE_DOUBLE_INTPTR, - BT_FN_LONGDOUBLE_LONGDOUBLE_INTPTR, - BT_FN_FLOAT_FLOAT_FLOAT_INTPTR, BT_FN_DOUBLE_DOUBLE_DOUBLE_INTPTR, - BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE_INTPTR, - BT_FN_VOID_FLOAT_FLOATPTR_FLOATPTR, - BT_FN_VOID_DOUBLE_DOUBLEPTR_DOUBLEPTR, - BT_FN_VOID_LONGDOUBLE_LONGDOUBLEPTR_LONGDOUBLEPTR): New. - * builtins.def (BUILT_IN_FREXP, BUILT_IN_FREXPF, BUILT_IN_FREXPL, - BUILT_IN_MODF, BUILT_IN_MODFF, BUILT_IN_MODFL, BUILT_IN_REMQUO, - BUILT_IN_REMQUOF, BUILT_IN_REMQUOL, BUILT_IN_SINCOS, - BUILT_IN_SINCOSF, BUILT_IN_SINCOSL): New. - * tree.c: Assign new type_nodes. - * tree.h (tree_index): Add TI_FLOAT_PTR_TYPE, TI_DOUBLE_PTR_TYPE, - TI_LONG_DOUBLE_PTR_TYPE, TI_INTEGER_PTR_TYPE. - (float_ptr_type_node, double_ptr_type_node, - long_double_ptr_type_node, integer_ptr_type_node): New type_nodes. - - * doc/extend.texi: Document new builtins. - -2003-08-28 Kaveh R. Ghazi - - * builtin-types.def (BT_FN_FLOAT_INT_FLOAT, - BT_FN_DOUBLE_INT_DOUBLE, BT_FN_LONGDOUBLE_INT_LONGDOUBLE): New. - - * builtins.def (BUILT_IN_ERF, BUILT_IN_ERFC, BUILT_IN_ERFCF, - BUILT_IN_ERFCL, BUILT_IN_ERFF, BUILT_IN_ERFL, BUILT_IN_GAMMA, - BUILT_IN_GAMMAF, BUILT_IN_GAMMAL, BUILT_IN_J0, BUILT_IN_J0F, - BUILT_IN_J0L, BUILT_IN_J1, BUILT_IN_J1F, BUILT_IN_J1L, - BUILT_IN_JN, BUILT_IN_JNF, BUILT_IN_JNL, BUILT_IN_LGAMMA, - BUILT_IN_LGAMMAF, BUILT_IN_LGAMMAL, BUILT_IN_SIGNIFICAND, - BUILT_IN_SIGNIFICANDF, BUILT_IN_SIGNIFICANDL, BUILT_IN_TGAMMA, - BUILT_IN_TGAMMAF, BUILT_IN_TGAMMAL, BUILT_IN_Y0, BUILT_IN_Y0F, - BUILT_IN_Y0L, BUILT_IN_Y1, BUILT_IN_Y1F, BUILT_IN_Y1L, - BUILT_IN_YN, BUILT_IN_YNF, BUILT_IN_YNL): New. - - * doc/extend.texi: Document new builtins. - -2003-08-28 Nathanael Nerode - - * fixinc/mkfixinc.sh: Remove special case code for unsupported - variants of i?86, powerpcle, and thumb. - * fixinc/mkfixinc.sh: Remove special case code for unsupported - arm and hppa variants. - -2003-08-28 Kaveh R. Ghazi - - * builtin-types.def (BT_FN_INT_FLOAT, BT_FN_INT_DOUBLE, - BT_FN_INT_LONGDOUBLE, BT_FN_LONG_FLOAT, BT_FN_LONG_DOUBLE, - BT_FN_LONG_LONGDOUBLE, BT_FN_LONGLONG_FLOAT, - BT_FN_LONGLONG_DOUBLE, BT_FN_LONGLONG_LONGDOUBLE, - BT_FN_FLOAT_FLOAT_LONGDOUBLE, BT_FN_DOUBLE_DOUBLE_LONGDOUBLE, - BT_FN_FLOAT_FLOAT_INT, BT_FN_DOUBLE_DOUBLE_INT, - BT_FN_LONGDOUBLE_LONGDOUBLE_INT, BT_FN_FLOAT_FLOAT_LONG, - BT_FN_DOUBLE_DOUBLE_LONG, BT_FN_LONGDOUBLE_LONGDOUBLE_LONG, - BT_FN_FLOAT_FLOAT_FLOAT_FLOAT, BT_FN_DOUBLE_DOUBLE_DOUBLE_DOUBLE, - BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE): New. - - * builtins.def (BUILT_IN_ACOS, BUILT_IN_ACOSF, BUILT_IN_ACOSH, - BUILT_IN_ACOSHF, BUILT_IN_ACOSHL, BUILT_IN_ACOSL, BUILT_IN_ASIN, - BUILT_IN_ASINF, BUILT_IN_ASINH, BUILT_IN_ASINHF, BUILT_IN_ASINHL, - BUILT_IN_ASINL, BUILT_IN_ATANH, BUILT_IN_ATANHF, BUILT_IN_ATANHL, - BUILT_IN_CBRT, BUILT_IN_CBRTF, BUILT_IN_CBRTL, BUILT_IN_COPYSIGN, - BUILT_IN_COPYSIGNF, BUILT_IN_COPYSIGNL, BUILT_IN_COSH, - BUILT_IN_COSHF, BUILT_IN_COSHL, BUILT_IN_DREM, BUILT_IN_DREMF, - BUILT_IN_DREML, BUILT_IN_EXP10, BUILT_IN_EXP10F, BUILT_IN_EXP10L, - BUILT_IN_EXP2, BUILT_IN_EXP2F, BUILT_IN_EXP2L, BUILT_IN_EXPM1, - BUILT_IN_EXPM1F, BUILT_IN_EXPM1L, BUILT_IN_FDIM, BUILT_IN_FDIMF, - BUILT_IN_FDIML, BUILT_IN_FMA, BUILT_IN_FMAF, BUILT_IN_FMAL, - BUILT_IN_FMAX, BUILT_IN_FMAXF, BUILT_IN_FMAXL, BUILT_IN_FMIN, - BUILT_IN_FMINF, BUILT_IN_FMINL, BUILT_IN_HYPOT, BUILT_IN_HYPOTF, - BUILT_IN_HYPOTL, BUILT_IN_ILOGB, BUILT_IN_ILOGBF, BUILT_IN_ILOGBL, - BUILT_IN_LDEXP, BUILT_IN_LDEXPF, BUILT_IN_LDEXPL, BUILT_IN_LLRINT, - BUILT_IN_LLRINTF, BUILT_IN_LLRINTL, BUILT_IN_LLROUND, - BUILT_IN_LLROUNDF, BUILT_IN_LLROUNDL, BUILT_IN_LOG10, - BUILT_IN_LOG10F, BUILT_IN_LOG10L, BUILT_IN_LOG1P, BUILT_IN_LOG1PF, - BUILT_IN_LOG1PL, BUILT_IN_LOG2, BUILT_IN_LOG2F, BUILT_IN_LOG2L, - BUILT_IN_LOGB, BUILT_IN_LOGBF, BUILT_IN_LOGBL, BUILT_IN_LRINT, - BUILT_IN_LRINTF, BUILT_IN_LRINTL, BUILT_IN_LROUND, - BUILT_IN_LROUNDF, BUILT_IN_LROUNDL, BUILT_IN_NEXTAFTER, - BUILT_IN_NEXTAFTERF, BUILT_IN_NEXTAFTERL, BUILT_IN_NEXTTOWARD, - BUILT_IN_NEXTTOWARDF, BUILT_IN_NEXTTOWARDL, BUILT_IN_POW10, - BUILT_IN_POW10F, BUILT_IN_POW10L, BUILT_IN_REMAINDER, - BUILT_IN_REMAINDERF, BUILT_IN_REMAINDERL, BUILT_IN_RINT, - BUILT_IN_RINTF, BUILT_IN_RINTL, BUILT_IN_SCALB, BUILT_IN_SCALBF, - BUILT_IN_SCALBL, BUILT_IN_SCALBLN, BUILT_IN_SCALBLNF, - BUILT_IN_SCALBLNL, BUILT_IN_SCALBN, BUILT_IN_SCALBNF, - BUILT_IN_SCALBNL, BUILT_IN_SINH, BUILT_IN_SINHF, BUILT_IN_SINHL, - BUILT_IN_TANH, BUILT_IN_TANHF, BUILT_IN_TANHL): New. - - * doc/extend.texi: Document new builtins. - -2003-08-28 Ulrich Weigand - - * config/s390/s390.c (legitmate_constant_p): Use LARL on - zSeries machines even in 31-bit addressing mode. - (legitimate_reload_constant_p): Likewise. - (legitimize_pic_address): Likewise. - (legitimize_tls_address): Likewise. - (s390_split_branches): Likewise. - (s390_dump_pool): Likewise. - (s390_mainpool_finish): Likewise. - (s390_chunkify_start): Likewise. - (s390_select_rtx_section): Likewise. - * config/s390/s390.md ("doloop_si"): Likewise. - ("pool_start_31", "pool_end_31"): Likewise. - ("pool_start_64", "pool_end_64"): Likewise. - ("main_base_31_small", "main_base_31_large"): Likewise. - ("main_base_64"): Likewise. - ("reload_base_31", "reload_base_64"): Likewise. - ("*movsi_larl"): New insn. - ("cjump", "icjump"): Use long branches on zSeries machines. - ("jump"): Likewise. - ("call"): Use BRASL on zSeries machines. - ("call_value", "call_value_tls"): Likewise. - ("brasl", "bras", "basr_64", "basr_31", "bas_64", "bas_31"): Remove - and replace by ... - ("*bras", "*brasl", "*basr") ... these new insns. - ("brasl_r", "bras_r", "basr_64_r", "basr_31_r", "bas_64_r", - "bas_31_r"): Remove and replace by ... - ("*bras_r", "*brasl_r", "*basr_r") ... these new insns. - ("brasl_tls", "bras_tls", "basr_64_tls", "basr_31_tls", - "bas_64_tls", "bas_31_tls"): Remove and replace by ... - ("*bras_tls", "*brasl_tls", "*basr_tls") ... these new insns. - ("*return_si", "*return_di"): Remove and replace by ... - ("*return"): ... this new insn. - ("rotlsi3"): Allow on zSeries machines. - - * config/s390/s390.c (legitimize_reload_constant_p): Use - LL/LH type instructions in z/Architecture mode. - * config/s390/s390.md ("*movsi_lli"): Likewise. - ("*andsi3_ni", "*andhi3_ni", "*andqi3_ni"): Likewise. - ("*iorsi3_ni", "*iorhi3_ni", "*iorqi3_ni"): Likewise. - ("*extendqisi2"): Use LB in z/Architecture mode. - ("*zero_extendqisi2_64", "*zero_extendqisi2_31"): Use LLGC in - z/Architecture mode. - ("zero_extendqihi2", "*zero_extendqihi2_64", "*zero_extendqihi2_31"): - Likewise. - - * config/s390/s390.md ("*tmdi_ext"): Allow in both 64-bit - and 31-bit mode. - ("ptr_extend"): Allow only in 64-bit mode. - -2003-08-27 Daniel Jacobowitz - - * gcc.c (STANDARD_EXEC_PREFIX, STANDARD_STARTFILE_PREFIX) - (TOOLDIR_BASE_PREFIX, STANDARD_BINDIR_PREFIX): Remove unnecessary - definitions. - (main): Only use standard_startfile_prefix if native. - * doc/tm.texi (STANDARD_STARTFILE_PREFIX): Update. - -2003-08-27 Per Bothner - - * cpperror.c (print_location): Don't check for !pfile->buffer. That - test fails following my 08-21 change, and it seems unnecessary anyway. - (cpp_error): Likewise. - -2003-08-27 Jason Merrill - - * real.c (do_multiply): Initialize with memset. - -2003-08-27 Zdenek Dvorak - - * gcov.c (typedef struct arc_info): New field cs_count. - (accumulate_line_counts): Find cycles correctly. - -2003-08-27 Ulrich Weigand - - * config/s390/s390.c (struct machine_function): Remove member - literal_pool_label. - (s390_optimize_prolog): Replace TEMP_REG argument with - TEMP_USED and BASE_USED. Do not check get_pool_size (). - (general_s_operand): Accept all immediates before reload if - ALLOW_IMMEDIATE. If not ALLOW_IMMEDIATE, reject literal pool - references. - (s390_output_symbolic_const): Remove UNSPEC_LTREL_OFFSET handling. - (find_constant_pool_ref): Ignore UNSPECV_POOL_ENTRY insns. - (s390_alloc_pool): New function. - (s390_new_pool): Call it. - (s390_dump_pool): Add REMOTE_LABEL argument. - (s390_chunkify_start): Add BASE_REG argument. Do not check - get_pool_size (). - (s390_chunkify_finish): Add BASE_REG argument. Adapt - s390_dump_pool call. - (s390_pool_count, s390_nr_constants): Remove. - (s390_output_constant_pool): Remove. - (s390_mainpool_start): New function. - (s390_mainpool_finish): New function. - (s390_mainpool_cancel): New function. - (s390_reorg): Implement main literal pool handling. - (s390_emit_prologue): Emit main_pool placeholder instead of - literal_pool_31 / literal_pool_64 insns. - * config/s390/s390.h (s390_pool_count, s390_nr_constants): Remove. - (ASM_OUTPUT_POOL_PROLOGUE, ASM_OUTPUT_SPECIAL_POOL_ENTRY): Remove. - * config/s390/s390.md (UNSPEC_MAIN_BASE): New symbolic constant. - ("main_base_31_small", "main_base_31_large"): New insns. - ("main_base_64", "main_pool"): New insns. - ("literal_pool_31", "literal_pool_64"): Remove. - -2003-08-27 Nathanael Nerode - - * fixinc/inclhack.def (ptx_netswap): New disabled fix, ported from - fixinc.ptx. - * fixinc/inclhack.def (undefine_null): Don't generate \r characters. - Prettify a little. - * fixinc/fixincl.x: Regenerate. - -2003-08-27 Richard Earnshaw - - * lib1funcs.asm (L_ieee754_sp): New. Include ieee754-sf.S. - (L_ieee754_dp): New. Include ieee754-df.S. - * arm/ieee754-sf.S: Rework to allow interworking, calling from Thumb, - and compilation in apcs-26 mode. - * arm/ieee754-df.S: Likewise. - * t-arm-elf (DPBIT, FPBIT, fp-bit.c dp-bit.c): Delete rules - (LIB1ASMFUNCS): Add _ieee754_sp and _ieee754_dp targets. - -2003-08-27 Nicolas Pitre - - * arm/ieee754-sf.S: New. - * arm/ieee754-df.S: New. - -2003-08-27 Jakub Jelinek - - * builtins.c (expand_builtin_expect_jump): Save pending_stack_adjust - and restore it if returning NULL. - -2003-08-27 Richard Sandiford - - * calls.c (initialize_argument_information): If an argument has no - stack space associated with it, and BLOCK_REG_PADDING is defined, - use it to decide at which end the argument should be padded. - * function.c (assign_parms): Allocate BLKmode stack slots. - * config/mips/mips-protos.h (mips_pad_arg_upward): Declare. - (mips_pad_reg_upward): Declare. - * config/mips/mips.h (PAD_VARARGS_DOWN): Use FUNCTION_ARG_PADDING. - (CUMULATIVE_ARGS): Remove num_adjusts and adjusts. - (FUNCTION_ARG_PADDING): Use mips_pad_arg_upward. - (BLOCK_REG_PADDING): Use mips_pad_reg_upward. - * config/mips/mips.c (struct mips_arg_info): Remove struct_p. - (mips_expand_call): Remove code for generating structure shifts. - (mips_arg_info): Don't set struct_p. Don't set fpr_p for non-float - types unless using the EABI. - (function_arg_advance): Don't generate shift instructions. - (function_arg): Don't return them. Don't short-circuit the - check for double structure chunks for DFmode arguments. - (mips_pad_arg_upward, mips_pad_reg_upward): New functions. - (mips_expand_prologue): Remove code to emit structure shifts. - * config/mips/irix6-libc-compat.c: Remove workarounds for buggy - structure passing (inet_ntoa, inet_lnaof, inet_netof). Update - comments to say that only structure returns are a problem. - -2003-08-26 Nathanael Nerode - - * fixinc/tests/base/string.h, fixinc/tests/base/sys/regset.h: - Fix to match produced versions. - * fixinc/inclhack.def (longlong_t): New disabled test, ported - from fixinc.svr4. - * fixinc/inclhack.def (ptx_pwd_h): New disabled fix, ported - from fixinc.ptx. - * fixinc/inclhack.def (ptx_sys_mc_param_h): New disabled fix, - ported from fixinc.ptx. - -2003-08-26 Per Bothner - - * cpplib.h (struct cpp_token): Change type of field line to fileline. - (cpp_error_with_line): Use fileline for appropriate parameter. - * cpphash.h (struct cpp_macro): Change type of field line to fileline. - (struct cpp_reader): Likewise for fields line and directive_line. - (_cpp_begin_message): Use fileline for appropriate parameter. - * cpperror.c (print_location, _cpp_begin_message, cpp_error_with_line, - cpp_error): Use fileline for appropriate parameters and variables. - (print_location): New local lin, since it is not a fileline. - -2003-08-26 Roger Sayle - - PR middle-end/12002 - * tree.h (SCALAR_FLOAT_TYPE_P, COMPLEX_FLOAT_TYPE_P): New macros. - (FLOAT_TYPE_P): Define in terms of these two new macros. - * fold-const.c (fold ): Don't convert x+x into x*2.0 - for complex floating point types. - -2003-08-26 Ulrich Weigand - - * config/s390/s390.c (emit_prologue): Don't check literal pool size. - * config/s390/s390.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Call - s390_output_pool_entry. - -2003-08-26 Nathanael Nerode - - * fixinc/inclhack.def (svr4_preproc_lint_on, - svr4_preproc_lint_off, svr4_preproc_machine): New disabled - fixes, ported from fixinc.svr4. - -2003-08-26 Mark Mitchell - - * doc/install.texi (Prerequisites): Mention GNU make requirement. - - * Makefile.in (AR_FOR_TARGET): Export it. - (AR_CREATE_FOR_TARGET): Likewise. - (AR_FLAGS_FOR_TARGET): Likewise. - (AR_EXTRACT_FOR_TARGET): Likewise. - (AWK): Likewise. - (BUILD_PREFIX): Likewise. - (BUILD_PREFIX_1): Likewise. - (DESTDIR): Likewise. - (GCC_FOR_TARGET): Likewise. - (INCLUDES): Likewise. - (INSTALL_DATA): Likewise. - (LIB1ASMSRC): Likewise. - (LIBGCC2_CFLAGS): Likewise. - (MACHMODE_H): Likewise. - (NM_FOR_TARGET): Likewise. - (RANLIB_FOR_TARGET): Likewise. - (libsubdir): Likewise. - (slibdir): Likewise. - (ORDINARY_FLAGS_TO_PASS): Remove stuff that we're - exporting. - (libgcc.a): Don't pass them here. - (stmp-multilib): Or here. - (install-libgcc): Or here. - (install-multilib): Or here. - (POSTSTAGE1_FLAGS_TO_PASS): Or here. - (stage1_build): Or here. - -2003-08-26 Andreas Krebbel - - * config/s390/s390.md ("*llgt_sisi", "*llgt_sisi_split", "*llgt_didi", - "*llgt_didi_split", "*llgt_sidi", "*llgt_sidi_split"): New insns. - -2003-08-26 Andreas Krebbel - - * config/s390/s390.md ("*fmadddf", "*fmsubdf", - "*fmaddsf", "*fmsubsf"): New insns. - -2003-08-26 Roger Sayle - - * fold-const.c (fold ): Optimize (C1/X)*C2 into - (C1*C2)/X when unsafe math optimizations are allowed. - (fold ): Optimize C1/(X*C2) into (C1/C2)/X with unsafe - math optimizations. Minor code clean-ups. Recursively call - fold when constructing sub-expressions. - -2003-08-26 Roger Sayle - - * builtins.c (fold_builtin_bitop): New function to perform constant - folding of ffs, clz, ctz, popcount and parity builtin functions - and their long and long long variants (such as ffsl and ffsll). - (fold_builtin): fold_builtin_bitop when appropriate. - * simplify-rtx.c (simplify_unary_operation): Honor both - CLZ_DEFINED_VALUE_AT_ZERO and CTZ_DEFINED_VALUE_AT_ZERO when - evaluating clz and ctz at compile-time, for operands wider - than HOST_WIDE_INT. - -2003-08-26 Nathan Sidwell - - * builtins.c (build_function_call_expr): Don't set - TREE_SIDE_EFFECTS here. - * expr.c (emit_block_move_via_libcall): Likewise. - (clear_storage_via_libcall): Likewise. - * tree.c (build): Set TREE_SIDE_EFFECTS for non-const, non-pure - CALL_EXPRs. - - * gcse.c (is_too_expensive): New function. - (gcse_main, delete_null_pointer_checks, bypass_jumps): Use it. - -2003-08-25 Zack Weinberg - - * config.gcc (hppa*-*-hpux11*, ia64*-*-hpux*): Remove - commented-out logic to use DCE threads (if present), add - support for POSIX threads. - * config/ia64/hpux.h: Define CPP_SPEC to set appropriate - #defines for -pthread. Add -lpthread to LIB_SPEC when - -pthread. In both cases take -mt as a synonym for -pthread - for acc compatibility. - Define GTHREAD_USE_WEAK to 0. - * config/pa/pa-hpux11.h: Likewise for CPP_SPEC and LIB_SPEC. - Remove old logic for DCE threads from LIB_SPEC. - * config/pa/pa64-hpux.h: Define GTHREAD_USE_WEAK to 0. - -2003-08-25 Roger Sayle - - * builtins.c (expand_builtin_mathfn): Rearrange so that we only - return 0 for invalid argument types. Instead drop through to a - call of expand_call at the bottom of function. If op is SQRT, - try attaching a SQRT rtx as the REQ_EQUAL note of the libcall. - -2003-08-25 Richard Henderson - - * config/ia64/ia64.c (ia64_expand_tls_address): Properly truncate - result when op0 is SImode. - -2003-08-25 Nathanael Nerode - - * fixinc/inclhack.def (svr4_sighandler_type): New fix, ported - from fixinc.svr4. - * fixinc/fixincl.x: Regenerate. - * fixinc/tests/base/sys/signal.h: Regenerate. - -2003-08-25 Ulrich Weigand - - * combine.c (simplify_comparison): Re-enable widening of comparisons - with non-paradoxical subregs of non-REG expressions. - -2003-08-25 Ulrich Weigand - - * combine.c (distribute_notes): Handle REG_ALWAYS_RETURN. - -2003-08-25 Ulrich Weigand - - * combine.c (combine_simplify_rtx): Fix RTL sharing bug. - -2003-08-25 Gabriel Dos Reis - - * pretty-print.h (pp_maybe_newline_and_indent): New macro. - * c-pretty-print.h (c_pretty_printer): Now typedef to the - structure. Be consistent with pretty-print.h abd cxx-pretty-print.h - (struct c_pretty_print_info): Document. Add new fields. - (pp_type_specifier_seq): Rename from pp_c_type_specifier. - (pp_direct_abstract_declarator): New macro. - (pp_ptr_operator): Likewise. - (pp_simple_type_specifier): Likewise. - (pp_expression): Likewise. - (pp_parameter_list): Rename from pp_parameter_declaration. - * c-pretty-print.c (pp_c_whitespace): Now a function. - (pp_c_left_paren): Likewise. - (pp_c_right_paren): Likewise. - (pp_c_dot): Likewise. - (pp_c_ampersand): Likewise. - (pp_c_arrow): Likewise. - (pp_c_semicolon): Likewise. - (pp_c_type_cast): New function. - (pp_c_space_for_pointer_operator): Likewise. - (pp_c_call_argument_list): Likewise. - (pp_c_cv_qualifier): Adjust prototype. - (pp_c_type_qualifier_list): Likewise. - (pp_c_pointer): Likewise. Handle REFERENCE_TYPE here. - (pp_c_type_specifier): Rename from pp_c_simple_type_specifier. - Adjust to follow standard grammar. - (pp_c_specifier_qualifier_list): Adjusr prototype. Handle - REFERENCE_TYPE. Tidy. - (pp_c_parameter_type_list): Adjust prototype. Tidy. - (pp_c_parameter_declaration): Remove. - (pp_c_abstract_declarator): Adjust prototype. - (pp_c_direct_abstract_declarator): Likewise. - (pp_c_type_id): Likewise. - (pp_c_storage_class_specifier): Likewise. - (pp_c_function_specifier): Likewise. - (pp_c_declaration_specifiers): Likewise. - (pp_c_direct_declarator): Likewise. - (pp_c_declarator): Likewise. - (pp_c_declarator): Likewise. - (pp_c_declaration): Likewise. - (pp_c_attributes): Likewise. Tidy. - (pp_c_function_definition): Adjust prototype. - (pp_c_char): Likewise. - (pp_c_string_literal): Likewise. - (pp_c_integer_constant): Likewise. - (pp_c_character_constant): Likewise. - (pp_c_bool_constant): Likewise. - (pp_c_enumeration_constant): Likewise. - (pp_c_floating_constant): Likewise. - (pp_c_constant): Likewise. - (pp_c_identifier): Likewise. - (pp_c_primary_expression): Likewise. Remove TARGET_EXPR case. Tidy. - (pp_c_initializer): Adjust prototype. - (pp_c_init_declarator): Likewise. - (pp_c_initializer_list): Likewise. - (pp_c_id_expression): Likewise. - (pp_c_postfix_expression): Likewise. - (pp_c_expression_list): Likewise. - (pp_c_unary_expression): Likewise. - (pp_c_cast_expression): Likewise. - (pp_c_multiplicative_expression): Likewise. - (pp_c_additive_expression): Likewise. - (pp_c_shift_expression): Likewise. - (pp_c_relational_expression): Likewise. - (pp_c_equality_expression): Likewise. - (pp_c_and_expression): Likewise. - (pp_c_exclusive_or_expression): Likewise. - (pp_c_inclusive_or_expression): Likewise. - (pp_c_logical_and_expression): Likewise. - (pp_c_logical_or_expression): Likewise. - (pp_c_conditional_expression): Likewise. - (pp_c_assignment_expression): Likewise. - (pp_c_expression): Likewise. Tidy. - (pp_c_statement): Likewise. Document. - (pp_c_pretty_printer_init): Adjust prototype. Tidy. - - * c-lang.c (c_initialize_diagnostics): Update. - * c-common.h (strip_pointer_operator): Declare. - * c-common.c (strip_pointer_operator): Define. - -2003-08-25 Mark Mitchell - - PR c++/8795 - * tree.h (build_method_type_directly): Declare. - * c-common.c (handle_vector_size_attributes): Handle METHOD_TYPEs. - (vector_size_helper): Likewise. - * tree.c (build_method_type_directly): New function. - (build_method_type): Use it. - -2003-08-24 Richard Henderson - - * config/i386.i386.c (ix86_return_in_memory): Reformat. Return true - for 16-byte vector modes if sse not enabled; warn for abi change. - (ix86_value_regno): Only return xmm0 for 16-byte vector types. - -2003-08-24 Kazu Hirata - - * rtlanal.c (may_trap_p): Simplify an integer comparison. - -2003-08-24 Nathanael Nerode - - * fixinc/inclhack.def (AAB_svr4_replace_byteorder): Enhance - comment. Enable for DYNIX/ptx systems (when they switch to - regular fixincludes). - * fixinc/fixincl.x: Regenerate. - -2003-08-23 Jason Eckhardt - - * config/i860/t-i860: New. - * config.gcc (i860-*-sysv4*): Add t-i860 to tmake_file. - -2003-08-23 Jakub Jelinek - - * c-decl.c (pushdecl): Only put decls which finish_struct will do - something about onto incomplete chain. - (finish_struct): If not removing type from incomplete - list, update prev. - -2003-08-20 Jan Hubicka - - PR target/11369 - * i386.c (ix86_expand_carry_flag_compare): Validate operand. - - PR target/11031 - * i386.c (const_0_to_3_operand, const_0_to_7_operand, - const_0_to_15_operand, const_0_to_255_operand): New predicates. - * i386.h (PREDICATE_CODES): Add these. - * i386.c (pinsrw and pextrw patterns): Use them. - - PR target/10984 - * i386.c (ix86_expand_binop_builtin): Behave sanely for VOIDmodes. - - PR target/8869 - * expr.c (convert_modes): Deal properly with integer to vector - constant conversion. - - PR target/8871 - * i386.md (zero_extendsidi2*): Add MMX and SSE alternatives. - -2003-08-23 Ulrich Weigand - - * config/s390/s390.h (LOAD_EXTEND_OP): Remove. - * config/s390/s390.md ("movhi"): New expander; old insn renamed to ... - ("*movhi"): ... this. - ("movqi", "*movqi"): Likewise. - ("movqi_64"): Remove. - ("*zero_extendhisi2_31"): Change predicate to s_operand. - -2003-08-23 Dale Johannesen - * calls.c (emit_library_call_value_1): Fix obvious errors in - arguments to emit_group_store. - -2003-08-23 Jason Eckhardt - - * calls.c (emit_library_call_value_1): Remove code related - to LIBGCC_NEEDS_DOUBLE. - * config/stormy16/stormy16.h: Remove mention of LIBGCC_NEEDS_DOUBLE. - * doc/tm.texi: Likewise. - * system.h: Poison the LIBGCC_NEEDS_DOUBLE macro. - -2003-08-23 Richard Sandiford - - * config/mips/linux64.h (STARTFILE_PREFIX_SPEC): Remove. - -2003-08-23 Richard Sandiford - - * config/mips/mips.c (mips_setup_incoming_varargs): Handle o32 and o64 - as well. Put memory references in the varargs alias set. - (mips_expand_prologue): Remove varargs handling from here. - -2003-08-23 Ulrich Weigand - - * config/s390/s390.c (s390_expand_movstr, s390_expand_clrstr, - s390_expand_cmpmem, s390_output_constant_pool, s390_build_va_list, - s390_function_profiler, s390_output_mi_thunk): Use ISO C syntax - for function pointer calls. - * config/s390/s390.md ("*negdi2_31"): Likewise. - -2003-08-23 Roger Sayle - - * combine.c (apply_distributive_law): Correct comment. - -2003-08-23 Jason Eckhardt - - * config/i860/i860.h: Remove comment mentioning LIBGCC_NEEDS_DOUBLE. - -2003-08-22 Jason Eckhardt - - * config/i860/i860.c (i860_build_va_list): Create the va_decl - declaration. Document the va_list structure. - (i860_va_start): Initialize the va_list structure. - (i860_va_arg): Rewrite completely. - * config/i860/i860.h (LIBGCC_NEEDS_DOUBLE): Don't define. - * config/i860/varargs.asm: Do not allocate or initialize - a va_list. Return the address of the register save area. - -2003-08-22 Kazu Hirata - - * config/iq2000/iq2000.c: Fix comment typos. - * config/iq2000/iq2000.md: Likewise. - -2003-08-22 Kazu Hirata - - * config/iq2000/iq2000.c: Follow spelling conventions. - * config/iq2000/iq2000.h: Likewise. - * config/mn10300/mn10300.c: Likewise. - -2003-08-22 Jason Eckhardt - - * config/i860/i860.c (output_move_double): Don't set latehalf - to zero for CONST_INT (since it could be, e.g., -1). - - * config/i860/i860.h (REMSI3_LIBCALL): Replace this macro... - (MODSI3_LIBCALL): ...with this one. - (UREMSI3_LIBCALL): Replace this macro... - (UMODSI3_LIBCALL): ...with this one. - -2003-08-22 Jason Eckhardt - - * config/i860/i860-protos.h (output_delay_insn): Remove prototype. - (output_delayed_branch): Remove prototype. - (single_insn_src_p): Remove prototype. - * config/i860/i860.c (single_insn_src_p): Remove function. - (output_delayed_branch): Remove function. - (output_delay_insn): Remove function. - (va_start): Remove unconditional test and dead code, re-format. - Fix coding style and spelling problems in various comments. - * config/i860/i860.md (UNSPECV_BLOCKAGE): Define constant... - (blockage pattern): ...and use it here. - (all define_peephole patterns related to delayed branches): Remove. - Fix coding style and spelling problems in various comments. - -2003-08-22 Jason Eckhardt - - * config/i860/i860.c: Replace all occurrences of 'GNU CC' with 'GCC'. - Remove all uses of the PARAMS macro. Remove superflous prototypes. - Convert all function definitions from traditional to ISO C90 syntax. - * config/i860/i860-protos.h: Replace all occurrences of 'GNU CC' - with 'GCC'. Remove all uses of the PARAMS macro. - * config/i860/i860.h: Replace all occurrences of 'GNU CC' with 'GCC'. - * config/i860/i860.md: Likewise. - * config/i860/sysv4.h: Likewise. - * config/i860/varargs.asm: Likewise. - -2003-08-22 Jason Eckhardt - - * config/i860/i860-protos.h (i860_va_start): Remove 'stdarg_p' - argument. - (tdesc_section): Add prototype. - Update copyright dates. - * config/i860/i860.c: Include coretypes.h, tm.h, and toplev.h. - (TARGET_ASM_FUNCTION_PROLOGUE): Move definition to end of file. - (TARGET_ASM_FUNCTION_EPILOGUE): Likewise. - (targetm): Likewise. - (i860_output_function_prologue): Substitute HOST_WIDE_INT_PRINT_DEC - for '%d' where necessary. - (i860_va_start): Remove 'stdarg_p' argument. Make conditional checks - on 'stdarg_p' unconditional. Divide current_function_args_info.ints - by UNITS_PER_WORD when referencing (likewise for .floats). - (I860_SVR4_VARARGS): Rename... - (I860_SVR4_VA_LIST): ...to this. - Call build() with 't' rather than 'field'. - (i860_rtx_costs): New function. - (TARGET_RTX_COSTS): Define. - (i860_internal_label): New function. - (TARGET_ASM_INTERNAL_LABEL): Define. - (i860_file_start): New function. - Update copyright dates. - * config/i860/i860.h (CPP_PREDEFINES): Remove. - (TARGET_CPU_CPP_BUILTINS): Define. - (EXPAND_BUILTIN_VA_START): Remove 'stdarg' argument. - (CONST_COSTS): Remove (and move code to i860_rtx_costs). - (ASM_FILE_START): Remove. - (ASM_FILE_START_1): Remove. - (ASM_GLOBALIZE_LABEL): Remove. - (ASM_OUTPUT_INTERNAL_LABEL): Remove. - (ASM_OUTPUT_CASE_LABEL): Replace call of ASM_OUTPUT_INTERNAL_LABEL - with targetm.asm_out.internal_label. - Update copyright dates. - * config/i860/sysv4.h (USER_LABEL_PREFIX): Define. - (CPP_PREDEFINES): Remove. - (TARGET_OS_CPP_BUILTINS): Define. - (GLOBAL_ASM_OP): Define. - (ASM_FILE_START): Remove. - (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Define. - (TARGET_ASM_FILE_START): Define. - Update copyright dates. - -2003-08-22 Jason Eckhardt - - * gcc/config.gcc (i860-*-sysv4*): Add target. - * config/i860/i860-protos.h: New. - * config/i860/i860.c: New. - * config/i860/i860.h: New. - * config/i860/i860.md: New. - * config/i860/sysv4.h: New. - * config/i860/varargs.asm: New. - * config/i860/x-sysv4: New. - -2003-08-22 Jason Eckhardt - - * config/pa/pa.c: Replace 'GNU CC' with 'GCC'. - Remove all uses of PARAMS macro. - Convert all function definitions to ISO C90 syntax. - * config/pa/elf.h: Replace 'GNU CC' with 'GCC'. - * config/pa/fptr.c: Likewise. - * config/pa/lib2funcs.asm: Likewise. - * config/pa/long_double.h: Likewise. - * config/pa/milli64.S: Likewise. - * config/pa/pa-64.h: Likewise. - * config/pa/pa-hpux.h: Likewise. - * config/pa/pa-hpux10.h: Likewise. - * config/pa/pa-hpux11.h: Likewise. - * config/pa/pa-linux.h: Likewise. - * config/pa/pa-modes.def: Likewise. - * config/pa/pa-osf.h: Likewise. - * config/pa/pa-pro-end.h: Likewise. - * config/pa/pa.md: Likewise. - * config/pa/pa32-linux.h: Likewise. - * config/pa/pa64-linux.h: Likewise. - * config/pa/pa64-hpux.h: Likewise. - * config/pa/pa64-regs.h: Likewise. - * config/pa/quadlib.c: Likewise. - * config/pa/rtems.h: Likewise. - * config/pa/pa-protos.h: Replace 'GNU CC' with 'GCC' and remove - all uses of the PARAMS macro. - * config/pa/pa.h: Likewise. - * config/pa/som.h: Likewise. - - * config/iq2000/iq2000.c: Replace 'GNU CC' with 'GCC'. - Remove all uses of PARAMS macro. - Convert all function definitions to ISO C90 syntax. - * config/iq2000-protos.h: Replace 'GNU CC' with 'GCC'. - Remove all uses of PARAMS macro. - * config/iq2000.h: Remove all uses of PARAMS macro. - * config/iq2000/iq2000.md: Replace 'GNU CC' with 'GCC'. - -2003-08-23 Ulrich Weigand - - * config/s390/s390-protos.h (s390_output_pool_entry): Declare. - * config/s390/s390.c (gen_consttable): Remove. - (s390_dump_pool): Use UNSPECV_POOL_ENTRY for pool entry insns. - (s390_output_pool_entry): New function. - * config/s390/s390.md (UNSPECV_POOL_QI, UNSPECV_POOL_HI, - UNSPECV_POOL_SI, UNSPECV_POOL_DI, UNSPECV_POOL_TI, - UNSPECV_POOL_SF, UNSPECV_POOL_DF): Remove, replace by ... - (UNSPECV_POOL_ENTRY): ... this new constant. - ("consttable_qi", "consttable_hi", "consttable_si", "consttable_di", - "consttable_ti", "consttable_sf", "consttable_df"): Remove ... - ("*pool_entry"): ... and replace by this new insn. - ("literal_pool_31"): Do not emit anchor label if pool empty. - - * config/s390/s390.c (struct machine_function): Add save_return_addr_p. - (s390_optimize_prolog): Save RETURN_REGNUM if save_return_addr_p. - (s390_fixup_clobbered_return_reg): Remove. - (s390_reorg): Don't call s390_fixup_clobbered_return_reg. - (s390_return_addr_rtx): Always retrieve return address from save area - slot. Use save_return_addr_p to force slot to be filled. - (s390_emit_prologue): Remove has_hard_reg_initial_val test. - -2003-08-22 Chris Demetriou - - * config/mips/mips.h (MASK_FIX_SB1, TARGET_FIX_SB1): New defines. - (TARGET_SWITCHES): Add -mfix-sb1 and -mno-fix-sb1. - * config/mips/mips.md (divdf3, divsf3, sqrtdf2, sqrtsf2): Work - around SB-1 errata if TARGET_FIX_SB1 is set. - (recip.d insn, recip.s insn, rsqrt.d insn, rsqrt.s insn): Likewise. - * doc/invoke.texi: Document MIPS -mfix-sb1 and -mno-fix-sb1. - -2003-08-22 Roger Sayle - - * hashtable.c (ht_expand): Avoid calculating rehash for the common - case that the first probe hits an empty hash table slot. - -2003-08-22 Mark Mitchell - - * config/ia64/hpux.h (SUPPORTS_INIT_PRIORITY): Define to 0. - -2003-08-22 Mark Mitchell - - * config/ia64/ia64.md (*ptr_extend_plus_1): Rename to ... - (ptr_extend_plus_imm): ... this. - * config/ia64/ia64.c (addp4_optimize_ok): Do not disable addp4 - optimization in C++. - (ia64_output_mi_thunk): Support ILP32 mode. - -2003-08-22 Bernardo Innocenti - - * gcc/config/m68k/m68k.c (m68k_coff_asm_named_section): remove unused - function. - * gcc/config/m68k/m68k.c (-m68k_svr3_asm_out_constructor): likewise. - -2003-08-22 Kazu Hirata - - * config/i386/i386.c (const_int_1_operand): Simplify an - integer comparison. - -2003-08-22 Alan Modra - - * config/fp-bit.c: Specify config/ dir for include of fp-bit.h. - * config/rs6000/ppc64-fp.c: Likewise. - -2003-08-22 Kazu Hirata - - * cfgcleanup.c: Fix comment typos. - * emit-rtl.c: Likewise. - * optabs.c: Likewise. - * ra-build.c: Likewise. - * rtlanal.c: Likewise. - * tree.h: Likewise. - -2003-08-22 Kazu Hirata - - * c-decl.c: Fix comment formatting. - * cfgrtl.c: Likewise. - * combine.c: Likewise. - * convert.c: Likewise. - * dominance.c: Likewise. - * dwarf2out.c: Likewise. - * dwarfout.c: Likewise. - * expmed.c: Likewise. - * fold-const.c: Likewise. - * gcov.c: Likewise. - * genattrtab.c: Likewise. - * ggc-common.c: Likewise. - * mips-tfile.c: Likewise. - * regmove.c: Likewise. - -2003-08-22 Kazu Hirata - - * builtin-attrs.def: Fix comment formatting. - * c-pretty-print.c: Likewise. - * diagnostic.h: Likewise. - * langhooks.h: Likewise. - * recog.c: Likewise. - * simplify-rtx.c: Likewise. - * tree.def: Likewise. - -2003-08-22 Bernardo Innocenti - - * config/m68k/m68k-protos.h: Convert to ISO C90. - * config/m68k/m68k.c: Likewise. - -2003-08-21 Bernardo Innocenti - Paul Dale - Peter Barada - - * config/m68k/m68k.c (m68k_rtx_costs): Adjust mul/div costs for - ColdFire cores. - -2003-08-21 Zack Weinberg - - * Makefile.in (INCLUDES): Remove -I$(srcdir)/config. - * config.gcc (*-*-openbsd): Don't set tm_file. - (alpha*-*-openbsd, arm*-*-coff*, arm*-wince-pe*, - arm-*-pe*, avr-*-*, h8300-*-rtems*, h8300-*-elf*, - h8300-*-*, hppa*-*-osf*, hppa*-*-bsd*, hppa*-*-hpux*, - i370-*-opened*, i370-*-mvs*, i370-*-linux*, i?86-*-openbsd*, - i?86-*-lynxos, i?86-*-nto-qnx*, iq2000*-*-elf*, m68000-hp-hpux*, - m68k-hp-hpux*, m68k-*-aout*, m68k-*-coff*, m68020-*-elf*, - m68k-*-elf*, m68k*-*-netbsd*, m68k*-*-openbsd*, m68k-*-sysv4*, - m68k-*-linux*, m68k-*-rtems*, mcore-*-pe*, mips*-*-netbsd*, - mips*-*-openbsd*, rs6000-*-lynxos*, sh*-*-elf*, sh*-*-ka, - sh-*-rtemself, sparc-*-openbsd*, strongarm-*-pe, vax-*-openbsd*, - xscale-*-coff): Use explicit and complete lists of target headers - to include. Move definitions to tm_defines where appropriate. - (hppa*-*-openbsd*, powerpc-*-openbsd*): Comment out stanza for - not-yet-contributed configuration. - - * config/lynx.h, config/alpha/openbsd.h, config/arm/coff.h - * config/avr/avr.h, config/frv/frv.h, config/h8300/elf.h - * config/i370/linux.h, config/i370/mvs.h, config/i370/oe.h - * config/i386/nto.h, config/iq2000/iq2000.h, - * config/m68k/coff.h, config/m68k/hp310.h, config/m68k/hp320.h - * config/m68k/linux.h, config/m68k/m68k-aout.h - * config/m68k/m68k-none.h, config/m68k/m68kv4.h - * config/m68k/netbsd.h, config/m68k/openbsd.h - * config/m68k/sgs.h, config/mcore/mcore-pe.h, - * config/mips/netbsd.h, config/mips/openbsd.h, config/pa/pa.h, - * config/rs6000/lynx.h, config/sh/embed-elf.h, config/sparc/openbsd.h: - Remove includes of other target config headers, and - definitions of macros moved to tm_defines lists. Add #undefs - where now necessary to prevent redefinition warnings. - - * config/h8300/coff.h: New file split out of... - * config/h8300/elf.h: ...here. - * config/m68k/hp320base.h: New file split out of... - * config/m68k/hp320.h: ...here. - * config/rs6000/lynxbase.h: New file split out of... - * config/rs6000/lynx.h: ...here. - - * config/m68k/hp310g.h, config/m68k/hp320g.h, config/m68k/hpux7.h - * config/m68k/m68k-coff.h, config/mips/openbsd-be.h: Delete file. - - * config/sol2.h: Remove #if 0-ed #include of sys/mman.h. - * config/m68k/m68kelf.h: Remove commented out #include of m68k/sgs.h. - * config/mcore/mcore.h: Don't include hwint.h nor machmode.h. - Remove unnecessary #ifndef. - * config/s390/s390.h: Prefix #include of s390/fixdfdi.h - [under IN_LIBGCC2] with config/. - -2003-08-21 Per Bothner - - * cppfiles.c (stack_file): Correctly pass return_at_eof parameter - to cpp_push_buffer. - * cpplex.c (_cpp_get_fresh_line): Don't buffer->prev - handled - by return_at_eof check. Always call _cpp_pop_buffer at end. - -2003-08-21 Kazu Hirata - - PR target/11805 - * config/h8300/h8300.md (two anonymous patterns): Remove. - -2003-08-21 Richard Sandiford - - * config/mips/mips.h (MUST_PASS_IN_STACK): Remove BLKmode clause. - * config/mips/mips.c (function_arg_pass_by_reference): Never return - true for n32 & n64. - -2003-08-21 Josef Zlomek - - * fold-const.c (fold): Fix bug in (A & C) == D where D & ~C != 0 - and similarly in (A | C) == D where C & ~D != 0. - -2003-08-20 Geoffrey Keating - - PR 8180 - * configure.in: When testing with_libs and with_headers, treat - 'no' as unset. Based on a patch by Dan Kegel . - * configure: Regenerate. - -2003-08-20 Peter Barada - - * longlong.h (umul_ppmm): Add ColdFire support. - -2003-08-20 Peter Barada - Bernardo Innocenti - - * config/m68k/m68k-none.h: Introduce new ColdFire archs. - * config/m68k/m68k.h: Likewise. - * config/m68k/lb1sf68.asm: Rename __mcf5200__ to __mcoldfire__. - * config/m68k/coff.h: Rename TARGET_5200 to TARGET_COLDFIRE. - * config/m68k/linux.h: Likewise. - * config/m68k/m68k.c: Likewise. - * config/m68k/m68k.md: Likewise. - * config/m68k/m68kelf.h: Likewise. - * config/m68k/netbsd-elf.h: Likewise. - * config/m68k/t-m68kelf: Add multilib targets for new ColdFire archs. - -2003-08-20 Bernardo Innocenti - - * config/m68k/m68k.c: Strip away code depending on NO_ADDSUB_Q definition. - * config/m68k/m68k.md: Likewise. - -2003-08-20 Mark Mitchell - - PR java/11996 - Revert this change: - 2003-08-19 Mark Mitchell - * c-common.c (c_common_signed_or_unsigned_type): Correctly handle - types with precisions other than those given by native machine - modes. - -2003-08-20 Gunther Nikl - - * config/m68k/m68k.md (anonymous define_insn): remove obsolete code - selected by FSGLMUL_USE_S and FSGLDIV_USE_S - * config/m68k/m68k.c (output_move_himode): remove SGS_NO_LI check - * config/m68k/m68k.md (anonymous define_insn): Likewise - * config/m68k/m68k.md (anonymous define_insn): remove ISI_OV check - * config/m68k/m68k.c (standard_68881_constant_p): remove obsolete - code selected by NO_ASM_FMOVECR - -2003-08-20 Gunther Nikl - - * config/m68k/m68k.c (output_move_const_into_data_reg, - output_move_himode): unify MOTOROLA/MIT handling of moveq - * config/m68k/m68k.md (movsi_const0, anonymous define_insn): - Likewise - -2003-08-20 Gunther Nikl - - * config/m68k/m68k.c (m68k_output_function_prologue): use %U in - label name - * config/m68k/m68k.c (m68k_output_function_epilogue): replace - HOST_WIDE_INT_PRINT_DEC with %wd - -2003-08-20 Loren James Rittle - - * config/i386/freebsd.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Handle - redefine warning. - -2003-08-20 Roger Sayle - - PR middle-end/11984 - * fold-const.c (fold ): Check for integer constant - operands before calling tree_int_cst_lt when performing associative - transformations. - -2003-08-20 Jason Merrill - - * tree.h (IS_EXPR_CODE_CLASS): Also include 'r' and 's'. - (EXPR_CHECK): Don't check for 'r' or 's' if we're - checking IS_EXPR_CODE_CLASS. - * calls.c (calls_function_1): Likewise. - * fold-const.c (fold): Likewise. - * tree.c (iterative_hash_expr): Likewise. - * tree-inline.c (walk_tree, copy_tree_r): Likewise. - -2003-08-20 Gunther Nikl - - * config/m68k/m68k.c (m68k_output_mi_thunk): delete obsolete code - depending on MOTOROLA_BSR - * config/m68k/m68k.md (anonymous define_insn): Likewise - -2003-08-20 Jason Merrill - - * builtins.c (expand_builtin_mathfn): Use get_callee_fndecl. - (expand_builtin_mathfn2, expand_builtin, builtin_mathfn_code, - fold_trunc_transparent_mathfn, fold_builtin): Likewise. - * dojump.c (do_jump): Likewise. - * fold-const.c (operand_equal_p, fold): Likewise. - (tree_expr_nonnegative_p): Likewise. - - * stor-layout.c (do_type_align): Only copy DECL_USER_ALIGN from - TYPE_USER_ALIGN for FIELD_DECLs. - - * attribs.c (decl_attributes): Rebuild the function pointer type after - changing the target type. - * tree.c (get_qualified_type): Also check that the attributes match. - -2003-08-19 Matt Kraai - - * Makefile.in (STAGESTUFF): Move cc1obj$(exeext) from here ... - * objc/config-lang.in (stagestuff): ... to here. - -2003-08-19 Mark Mitchell - - PR c++/11946 - * convert.c (convert_to_integer): Use CONVERT_EXPR (instead of - NOP_EXPR) when necessary. - * c-common.c (c_common_signed_or_unsigned_type): Correctly handle - types with precisions other than those given by native machine - modes. - -2003-08-19 Geoffrey Keating - - * cpppch.c (cpp_valid_state): Re-add warning about PCH not used - because some macro is defined. - - * config/darwin.h (LINK_COMMAND_SPEC): Add -arch and -arch_only - options. - * config/i386/darwin.h (ASM_SPEC): New. - (SUBTARGET_EXTRA_SPECS): New. - * config/rs6000/darwin.h (ASM_SPEC): New. - (SUBTARGET_EXTRA_SPECS): New. - * configure.in: Don't set CROSS or SYSTEM_HEADER_DIR when building - a cross-compiler between two different processors on Darwin. - * configure: Regenerate. - -2003-08-19 Kazu Hirata - - * builtins.c: Fix comment typos. - * c-common.c: Likewise. - * c-decl.c: Likewise. - * c-pretty-print.c: Likewise. - * cfgbuild.c: Likewise. - * cfglayout.c: Likewise. - * cfgloopanal.c: Likewise. - * cgraphunit.c: Likewise. - * cppfiles.c: Likewise. - * dwarfout.c: Likewise. - * expr.c: Likewise. - * fold-const.c: Likewise. - * gcse.c: Likewise. - * ggc-page.c: Likewise. - * haifa-sched.c: Likewise. - * pretty-print.c: Likewise. - * tree.c: Likewise. - * tree.h: Likewise. - * value-prof.c: Likewise. - -2003-08-19 Kazu Hirata - - * c-decl.c: Follow spelling conventions. - * cppfiles.c: Likewise. - -2003-08-19 Kazu Hirata - - * c-common.c: Fix comment formatting. - * c-common.h: Likewise. - * c-decl.c: Likewise. - * cppinit.c: Likewise. - * cpplib.h: Likewise. - * emit-rtl.c: Likewise. - * input.h: Likewise. - * line-map.h: Likewise. - * opts.c: Likewise. - * opts.h: Likewise. - * simplify-rtx.c: Likewise. - -2003-08-19 Daniel Jacobowitz - - * unwind-c.c: Add libgcc-style exception. - * unwind-dw2.c: Likewise. - * unwind-pe.h: Likewise. - * unwind-sjlj.c: Likewise. - * unwind.inc: Likewise. - -2003-08-19 Andrew Pinski - - PR c/5582 PR c++/10538 - * langhooks-def.h (lhd_decl_uninit): Declare. - (LANG_HOOKS_DECL_UNINIT): New macro. - (LANG_HOOKS_INITIALIZER): Adjust. - * langhooks.h (struct lang_hooks): Add new field - decl_uninit. - * langhooks.c (lhd_decl_uninit): Define. - * c-common.c (c_decl_uninit_1): New function. - (c_decl_uninit): New function. - (warn_init_self): Define. - * c-common.h (c_decl_uninit): Declare. - (warn_init_self): Declare. - * c.opt: Introduce -Winit-self. - * c-opts.c (c_common_handle_options): Set warn_init_self. - * c-lang.c (LANG_HOOKS_DECL_UNINIT): Define. - * objc/objc-lang.c (LANG_HOOKS_DECL_UNINIT): Define. - * function.c (uninitialized_vars_warning): Call the language hook. - * doc/invoke.texi: Document -Winit-self. - -2003-08-19 Chris Demetriou - - * config/mips/mips.md: Adjust SI-mode "trap_if" instruction - to use better predicates and constraints. Define new - instruction to handle "trap_if" with DI-mode arguments. - (conditional_trap): FAIL if trap code is not 0. - -2003-08-19 Andrew Pinski - - * config/i386/i386.c (legitimate_pic_address_disp_p): Change the - strstr with $pb to a strcompare with "" - (ix86_output_addr_diff_elt): Output the real pic base. - -2003-08-19 Gabriel Dos Reis - - * langhooks-def.h (LANG_HOOKS_INITIALIZE_DIAGNOSTICS): Fix spelling. - (LANG_HOOKS_INITIALIZER): Correct. - * c-lang.c: Likewise. - -2003-08-19 Jan Hubicka - - * cgraph.c (cgraph_mark_needed_node): Call notice_global_symbol. - (cgraph_varpool_mark_needed_node): Likewise. - * cgraph.h (notice_global_symbol): Declare - * varasm.c (notice_global_symbol): Break out from ... - (assemble_start_function): ... here; update for variables. - (assemble_variable): Use notice_global_symbol. - -2003-08-19 Richard Sandiford - - * config/mips/mips.c (mips_va_arg): If EABI_FLOAT_VARARGS_P, - expect SFmode and DFmode arguments to be passed in FPRs, - regardless of the underlying type. - -2003-08-19 Richard Sandiford - - PR target/11924 - * config/mips/mips.c (INTERNAL_SYMBOL_P): New macro. - (mips_classify_symbol, m16_usym8_4, m16_usym5_4): Use it. - -2003-08-18 Matt Kraai - - PR c/11207 - * c-typeck.c (set_init_index): Check for negative index. - -2003-08-18 Bob Wilson - - * config/xtensa/crti.asm (_init, _fini): Add alternate code for new - call0 ABI. - * config/xtensa/crtn.asm (_init, _fini): Likewise. - * config/xtensa/lib1funcs.asm (__mulsi3, __udivsi3, __divsi3, - __umodsi3, __modsi3): Likewise. - * config/xtensa/t-xtensa (crti.o, crtn.o): Add $(GCC_CFLAGS) and - $(INCLUDES). - -2003-08-18 Aldy Hernandez - - * config/rs6000/spe.md ("*nabssf2_gpr"): New. - -2003-08-18 Richard Sandiford - - * config/mips/mips.md: Quote C code in braces. Remove use of - fake const0_rtx operands. Remove double backslashes. Use \;. - Remove workarounds for bogus warnings. - -2003-08-18 Richard Sandiford - - * config/mips/mips.md (muldf3, mulsf3): Don't call a gen_* function. - (muldf3_internal, muldf3_r4300): Select based on TARGET_4300_MUL_FIX - rather than TARGET_MIPS4300. - (mulsf3_internal, mulsf3_r4300): Likewise. - -2003-08-18 Richard Sandiford - - * config/mips/mips.md: Renumber unspecs. Clean up comments. - -2003-08-17 Roger Sayle - - * simplify-rtx.c (associative_constant_p): New function to test - whether an RTX expression is an immediate constant. - (simplify_associative_operation): New function to perform some - reassociation optimizations of associative binary expressions. - (simplify_binary_operation): Use simplify_associative_operation - to simplify PLUS, MULT, AND, IOR, XOR, SMIN, SMAX, UMIN and UMAX. - Floating point expressions are only reassociated when unsafe - math optimizations are permitted. - -2003-08-17 Andreas Jaeger - - * config/alpha/alpha.md: Remove usage of PARAMS. - - * config/i386/cygwin.h: Convert K&R prototypes to ISO C90. - * config/i386/i386-interix.h: Likewise. - * config/i386/winnt.c: Likewise. - * config/i386/cygming.h: Likewise. - * config/i386/cygwin2.c: Likewise. - * config/darwin.c: Likewise. - * config/darwin-c.c: Likewise. - * config/darwin-protos.h: Likewise. - * config/darwin.h: Likewise. - * config/s390/s390-protos.h: Likewise. - * config/s390/s390.c: Likewise. - * config/ia64/ia64.c: Likewse - * config/ia64/ia64-protos.h: Likewise. - * config/ia64/ia64-c.c: Likewise. - -2003-08-16 Kaveh R. Ghazi - - * config/sparc/sparc.c: Convert to ISO C. - - * config/sparc/sparc-protos.h: Don't use the PARAMS macro. - * config/sparc/sparc.c: Likewise. - -2003-08-16 Nathan Sidwell - - PR c++/11512 - * stmt.c (expand_expr_stmt_value): Don't warn about any void - typed expression. - -2003-08-16 Jan Hubicka - - * i386.c (ix86_fntype_regparm): Rename from ... - (ix86_function_regparm): ... this one; add fastcall and local - functions. - (ix86_function_ok_for_sibcall): Update. - (ix86_return_pops_args): Likewise. - (init_cumulative_args): Likewise. - (x86_can_output_mi_thunk): Likewise. - (function_arg): Fix formating. - (x86_this_parameter): Fix fastcall. - (x86_output_mi_thunk): Likewise. - - * cgraph.c (cgraph_mark_needed_node): Do not mark functions without - body as reachable; mark nested functions as needed too. - (dump_cgraph): Do not output global.calls. - * cgraph.h (cgraph_global_info): Kill. - * cgraphunit.c (cgraph_finalize_function): Enqueue needed functions. - (record_call_1): Speedup. - (cgraph_analyze_function): Break out from ...; compute inlining - parameters. - (cgraph_finalize_compilation_unit): ... here. - (cgraph_mark_inline): Kill computation of calls. - (cgraph_decide_inlining): Do not compute most of initial values. - -2003-08-14 Roger Sayle - - * fold-const.c (negate_expr_p): MULT_EXPRs and RDIV_EXPRs are easy - to negate if either operand is easy to negate, if we don't care - about sign-dependent rounding. - (negate_expr): Make the logic to negate a REAL_CST explicit. - Attempt to negate a MULT_EXPR or RDIV_EXPR by negating an operand - that's easy to negate, if we don't honor sign-dependent rounding. - (fold ): Optimize -A * B as A * -B if B is easy to - negate, and the symmetric A * -B as -A * B if A is easy to negate. - (fold ): Likewise, optimize -A/B and C/-D as A/-B and - -C/D if B and C are cheap to negate. Add an explicit rule to - optimize X/-1.0 as -X when we don't care about signaling NaNs. - -2003-08-14 Zack Weinberg - - * Makefile.in (tm_file): Rename tm_include_list. - (tm_p_file): Rename tm_p_include_list. - (build_xm_file): Rename build_xm_include_list. - (host_xm_file): Rename host_xm_include_list. - (xm_file): Rename xm_include_list. - (xm_file_list): Add to be substituted. - (cs-config.h, cs-bconfig.h, cs-tconfig.h, cs-tm.h, cs-tm_p.h): - Update to match. - (bt-load.o): Add missing dependency on $(TM_H). - * configure.in: Prefix value of EXTRA_MODES_FILE with config/. - For each of tm_file, tm_p_file, xm_file, host_xm_file, and - build_xm_file, generate both *_file_list and *_include_list - values from it. (xm_file_list was formerly not being generated.) - In *_include_list, prefix the names of all headers found in - $(srcdir)/config with config/. In each loop, consider only - the special case files that can actually appear in that list. - AC_SUBST all *_file_list and all *_include_list variables; do - not AC_SUBST the plain *_file variables. - * configure: Regenerate. - -2003-08-14 Zdenek Dvorak - - * cfg.c (dump_edge_info): Add name of loop_exit edge flag. - -2003-08-14 John David Anglin - - * pa.c (pa_adjust_insn_length): Delete adjustment for delay slot in - direct calls. - (attr_length_call): Include it here. Improve length estimate for - local calls. - (output_call): Use targetm.binds_local_p. - -2003-08-14 Kaveh R. Ghazi - - * builtins.c (CASE_MATHFN): New helper macro. - (mathfn_built_in): Simplify and sort. - - * protoize.c (substr): Delete, callers changed to `strstr'. - -2003-08-13 Zack Weinberg - - * config.gcc (iq2000*-*-elf*): Don't set xm_file. - * config/iq2000/xm-iq2000.h: Delete file. - -2003-08-13 Geoffrey Keating - - * gengtype.c (walk_type): Process a subobject before processing - the pointer that points to the subobject. - -2003-08-13 Per Bothner - - * regclass.c (init_reg_modes): Make non-static. - Rename to init_reg_modes_once per new naming convention. - (init_regs): Don't call init_reg_modes here. - * emit-rtl.c (init_emit_once): Call init_reg_modes_once here instead. - * rtl.h (init_reg_modes_once): New declaration. - * toplev.c (backend_init): Call init_regs after init_emit_once. - -2003-08-13 Kaz Kojima - - * config/sh/linux.h (DBX_REGISTER_NUMBER): Define so to map a - special index for MD_FALLBACK_FRAME_STATE_FOR to itself. - -2003-08-13 J"orn Rennecke - - * sh.c (sh_get_pr_initial_val): Always wrap in unspec for TARGET_SH1. - * sh.md (load_ra): Change insn predicate to TARGET_SH1. - -2003-08-13 Dale Johannesen - - * config/rs6000/rs6000.md (ctrsi, ctrdi): Reenable - handling of decrement-and-branch farther than 32 bits. - -2003-08-12 Kelley Cook - - * configure.in (make_compare_target): Move test to ... - * aclocal.m4 (gcc_AC_PROG_CMP_IGNORE_INITIAL): here. - * configure: Regenerate. - -2003-08-12 Richard Sandiford - - * config/mips/iris6.h: Convert to C90 prototypes. - * config/mips/irix6-libc-compat.c: Likewise. - * config/mips/mips-protos.h: Likewise. - * config/mips/mips.c: Likewise. - -2003-08-12 Nathanael Nerode - - fixinc/inclhack.def (svr4_krnl): Rename from svr4_kernel. Enable - for selected machines. Comment heavily. - fixinc/fixincl.x: Rebuild. - fixinc/tests/base/fs/rfs/rf_cache.h: New file. - -2003-08-12 Richard Sandiford - - * config/mips/mips.h: Tweak various comments. - * config/mips/mips.c: Likewise. - -2003-08-11 James E Wilson - - PR optimization/11319 - PR target/10021 - * alias.c (find_base_value, case REG): Return 0 not src if no base - found. - -2003-08-11 Kaveh R. Ghazi - - * gcse.c (gmalloc): Fix last change. - -2003-08-11 Roger Sayle - - * simplify-rtx.c (simplify_binary_operation): Replace calls to - gen_rtx_NEG and gen_rtx_NOT with calls to simplify_gen_unary, - and calls to gen_rtx_PLUS, gen_rtx_MULT, gen_rtx_LSHIFTRT, - gen_rtx_ASHIFT and gen_rtx_AND with calls to simplify_gen_binary. - -2003-08-11 Roger Sayle - - * expr.c (expand_expr): If an ABS_EXPR has a complex type, abort. - * c-typeck.c (build_unary_op): COMPLEX_TYPE is not a valid - typecode for an ABS_EXPR. - - * doc/c-tree.texi: Document ABS_EXPR. - -2003-08-11 Roger Sayle - - * fold-const.c (fold): Optimize any associative floating point - operator with -funsafe-math-optimizations, not just MULT_EXPR. - -2003-08-11 Kaz Kojima - - * config/sh/lib1funcs.asm (__udivdi3): Add .type and .size - information in SHmedia case too. - (__divdi3, __umoddi3, __moddi3, __init_trampoline, __ic_invalidate): - Likewise. - (__set_fpscr): Use an access via GOT for PIC case. - -2003-08-11 Kelley Cook - - * configure.in (intermodule): Make switch test more portable. - * configure: Regenerate. - -2003-08-11 Kelley Cook - - * Makefile.in (cleanstrap): Pass BOOT_CFLAGS to bootstrap. - (restrap): Likewise. - -2003-08-11 Kaveh R. Ghazi - - * gcse.c (gmalloc): Argument is a size_t. Add ATTRIBUTE_MALLOC. - (grealloc): Size argument is a size_t. - (gcalloc): New function. Use throughout in lieu of - gmalloc/memset. - - * config/avr/avr.c (avr_init_once): Use xcalloc in lieu of - xmalloc/memset. - * config/ia64/ia64.c (ia64_reorg): Likewise. - * conflict.c (conflict_graph_new): Likewise. - * fixinc/fixincl.c (run_compiles): Likewise. - * genattrtab.c (optimize_attrs): Likewise. - * genrecog.c (new_decision): Likewise. - * haifa-sched.c (schedule_block): Likewise. - * hashtable.c (ht_create): Likewise. - -2003-08-11 Bob Wilson - - * config/xtensa/lib2funcs.S: Fix whitespace. - * config/xtensa/xtensa.md (all insns and expanders): Use brace block - syntax where appropriate. Remove unnecessary backslash escapes. - Reformat comments and fix some code formatting. - (extendqisi2): Rearrange conditional. - (*btrue, *bfalse, *ubtrue, *ubfalse, *bittrue, *bitfalse, *masktrue, - *maskfalse, movsicc_internal0, movsfcc_internal0): Call abort instead - of fatal_insn. - -2003-08-11 Richard Sandiford - - * config/mips/mips.c: Various formatting fixes. - (override_options): Resync -mtune handling with gas. - (mips_issue_rate): Rearrange like mips_use_dfa_pipeline_interface. - * config/mips/mips.h: More formatting fixes. - (mips_abi): Move declaration. - * config/mips/mips.md (exception_receiver): Add mode to - unspec_volatile. - -2003-08-11 Aldy Hernandez - - * config/rs6000/rs6000.c (spe_init_builtins): Handle evsplati and - evsplatfi here. - (bdesc_1arg): Remove evsplati and evsplatfi. - -2003-08-11 J"orn Rennecke - - * dwarf2asm.c (dw2_output_indirect_constant_1): Take user_label_prefix - into account. - -2003-08-10 Kaveh R. Ghazi - - * builtins.c (expand_builtin_strcat): Optimize constant strings. - -2003-08-10 Gabriel Dos Reis - - * pretty-print.c (pp_base_indent): Rename from pp_indent. - * c-pretty-print.h (pp_c_pretty_print_flag)s: New datatype. - (struct c_pretty_print_info): Add more fields. - (pp_c_left_paren): Move to c-pretty-print.c. - (pp_c_right_paren): Likewise. - (pp_c_left_brace): Likewise. - (pp_c_right_brace): Likewise. - (pp_c_left_bracket): Likewise. - (pp_c_right_bracket): Likewise. - (pp_c_declarator): Declare. - (pp_c_direct_declarator): Likewise. - (pp_c_specifier_qualifier_list): Likewise. - (pp_c_type_id): Likewise. - * c-pretty-print.c (pp_c_cv_qualifier): Change prootype. Rework.. - (pp_c_type_qualifier_list): New. - (pp_c_pointer): Likewise. - (pp_c_parameter_type_list): Likewise. - (pp_c_function_definition): Likewise. - (pp_c_id_expression): Likewise. - (pp_c_simple_type_specifier): Tidy. - (pp_c_unary_expression): Likewise. - (pp_c_expression): Likewise. - (pp_c_pretty_printer_init): Likewise. - (pp_c_specifier_qualifier_list): Rework.. - (pp_c_abstract_declarator): Likewise. - (pp_c_postfix_expression): Likewise. - (pp_c_primary_expression): Likewise. - (pp_c_cast_expression): Likewise. - (pp_c_direct_abstract_declarator): Likewise. - (pp_c_storage_class_specifier): Likewise. - (pp_c_function_specifier): Likewise. - (pp_c_declaration_specifiers): Likewise. - (pp_c_direct_declarator): Likewise. - (pp_c_declarator): Likewise. - (pp_c_declaration): Likewise. - (pp_c_statement): Likewise. - (pp_c_integer_constant): Rename from pp_c_integer_literal. - (pp_c_character_constant): Rename from pp_c_character_literal. - (pp_c_bool_constant): Rename from pp_c_bool_literal. - (pp_c_enumeration_constant): Rename from pp_c_enumerator. - (pp_c_floating_constant): Rename from pp_c_real_literal. - (pp_c_constant): Rename from pp_c_literal. - * c-lang.c: Include diagnostic.h and c-pretty-print.h - (LANG_HOOKS_INITIALIZE_DIAGNOSTITCS): Define. - (c_initialize_diagnostics): New. - * Makefile.in (c-lang.o): Update dependency. - -2003-08-10 Nathan Sidwell - - * c-typeck.c (digest_init): Add conversion for VECTOR_TYPEs. - -2003-08-10 Richard Sandiford - - * config/mips/mips.c (mips_no_mips16_string): Remove. - (override_options): Don't handle -mips16 as part of -mipsN. - * config/mips/mips.h (mips_no_mips16_string): Remove declaration. - (TARGET_SWITCHES): Add -mips16 and -mno-mips16 entries. - (TARGET_OPTIONS): Remove -mno-mips16. - -2003-08-10 Richard Sandiford - - * config/mips/mips-protos.h (coprocessor_operand): Remove declaration. - (coprocessor2_operand): Likewise. - * config/mips/mips.c (STAB_CODE_TYPE): Remove. - (lookup_name): Remove declaration. - (abort_with_insn): Remove. Replace all uses with fatal_insn. - (mips16, mips_abicalls): Remove. - (mips_char_to_class): Remove initialiser: all entries are NO_REGS. - (arith32_operand, large_int, true_reg_or_0_operand): Remove. - (coprocessor_operand, coprocessor2_operand): Remove. - (override_options): Don't set mips16 or mips_abicalls. - (print_operand): Don't expect SIGN_EXTEND operands. - (mips_secondary_reload_class): Likewise. - (mips_output_conditional_branch): Remove disabled long-branch code. - * config/mips/mips.h (call_used_regs): Remove declaration. - (may_call_alloca): Likewise. - (mips_cpu_attr, mips_abicalls_type, mips_abicalls_attr): Remove. - (mips_abicalls, mips16): Remove declarations. - (ASM_FINAL_SPEC, LIB_SPEC): Remove. - (CC1_SPEC): Remove outdated comment. - (MIPS_VERSION, MACHINE_TYPE): Remove. - (TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove. - (PC_REGNUM, STACK_POINTER_OFFSET): Remove disabled definitions. - (STRUCT_VALUE_RETURN_REGNUM, STACK_DYNAMIC_OFFSET): Likewise. - (PUSH_ROUNDING): Likewise. - (ASSEMBLER_SCRATCH_REGNUM): Remove. - * config/mips/mips.md: Replace mips_cpu_attr with mips_tune - and mips16 with TARGET_MIPS16. - -2003-08-09 Per Bothner - - * cppinit.c (cpp_read_main_file): Split out source-independent - initialization to separate function ... - (cpp_post_options): New function. - * cppfiles.c (cpp_stack_file): Rename public name to ... - (_cpp_stack_file): New internal function name. - * cpplib.h: Update accordingly. - * cppinit.c: (cpp_create_reader): Initialize cpp_readers line here. - (cpp_read_main_file): Don't initialize line here. - * c-opts.c (c_common_post_options): Call cpp_post_options. - (c_common_parse_file): Call cpp_read_main_file, not cpp_stack_file. - * fix-header.c (read_scan_file): Call cpp_post_options. - -2003-08-09 Per Bothner - - * c-decl.c (SCOPE_LIST_APPEND): Remove bogus line continuation. - -2003-08-09 John David Anglin - - * pa.c (pa_asm_output_mi_thunk): Fix typo. - -2003-08-09 Neil Booth - - PR preprocessor/11839 - * cppfiles.c (open_file): Handle ENOTDIR. - -2003-08-09 Richard Sandiford - - PR target/11699 - * config/mips/mips.c (override_options): Reject -mabi=eabi -mabicalls. - -2003-08-08 John David Anglin - - * pa.md (extzv, extv, insv): Fix operand limit checks. Fail if - source/destination is not a register operand. - -2003-08-08 Richard Henderson - - PR target/11535 - * config/ia64/ia64.c (ia64_initial_elimination_offset): Remove - RETURN_ADDRESS_POINTER_REGNUM. - (ia64_expand_prologue): Don't frob it. - (ia64_output_function_epilogue): Likewise. - (ia64_return_addr_rtx): New. - (ia64_split_return_addr_rtx): New. - * config/ia64/ia64-protos.h: Update. - * config/ia64/ia64.h (FIRST_PSEUDO_REGISTER): Decrement. - (RETURN_ADDRESS_POINTER_REGNUM): Remove. - (GENERAL_REGNO_P): Don't check it. - (AR_*_REGNUM): Renumber. - (FIXED_REGISTERS): Remove RETURN_ADDRESS_POINTER_REGNUM. - (CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS): Likewise. - (REG_ALLOC_ORDER, REG_CLASS_CONTENTS): Likewise. - (ELIMINABLE_REGS, REGISTER_NAMES): Likewise. - (RETURN_ADDR_RTX): Use ia64_return_addr_rtx. - * config/ia64/ia64.md (UNSPEC_RET_ADDR): New. - (movdi_ret_addr): New. - -2003-08-08 Geoffrey Keating - - * config.gcc (powerpc-*-darwin*): Don't build a soft-float multilib. - -2003-08-08 Roger Sayle - - * tree.h (get_identifier) Define a macro form of get_identifier - that calls get_identifier_with_length when the string is constant. - (get_identifier_with_length): Change type of second argument to - size_t in prototype. - * stringpool.c (get_identifier): Undefine the macro before giving - the function definition. - (get_identifier_with_length): Change type of second argument to - size_t in function definition. - * hashtable.c (calc_hash): Change type of second argument to size_t. - (ht_lookup): Change type of third argument to size_t. Reorganize - to speed-up the cases where the hash table slot is empty, or the - first probe matches (i.e. there isn't a collision). - * hashtable.h (ht_lookup): Adjust function prototype. - -2003-08-08 Bernardo Innocenti - - PR target/9697 - PR target/11777 - * longlong.h (count_leading_zeros): Exclude on __mcpu32__. - -2003-08-08 Neil Booth - - * common.opt: Add debug switches. - * flags.h (use_gnu_debug_info_extensions): Boolify. - * opts.c (write_symbols, debug_info_level, - use_gnu_debug_info_extensions): Move from toplev.c. - (set_debug_level): New. - (common_handle_options): Handle debug switches. - (print_help): Display target options directly. - * toplev.c (debug_hooks): Don't initialize. - (write_symbols, debug_info_level, - use_gnu_debug_info_extensions): Move to opts.c. - (debug_args, display_help, decode_g_option): Remove. - (process_options): Set no debug if level zero here, - and no-debug-hooks. Error here if impossible debug format selected. - * toplev.h (display_help, decode_g_option): Remove. - -2003-08-08 Richard Sandiford - - * tree.c (get_file_function_name_long): Fix size of alloca() area. - -2003-08-08 Kelley Cook - - * configure.in (gcc_cv_prog_cmp_skip): Flipflop make_compare_target - and gcc_cv_prog_cmp_skip. - * configure: Regenerate. - -2003-08-08 Stan Cox - - * config/iq2000: New port. - * config.gcc (iq2000-*-elf): Added. - * doc/install.texi (Specific): Add iq2000 description. - -2003-08-08 Andreas Schwab - - * configure.in (gcc_cv_as_ia64_ltoffx_ldxmov_relocs): Fix quoting - and insert missing empty argument. - * configure: Regenerate. - -2003-08-07 John David Anglin - - * pa.c (update_total_code_bytes): Use new macro IN_NAMED_SECTION_P. - (attr_length_millicode_call): Likewise. - (attr_length_call): Likewise. Revise some maximum insn lengths. - (attr_length_indirect_call): Likewise. - (output_call): Fix thinko that added extra nop. - * pa.h (IN_NAMED_SECTION_P): Define. - - PR c++/11712 - * pa-hpux.h, pa-hpux10.h, pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define - __STDC_EXT__ when using C++ dialect. - -2003-08-07 J"orn Rennecke - - * sh.c (calc_live_regs): If the return address pointer is live, - force pr live. - (sh5_schedule_saves): Exclude PR_MEDIA_REG from being a temp register - for saves / restores. - (sh_expand_epilogue): If sh_media_register_for_return returns a - register number, flag the instructions that restores PR_MEDIA_REG - as possibly dead. - Remove dead update of offset. - (sh_get_pr_initial_val): Use UNSPEC_RA if we don't know yet if - we can use the result of get_hard_reg_initial_val. - * sh.md (UNSPEC_RA): New constant. - (movsi_i_lowpart+1): Changed into a define_insn_and_split, named: - (load_ra). Handle UNSPEC_RA. - (sibcall_media): Use PR_MEDIA_REG. - - * sh.h (CALL_USED_REGISTERS): Include PR_REG and PR_MEDIA_REG. - * sh.c (calc_live_regs): Use sh_pr_n_sets to determine if pr - needs saving on SHmedia. - -2003-08-07 Ulrich Weigand - - * config/s390/s390.md: Replace all occurrences of \\t with \t. - -2003-08-07 Richard Sandiford - - * local-alloc.c (combine_regs): Fix comment typo. - -2003-08-06 Zack Weinberg - - * c-decl.c (builtin_decls): Replace with first_builtin_decl - and last_builtin_decl. - (c_init_decl_processing): Initialize both. - (c_reset_state): Iterate from first_builtin_decl to - last_builtin_decl inclusive to reintroduce builtins. - -2003-08-06 David Mosberger - - * doc/extend.texi (Function Attributes): Document the IA-64 version - of the "model" attribute. - - * config/ia64/ia64.h (SYMBOL_FLAG_SMALL_ADDR): New macro. - (SYMBOL_REF_SMALL_ADDR_P): Ditto. - (PREDICATE_CODES): Mention "small_addr_symbolic_operand". - - * config/ia64/ia64.c (ia64_handle_model_attribute): New function. - (ia64_encode_section_info): Likewise. - (ia64_attribute_table): Add "model" attribute. - (TARGET_ENCODE_SECTION_INFO): Define. - (small_addr_symbolic_operand): New function. - (got_symbolic_operand): Return 0 for a symbolref to an object - in the small address area. - (enum ia64_addr_area): New type. - (small_ident1): New variable. - (small_ident2): Likewise. - (init_idents): New function. - (ia64_get_addr_area): Likewise. - (ia64_encode_addr_area): Likewise. - (ia64_encode_section_info): Likewise. - (ia64_expand_load_address): For symbolic references to objects in - the small-address-area, load the address via gen_rtx_SET() (which, - eventually, will expand into "addl"). - -2003-08-06 Per Bothner - - * line-map.h (fileline): New typedef. - (struct line_map, linemap_add, linemap_lookup): Use it. - * input.h (struct location_s): Comment notes that long-term we want - to replace it by fileline. - -2003-08-06 J"orn Rennecke - - Fix SHcompact exception handling: - * sh.c (sh_get_pr_initial_val): If PR is or miight be clobbered - by the prologue, return a MEM with return_address_pointer_rtx - as address. - * sh.h (HARD_REGNO_MODE_OK): PR is OK for SImode. - (RETURN_ADDR_OFFSET): Don't define. - (SH_DBX_REGISTER_NUMBER): Use SHmedia numbers for SHmedia - registers that are visible in compact mode. Show that SHmedia - registers still exist in compact mode, even if there are not - readily accessible. - (ASM_PREFERRED_EH_DATA_FORMAT): Supply DW_EH_PE_indirect - if GLOBAL. Use DW_EH_PE_textrel (nominally) for CODE, - and DW_EH_PE_pcrel for pic data. - (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): If DW_EH_PE_textrel, - set SYMBOL_FLAG_FUNCTION in symbol, and actually use - DW_EH_PE_pcrel / DW_EH_PE_absptr encoding. - (ALLOCATE_INITIAL_VALUE): Put PR on stack if prologue clobbers it. - * sh.md (movsi_media-1): New splitter. - -2003-08-06 Graeme Peterson - - * config/i386/nto.h: New. - * config/i386/t-nto: New. - * config.gcc (i[34567]86-*-nto-qnx*): New. - -2003-08-06 Phil Edwards - - * doc/install.texi (*-*-solaris2*): Refine configure instructions. - -2003-08-06 Alan Modra - - * calls.c (load_register_parameters): Arrange for call_fusage to - report the whole register as used when shifting to the msb. - -2003-08-05 Roger Sayle - - * builtins.c (expand_builtin): When not optimizing, call the library - function for all builtins that have library functions (except alloca). - -2003-08-05 Alexandre Oliva - - * c.opt: Introduce -fworking-directory. - * doc/cpp.texi, doc/invoke.texi, doc/cppopts.texi: Document it. - * c-common.h (flag_working_directory): Declare. - * c-common.c (flag_working_directory): Define. - * c-opts.c (c_common_handle_options): Set it. - (sanitize_cpp_opts): Set... - * cpplib.h (struct cpp_options): ... working_directory option. - (struct cpp_callbacks): Add dir_change. - * cppinit.c (read_original_filename): Call... - (read_original_directory): New. Look for # 1 "directory//" - and process it. - (cpp_read_main_file): Call dir_change callback if working_directory - option is set. - * gcc.c (cpp_unique_options): Pass -g*. - * c-lex.c (cb_dir_change): New. - (init_c_lex): Set dir_change callback. - * toplev.c (src_pwd): New static variable. - (set_src_pwd, get_src_pwd): New functions. - * toplev.h (get_src_pwd, set_src_pwd): Declare. - * dbxout.c (dbxout_init): Call get_src_pwd() instead of getpwd(). - * dwarf2out.c (gen_compile_unit_die): Likewise. - * dwarfout.c (output_compile_unit_die, dwarfout_init): Likewise. - -2003-08-05 Gabriel Dos Reis - - * pretty-print.h (pp_set_line_maximum_length): Make macro. - (pp_set_prefix): Likewise. - (pp_destroy_prefix): Likewise. - (pp_remaining_character_count_for_line): Likewise. - (pp_clear_output_area): Likewise. - (pp_formatted_text): Likewise. - (pp_last_position_in_text): Likewise. - (pp_emit_prefix): Likewise. - (pp_append_text): Likewise. - (pp_flush): Likewise. - (pp_format_text): Likewise. - (pp_format_verbatim): Likewise. - (pp_tree_identifier): Tidy. - * pretty-print.c (pp_base_format_text): Rename from pp_format_text. - (pp_base_format_verbatim): Rename from pp_format_verbatim. - (pp_base_flush): Rename from pp_flush. - (pp_base_set_line_maximum_length): Rename from - pp_set_line_maximum_length. - (pp_base_clear_output_area): Rename from pp_clear_output_area. - (pp_base_set_prefix): Rename from pp_set_prefix. - (pp_base_destroy_prefix): Rename from pp_destroy_prefix. - (pp_base_emit_prefix): Rename from pp_emit_prefix. - (pp_base_append_text): Rename from pp_append_text. - (pp_base_formatted_text): Rename from pp_formatted_text. - (pp_base_last_position_in_text): Rename from pp_last_position_in_text. - (pp_base_remaining_character_count_for_line): Rename from - pp_remaining_character_count_for_line. - * diagnostic.h (diagnostic_format_decoder): Tidy. - (diagnostic_flush_buffer): Likewise. - * c-pretty-print.h: (pp_c_string_literal): Declare. - (pp_c_real_literal): Likewise. - (pp_c_integer_literal): Likewise. - * c-pretty-print.c (pp_c_char): Use pp_string in lieu of - pp_identifier. - (pp_c_character_literal): Tidy. - (pp_c_string_literal): Make public. - (pp_c_bool_literal): Likewise. - (pp_c_integer_literal): Likewise. - (pp_c_real_literal): Likewise. - - * Makefile.in (C_PRETTY_PRINT_H): New variable. - (c-pretty-print.o): Update dependence. - -2003-08-05 Chris Demetriou - - * config/mips/mips.md (fix_truncdfsi2_macro): Properly restore - ".set nomacro" state. - (fix_truncsfsi2_macro): Likewise. - -2003-08-05 Steven Bosscher - - * tree.h (DID_INLINE_FUNC): Remove macro. - (DECL_DECLARED_INLINE_P): Move from c-tree.h and cp/cp-tree.h, - add tree check for FUNCTION_DECL. - (DECL_ESTIMATED_INSNS): Move from c-common.h and java/java-tree.h. - (struct tree_decl): Rename inlined_function_flag to - declared_inline_flag. - * c-common.h (c_lang_decl): Remove. - (DECL_ESTIMATED_INSNS): Remove. - * c-tree.h (struct lang_decl): Don't include c_lang_decl. - (DECL_DECLARED_INLINE_P): Remove. - * c-decl.c (grokdeclarator): Update comment. With -finline-functions, - do not reset DECL_DECLARED_INLINE_P. Don't use DID_INLINE_FUNC. - (finish_function): Make uninlinable a bool. Fixup call to - tree_inlinable_function_p() and fix some code style issues. - * cgraph.h (disgread_inline_limits): Fix spelling: `disregard'. - * cgraph.c (dump_cgraph): Likewise. - * cgraphunit.c (cgraph_decide_inlining): Likewise - (cgraph_finalize_compilation_unit): Likewise. - Also update call to tree_inlinable_function_p(). - (cgraph_default_inline_p): Don't use DID_INLINE_FUNC. Instead - look at DECL_DECLARED_INLINE and reverse logic. - * print-tree.c (print_node): Likewise. - * toplev.c (rest_of_handle_inlining): Don't use DID_INLINE_FUNC. - * tree-inline.h (tree_inlinable_function_p): Make a bool. Update - prototype. - * tree-inline.c (inlinable_function_p): Split up in this function to - check for basic inlining inhibiting conditions, and new - limits_allow_inlining() function. Warn if inlining is impossible - because the inline candidate calls alloca or uses sjlj exceptions. - (limits_allow_inlining): this new function to check if the inlining - limits are satisfied. Throttle from currfn_max_inline_insns, not from - MAX_INLINE_INSNS_SINGLE. The latter only makes sense if - MAX_INLINE_INSNS_AUTO and MAX_INLINE_INSNS_SINGLE are equal. - Update prototypes. - (tree_inlinable_function_p): Make a bool. Update call to - inlinable_function_p - (expand_call_inline): Use limits_allow_inlining() when not in - unit-at-a-time mode to decide on inlining. Don't use DID_INLINE_FUNC, - instead see if the function was declared `inline'. - -2003-08-05 Josef Zlomek - - * gcse.c (try_replace_reg): Fix updating of note. - -2003-08-04 Roger Sayle - - PR middle-end/11771 - * fold-const.c (negate_expr_p ): Change to match the - logic in negate_expr, i.e. we don't invert (A-B) for floating - point types unless flag_unsafe_math_optimizations. - -2003-08-04 Roger Sayle - - * fold-const.c (fold ): Transform x+x into x*2.0. - Optimize x*c+x and x+x*c into x*(c+1) and x*c1+x*c2 into x*(c1+c2) - for floating point expressions with -ffast-math. - (fold ): Don't transform x*2.0 into x+x. - * expmed.c (expand_mult): Wrap long line. Expand x*2.0 as x+x. - -2003-08-04 Roger Sayle - - * c-common.c (flag_noniso_default_format_attributes): Delete. - (built_in_attribute): Don't define/undefine DEF_FN_ATTR. - (c_attrs_initialized): Delete. - (c_common_nodes_and_builtins): Don't test c_attrs_initialized, - always call c_init_attributes. - (c_init_attributes): Don't define/undefine DEF_FN_ATTR. Don't - set c_attrs_initialized when done. - (c_common_insert_default_attributes): Delete. - * c-common.h (flag_noniso_default_format_attributes): Delete. - (c_coomon_insert_default_attributes): Delete prototype. - * c-opts.c (set_std_c89, set_std_c99, set_std_cxx98): Dont set - flag_noniso_default_format_attributes. - - * c-decl.c (c_insert_default_attributes): Delete. - * c-tree.h (c_insert_default_attributes): Delete prototype. - - * attribs.c (decl_attributes): Don't call insert_default_attributes - langhook. Update function description comment. - * langhooks.h (lang_hooks): Remove insert_default_attributes field. - * langhooks-def.h (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Delete. - * c-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Don't define. - * system.h: Poison LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES macro. - - * objc/objc-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Don't - define. - -2003-08-04 Richard Sandiford - - * config/mips/mips.c (override_options): Disable -G on targets that - have no .section support. - (mips_select_section): Use default_select_section for such targets. - -2003-08-04 Nathanael Nerode - - * fixinc/inclhack.def (svr4_undeclared_getrnge): Introduce and enable. - * fixinc/inclhack.def (static_getrnge): Remove disabled hack. - * fixinc/fixincl.x: Rebuild. - * fixinc/tests/base/regexp.h: New test. - -2003-08-04 Alexandre Oliva - - * c-ppoutput.c (cb_line_change): Don't skip line changing while - parsing macro arguments in the top-level context. - -2003-08-04 Neil Booth - - * config.in: Remove HAVE_LSTAT. - * configure, configure.in: Don't test for lstat. - -2003-08-03 Gabriel Dos Reis - - * opts.c (decode_options): Do language-specific initialization for - the global diagnostic context. - * langhooks-def.h (lhd_initialize_diagnostics): Declare. - (LANG_HOOKS_INITIALIZE_DIAGNOSTITCS): New macro. - (LANG_HOOKS_INITIALIZER): Adjust. - * langhooks.h (struct lang_hooks): Add new field - initialize_diagnostics. - * langhooks.c (lhd_initialize_diagnostics): Define. - -2003-08-03 Gabriel Dos Reis - - * pretty-print.h: Adjust macro definitions. - * pretty-print.c (pp_newline): Rename to pp_base_newline. - (pp_character): Rename to pp_base_character. - (pp_string): Rename to pp_base_string. - * c-pretty-print.c (pp_buffer): Move to pretty-print.h - (pp_newline): Likewise. Adjust. - (pp_c_char): Adjust. - -2003-08-03 Kaveh R. Ghazi - - * builtins.def (BUILT_IN_ABS, BUILT_IN_IMAXABS, BUILT_IN_LABS, - BUILT_IN_LLABS): Move to miscellaneous section. - -2003-08-03 Neil Booth - - PR preprocessor/11534 - * cppexp.c (parse_defined): Warn only if -pedantic. - -2003-08-03 Neil Booth - - * cppfiles.c (stack_file): Use file path. - -2003-08-02 Roger Sayle - - * builtin-types.def (BT_SSIZE): New primitive type. - (BT_FN_INT_PTR_CONST_STRING_VALIST_ARG, - BT_FN_STRING_CONST_STRING_CONST_STRING_INT, - BT_FN_SIZE_STRING_SIZE_CONST_STRING_CONST_PTR, - BT_FN_SSIZE_STRING_SIZE_CONST_STRING_VAR): New function types. - * builtins.def (BUILT_IN_DCGETTEXT, BUILT_IN_DGETTEXT, - BUILT_IN_FSCANF, BUILT_IN_GETTEXT, BUILT_IN_STRFMON, - BUILT_IN_STRFTIME, BUILT_IN_VFPRINTF, BUILT_IN_VFSCANF): New builtins. - * builtin-attrs.def: Remove DEF_FN_ATTR construct and the last - few functions that define default attributes using it. - * c-common.c (c_common_insert_default_attributes): Do nothing. - - * doc/extend.texi: Document these "new" builtins. - -2003-08-02 Kaz Kojima - - * config/sh/linux.h (SUBTARGET_LINK_SPEC): Don't set rpath. - (LIB_SPEC): Set -lpthread always when -pthread set. Set -lieee - when -mieee-fp set and -shared not set. - (SH_FALLBACK_FRAME_FLOAT_STATE): Don't define for SH5. - -2003-08-02 Neil Booth - - * cppfiles.c (struct _cpp_file): Rename once_only_next to - next_file. Remove import and pragma_once, add once_only. - (find_file): Add new file structures to the all_files list. - (should_stack_file): Mark #import-ed files once-only, and - don't stack them if the file has already been stacked. - (_cp_mark_file_once_only): Simplify. - * cpphash.h (struct cpp_reader): Rename once_only_files - to all_files. Rename saw_pragma_once to seen_once_only. - (_cpp_mark_file_once_only): Update prototype. - * cpplib.c (do_pragma_once): Update. - -2003-08-02 Neil Booth - - * cppfiles.c (ENOTDIR): Remove. - (open_file_in_dir): Rename find_file_in_dir. Handle errors - other than ENOENT here. - (once_only_file_p): Rename should_stack_file. - (find_file, open_file_failed, read_file_guts): Report errors - with full path name. - (read_file): Move pch handling to should_stack_file. - (should_stack_file): Handle PCH and once-only issues, and - reading the file. - (stack_file): Don't do file reads. - -2003-08-02 Zdenek Dvorak - - * libgcov.c (gcov_exit): Cleanup and fix. - * profile.c (compute_value_histograms): Don't try to read profiles - that are not present. - -2003-08-02 Kaveh R. Ghazi - - * builtins.def: Categorize. - - * builtins.def (BUILT_IN_CABS, BUILT_IN_CABSF, BUILT_IN_CABSL): - Mind fp rounding. - (BUILT_IN_FFSL): Use DEF_EXT_LIB_BUILTIN. - -2003-08-02 Andreas Tobler - - * config.gcc: Enable posix threads by default on darwin. - -2003-08-01 Jakub Jelinek - - * cfgcleanup.c (outgoing_edges_match): Check REG_EH_REGION notes - even if nehedges1 is 0. - -2003-08-01 Nathanael Nerode - - * fixinc/fixfixes.c, fixinc/fixlib.c, fixinc/fixlib.h, - fixinc/fixtests.c, fixinc/procopen.c, fixinc/server.c, - fixinc/server.h, fixinc/fixincl.c: ANSIfy function prototypes - and defintions. - - * fixinc/inclhack.def (broken_cabs): Make matching more generous. - * fixinc/fixincl.x: Regenerate. - * fixinc/tests/base/math.h: Regenerate to match test_text change. - -2003-08-01 Rainer Orth - - * ggc-common.c (gt_pch_restore): Case MAP_FAILED to void *. - -2003-08-01 Richard Kenner - - * except.c (sjlj_emit_dispatch_table): Use ptr_mode, not Pmode, - for accesses to exc_ptr. - -2003-08-01 Geoffrey Keating - - * doc/sourcebuild.texi (Front End Directory): Don't make references - to libsubdir, it's not part of the interface to frontends. - * doc/install.texi (Configuration): Help users read faster by saying - that GCC's configure options are the standard autoconf ones. - Mention --libdir. Update the default rules for finding the - assembler. Don't use libsubdir since we haven't said what it means. - (Specific): In the Solaris 7 notes, update the place to put the - assembler. - * doc/invoke.texi: Update lib/gcc-lib to lib/gcc. - * doc/cpp.texi (Search Path): Actually, the search path - depends on libdir, which can relocate with cpp. - * doc/tm.texi (Driver): Don't document STANDARD_EXEC_PREFIX, it's - now a private interface between the Makefile and the driver. - -2003-08-01 Richard Henderson - - * system.h: Poison ASM_SIMPLIFY_DWARF_ADDR. - - * varasm.c (lookup_constant_def): New function. - * rtl.h (lookup_constant_def): Declare it. - * dwarf2out.c (loc_descriptor_from_tree): Use it. - Use targetm.delegitimize_address, not ASM_SIMPLIFY_DWARF_ADDR. - -2003-08-01 Zack Weinberg - - * c-decl.c (gettags, pushdecl_function_level): Delete. - (last_function_parm_vars): Rename last_function_parm_others. - (current_function_parm_vars): Rename current_function_parm_others. - (struct c_scope): Rewrite comment explaining this data structure. - Add names_last, blocks_last, parms_last fields. Rename - incomplete_list to incomplete. - (SCOPE_LIST_APPEND, SCOPE_LIST_CONCAT): New macros. - (poplevel): Ignore second argument. No need to nreverse - anything. Restructure such that each list is processed - exactly once. Use 'const location_t *locus' syntactic sugar - variable where useful. Issue unused variable warnings - ourselves, do not rely on function.c. - (insert_block, pushdecl, bind_label): Use SCOPE_LIST_APPEND. - (pushdecl_top_level): Likewise. Don't call duplicate_decls. - (implicitly_declare): decl cannot be error_mark_node. - (undeclared_variable): Manipulate scope structure directly. - (c_make_fname_decl): Likewise. - (getdecls, c_init_decl_processing): Fix comment. - (mark_forward_parm_decls): Use SCOPE_LIST_CONCAT. No need - for 'last' variable. - (grokparms): No need to nreverse parms list. - (store_parm_decls_newstyle): Set up the parms_last and - names_last fields of the new scope too. - (store_parm_decls_oldstyle): Can assume DECL_WEAK is not set - on parms to begin with; check this under ENABLE_CHECKING. Set - up parms_last. - (check_for_loop_decls): Refer directly to current_scope->tags. - Use consistent quote style in diagnostics. - (c_write_global_declarations): The names list is not backward. - - * c-common.h: Don't prototype gettags. - * c-parse.in: Call poplevel with second argument 0 always. - -2003-08-01 Kaveh R. Ghazi - - * builtins.def: Resort builtins. - -2003-08-01 Kaveh R. Ghazi - - * builtins.def (DEF_GCC_BUILTIN, DEF_LIB_BUILTIN, - DEF_EXT_LIB_BUILTIN, DEF_C99_BUILTIN, DEF_C99_C90RES_BUILTIN): - Prepend "__builtin_" onto NAME with string concatenation. Remove - explicit "__builtin_" from each macro call. - - Reformat entire file. - -2003-08-01 Kaveh R. Ghazi - - * builtins.def (ATTR_MATHFN_ERRNO, ATTR_MATHFN_FPROUNDING, - ATTR_MATHFN_FPROUNDING_ERRNO): New macros. Use throughout. - -2003-08-01 Andreas Krebbel - - * config/s390/s390.c (s390_select_ccmode): Do not attempt to use CCL, - CCL1, or CCL2 modes with floating point operations. - - * config/s390/s390.md ("*addsf3_cc", "*addsf3_cconly", "*adddf3_cc", - "*adddf3_cconly", "*subsf3_cc", "*subsf3_cconly", "*subdf3_cc", - "*subdf3_cconly"): New insns. - ("*negabssi2", "*negabsdi2", "*negabsdf2", "*negabssf2"): Likewise. - -2003-08-01 Neil Booth - - * Makefile.in: Refine dependencies. - * c-opts.c (c_common_handle_option): Do nothing for -Wimport. - * c.opt: Update help for -Wimport. - * cppfiles.c: Include hashtab.h. Update comments. - (stack_file): Read the file before updating dependencies. - (once_only_file_p): Be smarter about marking once-only files. - (_cpp_mark_file_once_only): Correct the check for existence on - the list. - (open_file_failed): Use name not path, which is NULL. - * cpphash.h: Don't include hashtab.h. - (struct _cpp_file): Remove. - (struct cpp_reader): Update. - * cppinit.c (cpp_create_reader): Don't initialize warn_import. - * cpplib.h (struct cpp_options): Remove warn_import. - (cpp_simplify_path): Remove. - -2003-08-01 Nathan Sidwell - - PR c++/11295 - * doc/extend.texi (Statement Expressions): Document C++ semantics. - -2003-07-31 SUGIOKA Toshinobu - - * config.gcc (sh-*-linux*): Do not override sh/t-linux with sh/t-le. - -2003-07-31 Kaveh R. Ghazi - - * builtin-types.def: Use `LONGDOUBLE' instead of `LONG_DOUBLE' - throughout. - * builtins.def: Likewise. - -2003-07-31 Jason Merrill - - * Makefile.in (bubblestrap): Don't require a previous full - bootstrap. - - * expr.c (mostly_zeros_p): No longer static. - * tree.h: Declare it. - * stmt.c (resolve_asm_operand_names): Don't copy the pattern - unless we need to do substitutions. - -2003-07-31 Roger Sayle - - * fold-const.c (fold ): Optimize both x*pow(x,c) and - pow(x,c)*x as pow(x,c+1) for constant values c. Optimize x*x - as pow(x,2.0) when the latter will be expanded back into x*x. - (fold ): Optimize pow(x,c)/x as pow(x,c-1). - * builtins.c (expand_builtin_pow): Ignore flag_errno_math as - pow can never set errno when used with an integer exponent. - Always use expand_powi when exponent is -1, 0, 1 or 2. - (fold_builtin): Don't rewrite pow(x,2.0) as x*x nor pow(x,-2.0) - as 1.0/(x*x). This avoids unbounded recursion as we now prefer - the pow forms of these expressions. - -2003-07-31 Geoffrey Keating - - * Makefile.in (libexecdir): New. - (libsubdir): Use gcc instead of gcc-lib. - (libexecsubdir): New. - (ORDINARY_FLAGS_TO_PASS): Add libexecsubdir. - (DRIVER_DEFINES): Add STANDARD_LIBEXEC_PREFIX, use gcc instead of - gcc-lib. - (installdirs): Make libexecsubdir. - (install-common): Put executables in libexecsubdir. - (itoolsdir): Use libexecsubdir. - (itoolsdatadir): New. - (install-mkheaders): Separate data files and executables. - (install-collect2): Put executables in libexecsubdir. - (uninstall): Remove libexecsubdir. - * mkheaders.in: Update for new arrangement of files. - (libexecdir): New. - (libexecsubdir): New. - (itoolsdir): Use libexecsubdir. - (itoolsdatadir): New. - * gcc.c (gcc_libexec_prefix): New. - (STANDARD_LIBEXEC_PREFIX): Use gcc instead of gcc-lib. - (standard_exec_prefix_1): Use libexec. - (standard_exec_prefix_2): New. - (standard_libexec_prefix): New. - (process_command): Update for new arrangement of files. Compute - gcc_libexec_prefix. Update for change from gcc-lib to gcc. - -2003-07-31 Nathanael Nerode - - * inclhack.def (stdio_va_list): Avoid bogus replacement which - triggers on Interix. - * fixincl.x: Regenerate. - -2003-07-31 Jakub Jelinek - - * config/i386/i386.c (legitimate_pic_address_disp_p): Disallow TLS - SYMBOL_REFs not inside UNSPEC even in PLUS rtx. - -2003-07-31 Richard Kenner - - * dwarf2out.c (loc_descriptor_from_tree, case CONSTRUCTOR): New case. - -2003-07-31 Per Bothner - - * opts.c (in_fnames, num_in_fnames): Moved here from c-opts. - (add_input_filename): New function. - (handle_options): Call add_input_filename directly instead of - with a lang hook. - * opts.h (in_fnames, num_in_fnames): Moved here. - (add_input_filename): Declare. - * c-decl.c: Need to #include opts.h. - * Makefile.in (c-decl.o): Also depends on opts.h. - * c-opts.c (in_fnames, num_in_fnames): Moved to opts.c. - (c_common_handle_filename): Replaced by add_input_filename. - * c-common.h (in_fnames, num_in_fnames, c_common_handle_filename): - Remove. - * langhooks.h (struct lang_hooks): Remove handle_filename hook. - * langhooks-def.h (LANG_HOOKS_HANDLE_FILENAME): Remove macro. - (LANG_HOOKS_INITIALIZER): Remove use of LANG_HOOKS_HANDLE_FILENAME. - * c-lang.c (LANG_HOOKS_HANDLE_FILENAME): Remove macro. - -2003-07-31 Zdenek Dvorak - - * combine.c (try_combine): Set JUMP_LABEL for newly created - unconditional jump. - -2003-07-31 Zdenek Dvorak - - * fold-const.c (fold): Fold some comparisons of bit operations. - -2003-07-31 Jan Hubicka - - * cgraph.c (create_edge): Fix typo. - * i386.c (pic_symbolic_operand): Reorder tests. - -2003-07-31 Nathan Sidwell - - * doc/gcov.texi (Invoking Gcov): Describe output name mangling - more fully. - (Gcov Data Files): Update. - -2003-07-31 Rainer Orth - - * config.gcc (alpha*-dec-osf[45]*): Enable POSIX thread support by - default. - - * gthr-posix.c: New file. - * gthr-posix.h: Define _REENTRANT if missing. - Make _LIBOBJC #pragma weak visible with _LIBOBJC_WEAK. - - * config/alpha/t-osf4 (SHLIB_LINK): Hide dummy functions provided - by gthr-posix.o. - * config/alpha/t-osf-pthread: New file. - - * fixinc/inclhack.def (alpha_pthread): New fix. - * fixinc/fixincl.x: Regenerate. - * fixinc/tests/base/pthread.h [ALPHA_PTHREAD_CHECK]: New testcase. - - * doc/install.texi (alpha*-dec-osf*): Remove --enable-threads - warning. - Fixes PR bootstrap/9330. - -2003-07-31 Rainer Orth - - * configure.in (gcc_cv_ld_hidden): Also disable on mips-sgi-irix5* - without GNU ld. - Update comment. - * configure: Regenerate. - -2003-07-31 Vladimir Makarov - - * sched-deps.c (sched_analyze_2): Prevent interblock move of CC0 - setter. - -2003-07-30 Roger Sayle - - * builtins.def: Alphabetize. - -2003-07-30 Matt Kraai - - * doc/c-tree.texi: Normalize spellings of "lowercase" and - "uppercase". - * doc/cpp.texi: Likewise. - * doc/md.texi: Likewise. - * doc/rtl.texi: Likewise. - * doc/tm.texi: Likewise. - -2003-07-30 Matt Kraai - - * objc/Make-lang.in (objc.stage1, objc.stage2, objc.stage3) - (objc.stage4, objc.stageprofile, objc.stagefeedback): Remove moves - of cc1obj. - -2003-07-30 Chris Demetriou - - * config/mips/mips.h (SIZE_TYPE, PTRDIFF_TYPE): Undef these - macros before defining them. - -2003-07-31 Ulrich Weigand - - * config/s390/s390.md (UNSPEC_ROUND, UNSPEC_SETHIGH, - UNSPECV_BLOCKAGE): New constants. - ("*sethighqisi", "*sethighhisi", "*sethiqidi_64", "*sethiqidi_31", - "*extractqi", "*extracthi", "*extendqidi2" splitter, "*extendqisi2" - splitter, "fix_truncdfdi2_ieee", "fix_truncdfsi2_ieee", - "fix_truncsfdi2", "fix_truncsfsi2", "blockage"): Use them. - - (all insns and expanders): Write output control string as brace block - where appropriate. Remove \-escapes for doublequote characters. - -2003-07-31 Jan Hubicka - - * gcse.c (insert_store): Fix typo in previous patch. - -2003-07-30 Neil Booth - - * cppfiles.c (stack_file, open_file_failed): Use path for deps. - -2003-07-30 Andi Kleen - - * loop.c (check_dbra_loop): Allow LTU in the loop condition. - -2003-07-30 Zdenek Dvorak - - * combine.c (distribute_notes): Cancel REG_VALUE_PROFILE notes. - * gcov-io.h (GCOV_FIRST_VALUE_COUNTER, GCOV_LAST_VALUE_COUNTER, - GCOV_N_VALUE_COUNTERS): New. - * profile.c (compute_value_histograms): New static function. - (branch_prob): Read back the value histograms. - * rtl.c (reg_note_name): Add name for REG_VALUE_PROFILE note. - * rtl.h (enum reg_note): Add REG_VALUE_PROFILE note. - * value-prof.c: Add comment on reading the profile. - * value-prof.h (COUNTER_FOR_HIST_TYPE, HIST_TYPE_FOR_COUNTER): New. - * doc/invoke.texi (-fprofile-values): Document behavior with - -fbranch-probabilities. - -2003-07-30 David Edelsohn - - * longlong.h (PowerPC umul_ppmm): Do not test __vxworks__. - -2003-07-30 Ulrich Weigand - - * config/s390/s390.h (EH_RETURN_HANDLER_RTX): Compute offset - symbolically. - -2003-07-30 Jan Hubicka - - * gcse.c (insert_store): Ignore fake edges. - - * c-common.c (flag_vtable_gc): Kill. - * c-common.g (flag_vtable_gc): Kill. - * c-opts (c_common_handle_option): Kill. - * c.opt (fvtable-gc): Kill. - * final.c (final_scan_insn): Do not call assemble_vtable_entry. - * output.h (assemble_vtable_entry, assemble_vtable_inherit): Kill. - * varasm.c (assemble_vtable_entry, assemble_vtable_inherit): Kill. - - * invoke.texi (-ftable-gc): Kill documentation. - - * tree-inline.c (inlinable_function_p): Don't set DECL_UNINLINABLE - just because function body is missing. - - * i386.c (pic_symbolic_operand): Properly detect RIP relative unspecs. - -2003-07-30 Ranjit Mathew - - * unwind-sjlj.c: Fix typo in file description. - -2003-07-30 Alan Modra - - * calls.c (load_register_parameters): When shifting reg sized values - to the msb, move the value to a reg first. - -2003-07-29 Geoffrey Keating - - * cppfiles.c (stack_file): Leave filename as "" rather than "". - * line-map.h (linemap_add): Update comments. - * line-map.c (linemap_add): Update comments, interpret zero-length - filename as "". - -2003-07-29 Nathanael Nerode - - * mkinstalldirs: Import autoconf 2.57 / automake 1.7 version. - -2003-07-29 Zack Weinberg - - * c-decl.c (last_function_parm_vars, current_function_parm_vars): - New static variables. - (struct c_scope): Add parms and warned_forward_parm_decls - fields; remove parm_order. - (storedecls, storetags): Delete. - (poplevel): Also clear bindings on the parms chain. - (pushdecl): Handle forward declarations of parameters, and - chain PARM_DECLs on the parms list, not the names list. - (lookup_name_current_level): Check for PARM_DECLs on the parms - list too. - (push_parm_decl): Don't update parm_order. - (clear_parm_order): Rename mark_forward_parm_decls. Issue the - warning, only once per parameter list, and set TREE_ASM_WRITTEN - on the decls here. Then move the forward decls to the names list. - (grokparms): Set last_function_parm_vars. - (get_parm_info): Don't use gettags or getdecls. No need to - extract non-parms from the parms list, or reorganize the parms - list. Feed nonparms back in the TREE_TYPE of the list node - returned. Issue only one error per parameter list for "void" - appearing more than once in said parameter list. Collapse - parmlist_tags_warning into this function to avoid double scan - of tags list. - (start_function): Set current_function_parm_vars. - (store_parm_decls_newstyle): Bypass pushdecl, manipulate scope - directly. Get non-parms from current_function_parm_vars; no - need to extract them from the parms chain. Properly bind tags - in the new scope. - (store_parm_decls_oldstyle): No need to extract non-parameters - from the parms chain, nor to store them back afterward. Move - declaration to top of function, restructure code reordering - DECL_ARGUMENTS. - (store_parm_decls): No need to save and restore warn_shadow. - * c-parse.in: Don't call parmlist_tags_warning nor - clear_parm_order. Call mark_forward_parm_decls when forward - parm decls are encountered. - * c-tree.h: Prototype mark_forward_parm_decls; not - clear_parm_order or parmlist_tags_warning. - -2003-07-29 Geoffrey Keating - - * c-common.c (allow_pch): Remove. - * c-common.h (allow_pch): Remove. - (c_common_no_more_pch): Declare. - * c-lex.c (c_lex): Call c_common_no_more_pch when appropriate. - * c-pch.c: Include hosthooks.h. - (c_common_valid_pch): Don't check allow_pch. - (c_common_read_pch): Clear valid_pch to prevent reading PCH files. - (c_common_no_more_pch): New. - * ggc-common.c: Include hosthooks.h. - (gt_pch_save): Call gt_pch_get_address. - (gt_pch_restore): Call gt_pch_use_address. - * hooks.c (hook_voidp_size_t_null): New. - (hook_bool_voidp_size_t_false): New. - * hooks.h (hook_voidp_size_t_null): New. - (hook_bool_voidp_size_t_false): New. - * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): New. - (HOST_HOOKS_GT_PCH_USE_ADDRESS): New. - (HOST_HOOKS_INITIALIZER): Add HOST_HOOKS_GT_PCH_GET_ADDRESS, - HOST_HOOKS_GT_PCH_USE_ADDRESS. - * hosthooks.h (struct host_hooks): Add gt_pch_get_address, - gt_pch_use_address. - * doc/hostconfig.texi (Host Common): Document - HOST_HOOKS_GT_PCH_GET_ADDRESS, HOST_HOOKS_GT_PCH_USE_ADDRESS. - * Makefile.in (c-pch.o): Depend on hosthooks.h. - (ggc-common.o): Likewise. - - * config/rs6000/host-darwin.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Define. - (HOST_HOOKS_GT_PCH_USE_ADDRESS): Define. - (pch_address_space): New. - (darwin_rs6000_gt_pch_get_address): New. - (darwin_rs6000_gt_pch_use_address): New. - -2003-07-29 Neil Booth - - PR preprocessor/11569 - PR preprocessor/11649 - * Makefile.in (LIBCPP_DEPS): Add HASHTAB_H. - * cppfiles.c: Completely rewritten. - * c-incpath.c (free_path, remove_duplicates, heads, tails, add_path): - struct cpp_path is now struct cpp_dir. - (remove_duplicates): Don't simplify path names. - * c-opts.c (c_common_parse_file): cpp_read_next_file renamed - cpp_stack_file. - * cpphash.h: Include hashtab.h. - (_cpp_file): Declare. - (struct cpp_buffer): struct include_file is now struct _cpp_file, - and struct cpp_path is now struct cpp_dir. Rename members. - (struct cpp_reader): Similarly. New members once_only_files, - file_hash, file_hash_entries, quote_ignores_source_dir, - no_search_path, saw_pragma_once. Remove all_include_files and - max_include_len. Make some members bool. - (_cpp_mark_only_only): Renamed from _cpp_never_reread. - (_cpp_stack_file): Renamed from _cpp_read_file. - (_cpp_stack_include): Renamed from _cpp_execute_include. - (_cpp_init_files): Renamed from _cpp_init_includes. - (_cpp_cleanup_files): Renamed from _cpp_cleanup_includes. - * cppinit.c (cpp_create_reader): Initialize no_search_path. Update. - (cpp_read_next_file): Rename and move to cppfiles.c. - (cpp_read_main_file): Update. - * cpplib.c (run_directive): Update for renamed members. - (do_include_common, _cpp_pop_buffer): Update. - (do_import): Undeprecate #import. - (do_pragma_once): Undeprecate. Use _cpp_mark_file_once_only. - * cpplib.h: Remove file_name_map_list. - (cpp_options): Remove map_list. - (cpp_dir): Rename from cpp_path. New datatype for name_map. - (cpp_set_include_chains, cpp_stack_file, cpp_included): Update. - -2003-07-29 Phil Edwards - - * Makefile.in: Make stamp-objdir safe for parallel builds. - -2003-07-29 Phil Edwards - - * Makefile.in (stmp-docobjdir): New target; ensure $docobjdir exists. - (info): Depend on stmp-docobjdir. - -2003-07-29 Rainer Orth - - * configure: Regenerate. - -2003-07-29 Jan Hubicka - - PR C++/11131 - * tree-inline.c (expand_call_inline): Always call inlinable_function_p - in !unit-at-a-time mode. - -2003-07-28 Geoffrey Keating - - * c-decl.c (c_expand_body_1): Use C_DECL_FILE_SCOPE to detect - main function. - -2003-07-28 Mark Mitchell - - PR c++/11667 - * c-common.c (shorten_compare): Take into account differences - between C and C++ representation for enumeration types. - * tree.h (set_min_and_max_values_for_integral_type): Declare. - * stor-layout.c (set_min_and_max_values_for_integral_type): New - function, broken out from ... - (fixup_signed_type): ... here and ... - (fixup_unsigned_type): ... here. - -2003-07-28 Zack Weinberg - - * c-decl.c: Update commentary, adjust blank lines throughout. - (struct c_scope): Fix indentation. Reorder members so - outer-context pointers come first, booleans last. - (duplicate_decls, define_label): Use a 'locus' variable for - diagnostic locations in a few more places. - (warn_if_shadowing): Un-split a conditional that fits on one line. - (c_init_decl_processing): No need to clear current_scope and - current_function_scope. - (start_decl): Merge if/else if statements with same action. - (push_parm_decl): Rename old_immediate_size_expand to use - save_foo convention; save/restore around entire function. - (grokdeclarator): Remove unnecessary braces. - -2003-07-28 Hans-Peter Nilsson - Michael Culbertson - - * c-parse.in (lineno_stmt_decl_or_labels_ending_decl): Also warn - when warn_declaration_after_statement. Call pedwarn_c90, not - pedwarn. Correct message: it's "ISO C90", not "ISO C89". - * c-common.c (warn_declaration_after_statement): Define. - * c-common.h (warn_declaration_after_statement): Declare. - * c.opt (Wdeclaration-after-statement): New. - * c-errors.c (pedwarn_c90): New function. - * c-opts.c (c_common_handle_option) : New. - * c-tree.h (pedwarn_c90): Declare. - * doc/invoke.texi (Option Summary): Document - -Wdeclaration-after-statement. - (Warning Options): Ditto. - -2003-07-28 Jan Hubicka - - * i386.md (memory attribute) Avoid accessing uninitialized memory - for ishift1 type instructions. - -2003-07-28 Jakub Jelinek - - * configure.in (--enable-checking): Add fold category. - (ENABLE_FOLD_CHECKING): Define if requested. - * configure: Rebuilt. - * config.in: Rebuilt. - * doc/install.texi: Document it. - * fold-const.c: Include md5.h. - [ENABLE_FOLD_CHECKING] (fold): Define to fold_1. - [ENABLE_FOLD_CHECKING] (fold, fold_checksum_tree, fold_check_failed, - print_fold_checksum): New functions. - - * fold-const.c (fold): Never modify argument passed to fold, instead - change a copy and return it. - * convert.c (convert_to_integer): Likewise. - -2003-07-27 Nathanael Nerode - - * fixinc/fixinc.svr4: Remove dead code. Remove now-unnecessary - cleanup of junk after #else and #endif directives. Collapse repeated - clauses into for statment. - - * fixinc/fixincl.sh: GNU C -> GCC. Add usage comment. - -2003-07-27 Zack Weinberg - - * c-decl.c (struct c_scope): Remove keep_if_subblocks field. - (keep_next_if_subblocks): Rename next_is_function_body. - (pushlevel): Adjust commentary. Always set ->keep on the - outermost level of a function. Don't set ->keep_if_subblocks. - (poplevel): Adjust commentary. Don't look at ->keep_if_subblocks. - (store_parm_decls): Adjust to match. - (finish_function): Adjust to match. - Call poplevel with all three arguments zero. - - * c-decl.c (store_parm_decls_newstyle, store_parm_decls_oldstyle): - New functions split out of store_parm_decls. - Avoid unnecessary work. Use local variables consistently. - (store_parm_decls): Likewise. - - (finish_function): No need to set functionbody flag on call to - poplevel. - (struct language_function): Remove scope field. - (c_push_function_context, c_pop_function_context): No need to - save and restore current_scope. - -2003-07-27 Nathan Sidwell - - * doc/extend.texi (Deprecated Features): Implicit typename is - gone. Default args on types is going. - -2003-07-26 J"orn Rennecke - - * Makefile.in (ifcvt.o): Depend on target.h - * ifcvt.c (target.h): Include. - (if_convert): Don't call mark_loop_exit_edges if we can't - modify jumps. - -2003-07-26 Gerald Pfeifer - - * doc/install.texi (Testing): Adjust required versions of DejaGnu. - -2003-07-26 Richard Henderson - - PR inline-asm/11676 - * cse.c (count_reg_usage): Handle asm_operands properly. - -2003-07-26 Roger Sayle - - * builtins.def (DEF_FALLBACK_BUILTIN): Delete. - (DEF_EXT_FALLBACK_BUILTIN): Delete. - (BUILT_IN_BZERO, BUILT_IN_BCOPY, BUILT_IN_BCMP): Declare using - the regular DEF_EXT_LIB_BUILTIN macro. - (BUILT_IN_FPUTC, BUILT_IN_FPUTS, BUILT_IN_FWRITE): Declare using - the regular DEF_LIB_BUILTIN macro. - (BUILT_IN_PUTCHAR_UNLOCKED, BUILT_IN_PUTS_UNLOCKED, - BUILT_IN_FPUTC_UNLOCKED, BUILT_IN_FPUTS_UNLOCKED, - BUILT_IN_FWRITE_UNLOCKED): Declare using the regular - DEF_EXT_LIB_BUILTIN macro. - - * c-decl.c (duplicate_decls): Remove code to handle builtin - functions prototyped without an argument list. - -2003-07-26 Danny Smith - - * config/i386/winnt.c: Revert 2003-07-08 change. - (i386_pe_section_type_flags): Remove error_with_decl here too. - -2003-07-26 Gabriel Dos Reis - - * config/arm/pe.c (arm_mark_dllimport): Don't use xxx_with_decl. - * config/mcore/mcore.c (mcore_mark_dllimport): Likewise. - * config/v850/v850.c (v850_handle_data_area_attribute): Likewise. - (v850_handle_data_area_attribute): Likewise. - -2003-07-26 Geoffrey Keating - - * varasm.c (output_constant_def_contents): Use - ASM_DECLARE_CONSTANT_NAME if defined. - * doc/tm.texi (Label Output): Document ASM_DECLARE_CONSTANT_NAME. - * config/darwin.h (ASM_DECLARE_OBJECT_NAME): Ensure zero-sized - objects get at least one byte to prevent assembler problems. - (ASM_DECLARE_CONSTANT_NAME): New. - - * Makefile.in (libbackend.o): Remove options_.h. - (mostlyclean): Likewise. - - * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Don't - insert a label at the end of an function under Mach-O. - - * c-decl.c (c_static_assembler_name): Remove TREE_STATIC test. - -2003-07-25 Aldy Hernandez - - * config/rs6000/rs6000.c (is_ev64_opaque_type): Only check pointer - equality. - (spe_init_builtins): Declare __ev64_opaque__ as a builtin type. - - * config/rs6000/spe.h: Remove __ev64_opaque__ definition. - -2003-07-25 Gabriel Dos Reis - - * doc/passes.texi (Passes): Mention pretty-printing and - diagnostic files. - -2003-07-25 Nathan Sidwell - - * doc/extend.texi (Function Attributes): GNU C++ does now allow - unused parameter decls. - (Attribute Syntax): GNU C++ does not allow label attributes to be - after the ':'. - -2003-07-25 Gabriel Dos Reis - - * objc/objc-act.c (objc_check_decl): Don't use xxx_with_decl. - (objc_declare_class): Likewise. - (error_with_ivar): Likewise. - (start_class): Likewise. - (warn_with_method): Likewise. - -2003-07-25 Gabriel Dos Reis - - Remove pedwarn_with_decl, warning_with_decl and error_with_decl - from GCC. - * calls.c (try_to_integrate): Don't use xxx_with_decl. - (expand_call): Likewise. - * dwarfout.c (output_reg_number): Likewise. - * expr.c (expand_expr): Likewise. - * function.c (assign_temp): Likewise. - (uninitialized_vars_warning): Likewise. - (setjmp_args_warning): Likewise. - (expand_function_end): Likewise. - * stmt.c (fixup_gotos): Likewise. - (warn_about_unused_variables): Likewise. - (expand_end_bindings): Likewise. - * stor-layout.c (layout_decl): Likewise. - (place_field): Likewise. - * toplev.c (check_global_declarations): Likewise. - (rest_of_handle_inlining): Likewise. - (default_tree_printer): New function. - (general_init): Initialize diagnostic machinery before routing - signals to the ICE machinery. Set default tree printer. - * toplev.h (pedwarn_with_decl): Remove declaration. - (warning_with_decl): Likewise. - (error_with_decl): Likewise. - (pedwarn): Remove attribute for the time being. - * tree-inline.c (expand_call_inline): Don't use xxx_with_decl. - * varasm.c (named_section): Likewise. - (make_decl_rtl): Likewise. - (assemble_variable): Likewise. - (merge_weak): Likewise. - (declare_weak): Likewise. - - * diagnostic.h: Move non-diagnostic stuff into pretty-print.h. - * diagnostic.c: Move non-diagnostic stuff into pretty-print.c. - (format_with_decl): Remove. - (diagnostic_for_decl): Likewise. - (pedwarn_with_decl): Likewise. - (warning_with_decl): Likewise. - (error_with_decl): Likewise. - (diagnostic_initialize): Adjust. - (diagnostic_count_diagnostic): Likewise. - (announce_function): Likewise. - (lhd_print_error_function): Likewise. - (diagnostic_report_current_module): Likewise. - (default_diagnostic_starter): Likewise. - (diagnostic_report_diagnostic): Likewise. - (default_diagnostic_finalizer): Likewise. - (verbatim): Likewise. - (error): Likewise. - (warning): Likewise. - * opts.c (common_handle_option): Likewise. - * pretty-print.c: New file. - * c-pretty-print.h (pp_base): Override. - * c-pretty-print.c: Adjust use of macros throughout. - (pp_buffer): New macro. - (pp_newline): Likewise. - * c-objc-common.c (c_tree_printer): Adjust prototype. Tidy. - * Makefile.in (DIAGNOSTIC_H): New variable. - (c-errors.o): Use it. - (c-objc-common.o): Likewise. - (c-common.o): Likewise. - (c-opts.o): Likewise. - (c-format.o): Likewise. - (diagnostic.o): Likewise. - (opts.o): Likewise. - (toplev.o): Likewise. - (rtl-error.o): Likewise. - (dwarf2out.o): Likewise. - (jump.o): Likewise. - (pretty-print.o): New rule. - -2003-07-24 Roger Sayle - - * builtins.def (BUILT_IN_PRINTF, BUILT_IN_FPRINTF): Changed from - front-end builtins to normal builtins, using DEF_LIB_BUILTIN. - (BUILT_IN_PRINTF_UNLOCKED, BUILT_IN_FPRINTF_UNLOCKED): Changed - from front-end to normal builtins, using DEF_EXT_LIB_BUILTIN. - (DEF_FRONT_END_LIB_BUILTIN): Delete. - (DEF_EXT_FRONT_END_LIB_BUILTIN): Delete. - (BUILT_IN_FWRITE_UNLOCKED): Wrap long line. - - * builtins.c (build_string_literal): New function to construct - a char* pointer to a string literal. - (expand_builtin_fputs): Change 2nd argument from "int ignore" to - "rtx target" to be consistent with other expand_builtin_* functions. - Change 3rd argument from "int unlocked" to "bool unlocked". - (expand_builtin_printf): Rewrite of c_expand_builtin_printf from - c-common.c to avoid front-end dependencies. Optimize printf("") - as a no-op when the result isn't required. Handle embedded NULs - in format string. - (expand_builtin_fprintf): A rewrite of c_expand_builtin_fprintf - from c-common.c to avoid front-end dependencies. Likewise, optimize - fprintf(fp,"") as a no-op when the result isn't required, evaluating - fp for side-effects. Handle embedded NULs in format string. - (expand_builtin_sprintf): Fix typo. - (expand_builtin): Don't expand BUILT_IN_FPRINT{,_UNLOCKED} when not - optimizing. Adjust calls of expand_builtin_fputs to match the API - change. Expand BUILT_IN_PRINTF and BUILT_IN_PRINTF_UNLOCKED using - expand_builtin_printf. Likewise, expand BUILT_IN_FPRINTF_UNLOCKED - and BUILT_IN_FPRINTF using expand_builtin_fprintf. - - * c-common.c (is_valid_printf_arglist): Delete. - (c_expand_builtin): Delete. - (c_expand_builtin_printf): Moved to builtins.c. Delete. - (c_expand_builtin_fprintf): Moved to builtins.c. Delete. - (c_expand_expr): No longer treat CALL_EXPRs specially. - (CALLED_AS_BUILT_IN): Delete. - -2003-07-24 Zdenek Dvorak - - PR optimization/11631 - * gcse.c (store_motion): Connect infinite loops to exit. - -2003-07-24 Jason Merrill - - * tree.h (boolean_type_node): Move from C/C++/Java frontends. - (boolean_true_node, boolean_false_node): Likewise. - (enum tree_index): Add TI_BOOLEAN_{TYPE,FALSE,TRUE}. - * tree.c (build_common_tree_nodes): Init boolean_type_node. - (build_common_tree_nodes_2): Init boolean_{true,false}_node. - * stor-layout.c (set_sizetype): Handle an early BOOLEAN_TYPE. - * c-common.h (truthvalue_type_node): Renamed from boolean_type_node. - (truthvalue_true_node): Renamed from boolean_true_node. - (truthvalue_false_node): Renamed from boolean_false_node. - * c-decl.c: Just set truthvalue_* to integer_*. - * c-*.[ch]: s/boolean/truthvalue/. s/c_bool/boolean/. - -2003-07-24 Roger Sayle - - * c-decl.c (match_builtin_function_types): New subroutine of - duplicate_decls to test whether a redeclaration of a builtin - function is suitably close, i.e. the return type and all of - the argument types have the same modes as the builtin expects. - (duplicate_decls): Fuzzy type matching for builtin functions - moved to match_builtin_function_types. - -2003-07-24 Zdenek Dvorak - - * cfgloopmanip.c (duplicate_loop_to_header_edge): Update irreducible - flag correctly. - -2003-07-24 Zack Weinberg - - * c-decl.c: Search-and-replace change 'binding level' to - 'scope' in commentary. - (struct binding_level): Now struct c_scope. - (current_binding_level): Now current_scope. - (free_binding_level): Now scope_freelist. - (current_function_level): Now current_function_scope. - (global_binding_level): Now global_scope. - (make_binding_level): Now make_scope. - (pop_binding_level): Now pop_scope. - -2003-07-24 Rainer Orth - - * configure.in (libgcc_visibility): Add missing whitespace. - -2003-07-24 Richard Henderson - - * libgcc-std.ver (GCC_3.3.1): Export __gcc_personality_sj0, - __gcc_personality_v0. - -2003-07-24 Rainer Orth - - * Makefile.in: Replace pwd by ${PWD_COMMAND}. - -2003-07-24 Nathan Sidwell - - * doc/invoke.texi (-fprofile-arcs, -ftest-coverage): Update - documentation missed from my 2003-07-09 patch. - -2003-07-24 Nathanael Nerode - - * aclocal.m4 (_gcc_COMPUTE_GAS_VERSION): Set patch level to 0 if - it's not provided. - * configure: Rebuild. - -2003-07-24 Steven Bosscher - - PR c/10602 - * c-typeck.c (type_lists_compatible_p): Do not compare - arguments if one of them is an error_mark_node - -2003-07-24 Alan Modra - - * config/rs6000/rs6000.c (rs6000_emit_prologue): Save fp regs inline - if current_function_calls_eh_return. - -2003-07-23 Mark Mitchell - - * doc/c-tree.texi (OFFSET_TYPE): Update description. - -2003-07-23 Bob Wilson - - * config/xtensa/crti.asm (_init, _fini): Increase frame size to 64. - * config/xtensa/lib1funcs.asm (__mulsi3, __udivsi3, __divsi3, - __umodsi3, __modsi3): Increase frame size to 32. - -2003-07-23 Geoffrey Keating - - * config/rs6000/host-darwin.c: ANSIfy, update comment for sigaltstack - prototype. - -2003-07-23 Mark Mitchell - - * doc/c-tree.texi (Types): Update documentation for OFFSET_TYPE. - - PR optimization/10679 - * tree-inline.c (inlinable_function_p): Honor MIN_INLINE_INSNS. - -2003-07-23 John David Anglin - - PR target/11607 and PR target/11516 - * pa.md (extzv, extv, insv): Revert latter half of last patch. - -2003-07-22 Mark Mitchell - - * fold-const.c (force_fit_type): Handle OFFSET_TYPE. - * varasam.c (output_constant): Likewise. - -2003-07-22 Kazu Hirata - - * alias.c: Fix comment formatting. - * c-common.c: Likewise. - * c-decl.c: Likewise. - * c-opts.c: Likewise. - * combine.c: Likewise. - * cpplib.c: Likewise. - * diagnostic.c: Likewise. - * dojump.c: Likewise. - * final.c: Likewise. - * fold-const.c: Likewise. - * gcc.c: Likewise. - * gcse.c: Likewise. - * ggc-page.c: Likewise. - * jump.c: Likewise. - * loop.c: Likewise. - * mips-tfile.c: Likewise. - * recog.c: Likewise. - * regclass.c: Likewise. - * regmove.c: Likewise. - * tree.c: Likewise. - * tree.h: Likewise. - -2003-07-22 Per Bothner - - * line-map.c (add_line_map): Handle invalid LEAVE request. - Fixes PR preprocessor/11361. - -2003-07-22 Per Bothner - - * diagnostic.c.(diagnostic_report_current_module): Update to match - 2003-06-05 changes to push_srcloc and pop_srcloc. - -2003-07-22 Wolfgang Bangerth - - * doc/trouble.texi: Better document two-stage name lookup. - -2003-07-22 Eric Christopher - - * config/s390.c (s390_valid_pointer_mode): New. - (TARGET_VALID_POINTER_MODE): Use. - (s390_emit_prologue): Add tpf profiling hooks. - (s390_emit_epilogue): Ditto. - * config/s390.h (MASK_TPF): New. - (TARGET_TPF): Use. - (POINTERS_EXTEND_UNSIGNED): Define. - * config/s390.md (ptr_extend): New pattern. - -2003-07-22 Zack Weinberg - - * hashtable.c (approx_sqrt): Make static. - * hashtable.h: Don't prototype approx_sqrt. - * line-map.c (init_line_maps): Rename linemap_init. - (free_line_maps): Rename linemap_free. - (add_line_map): Rename linemap_add. - (lookup_line): Rename linemap_lookup. - (print_containing_files): Rename linemap_print_containing_files. - * linemap.h: Update to match. - - * cpperror.c, cppinit.c, cpplib.c, cppmacro.c: Update calls to - linemap routines to use new names. - -2003-07-16 Nathan Sidwell - - * c-common.c (handle_packed_attribute): Don't pack a struct via a - typedef. Propagate packedness from a main variant. - -2003-07-22 Nathanael Nerode - - * Makefile.in (install-common): Add dependency on installdirs. - -2003-07-21 Alexandre Oliva - - * c-common.c (c_common_type_for_mode): Return integer types for - pointer modes. - -2003-07-22 Geoffrey Keating - - * c-decl.c (start_decl): Don't call maybe_apply_pragma_weak here. - (finish_decl): Call maybe_apply_pragma_weak here. - (grokdeclarator): Check that DECL_ASSEMBLER_NAME isn't set before - TREE_PUBLIC and TREE_STATIC are decided. - (start_function): Move call to maybe_apply_pragma_weak. Check that - DECL_ASSEMBLER_NAME isn't set too early. - - * cpplex.c (_cpp_process_line_notes): Mention option name in - trigraphs warning. - -2003-07-22 Kazu Hirata - - * combine.c (if_then_else_cond): Simplify the comparison of - rtx against -1, 0, and 1. - * loop.c (check_dbra_loop): Likewise. - * optabs.c (emit_conditional_move): Likewise. - (emit_conditional_add): Likewise. - * config/i386/i386.md (*movsi_or): Likewise. - (*movdi_or_rex6): Likewise. - -2003-07-22 Jan Hubicka - - * cgraphunit.c (cgraph_finalize_compilation_unit): Remove redundant if. - -2003-07-21 Neil Booth - - * cppfiles.c (open_file_pch): Don't put unused entries in the - splay tree. Remove dead code. - -2003-07-21 Geoffrey Keating - - * c-common.h (num_in_fnames): Declare. - (c_static_assembler_name): Move from here... - * c-tree.h (c_static_assembler_name): ... to here. - * c-opts.c: Don't include langhooks-def.h. - (c_static_assembler_name): Move to c-decl.c. - (num_in_fnames): Make externally visible. - * c-decl.c: Include langhooks-def.h. - (c_static_assembler_name): Move from c-opts.c. - * Makefile.in (c-decl.o): Add $(LANGHOOKS_DEF_H). - (c-opts.o): Remove $(LANGHOOKS_DEF_H). - - * c-pragma.c (maybe_apply_pragma_weak): Don't get DECL_ASSEMBLER_NAME - when it's not needed. - -2003-07-21 Jakub Jelinek - - * config/rs6000/rs6000.h (machine_function): Add ra_need_lr. - * config/rs6000/rs6000.c (rs6000_return_addr): Set it. - (rs6000_emit_prologue): Save FPRs inline if set. - -2003-07-21 H.J. Lu - - * config/ia64/ia64.md (prefetch): Support predicate. - -2003-07-21 Josef Zlomek - - * cfgcleanup.c (merge_blocks_move_successor_nojumps): Use tablejump_p. - * rtlanal.c (tablejump_p): Use next_active_insn for finding the jump - table. - -2003-07-17 Eric Botcazou - - PR optimization/11536 - * unroll.c (loop_iterations): Do not replace a register holding - the final value by its equivalent before the loop if it is not - invariant. - -2003-07-21 Dave Fluri - - * doc/extend.texi: Fixes to spelling, grammar, and diction. - -2003-07-21 Ben Elliston - - * doc/invoke.texi (Optimize Options): Replace "it's" with "its". - (V850 Options): Spelling fixes. - -2003-07-20 Lisa M. Goldstein - - * doc/invoke.texi: Fixes to style, grammar and diction. - -2003-07-20 Roger Sayle - - * builtins.def (BUILT_IN_ALLOCA): Remove "#if SMALL_STACK" form. - * system.h (SMALL_STACK): Poison obsolete target macro. - * doc/tm.texi (SMALL_STACK): Remove target macro documentation. - -2003-07-20 Phil Edwards - - * configure.in: Cache the results of testing for cmp's capabilities. - * configure: Regenerate. - -2003-07-20 Mark Mitchell - - PR debug/11279 - * dwarf2out.c (gen_enumeration_type_die): Remember that - enumerators can be unsigned. - -2003-07-19 Zack Weinberg - - * c-decl.c (named_labels, shadowed_labels, label_level_chain) - (push_label_level, pop_label_level): Kill. - (struct binding_level): Rename level_chain to outer. - Add outer_function field. Change parm_flag, function_body, - keep, keep_if_subblocks to 1-bit bitfields of type bool. - (current_function_level): New variable. - (keep_next_level_flag, keep_next_if_subblocks): Change type to bool. - (keep_next_level, declare_parm_level, warn_if_shadowing): - Update to match. - (struct language_function): Kill named_labels, shadowed_labels fields. - (c_init_decl_processing, start_function, c_push__function_context) - (c_pop_function_context): No need to muck with named_labels nor - shadowed_labels. - - (make_binding_level): No need to clear the structure here. - (pop_binding_level): Always operate on current_binding_level. - Update current_function_level if necessary. - (pushlevel): Don't clear named_labels. Update current_function_level - if necessary. Use "true" and "false" where appropriate. - (poplevel): Diagnose labels defined but not used, or vice - versa, and clear out label-meanings leaving scope, while - walking down the decls list, for all binding levels. - Handle LABEL_DECLs appearing in the shadowed list. - pop_binding_level takes no arguments. - (pushdecl_function_level): Use current_function_level. - - (make_label, bind_label): New static functions. - (declare_label): New exported function. - (lookup_label, define_label): Rewritten for new data structure. - (shadow_label): Kill. - - * c-tree.h: Prototype declare_label; don't prototype - push_label_level, pop_label_level, nor shadow_label. - * c-parse.in: Remove all calls to push_label_level and - pop_label_level. Use declare_label for __label__ decls. - - * doc/extend.texi: Clarify that __label__ can be used to - declare labels with local scope in any nested block, not - just statement expressions. Cross-reference nested functions - section from local labels section. - -2003-07-19 Zdenek Dvorak - - * sched-rgn.c (find_rgns): Initialize current_edge correctly. - -2003-07-19 Phil Edwards - - * doc/makefile.texi (restrap, profiledbootstrap): Document targets. - -2003-07-19 Kaveh R. Ghazi - - * fixinc/fixfixes.c fixinc/fixincl.c fixinc/fixlib.c - fixinc/server.c objc/objc-act.c: Remove unnecessary casts. - -2003-07-19 Ulrich Weigand - - * config/s390/s390.c (legitimize_pic_address): Access local symbols - relative to the GOT instead of relative to the literal pool base. - (s390_output_symbolic_const): Handle new GOT-relative accesses. - * config/s390/s390.md ("call"): Access local functions and PLT stubs - relative to the GOT instead of relative to the literal pool base. - ("call_value"): Likewise. - ("call_value_tls"): Likewise. - - * config/s390/s390.c (s390_chunkify_start): Remove pool anchor - reloading. Support LTREL_BASE / LTREL_OFFSET construct. - (s390_chunkify_finish): Likewise. - (s390_chunkify_cancel): Likewise. - (s390_reorg): Adapt caller. - (find_base_register_in_addr, - find_base_register_ref, replace_base_register_ref): Delete. - (find_ltrel_base, replace_ltrel_base): New functions. - (find_constant_pool_ref): Handle LTREL_BASE unspecs. - (s390_decompose_address): Handle LTREL_BASE unspecs. Optimize - base vs. index register usage. - (struct constant_pool): Remove 'anchor'. - (s390_add_anchor): Delete. - (s390_dump_pool): Remove anchor handling. - * config/s390/s390.md ("reload_anchor"): Remove. - - * config/s390/s390.c (s390_split_branches): Use LTREL_BASE/OFFSET. - (s390_load_got): New function. Use LTREL_BASE/OFFSET. - (s390_emit_prologue): Use it. - * config/s390/s390.md ("builtin_longjmp", "builtin_setjmp_setup", - "builtin_setjmp_receiver"): Cleanup. Use s390_load_got. Do not - hard-code register 14. - * config/s390/s390-protos.h (s390_load_got): Declare. - - * config/s390/s390.c (NR_C_MODES, constant_modes, gen_consttable): - Support TImode constants. - * config/s390/s390.md ("consttable_ti"): New. - ("consttable_si", "consttable_di"): Handle TLS symbols correctly. - - * config/s390/s390.md (UNSPEC_LTREL_OFFSET, UNSPEC_LTREL_BASE, - UNSPEC_GOTENT, UNSPEC_GOT, UNSPEC_GOTOFF, UNSPEC_PLT, UNSPEC_PLTOFF, - UNSPEC_RELOAD_BASE, UNSPECV_POOL, UNSPECV_POOL_START, UNSPECV_POOL_END, - UNSPECV_POOL_QI, UNSPECV_POOL_HI, UNSPECV_POOL_SI, UNSPECV_POOL_DI, - UNSPECV_POOL_TI, UNSPECV_POOL_SF, UNSPECV_POOL_DF, UNSPECV_MAIN_POOL): - New symbolic constants. - ("consttable_qi", "consttable_hi", "consttable_si", "consttable_di", - "consttable_sf", "consttable_df", "pool_start_31", "pool_end_31", - "pool_start_64", "pool_end_64", "reload_base_31", "reload_base_64", - "pool", "literal_pool_31", "literal_pool_64"): Cleanup. Use - symbolic UNSPEC values. - * config/s390/s390.c (larl_operand, s390_short_displacement, - bras_sym_operand, s390_cannot_force_const_mem, - s390_delegitimize_address, s390_decompose_address, - legitimize_pic_address, s390_output_symbolic_const, - s390_function_profiler): Use symbolic UNSPEC values. - -2003-07-19 Kaveh R. Ghazi - - * alias.c alloc-pool.c bitmap.c bitmap.h bt-load.c builtins.c - c-common.c c-decl.c c-incpath.c c-lex.c c-opts.c c-parse.in - c-pragma.c c-typeck.c calls.c cfg.c cfganal.c cfgloop.c cfgrtl.c - collect2.c combine.c conflict.c coverage.c cppexp.c cppfiles.c - cpphash.c cppinit.c cpplex.c cpplib.c cppmacro.c cppspec.c - cpptrad.c cse.c cselib.c dbxout.c defaults.h df.c dominance.c - dwarf2out.c dwarfout.c emit-rtl.c except.c expmed.c expr.c final.c - fix-header.c flow.c fold-const.c function.c gcc.c gccspec.c gcov.c - gcse.c genattr.c genattrtab.c genautomata.c genconditions.c - genemit.c genextract.c genoutput.c genrecog.c gensupport.c - ggc-page.c ggc-simple.c global.c graph.c haifa-sched.c hashtable.c - integrate.c jump.c langhooks.c lcm.c line-map.c local-alloc.c - loop.c mips-tdump.c mips-tfile.c mkdeps.c optabs.c params.c - postreload.c prefix.c print-tree.c protoize.c ra-build.c - ra-colorize.c ra-rewrite.c ra.c recog.c reg-stack.c regclass.c - regmove.c regrename.c reload.c reload1.c reorg.c resource.c - sbitmap.c sched-deps.c sched-rgn.c sched-vis.c sdbout.c - simplify-rtx.c ssa-ccp.c ssa.c stmt.c stor-layout.c timevar.c - tlink.c toplev.c tree-dump.c tree.c unroll.c unwind-dw2-fde.c - varasm.c varray.c vmsdbgout.c xcoffout.c: Remove unnecessary - casts. - -2003-07-19 Gabriel Dos Reis - - * c-pragma.c (apply_pragma_weak): Don't use warning_with_decl. - * toplev.h (warning): Remove attribute. - -2003-07-19 Gabriel Dos Reis - - * c-decl.c (c_finish_incomplete_decl): Don't use xxx_with_decl. - (pop_label_level): Likewise. - (duplicate_decls): Likewise. - (implicitly_declare): Likewise. - (shadow_label): Likewise. - (start_decl): Likewise. - (finish_decl): Likewise. - (grokdeclarator): Likewise. - (get_parm_info): Likewise. - (detect_field_duplicates): Likewise. - (finish_struct): Likewise. - (start_function): Likewise. - (store_parm_decls): Likewise. - (finish_function): Likewise. - (c_expand_body_1): Likewise. - (check_for_loop_decls): Likewise. - (merge_translation_unit_decls): Likewise. - -2003-07-19 Neil Booth - - * common.opt: Document --param. - * opts.c (columns, undocumented_msg): New. - (print_help): Get number of columns from environment. Print - --param help. Tweak newline handling. - (print_param_help): New. - (print_filtered_help): Better handling of duplicates. Complain - about undocumented switches. - (print_switch): New. - (wrap_help): Improve wrapping, use COLUMNS. - * opts.sh: Ignore comments in records. - * params.def: Fix typos and remove trailing periods. - * toplev.c (display_help): Don't dump --param help. - * doc/sourcebuild.texi: Update. - -2003-07-18 Richard Henderson - - PR target/11556 - * optabs.c (prepare_operand): Fail gracefully instead of abort - if the predicate doesn't satisfy. - (gen_cond_trap): Allow prepare_operand to fail. - -2003-07-19 Gabriel Dos Reis - - * c-common.c: Don't undefine GCC_DIAG_STYLE. - (fname_decl): Don't use xxx_with_decl. - (c_add_case_label): Likewise. - (handle_section_attribute): Likewise. - (handle_alias_attribute): Likewise. - (handle_no_instrument_function_attribute): Likewise. - (handle_no_limit_stack_attribute): Likewise. - * c-objc-common.c (c_tree_printer): Print IDENTIFIER_NODEs. - * c-format.c (gcc_cdiag_char_table): Add '%E' format-specifier. - -2003-07-19 Zdenek Dvorak - - * Makefile.in (ifcvt.o): Add cfgloop.h. - * basic-block.h (EDGE_LOOP_EXIT): New flag. - * cfgrtl.c (rtl_verify_flow_info_1): Handle it correctly. - * ifcvt.c: Include cfgloop.h. - (mark_loop_exit_edges): New static function. - (if_convert): Call it. - (find_if_header): Ignore branches out of loops. - -2003-07-18 Kazu Hirata - - * combine.c (simplify_comparison): Don't share rtx when converting - (ne (and (not X) 1) 0) to (eq (and X 1) 0). - -2003-07-18 David Edelsohn - - * config/rs6000/aix.h (AGGREGATE_PADDING_FIXED): Define. - (AGGREGATES_PAD_UPWARD_ALWAYS): Define. - (MUST_PASS_IN_STACK): Define. - (BLOCK_REG_PADDING): Define. - -2003-07-18 Richard Henderson - - * cfgrtl.c (force_nonfallthru_and_redirect): Use tablejump_p - to skip the addr_vec. - -2003-07-18 Alexandre Oliva - - * combine.c (combinable_i3pat): Don't forbid occurrences of - i2dest or i1dest in inner_dest if inner_dest is a mem. - -2003-07-18 Jan Hubicka - - * cgraph.c (cgraph_remove_node): Clear the hash table slot. - -2003-07-17 Jakub Jelinek - - PR target/11087 - * loop.c (basic_induction_var): Check if convert_modes emitted any - instructions. Remove them and return 0 if so. - -2003-07-18 Eric Botcazou - - PR optimization/11083 - * toplev.c (rest_of_handle_addresof): Rename into - rest_of_handle_addressof. Delete unreachable blocks - if dead edges were purged after the addressof pass. - -2003-07-18 Neil Booth - - * Makefile.in, configure, configure.in: Remove handling of - lang-options.h and options_.h. - * toplev.c (struct lang_opt, documented_lang_options): Remove. - (display_help): Don't use documented_lang_options. - -2003-07-17 Zack Weinberg - - * c-decl.c (pushdecl_function_level): Make static, return nothing. - (kept_level_p): Fold into poplevel. - (undeclared_variable): Moved here from c-typeck.c. Export. - * c-tree.h (KEEP_YES, KEEP_NO, KEEP_MAYBE): New #defines. - (undeclared_variable): Prototype here. Don't prototype - kept_level_p nor pushdecl_function_level. - * c-parse.in: Change first argument to poplevel from - "kept_level_p()" to "KEEP_MAYBE". - * c-typeck.c (undeclared_variable): Moved to c-decl.c. - -2003-07-17 Roger Sayle - - * simplify-rtx.c (simplify_rtx): Use simplify_gen_binary to swap - commutative operands instead of modifying the RTL in-place. - -2003-07-17 Mark Mitchell - - PR optimization/11557 - * calls.c (flags_from_decl_or_type): Do not set ECF_LIBCALL_BLOCK - unless we know which function is being called. - -2003-07-17 Roger Sayle - - * cse.c (fold_rtx): Use swap_commutative_operands_p to determine - whether to reorder the operands of a commutative binary operator. - -2003-07-17 Roger Sayle - - * fold-const.c (const_binop): Avoid performing the FP operation at - compile-time, if either operand is NaN and we honor signaling NaNs, - or if we're dividing by zero and either flag_trapping_math is set - or the desired mode doesn't support infinities. - (fold_initializer): New function to fold an expression ignoring any - potential run-time exceptions or traps. - * tree.h (fold_initializer): Prototype here. - * c-typeck.c (build_binary_op): Move to the end of the file so - that intializer_stack is in scope. If constructing an initializer, - i.e. when initializer_stack is not NULL, use fold_initializer to - fold expressions. - * simplify-rtx.c (simplify_binary_operation): Likewise, avoid - performing FP operations at compile-time, if they would raise an - exception at run-time. - -2003-07-17 Geoffrey Keating - - PR 11498 - * Makefile.in (c-opts.o): Add $(LANGHOOKS_DEF_H). - (langhooks.o): Add $(GGC_H), gt-langhooks.h. - (GTFILES): Add langhooks.c. - (gt-langhooks.h): New. - * c-common.h (c_static_assembler_name): Prototype. - * c-lang.c (LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): Define. - * objc/objc-lang.c (LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): Define. - * c-opts.c: Include langhooks-def.h. - (c_static_assembler_name): New. - * langhooks.c: Include ggc.h. Include gt-langhooks.h. - (var_labelno): New. - (lhd_set_decl_assembler_name): Give static objects with context - unique names. - * varasm.c (var_labelno): Delete. - (make_decl_rtl): Don't change the assembler name once it's set. - - * c-opts.c (this_input_filename): New. - (finish_options): Take new parameter, name of file being compiled. - Update callers. Set this_input_filename. - (push_command_line_include): Use this_input_filename not - main_input_filename. - -2003-07-17 Neil Booth - - * Makefile.in: Depend .pot generation on options.c. - * po/exgettext: Add an extra_files variable containing additional - files to scan. - -2003-07-17 Zack Weinberg - - * objc/objc-lang.c: Override LANG_HOOKS_WRITE_GLOBALS to - c_write_global_declarations. - - * c-decl.c: Fix typos in several comments. Remove all - #if 0 blocks; reindent as needed. Remove unused argument - to declare_parm_level; all callers changed. - * c-parse.in: Update calls to declare_parm_level. Avoid - issuing a double warning in some circumstances. - * c-typeck.c: Update calls to declare_parm_level. - * c-tree.h: Update prototype of declare_parm_level. - - * c-pragma.c (apply_pragma_weak): Don't complain about a - redundant #pragma weak. - - * objc/objc-act.c (forward_declare_categories, - build_selector_reference_decl, build_class_reference_decl, - build_objc_string_decl, synth_forward_declarations, - build_protocol_reference): Set TREE_PUBLIC on synthetic - forward decl to 0, consistent with eventual definition. - Correct comments to match. - - * fixinc/inclhack.def (solaris_mutex_init_2): Escape braces - in regexp that don't form a range expression. - * fixinc/fixincl.def: Regenerate. - -2003-07-17 Richard Henderson - - PR target/10907 - * config/ia64/ia64.c (ia64_epilogue_uses): GP is live at end - even with !TARGET_CONST_GP. - (ia64_function_ok_for_sibcall): Reject non-local functions. - -2003-07-17 Steven Bosscher - - * c-common.c (c_estimate_num_insns_1): Don't handle - METHOD_CALL_EXPR. - * expr.c (safe_from_p): Likewise. - * gengtype.c (adjust_field_tree_exp): Likewise. - * stmt.c (warn_if_unused_value): Likewise - * tree.c (first_rtl_op): Likewise. - * tree.def: Don't define METHOD_CALL_EXPR. - * java/lang.c (java_estimate_num_insns_1): Don't handle - METHOD_CALL_EXPR. - -2003-07-17 Eric Botcazou - - PR other/11466 - * doc/invoke.texi (SPARC Options): Document "-mlittle-endian" - and its restrictions for the SPARC64 port. - Move the entry of "-mimpure-text" before that of "-mv8". - -2003-07-17 Eric Botcazou - Phil Edwards - - * doc/install.texi (*-*-solaris2*): Document the step-by-step - procedure to bootstrap and install. - Document the preference for the legacy Sun tools in /usr/bin - over the POSIX tools in /usr/xpg4/bin for the build process. - -2003-07-17 Neil Booth - - * c.opt: Document Uncodumented; use it. Document ObjC options. - * opts.c (print_filtered_help): Skip undocumented switches. - * opts.h (CL_UNDOCUMENTED): New. - * opts.sh: Handle Undocumented. - * toplev.c (documented_lang_options): Prevent its becoming empty. -objc: - * lang-options.h: Remove. - -2003-07-16 Ulrich Weigand - - * loop.c (check_ext_dependent_givs): Pass const struct loop * - instead of struct loop_info * as argument. Accept BIVs with - increment +/- 1 provided there is a friendly exit test against - a loop-invariant value. - (strength_reduce): Adapt call to check_ext_dependent_givs. - -2003-07-16 J"orn Rennecke - Con Bradley - - * sh-protos.h (sh_get_pr_initial_val): Declare. - * sh.c (regno_reg_class): Make its elements type enum reg_class. - (output_stack_adjust): Remove emit_fn argument. Add epilogue_p - and live_regs_mask arguments. Changed all callers. - (save_schedule_s): New structure. - (save_schedule): New typedef. - (scavenge_reg, sh5_schedule_saves, sh5_schedule_saves): New functions. - (calc_live_regs): For TARGET_SHMEDIA, use leaf_function_p. - In interrupts handlers, also save registers that are usually - partially saved, and make sure there is at least one general purpose - register saved if a target register needs saving. - Add casts in comparisons to avoid warnings. - (sh_media_register_for_return): return -1 for interrupt handlers. - (MAX_SAVED_REGS, MAX_TEMPS): New defines. - (sh_expand_prologue): Use sh5_schedule_saves. Check that any temp - registers used are available. - Set RTX_FRAME_RELATED_P where appropriate. - Add an REG_FRAME_RELATED_EXPR for r0 + offset addressing. - (sh_expand_epilogue, sh_set_return_address): Use sh5_schedule_saves. - (initial_elimination_offset): Likewise. - * sh.h (DWARF_CIE_DATA_ALIGNMENT): Set to -4. - (LOCAL_ALIGNMENT, GENERAL_REGISTER_P): Add casts to avoid warnings. - (FP_REGISTER_P): Add casts to fix broken handling of unsigned REGNO. - (XD_REGISTER_P, TARGET_REGISTER_P): Likewise. - (HARD_REGNO_CALL_PART_CLOBBERED): Also yield nonzero for r15, - and for target registers. - (RETURN_IN_MEMORY): Add parentheses to avoid warnings. - (regno_reg_class): Make its elements type enum reg_class. - (CONSTRAINT_LEN): Don't use isdigit. - (FUNCTION_ARG_REGNO_P): Add casts to avoid warnings. - (FUNCTION_ARG): Add parentheses to avoid warnings. - (RETURN_ADDR_RTX): Use sh_get_pr_initial_val. - (RETURN_ADDR_OFFSET): Define to -1 for TARGET_SH5. - (SH_DBX_REGISTER_NUMBER): Add casts to avoid warnings. - (EH_RETURN_DATA_REGNO): Use unsigned constants to avoid warnings. - * sh.md (xordi3+1): Remove unused variable regno. - (return_media): Check that tr0 is available before using it. - -2003-07-16 Neil Booth - - * c.opt: Document more options. - -2003-07-16 Roger Sayle - - * combine.c (subst): Also handle (subreg (const_double ...)) case - if created by a substitution, by using the original inner mode. - -2003-07-16 Roger Sayle - - * simplify-rtx.c (simplify_replace_rtx): Convert constant comparisons - to MODE_FLOAT constants if FLOAT_STORE_FLAG_VALUE is defined. - (simplify_rtx): Likewise. Simplify (lo_sum (high X) X) as X. - -2003-07-16 Andrew Pinski - - * doc/install.texi (--without-headers): New. - - Partial Fix PR/10129 - * config/darwin.c (machopic_function_base_name): Only Return "". - (machopic_output_function_base_name): New; print the true pic label. - (machopic_classify_ident): Pic Base is always a defined data. - * config/darwin.h (ASM_OUTPUT_LABELREF): Support the pic base label. - * config/darwin-proto.h (machopic_output_function_base_name): Prototype. - - * gcse.c (gcse_constant_p): COMPARE of the same registers is a constant - if they are not floating point registers. - - PR c/10962 - * ggc.h: Add header guards. - * c-decl.c (finish_struct): Sort fields if - number greater than 15 and there are no - anonymous structs/unions. - * c-common.h: Include ggc.h. - (sorted_fields_type): New struct. - (field_decl_cmp): New prototype. - (resort_sorted_fields): New prototype. - (DECL_DECLARES_TYPE_NON_TEMPLATE_P): New macro. - * c-tree.h: (lang_type): Use pointer to sorted_fields_type - as s, removing other fields. - * c-typeck.c (lookup_field): Use s in lang_type. - These were mostly moved from cp/class.c: - * c-common.c (field_decl_cmp): New static function. - (field_decl_cmp): New function. - (resort_sorted_fields): New function. - -2003-07-16 Geoffrey Keating - - * config/darwin.c (machopic_select_section): Use decl_readonly_section - to do most of the work. - -2003-07-16 Hans-Peter Nilsson - - * config/mmix/mmix-protos.h: Convert prototypes to ISO C90. - * config/mmix/mmix.c: Convert functions to ISO C90. - (mmix_eh_return_handler_rtx, mmix_output_shifted_value): Tweak - formatting. - (mmix_get_hard_reg_initial_val): Tweak section head comment. - -2003-07-16 J"orn Rennecke - - * c-pragma.h (HANDLE_PRAGMA_WEAK): Always define to SUPPORTS_WEAK. - -2003-07-16 Jakub Jelinek - - * unwind-dw2.c (MD_FROB_UPDATE_CONTEXT): Define. - (uw_update_context_1): Use it. - * config/rs6000/rs6000.c (insn_after_throw): Remove. - (rs6000_aix_emit_builtin_unwind_init): Save $r2 to its location - in parent frame if _Unwind_* called directly instead of through - .plt. - (rs6000_emit_eh_toc_restore): Remove. - (rs6000_emit_prologue): Update stack pointer before doing any saving - if current_function_calls_eh_return. Generate unwind info for $r2. - (rs6000_emit_epilogue): Restore stack pointer after doing all - restoring if current_function_calls_eh_return. Restore $r2. - * config/rs6000/rs6000-protos.h (rs6000_emit_eh_toc_restore): Remove. - * config/rs6000/rs6000.md (eh_return): Remove call to - rs6000_emit_eh_toc_restore. - * config/rs6000/linux64.h (MD_FROB_UPDATE_CONTEXT): Define. - * config/rs6000/aix.h (MD_FROB_UPDATE_CONTEXT): Define. - -2003-07-15 Jakub Jelinek - - * expr.c (emit_block_move): Don't move anything if size is const 0. - (clear_storage): Test against const0_rtx instead of comparing INTVAL - against 0. - -2003-07-15 David S. Miller - - * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Only - emit nop if the last real insn is CALL_INSN. - -2003-07-16 Danny Smith - - * config/i386/xm-mingw32.h (HOST_BIT_BUCKET): Define - as "nul". - * config/i386/xm-mingw32.h: Change GNU CC to GCC. - -2003-07-16 Danny Smith - - * config/i386/winnt.c (associated_type): Artificial methods are not - affected by the import/export status of their class unless they are - COMDAT. - (i386_pe_dllimport_p): Do not mark artificial methods as dllimport. - - * config/i386/winnt.c: Fix GCC copyright comment. - -2003-07-16 Gabriel Dos Reis - - PR c++/11531 - * diagnostic.c (diagnostic_report_diagnostic): Don't ICE if we're - not recursing on hard error. - (diagnostic_for_decl): Likewise. - * diagnostic.def: Rearrange. - -2003-07-15 J"orn Rennecke - - * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes): - If DWARF_FRAME_RETURN_COLUMN doesn't have a register mode, use Pmode. - -2003-07-15 J"orn Rennecke - Richard Henderson - - * unwind-dw2.c (_Unwind_GetGR): Use dwarf_reg_size_table - to decide if to access a _Unwind_Ptr or a _Unwind_Word. - (_Unwind_SetGR): Likewise. - (_Unwind_GetPtr, _Unwind_SetSpColumn): New functions. - (Unwind_SpTmp): New typedef. - (uw_update_context_1): Use _Unwind_SetSpColumn and _Unwind_GetPtr. - (uw_update_context): Use _Unwind_GetPtr. - (init_dwarf_reg_size_table): Move above uw_init_context_1. - (uw_init_context_1): Initialize dwarf_reg_size_table if necessary. - Use _Unwind_SetSpColumn. - (uw_install_context_1): Don't initialize dwarf_reg_size_table. - Use _Unwind_GetPtr. - -2003-07-15 Neil Booth - - * c.opt: Document more options. - * toplev.c (documented_lang_options): Remove all local help strings. - -2003-07-15 Mark Mitchell - - PR debug/11473 - * dbxout.c (dbxout_type): Use TYPE_SIZE to determine the sizes of - base classes. - -2003-07-15 Kazu Hirata - - PR target/10795 - * config/i386/i386.c (ix86_expand_carry_flag_compare): Don't - swap comparison operands if doing so would generate an - unrecognizable insn. - -2003-07-15 Eric Botcazou - - PR optimization/11320 - * sched-int.h (struct deps) [reg_conditional_sets]: New field. - (struct sched_info) [compute_jump_reg_dependencies]: New prototype. - * sched-deps.c (sched_analyze_insn) [JUMP_INSN]: Update call to - current_sched_info->compute_jump_reg_dependencies. Record which - registers are used and which registers are set by the jump. - Clear deps->reg_conditional_sets after a barrier. - Set deps->reg_conditional_sets if the insn is a COND_EXEC. - Clear deps->reg_conditional_sets if the insn is not a COND_EXEC. - (init_deps): Initialize reg_conditional_sets. - (free_deps): Clear reg_conditional_sets. - * sched-ebb.c (compute_jump_reg_dependencies): New prototype. - Mark registers live on entry of the fallthrough block and conditionally - set as set by the jump. Mark registers live on entry of non-fallthrough - blocks as used by the jump. - * sched-rgn.c (compute_jump_reg_dependencies): New prototype. - Mark new parameters as unused. - -2003-07-15 Richard Sandiford - - * doc/invoke.texi: Resync MIPS -march documentation. - -2003-07-15 Richard Sandiford - - * config/mips/mips.h (PROCESSOR_R9000): New processor_type. - (TARGET_MIPS9000, TUNE_MIPS9000): New macros. - (GENERATE_MULT3_SI): True for TARGET_MIPS9000. - * config/mips/mips.c (mips_cpu_info_table): Add rm9000 entry. - (mips_rtx_costs): Adjust integer multiplication costs for the rm9000. - (mips_issue_rate): Handle PROCESSOR_R9000. - (mips_use_dfa_pipeline_interface): Likewise. - * config/mips/9000.md: New file. - * config/mips/mips.md: Include it. - (define_attr cpu): Add r9000. - (mulsi3_mult3): Use "mul" for rm9000 code. - -2003-07-15 Stan Cox - - * config/mips/mips.h (PROCESSOR_R7000): New processor_type. - (TARGET_MIPS7000, TUNE_MIPS7000): New macros. - (GENERATE_MULT3_SI): True for TARGET_MIPS7000. - * config/mips/mips.c (mips_cpu_info_table): Add rm7000 entry. - (mips_rtx_costs): Adjust integer multiplication costs for the rm7000. - (mips_issue_rate): Handle PROCESSOR_R7000. - (mips_use_dfa_pipeline_interface): Likewise. - * config/mips/7000.md: New file. - * config/mips/mips.md: Include it. - (define_attr cpu): Add r7000. - (mulsi3_mult3): Use "mul" for rm7000 code. - -2003-07-15 Richard Sandiford - - * config/mips/mips.md (define_attr type): Add condmove. Use it for - the conditional move patterns. - * config/mips/5400.md (ir_vr54_move): Rename to ir_vr54_condmove. - Check for condmove type. - (ir_vr54_arith): Add move type. - * config/mips/5500.md (ir_vr55_move, ir_vr55_arith): Likewise. - * config/mips/sr71k.md (ir_sr70_move, ir_sr70_arith): Likewise. - -2003-07-15 Neil Booth - - * c-opts.c (print_help): Remove. - (c_common_handle_option): Don't handle --help. - * c.opt: Document some options. - (--help): Remove. - * opts.c (print_filtered_help): New. - (print_help): Use it. - -2003-07-14 Geoffrey Keating - - * c-common.c (c_common_type_for_mode): Handle V4DFmode. - * tree.c: (build_common_tree_nodes_2): Likewise. - * tree.h (enum tree_index): Add TI_V4DF_TYPE. - (V4DF_type_node): New. - - * c-opts.c (push_command_line_include): Don't free deferred_opts, - we'll need it. - (finish_options): Reset init_cursor. - -2003-07-15 Kazu Hirata - - * expr.c (expand_assignment): Remove an unused argument - SUGGEST_REG. - * expr.h: Update the prototype. - * function.c: Update the callers. - * stmt.c: Likewise. - -2003-07-14 Mark Mitchell - - PR debug/11098 - * integrate.c (copy_decl_for_inlining): Do not mark copied decls - as DECL_ABSTRACT. - -2003-07-14 Nathanael Nerode - - * fixinc/inclhack.def (avoid_bool_define, avoid_bool_type): Bypass - with __cplusplus, not "we must use the C++ compiler's type" - * fixinc/inclhack.def (void_null): Note that Interix needs this. - * fixinc/fixincl.x: Regenerate. - -2003-07-14 Geoffrey Keating - - * unwind-dw2-fde-darwin.c (live_image_destructor): Get seen_objects - and unseen_objects from the global data before calling - __deregister_frame_info_bases. - (examine_objects): Insert objects into the seen_objects list, - not unseen_objects. - (_Unwind_Find_FDE): Always unlock the global object lists, even if - we couldn't allocate a data structure to put in it. - - * objc/objc-act.h (CLASS_SUPER_NAME): Add a little typechecking. - (TYPE_PROTOCOL_LIST): Share use of type.context with C frontend. - (SET_TYPE_PROTOCOL_LIST): New. - * objc/objc-act.c (get_static_reference): Use SET_TYPE_PROTOCOL_LIST. - (get_object_reference): Likewise. - -2003-07-14 Jan Hubicka - - * cfglayout.c (locator_file): Break out from .... - (insn_file): ... here. - (locator_line): Break out from .... - (insn_line): ... here. - * rtl.h (locator_file, locator_line): Declare. - (final_start_function): Set proper line/file info. - -2003-07-14 Gabriel Dos Reis - - * c-pretty-print.c (pp_c_unary_expression): A CONVERT_EXPR is - handled by pp_c_cast_expression. - -2003-07-14 Richard Sandiford - - * config/mips/mips.c (mips_expand_prologue): Use a single insn to - allocate 32768 bytes of stack. Use addition rather than subtraction - when a single insn is enough. - * config/mips/mips.md: Remove insns and splitters for subtracting - constants. - (subsi3): Only accept register operands. - (subsi3_internal): Likewise. Use for TARGET_MIPS16 as well. - (subdi3_internal_3, subsi3_internal_2): Likewise. - (casesi): Use expand_binop to subtract the lower bound. - -2003-07-14 Richard Sandiford - - * config/mips/mips.c (mips_in_small_data_p): Don't handle - TARGET_MIPS16 specially. - -2003-07-14 Richard Sandiford - - * config/mips/elf.h (ASM_OUTPUT_ALIGNED_BSS): Use - mips_output_aligned_bss. - * config/mips/linux.h: Likewise. - * config/mips/mips-protos.h (mips_output_aligned_bss): Declare. - * config/mips/mips.c (mips_output_aligned_bss): New function. - - * config/mips/elf.h (DBX_DEBUGGING_INFO): Delete. - * config/mips/elf64.h: Likewise. - - * config/mips/elf.h (ASM_DECLARE_OBJECT_NAME): Use - mips_declare_object_name. - (ASM_FINISH_DECLARE_OBJECT): Likewise mips_finish_declare_object. - * config/mips/elf64.h: As for elf.h. - * config/mips/iris6.h: Likewise. - * config/mips/linux.h (ASM_DECLARE_OBJECT_NAME): As for elf.h. - * config/mips/mips.h (ASM_DECLARE_OBJECT_NAME): Remove unnecessary - do...while (0) block. - * config/mips/mips-protos.h (mips_declare_object_name): Declare. - (mips_finish_declare_object): Declare. - * config/mips/mips.c (mips_declare_object_name): New function. - (mips_finish_declare_object): New function. - - * config/mips/elf.h (SBSS_SECTION_ASM_OP): Delete. - * config/mips/linux.h: Likewise. - - * config/mips/mips.c (inside_function): Delete. - (file_in_function_warning, ignore_line_number): Delete. - (mips_output_filename): Don't warn about changing filenames within - a function. - (mips_output_lineno): Update accordingly. - (mips_output_function_prologue): Don't reset the deleted variables. - * config/mips/mips.h (inside_function): Delete. - (file_in_function_warning, ignore_line_number): Delete. - - * config/mips/elf.h (OBJECT_FORMAT_COFF, EXTENDED_COFF): Remove undefs. - * config/mips/elf64.h: Likewise. - * config/mips/openbsd.h: Likewise. - * config/mips/iris5.h (OBJECT_FORMAT_COFF): Remove undefs. - * config/mips/linux.h: Likewise. - * config/mips/mips.h (OBJECT_FORMAT_COFF, EXTENDED_COFF): Delete. - (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB, MIPS_UNMARK_STAB): Delete. - - * config.gcc (mips-sgi-irix6*o32, mips-sgi-irix5*): Add mips/sdb.h - to the list of include files when using gas. - (mips*el-*-openbsd*, mips*-*-openbsd*): Add mips/sdb.h unconditionally. - * config/mips/elf.h: Remove #undef SDB_DEBUGGING_INFO. - * config/mips/elf64.h: Likewise. - * config/mips/iris5.h: Likewise. - * config/mips/linux.h: Likewise. - * config/mips/iris5gas.h (SDB_DEBUGGING_INFO): Remove definition. - * config/mips/mips.h (PREFERRED_DEBUGGING_TYPE): Likewise. - (SDB_DEBUGGING_INFO, sdb*, SDB_ALLOW_*, PUT_SDB*): Move to... - * config/mips/sdb.h: ...this new file. - -2003-07-14 Douglas Rupp - - * fixinc/server.c (server_setup): Don't use non-POSIX NULL first - argument to getcwd; use fixed buffer instead. - -2003-07-14 Nathanael Nerode - - * fixinc/mkfixinc.sh: Treat OpenBSD normally. - * fixinc/fixinc.wrap: Delete. - -2003-07-14 Dan Nicolaescu - - * ggc-page.c (extra_order_size_table): Insns have 9 slots. Regs - don't have 2. - -2003-07-14 Dan Nicolaescu - - * ggc-page.c (struct globals): Add new fields to keep track of the - total allocated memory and overhead. - (ggc_print_statistics): Print them. - (ggc_alloc): Keep track of the total allocated memory and the - overhead. - - * tree.c (dump_tree_statistics): Increase spacing. - (enum tree_node_kind): Move to ... - * tree.h (enum tree_node_kind): ... here. - (tree_node_counts, tree_node_sizes): Declare. - -2003-07-14 James A. Morrison - - * doc/include/texinfo.tex: Upgrade to texinfo 4.6. - -2003-07-14 Franz Sirl - - PR optimization/11440 - * gcse.c (try_replace_reg): Don't attach notes to ZERO_EXTRACT or - SIGN_EXTRACT SETs. - -2003-07-14 Alan Modra - - * doc/tm.texi (BLOCK_REG_PADDING): Describe. - * expr.h (struct locate_and_pad_arg_data): Add where_pad. - (emit_group_load, emit_group_store): Adjust declarations. - Remove most occurrences of #ifdef TREE_CODE. - * expr.c (emit_group_load): Add "type" param, and use - BLOCK_REG_PADDING to determine need for a shift. Optimize non- - aligned accesses if !SLOW_UNALIGNED_ACCESS. - (emit_group_store): Likewise. - (emit_push_insn, expand_assignment, store_expr, expand_expr): Adjust - emit_group_load and emit_group_store calls. - * calls.c (store_unaligned_arguments_into_pseudos): Tidy. Use - BLOCK_REG_PADDING to determine whether we need endian_correction. - (load_register_parameters): Localize vars. Handle shifting of - small values to the correct end of regs. Adjust emit_group_load - call. - (expand_call, emit_library_call_value_1): Adjust emit_group_load - and emit_group_store calls. - * function.c (assign_parms): Set mem alignment for stack slots. - Adjust emit_group_store call. Store values at the "wrong" end - of regs to the stack. Use BLOCK_REG_PADDING. - (locate_and_pad_parm): Save where_pad. - (expand_function_end): Adjust emit_group_load call. - * stmt.c (expand_value_return): Adjust emit_group_load call. - * Makefile.in (calls.o): Depend on $(OPTABS_H). - * config/rs6000/linux64.h (TARGET_LITTLE_ENDIAN): Redefine as 0. - (AGGREGATE_PADDING_FIXED, AGGREGATES_PAD_UPWARD_ALWAYS): Define. - (MUST_PASS_IN_STACK): Define. - (BLOCK_REG_PADDING): Define. - * config/rs6000/rs6000.h (struct rs6000_args): Remove orig_nargs. - (PAD_VARARGS_DOWN): Define in terms of FUNCTION_ARG_PADDING. - * config/rs6000/rs6000.c (init_cumulative_args): Don't set orig_nargs. - (function_arg_padding): !AGGREGATE_PADDING_FIXED compatibility code. - Act on AGGREGATES_PAD_UPWARD_ALWAYS. - -2003-07-13 Aaron W. LaFramboise - - * config/i386/gthr-win32.c (__GTHREAD_HIDE_WIN32API): Define to 1. - -2003-07-13 Richard Kenner - - * expr.c (expand_expr, case COMPONENT_REF): If reg, copy OP0 to MEM - both if OFFSET specified and if result BLKmode for ARRAY_RANGE_REF. - -2003-07-13 Nathanael Nerode - - PR other/11123 - * toplev.c: Don't cut off option names. - -2003-07-13 Andreas Jaeger - - * c-decl.c (link_hash_hash): Avoid warning about casting pointer - to integer of different size. - -2003-07-13 Kazu Hirata - - * combine.c (simplify_comparison): Convert (ne (and (not X) 1) 0) - to (eq (and X 1) 0). - -2003-07-13 Andreas Jaeger - - * config.gcc: Add pmmintrin.h for x86_64-*-*. - -2003-07-13 Zack Weinberg - - * Makefile.in (LIBCPP_DEPS): Remove coretypes.h and $(TM_H). - (hashtable.o, line-map.o, mkdeps.o): Likewise, from dependency - list. Move these all together down by cpplib. - - * cpplib.h: Don't refer to MAX_WCHAR_TYPE_SIZE when determining - definition of CPPCHAR_SIGNED_T. - - * cppcharset.c, cpperror.c, cppexp.c, cppfiles.c, cpphash.c, cppinit.c - * cpplex.c, cpplib.c, cppmacro.c, cpppch.c, cpptrad.c, hashtable.c - * line-map.c, mkdeps.c: Don't include coretypes.h or tm.h. - - * cpphash.c (_cpp_init_hashtable): Don't use gcc_obstack_init. - * cppinit.c (cpp_create_reader): Likewise. - - * cpphash.h (scan_out_logical_line): Rename _cpp_scan_out_logical_line. - * cpptrad.c: Likewise. All callers changed. - * cpplib.c: All callers changed. - * c-ppoutput.c: Replace 'uchar' with 'unsigned char' throughout. - * hashtable.h: Define GTY(x) to nothing here too. - -2003-07-13 Richard Kenner - - * stor-layout.c (compute_record_mode): Remove very obsolete test - that forces BLKmode for records with fields crossing word boundary. - -2003-07-13 Zack Weinberg - - * Makefile.in: Remove orphan reference to acconfig.h. - -2003-07-13 Andreas Jaeger - - * cgraphunit.c: Convert prototypes to ISO C90. - -2003-07-13 Nathanael Nerode - - * fixinc/inclhack.def (avoid_wchar_t_type): Use __cplusplus bypass - (for OpenBSD). - * fixinc/fixincl.x: Rebuild. - -2003-07-12 Zack Weinberg - - * configure.in: Always define HAVE_AS_GOTOFF_IN_DATA for - i?86-*-*. Use correct name of cache variable. - * configure: Regenerate. - -2003-07-12 Kazu Hirata - - * config/alpha/alpha.c: Fix comment typos. - * config/alpha/alpha.md: Likewise. - * config/arm/arm.c: Likewise. - * config/arm/arm.md: Likewise. - * config/arm/lib1funcs.asm: Likewise. - * config/avr/avr.md: Likewise. - * config/arm/README-interworking: Fix typos. - -2003-07-12 Kazu Hirata - - * c-format.c: Fix comment formatting. - * c-typeck.c: Likewise. - * coverage.c: Likewise. - * cppcharset.c: Likewise. - * cpplib.c: Likewise. - * dbxout.c: Likewise. - * gcov-io.h: Likewise. - * toplev.c: Likewise. - -2003-07-12 Nathanael Nerode - - * fixinc/inclhack.def (alpha_sbrk): Note that OpenBSD needs this - fix. - -2003-07-12 Zack Weinberg - - * aclocal.m4 (gcc_AC_CHECK_TYPE): Clone of AC_CHECK_TYPE, - uses three-argument AC_DEFINE so no acconfig.h entries are - needed. - (_gcc_COMPUTE_GAS_VERSION): Also provide gcc_cv_gas_vers - which contains the GAS version number as a scaled integer. - (gcc_GAS_VERSION_GTE_IFELSE): Use gcc_cv_gas_vers. Add - ability to check for ELF assembler. - (gcc_GAS_CHECK_FEATURE): New macro. - * configure.in: Use gcc_AC_CHECK_TYPE. Rewrite all - assembler feature checks using gcc_GAS_CHECK_FEATURE. - Use three-argument AC_DEFINE everywhere. - * acconfig.h: Deleted. - * config.in, configure: Regenerate. - -2003-07-12 Nathanael Nerode - - * fixinc/inclhack.def (struct_sockaddr): Avoid "fixing" sockaddr_in - (on OpenBSD). - * fixinc/fixincl.x: Regenerate. - - * fixinc/inclhack.def (gnu_types): Improve comment. - -2003-07-12 Andreas Jaeger - - * fp-test.c (main): Use ISO C90 prototype. - - * version.c: Remove unneded include of ansidecl.h. - - * cgraph.h: Convert prototypes to ISO C90. - * cgraph.c: Likewise. - * fix-header.c: Likewise. - * ra.h: Likewise. - * protoize.c: Likewise. - -2003-07-12 Jan Hubicka - - * cgraphunit.c (cgraph_inlined_into, cgraph_inlined_calees): Fix - warning. - -2003-07-12 Jan Hubicka - Gerald Pfeifer - - * cgraph.c (cgraph_max_uid): New global variable. - (cgraph_node): Set uid field. - (create_edge): Keep inline flags consistent. - (dump_cgraph): Dump more info. - * cgraph.h (struct cgraph_local_info): Remove inline_many and - can_inline_once; add inlinable, disgread_inline_limits, and self_insn - (struct cgraph_global_info): Add insns, calls, cloned_times, - will_be_output. - (struct cgraph_node): Add uid. - (struct cgraph_edge): Add inline_call. - (cgraph_max_uid, cgraph_inline_p): Declare. - * cgraph.c: Include params.h and fibheap.h - (cgraph_mark_functions_to_inline_once): Kill. - (INSNS_PER_CALL): New constant. - (ncalls_inlined, nfunctions_inlined, initial_insns, overall_insns): New - static variables. - (cgraph_finalize_function): Do not analyze inlining. - (cgraph_finalize_compilation_unit): Set inlining attributes. - (cgraph_mark_functions_to_output): More consistency checks. - (cgraph_optimize_function): Set current_function_decl to NULL. - (cgraph_expand_function): Use new inline flags. - (cgraph_postorder): Expand from cgraph_expand_functions. - (INLINED_TIMES, SET_INLINED_TIMES): New macros. - (cgraph_inlined_into, cgraph_inlined_callees, - cgraph_estimate_size_after_inlining, cgraph_estimate_growth, - cgraph_mark_inline, cgraph_check_inline_limits, - cgraph_default_inline_p, cgraph_decide_inling_of_small_functions, - cgraph_decide_inlining, cgraph_inline_p): New functions. - * params.def (PARAM_LARGE_FUNCTION_INSNS, PARAM_LARGE_FUNCTION_GROWTH, - PARAM_INLINE_UNIT_GROWTH): New parameters. - * tree-inline.c (struct inline_data): New field current_decl. - (expand_call_inline): Avoid forward declarations; use - inlinable_function_p. - (optimize_inline_calls): Set id.current_decl. - -2003-07-11 Andrew Pinski - - * configure.in: Remove wrongly added definition of - local_prefix. - * configure: Regenerate. - -2003-07-11 Dan Nicolaescu - - * rtl.def (NOTE): Do not use padding. - -2003-07-11 Dara Hazeghi - - * doc/install.tex: Update required binutils for i?86-*-linux* - -2003-07-11 Richard Henderson - - * Makefile.in (stage1_build): Force OBJS-onestep=OBJS. - -2003-07-11 Mark Mitchell - - * varasm.c (make_decl_rtl): Treat decls with a DECL_CONTEXT of - TRANSLATION_UNIT_DECL as top_level. - -2003-07-11 Jakub Jelinek - - * optabs.c (prepare_cmp_insn): Try cmpmemM first if it exists, - then fall back to cmpstrM. - * builtins.c (expand_builtin_memcmp): Likewise. - * config/s390/s390-protos.h (s390_expand_cmpstr): Rename to... - (s390_expand_cmpmem): ... this. - * config/s390/s390.md (cmpmemdi, cmpmemsi, cmpmem_short_64, - cmpmem_short_31, cmpmem_long_64, cmpmem_long_31): Renamed - from cmpstr* patterns. Rename call to s390_expand_cmpstr - to s390_expand_cmpmem. - * config/s390/s390.c (s390_expand_cmpstr): Rename to... - (s390_expand_cmpstr): ... this. Rename cmpstr* instructions - to cmpmem*. - * config/i370/i370.md (cmpmemsi, cmpmemsi_1): Renamed from - cmpstr* patterns. - * doc/md.texi (cmpstrM): Describe as String compare insn, not - Block compare insn. - (cmpmemM): Add. - -2003-07-11 Loren James Rittle - - * config/i386/freebsd.h (SET_ASM_OP): Remove. - (SUBTARGET_OVERRIDE_OPTIONS): Handle TARGET_64BIT case. - (ASM_COMMENT_START, ASM_APP_ON, ASM_APP_OFF, DBX_REGISTER_NUMBER - MCOUNT_NAME, SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE_SIZE): Whitespace. - -2003-07-11 Richard Henderson - - * function.c (assign_parms): Don't recombine complex args if - fnargs is unchanged from orig_fnargs. - (split_complex_args): Return args without complex before copying. - Re-layout the modified parameters. - -2003-07-11 J"orn Rennecke - - * regclass.c (choose_hard_reg_mode): Add third argument. - Changed all callers. - * rtl.h (choose_hard_reg_mode): Update declaration. - * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes): - Take HARD_REGNO_CALL_PART_CLOBBERED into account. - -2003-07-11 Geoffrey Keating - - * c-decl.c (finish_decl): Handle 'used' here... - * cgraphunit.c (cgraph_finalize_function): ... and here ... - * c-common.c: (handle_used_attribute): ... not here. - - * configure.in (onstep): Support --enable-intermodule. - * Makefile.in (OBJS-common): New. - (OBJS-md): New. - (OBJS-archive): New. - (OBJS): Build from OBJS-common, OBJS-md, OBJS-archive. - (OBJS-onestep): New. - (libbackend.a): Support @onestep@. - (libbackend.o): New. - * configure: Regenerate. - - * c-common.h (c_reset_state): New prototype. - (c_parse_file): New prototype. - (finish_file): Move prototype from c-tree.h. - * c-decl.c: Include . - (builtin_decls): New. - (current_file_decl): New. - (duplicate_decls): Add extra parameter. Change all callers. Don't - output duplicate common symbols. - (link_hash_hash): New. - (link_hash_eq): New. - (poplevel): Handle popping of the top level. - (warn_if_shadowing): Handle TRANSLATION_UNIT_DECL. - (pushdecl): Set DECL_CONTEXT to TRANSLATION_UNIT_DECL if appropriate. - (pushdecl_top_level): Likewise. - (redeclaration_error_message): Handle TRANSLATION_UNIT_DECL. - (c_init_decl_processing): Create TRANSLATION_UNIT_DECL. - (finish_decl): Handle TRANSLATION_UNIT_DECL. - (merge_translation_unit_decls): New. - (c_write_global_declarations): New. - (c_reset_state): New. - (implicitly_declare): Handle TRANSLATION_UNIT_DECL. - * c-lang.c (LANG_HOOKS_WRITE_GLOBALS): New. - * c-objc-common.c (c_cannot_inline_tree_fn): Handle - TRANSLATION_UNIT_DECL. - (c_objc_common_finish_file): Call merge_translation_unit_decls. - * c-opts.c (in_fnames): Rename from in_fname. - (c_common_decode_option): Handle multiple input filenames. - (c_common_post_options): Likewise. - (c_common_parse_file): Likewise; also, call c_parse_file rather than - yyparse. - * c-parse.in: Move cleanup code to c_parse_file. - (free_parser_stacks): Move contents to c_parse_file. - (c_parse_file): New. - * c-tree.h (union lang_tree_node): Chain along TYPE_NEXT_VARIANT - for integer types. - (C_DECL_FILE_SCOPE): New. - (finish_file): Move prototype to c-common.h. - (merge_translation_unit_decls): New prototype. - (comptypes): Add extra parameter to prototype. - (c_write_global_declarations): New prototype. - * c-typeck.c (tagged_types_tu_compatible_p): New. - (function_types_compatible_p): Add extra parameter, change all callers. - (type_lists_compatible_p): Likewise. - (comptypes): Likewise. - (struct tagged_tu_seen): New. - (tagged_tu_seen_base): New. - (build_unary_op): Handle TRANSLATION_UNIT_DECL. - (c_mark_addressable): Remove #if 0 code. - * calls.c (special_function_p): Handle TRANSLATION_UNIT_DECL, add - comment explaining why it shouldn't have to. - * cgraph.h (struct cgraph_node): Add chain_next and chain_prev GTY - options. - * cppinit.c (cpp_read_next_file): New. - (cpp_read_main_file): Use it. - * cpplib.c (undefine_macros): New. - (cpp_undef_all): New. - * cpplib.h (cpp_read_next_file): Prototype. - (cpp_undef_all): Prototype. - * langhooks-def.h (write_global_declarations): Remove prototype. - * toplev.h (write_global_declarations): Add prototype. - * tree.c (decl_type_context): Use switch statement, handle - TRANSLATION_UNIT_DECL. - * tree.def: Update documentation for TRANSLATION_UNIT_DECL. - (TRANSLATION_UNIT_DECL): New kind of tree. - * tree.h: Update documentation for TRANSLATION_UNIT_DECL. - * Makefile.in (c-decl.o): Add $(HASHTAB_H) to dependencies. - * doc/invoke.texi: Make attempt to document new functionality. - - 2003-05-19 Per Bothner - - * gcc.c (combine_inputs): New. - (process_command): Set combine_inputs. - (do_spec_1): Handle combine_inputs. - (main): Likewise. - -2003-07-10 James E Wilson - - PR optimization/9745 - * loop.c (loop_iv_add_mult_emit_before): Call loop_regs_update before - loop_insn_emit_before. - (loop_iv_add_mult_sink, loop_iv_add_mult_hoist): Likewise. - -2003-07-10 Zack Weinberg - - * cppcharset.c: Fix comment. - (iconv_close [!HAVE_ICONV]): #define to (void)0 to prevent warning. - (EILSEQ): #define to EINVAL if not already defined. - (convert_using_iconv): #if out when !HAVE_ICONV. - (init_iconv_desc): Handle !HAVE_ICONV here... - (cpp_init_iconv): ...not here. - -2003-07-11 Neil Booth - - * common.opt: More --help messages. - * opts.c (print_help): Use puts(). - * toplev.c (f_options): Remove help text. - (display_help): Don't dump f_options. - -2003-07-11 Nathanael Nerode - - * fixinc/mkfixinc.sh: Drop reference to unsupported alpha-*-interix*. - Move i?86-*-interix* to the don't-fix list. - * fixinc/fixinc.interix: Delete with extreme prejudice. - -2003-07-10 Dara Hazeghi - - PR bootstrap/10758 - * doc/install.texi: Document requirements for ia64-*-hpux* target. - -2003-07-10 Roger Sayle - - * config/ia64/hpux.h (TARGET_C99_FUNCTIONS): Define. - -2003-07-10 Zack Weinberg - - * cppcharset.c (one_utf8_to_cppchar, one_cppchar_to_utf8, - one_utf8_to_utf32, one_utf32_to_utf8, one_utf8_to_utf16, - one_utf16_to_utf8, conversion_loop, convert_utf8_utf16, - convert_utf8_utf32, convert_utf16_utf8, convert_utf32_utf8, - convert_no_conversion, convert_using_iconv): New functions. - (APPLY_CONVERSION): New macro. - (struct conversion, conversion_tab): New data structure. - (init_iconv_desc): Check conversion_tab for a custom conversion - primitive before trying to use iconv. - (convert_cset): Deleted. - (cpp_init_iconv): Use UTF- terminology, not UCS-. - (_cpp_destroy_iconv): Update to match. - (_cpp_valid_ucn): We don't need iconv to implement UCNs. - (convert_ucn): Use one_cppchar_to_utf8 and APPLY_CONVERSION. - (convert_escape, cpp_interpret_string): Use APPLY_CONVERSION. - (_cpp_interpret_string_notranslate): New function, moved here - from cpplib.c. - - * cpphash.h (convert_f, struct cset_converter): New types. - (struct cpp_reader): narrow_cset_desc and wide_cset_desc - are now struct cset_converter, not bare iconv_t. - Update prototypes. - * cpplib.c (interpret_string_notranslate): Moved to cppcharset.c; - all callers changed. - -2003-07-10 Kelley Cook - - * Makefile.in (options.h): Depend on Makefile. Add move-if-change - to opts.sh command line. - * opts.sh: Write to temporary files with a move-if-change at the end. - -2003-07-10 Denis Chertykov - Richard Kenner - - * combine.c (gen_binary): Handle the CLOBBER rtx and - don't build a binary operation with it. - -2003-07-10 Zdenek Dvorak - - * gcse.c (load_kills_store, find_loads, store_killed_in_insn, - store_killed_after, store_killed_before): Keep track of the correct - dependency function to use. - -2003-07-10 Steven Bosscher - * toplev.c (do_compile): Don't try to open dump files before - lang_dependent_init initializes dump_base_name. - -2003-07-10 Kaveh R. Ghazi - - * config/arm/arm.c (arm_init_iwmmxt_builtins, arm_expand_builtin): - Use ARRAY_SIZE. - * config/frv/frv.c (frv_expand_builtin): Likewise. - * config/sh/sh.c (sh_media_init_builtins): Likewise. - -2003-07-09 Mark Mitchell - - PR c++/10032 - * doc/invoke.texi (C++ Dialect Options): Change documentation of - -fpermissive. - -2003-07-10 J"orn Rennecke - - * tm.texi (RETURN_ADDR_OFFSET): Document. - -2003-07-10 Nathan Sidwell - - * gcov-io.h: Update documentation. - (GCOV_UNSIGNED2STRING): New. - (GCOV_TAG_FUNCTION_LENGTH, GCOV_TAG_BLOCKS_LENGTH, - GCOV_TAG_ARCS_LENGTH, GCOV_TAG_COUNTER_LENGTH, - GCOV_TAG_SUMMARY_LENGTH): Adjust. - (GCOV_TAG_BLOCKS_NUM, GCOV_TAG_ARCS_NUM, - GCOV_TAG_COUNTER_NUM): New. - (GCOV_BLOCK_SIZE): Number of words. - (gcov_var): Adjust buffer type. - * gcov-io.c (gcov_write_bytes, gcov_read_bytes): Rename to ... - (gcov_write_words, gcov_read_words): ... here. Take a 4-byte word - count, not byte count. - (gcov_open): Adjust overread init. - (gcov_allocate, gcov_write_unsigned, gcov_write_counter, - gcov_write_string, gcov_write_tag, gcov_write_length, - gcov_write_tag_length): Adjust. - (gcov_read_unsigned, gcov_read_counter, gcov_read_string): Adjust. - (gcov_sync, gcov_seek): Adjust. - * gcov-dump.c (print_usage): Show gcc version only. - (dump_file): Use GCOV_UNSIGNED2STRING. - (tag_blocks, tag_arcs, tag_counters): Use GCOV_TAG_*_NUM macros. - * gcov.c (print_version): Show gcc version only. - (read_graph_file): Use GCOV_UNSIGNED2STRING. Use - GCOV_TAG_*_NUM macros. - (read_count_file): Use GCOV_UNSIGNED2STRING. Use - GCOV_TAG_COUNTER_LENGTH. - * coverage.c (read_counts_file): Use GCOV_UNSIGNED2STRING. - Use GCOV_TAG_COUNTER_NUM. - * libgcov.c (gcov_version): Use GCOV_UNSIGNED2STRING. - (__gcov_merge_single, __gcov_merge_delta): Use GCOV_CHECK. - -2003-07-10 Andreas Schwab - - * gcov-dump.c (dump_file): Fix missing address operator. - -2003-07-10 Kazu Hirata - - PR c/11449 - * fold-const.c (sign_bit_p): Return EXP if VAL is the sign bit - of HOST_WIDE_INT. - (fold_single_bit_test): If sign_bit_p() fails, assume that the - bit being tested is not a sign bit. - -2003-07-10 Kazu Hirata - - * config/h8300/h8300.md (a peephole2): New. - -2003-07-10 Alexandre Oliva - - 2001-12-13 Alexandre Oliva - * config/mn10300/linux.h (LINK_SPEC): Rename the dynamic linker - from ld-linux.so.2 to ld.so.1. - 2001-11-18 Alexandre Oliva - * config/mn10300/linux.h (LINK_SPEC): -lpthread, not -lthread. - * config/mn10300/linux.h (LINK_SPEC): Don't handle -Wl,-rpath - nor -Wl,-rpath-link. - (LIB_SPEC): Add -rpath-link if !static. - 2001-08-22 Alexandre Oliva - * config/mn10300/mn10300.c (mn10300_protect_label): New - variable. - * config/mn10300/linux.h (PRINT_OPERAND, - PRINT_OPERAND_ADDRESS): Set it during their execution. - (ASM_OUTPUT_LABELREF): Output `+' before symbol name if - mn10300_protect_label is set. - * config/mn10300/linux.h (LINK_SPEC): Recognize -Wl,-rpath and - -Wl,-rpath-link. - (LIB_SPEC, STARTFILE_SPEC): Define. - 2001-05-11 Alexandre Oliva - * config/mn10300/t-linux (dp-bit.c, fp-bit.c): Don't define - FLOAT_BIT_ORDER_MISMATCH. - 2001-05-09 Alexandre Oliva - * config.gcc (am33_2.0-*-linux*): Added. - * config/mn10300/linux.h: New. - * config/mn10300/t-linux: New. - -2003-07-10 Andreas Jaeger - - * fold-const.c: Properly wrap prototypes. - -2003-07-09 Alexandre Oliva - - 2003-06-16 Alexandre Oliva - * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): - Moved from... - * config/mn10300/mn10300.md (GOTaddr2picreg): ... here. - * config/mn10300/mn10300.h: GTY-declare it. - 2003-06-11 Alexandre Oliva - * config/mn10300/mn10300.c (mn10300_encode_section_info): Fix - prototype. Use incoming RTL argument. - 2002-12-12 Alexandre Oliva - * config/mn10300/mn10300.md (int_label): Move C statements... - (GOTaddr2picreg): ... here. - 2002-08-15 Alexandre Oliva - * config/mn10300/mn10300.h (ENCODE_SECTION_INFO): Move... - * config/mn10300/mn10300.c (mn10300_encode_section_info): - ... here. New function. - (TARGET_ENCODE_SECTION_INFO): Define to it. - 2001-11-04 Alexandre Oliva - * config/mn10300/mn10300.md (builtin_setjmp_receiver): Fix typo in - pattern name. - (mn10300_loadPC): Define as insn splittable after reload. - 2001-05-13 Alexandre Oliva - * config/sh/mn10300.h (JUMP_TABLES_IN_TEXT_SECTION): Let them - be defined in .rodata even in PIC, now that the assembler - supports that. - 2001-05-09 Alexandre Oliva - * config/mn10300/mn10300.h (GOT_SYMBOL_NAME): Don't let the - symbol take an underscore prefix. - 2001-04-14 Alexandre Oliva - * config/mn10300/mn10300-protos.h (legitimate_pic_operand_p, - legitimize_pic_address): Declare. - * config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): Mark - the PIC register as fixed. - (EXTRA_CONSTRAINT): Match UNSPEC_PLT and UNSPEC_PIC for 'S'. - (GO_IF_LEGITIMATE_ADDRESS): Require legitimate_pic_operand for - PIC. - (LEGITIMATE_PIC_OPERAND_P): Define. - (PIC_OFFSET_TABLE_REGNUM): Define. - (GOT_SYMBOL_NAME): Define. - (SYMBOLIC_CONST_P): Define. - (ENCODE_SECTION_INFO): Use SYMBOL_REF_FLAG to mark local - symbols. - (MN10300_GLOBAL_P): Test it. - (OUTPUT_ADDR_CONST_EXTRA): Handle PIC-related unspecs. - (JUMP_TABLES_IN_TEXT_SECTION): Enable for PIC. - * config/mn10300/mn10300.c (print_operand): Handle unspec. - (expand_prologue): Set PIC register. - (call_address_operand): Don't match SYMBOL_REFs in PIC. - (legitimize_address): Call legitimize_pic_address. - (legitimize_pic_address): New fn. - (legitimate_pic_operand_p): New fn. - * config/mn10300/mn10300.md (PIC_REG, SP_REG): New constants. - (UNSPEC_INT_LABEL, UNSPEC_PIC, UNSPEC_GOT, UNSPEC_GOTOFF, - UNSPEC_PLT): New constants. - (pop_pic_reg): New insn. - (movsi): Adjust non-PIC addresses. - (builtin_setjmp_receiver): Restore the PIC register. - (casesi): New insn. - (call): Adjust non-PIC addresses. - (int_label, GOTaddr2picreg): New expands. - (am33_loadPC): New insn. - (mn10300_loadPC): New expand. - (call_next_insn): New insn. - (add_GOT_to_pic_reg): New expand. - (symGOT2reg, symGOT2reg_i): New expands. - (symGOTOFF2reg, symGOTOFF2reg_i): New expands. - (sym2PIC, sym2PLT): New expands. - -2003-07-09 Alexandre Oliva - - * config/mn10300/mn10300.h (PREDICATE_CODES): Define. - 2001-05-01 Alexandre Oliva - * config/mn10300/mn10300.md (sqrtsf2): flag_fast_math was renamed - to flag_unsafe_math_optimizations. - 2001-04-14 Alexandre Oliva - * config/mn10300/mn10300.c (expand_prologue): Mark - FP-register-saving insns as frame-related. - 2001-02-13 Alexandre Oliva - * config/mn10300/mn10300.c - (mn10300_get_live_callee_saved_regs): Don't search past - LAST_EXTENDED_REGNUM. - (mn10300_gen_multiple_store, store_multiple_operation): Likewise. - * config/mn10300/mn10300.md: Remove excessive line breaks from - `@' output patterns that were accounted as additional - alternatives. - * config/mn10300/mn10300.md, config/mn10300/mn10300.c: - Re-introduce changes accidentally removed in Richard Sandiford's - 2000-12-05's patch. - * config/mn10300/t-mn10300 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): - Re-instate am33-2 lost in merge from net GCC. - 2000-08-26 Alexandre Oliva - * config/mn10300/mn10300.h (DBX_REGISTER_NUMBER): Added - floating-point registers. - 2000-08-07 Alexandre Oliva - * config/mn10300/mn10300.md (movdf): Revert some am33-specific - pessimizations that had gone in on 2000-05-08. - 2000-06-28 Graham Stott - * config/mn10300/mn10300.h (REG_CLASS_CONTENTS): Fix typo. - 2000-06-22 Graham Stott - * config/mn10300/mn10300.md (movqi): Use nonimmediate_operand for - operand 0. - * (movhi): Likewise. - * (movsi): Likewise. - * (movsf): Likewise. - * (movdi): Likewise. - * (movdf): Likewise. - 2000-05-24 Alexandre Oliva - * config/mn10300/mn10300.c (fp_regs_to_save): New function. - (can_use_return_insn, initial_offset): Add fp_regs_to_save. - (expand_prologue, expand_epilogue): Save and restore FP regs. - 2000-05-20 Alexandre Oliva - * config/mn10300/mn10300.md (movdi, movdf): 64-bit clean-up. - 2000-05-13 Alexandre Oliva - * config/mn10300/mn10300.md (abssf2, negsf2, rsqrtsf2, addsf3, - subsf3, mulsf3, divsf3, fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4): - Do not clobber cc0. - 2000-05-12 Alexandre Oliva - * config/mn10300/mn10300.md (abssf2, negsf2, rsqrtsf2): - Discourage the two-argument, longer opcodes. - (addsf3, subsf3, mulsf3, divsf3): Likewise for three-argument - ones. - * config/mn10300/mn10300.h (struct mn10300_cc_status_mdep): New. - (CC_STATUS_MDEP, CC_STATUS_MDEP_INIT): Define. - * config/mn10300/mn10300.md (cmpsf): New pattern. - (branch): Test mdep.fpCC and output fbCC. - * config/mn10300/mn10300.c (print_operand): Output conditions. - (notice_cc_update): Recognize fcmp and set mdep.fpCC. - 2000-05-10 Alexandre Oliva - * config/mn10300/mn10300.md (movsf, movdf, addsf3, subsf3, - mulsf3, divsf3): Use the `F' constraint for FP values. - * config/mn10300/mn10300.c (const_1f_operand): New function. - * config/mn10300/mn10300-protos.h (const_1f_operand): Declare. - * config/mn10300/mn10300.md (sqrtsf2): New expand. - (rsqrtsf2): New insn. - 2000-05-09 Alexandre Oliva - * config/mn10300/mn10300.md (movdf): Oops, I missed it in my - previous check-in. - 2000-05-08 Alexandre Oliva - * config/mn10300/mn10300.md (abssf2, negdf2): On - TARGET_AM33_2, expand to... - (abssf2_am33_2, negdf2_am33_2): New insns. - (addsf3, subsf3, mulsf3, divsf3): Likewise. - (fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4): Likewise. - * config/mn10300/mn10300.md (movqi, movhi, movsi, movsf, - movdi, movdf): Added FP regs. - * invoke.texi (-mam33-2, -mno-am33-2): Document. - 2000-04-29 Alexandre Oliva - * config/mn10300/mn10300.h (FIRST_FP_REGNUM, LAST_FP_REGNUM): - New macros. - (REGNO_AM33_2_FP_P): Renamed to... - (REGNO_FP_P): Redefine in terms of FIRST_* and LAST_*. - (CONDITIONAL_REGISTER_USAGE, REGNO_REG_CLASS): Likewise. - 2000-04-27 Alexandre Oliva - * config/mn10300/mn10300.h (REG_CLASS_CONTENTS): Remove FP - regs from GENERAL_REGS. - 2000-04-27 Alexandre Oliva - * config/mn10300/mn10300.h (REGNO_AM33_2_FP_P): New macro. - * config/mn10300/mn10300.c (mn10300_address_cost): Added FP_REGS. - * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Added FP_REGS. - 2000-04-23 Alexandre Oliva - * config/mn10300/mn10300.h (CLASS_CANNOT_CHANGE_SIZE): Defined - as FP_REGS. - 2000-04-21 Alexandre Oliva - * config/mn10300/mn10300.h (OK_FOR_Q): New macro. - (EXTRA_CONSTRAINT): Added OK_FOR_Q. - * config/mn10300/mn10300.c (secondary_reload_class): Adjust. - * config/mn10300/mn10300.c (print_operand): Support `D' for doubles. - * config/mn10300/mn10300.h (FIRST_PSEUDO_REGISTER): Adjust. - (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER): Added - AM33/2.0 floating-point registers. - (CONDITIONAL_REGISTER_USAGE): Adjust. - (enum reg_class, REG_CLASS_NAMES): Added FP_REGS and FP_ACC_REGS. - (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Adjust. - (REG_CLASS_FROM_LETTER): Added `f' and `A'. - (REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Adjust. - * config/mn10300/t-mn10300 (MULTILIB_OPTIONS): Added am33-2. - (MULTILIB_DIRNAMES): Likewise. - * config/mn10300/mn10300.h (CPP_SPEC): Define `__AM33__=2' and - `__AM33_2__' when `-mam33-2' is given. - (TARGET_AM33_2): Define. - (TARGET_SWITCHES): Adjust. - * config/mn10300/mn10300.c (asm_file_start): Print `.am33_2' - when appropriate. - -2003-07-09 Matt Kraai - - * doc/install.texi: Add missing @. - -2003-07-09 Bob Wilson - - * config/xtensa/xtensa.h (CRT_CALL_STATIC_FUNCTION): Define. - -2003-07-09 Aldy Hernandez - - PR/11144 - * config/i386/i386.c (ix86_function_arg_boundary): Remove abort. - -2003-07-09 Nathanael Nerode - - PR bootstrap/11043 - * config/arc/t-arc: Replace bogus references to "x-crtinit.o", - "x-crtfini.o" with "crtinit.o", "crtfini.o". - - * fixinc/inclhack.def (limits_ifndefs): Add select test. - * fixinc/fixincl.x: Rebuild. - - * fixinc/inclhack.def (math_exception): Improve bypass and comment. - * fixinc/fixincl.x: Rebuild. - -2003-07-09 Hans-Peter Nilsson - - * doc/install.texi (Configuration): Document the valgrind option - to --enable-checking. - -2003-07-09 Jan Hubicka - - * objc-lang.c (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): New. - -2003-07-09 Rainer Orth - - * c-lex.c (cb_ident): Cast cstr.text to const char *. - -2003-07-09 Nathan Sidwell - - * gcov-io.h: Update documentation. - (GCOV_GRAPH_SUFFIX, GCOV_GRAPH_MAGIC): Rename to GCOV_NOTE_SUFFIX, - GCOV_NOTE_MAGIC. - (GCOV_DATA_SUFFIX, GCOV_NOTE_SUFFIX): Update. - (GCOV_DATA_MAGIC, GCOV_NOTE_MAGIC): Make non-palindromic. - (struct gcov_var): Change buffer's type. Add endian flag. - (gcov_open): Remove mode in libgcov. - (gcov_magic): Prototype. - * gcov-io.c (from_file): New. - (gcov_open): Clear endian flag. - (gcov_magic): New. - (gcov_write_bytes, gcov_read_bytes): Return gcov_unsigned_t - pointers. - (gcov_write_unsigned, gcov_write_counter, gcov_write_string, - gcov_write_tag, gcov_write_length, gcov_write_tag_length): Update. - (gcov_read_unsigned, gcov_read_counter, gcov_read_string): Update. - * gcov-iov.c (main): Correct cast. - * coverage.c (read_counts_file): Use gcov_magic. Remove endianness - conversion. - (gcov_begin_output): Use GCOV_NOTE_MAGIC. - (coverage_init): Use GCOV_NOTE_SUFFIX. - * libgcov.c (gcov_version_mismatch): Remove endianness conversion. - Rename to gcov_version, and return flag. - (gcov_exit): Use gcov_version. - (__gcov_init): Use gcov_version. - * Makefile.in (coverageexts): Update. - * gcov.c (print_version): Remove endianness conversion. - (create_file_names): Use GCOV_NOTE_SUFFIX. - (read_graph_file): Use gcov_magic. - (read_count_file): Likewise. - * gcov-dump.c (dump_file): Remove endianness conversion, use - gcov_magic. - -2003-07-09 Nathan Sidwell - - * configure.in (BUILD_PREFIX, BUILD_PREFIX_1): Set if enable - coverage is on. - * configure: Regenerated. - * Makefile.in (ALL_CFLAGS): Correct its comment. - -2003-07-08 Mark Mitchell - - * fold-const.c (make_range): Do not access operand 1 for a - zero-operand operator. - -2003-07-09 Neil Booth - - * toplev.c (warn_dummy, W_options): Die. - (display_help): Don't print W_options. - * common.opt: Add W_options help from toplev.c. - -2003-07-09 Andreas Jaeger - - * opts.c (wrap_help): Only pass int arguments as arguments to - printf's '*' modifier. Change argument of function. - -2003-07-08 Matt Kraai - - * doc/invoke.texi: Fix misspelling of "@item". - -2003-07-08 Kazu Hirata - - * config/i386/i386.md: Remove an old comment about - NOTICE_UPDATE_CC. - -2003-07-09 Jan Hubicka - - * cgraph.c (cgraph_node_name): New function. - (dump_cgraph): Use it. - * cgraph.h (cgraph_dump_file): Declare. - (cgraph_node_name): Declare. - * cgraphunit.c: Include timevar.h - (cgraph_finalize_compilation_unit): Use timevar; reorganize dumps. - (cgraph_optimize_function): Use TV_INTEGRATION. - (cgraph_mark_local_functions): reorganize dumps. - (cgraph_mark_functions_to_inline_once): Likewise. - (cgraph_optimize): Likewise; use timevar. - * timevar.def (TV_CGRAPH, TV_CGRAPHOPT): New. - * toplev.c (dump_file_index): Add DFI_cgraph. - (dump_file_info): Likewise. - (cgraph_dump_file): New global variable. - (do_compile): Open and close cgraph dump. - * invoke.texi (-d): Document new flag; renumber. - -2003-07-08 Roger Sayle - - PR c/11370 - * calls.c (emit_call_1): Don't bother popping the arguments off of - the stack after a noreturn function call; The adjustment is dead. - (expand_call): Likewise. - -2003-07-08 Geoffrey Keating - - * expr.c (MOVE_MAX_PIECES): Move from here... - * defaults.h (MOVE_MAX_PIECES): ... to here. - -2003-07-08 Matt Kraai - - * Makefile.in (stage1-start): Handle an empty SUBDIRS. - -2003-07-08 Kaveh R. Ghazi - - * genattr.c (internal_dfa_insn_code): Don't prototype. - * genattrtab.c (attr_desc): Add `static_p' field. - (expand_units): Make blockage range and ready cost functions - static. - (write_attr_get): Don't add extern prototypes in C file. Mark - static functions as appropriate. - (find_attr, make_internal_attr): Initialize static_p. - * genattrtab.h (ATTR_STATIC): New macro. - * genautomata.c (output_internal_reset_func): Mark output function - as inline. - (make_internal_dfa_insn_code_attr): Mark output function as static. - -2003-07-08 Kaveh R. Ghazi - - * genattrtab.h: Add new macros for attr `special' flags. - * genattrtab.c (attr_desc): Reorder/resize fields better. - Use attr `special' macros in all calls to make_internal_attr. - * genautomata.c: Likewise. - -2003-07-09 Jan Hubicka - - * c-common.c (c_estimate_num_insns_1): New static function. - (c_estimate_num_insns): New global function. - * c-common.h (DECL_NUM_STMTS): Rename to... - (DECL_ESTIMATED_INSNS): ... this. - (c_estimate_num_insns): Declare. - * c-decl.c (duplicate_decls): Use DECL_ESTIMATED_INSNS. - * c-lang.c (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): New. - * c-semantics.c (add_stmt): Do not account statements. - * langhooks-def.h (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): - New. - * langhooks.h (lang_hooks_for_tree_inlining): Add - estimate_num_insns - * params.def (max-inline-insns-auto, max-inline-insns-auto): set - to 100. - (max-inline-insns): set to 300. - (min-inline-insns): set to 10. - * tree-inline.c (struct inline_data): Rename inlined_stmts to - inlined-insns. - (INSNS_PER_STMT): Kill. - (inlinable_function_p): Compute and store body size. - (expand_call_inline): Likewise. - (optimize_inline_calls): Likewise. - -2003-07-08 James E Wilson - - PR target/10021 - * emit-rtl.c (set_mem_attribute_minus_bitpos): When handle ARRAY_REF, - loop over new variable t2 instead of t. - -2003-07-08 Danny Smith - - PR bootstrap/11455 - * config/i386/winnt.c: Replace use of error(), warning() with - error_with_decl(), warning_with_decl(), throughout. - -2003-07-08 Neil Booth - - * opts.c (wrap_help): Use unsigned int, not size_t. - -2003-07-08 Stephane Carrez - - * config/m68hc11/m68hc11.h (HAVE_AS_DWARF2_DEBUG_LINE): Don't define - as .file/.loc directives are incompatible with linker relaxation. - -2003-07-08 Zack Weinberg - - * Makefile.in (fixinc.sh): Remove gnu-regex.[ch] from dependencies. - * fixinc/Makefile.in: Remove all references to gnu-regex.[och]. - * fixinc/fixfixes.c, fixinc/fixincl.c, fixinc/fixlib.c - * fixinc/fixtests.c: Use xregexec not regexec, xregcomp not regcomp. - * fixinc/fixlib.h: Include xregex.h not gnu-regex.h. - * fixinc/inclhack.def (hpux10_cpp_pow_inline, hpux11_cpp_pow_inline): - Escape { and } characters which are not part of range expressions. - * fixinc/fixincl.x: Regenerate. - * fixinc/gnu-regex.c, fixinc/gnu-regex.h: Delete file. - -2003-07-08 Steven Bosscher - - PR c/1687 - * tree-inline.c (find_alloca_call): Use - walk_tree_without_duplicates, instead of walk_tree. - (find_builtin_longjmp_call): Likewise. - * c-objc-common.c (c_cannot_inline_fn): Likewise. - * c-semantics.c (find_reachable_label): Likewise. - -2003-07-08 Jakub Jelinek - - PR c/11420 - * config/i386/i386.c (ix86_check_movabs): New function. - * config/i386/i386-protos.h (ix86_check_movabs): New prototype. - * config/i386/i386.md (movabs[shqd]i_1_rex64): Kill broken alternative. - (movabs[shqd]i_[12]_rex64): Add ix86_check_movabs check to conditions. - -2003-07-08 Chris Demetriou - - * Makefile.in (install-po): Cope with empty CATALOGS. - -2003-07-08 Richard Sandiford - - * config/mips/elf64.h (TARGET_ASM_UNIQUE_SECTION): Delete. - (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete. - (SECTION_FUNCTION_TEMPLATE): Delete. - * config/mips/elf.h: As for elf64.h. - (ASM_OUTPUT_ALIGNED_BSS): Use named_section rather than sbss_section. - * config/mips/linux.h: As for elf.h - * config/mips/iris6gld.h (TARGET_ASM_UNIQUE_SECTION): Delete. - * config/mips/iris6.h (EXTRA_SECTIONS): Delete. - (EXTRA_SECTION_FUNCTIONS): Remove sdata_section. Remove the handling - of in_sdata from current_section_name and current_section_flags. - * config/mips/iris6gld.h (TARGET_ASM_UNIQUE_SECTION): Delete. - * config/mips/mips.h (sdata_section, sbss_section): Remove prototypes. - (MASK_GP_OPT, TARGET_GP_OPT): Delete. - (MASK_NO_FUSED_MADD): Use MASK_GP_OPT's old value. - (TARGET_SWITCHES): Neuter gpOPT, gpopt, no-gpOPT and no-gpopt. - (SMALL_DATA_SECTION, EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Remove. - * config/mips/mips.c (TARGET_IN_SMALL_DATA_P): Override. - (TARGET_SECTION_TYPE_FLAGS): Override if TARGET_IRIX6. - (mips_classify_symbol): Use SYMBOL_REF_SMALL_P. - (override_options): Remove setting of MASK_GPOPT. - (mips_output_external): Use mips_in_small_data_p to check whether a - symbol needs an .extern directive. Don't emit such directives for - TARGET_EXPLICIT_RELOCS. - (mips_declare_object): Update accordingly. - (mips_select_rtx_section): Call named_section rather than - SMALL_DATA_SECTION. - (mips_select_section): Use default_elf_section_section for everything - except .text string constants. - (mips_in_small_data_p): New function. - (mips_encode_section_info): Remove small data handling. - (mips_unique_section): Delete. - (iris6_section_type_flags): New function. - * doc/tm.texi: Remove documentation of -mgpopt and -mhalf-pic. - -2003-07-08 John David Anglin - - PR Target/11453 - * pa.md: Disparage all mtsar constraints. - (extzv, extv, insv): Don't fail on length of {32|64}. - -2003-07-08 Zack Weinberg - - * system.h: Poison MAP_CHARACTER. - * config/i370/i370-protos.h (mvs_map_char): Delete. - * config/i370/i370.c (ascebc, ebcasc, mvs_map_char): Delete. - * config/i370/i370.h (MAP_CHARACTER): Delete definition. - (ASM_OUTPUT_ASCII): Don't use MAP_CHARACTER. - -2003-07-08 Danny Smith - - * toplev.c (randomize): Correct call to time(). - -2003-07-08 Jakub Jelinek - - * unroll.c (reg_dead_after_loop): Check for reg in REG_EQUAL and - REG_EQUIV notes as well. - -2003-07-08 Kazu Hirata - - * doc/md.texi: Fix the description of addmodecc. - -2003-07-07 Zack Weinberg - - * Makefile.in (top_builddir): Set to "..", not ".". - (INTLLIBS, INTLDEPS): Delete. - (LIBINTL, LIBINTL_DEP, LIBICONV_DEP): New variables to be substituted. - (LIBDEPS): Add $(LIBICONV_DEP). - (LIBS): Take out $(INTLLIBS), add $(LIBINTL) and $(LIBICONV). - (INCLUDES): Replace -I../intl with @INCINTL@. - ($(top_builddir)/intl/libintl.a): Delete rule. - (stage2-start, stage3-start, stage4-start, stageprofile-start, - stagefeedback-start): Use $$ for variable to be evaluated by - shell, not make. - * acconfig.h (ENABLE_NLS, HAVE_CATGETS, HAVE_GETTEXT, - HAVE_LC_MESSAGES, HAVE_STPCPY): Delete. - * aclocal.m4: sinclude ../config/progtest.m4. Add - contents of lcmessage.m4 from gettext distro. - * configure.in: Check for wchar.h and setlocale. Set - LIBICONV_DEP to the empty string and substitute it. - Call AM_LC_MESSAGES. Delete AC_ARG_ENABLE for --enable-nls; - this is handled elsewhere. Use ZW_GNU_GETTEXT_SISTER_DIR, - not CY_GNU_GETTEXT. Clear $LIBICONV if its text is included - in $LIBINTL, to avoid linking it twice. - * configure, config.in: Regenerate. - -2003-07-08 Nathanael Nerode - - * fixinc/mkfixinc.sh: Remove winnt support. - * fixinc/fixinc.winnt: Delete with extreme prejudice. - -2003-07-08 Neil Booth - - * Makefile.in: Update. - * c-opts.c (c_common_handle_option): opt_text now contains the '-'. - * c.opt: Update documentation. - * common.opt: Add some help text. - * opts.c: Include intl.h. - (wrap_help, print_help): New. - (find_opt, handle_option, common_handle_option): opt_text now - contains the '-'. Use print_help to output help. - * opts.h (struct cl_option): New member "help". - * opts.sh: Update to handle help text output and to prepend - options with '-'. - * toplev.c (display_help): Remove some help text. - -2003-07-07 David Edelsohn - Fariborz Jahanian - - * configure.in: Test for PowerPC mfcr field support in assembler. - * config.in, configure: Regenderated. - - * config/rs6000/power4.md: Add mfcrf reservation. - * config/rs6000/rs6000-protos.h (mfcr_operation): Declare. - * config/rs6000/rs6000.c (mfcr_operation): Define. - (print_operand): Add 'Q' case for mfcrf. - * config/rs6000/rs6000.h (TARGET_MFCRF): New. - * config/rs6000/rs6000.md (attribute "type"): Add mfcrf. - (movcc_internal1): Emit optional field operand for mfcr and set - "type" attribute appropriately. - (mfcr SCC): Likewise. - (movesi_from_cr_one): New. - -2003-07-07 Roger Sayle - - * config/i386/i386.md: Correct check-in of incorrect version. - -2003-07-07 Kaveh R. Ghazi - - * bitmap.c (debug_bitmap_file): Merge uses of HOST_PTR_PRINTF with - adjacent stdio calls. - * c-decl.c (c_print_identifier): Likewise. - * mips-tfile.c (write_varray, write_object, allocate_cluster): Likewise. - * print-rtl.c (print_rtx): Likewise. - * print-tree.c (print_node_brief, print_node): Likewise. - * system.h (HOST_PTR_PRINTF): Ensure we have a literal string. - - * configure.in (AC_COMPILE_CHECK_SIZEOF): Check for `void *'. - * config.in, configure: Regenerated. - -2003-07-07 Roger Sayle - - PR target/10979 - * config/i386/i386.md (atan2df3, atan2sf3, atan2xf3, atan2tf3): - Changed to define_expand patterns that copy operand[1] to prevent - it from being clobbered before emitting an atan2?f3_1 insn. - (atan2df3_1, atan2sf3_1, atan2xf_1, atan2tf3_1): New define_insn - patterns that actually specify the behaviour of x87's FPATAN. - -2003-07-07 Jakub Jelinek - - * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Remove bogus - clearing of SYMBOL_FLAG_LOCAL bit. - If vcall_offset fits into signed 16-bit immediate, use - one instruction for both addition and load. - -2003-07-07 Neil Booth - - * opts.c (common_handle_option): Correct handling of the - -falign- switches that do and don't take an argument. - -2003-07-07 Kazu Hirata - - * config/h8300/h8300.md (pushqi1_h8300hs): Revert my patch - today. - (pushhi1_h8300hs): Likewise. - -2003-07-07 Andreas Jaeger - - * genextract.c: Convert remaining prototypes to ISO C90. - - * cpplex.c (_cpp_free_buff): Convert prototype to ISO C90. - * fold-const.c (fold_single_bit_test): Likewise. - * diagnostic.c (default_diagnostic_finalizer): Likewise. - * cfgrtl.c (rtl_redirect_edge_and_branch): Likewise. - - * gengtype.c (write_array): Generate ISO C90 prototypes. - - * genflags.c (gen_proto): Generate ISO C90 prototypes. - -2003-07-07 Roger Sayle - - PR optimization/11059 - * expr.c (can_store_by_pieces): Return true if length is zero. - (store_by_pieces): If length is zero and endp is two, abort, - othwerise, if length is zero and endp is not two, return "to". - (clear_by_pieces): Do nothing if length is zero. - (clear_storage): Do nothing if length is zero. - (store_constructor): Simplify code when size is zero, or the - target has already been cleared. This avoids emitting a - blockage instruction when initializing empty structures. - -2003-07-07 Andreas Jaeger - - * mips-tfile.c: Convert prototypes to ISO C90. - * mips-tdump.c: Convert prototypes to ISO C90. - -2003-07-07 Nathan Sidwell - - * rtl.h (emit_line_note): Take a location_t. - (emit_line_note_force): Remove. - (set_file_and_line_for_statement): Take a location_t. - * tree.g (emit_line_note): Take a location_t. - * emit-rtl.c (emit_line_note): Take a location_t. - (emit_line_note_force): Remove. - * function.c (init_function_start): Adjust emit_line_note call. - (expand_function_end): Use force_next_line_note, not - emit_line_note_force. - * c-parse.in (maybe_type_qual): Adjust emit_line_note calls. - * c-semantics.c (genrtl_do_pushlevel, genrtl_goto_stmt, - genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt, - genrtl_while_stmt, genrtl_do_stmt_1, genrtl_return_stmt, - genrtl_for_stmt, genrtl_break_stmt, genrtl_continue_stmt, - genrtl_continue_stmt, genrtl_switch_stmt, - genrtl_asm_stmt): Likewise. - * expr.c (expand_expr): Likewise. - * integrate.c (expand_inline_function): Likewise. - * stmt.c (set_file_and_line_for_stmt): Take a location_t. - (expand_decl_init): Adjust emit_line_note call. - -2003-07-07 Dale Johannesen - - * config/rs6000/darwin-tramp.asm: Fix trampolines. PR 10900. - -2003-07-07 Andreas Jaeger - - * config/i386/i386-protos.h: Convert prototypes to ISO C90. - * config/i386/i386.c: Likewise. - -2003-07-07 Kazu Hirata - - * config/h8300/h8300.md: Use gen_int_mode instead of - GEN_INT (trunc_int_for_mode (...)). - -2003-07-07 Kazu Hirata - - * config/h8300/h8300.md (pushqi1_h8300hs): Optimize by pushing - 2 bytes and then subtract 2 from the stack pointer. - (pushhi1_h8300hs): Likewise. - -2003-07-07 Nathan Sidwell - - * configure.in (enable_coverage): Remove -DSELF_COVERAGE, add - -frandom-seed. - * configure: Regenerated. - * Makefile.in: Remove extraneous comment. - * toplev.c (randomize): Protect against potential multiple calls. - * doc/invoke.texi (-frandom-seed): Document use for in coverage - files. - -2003-07-07 Richard Kenner - Eric Botcazou - - PR optimization/11198 - * alias.c (objects_must_conflict_p): Return 1 if the types have - the same alias set, not if the alias sets only conflict. - -2003-07-07 Andrew Pinski - - * cppcharset.c (ICONV_CONST): Define iff !HAVE_ICONV. - (convert_cset): Change inbuf to type ICONV_CONST char. - * Makefile.in (LIBS): Add LIBICONV. - - * doc/invoke.texi (-falign-functions): Document that - when n is zero then a machine-dependent default is used. - (-falign-labels): Document that when n is zero then a - machine-dependent default is used and that -falign-labels =1 - is equivalent to -fno-align-labels. - (-falign-loops): Likewise. - (-falign-jumps): Likewise. - -2003-07-06 Art Haas - - * f/global.c (ffeglobal_type_string_): Fix obsolete GCC array - initializer syntax. - -2003-07-06 James E Wilson - - PR optimization/9812 - * rtl.h (mem_for_const_double): Delete prototype. - * varasm.c (mem_for_const_double): Delete function. - * config/m68k/hp320.h, config/m68k/linux.h, config/m68k/m68kelf.h, - config/m68k/m68kv4.h, config/m68k/netbsd-elf.h - (LEGITIMATE_PIC_OPERAND_P): Delete duplicate definitions. - * config/m68k/m68k.h (LEGITIMATE_CONSTANT_P): Disallow XFmode. - (LEGITIMATE_PIC_OPERAND_P): Delete CONST_DOUBLE tests. - * config/m68k/m68k.md (movxf): Add reload_in_progress guard. Add - comment about confused support for XFmode constants. - -2003-07-07 Jan Hubicka - - * cfglayout.c (fixup_reorder_chain): Call delete_dead_jumptables. - -2003-07-06 Kazu Hirata - - * config/h8300/h8300.c: Fix comment typos. - * config/h8300/h8300.md: Likewise. - * config/i386/athlon.md: Likewise. - * config/i386/i386.c: Likewise. - * config/i386/pentium.md: Likewise. - * config/ia64/ia64.c: Likewise. - * config/ia64/itanium1.md: Likewise. - * config/ia64/itanium2.md: Likewise. - * config/m32r/m32r.md: Likewise. - * config/m68hc11/m68hc11.c: Likewise. - * config/mcore/mcore.c: Likewise. - * config/mips/sr71k.md: Likewise. - * config/mips/t-iris5-as: Likewise. - * config/mmix/mmix.h: Likewise. - * config/ns32k/ns32k.h: Likewise. - * config/ns32k/NOTES: Fix a typo. - -2003-07-06 Andreas Jaeger - - * stmt.c: Convert remaining prototypes to ISO C90. - * cfglayout.c: Likewise. - * dbxout.c: Likewise. - * gcc.c: Likewise. - * genemit.c: Likewise. - - * basic-block.h: Convert prototypes to ISO C90. - * c-parse.in: Likewise. - * c-pragma.h: Likewise. - * c-typeck.c: Likewise. - * cfghooks.h: Likewise. - * cfgloopanal.c: Likewise. - * dbxout.h: Likewise. - * debug.h: Likewise. - * dwarf2asm.h: Likewise. - * gcov.c: Likewise. - * gengtype-lex.l: Likewise. - * sched-int.h: Likewise. - * timevar.c: Likewise. - -2003-07-06 Neil Booth - - * c-common.h (c_comon_handle_filename, - c_common_missing_arguement): New. - * c-lang.c (LANG_HOOKS_HANDLE_FILENAME, - LANG_HOOKS_MISSING_ARGUMENT): New. - * c-opts.c (missing_arg): Rename c_common_missing_argument, - update to be an appropriate langhook. - (c_common_handle_option): Don't handle filenames. - (c_common_handle_filename): New. - * hooks.c (hook_void_constcharptr, - hook_bool_constcharptr_size_t_false): New. - * hooks.h (hook_void_constcharptr, - hook_bool_constcharptr_size_t_false): New. - * langhooks-def.h (LANG_HOOKS_HANDLE_FILENAME, - LANG_HOOKS_MISSING_ARGUMENT): New. - (LANG_HOOKS_INITIALIZER): Update. - * langhooks.h (struct lang_hooks): Add handle_filename and - missing_argument. - * opts.c (handle_option): Don't handle filenames here, but ... - (handle_options): ... here. - (common_handle_option): Don't handle missing arguments here. - * objc/objc-lang.c (LANG_HOOKS_HANDLE_FILENAME, - LANG_HOOKS_MISSING_ARGUMENT): New. - -2003-07-06 Neil Booth - - * Makfile.in: Remove traces of mbchar. - * c-parse.in (MULTIBYTE_CHARS): Remove. - * config.in (MULTIBYTE_CHARS): Remove. - * configure: Remove --enable-mbchar. - * configure.in: Remove --enable-mbchar. - * mbchar.c, mbchar.h: Remove. - * system.h: Poison MULTIBYTE_CHARS. - * config/linux-aout.h (MULTIBYTE_CHARS): Remove. - * config/linux.h (MULTIBYTE_CHARS): Remove. - * config/svr4.h (MULTIBYTE_CHARS): Remove. - * config/sparc/linux.h (MULTIBYTE_CHARS): Remove. - -2003-07-06 Andreas Jaeger - - * varray.c (varray_check_failed): Fix typo. - - * unroll.c: Convert prototypes to ISO C90. - * varasm.c: Likewise. - * varray.c: Likewise. - * varray.h: Likewise. - * vmsdbgout.c: Likewise. - * xcoffout.c: Likewise. - * xcoffout.h: Likewise. - -2003-07-06 Nathan Sidwell - - * gcov-io.h: Add a local time stamp. - (struct gcov_info): Add stamp field. - (gcov_truncate): New. - * coverage.c (read_counts_file): Skip the stamp. - (coverage_begin_output): Write the stamp. - (build_gcov_info): Declare and init the stamp. - (coverage_finish): Only unlink data file, if stamp is zero. - * gcov-dump.c (dump_file): Dump the stamp. - * gcov.c (bbg_stamp): New. - (release_structures): Clear bbg_stamp. - (read_graph_file): Read stamp. - (read_count_file): Check stamp. - * libgcov.c (gcov_exit): Check stamp and truncate if needed. - -2003-07-06 Nathan Sidwell - - * tree.h (default_flag_random_seed): Remove. - * toplev.h (local_tick): Declare. - * tree.c (flag_random_seed, default_flag_random_seed): Move to - toplev.c. - (append_random_chars): Don't call default_flag_random_seed. - * toplev.c (flag_random_seed): Define here. Set local_tick. - (local_tick): Define. - (randomize): New, moved from tree.c. - (print_switch_values): Adjust. - (toplev_main): Call randomize. - -2003-07-06 Nathan Sidwell - - * tree.h (crc32_string): Declare. - * tree.c (append_random_chars): Remove. - (crc32_string): New. - (get_file_function_name_long): Use crc32_string here. - -2003-07-06 Andreas Jaeger - - * gcc.c: Convert prototypes to ISO C90. - * gcc.h: Likewise. - * gcov-dump.c: Likewise. - * gcov-iov.c: Likewise. - * gcse.c: Likewise. - * genattrtab.h: Likewise. - * ggc.h: Likewise. - * global.c: Likewise. - * graph.c: Likewise. - * graph.h: Likewise. - * hosthooks.h: Likewise. - * hooks.h: Likewise. - * hooks.c: Likewise. - * hashtable.h: Likewise. - * hashtable.c: Likewise. - * haifa-sched.c: Likewise. - * integrate.h: Likewise. - * integrate.c: Likewise. - * input.h: Likewise. - * ifcvt.c: Likewise. - * jump.c: Likewise. - * langhooks-def.h: Likewise. Add extern to prototypes. - * langhooks.c: Likewise. - * langhooks.h: Likewise. - * lcm.c: Likewise. - * local-alloc.c: Likewise. - * loop-init.c: Likewise. - * loop-unroll.c: Likewise. - * loop-unswitch.c: Likewise. - * loop.c: Likewise. - * loop.h: Likewise. Add extern to prototypes. - * machmode.h: Likewise. - * main.c: Likewise. - * mbchar.c: Likewise. - * mbchar.h: Likewise. - * mkdeps.c: Likewise. - * mkdeps.h: Likewise. - * optabs.c: Likewise. - * optabs.h: Likewise. - * output.h: Likewise. - * gccspec.c: Likwise. - * postreload.c: Likewise. - * prefix.c: Likewise. - * prefix.h: Likewise. - * print-rtl.c: Likewise. - * print-tree.c: Likewise. - * profile.c: Likewise. - * read-rtl.c: Likewise. - * real.c: Likewise. - * real.h: Likewise. - * recog.c: Likewise. - * recog.h: Likewise. - * reg-stack.c: Likewise. - * regclass.c: Likewise. - * regmove.c: Likewise. - * regrename.c: Likewise. - * regs.h: Likewise. - * reload.c: Likewise. - * reload.h: Likewise. - * reload1.c: Likewise. - * reorg.c: Likewise. - * resource.c: Likewise. - * resource.h: Likewise. - * rtl-error.c: Likewise. - * rtl.c: Likewise. - * rtl.h: Likewise. - * rtlanal.c: Likewise. - * sbitmap.c: Likewise. - * sbitmap.h: Likewise. - * scan-decls.c: Likewise. - * scan.c: Likewise. - * sched-deps.c: Likewise. - * sched-ebb.c: Likewise. - * sched-int.h: Likewise. - * sched-rgn.c: Likewise. - * sched-vis.c: Likewise. - * sibcall.c: Likewise. - * simplify-rtx.c: Likewise. - * sreal.c: Likewise. - * sreal.h: Likewise. - * ssa-ccp.c: Likewise. - * ssa-dce.c: Likewise. - * ssa.c: Likewise. - * ssa.h: Likewise. - * stack.h: Likewise. - * stmt.c: Likewise. - * stor-layout.c: Likewise. - * stringpool.c: Likewise. - * target.h: Likewise. - * timevar.c: Likewise. - * timevar.h: Likewise. - * tlink.c: Likewise. - * tracer.c: Likewise. - * tree-inline.c: Likewise. - * tree-inline.h: Likewise. - * tree.c: Likewise. - * tree.h: Likewise. - -2003-07-05 Kazu Hirata - - * combine.c (nonzero_bits1): Fix a warning. - -2003-07-05 Kazu Hirata - - * config/h8300/h8300.c (compute_mov_length): Correct the - length of loading CONST0_RTX (SFmode). - -2003-07-05 Nathan Sidwell - - * toplev.c (output_clean_symbol_name): Remove. - * toplev.h (output_clean_symbol_name): Remove. - * config/alpha/alpha.c (unicosmk_output_module_name): Use - lbasename & clean_symbol_name. - -2003-07-05 Kazu Hirata - - * ggc.h: Follow spelling conventions. - * config/i386/i386.c: Likewise. - * config/i386/winnt.c: Likewise. - * config/rs6000/rs6000.c: Likewise. - -2003-07-05 Kazu Hirata - - * bt-load.c: Fix comment typos. - * c-incpath.c: Likewise. - * cfg.c: Likewise. - * cfgcleanup.c: Likewise. - * cfgloop.h: Likewise. - * cfgloopmanip.c: Likewise. - * cfgrtl.c: Likewise. - * diagnostic.h: Likewise. - * dwarfout.c: Likewise. - * emit-rtl.c: Likewise. - * et-forest.c: Likewise. - * et-forest.h: Likewise. - * expr.c: Likewise. - * gcse.c: Likewise. - * genattr.c: Likewise. - * jump.c: Likewise. - * langhooks.h: Likewise. - * local-alloc.c: Likewise. - * loop-unroll.c: Likewise. - * loop-unswitch.c: Likewise. - * ra-build.c: Likewise. - * regclass.c: Likewise. - * regmove.c: Likewise. - * rtl.def: Likewise. - * rtlanal.c: Likewise. - * sched-ebb.c: Likewise. - * sched-rgn.c: Likewise. - * simplify-rtx.c: Likewise. - * ssa.c: Likewise. - * tracer.c: Likewise. - * tree.c: Likewise. - -2003-07-05 Zack Weinberg - - * cppcharset.c: Use the correct return type for the fallback iconv - macro. - -2003-07-05 Zdenek Dvorak - - Blame to Jan Hubicka - * cfglayout.c (record_effective_endpoints): Split insns before - first basic block correctly. - -2003-07-05 Richard Kenner - - * expr.c (expand_expr, case COMPONENT_REF): When seeing if should use - bitfield operations, use STRICT_ALIGNMENT, not SLOW_UNALIGNED_ACCESS - if EXPAND_CONST_ADDRESS or EXPAND_INITIALIZER. - -2003-07-05 Andreas Jaeger - - * genattrtab.c (write_attr_get): Revert part of last patch to - always write out a prototype. - - * genemit.c (gen_split): Readd lost unused attributes in last - patch. - -2003-07-05 Zdenek Dvorak - - * cfgloopmanip.c (force_single_succ_latches): Force latch to be - different from header. - -2003-07-05 Andreas Schwab - - * config/m68k/m68k.c: Remove code protected by CRDS. - * config/m68k/m68k.md: Likewise. - -2003-07-05 Neil Booth - - PR driver/11417 - * c-opts.c (permit_fortran_options): New. - (c_common_init_options): Accept fortran front end options if - it looks like we might be preprocessing Fortran. - (c_common_handle_option): Don't reject switch if permit_fotran_options. - -2003-07-05 Kaveh R. Ghazi - - * genattr.c (internal_dfa_insn_code): Output prototype. - * genattrtab.c: Don't output unnecessary decls, output in ISO C. - * genautomata.c: Likewise. - * genconditions.c: Likewise. - * genemit.c: Likewise. - * genextract.c: Likewise. - * gengenrtl.c: Likewise. - * gengtype.c: Likewise. - * genopinit.c: Likewise. - * genoutput.c: Likewise. - * genpeep.c: Likewise. - * genrecog.c: Likewise. - -2003-07-04 Zack Weinberg - - * cpplib.h (CPP_AT_NAME, CPP_OBJC_STRING): New token types. - (struct cpp_options): Add narrow_charset, wide_charset, - bytes_big_endian fields. Remove EBCDIC field. - (cpp_init_iconv, cpp_interpret_string): New external interfaces. - - * cpphash.h: Include if we have it, otherwise - provide a dummy definition of iconv_t. - (struct cpp_reader): Add narrow_cset_desc and wide_cset_desc fields. - (_cpp_valid_ucn): Update prototype. - (_cpp_destroy_iconv): New prototype. - - * doc/cpp.texi: Document character set handling. - * doc/cppopts.texi: Document -fexec-charset= and -fexec-wide-charset=. - * doc/extend.texi: Delete entire section on multiline strings. - Rewrite section on __FUNCTION__ etc now that these are - variables in C. - - * cppucnid.tab, cppucnid.pl: New files. - * cppucnid.h: New generated file. - * cppcharset.c: Include cppucnid.h. Lots of commentary added. - (iconv_open, iconv, iconv_close): Provide dummy definitions - if !HAVE_ICONV. - (SOURCE_CHARSET, struct strbuf, init_iconv_desc, cpp_init_iconv, - _cpp_destroy_iconv, convert_cset, width_to_mask, convert_ucn, - emit_numeric_escape, convert_hex, convert_oct, convert_escape, - cpp_interpret_string, narrow_str_to_charconst, - wide_str_to_charconst): New. - (ucn_valid_in_identifier): Use a binary search through the - ucnranges table defined in cppucnid.h, not a long chain of if - statements. - (_cpp_valid_ucn): Add a limit pointer. Downgrade "universal - character names are only valid in C++ and C99" to a warning. - Issue the "meaning of \[uU] is different in traditional C" - warning here. Take care not to let iconv see an invalid UCS - value if we get a malformed UCN. Issue an error if we don't - have iconv. - (cpp_interpret_charconst): Moved here from cpplex.c. Use - cpp_interpret_string to do the heavy lifting. - - * cppinit.c (cpp_create_reader): Initialize bytes_big_endian, - narrow_charset, wide_charset fields of options structure. - (cpp_destroy): Call _cpp_destroy_iconv. - * cpplex.c (forms_identifier_p): Adjust call to _cpp_valid_ucn. - (maybe_read_ucn, hex_digit_value, cpp_parse_escape): Delete. - (cpp_interpret_charconst): Moved to cppcharset.c. - * cpplib.c (dequote_string): Delete. - (interpret_string_notranslate): New. - (do_line, do_linemarker): Use interpret_string_notranslate. - - * Makefile.in (cppcharset.o): Depend on cppucnid.h. - - * c-common.c (fname_string, combine_strings): Delete. - * c-common.h (fname_string, combine_strings): Delete prototypes. - * c-lex.c (ignore_escape_flag): Delete. - (cb_ident): Use cpp_interpret_string, not lex_string. - (get_nonpadding_token): New function. - (c_lex): Handle Objective-C @-prefixed identifiers and strings here. - Adjust calls to lex_string. Don't write *value twice. - (lex_string): Now handles string constant concatenation. - Most of the work handed off to cpp_interpret_string. - Call fix_string_type here. - * c-parse.in (STRING_FUNC_NAME, VAR_FUNC_NAME): Replace with - FUNC_NAME, throughout. - (OBJC_STRING): New token type. - (primary:STRING): No need to call fix_string_type here. - (primary:objc_string): Make that OBJC_STRING. - (objc_string nonterminal): Delete. - (yylexname): Delete code to handle fake string constants. - (yylexstring): Delete entirely. - (_yylex): Handle CPP_AT_NAME and CPP_OBJC_STRING. No need - to handle CPP_ATSIGN. - - * c.opt (-fexec-charset=, -fwide-exec-charset=): New options. - * c-opts.c (missing_arg, c_common_handle_option): Handle - OPT_fexec_charset_ and OPT_fwide_exec_charset_. - (c_common_init): Set cpp_opts->bytes_big_endian, not - cpp_opts->EBCDIC. Call cpp_init_iconv. - (print_help): Document -fexec-charset= and -fexec-wide-charset=. - (TARGET_EBCDIC): Delete default definition. - - * objc/objc-act.c (build_objc_string_object): No need to - handle string constant concatenation. - -2003-07-04 Kazu Hirata - - * doc/install.texi: Fix typos. - * doc/invoke.texi: Likewise. - * doc/tm.texi: Likewise. - -2003-07-04 Kazu Hirata - - * config/pa/fptr.c: Fix comment typos. - * config/pa/pa-64.h: Likewise. - * config/pa/pa.c: Likewise. - * config/pa/pa.h: Likewise. - * config/rs6000/603.md: Likewise. - * config/rs6000/7xx.md: Likewise. - * config/rs6000/darwin.h: Likewise. - * config/rs6000/freebsd.h: Likewise. - * config/rs6000/rs6000.c: Likewise. - * config/rs6000/rs6000.md: Likewise. - * config/rs6000/spe.h: Likewise. - -2003-07-04 Ulrich Weigand - - * config/s390/2064.md: Change GNU CC to GCC. - * config/s390/2084.md: Likewise. - * config/s390/fixdfdi.h: Likewise. - * config/s390/linux.h: Likewise. - * config/s390/s390-modes.def: Likewise. - * config/s390/s390-protos.h: Likewise. - * config/s390/s390.c: Likewise. - * config/s390/s390.h: Likewise. - * config/s390/s390.md: Likewise. - * config/s390/s390x.h: Likewise. - -2003-07-04 Jeff Law - - PR c/11428 - * expr.c (do_store_flag): Pass in the correct result type - when calling fold_single_bit_test. - * fold-const.c (fold_single_bit_test): Use result_type for the - result when folding a sign bit test. - -2003-07-04 Neil Booth - - * opts.c (common_handle_options): Negate sense of -falign- switches. - -2003-07-04 H.J. Lu - - * Makefile.in: Replace PWD with PWD_COMMAND. - -2003-07-04 Zdenek Dvorak - - * cfgloopanal.c (count_strange_loop_iterations): New static function. - (constant_iterations, count_loop_iterations, simple_loop_exit_p): - Handle strange loops. - -2003-07-04 Toon Moene - - * install.texi: Even the g77 manpage is derived from - the full g77 manual. - -2003-07-04 Zack Weinberg - - * ABOUT-NLS: Delete. - * intl: Delete entire directory. - * aclocal.m4: Include ../config/gettext.m4. Delete - AC_ISC_POSIX, AM_LANGINFO_CODESET, jm_GLIBC21, AM_LC_MESSAGES, - AM_PATH_PROG_WITH_TEST, AM_WITH_NLS, and AM_GNU_GETTEXT. - * configure.in: Use CY_GNU_GETTEXT, not AM_GNU_GETTEXT. - Remove intl/Makefile from all_outputs. - * configure, config.in: Regenerate. - * Makefile.in: Expunge all references to intl subdirectory. - Add -I../intl to INCLUDES. - * intl.h: Include libintl.h if and only if ENABLE_NLS is defined. - -2003-07-04 Roger Sayle - - * config/rs6000/aix51.h (TARGET_C99_FUNCTIONS): Define. - * config/rs6000/aix52.h (TARGET_C99_FUNCTIONS): Likewise. - -2003-07-04 Danny Smith - - PR c++/5287, PR c++/7910, PR c++/11021 - * config/i386/winnt.c (ix86_handle_dll_attribute): Don't add - dllimport attribute if function is defined at declaration, but - report error instead. Likewise for dllimport'd variable - definitions. Set implicit TREE_PUBLIC for dllimport'd variables - declared within functions, Report error if dllimport or dllexport - symbol is not global. - (i386_pe_dllimport_p): Ignore dllimport attribute of functions - if defined after declaration or if inlined. Don't allow definition - of static data members of C++ classes. Don't dllimport virtual - methods. - (i386_pe_mark_dllexport): Warn about inconsistent dll attributes. - (i386_pe_mark_dllimport): Remove unnecessary checks. - (i386_pe_encode_section_info): Warn if the dllimport attribute - and symbol prefix have been instantiated and then overridden. - - * doc/extend.texi: Document dllimport and dllexport attributes. - - * config/i386/winnt.c (i386_pe_output_labelref): Fix indents. - -2003-07-03 Uwe Stieber - - * config/kaos.h (CPP_PREDEFINES): Delete. - (TARGET_OS_CPP_BUILTINS): New. - -2003-07-03 Kaveh R. Ghazi - - * c-aux-info.c: Include toplev.h after c-tree.h. - * c-common.c: Likewise. - (GCC_DIAG_STYLE): Undef. - * c-semantics.c (GCC_DIAG_STYLE): Define. - * c-tree.h (GCC_DIAG_STYLE): Likewise. - * diagnostic.h (inform): Move prototype to toplev.h. - * jump.c: Include diagnostic.h before toplev.h. - * toplev.h (GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG): Define. - (warning, error, fatal_error, pedwarn, sorry, inform, - error_for_asm, warning_for_asm): Mark with ATTRIBUTE_GCC_CXXDIAG. - -2003-07-03 Zdenek Dvorak - - * cfglayout.c (cfg_layout_duplicate_bb): Do not update frequencies - at all if edge is not specified. - (can_copy_bbs_p, copy_bbs): New. - * cfglayout.h (can_copy_bbs_p, copy_bbs): Declare. - * cfgloop.c (get_loop_body): Comment more precisely. - * cfgloopmanip.c (copy_bbs, record_exit_edges): Removed. - (scale_bbs_frequencies): Fix comment typo. - (can_duplicate_loop_p): Use can_copy_bbs_p. - (duplicate_loop_to_header_edge): Simplify by using copy_bbs. - -2003-07-03 Devang Patel - - * c-opts.c (c_common_parse_file): Remove extra - debug_hooks->start_source_file call. - -2003-07-03 Roger Sayle - - * real.c (real_trunc, real_floor, real_ceil): New functions - to implement trunc, floor and ceil respectively. - * real.h (real_trunc, real_floor, real_ceil): Prototype here. - * builtins.c (integer_valued_real_p): New function to test if - a floating point expression has an integer valued result. - (fold_trunc_transparent_mathfn): Optimize foo(foo(x)) as - foo(x) where foo is an integer rounding function. Similarly, - optimize foo(bar(x)) as bar(x), and foo((double)(int)x) as - (double)(int)x when both foo and bar are integer rounding - functions and we don't need to honor errno. - (fold_builtin_trunc, fold_builtin_floor, fold_builtin_ceil): - New functions to fold trunc, floor and ceil. - (fold_builtin): Use fold_builtin_trunc to fold BUILT_IN_TRUNC*, - fold_builtin_floor to fold BUILT_IN_FLOOR* and fold_builtin_ceil - to fold BUILT_IN_CEIL*. - * fold-const.c (tree_expr_nonnegative_p): Handle FLOAT_EXPR and - the remaining integer rounding functions. - -2003-07-03 Eric Botcazou - - * config/sparc/sparc.c (function_arg_partial_nregs): Use - SPARC_INT_ARG_MAX to determine where to split unnamed - complex FP arguments. - -2003-07-03 Jan Hubicka - - * basic-block.h (create_basic_block, merge_blocks_nomove): Kill. - * cfgcleanup.c (merge_blocks): Rename to merge_blocks_move. - (merge_blocks_move_predecessor_nojumps, - merge_blocks_move_successor_nojumps): Use merge_blocks. - (try_optimize_cfg): Use merge_blocks_move. - * cfgrtl.c (create_basic_block): Rename to rtl_create_basic_block. - (merge_blocks_nomove): Rename to rtl_merge_blocks. - (cfg_layout_create_basic_block): New. - (rtl_can_merge_blocks): New. - (cfg_layout_split_block): Do not alloc aux by hand. - * cfghooks.h (cfg_hooks): Add create_basic_block, can_merge_blocks_p, - merge_blocks. - (create_basic_block, can_merge_blocks_p, merge_blocks): New macros. - * cfglayout.c (cfg_layout_duplicate_bb): Do not allocate aux by hand. - * cfgloopmanip.c (loop_split_edge_with): Likewise. - * ifcvt.c (merge_if_block): Use merge_blocks_nomove. - - * basic-block.h (basic_block_def): Add field 'rbi'. - * bb-reorder.c (find_traces, rotate_loop, mark_bb_visited, - find_traces_1_round, copy_bb, connect_traces): Update use of rbi. - * cfg.c (entry_exit_blocks): Add new field. - * cfglayout.c: Include alloc-pool.h; - (cfg_layout_pool): New. - (record_effective_endpoints, fixup_reorder_chain, - fixup_fallthru_exit_predecessor, cfg_layout_duplicate_bb): Update use - of rbi. - (cfg_layout_initialize_rbi): New function. - (cfg_layout_initialize): Use it. - (cfg_layout_finalize): Clear rbi fields. - * cfglayout.h (RBI): Kill. - (cfg_layout_initialize_rbi): Declare. - * cfgloopmanip.c (copy_bbs): Use rbi. - (record_exit_edges): Likewise. - (duplicate_loop_to_header_edge): Likewise. - * cfgrtl.c (cfg_layout_create_basic_block): Use - cfg_layout_initialize_rbi. - (cfg_layout_split_block): Use rbi. - (cfg_layout_delete_block): Likewise. - * loop-init.c (loop_optimizer_finalize): Likewise. - * loop-unswitch.c (unswitch_loop): Likewise. - * tracer.c (seen, tail_duplicate, layout_superblocks): Likewise. - - * cfgrtl.c: Update comments. - (try_redirect_by_replacing_jump): New argument. - (redirect_branch_edge): Break out from ... - (rtl_redirect_edge_and_branch): ... this one. - (update_cfg_after_block_merging): Break out from ... - (rtl_merge_blocks): ... this one. - (cfg_layout_split_edge): New. - (cfg_layout_merge_blocks): New. - (cfg_layout_can_merge_blocks_p): New. - (cfg_layout_redirect_edge_and_branch): Reorganize. - (cfg_layout_rtl_cfg_hooks): Fill in. - (cfg_layout_delete_block): Kill barriers. - * cfganal.c (can_fallthru): Deal with exit blocks - * cfglayout.c (cfg_layout_function_header): New function - (record_effective_endpoints): Record function header. - (fixup_reorder_chain): Fixup dead jumptables; place header - - * basic-block.h (CLEANUP_CFGLAYOUT): New flag. - * bb-reorder.c (cfg_layout_initialize): Update call. - * cfgcleanup.c (try_optimize_cfg): Supress optimizations of fallthru - edges in cfglayout mode. - * cfglayout.c (cleanup_unconditional_jumps): Kill. - (cfg_layout_initialize): Kill agrument loops; use cfgcleanup. - * cfglayout.h (cfg_layout_initialize): Update prototype. - * cfgloop.h (CP_INSIDE_CFGLAYOUT): Kill. - * cfgloopmanip.c (loop_split_edge_with): Use split_edge. - * flow.c (propagate_block): Do not crash when basic block ends - by first insn in the chain. - * loop-init.c (loop_optimizer_init): First enter cfglayout mode; later - do loop discovery. - * tracer.c (tracer): Update call of cfg_layout_initialize. - -2003-07-03 Kaveh R. Ghazi - - * Makefile.in: Use dependency variables in lieu of explicit - files throughout. - -2003-07-03 Steven Bosscher - - * rtl.h (ECF_*, flags_from_decl_or_type): Move from here... - * tree.h: ...to here. - -2003-07-03 Kazu Hirata - - * config/s390/2064.md: Fix comment typos. - * config/s390/2084.md: Likewise. - * config/s390/s390.c: Likewise. - * config/s390/s390.md: Likewise. - * config/sh/sh.c: Likewise. - * config/sh/sh.h: Likewise. - * config/sh/sh.md: Likewise. - * config/sparc/sparc.c: Likewise. - * config/sparc/sparc.h: Likewise. - * config/sparc/sparc.md: Likewise. - * config/stormy16/stormy16.c: Likewise. - * config/stormy16/stormy16.h: Likewise. - * config/stormy16/stormy-abi: Fix a typo. - -2003-07-03 Kelley Cook - - * Makefile.in (ifcvt.o): Depend on OPTABS_H. - -2003-07-03 Kaveh R. Ghazi - - * config/mips/mips.h (save_argv): Delete. - -2003-07-03 Roger Sayle - - PR target/10700 - * fold-const.c (extract_muldiv_1): There's nothing that can be done - if the expression is a SAVE_EXPR. - -2003-07-03 Kazu Hirata - - * config/m32r/m32r.c: Fix comment typos. - * config/m68hc11/m68hc11.c: Likewise. - * config/m68hc11/m68hc11.h: Likewise. - * config/m68k/m68k.c: Likewise. - * config/mcore/mcore.c: Likewise. - * config/mcore/mcore.h: Likewise. - * config/mcore/mcore.md: Likewise. - * config/mips/mips.c: Likewise. - * config/mips/mips.h: Likewise. - * config/mips/mips.md: Likewise. - * config/mips/netbsd.h: Likewise. - * config/mn10300/mn10300.c: Likewise. - -2003-07-03 Andreas Schwab - - * dbxout.c (pending_bincls): Move decl down inside - DBX_DEBUGGING_INFO || XCOFF_DEBUGGING_INFO section. - -2003-07-02 Nathan Sidwell - - * rtl.h (NOTE_DATA): Refer to whole union. - * emit-rtl.c (emit_note): Use memset to clear NOTE_DATA. - -2003-07-03 Eric Botcazou - - PR optimization/11381 - * simplify-rtx.c (simplify_relational_operation): Check that - two equal operands have no side-effects before simplifying - the comparison. - -2003-07-02 Jeff Law - - * expr.c (do_store_flag): Remove special case folding for - single bit tests. Instead call back into the commonized folder - routine. - * fold-const.c (fold_single_bit_test): New function, mostly - extracted from do_store_flag, with an additional case extracted - from fold. - (fold): Call fold_single_bit_test appropriately. - * tree.h (fold_single_bit_test): Prototype. - -2003-07-02 Zack Weinberg - - * system.h: Include filenames.h. - (IS_DIR_SEPARATOR, IS_ABSOLUTE_PATHNAME): Don't define. - (DIR_SEPARATOR, DIR_SEPARATOR_2): If not already defined, - define based on HAVE_DOS_BASED_FILE_SYSTEM. - * config/i386/xm-cygwin.h, config/i386/xm-djgpp.h - * config/i386/xm-mingw32.h: Don't define - HAVE_DOS_BASED_FILE_SYSTEM, - DIR_SEPARATOR, or DIR_SEPARATOR_2. - * doc/hostconfig.texi: Update to match. - - * cppfiles.c, gcc.c, gensupport.c, protoize.c, - config/i386/cygwin.h: - Use IS_ABSOLUTE_PATH throughout. - * gcc.c (DIR_UP): Delete, unused. - * protoize.c (IS_SAME_PATH): Define in terms of - FILENAME_CMP. - (is_abspath): Delete. - -2003-07-02 Kazu Hirata - - * config/i386/emmintrin.h: Fix comment typos. - * config/i386/i386.c: Likewise. - * config/i386/i386.h: Likewise. - * config/i386/sco5.h: Likewise. - * config/ia64/ia64.c: Likewise. - * config/ia64/itanium2.md: Likewise. - -2003-07-02 H.J. Lu - - * dbxout.c (pending_bincls): Replace DBX_USE_BINCLS with - DBX_USE_BINCL. - (emit_bincl_stab): Same. - (emit_pending_bincls): Same. - -2003-07-02 Kazu Hirata - - * config/h8300/h8300.c (compute_mov_length): Fix the length of - loading CONST0_RTX (SFmode). - * config/h8300/h8300.h (CONST_DOUBLE_OK_FOR_LETTER_P): Change - 'G' to CONST0_RTX (SFmode). - * config/h8300/h8300.md (movsf_h8300): Change the first - constraint to 'G'. - (movsf_h8300h): Likewise. - -2003-07-02 Neil Booth - - * c-common.h (c_common_init_options): New prototype. - * c-opts.c (deferred_size): Remove. - (defer_opt): Array is now pre-allocated. - (c_common_init_options): Pre-allocate deferred_opts. Make - lang_flags unsigned. - (push_command_line_options): Free deferred_opts. - * hooks.c (hook_uint_uint_constcharptrptr_0): New. - * hooks.h (hook_uint_uint_constcharptrptr_0): New. - * langhooks-def.h (LANG_HOOKS_INIT_OPTIONS): Update. - * langhooks.h (struct lang_hooks): New prototype for init_options. - * main.c (main): Cast argv. - * opts.c (handle_option, handle_options): Update prototypes. - (decode_options): save_argc, save_argv are not global. Constify. - * opts.h (decode_options): New prototype. - * toplev.c (general_init): New protoype. - (save_argv): Make static. - (save_argc): Remove. - (print_switch_values, general_init): Constify. - (toplev_main): Save argv. - * toplev.h (toplev_main): Update prototype. - (save_argc, save_argv): Remove. - -2003-07-02 David Edelsohn - - * dbxout.c (pending_bincls): Guard with DBX_USE_BINCLS. - (emit_bincl_stab): Same. - (emit_pending_bincls): Same. - -2003-07-02 Nathan Sidwell - - PR c++/11072 - * ginclude/stddef.h (offsetof): Remove cast to 'char &'. Explain why. - -2003-07-02 Andreas Schwab - - * dbxout.c (pending_bincls): Only define if DBX_DEBUGGING_INFO. - -2003-07-02 Eric Botcazou - - PR optimization/11210 - * expr.c (handled_component_p) [NOP_EXPR]: Add ??? note - about the behaviour with regard to bitfields. - * fold-const (decode_field_reference): Record outermost type in - case the expression is a NOP. Strip all NOPs. Set the signedness - to that of the outermost type (if any) when the bitsize is equal - to the size of the type. - -2003-07-02 Richard Sandiford - - * config/mips/mips.md (addsi3): Remove workaround for adds of -32768. - (addsi3_internal, adddi3, adddi3_internal_2): Likewise. - (adddi3_internal_3, addsi3_internal_2): Likewise. - -2003-07-02 Richard Sandiford - - * config/mips/mips.c (machine_function): Add new fields: - ignore_hazard_length_p and all_noreorder_p. - (mips_flag_delayed_branch): New variable. - (override_options): Treat '/' as an operand punctuation character. - Set up mips_flag_delayed_branch. - (print_operand): Handle '/'. - (mips_output_function_prologue): Put the whole function in - .set noreorder and .set nomacro if all_noreorder_p is true. - (mips_output_function_epilogue): End the noreorder/nomacro sequence. - (mips16_optimize_gp): Remove "first insn" parameter. - (mips16_lay_out_constants): New function, split out from mips_reorg. - (mips_avoid_hazard, mips_avoid_hazards): New functions. - (mips_reorg): For mips16 code, call mips16_lay_out_constant - and (optionally) mips16_optimize. If TARGET_EXPLICIT_RELOCS, - do delayed-branch scheduling followed by hazard detection. - (mips_adjust_insn_length): Only account for hazards if - !ignore_hazard_length_p. - (mips_output_load_label): Add a nop to the o32 sequence if - the target suffers from load delays. - (mips_output_conditional_branch): Add %/ to the end of branches. - (mips_output_division): Fill the branch delay slot with %#. - * config/mips/mips.md: Remove redundant '%*' from mips16 branch - instructions. End all other %* branches with %/. - (ffssi2, ffsdi2): Fix lengths. - (truncdisi2, truncdihi2, truncdiqi2): Add store attributes. - (fix_truncdfsi2_macro): Turn off .set nomacro if appropriate. - (fix_truncsfsi2_macro): Likewise. - (mov_lwl): Set hazard to "none". - (ashldi3_internal): Fill the branch delay slot with %#. - (ashrdi3_internal, lshrdi3_internal): Likewise. - (exception_receiver): Explicitly set $28. - (hazard_nop): New pattern. - -2003-07-02 Jan Hubicka - - * cgraphunit.c (cgraph_finalize_unit): Set current_function_decl - before calling tree_inlinable_function_p. - -2003-07-02 Rainer Orth - - * fixinc/inclhack.def (irix_stdio_va_list): Apply to IRIX 6.5 - too. - (stdio_va_list): Apply to IRIX 6.5 and - too. - Substitute va_list uses in inline definition. - * fixinc/fixincl.x: Regenerate. - -2003-07-02 Rainer Orth - - * config/mips/iris5.h (SET_FILE_NUMBER): Moved here from iris3.h. - Undef before redefinition. - (LABEL_AFTER_LOC): Likewise. - (DEFAULT_SIGNED_CHAR): Likewise. - (ASM_OUTPUT_ASCII): Moved here from iris4.h. - Fix IRIX spelling. - - * config/mips/iris3.h: Remove, unused. - * config/mips/iris4.h: Likewise. - - * config/mips/mips.h (STACK_ARGS_ADJUST): Remove, unused. - - * config/mips/iris5.h (TARGET_DEFAULT): Move ... - * config.gcc (mips-sgi-irix6*o32, mips-sgi-irix5*): ... here to - target_cpu_default. - - * config/mips/iris5.h: Move explicit includes ... - * config.gcc (mips-sgi-irix6*o32, mips-sgi-irix5*): ... here. - - * config/mips/iris6.h (MIPS_ISA_DEFAULT, MIPS_ABI_DEFAULT): Move ... - * config.gcc (mips-sgi-irix6*, mips-sgi-irix5cross64): ... here to - tm_defines. - - * config/mips/iris6.h (TARGET_DEFAULT): Move ... - * config.gcc (mips-sgi-irix6*, mips-sgi-irix5cross64): ... here to - target_cpu_default. - - * config/mips/iris6.h: Fix IRIX spelling. - (MULTILIB_DEFAULTS): Undef before redefinition. - - * config/mips/iris6.h: Move explicit includes ... - * config.gcc (mips-sgi-irix6*, mips-sgi-irix5cross64): ... here. - -2003-07-02 Jan Hubicka - - * cgraph.c (cgraph_mark_needed_node, cgraph_varpool_mark_needed_node, - cgraph_varpool_finalize_decl, cgraph_varpool_assemble_pending_decls): - Use next_needed field instead of aux to maintain the queue. - * cgraph.h (cgraph_node): Add next_needed. - (cgraph_varpool_node): Add next_needed; remove aux. - * cgraphunit.c (cgraph_finalize_compilation_unit): Use next_needed. - -2003-07-02 Jan Hubicka - - * cgraphunit.c (cgraph_finalize_function): Set finalized. - (cgraph_finalize_function): Do not examine inlinablility. - (cgraph_finalize_compilation_unit): Do it here. - * cgraph.h (cgraph_local_info): Add finalized field. - -2003-07-02 Rainer Orth - - * ggc-common.c (gt_pch_save): Cast MAP_FAILED to void *. - (gt_pch_restore): Likewise. - -2003-07-01 Kazu Hirata - - * config/alpha/alpha.c: Fix comment typos. - * config/alpha/elf.h: Likewise. - * config/arm/arm.c: Likewise. - * config/arm/arm.h: Likewise. - * config/arm/arm.md: Likewise. - * config/arm/t-arm-coff: Likewise. - * config/arm/t-strongarm-pe: Likewise. - * config/arm/xscale-elf.h: Likewise. - * config/avr/avr.h: Likewise. - -2003-07-01 Jeff Law - - * stmt.c (any_pending_cleanups): Remove another redundant test. - -2003-07-01 David Edelsohn - J"orn Rennecke - - * config/rs6000/rs6000.md (ctr{s,d}i_internal?): Add earlyclobber - for MEM case. - -2003-07-01 Devang Patel - - * dbxout.c (DBXOUT_DECR_NESTING): Emit pending bincls, if required. - (binclstatus): New. - (struct dbx_file): New members - bincl_status, pending_bincl_name and - prev. - (pending_bincls): New. - (dbxout_init): Initialize new dbx_file members. - (dbxout_start_source_file): Same. - (emit_bincl_stab): New function. - (emit_pending_bincls): Same. - (emit_pending_bincls_if_required): Same. - (dbxout_end_source_file): Emit EINCL stab only if BINCL is already - processed. - (dbxout_begin_block): Emit pending BINCL stabs. - (dbxout_end_block): Same. - (dbxout_function_decl): Same. - (dbxout_continue): Same. - (dbxout_type): Same. - (dbxout_class_name_qualifiers): Same. - (dbxout_symbol): Same. - (dbxout_symbol_location): Same. - (dbxout_parms): Same. - -2003-07-01 Kaveh R. Ghazi - - * c-semantics.c (genrtl_case_label): Fix format specifier bug. - * cfgrtl.c (rtl_verify_flow_info_1): Likewise. - -2003-07-01 Andreas Jaeger - - * fold-const.c: Convert prototypes to ISO C90. - * function.c: Likewise. - * function.h: Likewise. - -2003-07-01 Kazu Hirata - - * doc/contrib.texi: Fix typos. - * doc/invoke.texi: Likewise. - * doc/passes.texi: Likewise. - * doc/sourcebuild.texi: Likewise. - * doc/tm.texi: Likewise. - -2003-07-01 Kazu Hirata - - * basic-block.h: Fix comment typos. - * bb-reorder.c: Likewise. - * c-format.c: Likewise. - * cfgcleanup.c: Likewise. - * cfghooks.h: Likewise. - * cfgloop.c: Likewise. - * cfgloopmanip.c: Likewise. - * cfgrtl.c: Likewise. - * cgraph.h: Likewise. - * cgraphunit.c: Likewise. - * combine.c: Likewise. - * convert.c: Likewise. - * dbxout.c: Likewise. - * df.c: Likewise. - * df.h: Likewise. - * diagnostic.c: Likewise. - * dwarf2out.c: Likewise. - * et-forest.h: Likewise. - * flow.c: Likewise. - * fold-const.c: Likewise. - * function.h: Likewise. - * gcov-io.h: Likewise. - * gcov.c: Likewise. - * gcse.c: Likewise. - * genautomata.c: Likewise. - * ggc-common.c: Likewise. - * ggc-page.c: Likewise. - * loop-unroll.c: Likewise. - * loop-unswitch.c: Likewise. - * loop.c: Likewise. - * mips-tfile.c: Likewise. - * optabs.c: Likewise. - * ra-build.c: Likewise. - * ra-colorize.c: Likewise. - * ra-rewrite.c: Likewise. - * ra.h: Likewise. - * regmove.c: Likewise. - * reload.c: Likewise. - * rtlanal.c: Likewise. - * sched-ebb.c: Likewise. - * sched-int.h: Likewise. - * sched-vis.c: Likewise. - * sreal.c: Likewise. - * ssa-ccp.c: Likewise. - * ssa.c: Likewise. - * toplev.c: Likewise. - * tree-inline.c: Likewise. - * value-prof.c: Likewise. - * value-prof.h: Likewise. - -2003-07-01 Nathan Sidwell - - * rtl.h (emit_line_note_after): Remove. - (emit_note_copy_after, emit_note_copy): New. - * emit-rtl.c (reorder_insns_with_line_notes): Replace - emit_line_note_after with emit_note_copy_after. - (emit_insn_after_with_line_notes): Likewise. - (emit_line_note_after): Kill. - (emit_note_copy_after): New. - (emit_note_copy): New. - * function.c (emit_return_into_block): Use emit_note_copy_after. - (thread_prologue_and_epilogue_insns): Likewise. - * integrate.c (expand_inline_function): Use emit_note_copy. - (copy_insn_list): Likewise. - * unroll.c (copy_loop_body): Likewise. - * cfglayout.c (duplicate_insn_chain): Likewise. - -2003-07-01 Nathan Sidwell - - * c-tree.h (define_label): Replace filename and lineno arguments - with a location_t. - * c-decl.c (poplevel): Adjust define_label call. - (pop_label_level): Likewise. - (define_label): Replace filename and lineno arguments with a - location_t. - (store_parm_decls): Use DECL_SOURCE_LOCATION. - * c-parse.in (label): Adjust define_label call. - -2003-07-01 Neil Booth - - * config/sol2.h, config/alpha/alpha.h, config/alpha/linux.h, - config/i386/i386-interix.h, config/ia64/hpux.h, config/mips/iris6.h, - config/mips/linux.h, config/mips/mips.h, config/pa/pa-hpux.h, - config/pa/pa-hpux10.h, config/pa/pa-hpux11.h, config/pa/pa-pro-end.h, - config/pa/pa.h, config/pa/rtems.h: Use c_dialect_ macros. - -2003-07-01 Andreas Jaeger - - * final.c: Convert prototypes to ISO C90. - * flow.c: Likewise. - * flags.h: Likewise. - * gcov-io.c: Likewise. - * gcov-io.h: Likewise. - -See ChangeLog.9 for earlier changes. diff --git a/gcc/ChangeLog.11 b/gcc/ChangeLog.11 deleted file mode 100644 index 92a4d69b804a..000000000000 --- a/gcc/ChangeLog.11 +++ /dev/null @@ -1,21016 +0,0 @@ -2004-06-30 Roger Sayle - - * expmed.c (expand_shift): Consider expanding LSHIFT_EXPR by a - constant as a sequence of additions depending upon the rtx_costs. - (synth_mult): Update the "observed" cost of a shift, based upon - the above optimization. - -2004-06-28 Geoffrey Keating - Andreas Tobler - - PR 15813 - * dwarf2out.c (reg_save): Output DW_CFA_same_value when a - register is saved in itself. - (initial_return_save): If the return address is a register, - it's already there, don't bother to mention it in the CFI. - (struct queued_reg_save): Add field saved_reg. - (struct reg_saved_in_data): New. - (regs_saved_in_regs): New. - (num_regs_saved_in_regs): New. - (queue_reg_save): Add extra parameter to specify register saved - in register. Remove duplicate entries from queue. Add comment - for function. - (flush_queued_reg_saves): Handle registers saved in registers. - Update regs_saved_in_regs. Add comment for function. - (clobbers_queued_reg_save): Add comment for function. Allow - for regs_saved_in_regs. - (reg_saved_in): New. - (dwarf2out_frame_debug_expr): Handle saving registers in other - registers. - (dwarf2out_frame_debug): Reset regs_saved_in_regs. - * unwind-dw2.c (execute_cfa_program): Correct handling of - DW_CFA_same_value. Add FIXME comment about incorrect implementation - of DW_CFA_restore_extended. - * config/rs6000/rs6000.c (rs6000_emit_prologue): Let - dwarf2out_frame_debug_expr see instructions that save registers - in other registers or save those other registers in memory. - - * unwind-dw2.c (DWARF_FRAME_REGISTERS): Move to unwind-dw2.h. - (_Unwind_FrameState): Likewise. - * unwind-dw2.h: New. - * Makefile.in (LIB2ADDEHDEP): Add unwind-dw2.h. - * config/rs6000/darwin-fallback.c: New file. - * config/rs6000/darwin.h (MD_FALLBACK_FRAME_STATE_FOR): Define. - * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Add darwin-fallback.o. - -2004-07-01 Alan Modra - - * config/rs6000/rs6000.c (rs6000_mixed_function_arg): Rewrite. - (function_arg): Use rs6000_arg_size rather than CLASS_MAX_NREGS in - calculating gpr size for altivec. Simplify and correct - rs6000_mixed_function_arg calls. Call rs6000_mixed_function_arg - for ABI_V4 gpr case too. Fix off-by-one error in long double - reg test. Generate the correct PARALLEL to handle long double - for ABI_AIX 32-bit. Use this for -m32 -mpowerpc64 fpr case too. - (function_arg_partial_nregs): Align before calculating regs left. - Don't return info on partial fprs when we need info on gprs. - Correct long double fpr off-by-one error. - -2004-06-30 John David Anglin - - * pa-protos.h (prefetch_operand): Add prototype. - * pa.c (prefetch_operand): New function. - * pa.h (prefetch_operand): Add to PREDICATE_CODES. - * pa.md (prefetch, prefetch_32, prefetch_64): New prefetch patterns. - -2004-06-30 Richard Henderson - - * function.h (struct function): Remove x_whole_function_mode_p. - * c-decl.c (store_parm_decls): Don't set it. - * tree-optimize.c (tree_rest_of_compilation): Likewise. - * passes.c (rest_of_compilation): Don't check it. - * stmt.c (expand_fixup): Likewise. - * function.c (fixup_var_refs_insn): Remove unused variable. - -2004-06-30 Richard Henderson - - * tree.h (immediate_size_expand): Delete. - * stor-layout.c (immediate_size_expand): Delete. - (variable_size): Don't look at it. - * c-decl.c (push_parm_decl): Don't frob immediate_size_expand. - (start_function): Likewise. - * cfgexpand.c (construct_exit_block): Likewise. - * function.c (init_function_start, expand_function_end): Likewise. - * tree-optimize.c (tree_rest_of_compilation): Likewise. - -2004-06-30 Richard Henderson - - * gimplify.c (gimplify_compound_lval): Take fallback argument - instead of want_lvalue. - (gimplify_call_expr): Take want_value argument instead of test - function. Gimplify arguments to val only if reg_type; otherwise - allow lvalue forms. - (gimplify_expr): Update gimplify_compound_lval and gimplify_call_expr - calls. - * tree-gimple.c: Update GIMPLE grammer. Use true/false not 1/0. - Tidy commentary globally. - (get_call_expr_in): Remove RETURN_EXPR handling. Tidy. - * tree-gimple.h (is_gimple_call_addr): Mark extern. - - * gimplify.c (gimplify_modify_expr_to_memcpy): Fix typo. - -2004-06-30 Richard Henderson - - * tree-gimple.c (right_assocify_expr): Kill - (rationalize_compound_expr): Kill. - * tree-gimple.h: Likewise. - * tree-inline.c (expand_call_inline): Don't call it. - - * function.h (struct function): Remove x_last_parm_insn, - inl_last_parm_insn. - (last_parm_insn): Remove. - * function.c (free_after_compilation): Don't clear them. - (fixup_var_refs_insn, assign_parms): Don't set them. - - * function.c, rtl.h (get_first_nonparm_insn): Remove. - -2004-06-30 Joseph S. Myers - - * c-common.h (check_function_format): Remove first parameter. - * c-format.c (format_check_context): Remove status. - (check_format_info, check_format_info_main, - maybe_read_dollar_number, avoid_dollar_number, - finish_dollar_format_checking, check_format_types, - check_function_format): Remove first parameter. Don't use - status_warning. - (check_format_arg): Don't use status_warning. - (status_warning): Remove. - * c-common.c (check_function_arguments): Update call to - check_function_format. - -2004-06-30 Eric Botcazou - - * config/sparc/sparc-protos.h (output_cbranch): Constify return - value. - (output_v9branch): Likewise. - (sparc_v8plus_shift): Likewise. Rename into output_v8plus_shift. - * config/sparc/sparc.c (output_cbranch): Constify return value. - Prettify output for delay slots. - (output_v9branch): Likewise. - (sparc_v8plus_shift): Constify return value. Rename into - output_v8plus_shift. - * config/sparc/sparc.md (ashldi3_v8plus): Adjust call to - sparc_v8plus_shift. - (ashrdi3_v8plus): Likewise. - (lshrdi3_v8plus): Likewise. - (call_address_struct_value_sp32): Prettify output for delay slots. - (call_symbolic_struct_value_sp32): Likewise. - (call_address_untyped_struct_value_sp32): Likewise. - (call_symbolic_untyped_struct_value_sp32): Likewise. - -2004-06-30 Zdenek Dvorak - - * common.opt (ftree-loop-optimize): New flag. - * tree-flow.h (kill_redundant_phi_nodes): Declare. - * tree-optimize.c (init_tree_optimization_passes): Add pass_loop. - * tree-pass.h (pass_loop_init, pass_loop_done): Declare. - * tree-ssa-loop.c (current_loops): New variable. - (tree_loop_optimizer_init, gate_loop, tree_ssa_loop_init, - tree_ssa_loop_done): New functions. - (pass_loop, pass_loop_init, pass_loop_done): New passes. - * tree-ssa.c (kill_redundant_phi_nodes): Export. - * doc/invoke.texi (-ftree-loop-optimize): Document. - -2004-06-30 Zdenek Dvorak - - * tree-ssa-loop-ch.c: New file. - * Makefile.in (tree-ssa-loop-ch.o): Add. - (tree-into-ssa.o): Add GGC_H dependency. - * tree-cfg.c (tree_duplicate_bb): Copy virtual arguments. - * tree-flow.h (rewrite_into_ssa): Declaration changed. - (rewrite_ssa_into_ssa, compute_global_livein, duplicate_ssa_name): - Declare. - * tree-into-ssa.c: Include ggc.h. - (struct def_blocks_d): Add phi_blocks field. - (struct mark_def_sites_global_data): Add names_to_rename field. - (struct ssa_name_info): New. - (compute_global_livein): Export. - (set_def_block, insert_phi_nodes, mark_def_sites, set_livein_block, - insert_phi_nodes_1, rewrite_finalize_block, insert_phi_nodes_for, - register_new_def, get_reaching_def, def_blocks_free, - get_def_blocks_for, rewrite_into_ssa): Modified to work with - rewrite_ssa_into_ssa. - (get_ssa_name_ann, get_phi_state, set_phi_state, get_current_def, - set_current_def, ssa_mark_def_sites_initialize_block, - ssa_mark_phi_uses, ssa_mark_def_sites, duplicate_ssa_name, - ssa_register_new_def, ssa_rewrite_initialize_block, - ssa_rewrite_phi_arguments, ssa_rewrite_finalize_block, - ssa_rewrite_stmt, rewrite_ssa_into_ssa, rewrite_all_into_ssa): New - functions. - (pass_build_ssa): Call rewrite_all_into_ssa. - * tree-optimize.c (execute_todo, execute_one_pass, - tree_rest_of_compilation): Allocate vars_to_rename only once. - * tree-ssa-dom.c (tree_ssa_dominator_optimize): Provide parameter - to rewrite_into_ssa. - * tree-ssa-loop.c (should_duplicate_loop_header_p, - mark_defs_for_rewrite, duplicate_blocks, do_while_loop_p, - copy_loop_headers, gate_ch, pass_ch): Moved to tree-ssa-loop-ch.c. - Use rewrite_ssa_into_ssa. - * tree-ssa-operands.c (copy_virtual_operands): New function. - * tree-ssa-operands.h (copy_virtual_operands): Declare. - * tree.h (struct tree_ssa_name): Add aux field. - (SSA_NAME_AUX): New macro to access it. - -2004-05-28 Aaron W. LaFramboise - - * prefix.c (lookup_key): Cast buffer to LPBYTE. - -2004-06-30 Per Bothner - - Conditionally compile support for --enable-mapped_location. - * input.h: #include line-map.h for source_location typedef. - (BUILTINS_LOCATION, UNKNOWN_LOCATION, expand_location, - LOCATION_FILE, LOCATION_LINE): New macros and functions. - (expanded_location, source_locus): New typedefs. - (push_srcloc): Change parameter list if USE_MAPPED_LOCATION. - * rtl.def (NOTE, ASM_OPERANDS): Modify specifcation, if - USE_MAPPED_LOCATION. - * rtl.h (NOTE_DELETED_LABEL_NAME): New macro. - (NOTE_SOURCE_LOCATION, NOTE_EXPNDED_LOCATION, SET_INSN_DELETED): - New conditional macros. - (ASM_OPERANDS_SOURCE_FILE, ASM_OPERANDS_SOURCE_LINE): Replace - by ASM_OPERANDS_SOURCE_LOCATION if USE_MAPPED_LOCATION. - * tree.h (EXPR_LOCATION, SET_EXPR_LOCATION, EXPR_HAS_LOCATION, - EXPR_LOCUS, SET_EXPR_LOCUS, EXPR_FILENAME, EXPR_LINENO, - DECL_IS_BUILTIN): New macros, most depending on USE_MAPPED__LOCATION. - (tree_exp): Change type of locus to use new source_locus typedef. - * tree.c (build1_stat): Use SET_EXPR_LOCATION. - (annotate_with_locus, annotate_with_file_line): Conditionalize. - (expand_location): New function. - * toplev.c (unknown_location): New static, when USE_MAPPED_LOCATION. - (push_srcloc, pop_loc): Adjust parameter handling. - (process_options): Don't set input_filename by itself. - (lang_dependent_init): Save, set input_location to . - (warn_deprecated_use): Use expand_location. - - * basic-block.h (struct edge_def): Use new source_locus typedef. - * c-common.c (fname_decl): Update save/clear/store of input_location. - (c_do_switch_warnings): Update for USE_MAPPED_LOCATION case. - * c-decl.c: Likewise. - * c-dump.c (dump_stmt): Likewise. - * c-gimplify.c (c-gimplify.c): Generalize using SET_EXPR_LOCATION. - * c-lex.c (cb_line_change): If USE_MAPPED_LOCATION use token's src_loc - to set input_location direction, rather than using linemap_lookup. - (fe_file_change, cb_def_pragma): Again use source_location directly. - * c-opts.c (saved_lineno): Remove static variable. - (c_common_post_options, c_common_init): Don't bothner to save, - clear and restore input_Location - now handled by lang_dependent_init. - * function.c (init_function_start): Use new DECL_IS_BUILTIN macro. - * xcoffout.c (xcoff_assign_fundamental_type_number): Likewise. - * tree-mudflap.c (mf_file_function_line_tree): Take a location_t - rather than a pointer to one. Use expand_location. - (mf_varname_tree): Use expand_location. - * tree-dump.c: Use expand_location on DECL_SOURCE_LOCATION. - * coverage.c: Likewise. - * print-tree.c: Likewise. - * c-aux-info.c (gen_aux_info_record): Likewise. - * c-parse.in: Use SET_EXPR_LOCATION macro. - * gimple-low.c: Likewise. - * tree-mudflap.c: Likewise. - * gimplify.c: Likewise. Also use EXPR_LOCATION and EXPR_HAS_LOCATION. - * c-ppoutput.c: Use new source_location typedef instead of fileline. - * c-semantics.c: Use new macros. - * c-typeck.c: Likewise. - * cfgexpand.c: Handle USE_MAPPED_LOCATION case for function_end_locus. - * cfglayout.c (insn_locators_initialize): Const cleanup. New macros. - * cfgrtl.c (delete_insn): Use new NOTE_DELETED_LABEL_NAME macro. - * print-rtl.c (print_rtx): Likewise. - * emit-rtl.c: Don't clear NOTE_SOURCE_FILE if USE_MAPPED_LOCATION. - * combine.c: Use new SET_INSN_DELETED macro. - * flow.c: Likewise. - * haifa-sched.c: Likewise. - * ifcvt.c: Likewise. - * recog.c: Likewise. - * reload1.c: Likewise. - * diagnostic.c: Use expand_location macro. - * pretty-print.c (pp_base_format_text): Likewise. - * profile.c: Likewise. - * dwarf2out.c: Likewise. Also use expand_location, DECL_IS_BUILTIN. - * dwarf2out.c (dwarf2out_decl: Use BUILTINS_LOCATION. - * emit-rtl.c (emit_line_note): Simplify if USE_MAPPED_LOCATION. - (force_next_line_note, insn_emit): Handle USE_MAPPED_LOCATION case. - * final.c (final): Likewise. - * haifa-sched.c: Likewise. - * integrate.c: Likewise. - * jump.c: Likewise. - * rtl-error.c: Likewise. - * stmt.c (check_seenlabel): Likewise. - * tree-pretty-print.c: Likewise. - * gengtype-lex.l: Temporary kludge to avoid duplicate typedef. - * gengtype.c: Update for now typdefs in input.h. More kludges. - * modulo-sched.c (sms_schedule): Use NOTE_EXPANDED_LOCATION macro. - * ra-debug.c (ra_print_rtl): Likewise. - * sched-rgn.c: Likewise. - * sched-vis.c: Likewise. - * rtl.h (gen_rtx_ASM_OPERANDS): Redefine if USE_MAPPED_LOCATION. - * stmt.c (expand_asm_operands): Adjust calls to gen_rtx_ASM_OPERANDS. - * tree-cfg.c: Use new macros and typedefs. - * tree-flow-inline.h: Likewise. - -2004-06-30 Richard Sandiford - Eric Christopher - - * config/mips/3000.md: Improve description. - -2004-06-30 Paul Brook - - * config/arm/cirrus.md (cirrus_arm_movdi, cirrus_movsf_hard_insn, - cirrus_movdf_hard_insn): Set pool ranges for coprocessor loads. - -2004-06-30 Sebastian Pop - - * Makefile.in (OBJS-common): Add tree-chrec.o. - (tree-chrec.o): New rule. - (GTFILES): Add tree-chrec.h. - * gengtype.c (open_base_files): Add tree-chrec.h. - * tree-chrec.c: New file. - * tree-chrec.h: New file. - * tree.def (SCEV_KNOWN, SCEV_NOT_KNOWN, POLYNOMIAL_CHREC): New nodes. - -2004-06-30 Roger Sayle - - * combine.c: Include "output.h" to define dump_file. - (uid_insn_cost, last_insn_cost): New global variables. - (combine_insn_cost): New function to estimate cost of an insn. - (combine_validate_cost): New function to determine whether a - try_combine replacement sequence is cheaper than the original. - (combine_instructions): Allocate and populate uid_insn_cost - array at the start of the combine pass, and deallocate it after. - (try_combine): Check combine_validate_cost to determine whether - a "recombination" should be rejected as being more expensive. - * Makefile.in (combine.o): Add dependency upon output.h. - -2004-06-30 Roger Sayle - - * config/rs6000/rs6000.c (rs6000_rtx_costs) : Handle - subtractions identically to additions, always COSTS_N_INSNS (1). - -2004-06-30 J"orn Rennecke - - * expmed.c (expand_smod_pow2): Fix sign of mask. - -2004-06-29 Diego Novillo - - * tree-ssa-pre.c (phi_trans_add): Use is_gimple_min_invariant - to check for constants. - (set_remove): Likewise. - (value_replace_in_set): Likewise. - (find_leader): Likewise. - * tree-vn.c (set_value_handle): Likewise. - (vn_lookup): Likewise. - (vn_lookup_or_add): Likewise. - -2004-06-30 Eric Botcazou - - RTL prologue/epilogue for SPARC - * config/sparc/sparc-protos.h (sparc_emitting_epilogue): Delete. - (sparc_skip_caller_unimp): Likewise. - (load_pic_register): Likewise. - (leaf_return_peephole_ok): Likewise. - (compute_frame_size): Rename into sparc_compute_frame_size. - (sparc_expand_prologue): New prototype. - (sparc_expand_epilogue): Likewise. - (output_return): Likewise. - (eligible_for_epilogue_delay): Rename into eligible_for_return_delay. - * config/sparc/sparc.h (INITIAL_ELIMINATION_OFFSET): Adjust call to - compute_frame_size. Move comment up. - (DELAY_SLOTS_FOR_EPILOGUE): Delete. - (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise. - (EPILOGUE_USES): Return true for %g1 if the function uses EH return. - * config/sparc/sparc.md (UNSPECV_SAVEW): New constant. - (type attribute): Add 'return' and 'savew'. - (eligible_for_return_delay): New attribute. - (return): New delay_slot. - (sibcall_epilogue): Call sparc_expand_epilogue. - (prologue): Likewise. Move up. - (save_register_window): New expander. - (save_register_windowsi): New pattern. - (save_register_windowdi): Likewise. - (epilogue): New expander. - (return_internal): New pattern. - (Return peepholes): Delete. - * config/sparc/sparc.c (SIBCALL_SLOT_EMPTY_P): New macro. - (sparc_emitting_epilogue): Delete. - (sparc_skip_caller_unimp): Likewise. - (sparc_sr_alias_set): New global variable. - (frame_base_name): Delete. - (frame_base_reg): New global variable. - (sparc_override_options): Get new alias set for save/restore. - (leaf_return_peephole_ok): Delete. - (eligible_for_epilogue_delay): Rename into eligible_for_return_delay. - Factor out code into eligible_for_restore_insn_delay. - (eligible_for_restore_insn_delay): New function extraced from above. - Use IN_UNCOND_BRANCH_DELAY_TRUE instead of IN_BRANCH_DELAY_TRUE. - (eligible_for_sibcall_delay): Use SIBCALL_SLOT_EMPTY_P. - Factor out code into eligible_for_restore_insn_delay. - (load_pic_register): Make static. Remove check. - (save_regs): Delete. - (restore_regs): Likewise. - (compute_frame_size): Rename into sparc_compute_frame_size. - Rename leaf_function into leaf_function_p. - (build_big_number): Delete. - (save_or_restore_regs): New function. - (emit_save_regs): Likewise. - (emit_restore_regs): Likewise. - (emit_stack_pointer_increment ): Likewise. - (emit_stack_pointer_decrement): Likewise. - (sparc_expand_prologue): Likewise. - (sparc_function_prologue): Rename into sparc_asm_function_prologue. - Remove all code to emit instructions. - (sparc_expand_epilogue): New function. - (sparc_function_epilogue): Rename into sparc_asm_function_epilogue. - Remove all code to emit instructions. - (output_restore): New function. - (output_return): Likewise. - (output_sibcall): Factor out code into output_restore. - (print_operand): Adjust for frame_base_reg. - * target.h (struct gcc_target): New field 'late_rtl_prologue_epilogue'. - * target-def.h (TARGET_LATE_RTL_PROLOGUE_EPILOGUE): New define. - (TARGET_INITIALIZER): Add it. - * passes.c (rest_of_compilation): Set the conditional predicate - 'current_function_uses_only_leaf_regs' before sched2. If target - has 'late_rtl_prologue_epilogue', emit RTL prologue/epilogue right - before sched2. - * reorg.c (return_insn_p): New predicate. - (find_end_label): Use it. - (relax_delay_slots): Do not thread an unconditional jump that points - to the end return label. - * doc/tm.texi (Registers) : Clarify the validity - domain of 'current_function_uses_only_leaf_regs'. - (Stack and Calling) : Document new target hook - TARGET_LATE_RTL_PROLOGUE_EPILOGUE. - -2004-06-30 Jakub Jelinek - - * simplify-rtx.c (simplify_binary_operation): Simplify - ((A & N) + B) & M -> (A + B) & M if M is pow2 minus 1 constant and - N has at least all bits in M set as well. - - PR tree-optimization/15310 - * expr.c (expand_assignment): Optimize += or -= on a bit field in - most significant bits. - -2004-06-30 Steven Bosscher - - * config/c4x/c4x.md: Fix comment. - -2004-06-30 Akos Kiss - - * arm.md (cond_return_inverted): Add "length" attribute. - -2004-06-29 Per Bothner - - * config/i386/winnt.c (i386_pe_encode_section_info): Smash rtlname's - XSTR in place, so we don't lose SYMBOL_REF_DECL info. - -2004-06-29 Zack Weinberg - - * config/ia64/hpux.h: Target does too support thread-local storage. - -2004-06-29 Zack Weinberg - - * combine.c (distribute_notes): Don't look at global_regs for - pseudos. - -2004-06-29 Richard Henderson - - * gimplify.c (gimplify_modify_expr_rhs): Move immediately before - gimplify_modify_expr. - (gimplify_init_constructor): Likewise. Gimplify the null - CONSTRUCTOR assignment. - (gimplify_modify_expr_to_memcpy): New. - (gimplify_modify_expr_to_memset): New. - (gimplify_modify_expr): Use them. - -2004-06-29 Roman Zippel - - * web.c (union_defs): use all defs of an instruction to create a - union with a read/write use - -2004-06-29 Richard Henderson - - PR middle-end/16216 - * builtins.c (gimplify_va_arg_expr): Check for valist being - an error_mark_node. - -2004-06-29 Jakub Jelinek - - PR target/16195 - * config/rs6000/rs6000.c (rs6000_conditional_register_usage): Make - r30 fixed if TARGET_TOC && TARGET_MINIMAL_TOC. - (first_reg_to_save): Pretend call_used_regs[30] is 0 if - TARGET_TOC && TARGET_MINIMAL_TOC. - (rs6000_emit_prologue, rs6000_emit_epilogue): Likewise. - -2004-06-29 J"orn Rennecke - - Fix gcc.dg/builtin-apply2.c failures: - * sh.h (TARGET_VARARGS_PRETEND_ARGS): Define. - * sh.c (extra_push): Delete. - (sh_expand_prologue): Don't do extra stack adjustment for - current_function_pretend_args_size if it comes from varargs setup. - Use TARGET_VARARGS_PRETEND_ARGS. Don't set extra_push. - (sh_expand_epilogue): Don't use extra_push. - (sh_setup_incoming_varargs): Set pretend_arg_size when necessary. - -2004-06-29 Roger Sayle - - * expmed.c (expand_smod_pow2): Provide alternate implementations - that avoid conditional jumps, and choose between them based upon - the target's rtx_costs. - -2004-06-29 Andrew Pinski - - * tree-sra.c: Include expr.h for definition of MOVE_RATIO. - * Makefile.in (tree-sra.c): Update dependencies. - -2004-06-29 Richard Henderson - - * tree-sra.c: Rewrite from scratch. Handle nested aggregates. - -2004-06-29 Nathan Sidwell - - * vec.h (VEC_T_safe_push, VEC_T_safe_insert): Tweak for when - size_t is bigger than int. - -2004-06-29 Paul Brook - - * target-def.h (TARGET_CXX_GET_COOKIE_SIZE, - TARGET_CXX_COOKIE_HAS_SIZE): Define. - (TARGET_CXX): Use them. - * target.h (struct gcc_target): Add cxx.get_cookie_size and - cxx.cookie_has_size. - * targhooks.c (default_cxx_get_cookie_size): New fucntion. - * targhooks.h (default_cxx_get_cookie_size): Add prototype. - * config/arm/arm.c (TARGET_CXX_GET_COOKIE_SIZE, - TARGET_CXX_COOKIE_HAS_SIZE): Define. - (arm_get_cookie_size, arm_cookie_has_size): New functions. - * Make-lang.in (cp/init.o): Add dependency on $(TARGET_H). - * doc/tm.texi: Document TARGET_CXX_GET_COOKIE_SIZE and - TARGET_CXX_COOKIE_HAS_SIZE. - -2004-06-29 J"orn Rennecke - - * cfglayout.c (fixup_reorder_chain): Don't do anything for - e_fall->dest == EXIT_BLOCK_PTR. - -2004-06-28 Richard Henderson - - * tree-cfg.c (verify_stmt): Add last_in_block parameter. Verify - that eh stmts can throw. - (verify_stmts): Update verify_stmt call. - (tree_purge_dead_eh_edges, tree_purge_all_dead_eh_edges): New. - * tree-eh.c (remove_stmt_from_eh_region): New. - (lower_eh_constructs): Fix throw_stmt_table delete routine. - (tree_could_trap_p): Match may_trap_p. - (maybe_clean_eh_stmt): New. - * tree-flow.h: Update decls. - * tree-ssa-ccp.c (pass_ccp): Add TODO_verify_stmts. - (substitute_and_fold): Clean eh edges. - * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Handle - empty basic blocks. - * tree-ssa-dom.c (need_eh_cleanup): New. - (tree_ssa_dominator_optimize): Allocate it. Cleanup eh edges. - (optimize_stmt): Cleanup eh stmts; set need_eh_cleanup. - -2004-06-29 Alan Modra - - * function.c (assign_parms): Don't abort with zero size stack - parm failing the PARM_BOUNDARY check. - -2004-06-28 Diego Novillo - - * common.opt (ftree-fre): New flag. - * flags.h (flag_tree_fre): Declare. - * opts.c (decode_options): Set. - * timevar.def (TV_TREE_FRE): Define. - * tree-flow-inline.h (may_propagate_copy): Re-arrange for - readability. Handle destinations that are not SSA_NAMEs. - * tree-flow.h (struct ptr_info_def): Move from tree.h - (cprop_into_stmt, cprop_into_successor_phis): Remove. - (vn_compute, vn_lookup_or_add, vn_add, vn_lookup): Add - vuse_optype parameter. - * tree-pass.h (pass_fre): Declare. - * tree-ssa-copy.c (cprop_operand): Move to tree-ssa-dom.c - (cprop_into_stmt): Likewise. - (cprop_into_successor_phis): Likewise. - * tree-ssa-dom.c (eliminate_redundant_computations): Fix - argument ordering in call to may_propagate_copy. - * tree-ssa-pre.c (is_undefined_value): Assume hard registers - to be always defined. - (add_to_sets): New local function. - (create_value_expr_from): New local function. - (compute_avail): Call them. - (eliminate): Don't ignore statements with virtual operands. - (init_pre): New local function. - (fini_pre): New local function. - (execute_pre): Call them. - Add argument DO_FRE. Don't do insertion if DO_FRE is true. - (do_pre): New function. - (do_fre): New function. - (gate_fre): New function. - (pass_fre): Declare. - * tree-ssa.c (init_tree_ssa): Don't call vn_init. - (delete_tree_ssa): Don't call vn_delete. - * tree-vn.c (val_expr_pair_d): Add documentation. - (vn_compute): Add VUSES argument to incorporate in computing - hash values. Update all callers. - (expressions_equal_p): Call operand_equal_p with - OEP_PURE_SAME. - (vn_add): Add VUSES argument. Update all callers. - (vn_lookup): Likewise. - (vn_lookup_or_add): Likewise. - * doc/invoke.texi: Document -ftree-fre and -fdump-tree-fre. - -2004-06-28 Steven Bosscher - - * config/m32r/m32r.c (m32r_sched_odd_word_p, m32r_adjust_cost, - m32r_sched_init, m32r_sched_reorder, m32r_variable_issue): Remove. - (TARGET_SCHED_ADJUST_COST, TARGET_SCHED_VARIABLE_ISSUE, - TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Don't define. - * config/m32r/m32r.md: Rewrite the pipeline description as a DFA. - -2004-06-28 Richard Henderson - - * tree.def (REALPART_EXPR, IMAGPART_EXPR): Change class to 'r'. - * fold-const.c (operand_equal_p ): Add REALPART_EXPR, - IMAGPART_EXPR. - * tree-dump.c (dequeue_and_dump): Handle REALPART_EXPR and - IMAGPART_EXPR explicitly. - * tree-inline.c (estimate_num_insns_1): Don't handle REALPART_EXPR - and IMAGPART_EXPR specially. - * tree.c (build1_stat): Copy TREE_THIS_VOLATILE into class 'r'. - -2004-06-28 J"orn Rennecke - - * config.gcc (sh*-*elf*): Remove dead assignment of sh_multilibs. - -2004-06-28 Joseph S. Myers - - * builtins.def (execl, execlp, execle, execv, execvp, execve, - fork): Change to DEF_EXT_LIB_BUILTIN. - -2004-06-28 Roger Sayle - - * expmed.c (expand_smod_pow2): New function to expand signed - remainder by a constant power of 2, such as "x % 16". - (expand_divmod): Call new expand_smod_pow2 when appropriate. - Minor corrections to comments, e.g. wrapping long lines. - -2004-06-28 Ulrich Weigand - - * Makefile.in (vec.o): Fix dependencies. - -2004-06-28 Andreas Tobler - - * Makefile.in: Fix parallel make dependency problem on vec.o. - -2004-06-28 Dhananjay Deshpande - - PR target/14041 - * config/h8300/h8300.h (ASM_OUTPUT_ALIGNED_BSS): Define. - -2004-06-28 Nathan Sidwell - - * tree.h (tree_check_failed): Make varadic. - (tree_not_check_failed): New prototype. - (tree_check2_failed, tree_check3_failed, - tree_check4_failed, tree_check5_failed): Remove. - (TREE_CHECK, TREE_CHECK2, TREE_CHECK3, TREE_CHECK4, - TREE_CHECK5): Adjust. - (TREE_NOT_CHECK, TREE_NOT_CHECK2, TREE_NOT_CHECK3, TREE_NOT_CHECK4, - TREE_NOT_CHECK5): New. - (TREE_VEC_ELT_CHECK, PHI_NODE_ELT_CHECK, TREE_OPERAND_CHECK_CODE, - TREE_RTL_OPERAND_CHECK): Adjust. - * tree.c (tree_check_failed): Make varadic. - (tree_not_check_failed): New. - (tree_check2_failed, tree_check3_failed, - tree_check4_failed, tree_check5_failed): Remove. - -2004-06-28 Ulrich Weigand - - * combine.c (can_combine_p): Do not prevent building insns that use - and clobber the same fixed hard register. - (reg_dead_at_p): Likewise. - -2004-06-28 Richard Kenner - - * tree-sra.c (is_sra_candidate_ref): Remove second arg; all callers - changed. - (is_sra_candidate_complex_ref): New function. - (scalarize_modify_expr): Call it and check for LHS also. - - * tree-pretty-print.c (dump_function_declaration): New. - (dump_generic_node, case FUNCTION_TYPE): Call it. - (dump_generic_node, case RECORD_TYPE): Don't output dup semicolon. - (dump_generic_node, case DECL_EXPR): New case. - (dump_generic_node, case PLACEHOLDER_EXPR): Handle. - (print_declaration): Handle type and function declarations. - - * tree-nested.c (create_tmp_var_for): Allow ARRAY_TYPE. - (convert_nonlocal_reference, convert_local_reference): Properly - convert nest of handled component references. - -2004-06-28 Nathan Sidwell - - * vec.h, vec.c: New, type safe vector API. - * Makefile.in (OBJS-common): Add vec.o. - (vec.o): New target. - (gengtype-lex.o): Depend on vec.h. - -2004-06-28 Paolo Bonzini - - * fold-const.c (fold_cond_expr_with_comparison): Add ARG1 - parameter. Use it instead of ARG00 to produce the result. - -2004-06-28 Alexandre Oliva - - * config/mn10300/mn10300-protos.h (legitimate_address_p): Declare. - * config/mn10300/mn10300.c (legitimate_address_p): New. Test that - index is legitimate, compared with code moved from... - * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): here. - (REG_STRICT): Define, according to REG_OK_STRICT. - (REGNO_IN_RANGE_P, REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_SP_P, - REGNO_EXTENDED_P, REGNO_AM33_P, REGNO_FP_P): Introduce strict - argument. - (REGNO_STRICT_OK_FOR_BASE_P, REGNO_STRICT_OK_FOR_BIT_BASE_P, - REGNO_STRICT_OK_FOR_INDEX_P): New. - (REGNO_OK_FOR_BASE_P, REG_OK_FOR_BASE_P, REGNO_OK_FOR_BIT_BASE_P, - REG_OK_FOR_BIT_BASE_P, REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_P, - RTX_OK_FOR_BASE_P): Use them. - -2004-06-28 Ben Elliston - - * doc/cfg.texi (Basic Blocks): Define dominators. - -2004-06-27 Andrew Pinski - - PR c++/16205 - * c-common.c (warn_for_collisions_1): Warn for only decls which - have a name. - - PR c++/15145 - * c.opt (Wsequence-point): Enable for C++ and ObjC++. - - PR c/14963 - * c-decl.c (start_decl): Check for null types. - -2004-06-27 David Edelsohn - - * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p): - Accept TOC addresses. - -2004-06-27 Ulrich Weigand - - * config/s390/s390-protos.h (s390_load_got): Update prototype. - * config/s390/s390.c (struct machine_function): Add member base_reg. - (s390_decompose_address): Accept UNSPEC_LTREF. Simplify logic. - (s390_split_branches): Annotate late pool references. - (annotate_constant_pool_refs): New function. - (find_constant_pool_ref): Work on annotated pool references. - (replace_constant_pool_ref): Likewise. Use explicit base. - (replace_ltrel_base): Use explicit base. - (s390_mainpool_start): Reflect main_pool pattern change. - (s390_mainpool_finish): Use base register from main_pool. - Update calls to replace_ltrel_base and replace_constant_pool_ref. - (s390_chunkify_start): Use base_reg from struct machine_function. - (s390_chunkify_finish): Remove base_reg argument. Update calls - to replace_ltrel_base and replace_constant_pool_ref. - (s390_reorg): Don't decide upon base register. Update calls. - (s390_load_got): Remove MAYBE_DEAD handling. Do not emit insns - but return sequence instead. - (s390_emit_prologue): Decide upon base register to use. Annotate - all literal pool references. Adapt to main_pool pattern change. - Update s390_load_got call; move MAYBE_DEAD handling here. - (s390_emit_epilogue): Annotate late literal pool references. - Remove barrier before register restore instruction. - * config/s390/s390.md (UNSPEC_LTREF): New constant. - ("builtin_setjmp_receiver"): Update s390_load_got call. - ("main_pool"): Explicitly reference base register. - -2004-06-27 Roger Sayle - - * fold-const.c (fold) : Optimize ~X|X and X|~X as -1. - : Optimize ~X|X and X|~X as -1. - : Optimize ~X&X and X&~X as 0. - : Optimize !X&&X and X&&!X as false. - : Optimize !X||X and !X||X as true. - : Optimize !X^X and X^X! as true. Now that - TRUTH_XOR_EXPR is a commutative tree code, don't test whether arg0 - is a constant. - -2004-06-26 Richard Kenner - - * c-common.c (c_safe_from_p, c_walk_subtrees): Deleted. - * c-common.def (DECL_STMT): Remove. - * c-common.h (DECL_STMT_DECL): Deleted. - (COMPOUNT_LITERAL_EXPR_DECL): Use DECL_EXPR_DECL. - (c_safe_from_p, c_walk_subtrees): Deleted. - * c-decl.c, c-parse.in, c-pretty-print.c: DECL_STMT now DECL_EXPR. - * c-dump.c (c_dump_tree, case DECL_STMT): Deleted. - * c-gimplify.c (gimplify_decl_stmt): Deleted. - (gimplify_compound_literal_expr): Use DECL_EXPR_DECL - and gimplify_and_add. - (c_gimplify_expr, case DECL_EXPR): New case. - (c_gimplify_expr, case DECL_STMT): Deleted. - * c-lang.c (LANG_HOOKS_SAFE_FROM_P): Likewise. - (LANG_HOOKS_TREE_INLINING_WALK_SUBTREES): Likewise. - * expr.c (safe_from_p, case 's'): New case. - * gimplify.c (gimplify_decl_expr): New function. - (gimplify_expr, case DECL_EXPR): New case. - * tree-inline.c (walk_tree): Walk into all fields of a type and - decl only if they are in a DECL_EXPR. - (mark_local_for_remap_r): Minor code cleanup. - * tree-outof-ssa.c (discover_nonconstant_array_refs_r): Add else. - * tree.c (has_cleanups, case DECL_EXPR): New case. - * tree.def (DECL_EXPR): New code. - * tree.h (DECL_EXPR_DECL): New macro. - - * objc/objc-lang.c (LANG_HOOKS_SAFE_FROM_P): Deleted. - -2004-06-26 Andrew Pinski - - PR 13334 - * doc/install.texi: Document non-standard CFLAGS and bootstrap - failures and warnings. - -2004-06-26 Andrew Haley - - * emit-rtl.c (set_mem_attributes_minus_bitpos): Check - TREE_THIS_NOTRAP when setting MEM_NOTRAP_P. - * tree-eh.c (tree_could_trap_p): Check TREE_THIS_NOTRAP. - * tree.h (TREE_THIS_NOTRAP): New. - -2004-06-26 Kaz Kojima - - * genattrtab.c (write_test_expr): Put a unsigned cast before - the first operand for GEU, GTU, LEU and LTU. - -2004-06-26 Kazu Hirata - - * c-typeck.c, cfgexpand.c, ddg.c, ddg.h, df.c, fold-const.c, - gcov.c, gimplify.c, modulo-sched.c, passes.c, tree-cfg.c, - tree-mudflap.c, tree-nrv.c, tree-outof-ssa.c, tree-ssa-dom.c, - tree-ssa-dse.c, tree-ssa-operands.c, tree-ssa-pre.c, - tree-tailcall.c: Fix comment typos. Follow spelling - conventions. - -2004-06-25 Eric Christopher - - * config/mips/mips.md: Add back scheduling exclusion info. - -2004-06-25 Roger Sayle - - * ifcvt.c (seq_contains_jump): Delete function. - (end_ifcvt_sequence): Replace call to seq_contains_jump with an - inline test for a jump instruction in the existing "insn" loop. - (block_fallthru): Document function. - -2004-06-25 Philip Blundell - - PR wrong-code/15089 - * loop.c (scan_loop): Do not move user-specified register - assignments. - -2004-06-25 DJ Delorie - - * c-common.h (warn_cast_qual, warn_missing_format_attribute, - warn_pointer_arith, warn_missing_prototypes, warn_parentheses, - warn_missing_braces, warn_sign_compare, warn_long_long, - warn_redundant_decls, warn_float_equal, warn_char_subscripts, - warn_conversion, warn_format_y2k, warn_format_extra_args, - warn_format_zero_length, warn_format_nonliteral, - warn_format_security, mesg_implicit_function_declaration, - warn_bad_function_cast, warn_traditional, - warn_declaration_after_statement, warn_strict_prototypes, - warn_missing_declarations, warn_nested_externs, - warn_sequence_point, warn_init_self, warn_div_by_zero, - warn_implicit_int, warn_nonnull, warn_old_style_definition, - warn_selector, warn_undeclared_selector, warn_protocol, - warn_abi, warn_invalid_offsetof, warn_ctor_dtor_privacy, - warn_overloaded_virtual, warn_nonvdtor, warn_reorder, - warn_synth, warn_pmf2ptr, warn_ecpp, warn_sign_promo, - warn_old_style_cast, warn_nontemplate_friend, - warn_deprecated): Remove explicit declarations. - * c-common.c: Likewise, remove explicit definitions. - * c-opts.c: Likewise, remove explicit assignments. - * c.opts: Likewise, add implicit declare/define/assign. - -2004-06-25 Richard Kenner - - * gimplify.c (lookup_tmp_var): Set TREE_READONLY in is_formal case. - (build_addr_expr_with_type): Deleted. - (build_addr_expr): Deleted; callers changed to build_fold_addr_expr. - (gimplify_compound_lval): Make two passes over reference nest. - - * tree-nested.c (build_addr): Merge real/imagpart with - handled_component_p. - (convert_nonlocal_reference, convert_local_reference): Process extra - args to COMPONENT_REF and ARRAY_REF. - * tree-outof-ssa.c (discover_nonconstant_array_refs_r): Check for - lower bound and field offset being constant. - -2004-06-25 Mark Mitchell - - PR wrong-code/16129 - * alias.c (get_alias_set): Adjust setting of - DECL_POINTER_ALIAS_SET for pointers to aggregates. - -2004-06-24 Richard Kenner - - * tree-inline.c (remap_type): Arrange to have just one pointer type - for each type, mode, and 'can alias' value. - (setup_one_parameter): Remap type when making VAR_DECL for PARM_DECL. - (estimate_num_insns_1): Minor code reformatting. - (inline_forbidden_p_1): Likewise; add; missing return statement. - -2004-06-25 Roger Sayle - - PR middle-end/15825 - * ifcvt.c (unshare_ifcvt_sequence): Rename to end_ifcvt_sequence. - Use get_isns and end_sequence instead of accepting a seq argument. - Scan the instruction sequence for unrecognizable or jump insns. - (noce_try_move, noce_try_store_flag, noce_try_store_flag_constants, - noce_try_addcc, noce_try_store_flag_mask, noce_try_cmove, - noce_try_cmove_arith, noce_try_minmax, noce_try_abs, - noce_try_sign_mask): Use end_ifcvt_sequence to factor common code. - -2004-06-24 Jeff Law - - * gimplify.c (gimplify_compound_lval): Reset TREE_SIDE_EFFECTS - after gimplifying the innermost component. - -2004-06-25 Richard Sandiford - - PR target/16176 - * config/mips/mips.c (mips_expand_unaligned_load): Use a temporary - register for the destination of the lwl or ldl. - -2004-06-25 Richard Kenner - - * tree-dfa.c (get_virtual_var): Merge real/imaginary parts with - handled_component_p handling. - * tree-gimple.c (get_base_address): Likewise and fix typo that - caused both recursion and looping. - - * tree-cfg.c (verify_expr): Add macro CHECK_OK. - Properly test for nest of handled_components in LHS context. - -2004-06-25 Devang Patel - - * doc/tree-ssa.texi: Document info about MODIFY_EXPR's type - -2004-06-25 Paul Brook - - * target-def.h (TARGET_CXX_GUARD_TYPE, TARGET_CXX_GUARD_MASK_BIT, - TARGET_CXX): Define. - (TARGET_INITIALIZER): Use TARGET_CXX. - * target.h (struct gcc_target): Add struct cxx. - * targhooks.h (default_cxx_guard_type): Add prototype. - * targhooks.c (default_cxx_guard_type): New function. - * config/arm/arm.c (TARGET_CXX_GUARD_TYPE, TARGET_CXX_GUARD_MASK_BIT): - Define. - (arm_cxx_guard_type, arm_cxx_guard_mask_bit): New functions. - * doc/tm.texi: Document TARGET_CXX_GUARD_TYPE and - TARGET_CXX_GUARD_MASK_BIT. - -2004-06-25 Devang Patel - - * config/rs6000/darwin.h (CC1_SPEC): Handle -gused and -gfull. - * config/i386/darwin.h (CC1_SPEC): Same. - -2004-06-25 Mark G. Adams - - * dbxout.h: Add include guards - -2004-06-25 Paul Brook - - * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_EABI__. - -2004-06-25 Richard Earnshaw - - * arm.c (arm_arch4t): New variable. - (arm_override_options): Initialize it. If compiling for armv5 or - higher clear TARGET_INTERWORK. - (output_call): Abort if called for armv5. Use BX if it's available. - (output_call_mem): Use BLX if available and ensure that all armv5 - code is interworking safe. - (output_return_instruction): Always use BX in preference to MOV if - it's available. - (arm_output_epilogue): Likewise. - (arm_final_prescan_insn): Never conditionally call a subroutine - on armv5. - * arm.h (arm_arch4t): Declare. - * arm.md (call_reg_armv5, call_value_reg_armv5): New. - (call_reg_arm, call_value_reg_arm): Renamed from call_reg and - call_value_reg respectively. - (call_reg_thumb_v5, call_value_reg_thumb_v5): New. - (call_reg_thumb, call_value_reg_thumb): Renamed from call_indirect - and call_value_indirect respectively. - -2004-06-25 Richard Sandiford - - * config/mips/mips.c (reg_or_const_float_1_operand): Reimplement - in terms of const_float_1_operand. - -2004-06-25 Richard Sandiford - - PR target/16144 - * config/mips/mips.md (divsf, divdf): Don't FAIL if the first operand - is 1.0; force it into a register instead. - -2004-06-25 Bernardo Innocenti - - * config/m68k/m68k.h: Restore valid comment removed by mistake with - the recent m68k comments cleanup. - -2004-06-24 Richard Kenner - - * c-gimplify.c (gimplify_for_stmt): Use gimplify_and_add. - * gimplify.c (internal_get_tmp_var, gimplify_return_expr): Likewise. - (gimplify_loop_expr, gimplify_init_constructor): Likewise. - (gimplify_self_mod_expr, gimplify_cond_expr): Likewise. - - PR/16131 - * gimplify.c (voidify_wrapper_expr): Allow TARGET_EXPR. - - * gimplify.c: Remove unneeded forward declarations. - - * gimplify.c (append_to_compound_expr): Deleted. - * tree-gimple.h (append_to_compound_expr): Deleted. - - * fold-const.c (fold_addr_expr_with_type): Look through all - valid LHS modifiers to find a base to mark addressable. - - * tree.h (debug_find_tree): Add declaration. - * tree-inline.c (debug_find_tree): Remove extern declaration. - -2004-06-24 Eric Christopher - - * config/rs6000/rs6000.md: Apply change mistakenly - deleted with 2004-06-22 patch. - -2004-06-24 Richard Henderson - - * c-decl.c (c_in_iteration_stmt, c_in_case_stmt): Remove. - (c_break_label, c_cont_label): New. - (start_function): Update initializations. - (c_push_function_context): Update saves. - (c_pop_function_context): Update restores. - * c-parse.in: Update expected conflicts. - (stmt_count, compstmt_count): Remove. Remove all updates. - (if_prefix, simple_if, do_stmt_start): Remove. - (lineno_labeled_stmt): Remove. - (lineno_labels): New. - (c99_block_lineno_labeled_stmt): Use it. - (lineno_stmt, lineno_label): Don't clear EXPR_LOCUS before calling - annotate_with_locus. - (select_or_iter_stmt): Replace by ... - (condition, if_statement_1, if_statement_2, if_statement, - start_break, start_continue, while_statement, do_statement, - for_cond_expr, for_incr_expr, for_statement, switch_statement): New. - (stmt): Split out ... - (stmt_nocomp): ... this. Use c_finish_bc_stmt, c_finish_goto_label, - c_finish_goto_ptr. - * c-semantics.c (add_stmt): Don't add line numbers to labels. - * c-tree.h: Update prototypes. - (struct language_function): Remove x_in_iteration_stmt, x_in_case_stmt; - add x_break_label, x_cont_label, x_switch_stack. - (c_switch_stack): Declare. - * c-typeck.c (c_finish_goto_label, c_finish_goto_ptr): New. - (c_finish_return): Return the statement. - (c_switch_stack): Rename from switch_stack; export. - (if_elt, if_stack, if_stack_space, if_stack_pointer): Remove. - (c_begin_if_stmt, c_finish_if_cond, c_finish_then, c_begin_else, - c_finish_else): Remove. - (c_finish_if_stmt): Rewrite to perform the entire operation. - (c_begin_while_stmt, c_finish_while_stmt_cond, c_finish_while_stmt, - c_begin_for_stmt, c_finish_for_stmt_init, c_finish_for_stmt_cond, - c_finish_for_stmt_incr, c_finish_for_stmt): Remove. - (c_finish_loop): New. - (c_finish_bc_stmt): New. - (c_finish_expr_stmt): Return the statement. Split out... - (c_process_expr_stmt): ... this. Don't add locus to error marks. - * gimplify.c (gimplify_cond_expr): Accept NULL type statements. - * tree-gimple.c (is_gimple_stmt): Likewise. - * tree-pretty-print.c (dump_generic_node ): Likewise. - (print_struct_decl): Delete empty compound statement. - * objc/objc-act.c (objc_build_throw_stmt): Return the statement. - * objc/objc-act.h: Update decl. - -2004-06-24 Richard Kenner - - * tree-pretty-print.c (dump_generic_node, case TYPE_DECL): - Don't look at TYPE_METHODS unless RECORD_TYPE or UNION_TYPE. - -2004-06-24 Andrew Pinski - - * objc-act.c (build_objc_method_call): Save the lookup_object - so we do not call it twice. - -2004-06-24 Richard Henderson - - * tree-ssa-dom.c (real_avail_expr_hash): New. - (tree_ssa_dominator_optimize): Use it in the htab. - -2004-06-24 Frank Ch. Eigler - - * tree-mudflap.c (mx_register_decls): Add third (type) argument - to synthesized __mf_unregister call. - -2004-06-24 Roger Sayle - - PR middle-end/15239 - * expmed.c (expand_mult): Remove artificial restriction on the - maximum cost of a synthetic multiplication sequence. - -2004-06-24 Eric Christopher - - * combine.c (distribute_notes): Don't delete sets to - global register variables. - -2004-06-24 Jakub Jelinek - - * config/i386/i386.md (ffsdi2, clzdi2): New expanders. - (ffs_rex64): New splitter. - (ffsdi_1, ctzdi2, bsr_rex64): New instructions. - -2004-06-24 Andrew Pinski - - * config/darwin7.h (MATH_LIBRARY): Remove. - (LIB_SPEC): Define. - * config/darwin.h (MATH_LIBRARY): Define always to empty. - (LIB_SPEC): Only define if not already defined. - -2004-06-24 Revital Eres - - * loop-iv.c (iv_analyze, simple_set_p): Support for identifying - shifts of induction variable. - (iv_shift): New function. - -2004-06-24 Richard Henderson - - * gimplify.c (gimplify_body): Watch for body vanishing. - -2004-06-24 Jeff Law - - * tree-ssa-dom.c (record_dominating_conditions): New function. - (dom_opt_finalize_block, get_eq_expr_value): Use it. - -2004-06-24 Richard Sandiford - - * calls.c (shift_returned_value): Fix handling of non-integer - TYPE_MODEs. - -2004-06-24 Ulrich Weigand - - * c-decl.c (finish_function): Do not check for DEFAULT_MAIN_RETURN. - * system.h (DEFAULT_MAIN_RETURN): Poison. - * doc/tm.texi (DEFAULT_MAIN_RETURN): Remove documentation. - -2004-06-24 Ben Elliston - - * doc/cfg.texi (Edges): Fix typo. - -2004-06-24 Paul Brook - - * config/arm/arm.c (arm_output_epilogue): Remove excess checks. - -2004-06-23 Andrew Pinski - - PR middle-end/15988 - * fold-const.c (fold_convert): Types which are compatible - can be converted with only a NOP_EXPR. - -2004-06-24 Alan Modra - - * calls.c (expand_call): Call INIT_CUMULATIVE_ARGS earlier, and - pass raw n_named_args to it. - * targhooks.c: Formatting. - (hook_bool_CUMULATIVE_ARGS_false): Correct comment. - -2004-06-23 Richard Henderson - - * c-gimplify.c (gimplify_decl_stmt): Push gimplify_one_sizepos inside - non-constant size check. Gimplify the type too. Tidy building - BUILT_IN_STACK_ALLOC call. - -2004-06-23 Roger Sayle - - * c-common.c (expand_unordered_cmp): Delete. - (expand_tree_builtin): Delete. - * c-common.h (expand_tree_builtin): Delete function prototype. - * c-typeck.c (build_function_call): Don't call expand_tree_builtin. - -2004-06-23 Richard Henderson - - * gimplify.c (gimplify_compound_lval): Don't set ARRAY_REF or - COMPONENT_REF variable fields unless they're non-constant. - -2004-06-23 Robert Millan - - * config.gcc: Merge kfreebsd*-gnu with linux* and add knetbsd*-gnu. - * config/i386/linux.h: Allow overriding of LINK_EMULATION, - DYNAMIC_LINKER and register names in sc_ structure. - * config/kfreebsd-gnu.h: New. kfreebsd-gnu followup for linux.h. - * config/i386/kfreebsd-gnu.h: New. Ditto for i386-kfreebsd-gnu. - * config/knetbsd-gnu.h: New. Ditto for knetbsd-gnu. - * config/i386/knetbsd-gnu.h: New. Ditto for i386-knetbsd-gnu. - - * config/kfreebsdgnu.h: Remove. - * config/t-kfreebsd-gnu: Likewise. - * config/i386/kfreebsdgnu.h: Likewise. - -2004-06-23 Eric Christopher - - * fold-const.c (make_range): Cleanup type checking through function. - Remove orig_type. Replace with checks to exp_type and arg0_type. - Clarify comment when converting from unsigned to signed. - -2004-06-23 Eric Christopher - - * config/mips/mips.c (mips_use_dfa_pipeline_interface): Add R3000. - * config/mips/mips.md: Remove R3000 scheduling description. - * config/mips/3000.md: New file. - -2004-06-23 Ulrich Weigand - - * config/s390/s390-protos.h (s390_emit_compare): Add prototype. - (s390_emit_jump): Likewise. - * config/s390/s390.c (s390_emit_compare): New function. - (s390_emit_jump): Likewise. - * config/s390/s390.md ("beq", "bne", "bgt", "bgtu", "blt", "bltu", - "bge", "bgeu", "ble", "bleu", "bunordered", "bordered", "buneq", - "bungt", "bunlt", "bunge", "bunle", "bltgt"): Use s390_emit_compare - and s390_emit_jump. - ("cjump"): Remove, replace by ... - ("*cjump_64", "*cjump_31"): ... these insns. Improve length default. - ("icjump", "*icjump_64", "*icjump_31"): Likewise. - ("trap"): Fix type attribute. - ("conditional_trap"): Use s390_emit_compare. - ("doloop_si"): Remove, replace by ... - ("doloop_si64", "doloop_si31"): ... these new insn_and_split. - Merge existing splitter into insn_and_split. Improve length default. - ("doloop_di"): Merge with existing splitter into insn_and_split. - ("doloop"): Adapt. - ("jump"): Convert to expander. Use s390_emit_jump. - ("*jump_64", "*jump_31"): New insns. Improve length default. - -2004-06-23 Wu Yongwei - - * gthr-win32.h (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust. - (__gthr_i486_lock_cmp_xchg): New inline assembly function. - (__GTHR_W32_InterlockedCompareExchange): New macro to choose a - suitable function for interlocked compare-and-exchange. - (__gthread_mutex_trylock): Use - __GTHR_W32_InterlockedCompareExchange. - (__gthread_mutex_init_function, __gthread_mutex_lock, - __gthread_mutex_trylock, __gthread_mutex_unlock): Adjust the - initial counter value to work correctly under Windows 95. - * config/i386/gthr-win32.c: Adjust include order. - Define __GTHREAD_I486_INLINE_LOCK_PRIMITIVES before including - gthr-win32.h. - (__gthr_win32_mutex_init_function, __gthr_win32_mutex_lock, - __gthr_win32_mutex_trylock, __gthr_win32_mutex_unlock): Adjust - to match inline versions in gthr-win32.h. - -2004-06-23 David Edelsohn - - * config/rs6000/rs6000.c (rs6000_use_dfa_pipeline_interface): Delete. - (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Redefine a hook_int_void_1. - (insvdi_rshift_rlwimi_p): New function. - * config/rs6000/rs6000.md (insvdi_internal2/3): New patterns. - (extendsfdf2): Convert to define_insn_and_split. - * config/rs6000/rs6000-protos.h (insvdi_rshift_rlwimi_p): Prototype. - -2004-06-23 Andrew Pinski - - * c-typeck.c (composite_type, ): Abort if we have - type qualifiers at all. - If both of the type domains are null and the new element type is - the same as one of the, return the one which the element type. - matches. - Do not call qualify_type on the new type. - -2004-06-23 Ulrich Weigand - - * config/s390/s390.h (DEFAULT_MAIN_RETURN): Remove. - -2004-06-23 Roger Sayle - - * convert.c (strip_float_extension): Skip both NOP_EXPR and - CONVERT_EXPR floating point extensions. - -2004-06-23 Diego Novillo - - * Makefile.in (tree-vn.o): New. - (tree-ssa-pre.o): Don't depend on RTL_H. - * tree-dfa.c (find_referenced_vars): Don't call init_tree_ssa. - * tree-flow.h (struct var_ann_d): Remove field expr_set. - (add_to_value, expressions_equal_p, get_value_handle, vn_compute, - vn_lookup_or_add, vn_add, vn_lookup, vn_init, vn_delete): Declare. - * tree-optimize.c (execute_init_datastructures): New local function. - (pass_init_datastructures): New local variable. - (init_tree_optimization_passes): Sequence pass_init_datastructures. - * tree-pretty-print.c (MASK_POINTER): Remove. - (dump_generic_node): Handle VALUE_HANDLE. - * tree-ssa-pre.c: Move all value numbering routines to tree-vn.c. - Update callers to use new function names. - Use VALUE_HANDLE_ID and VALUE_HANDLE_EXPR_SET instead of - variable annotations. - * tree-ssa.c (init_tree_ssa): Call vn_init. - (delete_tree_ssa): Call vn_delete. - * tree-vn.c: New file. - * tree.c (tree_size): Handle VALUE_HANDLE. - (tree_node_structure): Likewise. - (iterative_hash_expr): Likewise. - * tree.def (VALUE_HANDLE): New code. - * tree.h (struct tree_value_handle): New. - (VALUE_HANDLE_ID): Define. - (VALUE_HANDLE_EXPR_SET): Define. - (enum tree_node_structure_enum): Add TS_VALUE_HANDLE. - (union tree_node): Add struct tree_value_handle. - -2004-06-23 Andrew Pinski - - * c-typeck.c (composite_type): - : Build a qualified type of - the new type. - : Likewise. - : Likewise. - -2004-06-23 Pat Haugen - - PR optimization/15633 - * value-prof.c (divmod_fixed_value_transform): Compute probability - of taking optimal path and pass along to gen_ routine. - (mod_pow2_value_transform): Same. - (mod_subtract_transform): Same. - (gen_divmod_fixed_value): Add new probability parameter. - Add probability to newly created jump. - (gen_mod_pow2): Same. - (gen_mod_subtract): Same. - -2004-06-23 Richard Earnshaw - - * PR target/15948 - * arm.md (bicsi3_cbranch): Add alternative to handle tying operands - one and two. - -2004-06-23 Richard Earnshaw - - PR target/15927 - * arm.h (THUMB_SECONDARY_OUTPUT_RELOAD_CLASS): Don't need a secondary - reload if CLASS is BASE_REGS. - -2004-06-23 Richard Sandiford - - * gengtype-yacc.y (option): Avoid use of non-constant struct - initializer. - -2004-06-23 Nathan Sidwell - - * doc/extend.texi (Function Attributes): Alphabetize. - -2004-06-23 Richard Henderson - - * c-gimplify.c (gimplify_decl_stmt): Update gimplify_type_sizes call. - Use gimplify_and_add. - * c-typeck.c (c_finish_if_stmt): Use NULL instead of empty stmt. - * gimplify.c (build_and_jump, gimplify_exit_expr, - gimplify_init_constructor, gimplify_save_expr, gimple_push_cleanup, - gimplify_stmt, gimplify_expr): Likewise. - (shortcut_cond_expr): Handle NULL arms of COND_EXPR. - (gimplify_statement_list): Remove NULL entries. - (gimplify_to_stmt_list): Handle NULL results. - (gimplify_type_sizes): Add list_p argument. - (gimplify_one_sizepos): Don't use internal pre/post queue. - * tree-gimple.h (gimplify_type_sizes): Update. - -2004-06-22 Eric Christopher - - * config/rs6000/rs6000.md (*insvsi_internal5/6): New patterns. - -2004-06-22 Pat Haugen - - * cfghooks.c (make_forwarder_block): Decrement count on fallthru edge - when redirecting back edges. - - * cfghooks.c (split_block): Call make_single_succ_edge so that edge - count/probability are set correctly. - -2004-06-22 Richard Henderson - - * c-typeck.c (emit_side_effect_warnings): Ignore error marks. - (c_finish_stmt_expr): Likewise. - - * config/i386/i386.c (TARGET_STRUCT_VALUE_RTX): New. - (ix86_return_in_memory): Move SSE vector return warning ... - (ix86_struct_value_rtx): ... here. New. - -2004-06-22 Richard Henderson - - * tree.def (VTABLE_REF): Remove. - (OBJ_TYPE_REF): New. - (TRY_CATCH_EXPR, TRY_FINALLY_EXPR): Set type 's'. - * expr.c (expand_expr_real_1): Replace VTABLE_REF with OBJ_TYPE_REF. - * fold-const.c (non_lvalue): Likewise. - * gimplify.c (gimplify_expr): Likewise. - (gimplify_call_expr): Use is_gimple_call_addr. - * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): New. - * langhooks.h (fold_obj_type_ref): New. - * tree-gimple.c (is_gimple_call_addr): New. - * tree-gimple.h (is_gimple_call_addr): Declare. - * tree-inline.c (inlinable_function_p): Fix merge error. - (estimate_num_insns_1): Replace VTABLE_REF with OBJ_TYPE_REF. - * tree-pretty-print.c (dump_generic_node): Likewise. - (print_call_name): Handle OBJ_TYPE_REF. - * tree-ssa-ccp.c (fold_stmt): Fold OBJ_TYPE_REF. - * tree-ssa-operands.c (get_expr_operands): Handle OBJ_TYPE_REF. - * tree.h (OBJ_TYPE_REF_EXPR): New. - (OBJ_TYPE_REF_OBJECT, OBJ_TYPE_REF_TOKEN): New. - * doc/c-tree.texi (VTABLE_REF): Remove. - * objc/objc-act.c (build_objc_method_call): Build an OBJ_TYPE_REF. - -2004-06-22 Richard Henderson - - PR middle-end/16026 - * function.c (assign_parms): Don't abort for overaligned PARALLEL. - -2004-06-22 Joseph S. Myers - - * Makefile.in (distclean): Don't try to remove empty directories. - -2004-06-22 Richard Sandiford - - PR target/15869 - * config/mips/mips.c (mips_avoid_hazards): Call split_all_insns_noflow. - -2004-06-22 Alexandre Oliva - - * config/mn10300/mn10300.md (movdi, movdf): Use high/low for movu - operands. - -2004-06-22 Dale Johannesen - - * config/rs6000/rs6000.c (legitimate_offset_address_p): Make - global, rename rs6000_legitimate_offset_address_p. - (rs6000_legitimate_address_p): Adjust calls to it. - (lmw_operation): Ditto. - (stmw_operation): Ditto. - * config/rs6000/rs6000-protos.h: Declare it. - * config/rs6000/rs6000.md (*movdf_hardfloat32): Use it - instead of offsettable_memref_p. - -2004-06-22 Dale Johannesen - - * config/rs6000/rs6000.c (rs6000_legitimate_address): Disallow - [reg+reg] mode for TFmode memory accesses. - (rs6000_eliminate_indexed_memrefs): New. - (rs6000_emit_move): Call preceding for TImode and TFmode. - -2004-06-22 Paolo Bonzini - - * tree-cfg.c (pass_warn_function_return): It needs - CFG, not SSA. - -2004-06-22 Nathan Sidwell - - * doc/invoke.texi (Machine Dependent Options): Alphabetize. - (Submodel Options): Likewise. - -2004-06-21 Andrew Pinski - - Radar #: 3701874 - * c-decl.c (push_file_scope): Return early if we already - have a file scope. - -2004-06-21 Geoffrey Keating - - * c-opts.c (c_common_handle_option): Handle -fpch-preprocess. - * c-common.h (flag_pch_preprocess): Declare. - (c_common_pch_pragma): Likewise. - * c-common.c (flag_pch_preprocess): New. - * c-pch.c (c_common_read_pch): Support -fpreprocess-only. - (c_common_pch_pragma): New. - * c-ppoutput.c (cb_read_pch): New. - (init_pp_output): Support -fpch-preprocess. - * c-pragma.c (init_pragma): Support #pragma GNUC pch_preprocess. - * c.opt (fpch-preprocess): New. - * gcc.c (cpp_options): When save-temps, pass -fpch-preprocess. - * doc/cppopts.texi: Document -fpch-preprocess. - * doc/invoke.texi (Precompiled Headers): Mention that - -fpreprocessed is safe for PCH. Mention that if an option is - listed as safe that doesn't mean it does what you expect. - -2004-06-22 Ben Elliston - - * tree-ssa.c (ssa_redirect_edge): Correct leading comment. - -2004-06-21 Richard Kenner - - * Makefile.in (gimplify.o): Add cgraph.h. - * alias.c (adjust_offset_for_component_ref): Use - component_ref_field_offset. - * c-decl.c (build_array_declarator): Add news args for ARRAY_REF. - * c-gimplify.c (gimplify_expr_stmt): Use alloc_stmt_list. - (gimplify_decl_stmt): Call gimplify_type_sizes for type. - For decl, call gimplify_one_sizepos and use statement list. - (gimplify_compound_literal_expr): New arg PRE_P. - Add statement to PRE_P list and return DECL. - (c_gimplify_expr, case COMPOUND_LITERAL_EXPR): Add arg to - gimplify_compound_literal_expr. - * c-tree.h (getdecls): Deleted. - * c-typeck.c (build_component_ref): Add operand for COMPONENT_REF. - (build_array_ref): Add two operands for ARRAY_REF. - (build_unary_op): Set TREE_INVARIANT and TREE_CONSTANT for - COMPOUND_LITERAL_EXPR. - * coverage.c (tree_coverage_counter_ref): Add new operands - for ARRAY_REF. - * emit-rtl.c (component_ref_for_mem_expr): Add new operand - for COMPONENT_REF. - (set_mem_attributes_minus_bitpos): Use array_ref_low_bound - and array_ref_element_size. - (widen_memory_access):Use component_ref_field_offset. - * explow.c (update_nonlocal_goto_save_area): Add two operands - for ARRAY_REF. - * expr.c (array_ref_element_size, array_ref_low_bound): New functions. - (component_ref_field_offset): Likewise. - (get_inner_reference): Use them. - (expand_expr_real_1, case ARRAY_REF): Use array_ref_low_bound. - * fold-const.c (fold, case EQ_EXPR): Properly handle DECL_SIZE. - (fold_read_from_constant_string): Use array_ref_low_bound. - Verify that result is a character type. - (build_fold_indirect_ref): Add two operands for ARRAY_REF. - * function.c (expand_function_start): Likewise. - * gimple-low.c (expand_var_p): Delete duplicated line. - * gimplify.c: Add static decls for local functions. - (cgraph.h): Now included. - (create_tmp_var): Remove check for ARRAY_TYPE. - (copy_if_shared_r): Look at bounds and sizes of types. - (build_and_jump): Return alloc_stmt_list instead of build_empty_stmt. - (gimplify_exit_expr, shortcut_cond_expr): Likewise. - (gimplify_save_expr, gimple_push_cleanup): Likewise. - (gimplify_init_constructor): Likewise. - WANT_VALUE now bool. - If empty list with no result wanted, return GS_UNHANDLED. - Add additional operands for ARRAY_REF and COMPONENT_REF. - (canonicalize_component_ref): Convert to &array[L]. - (gimplify_array_ref_to_plus): Use array_ref_element_size and - array_ref_lower_bound. - (build_addr_expr_with_type, build_addr_expr): New functions. - (gimplify_compound_lval): WANT_LVALUE now bool. - Major rework to allow handle_component_p and initialize and - gimplify new operands for ARRAY_REF, ARRAY_RANGE_REF, and - COMPONENT_REF. - (gimplify_array_ref): Deleted. - (gimplify_self_mod_expr): WANT_VALUE now bool. - (gimplify_modify_expr): Gimplify to_p and from_p later. - Factor out code into gimplify_modify_expr_rhs and call twice. - Move variable-size code earlier and handle PLACEHOLDER_EXPR. - (gimplify_modify_expr_rhs, gimplify_variable_sized_compare): New fns. - (gimplify_addr_expr, case VIEW_CONVERT_EXPR): New case. - (gimplify_expr, case ARRAY_REF): Delete special case. - Instead handle like COMPONENT_REF; also do ARRAY_RANGE_REF, - IMAGPART, and REALPART the same way. - (gimplify_expr, case VIEW_CONVERT_EXPR): New case. - (gimplify_expr): Call gimplify_variable_sized_compare if applicable. - Call alloc_stmt_list instead of build_empty_stmt. - Deal with _REF that's volatile. - (gimplify_type_sizes, gimplify_one_sizepos): New functions. - (unshare_body, unvisit_body): New functions. - (gimplify_body): Call them. - * stmt.c (expand_stack_alloc): Don't expand TYPE_MAX_VALUE. - * stor-layout.c (get_pending_sizes): Don't change SAVE_EXPR_CONTEXT. - * tree-alias-common.c (get_alias_var): Also skip ARRAY_RANGE_REF. - * tree-cfg.c (tree_node_can_be_shared): Treat ARRAY_RANGE_REF - like ARRAY_REF. - (verify_expr, case ADDR_EXPR): Use handled_component_p. - * tree-dfa.c (get_virtual_var): Likewise. - * tree-dump.c (dequeue_and_dump, case COMPONENT_REF, ARRAY_REF): - New cases to dump new operands; likewise for ARRAY_RANGE_REF. - * tree-eh.c (tree_could_trap, case ARRAY_RANGE_REF): Like ARRAY_REF. - * tree-gimple.c (is_gimple_addr_expr_arg): Add ARRAY_RANGE_REF - and INDIRECT_REF. - (get_base_address): Use handled_component_p. - * tree-gimple.h (gimplify_type_sizes, gimplify_one_sizepos): New. - * tree-inline.c (walk_tree): Walk more things for types and decls. - * tree-mudflap.c (mf_build_check_statement_for): Add new operands - for ARRAY_REF and COMPONENT_REF. - (mx_xform_derefs_1): Clean up usage of decl sizes. - * tree-nested.c (build_addr): Use handled_component_p. - (walk_stmts, case CATCH_EXPR): Add missing "break". - (get_static_chain, get_frame_field): Add new operand for COMPONENT_REF. - (finalize_nesting_tree_1): Likewise. - (convert_nonlocal_reference, case ARRAY_RANGE_REF): Like ARRAY_REF - and process additional operands. - (convert_local_reference): Likewise. - * tree-outof-ssa.c (discover_nonconstant_array_refs_r): Treat - ARRAY_RANGE_REF similarly to ARRAY_REF. - * tree-pretty-print.c (dump_generic_node, case QUAL_UNION_TYPE): Handle - like RECORD_TYPE. - (dump_generic_node, case COMPONENT_REF): Print offset operand. - (dump_generic_node, case ARRAY_RANGE_REF): Treat like ARRAY_REF - and print lower bound and element size for both. - (op_prio, case ARRAY_RANGE_REF): Like ARRAY_REF. - * tree-sra.c (csc_build_component_ref): Add new operand. - (scalarize_call_expr): Use get_base_address. - * tree-ssa-ccp.c (widen_bitfield): Clean up size handling. - (maybe_fold_offset_to_array_ref): Rework to handle input having an - ARRAY_REF, refine handling of lower bound, and add new operands - for ARRAY_REF. - (maybe_fold_to_component_ref): Add new operand for COMPONENT_REF. - (maybe_fold_stmt_indirect): Only fold *&B to B if types match. - (maybe_fold_stmt_addition): Only handle constant lower bound. - * tree-ssa-operands.c (get_expr_operands): Minor rearrangements. - Treat ARRAY_REF and ARRAY_RANGE_REF the same; look at extra operands. - Look at new offset operand of COMPONENT_REF. - * tree-ssa.c (set_is_used): Use handled_component_p. - * tree.c (substitute_in_expr, case COMPONENT_REF): Add new operand. - (stabilize_reference, case COMPONENT_REF): Likewise. - (stabilize_reference, case ARRAY_RANGE_REF, ARRAY_REF): Similarly. - (recompute_tree_invariant_for_addr_expr): Completely rework to - be more precise. Also set TREE_SIDE_EFFECTS. - (build1_stat, case ARRAY_EXPR): Don't handle TREE_SIDE_EFFECTS here. - (build2_stat, build3_stat, build4_stat): For references, - propagate TREE_THIS_VOLATILE. - (get_unwidened): Add new operand for COMPONENT_REF. - (get_narrower): Likewise; use host_integerp for DECL_SIZE. - * tree.def (COMPONENT_REF): Add new operand. - (ARRAY_REF, ARRAY_RANGE_REF): Add two new operands. - * tree.h (array_ref_element_size, array_ref_low_bound): New decls. - (component_ref_field_offset): Likewise. - * config/alpha/alpha.c (alpha_va_start): Add new op for COMPONENT_REF. - (alpha_gimplify_va_arg): Likewise. - * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise. - * config/i860/i860.c (i860_va_start, i860_va_arg): Likewise. - * config/iq2000/iq2000.c (iq2000_va_arg): Likewise. - * config/mips/mips.c (mips_va_start, mips_va_arg): Likewise. - * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg): - Likewise. - * config/s390/s390.c (s390_va_start, s390_gimplify_va_arg): Likewise. - * config/sh/sh.c (sh_va_start, sh_va_arg): Likewise. - * config/stormy16/stormy16.c (xstormy1_expand_builin_va_start): - Likewise. - (xstormy16_expand_builtin_va_arg): Likewise. - * config/xtensa/xtensa.c (xtensa_va_start, xtensa_va_arg): Likewise. - * objc/objc-act.c (generate_static_references): Likewise. - (generate_strings, build_method_prototype_list_template): Likewise. - (generate_protocol_list): Likewise. - -2004-06-21 John David Anglin - - PR rtl-optimization/14782 - * pa.c (emit_move_sequence): Use SFmode for 4-byte modes when doing - the address checks for secondary reloads for loads from and stores - to floating-point registers. - * pa.h (EXTRA_CONSTRAINT, case T): Use SFmode for 4-byte modes - in the address check. Move work around for ELF32 targets to - GO_IF_LEGITIMATE_ADDRESS. - (GO_IF_LEGITIMATE_ADDRESS): Require constant offsets to be - correctly aligned for DImode loads and stores. Don't allow long - SFmode displacements on ELF32. - -2004-06-21 Richard Henderson - - PR rtl-opt/16114 - * cse.c (merge_equiv_classes): Also rehash in response to - delete_reg_equiv changes. - (rehash_using_reg): Don't exclude REGs from rehashing. - -2004-06-21 Richard Henderson - - * c-common.def (RETURN_STMT): Remove. - * c-common.h (RETURN_STMT_EXPR): Remove. - (c_expand_return, build_return_stmt): Remove. - (c_common_stmt_codes): Remove RETURN_STMT. - * c-dump.c (dump_next_stmt): Remove. - (c_dump_tree): Remove RETURN_STMT. - * c-decl.c (finish_function): Use c_finish_return. - * c-parse.in (stmt): Likewise. - * c-gimplify.c (gimplify_return_stmt): Remove. - (c_gimplify_expr): Remove RETURN_STMT. - * c-pretty-print.c (pp_c_statement): Likewise. - * c-semantics.c (build_return_stmt): Remove. - * c-tree.h (c_finish_return): Declare. - * c-typeck.c (c_finish_return): Rename from c_expand_return. - Return void. Build RETURN_EXPR directly. - * tree-dump.h (dump_next_stmt): Remove. - -2004-06-21 Zack Weinberg - - * c-decl.c (start_function): Don't call make_decl_rtl. Don't - look at TREE_ADDRESSABLE of symbol name. - -2004-06-21 Kelley Cook - - PR target/15551 - * config/i386/i386.md: Change UNSPEC_STACK_PROBE to UNSPECV_STACK_PROBE. - (allocate_stack_worker): Make unspec_volatile. - (allocate_stack_worker_rex64): Likewise. - (allocate_stack_worker_postreload): Likewise. - (allocate_stack_worker_rex64_postreload): Likewise. - -2004-06-21 Daniel Berlin - - Fix PR optimization/15982 - * tree-ssa-pre.c: Update a few comments and todos to - reflect constants change. - (get_value_handle): Constants now value number to themselves. - (lookup): Constants lookup to themselves. - (add_to_value): Adjust to always be on. - (set_contains_value): Adjust for constants change. - (find_leader): Ditto. - (phi_translate): 'r' nodes are never ANTIC right now. - (valid_in_set): Ditto. - (get_expr_set): New function. - (find_or_generate_expression): New function, broken out from - insert_aux. - (create_expression_by_pieces): Ditto, plus additional - machinery to handle complex values. - (compute_avail): Remove dead RETURN_EXPR handling. - -2004-06-21 Steven Bosscher - - * config/i386/i386.c: Include insn-codes.h - * config/i386/i386.h (FLAGS_REG, FPSR_REG, DIRFLAG_REG): Don't - define here. - * config/i386/i386.md (BP_REG, SP_REG, FLAGS_REG, FPSR_REG, - DIRFLAG_REG): New define_constants. Use them everywhere. - -2004-06-21 Kaz Kojima - - * config/sh/t-linux (MULTILIB_OPTIONS): Remove. - -2004-06-21 J"orn Rennecke - - * sh.h (SUPPORT_SH1, SUPPORT_SH2E, SUPPORT_SH4): Conditionally define. - (SUPPORT_SH4_SINGLE): Likewise. - (TARGET_SWITCHES): Break out switches for cpu subtargets: - (TARGET_SWITCH_SH1, TARGET_SWITCH_SH2, TARGET_SWITCH_SH2E): Define. - (TARGET_SWITCH_SH3, TARGET_SWITCH_SH3E): Likewise. - (TARGET_SWITCH_SH4_SINGLE_ONLY, TARGET_SWITCH_SH4_SINGLE): Likewise. - (TARGET_SWITCH_SH4_NOFPU, TARGET_SWITCH_SH4): Likewise. - (TARGET_SWITCH_SH5_64MEDIA, TARGET_SWITCH_SH5_64MEDIA_NOFPU): Likewise. - (TARGET_SWITCHES_SH5_32MEDIA): Likewise. - (TARGET_SWITCHES_SH5_32MEDIA_NOFPU): Likewise. - (SELECT_SH5_64, SELECT_SH5_64_NOFPU): Rename to: - (SELECT_SH5_64MEDIA, SELECT_SH5_64MEDIA_NOFPU) - (SELECT_SH5_32, SELECT_SH5_32_NOFPU): Rename to: - (SELECT_SH5_32MEDIA, SELECT_SH5_32MEDIA_NOFPU). - (SH_MULTILIB_CPU_DEFAULT, MULTILIB_DEFAULTS): Define. - (ASM_ISA_SPEC_DEFAULT, ASM_ISA_DEFAULT_SPEC): Likewise. - * sh64.h (ASM_SPEC, LINK_DEFAULT_CPU_EMUL): Don't redefine. - (TARGET_DEFAULT): Likewise. - * config/sh/t-elf: Amend comment. - * config/sh/t-1e, config/sh/t-mlib-sh1: New files. - * config/sh/t-mlib-sh2, config/sh/t-mlib-sh2e: Likewise. - * config/sh/t-mlib-sh3, config/sh/t-mlib-sh3e: Likewise. - * config/sh/t-mlib-sh4, config/sh/t-mlib-sh4-nofpu: Likewise. - * config/sh/t-mlib-sh4-single: Likewise. - * config/sh/t-mlib-sh4-single-only: Likewise. - * config/sh/t-mlib-sh5-32media: Likewise. - * config/sh/t-mlib-sh5-32media-nofpu: Likewise. - * config/sh/t-mlib-sh5-64media: Likewise. - * config/sh/t-mlib-sh5-64media-nofpu: Likewise. - * config/sh/t-mlib-sh5-compact: Likewise. - * config/sh/t-mlib-sh5-compact-nofpu: Likewise. - * config/sh/t-sh: (MULTILIB_ENDIAN): Add mb. - (MULTILIB_CPUS): Define. - (MULTILIB_OPTIONS): Use MULTILIB_CPUS. - (MULTILIB_MATCHES): Use some shell code to calculate it. - (MULTILIB_EXCEPTIONS): Change to ml/m1. - * config/sh/elf.h (SUBTARGET_ASM_ISA_SPEC): Use ASM_ISA_DEFAULT_SPEC. - * config/sh/netbsd-elf.h: Update code which sets TARGET_VERSION_CPU. - (LINK_DEFAULT_CPU_EMUL): Don't redefine. - (NO_PROFILE_COUNTERS): Define to 1. - * config/sh/t-netbsd (MULTILIB_OPTIONS): Don't append to. - (MULTILIB_DIRNAMES, MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Don't zap. - * config/sh/t-netbsd-sh5-64 (MULTILIB_OPTIONS): Don't redefine. - (MULTILIB_MATCHES): Don't zap. - (MULTILIB_DIRNAMES): Use MULTILIB_RAW_DIRNAMES. - * config/sh/t-sh64 (MULTILIB_OPTIONS): Don't redefine. - (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Don't zap. - (MULTILIB_RAW_DIRNAMES): Define. - (MULTILIB_DIRNAMES): Use it. - * config.gcc: Also set cpu_type / need_64bit_hwint for sh[be]*-*-*. - (sh*linux configurations): Merge into: - (sh*elf / sh*kaos configurations). Support --with-endian, --with-cpu, - --with-multilib-list options. Support sh-superh-elf configuration. - (sh*-netbsd*): Use SELECT_SH* macros. - (supported_defaults): sh[123456ble]-*-* | sh-*-* support "cpu". - Merge sh*-*-netbsd* configurations into sh-elf configurations. - * config/sh/t-netbsd-sh5, config/sh/t-be, config/sh/t-le: Delete. - * config/sh/t-monolib: Likewise. - -2004-06-21 Paul Brook - - * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Soft-float need - not imply FPA. - -2004-06-21 Roger Sayle - - * fold-const.c (operand_equal_p): Pass flags in recursive calls for - binary and relational operations. Add support for TRUTH_ANDIF_EXPR, - TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR and TRUTH_XOR_EXPR. - * tree.c (commutative_tree_code): Also list UNORDERED_EXPR, - ORDERED_EXPR, UNEQ_EXPR, LTGT_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR - and TRUTH_XOR_EXPR. - -2004-06-21 Paolo Bonzini - - * rtlanal.c (may_trap_p): Mark LTGT as trapping. - -2004-06-21 Joseph S. Myers - - * tree-alias-common.h (struct tree_alias_ops): Change ip and - ip_partial to unsigned int. - -2004-06-21 Richard Henderson - - * c-common.c (verify_sequence_points): Export. - (c_expand_expr_stmt): Move to c-typeck.c. - * c-common.h (c_expand_expr_stmt): Remove. - (verify_sequence_points): Declare. - * c-mudflap.c (mflang_flush_calls): Use c_finish_expr_stmt. - * c-parse.in (for_init_stmt, stmt): Likewise. - * c-tree.h (c_finish_expr_stmt): Declare. - (c_tree_expr_nonnegative_p): Remove. - * c-typeck.c (c_tree_expr_nonnegative_p): Remove. - (build_conditional_expr, build_binary_op): Use tree_expr_nonnegative_p. - (emit_side_effect_warnings): New. - (c_finish_expr_stmt): Rename from c_expand_expr_stmt. Use it. - (c_finish_stmt_expr): Work without EXPR_STMT. Handle eh regions. - Use emit_side_effect_warnings. - (push_cleanup): Copy STATEMENT_LIST_STMT_EXPR. - * fold-const.c (tree_expr_nonnegative_p): Handle TARGET_EXPR. - * gimplify.c (gimplify_modify_expr): Don't discard TARGET_EXPR - with void initializer. - (gimplify_target_expr): Handle void BIND_EXPR initializer. - * tree-inline.c (estimate_num_insns_1): Fix type lookup for - INIT_EXPR and MODIFY_EXPR. - * objc/objc-act.c (build_module_descriptor): Use add_stmt - instead of c_expand_expr_stmt. - -2004-06-21 Paolo Bonzini - - * fold-const.c (fold_cond_expr_with_comparison): - New function, extracted from fold. - (fold): Extract code to fold A op B ? A : C, use - it to fold A op B ? C : A. Really optimize - A & N ? N : 0 where N is a power of two. Avoid - relying on canonicalization and recursion for - foldings of COND_EXPR to happen. - -2004-06-20 David Ayers - - * objc/objc-act.h (get_object_reference): Rename to - get_protocol_reference. - (super_type): Rename to objc_super_type. - (selector_type): Rename to objc_selector_type. - (id_type): Rename to objc_id_type. - (instance_type): Rename to objc_instance_type. - (protocol_type): Rename to objc_protocol_type. - (IS_ID): Update reference to id_type. - * objc/objc-act.c (get_object_reference): Rename to - get_protocol_reference; add documentation; update references to - id_type. - (lookup_method_in_protocol_list): Rename class_meth to - is_class; add documentation. - (finish_message_expr): Rename is_class to class_tree. - (synth_module_prologue, objc_is_object_ptr, objc_build_exc_ptr, - next_sjlj_build_try_catch_finally, objc_begin_catch_clause, - build_next_objc_exception_stuff, get_arg_type_list, - build_objc_method_call): Update references to id_type. - (synth_module_prologue, build_objc_symtab_template, - build_selector_reference_decl, build_selector, - build_selector_translation_table, build_typed_selector_reference, - get_arg_type_list, synth_self_and_ucmd_args, get_arg_type_list, - synth_self_and_ucmd_args): Update references to selector_type. - (build_private_template, build_ivar_reference): Update references - to instance_type. - (synth_module_prologue, build_protocol_reference, - build_protocol_expr, start_protocol): Update references to - protocol_type. - (synth_module_prologue, get_arg_type_list, build_objc_method_call): - Update references to super_type. - * c-parse.in: (typespec_nonreserved_nonattr): Update - references to get_object_reference. - * objc/objc-tree.def: Add C mode identifier sequence. - -2004-06-20 Zdenek Dvorak - - * loop-invariant.c: New file. - * Makefile.in (loop-invariant.o): New. - * cfgloop.h (global_cost_for_size, init_set_costs, - move_loop_invariants): Declare. - * cfgloopanal.c (seq_cost, init_set_costs, global_cost_for_size): New - functions. - (avail_regs, res_regs, small_cost, pres_cost, spill_cost): New - variables. - * common.opt (floop-optimize2, fmove-loop-invariants): New options. - * loop-init.c (loop_optimizer_init): Call init_set_costs. - * passes.c (rest_of_handle_loop2): Call move_loop_invariants. - (rest_of_compilation): Check flag_loop_optimize2. - * toplev.c (process_options): Handle flag_loop_optimize2. - * doc/invoke.texi (-floop-optimize2, -fmove-loop-invariants): Document. - * doc/passes.texi (loop-invariant.c): Document. - -2004-06-20 Zdenek Dvorak - - * tree-ssa-pre.c (compute_antic): Keep BB_VISITED flag zeroed. - -2004-06-20 Richard Henderson - - * stmt.c (warn_if_unused_value): Add locus argument. - * tree.h (warn_if_unused_value): Update decl. - * c-typeck.c (internal_build_compound_expr): Update call. - * c-gimplify.c (gimplify_expr_stmt): Likewise. - -2004-06-20 Andrew Pinski - - PR middle-end/16089 - * builtins.c (entry_of_function): Move to ... - * cfgrtl.c (entry_of_function): Here and make non-static. - * integrate.c (emit_initial_value_sets): Use entry_of_function. - * rtl.h (entry_of_function): Prototype. - -2004-06-20 Roger Sayle - - * config/i386/i386.c (pentium4_cost): Increase "lea" cost from 1 to 3. - (ix86_rtx_costs) : Consider ix86_cost->lea even when - TARGET_DECOMPOSE_LEA. - -2004-06-20 Richard Henderson - - * c-common.h (add_decl_stmt): Move to cp-tree.h. - * c-decl.c (finish_decl): Don't use add_decl_stmt. - * c-parse.in: Likewise. - * c-gimplify.c (gimplify_expr_stmt): Don't build CLEANUP_POINT_EXPR. - (gimplify_c_loop, gimplify_return_stmt, gimplify_decl_stmt): Likewise. - * c-semantics.c (add_decl_stmt): Move to cp/semantics.c. - -2004-06-20 Richard Henderson - - * c-common.def (IF_STMT, CLEANUP_STMT): Move to cp-tree.def. - * c-common.h (IF_COND, THEN_CLAUSE, ELSE_CLAUSE, CLEANUP_BODY, - CLEANUP_EXPR, CLEANUP_DECL): Move to cp-tree.h. - (c_common_stmt_codes): Remove IF_STMT, CLEANUP_STMT. - * c-dump.c (c_dump_tree): Move IF_STMT, CLEANUP_STMT to cp_dump_tree. - * c-pretty-print.c (pp_c_statement): Similarly. - * c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts, - gimplify_if_stmt): Move to cp-gimplify.c. - (c_genericize, c_gimplify_expr): Don't call them. - * c-semantics.c (push_cleanup): Move to cp/semantics.c. - * c-typeck.c (push_cleanup): New. - (c_begin_if_stmt, c_finish_if_cond, c_finish_then, c_finish_else, - c_finish_if_stmt): Use COND_EXPR. - * tree.h (CLEANUP_EH_ONLY): Update documentation. - -2004-06-20 Zack Weinberg - - * c-common.h (has_c_linkage): New interface. - * c-cppbuiltin.c: Include target.h. - (c_cpp_builtins): Define __PRAGMA_REDEFINE_EXTNAME and - __PRAGMA_EXTERN_PREFIX when appropriate. - * c-pragma.c: Include target.h. - Document clarified semantics of symbol-renaming #pragmas. - (handle_pragma_redefine_extname, handle_pragma_extern_prefix) - (maybe_apply_renaming_pragma): Rewrite according to clarified - semantics. Always recognize, but do not necessarily execute. - (init_pragma): Unconditionally register symbol-renaming pragmas. - * system.h: Poison HANDLE_PRAGMA_REDEFINE_EXTNAME - and HANDLE_PRAGMA_EXTERN_PREFIX. - * target.h (struct gcc_target): Add handle_pragma_redefine_extname - and handle_pragma_extern_prefix flags. - * target-def.h: Add defaults for TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME - and TARGET_HANDLE_PRAGMA_EXTERN_PREFIX. - * Makefile.in (c-pragma.o, c-cppbuiltin.o): Update dependencies. - * config/sol2.h: Define TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME, - not HANDLE_PRAGMA_REDEFINE_EXTNAME. - (TARGET_OS_CPP_BUILTINS): No need to define __PRAGMA_REDEFINE_EXTNAME. - (TRANSFER_FROM_TRAMPOLINE): Prototype mprotect. - * config/alpha/osf.h: Define TARGET_HANDLE_PRAGMA_EXTERN_PREFIX, - not HANDLE_PRAGMA_EXTERN_PREFIX. - (TARGET_OS_CPP_BUILTINS): No need to define __PRAGMA_EXTERN_PREFIX. - * doc/extend.texi (Solaris Pragmas, Tru64 Pragmas): Combine - into one section "Symbol-Renaming Pragmas"; clarify; document - adjusted semantics. - - * builtins.c (expand_builtin): Do not issue error for a builtin - with no special case code and no DECL_ASSEMBLER_NAME; just do the - library call. - * c-decl.c (builtin_function): Don't call make_decl_rtl. - * c-objc-common.c (has_c_linkage): Stub implementation. - * cgraphunit.c (cgraph_expand_function) - (cgraph_remove_unreachable_nodes): Don't clear DECL_ARGUMENTS. - -2004-06-19 Roger Sayle - - * builtins.c (fold_builtin_unordered_cmp): Take an EXP argument - instead of both an ARGLIST and a result TYPE. Handle these C99 - comparison functions as "polymorphic" builtins. Also handle - lowering of BUILT_IN_ISUNORDERED to an UNORDERED_EXPR tree node. - (fold_builtin_1): Update calls to fold_builtin_unordered_cmp. - Move handling of BUILT_IN_ISUNORDERED from here to there. - -2004-06-19 Richard Henderson - - * c-common.c, c-common.h (lang_gimplify_stmt): Remove. - * c-gimplify.c: Remove unnecessary prototypes. - (c_gimplify_stmt): Merge into ... - (c_gimplify_expr): ... here. Don't play with prep_stmt. - * c-semantics.c (prep_stmt): Remove. - * gimplify.c (annotate_one_with_locus): Break out from ... - (annotate_all_with_locus): ... here. - (gimplify_expr): Add locus to expressions even if pre/post queues - are not present. - -2004-06-19 Richard Henderson - - PR target/15941 - * function.c (assign_parms): If not padding upward or intentionally - forcing upward padding, take offset_rtx into account when determining - the alignment for stack_parm. - -2004-06-19 Richard Henderson - - PR target/15550 - * ifcvt.c (noce_try_move): Recognize all generated instructions. - -2004-06-19 Jan Hubicka - - * function.c (free_after_compilation): Do not free computed_goto_common*. - * function.h (struct function): Kill computed_goto_common*. - * stmt.c (expand_computed_goto): Do not commonize the computed gotos. - * tree-cfg.c (disband_implicit_edges): Do not forward across the - commonized computed goto. - -2004-06-19 John David Anglin - - * doc/invoke.texi: Remove obsolete comment regarding PA 2.0 support - in binutils. - -2004-06-19 Andrew Pinski - - PR c++/15721 - * toplev.c (wrapup_global_declarations): Do not check - TREE_SYMBOL_REFERENCED of the DECL_ASSEMBLER_NAME but check - cgraph_varpool_node's needed field. - -2004-06-19 Jan Hubicka - Steven Bosscher - - CFG transparent RTL expansion: - * Makefile.in (cfgexpand.o): New object file. - (builtins.o): Add dependency on basic-block.h - * builtins.c: Include basic-block.h - (entry_of_function): New function. - (expand_builtin_apply_args, expand_builtin_saveargs): Use it. - * cfgexpand.c: New file. - * expr.c (execute_expand, pass_expand): Kill. - * pass.c (rest_of_compilation): Do not build CFG unless called from - coverage code. - * tree-cfg.c (delete_tree_cfg): Rename to.. - (delete_tree_cfg_annotations): ... this one; Do not remove the CFG itself. - * tree-flow.h (delete_tree_cfg_annotations): Declare. - (dleete_tree_cfg): Kill. - * tree-optimize.c (execute_rebuild_bind, pass_rebuild_bind): Kill. - (execute_del_cfg): Rename to... - (execute_free_datastructures): This one... - (pass_del_cfg): Rename to... - (pass_free_datastructures): ... this one; Do not kill PROP_cfg. - (init_tree_optimization_passes): Make cfg build and profiling to happen - unconditionally. - -2004-06-19 Steven Bosscher - - * tree-mudflap.c (mf_decl_cache_locals): Skip labels before - inserting the cache variables. - - * tree-mudflap.c: Include headers to make basic_block available. - Move functions around such that related functions are near each - other. Add prototypes for all static functions. Add comments - briefly explaining what IR the mudflap1 and mudflap2 work on and - what they do. - (mudflap_function_decls): Rename to execute_mudflap_function_decls. - (mudflap_function_ops): Rename to execute_mudflap_function_ops. - (pass_mudflap_1, pass_mudflap_2): Update. - (mf_decl_cache_locals): Make it work on the CFG instead of the saved - function tree. - (mf_build_check_statement_for): Make it work on the CFG. - (mf_xform_derefs_1): Likewise. Cleanup code style. - (mf_xform_derefs): Likewise. - -2004-06-19 Jan Hubicka - - * tree-cfg.c (label_to_block): Invent the label destination for - undefined labels. - (cleanup_dead_labels): Update table in the case label_to_block added - new label. - -2004-06-18 Richard Henderson - - PR c++/16036 - * gimple-low.c (lower_function_body): Generate return statement for - fall off the end of the function here ... - * tree-cfg.c (make_edges): ... instead of here. - * gimplify.c (gimplify_return_expr): Mark return temp TREE_NO_WARNING. - -2004-06-18 Zdenek Dvorak - - * tree-ssa.c (raise_value): Removed. - (get_eq_name, check_phi_redundancy): New functions. - (kill_redundant_phi_nodes): Use standard ssa minimalization algorithm. - -2004-06-18 Roger Sayle - - * fold-const.c (fold) : Add - constant folding for unordered comparison tree nodes. If both - operands are real constants, call fold_relational_const. If either - operand is a NaN, evaluate the other for side-effects and return a - constant. Optimize (double)float1 CMP (double)float2 into the - equivalent float1 CMP float2. - (nondestructive_fold_binary_to_constant) : Call fold_relational_const for constant operands. - (fold_relational_const): Add support for unordered comparison tree - nodes. Don't constant fold "ordered" floating point comparisons - against NaN if when flag_trapping_math is set. - -2004-06-19 Jakub Jelinek - - * fold-const.c (build_range_check): If !in_p and recursive call - fails, exit immediately. If high - low overflows and etype is - a signed type, retry with unsigned etype. - (merge_ranges): If !in0_p and !in1_p, handle even range2 adjacent - to range1 at TYPE_MAX_VALUE and TYPE_MIN_VALUE. - -2004-06-18 Richard Henderson - - * c-gimplify.c (gimplify_condition): Remove. - (gimplify_c_loop, gimplify_if_stmt, gimplify_switch_stmt): Don't - call it. - -2004-06-18 Richard Henderson - - * tree-eh.c (decide_copy_try_finally): Fix scaling of copy and - switch estimates. - -2004-06-18 Andrew Pinski - - * config/i386/darwin.h (HOT_TEXT_SECTION_NAME): Define. - (NORMAL_TEXT_SECTION_NAME): Define. - (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define. - (SECTION_FORMAT_STRING): Define. - -2004-06-18 Steven Bosscher - - * config/xtensa/xtensa.c - (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define. - * xtensa.md: Replace the old pipeline description with a DFA model. - -2004-06-18 Steven Bosscher - Ulrich Weigand - - * config/s390/s390.md: Remove the generic pipeline description. - * config/s390/2064.md: Make all insn reservations apply to - the z900, g5 and g6. - * config/s390/s390.c (s390_use_dfa_pipeline_interface): Remove. - (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): - Define to hook_int_void_1. - (s390_adjust_cost): Cleanup. Don't check address dependency here. - (s390_first_cycle_multipass_dfa_lookahead): Always return 4. - -2004-06-18 Daniel Berlin - Diego Novillo - - * tree-dfa.c (create_var_ann): tree_ann -> tree_ann_t. - (create_stmt_ann): Ditto. - (create_tree_ann): New function. - (create_cst_ann): Remove. - (create_expr_ann): Ditto. - - * tree-flow-inline.h (cst_ann): Remove. - (get_cst_ann): Ditto. - (get_expr_ann): Ditto. - (expr_ann): Ditto. - (get_tree_ann): New function. - (tree_ann): Ditto. - (ann_type): tree_ann -> tree_ann_t. - * tree-flow.h (tree_ann_type): CST_ANN, EXPR_ANN removed. - (struct cst_ann_d): Removed. - (struct expr_ann_d): Ditto. - (union tree_ann_d): Removed cst and expr. - (tree_ann): Renamed to tree_ann_t. - * tree-ssa-ccp.c (set_rhs): tree_ann -> tree_ann_t. - * tree-ssa-pre.c (get_value_handle): Rewrite for single common - annotation. - (set_value_handle): Ditto. - (phi_translate): Ditto. - * tree-tailcall.c (adjust_return_value): tree_ann -> tree_ann_t. - -2004-06-18 Kaz Kojima - - * config/sh/t-linux64: New file. - * config.gcc: Add it to tmake_file for sh64*-*-linux*. - -2004-06-18 Paolo Bonzini - - * emit-rtl.c (unshare_all_rtl_1): New name of unshare_all_rtl. - (unshare_all_rtl_again): Call unshare_all_rtl_1. - (unshare_all_rtl): New. - * function.c (instantiate_virtual_regs): Remove parameters. - * function.h (instantiate_virtual_regs): Add prototype. - * rtl.h (unshare_all_rtl): Add prototype. - * tree.h (instantiate_virtual_regs, unshare_all_rtl): Remove - prototype. - * passes.c: Remove assertions on the parameters to - rest_of_handle_* functions. Remove the parameters to - the functions, replacing decl with current_function_decl - and insns with get_insns (). - -2004-06-17 Roger Sayle - - * fold-const.c (constant_boolean_node): Handle boolean_type_node - directly, return either boolean_true_node or boolean_false_node. - -2004-06-18 Kelley Cook - - * opts.sh: Delete. Break out generated code to next four files. - * opt-gather.awk: New file. - * optc-gen.awk: New file. - * opth-gen.awk: New file. - * opt-functions.awk: New common file. - * Makefile.in: Update for above. - * configure.ac: Update comment. - * configure: Regenerate. - -2004-06-17 Richard Henderson - - * c-common.c (flag_objc_sjlj_exceptions): New. - * c-common.h (flag_objc_sjlj_exceptions): Declare. - * c-opts.c (c_common_handle_option): Set it. - (c_common_post_options): Handle interation of different - objective-c exception and runtime switches. - * c-decl.c (c_eh_initialized_p): New. - (finish_decl): Use it instead of local eh_initialized_p. - * c-parse.in (nested_function, notype_nested_function): Record - the result of compstmt. - (compstmt_or_error): Likewise. - (compstmt): Don't add_stmt the result. - (stmt): Don't return anything. Rewrite objc try and sync rules. - (objc_try_stmt, objc_catch_list): Remove. - (objc_catch_block, objc_finally_block): Remove. - (objc_catch_prefix, objc_catch_clause, objc_opt_catch_list): New. - (objc_try_catch_clause, objc_finally_clause): New. - (objc_try_catch_stmt): Rewrite. - * c-tree.h (c_eh_initialized_p): Declare. - * c-opt (fobjc-sjlj-exceptions): New. - * except.c (output_function_exception_table): Don't call cgraph - on non-decls. - * objc/objc-act.c (UTAG_EXCDATA_VAR, UTAG_CAUGHTEXC_VAR, - UTAG_RETHROWEXC_VAR, UTAG_EVALONCE_VAR, struct val_stack, - catch_count_stack, exc_binding_stack, if_nesting_count, - blk_nesting_count, objc_enter_block, objc_exit_block, - objc_declare_variable, val_stack_push, val_stack_pop, - objc_build_try_enter_fragment, objc_build_extract_expr, - objc_build_try_exit_fragment, objc_build_extract_fragment, - objc_build_try_prologue, objc_build_try_epilogue, - objc_build_catch_stmt, objc_build_catch_epilogue, - objc_build_finally_prologue, objc_build_finally_epilogue, - objc_build_try_catch_finally_stmt, objc_build_synchronized_prologue, - objc_build_synchronized_epilogue): Remove. - (objc_create_temporary_var, struct objc_try_context, cur_try_context, - objc_eh_runtime_type, objc_init_exceptions, objc_build_exc_ptr, - next_sjlj_build_try_exit, next_sjlj_build_enter_and_setjmp, - next_sjlj_build_exc_extract, next_sjlj_build_catch_list, - next_sjlj_build_try_catch_finally, objc_begin_try_stmt, - objc_begin_catch_clause, objc_finish_catch_clause, - objc_build_finally_clause, objc_finish_try_stmt, - objc_build_synchronized): New. - (objc_is_object_id, objc_is_class_id): New. - (objc_comptypes): Use them. - (build_next_objc_exception_stuff): Break NeXT sjlj out from - build_objc_exception_stuff. - (synth_module_prologue): Update to match. - (objc_build_throw_stmt): Use cur_try_context to decide if - we're in a @catch. - * objc/objc-act.h: Update prototypes. - (OCTI_EXCEPTION_BLK_STACK, objc_exception_block_stack): Remove. - -2004-06-17 Andrew Pinski - - * c-typeck.c (tagged_types_tu_compatible_p ): - Use TYPE_FIELDS instead of TYPE_VALUES. - -2004-06-17 Jason Merrill - - PR c++/16015 - * gimplify.c (gimplify_target_expr): Handle void initializer. - * expr.c (expand_expr_real_1) [TARGET_EXPR]: Likewise. - * doc/c-tree.texi (Expression trees): Update TARGET_EXPR - and AGGR_INIT_EXPR. - -2004-06-17 Roger Sayle - - * fold-const.c (fold_relational_const): Use constant_boolean_node. - -2004-06-17 Jan Hubicka - - PR target/15433 - * i386.md (SSE SF cmov 0 splitter): The conditional is VOIDmode; fix - operand numbering in the output template. - (SSE DF cmov 0 splitter): The conditional is VOIDmode. - -2004-06-17 Jan Hubicka - - * except.c (can_throw_internal): Recognize RESX expresisons. - -2004-06-17 Jan Hubicka - - * cfgbuild.c (make_edges): Do not use label_value_list. - (find_basic_blocks_1): Do not collect label_value_list. - (find_sub_basic_blocks): Update call of make_edges. - -2004-06-17 Andrew MacLeod - - * tree-cfg.c (tree_make_forwarder_block): Use SET_PHI_RESULT. - * tree-flow-inline.h (get_use_op_ptr): Return a use_operand_p. - (get_use_from_ptr, get_def_from_ptr): New. Return operand pointers. - (get_def_op_ptr): Return a def_operand_p instead of a 'tree *'. - (get_v_may_def_result_ptr): Return a def_operand_p. - (get_v_may_def_op_ptr, get_vuse_op_ptr): Return a use_operand_p. - (get_v_must_def_op_ptr): Return a def_operand_p. - (get_phi_result_ptr): New. Return a pointer to the result of a PHI. - (get_phi_arg_def_ptr): New. Return a pointer to an argument of a PHI. - (phi_element_for_edge): Remove. - * tree-flow.h (propagate_value, replace_exp): Change prototype. - (propagate_tree_value): Add new prototype. - (phi_element_for_edge): Remove prototype. - * tree-into-ssa.c (mark_def_sites): Use new operand types. - (prepare_operand_for_rename): Split into two functions. - (prepare_use_operand_for_rename): Prepare use operands. - (prepare_def_operand_for_rename): Prepare def operands. - (rewrite_stmt): Use new operand types. - (rewrite_operand): Use new operand types, change parameter type. - * tree-outof-ssa.c (replace_variable): Split into two functions. - (replace_use_variable): Rewrite uses. - (replace_def_variable): Rewrite defs. - (rewrite_trees, rewrite_vars_out_of_ssa): Use new operand types. - * tree-phinodes.c (make_phi_node, resize_phi_node): Use new types. - (add_phi_arg, remove_phi_arg_num): Use new operand types. - * tree-ssa-ccp.c (substitute_and_fold): Use new operand types. - (ccp_fold, replace_uses_in): Use new operand types. - * tree-ssa-copy.c (replace_ssa_names): Rename to replace_ssa_names_ann - and no longer set the value, change parameter type. - (replace_exp_1): Use new operand types. - (propagate_value): Change parameter type, use new operand types. - (propagate_tree_value): Propagate_value without SSA operands. - (replace_exp, cprop_operand, cprop_into_stmt): Use new operand types. - (cprop_into_successor_phis): Use new operand types. - * tree-ssa-dom.c (thread_across_edge): Use new operand types. - (eliminate_redundant_computations): Use new operand types. - * tree-ssa-dse.c (fix_phi_uses): Use new operand_types. - (fix_stmt_v_may_defs): Use new operand_types. - * tree-ssa-live.c (create_ssa_var_map): Use new operand_types. - (build_tree_conflict_graph): Use new operand_types. - * tree-ssa-loop.c (duplicate_blocks): Use PHI_ARG_DEF_FROM_EDGE. - * tree-ssa-operands.c (struct freelist_d): Remove. - (check_optype_freelist, add_optype_freelist): Remove. - (allocate_def_optype, allocate_use_optype, allocate_v_may_def_optype, - allocate_vuse_optype, allocate_v_must_def_optype): Call ggc_alloc. - (free_uses, free_defs, free_vuses, free_v_may_defs, free_v_must_defs): - Call ggc_free instead of add_optype_freelist. - (init_ssa_operands, fini_ssa_operands): Remove free list code. - (finalize_ssa_defs, finalize_ssa_uses): Set new use/def operands. - * tree-ssa-operands.h (struct def_optype_d): Change underlying type. - (struct use_optype_d): Change underlying type. - (def_operand_p, use_operand_p): New types for pointers to operands. - (USE_OP, DEF_OP, V_MAY_DEF_RESULT, V_MAY_DEF_OP, VUSE_OP, - V_MUST_DEF_OP): Use new pointer type instead of dereferencing directly. - (USE_FROM_PTR, DEF_FROM_PTR): New macros to "dereference" operand - pointer types. - (SET_USE, SET_DEF): New macros to set operands from their pointer. - (SET_USE_OP, SET_DEF_OP, SET_V_MAY_DEF_RESULT, SET_V_MAY_DEF_OP, - SET_VUSE_OP, SET_V_MUST_DEF_OP): New SET routines for operands. - (PHI_RESULT_PTR, PHI_RESULT, SET_PHI_RESULT): Macros to manage the - PHI result as an operand. - (PHI_ARG_DEF_PTR, PHI_ARG_DEF, SET_PHI_ARG_DEF, PHI_ARG_DEF_FROM_EDGE, - PHI_ARG_DEF_PTR_FROM_EDGE): Macros to manage the PHI arguments. - * tree-ssa-pre.c (eliminate): Call propagate_tree_value. - * tree-tailcall.c (independent_of_stmt_p, propagate_through_phis): Use - PHI_ARG_DEF_FROM_EDGE. - * tree.h (PHI_RESULT): Renamed to PHI_RESULT_TREE. - (PHI_ARG_DEF): Renamed to PHI_ARG_DEF_TREE. - -2004-06-17 Zdenek Dvorak - - PR tree-optimization/15991 - * tree-cfg.c (tree_block_label): Export. - * tree-flow-inline.h (bsi_after_labels): New function. - * tree-flow.h (bsi_after_labels, tree_block_label): Declare. - * tree-ssa.c (propagate_into_addr): New function. - (replace_immediate_uses): Handle propagation of pointer constants. - (raise_value): Do not restrict propagation of pointer constants. - * tree-ssanames.c (duplicate_ssa_name): New function. - * tree.h (duplicate_ssa_name): Declare. - -2004-06-17 David Ayers - - * c-parse.in: Unify Objective-C token names. - -2004-06-17 Zack Weinberg - - Bug 14610 - * Makefile.in (min-insn-modes.o): Correct dependencies. - * real.c (encode_ieee_extended, decode_ieee_extended): Always - produce/consume 12-byte little-endian Intel format. - (encode_ieee_extended_128, decode_ieee_extended_128): Delete. - (encode_ieee_extended_motorola, decode_ieee_extended_motorola) - (encode_ieee_extended_intel_96, decode_ieee_extended_intel_96) - (encode_ieee_extended_intel_128, decode_ieee_extended_intel_128): - New functions which convert between 12-byte little-endian Intel - format and the desired format. - (ieee_extended_motorola_format, ieee_extended_intel_96_round_53_format) - (ieee_extended_intel_96_format, ieee_extended_intel_128_format): - Update. - -2004-06-17 Zack Weinberg - - * expmed.c (expand_mult_const): In sanity check, compare only - the bits of val and val_so_far that are significant in the - result mode. - -2004-06-17 Daniel Berlin - - * tree-ssa-pre.c: Update comments. - (val_expr_pair_eq): Factor code from here. - (expr_pred_trans_eq): and here. - (expressions_equal_p): To here. - (print_value_set): Print value for expression. - (phi_trans_lookup): Rename some variables. - (lookup): Ditto. - (value_exists_in_set_bitmap): Ditto. - (value_remove_from_set_bitmap): Ditto. - (value_insert_into_set_bitmap): Ditto. - -2004-06-17 Ulrich Weigand - - * config/s390/s390-modes.def (CCL3mode): New machine mode. - * config/s390/s390.c (s390_match_ccmode_set): Support CCL3mode. - (s390_alc_comparison, s390_slb_comparison): Likewise. - (s390_branch_condition_mask): Likewise. - * config/s390/s390.md ("*subdi3_cc2", "*subdi3_cconly2"): New. - ("*subsi3_cc2", "*subsi3_cconly2"): New. - - * config/s390/s390.h (PREDICATE_CODE): Accept SIGN_EXTEND and - ZERO_EXTEND for s390_alc_comparison and s390_slb_comparison. - * config/s390/s390.c (s390_alc_comparison, s390_slb_comparison): - Handle SIGN_EXTEND and ZERO_EXTEND. - - * config/s390/s390-protos.h (s390_expand_addcc): New prototype. - * config/s390/s390.c (s390_expand_addcc): New function. - * config/s390/s390.md ("adddicc", "addsicc"): New expanders. - ("*sconddi", "*scondsi", "*sconddi_neg", "*scondsi_neg"): New insns. - ("sltu", "sgtu", "sleu", "sgeu"): New expanders. - -2004-06-17 Ben Elliston - - * tree-alias-common.c: Add whitespace. - * tree-inline.c: Correct comment about this file's purpose. - * tree-optimize.c: Likewise. - * tree-tailcall.c: Likewise. - - * tree-alias-ander.h: Add standard top-of-file comment. - * tree-alias-common.h: Likewise. - * tree-alias-type.h: Likewise. - -2004-06-16 Daniel Berlin - - * tree-ssa-pre.c (compute_avail): Value number uses as well. - Strip useless type conversions. - Casts have to be treated slightly different than normal unaries. - -2004-06-16 Richard Henderson - - * c-common.def (COMPOUND_STMT): Remove. - * c-common.c (finish_fname_decls): Don't look through it. - * c-typeck.c (c_tree_expr_nonnegative_p): Likewise. - * c-common.h (COMPOUND_BODY): Remove. - (c_common_stmt_codes): Remove COMPOUND_STMT. - * c-dump.c (c_dump_tree): Likewise. - * c-gimplify.c (c_gimplify_stmt): Likewise. - * c-pretty-print.c (pp_c_statement): Likewise. - * tree.h (DECL_SAVED_TREE): Update commentary. - * doc/c-tree.texi (ASM_EXPR): Rename from ASM_STMT. - (CASE_LABEL_EXPR): Rename from CASE_LABEL. - (GOTO_EXPR): Rename from GOTO_STMT. - (GOTO_FAKE_P): Remove. - (COMPOUND_STMT): Remove. - (HANDLER): Update wrt COMPOUND_STMT. - (STMT_EXPR): Likewise. - (LABEL_EXPR): Rename from LABEL_STMT. - (SCOPE_STMT): Remove. - * objc/objc-act.c (objc_build_try_catch_finally_stmt): Don't look - through COMPOUND_STMT. - -2004-06-16 Richard Henderson - - * c-common.h (c_begin_if_stmt, c_begin_while_stmt, - c_finish_while_stmt_cond): Remove decls. - * c-parse.in (if_prefix): Don't save c_begin_if_stmt result. - * c-typeck.c (c_begin_if_stmt): Return void. - (c_begin_else): Tidy. Save stmt_count. - * c-tree.h (c_begin_if_stmt): Update decl. - - * objc/objc-act.c (objc_build_try_enter_fragment, - objc_build_extract_fragment, objc_build_try_epilogue, - objc_build_catch_stmt, objc_build_catch_epilogue, - objc_build_finally_prologue, objc_build_finally_epilogue): Update - for if builder function changes. - -2004-06-16 Ulrich Weigand - - * config/s390/s390.c (struct machine_function): New member - last_restore_gpr. - (s390_frame_info): Add BASE_USED and RETURN_ADDR_USED parameters. - Do not modify machine->save_return_addr_p or regs_ever_live. - Fill in machine->last_restore_gpr. - (s390_optimize_prolog): Use s390_frame_info to compute registers - to save/restore, remove duplicated code. - (s390_arg_frame_offset): Use s390_frame_info to compute frame - size, remove duplicated code. - (s390_emit_prologue): Adapt s390_frame_info call. Update - machine->save_return_addr_p and regs_ever_live. - (s390_emit_epilogue): Use machine->last_restore_gpr instead of - machine->last_save_gpr. - -2004-06-16 Richard Henderson - - * c-parse.in (if_stmt_locus): Remove. - (if_prefix): Increment stmt_count; pass it to c_finish_if_cond. - (select_or_iter_stmt): Move empty if warnings to c-typeck.c. - * c-typeck.c (if_elt): Sort by expected size. Rename locus to - empty_locus. Add stmt_count, saw_else. - (c_begin_if_stmt): Push if_stack here. - (c_finish_if_cond): Rename from c_expand_end_cond. Record stmt_count. - (c_finish_then, c_finish_else): Record empty_locus. - (c_begin_else): Rename from c_expand_start_else. Record stmt_count. - (c_finish_if_stmt): Rename from c_expand_end_cond. Warn for empty - if or else body. - * c-tree.h: Update prototypes. - -2004-06-16 Steven Bosscher - - * tree.h (PHI_CHAIN): New. - * (tree-cfg.c, tree-dfa.c, tree-flow-inline.h, tree-into-ssa.c, - tree-outof-ssa.c, tree-phinodes.c, tree-pretty-print.c, - tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-dse.c, - tree-ssa-live.c, tree-ssa-loop.c, tree-ssa-phiopt.c, tree-ssa-pre.c, - tree-ssa.c, tree-tailcall.c): Use PHI_CHAIN instead of TREE_CHAIN - when traversing a list of PHI_NODEs. - -2004-06-16 Bernardo Innocenti - - PR target/13292 - * config/m68k/m68k.h (TARGET_SWITCHES): Don't remove MASK_68040_ONLY - on -msoft-float. - (TARGET_FLT_EVAL_METHOD): Don't advertise extended precision for - 68040 and soft-float. - * config/m68k/m68k.md (truncdfsf2): Explicitly require TARGET_68881 - in the TARGET_68040_ONLY case. - -2004-06-16 Peter Barada - - * config/m68k/m68k.md (movsi_cfv4): New pattern to allow mov3q. - (movsi_cf): Make named, don't match TARGET_CFV4. - (pushexthisi_const): Use mov3q if possible. - (extendhisi2, cvf4_extendhisi2): Split extendhisi2 pattern - to special case mvz.w for ColdFire V4. - (extendqisi2, cvf4_extendqisi2): Split extendhisi2 pattern - to special case mvz.b for ColdFire V4. - (udivmodhi4, divmodhi4): Use mvz to zero extend arg for - divide. - (iorsi3, xorsi3, andsi3): Use bitfield instructions if possible. - * config/m68k/m68k.c(valid_mov3q_const): New function. - (const_method): SWAP is valid for ColdFire. - (MULL_COST, MULW_COST): Fix costs for ColdFire V3/V4. - * config/m68k/m68k-protos.h (valid_mov3q_const): Prototype here. - -2004-06-16 Richard Henderson - - * c-common.def (CASE_LABEL): Remove. - * c-common.c (c_add_case_label): Use CASE_LABEL, not CASE_LABEL_DECL. - (match_case_to_enum_1): Likewise. - * c-common.h (c_common_stmt_codes): Remove CASE_LABEL. - * c-dump.c (c_dump_tree): Likewise. - * c-gimplify.c (c_gimplify_stmt): Likewise. - * c-pretty-print.c (pp_c_statement): Likewise. - * c-semantics.c (build_case_label): Use CASE_LABEL_EXPR. - * tree.h (CASE_LOW): Update commentary. - -2004-06-16 Richard Henderson - - * c-common.def (ASM_STMT): Remove. - * c-common.h (c_common_stmt_codes): Remove ASM_STMT. - * c-dump.c (c_dump_tree): Likewise. - * c-gimplify.c (c_gimplify_stmt): Likewise. - * c-pretty-print.c (pp_c_statement): Likewise. - * c-typeck.c (build_asm_expr): Use ASM_EXPR. - * tree.h: Fix commentary. - -2004-06-16 Richard Henderson - - * c-common.def (GOTO_STMT, LABEL_STMT): Remove. - * c-common.c (c_add_case_label): Use LABEL_EXPR. - * c-common.h (GOTO_FAKE_P, LABEL_STMT_LABEL): Remove. - (c_common_stmt_codes): Remove GOTO_STMT, LABEL_STMT. - * c-dump.c (c_dump_tree): Likewise. - * c-gimplify.c (c_gimplify_stmt): Likewise. - * c-pretty-print.c (pp_c_statement): Likewise. - * c-parse.in (stmt): Use GOTO_EXPR. - (label): Use LABEL_EXPR. - * c-semantics.c (build_stmt): Set TREE_TYPE to void. - * tree-inline.c (copy_body_r): Don't build empty BLOCKs. - -2004-06-16 J"orn Rennecke - - * cfgcleanup.c (try_simplify_condjump): Update test to make - sure we have a conditional branch around am unconditional branch. - -2004-06-16 Daniel Berlin - - * tree-cfg.c (pass_split_crit_edge): Give it a name and a dump file. - -2004-06-16 Dale Johannesen - - * loop.c (loop_givs_reduce): Avoid miscompilation of - loops entered at bottom. - -2004-06-16 J"orn Rennecke - - * cfglayout.c (fixup_reorder_chain): Handle case where the - destination of E_FALL is EXIT_BLOCK_PTR. - -2004-06-16 Vladimir Makarov - - PR target/15653 - * config/ia64/ia64.c (ia64_dfa_new_cycle): Do not insert nops - after shifts before asm. - -2004-06-16 Zdenek Dvorak - - PR tree-optimization/15993 - * tree-ssa-dom.c (thread_across_edge): Do not thread edge if its - destination is unchanged. - -2004-06-16 Andreas Jaeger - - * doc/install.texi (Configuration): Update description for - --enable-version-specific-runtime-libs. - -2004-06-16 Paolo Bonzini - - * doc/install.texi: boehm-gc now uses automake 1.8.5. - -2004-06-16 Paolo Bonzini - - * toplev.h (rest_of_compilation): Adjust prototype. - -2004-06-16 Paolo Bonzini - - * coverage.c: Remove argument to rest_of_compilation. - * expr.c (execute_expand, set_save_expr_context, pass_expand): New. - * passes.c (rest_of_compilation): Remove argument. - (pass_rest_of_compilation): New. - (rest_of_handle_final, rest_of_handle_delay_slots, - rest_of_handle_stack_regs, rest_of_handle_variable_tracking - rest_of_handle_machine_reorg, rest_of_handle_regrename - rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_gcse2 - rest_of_handle_regmove, rest_of_handle_tracer - rest_of_handle_if_conversion, rest_of_handle_if_after_combine - rest_of_handle_web, rest_of_handle_branch_prob - rest_of_handle_value_profile_transformations, rest_of_handle_cfg - rest_of_handle_addressof, rest_of_handle_jump_bypass - rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2): - Check that the two arguments are actually superfluous. - * tree-optimize.c (register_dump_files): Add properties argument. - Track validity of passes. Only initialize dump files for - tree-based passes. Store the full set of provided passes in - the pass. - (init_tree_optimization_passes): Register pass_expand and - pass_rest_of_compilation. - (execute_one_pass): Do not track the presence of required properties - here. Set in_gimple_form. Do not update current_properties. - (current_properties): Remove. - (set_save_expr_context): Remove. - (tree_rest_of_compilation): Do not set in_gimple_form. Do not - expand to RTL here, and do not call rest_of_compilation. Push - GGC context even before gimplification. - * tree-pass.h (PROP_rtl, PROP_trees): New flags. - (pass_expand, pass_rest_of_compilation): Declare. - -2004-06-15 Jeff Law - - * fold-const.c (swap_tree_comparison): No longer static. - (tree_swap_operands_p): Similarly. Return true if both operands - are SSA_NAMEs and the first operand has a higher version number than - the second operand. - * tree.h (swap_tree_comparison): Prototype. - (tree_swap_operands_p): Prototype. - * tree-ssa-operands.c (get_expr_operands): For commutative - operators and relational comparisons, canonicalize the - order of the operands. - -2004-06-15 Richard Henderson - - * c-common.c (lang_gimplify_stmt): Remove next_p argument. - (if_elt, if_stack, if_stack_space, c_expand_start_cond, c_finish_then, - c_expand_end_cond, c_expand_start_else, c_finish_else, c_begin_if_stmt, - c_begin_while_stmt, c_finish_while_stmt_cond): Move to c-typeck.c. - (finish_fname_decls, fname_decl): Use statement_lists. - (c_expand_expr_stmt): Don't set last_expr_type. - (c_type_hash): Fix indentation. - (c_safe_from_p): Don't follow TREE_CHAIN. - (c_tree_chain_matters_p): Remove. - * c-common.def (SCOPE_STMT): Remove. - (CLEANUP_STMT): Redefine to contain its own body. - * c-common.h (struct stmt_tree_s): Remove x_last_stmt, - x_last_expr_type, x_last_expr_filename, x_scope_stmt_stack. - Add x_cur_stmt_list. - (last_tree, last_expr_type, last_expr_filename, RECHAIN_STMTS): Remove. - (cur_stmt_list): New. - (STATEMENT_LIST_STMT_EXPR): New. - (SCOPE_BEGIN_P, SCOPE_END_P, SCOPE_STMT_BLOCK, SCOPE_NULLIFIED_P, - SCOPE_NO_CLEANUPS_P, SCOPE_PARTIAL_P, NEW_FOR_SCOPE_P): Remove. - (CLEANUP_BODY): New. - (CLEANUP_DECL): Move to operand 2. - (c_common_stmt_codes): Remove SCOPE_STMT. - (COMPOUND_STMT_NO_SCOPE, COMPOUND_STMT_BODY_BLOCK): Remove. - * c-decl.c (c_scope_stmt_stack, current_scope_stmt_stack): Remove. - (c_push_function_context, c_pop_function_context): Don't save it. - (finish_decl): Set TREE_USED on the decl for a cleanup. - Use push_cleanup. - (store_parm_decls): Use statement lists. - (finish_function): Remove compstmt rule workaround. Use statement - lists. Call finish_fname_decls after finalizing the body. - (c_begin_compound_stmt): Move to c-typeck.c. - * c-dump.c (c_dump_tree): Remove SCOPE_STMT. - * c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts): New. - (c_genericize): Invoke them. - (c_gimplify_stmt): Don't look through TREE_CHAIN. Kill SCOPE_STMT. - (c_build_bind_expr): Export. - (gimplify_block, gimplify_cleanup): Remove. - (gimplify_condition): Use gimplify_stmt. - (gimplify_for_stmt): Remove FOR_INIT_STMT chaining hack. - (gimplify_if_stmt): Remove recursion hack. - (c_gimplify_expr): Remove STMT_EXPR handling. - (stmt_expr_last_stmt, gimplify_stmt_expr): Remove. - (is_last_stmt_of_scope): Remove. - * c-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Remove. - * c-mudflap.c (mflang_flush_calls): Use c_begin_compound_stmt, - c_end_compound_stmt. - * c-objc-common.c (build_cdtor): Likewise. - * c-parse.in (primary): Use c_finish_stmt_expr. - (push_scope, pop_scope): Remove. - (c99_block_start, compstmt_start): Use c_begin_compound_stmt. - (c99_block_end, compstmt): Use c_end_compound_stmt. - (c99_block_lineno_labeled_stmt): Likewise. - (compstmt_primary_start): Use c_begin_stmt_expr. - (simple_if, select_or_iter_stmt): Update calls to stmt builders. - (do_stmt_start): Fill in body directly. - (lineno_stmt): Avoid setting lineno on constants. - * c-pretty-print.c (pp_c_statement): Handle STATEMENT_LIST. - Remove SCOPE_STMT. - * c-semantics.c (begin_stmt_tree): Remove. - (push_stmt_list, re_push_stmt_list, pop_stmt_list): New. - (add_stmt): Use statement lists. - (add_scope_stmt, finish_stmt_tree): Remove. - (push_cleanup): New. - * c-tree.h: Move some decls from c-common.h. - * c-typeck.c (c_tree_expr_nonnegative_p): Simplify for statement lists. - (do_case, c_finish_case): Likewise. - (c_finish_then): Take body for then as argument. - (c_finish_else): Similarly. - (c_begin_for_stmt, c_finish_for_stmt_init, c_finish_for_stmt_cond, - c_finish_for_stmt_incr, c_finish_for_stmt): New. - (c_begin_stmt_expr, c_finish_stmt_expr): New. - (c_begin_compound_stmt): Do scope management. - (c_end_compound_stmt): New. - * fold-const.c (tree_expr_nonnegative_p): Fix BIND_EXPR. - * gimplify.c (voidify_wrapper_expr): Accept temporary argument. - Look through exception handling constructs. - (gimplify_bind_expr): Accept temporary argument. - (gimplify_target_expr): Special case BIND_EXPR bodies. - (gimplify_expr): Handle fallback == fb_none like a statement. - * langhooks-def.h (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Kill. - * langhooks.c (lhd_tree_inlining_tree_chain_matters_p): Remove. - * langhooks.h (tree_chain_matters_p): Remove. - * stub-objc.c (objc_clear_super_receiver): New. - * tree-gimple.h (voidify_wrapper_expr): Update decl. - (append_to_statement_list, append_to_statement_list_force): Move - to tree-iterator.h. - * tree-inline.c (expand_call_inline): Update call. - (clone_body): Use statement lists. - (walk_tree): Don't check tree_chain_matters_p. - (copy_tree_r): Likewise. - * tree-iterator.c (alloc_stmt_list): Clear lang bits. - (tsi_link_before, tsi_link_after): Set TREE_SIDE_EFFECTS properly. - * tree-iterator.h (append_to_statement_list, - append_to_statement_list_force): Moved from tree-gimple.h. - * tree-pretty-print.c (dump_generic_node): Clean up TARGET_EXPR dump. - * objc/objc-act.c (build_module_descriptor): Use c_begin_compound_stmt. - (objc_enter_block): Likewise. - (objc_exit_block): Use c_end_compound_stmt. - (objc_build_try_enter_fragment): Add #error and comment for - rewriting for OBJCPLUS. - (objc_build_extract_fragment, objc_build_try_epilogue, - objc_build_catch_stmt, objc_build_finally_prologue, - objc_build_finally_epilogue): Update for C statement builders. - * objc/objc-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): - Remove. - -2004-06-15 Zdenek Dvorak - - * df.c (df_reg_clobber_gen): Removed. - (df_bb_rd_local_compute, df_insn_refs_record, df_rd_local_compute): - Make more effective for hard regs. - * ra-build.c (livethrough_conflicts_bb): Check contains_call. - -2004-06-15 Alexandre Oliva - - * c-pragma.h (c_lex_string_translate): Change type to int. - * c-parse.in: Change all assignments of c_lex_string_translate - to true and false to 1 and 0. - * c-lex.c (c_lex_string_translate): Likewise. - (lex_string): Convert string without translation in the -1 - case. - -2004-06-15 Mark G. Adams - - * convert.h: Add include guards - -2004-06-15 Daniel Berlin - - * tree-flow-inline.h: Document all functions. - -2004-06-15 Daniel Berlin - - * tree-flow-inline.h (stmt_ann): Remove use of is_essa_node. - * tree-dfa.c (create_stmt_ann): Ditto. - * tree-pretty-print.c (dump_generic_node): Remove E* node handling. - * tree-inline.c (estimate_num_insns_1): Ditto. - * tree.c (tree_size): Ditto. - (make_node_stat): Ditto. - (tree_node_structure): Ditto. - (ephi_node_elt_check_failed): Remove. - (is_essa_node): Ditto. - * tree.def (EPHI_NODE): Ditto. - (EEXIT_NODE): Ditto. - (EUSE_NODE): Ditto. - (EKILL_NODE): Ditto. - * tree.h (EREF_NODE_CHECK): Remove. - (EPHI_NODE_ELT_CHECK): Ditto. - (struct tree_eref_common): Ditto. - (struct tree_euse_node): Ditto. - (struct ephi_arg_d): Ditto. - (struct tree_ephi_node): Ditto. - (ephi_node_elt_check_failed): Remove prototype. - (is_essa_node): Ditto. - (enum tree_node_structure_enum): Remove TS_E*_NODE. - (union tree_node): Remove E*_NODE uses. - -2004-06-15 Jerry Quinn - - * alias.c (record_set, record_base_value, canon_rtx, get_addr, - nonlocal_mentioned_p_1, init_alias_analysis): Use REG_P. - * bt-load.c (find_btr_reference, insn_sets_btr_p, note_btr_set): - Likewise. - * builtins.c (expand_builtin_setjmp, expand_builtin_apply, - expand_builtin_mathfn, expand_builtin_strlen, expand_builtin_memcmp, - expand_builtin_strcmp, expand_builtin_strncmp, - expand_builtin_frame_address): Likewise. - * caller-save.c (mark_set_regs, add_stored_regs, mark_referenced_regs, - insert_one_insn): Likewise. - * calls.c (prepare_call_address, precompute_register_parameters, - precompute_arguments, expand_call, emit_library_call_value_1): Likewise. - * cfganal.c (flow_active_insn_p): Likewise. - * combine.c (set_nonzero_bits_and_sign_copies, can_combine_p, - combinable_i3pat, try_combine, find_split_point, COMBINE_RTX_EQUAL_P, - subst, combine_simplify_rtx, simplify_if_then_else, simplify_set, - make_extraction, recog_for_combine, gen_lowpart_for_combine, - simplify_comparison, record_dead_and_set_regs_1, - record_dead_and_set_regs, record_promoted_value, - check_promoted_subreg, get_last_value_validate, get_last_value, - reg_dead_at_p_1, reg_bitfield_target_p, distribute_notes, - unmentioned_reg_p_1): Likewise. - * conflict.c (mark_reg): Likewise. - * cse.c (HASH, COST, COST_IN, approx_reg_cost_1, notreg_cost, - mention_regs, insert_regs, lookup, lookup_for_remove, insert, - merge_equiv_classes, flush_hash_table, invalidate, - remove_invalid_refs, remove_invalid_subreg_refs, rehash_using_reg, - invalidate_for_call, use_related_value, canon_hash, exp_equiv_p, - cse_rtx_varies_p, canon_reg, find_best_addr, fold_rtx, equiv_constant, - record_jump_cond, cse_insn, addr_affects_sp_p, - invalidate_from_clobbers, cse_process_notes, cse_around_loop, - cse_set_around_loop, count_reg_usage, set_live_p, cse_change_cc_mode, - cse_cc_succs, cse_condition_code_reg): Likewise. - * cselib.c (cselib_reg_set_mode, rtx_equal_for_cselib_p, - cselib_lookup, cselib_invalidate_regno, cselib_invalidate_rtx, - cselib_record_set, cselib_record_sets): Likewise. - * dbxout.c (dbxout_symbol_location, dbxout_parms, dbxout_reg_parms, - dbxout_block): Likewise. - * df.c (df_ref_record, df_def_record_1, df_uses_record): Likewise. - * dojump.c (do_jump): Likewise. - * dwarf2out.c (dwarf2out_frame_debug_expr, is_pseudo_reg, - is_based_loc, rtl_for_decl_location): Likewise. - * emit-rtl.c (set_reg_attrs_for_parm, set_decl_rtl, - set_decl_incoming_rtl, mark_user_reg): Likewise. - * explow.c (copy_all_regs, copy_all_regs, memory_address, force_reg, - copy_to_suggested_reg, allocate_dynamic_stack_space, - probe_stack_range, hard_function_value): Likewise. - * expmed.c (store_bit_field, store_fixed_bit_field, - store_split_bit_field, extract_bit_field, extract_fixed_bit_field, - extract_split_bit_field, expand_divmod, emit_store_flag_force): - Likewise. - * expr.c (convert_move, convert_modes, - block_move_libcall_safe_for_call_parm, emit_group_load, use_reg, - use_group_regs, emit_move_insn, emit_move_insn_1, - compress_float_constant, push_block, emit_single_push_insn, - emit_push_insn, get_subtarget, expand_assignment, store_expr, - store_constructor, store_field, force_operand, safe_from_p, - expand_expr_real_1, expand_increment, do_store_flag, do_tablejump): - Likewise. - * final.c (profile_function, final_scan_insn, alter_subreg, - get_mem_expr_from_op, output_asm_operand_names, output_operand, - only_leaf_regs_used, leaf_renumber_regs_insn): Likewise. - * flow.c (verify_wide_reg_1, mark_regs_live_at_end, - find_regno_partial, propagate_one_insn, init_propagate_block_info, - insn_dead_p, libcall_dead_p, mark_set_1, not_reg_cond, - attempt_auto_inc, find_auto_inc, mark_used_regs, - count_or_remove_death_notes_bb): Likewise. - * function.c (find_temp_slot_from_address, update_temp_slot_address, - preserve_temp_slots, put_var_into_stack, fixup_var_refs_insn, - fixup_var_refs_1, fixup_stack_1, optimize_bit_field, flush_addressof, - put_addressof_into_stack, purge_addressof_1, insns_for_mem_walk, - purge_single_hard_subreg_set, instantiate_decl, - instantiate_virtual_regs_1, aggregate_value_p, assign_parms, - promoted_input_arg, setjmp_vars_warning, setjmp_args_warning, - setjmp_protect, setjmp_protect_args, fix_lexical_addr, - expand_function_start, diddle_return_value, clobber_return_register, - expand_function_end, keep_stack_depressed, handle_epilogue_set, - update_epilogue_consts): Likewise. - * genemit.c (gen_exp, gen_insn): Likewise. - * genrecog.c (make_insn_sequence): Likewise. - * global.c (global_conflicts, expand_preferences, mark_reg_store, - mark_reg_conflicts, set_preference, reg_becomes_live, - build_insn_chain, mark_reg_change): Likewise. - * haifa_sched.c (CONST_BASED_ADDRESS_P, find_set_reg_weight): - Likewise. - * ifcvt.c (noce_try_abs, noce_get_condition, noce_process_if_block): - Likewise. - * integrate.c (copy_rtx_and_substitute, try_constants, - subst_constants, mark_stores, allocate_initial_values): Likewise. - * jump.c (reversed_comparison_code_parts, delete_prior_computation, - delete_computation, rtx_renumbered_equal_p, true_regnum, - reg_or_subregno): Likewise. - * lcm.c (reg_dies, reg_becomes_live): Likewise. - * local-alloc.c (validate_equiv_mem_from_store, validate_equiv_mem, - update_equiv_regs, no_equiv, block_alloc, combine_regs, reg_is_set, - wipe_dead_reg, no_conflict_p): Likewise. - * loop-iv.c (simple_reg_p, simple_set_p, kill_sets, - iv_get_reaching_def, iv_analyze_biv, altered_reg_used, mark_altered, - simple_rhs_p, simplify_using_assignment, implies_p): Likewise. - * loop.c (scan_loop, combine_movables, rtx_equal_for_loop_p, - move_movables, note_set_pseudo_multiple_uses, consec_sets_invariant_p, - find_single_use_in_loop, count_one_set, loop_bivs_init_find, - loop_givs_rescan, check_insn_for_bivs, check_insn_for_givs, - valid_initial_value_p, simplify_giv_expr, consec_sets_giv, - loop_regs_update, check_dbra_loop, maybe_eliminate_biv, - maybe_eliminate_biv_1, record_initial, update_reg_last_use, - canonicalize_condition, loop_regs_scan, load_mems, try_copy_prop, - try_swap_copy_prop): Likewise. - * optabs.c (expand_binop, expand_vector_binop, expand_vector_unop, - expand_abs, emit_no_conflict_block, emit_libcall_block, expand_float): - Likewise. - * postreload.c (reload_cse_simplify, reload_cse_simplify_set, - reload_cse_simplify_operands, reload_combine, - reload_combine_note_store, reload_combine_note_use, - reload_cse_move2add, move2add_note_store): Likewise. - * print-rtl.c (print_rtx): Likewise. - * ra-build.c (copy_insn_p, remember_move, init_one_web_common, - contains_pseudo, handle_asm_insn): Likewise. - * ra-debug.c (ra_print_rtx_object, dump_constraints, - dump_static_insn_cost): Likewise. - * ra-rewrite.c (slots_overlap_p, emit_colors, - remove_suspicious_death_notes): Likewise. - * recog.c (validate_replace_rtx_1, find_single_use_1, find_single_use, - register_operand, scratch_operand, nonmemory_operand, - constrain_operands): Likewise. - * reg-stack (check_asm_stack_operands, remove_regno_note, - emit_swap_insn, swap_rtx_condition, subst_stack_regs_pat, - subst_asm_stack_regs): Likewise. - * regclass.c (scan_one_insn, record_reg_classes, copy_cost, - record_address_regs, reg_scan_mark_refs): Likewise. - * regmove.c (discover_flags_reg, replacement_quality, - copy_src_to_dest, reg_is_remote_constant_p, regmove_optimize, - fixup_match_1): Likewise. - * regrename.c (note_sets, clear_dead_regs, build_def_use, kill_value, - kill_set_value, copyprop_hardreg_forward_1): Likewise. - * reload.c (MATCHES, push_secondary_reload, find_reusable_reload, - reload_inner_reg_of_subreg, can_reload_into, push_reload, - combine_reloads, find_dummy_reload, hard_reg_set_here_p, - operands_match_p, decompose, find_reloads, find_reloads_toplev, - find_reloads_address, subst_indexed_address, find_reloads_address_1, - find_reloads_subreg_address, find_replacement, - refers_to_regno_for_reload_p, reg_overlap_mentioned_for_reload_p, - refers_to_mem_for_reload_p, find_equiv_reg, regno_clobbered_p): Likewise. - * reload1.c (replace_pseudos_in, reload, calculate_needs_all_insns, - find_reg, delete_dead_insn, alter_reg, eliminate_regs, - elimination_effects, eliminate_regs_in_insn, scan_paradoxical_subregs, - forget_old_reloads_1, reload_reg_free_for_value_p, choose_reload_regs, - emit_input_reload_insns, emit_output_reload_insns, do_input_reload, - do_output_reload, emit_reload_insns, gen_reload, - delete_address_reloads_1, inc_for_reload): Likewise. - * reorg.c (update_reg_dead_notes, fix_reg_dead_note, - update_reg_unused_notes, fill_slots_from_thread): Likewise. - * resource.c (update_live_status, mark_referenced_resources, - mark_set_resources, mark_target_live_regs): Likewise. - * rtlanal.c (nonzero_address_p, get_jump_table_offset, - global_reg_mentioned_p_1, reg_mentioned_p, reg_referenced_p, - reg_set_p, set_noop_p, find_last_value, refers_to_regno_p, - note_stores, dead_or_set_p, dead_or_set_regno_p, find_regno_note, - find_reg_fusage, find_regno_fusage, replace_regs, regno_use_in, - parms_set, find_first_parameter_load, keep_with_call_p, - hoist_test_store, hoist_update_store, address_cost, nonzero_bits1, - num_sign_bit_copies1): Likewise. - * rtlhooks.c (gen_lowpart_general): Likewise. - * sched-deps.c (deps_may_trap_p, sched_analyze_1, sched_analyze_insn, - sched_analyze): Likewise. - * sched-rgn.c (check_live_1, update_live_1, sets_likely_spilled_1): - Likewise. - * sdbout.c (sdbout_symbol, sdbout_parms, sdbout_reg_parms): Likewise. - * simplify-rtx.c (simplify_replace_rtx, simplify_unary_operation, - simplify_binary_operation, simplify_const_relational_operation, - simplify_subreg): Likewise. - * stmt.c (decl_conflicts_with_clobbers_p, expand_asm_operands, - expand_end_stmt_expr, expand_return, expand_decl, - expand_anon_union_decl): Likewise. - * unroll.c (precondition_loop_p, calculate_giv_inc, copy_loop_body, - find_splittable_regs, find_splittable_givs, find_common_reg_term, - loop_iterations): Likewise. - * var-tracking.c (variable_union, variable_part_different_p, - variable_different_p, count_uses, add_uses, add_stores, - compute_bb_dataflow, set_variable_part, delete_variable_part, - emit_notes_in_bb, vt_get_decl_and_offset, vt_add_function_parameters): - Likewise. - * varasm.c (assemble_variable): Likewise. - -2004-06-15 Chris Demetriou - - * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove - definition. - * config/mips/linux64.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove - #undef and #if 0'd definition. - -2004-06-15 J"orn Rennecke - - * combine.c (distribute_notes): Comment typo fix. - -2004-06-15 Roger Sayle - - * expmed.c (synth_mult): Mask bits of the multiplier to the - machine mode of the multiplication. Don't consider shifts - by more than (or equal to) the width of the operation's mode. - -2004-06-15 Paolo Bonzini - - * doc/install.texi: Yet another update for autoconf - and automake versions. - -2004-06-15 Paolo Bonzini - - * function.h (struct function): Remove cannot_inline field. - (current_function_cannot_inline): Remove. - * passes.c (rest_of_compilation): Reset DECL_DEFER_OUTPUT. - Simplify conditionals to ignore warn_return_type. - * tree-optimize.c (tree_rest_of_compilation): Do not reset - DECL_DEFER_OUTPUT. - * objc/objc-act.c (build_module_descriptor, finish_method_def): - Do not set current_function_cannot_inline. - -2004-06-15 J"orn Rennecke - - * cfglayout.c (fixup_reorder_chain): Handle case where the - destination of E_TAKEN is EXIT_BLOCK_PTR. - -2004-06-15 Diego Novillo - - * tree-ssa-copy.c (cprop_into_successor_phis): Fix typo. - -2004-06-15 Paolo Bonzini - - * fold-const.c (operand_equal_p): Update comment. - -2004-06-15 Kazuhiro Inaoka - - * config/m32r/m32r.h (RETURN_ADDR_RTX): Define. - (INCOMING_RETURN_ADDR_RTX): Define. - * config/m32r/m32r-protos.h (m32r_return_addr): Added. - * config/m32r/m32r.c (m32r_exppand_prologue): Changed for - __builtin_return_address(0). - (m32r_return_addr): Added for __builtin_return_address(0). - (m32r_reload_lr): Ditto. - - * longlong.h: Fix macros for m32r add_ssaaaa and sub_ddmmss. - -2004-06-15 Paolo Bonzini - - * doc/install.texi (Prerequisites): Update libbanshee, - fastjar, libcpp, libjava/libltdl entries to - automake 1.8.5. - -2004-06-15 Eric Botcazou - Olivier Hainque - - * function.c (fixup_var_refs): Also adjust the start of sequence - after fixing up the insns. - -2004-06-15 Giovanni Bajo - - * gccbug.in: Update optimization -> tree-optimization/rtl-optimization. - -2004-06-14 Benjamin Kosnik - - * doc/install.texi (Prerequisites): Update libstdc++ entry to - automake 1.8.5. - -2004-06-14 Eric Christopher - - * config/s390/s390.h (TARGET_SWITCHES): Change -mtpf (-mno-tpf) - to -mtpf-trace (-mno-tpf-trace). - * doc/invoke.texi (S/390 and zSeries Options): Add tpf option - documentation. - -2004-06-14 Eric Botcazou - - * real.c: Fix bit count in head comment. - -2004-06-14 Jeff Law - - * tree-ssa.c (kill_redundant_phi_nodes): More correctly handle - PHIs where the destination or an argument is marked with - SSA_NAME_OCCURS_IN_ABNORMAL_PHI. - -2004-06-14 Jakub Jelinek - - PR middle-end/15945 - * simplify-rtx.c (simplify_binary_operation): Don't optimize out - Inf + -Inf, Inf - Inf, Inf / Inf and 0 * Inf if flag_trapping_math. - -2004-06-14 Zdenek Dvorak - - * opts.sh (var_args): Fix regexp. - -2004-06-14 Jakub Jelinek - - PR target/15178 - * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Define. - -2004-06-14 Paul Brook - - * dwarf2out.c (output_call_frame_info): Support dwarf3 cie entries. - -2004-06-14 Zdenek Dvorak - - * Makefile.in (FLAGS_H): New. - (flags.h): Replace by FLAGS_H. - * c.opt: Document Var, VarExists, Init and Report attributes. - * common.opt: Fill the values of the attributes. - * diagnostic.c (flag_fatal_errors): Do not define. - * except.c (flag_non_call_exceptions): Do not define. - * flags.h: Include options.h. Remove declarations conflicting with - the automatically defined ones. - * opts.c: Remove automatically defined variables. - (handle_option): Perform default initialization. - (common_handle_option): Do not handle options covered by the - default initialization. - * opts.h (struct cl_option): Add flag_var, has_set_value and set_value - fields. - (CL_REPORT): New. - * opts.sh: Generate variable declarations, handle CL_REPORT. - * toplev.c: Remove automatically defined variables. - (f_options): Removed. - (print_switch_values): Use cl_options instead of f_options. - * toplev.h (version_flag): Declaration removed. - -2004-06-14 Ian Lance Taylor - - * config/sparc/sparc.h: Correct comment about availability of - little endian option. - - * config.gcc: Remove sparc64-*-aout*. - * config/sparc/sparc.c (sparc_aout_select_rtx_section): Remove. - * config/sparc/sp64-aout.h: Remove. - * config/sparc/aout.h: Remove. - -2004-06-14 Ulrich Weigand - - * config/s390/s390.c: Include "tree-gimple.h". - (s390_gimplify_va_arg): New function. - (TARGET_GIMPLIFY_VA_ARG_EXPR): Define. - (s390_va_arg): Remove. - * config/s390/s390-protos.h (s390_va_arg): Remove. - * config/s390/s390.h (EXPAND_BUILTIN_VA_ARG): Call abort (). - -2004-06-14 J"orn Rennecke - - * basic-block.h (could_fall_through): Declare. - * cfganal.c (can_fallthru): Succeed if the target is EXIT_BLOCK_PTR. - Fail if the source already has a fallthrough edge to the exit - block pointer. - (could_fall_through): New function. - * cfgbuild.c (make_edges): Check if we already have a fallthrough - edge to the exit block pointer. - * cfglayout.c (fixup_fallthru_exit_predecessor): Check that it is - not called before reload has completed. - Handle special case of first block having a fall-through exit edge. - (cfg_layout_finalize): Don't call it before reload or if we have - rtl epilogues. - (fixup_reorder_chain): A fall through to the exit block does not - require the block to come last. Add sanity checks. - * cfgrtl.c (rtl_split_edge): Add special handling of fall through - edges to the exit block. - * function.c (cfglayout.h): #include. - (thread_prologue_and_epilogue_insns): If we have neither return nor - epilogue, but a fall through to the exit block from mid-function, - force a non-fall-through exit. - * Makefile.in (function.o): Depend on CFGLAYOUT_H. - -2004-06-14 Alan Modra - - * config/rs6000/rs6000.h (ASM_CPU_SPEC): Handle -mpowerpc64 and -mcpu - for power5 and rs64a. Correct condition for default. Correct power3, - 620, 630, 7400, 7450, G4, 970 and G5 -mcpu entries. Add -many. - -2004-06-13 Steven Bosscher - - * gcse.c (hash_scan_set, hash_scan_insn, mark_set, mark_oprs_set): - Revert previous change, don't use CALL_P. - -2004-06-13 Jason Merrill - - * tree.h: Move std_gimplify_va_arg_expr protoype here. - * tree-gimple.h: From here. - -2004-06-13 Daniel Berlin - - Fix PR tree-optimization/15979 - Fix PR tree-optimization/15981 - * tree-ssa-pre.c (insert_aux): Fix faulty logic so that we don't - try to insert values undefined along some path. - -2004-06-13 Daniel Berlin - - * tree-ssa-pre.c (add_to_value): is_gimple_min_invariant things - are available everywhere too. - -2004-06-13 Andrew Pinski - - * fold-const.c (fold_checksum_tree ): Only - look at TREE_VALUES if the EXPR is an ENUMERAL_TYPE. - Only look at TYPE_MIN_VALUE and TYPE_MAX_VALUE if - EXPR is an INTEGERAL_TYPE or a scalar float type. - -2004-06-13 Diego Novillo - - * tree-sra.c (tree_sra): Update documentation. - -2004-06-13 Joseph S. Myers - - * c-typeck.c (comptypes, tagged_types_tu_compatible_p, - function_types_compatible_p, type_lists_compatible_p): Remove - flags parameter. - * c-tree.h (comptypes): Likewise. - (COMPARE_STRICT): Remove. - * c-decl.c, c-lang.c, c-parse.in, c-typeck.c, objc/objc-act.c: All - callers changed. - -2004-06-13 Eric Christopher - - * c-decl.c (diagnose_mismatched_decls): Improve error message. - Remove unused code. - * c-typeck.c (comptypes): Add location in standard we're checking. - -2004-06-13 Kaz Kojima - - * config/sh/libgcc-std.ver: Add __unorddf2 and __unordsf2 with - version 3.3.4. - -2004-06-12 Roger Sayle - - * expmed.c (shift_cost, shiftadd_cost, shiftsub_cost): Additionally - index by machine mode. - (init_expmed): Initialize shift_cost, shiftadd_cost and shiftsub_cost - tables inside the loop over machine modes. - (synth_mult, expand_mult_highpart_optab, expand_mult_highpart, - expand_divmod): Index shift*_cost by the appropriate machine mode. - -2004-06-12 Eric Christopher - - * config/s390/s390.h: Rename TARGET_TPF to TARGET_TPF_PROFILING. - * config/s390/s390.md: Ditto. - * config/s390/s390.c: Ditto. - (s390_frame_info): Conditionalize frame and setup info on - TARGET_TPF_PROFILING. - (s390_arg_frame_offset): Ditto. - -2004-06-12 Roger Sayle - - * fold-const.c (omit_two_operands): New function. - * tree.h (omit_two_operands): Prototype here. - * builtins.c (fold_builtin_unordered_cmp): New function to lower - C99 unordered comparison builtins to the appropriate tree nodes. - (fold_builtin_1): Use fold_builtin_unordered_cmp to lower - BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS, - BUILT_IN_ISLESSEQUAL and BUILT_IN_ISLESSGREATER. Manually lower - BUILT_IN_ISUNORDERED comparisons to an UNORDERED_EXPR tree node. - (simplify_builtin_memcmp, simplify_builtin_strncmp, - simplify_builtin_strncat, simplify_builtin_strspn): Use the new - omit_two_operands function to build the required COMPOUND_EXPRs. - -2004-06-12 Steven Bosscher , - Andreas Jaeger - - * gcse.c (record_set_info): Use predicates like REG_P. - (mems_conflict_for_gcse_p): Likewise. - (load_killed_in_block_p): Likewise. - (hash_expr_1): Likewise. - (insert_set_in_table): Likewise. - (gcse_constant_p): Likewise. - (hash_scan_set): Likewise. - (hash_scan_insn): Likewise. - (canon_list_insert): Likewise. - (record_last_mem_set_info): Likewise. - (record_last_set_info): Likewise. - (compute_hash_table_work): Likewise. - (mark_set): Likewise. - (mark_clobber): Likewise. - (mark_oprs_set): Likewise. - (compute_transp): Likewise. - (find_avail_set): Likewise. - (cprop_insn): Likewise. - (do_local_cprop): Likewise. - (cprop): Likewise. - (find_implicit_sets): Likewise. - (find_bypass_set): Likewise. - (bypass_conditional_jumps): Likewise. - (insert_insn_end_bb): Likewise. - (pre_insert_copy_insn): Likewise. - (compute_transpout): Likewise. - (next_ls_expr): Likewise. - (invalidate_any_buried_refs): Likewise. - (compute_ld_motion_mems): Likewise. - (reg_set_info): Likewise. - (reg_clear_last_set): Likewise. - (find_moveable_store): Likewise. - (compute_store_table): Likewise. - (find_loads): Likewise. - (store_killed_in_insn): Likewise. - (insert_insn_start_bb): Likewise. - (reg_set_between_after_reload_p): Likewise. - (reg_used_between_after_reload_p): Likewise. - (is_jump_table_basic_block): Likewise. - (gcse_after_reload): Likewise. - (hash_scan_set_after_reload): Likewise. - (compute_hash_table_after_reload): Likewise. - -2004-06-12 Steven Bosscher - - * rtl.h (MEM_P, NONJUMP_INSN_P, CALL_INSN_P): New predicates. - (INSN_P): Don't look at the rtx code class, just explicitly - check for one of the tree RTX_INSN codes. - -2004-06-11 Zack Weinberg - - * c-typeck.c (default_function_array_conversion): Use - build_pointer_type not TYPE_POINTER_TO. - -2004-06-11 Zack Weinberg - - * configure.ac: Don't invoke ACX_HEADER_STDBOOL. - * configure, config.in: Regenerate. - * system.h: Unconditionally define bool as unsigned char, - BOOL_BITFIELD as unsigned int. - * domwalk.h: Use BOOL_BITFIELD. - -2004-06-12 Andreas Jaeger - - * libgcc-std.ver: Add __unorddf2 and __unordsf2 with version 3.3.4. - * libgcc-darwin.ver: Likewise. - -2004-06-12 Peter Jakubek - - * reload.c (find_reloads): Force reload for pseudo registers on big - endian machines. - -2004-06-11 Steven Bosscher - - * tree-ssa-dce.c (mark_control_dependent_edges_necessary): - Don't try to mark anything control dependent on the entry or - exit blocks. - -2004-06-11 Daniel Berlin - - Fix Bug 15899 - Fix Bug 15460 - * tree.h (SSA_NAME_VALUE): New macro. - (struct tree_ssa_name): Add value_handle member. - * tree-ssa-pre.c: Replaced. - * tree-flow.h (tree_ann_type): Add CST_ANN, EXPR_ANN. - (struct cst_ann_d): New. - (struct expr_ann_d): New. - (union tree_ann_d): Add cst_ann, expr_ann. - * tree-dfa.c (create_cst_ann): New function. - (create_expr_ann): Ditto. - * tree-flow-inline.h (cst_ann): New function. - (expr_ann): Ditto. - (get_cst_ann): Ditto. - (get_expr_ann): Ditto.. - -2004-06-11 John David Anglin - - * pa.c (pa_hpux_init_libfunc): Add support for unord_optab. - * pa/quadlib.c (enum qfcmp_magic): Define magic values for call to - _U_Qfcmp library function. - (_U_Qfltgt, _U_Qfunle, _U_Qfunlt, _U_Qfunge, _U_Qfungt, _U_Qfuneq, - _U_Qfunord, _U_Qford): Add more TFmode builtin compare functions. - - * pa.c (legitimize_pic_address): Use UNSPEC_DLTIND14R to identify - unspec used for loading address from DLT. - * pa.md: Define constants for the uses of UNSPEC and UNSPEC_VOLATILE. - Change all users of UNSPEC and UNSPEC_VOLATILE to use new constants. - Don't use short code sequence when loading the address of a nonlocal - label. - (nonlocal_goto): New expander. - (indirect_goto): New jump pattern for nonlocal gotos. - (short_jump): Remove extra whitespace. - (builtin_longjmp): Clobber memory and hard frame pointer. Restore - frame pointer via virtual_stack_vars_rtx when we have a nonlocal goto - pattern. - -2004-06-11 Roger Sayle - - * expmed.c (synth_mult): Add an additional MODE argument for the - machine mode of the multiplication. Update recursive calls. Use - mode instead of word_mode for determining operation costs. - (choose_mult_variant): Update calls to synth_mult with "mode". - -2004-06-11 Richard Henderson - - * tree-ssa-operands.c (get_stmt_operands): Clear makes_aliased_loads - and makes_aliased_stores. - -2004-06-11 Andrew Pinski - - * doc/install.text (--enable-shared): Fix typo. - -2004-06-11 Richard Henderson - - * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Remove post_p - argument. Use internal post for call to gimplify_expr. Tidy - rounded type size computation. - (alpha_gimplify_va_arg): Use get_formal_tmp_var and - get_initialized_tmp_var. - -2004-06-11 Andrew Pinski - - * doc/install.texi (--enable-shared): Update libobjc's shared library - status. Remove reference to libf2c. - -2004-06-11 Jason Merrill - - * config/i386/i386.h (EXPAND_BUILTIN_VA_ARG): Just abort. - * config/i386/i386.c (ix86_va_arg): Remove. - * config/rs6000/rs6000.h (EXPAND_BUILTIN_VA_ARG): Just abort. - * config/rs6000/rs6000.c (rs6000_va_arg): Remove. - * config/alpha/alpha.h (EXPAND_BUILTIN_VA_ARG): Just abort. - * config/alpha/alpha.c (alpha_va_arg): Remove. - * config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Just abort. - * config/sparc/sparc.c (sparc_va_arg): Remove. - - * tree-ssa-operands.c (get_stmt_operands): Use a V_MAY_DEF if the - assignment might throw. - * tree-eh.c (tree_could_throw_p): Support non-call exceptions in - expressions. - -2004-06-11 J"orn Rennecke - - PR 15886: - * sh.h (ALLOCATE_INITIAL_VALUE): Use return_address_pointer_rtx. - -2004-06-11 Joseph S. Myers - - * doc/install.texi (Prerequisites): Update documentation of - required versions of autoconf and automake. Remove mention of - libf2c. - -2004-06-11 Jason Merrill - - * config/sparc/sparc.c (sparc_gimplify_va_arg): New fn. - (TARGET_GIMPLIFY_VA_ARG_EXPR): Define. - -2004-06-11 Jerry Quinn - - * typeclass.h: Add GPL plus exception license. Add include - guard. - -2004-06-10 Jason Merrill - - * gimplify.c (gimplify_modify_expr): Don't force a temporary - of an aggregate_value_p type. - -2004-06-10 Jeff Law - - * fold-const.c (fold_inf_compare): Avoid creating non-gimple - code when we are in gimple form. - -2004-06-10 Diego Novillo - - * Makefile.in (tree-ssanames.o): Depend on TREE_FLOW_H. - * tree-flow.h (ssa_names, num_ssa_names, ssa_name): Declare. - (highest_ssa_version): Remove. - * tree-outof-ssa.c (new_temp_expr_table): Replace - highest_ssa_version with num_ssa_names. - (dump_replaceable_exprs): Likewise. - (rewrite_vars_out_of_ssa): Likewise. - * tree-ssa-ccp.c (initialize): Likewise - * tree-ssa-copyrename.c (rename_ssa_copies): Likewise. - * tree-ssa-dce.c (tree_dce_init): Likewise. - * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise. - * tree-ssa-live.c (create_ssa_var_map): Likewise. - (dump_var_map): Likewise. - * tree-ssa.c (verify_ssa): Likewise. - (kill_redundant_phi_nodes): Likewise. - Do not build a local array of SSA_NAMEs. Use the ssa_names table. - * tree-ssanames.c: Include tree-flow.h - (ssa_names): New varray. - (init_ssa_names): Initialize ssa_names. - Reserve the first slot of the ssa_names table. - (make_ssa_name): Push the newly created SSA_NAME into ssa_names. - Assign version numbers using num_ssa_names. - -2004-06-10 Joseph S. Myers - - * doc/sourcebuild.texi (Front End): Add details of more - installation documentation required. - -2004-06-10 Brian Booth - - * doc/tree-ssa.texi: Remove references to VDEF and add descriptions - of V_MAY_DEF and V_MUST_DEF. - * tree-dfa.c (dfa_stats_d): Add num_v_must_defs and rename - num_vdefs to num_v_may_defs. - (compute_immediate_uses_for_stmt): Rename occurences of vdef - to v_may_def. - (redirect_immediate_uses): Ditto. - (dump_dfa_stats): Ditto. Also added code to dump num_v_must_defs. - (collect_dfa_stats_r): Rename occurences of vdef to v_may_def. - Also add code to sum up the number of v_must_defs. - (vdefs_disappeared_p): Replace with... - (v_may_defs_disappeared_p): This. - (v_must_defs_disappeared_p): New function. - (mark_new_vars_to_rename): Rename occurences of vdef to v_may_def. - Also add code to mark new variables found in V_MUST_DEFs for - renameing. - * tree-flow.h (stmt_ann_d): Add v_must_def_ops and replace - vdef_ops to v_may_def_ops. - (get_vdef_ops): Replace with... - (get_v_may_def_ops): This. - * tree-flow-inline.h (get_vdef_ops): Replace with... - (get_v_may_def_ops): This. - (get_v_must_def_ops): New function. - (get_vdef_result_ptr): Replace with... - (get_v_may_def_result_ptr): This. - (get_vdef_op_ptr): Ditto with... - (get_v_may_def_op_ptr); This. - (get_v_must_def_op_ptr): New function. - * tree-into-ssa.c (mark_def_sites): Rename occurences of vdef - to v_may_def. Also add code to mark statements with - V_MUST_DEFs as definition sites. - (rewrite_stmt): Rename occurences of vdef to v_may_def. Also - add code to register new V_MUST_DEFs made by the statement. - * tree-outof-ssa.c (VIRTUAL_PARTITION): Update comments. - (check_replaceable): Rename occurences of vdef to v_may_def. Also - add check for V_MUST_DEFs. - (find_replaceable_in_bb): Ditto. - * tree-pretty-print.c (dump_vops): Rename occurences of vdef - to v_may_def. Also add code to dump V_MUST_DEFs. - * tree-sra.c (mark_all_vdefs): Replace with... - (mark_all_v_may_defs): This. - (mark_all_v_must_defs): New function. - (create_scalar_copies): Replace call to mark_all_vdefs with - calls to mark_all_v_may_defs and mark_all_v_must_defs. - (scalarize_structures): Rename occurences of vdef to v_may_def. - Also add a check for V_MUST_DEFs. - (scalarize_modify_expr): Rename occurences of vdef to v_may_def. - * tree-ssa-alias.c (global_var): Update comment. - (compute_may_aliases): Ditto. - (compute_points_to_and_addr_escape): Rename occurences of vdef - to v_may_def. Also add code to mark variables in V_MUST_DEF - operands as being written to. - (group_aliases): Update comment. - (maybe_create_global_var): Ditto. - * tree-ssa.c (verify_ssa): Rename occurences of vdef to v_may_def. - Also add a check for V_MUST_DEFs on GIMPLE registers. - (replace_immediate_uses): Rename occurences of vdef to v_may_def. - * tree-ssa-ccp.c (visit_stmt): Rename occurences of vdef - to v_may_def. Also add code to mark all V_MUST_DEF operands - VARYING. - (initialize): Ditto. - (set_rhs): Rename occurences of vdef to v_may_def. Also add - code to update SSA_NAMEs in V_MUST_DEFs. - * tree-ssa-copy.c (cprop_into_stmt): Rename occurences of vdef - to v_may_def. - * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Rename - occurences of vdef to v_may_def. Also add code to mark statements - with V_MUST_DEFs as necessary. - (propagate_necessity): Rename occurences of vdef to v_may_def. - * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Rename - occurences of vdef to v_may_def. Also add code to mark operands - in V_MUST_DEFs for renaming. - (eliminate_redundant_computations): Rename occurences of vdef - to v_may_def. - (record_equivalences_from_stmt): Rename occurences of vdef - to v_may_def. Also add code to record VUSEs for V_MUST_DEFs. - (optimize_stmt): Remove unnesessary variable vdefs. Update - comment. - (register_definitions_for_stmt): Rename occurences of vdef - to v_may_def. Also add code to register definitions made with - V_MUST_DEFs. - * tree-ssa-dse.c (fix_stmt_vdefs): Replace with... - (fix_stmt_v_may_defs): This. - (fix_phi_uses): Rename occurences of vdef to v_may_def. - (dse_optimize_stmt): Ditto. - * tree-ssa-live.c (create_ssa_var_map): Rename occurences of vdef - to v_may_def. Also add code to mark V_MUST_DEF operands as being - used in virtual operators. - * tree-ssa-loop.c (mark_defs_for_rewrite): Rename occurences of - vdef to v_may_def. Also add code to mark V_MUST_DEF operands for - renaming. - * tree-ssa-operands.c (opf_kill_def): New flag for killing - definitions. - (build_vdefs): Renamed to... - (build_v_may_defs): This. - (build_v_must_defs): New variable. - (voperands_d): Add v_must_def_ops and replace vdef_ops with - v_may_def_ops. - (append_vdef): Replace with... - (append_v_may_def): This. - (append_v_must_def): New function. - (NUM_FREE): Increment for V_MUST_DEF - (optype_freelist): Increment its size for V_MUST_DEF - (allocate_vdef_optype): Replace with... - (allocate_v_may_def_optype): This. - (allocate_v_must_def_optype): New function. - (free_vdefs): Replace with... - (free_v_may_defs): This. - (free_v_must_defs): New function. - (remove_vdefs): Replace with... - (remove_v_may_defs): This. - (remove_v_must_defs): New function. - (init_ssa_operands): Rename occurences of vdef to v_may_def. Also - add code to initialize build_v_must_defs. - (finalize_ssa_vdefs): Replace with... - (finalize_ssa_v_may_defs): This. - (finalize_ssa_vuses): Rename occurences of vdef to v_may_def. - (finalize_ssa_v_must_defs): New function. - (finalize_ssa_stmt_operands): Replace call to finalize_ssa_vdefs - with calls to finalize_ssa_v_may_defs and finalize_ssa_v_must_defs. - (verify_start_operands): Rename occurences of vdef to v_may_def. - Also add check for build_v_must_defs. - (get_stmt_operands): Rename occurences of vdef to v_may_def. - Also add code to handle V_MUST_DEFs and to use opf_kill_def for - killing definitions. - (get_expr_operands): Update comment and use opf_kill_def for - killing definitions. - (add_stmt_operand): Replace code that appends VDEFs with code - that appends V_MUST_DEFs when opf_kill_def is set and V_MAY_DEFs - otherwise. - (add_call_clobber_ops): Update comments. - * tree-ssa-operands.h (vdef_optype_d): Replace with... - (v_may_def_optype_d): This. - (v_must_def_optype_d): New structure. - (VDEF_OPS): Replace with... - (V_MAY_DEF_OPS): This. - (STMT_VDEF_OPS): Same with... - (STMT_V_MAY_DEF_OPS): This. - (NUM_VDEFS): And... - (NUM_V_MAY_DEFS): This. - (VDEF_RESULT_PTR): As well as... - (V_MAY_DEF_RESULT_PTR): This. - (VDEF_RESULT): Same goes for... - (V_MAY_DEF_RESULT): This. - (VDEF_OP_PTR): And... - (V_MAY_DEF_OP_PTR): This. - (VDEF_OP): And... - (V_MAY_DEF_OP): This. - (V_MUST_DEF_OPS): New macro. - (STMT_V_MUST_DEF_OPS): Ditto. - (NUM_V_MUST_DEFS): Ditto. - (V_MUST_DEF_OP_PTR): Ditto. - (V_MUST_DEF_OP): Ditto. - (remove_vdefs): Replace signature with... - (remove_v_may_defs): This. - (remove_v_must_defs): New function signature. - * tree-ssa-pre.c (subst_phis): Replace call to remove_vdefs - with calls to remove_v_may_defs and remove_v_must_defs. - (process_left_occs_and_kills): Rename occurences of vdef to v_may_def. - Also add code that marks left occurences of operands in V_MUST_DEFs. - * tree-tailcall.c (find_tail_calls): Rename occurences of vdef - to v_may_def. Also add check for V_MUST_DEFs. - (eliminate_tail_call):Rename occurences of vdef to v_may_def. - -2004-06-10 Vladimir Makarov - - PR target/15653 - * haifa-sched.c (schedule_block): Finish cycle after issuing asm - insn. - -2004-06-10 Volker Reichelt - - PR web/15263 - * doc/install.texi: Remove superfluous linebreak. - -2004-06-10 Roger Sayle - - * builtins.c (expand_builtin): Fall back to library function call for - conj, conjf, conjl, creal, crealf, creall, cimag, cimagf and cimagl. - (fold_builtin_1): Lower built-ins BUILT_IN_CONJ{,F,L} to CONJ_EXPR, - BUILT_IN_CREAL{,F,L} to REALPART_EXPR, and BUILT_IN_CIMAG{,F,L} to - IMAGPART_EXPR respectively. - -2004-06-10 J"orn Rennecke - - * sh.c (dump_table): New argument start. Changed caller. - (fixup_mova): New function. - (find_barrier): Use it. - (sh_reorg): Likewise. Check for CODE_FOR_casesi_worker_2. - If the label a mova refers to is above the mova itself, change - the mova into a load. - * sh.md (*casesi_worker): Rename to: - (casesi_worker_1). - (casesi_worker_2): New insn. - -2004-06-10 Jason Merrill - - * target.h (struct gcc_target): Change gimplify_va_arg_expr - hook signature. - * tree-gimple.h: Adjust. - * config/alpha/alpha.c (alpha_gimplify_va_arg): Adjust. - * config/i386/i386.c (ix86_gimplify_va_arg): Adjust. - Use fold_convert. - * config/ia64/ia64.c (ia64_gimplify_va_arg): Adjust. - * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust. - Use COMPLEX_EXPR for complex numbers. Use fold_convert. - * builtins.c (std_gimplify_va_arg_expr): Adjust. Use fold_convert. - (gimplify_va_arg_expr): Return GS_ERROR in error case. - Gimplify valist rather than calling stabilize_va_list. - -2004-06-10 Zdenek Dvorak - - * Makefile.in (df.o): Remove fibheap dependency. - * df.h: Do not include sbitmap.h. - (struct ref): New field "data". - (DF_REF_DATA): New accessor macro. - (struct df): Field "dom" removed. - (df_analyze_subcfg): New function. - (transfer_function_sbitmap, transfer_function_bitmap): Replaced by ... - (transfer_function): ... new type. - (iterative_dataflow_sbitmap, iterative_dataflow_bitmap): Replaced by ... - (iterative_dataflow): ... new function. - (enum set_representation, struct dataflow): New. - * df.c: Do not include fibheap.h. - - (df_reg_def_chain_clean, df_reg_use_chain_clean, - (df_bb_table_realloc, df_analyse_subcfg, free_reg_ref_chain, - prune_to_subcfg, df_bb_modify): New functions. - (df_bitmaps_alloc, df_reg_def_chain_create, df_reg_use_chain_create, - df_refs_update, df_reg_table_realloc, df_ref_create, - df_bb_reg_def_chain_create, df_bb_reg_use_chain_create, - df_bb_rd_local_compute, df_bb_ru_local_compute, df_bb_lr_local_compute, - df_analyse_1, df_insn_modify): Support analysing only a part of the cfg. - - (dataflow_set_a_op_b, dataflow_set_copy): New functions. - (df_rd_transfer_function, df_ru_transfer_function, - df_lr_transfer_function): Type of bitmaps changed to void *. - (hybrid_search_bitmap, hybrid_search_sbitmap): Merge into ... - (hybrid_search): ... new function. - (iterative_dataflow_bitmap, iterative_dataflow_sbitmap): Merge into ... - (iterative_dataflow): ... new function. Avoid use of fibheaps for - a worklist. Do not process basic blocks unnecessarily. - -2004-06-10 Roger Sayle - - * fold-const.c (fold_abs_const): Make extern. - * tree.h (fold_abs_const): Prototype here. - * builtins.c (fold_builtin_fabs): New function to transform - fabs, fabsf and fabsl builtins into ABS_EXPR tree nodes. - (fold_builtin_abs): New function to transform abs, labs, llabs - and imaxabs builtins into ABS_EXPR tree nodes. - (expand_builtin): Fall back to a function call for abs, labs, - llabs and imaxabs builtins that survive constant folding. - (fold_builtin_1): Call fold_builtin_fabs for FABS, FABSF and - FABSL, and fold_builtin_abs for ABS, LABS, LLABS and IMAXABS. - -2004-06-10 Jakub Jelinek - - * config/ia64/unwind-ia64.c (uw_frame_state_for): Don't assume a - leaf function without unwind info at RP 0. - -2004-06-10 Jakub Jelinek - - PR c++/14791 - * tree.h (enum tree_index): Add TI_FILEPTR_TYPE. - (fileptr_type_node): Define. - * tree.c (build_common_tree_nodes_2): Initialize - fileptr_type_node to ptr_type_node. - * c-common.c (c_common_nodes_and_builtins): For C++, make - fileptr_type_node a distinct type copy. - * builtin-types.def (BT_FILEPTR, BT_FN_INT_CONST_STRING_FILEPTR, - BT_FN_INT_INT_FILEPTR, BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG, - BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR, - BT_FN_INT_FILEPTR_CONST_STRING_VAR): Add. - (BT_FN_INT_CONST_STRING_PTR, BT_FN_INT_INT_PTR, - BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR, BT_FN_INT_PTR_CONST_STRING_VAR, - BT_FN_INT_PTR_CONST_STRING_VALIST_ARG): Remove. - * builtins.def (BUILT_IN_FPRINTF, BUILT_IN_FPRINTF_UNLOCKED, - BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED, BUILT_IN_FPUTS, - BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FSCANF, BUILT_IN_FWRITE, - BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_VFPRINTF, BUILT_IN_VFSCANF): Use - the above *FILEPTR* types instead of *PTR*. - -2004-06-09 Daniel Berlin - - * tree-ssa.c (verify_ssa): Verify that vdefs/makes_aliased_stores - match. - -2004-06-09 Roger Sayle - - * fold-const.c (fold_not_const): New function. - (fold) : Don't bother testing wins. - (fold) : Call fold_not_const. - (nondestructive_fold_unary_to_constant) : Likewise. - -2004-06-09 Richard Henderson - - PR middle-end/15228 - * function.c (assign_parms): Always set_mem_align with the computed - FUNCTION_ARG_BOUNDARY. Don't clear stack_parm if !STRICT_ALIGNMENT. - -2004-06-09 Richard Henderson - - PR opt/15108 - * tree-tailcall.c (find_tail_calls): Don't check early for - tail_recursion failure. - -2004-06-09 Diego Novillo - - Move SSA_NAME annotations into tree_ssa_name. - - * tree-dfa.c (create_ssa_name_ann): Remove. - * tree-flow-inline.h (ssa_name_ann, get_ssa_name_ann): Remove. - * tree-flow.h (enum tree_ann_type): Remove SSA_NAME_ANN. - (struct ssa_name_ann_d): Remove. - (union tree_ann_d): Update. - (ssa_name_ann_t): Remove. - * tree-ssa-alias.c: (get_ptr_info): New local function. - Replace references to ssa_name_ann_t with struct ptr_info_def. - * tree-ssa-operands.c (get_expr_operands): Likewise. - * tree.h (SSA_NAME_PTR_INFO): Define. - (struct ptr_info_def): Declare. - (struct tree_ssa_name): Add field 'ptr_info'. - -2004-06-09 Danny Smith - - * config/i386/winnt.c (i386_pe_output_labelref): Correct - misplaced ')'. - -2004-06-09 Steven Bosscher - - * config/i386/k6.md: Rewrite using the DFA model. - * config/i386/i386.c (ix86_adjust_cost): Don't increase the - cost of load-operation insns for the K6. - (ia32_use_dfa_pipeline_interface): Add TARGET_K6. - (ia32_multipass_dfa_lookahead): Likewise. - -2004-06-09 Richard Henderson - - * config/alpha/alpha.c (alpha_gimplify_va_arg_1, - alpha_gimplify_va_arg, TARGET_GIMPLIFY_VA_ARG_EXPR): New. - -2004-06-09 Richard Henderson - - * expmed.c (emit_store_flag): Cope with FLOAT_STORE_FLAG_VALUE. - -2004-06-09 Geoffrey Keating - - * Makefile.in (CPPLIB_H): Put files in order of inclusion. - (CPP_ID_DATA_H): New. - (gtype-desc.o): Update dependencies. - (GTFILES): Use CPP_ID_DATA_H. - -2004-06-09 Mark Mitchell - - Revert: - PR c++/15815 - 2004-06-07 Mark Mitchell - * doc/extend.texi: Deprecate #pragma interface and #pragma - implementation. - -2004-06-09 David S. Miller - - * config/sparc/sparc.h (MOVE_RATIO): New definition. - -2004-06-09 Richard Henderson - - * basic-block.h (struct edge_def): Add goto_locus. - * tree-cfg.c (make_goto_expr_edges): Set it. - (disband_implicit_edges): Use it. - * tree-pretty-print.c (dump_implicit_edges): Print it. - -2004-06-08 Anil Paranjpe - - * h8300.md (ldm_h8300s_4): Fix condition for expander. - -2004-06-08 Jason Merrill - - Gimplify VA_ARG_EXPR into simpler forms. - * target.h: Add gimplify_va_arg_expr hook. - * target-def.h: Add TARGET_GIMPLIFY_VA_ARG_EXPR. - * fold-const.c (build_fold_addr_expr) - (build_fold_addr_expr_with_type): Move from gimplify.c. - * tree.h: Declare them. - * gimplify.c (gimplify_and_add): New fn. - (build_addr_expr, build_addr_expr_with_type): Move to fold-const.c. - (gimplify_array_ref_to_plus, gimplify_modify_expr) - (gimplify_expr): Use build_fold_*. - (copy_if_shared_r): Only mark VA_ARG_EXPR volatile if we - don't know how to gimplify it. - * builtins.c (std_gimplify_va_arg_expr): New fn. - (dummy_object): New static fn. - (gimplify_va_arg_expr): New fn. - (stabilize_va_list): Use build_fold_*. - * tree-gimple.h: Declare new fns. - * config/i386/i386.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define. - (ix86_gimplify_va_arg): New fn. - * config/ia64/ia64.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define. - (ia64_gimplify_va_arg): New fn. - * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): New fn. - (TARGET_GIMPLIFY_VA_ARG_EXPR): Define. - * alias.c (get_varargs_alias_set): Just return 0 for now. - - * c-objc-common.c (c_tree_printer): Improve handling of %T. - -2004-06-09 Andrew Pinski - - * tree-complex.c (expand_complex_comparison): Use fold_convert instead - of convert. - * tree-inline.c (setup_one_parameter): Likewise. - * tree-sra.c (csc_build_component_ref): Likewise. - * tree-ssa-ccp.c (ccp_fold): Likewise. - * tree-ssa-copy.c (cprop_operand): Likewise. - * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise. - * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise. - -2004-06-09 J"orn Rennecke - - PR rtl-optimization/15521: - * sched-int.h (in_post_call_group_p): Change type to enum. - * sched-deps.c (sched_analyze_insn): - (sched_analyze): When in_post_call_group_p is post_call_initial, - don't add a dependency, but still set SCHED_GROUP_P and CANT_MOVE, - and also reset in_post_call_group_p to post_call. - (sched_analyze): When the previous basic block ended in a CALL_INSN, - initialize in_post_call_group_p as post_call_initial. - (init_deps): initialize in_post_call_group_p to not_post_call. - -2004-06-09 Arnaud Charlet - - PR ada/6637 - * doc/install.texi: List ada, libada as options to --enable-shared - -2004-06-09 Paolo Bonzini - - * aclocal.m4 (gcc_AC_PROG_LN): Remove. - (gcc_AC_CHECK_DECLS): Use AH_TEMPLATE to generate - config.in entries. - * configure.ac: Call ACX_PROG_LN, falling back to $LN_S - if hard links are not available. - * configure: Regenerate. - * config.in: Regenerate. - -2004-06-08 Per Bothner - - * configure.ac: New --enable-mapped-location sets USE_MAPPED_LOCATION. - -2004-06-08 Richard Kenner - - * toplev.c (floor_log2_wide): Correct casts for 64-bit hosts. - Correct formatting. - -2004-06-08 James E Wilson - - PR target/15790 - * config/i386/i386-coff.h (ASM_OUTPUT_ALIGN): Define. - -2004-06-08 Andrew Pinski - - * fold-const.c (fold_convert): Treat OFFSET_TYPE like - POINTER_TYPE and INTEGER_TYPE. - -2004-06-08 Bernardo Innocenti - - * modulo-sched.c: Compile only when INSN_SCHEDULING is - defined. - -2004-06-08 Jeff Law - - * doc/contrib.texi: Add entries for Stefan Olsson and - Ola Ronnerup. - -2004-06-08 DJ Delorie - - * toplev.c (floor_log2_wide): Replace loop with faster bit - operations. - (exact_log2_wide): Define in terms of the above. - * toplev.h (floor_log2): Use _builtin_clz family of builtins if - available. - -2004-06-08 Andrew Pinski - - * config/rs6000/rs6000.c (print_operand, ): - Make sure that we are in INDIRECT mode when getting the - stub name. - -2004-06-08 Anil Paranjpe - - * h8300.md (extendqisi2_h8300): Add constraints. - (ldm_h8300s_4_normal): Fix typo. - -2004-06-08 Richard Henderson - - * gimple-low.c (struct lower_data): Replace the_return_label and - one_return_stmt with return_statements. - (lower_function_body): Process the entire list of return_statements. - (lower_return_expr): Check source value before unifying return_exprs. - * gimplify.c (gimplify_return_expr): Force the use of a temporary - for !aggregate_value_p. - * tree-gimple.c: Update RETURN_EXPR grammer. - -2004-06-08 Vladimir Makarov - - PR target/15598 - * config/ia64/ia64.c (bundling): Add missed TYPE_A. - -2004-06-08 Zdenek Dvorak - - PR rtl-optimization/15717 - * config/i386/i386.c (legitimate_constant_p): Do not allow - x - symbol_ref. - -2004-06-08 Alexandre Oliva - - * gimplify.c (copy_if_shared_r): Revert: - 2004-05-21 Richard Henderson - * gimplify.c [...] Don't mark VA_ARG_EXPRs volatile here. - -2004-06-07 Roger Sayle - - * expmed.c (add_cost, neg_cost, sdiv_pow2_cheap, smod_pow2_cheap): - Make arrays indexed by machine mode. Rename negate_cost to neg_cost. - (init_expmed): Initialize these cost arrays as appropriate. - (store_bit_field, extract_bit_field): Correct whitespace. - (synth_mult, choose_mult_variant, expand_mult, expand_mult_highpart, - expand_mult_highpart_optab, expand_divmod): Update uses of add_cost, - neg_cost, sdiv_pow2_cheap, smod_pow2_cheap to index with mode, - word_mode or compute_mode as appropriate. - -2004-06-07 Eric Botcazou - - PR target/15783 - * config/sparc/sparc.c (function_arg_union_value): Add 'mode' - parameter. Enumerate the registers inside the PARALLEL. - (function_arg): Adjust call to function_arg_union_value. - (function_value): Likewise. - - * config/sparc/sparc.c (sparc_function_epilogue): Properly format. - -2004-06-07 Roger Sayle - - * real.c (real_copysign): New function to implement libm's copysign. - * real.h (real_copysign): Prototype here. - * fold-const.c (tree_expr_nonnegative_p): The result of sqrt, sqrtf - and sqrtl can be negative, as sqrt(-0.0) = -0.0. Correct whitespace. - * builtins.c (fold_builtin_isascii, fold_builtin_toascii, - fold_builtin_isdigit): Add function prototypes. - (fold_builtin_copysign): New function to fold copysign, copysignf - and copysignl. Optimize copysign(x,x) as x. Evaluate copysign of - constant arguments at compile-time using real_copysign. Fold - copysign(X,Y) as fabs(X) if Y is always non-negative. - (fold_builtin_1): Correct minor whitespace/style issues. Call - fold_builtin_copysign for BUILT_IN_COPYSIGN{,F,L}. - -2004-06-07 J"orn Rennecke - - * tree.c (iterative_hash_expr): Use real_hash. - -2004-06-07 Joseph S. Myers - - PR c/14765 - * c-parse.in (compstmt_primary_start): Set last_expr_type to - NULL_TREE. - -2004-06-07 Mark Mitchell - - PR c++/15815 - * doc/extend.texi: Deprecate #pragma interface and #pragma - implementation. - -2004-06-07 Alexandre Oliva - - PR middle-end/15666 - * c-decl.c (finish_decl): Use change_decl_assembler_name for the - builtin decl as well. - -2004-06-07 Roger Sayle - - PR c/14649 - * c-typeck.c (require_constant_value, require_constant_elements): - Move declarations to the top of the file. - (build_function_call): If we require a constant value, fold with - fold_initializer. If the result is a constant, and the function - wasn't called using __builtin_foo, issue a pedantic warning. - (build_unary_op): If we require a constant value, fold tree with - fold_initializer. - (build_binary_op): Use require_constant_value to determine whether - to call fold or fold_initializer. - -2004-06-07 Richard Henderson - - * gimple-low.c (struct lower_data): Add the_return_label and - one_return_stmt. - (lower_function_body): Initialize and use them. - (lower_return_expr): New. - (lower_stmt): Call it. - * gimplify.c (gimplify_return_expr): Force the argument to be either - null or a result_decl. - * tree-gimple.c: Update gimple grammer to match. - * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Deny - coalescing of result_decls. - -2004-06-07 Richard Henderson - - PR rtl-opt/15193 - * expmed.c (extract_bit_field): Fix vector_extract return. - - * config/i386/i386.md (negv4sf2): New pattern. - -2004-06-07 Mark Mitchell - - PR c++/15337 - * c-common.c (c_sizeof_or_alignof_type): Use more detailed error - message. - -2004-06-06 Paolo Bonzini - - * config.in: Regenerate. - -2004-06-06 Steven Bosscher - - * tree-cfg.c (tree_verify_flow_info): Make sure that labels in - SWITCH_LABELS are always sorted. - -2004-06-06 Steven Bosscher - - * hooks.c (hook_int_void_1): New generic hook. - * hooks.h (hook_int_void_1): Add prototype. - * config/c4x/c4x.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): - Define to hook_int_void_1. - * config/c4x/c4x.md: Replace dummies for the old pipeline model - with dummies for the new one. - -2004-06-06 Roger Sayle - - * tree.h (lvalue_or_else): Delete function prototype. - * c-typeck.c (lvalue_or_else): Make static. Add static prototype. - -2004-06-06 Stephane Carrez - - PR target/14542 - * config/m68hc11/m68hc11.md (move peephole2): Emit a use note to avoid - a live change of a register after peephole replacement. - -2004-06-06 Joseph S. Myers - - PR c/13519 - * c-typeck.c (composite_type, common_pointer_type): New functions. - (common_type): Split parts into composite_type and - common_pointer_type. Ensure that arithmetic operations return - unqualified types without attributes. Don't make composite type - of signed enum and compatible integer be unsigned. - (build_conditional_expr, build_binary_op): Use - common_pointer_type. - * c-decl.c (merge_decls): Use composite_type. - * c-tree.h (composite_type): Declare. - -2004-06-06 Stephane Carrez - - PR target/14457 - * config/m68hc11/m68hc11.c (splitable_operand): New predicate. - * config/m68hc11/m68hc11-protos.h (splitable_operand): Declare. - * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register it. - (inhibit_libc): Must define. - * config/m68hc11/m68hc11.md ("movhi_const0"): Use splitable_operand. - ("*andhi3_gen", "iorhi3", "*iorhi3_gen"): Likewise. - ("xorhi3"): Likewise. - -2004-06-06 Eric Botcazou - - * cgraphunit.c (cgraph_decide_inlining): Adjust dump lines in - always_inline pass. - -2004-06-05 David S. Miller - - * config/sparc/linux.h (TARGET_C99_FUNCTIONS): Set. - * config/sparc/linux64.h (TARGET_C99_FUNCTIONS): Likewise. - -2004-06-05 Bernardo Innocenti - - * regclass.c (init_reg_sets): Check for missing registers in target - initializer macros FIXED_REGISTERS and CALL_USED_REGISTERS. - -2004-06-05 Zack Weinberg - - * Makefile.in (MKDEPS_H): New shorthand. - (c-opts.o): Update dependencies. - * c-opts.c: Include mkdeps.h. - (handle_deferred_opts): Use cpp_get_deps and deps_add_target, - not cpp_add_dependency_target. - -2004-06-05 Steven Bosscher - - * config/v850/v850.c (v850_use_dfa_pipeline_interface): New. - * config/v850/v850.md: Convert to DFA scheduler description. - -2004-06-05 Tobias Schlueter - - PR fortran/15478 - * doc/install.texi: Document GMP as prerequisite. Document - --with-gmp and --with-gmp-dir configure options. - * fortran/gfortran.texi: Remove section "Compiling and testing", - remove TOC reference to it. - -2004-06-05 Graham Stott - - * combine.c(simplify_shift_const): Check shift amount is a - CONST_INT. - -2004-06-05 Danny Smith - - * toplev.c (init_asm_output): Add explicit 'b' to mode when - opening asm_out_file. - * c-pch.c (c_common_write_pch): Remove unnecessary fflush before - reading asm_out_file. Replace fflush after reading asm_out_file - with fseek. - * hosthooks-def.h (HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY): Define - default and add to HOST_HOOKS_INITIALIZER. - * hosthooks.h (gt_pch_alloc_granularity): Declare hook function. - * ggc-common.c (default_gt_pch_alloc_granularity): New function. - (gt_pch_save): Use host_hooks.gt_pch_alloc_granularity - to set mmi.offset padding. - * config.gcc (i[34567]86-*-mingw32*): Set target_gtfiles to - $(srcdir)/config/i386/winnt.c. - (i[34567]86-*-pe | i[34567]86-*-cygwin*): Likewise. - (i[34567]86-*-uwin*): Likewise. - *i[34567]86-*-interix3*): Likewise. - * config.host (i[34567]86-*-mingw32*): Set out_host_hook_obj. - * config/i386/host-mingw32.c: New file. - * config/i386/x-mingw32: Add rule for host-mingw32.o. - * config/i386/winnt.c: (struct extern_list) Tag as GTY. - (extern_head): Likewise. - (struct export_list) Likewise. - (export_head): Likewise. - (i386_pe_record_external_function): Use ggc_alloc. - (i386_pe_record_exported_symbol): Likewise. - Include "gt-winnt.h" at end. - * doc/hostconfig.texi: Document - HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY. - -2004-06-04 Bernardo Innocenti - - * config/m68k/m68k.h: Remove comments copied over from tm.texi. - Rename 68000 and 68k to m68k for consistency in comments. Remove - trailing whitespace before EOLs and before TABs. - (MAX_CODE_ALIGN): Remove unused macro. - (CALL_USED_REGISTERS): Reformat and add comments. - -2004-06-04 Frank Ch. Eigler - - * gcc.c (MFLIB_SPEC): Remove library references, to require users - to enumerate -lmudflap* and dependencies when linking. - -2004-06-04 Paolo Bonzini - - PR target/15822 - * dojump.c (do_jump): Fix uninitialized variable tcode1. - -2004-06-04 Jerry Quinn - - * Makefile.in (insn-conditions.o): Back out removal of reload.h. - * genconditions.c (write_header): Back out removal of reload.h. - -2004-06-04 Jan Hubicka - - Re-apply hopefully fixed patch: - * i386.md (UNSPECV_EH_RETURN): Kill. - (eh_return): Use jump_insn. - (eh_return_si, eh_return_di): Change pattern to jump instruction. - -2004-06-04 Jeff Law - - * cfgrtl.c (try_redirect_by_replacing_jump): Fix return value. - -2004-06-04 Steven Bosscher - - * except.c (for_each_eh_region): New function. - * except.h (for_each_eh_region): Add a prototype for it. - * tree-cfg.c (update_eh_labels): New function, callback for - for_each_eh_region. - (label_for_bb): Make global static, unfortunately. - (cleanup_dead_labels): Also update label references for - exception regions. - -2004-06-03 Chris Demetriou - - * config/mips/mips.c (struct irix_section_align_entry): Fix - GTY marker. - -2004-06-03 Geoffrey Keating - - * toplev.c (check_global_declarations): Don't ask for - DECL_ASSEMBLER_NAME unless the function really is declared - static and not defined. - -2004-06-03 Matt Austern - - PR c++/15428 - * default.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): New name - for TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, with reversed sense. - * config/darwin.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Likewise. - * doc/tm.texi (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Rewrite - documentation to reflect the new macro name and to clarify its - meaning. - -2004-06-03 Steven Bosscher - - * rtl.def (VAR_LOCATION): Make RTX_EXTRA. - -2004-06-03 Andrew Pinski - - * config/darwin.c (machopic_indirect_data_reference): Copy - the SYMBOL_REF_DECL from the original RTX for the new - non-lazy pointer RTX. - -2004-06-03 Mark G. Adams - - * tree.h: Remove include of version.h - * c-cppbuiltin.c: Include version.h - * diagnostic.c: Include version.h - * dwarf2out.c: Include version.h - * toplev.c: Include version.h - * vmsdbgout.c: Include version.h - * Makefile.in: Remove dependency on version.h from TREE_H, and - add dependencies to required .o targets - -2004-06-03 Jerry Quinn - - * Makefile.in (RA_H, RESOURCE_H, SCHED_INT_H, CFGLAYOUT_H, - CFGLOOP_H, DF_H, DDG_H, TREE_SSA_LIVE_H): New. - (TARGET_H): Add insn-modes.h. - (tree-ssa.o, tree-cfg.o, tree-ssa-loop.o, toplev.o, passes.o, - loop.o, loop-doloop.o, unroll.o, cfgloop.o, cfgloopanal.o, - loop-iv.o, cfgloopmanip.o, loop-init.o, loop-unswitch.o, - loop-unroll.o, ddg.o, modulo-sched.o, predict.o, - cfglayout.o, ifcvt.o): Replace cfgloop.h with CFGLOOP_H. - (toplev.o, passes.o, cfghooks.o, cfgloopmanip.o, loop-init.o, - loop-unswitch.o, loop-unroll.o, ddg.o, modulo-sched.o, - bb-reorder.o, tracer.o, cfglayout.o): Replace cfglayout.h with - CFGLAYOUT_H. - (ra.o, ra-build.o, ra-colorize.o, ra-debug.o, ra-rewrite.o): - Replace ra.h with RA_H. - (resource.o, regrename.o, insn-conditions.o, insn-emit.o, - insn-recog.o): Replace resource.h with RESOURCE_H. - (ddg.o, modulo-sched.o, haifa-sched.o, sched-deps.o, sched-rgn.o, - sched-ebb.o, sched-vis.o, out_object_file): Replace sched-int.h - with SCHED_INT_H. - (web.o, lcm.o, df.o, ra.o, ra-build.o, ra-colorize.o, ra-debug.o, - ra-rewrite.o): Replace df.h with DF_H. - (ddg.o, modulo-sched.o): Replace ddf.h with DDG_H. - (tree-outof-ssa.o, tree-ssa-live.o, tree-ssa-copyrename.o): - Replace tree-ssa-live.h with TREE_SSA_LIVE_H. - (insn-conditions.o): Remove unused reload.h. - * cfglayout.h: Add include guard. Include basic-block.h. - * cfgloop.h: Add include guard. Include basic-block.h, rtl.h. - * ddg.h: Include sbitmap.h, basic-block.h, df.h. - * df.h: Add include guard. Include bitmap.h, sbitmap.h, - basic-block.h. - * genconditions.c: Remove reload.h. - * ra.h: Add include guard. Include bitmap.h, sbitmap.h, - hard-reg-set.h, insn-modes.h. - * resource.h: Add include guard. Include hard-reg-set.h. - * sched-int.h: Add include guard. Include insn-attr.h, - basic-block.h, rtl.h. - * target.h: Add include guard. Include insn-modes.h. - * tree-ssa-live.h: Include partition.h. - -2004-06-03 Daniel Berlin - Kenneth Zadeck - - * tree-ssa-ccp.c (varying_ssa_edges): New worklist. - (add_var_to_ssa_edges_worklist): Add value argument. - Update callers. - Use new worklist. - (process_ssa_edge_worklist): New function. - (tree_ssa_ccp): Move worklist processing core to - process_ssa_edge_worklist, and just call that for the two worklists. - -2004-06-03 Steven Bosscher - - * basic-block.c (tail_recursion_label_list): Don't declare. - (CLEANUP_PRE_SIBCALL): Remove. Renumber the other CLEANUP_* - accordingly. - * cfgbuild.c (find_label_refs): Remove. - (find_basic_blocks_1): Don't handle CALL_PLACEHOLDER insns. - * cfgcleanup.c (tail_recursion_label_p): Remove. - (merge_blocks_move): Do not check for tail recursion. - (try_optimize_cfg): Likewise. - (cleanup_cfg): Never handle CLEANUP_PRE_SIBCALL. - * cfgrtl.c (tail_recursion_label_list): Remove. - * except.c (remove_unreachable_regions): Don't handle - CALL_PLACEHOLDER insns. - (convert_from_eh_region_ranges_1, can_throw_internal, - can_throw_external): Likewise. - * function.c (free_after_compilation): Don't clear - x_tail_recursion_label. - (fixup_var_refs_insns): Don't handle CALL_PLACEHOLDER insns. - (identify_blocks_1): Don't recurse for CALL_PLACEHOLDER insns. - (reorder_blocks_1): Likewise. - * function.h (struct function): Remove x_tail_recursion_label - member. Don't define tail_recursion_label. - * jump.c (mark_all_labels): Don't handle CALL_PLACEHOLDER insns. - * print-rtl.c (print_rtx): Likewise. - * rtl.def (CALL_PLACEHOLDER): Remove. - * rtl.h (sibcall_use_t): Remove enum. - (optimize_sibling_and_tail_recursive_calls, - replace_call_placeholder): Remove function prototypes. - * stmt.c (tail_recursion_args): Remove. - (optimize_tail_recursion): Remove. - (expand_return): Don't check for possible tail recursion. - * tree.h (optimize_tail_recursion): Remove prototype. - -2004-06-02 Jan Hubicka - - * tree-cfg.c (tree_find_edge_insert_loc): Allow inserting before - return_stmt. - -2004-06-02 Jason Merrill - - * Makefile.in (TAGS): Don't mess with c-parse.[ch]. - Do include c-parse.in. - -2004-06-02 Eric Christopher - - * c-typeck.c (common_type): Don't lose type qualifiers - when creating new variants. - -2004-06-02 Andrew Pinski - - PR tree-optimization/14042 - PR tree-optimization/14729 - PR tree-optimization/14736 - * tree-ssa.c (tree_ssa_useless_type_conversion_1): - Check the type which the pointer points to - instead of the pointer types. - -2004-06-02 Kazu Hirata - - PR tree-optimization/15738. - * builtins.c (fold_builtin_strchr): Transform - strrchr (s, '\0') to strchr (s, '\0'). - -2004-06-02 Steven Bosscher - - * i386.c (ix86_adjust_cost): Don't increase the cost for - load+operation for PROCESSOR_PENTIUMPRO, it is already - modelled in the DFA description - -2004-06-01 Jerry Quinn - - * Makefile.in (EXPR_H): Add insn-config.h, function.h, - $(RTL_H), flags.h, $(TREE_H), $(MACHMODE_H), $(EXPR_H). - (ALIAS_H, EMIT_RTL_H): New. - (cselib.o): Replace EXPR_H with EMIT_RTL_H. - (cfgcleanup.o): Add EMIT_RTL_H. - (alias.o): Replace EXPR_H with EMIT_RTL_H and ALIAS_H. - * alias.c: Replace expr.h with emit-rtl.h and alias.h. - * attribs.c, c-lex.c, c-obj-common.c, c-semantics.c: Remove expr.h. - * cfgcleanup.c, cselib.c: Replace expr.h with emit-rtl.h. - * expr.h: Add include guard. Include function.h, rtl.h, flags.h, - tree.h, machmode.h, insn-config.h, alias.h, emit-rtl.h. - (get_varargs_alias_set, get_frame_alias_set, record_base_value, - record_alias_subset, new_alias_set, can_address_p): Move to alias.h. - (set_mem_alias_set, set_mem_align, set_mem_expr, set_mem_offset, - set_mem_size): Move to emit-rtl.h. - * emit-rtl.h: New. - * alias.h: New. - -2004-06-01 Eric Botcazou - - * function.c (walk_fixup_memory_subreg): New parameter 'var'. - Call fixup_memory_subreg only if the MEM is equal to 'var'. - Adjust recursive calls to self. - (fixup_var_refs_insn): Pass 'var' to walk_fixup_memory_subreg. - -2004-06-01 Richard Henderson - Andrew Pinski - - * c-parse.in (OFFSETOF, offsetof_member_designator): New. - (primary): Handle offsetof. Add error productions for faux functions. - Move component_ref objc checking to build_component_ref. - (reswords): Add offsetof. - (rid_to_yy): Add offsetof. - * c-tree.h (build_offsetof): Declare. - * c-common.h (objc_is_public): Declare. - * c-typeck.c (build_component_ref): Check objc_is_public. - (build_offsetof): New. - * stub-objc.c (objc_is_public): New. - * objc/objc-act.c, objc/objc-act.h (objc_is_public): Rename - from is_public. - * ginclude/stddef.h (offsetof): Use __builtin_offsetof. - * doc/extend.texi (Offsetof): Move from C++ section to C section - and rewrite for __builtin_offsetof. - -2004-06-01 Peter Barada - Peter Jakubek - - * config/m68k/m68k.c(m68k_output_mi_thunk): For ColdFire, use %d0 as - a scratch to perform an add to memory. - -2004-06-01 Bernardo Innocenti - - PR target/14018 - * config/m68k/m68k.c (m68k_align_loops_string, m68k_align_jumps_string, - m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps, - m68k_align_funcs): Remove. - (override_options): Remove code to handle -malign-* options. - * config/m68k/m68k.h (TARGET_OPTIONS): Remove -malign-* options. - (FUNCTION_BOUNDARY, LOOP_ALIGN, LOOP_ALIGN_AFTER_BARRIER): Remove. - (m68k_align_loops_string, m68k_align_jumps_string, - m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps, - m68k_align_funcs): Remove definitions. - -2004-06-01 Paul Eggert - - PR target/15626 - * doc/install.texi (sparc-sun-solaris2*): Document messages issued - by the Sun linker in conjunction with the Sun assembler. - (sparc-sun-solaris2.7): Update revision info for Sun patch 106950. - -2004-06-01 Jeff Law - - * stmt.c (expand_decl): Be more selective about calling - mark_reg_pointer. - -2004-06-01 Nicola Pero - - PR objc/7993 - * objc-act.c (is_private): Do not emit the 'instance variable %s - is declared private' error. - (is_public): Emit the error after calling is_private. - (lookup_objc_ivar): If the instance variable is private, return 0 - - the instance variable is invisible here. - -2004-06-01 Eric Botcazou - - * doc/invoke.texi (-static-libgcc): Explicitly mention - non-GNU linkers. - -2004-06-01 Bernardo Innocenti - - PR target/12968 - * doc/invoke.texi: Document stack alignment side-effect of -mshort. - -2004-05-31 Joseph S. Myers - - PR c/15749 - * c-decl.c (grokdeclarator, finish_struct): Don't pedwarn for - misuses of structures with flexible array members if - in_system_header. - -2004-05-31 Eric Botcazou - - PR target/15693 - * config/sparc/sparc.c (compare_operand): New predicate. - * config/sparc/sparc.h (PREDICATE_CODES): Add it. - * config/sparc/sparc.md (cmpsi expander): Use it. If the first - operand is a ZERO_EXTRACT and the second operand is not zero, - force the former to a register. - (cmpdi expander): Likewise. - -2004-05-31 Geoffrey Keating - - * gengtype-lex.l: Catch stray GTY markers in the files gengtype - looks at. - * alias.c (alias_invariant_size): Make alias_invariant_size - static, fix GTY marker. - -2004-05-31 Kazu Hirata - - PR tree-optimization/15743. - * builtins.c (fold_builtin_1): Fold index() and rindex(). - -2004-05-31 Roger Sayle - - PR middle-end/15069 - * fold-const.c (fold_single_bit_test): Only perform "(X & C) != 0" - into "X < 0" (where C is the signbit) if X's type is a full mode. - -2004-05-31 John David Anglin - - * pa.md: Disable the peephole2 patterns that generate indexed - floating-point stores when indexing is disabled. - -2004-05-31 Gabriel Dos Reis - - * c-pretty-print.c (pp_c_left_bracket): Make a function. - (pp_c_right_bracket): Likewise. - (pp_c_star): Likewise. - (pp_c_ampersand): Define. - * c-pretty-print.h (pp_c_left_bracket): Declare. - (pp_c_right_bracket): Likewise. - (pp_c_star): Likewise. - (pp_c_ampersand): Likewise. - -2004-05-31 Eric Botcazou - - * config/sol2.h (__enable_execute_stack): ANSIfy function - definition. - -2004-05-31 Danny Smith - - * c-incpath.c (add_path): Canonicalize paths to use '/' if - HAVE_DOS_BASED_FILESYSTEM. - -2004-05-31 Steven Bosscher - - * tree-ssa-dom.c (record_equivalences_from_incoming_edge): - Only look at case labels if the immediate dominator is also - the only predecessor. Don't look for more case labels if the - first seen is a case range. - -2004-05-31 Kazu Hirata - - * builtins.c: Add a prototype for fold_builtin_strchr(). - -2004-05-31 Paolo Bonzini - - Revert this patch: - 2004-05-27 Paolo Bonzini - - * combine.c (gen_binary): Remove. - (known_cond, simplify_shift_const - find_split_point, combine_simplify_rtx, - simplify_if_then_else, simplify_set, - simplify_logical, expand_field_assignment, - extract_left_shift, force_to_mode, - if_then_else_cond, apply_distributive_law, - simplify_and_const_int, simplify_shift_const, - gen_lowpart_for_combine, simplify_comparison, - reversed_comparison): Replace with - simplify_gen_binary, simplify_gen_relational or - distribute_and_simplify_rtx. - (distribute_and_simplify_rtx): New function. - -2004-05-30 John David Anglin - - * pa.c (emit_move_sequence): Fix loading of non 14-bit CONST operands - when generating PIC code. - -2004-05-30 Andrew Pinski - - * c-decl.c (c_expand_body_1): Remove and fold back into ... - (c_expand_body): here. - (c_expand_decl): Move to ... - * c-common.c (c_expand_decl): Here and remove check for nested - functions. - * c-common.h (c_expand_decl): Add prototype. - * c-tree.h (c_expand_decl): Remove. - -2004-05-30 Roger Sayle - - * fold-const.c (combine_comparisons, optimize_bit_field_compare, - range_binop, fold_truthop, fold_binary_op_with_conditional_arg, - fold_mathfn_compare, fold_inf_compare, fold, - fold_relational_hi_lo, nondestructive_fold_binary_to_constant): - Use constant_boolean_node where appropriate. Don't bother using - fold_convert on the second argument to omit_one_operand. - -2004-05-30 Roger Sayle - - * doc/c-tree.texi (Expressions): Document FLOOR_DIV_EXPR, - CEIL_DIV_EXPR, ROUND_DIV_EXPR, FLOOR_MOD_EXPR, CEIL_MOD_EXPR, - ROUND_MOD_EXPR, EXACT_DIV_EXPR. Improve documentation of - TRUNC_DIV_EXPR, TRUNC_MOD_EXPR and comparison operations. - Add missing (but documented) tree nodes to the index. - -2004-05-30 Steven Bosscher - - PR tree-optimization/14819 - * builtins.c (fold_builtin_strchr): New. - (fold_builtin_1): Handle BUILT_IN_STRCHR and BUILT_IN_STRRCHR - with fold_builtin_strchr(). - -2004-05-30 Kazu Hirata - - * bb-reorder.c, builtins.c, c-common.c, c-gimplify.c, - c-incpath.c, cgraphunit.c, ddg.c, defaults.h, dwarf2out.c, - expmed.c, flags.h, gcc.c, gensupport.c, gimplify.c, global.c, - passes.c, reg-stack.c, target.h, toplev.c, tree-alias-ander.c, - tree-alias-common.c, tree-cfg.c, tree-complex.c, tree-dfa.c, - tree-eh.c, tree-mudflap.c, tree-mudflap.h, tree-outof-ssa.c, - tree-phinodes.c, tree-pretty-print.c, tree-ssa-alias.c, - tree-ssa-ccp.c, tree-ssa-live.c, tree-ssa-live.h, - tree-ssa-pre.c, tree.h, value-prof.h, varasm.c: Fix comment - formatting. - -2004-05-30 Steven Bosscher - - * gimplify.c (sort_case_labels): New. Split out from... - (gimplify_switch_expr): ...here. Use it. - * tree-eh.c (lower_try_finally_switch): Sort the labels of - the SWITCH_EXPR created here before leaving the function. - * tree.c (sort_case_labels): Add prototype. - -2004-05-30 Andrew Pinski - - * fold-const.c (fold) [case TRUTH_NOT_EXPR]: Make sure the type is - of BOOLEAN_TYPE. - -2004-05-30 Kazu Hirata - - * c-common.c, calls.c, cfgcleanup.c, cgraph.c, cgraphunit.c, - ddg.c, ddg.h, df.c, df.h, except.c, expr.c, flags.h, - fold-const.c, gcc.c, gimplify.c, haifa-sched.c, - modulo-sched.c, tree-inline.c, tree-into-ssa.c, tree-nested.c, - tree-nrv.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-live.c, - tree-ssa-loop.c, tree-ssa-pre.c, tree-tailcall.c, tree.h: Fix - comment typos. Follow spelling conventions. - -2004-05-29 Geoffrey Keating - - * gengtype-yacc.y: Add NESTED_PTR token. - (option): Record `nested_ptr' option. - * gengtype-lex.l: Handle `nested_ptr' keyword. - * gengtype.c (walk_type): Process `nested_ptr' option. - * gengtype.h (struct nested_ptr_data): New. - * doc/gty.texi (GTY Options): Document `nested_ptr' option. - * stringpool.c (struct string_pool_data): Make 'entries' point to - ht_identifier instead of tree. - (gt_pch_save_stringpool): Don't adjust pointers. - (gt_pch_restore_stringpool): Call ht_load. - -2004-05-29 Jason Merrill - - * gimplify.c (gimplify_expr): Don't build a statement list - if no gimplification was necessary. - -2004-05-29 Joseph S. Myers - - * pretty-print.c (pp_base_format_text): Support %< instead of %` - and %> as well as %'. - * c-format.c: Use %< and %>. - (gcc_diag_char_table, gcc_cdiag_char_table, - gcc_cxxdiag_char_table): Update. - -2004-05-29 Joseph S. Myers - - * c-typeck.c (common_type): Correct comment. - -2004-05-29 Peter Barada - - * config/m68k/m68k.c (CONST_METHOD): Add MVZ, MVS. - * config/m68k/m68k.c (const_method): Likewise. - * config/m68k/m68k.c (const_int_cost): Likewise. - * config/m68k/m68k.c (const_int_cost): Likewise. - * config/m68k/m68k.c (output_move_const_into_data_reg): Likewise. - -2004-05-29 Peter Barada - - * config/m68k/m68k.h (EXTRA_CONSTRAINT): add 'U' for register offset - addressing. - * config/m68k/m68k.md: Add 'U,U' alternative to ColdFire variants of - movsi,movhi,movqi insn patterns. - -2004-05-28 Andrew Pinski - - * c-semantics.c (emit_local_var): Remove code for DECL_INITIAL. - - PR target/15720 - * config/darwin.c (machopic_indirect_call_target): Copy - the SYMBOL_REF_DECL from the original RTX for the new - stub RTX. - -2004-05-28 DJ Delorie - - * stor-layout.c (place_field): Revert erroneous commit. - -2004-05-28 Ziemowit Laski - - * config/rs6000/altivec.h (vec_ctf, vec_vcfsx, vec_vcfux, vec_cts, - vec_ctu, vec_dss, vec_dst, vec_dstst, vec_dststt, vec_dstt, vec_ld, - vec_ldl, vec_lvsl, vec_lvsr, vec_sld, vec_splat, vec_vspltw, - vec_vsplth, vec_vspltb, vec_splat_s8, vec_splat_s16, vec_splat_s32, - vec_splat_u8, vec_splat_u16, vec_splat_u32, vec_st, vec_stl, - vec_ste): Remove type checks for integral parameters and literals - from '..._args_eq' macros. - -2004-05-28 Aldy Hernandez - - * c-common.c (fname_as_string): Fix xcalloc to xmalloc. - -2004-05-28 Aldy Hernandez - - * testsuite/g++.dg/charset/function.cc: New. - - * testsuite/gcc.dg/charset/function.c: New. - - * c-decl.c (c_make_fname_decl): Free return value from - fname_as_string. - - * cp/decl.c (cp_make_fname_decl): Free return value from - fname_as_string. - - * c-common.c (fname_as_string): Translate if necessary. - -2004-05-28 Geoffrey Keating - - * stringpool.c: Add comments to PCH saving/restoring routines. - -2004-05-28 Andrew Pinski - - * c-common.c (c_estimate_num_insns_1): Kill. - (c_estimate_num_insns): Kill. - * c-common.h (c_estimate_num_insns): Kill. - - * gthr-posix.h: Check for _POSIX_PRIORITY_SCHEDULING - when checking for _POSIX_THREAD_PRIORITY_SCHEDULING. - Remove comment about not checking for - _POSIX_PRIORITY_SCHEDULING. - * gthr-posix.c: Likewise. - -2004-05-28 Paolo Bonzini - Roger Sayle - - PR rtl-optimization/15649 - Add LTGT_EXPR and improve pretty-printing of unordered - comparisons. - * c-common.c (c_common_truthvalue_conversion): - Handle LTGT_EXPR. - * c-typeck.c (build_binary_op): Likewise. - * dojump.c (do_jump): Likewise. - * expr.c (expand_expr_real_1, do_store_flag): Likewise. - * predict.c (tree_predict_by_opcode): Likewise. - * real.c (real_compare): Likewise. - * tree-cfg.c (verify_expr): Likewise. - * tree-inline.c (estimate_num_insns_1): Likewise. - * tree-pretty-print.c (dump_generic_node): Likewise. - Handle ORDERED_EXPR, UNORDERED_EXPR. - (op_symbol): Print unordered comparisons differently - than ordered ones. - * tree.def (LTGT_EXPR): New '<' tree code. - * doc/c-tree.texi (Expressions): Document floating-point - comparison nodes. - - Fold comparisons between floating point values. - * fold-const.c (enum comparison_code): New, from - #define'd constants. Define compcodes for unordered - comparisons and for invalid transformations. - (invert_tree_comparison): Add "honor_nans" parameter. - (fold_truthop): Revamp to work on floating-point types too. - (comparison_to_compcode): Support unordered comparisons. - Use new enum comparison_code. - (compcode_to_comparison): Likewise. - (combine_compcodes): New function. - (invert_truthvalue): Let invert_tree_comparison decide - whether it is valid to fold the comparison. Fold ORDERED - and UNORDERED even if flag_unsafe_math_optimizations is off, - and the remaining even if flag_unsafe_math_optimizations - is off but we are under -fno-trapping-math. - (fold_relational_const): Integer modes do not honor NaNs. - -2004-05-28 Paul Brook - - * config/arm/arm.c (arm_output_epilogue): Remove redundant code. - -2004-05-28 Paul Brook - - * config/arm/arm.c (thumb_force_lr_save): New function. - (arm_get_frame_offsets, thumb_unexpanded_epilogue, - thumb_output_function_prologue): Use it. - (thumb_expand_prologue): Set lr_save_eliminated. - -2004-05-28 Richard Sandiford - - * config/mips/mips.md (extendsidi2): Tie the source and destination - of the register alternative. Split it into nothing. - -2004-05-28 Richard Sandiford - - * rtl.h (skip_consecutive_labels): Declare. - * emit-rtl.c (skip_consecutive_labels): New function. - * reorg.c (relax_delay_slots, dbr_schedule): Use it. - * jump.c (follow_jumps): Say what null return values mean. - -2004-05-28 Kaz Kojima - - PR target/13250 - * config/sh/sh.md (rotlsi3): Use emit_move_insn. - -2004-05-27 Kaz Kojima - - * config/sh/t-linux (SHLIB_MAPFILES): Use sh specific - libgcc-std.ver. - * config/sh/libgcc-std.ver: New file. - -2004-05-27 Bryce McKinlay - - * except.c: Revert change of 2004-05-26. - * config/i386/i386.md: Revert change of 2004-05-27. - -2004-05-27 Bryce McKinlay - - * configure.ac: Remove --enable-tree-browser option. - Define TREEBROWSER when ac_tree_checking is defined. - * configure: Rebuilt. - -2004-05-27 Olivier Hainque - - * expr.c (store_constructor): Restore sanity check on - the size of the type before clearing. - -2004-05-27 Jan Hubicka - - * cfgbuild.c (control_flow_insn_p): Notice noreturn call - -2004-05-27 Paolo Bonzini - - * combine.c (gen_binary): Remove. - (known_cond, simplify_shift_const - find_split_point, combine_simplify_rtx, - simplify_if_then_else, simplify_set, - simplify_logical, expand_field_assignment, - extract_left_shift, force_to_mode, - if_then_else_cond, apply_distributive_law, - simplify_and_const_int, simplify_shift_const, - gen_lowpart_for_combine, simplify_comparison, - reversed_comparison): Replace with - simplify_gen_binary, simplify_gen_relational or - distribute_and_simplify_rtx. - (distribute_and_simplify_rtx): New function. - * simplify-rtx.c (simplify_binary_operation): - Use nonzero_bits to simplify ANDs where we are - turning off bits already known to be off in OP0. - -2004-05-27 Alan Modra - - PR target/14478 - * config/rs6000/rs6000.c (reg_or_neg_short_operand): Don't allow zero. - -2004-05-27 Josef Zlomek - - PR middle-end/14084 - * emit-rtl.c (gen_rtx_REG_offset): Adjust the offset according - to size of decl. - -2004-05-26 Aldy Hernandez - - PR/14924 - * config/rs6000/rs6000.c (spe_expand_stv_builtin): New. - -2004-05-26 Roger Sayle - - * tree.h: Fix comment typo. - -2004-05-27 Steven Bosscher - - * gimplify.c (compare_case_labels): New function. - (gimplify_switch_expr): Sort case labels, and make sure the - last label in the label vector is the default case. - * tree-cfg.c (group_case_labels): New function. - (build_tree_cfg): Cleanup redundant labels and group case labels - before creating edges. - (cleanup_dead_labels): Handle GOTO_EXPRs. - (find_case_label_for_value): Use a binary search to find the - case label for the given value. - * tree-gimple.c: Mention that labels are sorted, and that the - last label must be the default. - -2004-05-27 Jan Hubicka - - * cfgcleanup.c (try_optimize_cfg): Do not merge across jumptables. - -2004-05-27 Jan Hubicka - - * i386.md (UNSPECV_EH_RETURN): Kill. - (eh_return): Use jump_insn. - (eh_return_si, eh_return_di): Change pattern to jump instruction. - -2004-05-26 Jan Hubicka - - * cfgcleanup.c (try_forward_edges): Do not check loop structure when - not loop optimizing. - -2004-05-26 Jan Hubicka - - * except.c (can_throw_internal): Notice RESX instructions. - -2004-05-26 Eric Botcazou - - * varasm.c (output_constant) : Pass the minimum - of the two sizes to assemble_integer. - -2004-05-25 Paul Brook - - * config/arm/arm.c (thumb_exit, thumb_unexpanded_epilogue): Remove - pointless #ifdef. - -2004-04-25 Paolo Bonzini - - * Makefile.in (top_builddir): Define to . - -2004-05-25 Alexandre Oliva - - * configure.ac (gcc_cv_ld): Prefer in-tree ld over whatever the - top-level detects, except when in-tree ld is being cross-built. - (gcc_cv_as): Likewise for as. Use AS_FOR_TARGET otherwise, and - then AS only if target is host. - * configure: Rebuilt. - -2004-05-25 Vladimir Makarov - - * global.c (global_alloc): Call make_accurate_live_analysis. - (record_one_conflict): Remove dead code. - (mark_reg_clobber): Remove ATTRIBUTE_UNUSED for parameter data. - (bb_info): New structure. - (BB_INFO, BB_INFO_BY_INDEX): New macros. - (allocate_bb_info, free_bb_info, mark_reg_change, - calculate_local_reg_bb_info, set_up_bb_rts_numbers, rpost_cmp, - modify_bb_reg_pav, calculate_reg_pav, - make_accurate_live_analysis): New functions. - -2004-05-25 Devang Patel - - * alias.c (init_alias_analysis): Use ggc_calloc instead of - xrealloc. - (end_alias_analysis): Use ggc_free instead fo free. - -2004-05-25 Andrew Pinski - - PR target/15546 - * config/ia64/ia64.h (ASM_OUTPUT_FDESC): Mark the DECL - as needed to be outputted. - -2004-05-25 Jan Hubicka - - * builtins.def (__builtin_expect): Mark the function as const¬hrow. - -2004-05-25 Ayal Zaks - Mostafa Hagog - - * Makefile.in (modulo-sched.o, ddg.o): New. - * ddg.h, ddg.c, modulo-sched.c: New files. - * cfglayout.c (duplicate_insn_chain): Remove "static" and push - internals to "dupicate_insn". - (duplicate_insn): New function. - * cfglayout.h (duplicate_insn_chain, duplicate_insn): New - declarations. - * common.opt (fmodulo-sched): New flag. - * df.c (df_bb_regno_last_use_find, df_bb_regno_first_def_find): - Remove static and forward declaration. - (df_find_def, df_reg_used, df_bb_regno_last_def_find): New - functions. - * df.h (df_bb_regno_last_use_find, df_bb_regno_first_def_find, - df_bb_regno_last_def_find, df_find_def, df_reg_used): New - declarations. - * flags.h (flag_modulo_sched): New flag. - * opts.c (common_handle_option): Handle modulo-sched flag. - * params.def (max-sms-loop-number, sms-max-ii-factor, - sms-dfa-history, sms-loop-average-count-threshold): New - parameters. - * params.h (MAX_SMS_LOOP_NUMBER, SMS_MAX_II_FACTOR, - SMS_DFA_HISTORY, SMS_LOOP_AVERAGE_COUNT_THRESHOLD): New - parameters. - * passes.c ("sms", "sms-vcg"): New dumps. - (rest_of_handle_sched): Call sms_schedule. - * rtl.h (sms_schedule): New declaration. - * timevar.def (TV_SMS): New. - * toplev.c (flag_modulo_sched): Initialize. - (f_options): Handle -fmodulo-sched option. - * docs/invoke.texi: Document -fmodulo-sched & -dm options. - * docs/passes.texi: Document new SMS pass. - -2004-05-25 Paolo Bonzini - - * Makefile.in (OBJS): Add rtlhooks.o. - (rtlanal.o): Depend on function.h. - (cse.o): Depend on rtlhooks-def.h. - (combine.o): Depend on rtlhooks-def.h. - (rtlhooks.o): New rule. - * combine.c: Include rtlhooks-def.h. - (nonzero_bits, cached_nonzero_bits, nonzero_bits1, - num_sign_bit_copies, cached_num_sign_bit_copies, - num_sign_bit_copies1): Move most of the code to rtlanal.c. - (reg_nonzero_bits_for_combine, - reg_num_sign_bit_copies_for_combine): New functions holding - the remnants of the above. - (combine_rtl_hooks): New. - (combine_instructions): Set rtl_hooks instead of gen_lowpart. - * cse.c: Include rtlhooks-def.h. - (cse_rtl_hooks): New. - (cse_main): Set rtl_hooks instead of gen_lowpart. - * emit-rtl.c (gen_lowpart): Remove. - (gen_lowpart_general): Move to rtlhooks.c. - * rtl.h (nonzero_bits, num_sign_bit_copies, - struct rtl_hooks, rtl_hooks, general_rtl_hooks): New. - (gen_lowpart_general): Remove. - (gen_lowpart): Temporarily redefine as a macro. - * rtlanal.c: Include function.h. - (nonzero_bits, cached_nonzero_bits, nonzero_bits1, - num_sign_bit_copies, cached_num_sign_bit_copies, - num_sign_bit_copies1): New, from combine.c. - * rtlhooks.c: New file. - * rtlhooks-def.h: New file. - -2004-05-25 Svein E. Seldal - - * config/avr/avr.h (LONG_LONG_TYPE_SIZE): Changed long long type - to support 32-bit -mint8 mode. - - * doc/invoke.texi (-mint8): Added documentation for the -mint8 - option in the AVR architecture. - -2004-05-24 Mike Stump - - * doc/install.texi: Document that dejagnu 1.4.4 is required. - -2004-05-24 Joseph S. Myers - - * intl.h (open_quote, close_quote): New. - * intl.c (open_quote, close_quote): New. - (gcc_init_libintl): Set them. - * pretty-print.c: Include "intl.h". - (pp_base_format_text): Support 'q' format flag and %` and %' - formats. Use ' instead of ` in comments. - * c-format.c (gcc_diag_flag_specs, gcc_cxxdiag_flag_specs, - gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table, - foramt_types_orig): Describe these new formats. - (decode_format_attr, check_function_format, - check_format_info_main): Use these new formats. - (status_warning): Use ATTRIBUTE_GCC_DIAG. - * toplev.c (ATTRIBUTE_GCC_DIAG): Increase required GCC version to - check these formats to 3.5. - -2004-05-24 Rainer Orth - - * Makefile.in (CPPLIBS): Renamed to CPPLIB. - (BACKEND): Reflect this. - (LIBDEPS): Move CPPLIB before LIBIBERTY. - (LIBS): Likewise. - -2004-05-24 Ulrich Weigand - - PR tree-optimization/14197 - * builtins.c: Include "tree-gimple.h" - (readonly_data_expr): Use get_base_address. Make sure to call - decl_readonly_section only on trees it can handle. - * tree-gimple.c (get_base_address): Accept STRING_CST and - CONSTRUCTOR expressions. - * Makefile.in: Update dependencies. - -2004-05-23 Paolo Bonzini - - Move libcpp to the toplevel. - * Makefile.in: Remove references to libcpp files, - use CPPLIBS instead of libcpp.a. Define SYMTAB_H - and change hashtable.h to that. - * aclocal.m4 (gcc_AC_HEADER_STDBOOL, - gcc_AC_HEADER_STRING, gcc_AC_C__BOOL): Remove. - * configure.ac (gcc_AC_C__BOOL, HAVE_UCHAR): Remove tests. - * configure: Regenerate. - * config.in: Regenerate. - * c-ppoutput.c: Include ../libcpp/internal.h instead of cpphash.h. - * cppcharset.c: Removed. - * cpperror.c: Removed. - * cppexp.c: Removed. - * cppfiles.c: Removed. - * cpphash.c: Removed. - * cpphash.h: Removed. - * cppinit.c: Removed. - * cpplex.c: Removed. - * cpplib.c: Removed. - * cpplib.h: Removed. - * cppmacro.c: Removed. - * cpppch.c: Removed. - * cpptrad.c: Removed. - * cppucnid.h: Removed. - * cppucnid.pl: Removed. - * cppucnid.tab: Removed. - * hashtable.c: Removed. - * hashtable.h: Removed. - * line-map.c: Removed. - * line-map.h: Removed. - * mkdeps.c: Removed. - * mkdeps.h: Removed. - * stringpool.h: Include symtab.h instead of hashtable.h. - * tree.h: Include symtab.h instead of hashtable.h. - * system.h (O_NONBLOCK, O_NOCTTY): Do not define. - -2004-05-23 Paolo Bonzini - - * gcc.c (struct prefix_list): Add forward declaration. - (do_spec_path): New function, extracted from... - (do_spec_1) <'D'>: ... here. Drop support for - SPACE_AFTER_L_OPTION. - (do_spec_1) <'I'>: Use do_spec_path. - (process_command): Do not store the 'include' suffix - in include_prefixes. - * system.h: Poison SPACE_AFTER_L_OPTION. - -2002-05-23 Roger Sayle - - * fold-const.c (non_lvalue): Explicitly list the tree codes that - need to be wrapped by NON_LVALUE_EXPR, instead of those that don't. - -2004-05-23 Joseph S. Myers - - * doc/gcc.texi, doc/gccint.texi, doc/include/gcc-common.texi: - Update based on printed manual. Enable setting of offsets for - FSFPRINT and move it to gcc-common.texi. - * doc/gcc.texi: Update FSF printing details. - * doc/gccint.texi: Remove FSF printing details. - -2004-05-23 Andrew Pinski - - * config/rs6000/t-rs6000: Remove the disabling -Werror. - -2004-05-22 Roger Sayle - - * builtins.c (expand_builtin_strstr, expand_builtin_strchr, - expand_builtin_strrchr, expand_builtin_strpbrk, - expand_builtin_mempcpy, expand_builtin_memcmp, - expand_builtin_strcmp, expand_builtin_strncmp, - expand_builtin_strcat, std_expand_builtin_va_start, - std_expand_builtin_va_arg, expand_builtin_va_copy, - expand_builtin_signbit, fold_builtin_cabs, - fold_builtin_logarithm, fold_builtin_mempcpy, - fold_builtin_signbit, fold_builtin_isascii, - fold_builtin_toascii, fold_builtin_isdigit, - fold_builtin_1, build_function_call_expr, - simplify_builtin_strchr, simplify_builtin_strrchr, - simplify_builtin_strpbrk, simplify_builtin_strncpy, - simplify_builtin_memcmp, simplify_builtin_strcmp, - simplify_builtin_strncmp, simplify_builtin_strncat, - simplify_builtin_strspn, simplify_builtin_strcspn, - simplify_builtin_fputs, simplify_builtin_sprintf): Replace calls - to build with calls to build2, build3 or omit_one_operand. - -2004-05-22 Richard Sandiford - - * config/mips/mips.c (mips_file_start): Emit a .gcc_compiled_longXX - section when generating EABI code. - -2004-05-22 Andrew Pinski - - PR 15546 - * config/i386/i386.c (output_pic_addr_const ): - Call mark_decl_referenced on the SYMBOL_REF_DECL. - -2004-05-22 Andrew Pinski - - * c-common.c (c_common_truthvalue_conversion): Handle - UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR, - ORDERED_EXPR, and UNORDERED_EXPR as comparison operators, - i.e. set the type to truthvalue_type_node and return. - -2004-05-22 Zack Weinberg - - * tree.h (struct tree_decl): Add possibly_inlined bit. - (DECL_POSSIBLY_INLINED): New accessor macro. - * cgraph.h: Remove declaration of cgraph_inline_hash. - * cgraph.c: Remove definition of cgraph_inline_hash. - (hash_node): Revert to hashing DECL_UID. - (eq_node): Take two pointers to cgraph_node structures. - Compare DECL_UIDs. - (cgraph_remove_node): Pass the node directly to htab_find_slot. - (cgraph_varpool_hash_node): Rename hash_varpool_node; - hash on DECL_UID. - (eq_cgraph_varpool_node): Rename eq_varpool_node; take two - pointers to cgraph_varpool_node structures; compare DECL_UIDs. - (cgraph_node): Allocate a temporary node on the stack, fill in - its DECL field, and pass that to htab_find_slot. - (cgraph_varpool_node): Likewise. - (cgraph_function_possibly_inlined_p): If global info is ready, - return the DECL_POSSIBLY_INLINED bit. - * cgraphunit.c (cgraph_mark_inline_edge): Set DECL_POSSIBLY_INLINED - instead of mucking with cgraph_inline_hash. - -2004-05-22 Joseph S. Myers - - * doc/contrib.texi: Add g77 contributors. - -2004-05-22 Richard Sandiford - - * calls.c (initialize_argument_information): Forbid sibcalls if a - callee-copied argument is stored in the current function's frame. - -2004-05-22 Eric Christopher - - * fix-header.c (read_scan_file): Update for add_path change. - -2004-05-22 Ben Elliston - - * c.opt (Wmissing-include-dirs): New. - * c-opts.c (c_common_handle_option): Pass true for user_supplied_p - to add_path () for -I, but false for OPT_idirafter, OPT_iquote and - OPT_isystem. Handle case OPT_Wmissing_include_dirs. - * c-incpath.h (add_path): Add fourth (bool) argument. - * c-incpath.c (add_env_var_paths): Pass false to add_path (). - (add_standard_paths): Likewise. - (remove_duplicates) [REASON_NOENT]: Warn if -Wmissing-include-dirs - is used and the directory was user-supplied via -I. - (add_path): Set p->user_supplied_p. Remove duplicated code by - using add_cpp_dir_path (). - * cpplib.h (struct cpp_options): Add warn_missing_include_dirs. - (struct cpp_dir): Add user_supplied_p. - * doc/invoke.texi (Warning Options): Document new option. - -2004-05-21 Ulrich Weigand - - * fold-const.c (fold_read_from_constant_string): Convert result to - requested type. - -2004-05-21 Richard Henderson - - * gimplify.c (mostly_copy_tree_r): Don't attempt to copy decls. - (copy_if_shared_r): Don't copy decls, types, constants, BINDs. - Don't mark VA_ARG_EXPRs volatile here. - (gimplify_modify_expr): Unshare TYPE_SIZE_UNIT. - -2004-05-21 Richard Henderson - - * Makefile.in (tree-dump.o): Depend on tree-iterator.h. - * tree-dump.c (dequeue_and_dump): Dump STATEMENT_LISTs. - -2004-05-21 Roger Sayle - - * fold-const.c (fold, fold_relational_hi_lo, - nondestructive_fold_binary_to_constant, - fold_read_from_constant_string): Use fold_convert instead of convert. - * builtins.c (simplify_builtin, simplify_builtin_strstr, - simplify_builtin_strchr, simplify_builtin_strrchr, - simplify_builtin_strpbrk): Use fold_convert instead of convert. - -2004-05-21 Diego Novillo - - * tree-flow-inline.h (num_immediate_uses): Don't abort if DF - is NULL. - -2004-05-21 Jakub Jelinek - - * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): If SPARC_BI_ARCH, - override sparc.h definition. - -2004-05-20 Roger Sayle - - * tree.c (array_type_nelts, save_expr, substitute_in_expr, - get_unwidened, get_narrower): Replace build with build2. - * fold-const.c (negate_expr, associate_trees, size_binop, - fold_convert, eval_subst, omit_one_operand, invert_truthvalue, - pedantic_omit_one_operand, distribute_bit_expr, - make_bit_field_ref, optimize_bit_field_compare, - decode_field_reference, range_binop, make_range, - build_range_check, fold_range_test, fold_truthop, - optimize_minmax_comparison, extract_muldiv_1, - fold_binary_op_with_conditional_arg, fold_mathfn_compare, - fold_inf_compare, fold_single_bit_test, fold, - fold_relational_hi_lo, nondestructive_fold_binary_to_constant): - Likewise replace build with either build2 or build3. - -2004-05-20 Ian Lance Taylor - - * system.h: Poison NO_RECURSIVE_FUNCTION_CSE. - * calls.c (prepare_call_address): Don't test - NO_RECURSIVE_FUNCTION_CSE. - * config/arc/arc.h (NO_RECURSIVE_FUNCTION_CSE): Don't define. - * config/arm/arm.h (NO_RECURSIVE_FUNCTION_CSE): Likewise. - * config/avr/avr.h (NO_RECURSIVE_FUNCTION_CSE): Likewise. - * config/frv/frv.h (NO_RECURSIVE_FUNCTION_CSE): Likewise. - * config/i386/i386.h (NO_RECURSIVE_FUNCTION_CSE): Likewise. - * config/ip2k/ip2k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise. - * config/iq2000/iq2000.h (NO_RECURSIVE_FUNCTION_CSE): Likewise. - * config/m32r/m32r.h (NO_RECURSIVE_FUNCTION_CSE): Likewise. - * config/m68k/m68k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise. - * config/mcore/mcore.h (NO_RECURSIVE_FUNCTION_CSE): Likewise. - * config/mips/mips.h (NO_RECURSIVE_FUNCTION_CSE): Likewise. - * config/stormy16/stormy16.h (NO_RECURSIVE_FUNCTION_CSE): - Likewise. - * config/xtensa/xtensa.h (NO_RECURSIVE_FUNCTION_CSE): Likewise. - * config/sh/sh.h: Remove NO_RECURSIVE_FUNCTION_CSE comment. - * doc/tm.texi (Costs): Remove documentation for - NO_RECURSIVE_FUNCTION_CSE. - -2004-05-20 Paul Brook - - * unwind-dw2-fde.c (get_cie_encoding): Handle dwarf3 CIE format. - * unwind-dw2.c (extract_cie_info): Ditto. - (_Unwind_FrameState): Change retaddr_column to word type. - -2004-05-20 Roger Sayle - - PR middle-end/3074 - * fold-const.c (strip_compound_expr): Delete function. - (count_cond): Delete function. - (fold_binary_op_with_conditional_arg): Only perform transformations - "a + (b?c:d) -> b ? a+c : a+d" and "(b?c:d) + a -> b ? c+a : d+a" - when a is constant. This greatly simplifies this routine. - - * tree.c (saved_expr_p): Delete function. - * tree.h (saved_expr_p): Delete function prototype. - -2004-05-20 Andrew Pinski - - * common.opt (ftree-loop-optimize): Remove. - -2004-05-20 Daniel Jacobowitz - - * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET) - (NM_FOR_TARGET): Use := and $(shell). - (mainversion): Remove unused variable. - -2004-05-20 John David Anglin - - * reorg.c (delete_from_delay_slot): If we have a barrier after the - sequence containing the insn to be deleted, always reemit it. - -2004-05-20 Richard Henderson - - PR 15454 - * tree-nested.c (get_chain_decl): Create a PARM_DECL by hand. - * function.c (expand_function_start): Expand static_chain_decl by hand. - * gimplify.c (create_tmp_var_name): Export. - * tree-gimple.h (create_tmp_var_name): Declare. - -2004-05-20 Andrew Pinski - - * rs6000.c (print_operand) : Call - mark_decl_referenced before assemble_name. - -2004-05-20 Zack Weinberg - - * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node) - (cgraph_varpool_hash_node, eq_cgraph_varpool_node) - (cgraph_varpool_node): Hash on the pointer to the decl, not - the DECL_UID. Fixes 64-bit bootstrap failure. - -2004-05-20 Richard Earnshaw - - * arm.md (ite_ne_zeroextractsi, ite_ne_zeroextractsi_shifted): Ensure - we don't earlyclobber operands used in the second insn. - -2004-05-20 Steven Bosscher - - * tree-mudflap.c: Formatting fixes. - -2004-05-20 J"orn Rennecke - - * Makefile.in (GTFILES): Add $(srcdir)/reload.h. - * gengtype.c (open_base_files): Include reload.h in ifiles. - * reload.h (reg_equiv_memory_loc_varray): Declare. - * reload1.c (reg_equiv_memory_loc_varray): New variable. - (init_reload): Initialize it. - (reload): Instead of freeing reg_equiv_memory_loc, 'grow' - reg_equiv_memory_loc_varray to size 0. - * ra.c (reg_alloc): Allocate reg_equiv_memory_loc by - growing reg_equiv_memory_loc_varray to the desired size. - * passes.c (rest_of_handle_old_regalloc): Likewise. - * reload.c: Amend comment on calling init_reload. - -2004-05-20 Nick Clifton - - * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Replace 'tramp' - with 'TRAMP' in the body of the macro definition. - -2004-05-19 H.J. Lu - - PR target/15383 - * config/ia64/ia64.c (ia64_expand_compare): Don't check - TARGET_HPUX for TFmode compare. Abort if op0 is in TFmode and - cmptf_libfunc isn't set. - (ia64_init_libfuncs): Rename TFmode libfuncs using the HPUX - conventions. - (ia64_sysv4_init_libfuncs): New. - - * config/ia64/sysv4.h (TARGET_INIT_LIBFUNCS): New. Defined as - ia64_sysv4_init_libfuncs. - -2004-05-20 Falk Hueffner - - PR other/15526 - * libgcc2.c (__mulvsi3): Fix overflow test. - -2004-05-19 Andrew Pinski - - PR c/14171 - * reg-stack.c (nan): Rename to ... - (not_a_num): Here. - (reg_to_stack): Rename nan to not_a_num. - (subst_stack_regs_pat): Likewise. - (convert_regs_entry): Likewise. - (convert_regs_1): Likewise. - - * tree-cfg.c (find_case_label_for_value): Replace call to - simple_cst_equal with tree_int_cst_equal. - -2004-05-19 Jeff Law - - * tree-into-ssa.c (prepare_operand_for_rename): New argument is_use. - If the operand is for a use, then strip away the SSA_NAME, do not - strip away the SSA_NAME for a set. Never call release_ssa_name. - (mark_def_sites): Appropriately pass additional argument to - prepare_operand_for_rename. If a VDEF_RESULT is not an SSA_NAME, - then set the VDEF_RESULT to the VDEF_OP. - (set_def_block): Strip away any SSA_NAME to get to the real - underlying variable. - - * tree-ssa-phiopt.c (value_replacement): Handle the case where - the desired edge out of COND_BLOCK reaches OTHER_BLOCK rather than - BB directly. - -2004-05-19 Zdenek Dvorak - - PR c++/15463 - * loop-iv.c (iv_number_of_iterations): Use trunc_int_for_mode on - result of inverse. - - PR rtl-optimization/15274 - * loop-iv.c (determine_max_iter, shorten_into_mode, - iv_number_of_iterations): Handle constants correctly. - * rtl.h (get_mode_bounds): Declaration changed. - * stor-layout.c (get_mode_bounds): Return a constant suitable for - the target mode. - - PR rtl-optimization/14692 - * loop-unswitch.c (may_unswitch_on): Try folding the result. - (unswitch_single_loop): Work correctly when may_unswitch_on - returns a folded constant. - - * loop-iv.c (implies_p): Handle A < B ==> A + 1 <= B. - * simplify-rtx.c (simplify_const_relational_operation): Optimize - comparisons with mode bounds. - - * function.c (struct temp_slot): Add new field prev. - (free_after_compilation, init_temp_slots): Free new fields. - (cut_slot_from_list, insert_slot_to_list, - temp_slots_at_level, max_slot_level, move_slot_to_level, - make_slot_available): New functions. - (assign_stack_temp_for_type, combine_temp_slots, - find_temp_slot_from_address, preserve_temp_slots, - preserve_rtl_expr_result, free_temp_slots, - free_temps_for_rtl_expr, pop_temp_slots): Work with - the new structure of lists. - (mark_all_temps_used): Removed. - * function.h (struct function): Field x_temp_slots - replaced by x_used_temp_slots and x_avail_temp_slots. - (temp_slots): Replaced by ... - (used_temp_slots, avail_temp_slots): New. - * tree.h (mark_all_temps_used): Declaration removed. - - * loop-iv.c (mark_single_set, get_biv_step_1, iv_analyze, - simplify_using_assignment): Take the expression out of - the expr_list wrapper. - - * loop-iv.c (iv_number_of_iterations): Improve clasification of - infinite loops. - -2004-05-19 Roger Sayle - - * doc/tm.texi (TARGET_RTX_COSTS): Document that instruction - costs should be based on code size when optimizing for size. - -2004-05-19 Paolo Bonzini - - * fold-const.c: Remove non-printable character 160. - -2004-05-19 Nick Clifton - - * doc/invoke.texi (ARM Options): Fix typo. - Remove descrption of -mshort-load-bytes and - -mno-short-load-bytes. - - * config/ip2k/ip2k.c (ip2k_composite_xexp_not_uses_reg_p): Add - missing parenthesis. - * config/ip2k/ip2k.c (ip2k_unary_operator): Likewise. - * config/ip2k/ip2k.c (ip2k_binary_operator): Likewise. - -2004-05-19 Steven Bosscher - - * expr.c (store_constructor): Build loop start and end by hand - instead of via loop functions from stmt.c. - (expand_expr_real_1): Abort if we see an EXIT_EXPR or a LOOP_EXPR. - Remove the code to expand them. - - * stmt.c (loop_stack): Remove this and everything related. - (struct nesting, enum nesting_desc): Update. - (expand_fixup): Likewise. - (expand_loop_start, expand_start_loop_continue_elsewhere, - expand_start_null_loop, expand_loop_continue_here, expand_end_loop, - expand_end_null_loop, expand_continue_loop, expand_exit_loop, - expand_exit_loop_if_false, expand_exit_loop_top_cond, - expand_exit_something): Remove. - * tree.h: Remove prototypes. - -2004-05-18 Mike Stump - Devang Patel - - * doc/tm.texi (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument to indicate - if this label is for eh. - * config/darwin-protos.h (darwin_emit_unwind_label): Likewise. - * config/darwin.c (darwin_emit_unwind_label): Likewise. - * dwarf2out.c (output_call_frame_info): Likewise. - * output.h (default_emit_unwind_label): Likewise. - * target.h (unwind_label): Likewise. - * varasm.c (default_emit_unwind_label): Likewise. - - * config/darwin.h (DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE, - DEBUG_FRAME_SECTION, DEBUG_INFO_SECTION, DEBUG_ABBREV_SECTION, - DEBUG_ARANGES_SECTION, DEBUG_MACINFO_SECTION, DEBUG_LINE_SECTION, - DEBUG_LOC_SECTION, DEBUG_PUBNAMES_SECTION, DEBUG_STR_SECTION, - DEBUG_RANGES_SECTION): Define. - -2004-05-18 Zack Weinberg - - * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node) - (cgraph_varpool_hash_node, eq_cgraph_varpool_node) - (cgraph_varpool_node): - Use DECL_UID for the key, not DECL_ASSEMBLER_NAME. - (cgraph_function_possibly_inlined_p): Use the decl itself for - the key, not DECL_ASSEMBLER_NAME. - (change_decl_assembler_name): No need to muck with the hash tables. - (cgraph_node_for_identifier, cgraph_varpool_node_for_identifier): - Delete. - * cgraphunit.c (cgraph_mark_inline_edge): Use the decl itself - for the key, not DECL_ASSEMBLER_NAME. - * cgraph.h: Remove prototypes of deleted functions. - * varasm.c (mark_referenced): Just set TREE_SYMBOL_REFERENCED. - (mark_decl_referenced): New function. - * tree.h: Prototype mark_decl_referenced. - * final.c (output_addr_const) : Call - mark_decl_referenced before assemble_name. - * c-decl.c (finish_decl): Use mark_decl_referenced. - -2004-05-18 Andrew Pinski - Jeff Law - - * tree-ssa-phiopt.c (abs_replacement): New function. - (empty_block_p): New function extracted from... - (candidate_bb_for_phi_optimization): Break out empty block test. - (conditional_replacement): Use empty_block_p. - (value_replacement): Similarly. - - * Makefile.in (tree-ssa-phiopt.o): Depends on flags.h. - * tree-ssa-phiopt.c: Include flags.h. - (conditional_replacement): Remove argument names from prototype. - Minor formatting and comment fixes. - (tree_ssa_phiopt): If conditional_replacement returns false, then - call value_replacement. - (value_replacement): New function. - -2004-05-18 Jeff Law - - * tree-ssa-phiopt.c (replace_phi_with_stmt): New function extracted - from conditional_replacement. - (candidate_bb_for_phi_optimization): Similarly. - (conditional_replacement): Use replace_phi_with_stmt and - candidate_bb_for_phi_optimization. - - * tree-ssa-phiopt.c: Fix various formatting issues. - -2004-05-18 Steven Bosscher - - * config/s390/s390.c (s390_expand_movstr, s390_expand_clrstr, - s390_expand_cmpmem): Do not use expand_start_loop and - expand_end_loop, instead build the loop manually. - -2004-05-18 Alan Modra - - * config/rs6000/rs6000.md (ctrsi_internal3): Delete. - (ctrsi_internal4, ctrdi_internal3, ctrdi_internal4): Delete. - -2004-05-17 Jeff Law - - * toplev.h (flag_delete_null_pointer_checks): Move from here to... - * flags.h (flag_delete_null_pointer_checks): Here. - * tree-flow.h (cprop_into_successor_phis): Add argument to prototype. - * tree-phinodes.c (resize_phi_node): Initialize PHI_ARG_NONZERO. - (add_phi_arg, remove_phi_arg_num): Similarly. - * tree-ssa-copy.c (cprop_into_successor_phis): Propagate nonzero - property into PHI nodes. - * tree-ssa-dom.c: Remove redundant inclusion of flags.h. - (record_equivalences_from_phis): If all PHI arguments are known to be - nonzero, then the result must be nonzero as well. - (cprop_into_phis): Pass nonzero_vars bitmap to cprop_into_successor_phis. - (record_equivalences_from_stmt): Check flag_delete_null_pointer_checks - appropriately. Walk the USE-DEF chains and propagate nonzero property - as appropriate. - * tree.h (PHI_ARG_NONZERO): Define. - (phi_arg_d): Add nonzero flag. - -2004-05-17 Zack Weinberg - - * f: Entire directory removed - - * c-common.h (CTI_G77_INTEGER_TYPE, CTI_G77_UINTEGER_TYPE) - (CTI_G77_LONGINT_TYPE, CTI_G77_ULONGINT_TYPE) - (g77_integer_type_node, g77_uinteger_type_node) - (g77_longint_type_node, or g77_ulongint_type_node): Delete. - * c-common.c (c_common_nodes_and_builtins): Do not initialize - the above set of variables. - - * config/i386/uwin.h: No need to define WIN32_UWIN_TARGET. - * doc/invoke.texi, doc/standards.texi: Remove cross-references - to g77 manual. - -2004-05-17 Steven Bosscher - - PR tree-optimization/15438 - * tree-ssa-operands.c (get_expr_operands): Do not treat malloc - attributed functions as pure or const. - -2004-05-17 Frank Ch. Eigler - - * tree-mudflap.c (mx_register_decls): Tolerate decl trees resulting - from source code with errors. - -2004-05-17 Ranjit Mathew - - Enable tree browser for all front ends. - * Makefile.in (cc1): Moved @TREEBROWSER@ from here... - (BACKEND): ...to here. - -2004-05-17 Jan Hubicka - - * i386.c (construct_container): Do not produce BLKmode registers. - (classify_argument): Properly compute alignment of complex types. - -2004-05-17 H.J. Lu - - 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. - -2004-05-17 Richard Sandiford - - * config/mips/mips.h (MASK_DEBUG_G, TARGET_DEBUG_G_MODE): Delete. - (TARGET_SWITCHES): Remove debugg. - * config/mips/mips.md (adddi3, ashldi3, ashrdi3, lshrdi3): Only handle - TARGET_64BIT. - (subdi3): Replace the define_expand with a define_insn, the latter - renamed from subdi3_internal_3. - (negdi2): Likewise negdi2_internal_2. - (adddi3_internal_[12], subdi3_internal, ashldi3_internal{,2,3}) - (ashrdi3_internal{,2,3}, lshrdi3_internal{,2,3}): Remove patterns - and associated define_splits. - (adddi3_internal): Renamed from adddi3_internal_3. - (ashldi3_internal): Likewise ashldi3_internal4. - (ashrdi3_internal): Likewise ashrdi3_internal4. - (lshrdi3_internal): Likewise lshrdi3_internal4. - -2004-05-17 Richard Sandiford - - * optabs.c (expand_unop): Try implementing negation using subtraction - from zero. - -2004-05-16 John David Anglin - - * pa.md: Fix typo from last change. Remove DFmode move to and from - SAR register. - -2004-05-16 Richard Earnshaw - - PR target/10982 - * arm.md (ne_zeroextractsi): Convert to insn-and-split. - (ne_zeroextractsi_shifted): New pattern. - (ite_ne_zeroextractsi): New pattern. - (ite_ne_zeroextractsi_shifted): New pattern. - -2004-05-15 Steven Bosscher - - * c-gimplify.c (c_genericize): - Replace calls via (*lang_hooks.foo) with lang_hooks.foo. - * c-parse.in : Likewise. - : Likewise. - : Likewise. - * expr.c (expand_var, expand_expr_real_1): Likewise. - * expr.h (expand_expr): Make it a static inline function. - Move prototype for expand_expr_real up before this. - * fold-const.c (fold_relational_hi_lo, fold_relational_const): - Likewise. - * gimplify.c (gimple_boolify, gimplify_addr_expr, - gimplify_asm_expr, gimplify_expr): Likewise. - * tree-cfg.c (dump_tree_cfg, dump_cfg_stats, tree_cfg2vcg, - dump_function_to_file): Likewise. - * tree-dfa.c (dump_immediate_uses, dump_dfa_stats): Likewise. - * tree-inline.c (remap_block, save_body, walk_tree): Likewise. - * tree-into-ssa.c (dump_tree_ssa): Likewise. - * tree-mudflap.c (mf_varname_tree, mf_file_function_line_tree): - Likewise. - * tree-optimize.c (execute_one_pass): Likewise. - * tree-pretty-print.c (dump_generic_bb_buff): Likewise. - * tree-ssa-alias.c (dump_alias_stats, dump_alias_info): Likewise. - - * objc/objc-act.c (objc_build_try_enter_fragment, - objc_build_try_epilogue, objc_build_catch_stmt, - objc_build_finally_prologue): Replace calls via (*lang_hooks.foo) - with lang_hooks.foo (). - -2004-05-15 Roger Sayle - - * builtins.c (simplify_builtin_strcpy): Avoid use of chainon, so - that simplify_builtin doesn't destructively modify its argument. - -2004-05-15 Richard Earnshaw - - * arm/lib1funcs.asm (_lshrdi3, _ashrdi3, _ashldi3): Add ASM - implementations for ARM and Thumb. - * arm/t-arm-elf (LIB1ASMFUNCS): Use them. - -2004-05-15 Thomas Quinot - - * prefix.c (update_path): Replace PREFIX with KEY only - when it matches a full directory name in PATH. - -2004-05-15 Richard Earnshaw - - * arm.h (TARGET_APCS_32): Delete. - (TARGET_MMU_TRAPS): Delete. - (TARGET_CPU_CPP_BUILTINS): Unconditionally define __APCS_32__. Never - define __APCS_26__. - (CPP_SPEC): Remove checking of -mapcs-{26,32}. - (ARM_FLAG_APCS_32, ARM_FLAG_MMU_TRAPS): Delete. - (TARGET_SWITCHES): Remove alignment_traps and apcs-{26,32} switches. - (prog_mode_type): Delete. - (PROMOTE_MODE): Always promote unsigned for HImode. - (SECONDARY_INPUT_RELOAD_CLASS): Simplify. - (MASK_RETURN_ADDR): Simplify. - * arm.c (arm_prgmode): Delete. - (arm_override_options, arm_gen_rotated_half_load): Simplify. - (print_multi_reg, output_return_instruction): Simplify. - (arm_output_epilogue, arm_final_prescan_insn): Simplify. - (arm_return_addr): Simplify. - * arm.md (prog_mode): Delete. - (conds): Simplify. - (zero_extendhisi2, extendhisi2, movhi, movhi_bytes): Simplify. - (rotated_loadsi, movhi_insn_littleend, movhi_insn_bigend): Delete. - (loadhi_si_bigend, loadhi_preinc, loadhi_shiftpreinc): Delete. - (loadhi_shiftpredec): Delete. - (peephole for post-increment on HImode load): Delete. - * arm/crtn.asm: (FUNC_END): Simplify. - * arm/lib1funcs.asm: Remove APCS-26 return macros. - * arm/aof.h, arm/coff.h arm/elf.h arm/linux-elf.h arm/netbsd-elf.h - * arm/netbsd.h arm/pe.h arm/semi.h arm/semiaof.h arm/unknown-elf.h - * arm/vxworks.h arm/wince-pe.h: Tidy TARGET_DEFAULTS and - MULTILIB_DEFAULTS as required. - * arm/t-arm-elf arm/t-linux arm/t-pe arm/t-semi arm/t-wince-pe - * arm/t-xscale-coff arm/t-xscale-elf arm/uclinux-elf: Tidy MULTILIB - variables as required. - * doc/invoke.texi (ARM Options): Remove obsolete flags. - -2004-05-15 Alan Modra - - * config/rs6000/rs6000.c (rs6000_va_arg ): Don't use - UNITS_PER_WORD to calculate gpr size. Re-instate code to set reg - count to 8 to handle n_reg > 2. - -2004-05-15 Joseph S. Myers - - * doc/extend.texi: Update WG14 URL. - -2004-05-15 Steven Bosscher - - * basic-block.h (life_analysis, delete_noop_moves): - Update prototypes. - * bt-load.c (branch_target_load_optimize): Don't take the - insns stream as an argument. Update the life_analysis calls. - * combine.c (combine_instructions): Update delete_noop_moves - calls. - * flow.c (notice_stack_pointer_modification): Don't take the - insns stream as an argument. Work on the flow graph. - (life_analysis): Likewise. - (delete_noop_moves): Likewise. - * passes.c (rest_of_handle_stack_regs): Update reg_to_stack call. - (rest_of_handle_life): Update life_analysis call. - (rest_of_compilation): Likewise, and also update - branch_target_load_optimize call. - * ra.c (reg_alloc): Update life_analysis call. - * reg-stack.c (reg_to_stack): Likewise. Also, don't take - the insns stream as an argument. - * regrename.c (copyprop_hardreg_forward): Update delete_noop_moves - call. - * rtl.c (branch_target_load_optimize, reg_to_stack): Update - prototypes. - * value-profile.c (branch_prob): Update life_analysis call. - * web.c (web_main): Work on the CFG, not on the insns stream. - - * config/ip2k/ip2k.c (ip2k_reorg): Update life_analysis calls. - * config/m68hc11/m68hc11.c (m68hc11_reorg): Likewise. - * config/sh/sh.c (sh_output_mi_thunk): Likewise. - -2004-05-15 Joseph S. Myers - - PR c/15444 - * c-format.c (avoid_dollar_number): New function. - (check_format_info_main): Call avoid_dollar_number when operand - numbers might occur but has_operand_number == 0. - -2004-05-14 Richard Earnshaw - - * arm.md (all peephole2 patterns): Use predicates that validate - register classes as appropriate. - -2004-05-14 Steven Bosscher - - PR opt/14472 - * tree-tailcall.c (process_assignment): Use STRIP_NOPS to - ignore type conversions that do not inhibit tail calling. - (find_tail_calls): Likewise. - -2004-05-14 Jeff Law - - * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't even - bother marking bypassed virtuals for out-of-ssa. Instead merge - bypassed virtuals into vars_to_rename just before into-ssa pass. - - * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Reorganize - so that it picks up more opportunities to eliminate ABS expressions - or turn them into negations. - -2004-05-14 Steven Bosscher - - * passes.c (rest_of_handle_null_pointer): Remove. - (rest_of_handle_cse): Don't call rest_of_handle_null_pointer. - (rest_of_compilation): Likewise. - * rtl.h (delete_null_pointer_checks): Remove prototype. - * gcse.c (rd_kill, rd_gen, reaching_defs, rd_out, ae_in, ae_out): - Remove declarations. - (get_bitmap_width, alloc_rd_mem, free_rd_mem, handle_rd_kill_set, - compute_kill_rd, compute_rd, alloc_avail_expr_mem, - free_avail_expr_mem, compute_ae_gen, expr_killed_p, compute_ae_kill, - expr_reaches_here_p, computing_insn, def_reaches_here_p, - can_disregard_other_sets, handle_avail_expr, classic_gcse, - one_classic_gcse_pass, invalidate_nonnull_info, - delete_null_pointer_checks_1, delete_null_pointer_checks, - expr_reached_here_p_work): Remove. - (gcse_main): Do not perform classic GCSE when optimizing for size. - (alloc_pre_mem, free_pre_mem): Don't touch ae_in and ae_out, they - are never used. - -2004-05-14 Andrew Pinski - - PR optimization/14466 - * tree-complex.c (make_temp): Remove. - (gimplify_val): Replace make_temp with make_rename_temp - and add NULL as the second argument. - (expand_complex_div_wide): Likewise. - * tree-dfa.c (make_rename_temp): New function. - * tree-flow.h (make_rename_temp): Declare. - * tree-sra.c (make_temp): Remove. - (lookup_scalar): Replace make_temp with make_rename_temp. - (create_scalar_copies): Likewise. - * tree-ssa-phiopt.c (conditional_replacement): When we - get non gimple create a temporary variable to hold the - casted expression. - -2004-05-14 Paul Brook - - * stor-layout.c (update_alignment_for_field): Use - targetm.align_anon_bitfield. - * target-def.h (TARGET_ALIGN_ANON_BITFIELD): Define. - (TARGET_INITIALIZER): Use it. - * target.h (struct gcc_target): Add align_anon_bitfield. - * config/arm/arm.c (arm_align_anon_bitfield): New function. - (TARGET_ALIGN_ANON_BITFIELD): Define. - * doc/tm.texi: Document TARGET_ALIGN_ANON_BITFIELD. - -2004-05-13 Zack Weinberg - - * tree.def (documentation): Remove mention of class 'b'. - (BLOCK): Now in class 'x'. - * c-common.c (verify_tree): Remove case 'b'. - * c-typeck.c (same_translation_unit_p): Change 'b' to 'x'. - * calls.c (calls_function_1): Control cannot get past the switch - when exp is a BLOCK. - * print-tree.c (print_node): Move code for class 'b' to the class - 'c'/'x' switch, as case BLOCK. - * tree.c (tree_size, make_node_stat, tree_node_structure): Likewise. - (unsafe_for_reeval, substitute_placeholder_in_expr) - (stabilize_reference_1): Remove case 'b'. - * tree-browser.c (browse_tree): Change all tests for TREE_CODE_CLASS - of something being 'b' to tests for TREE_CODE of something being - BLOCK. - * tree-ssa-operands.c (get_expr_operands): Likewise. - -2004-05-13 Diego Novillo - - * tree-gimple.c: Rename from tree-simple.c. - * tree-gimple.h: Rename from tree-simple.h. - * c-gimplify.c: Rename from c-simplify.c - * Makefile.in, c-decl.c, gimple-low.c, gimplify.c, - langhooks.c, tree-alias-ander.c, tree-alias-common.c, - tree-complex.c, tree-dfa.c, tree-flow.h, tree-inline.c, - tree-into-ssa.c, tree-iterator.c, tree-mudflap.c, - tree-nested.c, tree-nomudflap.c, tree-outof-ssa.c, tree-sra.c, - tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-copyrename.c, - tree-ssa-dce.c, tree-ssa-live.c, tree-ssa-pre.c, tree-ssa.c: - Update. - -2004-05-14 Ranjit Mathew - - * doc/sourcebuild.texi: Mention libbanshee and libmudflap. - -2004-05-13 Andrew Pinski - - * tree-ssa.c (delete_tree_ssa): XFREE - bitmaps allocated with BITMAP_XMALLOC. - - * tree-ssa-pre.c (execute_pre): Free ephi_use_pool and - idfs_cache at the end of the function. - - * tree-ssa-live.c (calculate_live_on_entry): Free saw_def - at the end of the function. - - * tree-ssa-dce.c (perform_tree_ssa_dce): Free - el at the end of the function. - - * tree-into-ssa.c (insert_phi_nodes_for): XFREE - bitmaps allocated with BITMAP_XMALLOC. - - * loop-unswitch.c (unswitch_single_loop): Free bbs at - the end. - - * final.c (shorten_branches): Free uid_shuid before - reallocating it. - - * bb-reoder.c (connect_traces): Free cold_traces at the end. - -2004-05-13 Jeff Law - - * tree-ssa-live.c (calculate_live_on_entry): Ignore virtual - variables. Simplify slightly by using USE_OP/DEF_OP instead - of USE_OP_PTR/DEF_OP_PTR and dereferencing the result. - - * tree-into-ssa.c (compute_global_livein): Use EXECUTE_IF_SET_IN_BITMAP - rather than iterating through the blocks testing each bit in - livein to initialize the worklist. - (mark_def_sites): Remove useless checks of KILLS for virtual - operands. - - * tree-ssa-forwprop.c (record_single_argument_cond_exprs): Accept - new parameters for the statement and variable worklist as well - as a bitmap of interesting SSA_NAMEs. Walk over the statement - worklist recording interesting variables in the variable worklist - and bitmap. Handle casts between integral and boolean types. - (substitute_single_use_vars): Accept new parameters for the statement - and variable worklist. When a substitution is made add a new - entry to the statement worklist. Handle casts between integral - and boolean types. - (tree_ssa_forward_propagate_single_use_vars): Rework to pass - worklists to children. Iterate until the statement worklist - is empty. - -2004-05-13 Andrew Pinski - - * tree-outof-ssa.c (rewrite_vars_out_of_ssa): Free map at - the end of the block. - - * tree-into-ssa.c (def_blocks_free): XFREE bitmaps allocated - with BITMAP_XMALLOC. - - * tree-ssa-alias.c (delete_alias_info): XFREE bitmaps allocated - with BITMAP_XMALLOC. - - * tree-ssa-dom.c (tree_ssa_dominator_optimize): - Free nonzero_vars at the end of the function. - - * convert.c (convert_to_integer): Make a CONVERT_EXPR when there is a - need to generate code instead of a NOP_EXPR. - -2004-05-13 Ian Lance Taylor - - * gcc.c (default_compilers): Fill out initializers for new Fortran - entries. - -2004-05-13 Paul Brook - - * config/arm/arm.h (PCC_BITFIELD_TYPE_MATTERS): Define. - -2004-05-13 Paul Brook - - * config/arm/arm.c (arm_default_short_enums): New function. - (TARGET_DEFAULT_SHORT_ENUMS): Define. - -2004-05-13 Diego Novillo - - Merge from tree-ssa-20020619-branch. - - * Makefile.in (reload1.o-warn): Add. - (tree-alias-ander.o-warn): Add. - (GMPLIBS): Define. - (GMPINC): Define. - (BANSHEELIB): Define. - (BANSHEEINC): Define. - (TREE_DUMP_H): Define. - (TREE_SIMPLE_H): Define. - (TREE_FLOW_H): Define. - (LIBDEPS): Add BANSHEELIB. - (INCLUDES): Add BANSHEEINC and GMPINC. - (C_AND_OBJC_OBJS): Add c-simplify.o, tree-mudflap.o, - c-mudflap.o and c-pretty-print.o. - (C_OBJS): Remove c-pretty-print.o. - (OBJS-common): Remove sibcall.o. - Add tree-cfg.o, tree-dfa.o, tree-eh.o, - tree-ssa.o, tree-optimize.o, tree-simple.o, - tree-alias-type.o, gimplify.o, tree-pretty-print.o, - tree-into-ssa.o, tree-outof-ssa.o, tree-alias-common.o, - tree-ssa-ccp.o, @ANDER@, tree-ssa-dce.o, tree-ssa-copy.o, - tree-nrv.o, tree-ssa-copyrename.o, tree-ssa-pre.o, - tree-ssa-live.o, tree-ssa-operands.o, tree-ssa-alias.o, - tree-ssa-phiopt.o, tree-ssa-forwprop.o, tree-nested.o, - tree-ssa-dse.o, tree-ssa-dom.o, domwalk.o, - tree-tailcall.o, gimple-low.o, tree-iterator.o, - tree-phinodes.o, tree-ssanames.o, tree-sra.o, - tree-complex.o, tree-ssa-loop.o, rtl-profile.o and - tree-profile.o. - (OBJC-archive): Add tree-nomudflap.o. - (cc1): Add dependency on @TREEBROWSER@. - (c-decl.o): Add dependency on TREE_DUMP_H. - (c-dump.o): Likewise. - (c-common.o): Add dependency on tree-iterator.h - (c-pretty-print.o): Add dependency on DIAGNOSTIC_H. - (gtype-desc.o): Add dependency on TREE_FLOW_H. - (tree.o): Add dependency on tree-iterator.h, - BASIC_BLOCK_H and TREE_FLOW_H. - (tree-dump.o): Depend on TREE_DUMP_H instead of tree-dump.h. - (langhooks.o): Add dependency on TREE_SIMPLE_H. - (tree-alias-type.o, tree-alias-ander.o, - tree-alias-common.o, tree-ssa.o, tree-into-ssa.o, - tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o, - tree-ssa-phiopt.o, tree-nrv.o, tree-ssa-copy.o, - tree-ssa-dom.o, tree-ssanames.o, tree-phinodes.o, - domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o, - tree-ssa-pre.o, tree-cfg.o, tree-tailcall.o, - tree-nested.o, tree-iterator.o, tree-dfa.o, - tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o, - tree-ssa-alias.o, tree-optimize.o, c-simplify.o, - gimplify.o, gimple-low.o, tree-browser.o, tree-simple.o, - tree-mudflap.o, c-mudflap.o, tree-nomudflap.o, - tree-pretty-print.o, tree-ssa-dce.o, tree-ssa-ccp.o, - tree-sra.o, tree-complex.o, tree-profile.o, - rtl-profile.o): New rules. - (function.o): Add dependency on basic-block.h - (expr.o): Add dependency on tree-iterator.h. - (sibcall.o): Remove. - (profile.o): Depend on TREE_FLOW_H instead of TREE_H. - (cfg.o): Add dependency on TIMEVAR_H. - (cfghooks.o): Add dependency on TREE_FLOW_H. - (reg-stack.o): Add dependency on basic-block.h. - (GTFILES): Add hwint.h, tree-mudflaph.c, tree-flow.h, - c-objc-common.c, c-common.c, c-parse.in, tree-ssanames.c, - tree-eh.c, tree-phinodes.c, tree-cfg.c, tree-dfa.c, - tree-ssa-ccp.c, tree-iterator.c, gimplify.c, - tree-alias-type.h, tree-alias-common.h, - tree-alias-type.c, tree-alias-common.c, - tree-ssa-operands.h, tree-ssa-operands.c, tree-profile.c, - rtl-profile.c and tree-nested.c. - (gt-tree-alias-common.h, gt-tree-mudflap.h, - gt-tree-ssa-ccp.h, gt-tree-eh.h, gt-tree-ssanames.h, - gt-tree-iterator.h, gt-gimplify.h, gt-tree-phinodes.h, - gt-tree-cfg.h, gt-tree-nested.h): New rules. - (TEXI_GCCINT_FILES): Add cfg.texi and tree-ssa.texi. - * basic-block.h: Include predict.h - (struct edge_def): Add GTY marker. - Change field 'insns' to be a union of tree and rtx. - (EDGE_TRUE_VALUE): Define. - (EDGE_FALSE_VALUE): Define. - (EDGE_EXECUTABLE): Define. - (struct bb_ann_d): Forward declare. - (struct basic_block_def): Add GTY marker. - Remove fields head_tree and end_tree. - Add fields stmt_list, rbi and tree_annotations. - (struct reorder_block_def): Define. - (basic_block_info): Add GTY marker. - (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Change to global - variables instead of macros. - (flow_call_edges_add): Remove declaration. - (make_eh_edge): Remove declaration. - (brief_dump_cfg, find_edge, tree_predicted_by_p, - rtl_predicted_by_p, tree_predict_edge, rtl_predict_edge, - predict_edge_def, rtl_make_eh_edge, find_basic_blocks, - cleanup_cfg, delete_unreachable_blocks, merge_seq_blocks, - alloc_rbi_pool, initialize_bb_rbi, free_rbi_pool): Declare. - (try_redirect_by_replacing_jump): Modfiy return type to - edge instead of bool. - * bb-reorder.c (copy_bb): Call duplicate_block - instead of cfg_layout_duplicate_bb. - (copy_bb_p): Call can_duplicate_block_p instead of - cfg_layout_can_duplicate_bb_p. - * bitmap.c (bitmap_first_set_bit): Abort if word - wasn't found. - (bitmap_last_set_bit): Likewise. - * builtin-types.def (DEF_FUNCTION_TYPE_2): Add - (DEF_FUNCTION_TYPE_3): Add. - * builtins.c (c_strlen): Make extern. - (builtin_save_expr): New. - (expand_builtin_nonlocal_goto): New. - (expand_builtin_constant_p): Remove. - (expand_builtin_mathfn): Call builtin_save_expr instead - of save_expr. - (expand_builtin_mathfn_2): Likewise. - (expand_builtin_strcmp): Likewise. - (expand_builtin_strncmp): Likewise. - (expand_builtin_strcat): Likewise. - (fold_builtin_cabs): Likewise. - (expand_builtin_alloca): Don't trigger if -fmudflap is - given. - (build_string_literal): Set TREE_INVARIANT on new node. - (expand_builtin_profile_fun): New. - (round_trampoline_addr): New. - (expand_builtin_init_trampoline): New. - (expand_builtin_adjust_trampoline): New. - (expand_builtin) : Call simplify_builtin_next_arg. - : Return const0_rtx; - : - Handle. - (fold_builtin_expect): New. - (fold_builtin_isascii): Don't return non-constant results - in GIMPLE form. - (fold_builtin_isdigit): Likewise. - (fold_builtin_1): New. - (fold_builtin): Call it. - (build_function_call_expr): Update call to build a new - CALL_EXPR. - (purge_builtin_constant_p): Remove. - (simplify_builtin, simplify_builtin_memcmp, - simplify_builtin_strcmp, simplify_builtin_strncmp, - simplify_builtin_strpbrk, simplify_builtin_strstr, - simplify_builtin_strchr, simplify_builtin_strrchr, - simplify_builtin_strcat, simplify_builtin_strncat, - simplify_builtin_strspn, simplify_builtin_strcspn, - simplify_builtin_next_arg, simplify_builtin_va_start, - simplify_builtin_sprintf): New. - * builtins.def (BUILT_IN_STACK_ALLOC, - BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE, - BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE, - BUILT_IN_NONLOCAL_GOTO, BUILT_IN_PROFILE_FUNC_ENTER, - BUILT_IN_PROFILE_FUNC_EXIT): Define. - * c-common.c: Include tree-iterator.h and hashtab.h. - (lang_statement_code_p): Declare. - (lang_gimplify_stmt): Declare. - (fix_string_type): Set TREE_INVARIANT for value. - (pointer_int_sum): Rely on build to set TREE_CONSTANT. - (c_type_hash): New. - (c_common_get_alias_set): Handle multiple type nodes - referring to "the same" type, currently for C90 only. - (c_add_case_label): Use create_artificial_label. - (finish_label_address_expr): Don't set TREE_CONSTANT on - result. - (c_expand_expr): Don't handle STMT_EXPR. - (handle_alias_attribute): Marke aliased variables to be - TREE_STATIC. - (handle_nonnull_attribute): Initialize arg_num. - (check_function_nonnull): Likewise. - (c_walk_subtrees): New. - (c_estimate_num_insns_1): Don't handle - EXPR_WITH_FILE_LOCATION nor FILE_STMT. - (c_decl_uninit_1): Remove. - (c_decl_uninit): Remove. - (c_warn_unused_result): New. - * c-common.def (ASM_STMT): Change number of operands - to 4. - (FILE_STMT): Remove. - * c-common.h (lang_expand_stmt, lang_expand_decl_stmt): - Remove. - (lang_gimplify_stmt): Add. - (expand_stmt): Remove. - (ASM_CV_QUAL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS, - ASM_CLOBBERS, STMT_EXPR_WARN_UNUSED_RESULT, - ASM_VOLATILE_P, FILE_STMT_FILENAME_NODE, - FILE_STMT_FILENAME, STMT_LINENO, STMT_LINENO_FOR_FN_P, - ASM_INPUT_P, DECL_C_HARD_REGISTER): Remove. - (genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt, - genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt, - genrtl_while_stmt, genrtl_do_stmt, genrtl_return_stmt, - genrtl_for_stmt, genrtl_break_stmt, genrtl_continue_stmt, - genrtl_scope_stmt, genrtl_switch_stmt, genrtl_case_label, - genrtl_compound_stmt, genrtl_asm_stmt, - genrtl_cleanup_stmt, c_decl_uninit): Remove. - (c_do_switch_warnings, c_gimplify_expr, c_walk_subtrees, - c_tree_chain_matters_p, c_warn_unused_result, - c_genericize, c_gimplify_stmt, stmt_expr_last_stmt): - Declare. - * c-convert.c (convert): Make convert work when - converting to compatible types across translation unit. - * c-decl.c: Include langhooks.h, tree-mudflap.h, - tree-simple.h, diagnostic.h and tree-dump.h - (merge_decls): Initialize oldtype to NULL. - (finish_decl): Use DECL_HARD_REGISTER instead of - DECL_C_HARD_REGISTER. - (check_bitfield_type_and_width): Check for null - lang_type_specific when check the precision of an enum. - (grokdeclarator): Immediately layout an ARRAY_TYPE used - in a pointer-to-array declarator. - (finish_struct): Clear allocated struct lang_type. - (finish_enum): Set enum_min and enum_max. Set - TYPE_MIN/MAX_VALUE to the limits of the compatible type, - not to the enumerators. - (set_decl_nonlocal): New. - (store_parm_decls): Use it via walk_tree. - (c_finalize): New. - (finish_function): When !targetm.have_ctors_dtors, - record static constructors and destructors here... - (c_expand_body_1): ... not here. - (c_expand_decl): Rename from c_expand_decl_stmt. - Handle all C-specific expansion semantics. - * c-dump.c (dump_stmt): Use EXPR_LOCUS instead of - STMT_LINENO. - * c-format.c (handle_format_arg_attribute): Initialize - format_num. - * c-lang.c: Include tree-inline.h - (LANG_HOOKS_EXPAND_DECL, - LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P, - LANG_HOOKS_TREE_INLINING_WALK_SUBTREES, - LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P, - LANG_HOOKS_GIMPLIFY_EXPR, LANG_HOOKS_TYPES_COMPATIBLE_P): Define. - (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT, - LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Remove. - (c_types_compatible_p): New. - * c-mudflap.c: New file. - * c-objc-common.c: Include tree-mudflap.h - (start_cdtor, finish_cdtor): Collapse - together into - (build_cdtor): ...here. Update to construct a complete tree - for the function. No need to call push_scope, pop_scope, or - clear_last_expr, or set current_function_cannot_inline. - (c_missing_noreturn_ok_p): Change prototype to return - bool. - (c_objc_common_init): Don't set lang_missing_noreturn_ok_p. - * c-opts.c (c_common_handle_option): Move handling of -fdump- to - opts.c. - (c_common_post_options): Don't ever use rtl inlining. - * c-parse.in: Use EXPR_LOCUS instead of STMT_LINENO. - * c-pragma.c (handle_pragma_redefine_extname): Define - always. - (init_pragma): Activate #pragma redefine_extname for mudflap. - * c-pretty-print.c (pp_c_statement): Remove FILE_STMT. - (pp_c_initializer): Accept any type CONSTRUCTOR. - (pp_c_initializer_list): Fix code expectations for VECTOR_TYPE and - COMPLEX_TYPE. - (decl_name_str): New local function. - (pp_c_direct_declarator): Call it. - (pp_c_primary_expression): Call it. - (pp_c_id_expression): Call it. - (pp_c_statement): Call it. - (print_c_tree): Create new pp object. - * c-pretty-print.h (pp_c_tree_decl_identifier, - print_c_tree): Declare. - * c-semantics.c: Include langhooks.h - (lang_expand_stmt, lang_expand_decl_stmt, - find_reachable_label_1, find_reachable_label, - expand_unreachable_if_stmt, expand_unreachable_stmt, - genrtl_do_stmt_1): Remove. - (begin_stmt_tree): Don't check for changed filename. - Call annotate_with_locus. - (finish_stmt_tree): Don't set line for end of function. - (build_stmt): Don't check type nodes for - side effects. - (build_stmt): Set TREE_SIDE_EFFECTS. - Set EXPR_LOCUS instead of STMT_LINENO. - (lang_expand_stmt, lang_expand_decl_stmt, - expand_cond, genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt, - genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt, - genrtl_while_stmt, genrtl_do_stmt_1, genrtl_do_stmt, - genrtl_return_stmt, genrtl_for_stmt, genrtl_break_stmt, - genrtl_continue_stmt, genrtl_scope_stmt, genrtl_switch_stmt, - genrtl_case_label, genrtl_compound_stmt, genrtl_asm_stmt, - genrtl_cleanup_stmt, expand_stmt, find_reachable_label, - find_reachable_label_1, expand_unreachable_if_stmt, - expand_unreachable_stmt): Remove. - (prep_stmt): Use EXPR_LOCUS instead of STMT_LINENO. - * c-simplify.c: New file. - * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Define. - (struct lang_type): Add fields enum_min and enum_max. - (c_expand_decl_stmt, c_missing_noreturn_ok_p): Remove. - (c_expand_decl, c_missing_noreturn_ok_p, - c_types_compatible_p): Declare. - * c-typeck.c (tagged_types_tu_compatible_p): Allow for - compiler-generated TYPE_DECLs without a DECL_ORIGINAL_TYPE. - (default_function_array_conversion): Rely on build to - set TREE_CONSTANT. - (parser_build_binary_op, pointer_diff): Likewise. - (build_unary_op, build_binary_op): Likewise. - (build_array_ref): - (build_external_ref): Set TREE_INVARIANT. - (build_c_cast, pop_init_level): Likewise. - (process_init_element): Use ASM_VOLATILE_P. - (build_asm_expr): Adapt to GENERIC/GIMPLE syntax. - (c_finish_case): Call c_do_switch_warnings. - * c.opt (fdump-): Remove. - * calls.c (try_to_integrate): Remove. - (prepare_call_address): Replace fndecl arg with a - precomputed static chain value. - (emit_call_1): New argument for full call expr. - (flags_from_decl_or_type): Call special_function_p. - (initialize_argument_information): Add argument - may_tailcall. - (purge_reg_equiv_notes): New. - (expand_call): Do not try to expand calls inline. - (fixup_tail_calls): New. - * cfg.c: Include timevar.h and ggc.h. - (bb_pool, edge_pool): Remove. - (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Declare. - (entry_exit_blocks): Remove. - (rbi_pool): Declare. - (init_flow): Do not create pools. - Allocate entry/exit block. - (free_edge, alloc_block, expunge_block, unchecked_make_edge): Use GGC. - (alloc_rbi_pool, free_rbi_pool, initialize_bb_rbi): New. - (unlink_block): Clear b->prev_bb and b->next_bb. - (compact_blocks): Clear all slots of BASIC_BLOCK array. - (dump_flow_info): Work on trees too. - (dump_cfg_bb_info): New. - (brief_dump_cfg): New. - * cfganal.c (need_fake_edge_p, flow_call_edges_add): Remove. - (find_edge): New. - * cfgbuild.c (rtl_make_eh_edge): Rename from - make_eh_edge. Update all users. - (find_basic_blocks): Don't call VARRAY_FREE on - basic_block_info. - * cfgcleanup.c (outgoing_edges_match): Initialize newpos1 - and newpos2. - (delete_unreachable_blocks): Return changed status. - (merge_seq_blocks): New. - * cfghooks.c: Include tree-flow.h - (tree_register_cfg_hooks, ir_type): New. - (redirect_edge_and_branch): Change return type to edge. - (predict_edge, predicted_by_p, can_duplicate_block_p, - duplicate_block, block_ends_with_call_p, - block_ends_with_condjump_p, flow_call_edges_add): New. - * cfghooks.h (redirect_edge_and_branch): Change return - type to edge. - (predict_edge, predicted_by_p, can_duplicate_block_p, - duplicate_block, block_ends_with_call_p, - block_ends_with_condjump_p, flow_call_edges_add): Declare. - (redirect_edge_and_branch): Change return type to edge. - (struct cfg_hooks): Add fields block_ends_with_call_p, - block_ends_with_condjump_p, flow_call_edges_add, - predict_edge, predicted_by_p, can_duplicate_block_p and - duplicate_block. - (tree_cfg_hooks, ir_type, tree_register_cfg_hooks): Declare. - * cfglayout.c (cfg_layout_pool, cfg_layout_initialize_rbi): Removed. - (fixup_reorder_chain): Use initialize_bb_rbi. - (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Hookized. - (cfg_layout_initialize): Use cfg.c rbi pool manipulation functions. - (can_copy_bbs_p, copy_bbs): Use cfghooks for bb duplication. - (insn_locators_initialize): Use new info about blocks. - * cfglayout.h (typedef struct reorder_block_def): Moved to - basic_block.h. - (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Declaration - removed. - * cfgloop.c: Include tree.h and tree-flow.h. - * cfgloop.h (create_loop_notes): Declare. - * cfgloopmanip.c (create_loop_notes): New. - * cfgrtl.c (cfg_layout_create_basic_block): Use initialize_bb_rbi. - (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Fill in can_duplicate_block_p - and duplicate_block fields. - (create_basic_block_structure): Don't look at - RTX_INTEGRATED_P. - (rtl_block_ends_with_call_p): New. - (rtl_block_ends_with_condjump_p): New. - (need_fake_edge_p): Moved from cfganal.c. - (rtl_flow_call_edges_add): Moved from cfganal.c (flow_call_edges_add). - (rtl_cfg_hooks): Add rtl_block_ends_with_call_p, - rtl_block_ends_with_condjump_p, rtl_flow_call_edges_add. - (cfg_layout_rtl_cfg_hooks): Ditto. - * cgraph.c (cgraph_mark_reachable_node): Don't force nested - functions to be reachable. - * cgraphunit.c (decide_is_function_needed): - * cgraphunit.c (decide_is_function_needed): Nested functions of extern - inline functions don't need to be output. - (cgraph_assemble_pending_functions): Don't do anything - special for nested functions. - (cgraph_mark_functions_to_output): Likewise. - (cgraph_finalize_function): Don't zap DECL_STRUCT_FUNCTION. - (cgraph_analyze_function): Use estimate_num_insns. - (cgraph_mark_functions_to_output): Likewise. - (cgraph_estimate_growth, cgraph_clone_inlined_nodes): Likewise. - (cgraph_expand_function): Allow functions to not be - emitted. - (cgraph_remove_unreachable_nodes): - (cgraph_recursive_inlining_p): Simplify. - (lookup_recursive_calls, - cgraph_decide_recursive_inlining): New. - (cgraph_decide_inlining_*): Update calls of - cgraph_mark_inline. - * combine.c (get_pos_from_mask): Always set *plen. - * common.opt (fdump-, fmudflap, fmudflapth, fmudflapir, - ftree-based-profiling, ftree-ccp, ftree-ch, - ftree-combine-temps, ftree-copyrename, ftree-dce, - ftree-dominator-opts, ftree-dse, ftree-loop-optimize, - ftree-points-to, ftree-pre, ftree-sra, ftree-ter, - ftree-lrs): Add. - * config.in (HAVE_LD_PIE, HAVE_BANSHEE, PREFIX_INCLUDE_DIR): - Undefine. - * configure.ac: Add --enable-tree-browser option. - Add --with-libbanshee option. - Add GMPLIBS and GMPINC. - * configure: Regenerate. - * coverage.c (tree_ctr_tables): New. - (coverage_counter_alloc): Use it. - (build_ctr_info_value): Ditto. - (coverage_counter_ref): Ditto. Rename to rtl_coverage_counter_ref. - (tree_coverage_counter_ref): New. - * coverage.h (coverage_counter_ref): Remove declaration. - (rtl_coverage_counter_ref): Declare. - (tree_coverage_counter_ref): Declare. - * cppexp.c (append_digit): Rearrange unsignedp/overflow setting. - (eval_token, num_binary_op, num_part_mul, num_div_op): Likewise. - * cse.c (fold_rtx): Do not handle CONSTANT_P_RTX. - (struct cse_basic_block_data): Rename enum values to not - conflict with profile.h; update all uses. - * dbxout.c (dbxout_symbol_location): Don't mention integrate.c - in comments. - * defaults.h (TRAMPOLINE_ALIGNMENT): Move from function.c. - * diagnostic.h (debug_output_buffer, dump_generic_node, - print_generic_stmt, print_generic_stmt_indented, - print_generic_expr, print_generic_decl, - debug_generic_expr, debug_generic_stmt, debug_c_tree): - Declare. - * dominance.c: Cache immediate dominators. - * domwalk.c: New file. - * domwalk.h: New file. - * dwarf2out.c (is_fortran): Support DW_LANG_Fortran95. - (gen_subprogram_die): Generate a DIE for a named - return value. - (loc_descriptor_from_tree): Treat RESULT_DECL like VAR_DECL. - (add_location_or_const_value_attribute): Likewise. - (add_bound_info): Likewise. - (gen_decl_die): Likewise. - * emit-rtl.c (maybe_set_first_label_num): New. - (copy_most_rtx): Don't copy the integrated flag. - Copy the new return_val flag. - * et-forest.c (MAX_NODES): Define. - (record_path_before_1): Abort if len is greater than - MAX_NODES. - * except.c (gen_eh_region, gen_eh_region_cleanup, gen_eh_region_try, - gen_eh_region_catch, gen_eh_region_allowed, - gen_eh_region_must_not_throw, get_eh_region_number, - get_eh_region_may_contain_throw, get_eh_region_tree_label, - set_eh_region_tree_label, expand_resx_expr): New. - (expand_eh_region_start, expand_start_catch): Use them. - (expand_end_catch): Tidy. - (note_eh_region_may_contain_throw): Take region argument. - (note_current_region_may_contain_throw): New. - (get_exception_filter): Export. - (collect_eh_region_array): Export. - (remove_unreachable_regions): Check ERT_TRY based on reachability - of catches, not reachability of continue_label. Never remove - ERT_MUST_NOT_THROW regions. - (collect_rtl_labels_from_trees): New. - (convert_from_eh_region_ranges): Use it. - (connect_post_landing_pads): Handle dying cleanups. - (struct reachable_info): Add callback data. - (add_reachable_handler): Invoke the callback. - (foreach_reachable_handler): New. - (reachable_handlers): Use it. - (arh_to_landing_pad, arh_to_label): New. - (can_throw_internal_1): Split out from can_throw_internal. - (can_throw_external_1): Similarly. - * except.h: Update. - * explow.c (emit_stack_save): Remove savearea mode check. - (update_nonlocal_goto_save_area): New. - (allocate_dynamic_stack_space): Use it. - (probe_stack_range): Never emit loop notes. - * expmed.c (extract_fixed_bit_field): Always propagate the - target for the shift if it is a REG. - * expr.c: Include tree-iterator.h - (is_zeros_p): Remove. - (categorize_ctor_elements_1, categorize_ctor_elements): New. - (count_type_elements): New. - (mostly_zeros_p): Use them. - (expr_wfl_stack): Remove. - (convert_move): Do nothing if to and from are the same. - (emit_block_move_via_loop): Don't emit LOOP notes. - (emit_move_insn): Don't handle CONSTANT_P_RTX. - (emit_move_insn_1): Don't generate inline warnings. - (expand_vars, expand_var): Split from ... - (expand_expr_1): ... here. - (expand_expr_real, expand_expr_real_1): Use new macros - EXPR_LOCATION and EXPR_HAS_LOCATION. - * expr.h (simplify_builtin_fputs, - simplify_builtin_strcpy, simplify_builtin_strncpy, - expand_var, fixup_tail_calls, - update_nonlocal_goto_save_area): Declare. - (lookup_static_chain, expand_inline_function, - mark_seen_cases): Remove. - (prepare_call_address): Change type of 2nd argument to - rtx. - * final.c (profile_function): Update static chain test. - (final): Don't look at RTX_INTEGRATED_P. - * flags.h (flag_mudflap, flag_mudflap_threads, - flag_mudflap_ignore_reads, flag_tree_pre, flag_tree_ccp, - flag_tree_dce, flag_tree_combine_temps, - flag_tree_live_range_split, flag_tree_dom, flag_tree_ch, - flag_tree_dse, flag_tree_sra, flag_tree_copyrename, - flag_tree_points_to): Declare. - (enum pta_type): Declare. - * flow.c (lang_missing_noreturn_ok_p): Remove. - (check_function_return_warnings): Remove. - (update_life_info): Update comments. - (free_basic_block_vars): Don't call VARRAY_FREE for - basic_block_info. - (regno_uninitialized): Remove. - * fold-const.c (int_const_binop): Make extern. - (non_lvalue): Rely on build to set TREE_CONSTANT. - (operand_equal_p): Replace only_const argument with - flags. Allow pure functions if OEP_PURE_SAME. - (fold): Use OEP_ONLY_CONST. - (invert_truthvalue) Break if argument is of - boolean type. - (fold_relational_hi_lo, - nondestructive_fold_binary_to_constant, - nondestructive_fold_unary_to_constant, - fold_read_from_constant_string): New. - * function.c (struct function): Remove calls_constant_p. - (current_function_calls_constant_p): Remove. - (inline_function_decl): Remove. - (put_var_into_stack): Don't use it. - (fix_lexical_addr): Likewise. - (inline_function_decl): Remove extern declaration. - (TRAMPOLINE_ALIGNMENT): Move to defaults.h. - (trampolines_created): Move to varasm.c. - (free_after_compilation): Update for removed fields. - (allocate_struct_function): Likewise. - (delete_handlers, lookup_static_chain): Remove. - (fix_lexical_addr): Don't consider non-local variable refs. - (trampoline_address): Remove. - (round_trampoline_addr): Move to builtins.c. - (adjust_trampoline_addr): Remove. - (expand_function_start): Update for changes to static chain - and nonlocal goto handling. - (initial_trampoline): Move to varasm.c. - (expand_function_end): Don't build trampolines or kill - unreferenced nonlocal goto labels. - (free_after_compilation): Don't set it. - (expand_function_end): Likewise. - (setjmp_vars_warning): Rename from - uninitialized_vars_warning, remove uninitialized vars warning. - (uninitialized_vars_warning): Remove old comment - and check for DECL_INITIAL, replace with a check of TREE_NO_WARNING - and do not call the langhook. - (expand_function_start, expand_function_end): Don't do - function instrumentation here. - (clear_block_marks): Rename from reorder_blocks_0, export. - (blocks_nreverse): Export. - (uninitialized_vars_warning): Use DECL_RTL_SET_P to test for presence - of rtl. - (reset_block_changes, record_block_change, finalize_block_changes, - check_block_change, free_block_changes): New functions. - (assign_parms): Setting of current_function_stdarg - moved ... - (allocate_struct_function): ... here. - * function.h (struct function): Remove x_nonlocal_labels, - x_nonlocal_goto_handler_slots, x_nonlocal_goto_stack_level, - x_context_display, x_trampoline_list, needs_context. - Add static_chain_decl, nonlocal_goto_save_area. - (struct function): Remove x_clobber_return_insn. - Add tail_call_emit field, last_label_uid, - unexpanded_var_list, dont_emit_block_notes, - ib_boundaries_block, function_end_locus and saved_tree/saved_args. - (clear_block_marks): Declare. - * gcc.c (MFWRAP_SPEC, MFLIB_SPEC): Add -fmudflapth support. - (mfwrap_spec, mflib_spec): Declare. - (cpp_unique_options, cc1_options): Ditto. - (default_compilers): Add .F and .f90. - (static_specs): Add mfwrap and mflib. - * gcse.c (want_to_gcse_p, gcse_constant_p): Don't handle - CONSTANT_RTX_P. - (reg_used_on_edge, reg_killed_on_edge, bypass_block): - Update to match insns field in struct edge_def. - * gdbinit.in (pgs, pge): Define. - * genattrtab.c (ATTR_PERMANENT_P): Use the return_val flag - instead of the integrated flag. - * gengtype-lex.l (IWOrD): Add HOST_WIDEST_INT - * gengtype-yacc.y (bitfieldlen): Add empty action. - (struct_fields): Accept unnamed bitfields. - (bitfieldlen): Split from ... - (bitfieldopt): ... here. - * gengtype.c (ifiles): Add tree-alias-type.h and - tree-flow.h. - * genrecog.c (validate_pattern): Do not handle - CONSTANT_P_RTX. - * gimple-low.c: New file. - * gimplify.c: New file. - * haifa-sched.c (priority): Do not handle CONSTANT_P_RTX. - (restore_line_notes): Do not set RTX_INTEGRATED_P. - * ifcvt.c (dead_or_predicable): Initialize local variable - 'earliest'. - * input.h (expr_wfl_stack): Remove. - * integrate.c (INTEGRATE_THRESHOLD): Remove. - (setup_initial_hard_reg_value_integration): Likewise. - (initialize_for_inline): Likewise. - (note_modified_parmregs): Likewise. - (integrate_parm_decls): Likewise. - (process_reg_param): Likewise. - (save_parm_insns): Likewise. - (copy_insn_list): Likewise. - (copy_insn_notes): Likewise. - (compare_blocks): Likewise. - (find_block): Likewise. - (inlining): Likewise. - (function_cannot_inline_p): Likewise. - (parmdecl_map): Likewise. - (in_nonparam_insns): Likewise. - (save_for_inline): Likewise. - (FIXED_BASE_PLUS): Likewise. - (expand_inline_function): Likewise. - (copy_rtx_and_substitute): Don't look at map->integrating, - map->inline_target, and inlining, since we are never copying - for integrating. - Don't abort on RTX_INTEGRATED_P. - (old_fun): Remove. - (output_inline_function): Remove. - * integrate.h (struct inline_map): Remove fields integrating, - block_map, leaf_reg_map, inline_target, and local_return_label. - * jump.c (next_nonnote_insn_in_loop, duplicate_loop_exit_test, - copy_loop_headers, never_reached_warning): Removed. - (any_uncondjump_p): Reject nonlocal goto. - * langhooks-def.h (lhd_types_compatible_p, - lhd_expand_decl, lhd_gimplify_expr): Declare. - (LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P, - LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P, - LANG_HOOKS_FUNCTION_LEAVE_NESTED, - LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P, - LANG_HOOKS_GIMPLIFY_EXPR, - LANG_HOOKS_GIMPLE_BEFORE_INLINING, - LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P, - LANG_HOOKS_GIMPLIFY_EXPR, - LANG_HOOKS_GIMPLE_BEFORE_INLINING): Define. - (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_START, - LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END, - LANG_HOOKS_FUNCTION_LEAVE_NESTED, - LANG_HOOKS_RTL_EXPAND_INITIALIZER, - LANG_HOOKS_DECL_UNINIT, - LANG_HOOKS_RTL_EXPAND_INITIALIZER): Remove. - * langhooks.c: Include tree-simple.h. - (lhd_expand_decl): New. - (lhd_types_compatible_p): New. - (lhd_decl_uninit): Remove. - (lhd_gimplify_expr): New. - * langhooks.h (struct lang_hooks_for_rtl_expansion): - Remove. - (struct lang_hooks_for_functions): Add field - missing_noreturn_ok_p. - (struct lang_hooks): Add field expand_decl, - types_compatible_p, gimplify_expr and - gimple_before_inlining. - Remove fields decl_uninit and rtl_expand - * opts.c (decode_options): Set flag_tree_ccp, - flag_tree_dce, flag_tree_dom, flag_tree_dse, - flag_tree_pre, flag_tree_ter, - flag_tree_live_range_split, flag_tree_sra, - flag_tree_copyrename and flag_tree_ch at -O1 and higher. - (common_handle_option): Handle OPT_fdump_, OPT_fmudflap, - OPT_fmudflapth, OPT_fmudflapir, - OPT_ftree_based_profiling, OPT_ftree_ccp, OPT_ftree_dce, - OPT_ftree_combine_temps, OPT_ftree_ter, OPT_ftree_lrs, - OPT_ftree_dominator_opts, OPT_ftree_copyrename, - OPT_ftree_ch, OPT_ftree_dse, OPT_ftree_sra, - OPT_ftree_points_to_ and OPT_ftree_pre. - * output.h (regno_uninitialized, find_basic_blocks, - cleanup_cfg, delete_unreachable_blocks, - check_function_return_warnings): Remove. - * params.def (PARAM_MAX_INLINE_INSNS_RECURSIVE, - PARAM_MAX_INLINE_INSNS_RECURSIVE_AUTO, - PARAM_MAX_INLINE_RECURSIVE_DEPTH, - PARAM_MAX_INLINE_RECURSIVE_DEPTH_AUTO, - PARAM_GLOBAL_VAR_THRESHOLD, PARAM_MAX_ALIASED_VOPS): - * params.h (GLOBAL_VAR_THRESHOLD, MAX_ALIASED_VOPS): - Define. - * passes.c (rest_of_decl_compilation): - (rest_of_handle_sibling_calls): Remove. - (rest_of_handle_inlining): Remove. - (rest_of_handle_gcse): Do not run - purge_builtin_constant_p. - (rest_of_compilation): Update. - Do not call copy_loop_headers. - Do rtl-based profiling only when - !flag_tree_based_profiling. Register rtl-based profiling - hooks. - * predict.c: Include tree-flow.h, ggc.h, tree-dump.h - (predicted_by_p): Rename to ... - (rtl_predicted_by_p): .. this one; make global - (tree_predicted_by_p): New. - (dump_prediction): Add FILE argument. - (predict_edge): Rename to ... - (rtl_predict_edge): .. this one. - (tree_predict_edge): New. - (combine_predictions_for_insn): Update calls of predict_edge. - (predict_loops): Break out from ... - (estimate_probability): ... here; update comments; move updating - of unknown probabilities from ... - (estimate_bb_frequencies): ... here. - (combine_predictions_for_bb): New. - (tree_predict_by_opcode): New. - (tree_estimate_probability): New. - * predict.def (PRED_TREE_POINTER, PRED_TREE_OPCODE_POSITIVE, - PRED_TREE_OPCODE_NONEQUAL, PRED_TREE_FPOPCODE): New predictors. - * predict.h: Add include guard. - (predict_edge, predict_edge_def): Move prototypes to basic_block.h - * pretty-print.c (pp_write_text_to_stream): Make extern. - * pretty-print.h (pp_write_text_to_stream): Declare. - * print-rtl.c (print_rtx): Don't print the integrated flag. - Print the return_val flag. - * print-tree.c: Use TREE_FILENAME and TREE_LINENO instead - of DECL_SOURCE_FILE and DECL_SOURCE_LINE respectively. - Remove support for EXPR_WITH_FILE_LOCATION nodes. - (print_node): Print TREE_INVARIANT and TREE_VISITED. - * profile.c: Include cfghooks.h, tree-flow.h. - (profile_hooks): New. - (profile_dump_file): New. - (instrument_edges): Use hooks instead of RTL-specific code. - (instrument_values): Ditto. - (get_exec_counts): Ditto. - (compute_branch_probabilities): Ditto. - (compute_value_histograms): Ditto. - (branch_prob): Ditto. - (find_spanning_tree): Ditto. - (end_branch_prob): Ditto. - (gen_edge_profiler): Move to rtl-profile.c (rtl_gen_edge_profiler). - (gen_interval_profiler): Ditto (rtl_gen_interval_profiler). - (gen_pow2_profiler): Ditto (rtl_gen_pow2_profiler). - (gen_one_value_profiler): Ditto (rtl_gen_one_value_profiler). - (tree_register_profile_hooks): New. - (rtl_register_profile_hooks): New. - * ra-rewrite.c (rewrite_program): Clear variable info. - * recog.c (immediate_operand): Do not handle CONSTANT_P_RTX. - * regs.h: Add include guards. - * reload.c (decompose): Clear val using memset. - * rtl.def (CONSTANT_P_RTX): Remove. - * rtl.h (CONSTANT_P): Do not handle CONSTANT_P_RTX. - (copy_loop_headers): Remove. - (struct rtx_def): Replace the integrated flag with the - return_val flag. - (maybe_set_first_label_num): Declare. - (init_branch_prob): Move declaration to value-prof.h. - (end_branch_prob): Ditto. - (branch_prob): Ditto. - (never_reached_warning): Don't declare it. - * rtlanal.c (get_related_value): Initialize get_jump_table_offset - (hoist_insn_to_edge): Update to match field insns in - struct edge_def. - * sbitmap.c (sbitmap_realloc): New. - * sbitmap.h (sbitmap_realloc): Declare. - * sibcall.c: Remove file. - * simplify-rtx.c (simplify_rtx): Do not handle - CONSTANT_P_RTX. - * stmt.c (parse_output_constraint): Don't warn for read-write - memory operand. - (tail_recursion_args): Use types_compatible_p langhook. - (force_label_rtx): Don't look at inline_function_decl. - (label_rtx): Set LABEL_PRESERVE_P appropriately. - (expand_label): Handle DECL_NONLOCAL and FORCED_LABEL. - (declare_nonlocal_label): Remove. - (expand_goto): Don't handle nonlocal gotos. - (expand_nl_handler_label): Remove. - (expand_nl_goto_receivers): Remove. - (expand_end_bindings): Don't expand_nl_goto_receivers. Use - update_nonlocal_goto_save_area. - (expand_expr_stmt_value): Check TREE_NO_WARNING. - (warn_if_unused_value): Likewise. - (expand_start_loop, expand_loop_continue_here, - expand_end_loop): Don't create loop notes. - (all_cases_count, BITARRAY_TEST, BITARRAY_SET, - mark_seen_cases, check_for_full_enumeration_handling): Remove. - (expand_end_case_type): Don't do warn_switch handling. - (pushcase, pushcase_range) Update add_case_node calls. - (add_case_node): Add dont_expand_label argument. - (same_case_target_p): Don't search rtl. - (expand_start_bindings_and_block, expand_end_bindings): - Don't emit block notes when dont_emit_block_notes. - (using_eh_for_cleanups_p): Export. - (expand_return): Allow any typed rhs. - (expand_stack_alloc): New. - (expand_stack_save, expand_stack_restore): New. - (containing_blocks_have_cleanups_or_stack_level): New - function. - (asm_op_is_mem_input): New fn. - (expand_asm_expr): New fn. - (warn_if_unused_value): Check operand 0 of SAVE_EXPR - nodes. - * stor-layout.c (layout_type): Just return if type is - error_mark_node. - (update_alignment_for_field): Export. - (variable_size): We don't care about global_bindings_p if - the frontend doesn't want a list of the expressions. - * system.h: Poison INTEGRATE_THRESHOLD. - * timevar.def (TV_TREE_GIMPLIFY, TV_TREE_EH, TV_TREE_CFG, - TV_TREE_CLEANUP_CFG, TV_TREE_PTA, TV_TREE_MAY_ALIAS, - TV_TREE_INSERT_PHI_NODES, TV_TREE_SSA_REWRITE_BLOCKS, - TV_TREE_SSA_OTHER, TV_TREE_OPS, - TV_TREE_SSA_DOMINATOR_OPTS, TV_TREE_SRA, TV_TREE_CCP, - TV_TREE_SPLIT_EDGES, TV_TREE_PRE, TV_TREE_PHIOPT, - TV_TREE_FORWPROP, TV_TREE_DCE, TV_TREE_CD_DCE, - TV_TREE_DSE, TV_TREE_LOOP, TV_TREE_CH, - TV_TREE_SSA_TO_NORMAL, TV_TREE_SSA_TO_NORMAL, - TV_TREE_NRV, TV_TREE_COPY_RENAME, TV_TREE_SSA_VERIFY, - TV_TREE_STMT_VERIFY, TV_DOM_FRONTIERS, - TV_CONTROL_DEPENDENCES): Define. - * toplev.c: Include tree-alias-common.h - (current_file_decl, flag_mudflap, flag_mudflap_threads, - flag_mudflap_ignore_reads, flag_tree_based_profiling, - flag_tree_gvn, flag_tree_points_to, flag_tree_ccp, - flag_tree_dce, flag_tree_ch, flag_tree_sra, - flag_tree_combine_temps, flag_tree_ter, - flag_tree_live_range_split, flag_tree_dom, - flag_tree_copyrename, flag_tree_dse): Declare. - (f_options): Add tree-based-profiling, tree-gvn, - tree-pre, tree-ccp, tree-dce, - tree-dominator-opts, tree-copyrename, tree-dse, - tree-combine-temps, tree-ter, tree-lrs and tree-ch. - (wrapup_global_declarations): Don't output nested inlined functions. - (general_init): Call init_tree_optimization_passes. - (process_options): Sorry for -ftree-based-profiling plus - -ftest-coverage or -fprofile-values. - * toplev.h (init_tree_optimization_passes, - flag_tree_based_profiling): Declare. - * tracer.c (tail_duplicate): Use cfghooks for bb duplication. - * tree-alias-ander.c: New file. - * tree-alias-ander.h: New file. - * tree-alias-common.c: New file. - * tree-alias-common.h: New file. - * tree-alias-type.c: New file. - * tree-alias-type.h: New file. - * tree-browser.c: New file. - * tree-browser.def: New file. - * tree-cfg.c: New file. - * tree-complex.c: New file. - * tree-dfa.c: New file. - * tree-dump.c (dump_enable_all): New. - (dequeue_and_dump): Do not handle EXPR_WITH_FILE_LOCATION. - (dump_node): Remove const from field suffix and swtch. - (dump_files): Add null entry, .generic, .nested, .vcg, - .xml and a match-all entry. - (extra_dump_files, extra_dump_files_in_use, - extra_dump_files_alloced): Declare - (dump_option_value_info): Add raw, details, stats, - blocks, vops, lineno, uid and all. - (dump_register): New. - (get_dump_file_info): New. - (dump_begin): Call it. - Do nothing for TDI_none. - (dump_begin): Include phase number in dump filename. - (dump_enable_all): New. - (dump_switch_p_1): Split out from dump_switch_p. - (dump_switch_p): Handle extra_dump_files. - Start our scan at TDI_none + 1. - If -fdump-tree-all was given, call dump_enable_all. - * tree-dump.h: Include splay-tree.h. - (dump_function, dump_function_to_file, dump_register): - Declare. - * tree-eh.c: New file. - * tree-flow-inline.h: New file. - * tree-flow.h: New file. - * tree-inline.c: Re-write to handle inlining on GIMPLE. - * tree-inline.h (walk_tree, - walk_tree_without_duplicates): Move to tree.h. - (estimate_num_insns): Declare. - * tree-into-ssa.c: New file. - * tree-iterator.c: New file. - * tree-iterator.h: New file. - * tree-mudflap.c: New file. - * tree-mudflap.h: New file. - * tree-nested.c: New file. - * tree-nomudflap.c: New file. - * tree-nrv.c: New file. - * tree-optimize.c (dump_flags, vars_to_rename, - in_gimple_form, all_passes, pass_gimple, - pass_rebuild_bind, pass_all_optimizations, pass_del_cfg): Declare. - (execute_gimple, execute_rebuild_bind, - gate_all_optimizations, execute_del_cfg, - register_one_dump_file, register_dump_files, dup_pass_1, - init_tree_optimization_passes, execute_todo, - execute_one_pass, execute_pass_list): New. - (clear_decl_rtl): Remove. - (tree_rest_of_compilation): Update to use tree - optimizers. - * tree-outof-ssa.c: New file. - * tree-pass.h: New file. - * tree-phinodes.c: New file. - * tree-pretty-print.c: New file. - * tree-profile.c: New file. - * tree-simple.c: New file. - * tree-simple.h: New file. - * tree-sra.c: New file. - * tree-ssa-alias.c: New file. - * tree-ssa-ccp.c: New file. - * tree-ssa-copy.c: New file. - * tree-ssa-copyrename.c: New file. - * tree-ssa-dce.c: New file. - * tree-ssa-dom.c: New file. - * tree-ssa-dse.c: New file. - * tree-ssa-forwprop.c: New file. - * tree-ssa-live.c: New file. - * tree-ssa-live.h: New file. - * tree-ssa-loop.c: New file. - * tree-ssa-operands.c: New file. - * tree-ssa-operands.h: New file. - * tree-ssa-phiopt.c: New file. - * tree-ssa-pre.c: New file. - * tree-ssa.c: New file. - * tree-ssanames.c: New file. - * tree-tailcall.c: New file. - * tree.c: Include tree-iterator.h, basic-block.h and - tree-flow.h. - (tree_node_kind): Add phi_nodes and ssa names. - (tree_size): Handle PHI_NODE, EPHI_NODE, SSA_NAME, - EUSE_NODE, EKILL_NODE, EEXIT_NODE and STATEMENT_LIST. - (make_node_stat): Handle PHI_NODE and SSA_NAME. - <'c'> Set TREE_INVARIANT. - (copy_node_stat): Abort if trying to copy a - STATEMENT_LIST. - Clear TREE_VISITED. - Clear annotation field. - (build_constructor): Copy TREE_INVARIANT from vals. - Don't clear TREE_CONSTANT. - (expr_first, expr_last, expr_length): Remove. - (staticp): Pass unknown component references to the language. - (save_expr): Check TREE_INVARIANT instead of TREE_CONSTANT. - (skip_simple_arithmetic): Likewise. - (stabilize_reference_1): Likewise. - (tree_node_structure): Handle PHI_NODE, EPHI_NODE, - EUSE_NODE, EKILL_NODE, EEXIT_NODE, SSA_NAME and - STATEMENT_LIST. - (lhd_unsave_expr_now): Remove. - (unsafe_for_reeval): Handle LABEL_EXPR and BIND_EXPR. - (recompute_tree_invarant_for_addr_expr): New. - (build1_stat): Clear EXPR_LOCUS and TREE_BLOCK. - Call recompute_tree_invarant_for_addr_expr. - Set TREE_INVARIANT accordingly. - (build2_stat): Don't handle CALL_EXPR. - (build3_stat): Don't call build2_stat for CALL_EXPRs. - (build_expr_wfl): Remove. - (annotate_with_file_line, annotate_with_locus): New. - (simple_cst_equal): Call simple_cst_list_equal to compare - CONSTRUCTOR_ELTS pointers. - (iterative_hash_expr): Don't hash types associated - with conversions. Instead hash on the signedness of the - toplevel object and the operand of the conversion. - (dump_tree_statistics): Call ssanames_print_statistics - and phinodes_print_statistics. - (ephi_node_elt_check_failed, phi_node_elt_check_failed, - add_var_to_bind_expr, build_empty_stmt, is_essa_node, - needs_to_live_in_memory): New. - (initializer_zerop): Handle VECTOR_CST. Don't check - AGGREGATE_TYPE_P for CONSTRUCTOR. - * tree.def (FILTER_EXPR, CASE_LABEL_EXPR, RESX_EXPR, - SSA_NAME, EUSE_NODE, EKILL_NODE, EPHI_NODE, EEXIT_NODE, - PHI_NODE, CATCH_EXPR, EH_FILTER_EXPR, STATEMENT_LIST): Define. - (GOTO_SUBROUTINE_EXPR): Change type to 's'. - (CALL_EXPR): Add another operand. - (EXPR_WITH_FILE_LOCATION): Remove. - (SWITCH_EXPR): Add another operand. - * tree.h: Update various comments. - (union tree_ann_d): Forward declare. - (struct tree_common): Add fields nowarning_flag, - invariant_flag and visited. - (EREF_NODE_CHECK, EPHI_NODE_ELT_CHECK, - PHI_NODE_ELT_CHECK, EREF_NODE_CHECK, PHI_NODE_ELT_CHECK, - EPHI_NODE_ELT_CHECK, TREE_BLOCK, - STRIP_USELESS_TYPE_CONVERSION, CALL_EXPR_TAILCALL, - TREE_NO_WARNING, FORCED_LABEL, TREE_INVARIANT, - IS_EMPTY_STMT, EXPR_LOCUS, SET_EXPR_LOCUS, EXPR_FILENAME, - EXPR_LINENO, EXPR_LOCATION, EXPR_HAS_LOCATION, - EXIT_EXPR_COND, SWITCH_COND, SWITCH_BODY, SWITCH_LABELS, - CASE_LOW, CASE_HIGH, CASE_LABEL, BIND_EXPR_VARS, - BIND_EXPR_BODY, BIND_EXPR_BLOCK, GOTO_DESTINATION, - ASM_STRING, ASM_OUTPUTS, ASM_INPUTS, ASM_CLOBBERS, - ASM_INPUT_P, ASM_VOLATILE_P, COND_EXPR_COND, - COND_EXPR_THEN, COND_EXPR_ELSE, LABEL_EXPR_LABEL, - CATCH_TYPES, CATCH_BODY, EH_FILTER_TYPES, - EH_FILTER_FAILURE, EH_FILTER_MUST_NOT_THROW, - SSA_NAME_VAR, SSA_NAME_DEF_STMT, SSA_NAME_VERSION, - SSA_NAME_OCCURS_IN_ABNORMAL_PHI, SSA_NAME_IN_FREE_LIST, - PHI_RESULT, PHI_REWRITTEN, PHI_NUM_ARGS, - PHI_ARG_CAPACITY, PHI_ARG_ELT, PHI_ARG_EDGE, PHI_ARG_DEF, - EREF_PROCESSED, EREF_ID, EREF_NAME, EREF_STMT, - EREF_RELOAD, EREF_SAVE, EREF_CLASS, EREF_INJURED, - EREF_TEMP, EUSE_DEF, EUSE_PHIOP, EUSE_INSERTED, - EUSE_LVAL, EPHI_NUM_ARGS, EPHI_ARG_CAPACITY, - EPHI_ARG_ELT, EPHI_ARG_EDGE, EPHI_ARG_PRED, EPHI_ARG_DEF, - EPHI_ARG_INJURED, EPHI_ARG_DELAYED_RENAME, - EPHI_ARG_HAS_REAL_USE, EPHI_ARG_STOPS, - EPHI_ARG_PROCESSED2, EPHI_IDENTITY, EPHI_IDENT_INJURED, - EPHI_REP_OCCUR_KNOWN, EPHI_IDENTICAL_TO, EPHI_DOWNSAFE, - EPHI_CANT_BE_AVAIL, EPHI_DEAD, EPHI_USES, EPHI_STOPS, - TREE_VISITED, SSA_VAR_P, DECL_NUM_STMTS, - DECL_HARD_REGISTER, DECL_PTA_ALIASVAR, LABEL_DECL_UID, - DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL, - STATEMENT_LIST_HEAD, STATEMENT_LIST_TAIL, TDF_RAW, - TDF_DETAILS, TDF_STATS, TDF_BLOCKS, TDF_VOPS, TDF_LINENO, - TDF_UID,): Define. - (TREE_NO_UNUSED_WARNING, EXPR_WFL_EMIT_LINE_NOTE, - EXPR_WFL_NODE, EXPR_WFL_FILENAME_NODE, EXPR_WFL_FILENAME, - EXPR_WFL_LINECOL, EXPR_WFL_LINENO, EXPR_WFL_COLNO, - EXPR_WFL_SET_LINECOL): Remove. - (phi_node_elt_check_failed, ephi_node_elt_check_failed, - make_phi_node, init_phinodes, fini_phinodes, - release_phi_node, phinodes_print_statistics, - init_ssanames, fini_ssanames, make_ssa_name, - release_ssa_name, ssanames_print_statistics, - annotate_with_file_line, build_empty_stmt, - annotate_with_locus, expr_only, categorize_ctor_elements, - count_type_elements, add_var_to_bind_expr, is_essa_node, - expand_stack_alloc, expand_stack_save, - expand_stack_restore, add_case_node, operand_equal_p, - nondestructive_fold_unary_to_constant, - nondestructive_fold_binary_to_constant, - fold_read_from_constant_string, int_const_binop, - strip_float_extensions, simplify_builtin, c_strlen, - recompute_tree_invarant_for_addr_expr, - needs_to_live_in_memory, make_vector, - setjmp_vars_warning, update_alignment_for_field, - expand_asm_expr, asm_op_is_mem_input, - containing_blocks_have_cleanups_or_stack_level, - create_artificial_label, gimplify_function_tree, - get_name, unshare_expr, walk_tree, - walk_tree_without_duplicates, in_gimple_form): Declare. - (struct tree_exp): Add fields locus and block. - (struct tree_ssa_name, struct edge_def, struct - tree_phi_node, struct tree_eref_common, struct - tree_euse_node, struct ephi_arg_d, struct tree_ephi_node, - union alias_var_def, struct tree_statement_list_node, - struct tree_statement_list, enum operand_equal_flag): Declare. - (enum tree_node_structure_enum): Add TS_SSA_NAME, - TS_PHI_NODE, TS_EPHI_NODE, TS_EUSE_NODE, TS_EREF_NODE, - TS_STATEMENT_LIST. - (union tree_node): Add fields ssa_name, phi, eref, ephi, - euse and stmt_list. - (function_cannot_inline_p, uninitialized_vars_warning, - save_for_inline, output_inline_function, all_cases_count, - check_for_full_enumeration_handling, - declare_nonlocal_label): Remove. - (enum tree_dump_index): Add TDI_none, TDI_tu, - TDI_generic, TDI_nested, TDI_vcg, TDI_xml. - * unroll.c (unroll_loop): Don't clear map->inline_target. - * unwind-sjlj.c (uw_install_context): Make a proper static inline - function. - * value-prof.c (value_prof_hooks): New. - (find_values_to_profile): Rename to rtl_find_values_to_profile. - Move rtl-specific bits in from branch_prob. - (value_profile_transformations): Rename to - rtl_value_profile_transformations. - (struct value_prof_hooks): New. - (rtl_value_prof_hooks): New. - (rtl_register_value_prof_hooks): New. - (tree_find_values_to_profile): New stub. - (tree_value_profile_transformations): New stub. - (tree_value_prof_hooks): New stub. - (tree_register_value_prof_hooks): New stub. - (find_values_to_profile): New. - (value_profile_transformations): New. - * value-prof.h: Add multiple inclusion guard. - (struct histogram_value): Change rtx fields to void *. - (rtl_register_value_prof_hooks): New declaration. - (tree_register_value_prof_hooks): New declaration. - (find_values_to_profile): New declaration. - (free_profiled_values): New declaration. - (value_profile_transformations): New declaration. - (struct profile_hooks): New declaration. - (init_branch_prob): Declaration moved from rtl.h. - (branch_prob): Declaration moved from rtl.h. - (end_branch_prob): Declaration mooved from rtl.h. - (tree_register_profile_hooks): New declaration. - (rtl_register_profile_hooks): New declaration. - (tree_profile_hooks): New declaration. - (rtl_profile_hooks): New declaration. - * varasm.c: Include tree-mudflap.h. - (TRAMPOLINE_ALIGNMENT): Remove. - (make_decl_rtl): Call mudflap_enqueue_decl. - (assemble_static_space): - (assemble_trampoline_template): Set and return - TRAMPOLINE_ALIGNMENT. - * varray.c (element): Add GENERIC_PTR_NOGC entry. - Add entry for 'tree *'. - Add entry for struct edge_def *. - (varray_copy): New. - * varray.h (enum varray_data_enum): Add - VARRAY_DATA_GENERIC_NOGC, VARRAY_DATA_EDGE and - VARRAY_DATA_TREE_PTR. - (union varray_data_tag): Corresponding changes. - (VARRAY_GENERIC_PTR_NOGC_INIT, VARRAY_EDGE_INIT, - VARRAY_TREE_PTR_INIT, VARRAY_GENERIC_PTR_NOGC, - VARRAY_EDGE, VARRAY_TREE_PTR, - VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_EDGE, - VARRAY_PUSH_TREE_PTR, VARRAY_TOP_GENERIC_PTR_NOGC, - VARRAY_TOP_EDGE, VARRAY_TOP_TREE_PTR): Define. - - * config/*/*: Various updates for changed macros, tree - codes, etc. Check ChangeLog.tree-ssa. - - * doc/cfg.texi: New file. - * doc/tree-ssa.texi: New file. - * doc/c-tree.texi: Document new codes. - * doc/gccint.texi: Include new files. - * doc/install.texi: Document new features. - * doc/invoke.texi: Document new switches. - * doc/passes.texi: Document new passes. - * doc/rtl.texi: Update changed RTL codes. - * doc/sourcebuild.texi: Update build instructions. - * doc/standards.texi: Document Fortran changes. - * doc/tm.texi: Update. - -2004-05-12 Paolo Bonzini - - Replace several arrays with a struct of arrays. - * combine.c (struct reg_stat): New. - (init_reg_last_arrays): Renamed to... - (init_reg_last): ...this. Callers adjusted. - (reg_stat): New. - (combine_instructions): Allocate it and use it. - (reg_last_death, reg_last_set, reg_last_set_value, - reg_last_set_label, reg_last_set_table_tick, - reg_last_set_invalid, reg_nonzero_bits, reg_sign_bit_copies, - reg_last_set_mode, reg_last_set_nonzero_bits, - reg_last_set_sign_bit_copies): Replace throughout - with items of reg_stat. - -2004-05-11 Kaz Kojima - - PR optimization/15100 - * combine.c (distribute_notes): Don't create a dangling - REG_LIBCALL/REG_RETVAL note. - -2004-05-11 Aldy Hernandez - - * config/rs6000/spe.md (spe_evneg): Rename to negv2si2. - - * config/rs6000/rs6000.c (bdesc_1arg): Change spe_evneg to - negv2si2. - -2004-05-11 Aldy Hernandez - - * doc/md.texi (Standard Names): Fix typo in vec_init description. - -2004-05-11 Geoffrey Keating - - * doc/gty.texi (GTY Options): Clarify example. - -2004-05-11 Fariborz Jahanian - - * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): - Add const qualifier to altivec vector type if one is needed. - -2004-05-11 Paul Brook - - * flags.h (flag_short_enums): Update comment. - * opts.c (decode_options): Set flag_short_enums to 2. - * toplev.c (flag_short_enums): Update comment. - (process_options): Call default_short_enums target hook. - -2004-05-11 Andrew Pinski - - PR target/14063 - * config/rs6000/altivec.md (altivec_dssall): - Change to unspec_volatile. - (altivec_dss): Likewise. - -2004-05-10 Aldy Hernandez - - * config/rs6000/altivec.md ("one_cmplv16qi2"): Change vnot to - vnor. - ("one_cmplv8hi2"): Same. - ("one_cmplv4si2"): Same. - -2004-05-10 Kaz Kojima - - PR target/15130 - * config/sh/sh-protos.h (sh_expand_epilogue): Change prototype. - * config/sh/sh.c (output_stack_adjust): Take the sibcall epilogue - into account. Compute the correct number of general registers - for the return value. 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. Set the 3rd argument of output_stack_adjust to - -1 if needed. - (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. - -2004-05-10 Andrew Pinski - - * gcse.c (eliminate_partially_redundant_loads): Instead of returning early, - goto a cleanup label. After the cleanup, free the allocated memory. - -2004-05-10 Ziemowit Laski - - * config/rs6000/altivec.h (vec_sld): Add overloads for - argument/return types of 'vector bool int', 'vector bool short' - and 'vector bool char'. - -2004-05-10 Zack Weinberg - - * c-decl.c (store_parm_decls_newstyle): Correct test for a - nested function. - -2004-05-10 Richard Sandiford - - * read-rtl.c (read_rtx): Allow 's' and 'T' strings to be omitted, - treating missing ones as "". - * config/mips/mips.md: Remove constraints from match_operands and - match_scratches if they appear in define_expands (except reload*), - define_peephole2s, define_splits or attribute specifications. - * config/mips/7000.md, config/mips/sb1.md: Remove match_operand - constraint strings. - -2004-05-10 Alan Modra - - * config/rs6000/rs6000.c (function_arg_boundary): Always align - AltiVec vectors. - (function_arg_advance): Pass TARGET_32BIT -mabi=no-altivec AltiVec - vectors by refererence. Align the same for TARGET_64BIT to a 16 - byte boundary. Remove useless code. Add function comment. - (function_arg): Similarly. Move gpr rs6000_mixed_function_arg - call to where it belongs. - (function_arg_partial_nregs): Return true for all TARGET_32BIT - -mabi=no-altivec AltiVec vectors. Fix debug output. - (rs6000_va_arg): Adjust for AltiVec change. - -2004-05-10 Paul Brook - - * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED. - * config/arm/arm.h (TARGET_AAPCS_BASED): Define. - (TARGET_DOUBLEWORD_ALIGN): Use it. - (WCHAR_TYPE): Define. - (WCHAR_SIZE_TYPE): Define. - (SIZE_TYPE): Define. - -2004-05-10 Alan Modra - - * config/rs6000/rs6000.c (function_arg_boundary): Align for ABI_V4 - when size is 8 bytes. - (function_arg_advance): Account for stack space used by AltiVec - args when -mabi=altivec. Simplify alignment calculations. For - ABI_V4, pass AltiVec vectors by reference when -mabi=no-altivec. - (function_arg): Similarly. - (function_arg_pass_by_reference): True for ABI_V4 AltiVec when - not AltiVec ABI. - (rs6000_va_arg): Correct fp arg test. Adjust for AltiVec change. - Correct alignment, and align before testing reg count. Remove - TREE_THIS_VOLATILE from reg. Don't emit unused labels. - (rs6000_complex_function_value): Check TARGET_HARD_FLOAT and - TARGET_FPRS here.. - (rs6000_function_value): .. not here before call. - -2004-05-09 Aldy Hernandez - - * config/rs6000/spe.md ("tstsflt_gpr"): Fix typo in unspec. - -2004-05-09 Zack Weinberg - - PR 15007 - * c-decl.c (current_file_decl): Rename to all_translation_units, - adjust comment. - (pop_scope): If popping file_scope, construct a - TRANSLATION_UNIT_DECL and make it the context of all the - symbols in the scope. - (push_file_scope): Don't construct a TRANSLATION_UNIT_DECL here. - (pushdecl): Clarify comment. Do not set DECL_CONTEXT of - anything to current_file_decl. - (pushdecl_top_level): Likewise. - (store_parm_decls_newstyle): Adjust check for nested function. - (c_write_global_declarations): Update for renamed variable. - -2004-05-09 Aldy Hernandez - - * config/rs6000/rs6000-protos.h - (rs6000_conditional_register_usage): Protoize. - - * config/rs6000/rs6000.c (rs6000_conditional_register_usage): New. - - * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Call - function. - -2004-05-08 Roger Sayle - - * fold-const.c (fold_div_compare): New function to optimize X/C1 op C2 - where op is a comparison operator and C1 and C2 are integer constants - into a range check. - (fold): Call fold_div_compare. - -2004-05-08 Eric Botcazou - - * doc/install.texi (sparc-sun-solaris2*): Document bootstrap - problems with earlier versions of the GNU compiler. - -2004-05-07 Aldy Hernandez - - * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p): - Declare. - - * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): New. - (rs6000_hard_regno_mode_ok): New. - (rs6000_init_hard_regno_mode_ok): New. - (rs6000_override_options): Call rs6000_init_hard_regno_mode_ok. - - * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Use precomputed - result. - -2004-05-07 Ziemowit Laski - - * config/rs6000/altivec.h (vector, pixel, bool): Do not - define as macros #ifdef __APPLE_ALTIVEC__. - -2004-05-07 Fariborz Jahanian - - * config/rs6000/rs6000.c (rs6000_mixed_function_arg): - Generate appropriate parallels for vector arguments - passed to vararg functions. (function_arg): make the call - to rs6000_mixed_function_arg for vector args as needed. - -2004-05-07 Richard Sandiford - - * config/mips/mips.c (mips_va_arg): Fix calculation of osize for - EABI_FLOAT_VARARGS_P. - -2004-05-07 Richard Sandiford - - * config/mips/mips.h (ISA_HAS_BRANCHLIKELY): Remove TARGET_MIPS5500. - * config/mips/mips.c (override_options): Disable branch likely - instructions if TUNE_MIPS5500. - -2004-05-07 Richard Sandiford - - * config/mips/mips.c (override_options): Allow the hi and lo registers - to store any integral mode, not just MODE_INTs. - -2004-05-07 Paul Brook - - * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED. - * config/arm/arm.h (TARGET_AAPCS_BASED): Define. - (TARGET_DOUBLEWORD_ALIGN): Use it. - (WCHAR_TYPE): Define. - (WCHAR_SIZE_TYPE): Define. - (SIZE_TYPE): Define. - -2004-05-07 Uros Bizjak - - * config/i386/i386.c (ix86_emit_fp_unordered_jump): Use - testb $4, %ah insn instead of sahf insn if !TARGET_USE_SAHF. - -2004-05-07 Andrew Pinski - - * loop-doloop.c (doloop_valid_p): Make sure that body - gets freed. - -2004-05-07 Eric Botcazou - - * config/sparc/sparc-protos.h (sparc_skip_caller_unimp): New - declaration. - * config/sparc/sparc.c (SKIP_CALLERS_UNIMP_P): Delete. - (sparc_skip_caller_unimp): New global variable. - (sparc_function_epilogue): Set 'sparc_skip_caller_unimp'. - Use it instead of SKIP_CALLERS_UNIMP_P. - * config/sparc/sparc.md (call expander): Add sanity check. - (call_address_struct_value_sp32): Re-sync with expander. - (call_symbolic_struct_value_sp32): Likewise. - (return peepholes): Use 'sparc_skip_caller_unimp' instead - of custom predicate. - -2004-05-07 Eric Botcazou - - PR c++/14962 - * c-pragma.c (handle_pragma_redefine_extname): Only change - the assembler name of FUNCTION_DECLs and VAR_DECLs. - -2004-05-07 Uros Bizjak - - * optabs.h (enum optab_index): Add new OTI_log1p. - (log1p_optab): Define corresponding macro. - * optabs.c (init_optabs): Initialize log1p_optab. - * genopinit.c (optabs): Implement log1p_optab using log1p?f2 - patterns. - * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG1P{,F,L} - using log1p_optab. - (expand_builtin): Expand BUILT_IN_LOG1P{,F,L} using - expand_builtin_mathfn if flag_unsafe_math_optimizations is set. - - * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FYL2XP1. - - * config/i386/i386.c (ix86_emit_i387_log1p): New function. - * config/i386/i386-protos.h (ix86_emit_i387_log1p): - Prototype here. - * config/i386/i386.md (UNSPEC_FYL2XP1): New unspec to represent - x87's fyl2xp1 instruction. - (*fyl2x_xf3): Rename insn definition to fyl2x_xf3. - (fyl2xp1_xf3): New pattern to implement fyl2xp1 x87 instruction. - (log1psf2, log1pdf2, log1pxf2): New expanders to implement log1pf, - log1p and log1pl built-ins as inline x87 intrinsics. - -2004-05-07 Loren James Rittle - - * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Proper redefinition. - * config/arm/freebsd.h: Likewise. - * config/ia64/freebsd.h: Likewise. - * config/sparc/freebsd.h: Likewise. - -2004-05-07 Hans-Peter Nilsson - - PR optimization/15296 - * reorg.c (fill_simple_delay_slots): Use next_real_insn when - getting last consecutive label at a branch. - (relax_delay_slots): Similar, near top of loop. - -2004-05-06 John David Anglin - - PR target/15202 - * pa.md (movdi, movsi, movhi, movqi): Support move from shift amount - register to general register. - -2004-05-07 Alan Modra - - * config/rs6000/rs6000.h (STACK_BOUNDARY): Use 128 bit for either - TARGET_ALTIVEC or TARGET_ALTIVEC_ABI. - * config/rs6000/sysv4.h (ABI_STACK_BOUNDARY): Likewise. - (STACK_BOUNDARY): Delete. - -2004-05-06 Stuart Hastings - - * gcc/doc/invoke.texi: Restore -fgcse-after-reload doc from 1.421, - mistakenly clobbered by 1.423. - -2004-05-06 Richard Sandiford - - * doc/invoke.texi: Document -mvr4130-align. - * config/mips/mips.h (MASK_VR4130_ALIGN, TARGET_VR4130_ALIGN) - (TUNE_MIPS4120, TUNE_MIPS4130): New macros. - (TUNE_MACC_CHAINS): Include TUNE_MIPS4120 and TUNE_MIPS4130. - (TARGET_SWITCHES): Add -mvr4130-align and -mno-vr4130-align. - * config/mips/mips.md: Include sched-int.h. - (USEFUL_INSN_P, SEQ_BEGIN, SEQ_END, FOR_EACH_SUBINSN): New macros. - (mips_rtx_costs): Set integer multiplication costs for TUNE_MIPS4130. - (override_options): Enable -mvr4130-align at -O3 and above. - (mips_sim_insn): New variable. - (mips_sim): New structure. - (mips_sim_reset, mips_sim_init, mips_sim_next_cycle, mips_sim_wait_reg) - (mips_sim_wait_regs_2, mips_sim_wait_regs_1, mips_sim_wait_regs) - (mips_sim_wait_units, mips_sim_wait_insn, mips_sim_record_set) - (mips_sim_issue_insn, mips_sim_issue_nop, mips_sim_finish_insn) - (vr4130_avoid_branch_rt_conflict, vr4130_align_insns): New functions. - (mips_reorg): Call vr4130_align_insns. - (vr4130_last_insn): New variable. - (vr4130_true_reg_dependence_p_1, vr4130_true_reg_dependence_p) - (vr4130_swap_insns_p, vr4130_reorder): New functions. - (mips_sched_reorder, mips_variable_issue): Hook in vr4130 code. - (mips_issue_rate): Return 2 for PROCESSOR_R4130. - (mips_use_dfa_pipeline_interface): Return true for the same. - * config/mips/4130.md: New file. - * config/mips/mips.md: Include it. Add a peephole2 to convert - "mult;mflo" into "mtlo;macc". - (*macc, *umul_acc_di, *smul_acc_di): Use $1 rather than $0 as the - target of maccs. - (*msac_using_macc): New pattern. - -2004-05-06 Richard Sandiford - - * config/mips/5500.md (ir_vr55_store): Set latency to 0. - (ir_vr55_hilo): Split into... - (ir_vr55_mfhilo, ir_vr55_mthilo): ...these new reservations. - (ir_vr55_imul_si, ir_vr55_imadd): Change latency to 5. - (ir_vr55_imul_di): Change latency to 9. Reserve vr55_mac for 4 cycles. - Add various multiplication bypasses. - * config/mips/mips.c (mips_rtx_costs): Adjust VR5500 costs for integer - multiplication. - -2004-05-06 Uros Bizjak - - * config/i386/i386.md (*fscalexf4): Correct insn "mode" - attribute to "XF". - -2004-05-05 Uros Bizjak - - * optabs.h (enum optab_index): Add new OTI_fmod and OTI_drem. - (fmod_optab, drem_optab): Define corresponding macros. - * optabs.c (init_optabs): Initialize fmod_optab and drem_optab. - * genopinit.c (optabs): Implement fmod_optab and drem_optab - using fmod?f3 and drem?f3 patterns. - * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_FMOD{,F,L} - using fmod_optab and BUILT_IN_DREM{,F,L} using drem_optab. - (expand_builtin): Expand BUILT_IN_FMOD{,F,L} and - BUILT_IN_DREM{,F,L} using expand_builtin_mathfn_2 if - flag_unsafe_math_optimizations is set. - - * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FPREM_F, - UNSPEC_FPREM_U, UNSPEC_FPREM1_F and UNSPEC_FPREM1_U. - - * config/i386/i386.c (ix86_emit_fp_unordered_jump): New function. - * config/i386/i386-protos.h (ix86_emit_fp_unordered_jump): - Prototype here. - * config/i386/i386.md (UNSPEC_FPREM_F, UNSPEC_FPREM_U, - UNSPEC_FPREM1_F, UNSPEC_FPREM1_U): New unspecs to represent x87's - fprem and fprem1 instructions. - (*x86_fnstsw_1): Change input parameter to (reg:CCFP 18). - Rename insn definition to x86_fnstsw_1. - (fpremxf4, fprem1xf4): New patterns to implement fprem and fprem1 - x87 instructions. - (fmodsf3, fmoddf3, fmodxf3): New expanders to implement fmodf, fmod - and fmodl built-ins as inline x87 intrinsics. - (dremsf3, dremdf3, dremxf3): New expanders to implement dremf, drem - and dreml built-ins as inline x87 intrinsics. - -2004-05-05 Roger Sayle - - * reload1.c (inherit_piecemeal_p): Mark parameters potentially unused. - -2004-05-05 Ian Lance Taylor - - PR driver/9822 - * doc/invoke.texi (Spec Files): Remove documentation of %c. - -2004-05-05 Chris Demetriou - - * config/mips/mips.md: Update the msub define_split for new mflo/mfhi - representation. - -2004-05-06 Paul Brook - - * config/arm/arm-protots.h (vfp_mem_operand): Rename ... - (arm_coproc_mem_operand): ... To this. - * config/arm/arm.c (arm_legitimate_address_p): Allow ldrd modes. - (arm_legitimate_index_p): Ditto. - (vfp_mem_operand): Rename ... - (arm_coproc_mem_operand): ... To this. Handle writeback modes. - (vfp_secondary_reload_class): Use it. - (output_move_double): Use doubleword load/store instructions. - (arm_hard_regno_mode_ok): Only allow even reg pairs for ldrd. - * config/arm/arm.h (TARGET_LDRD): Define. - (EXTRA_CONSTRAINT_STR_ARM): Add 'Uy'. - * config/gcc/arm/arm.md (arm_movdi): Allow all valid memory operands. - New splitter for invalid doubleword loads. - * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Use Uy constraint. - * config/arm/vfp.md (arm_movdi_vfp): Allow all valid memory operands. - * doc/md.texi: Document Uy constraint. - -2004-05-05 Jan Hubicka - - PR opt/14980 - * cgraphunit.c (cgraph_remove_unreachable_nodes): Deal properly with - inline clones. - -2004-05-05 H.J. Lu - - PR target/15290 - * config/i386/i386.c (ix86_split_to_parts): Use real_to_target - instead of REAL_VALUE_TO_TARGET_LONG_DOUBLE. - -2004-05-05 Mike Stump - - * config/darwin-c.c (add_framework): Copy the directory name as it - can be freed later. Also, ensure we always allocate enough room - for the cached framework information. - (find_subframework_header): Keep track of the directory where the - subframework header was found. - (framework_construct_pathname): Speed up by not trying to re-add a - framework. - * cppfiles.c (search_path_exhausted): Arrange for the missing - header callback to be able to set the directory where the header - was found. - (cpp_get_dir): Add. - * cpplib.h (missing_header_cb): Add a parameter. - (cpp_get_dir): Add. - -2004-05-03 Mike Stump - - * doc/invoke.texi (Directory Options): Document -iquote. - * doc/cpp.texi: Likewise. - * doc/cppopts.texi: Likewise. - * c-opts.c (c_common_missing_argument): Add -iquote processing. - (c_common_handle_option): Likewise. - * c.opt (iquote): Add. - * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -iquote. - * c-incpath.c (merge_include_chains): Update comment to use -iquote. - - * c-opts.c (case OPT_I): Deprecate -I- support. - * doc/invoke.texi: Likewise. - * doc/cpp.texi: Likewise. - * doc/cppopts.texi: Likewise. - -2004-05-05 Steven Bosscher - - * basic-block.h (free_basic_block_vars): Update prototype. - * flow.c (free_basic_block_vars): Remove the keep_head_end_p - argument. - (life_analysis): Update call. - * ifcvt.c (if_convert): Likewise. - * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise. - * passes.c (rest_of_handle_final): Likewise. - (rest_of_compilation): Likewise. - * config/sh/sh.c (sh_output_mi_thunk): Likewise. - - * emit-rtl.c (next_real_insn): Use INSN_P. - (prev_real_insn): Likewise. - -2004-05-05 Eric Christopher - - * config/mips/mips.md: Update the madd define_split for new mflo/mfhi - representation. - -2004-05-05 Paolo Bonzini - - * config/rs6000/rs6000.c (build_opaque_vector_type): - New function. - (rs6000_init_builtins): Use it. - -2004-05-04 Bernard Giroud - - * gcc/gcc/vmsdbgout.c (vms_func_node, vms_func_ref): New. - (func_table): Change type from char ** to vms_func_ref. - (write_rtnbeg): Update to reflect func_table change. Use - fde->funcdef_number instead of rtnnum in output. - (write_rtnend, vmxdbgout_begin_function, vmsdbgout_init): Likewise. - -2004-05-04 Paolo Bonzini - Richard Henderson - - PR target/14899 - - * c-common.c (vector_types_convertible_p): New function. - * c-typeck.c (comptypes): Recurse on vector types. - (convert_for_assignment): Use vector_types_convertible_p. - (digest_init): Use vector_types_convertible_p to check - validness of constant vector initializers; otherwise treat - them as scalars. - * tree.c (make_or_reuse_type): New. - (build_common_tree_nodes): Use it. - * cp/call.c (standard_conversion): Likewise. - * cp/typeck.c (comptypes): Recurse on vector types. - (convert_for_assignment): Use vector_types_convertible_p. - -2004-05-04 Chris Demetriou - - * config/mips/mips.c (override_options): Default to no - generation of branch-likely operations when tuning for - CPUs where they tend to have a negative performance impact - (e.g., SB-1). - -2004-05-04 Richard Kenner - - * expr.c (store_constructor_field): Don't call store_constructor - if bitsize is not a multiple of a byte. - -2004-05-04 Richard Sandiford - - * reload1.c (inherit_piecemeal_p): New function. - (emit_reload_insns): When reloading a group of hard registers, use - inherit_piecemeal_p to decide whether the values of individual hard - registers can be inherited. - -2004-05-04 H.J. Lu - - * config/ia64/t-ia64 (LIB2ADDEH): Remove gthr-gnat.c. - * config/s390/t-tpf (LIB2ADDEHDEP): Likewise. - * config/t-linux (LIB2ADDEHDEP): Likewise. - -2004-05-04 Paul Brook - - * config/arm/crti.asm: Push an even number of registers. - * config/arm/crtn.asm: And restore them. Load via sp. - -2004-05-04 Paolo Bonzini - - * ggc-zone.c (ggc_alloc_zone_1): Add MEM_STAT_DECL parameter. - Collect overhead information. - (ggc_alloc_stat): New name of ggc_alloc. Add MEM_STAT_DECL - parameter and pass it through. - (ggc_alloc_typed_stat): New name of ggc_alloc_typed. Add - MEM_STAT_DECL parameter and pass it through. - (ggc_alloc_zone_stat): New name of ggc_alloc_zone. Add - MEM_STAT_DECL parameter and pass it through. - -2004-05-03 Aldy Hernandez - - * config/rs6000/rs6000-protos.h: Protoize rs6000_hard_regno_nregs. - - * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): New. - - * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Call - rs6000_hard_regno_nregs. - -2004-05-03 Eric Christopher - - * config/s390/s390.c (s390_emit_prologue): Call unspec tpf - prologue insn instead of setting up call. - (s390_emit_epilogue): Ditto. - * config/s390/s390.md (prologue_tpf, epilogue_tpf): New patterns. - (define_constants): Add numbers for above patterns. - -2004-05-03 Eric Christopher - - * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Move body... - * config/s390/s390.c (s390_conditional_register_usage): ...here. - * config/s390/s390-protos.h: Prototype. - -2004-05-03 Joe Buck - - * cppfiles.c (pchf_adder): Eliminate use of |= in d->have_once_only - assignment. - -2004-05-03 Eric Christopher - - * config/mips/mips.md: Fix branch length attribute definition. - -2004-05-03 Aldy Hernandez - - * config.gcc: Remove --enable-altivec support. - - * config/rs6000/altivec-defs.h: Remove. - -2004-05-03 Rainer Orth - - * fixinc/inclhack.def (svr4_profil): Don't apply on IRIX 5/6. - * fixinc/fixincl.x: Regenerate. - -2004-05-03 Uros Bizjak - - * config/i386/i386.md (*fyl2x_sfxf3, *fyl2x_dfxf3): Remove insn - definition. - (log?f2, log10?f2, log2?f2): Reimplement expanders with - float_truncate insn. - (*fxtractsf3, *fxtractdf3): Remove insn definition. - (logb?f2): Reimplement expanders with float_truncate insn. - -2004-05-03 Graham Stott - - PR 14718 - * dwarf2out.c (dwarf2out_imported_module_or_decl): Use - force_type_die for CONST_DECL. - -2004-05-03 Eric Botcazou - Rainer Orth - - * config.gcc (sparc64-*-solaris2*, sparcv9-*-solaris2*): Add - tm-dwarf2.h to tm_file. - (sparc-*-solaris2*): Add tm-dwarf2.h to tm_file for Solaris 7+. - * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Delete. - (ASM_DEBUG_SPEC): Delete. - -2004-05-03 Uros Bizjak - - * optabs.h (enum optab_index): Add new OTI_expm1. - (expm1_optab): Define corresponding macro. - * optabs.c (init_optabs): Initialize expm1_optab. - * genopinit.c (optabs): Implement expm1_optab using expm1?f2 - patterns. - * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXPM1{,F,L} - using expm1_optab. - (expand_builtin): Expand BUILT_IN_EXPM1{,F,L} using - expand_builtin_mathfn if flag_unsafe_math_optimizations is set. - - * config/i386/i386.md (expm1df2, expm1sf2, expm1xf2): New expanders - to implement expm1, expm1f and expm1l built-ins as inline x87 - intrinsics. - -2004-05-02 Alexandre Oliva - - 2003-11-19 Richard Sandiford - * config/frv/frv.md (*return_true, *return_false): New patterns. - -2004-05-02 Kazu Hirata - - * rtl.h (PHI_NODE_P): Remove. - -2004-05-02 Eric Botcazou - - PR middle-end/14988 - * function.c (assign_stack_local_1): Use BITS_PER_UNIT alignment - when passed -2 as 'align'. - (put_var_into_stack): Use 'bool' as the type for the three local - predicates. Adjust calls to put_reg_into_stack. - When passed a CONCAT, instruct put_reg_into_stack to use - a consecutive stack slot for the second part. - (put_reg_into_stack): Remove 'promoted_mode' parameter, add - 'consecutive_p' parameter. Turn the three predicates into 'bool' - parameters. Retrieve the register mode from 'reg'. - When consecutive_p is true, instruct assign_stack_local_1 to use - BITS_PER_UNIT alignment. - (put_addressof_into_stack): Use 'bool' as the type for the two - local predicates. Adjust call to put_reg_into_stack. - -2004-05-02 Kaveh R. Ghazi - - * fold-const.c (fold_convert_const, fold): Add missing - FIX_ROUND_EXPR case. - -2004-05-02 Alexandre Oliva - - * configure.ac (FLEX, BISON): Only use tools from the build tree - if build equals host. - * configure: Rebuilt. - - * config/frv/frv-protos.h (frv_expand_epilogue, - frv_expand_fdpic_call): Add bool argument. - * config/frv/frv.c (frv_function_ok_for_sibcall): New. - (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to it. - (frv_expand_epilogue): Use new argument to decide whether to emit - return instruction or copy the return address to LR. - (frv_expand_fdpic_call): Inline PLT entry when emitting direct - sibcalls. - (sibcall_operand): New. - * config/frv/frv.h (PREDICATE_CODES): call_operand doesn't match - PLUS nor LABEL_REF. Add sibcall_operand. - * config/frv/frv.md (call, call_value): Pass false to - frv_expand_fdpic_call. - (call_fdpicdi, call_value_fdpicdi): Insert %i0 in calll. - (sibcall, sibcall_internal, sibcall_fdpicdi, sibcall_value, - sibcall_value_internal, sibcall_value_fdpicdi): New. - (return_unsigned_true, return_unsigned_false): New. - (epilogue): Adjust call to frv_expand_epilogue. - (sibcall_epilogue): New. - - * config/frv/frv.h (ASM_SPEC): Pass -mno-fdpic as -mnopic. - (CPP_SPEC, CPP_SIMPLE_SPEC): Undefine __FRV_ACC__ and __FRV_FPR__ - before redefining them. - -2004-05-01 Kaveh R. Ghazi - - * builtins.c (fold_fixed_mathfn): New function. - (fold_builtin_lround, fold_builtin): Use it. - -2004-05-01 Jakub Jelinek - - * config/sparc/linux64.h (TARGET_DEFAULT): Make 64-bit by default - also for TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3. - -2004-05-01 Kazu Hirata - - * config/cris/cris.h: Revert my "fix comment typos" patch. - -2004-05-01 Richard Sandiford - - * config/mips/mips.h (TUNE_MACC_CHAINS): Fix comment. - -2004-05-01 Falk Hueffner - - * config/alpha/alpha.md (builtin_insbl, builtin_inswl, - builtin_insll): Disallow 0 as first input operand. - -2004-05-01 Falk Hueffner - - * config/alpha/alpha.c (alpha_rtx_costs): Fix shiftadd costs. - -2004-05-01 Ulrich Weigand - - 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. - -2004-05-01 Paolo Bonzini - - * simplify-rtx.c (simplify_ternary_operation): When - converting an IF_THEN_ELSE to a relational op, return - correct mode. - -2004-04-30 Kaveh R. Ghazi - - * builtins.c (fold_builtin_round): Fix comment typo. - (fold_builtin_lround): New function. - (fold_builtin): Use it. - -2004-04-20 Andrew Pinski - - PR target/11608 - * config/sh/elf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Update and make it - more like the one in config/dbxelf.h. - -2004-04-30 Zack Weinberg - - * tree.h (SET_ARRAY_OR_VECTOR_CHECK): Rename to SET_OR_ARRAY_CHECK - and adjust definition accordingly. - (TYPE_DOMAIN): Allow only SET_TYPE and ARRAY_TYPE. - (TYPE_DEBUG_REPRESENTATION_TYPE): Allow only VECTOR_TYPE. - * expr.c (store_constructor): Do not access TYPE_DOMAIN of a - VECTOR_TYPE. - -2004-04-30 Jason Merrill - - PR c++/14587 - * config/i386/winnt.c (associated_type): Look for attributes on - the TYPE_MAIN_VARIANT of *this. - * attribs.c (decl_attributes): If ATTR_FLAG_TYPE_IN_PLACE, also - apply the attributes to the variants. - -2004-04-30 Paul Brook - - * config.gcc: Simplify arm --with-{cpu,tune} test. - * config/arm/arm-cores.def: Document whitespace restrictions. - -2004-04-30 Rainer Orth - - PR other/1963 - * config/alpha/osf.h (SWITCHES_NEED_SPACES): Define. - -2004-04-30 Brian Ford - DJ Delorie - - * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC] - (DWARF2_DEBUGGING_INFO): Define to enable. - (DBX_REGISTER_NUMBER): Define to use the svr4 register map for - DWARF2. - * configure.ac (Target-specific assembler checks) - : New test for .secrel32 - relocs. - * configure: Regenerate. - * config.in: Likewise. - - * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC] - (ASM_OUPUT_DWARF_OFFSET): Define. - -2004-04-29 Andreas Krebbel - - * config/s390/s390-protos.h (s390_emit_epilogue): Parameter added. - (s390_emit_call): New function prototype added. - (s390_tls_get_offset): Function removed. - * config/s390/s390.c (s390_function_ok_for_sibcall, - s390_call_saved_register_used_p): New functions. - (TARGET_FUNCTION_OK_FOR_SIBCALL): Definition of target macro added. - (s390_tls_get_offset): Function merged into s390_emit_tls_call_insn. - (s390_emit_tls_call_insn): New function. - (legitimize_tls_address): Call s390_emit_tls_call_insn instead of - emit_call_insn. - (s390_emit_prologue): Use s390_emit_call instead of emit_call_insn. - (s390_emit_epilogue): Like s390_emit_prologue. Parameter for sibcalls - added. - * config/s390/s390.h (SIBCALL_REGNUM): New macro representing the - register number used to hold the target address for sibcalls. - * config/s390/s390.md ("sibcall", "sibcall_value", "sibcall_epilogue"): - New expanders. - ("*sibcall_br", "*sibcall_brc", "*sibcall_brcl", "*sibcall_value_br", - "*sibcall_value_brc", "*sibcall_value_brcl"): New insns. - ("call_exp", "call_value_exp", "call_value_tls", "call_value_tls_exp"): - Expanders removed. - ("call", "call_value"): Call s390_emit_call to emit the call patterns. - ("*bras", "*brasl", "*bras_r", "*brasl_r", "*bras_tls", "*brasl_tls", - "*basr", "*basr_r", "*basr_tls"): Added constraint: !SIBLING_CALL_P. - ("epilogue"): Changed the call to s390_emit_epilogue to use the - new parameter. - -2004-04-30 Kazu Hirata - - * bb-reorder.c, c-opts.c, cfglayout.c, cgraph.c, cgraphunit.c, - cppfiles.c, fold-const.c, ggc-zone.c, loop-doloop.c, optabs.c, - reg-stack.c, varasm.c, config/alpha/ev4.md, - config/alpha/ev5.md, config/alpha/ev6.md, config/arm/arm.c, - config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.c, - config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c, - config/frv/frv.h, config/frv/frv.md, config/h8300/h8300.c, - config/i386/i386.c, config/i386/i386.md, config/i386/winnt.c, - config/ia64/itanium2.md, config/ip2k/ip2k.c, - config/mips/mips.c, config/mips/mips.h, config/mips/sr71k.md, - config/pa/pa.c, config/s390/s390.c, config/sh/sh.c: Fix - comment typos. - -2004-04-30 Paul Brook - - * config.gcc: Default ep9312 to hard-float. - * config/arm/arm-cores.def: Add ARCH field. - * config/arm/arm.c (FL_FOR_ARCH*): Define. - (arm_arch_cirrus): New variable. - (all_cores): Set and use arch. - (all_architectures): Ditto. - (arm_arch_name): New variable. - (arm_override_options): Set it. Use [SUB]TARGET_CPU_DEFAULT. - Set and use arm_arch_cirrus. - * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set arch defines. - (enum processor_type): Update ARM_CORE define. - (enum target_cpus): Add. Replaces TARGET_CPU_* defines. - (CPP_SPEC): Remove %(cpp_cpu_arch). - (CPP_ARCH_DEFAULT_SPEC): Remove. - (CPP_CPU_ARCH_SPEC): Remove. - (EXTRA_SPECS): Don't use CPP_*ARCH*_SPEC. - (FPUTYPE_DEFAULT): Don't define here. - -2004-04-30 J"orn Rennecke - - * flow.c (propagate_one_insn): Call mark_set_regs for stack pointer - updates too. - -2004-04-30 Paul Brook - - * arm.c (arm_needs_doubleword_align): Use mode alignment. - -2004-04-30 Paolo Bonzini - - * config/altivec/altivec.h [__cplusplus] (vec_subsubs): Rename to - vec_sububs. - [__cplusplus] (vec_subsuhs): Rename to vec_subuhs, without - duplicates. - -2004-04-30 Uros Bizjak - - * config/i386/i386.md (atansf2, atandf2, atanxf2): Move near - atan2?f3 expanders. - -2004-04-29 Nick Clifton - - Bug 14093 - * config/sh/sh-protos.h (sh_promote_prototypes): Declare. - * config/sh/sh.c (sh_promote_prototypes): Remove declaration. - Delete static from definition. - * config/sh/sh.h (FUNCTION_VALUE): Add sh_promote_prototypes call. - -2004-04-30 Uros Bizjak - - * reg-stack.c (subst_stack_regs_pat): : abort() if src1 dies. - : Same. - : Same. - -2004-04-29 Richard Guenther - - * commom.opt (Wfatal-errors): Add it. - * diagnostic.c (flag_fatal_errors): Define it. - (diagnostic_action_after_output): Check for flag_fatal_errors. - * flags.h (flag_fatal_errors): Declare it. - * opts.c (common_handle_option): Add OPT_Wfatal_errors. - * doc/invoke.texi (Warning Options): Document -Wfatal-errors. - -2004-04-30 Josef Zlomek - - * gcse.c (remove_reachable_equiv_notes): Delete notes also in - blocks which have kill flag set. - -2004-04-29 Ben Elliston - - * configure.ac (--with-as): Abort if user-supplied assembler - cannot be executed. - (--with-ld): Likewise for the linker. - * configure: Regenerate. - -2004-04-29 Kaveh R. Ghazi - - * convert.c (convert_to_integer): Ensure `long_integer_type_node' - isn't NULL before using it. - -2004-04-29 Richard Sandiford - - PR target/15189 - * config/mips/mips.md (load_df_low): Use default length. - (load_df_high, store_df_high): Likewise. - -2004-04-29 Kazu Hirata - - * config/mips/mips.md, config/mips/sb1.md, - config/rs6000/rs6000.c: Fix comment typos. - -2004-04-29 Kazu Hirata - - * builtins.c, cgraph.c, cgraphunit.c, final.c, fold-const.c: - Fix comment typos. - -2004-04-29 Douglas B Rupp - - * gcc.c (DELETE_IF_ORDINARY): New macro default definition. - (delete_if_ordinary): Use above macro. - * config/alpha/xm-vms.h (DELETE_IF_ORDINARY): New macro VMS definition. - Update copyright. - * doc/hostconfig.texi (DELETE_IF_ORDINARY): Document new macro. - -2004-04-29 Richard Earnshaw - - * c-decl.c (get_parm_info): Use the correct tag keywords when - warning about type declarations in prototypes. - -2004-04-29 Paul Brook - - * config.gcc: Pull list of cores from arm-cores.def. - -2004-04-29 Paolo Bonzini - - * combine.c (combine_simplify_rtx): Adjust call to use - simplify_relational_operation. Do not use SELECT_CC_MODE - when a comparison already has a MODE_CC mode. - -2004-04-29 Paolo Bonzini - - (simplify_set): simplify_relational_operation may now - return another relational expression. - * cse.c (fold_rtx): simplify_relational_operation now - takes of computing the comparison mode. - * dojump.c (compare_from_rtx): Use simplify_relational_operation, - remove dead code. - (do_compare_rtx_and_jump): Likewise. - * integrate.c (subst_constants): simplify_relational_operation - may now return another relational expression. - * simplify-rtx.c (simplify_gen_relational): Move most code to - the new simplify_relational_operation and - simplify_relational_operation_1 functions. - (simplify_relational_operation): Rewritten. - (simplify_relational_operation_1): New function. - (simplify_ternary_operation): simplify_relational_operation - may now return another relational expression. - (simplify_rtx): Remove unnecessary temp variable. - -2004-04-29 Uros Bizjak - - * reg-stack.c (swap_to_top): New function. - (subst_stack_regs_pat): UNSPEC_FPATAN, UNSPEC_FYL2X: Use - swap_to_top(). - (subst_stack_regs_pat): UNSPEC_FSCALE: Remove. - (subst_stack_regs_pat): Handle UNSPEC_FSCALE_FRACT and - UNSPEC_FSCALE_EXP. - - * config/i386/i386.md (UNSPEC_FSCALE): Remove. - (*fscale_sfxf3, *fscale_dfxf3, *fscale_xf3): Remove insn pattern. - (UNSPEC_FSCALE_FRACT, UNSPEC_FSCALE_EXP): New unspecs to represent - x87's fscale insn. - (*fscalexf4: Define new insn pattern to implement x87 fscale insn. - (exp?f2, exp10?f2, exp2?f2): Use *fscalexf4 and float_truncate - patterns. - -2004-04-28 Serge Belyshev <1319@bot.ru> - - PR 14944 - * coverage.c (read_counts_file): Fix usage of warning () call. - * pretty-print.c (pp_base_format_text): Fix typo in the comment. - -2004-04-28 Ben Elliston - - * doc/invoke.texi (Objective-C Dialect Options): Don't prefix - options with "-" in the option index. - (SPARC Options): Likewise. - (M32R/D Options): Likewise. - -2004-04-28 Kaveh R. Ghazi - - * convert.c (convert_to_integer): Convert (long)round -> lround, - etc. - -2004-04-28 Andrew Pinski - - * config/rs6000/rs6000.c (registers_ok_for_quad_peep): - Return false if we do not have fp register. - (addrs_ok_for_quad_peep): Rename to ... - (mems_ok_for_quad_peep): this. - Add check for volatile memory. - * config/rs6000/rs6000-protos.h (addrs_ok_for_quad_peep): - Rename to ... - (mems_ok_for_quad_peep): this. - * config/rs6000/rs6000.md: Change peephole's for lfq/stq - to peephole2's. - (lfq_power2): New instruction. - (stfq_power2): Likewise. - -2004-04-28 Jan Hubicka - - PR c/15004 - * function.c (do_warn_unused_parameter): Break out form ... - (expand_function_end): ... here; warn only when not using cgraphunit. - * function.h (do_warn_unused_parameter): Declare. - * cgraphunit.c: Include function.h. - (cgraph_finalize_function): Do unused parameter warning. - * Makefile.in (cgraphunit.o): Depend on function.h - -2004-04-28 Joseph S. Myers - - * Makefile.in ($(DESTDIR)$(infodir)/%.info): Don't condition - calling install-info on $(DESTDIR)$(infodir)/dir already being - present. - -2004-04-28 Paul Brook - - * dwarf2out.c (mem_loc_descriptor): Handle shifts. - -2004-04-28 Ulrich Weigand - - * gcse.c (find_moveable_store): Do not accept store insns with - REG_EH_REGION note. - -2004-04-28 Paul Brook - - * calls.c (precompute_arguments): Remove PROMOTE_FOR_CALL_ONLY. - * function.c (assign_temp): Ditto. - * system.h (PROMOTE_FOR_CALL_ONLY): Poison. - -2004-04-28 Paul Brook - - * config/arm/lib1funcs.asm: Recognize armv5tej and armv6. - -2004-04-28 Josef Zlomek - - * var-tracking.c (variable_different_p): Add a parameter - compare_current_location, compare current location of variable parts - if it is true. - (dataflow_set_different_1): Pass compare_current_location == false. - (dataflow_set_different_2): Pass compare_current_location == false. - (emit_notes_for_differences_1): Pass compare_current_location == true. - -2004-04-28 Ulrich Weigand - - * config/s390/s390.md ("casesi"): Mark jump table access as - non-trapping and unchanging. - -2004-04-27 John David Anglin - - PR debug/14829 - * dwarf2out.c (reg_number): Rename to dbx_reg_number. Adjust all - callers. - (multiple_reg_loc_descriptor, reg_loc_descriptor): Use gcc register - number for indexing hard_regno_nregs array. - -2004-04-27 Geoffrey Keating - - * config/darwin.h (STARTFILE_SPEC): Use %s to find crt2.o. - * config/darwin-crt2.c: Only have contents on __ppc__. - -2004-04-27 Bob Wilson - - * config/xtensa/xtensa.c (call_insn_operand): Check - SYMBOL_REF_EXTERNAL_P in addition to SYMBOL_REF_LOCAL_P. - * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND): Likewise. - * config/xtensa/xtensa.md (call, call_value): Likewise. - -2004-04-27 Wu Yongwei - - * gthr-win32.h (__gthread_mutex_t): Change typedef to new structure. - (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust. - (__gthread_mutex_init_function): Replace CreateMutex with - initialization of custom mutex using CreateSemaphore. - (__gthread_mutex_lock): Use InterlockedIncrement. - (__gthread_mutex_trylock): Use InterlockedCompareExchange. - (__gthread_mutex_unlock): Use InterlockedDecrement and - ReleaseSemaphore to unlock - * config/i386/gthr-win32.c (__gthread_mutex_init_function, - __gthread_mutex_lock, __gthread_mutex_trylock, - __gthread_mutex_unlock): Adjust to match inline versions in - gthr-win32.h. - -2004-04-27 Paul Brook - - * config/arm/arm.c (arm_promote_prototypes): New function. - (TARGET_PROMOTE_PROTOTYPES): Use it. - -2004-04-27 Paul Brook - - * config/arm/arm.c (arm_expand_epilogue): Count blocks of 4 regs. - -2004-04-26 Bernard Giroud - - * config/alpha.c (alpha_end_function): For OpenVMS gas, - correctly output .pdesc directive before .end. - -2004-04-26 James E Wilson - - Bug 14927 - * config/ia64/ia64.md (movxf): New local op0. Handle case where - operands[0] is a SUBREG. Handle case where operands[1] is a GR reg. - -2004-04-26 Zack Weinberg - - * config/ia64/hpux.h: Predefine __STDCPP__ when compiling C++. - * config/pa/pa-hpux10.h: Likewise. - * config/pa/pa-hpux11.h: Likewise. - -2004-04-26 Geoffrey Keating - - * doc/invoke.texi (Overall Options): Document default for -o - for PCH files. - -2004-04-26 Richard Kenner - - * builtins.c (expand_builtin_update_setjmp_buf): New function. - (expand_builtin, case BUILT_IN_UPDATE_SETJMP_BUF): New case. - * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): New code. - -2004-04-26 Paul Brook - - * config/arm/arm.c (arm_legitimate_index_p): Correct iwmmxt offsets. - -2004-04-26 Paul Brook - - * config/arm/arm.c (arm_legitimate_index_p): Correct maverick offsets. - -2004-04-25 Roger Sayle - - * fold-const.c (fold): Prefer fold_convert (negate_expr (...)) to - fold (build1 (NEGATE_EXPR, ...)). Optimize X / -1 as -X and - X % -1 as 0. - -2004-04-26 Hans-Peter Nilsson - - PR bootstrap/15141 - * except.c (connect_post_landing_pads): Delete insns after the - barrier when generating a unwind_resume_libfunc call. - -2004-04-25 Richard Kenner - - PR/c++ 15119 - * tree.c (substitute_placeholder_in_expr, case 4): New case, - for TARGET_EXPR. - -2004-04-25 Zdenek Dvorak - - * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle, - __gcov_execv, __gcov_execvp, __gcov_execve): Do not declare when - inhibit_libc is defined. - -2004-04-25 Richard Sandiford - - * config/mips/mips-protos.h (mips_linked_macc_p): Declare. - * config/mips/mips.h (TUNE_MACC_CHAINS): New macro. - * config/mips/mips.c (TARGET_SCHED_REORDER): Define. - (TARGET_SCHED_VARIABLE_ISSUE): Define. - (mips_adjust_cost): Move later in file, next to other sched hooks. - (mips_macc_chains_last_hilo): New variable. - (mips_linked_madd_p, mips_macc_chains_record, mips_macc_chains_reorder) - (mips_promote_ready, mips_sched_reorder, mips_variable_issue): New. - * config/mips/mips.md (may_clobber_hilo): New attribute. - -2004-04-24 Roger Sayle - Bruce Korb - - * fixinc/inclhack.def (aix_syswait_2): New fix. - * fixinc/fixincl.x: Regenerate. - * fixinc/tests/base/sys/wait.h: Update for new test. - -2004-04-24 Alan Modra - - PR target/14960 - * config/rs6000/rs6000.c (rs6000_stack_info): Rename total_raw_size - to non_fixed_size, and leave out fixed_size from the sum. - (generate_set_vrsave): Correct clobbers. - (rs6000_emit_epilogue): Test TARGET_ALTIVEC with TARGET_ALTIVEC_SAVE. - (rs6000_function_value): Test TARGET_ALTIVEC and TARGET_ALTIVEC_ABI. - (rs6000_libcall_value): Likewise. - * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Likewise. - (FUNCTION_ARG_REGNO_P): Likewise. - -2004-04-24 Ulrich Weigand - - * expmed.c (expand_mult_highpart_adjust): Do not assume OP1 - is a CONST_INT. - (expand_mult_highpart_optab): Call expand_mult_highpart_adjust - with NARROW_OP1 instead of OP1. - -2004-04-24 Ulrich Weigand - - * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __s390__ - and __s390x__ hosts. - -2004-03-23 Zdenek Dvorak - - * Makefile.in (LIBGCOV): Add _gcov_fork, _gcov_execl, _gcov_execlp, - _gcov_execle, _gcov_execv, _gcov_execvp, _gcov_execve. - * builtin-types.def (BT_PID, BT_PTR_CONST_STRING, BT_FN_PID, - BT_FN_INT_CONST_STRING_PTR_CONST_STRING, - BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING): New. - * builtins.c (expand_builtin_fork_or_exec): New. - (expand_builtin): Call it. - * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP,BUILT_IN_EXECLE, - BUILT_IN_EXECV, BUILT_IN_EXECVP, BUILT_IN_EXECVE, BUILT_IN_FORK): New. - * c-common.c (PID_TYPE): New macro. - (c_common_nodes_and_builtins): Initialize pid_type_node. - * calls.c (special_function_p): Do not handle fork and exec. - (expand_call): Do not handle ECF_FORK_OR_EXEC. - * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle, - __gcov_execv, __gcov_execvp, __gcov_execve): Declare. - * libgcov.c (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle, - __gcov_execv, __gcov_execvp, __gcov_execve): New. - * tree.h (enum tree_index): Add TI_PID_TYPE. - (pid_type_node): New macro. - (ECF_FORK_OR_EXEC): Removed. - -2004-04-23 Eric Botcazou - - PR optimization/13985 - * cfgloopmanip.c (fix_loop_placements): New prototype. - Call fix_bb_placements on the preheader of loops that have - been reparented. - (remove_path): Adjust call to fix_loop_placements. - -2004-04-23 Andrew Pinski - - * config/darwin7.h: New file. - * config.gcc (*-*-darwin*): Add darwin7.h if the - version is greater than 6. - * config/darwin.h (TARGET_C99_FUNCTIONS): Define. - (MATH_LIBRARY): Wrap in ifdefs. - -2004-04-23 Daniel Jacobowitz - - * config/arm/arm.c (arm_output_epilogue): Reverse the order of - loading iWMMXt registers with a frame pointer. Use post-increment - without a frame pointer. - (arm_expand_prologue): Reverse the order of saving iWMMXt registers. - -2004-04-23 Paolo Bonzini - - * doc/invoke.texi (Optimize Options): Refer to "unit-at-a-time - mode" rather than "-funit-at-a-time" since -O2 enables it - without requiring -f* options. Refer to -fprofile-generate and - -fprofile-use correctly. Move -funit-at-a-time among options - enabled by -O. Add information about unit-at-a-time caveats. - -2004-04-22 Per Bothner - - * line-map.h (struct line_maps): New field highest_line. - (linemap_position_for_column): Make non-inline function. - (LINEMAP_POSITION_FOR_COLUMN): New macro. - * line-map.c (linemap_init): Clear highest_line field. - (linemap_add): Set highest_line field. - (linemap_line_start): Minor optimization - use highest_line field. - Reduce maximum column hint to 10000. Update highest_line field. - (linemap_position_for_column): Moved from line-map.h. Optimize a bit. - * cpphash.h (struct cpp_reader): Remove line field - instead use - line_table->highest_line. - (saved_line): Remove unused field. - (CPP_INCREMENT_FILE): Don't do linemap_lookup - just use newest map. - Use line_table's highest_line field instead of cpp_reader's line. - * cpplib.c (start_directive): Likewise use highest_line field. - (do_line, do_linemarker): Likewise just use newest map. - (_cpp_do_file_change): Don't need to set cpp_reader's line field. - * cpperror.c (cpp_error): Likewise use highest_line field. - * cppfiles.c (open_file_failed: Likewise. - (cpp_make_system_header): Likewise use newest map and highest_line. - * cppinit.c (cpp_create_reader): Don't initialize removed field. - * cpplex.c (_cpp_process_line_notes, _cpp_skip_block_comment, - skip_line_comment, skip_whitespace, _cpp_get_fresh_line, - _cpp_lex_direct): Likewise use highest_line. - (_cpp_lex_direct): Use new LINEMAP_POSITION_FOR_COLUMN macro. - * cppmacro.c (_cpp_builtin_macro_text): Likewise use highest_line, - and use newest map. - * cpppch.c (cpp_read_state): Don't save+restore cpp_reader's line. - * cpptrad.c (_cpp_overlay_buffer): Don't save cpp_reader's line. - (copy_comment, _cpp_scan_out_logical_line): Likewise use highest_line. - -2004-04-23 Alan Modra - - PR bootstrap/14992 - * gcc.c (init_gcc_specs): Test USE_LD_AS_NEEDED, not HAVE_LD_AS_NEEDED. - * config/linux.h (USE_LD_AS_NEEDED): Define. - * gcc/config/alpha/linux.h (USE_LD_AS_NEEDED): Define. - * gcc/config/arm/linux-elf.h (USE_LD_AS_NEEDED): Define. - * gcc/config/rs6000/linux.h (USE_LD_AS_NEEDED): Define. - * gcc/config/rs6000/linux64.h (USE_LD_AS_NEEDED): Define. - * gcc/config/sh/linux.h (USE_LD_AS_NEEDED): Define. - * gcc/config/sparc/linux.h (USE_LD_AS_NEEDED): Define. - * gcc/config/sparc/linux64.h (USE_LD_AS_NEEDED): Define. - -2004-04-22 Per Bothner - - * cppinit.c (cpp_read_main_file): Return NULL rather than false. - Fixes PR preprocessor/15067. - -2004-04-23 Andreas Schwab - - * config/ia64/ia64intrin.h: Add intermediate cast to void * to - avoid aliasing warning. - -2004-04-22 Jan Hubicka - Mostafa Hagog - - * cfgloopmanip.c (scale_bbs_frequencies): Use RDIV macro - * cfgloopanal.c (expected_loop_iterations): Change the return value - -2004-04-22 Jakub Jelinek - - * cselib.h (struct elt_loc_list): Remove canon_loc field. - * cselib.c (new_elt_loc_list): Remove canon_loc initialization. - (cselib_invalidate_mem): Remove all canon_loc and canon_x - traces. - -2004-04-22 Josef Zlomek - - Revert - 2004-04-20 Josef Zlomek - - * var-tracking.c (variable_part_different_p): Variable parts - differ when the most recent locations differ. - -2004-04-22 Richard Sandiford - - * doc/invoke.texi: Remove the MIPS -membedded-pic option. - * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): Delete. - (embedded_pic_offset): Delete. - * config/mips/mips.h (MASK_EMBEDDED_PIC): Delete. Shuffle other - MASK_* constants. - (TARGET_EMBEDDED_PIC): Delete. - (TARGET_SWITCHES): Remove -m{no-,}embedded-pic. - (ASM_SPEC): Remove -membedded-pic. - (ASM_OUTPUT_ADDR_DIFF_ELT): Remove embedded-pic handling. - (ASM_OUTPUT_CASE_LABEL): Likewise. - * config/mips/vxworks.h (ASM_SPEC): Remove -membedded-pic. - * config/mips/windiss.h (ASM_SPEC): Likewise. - * config/mips/mips.c (struct machine_function): Remove - embedded_pic_fnaddr_rtx. - (TARGET_ENCODE_SECTION_INFO): Remove override. - (embedded_pic_fnaddr_reg, embedded_pic_offset): Delete. - (override_options): Remove -membedded-pic handling. - (print_operand): Remove handling of '%S'. - (mips_select_section: Remove -membedded-pic handling. - (mips_encode_section_info): Delete. - (mips_output_conditional_branch): Remove mention of -membedded-pic. - * config/mips/mips.md (define_attr length, movsi, movdi, jump): Remove - -membedded-pic handling. - (casesi, casesi_internal, casesi_internal_di, get_fnaddr): Delete. - -2004-04-22 Alan Modra - - * var-tracking.c (frame_base_decl): Remove useless GTY. - -2004-04-21 Aldy Hernandez - - * config/rs6000/rs6000.c (rs6000_override_options): Error when - user wants altivec and e500 instructions. - -2004-04-21 H.J. Lu - - PR target/14813 - * config/ia64/crtend.asm: Move pointer to __do_global_ctors_aux - in .init_array section to ... - * config/ia64/crtbegin.asm: Here. - - * config/ia64/crtend.asm: Mark __do_global_ctors_aux global - and hidden if HAVE_INITFINI_ARRAY is defined. - -2004-04-21 James E Wilson - - * config/mips/mips-protos.h (fp_register_operand, lo_operand): Declare. - * config/mips/mips.c (mips_multipass_dfa_lookahead): Declare. - (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): New. - (fp_register_operand, lo_operand): New. - (mips_rtx_costs): Add TUNE_SB1 support. - (mips_issue_rate): Add comment. Add PROCESSOR_SB1 support. - (mips_use_dfa_pipeline_interface): Add PROCESSOR_SB1 support. - (mips_multipass_dfa_lookahead): New. - * config/mips/mips.h (MASK_FP_EXCEPTIONS, TARGET_FP_EXCEPTIONS, - TUNE_SB1): New. - (TARGET_SWITCHES): Add -mfp-exceptions support. - (TARGET_FP_EXCEPTIONS_DEFAULT): New. - (BRANCH_COST): Fix whitespace. - * config/mips/mips.md: Include sb1.md. - * config/mips/sb1.md: New file. - * doc/invoke.texi: Document -mfp-exceptions. - - * Makefile.in (fixinc.sh): Don't set or export WARN_CFLAGS. Fix - comment. - * fixinc/Makefile.in (FL_LIST): Don't mention WARN_CFLAGS. - (fixincl.o-warn): Delete. - -2004-04-21 Andrew Pinski - - * config/rs6000/rs6000 (print_operand) ['z']: - Change ifdef of TARGET_MACHO to if TARGET_MACHO. - -2004-04-21 Daniel Jacobowitz - - * config.gcc: Support --with-arch=iwmmxt for ARM. - -2004-04-21 Richard Kenner - - * expmed.c (expand_mult_highpart_optab): Use narrower version of OP1 - in two more places; remove unneeded force_reg - -2004-04-21 Andrew Pinski - - * config/rs6000/rs6000.c (symbol_ref_operand): Remove hack - for TARGET_MACHO. - (print_operand): For TARGET_MACHO check to see if we need a stub - and output one if we need it. - - PR debug/15033 - * dwarf2out.c (rtl_for_decl_location): Check for NULL - rtl. - -2004-04-20 James E Wilson - - * config/ia64/ia64.md (call_value_nogp): Add constraints for op0. - (vall_value_gp): Likewise. - -2004-04-20 DJ Delorie - - * dwarf2out.c (rtl_for_decl_location): Adjust rtl for byte - variables stored in word registers, then in memory. - -2004-04-20 Eric Christopher - - * cp/parser.c (cp_parser_declaration): Move translate - up before tokens are lexed. - -2004-04-20 Uros Bizjak - - * optabs.h (enum optab_index): Add new OTI_asin and OTI_acos. - (asin_optab, acos_optab): Define corresponding macros. - * optabs.c (init_optabs): Initialize asin_optab and acos_optab. - * genopinit.c (optabs): Implement asin_optab and acos_optab - using asin?f2 and acos?f2 patterns. - * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_ASIN{,F,L} - using asin_optab, and BUILT_IN_ACOS{,F,L} using acos_optab. - (expand_builtin): Expand BUILT_IN_ASIN{,F,L} and BUILT_IN_ACOS{,F,L} - using expand_builtin_mathfn if flag_unsafe_math_optimizations is set. - - * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2, - acossf2, acosxf2): New expanders to implement asin, asinf, asinl, - acos, acosf and acosl built-ins as inline x87 intrinsics. - -2004-04-20 Paul Brook - - * config/arm/arm.c (arm_legitimate_address_p): Use rtx_equal_p. - -2004-04-20 Paul Brook - - * config/arm/arm.c (arm_expand_prologue): Fix size calculation. - -2004-04-20 Paolo Bonzini - - Revert part of 2004-04-17 change that moved -frename-registers - to -O1. -frename-registers is buggy. - - * toplev.c (flag_rename_registers): Initialize to 0. - * doc/invoke.texi (Optimize options): Move -frename-registers - to "Not triggered by any -O level" section. Adjust commentary - accordingly. - -2004-04-20 Anil Paranjpe - - * toplev.c (compile_file): Move targetm.asm_out.file_end call to end. - -2004-04-20 Richard Sandiford - - * config/mips/mips.c (mips_legitimize_move): Generate special patterns - for mflo and mfhi instructions. - (mips_output_move): Remove mflo and mfhi handling. - * config/mips/mips.md (UNSPEC_MFHILO): New unspec. - (*mulsidi3_64bit): Update for new mfhi/mflo representation. - Likewise various define_peephole2s. - (*movdi_32bit, *movdi_64bit, *movsi_internal): Merge x<-J and x<-d - alternatives. - (*movdi_64bit, *movdi_64bit_mips16, *mov[shq]i_internal) - (*mov[shq]i_mips16): Remove mflo and mfhi alternatives. - (mfhilo_di, mfhilo_si): New patterns. - -2004-04-20 Josef Zlomek - - * function.c (assign_parms): Force - MEM_EXPR (DECL_INCOMING_RTL (parm)) == parm. - -2004-04-20 Josef Zlomek - - * var-tracking.c (variable_part_different_p): Variable parts differ - when the most recent locations differ. - -2004-04-19 James E Wilson - - * rtl.h (reg_set_last): Delete declaration. - * rtlanal.c (reg_set_last): Delete. - -2004-04-19 Roger Sayle - - * fold-const.c (fold_convert): Make function extern/public. - * tree.h (fold_convert): Prototype here. - * builtins.c (expand_builtin_strstr, expand_builtin_strchr, - expand_builtin_strrchr, expand_builtin_strpbrk, - expand_builtin_mempcpy, expand_builtin_bcopy, - expand_builtin_bzero, expand_builtin_memcmp, - expand_builtin_strcmp, expand_builtin_strncmp, - stabilize_va_list, expand_builtin_sprintf, - fold_trunc_transparent_mathfn, fold_builtin_logarithm, - fold_builtin_exponent, fold_builtin_mempcpy, - fold_builtin_strcpy, fold_builtin_strcmp, fold_builtin_strncmp, - fold_builtin_signbit, fold_builtin_isdigit, fold_builtin): Prefer - fold_convert to "convert" or "fold (build1 (NOP_EXPR, ...))". - -2004-04-19 Aldy Hernandez - - * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): New constant. - (move_from_CR_gt_bit): New. - (cceq_ior_compare): Name previously unnamed pattern. Disable for - E500. - (cceq_rev_compare): Name previously unnamed pattern. Allow for - E500. - - * config/rs6000/spe.md (cmpsfeq_gpr): Rewrite as unspec. - (tstsfeq_gpr): Same. - (cmpsfgt_gpr): Same. - (tstsfgt_gpr): Same. - (cmpsflt_gpr): Same. - (tstsflt_gpr): Same. - (e500_cceq_ior_compare): New. - (e500_flip_gt_bit): New. - - * config/rs6000/rs6000.c (ccr_bit): Remove E500 specific code. - (print_operand): Add 'c' and 'D'. - (rs6000_generate_compare): Rewrite to generate correct rtl. - (rs6000_emit_sCOND): Handle E500. - (output_cbranch): Adjust for changes in rs6000_generate_compare. - (output_e500_flip_gt_bit): New. - - * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit): - Protoize. - -2004-04-19 Eric Christopher - - * config/mips/mips.h (DWARF2_ADDR_SIZE): New. - -2004-04-19 David Edelsohn - - * doc/install.texi (*-ibm-aix*): Add AIX 5.1 assembler and archiver - fix information. - -2004-04-19 Rainer Orth - - * doc/install.texi (Specific, mips-sgi-irix5): Fix IRIX 5.3 IDO - download URL. - -2004-04-19 Daniel Jacobowitz - - * stor-layout.c (layout_decl): Check DECL_PACKED before calling - ADJUST_FIELD_ALIGN. Check maximum_field_alignment after. - -2004-04-19 Andrew PInski - - * builtins.c (fold_builtin_cabs): Remove fndecl parameter. - (fold_builtin): Update caller to match. - - PR bootstrap/15009 - * bb-reorder.c (fix_up_fall_thru_edges): Init cond_jump. - - PR bootstrap/14999 - * builtins.c (fold_builtin_cabs): Mark fndecl as unused. - -2004-04-19 Richard Kenner - - * varasm.c (compare_constant, case VIEW_CONVERT_EXPR): Add case. - - * expmed.c (expand_mult_highpart_adjust): Make OP1 valid for MODE. - (expand_mult_highpart_optab): Likewise. - (expand_mult_highpart): Make OP1 valid for WIDER_MODE, not MODE. - -2004-04-19 Paul Brook - - * config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2, - floatunssisf2, floatunssidf2): New patterns. - -2004-04-18 Mark Mitchell - - PR other/14918 - * doc/invoke.texi (-fprofile-generate): Document requirement to - use -fprofile-generate when linking. - - * doc/extend.texi (Strong Using): Warn users against using this - feature. - -2004-04-18 Richard Sandiford - - * config/mips/mips-protos.h (m16_usym8_4, m16_usym5_4): Delete. - * config/mips/mips.h (mips_entry, mips_string_length): Delete. - (CONSTANT_POOL_BEFORE_FUNCTION, ASM_OUTPUT_POOL_EPILOGUE): Undefine. - * config/mips/mips.c (struct mips16_constant): Renamed from struct - constant. Propogate change throughout file. - (struct machine_function): Remove insns_len. - (mips_string_length, mips16_strings, string_constants): Delete. - (mips_classify_symbol): Return SYMBOL_CONSTANT_POOL for LABEL_REFs - when generating mips16 code. Remove special mips16 treatment of - string constants. - (mips_symbolic_constant_p): Allow mips16 constant pool accesses - to have the form LABEL+CONSTANT. - (mips_symbolic_address_p): Fix comment. - (m16_usym8_4, m16_usym5_4): Delete. - (mips_output_function_epilogue): Remove mips16 string handling. - (mips_output_mi_thunk): Call mips16_lay_out_constants. - (mips_select_section, mips_encode_section_info): Remove mips16 - string handling. - (struct mips16_constant_pool): New. - (add_constant): Take a mips16_constant_pool structure. Keep pool - sorted into order of ascending mode size. Keep track of the highest - possible start address, taking padding and the masking of the base PC - value into account. - (dump_constants_1): New function, split out from dump_constants. - Handle vector constants. Use gen_consttable_{int,float} rather than - separate functions for each mode. - (dump_constants): Simplify. Use GET_MODE_ALIGNMENT. Use gen_align - rather than separate functions for each alignment. - (mips_find_symbol): Delete. - (mips16_insn_length): New function, split out from - mips16_lay_out_constants. - (mips16_rewrite_pool_refs): New function. - (mips16_lay_out_constants): Rework. Remove string handling. - Always create an inline constant pool. - * config/mips/mips.md (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT) - (UNSPEC_ALIGN): New constants. - (UNSPEC_CONSTTABLE_[QHSD]I, UNSPEC_CONSTTABLE_[SD]F): Delete. - (UNSPEC_ALIGN_[248]): Delete. - (consttable_int, consttable_float, align): New patterns. - (consttable_[qhsd]i, consttable_[sd]f, align_[248]): Delete. - -2004-04-17 Aldy Hernandez - - * config/rs6000/altivec.h (vec_any_numeric): Correct typo in - __unn_args_eq. - -2004-04-17 Alan Modra - - PR target/14715 - * config/rs6000/rs6000.c (rs6000_stack_info): Make parm_size agree - with STARTING_FRAME_OFFSET. - -2004-04-17 Richard Sandiford - - * config/mips/mips.h (PREDICATE_CODES): Add macc_msac_operand. - * config/mips/mips.c (macc_msac_operand): New function. - * config/mips/mips.md (*msac): Move after *macc. - (*msac2): New. Generalize macc-related peepholes so that they apply - to msac too. - -2004-04-17 Paolo Bonzini - - * opts.c (decode_options): Do not enable flag_rename_registers - and flag_web at -O3. - * toplev.c (flag_rename_registers): Initialize - flag_rename_registers and flag_web to - AUTODETECT_FLAG_VAR_TRACKING. - (default_debug_hooks): New global. - (process_options): Initialize default_debug_hooks. Warn if - -fvar-tracking specified but not supported by the current - debug format. Do not run var tracking at -O0 or if not - supported by the current debug format, even if - -fvar-tracking was given. If -fno-rename-registers - is not specified, always run register renaming if var - tracking is supported by the default debugging information - format for the target, and we are at -O1 or higher; similarly - for -fweb, but only at -O2 or higher. - * doc/invoke.texi (Optimize Options): Document this. - -2004-04-17 Richard Sandiford - - * configure.ac (gcc_cv_ld_as_needed): Use AC_CACHE_CHECK. - * configure: Regenerate. - -2004-04-17 Richard Sandiford - - * gcc.c (used_arg): Check whether an option has been removed. - -2004-04-17 Rainer Orth - - * config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2 - debugging on Solaris 7 and up. - -2004-04-16 Rainer Orth - - * doc/install.texi (Specific, mips-sgi-irix5): Reflect working - IRIX 5 port. - Remove -save-temps workaround, handled automatically. - Require GNU binutils 2.15 for debugging. - Remove SGI make warnings since GNU make is now required. - (Specific, mips-sgi-irix6): Some markup fixes. - Describe MIPSpro C problems and workarounds. - Mention working O32 ABI support. - Recommend GNU as 2.15 for O32 with debugging. - Remove description of fixed structure pass/return bug. - -2004-04-16 DJ Delorie - - * sdbout.c (sdbout_one_type): Use TYPE_VALUES for enums, not - TYPE_FIELDS. - (sdbout_finish): Don't free deferred_global_decls; it's GC'd. - -2004-04-16 John David Anglin - - * pa.md: Remove unnecessary declarations for asm_out_file. - - * 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). - - * pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld. - -2004-04-16 Nick Clifton - - * config/arm/arm.c (arm_override_options): Revert previous patch. - * config/arm/t-xscale-elf: Disable iwmmxt multilibs until they can - be safely built. - -2004-04-16 Kazuhiro Inaoka - - * config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian - bug. - (TARGET_LITTLE_ENDIAN, TARGET_BIG_ENDIAN, - TARGET_DEFAULT): Changed. Ditto. - (LITTLE_ENDIAN_BIT, TARGET_CPU_DEFAULT, - TARGET_ENDIAN_DEFAULT): Added. Ditto. - * config/m32r/little.h (TARGET_LITTLE_ENDIAN): Deleted. - (TARGET_ENDIAN_DEFAULT): Added. - -2004-04-15 Kaveh R. Ghazi - - * builtins.def (BUILT_IN_ISDIGIT, BUILT_IN_ISXDIGIT): Mark with - ATTR_CONST_NOTHROW_LIST. - -2004-04-15 Kaveh R. Ghazi - - PR/middle-end 14915 - * builtins.c (expand_builtin_signbit): Test BYTES_BIG_ENDIAN, not - BITS_BIG_ENDIAN. - -2004-04-15 Pat Haugen - - * ra-debug.c (ra_print_rtx): Add break's to case legs. - -2004-04-14 James E Wilson - - * Makefile.in (fixinc.sh): Set WARN_CFLAGS to empty string. - -2004-04-14 Nathanael Nerode - - * libada-mk.in: New file. - * configure.ac: Create libada-mk from libada-mk.in. - * configure: Regenerate. - -2004-04-14 Uros Bizjak - - * optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb. - (logb_optab, ilogb_optab): Define corresponding macros. - * optabs.c (init_optabs): Initialize logb_optab and ilogb_optab. - * genopinit.c (optabs): Implement logb_optab and ilogb_optab - using logb?f2 and ilogb?i2 patterns. - * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOGB{,F,L} - using logb_optab, and BUILT_IN_ILOGB{,F,L} using ilogb_optab. - (expand_builtin): Expand BUILT_IN_LOGB{,F,L} and BUILT_IN_ILOGB{,F,L} - using expand_builtin_mathfn if flag_unsafe_math_optimizations is set. - - * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_XTRACT_FRACT - and UNSPEC_XTRACT_EXP. - - * config/i386/i386.md (*fxtractdf3, *fxtractsf3, *fxtractxf3): New - patterns to implement fxtract x87 instruction. - (logbdf2, logbsf2, logbxf2, ilogbsi2): New expanders to implement - logb, logbf, logbl, ilogb, ilogbf and ilogbl built-ins as inline x87 - intrinsics. - (UNSPEC_XTRACT_FRACT, UNSPEC_XTRACT_EXP): New unspecs to represent - x87's fxtract insn. - -2004-04-14 Eric Christopher - - * config/mips/t-elf: Enable multilibs by default. - -2004-04-14 Andreas Tobler - - * bb-reorder.c (fix_crossing_conditional_branches): Adjust the - previous fix to check HAVE_return at runtime too. - -2004-04-14 Nick Clifton - - * config/arm/arm.c (arm_override_options): If the user has not - specified an ABI, then default to AAPCS for the iWMMXt processor. - * config/arm/t-xscale-elf: Remove redundant multilib specifications. - * config/arm/t-xscale-coff: Likewise. - -2004-04-14 Kaveh R. Ghazi - - * builtins.c (fold_builtin_isdigit): New. - (fold_builtin): Handle BUILT_IN_ISDIGIT. - * defaults.h: Add TARGET_DIGIT0 and sort. - * doc/tm.texi: Add TARGET_BS and TARGET_DIGIT0. - -2004-04-14 Kaveh R. Ghazi - - * builtins.c (fold_builtin_cabs, fold_builtin): Use - `mathfn_built_in' to determine the new builtin. - * fold-const.c (fold): Likewise. - -2004-04-14 Richard Sandiford - - * doc/invoke.texi: Rename MIPS's -mfix-vr4122-bugs to -mfix-vr4120. - * config/mips/mips.h (MASK_FIX_VR4120): Renamed from MASK_FIX_VR4122. - (TARGET_FIX_VR4120): Likewise TARGET_FIX_VR4122. - (TARGET_SWITCHES): Replace -mfix-vr4122-bugs with -mfix-vr4120. - (ASM_SPEC): Update accordingly. - * config/mips/mips.c: Update after above renaming. - * config/mips/mips.md, config/mips/t-vr, config/mips/vr.h: Likewise. - * config/mips/vr4120-div.S: Renamed from vr4122-div.S. - -2004-04-13 James E Wilson - - * c-opt.c (c_common_post_options): If this_input_filename is NULL, - increment errorcount and return false instead of true. - -2004-04-13 Uros Bizjak : - - * optabs.c (expand_twoval_unop): Reorder function arguments. - * builtins.c (expand_builtin_mathfn_3): Update calls to - expand_twoval_unop. - - * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE - and UNSPEC_TAN_TAN. Add missing comment. - - * config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New - patterns to implement fptan x87 instruction. - (tandf2, tansf2, tanxf2): New expanders to implement tan, tanf - and tanl built-ins as inline x87 intrinsics. Define corresponding - peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence. - (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent - x87's fptan insn. - -2004-03-13 Richard Henderson - - * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode - for LABEL_REFs. - - * defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot. - (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise. - * doc/invoke.texi: Update to match. - - * varasm.c (unlikely_text_section): Use assemble_align instead of - ASM_OUTPUT_ALIGN. Use it in the correct place with an approximately - correct alignment argument. - -2004-04-13 Ulrich Weigand - - * reload1.c (emit_reload_insns): Set reg_has_output_reload to one - after setting reg_last_reload_reg for optional output reloads. - -2004-04-12 Fariborz Jahanian - - * config/rs6000/altivec.h (vec_mergeh, vec_mergel): - Definition of these two macros are corrected by adding - matchine right paren. - -2004-04-12 Jonathan Larmour - - * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI. - -2004-04-12 Roger Sayle - - * config/i386/i386.c (output_387_reg_move): New function. - * config/i386/i386-protos.h (output_387_reg_move): Prototype here. - * config/i386/i386.md (*movsf_1, *movsf1_nointerunit, - *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer, - *extendsfdf2_1, *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop, - truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move. - -2004-04-12 Richard Kenner - - * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized - TYPE_DECL. - * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL. - * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN. - * stor-layout.c (variable_size): Don't check for MINUS_EXPR. - Use skip_simple_arithmetic to find SAVE_EXPR. - (force_type_save_exprs, force_type_save_exprs_1): New functions. - * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE): - Properly chain multiple pointers. - (copy_tree_r): Copy a TYPE_DECL. - * tree.c (variably_modified_type_p): Add some missing tests and - make some other minor changes. - * tree.h (force_type_save_exprs): New declaration. - -2004-04-12 Roger Sayle - - * simplify-rtx.c (simplify_binary_operation) : - Remove fall throughs. Convert 0/x and 0%x into x&0 when x has - side-effects. Don't convert x/1.0 into x if we honor signaling NaNs. - Convert x/-1.0 into -x if we don't honor signaling NaNs. Convert - x/-1 into -x. Optimize x%1 into x&0 if x has side-effects. Optimize - x%-1 into 0 (or x&0 if x has side-effects). - -2004-04-11 Aldy Hernandez - - * config/rs6000/rs6000.md: Document why a pattern is not - available. - - * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons - of floats on the E500. - (branch_positive_comparison_operator): Do not allow NE even on the - E500. - -2004-04-11 Aldy Hernandez - - * config/rs6000/rs6000.c (rs6000_assemble_integer): Change - in_text_unlikely_section to in_unlikely_text_section. - -2004-04-11 Roger Sayle - - * fold-const.c (fold_binary_op_with_conditional_arg): Tweak - calling convention to allow a NULL_TREE to be returned. Factor - sanity checks from callers, return NULL_TREE when appropriate. - (fold): Handle COMPOUND_EXPR operands of binary expressions - before COND_EXPR operands. Use reorder_operands_p(a,b) to check - whether a op (b,c) can be rewritten as (b, a op c). Simplify - calls to fold_binary_op_with_conditional_arg. - -2004-04-11 Kaveh R. Ghazi - - * config/mips/iris5.h (current_section_flags): Add - in_unlikely_executed_text and default case. - -2004-04-11 Andreas Tobler - - * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap - failure on solaris. Place ifdef HAVE_return around gen_ret call. - * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef - HAVE_return and place it around the place where it is needed. - -2004-04-11 Andrew Pinski - - * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and - ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING - and NORMAL_TEXT_SECTION_NAME. - (unlikely_text_section): Check targetm.have_named_sections - instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP - instead of SECTION_FORMAT_STRING. - * config/mips/iris5.h (current_section_name): Add - in_unlikely_executed_text case and move the abort into the switch. - * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove. - (NORMAL_TEXT_SECTION_NAME): Remove. - (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove. - (SECTION_FORMAT_STRING): Remove. - * defaults.h (SECTION_FORMAT_STRING): Remove. - * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove. - (SECTION_FORMAT_STRING): Remove. - -2004-04-10 Joseph S. Myers - - * c-typeck.c (common_type): Prefer long long to long when same - precision. - -2004-04-09 Zack Weinberg - - PR 14887 - * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at - mode argument. - * config/ia64/ia64.c (ia64_hpux_file_end): Check - TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME. - -2004-04-09 Roger Sayle - - * simplify-rtx.c (mode_signbit_p): New function to check whether - an RTX is an immediate constant that represents the most significant - bit of a given machine mode. - (simplify_unary_operation) : Optimize ~(X+C) as X ^ ~C, where - C is the sign bit. - (simplify_binary_operation) : Optimize (X^C1) + C2 as X^(C1^C2) - when C2 is the sign bit. - (simplify_binary_operation) : Canonicalize X^C as X+C when C - is the sign bit. Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the - sign bit. - -2004-04-09 Kaveh R. Ghazi - - * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not - TYPE_MODE. - -2004-04-09 Andrew Pinski - - * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead - of TREE_READONLY for types. - -2004-04-09 Caroline Tice - - * basic-block.h (struct edge_def): Add new field, crossing_edge. - (struct basic_block_def): Add new field, partition. - (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION): New constant macro - definitions. - (partition_hot_cold_basic_blocks): Add extern function - declaration. - * bb-reorder.c (function.h, obstack.h, expr.h, regs.h): Add four new - include statements. - (N_ROUNDS): Increase the maximum number of rounds by 1. - (branch_threshold): Add array value for new round. - (exec_threshold): Add array value for new round. - (push_to_next_round_p): New function. - (add_unlikely_executed_notes): New function. - (find_rarely_executed_basic_blocks_and_crossing_edges): New function. - (mark_bb_for_unlikely_executed_section): New function. - (add_labels_and_missing_jumps): New function. - (add_reg_crossing_jump_notes): New function. - (fix_up_fall_thru_edges): New function. - (find_jump_block): New function. - (fix_crossing_conditional_branches): New function. - (fix_crossing_unconditional_branches): New function. - (fix_edges_for_rarely_executed_code): New function. - (partition_hot_cold_basic_blocks): New function. - (find_traces): Add an extra round for partitioning hot/cold - basic blocks. - (find_traces_1_round): Add a parameter. Modify to push all cold blocks, - and only cold blocks, into the last (extra) round of collecting traces. - (better_edge_p): Add a parameter. Modify to favor non-crossing edges - over crossing edges. - (bb_to_key): Add code to correctly identify cold blocks when - doing partitioning. - (connect_traces): Modify to connect all the non-cold traces first, then - go back and connect up all the cold traces. - (reorder_basic_blocks): Add call to add_unlikely_executed_notes. - * cfg.c (entry_exit_blocks): Add initialization for partition field in - entry and exit blocks. - * cfgbuild.c (make_edges): Update current_function_has_computed_jump - if we are doing hot/cold partitioning. - * cfgcleanup.c (cfglayout.h): Add new include statement. - (try_simplify_condjump): Modify to not attempt on blocks with jumps - that cross section boundaries. - (try_forward_edges): Likewise. - (merge_blocks_move_predecessor_nojumps): Likewise. - (merge_blocks_move_successor_nojumps): Likewise. - (merge_blocks_move): Likewise. - (try_crossjump_to_edge): Modify to not attempt after we have done - the block partitioning. - (try_crossjump_bb): Modify to not attempt on blocks with jumps that - cross section boundaries. - (try_optimize_cfg): Likewise. - * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect - jumps that cross section boundaries. - * cfglayout.c (flags.h): Add new include statement. - (update_unlikely_executed_notes): New function. - (fixup_reorder_chain): Add code so when a new jumping basic block is - added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are - updated appropriately. - (duplicate_insn_chain): Add code to duplicate the new NOTE insn - introduced by this optimization. - * cfglayout.h (scan_ahead_for_unlikely_executed_note): Add new - extern function declaration. - * cfgrtl.c (can_delete_note_p): Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to - list of notes that can be deleted. - (create_basic_block_structure): Add initialization for partition field. - (rtl_can_merge_blocks): Modify to test blocks for jumps that cross - section boundaries. - (try_redirect_by_replacing_jump): Modify to not attempt on jumps that - cross section boundaries. - (commit_one_edge_insertion): Add code so newly created basic block - ends up in correct (hot or cold) section. Modify to disallow - insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes. - (rtl_verify_flow_info_1): Add code to verify that no fall_thru edge - crosses section boundaries. - (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that - cross section boundaries. - (force_nonfallthru_and_redirect): Modify to make sure new basic block - ends up in correct section, with correct notes attached. - * common.opt (freorder-blocks-and-partition): Add new flag for this - optimization. - * dbxout.c (dbx_function_end): Add code to make sure scope labels at - the end of functions are written into the correct (hot or cold) - section. - (dbx_source_file): Add code so writing debug file information - doesn't incorrectly change sections. - * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use - in partitioning hot/cold basic blocks into separate sections. - (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold - section partitioning. - (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not - conditional branches can span all of memory. - (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not - unconditional branches can span all of memory. - * final.c (scan_ahead_for_unlikely_executed_note): New function. - (final_scan_insn): Add code to check for NOTE instruction indicating - whether basic block belongs in hot or cold section, and to make sure - the current basic block is being written to the appropriate section. - Also added code to ensure that jump table basic blocks end up in the - correct section. - * flags.h (flag_reorder_blocks_and_partition): New flag. - * ifcvt.c (find_if_case_1): Modify to not attempt if conversion if - one of the branches has a jump that crosses between sections. - (find_if_case_2): Likewise. - (ifcvt): Modify to not attempt to mark loop exit edges after - hot/cold partitioning has occurred. - * opts.c (decode_options): Code to handle new flag, - flag_reorder_blocks_and_partition; also to turn it off if - flag_exceptions is on. - (common_handle_option): Code to handle new flag, - flag_reorder_blocks_and_partition. - * output.h (unlikely_text_section): New extern function declaration. - (in_unlikely_text_section): New extern function declaration. - * passes.c (rest_of_handle_stack_regs): Add - flag_reorder_blocks_and_partition as an 'or' condition for calling - reorder_basic_blocks. - (rest_of_handle_reorder_blocks): Add flag_reorder_blocks_and_partition - as an 'or' condition for calling reorder_basic_blocks. - (rest_of_compilation): Add call to partition_hot_cold_basic_blocks. - * print-rtl.c (print_rtx): Add code for handling new note, - NOTE_INSN_UNLIKELY_EXECUTED_CODE - * rtl.c (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below). - (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that - cross between section boundaries. - * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note instruction, - indicating the basic block containing it belongs in the cold section. - (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross - between hot and cold sections. - * toplev.c (flag_reorder_blocks_and_partition): Add code to - initialize this flag, and to tie it to the command-line option - freorder-blocks-and-partition. - * varasm.c (cfglayout.h): Add new include statement. - (unlikely_section_label_printed): New global variable, used for - determining when to output section name labels for cold sections. - (in_section): Add in_unlikely_executed_text to enum data structure. - (text_section): Modify code to use SECTION_FORMAT_STRING and - NORMAL_TEXT_SECTION_NAME macros. - (unlikely_text_section): New function. - (in_unlikely_text_section): New function. - (function_section): Add code to make sure beginning of function is - written into correct section (hot or cold). - (assemble_start_function): Add code to make sure stuff is written to - the correct section. - (assemble_zeros): Add in_unlikely_text_section as an 'or' condition - to an if statement that was checking 'in_text_section'. - (assemble_variable): Add 'in_unlikely_text_section' as an 'or' - condition to an if statement that was checking 'in_text_section'. - (default_section_type_flags_1): Add check: if in cold section - flags = SECTION_CODE. - * config/darwin.c (darwin_asm_named_section): Modify to use - SECTION_FORMAT_STRING if we are partitioning hot/cold blocks. - * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro - specifically for the i386. - (HAS_LONG_UNCOND_BRANCH): Defined this macro specifically for the i386. - * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change - text string to something more informative. - (NORMAL_TEXT_SECTION_NAME): Add new definition. - (SECTION_FORMAT_STRING): Add new definition. - * config/rs6000/rs6000.c (rs6000_assemble_integer): Add - '!in_unlikely_text_section' as an 'and' condition to an if statement - that was already checking '!in_text_section'. - * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME, - UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make - sure these are properly defined for linux on ppc. - * doc/invoke.texi (freorder-blocks-and-partition): Add documentation - for this new flag. - * doc/rtl.texi (REG_CROSSING_JUMP): Add documentation for new - reg_note. - * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING, - HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for - these new macros. - -2004-04-08 Roger Sayle - - * function.c (gen_mem_addressof): When changing the RTX from a REG - to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P. - -2004-04-08 Roger Sayle - - PR target/14888 - * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop, - truncxfdf2_noop): Provide dummy "fmov" implementations. - -2004-04-08 Ian Lance Taylor - - * gcc.c (default_compilers): Add missing initializers. - - * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address): - Return 1 if file was successfully mapped. - -2004-04-08 Geoffrey Keating - - PR pch/13419 - PR pch/14137 - Radar #: 3315288 - * doc/invoke.texi (Precompiled Headers): Suggest -o - to put an output file in a particular place. Be more detailed - about which options affect PCH validity and which options - might not work. - * c-pch.c (pch_matching): New. - (MATCH_SIZE): New. - (struct c_pch_validity): New field 'match'. - (pch_init): Handle pch_matching. - (c_common_valid_pch): Check pch_matching. - - * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE. - -2004-04-08 Mark Mitchell - - * doc/invoke.texi (Precompiled Headers): Warn about known - problems. - -2004-04-08 Danny Smith - - PR c++/14808 - * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default - to 1 if ASM_OUTPUT_DEF is defined. - * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document. - * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define. - Set to non-zero iff not a one_only decl. - -2004-04-08 Paul Brook - - * arm.h (CLASS_LIKELY_SPILLED_P): Define. - -2004-04-08 Paul Brook - - * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of - PROMOTE_FOR_CALL_ONLY. - * config/arm/arm-protos.h (arm_function_value): Declare. - * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define. - (TARGET_PROMOTE_PROTOTYPES): Return false. - (arm_function_value): New function. - * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define. - (FUNCTION_VALUE): Call arm_function_value. - * config/cris/cris.h (PROMOTE_MODE): Rename ... - (PROMOTE_FUNCTION_MODE): ... to this. - (PROMOTE_FOR_CALL_ONLY): Remove. - * config/mmix/mmix.h: Likewise. - * config/s390/s390.h: Likewise. - * config/sparc/sparc.h: Likewise. - * config/sparc/sparc.c: Update comments about PROMOTE_MODE. - * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document. - (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update. - (PROMOTE_FOR_CALL_ONLY): Remove. - -2004-04-08 Joel Sherrill - - PR ada/14538 - * ada/5rosinte.adb: Remove fake mprotect() body. - * ada/5rosinte.ads: Add SA_SIGINFO. - * ada/5rtpopsp.adb: Rewrite to use new interface. - * ada/init.c: Reorder so the simple single OS conditional __rtems__ - is tested before more complex ones which mix UNIX and embedded - systems in the conditional. - -2004-04-08 Joel Sherrill - - PR ada/14665 - * ada/osint.adb (Find_Program_Name): Rework to properly handle - filenames which end in .exe or have versioning suffixes like VMS. - -2004-04-08 Andrew Pinski - - PR target/10129 - * config/darwin.c (darwin_encode_section_info): When the decl has - a DECL_INITIAL, it is only defined also when it is not a common. - -2004-04-08 Kaveh R. Ghazi - - * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New. - (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII. - -2004-04-07 H.J. Lu - - * config/ia64/ia64.c (ia64_encode_section_info): Don't prod - global register variables. - -2004-04-07 Joseph S. Myers - - * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a, - rpc_xdr_lvalue_cast_b): New fixes. - * fixinc/fixincl.x: Regenerate. - * fixinc/tests/base/rpc/xdr.h: Add new tests. - -2004-04-07 David Edelsohn - - * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF - to power4 and power5 entries. - -2004-04-06 Geoffrey Keating - - * c-common.h (pending_lang_change): Mark for PCH. - -2004-04-07 Caroline Tice - - * gcc.c (main): Move 'break' in main loops (on an error) - to wait until error processing has occurred. - -2004-04-06 Nathanael Nerode - - * config.gcc: Stop changing enable_threads midstream. - Replace uses of enable_threads_flag with enable_threads. - * configure.ac: Replace uses of enable_threads_flag with - enable_threads. Improve autoconf quotation in one place. - * configure: Regenerate. - -2004-04-06 Uros Bizjak - - * builtins.c: Implement support for sincos function. - (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and - BUILT_IN_COS{,F,L}. - (expand_builtin_mathfn_3): New function. - (expand_builtin): Expand BUILT_IN_SIN{,F,L} and - BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if - flag_unsafe_math_optimization is set. - - * optabs.h (enum optab_index): Add new OTI_sincos. - (sincos_optab): Define corresponding macro. - - * optabs.c (init_optabs): Initialize sincos_optab. - (expand_twoval_unop): New function. - - * genopinit.c (optabs): Implement sincos_optab using sincos?f3 - patterns. - - * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS - and UNSPEC_SINCOS_SIN. - - * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3, - sincosxf3): New patterns to implement sincos, sincosf and sincosl - built-ins as inline x87 intrinsics. Define splits for - sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2, - cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding - sincos patterns. - (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2. - (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2. - - (UNSPEC_SINCOS_SIN, UNSPEC_SINCOS_COS): New unspecs to represent - x87's fsincos insn. - -2004-04-06 Devang Patel - - PR 14467 - * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3. - -2004-04-06 John David Anglin - - * doc/install.texi: Update HP-UX 11 installation procedure. - -2004-04-06 Paul Brook - - * doc/sourcebuild.texi: Remove obsolete contraint on testcases. - -2004-04-05 Kaz Kojima - - * config/sh/sh.c (prepare_move_operands): Use emit_call_insn - when the TLS address is generated by a function call. - * config/sh/sh.md (tls_global_dynamic): Use a call expression. - (tls_local_dynamic): Likewise. - -2004-04-05 Andrew Pinski - - * tree.c (reconstruct_complex_type): Use TYPE_READONLY - and TYPE_VOLATILE. - -2004-04-05 Caroline Tice - - * gcc.c (combine_flag): New global variable, for new driver option. - (struct compiler): Add two new fields, to be used when - combining multiple input files in a single pass (IMA). - (default_compilers): Add values for the new fields to all - compiler entries. Modify the "@c" compiler entry for doing IMA - properly with "-save-temps" and the "combine" flag. - (option_map): Add new driver option, "--combine", to tell driver - to pass multiple input files to compiler at one time. - (have_o_argbuf_index): New global variable. - (store_arg): Modify to assign value to have_o_argbuf_index. - (struct infile): Add three new fields, to help with IMA. - (display_help): Add help for new "combine" option. - (process_command): Remove local variable have_o; add code to check - for new "combine" option; remove assignment to combine_inputs. - (do_spec_1): Modify to deal with IMA better. - (main): Make variable 'lang_n_infiles' local to entire function - rather than to a single block. Use flag combine_flag to - determine whether to do IMA or not; Modify loop initializing - infiles to deal properly with linker files. - Add code for doing preprocessing in presence of - IMA with "-save-temps" flag. Modify "main" loop to handle - multiple input files, in multiple languages, with or without - preprocessing, gracefully. - * toplev.c (set_src_pwd): Modify to not complain if attempting to - re-set it to same directory it's previously been set to (avoid - irritating, meaningless warning messages when doing IMA with - save-temps). - * doc/invoke.texi: Add "-combine" to list of Overall Options; - remove documentation about IMA that is no longer accurate; Add - documentation explaining what "-combine" does. - * ada/lang-specs.h: Add initialization values for new fields in - "struct compiler". - * cp/lang-specs.h: Likewise. - * f/lang-specs.h: Likewise. - * java/lang-specs.h: Likewise. - * objc/lang-specs.h: Likewise. - * treelang/lang-specs.h: Likewise. - -2004-04-05 David Edelsohn - - * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special - symbol handling. - -2004-04-05 Jakub Jelinek - John David Anglin - - PR optimization/13424 (hppa), bootstrap/14462, c/14828 - * pa.md: Use replace_equiv_address to retain the attributes of the - memory operands used in the split and peephole2 patterns for optimizing - the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns. - -2004-04-05 Richard Kenner - - * c-decl.c (build_compound_literal): Use TYPE_READONLY. - * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise. - * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise. - * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a - PARM_DECL. - * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only - for a type. - * print-tree.c (print_node): Properly handle side-effects, readonly, - and constant flags. - * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS - and TREE_CONSTANT if not a type. - * tree.h (IS_NON_TYPE_CODE_CLASS): New macro. - (IS_EXPR_CODE_CLASS): Write 'E', not 'e'. - (NON_TYPE_CHECK): New macro. - (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check. - -2004-04-05 Eric Botcazou - - * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set - to DWARF2_DEBUG unconditionally. - (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally. - -2004-04-04 Ian Lance Taylor - Nathanael Nerode - - PR target/14548 - * config.host: Set the shell variable host_can_use_collect2. - Set it to yes by default, and to no for alpha*-dec-*vms*, - i[34567]86-*-mingw32*, and powerpc-*-beos*. - * configure.ac: Set and substitute the shell variable collect2. - Give an error if use_collect2 is yes and host_can_use_collect2 is - no. - * Makefile.in (COLLECT2): Rename from USE_COLLECT2. Change all - uses. Initialize to @collect2@. - (STAGESTUFF): Remove $(USE_COLLECT2). - * config/alpha/x-vms (USE_COLLECT2): Don't set. - * config/i386/t-mingw32 (USE_COLLECT2): Likewise. - * config/rs6000/t-beos (USE_COLLECT2): Likewise. - * config/pa/t-pa64: Remove commented out USE_COLLECT2. - * configure: Regenerate. - -2004-04-04 Roger Sayle - - * simplify-rtx.c (simplify_binary_operation): Constant fold - DIV, MOD, UDIV and UMOD using div_and_round_double. - -2004-04-04 Mark Mitchell - - PR c++/14804 - * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to - RECORD_TYPEs. - -2004-04-04 Mark Mitchell - - * doc/invoke.texi (-mabi=o64): Create link to O64 ABI - documentation. - -2004-04-04 Roger Sayle - - * cse.c (cse_insn): Correct usage of simplify_replace_rtx when - updating the REG_EQUAL note on an insn's libcall_insn. - -2004-04-04 Roger Sayle - - * df.h: Tidy up whitespace in the definitions of the DF_ flags. - -2004-04-03 Roger Sayle - - * fold-const.c (fold) : Guard (-A)+B -> B-A transformation - with reorder_operands_p. - -2004-04-03 Jan Hubicka - - * md.texi (vec_set, vec_extract, vec_init): Document. - -2004-04-02 Gabor Loki - - * opts.c (decode_options): Do function inlining with very small - max-inline-insns-* parameters when optimizing for size. - -2004-04-02 Vladimir Makarov - - * config/i386/i386.h (TARGET_NOCONA): New macro. - (TARGET_CPU_CPP_BUILTINS): Add code for Nocona. - (processor_type): Add PROCESSOR_NOCONA. - - * config/i386/i386.md (cpu): Add nocona to the attribute values. - - * config/i386/i386.c (nocona_cost): New variable. - (m_NOCONA): New macro. - (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch, - x86_branch_hints, x86_use_sahf, x86_single_stringop, - x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8, - x86_integer_DFmode_moves, x86_partial_reg_dependency, - x86_memory_mismatch_stall, x86_accumulate_outgoing_args, - x86_decompose_lea, x86_arch_always_fancy_math_387, - x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor, - x86_ext_80387_constants, x86_four_jump_limit): - (override_options): Add nocona_cost to processor_target_table. - Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table. - (incdec_operand): Prevent inc/dec generation for Nocona too. - (ix86_issue_rate): Add PROCESSOR_NOCONA. - -2004-04-01 Andrew Pinski - - * rtlanal.c (find_reg_note): Manually - unswitch the loop. - -2004-04-01 Mark Mitchell - - * genemit.c (gen_split): Change prototype of generated code. - * genrecog.c (write_action): Adjust prototype for and calls to - gen_split_*. - * gensupport.c (struct queue_elem): Add split field. - (queue_pattern): Return a value. Clear the split field. - (process_rtx): Maintain an association between an insn and the - split generated from it for a define_insn_and_split. - (process_one_cond_exec): Generate a new split for a - define_insn_and_split. - * config/arm/arm-protos.h (arm_split_constant): Add insn - parameter. - (emit_constant_insn): New function. - (arm_gen_constant): Use it. - * config/arm/arm.md: Adjust calls to arm_split_constant. - -2004-04-02 Jan Hubicka - - * cgraph.c: Add overall comment. - (cgraph_inline_hash): New global variable. - (cgraph_create_node): Break out from ... - (cgraph_node): ... here. - (cgraph_edge): New function. - (cgraph_create_edge): New CALL_EXPR argument; some sanity checking. - (cgraph_remove_edge): Accept edge, intead of source and destination. - (cgraph_redirect_edge_callee): New. - (cgraph_remove_node): Update all new datastructures. - (cgraph_record_call, cgraph_remove_call): Kill. - (dump_cgraph_node): Break out from ... ; dump new datastructures. - (dump_cgraph): ... here. - (cgraph_function_possibly_inlined_p): Use new hashtable. - (cgraph_clone_edge, cgraph_clone_node): New. - * cgraph.h: Include hashtab.h - (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output - fields, add inlined_to pointer. - (cgraph_node): Add pointer to next_clone. - (cgraph_remove_edge, cgraph_create_edge): Update prototype. - (cgraph_remove_call, cgraph_record_call): Kill. - (cgraph_inline_hash): Declare. - (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node, - cgraph_redirect_edge_callee): Declare. - (cgraph_create_edges, cgraph_inline_p): Update prorotype. - (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node, - cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare. - * cgraphunit.c: Add overall comment. - (cgraph_optimize_function): Kill. - (cgraph_assemble_pending_functions): Do not assemble inline clones. - (cgraph_finalize_function): Update call of cgraph_remove_node - (record_call_1): Record call sites. - (cgraph_create_edges): Accept node instead of decl argument. - (error_found): New static variable. - (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions. - (cgraph_analyze_function): Update for new datastructures. - (cgraph_finalize_compilation_unit): Plug memory leak. - (cgraph_optimize_function): Kill. - (cgraph_expand_function): Do not use cgraph_optimize_function. - (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into, - cgraph_inlined_callees): Kill. - (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of - clones. - (estimate_growth): Simplify. - (cgraph_clone_inlined_nodes): New function. - (cgraph_mark_inline_edge): Re-implement. - (cgraph_mark_inline): Likewise. - (cgraph_check_inline_limits): Simplify. - (cgraph_recursive_inlining_p): New. - (update_callee_keys): Break out from ... - (cgraph_decide_inlining_of_small_functions): ... here; simplify. - (cgraph_decide_inlining, cgraph_decide_inlining_incrementally): - Likewise. - (cgraph_expand_all_functions): Remove inline clones from the ordered - list. - (cgraph_preserve_function_body_p): New predicate. - (cgraph_optimize): Verify cgraph. - * function.h (struct function): Add fields saved_tree/saved_args. - * timevar.def (TV_CGRAPH_VERIFY): Use verifier. - * toplev.c (rest_of_compilation): Do not free cfun. - * tree-inline.c: Include function.h - (struct inline_data): Add saving_p field; replace decl/current_decl by - node/current_node. - (insert_decl_map): New function. - (copy_body_r): Handle saving; update cgraph datastructure. - (copy_body): Handle recursive inlining. - (initialize_inlined_parameters): Likewise. - (expand_call_inline): Propagate node attributes; update cgraph. - (optimize_inline_calls): Verify that datastructure still match. - (save_body): New function. - * tree-inline.h (save_body): New. - * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining. - * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New. - * langhooks.c (lang_hooks): Add update_decl_after_saving. - -2004-04-01 Serge Belyshev <1319@bot.ru> - - PR target/14702 - * config/i386/i386.md: fix source operand constraints in - mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw - -2004-04-01 Waldek Hebisch - - * fold-const.c (folda): Preserve types of comparisons. - -2004-04-01 Richard Henderson - - * toplev.c (backend_init): Move init_optimization_passes call ... - (lang_dependent_init): ... here. - -2004-04-01 Alan Modra - Jakub Jelinek - - * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with - -lgcc --as-needed -lgcc_s --no-as-needed by default. - * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed. - * configure: Rebuilt. - * config.in: Rebuilt. - * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT). - (stage2-start, stage3-start, stage4-start): Likewise. - (stageprofile-start, stagefeedback-start): Likewise. - -2004-04-01 Jakub Jelinek - - * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0. - * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1. - * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1. - * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1. - (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS. - * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs - with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS. - * config.gcc (sparc-*-linux*): Revert 2004-03-23 change. - * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise. - * config/sparc/t-linux: Removed. - -2004-04-01 Jakub Jelinek - - PR c++/14755 - * fold-const.c (fold) : Properly compute newconst in - "bitfld++ == const" to "++bitfld == const + incr" transformations. - -2004-04-01 Richard Kenner - - * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED. - * stor-layout.c (layout_decl): Likewise. - * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED. - * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED. - * print-tree.c (print_node): Handle various used of unsigned_flag. - * tree.def (BIT_FIELD_REF): Update comment. - * tree.h (TREE_UNSIGNED): Deleted. - (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros. - -2004-03-31 Richard Kenner - - * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c: - Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED. - * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise. - * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise. - * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise. - * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise. - * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise. - * config/mips/mips.c, config/rs6000/rs6000.c: Likewise. - * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise. - * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for - REAL_TYPE, not INTEGER_TYPE. - (layout_type, case VECTOR_TYPE): Simplify code. - * tree.c (build_vector_type_for_mode): Remove dup unsigned setting. - * tree.h: Update comments. - (STRIP_NOPS): Use TYPE_UNSIGNED. - (TYPE_UNSIGNED): New macro. - (TYPE_TRAP_SIGNED): Remove now redundant check. - (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED. - -2004-03-31 Richard Kenner - - * function.c (put_var_into_stack): Properly set orig_reg for indirect. - -2004-03-31 Andrew Pinski - - * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA): - Add darwin-fpsave.asm, darwin-vecsave.asm, - and darwin-world.asm. - (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL - as the asm files contain altivec instructions. - * config/rs6000/darwin-fpsave.asm: New file. - * config/rs6000/darwin-vecsave.asm: New file. - * config/rs6000/darwin-world.asm: New file. - -2004-03-31 Zack Weinberg - - * gengtype-yacc.y (option, stringseq): Add missing - terminating semicolon. - -2004-03-30 David Edelsohn - - * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64, - tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64, - tls_dtprel_ha_32, tls_dtprel_ha_64, - tls_dtprel_lo_32, tls_dtprel_lo_64, - tls_got_dtprel_64, tls_tprel_32, tls_tprel_64, - tls_tprel_ha_32, tls_tprel_ha_64, - tls_tprel_lo_32, tls_tprel_lo_64, - tls_got_tprel_32, tls_got_tprel_64, - tls_tls_32, tls_tls_64): Replace register_operand with - gpc_reg_operand. - -2004-03-30 Mostafa Hagog - - * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2, - *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3, - *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4, - *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5, - *ctrdi_internal6): Replace register_operand with - nonimmediate_operand. - -2004-03-29 Fariborz Jahanian - - * fold-const.c (fold): Reassociate multiply expression - with an adjacent non-multiply expression to use - architecture's multiply-add instruction. - -2004-03-30 Zack Weinberg - - * gengtype.c (create_option): New function. - * gengtype.h: Prototype it. - * gengtype-yacc.y (stringseq): New rule. - (option): Use create_option. Add new bare ID production. Use - stringseq, not STRING directly. - - * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h - * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h - * varray.h, config/alpha/alpha.c: - Use new shorter form of GTY markers. - - * doc/gty.texi: Rewrite. - -2004-03-30 Andrew Pinski - - * config/darwin.c (machopic_function_base_name): - Remove current_name and getting the name of the - current function. - -2004-03-30 Nick Clifton - - * config/arm/arm.md (thumb_jump): Reduce the backward branch - range, and increase the forward branch range, to allow for - the fact that the PC will be off by 4. - -2004-03-30 Alan Modra - - * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL) - -2004-03-30 Hartmut Penner - - * config/rs6000/rs6000.c (output_vec_const_move): - Find all cases of EASY_VECTOR_15_ADD_SELF. - (easy_vector_constant_add_self): Accept - all vector constant loadable by vsplt* and vadd*. - (easy_vector_same): Use easy_vector_splat_const. - (easy_vector_const): Use easy_vector_splat_const. - (easy_vector_splat_const): New function. - (gen_easy_vector_constant_add_self): New function. - - * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self): - New prototype. - - * config/rs6000/altivec.md (movv4si splitter): Change to - emit move insn with halfed vector constant. - (*movv8hi splitter): Likewise. - (*movv16qi splitter): Likewise. - -2004-03-30 Hartmut Penner - - PR 11591 - * config/rs6000/rs6000.c (rs6000_legitimate_address): - Allow any offset to argument pointer in no-strict case. - -2004-03-30 Jan Hubicka - - * toplev.c (backend_init): Add missing call to inint_optimization_passes. - * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph - dump file in non-unit-at-a-time mode. - -2004-03-29 Hans-Peter Nilsson - - * config/cris/cris.h: Correct #ifdef to test for - HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not - HAVE_AS_MUL_BUG_ABORT_OPTION. - -2004-03-29 Richard Kenner - - * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update - the address inside the old RTL. - -2004-03-28 Zack Weinberg - - * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct. - (struct c_binding, struct c_scope): Add chain_next - attributes to GTY markers. - (struct lang_identifier, struct lang_tree_node): Define - here... - * c-tree.h: ... not here. No longer need to declare struct - c_binding either. Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER. - * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE - to C_SIZEOF_STRUCT_LANG_IDENTIFIER. - - PR 14734, 11944 - * c-decl.c (get_parm_info): If error_mark_node is encountered - in the bindings chain, unbind and discard it; don't abort. - -2004-03-28 Olga Golovonevsky - Dorit Naishlos - - * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2, - one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling. - -2004-03-28 Stephane Carrez - - * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare. - - * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New. - (m68hc11_attribute_table): New attribute "page0" to mark a global - variable as being allocated from within page0 section. - (m68hc11_encode_label): New function. - (m68hc11_strip_name_encoding): New function. - (m68hc11_page0_symbol_p): New function. - (m68hc11_indirect_p): Accept global variables marked in page0. - (m68hc11_encode_section_info): Lookup "page0" attribute. - - * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also - represents access to page0 variables. - - * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG. - ("*logicalsi3_silshl16_zext"): Likewise. - ("*ashldi3_const32"): Likewise. - (peephole2 ashift): Likewise. - -2004-03-28 Joseph S. Myers - - * c-tree.h (C_DECL_REGISTER): New. - * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile, - finish_decl, grokdeclarator, get_parm_info), c-typeck.c - (build_array_ref, c_mark_addressable): Set and use it. - * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable): - Allow structures with volatile fields to be declared register. - Don't check TREE_ADDRESSABLE before warning about taking address - of register. - * c-decl.c (finish_decl): Don't allow structures with volatile - fields to be placed in named register. - * doc/trouble.texi: Remove reference to structures with volatile - fields in registers. - -2004-03-27 Ulrich Weigand - - * function.c (thread_prologue_and_epilogue): Move - NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes - before the epilogue. - -2004-03-27 Ulrich Weigand - - * expr.c (store_constructor): Use gen_int_mode to correctly - sign-extend CONST_INT value. - -2004-03-27 Kaveh R. Ghazi - - * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New. - * builtins.def (DEF_C94_BUILTIN): New. Add wctype builtins. - * doc/extend.texi: Likewise. - -2004-03-26 Diego Novillo - - * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN - with TYPE_ORIG_SIZE_TYPE. - -2004-03-25 Aldy Hernandez - - PR 14219 - * c-typeck.c (build_binary_op): Do not allow comparisons of - vectors. - -2004-03-26 James A. Morrison - - * config.gcc: Remove sparc-tti-*. - * config/sparc/pbd.h: Delete. - - * config/sparc/sol2.h: Remove note about Sun OS 4.x. - * config/sparc/aout.h: Likewise. - - * config/sparc/sparc.h: Remove if 0'd code. - * config/sparc/sparc.md (call): Remove if 0'd code. - (call_value): Likewise. - (nonlocal_goto): Likewise. - (unimp_insn): Delete. - -2004-03-25 Roger Sayle - - * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like - BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative. - -2004-03-25 Richard Henderson - - PR 11527 - * c-typeck.c (pop_init_level): Emit pending init elements earlier - rather than later. - -2004-03-25 Kaveh R. Ghazi - - * builtins.c (fold_builtin): Fix error in last change. - -2004-03-25 Richard Sandiford - - * config/mips/mips.h: Formatting fix. - -2004-03-25 Kaveh R. Ghazi - - * builtins.def: Add ctype builtins. - * doc/extend.texi: Likewise. - -2004-03-25 Kaveh R. Ghazi - - * builtins.c (fold_builtin): Add new builtin optimizations for - sqrt and/or cbrt. - * fold-const.c (fold): Likewise. - -2004-03-25 David Edelsohn - - * config/rs6000/rs6000.c (rs6000_always_hint): New variable. - (rs6000_sched_groups): New variable. - (processor_target_table): Add power5. - (rs6000_override_options): Set rs6000_sched_insert_nops, - rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority - from rs6000_sched_groups. - (output_cbranch): Use rs6000_always_hint. - (rs6000_variable_issue): Use rs6000_sched_groups. - (rs6000_adjust_cost): Add CPU_POWER5. - (is_microcoded_insn): Use rs6000_sched_groups. - (is_dispatch_slot_restricted): Use rs6000_sched_groups. - Return 2 for POWER5 cracked instructions. - (is_cracked_insn): Use rs6000_sched_groups. - (is_branch_slot_insn): Use rs6000_sched_groups. - (rs6000_issue_rate): Add CPU_POWER5. - (rs6000_sched_finish): Use rs6000_sched_groups. - (rs6000_rtx_costs): Add PROCESSOR_POWER5. - * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5. - (DEFAULT_SCHED_COSTLY_DEP): Delete. - (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete. - (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete. - * config/rs6000/rs6000.md (define_attr "cpu"): Add power5. - * config/rs6000/power5.md: New file. - * doc/invoke.texi: Add power5 option. - -2004-03-25 Kazu Hirata - - * cfgrtl.c, dbxout.c, tree.def, config/darwin.h, - config/arm/arm.c, objc/objc-act.c: Fix comment typos. - * doc/invoke.texi: Fix a typo. - -2004-03-25 Kazu Hirata - - PR optimization/9707. - * stmt.c (emit_case_nodes): Emit equality comparisons instead - of recursing if both children are single-valued cases with no - children. - -2004-03-25 Paul Brook - - * config/arm/arm.c (vfp_print_multi): Remove. - (arm_output_fldmx): New function. - (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix. - (arm_expand_prologue): Update to match. - (arm_get_vfp_saved_size): New Function. - (arm_get_frame_offsets): Use it. - (arm_output_epilogue): Use new functions. - -2004-03-24 Richard Henderson - - * 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): Free reg_known_value with gc. - * 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. - -2004-03-24 Kazu Hirata - - * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h, - config/i386/mmintrin.h: Update copyright. - -2004-03-24 Nathanael Nerode - - * configure.ac: Add --enable-werror-always (for top level bootstrap - support). - * configure: Regenerate. - -2004-03-24 Ziemowit Laski - - * objc/objc-act.c (objc_comptypes): Treat comparisons - between 'Class' and ' *' as explicitly invalid. - -2004-03-24 David Edelsohn - - * doc/invoke.texi (-frename-registers): Add enabled at -O3. - (-fprofile-values): Add enabled with profile-{generate,use}. - (-fvpt): Same. - (-ftracer): Add enabled with profile-use. - (-funit-at-a-time): Add enabled at -O2,-O3. - (-funroll-loops): Add enabled with profile-use. - (-funswitch-loops): Add enabled with profile-use. Remove duplicates. - (max-gcse-passes): Mention default. - (max-cse-path-length): Mention default. - -2004-03-24 Nathanael Nerode - - * Makefile.in (STRICT2_WARN): Reorder. - * configure.ac: Check for -Wold-style-definition, and use it - in strict1_warn if it's available. - * configure: Regnerate. - -2004-03-24 Paul Brook - - * config.gcc : Add --with-abi= - * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size, - thumb_far_jump_used): Remove prototypes. - (arm_needs_doubleword_align): Add prototype. - (thumb_compute_initial_elimination_offset): Ditto. - * config/arm/arm.c (arm_get_frame_offsets): New function. - (use_return_insn, output_return_instruction, arm_output_epilogue, - arm_output_function_epilogue, arm_compute_initial_elimination_offset, - arm_expand_prologue, thumb_expand_epilogue): Use it. - (arm_abi, target_abi_name, all_arm_abis): New variables. - (arm_override_options): Set them. Set structure padding for AAPCS. - (arm_return_in_memory): Update ABI check. - (arm_init_cumulative_args): Initialize can_split. - (arm_needs_doubleword_align): New function. - (arm_function_arg): Don't split args after pushing to stack. Handle - doubleword/even reg alignment. - (arm_va_arg): Handle all doubleword aligned args. - (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based - on ABI, not CPU. - (arm_compute_save_reg0_reg12_mask): Fix comment. - (thumb_get_frame_size, thumb_get_frame_size): Remove. - (thumb_jump_far_used_p): Remove superfluous argument. Return save - value for alignment. - (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change - to match. - (thumb_compute_initial_elimination_offset): New function. - (thumb_expand_prologue): Use arm_get_frame_offsets. Remove - unneccessary rounding. - * config/arm/arm.h (target_abi_name): Declare. - (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI, - arm_abi_type, ARM_DEFAULT_ABI): Define. - (ARM_FLAG_ATPCS): Remove. - (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=. - (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it. - (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT, - TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove. - (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P): - Contitionalize on ABI, not CPU. - (struct arm_stack_offsets): Define. - (struct machine_function): Add stack_offsets. Remove frame_size. - (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been - pushed. - (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general - doubleword alignment. - (THUMB_INITIAL_ELIMINATION_OFFSET, - ARM_INITIAL_ELIMINATION_OFFSET): Remove. - (INITIAL_ELIMINATION_OFFSET): Call functions directly. - * config/arm/arm.md (align_8): Enable for all targets. - * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS. - (ARM_DEFAULT_ABI): Define. - * doc/invoke.texi : Document -mabi=. Update documentation for - -mstructure-size-boundary. - -2004-03-24 Nathanael Nerode - - * configure.ac: Check for -Wno-variadic-macros; don't use - -pedantic (in stage 1 or a simple 'make all') unless it's available, - and if it's available, use it. Also, clean up check for - -Wno-long-long. - * configure: Regenerate. - -2004-03-24 Richard Sandiford - - * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines. - * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130. - (MULTILIB_DEFAULTS): Use it. - (MIPS_CPU_STRING_DEFAULT): Remove. - (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define. - (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120. Make - EABI64 -mlong32 the default ABI. Enforce the default architecture. - * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs, - march=vr4130, march=vr4300, march=vr5000 and march=vr5500. - (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120. - (MULTILIB_EXCEPTIONS): Change choice of multilibs. Update comments - accordingly. - -2004-03-24 DJ Delorie - Richard Sandiford - - * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros. - (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs. - (ASM_SPEC): Pass down -mfix-vr4122-bugs. - * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions - in .set noreorder and .set nomacro if TARGET_FIX_VR4122. - (mips_init_libfuncs): Use special functions for divsi3 and modsi3 - if TARGET_FIX_VR4122. - * config/mips/mips.md (define_attr length): Account for nops inserted - after macc and dmult when using -mfix-vr4122-bugs. - (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122. - * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of - LIB2FUNCS_EXTRA. Add config/mips/vr4122-div.S. - * config/mips/vr4122-div.S: New file. - * doc/invoke.texi: Document -mfix-vr4122-bugs. - -2004-03-24 Richard Sandiford - - * config/mips/mips.h (PROCESSOR_R4130): New processor_type. - (TARGET_MIPS4130): New macro. - (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16. - * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry. - (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal - with PROCESSOR_R4130. - * config/mips/mips.md (define_attr cpu): Add r4130. - * doc/invoke.texi: Document vr4130 as a supported MIPS architecture. - -2004-03-24 Maciej W. Rozycki - Richard Sandiford - - * doc/invoke.texi: Apply missed hunk from 2004-03-03 change. - -2004-03-24 Alexandre Oliva - - PR preprocessor/14438 - * cpplib.c (do_pragma): Remove line_change call after pragma - handler. - -2004-03-23 Ian Lance Taylor - - * doc/extend.texi (ARM Built-in Functions): Replace with correct - declarations. - -2004-03-23 Roger Sayle - - * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND - if flag_unsafe_math_optimizations. - * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations - and TARGET_80387 expand using truncdfsf2_noop pattern. - (truncxfsf2): Likewise using truncxfsf2_noop. - (truncxfdf2): Likewise using truncxfdf2_noop. - (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns. - -2004-03-23 Ziemowit Laski - - * hooks.c (hook_constcharptr_tree_null): New hook. - * hooks.h (hook_constcharptr_tree_null): New prototype. - * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook. - * target.h (mangle_fundamental_type): New target hook. - * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point - target hook at rs6000_mangle_fundamental_type. - (rs6000_mangle_fundamental_type): New function. - * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document. - -2004-03-23 Zack Weinberg - - PR 12267, 12391, 12560, 13129, 14114, 14133 - * c-tree.h: Forward declare struct c_binding. Declare - c_override_bindings_to_false. Update prototypes. - (struct lang_identifier): Update comments. Change fields to be - struct c_binding *. - (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE) - (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE) - (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete. - (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New. - * c-common.h: Update prototypes. - * c-decl.c (struct c_scope): Update commentary. Remove names, - names_last, parms, parms_last, tags, and shadowed fields. Add - bindings and depth fields. - (scope_freelist): Move to more appropriate location. - (c_print_identifier): Update for changes to struct lang_identifier. - (objc_mark_locals_volatile): Update for new bindings structures. - (global_bindings_p): Honor c_override_global_bindings_to_false. - (pushlevel): Rename to push_scope; take no arguments; use the - scope_freelist; initialize scope->depth and check for overflow. - (poplevel): Rename to pop_scope; totally rewritten for new bindings - structures. - (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not - C_DECL_INVISIBLE, for certain decisions. Adjust some diagnostics. - Improve some commentary. Adjust handling of forward parm decls. - (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate. - Preserve C_DECL_IN_EXTERNAL_SCOPE. - (warn_if_shadowing): Correct indentation. Improve diagnostics. - (pushdecl): Remove unnecessary assertion. Short-circuit anonymous - decls. Rewrite for new bindings structures. Improve commentary. - Eliminate the copy_node call. - (implicit_decl_warning): Use the "diag" idiom (as seen in - locate_old_decl) to reduce code duplication; call locate_old_decl - if appropriate. Relocate to remove need for forward declaration. - (implicitly_declare): Adjust for new bindings structures. Kludge - around Objective-C not-really-builtin functions. - (undeclared_variable): Improve diagnostics. If current_function_decl - is nonnull but current_function_scope is null, use current_scope. - Use bind. - (lookup_tag): Adjust for new bindings structures. Kludge around - Objective-C's tag declarations that wind up in the external scope. - (lookup_name): Adjust for new bindings structures. Kludge around - c-common.c's pseudo-typedefs that wind up in the external scope. - (lookup_name_current_level): Rename lookup_name_in_scope; take a - second argument indicating the scope to examine; rewrite for - new bindings structures. - (c_init_decl_processing): Adjust for renamed functions. Do not - initialize current_file_decl, first_builtin_decl, last_builtin_decl. - First scope pushed is the external scope, not the global scope. - (builtin_function): Use bind, not pushdecl. Adjust other bits - for new data structures. Keep track of builtins that should be - made visible automatically. - (start_decl): Adjust diagnostics. Remove unnecessary call to - expand_decl. - (grokparms): Return 0 if arg_types is error_mark_node. - (get_parm_info): Rename "void_at_end" argument to "ellipsis", with - reversed sense. Rewrite for new bindings structures. Do not - leave any decls in the scope, to prevent pop_scope from doing - contradictory things with them. - (finish_struct, finish_enum): Remove redundant diagnostics. - (build_enumerator): Don't cascade diagnostics for error_mark_node. - Mark location where -pedantic changes the meaning of the program. - (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the - parameter decls into the function's scope structure using bind. - Warn here about function definitions in the wrong style. - Adjust diagnostics. - (store_parm_decls): Correct the determination of whether a - function was defined with a prototype. - (c_write_global_declarations): Operate on all file decls and on - the external scope. Split body of the loop to... - (c_write_global_declarations_1): ... this new function, to avoid - code duplication. - (truly_local_externals, first_builtin_decl, last_builtin_decl) - (make_scope, pop_scope, in_parm_level_p, set_block) - (any_external_decl, record_external_decl, bind_label, getdecls) - (link_hash_hash, link_hash_eq, merge_translation_unit_decls) - (c_reset_state): Delete. - (visible_builtins, c_override_global_bindings_to_false) - (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING) - (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope) - (external_scope, binding_freelist, bind, free_binding_and_advance) - (push_file_scope, pop_file_scope): New. - (pushtag, pushdecl_top_level, lookup_label, declare_label) - (define_label, c_make_fname_decl, finish_decl) - (mark_forward_parm_decls, build_compound_literal) - (grokdeclarator, start_function, check_for_loop_decls) - (identifier_global_value, record_builtin_type): Minor adjustments - for new bindings structures. Improve diagnostics and commentary. - * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to - pushlevel/poplevel respectively. - (c_objc_common_finish_file): Don't call merge_translation_unit_decls. - * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED. - Warn about YYDEBUG not being defined only if -dy. Remove no-longer- - correct loop over multiple translation units; call fatal_error if - requested to compile more than one file at once. (This disables - IMA temporarily - an up-front error being preferable to a crash.) - * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope. - (all actions): Adjust calls to pushlevel/poplevel. - (parsing_iso_function_signature): Delete. - (extdef_1): Fold into extdef. - (old_style_parm_decls_1): Fold into old_style_parm_decls. Don't - warn here about function definitions in the wrong style. - (after_tyle_declarator, parm_declarator_starttypename) - (parm_declarator_nostarttypename, notype_declarator): Remove - commented-out productions. - (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create - an empty TREE_LIST node. Adjust calls to get_parm_info. - (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node - to suppress -Wold-style-definition after this error. - (c_parse_file): Don't clear the binding stack or call - finish_fname_decls here. Correct comment. - * c-typeck.c (same_translation_unit_p): Export. - (common_type): Use c_override_global_bindings_to_false, not - pushlevel/poplevel/declare_parm_level. - * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK, - LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK, - and LANG_HOOKS_GETDECLS with do-nothing stubs. - * objc/objc-lang.c: Likewise. - * objc/objc-act.c: Adjust all calls to pushlevel, poplevel, - get_parm_info. - (OBJC_VOID_AT_END): Delete; replace all uses - with void_list_node. - (generate_forward_declaration_to_string_table): Delete. - * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete. - - * coverage.c (create_coverage): Don't pushdecl anything. - * langhooks.c (lhd_clear_binding_stack): Call - lang_hooks.decls.poplevel, not poplevel. - * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a - circular list rather than going into an infinite loop. - -2004-03-23 Olivier Hainque - - * optabs.c (expand_binop): When synthesizing double word rotates - from single word shifts, use a new register target if the provided - target is not a REG already. - -2004-03-23 Richard Kenner - - * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL. - * c-common.c (handle_mode_attribute): Add extra arg to - build_pointer_type_for_mode and build_reference_type_for_mode. - * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW - for INTEGER_CST. - * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL. - Chain pointers via TYPE_NEXT_PTR_TO. - (build_reference_type_for_mode): Similarly. - (build_type_no_quals): Add extra arg to build_pointer_type_for_mode - and build_reference_type_for_mode. - (tree_check4_failed): New function. - * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros. - (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise. - (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW): - Add check. - -2004-03-23 Roger Sayle - - * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when - A is nonnegative or B is nonnegative. Similarly A|B is nonnegative - when both A and B are nonnegative. - (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is - nonzero. - -2004-03-23 Kazu Hirata - - * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST, - VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR. - -2004-03-23 Kazu Hirata - - PR optimization/14669 - * fold-const.c (fold): Only unwiden integer comparisons for equality - and inequality operators, or when the signedness doesn't change. - -2004-03-23 Jakub Jelinek - - * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file. - * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set. - * config/sparc/t-linux: New file. - -2004-03-23 Richard Sandiford - - * gcse.c (can_assign_to_reg_p): New function, split out from... - (want_to_gcse_p): ...here. - (compute_ld_motion_mems): Use can_assign_to_reg_p to validate - the rhs of a store. - -2004-03-22 Diego Novillo - - * c-typeck.c (same_translation_unit_p): Fix pasto. - -2004-03-22 David Edelsohn - - * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New. - (PARAM_MAX_SCHED_REGION_INSNS): New. - * sched-rgn.c: Include params.h - (MAX_RGN_BLOCKS): Delete. - (MAX_RGN_INSNS): Delete. - (too_large): Return bool. Convert to PARAM_VALUE. - * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H). - * doc/invoke.texi (param): Document max-sched-region-blocks and - max-sched-region-insns. - -2004-03-22 Joel Brobecker - - * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE - for base types. - -2004-03-22 Joel Brobecker - - * dwarf2out.c (is_subrange_type): Minor code rework. No behavior - change. - -2004-03-22 Jakub Jelinek - - PR c/14069 - * c-decl.c (finish_struct): Change type of incorrect flexible array - field into error_mark_node. - -2004-03-22 Andrew Pinski - - PR target/14580 - * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols - who are not local for Darwin PIC. - -2004-03-22 Ulrich Weigand - - * regrename.c (regrename_optimize): Set regs_ever_live for all - registers introduced as replacement. - -2004-03-22 Eric Botcazou - - 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. - -2004-03-22 Nathanael Nerode - - * configure.ac: Allow --disable-coverage-flags (for the future benefit - of top level bootstrap, and consistency). Reindent. - * configure: Regenerate. - -2004-03-21 Kazu Hirata - - * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c, - ggc-page.c, integrate.c, var-tracking.c, web.c: Remove - unnecessary casts. - -2004-03-22 Danny Smith - - PR target/14291 - * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for - __MINGW32__. - -2004-03-21 Ulrich Weigand - - * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2 - to nonimmediate_operand. - ("*doloop_di"): Likewise. - -2004-03-21 Alexandre Oliva - - * real.h (struct real_value): Use the same type for all - bitfields. Rename exp to uexp. - (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp. - Adjust all uses of exp... - * builtins.c: ... here, ... - * emit-rtl.c: ... here, and ... - * real.c: ... and here. - -2004-03-21 Gabriel Dos Reis - - * pretty-print.c (pp_base_maybe_space): New function. - * pretty-print.h (pp_base_maybe_space): Declare. - (pp_maybe_space): New macro. - -2004-03-21 Ulrich Weigand - - * config/s390/s390.md ("addti3", "subti3"): New insns and splitters. - -2004-03-21 Ulrich Weigand - - * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead - of using register multiplication cost. - (expand_mult): Adapt choose_mult_variant call. - (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE - of MODE; pass appropriate cost bound. Adjust result when - performing signed multiplication by a negative constant. - Don't use intermediate modes larger than word_mode. - -2004-03-21 Richard Kenner - - * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR. - * emit-rtl.c (component_ref_for_mem_expr): Likewise. - (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR. - * explow.c (expr_size): Likewise. - * expr.h (placeholder_list, find_placeholder): Deleted. - * expr.c (store_constructor): Likewise. - (get_inner_reference): Likewise. Also don't call find_placeholder. - (placeholder_list, find_placeholder): Deleted. - (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR. - (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise. - (highest_pow2_factor, case WITH_RECORD_EXPR): Remove. - * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise. - * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR): - Likewise. - * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise. - (extract_muldiv, case WITH_RECORD_EXPR): Likewise. - * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise. - (contains_placeholder_p): Don't handle WITH_RECORD_EXPR. - Clean up by using first_rtl_op. - (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call. - (substitute_placeholder_in_expr): New function. - * tree.def (WITH_RECORD_EXPR): Deleted. - * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New. - (substitute_placeholder_in_expr): New. - -2004-03-21 Andrew Pinski - - * dojump.c (prefer_and_bit_test): Fix which part of - the and_test is replaced. - -2004-03-21 Joseph S. Myers - - * frontends.texi: Add missing line. - -2004-03-21 Zack Weinberg - Chris Devers - Joseph S. Myers - - * doc/frontends.texi: Rewrite. - * doc/gcc.texi: Update last modification date. - -2004-03-21 Josef Zlomek - - * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug - message before redirecting the edge. - -2004-03-20 Zdenek Dvorak - - * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER - flag. - * explow.c (force_not_mem): Set REG_POINTER flag according to - MEM_POINTER one. - * rtl.h (MEM_POINTER): New macro. - (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related - for MEM_POINTER. - -2004-03-20 Roger Sayle - - PR target/13889 - * cse.c (fold_rtx): Avoid substituting constants into unary - conversion operations. - -2004-03-20 Kazu Hirata - - * fold-const.c (fold): Replace "expr" with "t". - -2004-03-20 Ian Lance Taylor - - PR c/12373 - * c-typeck.c (tagged_types_tu_compatible_p): Don't use - DECL_ORIGINAL_TYPE if there isn't one. - -2004-03-20 Kazu Hirata - - * fold-const.c (fold): Replace "final_type" with "type". - Remove variable "final_type". - -2004-03-20 Kazu Hirata - - * fold-const.c (fold): Constify "type". - Replace "TREE_TYPE (t)" with "type". - -2004-03-20 Kazu Hirata - - * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c, - dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls - via (*targetm.foo) () with targetm.foo (). - -2004-03-20 Joseph S. Myers - - PR other/14630 - * doc/install.texi: Add info directory category and entry. - -2004-03-20 Kazu Hirata - - * fold-const.c (fold): Replace "t" with "tem" where it is used - as a temporary variable. Remove "orig_t" and all of its uses. - -2004-03-20 Kazu Hirata - - * fold-const.c (fold): Remove variable "invert". - Move the handling of relational expressions that can be folded - to a constant ... - (fold_relational_const): ... here. - (tree_expr_nonzero_p): New. - -2004-03-20 Joseph S. Myers - - PR c/14635 - * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to - DEF_GCC_BUILTIN. - -2004-03-20 Richard Sandiford - - * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h. - (GTFILES): Add $(srcdir)/dojump.h. - (gt-dojump.h): New dependency. - * dojump.c (and_reg, and_test, shift_test): New static variables. - (prefer_and_bit_test): New function. - (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1. - -2004-03-20 Kazu Hirata - - * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c, - expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c, - reorg.c, tree.h: Fix comment typos. - -2004-03-19 Kazu Hirata - - * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c, - c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c, - cse.c, dbxout.c, dwarf2out.c, except.c, final.c, - haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c, - sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c, - vmsdbgout.c: Replace calls via (*targetm.foo) () with - targetm.foo (). - -2004-03-19 Ziemowit Laski - - * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt, - vec_dstt, vec_sld, vec_splat): Add prototypes, marked with - always_inline attribute. - * config/rs6000/rs6000.c (altivec_expand_dst_builtin): - Treat expansion as completed even if literal argument is - invalid (so that other expansions are not tried in vain). - -2004-03-19 Kazu Hirata - - * loop-doloop.c (add_test): Replace GEN_INT (0) with - const0_rtx. - -2004-03-19 Kazu Hirata - - * fold-const.c (fold) : Move the handling of constants - ... - (fold_abs_const): ... here. - -2004-03-19 Richard Kenner - - * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly. - -2004-03-19 Denis Chertykov - - PR target/11520 - * config/avr/avr.md ("call_insn"): Handle explicit integer - specially. - (call_value_insn): Likewise. - -2004-03-19 Richard Kenner - - * tree.c (substitute_in_expr): Rewrite to simplify and be more generic. - -2004-03-19 Kazu Hirata - - * fold-const.c (negate_expr): Move the handling of constants - ... - (fold_negate_const): ... here. - -2004-03-19 Richard Kenner - - * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook. - * langhooks.h (struct lang_hooks_for_types): New field hash_types. - * tree.c (debug_no_type_hash): Deleted. - (type_hash_canon): Abort if passed a variant. - Check lang_hooks.types.hash_types. - (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE. - (build_array_type): Remove unnecessary allocation of pointer type. - (build_complex_type): Properly qualify resulting type. - -2004-03-19 Paolo Bonzini - - * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo. - -2004-03-19 Richard Sandiford - - * expmed.c (choose_mult_variant, expand_mult_const): New, split from... - (expand_mult): ...here. - (extract_high_half): New, split out from expand_mult_highpart. - (expand_highpart_optab): Likewise. Don't clobber target prematurely. - (expand_highpart): Evaluate the cost of a shift/add sequence, - then see if any of the specialized optabs are cheaper. - -2004-03-18 Ian Lance Taylor - - * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2. - -2004-03-18 Kaveh R. Ghazi - - * convert.c (convert_to_real): Add more math builtins. - -2004-03-18 Kaveh R. Ghazi - - * convert.c (convert_to_real): Reformat using switch stmt. - -2004-03-18 Mark Mitchell - - * c-common.c (pointer_int_sum): Do not complain about using - pointers to pointers-to-members. - -2004-03-18 Kazu Hirata - - * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that - have moved to the target hooks structure". - -2004-03-18 James E Wilson - - * config/mips/mips.md (type): Split move into arith and fmove. Split - hilo into mthilo and mfhilo. Add trap. Delete icmp. Fix all uses. - * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs): - Likewise. - * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs): - Likewise. - * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo, - rm7_fp_quick): Likewise. - * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo, - rm9k_fquick): Likewise. - * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs): - Likewise. - (ir_sr70_icmp): Delete. - -2004-03-18 Richard Kenner - - * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros. - (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl. - (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros. - (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise. - (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD): - Protect with proper check. - (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise. - (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise. - * tree.c (type_hash_eq): Rewrite to access proper fields for each type. - (tree_check2_failed, tree_check3_failed, tree_check5_failed): New. - * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES. - * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES, - not TYPE_FIELDS. - * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE. - -2004-03-18 Mostafa Hagog - - * gcse.c (eliminate_partially_redundant_loads): Reject change if - dest is set between beginning and current insn. - -2004-03-18 Mark Mitchell - - * c-decl.c (grokdeclarator): Do not complain about redeclaring - visible "static" identifiers "extern" in a local scope. - * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and - post-increments/decrements. - -2004-03-18 Bob Wilson - - * config/xtensa/xtensa.c (current_function_arg_words): Delete. - (xtensa_builtin_saveregs): Use current_function_args_info.arg_words. - (xtensa_va_start): Remove assignment to current_function_arg_words. - -2004-03-18 Richard Sandiford - - * alias.c (record_set): Detect the case where a register is assigned - a new value that has the same base term as the old one. - -2004-03-18 Zdenek Dvorak - - * doloop.c: Removed. - * loop-doloop.c: New file. - * Makefile.in (doloop.o): Remove. - (loop-doloop.o): New. - * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare. - * cfgloopanal.c (get_loop_level): New function. - * loop-iv.c (iv_number_of_iterations): Handle case when loop - is leaved immediatelly. - * loop.c (strength_reduce): Do not call doloop optimization. - * loop.h (LOOP_BCT): Removed. - * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT. - (rest_of_handle_loop2): Call doloop_optimize_loops. - (rest_of_compilation): Test for optimizations moved to - rest_of_handle_loop2. - -2004-03-17 Fariborz Jahanian - - * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size - for mixed mode. - (rs6000_emit_prologue): Ditto. - (rs6000_emit_epilogue): Ditto. - * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT - macro for mixed mode. - -2004-03-18 Jan Hubicka - - * predict.c (propagate_freq): Compute correctly frequency of - EXIT_BLOCK. - -2004-03-17 Eric Christopher - - * builtins.c (apply_args_size): Use reg_raw_mode. - (apply_result_size): Ditto. - -2004-03-17 Ralf Corsepius - - PR target/14620 - * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC. - -2004-03-17 Jakub Jelinek - - * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for - 32-bit builds when defaulting to 32-bit. - -2004-03-17 Jan Hubicka - - * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info - array. - -2004-03-17 James E Wilson - - * config/mips/mips.md (zero_extendsidi2): Add length attribute. - (hazard_nop): Change type to nop. - (type): Split arith into arith, shift, slt, clz. Delete darith. - Fix all uses. Change arith to multi if more than one insn emitted. - * config/mips/5400.md (ir_vr54_arith): Likewise. - * config/mips/5500.md (ir_vr55_arith): Likewise. - * config/mips/7000.md (rm7_int_other): Likewise. - * config/mips/9000.md (rm9k_int): Likewise. - * config/mips/sr71k.md (ir_sr70_arith): Likewise. - -2004-03-17 Joel Brobecker - - * dwarf2out.c (subrange_type_die): Define new variable "subtype" - to hold the subtype tree instead of recomputing it several times. - -2004-03-17 Kazu Hirata - - * config/mn10300/mn10300.c (notice_update_cc): Don't handle - CC_INVERT. - * config/mn10300/mn10300.md (cc): Remove "invert". - -2004-03-16 Kaveh R. Ghazi - - * builtins.c (integer_valued_real_p): Add builtin rint. - (fold_builtin): Likewise. - * convert.c (convert_to_real): Likewise. - - * convert.c (convert_to_real): Fix typos in `long double' - builtins. - -2004-03-16 Mark Mitchell - - PR c++/14481 - * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly - generated COMPOUND_EXPRs. - -2004-03-16 Ralf Corsepius - - * config/h8300/t-rtems (h8300-*-rtems*): New. - -2004-03-16 Eric Christopher - - * doc/cppopts.texi(fwide-exec-charset): Fix typo. - -2004-03-16 Kazu Hirata - - * config/i386/i386-protos.h: Add a prototype for - ix86_reverse_condition. - * config/i386/i386.c (ix86_reverse_condition): New. - * config/i386/i386.h (REVERSE_CONDITION): Use - ix86_reverse_condition. - * config/i386/i386.md: Use ix86_reverse_condition instead of - REVERSE_CONDITION. - -2004-03-16 J. Brobecker - - * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR. - -2004-03-16 Nathanael Nerode - - PR bootstrap/12974 - * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly. - -2004-03-16 Paolo Bonzini - - * c-common.c (c_common_type_for_mode): Build vector types on - demand. - (handle_mode_attribute): Deprecate using the mode attribute - to create vector types. Fix indentation. - (vector_type_node_list): Remove. - (handle_vector_size_attribute): Create vector types on demand. - Strip a NON_LVALUE_EXPR from the attribute if there is one. - * c-typeck.c (comptypes): Make vector types compatible if they - have the same underlying mode. - (convert_for_assignment): Use comptypes to convert between - vector types. - * tree.c (build_common_tree_nodes_2): Do not create vector types. - * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary - vector types. - * tree.h: Remove vector types. - * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise. - * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise. - (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node, - V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals. - * doc/extend.texi (Vector Types): Document how to use the - vector_size attribute to create vectors, rather than mode. - - * config/arm/mmintrin.h: Use vector_size attribute, not mode. - * config/i386/emmintrin.h: Likewise. - * config/i386/mmintrin.h: Likewise. - * config/i386/xmmintrin.h: Likewise. - * config/sh/ushmedia.h: Likewise. - -2004-03-16 Kazu Hirata - - * config/freebsd-spec.h, config/arc/arc-protos.h, - config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h, - config/arm/linux-gas.h, config/arm/semi.h, - config/cris/cris-protos.h, config/i386/xm-djgpp.h, - config/ia64/freebsd.h, config/mips/7000.md, - config/mips/9000.md, config/ns32k/ns32k-protos.h, - config/sparc/pbd.h: Update copyright. - -2004-03-16 Ralf Corsepius - - PR target/14577 - * config.gcc: Switch sh-*-rtems* to ELF. Add sh-*-rtemscoff. - -2004-03-16 Paolo Bonzini - - * combine.c (combine_simplify_rtx): Remove the "last" - parameter and its documentation. Adjust recursive calls. - (simplify_logical): Always perform the only simplification - controlled by "last", if the simplified expression is - actually different. - (try_combine): Do not pass the "last" parameter to - combine_simplify_rtx. - -2004-03-16 Richard Sandiford - - PR target/14599 - * config/mips/mips.md (UNSPEC_GP): New constant. - * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain - an UNSPEC instead of (reg $gp). - (mips16_gp_pseudo_reg): Change accordingly. - (print_operand): Print $gp directly when handling CONST_GP_P. - -2004-03-16 Richard Zidlicky - - * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux. - * longlong.h: Make code 68060 clean when compiling for m68060. - -2004-03-16 Richard Zidlicky - - * config/m68k/m68k.md: Fix constraints for bitfield instructions. - * doc/md.texi: Clarify description of "i" constraint. - -2004-03-15 James E Wilson - - * config/mips/mips.md (type): Split load into load, fpload, fpidxload. - Split store into store, fpstore, fpidxstore. Fix all uses. - * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore): - Likewise. - * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise. - * config/mips/7000.md (rm7_ld, rm7_st): Likewise. - * config/mips/9000.md (rm9k_load, rm9k_store): Likewise. - * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload, - ir_sr70_fstore): Likewise. - -2004-03-15 Richard Henderson - - PR middle-end/14535 - * except.c (collect_one_action_chain): Record action for cleanup - outer of exception spec. - -2004-03-15 Ian Lance Taylor - - * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address): - Fix the check for abort and only do the mmap if we can. - -2004-03-15 Eric Botcazou - - * config/sparc/sparc.h: Rework comments about the code model - in 64-bit environment and the mode 'Pmode'. - * doc/invoke.texi (SPARC options): Rework description of the - different code models supported in 64-bit environment. - -2004-03-15 Kazu Hirata - - * defaults.h (REVERSIBLE_CC_MODE): Define. - * jump.c (reversed_comparison_code_parts): Don't check if - REVERSIBLE_CC_MODE is defined. - -2004-03-15 Kazu Hirata - - * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c, - et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h, - hosthooks.h, params.h, ra-colorize.c, web.c, - config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c, - config/avr/avr-protos.h, config/avr/avr.md, - config/fr30/fr30-protos.h, config/fr30/fr30.md, - config/h8300/fixunssfsi.c, config/i386/darwin.h, - config/i386/freebsd.h, config/i386/freebsd64.h, - config/ia64/hpux.h, config/ia64/unwind-ia64.c, - config/ip2k/libgcc.S, config/m32r/xm-m32r.h, - config/mmix/mmix-modes.def, config/ns32k/netbsd.h, - config/ns32k/ns32k.md, config/pa/pa64-hpux.h, - config/pa/pa64-regs.h, config/rs6000/aix41.h, - config/rs6000/aix43.h, config/rs6000/host-darwin.c, - config/sparc/aout.h, config/sparc/freebsd.h, - config/sparc/litecoff.h, config/vax/vax-protos.h, - doc/hostconfig.texi, doc/include/gcc-common.texi: Update - copyright. - -2004-03-15 Paul Brook - - * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp. - -2004-03-15 Gabriel Dos Reis - - * c-pretty-print.c (pp_c_semicolon): Fix formatting. - (pp_c_cv_qualifier): Document. - (pp_c_space_for_pointer_operator): Likewise. - (pp_c_integer_constant): Likewise. - (pp_c_identifier): Likewise. - (pp_c_init_declarator): Don't print function body. - -2004-03-14 Joseph S. Myers - - * doc/contrib.texi, doc/extend.texi, doc/gcov.texi, - doc/install.texi, doc/invoke.texi, doc/makefile.texi, - doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize - "gcc", "g++" and "g77" or mark up with appropriate markup. Adjust - wording and grammar. - -2004-03-14 Roger Sayle - - * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) () - with lang_hooks.foo (). - * builtins.c (expand_builtin_va_arg): Likewise. - * c-common.c (fname_as_string, c_common_truthvalue_conversion, - c_common_type_for_mode, c_common_nodes_and_builtins, - handle_mode_attribute, handle_vector_size_attribute): Likewise. - * c-convert.c (convert): Likewise. - * c-format.c (check_format_types): Likewise. - * c-objc-common.c (c_tree_printer): Likewise. - * c-typeck.c (build_unary_op, build_conditional_expr, - build_binary_op): Likewise. - * calls.c (try_to_integrate, expand_call, - emit_library_call_value_1): Likewise. - * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p): - Likewise. - * cgraphunit.c (record_call_1, cgraph_analyze_function, - cgraph_expand_function): Likewise. - * convert.c (convert_to_pointer, convert_to_integer): Likewise. - * coverage.c (build_fn_info_type, build_ctr_info_type, - build_gcov_info, create_coverage): Likewise. - * dbxout.c (dbxout_init): Likewise. - * diagnostic.c (diagnostic_report_current_function): Likewise. - * dojump.c (do_jump): Likewise. - * dwarf2out.c (dwarf2_name): Likewise. - * except.c (init_eh): Likewise. - * explow.c (expr_size, int_expr_size): Likewise. - * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add): - Likewise. - * expr.c (store_expr, store_constructor, safe_from_p, - expand_expr_real, do_store_flag, try_casesi): Likewise. - * function.c (push_function_context_to, pop_function_context_from, - free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type, - put_var_into_stack, allocate_struct_function, current_function_name): - Likewise. - * integrate.c (copy_decl_for_inlining, expand_inline_function): - Likewise. - * langhooks.c (lhd_clear_binding_stack, write_global_declarations, - lhd_print_error_function): Likewise. - * opts.c (handle_option, decode_options): Likewise. - * passes.c (open_dump_file): Likewise. - * print-tree.c (print_node): Likewise. - * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands, - expand_decl_cleanup, emit_case_nodes): Likewise. - * stor-layout.c (variable_size): Likewise. - * toplev.c (announce_function, wrapup_global_declarations, - check_global_declarations, compile_file, default_tree_printer, - process_options, lang_dependent_init, finalize): Likewise. - * tree-dump.c (dequeue_and_dump): Likewise. - * tree-inline.c (remap_decl, remap_block, copy_body_r, - initialize_inlined_parameters, declare_return_variable, - inlinable_function_p, expand_call_inline, optimize_inline_calls, - walk_tree, copy_tree_r): Likewise. - * tree-optimize.c (tree_rest_of_compilation): Likewise. - * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp, - unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl, - variably_modified_type_p, dump_tree_statistics): Likewise. - * varasm.c (assemble_variable, compare_constant, copy_constant, - force_const_mem, compute_reloc_for_constant, output_constant, - output_addressed_constants, initializer_constant_valid_p): Likewise. - -2004-03-14 Kelley Cook - - * doc/install.texi: Make autoconf 2.13 the exception, not the rule. - -2004-03-14 Andreas Tobler - - * doc/install.texi: Reflect autoconf and automake version for - libffi. Update autoconf version to 2.59. - -2004-03-13 Roger Sayle - - * fold-const.c (negate_expr, operand_equal_for_comparison_p, - optimize_bit_field_compare, decode_field_reference, all_ones_mask_p, - make_range, build_range_check, fold_range_test, unextend, - constant_boolean_node, fold_binary_op_with_conditional_arg, - fold_truthop, fold_mathfn_compare, fold_inf_compare, - fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) () - with lang_hooks.foo (). - -2004-03-14 Richard Earnshaw - - * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment. - -2004-03-13 Dara Hazeghi - - * doc/install.texi: Note status of -fnew-ra. - -2004-03-13 Eric Botcazou - - 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. - -2004-03-13 Jakub Jelinek - - PR target/14533 - * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC - other than UNSPEC_GOTOFF. - -2004-03-13 Richard Earnshaw - - * arm.c (arm_legitimate_address_p): New argument, OUTER. Pass through - to arm_legitimate_index_p. Update all callers with SET as default - value. - (arm_legitimate_index_p): New argument, OUTER. Restrict the index - range if OUTER is a sign-extend operation on QImode. Correctly - reject shift operations on sign-extended QImode addresses. - (bad_signed_byte_operand): Delete. - (arm_extendqisi_mem_op): New function. - * arm.h (EXTRA_CONSTRAINT_ARM): Delete. Replace with... - (EXTRA_CONSTRAINT_STR_ARM): ... this. Handle extended address - constraints. - (CONSTRAINT_LEN): New. - (EXTRA_CONSTRAINT): Delete. Replace with... - (EXTRA_CONSTRAINT_STR): ... this. - (PREDICATE_CODES): Remove bad_signed_byte_operand. - * arm.md (extendqihi_insn): Use new constraint Uq. Rework. Length - is now always default. - (define_splits for bad sign-extend loads): Delete. - (arm_extendqisi, arm_extendqisi_v5): Likewise. - * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp): - Rework 'U' constraint to 'Uv'. - * arm-protos.h: Remove bad_signed_byte_operand. Add - arm_extendqisi_mem_op. - * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv). - Add Uq constraint. - -2004-03-13 Alan Modra - - * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS - with targetm version. - - PR target/14567 - * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete. - (HARD_REGNO_MODE_OK): Disallow TFmode for fp31. - * config/rs6000/rs6000.c (rs6000_arg_size): New function. - Update all users of RS6000_ARG_SIZE. - (function_arg_advance): Count fregno using mode size. - (function_arg): Handle long double split over regs and memory. - (function_arg_partial_nregs): Likewise. - (rs6000_va_arg): Repackage complex args. - -2004-03-13 Dean Ferreyra - - PR target/14047 - * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter. - (avr_insert_attributes): Pass "attributes" to avr_progmem_p. - * config/avr/avr-protos.h (avr_progmem_p): Change prototype. - -2004-03-12 Jakub Jelinek - - * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add - prototype. - * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New. - * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define. - -2004-03-12 Andrew Pinski - - * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address): - Use ret instead of result. Use addr instead of base. - -2004-03-12 David Edelsohn - - * doc/install.texi (*-ibm-aix*): Document assembler and achiver - fixes required by libstdc++ and update installation instructions - for libstdc++.a. - -2004-03-12 Danny Smith - - * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip - leading '@' on fastcall symbols before stripping suffix. - -2004-03-12 Roger Sayle - - * combine.c (unmentioned_reg_p): New function to check whether an - expression is a "specialization" of another, i.e. that there are - no registers or memory references mentioned in the first that don't - appear in the second. - (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p. - (combine_instructions): Also try combining instructions using the - REG_EQUAL note from a preceding log-linked instruction. - -2004-03-12 Roger Sayle - - * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63. - -2004-03-12 Matt Austern - - * target.h (struct gcc_target): New target hook, unwind_label. - * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook. - * output.h (default_emit_unwind_label): New function. - * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro. - (TARGET_USES_WEAK_UNWIND_INFO): New target macro. - (TARGET_SUPPORTS_HIDDEN): New target macro. - * dwarf2out.c (struct dw_fde_struct): Add field for function decl - that corresponds to this FDE. - (FRAME_BEGIN_LABEL): Allow target to override default label. - (output_call_frame_info): If FDEs are linknonce, then use extra - indirection for FDE encoding, output a label for each FDE, and - output an empty label for each function without an FDE. - (dwarf2out_begin_prologue): Set up decl field when creating an FDE. - * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for - decls with DECL_ONE_ONLY set, if that macro is defined. - (make_decl_one_only): Don't use DECL_COMMON if we're compiling - for a SUPPORTS_ONE_ONLY target. - * config/darwin-protos.h (darwin_unique_section): Declare. - (darwin_asm_named_section): Likewise. - (darwin_section_type_flags): Likewise. - (darwin_non_lazy_pcrel): Likewise. - (darwin_emit_unwind_label): Likewise. - (darwin_make_decl_one_only): Likewise. - * config/darwin.c (machopic_finish): Get rid of tweak that - eliminate stubs for symbols that are defined. - (darwin_encode_section_info): Don't treat weak functions as defined. - (darwin_make_decl_one_only): Define. - (darwin_asm_named_section): Likewise. - (darwin_section_type_flags): Likewise. - (darwin_unique_section): Likewise. - (darwin_emit_unwind_label): Likewise. - (darwin_non_lazy_pcrel): Likewise. - (darwin_asm_output_dwarf_delta): Difference between two labels is - local only if both labels are local. - * config/darwin.h (MAKE_DECL_ONE_ONLY): Define. - (ASM_MAKE_LABEL_LINKONCE): Likewise. - (TARGET_SUPPORTS_HIDDEN): Likewise. - (TARGET_USES_WEAK_UNWIND_INFO): Likewise. - (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise. - (FRAME_BEGIN_LABEL): Likewise. - (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect. - (ASM_DECLARE_FUNCTION_NAME): Likewise. - (darwin_eh_frame_section): Give __eh_frame section the coalesced flag. - (TARGET_ASM_UNIQUE_SECTION): Define. - (EH_FRAME_SECTION_NAME): Define. - (EH_FRAME_SECTION_ATTR): Likewise. - (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise. - (TARGET_ASM_NAMED_SECTION): Likewise. - (TARGET_SECTION_TYPE_FLAGS): Likewise. - * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO, - TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN, - TARGET_ASM_EMIT_UNWIND_LABEL. - -2004-03-12 Kaveh R. Ghazi - - * builtins.c (expand_builtin_mathfn): Add pow10* to the - existing exp10* case. - (expand_builtin): Likewise. - -2004-03-12 Eric Botcazou - - * doc/tm.texi (registers) : Add - entry for REGMODE_NATURAL_SIZE. - -2004-03-12 Richard Henderson - - PR target/14547 - * target.h (struct gcc_target): Move calls substructure before - booleans. Add split_complex_arg. - * function.c (assign_parms, split_complex_args): Use it. - * calls.c (expand_call): Likewise. - (split_complex_values): Likewise. Check for splittable types - before allocating memory. - (split_complex_types): Likewise. - * system.h (SPLIT_COMPLEX_ARGS): Poison. - * expr.h (SPLIT_COMPLEX_ARGS): Remove. - * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New. - * config/alpha/alpha.c (alpha_split_complex_arg): New. - (TARGET_SPLIT_COMPLEX_ARG): New. - * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove. - * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New. - (rs6000_override_options): Zap it for non-AIX. - (rs6000_function_value): Use targetm.calls.split_complex_arg. - * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove. - * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New. - * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove. - * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old - SPLIT_COMPLEX_ARGS entry. - -2004-03-11 Richard Henderson - - * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New. - (alpha_lookup_xfloating_lib_func): Use them, return rtx. - (alpha_emit_xfloating_arith): Update to match. - (alpha_emit_xfloating_compare): Likewise. - (alpha_emit_xfloating_cvt): Likewise. - (alpha_emit_xfloating_libcall): Take already built symbol, - mark call const. - * config/alpha/alpha.md (extendsftf2, extenddftf2): Take - op1 in a register. - -2004-03-11 Richard Henderson - - PR target/14539 - * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128. - - * simplify-rtx.c (simplify_relational_operation): Fix typo. - -2004-03-11 Richard Henderson - - PR middle-end/14477 - * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER. - -2004-03-11 Ulrich Weigand - - PR target/14262 - * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not - defined, pass small BLKmode values in registers in the low-order part. - -2004-03-11 Ulrich Weigand - - * combine.c (if_then_else_cond): Check for NULL return value of - simplify_gen_subreg. - -2004-03-11 Richard Sandiford - - PR target/14496 - * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for - TARGET_SINGLE_FLOAT. - -2004-03-11 Steve Ellcey - - * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef. - * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define. - * config/ia64/ia64.c (ia64_init_libfuncs): New. - (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs. - -2004-03-11 Roger Sayle - - * fold-const.c (negate_expr_p) : We can optimize - -((int)X>>C) where C is an integer constant one bit less than the - size of X into (unsigned)X>>C. Similarly for unsigned->signed. - (negate_expr) : Implement the above transformations. - - * simplify-rtx.c (simplify_unary_operation): Also implement the - above transformations at the RTL level. - -2004-03-11 Alan Modra - - * real.c (encode_ibm_extended): Do round low word. - -2004-03-11 Ben Elliston - - * config/arm/arm.md (is_xscale): Comment this attribute and move - it a bit further up in the file, closer to related attributes. - -2004-03-11 Eric Botcazou - - * config/host-solaris.c (sol_gt_pch_use_address): Add - missing terminating marker to comment. - -2004-03-11 Richard Sandiford - - * config/mips/mips.md: Use move_operand in splitters for 64-bit moves. - (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates. - (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16) - (*movsf_mips16, *movdf_mips16): Name unnamed patterns. Use - move_operand as source predicate in all cases. - (*movdi_32bit): Renamed from movdi_internal. Remove 'F' constraint. - Test reg_or_0_operand. Use move_operand as source predicate. - (*movdi_64bit): Renamed from movdi_internal2. Test reg_or_0_operand. - (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16. - (*movsi_internal): Renamed from movsi_internal. Test reg_or_0_operand. - (movhi, movqi, movsf, movdf): Use mips_legitimize_move. - (*movhi_internal): Renamed from movhi_internal. Test reg_or_0_operand. - Use move_operand as source predicate. Remove 'K' constraint. - (*movqi_internal): Likewise movqi_internal. - (*movsf_hardfloat): Renamed from movsf_internal1. Test - reg_or_0_operand. Use move_operand as source predicate. - (*movsf_softfloat): Likewise movsf_internal2. - (*movdf_hardfloat_64bit): Likewise movsf_internal1a. - (*movdf_hardfloat_32bit): Likewise movsf_internal1b. - (*movdf_softfloat): Likewise movdf_internal2. - * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs - for DImode if !TARGET_64BIT. - (mips_legitimize_move): Simplify accordingly. - -2004-03-11 Josef Zlomek - - PR/14362 - * var-tracking.c (struct variable_def): Added field refcount. - (variable_htab_free): Decrease the refcount and delete variable - only if there are no more references. - (unshare_variable): New function. - (vars_copy_1): Increase refcount instead of copying the variable. - (variable_union): Share the variables where possible, unshare - the variables if needed. - (variable_different_p): Return false if var1 and var2 are - the same structure. - (variable_was_changed): Init the refcount of new variable. - (set_frame_base_location): Unshare variable if needed. - (set_variable_part): Init the refcount of new variable. - Unshare the variables if needed. - (delete_variable_part): Unshare the variables if needed. - (emit_notes_for_differences_1): Init the refcount of new variable. - (vt_add_function_parameters): Do not add function parameters to - IN set of ENTRY_BLOCK_PTR because it is unused anyway. - (vt_initialize): Do not add frame_base_decl to IN set of - ENTRY_BLOCK_PTR because it is unused anyway. - -2004-03-11 Josef Zlomek - - * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations. - (vars_copy): Likewise. - (variable_union): Likewise. - (set_variable_part): Likewise. - (delete_variable_part): Likewise. - -2004-03-11 Kazu Hirata - - * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h, - ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c, - config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c, - config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h, - config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md, - config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h, - config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h, - config/pdp11/pdp11.h, config/rs6000/rs6000.c, - config/stormy16/stormy16.c: Fix comment typos and formatting. - -2004-03-11 Nathanael Nerode - - * configure: Regenerate, since I forgot to while committing Paolo's - changes. - -2004-03-08 Paolo Bonzini - - PR ada/14131 - Move language detection to the top level. - * configure.ac: Remove code to detect languages, - it now lives exclusively in the top level. - * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the - top level, renamed to ACX_PROG_GNAT. - -2004-03-10 Richard Henderson - - * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address - extra arguments. - * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj - and host_xmake_file fragments. - * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change. - (gt_pch_restore): Similarly for gt_pch_use_address. - (default_gt_pch_get_address): New. - (mmap_gt_pch_get_address): Split out of gt_pch_save. - (default_gt_pch_use_address): Split out of gt_pch_restore. - (mmap_gt_pch_use_address): Likewise. - * hooks.c (hook_voidp_size_t_null): Remove. - (hook_bool_voidp_size_t_false): Remove. - * hooks.h: Likewise. - * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the - default_ or mmap_ definitions. - (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise. - * hosthooks.h (struct host_hooks): Update gt_pch_get_address - and gt_pch_use_address. - * config/host-linux.c, config/host-solaris.c: New files. - * config/x-linux, config/x-solaris: New files. - * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address): - Update for changed definition. - (darwin_rs6000_gt_pch_use_address): Likewise. - * doc/hostconfig.texi: Update docs. - -2004-03-10 Richard Henderson - - PR c/14517 - * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers - except for pedantic c90 mode. - -2004-03-10 Kelley Cook - - * configure.ac: Bump AC_PREREQ to 2.59. - * configure: Regenerate. - -2004-03-10 Uros Bizjak - - * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2. - (exp10_optab, exp2_optab): Define corresponding macros. - * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab. - * genopinit.c (optabs): Implement exp10_optab and exp2_optab - using exp10?f2 and exp2?f2 patterns. - * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L} - using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab. - (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L} - using expand_builtin_mathfn if flag_unsafe_math_optimizations is set. - - * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2, - exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l, - exp2, exp2f and exp2l built-ins as inline x87 intrinsics. - -2004-03-10 Anthony Green - - * doc/invoke.texi (ARM Options): Fix -mpfu typo. - -2004-03-10 David Edelsohn - - * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ... - (TARGET_OS_AIX_CPP_BUILTINS): this. Conditionally define - __LONGDOUBLE128. - * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use - TARGET_OS_AIX_CPP_BUILTINS. - * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same. - * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same. - * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same. - * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert - previous change. - -2004-03-10 Kaveh R. Ghazi - - * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases. - -2004-03-10 David Edelsohn - - * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define - __LONGDOUBLE128 on AIX. - -2004-03-10 Andrew Haley - - PR optimization/14381 - * function.c (expand_function_end): Emit a blockage insn before - the epilogue when -fnon-call-exceptions is used. - - * except.c (expand_start_all_catch): Make comment more accurate. - -2004-03-08 Joel Sherrill - - PR target/14480 - * config/rs6000/t-rtems: Add missing file on branch. - -2004-03-10 Ulrich Weigand - - * dbxout.c (dbxout_symbol_location): Do not output references - to optimized-out constant pool symbols. - -2004-03-10 Andreas Schwab - - * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable - twon34_r. - -2004-03-09 James E Wilson - - * alias.c (alias_sets_might_conflict_p): New. - * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1. - * common.opt (Wstrict-aliasing=): New. - * flags.h (warn_strict_aliasing): Change type to int. - * opts.c (warn_strict_aliasing): Change type to int. - (common_handle_option): Handle OPT_Wstrict_aliasing_. - * tree.h (alias_sets_might_conflict_p): Declare it. - * doc/invoke.tex (-Wstrict-aliasing=2): Document it. - -2004-03-10 Roman Zippel - - PR bootstrap/12371 - * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer. - (CALL_USED_REGISTERS): Likewise. - (REG_CLASS_CONTENTS): Likewise. - (REG_ALLOC_ORDER): New. - (REGNO_REG_CLASS): Use regno_reg_class. - * config/m68k/m68k.c: Add regno_reg_class array. - -2004-03-09 Steve Ellcey - - * config/ia64/ia64.md (divsi3): Fix algorithm. - (udivsi3): Ditto. - (setf_exp_xf): Remove '*' from name. - * testsuite/gcc.dg/20040309-1.c: New test. - -2004-03-09 Ian Lance Taylor - - * system.h (SUNOS4_SHARED_LIBRARIES): Poison. - * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code. - * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define. - * config/sparc/sparc.c (sparc_aout_select_section): Remove. - (sparc_aout_select_rtx_section): Don't check - SUNOS4_SHARED_LIBRARIES. - * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define. - -2004-03-10 Hans-Peter Nilsson - - PR other/14474 - * doc/md.texi (Pattern Ordering, Dependent Patterns) - (Jump Patterns, Looping Patterns): Wrap in separate "@ifset - INTERNALS". - -2004-03-09 Zack Weinberg - - * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define. - (LIBGCC_SPEC): Update to match. - -2004-03-09 Zack Weinberg - - * c-decl.c (last_function_parms, last_function_parm_tags) - (last_function_parm_others, current_function_parms) - (current_function_parm_tags, current_function_parm_others): - Delete. - (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS): - New macros. - (grokdeclarator): For function definitions, save the arg-info - block from the declarator in DECL_ARGUMENTS. - (grokparms): Do not write to last_function_parm*. Use ARG_INFO_* - macros to operate on arg-info block. Can assume ARG_INFO_PARMS - contains only PARM_DECLs. Improve diagnostics. - (get_parm_info): Use ARG_INFO_* macros. Improve comments and - diagnostics. Disable some expensive checks if not ENABLE_CHECKING. - (store_parm_decls_newstyle): Take the function to operate on, - and an arg-info block, as arguments; don't get anything from - current_function_* globals. - (store_parm_decls_oldstyle): Likewise. - (store_parm_decls): Pass fndecl and its arg-info block down to - store_parm_decls_newstyle/oldstyle. Send functions with empty - argument lists through store_parm_decls_newstyle to reduce - overhead. - (pushdecl): Comment on the problems with the call to copy_node. - Clear DECL_ARGUMENTS of the old node after copying it, if it - is an arg-info block instead of a chain of decls. - (start_function): Do not manipulate current_function_parm* or - last_function_parm*. - -2004-03-09 Roger Sayle - Andrew Pinski - - * ifcvt.c (noce_try_sign_mask): New function to transform - "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z". - (noce_process_if_block): Call noce_try_sign_mask. - -2004-03-09 Andrew Pinski - - * c-typeck.c (tagged_types_tu_compatible_p): - Fix typo. - -2004-03-09 Roger Sayle - - * simplify-rtx.c (simplify_const_relational_operation): New function - renamed from simplify_relational_operation. - (simplify_relational_operation): Change prototype to accept an - additional mode argument. Call simplify_const_relational_operation. - (simplify_gen_relational): Update simplify_relational_operation call. - (simplify_ternary_operation): Update simplify_relational_operation - subroutine call to use simplify_const_relational_operation instead. - - * rtl.h (simplify_const_relational_operation): Prototype here. - (simplify_relational_operation): Add addtional mode argument. - - * combine.c (combine_simplify_rtx): Update calls to - simplify_relational_operation. - (simplify_set): Likewise. - (gen_binary): Likewise. - * cse.c (fold_rtx): Likewise. - * dojump.c (compare_from_rtx): Likewise. - (do_compare_rtx_and_jump): Likewise. - * integrate.c (subst_constants): Likewise. - * unroll.c (simplify_cmp_and_jump_insns): Likewise. - -2004-03-09 Kazu Hirata - - * config/m32r/m32r.md: Remove all define_peephole's. - -2004-03-09 Alan Modra - - * config/rs6000/rs6000.md: Remove trailing whitespace. - -2004-03-08 Eric Christopher - - * Makefile.in (site.exp): Add libiconv variable definition. - -2004-03-09 Hans-Peter Nilsson - - * configure: Regenerate for config/accross.m4 correction. - -2004-03-08 Joel Sherrill - - PR target/14480 - * config/rs6000/t-rtems: Add missing file on branch. - -2004-03-08 Roger Sayle - - 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. - -2004-03-08 Ulrich Weigand - - * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber. - ("*extendqisi2_short_displ"): Likewise. - -2004-03-08 Kazu Hirata - - * config/pdp11/pdp11.c (comparison_operator_index): Remove. - (comp_operator): Likewise. - * config/pdp11/pdp11-protos.h: Remove corresponding - prototypes. - -2004-03-08 Eric Botcazou - - * expr.c (highest_pow2_factor_for_type): Rename into - highest_pow2_factor_for_target. Use DECL_ALIGN instead of - TYPE_ALIGN when the target is a COMPONENT_REF. - (expand_assignment): Ajust call to highest_pow2_factor_for_type. - -2004-03-08 Alan Modra - - * config/rs6000/rs6000.c: Formatting fix. - (legitimate_offset_address_p): Correct offset range check. - - * config/rs6000/rs6000.c (rs6000_override_options): Don't override - -msoft-float by -mcpu. Consolidate similar code for MASK_MULTIPLE - and MASK_STRING. - -2004-03-07 Aldy Hernandez - - * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power - for little endian. - ("ashrdi3_no_power"): Disable for little endian. - (ashrdi3): Same. - -2004-03-07 Kaveh R. Ghazi - - * fold-const.c (tree_expr_nonnegative_p): Reformat checks for - builtins. - -2004-03-08 Hans-Peter Nilsson - - PR target/14471 - * configure.ac (Target-specific assembler checks) : New - case, checking for -no-mul-bug-abort option. - * configure, config.in: Regenerate. - * 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) : New case. - -2004-03-08 Alan Modra - - PR debug/11983 - * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to - dw_val_class_vec. Replace use throughout file. - (dw_float_const): Delete. - (dw_vec_const): New. - (dw_val_struct_union): Rename val_float to val_vec. Replace use - throughout file. - (add_AT_vec): Rename from add_AT_float. Add elt_size param. - (same_dw_val_p): Adjust vec comparison. Use memcmp. - (size_of_die): Adjust dw_val_class_vec sizing. - (output_die): Output dw_val_class_vec. - (insert_int, extract_int, insert_float): New functions. - (add_const_value_attribute): Use insert_float for CONST_DOUBLE. - Handle CONST_VECTOR. - (add_location_or_const_value_attribute): Handle CONST_VECTOR. - -2004-03-07 Aldy Hernandez - - * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and - AltiVec abi cannot co-exist. - - * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same. - -2004-03-07 Jan Hubicka - - * except.c (emit_to_new_bb_before): Break fallthru edges. - -2004-03-07 Stephane Carrez - - * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12. - ("*lshrsi3"): Also accept an immediate for 68HC12. - ("*ashrsi3_const"): Likewise. - ("*ashrsi3"): Likewise. - ("*ashlsi3_const"): Likewise. - ("*ashlsi3"): Likewise. - ("cmphi_1_hc12"): Compare two hard register by pushing them and - comparing with a pop; don't use a split for that. - ("cmphi split"): Disable compare split for 68HC12. - - * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate - the status operands if they have side effects. - -2004-03-07 Kazu Hirata - - * defaults.h (LEGITIMIZE_ADDRESS): Provide a default - definition. - * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h, - config/h8300/h8300.h, config/ia64/ia64.h, - config/mcore/mcore.h, config/mmix/mmix.h, - config/ns32k/ns32k.h, config/pdp11/pdp11.h, - config/stormy16/stormy16.h, config/v850/v850.h, - config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove. - * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default - definition. - -2004-03-07 Roger Sayle - - * fold-const.c (fold) : Fold x | x as x. - : Fold x ^ x as zero. - : Fold x & x as x. - -2004-03-07 Roger Sayle - - * fold-const.c (fold) : Rewrite optimization to transform - "foo++ == const" into "++foo == const+incr". - -2004-03-07 Richard Sandiford - - * config/mips/mips.c (mips_in_small_data_p): Return false if - TARGET_ABICALLS. - -2004-03-06 Stephane Carrez - - * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push - the stack register. - (expand_prologue): Don't make an interrupt or a trap handler a far - symbol. - (m68hc11_initial_elimination_offset): Likewise. - -2004-03-06 Richard Henderson - - * config/alpha/alpha.c (alpha_in_small_data_p): False for functions. - -2004-03-06 Kazu Hirata - - * config/ns32k/ns32k-protos.h: Add a prototype for - ns32k_notice_update_cc. - * config/ns32k/ns32k.c (ns32k_notice_update_cc): New. - * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call - ns32k_notice_update_cc. - -2004-03-06 Ulrich Weigand - - * config/s390/s390.md ("load_multiple", "*load_multiple_di", - "*load_multiple_si"): Allow only if reload_completed. - ("store_multiple", "*store_multiple_di", "*store_multiple_si"): - Likewise. - -2004-03-06 Kazu Hirata - - * config/vax/vax-protos.h: Add a prototype for - vax_notice_update_cc. - * config/vax/vax.c (vax_notice_update_cc): New. - * config/vax/vax.h (NOTICE_UPDATE_CC): Call - vax_notice_update_cc. - -2004-03-06 David Edelsohn - - * collect2.c (main): Only export initfunc and finifunc if - LD_INIT_SWITCH not defined. - (scan_prog_file): Only export constructors and destructors if - LD_INIT_SWITCH not defined. Only export symbols not found in - shared objects. - -2004-03-06 John David Anglin - - * pa.md (icacheflush): Reorder operands to make match_scratch operand - last. - * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument - from calls to gen_icacheflush. - -2004-03-06 Richard Henderson - - * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New. - (TARGET_LONG_DOUBLE_128): New. - (TARGET_SWITCHES): Add long-double-{128,64}. - (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128. - (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128. - (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New. - (WIDEST_HARDWARE_FP_SIZE): New. - (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__. - * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128 - if TARGET_VAX_FLOAT. - * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove. - (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128. - -2004-03-06 Richard Henderson - - * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix - botched rtx class conversion. - -2004-03-06 Kaveh R. Ghazi - - * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P, - BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros. - - * builtins.c (fold_builtin_logarithm, fold_builtin): Use new - macros. - * fold-const.c (fold_mathfn_compare, fold): Likewise. - -2004-03-06 Eric Botcazou - - PR target/14343 - * config/i386/i386.md (movv2di_internal): Conditionalize on - TARGET_SSE, not TARGET_SSE2. - -2004-03-05 Chris Demetriou - - * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete - duplicated line. - -2004-03-05 Kaveh R. Ghazi - - * builtins.c: Consistently use logN not log* in comments. - -2004-03-05 Andreas Krebbel - - * rtl.h (mem_expr_equal_p): Function prototype added. - * cfgcleanup.c (merge_memattrs): New function. - (flow_find_cross_jump): Call merge_memattrs for matching insns. - * emit-rtl.c (mem_expr_equal_p): New function. - -2004-03-05 Ziemowit Laski - - * objc/objc-act.c (synth_module_prologue): Const-qualify - objc_selector type if using the GNU runtime; fix generated - signatures for objc_msg_lookup and objc_msg_lookup_super - to match what GNU ObjC headers provide; reformat and clean up. - (synth_self_and_ucmd_args): Use previously constructed (and - hence possibly const-qualified) objc_selector type. - -2004-03-05 Kazu Hirata - - * doc/tm.texi (HARD_REGNO_RENAME_OK): Document. - -2004-03-05 Jason Merrill - - * tree.h (TYPE_HASH): Use TYPE_UID. - (TREE_HASH): New macro with old definition of TYPE_HASH. - * tree.c (build_type_attribute_variant): Use iterative_hash_object. - (build_array_type, build_function_type): Likewise. - (build_method_type_directly): Likewise. - (build_offset_type, build_complex_type): Likewise. - (type_hash_list, attribute_hash_list): Likewise. Now static. - * except.c: s/TYPE_HASH/TREE_HASH/. - -2004-03-05 Bob Wilson - - * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args. - (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32). Adjust - __va_ndx by 2 words when referencing an argument on the stack. - (xtensa_va_arg): Handle 16-byte aligned args. Adjust __va_ndx by 2 - words when an arg on the stack is first seen. - -2004-03-05 Paul Brook - - * arm.h (ARM_FLAG_VFP): Remove. - (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber. - * netbsd-elf.h (ARM_FLAG_VFP): Remove. - -2004-03-05 Paul Brook - - * function.c (assign_parms): Include pretend alignment offset. - -2004-03-05 Richard Kenner - - * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size - FUNCTION_BOUNDARY, not POINTER_SIZE * 2. - -2004-03-05 Ian Lance Taylor - - * configure.ac: When passing --enable-languages to subdir - configure when host != build, make sure we don't pass an empty - value. - * configure: Regenerate. - -2004-03-05 Nathan Sidwell - - PR 13577 - * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o - options. - -2004-03-05 Paolo Bonzini - - * simplify-rtx.c (simplify_relational_operation): If - flag_wrapv is set, do not move terms between the two - side of a relational operator. - -2004-03-05 Paolo Bonzini - - * rtlanal.c: Include target.h and output.h - (rtx_cost, address_cost, default_address_cost): Move from... - * cse.c (rtx_cost, address_cost, default_address_cost): - ... this file. - * rtl.h (rtx_cost, address_cost): Move under rtlanal.c. - * Makefile.in: Adjust dependencies. - -2004-03-05 Paolo Bonzini - - * cse.c (cse_end_of_basic_block): Make static. - * local-alloc.c (function_invariant_p): Move to - reload1.c. - * loop.c (libcall_other_reg, record_excess_regs): - Make static. - * reload1.c (function_invariant_p): Moved here - from local-alloc.c, made static. - * rtl.h (cse_end_of_basic_block, function_invariant_p, - libcall_other_reg, record_excess_regs): Remove - declarations. - -2004-03-05 Kazu Hirata - - * config/m32r/m32r.c (signed_comparison_operator): Add a - missing parenthesis. - -2004-03-04 Ian Lance Taylor - - * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are - going to call mmap again. Read the file into the right place. - Give a fatal error if we have to relocate. - -2004-03-04 Bob Wilson - - * config/xtensa/xtensa.c (xtensa_return_in_msb): New function. - (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb. - -2004-03-05 Hans-Peter Nilsson - - PR other/14354 - * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would - round the same. When rounding, clear bits that would cause a - second rounding in pack_d. - (_fpmul_parts): Ditto. Remove #if 0:d code. - -2004-03-04 Ziemowit Laski - - PR c++/14425, c++/14426 - * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16, - vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32): - Change C++ definitions to accept a 'const int' argument; - the prototypes already do. - * config/rs6000/rs6000.c (rs6000_common_init_builtins): - Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char, - v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char, - v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char, - v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char, - v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to - end in ..._int; change them to accept an int instead of a char - as the last parameter. - -2004-03-04 Phil Edwards - - * genmultilib: Change '=' to '-' when translating option names - to directory names. - -2004-03-04 Richard Kenner - - * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of - stack slot for temp used for result of BLKmode but in integral mode. - -2004-03-04 Jan Hubicka - - * reload.c (find_reloads): Reorganize if seqeunce to switch. - - * cfgrtl.c (rtl_redirect_edge_and_branch): Set the source BB as dirty. - (cfglayout_redirect_edge_and_branch): Set the source BB as dirty. - -2004-03-04 Steve Ellcey - - * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm. - * testsuite/gcc.dg/20040303-1.c: New test. - -2004-03-04 Steven Bosscher - - * ppro.md: Rewrite as a DFA pipeline description. - * i386.md: Remove all uses of the ppro_uops attribute. - * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet, - ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init, - ix86_sched_reorder, ix86_variable_issue, - struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE, - TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove. - (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO. - (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO. - * athlon.md (athlon_ssecmp_load): Fix comment - -2004-03-04 Stuart Hastings - - * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC. - -2004-03-04 Stuart Hastings - - * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before - 686, tell Darwin assembler to allow prefetch insns, non-empty def - of SUBTARGET_OPTION_TRANSLATE_TABLE. - -2004-03-04 DJ Delorie - - PR optimization/14282 - * sched-deps.c (sched_analyze_insn): Allow a stack adjustment - between a call and the assignment of its return value. - -2004-03-04 Kazu Hirata - - * config/h8300/h8300.c: Put a comment for every function. - -2004-03-04 Kazu Hirata - - * config/h8300/h8300.md: Add comments about peephole2's. - -2004-03-04 Steven Bosscher - - * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value. - -2004-03-04 Jan Hubicka - - * cfgcleanup.c (thread_jump): Update call of cselib_init. - * cselib.c (cselib_record_memory): New static variable. - (cselib_lookup_mem, cselib_record_set, cselib_record_sets): - Give up on memories when asked for. - (cselib_init): Accept new argument. - * cselib.h (cselib_init): Update prototype. - * gcse.c (local_cprop_pass): Update call of cselib_init. - * loop.c (load_mems): Update call of cselib_init. - * postreload.c (reload_cse_regs_1): Update call of cselib_init. - * sched-deps.c (sched_analyze): Update call of cselib_init. - -2004-03-04 David Edelsohn - GP - - * config/rs6000/rs6000.c (output_function_profiler): Append @plt - when compiling PIC. - -2004-03-04 Josef Zlomek - - PR/14362 - * var-tracking.c (track_expr_p): Do not track variables which - should be ignored for debugging purposes. - -2004-03-04 Alan Modra - - * real.c (encode_ibm_extended): Don't bother rounding low double. - * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX - when fmt->pnan < fmt->p. - -2004-03-04 Eric Christopher - - * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check - only range of valid arg registers and fixed_regs. - -2004-03-04 Alan Modra - - PR target/14406 - * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn. - (abstf2, abstf2_internal): New define_expand. - -2004-03-04 Eric Botcazou - - PR optimization/14235 - * 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. - -2004-03-03 Zack Weinberg - - PR 13728 - * c-decl.c (diagnose_mismatched_decls): Issue an error for two - parameters with the same name, unless one is a forward decl. - Do not issue a redundant-redeclaration warning for forward - decls of parameters. - -2004-03-04 David Edelsohn - - * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up - configuration. - -2004-03-03 Ian Lance Taylor - - * ggc-zone.c (ggc_pch_write_object): Don't align file pointer. - -2004-03-04 Alan Modra - - * target-def.h (TARGET_OPTF): Delete. - * c-opts.c (TARGET_OPTF): Define. - -2004-03-04 Jan Hubicka - - * cselib.c (cselib_finish): Fix another miss-application of my previous - patch. - -2004-03-03 Mike Stump - - Add framework support for darwin. - - * c-incpath.c: Include target.h and machmode.h. - (add_path): Use a consistent style for cpp_dir. Initialize - p->construct to 0. - (add_cpp_dir_path): New. - (register_include_chains): Add use of extra_includes callback. - (hook_void_int): Add. - (target_c_incpath): Add. - * c-incpath.h (add_cpp_dir_path): New. - (target_c_incpath_s): Add. - (target_c_incpath): Add. - (C_INCPATH_INIT): Add. - * c-opts.c (c_common_missing_argument, - c_common_handle_option): Add -F argument processing. - * c.opt: Add -F argument processing. - * gcc.c (trad_capable_cpp): Add -F argument processing. - * cppfiles.c (find_file_in_dir): Update to use construct - callback. - (search_path_exhausted, cpp_get_path, cpp_get_buffer, - cpp_get_prev): New. - (_cpp_find_file): Use search_path_exhausted. - (make_cpp_dir): Initialize construct to 0. - * cpplib.h (missing_header_cb - cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New. - (cpp_callbacks): Add missing_header - (cpp_dir): Add construct. - * target-def.h: (TARGET_OPTF): New. - * hooks.c (hook_void_int, hook_void_charptr): Add. - * hooks.h (hook_void_int, hook_void_charptr): Add. - * Makefile.in (c-incpath.o) : Add $(TARGET_H) and - $(MACHMODE_H) dependencies. - * doc/invoke.texi (Darwin Options): Document -F. - * doc/tm.texi (TARGET_EXTRA_INCLUDES): Add. - (TARGET_OPTF): Add. - * fix-header.c (target_c_incpath): Add. - - * config/darwin-c.c: Add c-incpath.h include. - (using_frameworks, find_subframework_file, - find_subframework_header, add_system_framework_path, - frameworks_in_use, num_frameworks, max_frameworks, - add_framework, find_framework, struct framework_header, - framework_header_dirs, framework_construct_pathname, - find_subframework_file, add_system_framework_path, - add_framework_path, framework_defaults, - darwin_register_frameworks, find_subframework_header): Add. - * config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New. - (TARGET_OPTION_TRANSLATE_TABLE): Add -framework support. - (CPP_SPEC): Add __APPLE_CC__ support. - * t-darwin (darwin-c.o): Add c-incpath.h dependency. - -2004-03-04 Jan Hubicka - - * cselib.c (cselib_finish): Fix miss-application of my previous - patch. - -2004-03-03 Kazu Hirata - - * hooks.c (hook_tree_tree_identity): New. - * hooks.h: Add a prototype for hook_tree_tree_identity. - * stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers - instead of MD_ASM_CLOBBERS. - * system.h (MD_ASM_CLOBBERS): Poison. - * target-def.h (TARGET_MD_ASM_CLOBBERS): New. - (TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS. - * target.h (gcc_target): Add md_asm_clobbers. - * config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New. - (ix86_md_asm_clobbers): New. - * config/i386/i386.h (MD_ASM_CLOBBERS): Remove. - * doc/tm.texi (MD_ASM_CLOBBERS): Change to - TARGET_MD_ASM_CLOBBERS. - -2004-03-03 Stuart Hastings - - * gcc/config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a. - -2004-03-03 Eric Botcazou - - * config/sparc/sparc.c (noov_compare64_op): Fix typo. - - * config/sparc/sparc.h (ASM_FLOAT): Delete. - (ASM_DOUBLE): Likewise. - (ASM_LONGDOUBLE): Likewise. - * config/sparc/pbd.h (ASM_INT_OP): Delete. - -2004-03-03 Richard Henderson - - PR opt/13862 - * cselib.c (cselib_record_sets): Don't record multiple sets in - asm insns. - -2004-03-03 Mostafa Hagog - - * common.opt: Add description of the new -fgcse-after-reload flag. - - * flags.h (flag_gcse_after_reload): Declaration of global variable. - - * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p, - reg_used_between_after_reload_p, rtx get_avail_load_store_reg, - is_jump_table_basic_block, bb_has_well_behaved_predecessors, - get_bb_avail_insn, hash_scan_set_after_reload, - compute_hash_table_after_reload, eliminate_partially_redundant_loads, - gcse_after_reload, get_bb_avail_insn): New functions to implement - gcse-after-reload. - (gcse_after_reload_main): New function, the main entry point to - gcse-after-reload. - - * rtl.h (gcse_after_reload_main): Declaration of the new function. - - * opts.c (common_handle_option): Handle the -fgcse-after-reload flag. - - * toplev.c (flag_gcse_after_reload): Initialization. - - * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main. - - * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION, - PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning - the gcse after reload optimization. - - * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION, - GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning - parameters. - - * doc/invoke.texi: Documentation for the new flag gcse-after-reload. - -2004-03-03 Nicolas Pitre - - * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of - small negative values. - -2004-03-03 Jan Hubicka - - * cselib.c (hash_table): Remove GTY marker. - (reg_values): Turn into array. - (used_regs): Likewise. - (n_used_regs): New static variable. - (reg_values_old): Kill. - (clear_table): Update uses of arrays. - (cselib_lookup): Likewise. - (cselib_record_set): Likewise. - (cselib_init): Likewise. - (cselib_finish): Likewise. - (cselib_udpate_varray_sizes): Kill. - * cselib.h (cselib_update_varray_sizes): Kill. - -2004-03-03 Paul Brook - - * flow.c (ior_reg_cond, and_reg_cond): Remove stray ")". - -2004-03-03 Jan Hubicka - - * ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat): - Rename from ...; make statistics transparent. - (ggc_alloc_cleared, ggc_realloc_stat): ... these. - (loc_descriptor): New structure. - (hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics, - add_statistics): - New static function. - (ggc_record_overhead, dump_statistics): New global function. - * ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat, - ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename - from ...; accept locations - (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared, - ggc_realloc, ggc_alloc_typed): ... this one. - from ...; accept locations - * ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat, - ggc_alloc_stat): Rename from ... ; pass locations - * ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc): - ... this one. - (ggc_alloc_stat): Record overehead. - * ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared, - ggc_realloc, ggc_alloc_typed): Turn to macros - (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat, - ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare. - (dump_ggc_loc_satistics, ggc_record_overehead): Declare. - * langhooks.h (lhd_make_node): Declare. - (LANG_HOOKS_MAKE_TYPE): Default to new function, - * langhooks.c (lhd_make_node): New. - * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass - locations. - (rtx_alloc, swallow_copy_rtx): ... this one. - * rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros. - * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare. - * toplpev.c (finalize): Dump stats. - * tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat, - build_tree_list_stat, tree_cons_stat, build?_stat, build_decl_stat): - Rename from ... ; pass locators. - (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons, - build?, build_decl): Declare. - * tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat, - build_tree_list_stat, tree_cons_stat, build?_stat, build_decl_stat): - Declare. - (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons, - build?, build_decl): New macros. - * Makefile.in (RTL_H, TREE_H): Add statistics.h dependency. - * statistics.h: New file. - -2004-03-03 Maciej W. Rozycki - Richard Sandiford - - * config/mips/mips.h (MASK_FIX_SB1): Bump. - (MASK_FIX_R4400, TARGET_FIX_R4400): New macros. - (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400. - * config/mips/mips.c (mips_output_division): Fill the branch delay - slot with a nop if TARGET_FIX_R4000. Extend R4000 workarounds to - TARGET_FIX_R4400. - (mips_output_division): Adjust accordingly. - (override_options): Make -march=r4400 imply -mfix-r4400 by default. - * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds. - -2004-03-03 Paolo Bonzini - - * alias.c (rtx_equal_for_memref_p): Use predicates - to test rtx classes and new rtx class codes, possibly - splitting conditionals that tested against '<' and 'o'. - * caller-save.c (save_call_clobbered_regs): Likewise. - * combine.c (contains_muldiv, find_split_point, subst, - combine_simplify_rtx, simplify_if_then_else, - simplify_set, simplify_logical, expand_compound_operation, - make_compound_operation, if_then_else_cond, known_cond, - apply_distributive_law, cached_nonzero_bits, - cached_num_sign_bit_copies, simplify_shift_const, - gen_binary, simplify_comparison, update_table_tick, - record_value_for_reg, get_lsat_value_validate): Likewise. - * cse.c (mention_regs, find_best_addr, find_comparison_args, - fold_rtx, cse_insn, invalidate_memory, cse_basic_block): - Likewise. - * emit-rtl.c (copy_insn_1): Likewise. - * expr.c (force_operand): Likewise. - * final.c (final_scan_insn, get_mem_expr_from_op): Likewise. - * flow.c (notice_stack_pointer_modification_1, - invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond, - and_reg_cond, elim_reg_cond): Likewise. - * function.c (update_epilogue_consts): Likewise. - * genattrtab.c (attr_rtx_1): Likewise. - * genopinit.c (gen_insn): Likewise. - * integrate.c (subst_constants): Likewise. - * jump.c (reversed_comparison_code_parts, - reversed_comparison_code, delete_related_insns, - rtx_renumbered_equal_p): Likewise. - * local-alloc.c (block_alloc): Likewise. - * loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv, - canonicalize_condition): Likewise. - * loop-iv.c (simplify_using_conditions, iv_number_of_iterations): - Likewise. - * optabs.c (add_equal_node, expand_binop): Likewise. - * predict.c (estimate_probability): Likewise. - * ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise. - * recog.c (validate_replace_rtx_1, comparison_operator, - offsettable_address_p, constrain_operands): Likewise. - * reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat): - Likewise. - * regclass.c (scan_one_insn): Likewise. - * regmove.c (stable_and_no_regs_but_for_p): Likewise. - * regrename.c (kill_autoinc_value): Likewise. - * reload.c (find_reusable_reload, find_reloads, - reg_overlap_mentioned_for_reload_p): Likewise. - * reload1.c (gen_reload, delete_address_reloads_1): Likewise. - * rtl.c (copy_rtx): Likewise. - * rtl.h (CONSTANT_P, INSN_P): Likewise. - * rtlanal.c (commutative_operand_precedence): Likewise. - * sched-deps.c (conditions_mutex_p): Likewise. - * sched-rgn.c (is_cfg_nonregular): Likewise. - * simplify-rtx.c (simplify_gen_binary, - simplify_gen_relational, simplify_replace_rtx, - simplify_unary_operation, simplify_binary_operation, - simplify_ternary_operation, simplify_rtx): Likewise. - * unroll.c (reg_dead_after_loop): Likewise. - * config/alpha/alpha.c (alpha_swapped_comparison_operator, - print_operand): Likewise. - * config/arc/arc.c (proper_comparison_operator): Likewise. - * config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode): - Likewise. - * config/avr/avr.c (_reg_unused_after): Likewise. - * config/frv/frv.c (frv_ifcvt_modify_tests, - frv_ifcvt_modify_insn, frv_pack_insn): Likewise. - * config/i386/i386.c (ix86_comparison_operator, - ix86_carry_flag_operator, fcmov_comparison_operator, - arith_or_logical_operator, print_operand, - ix86_expand_binary_operator, ix86_binary_operator_ok): - Likewise. - * config/i386/i386.md: Likewise. - * config/ia64/ia64.c (not_postinc_memory_operand, - ia64_print_operand, update_set_flags, errata_emit_nops): - Likewise. - * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS, - CONSTRAINT_OK_FOR_S): Likewise. - * config/ip2k/ip2k.c (mdr_resequence_xy_yx, - mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref, - ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p, - ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator): - Likewise. - * config/iq2000/iq2000.c (cmp_op, symbolic_expression_p, - eqne_comparison_operator, signed_comparison_operator): - Likewise. - * config/mips/mips.c (cmp_op, symbolic_expression_p): - Likewise. - * config/mmix/mmix (mmix_foldable_comparison_operator, - mmix_comparison_operator): Likewise. - * config/pa/pa.c (hppa_legitimize_address): Likewise. - * config/rs6000/rs6000.c (stmw_operation, - branch_comparison_operator, trap_comparison_operator, - ccr_bit): Likewise. - * config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise. - * config/s390/s390.c (s390_alc_comparison, - s390_slb_comparison):L Likewise. - * config/sh/sh.c (gen_block_redirect, reg_unused_after): - Likewise. - * config/sparc/sparc.c (eq_or_neq, normal_comp_operator, - noov_compare_op, noov_compare64_op, v9_regcmp_op, - emit_hard_tfmode_operation, reg_unused_after) - * doc/md.texi, doc/rtl.texi: Likewise. - - * ra-debug.c: Add 2004 to list of copyright years. - * unroll.c: Likewise. - - * combine.c (simplify_logical): Remove dummy test, - (apply_distributive_law): Fix typo in comment. - GET_CODE (x) == AND so x is a commutative binary op. - * jump.c (delete_related_insns): simplify loop - condition, move testing of RTX codes inside the loop. - (rtx_renumbered_equal_p): do not use RTX_CODE. - * rtl.c (rtx_class): Declare as enum rtx_class. - * rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED): - Move to RTX_COMM_COMPARE class. - (HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE): - Move to RTX_CONST_OBJ class. - * rtl.h (enum rtx_class): New declaration, - (RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK, - RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT, - RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK, - RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT, - RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P, - ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P, - SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P, - OBJECT_P): New macros. - * config/sparc/sparc.c (noov_compare_op): Remove register - from parameter. - -2004-03-03 Kazu Hirata - - * target.h: Remove texi jargons in comments. - -2004-03-02 Kazu Hirata - - * config/h8300/lib1funcs.asm (___fixunssfsi): Change the - threshold to 0x4f. - - Revert: - 2004-02-27 Kazu Hirata - * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300 - as well. - * config/h8300/lib1funcs.asm (___fixunssfsi): Remove. - * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm. - -2004-03-02 Kazu Hirata - - * doc/md.texi (cbranchmode4): New. - -2004-03-02 Eric Christopher - - * config/mips/mips16.S: Change fixsfsi and fixdfsi to - fix_trunc. - * config/mips/mips.c (mips_init_libfuncs): Change accordingly. - * config/mips/t-elf (LIB1ASMFUNCS): Ditto. - * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto. - * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto. - -2004-03-02 Richard Henderson - - PR middle-end/11767 - * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P. - * optabs.c (prepare_cmp_insn): Force trapping memories to registers - before the compare, if flag_non_call_exceptions. - -2004-03-02 Richard Henderson - - PR middle-end/14327 - * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before - emitting the label, not after. - -2004-03-02 Stephane Carrez - - * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable. - (m68hc11_mov_addr_mode): Likewise. - (m68hc11_override_options): Initialize them based on target. - (register_indirect_p): Allow a MEM for indirect addressing modes and - use flags to control what is allowed. - (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for - supported addressing modes. - (m68hc11_register_indirect_p): Use m68hc11_addr_mode. - (go_if_legitimate_address_internal): Likewise. - (m68hc11_indirect_p): Likewise and check the mode. - (print_operand): Allow a (MEM (MEM)) and generate indirect addressing. - -2004-03-02 Kazu Hirata - - * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove. - (expand_builtin_setjmp_setup): Use - targetm.builtin_setjmp_frame_value instead of - BUILTIN_SETJMP_FRAME_VALUE. - * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison. - * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New. - (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE. - * target.h (gcc_target): Add builtin_setjmp_frame_value. - * targhooks.c (default_builtin_setjmp_frame_value): New. - * targhooks.h: Add a prototype for - default_builtin_setjmp_frame_value. - * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to - TARGET_BUILTIN_SETJMP_FRAME_VALUE. - -2004-03-02 Stephane Carrez - - * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize - sequences of moves. - (add peepholes): New peepholes to optimize sequences adding small - constants. - (bset peepholes): New peepholes to transform an OR in a bset form - (bclr peepholes): Likewise for bclr form. - (cmp peepholes): New peepholes to avoid register copies when comparing. - -2004-03-02 Stephane Carrez - - * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split - to separate push from moves. - ("*pushdf_internal"): Likewise. - ("*pushsf_internal"): Likewise. - ("*pushsi_internal"): Likewise. - ("movdi_internal"): Use define_insn_and_split; non push operand. - ("movdf_internal"): Likewise. - ("movsf_internal"): Likewise. - ("movsi_internal"): Likewise. - ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints - ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise. - ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise. - -2004-03-02 Stephane Carrez - - * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split. - ("cmphi_z_used", "cmpqi_z_used"): Likewise. - ("movstrictsi", "movstricthi", "movstrictqi"): Likewise. - ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise. - ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise. - ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise. - ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise. - ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise. - ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise. - ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise. - ("*lshrdi3_const32", "*lshrdi_const1"): Likewise. - -2004-03-02 Stephane Carrez - - * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define. - (SOFT_XY_REGNUM): Define. - (cmp split): Use the above instead of hard coded numbers. - (8-bit op split): No need to check the mode; allow Q_REG. - (ashift split): Adjust the first operand if it uses the SP and we - are pushing the shifted value. - (plus shift split): Fix when a source is in register D+X. - ("doloop_end"): Pass dummy arguments to gen_rtx_NE. - -2004-03-02 Stephane Carrez - - * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when - comparing with Z register. - -2004-03-02 Zdenek Dvorak - - * cfgloop.h (struct loop_desc): Removed. - (struct loop): Fields simple, desc and has_desc removed. - (simple_loop_p, count_loop_iterations): Declaration removed. - * cfgloopanal.c (struct unmark_altered_insn_data): Removed. - (unmark_altered, blocks_invariant_registers, unmark_altered_insn - blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper, - invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations, - simple_loop_exit_p, variable_initial_value, variable_initial_values, - simple_condition_p, simple_increment, count_strange_loop_iterations, - inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations): - Removed. - * loop-iv.c (check_simple_exit, find_simple_exit): Update comments. - -2004-03-02 Kazu Hirata - - * genattrtab.c: Don't handle MATCH_INSN. - * genrecog.c: Likewise. - * gensupport.c: Likewise. - * rtl.def (match_insn): Remove. - * doc/md.texi (match_insn, match_insn2): Remove. - -2004-03-02 Mark Mitchell - - * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this - macro results in memory allocation. - -2004-03-02 David O'Brien - - * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add. - * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define - %(fbsd_dynamic_linker), - (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with - config/i386/freebsd.h - * config/arm/freebsd.h: Ditto. - * config/i386/freebsd.h: Ditto. - * config/i386/freebsd64.h: Ditto. - * config/ia64/freebsd.h: Ditto. - * config/rs6000/sysv4.h: Ditto. - * config/sparc/freebsd.h: Ditto. - -2004-03-02 Loren James Rittle - - * gcc/doc/install.texi (*-*-freebsd*): Update target information. - -2004-03-02 Kazu Hirata - - * rtl.def (define_combine): Remove. - -2004-03-02 Kazu Hirata - - * config/h8300/h8300.md: Tweak formatting. - -2004-03-02 Kazu Hirata - - * config/h8300/h8300.md (*cmphi_h8300): Rename to - *cmphi_h8300_znvc. - (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc. - -2004-03-01 Mark Mitchell - - PR bootstrap/14356 - * gcc.c (process_command): Remove const-qualification from argv. - (main): Likewise. - -2004-03-02 Kazu Hirata - - * config/h8300/h8300.md (pushqi1_h8300hs): Rename to - pushqi1_h8300hs_advanced. Adjust its caller. - (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced. - Adjust its caller. - -2004-03-02 Nicolas Roche - - * Makefile.in (install-libgcc, install-multilib): Pass - mkinstalldirs var to libgcc.mk. - -2004-03-01 Kazu Hirata - - * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison. - * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove. - -2004-03-01 Kazu Hirata - - * config/h8300/h8300.c (gtle_operator): Accept GT and LE. - * config/h8300/h8300.md: Split several peephole2's, each into - two. - -2004-03-02 Zdenek Dvorak - - * dominance.c (recount_dominator): Handle postdominators. - -2004-03-01 Richard Sandiford - - * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h. - (NUM_SYMBOL_TYPES): Likewise. - (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types. - (mips_unspec_address): Declare. - (mips_gotoff_page, mips_gotoff_global): Delete. - * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand. - * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete. - (mips_symbolic_constant_p, mips_symbolic_address_p) - (mips_symbol_insns): Handle new symbol types. - (general_symbolic_operand): New predicate. - (mips_unspec_address): Make extern. - (mips_gotoff_page, mips_gotoff_global): Delete. - (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs. - Handle new symbol types. - * config/mips/mips.md (*lea_high64, *lea64): New patterns. - (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call - mips_unspec_address directly. - * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from - the documentation of -mexplicit-relocs. - -2004-03-01 Jeff Law - - * fold-const.c (fold): An equality comparison of a non-weak object - against zero has a known result. Similarly an equality comparison - of the address of two non-weak, unaliased symbols has a known result. - - * ggc-page.c (struct page_entry): New field PREV. - (ggc_alloc): Update PREV field appropriately. - (sweep_pages): Likewise. - (ggc_free): Likewise. Use PREV field rather than loop to - improve ggc_free performance. - -2004-03-01 Richard Sandiford - - * config/mips/mips.c (mips_output_division): Use the division - instruction to fill the delay slot of a zero check. - (mips_idiv_insns): Adjust accordingly. - -2004-03-01 Nathanael Nerode - - * config.gcc: Create a default tmake_file for linux, and use - it in all but two linux clauses. Comment those two. - -2004-03-01 Paolo Bonzini - - * combine.c (try_combine): Do not refer to is_replaced. - (gen_lowpart_for_combine): Perverse subregs now have a - more politically correct name. - * cse.c (cse_insn): Likewise. - * jump.c: Fix bogus reference to delete_insn. - -2004-02-29 Mark Mitchell - - PR debug/14328 - * dwarf2out.c (gen_enumeration_type_die): Output all enumeration - constants as signed values. - - 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. - -2004-02-29 Nathanael Nerode - - * configure.ac: Rearrange some threading code for clarity; - add section comment. - * configure: Regenerate. - -2004-02-29 Kazu Hirata - - * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment - typos. - * doc/cppopts.texi: Fix a typo. - -2004-02-29 Kazu Hirata - - * config/i386/i386.md: Fix formatting. - -2004-02-29 Nathanael Nerode - - * configure.ac: Add some comments delineating sections of code. - - * doc/install.texi: Note that libada uses autoconf 2.57 also. - - * doc/install.texi: Fix idiot typo in previous commit. - - * doc/install.texi: Update for conversion of intl to autoconf 2.57. - -2004-02-29 Kazu Hirata - - * config/h8300/h8300.md: Add comments about peephole2's. - -2004-02-29 Kazu Hirata - - * config/h8300/h8300.md: Tweak operand numbers of some - peephole2's. - -2004-02-29 Kazu Hirata - - * config/h8300/h8300.md: Tweak comments about peephole2's. - -2004-02-29 Waldek Hebisch - - PR middle-end/14203 - * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P - instead of testing whether DECL_RTL is not NULL. - -2004-02-28 Kazu Hirata - - * config/sh/sh.c: Fix formatting. - -2004-02-28 Kazu Hirata - - * config/sh/sh.c: Convert to ISO-C. - -2004-02-28 Andrew Pinski - - * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in - my previous patch. - - * config/darwin.h (machopic_finish): Output stub even if the - symbol is already defined. - -2004-02-28 John David Anglin - - * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg. - -2004-02-28 Kazu Hirata - - * genattr.c (main): Don't define - TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE. - * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison. - (DFA_PIPELINE_INTERFACE): Likewise. - * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove. - (DFA_PIPELINE_INTERFACE): Likewise. - -2004-02-28 Richard Sandiford - - * config/mips/mips.md (tstsi, tstdi): Delete. - -2004-02-28 Maciej W. Rozycki - - * config/mips/mips.c (override_options): Remove an obsolete - duplicate definition of the "e" constraint. - * config/mips/mips.h: Update a comment accordingly. - -2004-02-28 Maciej W. Rozycki - - * config/mips/mips.md: Complete the unfinished R4000 - multiply/shift errata workaround. Improve documentation. - (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction - has a hilo hazard. - (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000. - (muldi3, muldi3_internal): Likewise. - (muldi3_internal2): Remove, replacing with... - (muldi3_mult3, muldi3_r4000): ...these new patterns. - (mulsidi3): Take the errata into account. - (mulsidi3_32bit): Remove, replacing with... - (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns. - (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000. - (umulsidi3): Take the errata into account. - (umulsidi3_32bit): Remove, replacing with.. - (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns. - (umulsi3_highpart, umulsi3_highpart_internal): Disable if - TARGET_FIX_R4000. - (smulsi3_highpart, smulsi3_highpart_internal): Likewise. - (smuldi3_highpart, umuldi3_highpart): Likewise. - * doc/invoke.texi: Document the errata workaround. - -2004-02-28 Maciej W. Rozycki - - * config/mips/mips-protos.h (mips_idiv_insns): Declare. - * config/mips/mips.h (MASK_FIX_SB1): Bump. - (MASK_FIX_R4000, TARGET_FIX_R4000): New macros. - (TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000. - * config/mips/mips.c (mips_idiv_insns): New function. - (override_options): Make -march=r4000 imply -mfix-r4000 by default. - (mips_output_division): Add a workaround for the R4000 divide/shift - errata. - * config/mips/mips.md (length): Use mips_idiv_insns() to calculate - the length of an "idiv" instruction. - * doc/invoke.texi: Document the new switches. - -2004-02-28 Kazu Hirata - - * doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to - TARGET_SCHED_IS_COSTLY_DEPENDENCE. - -2004-02-28 Zdenek Dvorak - - PR optimization/14229 - * cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump. - -2004-02-28 Eric Botcazou - - * fold-const.c (fold): Strip NOPs that change the signedness - for RSHIFT too. Expand comment. - -2004-02-27 Ian Lance Taylor - - PR optimization/7871 - * flow.c (mark_set_1): Don't add LOG_LINKS for global registers - from or to call insns. - -2004-02-27 Eric Botcazou - - PR optimization/7871 - * flow.c (propagate_one_insn): Interpret calls as setting global - registers, not merely clobbering them. - -2004-02-27 Dale Johannesen - - * config/darwin.c (machopic_output_possible_stub_label): Remove. - config/darwin-protos.h: Ditto. - config/darwin.h: Remove call to it. - * combine.c (distribute_notes): Do not place a REG_DEAD note - when value is both set and used. - -2004-02-27 Kazu Hirata - - * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300 - as well. - * config/h8300/lib1funcs.asm (___fixunssfsi): Remove. - * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm. - -2004-02-27 Andrew Pinski - - * c-typeck.c (tagged_types_tu_compatible_p) : - Speedup common case of the type values being in the same order. - -2004-02-27 Steve Ellcey - - * config/ia64/ia64.h (no-inline-float-divide): New option. - * config/ia64/ia64.h (no-inline-int-divide): New option. - * config/ia64/ia64.h (no-inline-sqrt): New option. - (TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define. - * config/ia64/hpux.h (TARGET_DEFAULT): Ditto. - * config/ia64/ia64.c (ia64_override_options): Modify error - checking for inlined division/sqrt. - -2004-02-27 Kazu Hirata - - * bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c, - ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c, - value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h, - config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update - copyright. - -2004-02-27 Paul Brook - - * function.c (assign_parms): Don't count pretend args for alignment. - -2004-02-27 Richard Henderson - - * passes.c: New file. - * Makefile.in (OBJS-common): Add it. - * diagnostic.c (rtl_dump_and_exit): Move decl ... - * flags.h (rtl_dump_and_exit): ... here. - * output.h (size_directive_output, last_assemble_variable_decl): - Move from toplev.c. - * rtl.h (reg_alloc): Move from toplev.c. - * toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT, - struct dump_file_info, enum dump_file_index, dump_file_tbl, - open_dump_file, close_dump_file, rest_of_decl_compilation, - rest_of_type_compilation, rest_of_handle_final, - rest_of_handle_delay_slots, rest_of_handle_stack_regs, - rest_of_handle_variable_tracking, rest_of_handle_machine_reorg, - rest_of_handle_new_regalloc, rest_of_handle_old_regalloc, - rest_of_handle_regrename, rest_of_handle_reorder_blocks, - rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove, - rest_of_handle_tracer, rest_of_handle_if_conversion, - rest_of_handle_if_after_combine, rest_of_handle_web, - rest_of_handle_branch_prob, - rest_of_handle_value_profile_transformations, rest_of_handle_cfg, - rest_of_handle_addressof, rest_of_handle_sibling_calls, - rest_of_handle_jump_bypass, rest_of_handle_inlining, - rest_of_handle_null_pointer, rest_of_handle_combine, - rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2, - rest_of_handle_gcse, rest_of_handle_loop_optimize, - rest_of_handle_loop2, rest_of_compilation): Move to passes.c. - (decode_d_option): Use enable_rtl_dump_file. - (compile_file, finalize, do_compile): Move profile+combine+graph - cleanup to finish_optimization_passes. - * toplev.h (init_optimization_passes, finish_optimization_passes, - enable_rtl_dump_file): Declare. - -2004-02-27 Eric Botcazou - Roger Sayle - - * fold-const.c (fold): Revert 2004-02-25 change. Use the original - operands to build a tree with swapped operands. - * expr.c (expand_expr_real) : Consistently use the - 'unsignedp' predicate to specify the signedness. - -2004-02-27 Kazu Hirata - - * c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c, - expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c, - params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix - comment typos and formatting. Follow spelling conventions. - -2004-02-26 Aldy Hernandez - - * config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and - fix_truncsfsi2. - - * config/rs6000/spe.md: Delete spe_efsctuiz. - Add spe_fixuns_truncsfsi2. - Add spe_fix_truncsfsi2. - -2004-02-26 Eric Christopher - - * c-lex.c (c_lex_string_translate): New variable. - (lex_string): Use to determine string translation. - * c-pragma.h: Prototype. - * c-parse.in (start_string_translation): New. Set above. - (stop_string_translation): Ditto. - (attribute, attribute_list, asm_def, asm_stmt, - asm_operand): Use above functions. - * cp/parser.c (cp_parser_declaration): Translate strings - unless token is RID_EXTERN. Set c_lex_string_translate - for recursive use. - (cp_parser_asm_definition): Only translate argument strings - to asms. - (cp_parser_asm_operand_list): Ditto. - (cp_parser_attribute_list): Do not translate attribute strings. - -2004-02-26 Kazu Hirata - - * stmt.c (expand_start_case_dummy): Remove. - * tree.h: Remove the corresponding prototype. - -2004-02-26 Kazu Hirata - - * builtins.c (apply_args_register_offset): Remove. - * tree.h: Remove the corresponding prototype. - -2004-02-26 Kazu Hirata - - * stor-layout.c (is_pending_size): Remove. - * tree.h: Remove the corresponding prototype. - -2004-02-26 Kazu Hirata - - * recog.c (validate_replace_src): Remove. - * recog.h: Remove the corresponding prototype. - -2004-02-26 Kazu Hirata - - * calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or - MAYBE_REG_PARM_STACK_SPACE. - * function.c: Likewise. - * system.h (FINAL_REG_PARM_STACK_SPACE): Poison. - (MAYBE_REG_PARM_STACK_SPACE): Likewise. - * doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove. - (MAYBE_REG_PARM_STACK_SPACE): Likewise. - -2004-02-26 Kazu Hirata - - * c-decl.c (c_expand_deferred_function): Remove. - * c-tree.h: Remove the corresponding prototype. - -2004-02-26 Kazu Hirata - - * postreload.c (reload_cse_move2add): Generate just a PLUS - instead of an entire SET. - -2004-02-26 Jan Hubicka - - * config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m - /pentium4m. - * i386.c (override_options): Add support for new CPUs. - * i386.h (TARGET_CPU_DEFAULT_NAMES): New names. - (TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New - constants. - * invoke.texi: Extend documentation of -mtune/-march for new CPUs. - -2004-02-26 Bob Wilson - - * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__. - -2004-02-26 Eric Botcazou - - * config/sparc/sparc-protos.h (sparc_emit_floatunsdi): Add 'mode'. - (sparc_emit_fixunsdi): New prototype. - * config/sparc/sparc.c (sparc_emit_floatunsdi): Use 'mode' argument. - (sparc_emit_fixunsdi): New function. - * config/sparc/sparc.md (floatunsdisf2): Use 'general_operand' for - operand 1. Pass SFmode to sparc_emit_floatunsdi. - (floatunsdidf2): Use 'general_operand' for operand 1. Pass DFmode - to sparc_emit_floatunsdi. - (fixuns_truncsfdi2): New expander. - (fixuns_truncdfdi2): Likewise. - -2004-02-26 Alan Modra - - * gcse.c (delete_null_pointer_checks_1): Do not delete CC setter - unless HAVE_cc0. - -2004-02-25 Richard Henderson - - * explow.c (force_reg): Call mark_reg_pointer as appropriate. - * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't - use (op0-op1) == 0 if op0 is a pointer. - * config/alpha/alpha.md (cmpdi): Use some_operand. - (three comparison combine splits): Remove. - -2004-02-25 Richard Henderson - - PR c/12794 - * c-common.c (handle_alias_attribute): Reject the attribute if - current_function_decl is set. - -2004-02-25 Kelley Cook - - * config.gcc: Add comment describing extra_gcc_objs. - i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs. - * configure.ac (extra_gcc_objs): New substitution variable. - (host_extra_gcc_objs): Don't substitute. - * configure: Regenerate. - * Makefile.in: Use extra_gcc_objs. - -2004-02-25 Kelley Cook - - * doc/contrib.texi: Add an entry for myself. - -2004-02-25 Jan Hubicka - - * basic-block.h (make_eh_edge, break_superblocks): Declare. - * cfgbuild.c (make_eh_edge): Make global. - * cfglayout.c (break_superblocks): Likewise; fix memory leak. - * except.c (build_post_landing_pads, connect_post_landing_pads, - dw2_build_landing_pads, sjlj_emit_function_enter, - sjlj_emit_function_exit, sjlj_emit_dispatch_table, - sjlj_build_landing_pads): Update CFG. - (emit_to_new_bb_before): New function. - (finish_eh_generation): Do not rebuild the CFG. - -2004-02-25 John David Anglin - - * config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all - target_cpu_default defines. - * pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define. - * pa.h (TARGET_DEFAULT): Likewise. - -2004-02-25 Eric Botcazou - - * fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like - comparisons with regard to signedness. - -2004-02-25 Richard Earnshaw - - * arm.c (thumb_legitimize_address): New function. - * arm-protos.h: Prototype it. - * arm.h (THUMB_LEGITIMIZE_ADDRESS): Define. - (LEGITIMIZE_ADDRESS): Use it. - -2004-02-25 J"orn Rennecke - - * reload1.c (reload): Only spill eliminable register with multiple - adjacent elimination alternatives if all alternatives fail. - -2004-02-25 Richard Earnshaw - - * arm.c (arm_legitimate_index_p): For QImode the range of an offset - is -4095...+4095 inclusive. - -2004-02-25 Eric Botcazou - - * doc/install.texi (sparc-sun-solaris2* specific notes): Document - the bootstrap failure with Sun CC 5.4 and 5.5. - -2004-02-24 Kazu Hirata - - * 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-24 Michael Matz - - * config/i386/i386.c (ix86_comp_type_attributes): Check for - regparm attributes. - -2004-02-24 Richard Henderson - - * toplev.c (dump_file_tbl): Rename from dump_file. - * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c, - cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c, - config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c, - config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c, - loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c, - ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c, - toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c: - s/rtl_dump_file/dump_file/g. - -2004-02-24 Aldy Hernandez - - * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete. - (spe_fixuns_truncsfsi2): Delete. - - * config/rs6000/rs6000.md (fix_truncsfsi2): Delete. - (fixuns_truncsfsi2): Delete. - -2004-02-24 Josef Zlomek - - PR/14240 - * rtlanal.c (replace_label): Fix replacing labels in constant pool. - -2004-02-24 Geoffrey Keating - - * config/darwin.h (TARGET_HAS_F_SETLKW): Define. - -2004-02-24 Jason Merrill - - * tree.c (check_qualified_type): New fn. - (get_qualified_type): Use it. If type already has the desired - quals, just return it. - * tree.h: Declare it. - -2004-02-24 Sanjiv Kumar Gupta - - * target-def.h (TARGET_SCHED_INIT_GLOBAL, - TARGET_SCHED_FINISH_GLOBAL): New macros. - - * target.h (md_init_global, md_finish_global): Function - declarations corresponding to new target macros. - - * haifa-sched.c (sched_init, sched_finish): Allow target to - call the new schedular hooks. - - * flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in - call to update_life_info. - - * config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable - flag_schedule_insns for SH4. - - * config/sh/sh.c (sh_md_init_global, sh_md_finish_global, - find_set_regmode_weight, find_insn_regmode_weight, - find_regmode_weight), sh_md_init, sh_dfa_new_cycle, - sh_variable_issue, high_pressure, ready_reorder, - rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New - functions used to throttle the insn movement in first - scheduling pass for SH. - - * gcc/doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and - TARGET_SCHED_FINISH_GLOBAL. - -2004-02-24 Alexandre Oliva - - Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux. - 2004-02-05 Alexandre Oliva - * config/frv/frv.c (frv_emit_movsi): Use GOT relocations for - symbols in sections named by the user. - 2004-01-30 Alexandre Oliva - * config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New. - 2004-01-27 Alexandre Oliva - * config.gcc (frv-*-*linux*): Handle like *-*-linux*. - * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by - the above. - 2004-01-20 Alexandre Oliva - * config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add - one more pseudo to further improve code generation. - 2004-01-19 Alexandre Oliva - * config/frv/frv.md (movdi_ldd): Introduce explicit indirection - inside UNSPEC. - 2004-01-16 Alexandre Oliva - * config/frv/frv.c (frv_legitimate_address_p): Added - allow_double_reg_p argument. Adjust all callers. Use it to - decide whether to enable double-register indirect addressing. - (frv_funcdesc_alias_set): Remove. - (frv_expand_fdpic_call): Force non-SYMBOL_REF operand into - register. Emit movdi_ldd. - (ldd_address_operand): New. - * config/frv/frv-protos.h (frv_legitimate_address_p): Adjust. - * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise. - (PREDICATE_CODES): Add ldd_address_operand. - * config/frv/frv.md (movdi_ldd): New. - (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for - intermediate computations if possible. - (symGOTOFF2reg_i): Fix harmless typo. - 2003-12-18 Alexandre Oliva - * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast - relocated p_vaddr to vaddr type. - * config/frv/frv-protos.h (frv_expand_fdpic_call): Return void. - * config/frv/frv.c (frv_get_funcdesc_alias_set): New. - (frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc - MEM, or use a funcdesc alias set. Use regular move instead of - ldd. - (dbl_memory_one_insn_operand): Recognize function descriptors by - type or by alias set, and don't split them. - * config/frv/frv.md (call, call_value): Never use call_internal - for fdpic. - (call_internal, call_value_internal): Never match for FDPIC. - (call_fdpicdi, call_fdpicsi, call_value_fdpicdi, - call_value_fdpicsi): Require FDPIC. - (ldd): Removed. - 2003-12-17 Alexandre Oliva - * config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__. - * unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more. - (_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV - FDPIC. Compute data base address. - * config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic - before the other self-specs are processed. - * config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS): - Build with -fPIC. - 2003-12-15 Alexandre Oliva - * unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if - inhibit_libc is defined. - 2003-12-12 Alexandre Oliva - * unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for - __FRV_FDPIC__. - (__RELOC_POINTER): Define. - (_Unwind_IteratePhdrCallback): Use it. - * config/frv/frv.h (Twrite): Define. - (TRANSFER_FROM_TRAMPOLINE): Use it. - * config/frv/linux.h (INVOKE__main): Undefine. - (Twrite): Override. - 2003-12-05 Richard Sandiford - * doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options. - (-mlibrary-pic): Emphasize that this option generates EABI code. - (-mcpu): Add fr550. - (-mpack): Remove. - 2003-11-30 Alexandre Oliva - * config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs - and CONSTs in FDPIC mode. - * gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*. - 2003-11-29 Richard Sandiford - * config/frv/frv.c (move_source_operand): Don't accept symbolic - constants. - * config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n' - rather than 'i' constraint for the 2-instruction alternative. - (*movsi_2word): New, incorporating existing int_2word_operand splitter. - 2003-11-29 Richard Sandiford - * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from - EXTRA_CONSTRAINT_FOR_Y. - (EXTRA_CONSTRAINT): Remove handling of 'Y'. - * config/frv/frv.md (*movsi_internal): Remove 'Q' constraint. - (addsi3): Change 'Y' constraint to 'Q'. - 2003-11-27 Richard Sandiford - * reload.c (CONST_POOL_OK_P): New macro. - (find_reloads): Use it to decide whether a constant can be forced - into memory. - * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the - constant satisfies got12_operand. - (frv_cannot_force_const_mem): Always return true for TARGET_FDPIC. - (frv_legitimate_address_p): Check for valid unspec offsets using - got12_operand rather than frv_legitimate_fdpic_operand_p. - (frv_legitimate_fdpic_operand_p): Delete. - (frv_emit_movsi): Abort if we try to use the FDPIC register during - or after reload. - (frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if - TARGET_FDPIC. - * config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE. - 2003-11-19 Richard Sandiford - * config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand) - (frv_fdpic_fptr_operand): Don't declare here. - * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand - rather than fdpic_got12_operand. - (PREDICATE_CODES): Remove symbolic_operand entry. Add entries for - got12_operand and const_unspec_operand. - * config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand. - (gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls. - (symbolic_operand): Remove. - (const_unspec_operand): New predicate. - * config/frv/frv.md (*movsi_got): Use got12_operand. - (*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand. - 2003-11-18 Richard Sandiford - * config/frv/frv-protos.h (frv_output_addr_const_extra): Remove. - * config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition. - * config/frv/frv.c (frv_unspec): New structure. - (frv_small_data_reloc_p, frv_const_unspec_p): New functions. - (frv_print_operand_memory_reference): Use frv_const_unspec_p to - validate CONST indices. Use frv_output_const_unspec to print them. - (frv_print_operand): Update call to unspec_got_name. Use - frv_output_const_unspec to print constant unspecs. - (frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p. - Reject UNSPECs otherwise. - (unspec_got_name): Take the relocation number as argument, not an - rtx containing it. - (frv_output_addr_const_extra): Remove, replacing with... - (frv_output_const_unspec): ...this new function. - (frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p. - (gpr_or_int12_operand): Use fdpic_got12_operand. - (dbl_memory_one_insn_operand): Likewise. - (fdpic_got12_operand): Use frv_const_unspec_p. - (frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that - are already legitimate. Use frv_small_data_reloc_p when deciding - whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12. - 2003-11-18 Alexandre Oliva - * config/frv/t-linux (SHLIB_MAPFILES): Override so as to export... - * config/frv/libgcc-frv.ver: ... frv-specific symbols. New file. - * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local - label, for real this time. - * config/frv/frv.c (frv_local_funcdesc_p): Update to new - representation of visibility. - (fdpic_got12_operand, symbolic_operand): Mark unused arguments as - such. - 2003-11-17 Richard Sandiford - * config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros. - (TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp. - * config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless - it was explicitly disabled. - (frv_stack_info): There is no need to save the link register in every - frame unless TARGET_LINKED_FP is true. - (frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a - frame pointer if the stack pointer might change value. - (frv_return_addr_rtx): Check and process "count" argument. - 2003-11-14 Richard Sandiford - * config/frv/frv-protos.h (frv_legitimize_address): Remove. - (frv_find_base_term): Declare. - * config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing. - (FIND_BASE_TERM): Define. - (PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand, - small_data_register_operand, small_data_symbolic_operand. Add - symbolic_operand. - * config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete. - (frv_print_operand_memory_reference, output_move_single): Remove - special handling for unlegitimized sdata addresses. - (frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG - and symbolic addresses. - (frv_legitimize_address, frv_legitimize_fdpic_address): Delete. - (frv_find_base_term): New function. - (int_2word_operand): Check specifically for symbolic address constants. - (pic_register_operand, pic_symbolic_operand): Delete. - (small_data_register_operand, small_data_symbolic_operand): Delete. - (dbl_memory_one_insn_operand): Don't call plus_small_data_p. - Allow UNSPEC_GOT constants if !TARGET_FDPIC. - (move_source_operand): Only accept CONSTs if they're a two-insn - symbolic constant. - (fdpic_got12_operand): Don't require TARGET_FDPIC. - (frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses - using gen_symGOTOFF2reg*. - (frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases. - (frv_rtx_costs): Give all MEM addresses a cost of 0. Give MEMs - themselves a cost of 3 insns. - * config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too. - Change predicate to symbolic_operand. - (*movsi_high_got, *movsi_lo_sum_got): Likewise. - (*movsi_lda_sdata): Delete. - (*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete. - 2003-11-05 Alexandre Oliva - * config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for - frv-*-*linux*. - * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local - label. - * config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before - -multilib-library-pic. - (LINK_SPEC): Add -z text for -mfdpic. - * config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC. - * config/frv/frvend.c (__ROFIXUP_END__): Likewise. - * config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC): - Override. - (OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP, - FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define. - * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use - crtstuff-generated files. - 2003-10-31 Alexandre Oliva - * config.gcc: Add frv-*-*linux*. - * config/frv/linux.h, config/frv/t-linux: New. - 2003-10-06 Alexandre Oliva - * config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker - when -mfdpic even if a linker script is explicitly listed. - 2003-10-02 Alexandre Oliva - * config/frv/frv.c (frv_override_options): Clear asm_out - unaligned_op for SImode on FDPIC. - (frv_emit_movsi): Use compute_reloc_for_constant to compute the - argument passed to decl_readonly_section. - (frv_assemble_integer): Revert 2003-09-30's change, but make the - whole block run with FDPIC even with -fno-PIC. - 2003-10-02 Alexandre Oliva - * config/frv/frv.c (frv_cannot_force_const_mem): Don't force - symbol or label plus offset to memory. - (frv_emit_movsi): Emit GPREL only if -mgprel-ro. Emit 32-bit - GOTOFF and GPREL for LABEL_REF. - * config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with - -mfdpic unless -mno-gprel-ro, -fpic or -fpie. - (MASK_GPREL_RO, TARGET_GPREL_RO): New. - (TARGET_SWITCHES): Added gprel-ro and no-gprel-ro. - * doc/invoke.texi: Document them. - 2003-09-30 Alexandre Oliva - * config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare. - (frv_splittable_got_operand): Removed. - * config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and - LO_SUM. Add comments. - (frv_override_options): Moved enabling of FDPIC to - DRIVER_SELF_SPECS. Don't enable MASK_DWORD. - (frv_local_funcdesc_p): Remove unnecessary heck for flag_pie. - (frv_legitimize_fdpic_address): Don't duplicate logic in - frv_emit_movsi. - (frv_gen_GPsym2reg): New. - (unspec_got_name): Added gprel. - (frv_expand_fdpic_call): Add support for inlining PLTs. - (fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand. - (gpr_or_int12_operand): Added GPREL12. - (pic_symbolic_operand): Match even if !flag_pic for FDPIC. - (small_data_symbolic_operand): Fail if FDPIC. - (fdpic_splittable_got_operand): Removed. - (fdpic_got12_operand): Added GPREL12. - (frv_emit_movsi): Reorganize to avoid duplication. Emit GPREL - when appropriate. Fix sdata GOTOFF. - (frv_legitimate_constant_p): Require legitimate PIC operand for - FDPIC with pic, but only a legitimate fdpic operand for non-pic. - (frv_assemble_integer): Move FDPIC funcdesc handling out of - flag_pic case. - (frv_asm_out_constructor, frv_asm_out_destructor): Abort if - frv_assemble_integer fails. - * config/frv/frv.h (DRIVER_SELF_SPECS): New. - (SUBTARGET_DRIVER_SELF_SPECS): New. - (ASM_SPEC): Don't pass -mno-fdpic. - (LINK_SPEC): Pass -melf32frvfd for FDPIC. - (MASK_INLINE_PLT, TARGET_INLINE_PLT): New. - (TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and - -multilib-library-pic. - (PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand, - condexec_si_media_operator, condexec_sf_add_operator and - condexec_sf_conv_operator. Removed condexec_sf_binary_operator - and condexec_sf_unary_operator. - * config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO): - New. - (movsi_got, movsi_high_got, movsi_lo_sum_got): Move before - movsi_internal. Give them internal names. movsi_got has type - int. - (fdpic got splitters): Remove. - (symGPREL2reg, symGPREL2reg_hilo): New. - * config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC - to -mlibrary-pic. Map -multilib-library-pic to it. - * doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic: - Document. - 2003-09-28 Alexandre Oliva - * config/frv/frv.c (frv_function_symbol_referenced_p): Declare. - (TARGET_CANNOT_FORCE_CONST_MEM): Define to... - (frv_cannot_force_const_mem): New function. - (const_small_data_p, plus_small_data_p): Update comments on sdata - on FDPIC. - (frv_override_options): Set flag_pie for FDPIC too. - (frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed, - call-saved registers on FDPIC. - (frv_stack_info): Don't preserve the PIC register on FDPIC, and - don't force LR to be preserved. - (frv_expand_prologue): Likewise. - (frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic. - (frv_frame_pointer_required): Don't force it just because the - FDPIC register is used. - (frv_legitimate_address_p) : Accept a legitimate FDPIC - operand only if !condexec_p. - (frv_legitimize_address): Return the FDPIC-legitimized address. - Don't match small data here on FDPIC. - (frv_legitimate_fdpic_operand_p): Don't accept unadorned function - symbols. Use TRUE/FALSE instead of 1/0. - (frv_local_funcdesc_p): New. - (frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit - immediates when possible. - (pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC. - (dbl_memory_one_insn_operand): Accept addresses that add a REG and - an UNSPEC_GOT. - (frv_emit_movsi): Handle FDPIC before small data. Use GOTOFF and - 12-bit immediates when possible. - (frv_legitimate_constant_p): In FDPIC, reject SImode operands that - are not legitimate pic operands. - (frv_in_small_data_p): Re-enable for FDPIC. - * config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC. - (FRV_GLOBAL_P): Removed. - * config/frv/frv.md: Add modes to CONSTs. - (movsi_got): New. - (movsi_lo_sum_got): Use separate matches instead of match_dup. - (movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only. - (fdpic splittable operations): Match on flag_pic != 1. - 2003-09-22 Alexandre Oliva - * config/frv/frv.c (frv_asm_out_constructor, - frv_asm_out_destructor): Pass to frv_assemble_integer the size in - bytes, not bits. - 2003-09-19 Alexandre Oliva - * config/frv/frv.c (frv_assemble_integer): Reject complex - expressions referencing function SYMBOL_REFs. - * config/frv/frv.c (frv_function_symbol_referenced_p): New. - (move_source_operand): Reject CONSTs that reference function - SYMBOL_REFs on FDPIC. - (frv_emit_movsi): If we get such a CONST, break it up. - * config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic. - (TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC. - * config/frv/frv.c (frv_print_operand) : Recognize PLUS without - MEM. - (frv_assemble_integer): Don't use funcdesc for LABEL_REFs. - (frv_trampoline_size): Increase for FDPIC. - * config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC. - (TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines. - * config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi): - Disable use of GOTOFF for now. - (const_small_data_p, plus_small_data_p, frv_in_small_data_p): - Disable use of small data in FDPIC for now. - (frv_asm_output_mi_thunk): Implement for FDPIC. - * config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC. - * config/frv/frv.c (frv_asm_out_constructor): Use - frv_assemble_integer for FDPIC pointers. - (frv_asm_out_destructor): Likewise. - * config/frv/frv.md (ldd): Fix order of operands. Use - address_operand for input. - 2003-09-18 DJ Delorie - * config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC. - (unspec_got_name): Correct typo. - (frv_emit_movsi): Pre-expand splittable GOTs. - (frv_expand_fdpic_call): Rename gen_lddi to gen_ldd. - * config/frv/frv.md (lddi): Fix syntax error, rename to ldd. - (symGOT2reg_hilo, symGOTOFF2reg_hilo): New. - * config/frv/t-frv: Add -mfdpic multilibs. - * config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic. - (TARGET_SWITCHES): Add -mno-fdpic, fix documentation. - * config/frv/frv.c (frv_override_options): -mfdpic assumes - flag_pic, default to 32-bit pics, require DWORD ops. - (frv_override_options): Add W and Z constraints. - (frv_expand_prologue): No pic prologue for -mfdpic. - (frv_asm_output_mi_thunk): Support -mfdpic (soon). - (frv_print_operand_memory_reference): Handle GOT constants. - (frv_legitimate_address_p): Allow GOT constants. - (frv_legitimize_address): Handle GOT addresses too. - (frv_legitimate_fdpic_operand_p): New. - (frv_legitimize_fdpic_address): New. - (unspec_got_name): New. - (frv_output_addr_const_extra): New. - (frv_expand_fdpic_call): New. - (frv_fdpic_fptr_operand): New. - (gpr_or_int12_operand): Handle GOT operands. - (int_2word_operand): Handle GOT operands. - (fdpic_operand): New. - (fdpic_splittable_got_operand): New. - (fdpic_got12_operand): New. - (frv_emit_movsi): Handle GOT operands. - (frv_assemble_integer): -mfdpic doesn't use rofixups. - (frv_print_operand): Support 'g' code for GOT operands. - * config/frv/frv-protos.h: Add prototypes as needed. - * config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO, - R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI, - R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE, - R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI, - R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI, - R_FRV_GOTOFFLO): New. - (movsi_high_got, movsi_lo_sum_got): New. - (*movsi_pic): Don't use this splitter for -mfdpic. - (addsi3): Allow GOT references also. - (call, call_value): Handle -mfdpic separately. - (call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi, - call_value_fdpicsi): New. - (symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg, - symGOTOFF2reg_i): New. - * config/frv/frv.h (MASK_FDPIC): New. - (TARGET_FDPIC): New. - (TARGET_SWITCHES): Add -mfdpic. - (FDPIC_FPTR_REGNO): New. - (FDPIC_REGNO): New. - (OUR_FDPIC_REG): New. - (enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and - FDPIC_CALL_REGS. - (REG_CLASS_NAMES): Likewise. - (REG_CLASS_CONTENTS): Likewise. - (EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs. - (EXTRA_CONSTRAINT): Add it here. - (FRV_GLOBAL_P): New. - (OUTPUT_ADDR_CONST_EXTRA): New. - -2004-02-24 Kazu Hirata - - * config/sparc/sparc.h: Remove commented-out definitions of - TARGET_EDOM and GEN_ERRNO_RTX. - -2004-02-24 Kazu Hirata - - * df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace - df_analyse with df_analyze. - -2004-02-24 Alan Modra - - * gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not - beginning of block. - -2004-02-23 James E Wilson - - * calls.c (precompute_arguments): Update comment. - -2004-02-23 Kazu Hirata - - * et-forest.c: Replace et_occurences with et_occurrences. - -2004-02-23 Kazu Hirata - - * cfgloop.h, loop-iv.c, loop-unswitch.c: Replace iv_analyse - with iv_analyze. - -2004-02-23 Kelley Cook - - * config/i386/i386.c: Rename pni to sse3. - * config/i386/i386.h: Likewise. - * config/i386/i386.md: Likewise. - * config/i386/pmmintrin.h: Likewise. - * doc/extend.texi: Likewise. - * doc/invoke.texi: Likewise. - -2004-02-23 Zack Weinberg - Kazu Hirata - - Remove -fwritable-strings. - * c-common.c (fix_string_type): Don't check - flag_writable_strings. - (fix_string_type): Likewise. - * c-opts.c (set_std_c89): Don't initialize - flag_writable_strings. - (set_std_c99): Likewise. - * common.opt (fwritable-strings): Remove. - * flags.h: Remove the external declaration of - flag_writable_strings. - * opts.c (common_handle_option) : - Remove. - * toplev.c (flag_writable_strings): Remove. - (f_options): Remove an entry for writable-strings. - * varasm.c (const_hash_1) : Don't check - flag_writable_strings. - (compare_constant) : Likewise. - (build_constant_desc): Likewise. - * config/darwin.c (machopic_select_section): Likewise. - * config/arm/arm.c (AOF_ASSEMBLER): Likewise. - * config/arm/pe.c (arm_pe_encode_section_info): Likewise. - * config/iq2000/iq2000.c (iq2000_select_section): Likewise. - * config/mips/mips.c (mips_select_section): Likewise. - (mips_encode_section_info): Likewise. - * config/pa/pa.c (pa_select_section): Likewise. - * config/pa/pa.h (TEXT_SPACE_P): Likewise. - * config/v850/v850.c (v850_select_section): Likewise. - * doc/invoke.texi (-fwritable-strings): Remove. - (-fno-const-strings): Don't mention -fwritable-strings. - * doc/trouble.texi: Don't mention -fwritable-strings. - -2004-02-23 Nathanael Nerode - - * doc/install.texi: Update for switch of boehm-gc to autoconf 2.57. - -2004-02-23 Dale Johannesen - - * config/rs6000.md (movsf_hardfloat): Add POWER form of nop. - (movdf_hardfloat64): Ditto. - (movdf_softfloat64): Ditto. - -2004-02-23 Fariborz Jahanian - * config/rs6000/rs6000.c (function_arg): call to - rs6000_mixed_function_arg for DFmode moved to allow - normal DFmode incoming register assignment. - -2004-02-23 Dale Johannesen - - * config/rs6000.md (movsf_hardfloat): Accept CTR-to-CTR copy. - (movdf_hardfloat64): Ditto. - -2004-02-23 Kazu Hirata - - * convert.c, gcov-io.c, libgcov.c, sched-int.h, sibcall.c, - config/rs6000/linux.h, config/rs6000/rs6000-c.c: Update - copyright. - -2004-02-23 Andrew Pinski - - PR c/14156 - * c-typeck.c (c_expand_return): Change check for VAR_DECL - to use DECL_P instead. - - * config/rs6000/linux.h (OS_MISSING_POWERPC64): Define. - * config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define. - -2004-02-23 Kazu Hirata - - * Makefile.in (opts.o): Depend on target.h. - * opts.c (decode_options): Use targetm.default_short_enums - instead of DEFAULT_SHORT_ENUMS. - * system.h (DEFAULT_SHORT_ENUMS): Poison. - * target-def.h (TARGET_DEFAULT_SHORT_ENUMS): New. - (TARGET_INITIALIZER): Add TARGET_DEFAULT_SHORT_ENUMS. - * target.h (gcc_target): Add default_short_enums. - * config/cris/cris.h: Remove a comment about - DEFAULT_SHORT_ENUMS. - * config/ip2k/ip2k.h: Likewise. - * doc/tm.texi (DEFAULT_SHORT_ENUMS): Change to - TARGET_DEFAULT_SHORT_ENUMS. Update the description. - -2004-02-23 Eric Botcazou - Falk Hueffner - - PR c/14188 - * builtins.c (expand_builtin_va_arg): Emit an informative message - if a trap is generated. - * c-typeck.c (build_function_call): Likewise. - -2004-02-22 Jakub Jelinek - - * gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of - fopen. - * libgcov.c: Include sys/stat.h. - * config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define. - * config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define. - * config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define. - * config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define. - -2004-02-22 Kazu Hirata - - * reorg.c: Remove comments about dead ports. - -2004-02-22 Christopher Faylor - - * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify - extra host object file when targetting cygwin rather than generic - object files. - -2004-02-22 Josef Zlomek - - Merge from tree-ssa: - 2003-11-20 Richard Henderson - - * tree-inline.c (insert_decl_map): New. - (remap_decl, remap_type, remap_block, copy_body_r, - initialize_inlined_parameters, declare_return_variable, - remap_save_expr): Use it. - - * function.c (copy_body_r): Add mapping from id->ret_label to - id->ret_label. Revert test for ret_label. - -2004-02-22 Jakub Jelinek - - * genoutput.c (process_template): Strip trailing whitespace in @ - templates and issue a warning if there was any. - -2004-02-21 Christopher Faylor - - * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host - object file when targetting cygwin. - * config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is - overridden by top-level Makefile. - -2004-02-21 Roger Sayle - - * config/i386/i386.c (standard_80387_constant_p): Also prefer - the x87's load constant instructions when optimizing for size. - -2004-02-21 Kazu Hirata - - * combine.c (SHIFT_COUNT_TRUNCATED): Remove. - * defaults.h (SHIFT_COUNT_TRUNCATED): Provide the default. - * expmed.c: Assume SHIFT_COUNT_TRUNCATED is always defined. - * fold-const.c: Likewise. - * simplify-rtx.c: Likewise. - -2004-02-21 Alan Modra - - * combine.c (can_combine_p): Don't ignore SETs marked with - REG_EH_REGION notes. - (try_combine): When attemting to fix unrecognized insns, don't - split a PARALLEL that contains the original i2. - -2004-02-21 Ziemowit Laski - - * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to - SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options. - * config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it. - * config/rs6000/altivec.h: #error out if '-maltivec' not specified. - (vector, pixel, bool): #define to __vector, __pixel and __bool. - (__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific - portion of header. - (__altivec_link_error_invalid_argument): Remove prototype; will use - __builtin_altivec_compiletime_error("vec_*") instead. - (vec_*): Fix/complete set of available operation overloads given the - existence of distinct 'vector bool ...' and 'vector pixel' types; tighten - cv-correctness of pointer arguments; in C, always check for correct - argument types before macro expansion. - * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro - defining Darwin/PowerPC-specific '-f[no-]altivec' and - '-W[no-]altivec-long-deprecated' switches. - * config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define - '__vector', '__pixel' and '__bool' macros using - '__attribute__((altivec(...)))' types. - * config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node, - bool_int_type_node, pixel_type_node, bool_V16QI_type_node, - bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node): - New type nodes. - (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for - handling '-W[no-]altivec-long-deprecated'. - (rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'. - (rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin, - altivec_expand_dst_builtin): Remove casts from integer literals. - (altivec_expand_builtin): Likewise; handle expansion of new - '__builtin_altivec_compiletime_error' function. - (rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel' - types, and make them distinct from other vector types; register - '__builtin_altivec_compiletime_error' function. - (print_operand): For 'P', print a full target register name instead of - merely its number. - (rs6000_attribute_table): Add "altivec" attribute. - (rs6000_handle_altivec_attribute): New function. - * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe - '-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated' - maps to). - (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward - declare. - (ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration. - -2004-02-20 James E Wilson - - * config/ia64/ia64.md (shift_mix4left+1): Delete reload_completed - check. - (shift_mix4left+2): Delete redundant pattern. - -2004-02-20 Kazu Hirata - - * alias.c (OUTGOING_REGNO): Don't define the default. - * builtins.c (OUTGOING_REGNO): Likewise. - (INCOMING_REGNO): Likewise. - (apply_args_register_offset): Always use OUTGOING_REGNO. - * combine.c (OUTGOING_REGNO): Likewise. - * sibcall.c (OUTGOING_REGNO): Likewise. - * defaults.h (INCOMING_REGNO): Provide the default. - (OUTGOING_REGNO): Likewise. - -2004-02-21 Jan Hubicka - - * params.def (max-peeled-insns, max-completely-peeled-insns, - max-once-peeled-insns): Set to 400. - -2004-02-20 John David Anglin - - PR c++/12007 - * dbxout.c (dbxout_parms): Check that DECL_RTL and DECL_INCOMING_RTL - are set for parameters before outputing debugging information. - -2004-02-20 Falk Hueffner - - PR target/14201 - * config/alpha/alpha.md (*fix_truncsfsi_ieee): Fix typoed operand - numbers. - -2004-02-20 Per Bothner - - * input.h: Don't #include line-map.h. It may cause link problems - with undefined linemap_line_start when line-map.h is included but - line-map.o is not linked, as currently happens with gengtype on - compilers that don't support inline. - * toplev.c: So we do have to explicitly #include line-map.h here. - -2004-02-20 Richard Henderson - - * doc/invoke.texi: Add -Wvariadic-macros. - -2004-02-20 Kazu Hirata - - * haifa-sched.c (sched_emit_insn): Remove. - * sched-int.h: Remove the corresponding prototype. - -2004-02-20 Kazu Hirata - - Revert: - 2004-02-19 Kazu Hirata - * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS. - * system.h (DEFAULT_SHORT_ENUMS): Poison. - * config/cris/cris.h: Remove a comment about - DEFAULT_SHORT_ENUMS. - * config/ip2k/ip2k.h: Likewise. - * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove. - -2004-02-20 Mohan Embar - Tom Tromey - - * doc/install.texi: Moved --disable-libgcj and - --with-system-zlib documentation to new section for - Java-specific options. - Added explicit Cross-Compiler-Specific Options subheading. - Added section for Java-specific options. - -2004-02-20 Matt Kraai - - * doc/install.texi (Building the Ada compiler): Remove - example. - -2004-02-20 James E Wilson - - * toplev.c (dump_file_index, dump_file): Put ce3 before rnreg. - -2004-02-20 Kazu Hirata - - * gcc.c (process_command): Allow translation of the copyright - symbol but not the rest of the copyright message. - * gcov.c (print_version): Likewise. Allow translation of the - message about warranty. - -2004-02-20 Hans-Peter Nilsson - - * config/cris/cris.md ("*andsi_movu"): Correct parentheses in - predicate. - ("*andsi_clear"): Tweak constraints to not match postincrement. - Adjust the predicate to exclude a volatile memory reference. - ("*andhi_clear"): Ditto. Rename from "*andhi_clear_signed". - ("*andhi_clear_unsigned"): Remove, non-matching pattern. - -2004-02-19 Matt Kraai - - * move-if-change: Remove. - * Makefile.in (s-mlib, c-parse.y, s-check, s-gencheck) - (s-specs, s-options, s-config, s-conditions, s-flags, s-codes) - (s-constants, s-emit, s-recog, s-opinit, s-extract, s-peep) - (s-attr, s-attrtab, s-output, s-genrtl, s-modes, s-preds) - (s-gtyp-gen, s-iov): Use the top level move-if-change. - * objc/Make-lang.in (objc/objc-parse.y): Likewise. - -2004-02-19 James E Wilson - - * config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand - for operand2. Add condition that requires register_operand operand2 - before reload. - -2004-02-19 Richard Sandiford - Maciej W. Rozycki - - * config/mips/mips.c (mips_address_insns): Treat BLKmode specially. - * config/mips/mips.md: Expand comment above unaligned loads and stores. - -2004-02-19 Richard Henderson - - * Makefile.in (STRICT2_WARN): Add -Wno-variadic-macros. - * tree.c (build0, build1, build2, build3, build4): Split out from... - (build): ... here. Call them. - * tree.h (build, _buildN1, _buildN2, _buildC1, _buildC2): New. - - * convert.c (convert_to_integer): Remove extra build argument. - * tree-inline.c (expand_call_inline): Likewise. - -2004-02-19 Richard Henderson - - * c-opts.c (warn_variadic_macros): New. - (c_common_handle_option): Set it. - (sanitize_cpp_opts): Copy it to cpp_opts. - * c.opt (Wvariadic-macros): New. - * cpplib.h (struct cpp_options): Add warn_variadic_macros. - * cppinit.c (cpp_create_reader): Initialize it. - * cppmacro.c (parse_params): Check it. - -2004-02-19 David Daney - - PR preprocessor/14198 - * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Add - builtin_assert ("machine=mips") - -2004-02-19 Kazu Hirata - - * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS. - * system.h (DEFAULT_SHORT_ENUMS): Poison. - * config/cris/cris.h: Remove a comment about - DEFAULT_SHORT_ENUMS. - * config/ip2k/ip2k.h: Likewise. - * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove. - -2004-02-19 Zack Weinberg - - * config/ia64/ia64.c (ia64_function_arg): In big-endian mode, - when passing single SFmode quantities in general registers, - put them in the high half. - -2004-02-19 Aldy Hernandez - - * doc/md.texi (Standard Names): Document additional dependency on - fix pattern. - - * optabs.c (ftruncify): Remove. - (expand_fix): Manually inline ftruncify above. - (can_fix_p): Add FIXME note. - -2004-02-19 Aldy Hernandez - - * config/rs6000/spe.md (spe_fixunssfsi2): Rename to - spe_fixuns_truncsfsi2. - - * config/rs6000/rs6000.md (fixunssfsi2): Rename to - fixuns_truncsfsi2. - -2004-02-19 Steve Ellcey - - * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro. - * testsuite/gcc.dg/20040219-1.c: New test. - -2004-02-19 Ulrich Weigand - - * config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc", - "*subsf3_cconly"): Subtraction is not commutative. - -2004-02-19 Zack Weinberg - - * sdbout.c (preinit_symbols, sdbout_initialized): New statics. - (sdbout_symbol): If called before sdbout_init, queue DECL for - later and return. - (sdbout_init): Set sdbout_initialized true, process decls - queued earlier by sdbout_symbol. - (sdbout_finish): Use size_t for index variable. - -2004-02-19 Jeff Law - - * fold-const.c (invert_truthvalue): Do not call invert_tree_comparison - for unordered comparison codes. - -2004-02-19 Ian Lance Taylor - - * reload1.c (reload): Correct comment. - (scan_paradoxical_subregs): Remove #if 0 and old comment. - * doc/extend.texi (Local Reg Vars): Remove obsolete comment that - register variables are not used by reload. - -2004-02-19 Hans-Peter Nilsson - - PR target/14209 - * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak - constraints to not match postincrement. Adjust the predicate to - exclude a volatile memory reference. - -2004-02-19 Kazu Hirata - - * config/mcore/mcore.h (ASM_OUTPUT_EXTERNAL): Remove. - -2004-02-19 Kazu Hirata - - * hooks.c (hook_void_tree_int): Remove. - (hook_void_constcharptr): Likewise. - (hook_int_void_0): Likewise. - * hooks.h: Remove the prototypes for the above three - functions. - * targhooks.c (hook_bool_machine_mode_true): Remove. - * targhooks.h: Remove the prototype for - hook_bool_machine_mode_true. - -2004-02-19 Kazu Hirata - - * emit-rtl.c (subreg_realpart_p): Remove. - (reorder_insns_with_line_notes): Likewise. - (end_full_sequence): Likewise. - * rtl.h: Remove the prototype for the above functions. - -2004-02-19 Kazu Hirata - - * config/arc/arc.h, config/arm/arm.h, config/frv/frv.h, - config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h, - config/iq2000/iq2000.h, config/m32r/m32r.h, - config/pdp11/pdp11.h, config/sparc/sparc.h, - config/xtensa/xtensa.h: Remove commented-out or useless - definitions of CASE_VECTOR_PC_RELATIVE. - -2004-02-19 Kazu Hirata - - * loop.c (all_sets_invariant_p): Remove. - -2004-02-19 Eric Botcazou - - PR target/12916 - * config/sparc/sparc.h (NPARM_REGS): Delete. - (BASE_RETURN_VALUE_REG): Likewise. - (BASE_OUTGOING_VALUE_REG): Likewise. - (BASE_PASSING_ARG_REG): Likewise. - (BASE_INCOMING_ARG_REG): Likewise. - * config/sparc/sparc.c (sparc_strict_argument_naming): Test - TARGET_ARCH64, not TARGET_V9. - (function_arg_slotno): Dispatch based on the mode class. - Handle vector modes like floating-point modes. - (function_arg_record_value_1): Handle vector types like - floating-point types. - (function_arg_record_value_2): Likewise. - Calculate regno after mode transformation. - (function_arg): Handle vector modes like floating-point modes. - (function_arg_partial_nregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX. - If ARCH64, do not recheck alignment. - (function_arg_pass_by_reference): Reorder the conditions. - (sparc_return_in_memory): Move after function_arg_padding. - Implement calling conventions for vector modes. - (sparc_struct_value_rtx): Move after sparc_return_in_memory. - (function_value): Move scope of 'regbase'. - Implement calling conventions for vector modes. - (sparc_builtin_saveregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX - and BASE_INCOMING_ARG_REG by SPARC_INCOMING_INT_ARG_FIRST. - (sparc_va_arg): Use function_arg_pass_by_reference to test whether - the argument is passed by reference. - (sparc_type_code): Handle vector types. - -2004-02-19 Alan Modra - - * function.c (assign_parms): When building decl_rtl for - SPLIT_COMPLEX_ARGS, ensure inner modes of concat match outer. - -2004-02-19 Olivier Hainque - - * expr.c (is_aligning_offset): Check if we are aligning the - expressions's address over BIGGEST_ALIGNMENT in bytes, not - in bits. - -2004-02-18 Matt Austern - - * gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and - LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC. - (init_gcc_spec): Don't define or call if REAL_LIBGCC_SPEC is - defined. Instead use REAL_LIBGCC_SPEC, unmodifed, as the libgcc - spec string. - * doc/tm.texi (REAL_LIBGCC_SPEC): Document. - -2004-02-18 Zack Weinberg - - * dwarf2out.c (loclabel_num): Move outside #ifdef - DWARF2_DEBUGGING_INFO and mark with GTY(()). - * config/ia64/ia64.c (struct extern_func_list,extern_func_head): - Mark with GTY(()). - (ia64_hpux_add_extern_decl): Save the decl, not the name string. - Allocate memory with ggc_alloc. No need to copy anything. - (ia64_hpux_file_end): Update to match. - -2004-02-18 Jakub Jelinek - - * config/i386/i386.c (override_options): Don't imply 3DNow! for -m64 - by default. - -2004-02-18 Ulrich Weigand - - * config/s390/s390.md ("divmodtidi3"): Use canonical RTL. - ("divmodtisi3"): Likewise. - ("udivmoddi4", "udivmodtidi3"): Likewise. - ("divmodsi4", "divmoddisi3"): Likewise. - ("udivmodsi4", "udivmoddisi3"): Likewise. - ("udivsi3", "umodsi3"): Likewise. - -2004-02-18 Ulrich Weigand - - * config/s390/s390.c (s390_mainpool_start): Delete the main pool - placeholder insn when chunkifying the pool. - -2004-02-18 John David Anglin - - * pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not - generating PIC code. - -2004-02-18 Kazu Hirata - - * config/h8300/h8300-protos.h: Add a prototype for - h8300_expand_branch. - * config/h8300/h8300.c (h8300_expand_branch): New. - * config/h8300/h8300.md (ble, bleu, bge, bgeu, blt, bltu, bgt, - bgtu, beq, bne): Call h8300_expand_branch(). - -2004-02-18 Kazu Hirata - - * config/h8300/h8300-protos.h: Add prototypes for - h8300_hard_regno_nregs and h8300_hard_regno_mode_ok. - * config/h8300/h8300.c (h8300_hard_regno_nregs): New. - (h8300_hard_regno_mode_ok): Likewise. - * config/h8300/h8300.h (HARD_REGNO_NREGS): Call - h8300_hard_regno_nregs(). - (HARD_REGNO_MODE_OK): Call h8300_hard_regno_mode_ok(). - -2004-02-18 Per Bothner - - * cpphash.h (struct cpp_buffer): Restore return_at_eof field. This - partly reverts my 2003-10-01 change, because we're back to logically - including inside the main line. - * cpplex.c (_cpp_get_fresh_line): Check return_at_eof field. - * cppmacro.c (cpp_scan_nooutput): Set return_at_eof of current buffer. - Fixes PR preprocessor/14103. - - * cppfiles.c (_cpp_stack_include): When appropriate decrement - line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION. - (cpp_push_include): Don't need to increment pfile's line field. - * line-map.h (LAST_SOURCE_LINE_LOCATION): Only decrement by 1. - - * c-ppoutput.c (print struct): New first_time field. - (init_pp_output): Set print.first_time. - (pp_file_change): Use print.first_time, rather than MAIN_FILE_P, - which is set also for (say) . Clear print.first_time. - - * cppfiles.c (struct _cpp_file): Comment and type for pch field - does not match the code, so fix both. - (should_stack_file): Inline include_pch_p function. - (include_pch_p): Remove pointless function. - - * cpphash.h (struct cpp_buffer): Remove unused search_cached field. - -2004-02-18 Kazu Hirata - - * config/h8300/h8300.md (four define_peephole2's): Use - h8300_regs_ok_for_stm(). - -2004-02-18 Kazu Hirata - - * config/h8300/h8300-protos.h: Update the prototype for - expand_a_rotate(). - * config/h8300/h8300.c (expand_a_rotate): Remove the first - argument. - * config/h8300/h8300.md: Update all callers. - -2004-02-18 Jan Hubicka - - * simplify-rtx.c (simplify_unary_operation): Deal with logicals on - floats. - (simplify_binary_operation): Deal with logicals on floats. - - * i386.md (SSE fabs splitters): Emit new patterns. - (SSE cmov splitters): Likewise. - (sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3 - (sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use - subregs. - (sse_andsf3, sse_nandsf3, sse_xorsf3): Kill. - (sse_anddf3, sse_nanddf3, sse_xordf3): Kill. - -2004-02-18 Kazu Hirata - - * config/h8300/h8300.c (expand_a_rotate): Don't generate insns - by hand. - (output_a_rotate): Tweak a comment. - * config/h8300/h8300.md (*rotlqi3_1): Change to rotlqi3_1. - (*rotlhi3_1): Change to rotlhi3_1. - (*rotlsi3_1): Change to rotlsi3_1. - -2004-02-18 Richard Earnshaw - - PR target/13866 - * arm.c (load_multiple_operation): Don't insist that the source reg - of a post-increment component is the same as the destination. - (store_multiple_operation): Likewise. - -2004-02-18 Kazu Hirata - - * config/h8300/h8300.md: Move movsf patterns into one section - of the file. - -2004-02-18 Kazu Hirata - - * cfgloop.h, cfgloopanal.c, cpplex.c, except.h, loop-init.c, - loop-unroll.c, scan-decls.c, scan.h, stor-layout.c, - xcoffout.c, xcoffout.h, config/arm/mmintrin.h, - config/mips/linux64.h, config/pa/pa-64.h, - config/rs6000/aix51.h, config/rs6000/aix52.h, - config/rs6000/spe.md, config/sparc/linux.h, - config/sparc/linux64.h: Update copyright. - -2004-02-18 Kazu Hirata - - * config/h8300/h8300.md: Move push patterns into one - section of the file. - -2004-02-18 Mark Mitchell - - PR c++/11326 - * config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL - fntype. - -2004-02-18 Paul Brook - - * rtlanal.c (rtx_varies_p): Return 0 for NULL_RTX - -2004-02-18 Paul Brook - - PR debug/12934 - * dwarf2out.c (loc_descriptor_from_tree): Handle - EXPR_WITH_FILE_LOCATION. - -2004-02-18 Jakub Jelinek - - * config/i386/i386.md (zero_extendqidi2, zero_extendqidi2, - testdi_1_rex64, anddi_2, xordi_1_rex64, xordi_2_rex64): Remove - trailing whitespace from instructions. - -2004-02-17 Geoffrey Keating - - * configure.ac: When generating auto-build.h, pass - --enable-languages to the sub-configure. - Put quotes around ${program_transform_name} when generating - name of as, ld, nm, objdump. - * configure: Regenerate. - -2004-02-17 Matt Kraai - - * Makefile.in (s-check, s-config, s-conditions, s-flags) - (s-codes, s-constants, s-emit, s-recog, s-opinit, s-extract) - (s-peep, s-attr, s-attrtab, s-output, s-genrtl, s-modes) - (s-preds, s-iov): Do not depend on move-if-change. - -2004-02-17 James E Wilson - - * caller-save.c (insert_restore): Pass mem through copy_rtx. - (insert_save): Likewise. - -2004-02-17 Kazu Hirata - - * config/h8300/h8300.c (h8300_emit_stack_adjustment): Fix a - warning. - -2004-02-17 Kazu Hirata - - * config/h8300/h8300.md (*one_complsi2_h8300): Change to - *one_cmplsi2_h8300. - (*one_complsi2_h8300hs): Change to *one_cmplsi2_h8300hs. - -2004-02-17 Kazu Hirata - - * config/h8300/h8300-protos.h: Update the prototype of - fix_bit_operand(). - * config/h8300/h8300.c (fix_bit_operand): Remove the second - argument "what". - * config/h8300/h8300.md: Update all callers. - -2004-02-17 Kazu Hirata - - * config/h8300/h8300.c (fix_bit_operand): Change the name of - the last argument to "code" from "type". - -2004-02-17 Kazu Hirata - - * config/h8300/h8300.c: Remove an extern declaration of - rtx_equal_function_value_matters. - -2004-02-17 Kazu Hirata - - * config/h8300/h8300.c (fix_bit_operand): Don't generate insns - by hand. - * config/h8300/h8300.md (*andqi3_1): Change to andqi3_1. - (*iorqi3_1): Change to iorqi3_1. - (*xorqi3_1): Change to xorqi3_1. - -2004-02-17 Kazu Hirata - - * c-common.c, cfghooks.c, rtlanal.c, varasm.c: Fix comment - typos. - -2004-02-17 Jan Hubicka - - * i386.c (x86_prologue_using_move, x86_epilogue_using_move): Disable for P4. - -2004-02-18 Alan Modra - - PR optimization/14119 - * combine.c (try_combine): When attemting to fix unrecognized insns, - don't delete SETs marked with REG_EH_REGION notes. - -2004-02-17 Ulrich Weigand - - * combine.c (simplify_if_then_else): Do not replace - (if_then_else (ne reg 0) (0) (const_int)) by (reg) if the - modes differ. - -2004-02017 Steven Bosscher - - * (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c, - function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c, - tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION. - * ada/utils.c: Likewise. - * cp/decl.c: Likewise. - * f/com.c: Likewise. - * java/class.c: Likewise. - -2004-02-17 Kazu Hirata - - * config/h8300/h8300.md: Fix comment typos. - -2004-02-17 Rainer Orth - - * config/mips/t-iris6gld: Renamed to ... - * config/mips/t-irix-gld: ... this. - * config.gcc (mips-sgi-irix6*): Reflect this - (mips-sgi-irix5*): Use it with GNU ld. - - * config/mips/irix6-crti.asm, config/mips/irix6-crtn.asm: Renamed - to ... - * config/mips/irix-crti.asm, config/mips/irix-crtn.asm: ... this. - * config/mips/t-irix-gld: Reflect this. - * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise. - - * config/mips/iris5gld.h: New file. - * config.gcc (mips-sgi-irix5*): Use it with GNU ld. - Only use collect2 without gas. - - * config/mips/iris6.h (IRIX6_STARTFILE_SPEC, IRIX6_ENDFILE_SPEC): - Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC. - (STARTFILE_SPEC, ENDFILE_SPEC, SUBTARGET_EXTRA_SPECS): Reflect this. - * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise. - - * config/mips/iris6.h (SUBTARGET_EXTRA_SPECS): Moved ... - * config/mips/iris5.h: ... here. - - * config/mips/iris5.h (STARTFILE_SPEC, ENDFILE_SPEC): Renamed to - IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC. - (STARTFILE_SPEC, ENDFILE_SPEC): Define. - - * config/mips/iris5gas.h (STARTFILE_SPEC, ENDFILE_SPEC): Simplify - using irix_startfile_spec, irix_endfile_spec. - -2004-02-16 Gunther Nikl - - * config/m68k/m68k.c: Remove obsolete support for HPUX_ASM. - -2004-02-17 Kazu Hirata - - * config/h8300/h8300.c (h8300_expand_prologue): Don't generate - insns by hand. - -2004-02-17 Zdenek Dvorak - - * cfghooks.c (split_edge): Speed up updating of dominators. - -2004-02-17 Mark Mitchell - - PR c++/11326 - * c-common.c (flag_abi_version): Remove. - * c-common.h (flag_abi_version): Likewise. - * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case. - * c.opt (fabi-version): Remove. - * calls.c (expand_call): Always pass a function type to - struct_value_rtx. Use convert_memory_address. - * common.opt (fabi-version): Add it. - * flags.h (flag_abi_version): Likewise. - (abi_version_at_least): New macro. - * opts.c (common_handle_option): Add OPT_fabi_version. - * toplev.c (flag_abi_version): Define it. - * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p): - New function. - (ia64_output_mi_thunk): Use it. - (ia64_struct_value_rtx): Likewise. - -2004-02-17 Kazu Hirata - - * config/h8300/h8300.c (h8300_emit_stack_adjustment): - Don't generate insns by hand. - -2004-02-17 Andrew Pinski - - PR c++/14178 - * doc/invoke.texi (fabi-version): The default is 2 now. - -2004-02-17 Zdenek Dvorak - - * loop-iv.c: New file. - * Makefile.in (loop-iv.o): New. - * basic_block.h (FOR_BB_INSNS, FOR_BB_INSNS_REVERSE): New macros. - * cfgloop.c (fill_sons_in_loop, get_loop_body_in_dom_order, - num_loop_branches): New functions. - * cfgloop.h (get_loop_body_in_dom_order, num_loop_branches, - iv_analysis_loop_init, iv_get_reaching_def, iv_analyse, get_iv_value, - find_simple_exit, iv_number_of_iterations, iv_analysis_done, - get_simple_loop_desc, free_simple_loop_desc): Declare. - (simple_loop_desc): New inline function. - (struct rtx_iv, struct niter_desc): New. - * cfgloopmanip.c (loopify): Specify semantics more precisely. - * expr.c (force_operand): Handle subregs of expressions created by - loop unroller. - * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Move - parts of the initialization to toplev.c - * loop-unroll.c (loop_exit_at_end_p): New. - (unroll_and_peel_loops): Call iv_analysis_done. - (decide_peel_once_rolling, decide_peel_completely, - decide_unroll_stupid, decide_unroll_constant_iterations, - decide_unroll_runtime_iterations, decide_peel_simple, - peel_loop_simple, unroll_loop_stupid, unroll_loop_constant_iterations, - unroll_loop_runtime_iterations): Use new simple loop analysis. - * loop-unswitch.c (compare_and_jump_seq): New. - (may_unswitch_on_p): Renamed to ... - (may_unswitch_on): Use new iv analysis. - (reversed_condition): Export. - (unswitch_single_loop, unswitch_loop): Use new iv analysis. - * predict.c (estimate_probability): Use new simple loop analysis. - * rtl.h (get_mode_bounds, reversed_condition,compare_and_jump_seq, - canon_condition, simplify_using_condition): Declare. - * stor-layout.c (get_mode_bounds): New. - * toplev.c (rest_of_handle_loop2): Some parts of - initialization/finalization moved here from loop-init.c. - -2004-02-17 Kazu Hirata - - * config/h8300/h8300.h (FIXED_REGISTERS): Add the soft frame - pointer. - (CALL_USED_REGISTERS): Likewise. - (REG_ALLOC_ORDER): Likewise. - (REG_CLASS) : Likewise. - -2004-02-16 Geoffrey Keating - - * doc/md.texi (Insn Canonicalizations): Document left-chaining - in associative operators. - * rtlanal.c (commutative_operand_precedence): Create some new - variables. Prefer a commutative operand on the left, then - binary expressions, then NEG and NOT. - -2004-02-16 Matthias Klose - - * config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME - in terms of SHLIB_SOVERSION. - * config/m68k/t-slibgcc-elf-ver: New file. - * config/pa/t-slibgcc-elf-ver: New file. - * config.gcc (m68k-linux, parisc-linux): Use them when not - sjlj exceptions are not configured. - -2004-02-16 Eric Botcazou - - * config/sparc/sparc.c (get_pc_symbol_name): Mark with GTY(()). - -2004-02-16 Zack Weinberg - - * sdbout.c (sdb_debug_hooks): Correct the type_decl entry. - -2004-02-16 Joseph S. Myers - - * doc/sourcebuild.texi: Mention backends.html. - -2004-02-16 Kazu Hirata - - * c-decl.c, c-ppoutput.c, cpphash.h, cpplib.h, dbxout.c, - line-map.c, line-map.h, var-tracking.c: Fix comment - formatting. - -2004-02-16 Richard Henderson - - * cse.c (cse_insn): Don't lose REG_NON_LOCAL_GOTO note. - - * fold-const.c (operand_equal_p): Fix VECTOR_CST comparison. - -2004-02-15 Kazu Hirata - - * config/h8300/h8300.md: Remove unnecessary parallels from - all define_insn and define_split patterns. - -2004-02-15 Kazu Hirata - - * config/h8300/h8300.md: Remove explicit (set_attr "cc" - "clobber"). - -2004-02-15 Bernardo Innocenti - - * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Restore support for - '%#'. - -2004-02-15 Kazu Hirata - - * config/ia64/ia64.c, config/mips/mips.c, - config/mmix/mmix-modes.def: Fix comment typos. - -2004-02-15 Roger Sayle - - * c-common.h (GET_DIRECTIVE_LINE): Remove unused macro. - (get_directive_line): Remove unused function prototype. - -2004-02-14 Josef Zlomek - - * tree-inline.c (copy_body_r): Do not replace ret_label. - -2004-02-14 Jan Hubicka - - * i386.c (x86_four_jump_limit): New variable. - (k8_avoid_jump_misspredicts): Rename to ... - (ix86_avoid_jump_misspredicts): .. this one. - (ix86_pad_returns): Break out from ... - (ix86_reorg): ... this one; do ix86_avoid_jump_misspredicts when asked - to. - * i386.h (TARGET_FOUR_JUMP_LIMIT): New macro. - -2004-02-14 Josef Zlomek - - * emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of - PARALLEL is NULL. - -2004-02-14 Per Bothner - - * fix-header.c (line_table): Move local variable in main to global. - * scan.h (line_table): Use it. - * scan-decls.c (scan_decls): Need to call linemap_lookup on token's - line (recently renamed to src_loc) before calling recognized_function. - -2004-02-14 Matt Kraai - - * Makefile.in: Fix comment typos. - -2004-02-14 Olivier Hainque - - * loop.c (check_dbra_loop): Use gen_int_mode instead of GEN_INT - for start_value when it is directly moved into reg, and factorize - the retrieval of GET_MODE (reg). - -2004-02-14 Richard Sandiford - - * config/mips/mips-protos.h (mips_load_got_page): Delete. - (mips_load_got_global): Delete. - (mips_gotoff_page): Declare. - * config/mips/mips.md (UNSPEC_LOAD_GOT): New constant. - (*xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i): Build an - UNSPEC_LOAD_GOT pattern rather than a MEM. - (*load_got[sd]i): New patterns. - * config/mips/mips.c (mips_got_alias_set, mips_load_got): Delete. - (mips_load_got_page, mips_load_got_global): Delete. - (mips_gotoff_page): New function. - (override_options): Don't initialize mips_got_alias_set. - -2004-02-14 Richard Sandiford - - * config/mips/mips.h (MASK_DEBUG_[ABEFI], TARGET_DEBUG_[ABEFI]_MODE) - (TARGET_MIPS4100, TARGET_MIPS4300, TARGET_MIPS4KC, TARGET_MIPS5KC) - (TARGET_SB1, TUNE_SB1, TUNE_SR71K, BIGGEST_MAX_ARGS_IN_REGISTERS) - (GO_PRINTF, GO_PRINTF2, GO_DEBUG_RTX, DFMODE_NAN, SFMODE_NAN): Delete. - (TARGET_SWITCHES): Remove MASK_DEBUG_[ABEFI]. - * config/mips/mips.c: Fix some overly-long lines. - (SINGLE_WORD_MODE_P, PIC_OFFSET_TABLE_MASK): Delete. - (init_cumulative_args): Remove TARGET_DEBUG_E_MODE handling. - -2004-02-13 Rainer Orth - - * configure.ac: Search for as, ld below libexec/gcc. - * configure: Regenerate. - -2004-02-14 Ben Elliston - - * config/arm/mmintrin.h (_mm_setwcx): Reverse arguments in call to - __builtin_arm_setwcx (). - * config/arm/arm.c (arm_expand_builtin): Generate operands - correctly and reverse their order in call to gen_iwmmxt_tmcr (). - -2004-02-14 Ben Elliston - - * config/arm/arm.c (bdesc_2arg): Correct builtin names "wmulsh" - and "wmuluh" to "wmulsm" and "wmulum", respectively. - * config/arm/arm.h (enum arm_builtins): Rename enumerators to - ARM_BUILTIN_WMULSM and ARM_BUILTIN_WMULUM. - * config/arm/mmintrin.h (_mm_mulhi_pi16): Update intrinsic call. - (_mm_mulhi_pu16): Likewise. - -2004-02-13 Zack Weinberg - - * xcoffout.c (xcoff_assign_fundamental_type_number): Check - DECL_NAME != 0 before dereferencing. - -2004-02-13 Ulrich Weigand - - * config/s390/s390-protos.h (s390_output_symbolic_const): Remove. - (s390_output_addr_const_extra): Declare. - (s390_output_pool_entry): Remove FILE * argument. - * config/s390/s390.c (s390_output_symbolic_const): Remove. - (s390_output_addr_const_extra): New function. - (print_operand_address): Call output_addr_const instead of - s390_output_symbolic_const. - (print_operand): Likewise. - (s390_output_pool_entry): Use assemble_integer for symbolic constants. - Remove FILE * argument. - * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Define. - * config/s390/s390.md ("*pool_entry"): Adapt s390_output_pool_entry - call. - -2004-02-13 Zdenek Dvorak - - * cfgloopanal.c (mark_irreducible_loops): Rewriten. - (struct edge, struct vertex, struct graph): New. - (dump_graph, new_graph, add_edge, dfs, check_irred, for_each_edge, - free_graph): New functions. - -2004-02-12 Chris Demetriou - - * config/mips/mips.md (casesi_internal, casesi_internal_di): - Use ".set macro" to avoid warnings about multi-instruction - macros, since they're intentional. - -2004-02-12 Geoffrey Keating - - * config/darwin.h: Add include guards. Remove old, now incorrect, - comment about STANDARD_EXEC_PREFIX. - - * Makefile.in (install-man): Use $(CPP_INSTALL_NAME) and - $(GCOV_INSTALL_NAME) to install manpages. Remove generic rule - for installing .1 manpages. Add rules for installing cpp - and gcov manpages under their installed names. - -2004-02-12 Alexandre Oliva - - * configure.ac (gcc_cv_ld): Don't set to LD if target is not - host, but try LD_FOR_TARGET first. - * configure: Rebuilt. - -2004-02-12 Zack Weinberg - - * dbxout.c: Move declaration of dbxout_type_decl outside - #ifdef DBX_DEBUGGING_INFO. - * c-parse.in: Don't give the asmdef production a type. - -2004-02-12 Zack Weinberg - - * debug.h (struct gcc_debug_hooks): Add type_decl field. - (debug_nothing_tree_int): Prototype. - (dwarf_debug_hooks): Delete, unused. - * debug.c (do_nothing_debug_hooks): Update. - (debug_nothing_tree_int): New function. - * langhooks.h (struct lang_hooks_for_decls): - Remove builtin_type_decls field. - * langhooks-def.h (LANG_HOOKS_BUILTIN_TYPE_DECLS): Delete. - (LANG_HOOKS_DECLS): Update. - * toplev.c (rest_of_decl_compilation, rest_of_type_compilation): - Use debug_hooks->type_decl. - * dbxout.c (preinit_symbols): New static. - (dbx_debug_hooks, xcoff_debug_hooks): Update. - (dbxout_init): Don't call DBX_OUTPUT_STANDARD_TYPES or - lang_hooks.decls.builtin_type_decls. Do scan preinit_symbols - for symbols to output. - (dbxout_type_decl): New function. - (dbxout_symbol): If called before dbxout_init has run, queue - the symbol for later. Apply DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER - to TYPE_DECLs before emitting them. - * xcoffout.c (assign_type_number): Delete. - (xcoff_type_numbers): New static table. - (xcoff_assign_fundamental_type_number): New function. - * xcoffout.h: Define DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER, not - DBX_OUTPUT_STANDARD_TYPES. Remove unnecessary #ifdefs. - * sdbout.c: Include varray.h. - (deferred_global_decls): New static. - (sdb_debug_hooks): Update. - (sdbout_global_decl): If we can't emit something right now, - remember it in deferred_global_decls. - (sdbout_finish): Just scan deferred_global_decls; don't call getdecls. - (sdbout_init): Initialize deferred_global_decls. - * Makefile.in: Update dependencies of sdbout.o. - * dwarf2out.c (dwarf2out_type_decl): New function. - (dwarf2_debug_hooks): Update. - * vmsdbgout.c (vmsdbg_debug_hooks): Update. - * c-decl.c (getdecls): Just return 0. - (check_for_loop_decls): Don't use getdecls. - (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL. - * c-objc-common.c (c_objc_common_finish_file): Don't use getdecls. - -2004-02-12 Ulrich Weigand - - * config/s390/s390.c (s390_sched_reorder2): Remove. - (TARGET_SCHED_REORDER2): Do not redefine. - -2004-02-12 Zack Weinberg - - * c-parse.in (maybe_type_qual): Delete. - (maybe_volatile, simple_asm_expr, asmdef, asm_stmt) - (asm_argument): New grammar rules. - (extdef_1): Use asmdef. - (maybeasm): Move down with other asm rules; use simple_asm_expr. - (xexpr): Move up with other expression rules. - (stmt): Use asm_stmt. - - * c-typeck.c (build_asm_expr): New function - body mostly - pulled from build_asm_stmt. - (build_asm_stmt): Just handle tacking on the volatile qualifier. - * c-tree.h (build_asm_expr, build_asm_stmt): Update prototypes. - -2004-02-12 Richard Sandiford - - PR bootstrap/13617 - * config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare. - (mips_declare_object): Make variadic. - * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use - mips_output_aligned_decl_common. - * config/mips/mips.c (mips_output_aligned_decl_common): New function. - (mips_declare_object): Make variadic. - -2004-02-12 Richard Kenner - - * function.c (update_epilogue_consts): Teach about binary operations. - - * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill - previous MEM_VOLATILE in REF. - * function.c (fixup_var_refs): Save volatile_ok and set to 1. - * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok. - -2004-02-12 Gunther Nikl - - * config.gcc: Restore support for m68k-openbsd. - -2004-02-12 Jan Hubicka - - * tree-optimize.c (tree_rest_of_compilation): Do not release - DECL_ARGUMENTS. - -2004-02-11 Matt Kraai - - * doc/install.texi: Fix the spelling of "explicitly". - -2004-02-11 Eric Christopher - - * cppcharset.c (_cpp_interpret_string_notranslate): Rename and - duplicate argument structure of cpp_interpret_string. - * cpphash.h: Move prototype... - * cpplib.h: Here. - * cpplib.c: Fix calls to match new function signature. - -2004-02-11 Joseph S. Myers - - PR c/456 - * cppexp.c (num_binary_op): Don't allow comma operators in #if - constant expressions at all outside C99 mode if pedantic. - -2004-02-11 Uros Bizjak - - * optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2. - (log10_optab, log2_optab): Define corresponding macros. - * optabs.c (init_optabs): Initialize log10_optab and log2_optab. - * genopinit.c (optabs): Implement log10_optab and log2_optab - using log10?f2 and log2?f2 patterns. - * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L} - using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab. - (expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L} - using expand_builtin_mathfn if flag_unsafe_math_optimizations is set. - - * config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2, - log2df2, log2xf2): New patterns to implement log10, log10f, log10l, - log2, log2f and log2l built-ins as inline x87 intrinsics. - -2004-02-11 Richard Henderson - - PR target/1532 - * flow.c (insn_dead_p): A clobber of a dead hard register is a - dead insn after reload. - -2004-02-11 Ulrich Weigand - - * tree.h (frame_base_decl): Add GTY marker. - * var-tracking.c (frame_base_decl): Likewise. - -2004-02-11 Daniel Berlin - - * dwarf2out.c (output_loc_list): Remove no longer necessary, and now - incorrect, hunk. - (add_location_or_const_value_attribute): Use text_section_label, - not TEXT_SECTION_NAME. - -2004-02-11 Per Bothner - - Represent column numbers using line-map's source_location. - The "next available source_location" is now managed internally by - line-maps.c rather than by clients. - * line-map.h (struct line_map): New field column_bits. - : Rename field to start_location. - (struct line_maps): New fields highest_location and max_column_hint. - (linemap_check_files_exited): New declaration. - (linemap_line_start): New declaration. - (linemap_add): Remove from_line parameter; use highest_location field. - (SOURCE_LINE, LAST_SOURCE_LINE): Modify to use column_bits. - (SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION): New macros. - (CURRENT_LINE_MAP): Remove macro. - (linemap_position_for_column): New inline function. - * line-map.c (linemap_init): Clear new fields. - (linemap_check_files_exited): New function, extracted from ... - (linemap_free): Use linemap_check_files_exited. - (linemap_add): Remove from_line parameter. Various updates. - (linemap_line_start): New function. - (linemap_lookeup): Update for new field names. - * cpphash.h (struct cpp_reader) : Field removed. Because - linemap_position_for_column may unpredictably change the current map, - it is cleaner and simpler for us to not cache it in cpp_reader. - (struct cpp_buffer): New sysp field. - Changed warned_cplusplus_comments and from_stage3 to bitfields. - * cppinit.c (cpp_read_min_file): pfile->map no longer exists. - * cpplib.c (do_line, do_linemarker, _cpp_do_file_change): Get - current map using linemap_lookup. - (do_linemarker): Also set buffer's sysp field. - (destringize_and_run): No longer need to decrement current line. - * cppfiles.c (_cpp_stack_file): Set sysp from and in buffer. - (search_path_head, open_file_failed): Use buffer's sysp. - (cpp_make_system_header): Get current map using linemap_lookup. - Also set buffer's sysp flag. - * cppmacro.c (_cpp_builtin_macro_text): Likewise use linemap_lookup. - * cpphash.h (CPP_INCREMENT_LINE): New macro. - (struct cpp_buffer): Moved fields saved_cur, saved_rlimit to ... - (struct cpp_reader): ... and adding saved_line_base field. - * cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay): - Update accordingly. Don't adjust line. - (_cpp_scan_out_logical_line): Use CPP_INCREMENT_LINE. - * cpphash.c (CPP_IN_SYSTEM_HEADER): Replaced macro by ... - (cpp_in_system_header): ... new inline function, using buffer's sysp. - * cpperror.c (_cpp_begin_message): Update to use cpp_in_system_header. - * cpplex.c (_cpp_lex_direct): Likewise. - * cppmacro.c (_cpp_builtin_macro_text): Likewise. - * cppmacro.c (_cpp_create_definition): Use buffer's sysp field. - * cpplib.h (struct cpp_token): Rename line field to src_loc. - Remove col field as it is now subsumed by src_loc. - * cpperror.c: Update various field, parameter, and macro names. - (print_location): If col==0, try SOURCE_COLUMN of line. - (cpp_error): Use cur_token's src_loc field, rather than line+col. - * cpplib.c (do_diagnostic): Token's src_loc fields replaces line+col. - * cpplex.c (_cpp_process_line_notes, _cpp_lex_direct, - _cpp_skip_block_comment): Use CPP_INCREMENT_LINE. - (_cpp_temp_token): Replace cpp_token's line+col fields by src_loc. - (_cpp_get_fresh_line): Don't need to adjust line for missing newline. - (_cpp_lex_direct): Use linemap_position_for_column. - * c-ppoutput.c (maybe_print_line, print_line): Don't take map - parameter. Instead get it from the line_table global. Adjust callers. - (print): Remove map field. Replace line field to src_line. - (init_pp_output, account_for_newlines, maybe_print_line): Adjust. - (cb_line_change): Use SOURCE_COLUMN. Minor optimizations. - (pp_file_change): Use MAIN_FILE_P since we cannot checked print.map. - Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include. - * cpptrad.c (copy_comment): Rename variable. - * c-lex.c (map): Remove static variable, for same reason we removed - cpp_reader's map field. - (cb_line_change, cb_def_pragma, cb_define, cb_undef): Hence we need - to call linemap_lookup. - (cb_line_change): Token's line field replaced by src_loc. - (fe_file_change): Use MAINFILE_P and LAST_SOURCE_LINE macros. - Don't save new_map. - - * cpphash.h, cpperror.c, cpplib.h: Some renames of fileline to - source_location. - -2004-02-11 Hartmut Penner - - * config/rs6000/altivec.md (*movv4si_internal): At least one - operand must be register_operand. - (*movv8hi_internal1): Likewise. - (*movv16qi_internal1): Likewise. - (*movv4sf_internal1): Likewise. - -2004-02-10 Aldy Hernandez - - * config/rs6000/spe.md ("*movv2si_internal"): Check for register - operand. - (movv4hi_internal): Same. - (movv2sf_internal): Same. - (movv1di_internal): Same. - -2004-02-11 Thiemo Seufer - - * config/mips/mips.h (TARGET_OLDABI): Define. Use TARGET_NEWABI and - TARGET_OLDABI consistently. - * config/mips/mips.c (function_arg,mips_setup_incoming_varargs, - mips_va_arg,override_options,compute_frame_size, - mips_initial_elimination_offset,mips16_fp_args,build_mips16_call_stub - ,mips_return_in_memory,mips_strict_argument_naming): Use TARGET_NEWABI - and TARGET_OLDABI consistently. - * config/mips/mips.md (exception_receiver): Likewise. - * config/mips/linux64.h: Likewise. - -2004-02-11 Hartmut Penner - - * gcc/config/rs6000/rs6000.c (rs6000_override_options) - Set AltiVec ABI and vrsave as default for ppc64 linux. - (init_cumulative_args): Post error, if try to return - value in AltiVec register without enable AltiVec. - (function_arg_advance): Ditto for passing arguments. - -2004-02-11 Richard Sandiford - - * emit-rtl.c (mark_label_nuses): Check that a LABEL_REF refers to - a label before updating its usage count. - -2004-02-10 Matt Kraai - - * doc/install.texi: Remove extra cd. - -2004-02-10 Ziemowit Laski - - * c-common.c (vector_size_helper): Remove; call - reconstruct_complex_type() instead. - * tree.c (reconstruct_complex_type): New function - (formerly vector_size_helper() in c-common.c). - (make_vector): Make externally visible. - * tree.h (reconstruct_complex_type, make_vector): Add prototypes. - -2004-02-10 Kazu Hirata - - * config/h8300/h8300-protos.h: Add a prototype for - h8300_regs_ok_for_stm. - * config/h8300/h8300.c (h8300_regs_ok_for_stm): New. - * config/h8300/h8300.md (stm_h8300s_2_advanced, - stm_h8300s_2_normal, stm_h8300s_2, stm_h8300s_3_advanced, - stm_h8300s_3_normal, stm_h8300s_3, stm_h8300s_4_advanced, - stm_h8300s_4_normal, stm_h8300s_4, ldm_h8300s_2_advanced, - ldm_h8300s_2_normal, ldm_h8300s_2, ldm_h8300s_3_advanced, - ldm_h8300s_3_normal, ldm_h8300s_3, ldm_h8300s_4_advanced, - ldm_h8300s_4_normal, ldm_h8300s_4): Use - h8300_regs_ok_for_stm(). - -2004-02-10 Danny Smith - - PR c/14088 - * real.c (real_from_string): Look for 'X' as well as 'x' in - hexfloat strings. - -2004-02-10 Kazu Hirata - - * config/h8300/h8300.md: Remove an incorrect comment about - peephole2. Add comments. - -2004-02-10 Josef Zlomek - - PR/14058 - * emit-rtl.c (set_decl_incoming_rtl): New. - * tree.h (set_decl_incoming_rtl): New. - * function.c (assign_parms): Use set_decl_incoming_rtl for setting - DECL_INCOMING_RTL. - * ada/misc.c (adjust_decl_rtl): Likewise. - -2004-02-10 Per Bothner - - * c-opts.c (c_common_post_options): Don't emit working directory - in cpp output if -P was specified. - -2004-02-10 Paolo Bonzini - - PR c/14092 - * fold-const.c (fold) : Convert result of - negate_expr back to the original type. - -2004-02-10 Alan Modra - - * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't - bump retaddr here. - -2004-02-10 Paolo Bonzini - - * rtl.h (schedule_insns, schedule_ebbs, fix_sched_param, - gen_lowpart_SUBREG): Move under the file in which they - are actually declared. - -2004-02-10 Arnaud Charlet - - * doc/sourcebuild.texi: Add libada documentation. - - * doc/install.texi: Update documentation on Ada build, now - that the GNAT lib and tools are built automatically. - -2004-02-10 Richard Sandiford - - * config/mips/mips.h (TARGET_GPWORD): Return false for TARGET_NEWABI - && TARGET_IRIX. - -2004-02-09 Ziemowit Laski - - * objc/objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS' - boundaries outside build_component_ref() call (a macro in ObjC++). - -2004-02-09 Bob Wilson - - * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update. - (init_cumulative_args): Likewise. - (a7_overlap_mentioned_p): Delete prototype. - * config/xtensa/xtensa.c (struct machine_function): Replace - incoming_a7_copied field with need_a7_copy and vararg_a7 flags. - Add set_frame_ptr_insn field. - (xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7. - (xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check - if the operand is an argument in a7. If so, copy a7 to a new pseudo - at the function entry and replace the operand with the pseudo. - (init_cumulative_args): Remove unused arguments. Add new "incoming" - argument and record this flag in CUMULATIVE_ARGS. - (function_arg): Remove result_mode and special-case code to handle - arguments in a7. Instead, set need_a7_copy flag when there is an - incoming argument in a7. - (xtensa_expand_prologue): Remove code to search for set_frame_ptr insn - and use the value recorded in cfun->machine->set_frame_ptr_insn. - (xtensa_builtin_saveregs): Check for negative gp_left value. Set - need_a7_copy and vararg_a7 flags. Use move_block_from_reg instead of - special-case code. - (a7_overlap_mentioned_p): Delete. - * config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag. - (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless - arguments to init_cumulative_args and pass "incoming" flag instead. - (BLOCK_REG_PADDING): Delete. - * config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary - checks for reload_in_progress and reload_completed. Update calls to - xtensa_copy_incoming_a7. - (ashlsi3): Rename existing insn to ashlsi3_internal. Add expander - to call xtensa_copy_incoming_a7. - -2004-02-09 DJ Delorie - - * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No - longer modify standard_exec_prefix, standard_bindir_prefix, or - standard_startfile_prefix. - -2004-02-09 James E Wilson - - PR c++/11295 - * c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call - to expand_expr_real call, and pass in alt_rtl as last argument. - - PR libstdc++/5625 - * builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New. - * builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER. - * builtins.def (BUILT_IN_EXTEND_POINTER): New. - * except.c (expand_builtin_extend_pointer): New. - * except.h (expand_builtin_extend_pointer): Declare. - -2004-02-09 David Edelsohn - - * config/rs6000/rs6000.c (rs6000_emit_move): Remove splitting slow - unaligned loads and stores. - -2004-02-09 Rainer Orth - - * config/mips/iris5.h (BSS_SECTION_ASM_OP): Define. - * config/mips/iris6.h (BSS_SECTION_ASM_OP): Undef. - - * config/mips/iris6.h (TARGET_ASM_NAMED_SECTION): Moved ... - * config/mips/iris5.h: ... here. - * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Remove. - - * config/mips/iris6.h (EXTRA_SECTION_FUNCTIONS): Move ... - * config/mips/iris5.h: ... here. - -2004-02-09 Rainer Orth - - * configure.ac: Remove default executable files before AC_PROG_CC. - * configure: Regenerate. - -2004-02-09 Kazu Hirata - - PR target/13721 - * config/h8300/h8300.c (byte_reg): Call abort() if asked to - print a operand other than a register. - -2004-02-09 Roger Sayle - - * fold-const.c (fold) : Use the original type conversion - tree code rather than call fold_convert, which doesn't specify a - default floating point to integer conversion. - -2004-02-08 Bernardo Innocenti - - * config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove - code to support SGS assembler. Reformat adjacent code where possible. - * config/m68k/m68k.c (switch_table_difference_label_flag): Remove - definition. - * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support - for '%#'. - * config/m68k/linux.h, config/m68k/m68k.c, - * config/m68k/math-68881.h: Replace `%#' with `#' in inline asm - macros and asm_printf() format strings. - * config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition. - * config/m68k/linux.h: Update copyright. - * config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace. - -2004-02-08 Andreas Schwab - Bernardo Innocenti - - * config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with - REGISTER_PREFIX. - * (M68K_FP_REG_NAME): New macro to specify an alternate name for the - frame pointer register, overridable by OS targets. - * (M68K_REGNAME): Macro to obtain register name for asm output, - eventually replacing %a6 with M68K_FP_REG_NAME. - * config/m68k/coff.h (REGISTER_NAMES): Don't redefine. - * config/m68k/linux.h (REGISTER_NAMES): Likewise. - * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise. - * config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise. - * config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x]. - -2004-02-08 Kazu Hirata - - * target-def.h (TARGET_STRUCT_VALUE_RTX): Define as - hook_rtx_tree_int_null. - * targhooks.c (default_struct_value_rtx): Remove. - * targhooks.h: Remove the prototype for - default_struct_value_rtx. - * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c, - config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c, - config/ip2k/ip2k.c, config/iq2000/iq2000.c, - config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c, - config/mn10300/mn10300.c, config/pdp11/pdp11.c, - config/rs6000/rs6000.c, config/s390/s390.c, - config/stormy16/stormy16.c, config/v850/v850.c, - config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove. - * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default. - -2004-02-08 Joseph S. Myers - - * README.Portability: Change "ISO C89" to "ISO C90". - * c-parse.in (primary, initelt): Likewise. - -2004-02-08 Richard Sandiford - - * real.c (encode_ibm_extended): Normalize the input value before - converting it to a double. Handle the case where a normal value - rounds to infinity. - -2004-02-08 Kazu Hirata - - * c-objc-common.c (c_cannot_inline_tree_fn): Fix a typo in a - warning. - * cse.c (preferrable): Change to preferable. Update all of its - callers. - * genautomata.c (ainsn): Change - first_ainsn_with_given_equialence_num to - first_ainsn_with_given_equivalence_num. Update all of its - references. - -2004-02-08 Jan Hubicka - - * schedule-ebb.c (schedule_ebbs): Do not allocate reg life data. - -2004-02-07 David Edelsohn - - * function.c (assign_parms): Fix formatting. - -2004-02-07 Kazu Hirata - - * default.h (PROMOTE_PROTOTYPES): Remove. - * system.h (PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES, - STRUCT_VALUE_REGNUM, SETUP_INCOMING_VARARGS, - EXPAND_BUILTIN_SAVEREGS): Poison. - * target-def.h (TARGET_PROMOTE_FUNCTION_RETURN): Define as - hook_bool_tree_false. - (TARGET_PROMOTE_PROTOTYPES): Likewise. - * target.h: Replace SETUP_INCOMING_VARARGS with - targetm.calls.setup_incoming_varargs(). - * targhooks.c (default_promote_function_return): Remove. - (default_promote_prototypes): Likewise. - (default_struct_value_rtx): Always abort(). - (default_expand_builtin_saveregs): Always print an error - message. - (default_setup_incoming_varargs): Do nothing. - (default_pretend_outgoing_varargs_named): Don't depend on - SETUP_INCOMING_VARARGS. - * targhooks.h: Remove the prototype for - default_promote_function_return and - default_promote_prototypes. - -2004-02-07 Kazu Hirata - - * system.h (SHARED_SECTION_ASM_OP): Poison. - * varasm.c (data_section): Don't use SHARED_SECTION_ASM_OP. - * doc/tm.texi (SHARED_SECTION_ASM_OP): Remove. - -2004-02-07 Zack Weinberg - - Bug 13856 - * c-decl.c (diagnose_mismatched_decls): Only give special - treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE - is also true. - (merge_decls): Don't clear DECL_BUILT_IN_CLASS and - DECL_FUNCTION_CODE when defining a built-in function. - Don't update DECL_ESTIMATED_INSNS. - * dwarf2out.c (dwarf2out_decl): Don't ignore built-in - FUNCTION_DECLs. - * tree.h: Delete DECL_ESTIMATED_INSNS. - * tree-inline.c (struct inline_data): Delete inlined_insns field. - (expand_call_inline, optimize_inline_calls): Don't update - DECL_ESTIMATED_INSNS nor inlined_insns. - * cgraphunit.c (cgraph_analyze_function): Don't update - DECL_ESTIMATED_INSNS. - -2004-02-07 Zack Weinberg - - * c-common.c (shadow_warning): Delete. - * c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete. - * c-decl.c (warn_if_shadowing): Issue shadow warnings directly. - * c-opts.c (c_common_parse_file): Don't call free_parser_stacks. - * c-parse.in (free_parser_stacks): Delete. - -2004-02-07 Nathanael Nerode - - * Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver, - config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux: - Use the top level mkinstalldirs, not the one in the gcc subdir. - * mkinstalldirs: Remove (from the gcc subdir). - -2004-02-07 Roger Sayle - - PR middle-end/13696 - * fold-const.c (fold_convert): New function to provide type - conversion to the middle-end without using convert. - (negate_expr, associate_trees, size_diffop, omit_one_operand, - operand_equal_for_comparison_p, pedantic_omit_one_operand, - invert_truthvalue, optimize_bit_field_compare, range_binop, - decode_field_reference, make_range, build_range_check, unextend, - fold_truthop, extract_muldiv_1, fold_mathfn_compare, - fold_binary_op_with_conditional_arg, fold_inf_compare, - fold_single_bit_test, fold, multiple_of_p): Replace all calls to - convert with calls to fold_convert. - -2004-02-07 Jan Hubicka - - * genrecog.c (find_operand): add extra argument stop. - (validate_pattern): Verify that mach_dup is duplicating operand - defined lexically earlier. - -2004-02-07 Kazu Hirata - - * config.gcc: Don't mention MAX_LONG_TYPE_SIZE. - * system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, - MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison. - * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h, - config/ia64/ia64.h, config/ip2k/ip2k.h, - config/iq2000/iq2000.h, config/mips/iris5.h, - config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h, - config/rs6000/aix51.h, config/rs6000/aix52.h, - config/rs6000/darwin.h, config/rs6000/rs6000.h, - config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h, - config/sparc/linux.h, config/sparc/linux64.h, - config/sparc/netbsd-elf.h, config/sparc/sparc.h, - config/xtensa/xtensa.h: Remove the definitions of - MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or - MAX_WCHAR_TYPE_SIZE. - * doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, - MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove. - -2004-02-07 Stephane Carrez - - PR bootstrap/13990 - * config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to - gen_rtx_NE. - -2004-02-07 Josef Zlomek - - * var-tracking.c (vt_add_function_parameters): Surround checkings by - #ifdef ENABLE_CHECKING and #endif. - -2004-02-07 Roger Sayle - - * fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into - either (-A)-B or (-B)-A, if A or B is easily negated respectively. - (fold) : Optimize (A*C) - (B*C) -> (A-B)*C for both - integer types and floating point with unsafe_math_optimizations. - Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2). - Optimize A - B as A + (-B), if B is easily negated. - -2004-02-07 Kazu Hirata - - * c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c, - config/darwin.c, config/darwin.h, config/ia64/ia64-c.c, - config/m32r/linux.h, config/rs6000/ppc64-fp.c, - config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi: - Update copyright. - -2004-02-07 Kazu Hirata - - * c-ppoutput.c, var-tracking.c: Fix comment typos. - -2004-02-06 James E Wilson - - * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for - glibc 2.3 or better. - -2004-02-06 Kazu Hirata - - * doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change - to FLOAT_LIB_COMPARE_RETURNS_BOOL. - -2004-02-07 Alan Modra - - * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c. - (SHLIB_MAPFILES): Add libgcc-ppc64.ver. - (SHLIB_MKMAP_OPTS): Delete. - (TARGET_LIBGCC2_CFLAGS): Add -specs. - (bispecs): Add rule. - * config/rs6000/libgcc-ppc64.ver: New file. - * config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions. - (__floatdidf, __floatdisf): Optimize multiply. - (__fixunstfdi): New function. - * config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for - real and imag parts larger than one register. - (function_arg): Correct type of reg used when fp arg split partially - to stack. - * config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT - and __MACH__ or __powerpc64__. - -2004-02-06 Roger Sayle - Ulrich Weigand - - * builtins.c (expand_builtin_signbit): Use extract_bit_field instead - of gen_highpart or gen_lowpart when the floating point format is - wider than the result mode. - -2004-02-06 Andrew Pinski - - * dwarf2out.c (loclabel_num): Move into #ifdef - DWARF2_DEBUGGING_INFO. - -2004-02-06 Ziemowit Laski - - * objc/objc-act.c (build_super_template) the 'class' field of - 'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS. - (get_super_receiver): Likewise. - -2004-02-06 Kazu Hirata - - * reload1.c (check_eliminable_occurrences): Optimize the reset - of can_eliminate. - (eliminate_regs_in_insn): Likewise. - -2004-02-06 Daniel Berlin - Josef Zlomek - - * dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function - at the beginning of function, call dwarf2out_var_location for - NOTE_INSN_VAR_LOCATION note. - (struct var_loc_node, struct var_loc_list_def, loclabel_num, - decl_loc_table): New. - (lookup_decl_loc): New function. - (add_var_loc_to_decl): New function. - (based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used - only if can_use_fbreg. - (mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other - functions. - (loc_descriptor): Likewise. Process VAR_LOCATION. - (concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true. - (loc_descriptor_from_tree): Call mem_loc_descriptor with - can_use_fbreg == true. - (add_location_or_const_value_attribute): Added parameter enum - dwarf_attribute attr, generate attribute ATTR. Create the location list. - (add_bound_info): Call loc_descriptor with can_use_fbreg == true. - (gen_formal_parameter_die): Call add_location_or_const_value_attribute - with attr == DW_AT_location. - (gen_subprogram_die): Generate the location list for DW_AT_frame_base - if frame_base_decl is defined and has a location list. - (gen_variable_die): Call add_location_or_const_value_attribute with - attr == DW_AT_location. - (dwarf2out_var_location): New function. - (dwarf2out_begin_function): New function. - (dwarf2out_init): Create decl_loc_table. - -2004-02-06 Ulrich Weigand - - * loop.c (force_movables): Transitively increase the priorities of - all insns forces by an insn, not just the first one. - -2004-02-06 Josef Zlomek - Daniel Berlin - - Josef Zlomek - * Makefile.in (var-tracking.o): New. - * common.opt (fvar-tracking): New. - * flags.h (flag_var_tracking): New. - * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added. - * opts.c (common_handle_option): Add OPT_fvar_tracking. - * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added. - * rtl.c (note_insn_name): Likewise. - * rtl.def (VAR_LOCATION): New. - * rtl.h (NOTE_VAR_LOCATION): New. - (NOTE_VAR_LOCATION_DECL): New. - (NOTE_VAR_LOCATION_LOC): New. - (enum insn_note): NOTE_INSN_VAR_LOCATION was added. - (variable_tracking_main): New exported function. - * timevar.def (TV_VAR_TRACKING): New. - * toplev.c (enum dump_file_index): Added DFI_vartrack. - (dump_file): "vartrack" was added (-dV). - (flag_var_tracking): New. - (f_options): "var-tracking" was added. - (rest_of_handle_variable_tracking): New function. - (rest_of_compilation): Run variable tracking. - (process_options): If user has not specified flag_var_tracking set it - according to optimize, debug_info_level and debug_hooks. - * tree.h (frame_base_decl): New. - * var-tracking.c: New file. - * config/ia64/ia64.c (ia64_flag_var_tracking): New variable. - (ia64_override_options): Set flags to run variable tracking in machine - dependent reorg instead of toplev.c. - (ia64_reorg): Run variable tracking if wanted. - * doc/invoke.texi: Mention variable tracking in -dV, - add and -fvar-tracking. - * doc/passes.texi: Added variable tracking pass. - - Daniel Berlin - * debug.h (struct gcc_debug_hooks): Added var_location debug hook. - * dbxout.c (dbx_debug_hooks): Likewise. - (xcoff_debug): Likewise. - * debug.c (do_nothing_debug_hooks): Likewise. - * dwarf2out.c (dwarf2_debug_hooks): Likewise. - * dwarfout.c (dwarf_debug_hooks): Likewise. - * sdbout.c (sdb_debug_hooks): Likewise. - * vmsdbgout.c (vmsdbg_debug_hooks): Likewise. - * final.c (final_scan_insn): Call var_location debug hook for each - NOTE_INSN_VAR_LOCATION. - -2004-02-06 Jan Hubicka - - * flow.c (update_life_info): Allocate reg_deaths when called from - scheudler. - (attempt_auto_inc): Update life ranges accordingly. - -2004-02-06 Ulrich Weigand - - PR debug/11816 - * dwarf2out.c (gen_decl_die): Handle anonymous struct members. - -2004-02-06 Ulrich Weigand - - * cfganal.c (flow_call_edges_add): Never split a libcall block. - -2004-02-06 Daniel Berlin - - * dwarf2out.c (output_loc_list): Don't use deltas if we have - a separate line info table in use. - Use the correct size for terminators. - (output_die): Use offset, not delta. - -2004-02-06 H.J. Lu - - * doc/invoke.texi: Remove the pni option from -mfpmath=. - -2004-02-06 Jan Hubicka - - * recog.c (split_all_insns): Do not update reg info. - * regrename.c (regrename_optimize): Likewise. - * toplev.c (rest_of_handle_reorder_blocks): Likewise. - * flow.c (struct propagate_block_info): Add insn_num field. - (reg_deaths): New array. - (life_analysis): Free reg_deaths info. - (allocate_reg_life_data): Allocate reg_deaths array. - (propagate_one_insn): Use new array. - (init_propagate_block): Initialize it. - (free_propagate_block_info): Finish compuation of - REG_LIVE_LENGTH - (attempt_auto_inc): Sanity check that REG_INFO is not - computed at same time. - (mark_used_regs): Update new array. - - * reg-stack.c (subst_stack_regs): Unshare clobbers before - substitution. - -2004-02-06 Kazu Hirata - - * config/s390/s390.md (*extendsiqi2_short_displ): Change to - *extendqisi2_short_displ. - -2004-02-06 Alan Modra - - * doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco. - * calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS. - (emit_library_call_value_1): Likewise pass nargs. - * expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here. - * function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS. - * config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args - parameter instead of scanning TYPE_ARGS_TYPES to count args. - * config/rs6000/rs6000-protos.h (init_cumulative_args): Update - prototype. - * config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg. - (INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000. - (INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0. - * config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to - INIT_CUMULATIVE_ARGS. - * config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update. - * config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h, - config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h, - config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h, - config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h, - config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h, - config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h, - config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h, - config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h, - config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h, - config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h, - config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise. - -2004-02-06 Kazu Hirata - - * genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever - possible. - -2004-02-06 Kazu Hirata - - * reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL - note containing (plus (reg) (const_int)), where reg is an - eliminable reg, then perform the register elimination without - depending on eliminate_regs(). - -2004-02-06 Kazu Hirata - - * config/arc/arc.c (arc_return_in_memory): Check the return - value of int_size_in_bytes against -1. Don't check - TREE_ADDRESSABLE. - * config/avr/avr.c (avr_return_in_memory): Check the return - value of int_size_in_bytes against -1. - * config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise. - * config/m68hc11/m68hc11.c (m68hc11_return_in_memory): - Likewise. - * config/mcore/mcore.c (mcore_return_in_memory): Likewise. - * config/stormy16/stormy16.c (xstormy16_return_in_memory): - Likewise. - -2004-02-06 Kazu Hirata - - * config/frv/frv-protos.h: Remove the prototype for - frv_setup_incoming_varargs. - * config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New. - (frv_setup_incoming_varargs): Make it static. - * config/frv/frv.h (SETUP_INCOMING_VARARGS): Remove. - -2004-02-06 Kazu Hirata - - * config/fr30/fr30-protos.h: Remove the prototype for - fr30_setup_incoming_varargs. - Update the prototypes for fr30_num_arg_regs and - fr30_function_arg_partial_nregs. - * config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New. - (TARGET_SETUP_INCOMING_VARARGS): Likewise. - (fr30_setup_incoming_varargs): Make it static. - Add argument second_time. Don't do anything when second_time - is nonzero. - (fr30_num_arg_regs): Change the type of the first argument to - enum machine_mode. - (fr30_function_arg_partial_nregs): Change the type of the - second argument to enum machine_mode. - * config/fr30/fr30.h (STRUCT_VALUE): Remove. - (SETUP_INCOMING_VARARGS): Remove. - -2004-02-06 Kazu Hirata - - * config/arc/arc-protos.h: Remove the prototype for - arc_setup_incoming_varargs. - * config/arc/arc.c (TARGET_ASM_EXTERNAL_LIBCALL): New. - (TARGET_SETUP_INCOMING_VARARGS): Likewise. - (arc_setup_incoming_varargs): Make it static. - (arc_external_libcall): Likewise. - * config/arc/arc.h (SETUP_INCOMING_VARARGS): Remove. - Remove the commented-out definition of - ASM_OUTPUT_EXTERNAL_LIBCALL. - -2004-02-05 SUGIOKA Toshinobu - - * config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR) - to $$(slibdir) in the installation commands. - -2004-02-05 David Edelsohn - - * reload.c (refers_to_regno_for_reload_p): Index hard_regno_nregs - with inner_regno, not regno. - * rtlanal.c (refers_to_regno_p): Same. - -2004-02-05 Kazu Hirata - - * config.gcc: Remove i370 support. - -2004-02-05 Kelley Cook - - * doc/install.texi: Update automake and autoconf version - requirements. Note where to find gcj automake version. - -2004-02-05 Kelley Cook - - * Makefile.in (generate-manpages): Move dependencies to ... - (man): here. - * doc/makefile.texi: Document new targets. - * doc/sourcebuild.texi (Make-lang.in): Document new langhooks. - -2004-02-05 Kelley Cook - - PR/13485 - Makefile.in (srcextra): Add a level of indirection to ... - (gcc.srcextra): ... here. - (po-generated): Delete. - (po/$(PACKAGE).pot: Use srcextra instead of po-generated. Depend on - options.c. - (start.encap): Remove superfluous lang.srcextra dependency. - objc/Make-lang.in (po-generated): Delete. - -2004-02-05 Kazu Hirata - - * config/ia64/ia64.c (REG_GP): Remove. - -2004-02-05 Rainer Orth - - * config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define. - -2004-02-05 Devang Patel - - * dwarf2out.c (force_type_die): Look up input type itself - instead of root_type() of type. - -2004-02-05 Andreas Krebbel - - * config/s390/s390.md ("*tmqidi_ext"): New insn. - ("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old - pre-reload splitters are transformed to post-reload - define_insn_and_split patterns. - ("*tmqisi_ext"): Renamed old "*tmqi_ext". - -2004-02-05 Kazu Hirata - - * config/cris/cris.h: Replace PROMOTE_PROTOTYPES with - TARGET_PROMOTE_PROTOTYPES. - -2004-02-05 Rainer Orth - - PR middle-end/13750 - Revert: - 2004-01-15 Geoffrey Keating - PR pch/13361 - * c-typeck.c (constructor_asmspec): Delete. - (struct initializer_stack): Delete field 'asmspec'. - (start_init): Delete saving of asmspec. - (finish_init): Don't update constructor_asmspec. - * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree. - * stmt.c (expand_asm): Duplicate strings from tree. - (expand_asm_operands): Likewise. - * tree.c (tree_size): Update computation of size of STRING_CST. - (make_node): Don't make STRING_CST nodes. - (build_string): Allocate string with tree node. - * tree.def (STRING_CST): Update comment. - * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST. - (tree_string): Place contents of string in tree node. - * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string - from tree. - -2004-02-05 Joseph S. Myers - - * diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to - msgid. - -2004-02-05 Dorit Naishlos - - * config/rs6000/altivec.md (*movv4si_internal): At least one - operand must be altivec_register_operand. - (*movv8hi_internal1): Likewise. - (*movv16qi_internal1): Likewise. - (*movv4sf_internal1): Likewise. - -2004-02-05 David Edelsohn - - * configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr. - * configure: Regenerate. - -2004-02-05 Jonathan Wakely - - * doc/install.texi: Update description of --gxx-include-dir to - give correct default value. - -2004-02-05 Kazu Hirata - - * config/h8300/h8300.h (REG_OK_FOR_BASE_NONSTRICT_P): Replace - 8 with MAC_REG. - -2004-02-05 Kazu Hirata - - * config/pa/pa.c (emit_hpdiv_const): Replace gen_rtx with - gen_rtx_PARALLEL. - -2004-02-05 Kazu Hirata - - * emit-rtl.c: Update the comment about the file. - -2004-02-05 Joseph S. Myers - - * sourcebuild.texi (Test Idioms): Update testcase naming - conventions. - -2004-02-04 Per Bothner - - Partially revert/redo 2003-10-01 change; fix -fworking-directory. - * c-ppoutput.c (pp_dir_change): New function. - * c-common.h (pp_dir_change): New declaration. - * cpplib.h (struct cpp_options): Remove working_directory field. - * cppinit.c (cpp_find_main_file, cpp_push_main_file): Merge back to - (cpp_read_main_file): as before 10-01. Call _cpp_stack_file. - Don't handle -fworking_directory here, but in c_common_post_options. - (read_original_directory): Don't back up when done. - Don't clear no-longer used working_directory flag. - * cpplib.h: Update declarations to match. - * c-lex.c (cb_dir_change): Move to c-opts.c. - (init_c_lex): Don't set dir_change callback here, since we want - to set it even if flag_preprocess_only. - * c-opts.c (cb_dir_change): Function moved from c-lex.c. - (c_common_post_options): Set dir_change callback. - Call pp_dir_change if approporiate. - (finish_options): Don't call cpp_find_main_file here. Hence remove - unneeded parameter and result. Do LC_RENAME for . - (c_common_post_options): Call cpp_read_main_file here instead. - (c_common_init): Update accordingly. - (push_command_line_include): Don't cpp_push_main_file. - Do LC_RENAME rather than LC_LEASE to get back to main file. - Compared to pre-10-01 version, inline cpp_rename_to_main_file. - (c_common_parse_file): Call cpp_read_main_file for subsequent main - files, but call finish_options for all files. - * c-opts.c (sanitize_cpp_opts): Don't set cpp_opts->working_directory. - * fix-header.c (read_scan_file): Call cpp_read_main_file instead of - cpp_find_main_file + cpp_push_main_file. - * c-lex.c (fe_file_change): Don't set main_input_filename here. - * opts.c (handle_options): Only set main_input_filename first time. - -2004-02-05 Ian Lance Taylor - - * config/arm/arm.h (REG_CLASS_NAMES): Add missing comma. - -2004-02-04 Geoffrey Keating - - * reload.c (find_equiv_reg): When checking for register overlap, - don't index hard_regno_nregs with a pseudo-reg. - -2004-02-04 Ulrich Weigand - - * config/s390/s390.c (s390_trampoline_template): Remove gen_rtx(). - -2004-02-04 David Edelsohn - - * reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno, - against FIRST_PSEUDO_REGISTER. - -2004-02-04 Rainer Orth - - * Makefile.in: Move target, host overrides after per-language - fragments. - - * config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear. - (GNATLIBCFLAGS): Remove -g. - -2004-02-04 Kazu Hirata - - * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c, - config/i386/i386.c, config/i386/i386.h, config/i386/i386.md, - config/ia64/ia64.c, config/ia64/unwind-ia64.c, - config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c, - config/pdp11/pdp11.c, config/rs6000/rs6000.c, - config/sparc/sparc.c, config/vax/vax.c: Revert the - replacements of "FALLTHRU" with "Fall through" done in the - previous patch. - -2004-02-04 Kazu Hirata - - * config/darwin.c, config/darwin.h, config/freebsd-spec.h, - config/arm/arm.c, config/arm/arm.md, - config/cris/cris-protos.h, config/fr30/fr30.c, - config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h, - config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c, - config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h, - config/ip2k/ip2k.md, config/ip2k/libgcc.S, - config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h, - config/m68k/m68k.c, config/m68k/netbsd-elf.h, - config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md, - config/ns32k/netbsd.h, config/ns32k/ns32k.c, - config/ns32k/ns32k.h, config/pdp11/pdp11.h, - config/rs6000/darwin-ldouble.c, config/s390/s390.h, - config/s390/s390.md, config/sparc/netbsd-elf.h, - config/sparc/openbsd.h, config/sparc/sparc.c, - config/xtensa/lib2funcs.S: Fix comment formatting. - -2004-02-04 Kazu Hirata - - * config/alpha/alpha.c, config/arc/arc.c, - config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h, - config/arm/arm1026ejs.md, config/arm/arm1136jfs.md, - config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c, - config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md, - config/i386/i386.c, config/i386/i386.h, config/i386/i386.md, - config/ia64/ia64.c, config/ia64/unwind-ia64.c, - config/iq2000/iq2000.c, config/m32r/m32r.c, - config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h, - config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c, - config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c, - config/rs6000/rs6000.h, config/sparc/sparc.c, - config/vax/vax.c: Fix comment typos. Follow spelling - conventions. - -2004-02-04 Kazu Hirata - - * alloc-pool.h, c-convert.c, c-lang.c, c-tree.h, - caller-save.c, df.h, genconfig.c, global.c, lcm.c, - ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c, - sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md, - config/arm/fpa.md, config/arm/iwmmxt.md, - config/arm/netbsd-elf.h, config/arm/netbsd.h, - config/m68hc11/m68hc11.md, config/mips/iris5.h, - config/mn10300/mn10300.md, config/rs6000/altivec.md, - config/sparc/netbsd-elf.h: Update copyright. - -2004-02-04 Eric Botcazou - - * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1 - for all modes whose size is greater than 8 bytes if ARCH32. - (sparc_va_arg): Handle all modes whose size is greater than 8 bytes - by reference if ARCH32. - -2004-02-04 Aldy Hernandez - - * cgraphunit.c (cgraph_postorder): Fix typo in comment. - -2004-02-04 Ulrich Weigand - - * config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move - to before adddi3 insn patterns. - ("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31", - "reload_insi"): Move to before addsi3 insn patterns. - -2004-02-04 Mark Mitchell - - * calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P - parameter. Use it instead of current_function_is_thunk. - * function.h (struct function): Update documentation for is_thunk. - * tree.h (CALL_FROM_THUNK_P): New macro. - * config/alpha/alpha.c (alpha_sa_mask): Do not check - no_new_pseudos when testing current_function_is_thunk. - * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse. - -2004-02-04 Kazu Hirata - - * doc/tm.texi: Replace SETUP_INCOMING_VARARGS with - TARGET_SETUP_INCOMING_VARARGS. - -2004-02-04 Kazu Hirata - - * emit-rtl.c (gen_rtx): Remove. - * genattrtab.c: Don't mention gen_rtx in a comment. - * rtl.h: Remove the prototype for gen_rtx. - * doc/md.texi: Replace gen_rtx with gen_rtx_REG. - -2004-02-04 Kazu Hirata - - * config/arc/arc.h, config/fr30/fr30.h - (SETUP_INCOMING_VARARGS): Remove the target-independent - comments. - * doc/tm.texi: Don't mention deprecated target macros. - -2004-02-04 Kazu Hirata - - * config/fr30/fr30.h (FUNCTION_VALUE): Remove the - target-independent comment. - -2004-02-04 Kazu Hirata - - * doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't - mention deprecated target macros. - -2004-02-04 Kazu Hirata - - * config.gcc: Remove obsolete ports and configurations. - * config/linux-aout.h, config/netware.h, - config/t-linux-gnulibc1, config/d30v/abi, - config/d30v/d30v-protos.h, config/d30v/d30v.c, - config/d30v/d30v.h, config/d30v/d30v.md, - config/d30v/libgcc1.asm, config/d30v/t-d30v, - config/dsp16xx/dsp16xx-modes.def, - config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c, - config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md, - config/i370/README, config/i370/i370-c.c, - config/i370/i370-protos.h, config/i370/i370.c, - config/i370/i370.h, config/i370/i370.md, config/i370/linux.h, - config/i370/mvs.h, config/i370/oe.h, config/i370/t-i370, - config/i386/freebsd-aout.h, config/i386/linux-aout.h, - config/i386/moss.h, config/i386/netware.h, - config/i386/svr3.ifile, config/i386/svr3dbx.h, - config/i386/svr3gas.h, config/i386/svr3z.ifile, - config/i386/t-udk, config/i386/udk.h, config/i386/vsta.h, - config/i960/i960-c.c, config/i960/i960-coff.h, - config/i960/i960-modes.def, config/i960/i960-protos.h, - config/i960/i960.c, config/i960/i960.h, config/i960/i960.md, - config/i960/rtems.h, config/i960/t-960bare, - config/m68k/hp310.h, config/m68k/hp320.h, - config/m68k/hp320base.h, config/m68k/m68kv4.h, - config/m68k/netbsd.h, config/m68k/sgs.h, config/m68k/t-hp320: - Remove. - * doc/extend.texi, doc/install.texi, doc/invoke.texi, - doc/md.texi: Remove mentions of obsolete ports. - -2004-02-04 Jan Hubicka - - * alias.c (find_base_term, get_addr): Do not dereference NULL - pointer when all VALUE's locations has been invalidated. - (rtx_equal_for_memref_p): Simplify checking of VALUEs. - -2004-02-03 Wolfgang Bangerth - - * doc/invoke.texi (x86 options): Fix spelling/wording. - -2004-02-03 Richard Sandiford - - * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to - put the original string in a comment. - * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument. - * config/mips/mips.c (mips_output_ascii): Likewise. - * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly. - -2004-02-03 Kazu Hirata - - * system.h (GIV_SORT_CRITERION): Poison. - * config/avr/avr.h (GIV_SORT_CRITERION): Remove. - * config/ip2k/ip2k.h (GIV_SORT_CRITERION): Likewise. - -2004-02-03 Roger Sayle - - PR target/9348 - * expr.c (expand_expr_real) : When performing widening - multiplies with a multiplication of the wrong signedness, its the - signedness of the multiplication that we've performed that needs to - be passed to expand_mult_highpart_adjust. Avoid emitting a nop-move - if expand_mult_highpart_adjust places the result in target. - -2004-02-03 Richard Henderson - - * varasm.c (const_desc_rtx_sym_eq): Compare symbol strings. - -2004-02-03 J"orn Rennecke - - * config.gcc (sh[234]l): Use little endian fragments. - -2004-02-03 Paul Koning - - * config/pdp11/pdp11-modes.def: Add RESET_FLOAT_FORMAT calls. - * config/pdp11/pdp11-protos.h (legitimate_const_double_p): Add. - * config/pdp11/pdp11.c (encode_pdp11_f, decode_pdp11_f, - encode_pdp11_d, decode_pdp11_d): New functions to handle PDP11 - floating point format. - (pdp11_f_format, pdp11_d_format): New real_format descriptors for - the above functions. - (output_move_quad): Output float values in correct target format. - (legitimate_const_double_p): New function. - * config/pdp11/pdp11.h: Fix typos. - (FLOAT_WORDS_BIG_ENDIAN): Add definition. - (TARGET_FLOAT_FORMAT): Ditto. - (pdp11_f_format, pdp11_d_format): Add external declarations. - (MAX_REGS_PER_ADDRESS): Corrected. - (LEGITIMATE_CONSTANT_P): Use legitimate_const_double_p(). - (PRINT_OPERAND): Output float literals in target format. - -2004-02-03 Mark Mitchell - - PR c++/13975 - * tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and - TI_PRIVATE. - (access_public_node): Redefine. - (access_protected_node): Likewise. - (access_private_node): Likewise. - * tree.c (build_common_tree_nodes): Create access_public_node, - access_protected_node, and access_private_node. - -2004-02-03 Steve Ellcey - - * config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value. - (MASK_INLINE_INT_DIV_THR): Ditto. - (MASK_INLINE_SQRT_LAT): Ditto. - (MASK_INLINE_SQRT_THR): Ditto. - (MASK_DWARF2_ASM): Ditto. - (MASK_EARLY_STOP_BITS): Ditto. - -2004-02-02 Paul Brook - - Merge from csl-arm-branch. - - 2004-01-30 Paul Brook - - * aof.h (REGISTER_NAMES): Add vfp reg names - (ADDITIONAL_REGISTER_NAMES): Ditto. - * aout.h (REGISTER_NAMES): Ditto. - (ADDITIONAL_REGISTER_NAMES): Ditto. - * arm-protos.h: Update/Add Prototypes. - * arm.c (init_fp_table): Rename from init_fpa_table. Update users. - Only allow 0.0 for VFP. - (fp_consts_inited): Rename from fpa_consts_inited. Update users. - (values_fp): Rename from values_fpa. Update Users. - (arm_const_double_rtx): Rename from const_double_rtx_ok_for_fpa. - Update users. Only check valid constants for this hardware. - (arm_float_rhs_operand): Rename from fpa_rhs_operand. Update Users. - Only allow consts for FPA. - (arm_float_add_operand): Rename from fpa_add_operand. Update users. - Only allow consts for FPA. - (use_return_insn): Check for saved VFP regs. - (arm_legitimate_address_p): Handle VFP DFmode addressing. - (arm_legitimize_address): Ditto. - (arm_general_register_operand): New function. - (vfp_mem_operand): New function. - (vfp_compare_operand): New function. - (vfp_secondary_reload_class): New function. - (arm_float_compare_operand): New function. - (vfp_print_multi): New function. - (vfp_output_fstmx): New function. - (vfp_emit_fstm): New function. - (arm_output_epilogue): Output VPF reg restore code. - (arm_expand_prologue): Output VFP reg save code. - (arm_print_operand): Add 'P'. - (arm_hard_regno_mode_ok): Return modes for VFP regs. - (arm_regno_class): Return classes for VFP regs. - (arm_compute_initial_elimination_offset): Include space for VFP regs. - (arm_get_frame_size): Ditto. - * arm.h (FIXED_REGISTERS): Add VFP regs. - (CALL_USED_REGISTERS): Ditto. - (CONDITIONAL_REGISTER_USAGE): Enable VFP regs. - (FIRST_VFP_REGNUM): Define. - (LAST_VFP_REGNUM): Define. - (IS_VFP_REGNUM): Define. - (FIRST_PSEUDO_REGISTER): Include VFP regs. - (HARD_REGNO_NREGS): Handle VFP regs. - (REG_ALLOC_ORDER): Add VFP regs. - (enum reg_class): Add VFP_REGS. - (REG_CLASS_NAMES): Ditto. - (REG_CLASS_CONTENTS): Ditto. - (CANNOT_CHANGE_MODE_CLASS) Handle VFP Regs. - (REG_CLASS_FROM_LETTER): Add 'w'. - (EXTRA_CONSTRAINT_ARM): Add 'U'. - (EXTRA_MEMORY_CONSTRAINT): Define. - (SECONDARY_OUTPUT_RELOAD_CLASS): Handle VFP regs. - (SECONDARY_INPUT_RELOAD_CLASS): Ditto. - (REGISTER_MOVE_COST): Ditto. - (PREDICATE_CODES): Add arm_general_register_operand, - arm_float_compare_operand and vfp_compare_operand. - * arm.md (various): Rename as above. - (divsf3): Enable when TARGET_VFP. - (divdf3): Ditto. - (movdfcc): Ditto. - (sqrtsf2): Ditto. - (sqrtdf2): Ditto. - (arm_movdi): Disable when TARGET_VFP. - (arm_movsi_insn): Ditto. - (movsi): Only split with general regs. - (cmpsf): Use arm_float_compare_operand. - (push_fp_multi): Restrict to TARGET_FPA. - (vfp.md): Include. - * vfp.md: New file. - * fpa.md (various): Rename as above. - * doc/md.texi: Document ARM w and U constraints. - - 2004-01-15 Paul Brook - - * config.gcc: Add with_fpu. Allow with-float=softfp. - * config/arm/arm.c (arm_override_options): Rename *-s to *s. - Break out of loop when we find a float-abi. Fix typo. - * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "fpu". - Set -mfloat-abi=. - * doc/install.texi: Document --with-fpu. - - 2003-01-14 Paul Brook - - * config.gcc (with_arch): Add armv6. - * config/arm/arm.h: Rename TARGET_CPU_*_s to TARGET_CPU_*s. - * config/arm/arm.c (arm_overrride_options): Ditto. - - 2004-01-08 Richard Earnshaw - - * arm.c (FL_ARCH3M): Renamed from FL_FAST_MULT. - (FL_ARCH6): Renamed from FL_ARCH6J. - (arm_arch3m): Renamed from arm_fast_multiply. - (arm_arch6): Renamed from arm_arch6j. - * arm.h: Update all uses of above. - * arm-cores.def: Likewise. - * arm.md: Likewise. - - * arm.h (CPP_CPU_ARCH_SPEC): Emit __ARM_ARCH_6J__ define for armV6j, - not arm6j. Add entry for arch armv6. - - 2004-01-07 Richard Earnshaw - - * arm.c (arm_emit_extendsi): Delete. - * arm-protos.h (arm_emit_extendsi): Delete. - * arm.md (zero_extendhisi2): Also handle zero-extension of - non-subregs. - (zero_extendqisi2, extendhisi2, extendqisi2): Likewise. - (thumb_zero_extendhisi2): Only match if not v6. - (arm_zero_extendhisi2, thumb_zero_extendqisi2, arm_zero_extendqisi2) - (thumb_extendhisi2, arm_extendhisi2, arm_extendqisi) - (thumb_extendqisi2): Likewise. - (thumb_zero_extendhisi2_v6, arm_zero_extendhisi2_v6): New patterns. - (thumb_zero_extendqisi2_v6, arm_zero_extendqisi2_v6): New patterns. - (thumb_extendhisi2_insn_v6, arm_extendhisi2_v6): New patterns. - (thumb_extendqisi2_v6, arm_extendqisi_v6): New patterns. - (arm_zero_extendhisi2_reg, arm_zero_extendqisi2_reg): Delete. - (arm_extendhisi2_reg, arm_extendqisi2_reg): Delete. - (arm_zero_extendhisi2addsi): Remove subreg. Add attributes. - (arm_zero_extendqisi2addsi, arm_extendhisi2addsi): Likewise. - (arm_extendqisi2addsi): Likewise. - - 2003-12-31 Mark Mitchell - - Revert this change: - * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG - + REG addressing modes. - - * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG - + REG addressing modes. - - 2003-12-30 Mark Mitchell - - * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept - CONSTANT_P_RTX. - - 2003-30-12 Paul Brook - - * longlong.h: protect arm inlines with !defined (__thumb__) - - 2003-30-12 Paul Brook - - * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Always define __arm__. - - 2003-12-30 Nathan Sidwell - - * builtins.c (expand_builtin_apply_args_1): Fix typo in previous - change. - - 2003-12-29 Nathan Sidwell - - * builtins.c (expand_builtin_apply_args_1): Add pretend args size - to the virtual incoming args pointer for downward stacks. - - 2003-12-29 Paul Brook - - * config/arm/arm-cores.def: Add cost function. - * config/arm/arm.c (arm_*_rtx_costs): New functions. - (arm_rtx_costs): Remove - (struct processors): Add rtx_costs field. - (all_cores, all_architectures): Ditto. - (arm_override_options): Set targetm.rtx_costs. - (thumb_rtx_costs): New function. - (arm_rtx_costs_1): Remove cases handled elsewhere. - * config/arm/arm.h (processor_type): Add COSTS parameter. - - 2003-12-29 Nathan Sidwell - - * config/arm/arm.md (generic_sched): arm926 has its own scheduler. - (arm926ejs.md): Include it. - * config/arm/arm926ejs.md: New pipeline description. - - 2003-12-24 Paul Brook - - * config/arm/arm.c (arm_arch6j): New variable. - (arm_override_options): Set it. - (arm_emit_extendsi): New function. - * config/arm/arm-protos.h (arm_emit_extendsi): Add prototype. - * config/arm/arm.h (arm_arch6j): Declare. - * config/arm/arm.md: Add sign/zero extend insns. - - 2003-12-23 Paul Brook - - * config/arm/arm.c (all_architectures): Add armv6. - * doc/invoke.texi: Document it. - - 2003-12-19 Paul Brook - - * config/arm/arm.md: Add load1 and load_byte "type" attrs. Modify - insn patterns to match. - * config/arm/arm-generic.md: Ditto. - * config/arm/cirrus.md: Ditto. - * config/arm/fpa.md: Ditto. - * config/amm/iwmmxt.md: Ditto. - * config/arm/arm1026ejs.md: Ditto. - * config/arm/arm1135jfs.md: Ditto. Add insn_reservation and bypasses - for 11_loadb. - - 2003-12-18 Nathan Sidwell - - * config/arm/arm-protos.h (arm_no_early_alu_shift_value_dep): Declare. - * config/arm/arm.c (arm_adjust_cost): Check shift cost for - TYPE_ALU_SHIFT and TYPE_ALU_SHIFT_REG. - (arm_no_early_store_addr_dep, arm_no_early_alu_shift_dep, - arm_no_early_mul_dep): Correctly deal with conditional execution, - parallels and single shift operations. - (arm_no_early_alu_shift_value_dep): Define. - * arm.md (attr type): Replace 'normal' with 'alu', - 'alu_shift' and 'alu_shift_reg'. - (attr core_cycles): Adjust. - (*addsi3_carryin_shift, andsi_not_shiftsi_si, *arm_shiftsi3, - *shiftsi3_compare0, *notsi_shiftsi, *notsi_shiftsi_compare0, - *not_shiftsi_compare0_scratch, *cmpsi_shiftsi, *cmpsi_shiftsi_swp, - *cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0, - *arith_shiftsi_compare0_scratch, *sub_shiftsi, - *sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch, - *if_shift_move, *if_move_shift, *if_shift_shift): Set type - attribute appropriately. - * config/arm/arm1026ejs.md (alu_op): Adjust. - (alu_shift_op, alu_shift_reg_op): New. - * config/arm/arm1136.md: Add better bypasses for early - registers. Remove load[234] and store[234] bypasses. - (11_alu_op): Adjust. - (11_alu_shift_op, 11_alu_shift_reg_op): New. - - 2003-12-15 Nathan Sidwell - - * config/arm/arm-protos.h (arm_no_early_store_addr_dep, - arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Declare. - * config/arm/arm.c (arm_no_early_store_addr_dep, - arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Define. - * config/arm/arm1026ejs.md: Add load-store bypass. - * config/arm/arm1136jfs.md (11_alu_op): Take 2 cycles. - Add bypasses between instructions. - - 2003-12-10 Paul Brook - - * config/arm/arm.c (arm_fpu_model): New variable. - (arm_fload_abi): New variable. - (target_fpe_name): Rename from target_fp_name. - (target_fpu_name): New variable. - (arm_is_cirrus): Remove. - (fpu_desc): New struct. - (all_fpus): Define. - (pf_model_for_fpu): Define. - (all_loat_abis): Define. - (arm_override_options): Set fp arch flags based on -mfpu= - and -float-abi=. - (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM. - (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM. - (*): Use new TARGET_* flags. - * config/arm/arm.h (TARGET_ANY_HARD_FLOAT): Remove. - (TARGET_HARD_FLOAT): No longer implies TARGET_FPA. - (TARGET_SOFT_FLOAT): Ditto. - (TARGET_SOFT_FLOAT_ABI): New. - (TARGET_MAVERICK): Rename from TARGET_CIRRUS. No longer implies - TARGET_HARD_FLOAT. - (TARGET_VFP): No longer implies TARGET_HARD_FLOAT. - (TARGET_OPTIONS): Add -mfpu=. - (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM. - (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM. - (arm_pf_model): Define. - (arm_float_abi_type): Define. - (fputype): Add FPUTYPE_VFP. Change SOFT_FPA->NONE - * config/arm/arm.md: Use new TARGET_* flags. - * config/arm/cirrus.md: Ditto. - * config/arm/fpa.md: Ditto. - * config/arm/elf.h (ASM_SPEC): Pass -mfloat-abi= and -mfpu=. - * config/arm/semi.h (ASM_SPEC): Ditto. - * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Specify vfp. - (FPUTYPE_DEFAULT): Set to VFP. - * doc/invoke.texi: Document -mfpu= and -mfloat-abi=. - - 2003-11-22 Phil Edwards - - PR target/12476 - * config/arm/arm.c (arm_output_mi_thunk): In Thumb mode, use - 'bx' instead of 'b' to avoid branch range restrictions. Output - the thunk immediately before the thunked-to function. - * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Do not emit - .thumb_func if a thunk is being generated. Emit .code 16 along - with .thumb_func if a thunk is not being generated. - - 2003-11-15 Nicolas Pitre - - * config/arm/arm.md (ashldi3, arm_ashldi3_1bit, ashrdi3, - arm_ashrdi3_1bit, lshrdi3, arm_lshrdi3_1bit): New patterns. - * config/arm/iwmmxt.md (ashrdi3_iwmmxt): Renamed from ashrdi3. - (lshrdi3_iwmmxt): Renamed from lshrdi3. - * config/arm/arm.c (IWMMXT_BUILTIN2): Renamed argument accordingly. - - 2003-11-12 Steve Woodford - Ian Lance Taylor - - * config/arm/lib1funcs.asm (ARM_DIV_BODY, ARM_MOD_BODY): Add new - code for __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__). - - 2003-11-05 Phil Edwards - - * config/arm/arm.md (insn): Add new V6 instruction names. - (generic_sched): New attr. - * config/arm/arm-generic.md: Use generic_sched here. - * config/arm/arm1026ejs.md: Do not model fetch/issue/decode - stages of pipeline. Adjust latency counts accordingly. - * config/arm/arm1136jfs.md: New file. - - 2003-10-28 Mark Mitchell - - * config/arm/arm.h (processor_type): New enumeration type. - (CPP_ARCH_DEFAULT_SPEC): Set appropriately for ARM 926EJ-S, - ARM1026EJ-S, ARM1136J-S, and ARM1136JF-S processor cores. - (CPP_CPU_ARCH_SPEC): Likewise. - * config/arm/arm.c (arm_tune): New variable. - (all_cores): Use cores.def. - (all_architectures): Add representative processor. - (arm_override_options): Restructure way in which tuning - information is deduced. - * arm.md: Update "insn" and "type" attributes throughout. - (insn): New attribute. - (type): Compute "mult" from "insn" attribute. Add load2, - load3, load4 alternatives. - (arm automaton): Move to arm-generic.md. - * config/arm/arm-cores.def: New file. - * config/arm/arm-generic.md: Likewise. - * config/arm/arm1026ejs.md: Likewise. - -2004-02-03 Eric Botcazou - - * doc/invoke.texi (SPARC options): Remove -mflat and - all -mxxx (xxx:chip) options. - * config/sparc/aout.h (DBX_REGISTER_NUMBER): Delete. - * config/sparc/litecoff.h (DBX_REGISTER_NUMBER): Likewise. - * config/sparc/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise. - * config/sparc/sol2.h (DBX_REGISTER_NUMBER): Likewise. - * config/sparc/sparc-protos.h: Delete sparc_flat_* prototypes. - * config/sparc/sparc.c: Likewise. - (sparc_output_function_prologue): Remove TARGET_FLAT handling. - (sparc_nonflat_function_prologue): Rename into sparc_function_prologue. - (sparc_output_function_epilogue): Remove TARGET_FLAT handling. - (sparc_nonflat_function_epilogue): Rename into sparc_function_epilogue. - (struct sparc_frame_info, current_frame_info, zero_frame_info): Delete. - (sparc_flat_must_save_register_p): Likewise. - (sparc_flat_compute_frame_size): Likewise. - (sparc_flat_save_restore): Likewise. - (sparc_flat_function_prologue): Likewise. - (sparc_flat_function_epilogue): Likewise. - (sparc_flat_epilogue_delay_slots): Likewise. - (sparc_flat_eligible_for_epilogue_delay): Likewise. - (sparc_function_ok_for_sibcall): Remove TARGET_FLAT handling. - * config/sparc/sparc.h (MASK_FLAT, TARGET_FLAT): Delete. - (TARGET_SWITCHES): Remove -mflat and all -mxxx (xxx:chip) options. - (SPARC_INCOMING_INT_ARG_FIRST): Remove TARGET_FLAT handling. - (CONDITIONAL_REGISTER_USAGE): Likewise. - (FRAME_POINTER_REQUIRED): Likewise. - (INITIAL_ELIMINATION_OFFSET): Likewise. - (BASE_RETURN_VALUE_REG): Likewise. - (BASE_OUTGOING_VALUE_REG): Likewise. - (BASE_PASSING_ARG_REG): Likewise. - (BASE_INCOMING_ARG_REG): Likewise. - (INCOMING_REGNO): Likewise. - (OUTGOING_REGNO): Likewise. - (LOCAL_REGNO): Likewise. - (DELAY_SLOTS_FOR_EPILOGUE): Likewise. - (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise. - (EPILOGUE_USES): Likewise. - * config/sparc/sparc.md ("isa" attribute): Change "v6" into "v7". - ("flat" attribute): Delete. - (do_builtin_setjmp_setup): Remove TARGET_FLAT and "flat" attribute - handling. - (call followed by jump define_peephole's): Delete. - (exception_receiver): Likewise. - (builtin_setjmp_receiver): Likewise. - * config/sparc/t-sparclite (MULTILIB_OPTIONS): Remove -mflat. - -2004-02-03 Paolo Bonzini - - PR c/11658 - PR c/13994 - * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend - on langhooks.h. - * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h. - * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c: - Include langhooks.h. Replace c_common_truthvalue_conversion - with the truthvalue_conversion language hook throughout. - (expr_no_commas): Call default_conversion before save_expr - for the first term of the production 'x ? : y'. - * c-common.c (c_common_truthvalue_conversion): Remove - obsolete block. Invoke recursively the hook instead - of this function. - * c-convert.c (convert): handle ERROR_MARK_NODE. - * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE - returned by the truthvalue_conversion language hook. - * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use - c_objc_common_truthvalue_conversion. - * c-objc-common.c (c_objc_common_truthvalue_conversion): - New function. - * c-tree.h (c_objc_common_truthvalue_conversion): Declare it. - * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use - c_objc_common_truthvalue_conversion. - -2004-02-03 Kazu Hirata - - * config/c4x/c4x.h (FUNCTION_VALUE): Use gen_rtx_REG instead - of gen_rtx. - (LIBCALL_VALUE): Likewise. - * config/ip2k/ip2k.c (mdr_try_propagate_clr_sequence): Use - gen_rtx_CC0 instead of gen_rtx. - * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use - gen_rtx_fmt_e and gen_rtx_fmt_ee instead of gen_rtx. - (m68hc11_expand_compare): Use gen_rtx_fmt_ee instead of - gen_rtx. - (m68hc11_emit_logical): Likewise. - -2004-02-03 Kazu Hirata - - * config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c, - config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md, - config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md, - config/m32r/m32r.md, config/m68hc11/m68hc11.c, - config/mips/mips.md, config/mmix/mmix.c, - config/mn10300/mn10300.c, config/mn10300/mn10300.md, - config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c, - config/rs6000/altivec.md, config/s390/s390.c, - config/s390/s390.h, config/s390/s390.md, config/sh/sh.c, - config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c: - Use const0_rtx instead of GEN_INT (0). Do the same for other - constants that are readily available. - -2004-02-03 Kazu Hirata - - * doloop.c, optabs.c, regmove.c, sched-deps.c, - config/i386/i386.c, config/i386/i386.md: Use const0_rtx - instead of GEN_INT (0). Do the same for other constants that - are readily available. - -2004-02-03 Kazu Hirata - - * combine.c (simplify_set): Use gen_rtx_fmt_e instead of - gen_rtx. - * emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0 - instead of gen_rtx. - * reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of - gen_rtx. - * config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and - gen_rtx_ASHIFT instead of gen_rtx. - (udivmodqi4): Likewise. - -2004-02-02 Richard Henderson - - PR target/13789 - * expr.c (store_expr): Use force_operand before emit_move_insn. - -2004-02-02 Jeff Law - Roger Sayle - - * tree.c (commutative_tree_code, associative_tree_code): New - functions. - (iterative_hash_expr): Use commutative_tree_code. - * tree.h (commutative_tree_code, associative_tree_code): Declare. - * fold-const.c (operand_equal_p): Use commutative_tree_code - rather than inlining the commutativity check. - (fold): Likewise. - -2004-02-02 Kazu Hirata - - * system.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Poison. - * config/frv/frv-protos.h: Remove the prototype for - frv_function_arg_keep_as_reference. - * config/frv/frv.c (frv_function_arg_keep_as_reference): - Remove. - * config/frv/frv.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Likewise. - * config/stormy16/stormy16.h: Remove the commented-out - definition of FUNCTION_ARG_KEEP_AS_REFERENCE. - -2004-02-03 Alan Modra - - PR target/13914 - * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap - for retaddr_column. - -2004-02-02 Kazu Hirata - - * genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of - gen_rtx. - -2004-02-02 Eric Christopher - Zack Weinberg - - * c-opts.c (c_common_handle_option): Add -finput-charset. - * c.opt: Ditto. - * cppcharset.c (one_iso88591_to_utf8): Remove. - (convert_iso88591_utf8): Ditto. - (conversion_tab): Remove 8859-1 converter. - (_cpp_input_to_utf8): Remove. - (_cpp_init_iconv_buffer): Ditto. - (_cpp_close_iconv_buffer): Ditto. - (_cpp_convert_input): New function. - (_cpp_default_encoding): Ditto. - * cpphash.h: Add/remove prototypes for above. - * cppfiles.c (read_file_guts): Use _cpp_convert_input. - * cppinit.c (cpp_create_reader): Use _cpp_default_encoding - for narrow execution and input character sets. - * cpplib.c (cpp_push_buffer): Delete uses of removed functions. - * doc/cppopts.texi: Document -finput-charset. - -2004-02-02 David Edelsohn - - * rtlanal.c (refers_to_regno_p): Test regno, not inner_regno, - against FIRST_PSEUDO_REGISTER. - -2004-02-02 Eric Botcazou - - * doc/invoke.texi (SPARC options): Further improve. - -2004-02-02 Kazu Hirata - - * config/arm/arm.md, config/c4x/c4x.md, config/cris/cris.md, - config/h8300/h8300.c, config/ip2k/ip2k.md, - config/iq2000/iq2000.c, config/mips/mips.c, - config/rs6000/rs6000.c, config/rs6000/rs6000.md, - config/sh/sh.c, config/sh/sh.md, config/stormy16/stormy16.c, - config/v850/v850.md: Fix indentation. - -2004-02-02 Eric Botcazou - - * config/sparc/sparc.c (function_arg_slotno): Align TImode - arguments on a 16-byte boundary in the parameter array if ARCH64. - Split handling of TFmode. - -2004-02-02 Paolo Bonzini - - * rtlanal.c (reg_overlap_mentioned_p) [!ENABLE_CHECKING]: - Don't test CONSTANT_P (x). - (reg_overlap_mentioned_p): Merge check for STRICT_LOWPART, - ZERO_EXTRACT, SIGN_EXTRACT with the switch statement. - Fix misindentation. - -2004-02-02 Eric Botcazou - - * doc/invoke.texi (SPARC options): Document that -mflat is deprecated. - -2004-02-02 Kazu Hirata - - * config/arc/arc.md, config/arm/arm.c, config/arm/arm.md, - config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md, - config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md, - config/iq2000/iq2000.c, config/m32r/m32r.c, - config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md, - config/mn10300/mn10300.c, config/rs6000/rs6000.c, - config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md, - config/stormy16/stormy16.c, config/v850/v850.md, - config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*. - -2004-02-01 Kazu Hirata - - * config/mcore/mcore.c (block_move_sequence): Replace - gen_rtx_CONST_INT with GEN_INT. - -2004-02-02 Jan Hubicka - - * alias.c (record_set): Use hard_regno_nregs. - * bt-load.c (find_btr_reference, note_btr_set): Likewise. - * builtins.c (apply_args_size): Likewise. - * caller-save.c (setup_save_areas, save_call_clobbered_regs, - mark_set_regs, add_stored_regs, mark_referenced_regs, - insert_restore, insert_save, insert_one_insn): Likewise. - * cfgcleanup.c: Include regs.h - (mark_effect, mentions_nonequal_regs): Likewise. - * cfgrtl.c (mark_killed_regs): Likewise - * combine.c (update_table_tick, record_value_for_reg, - record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p, - reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths, - reg_bitfield_target_p, distribute_notes): Likewise. - * cse.c (mention_regs, insert, invalidate, invalidate_for_call, - exp_equiv_p, cse_insn): Likewise. - * cselib.c (cselib_lookup): Likewise. - (cselib_invalidate_regno, cselib_record_set): Likewise. - * df.c (df_ref_record): Likewise. - * dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor): - Likewise. - * flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg, - count_or_remove_death_notes_bb): Likewise. - * function.c (aggregate_value_p, keep_stack_depressed): Likewise. - * gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts, - mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise. - * integrate.c (mark_stores): Likewise. - * jump.c (delete_prior_computation): Likewise. - * lcm.c (reg_dies, reg_becomes_live): Likewise. - * local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise. - * loop.c (LOOP_REGNO_NREGS): Likewise. - * postreload.c (reload_combine, reload_combine_note_store, - reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise. - * ra-colorize.c (combine, color_usable_p, get_free_reg, - calculate_dont_begin, calculate_dont_begin, colorize_one_web, - try_recolor_web, insert_coalesced_conflicts, check_colors, - break_precolored_alias): Likewise. - * ra-debug.c: Include regs.h - (ra_print_rtx_object): Likewise. - * ra-rewrite (choose_spill_colors): Likewise. - (spill_same_color_p, update_spill_colors, spill_is_free): Likewise. - * ra.c (init_ra): Likewise. - * recog.c (reg_fits_class_p, peep2_reg_dead_p, - peep2_find_free_register): Likewise. - * reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise. - * regclass.c (hard_regno_nregs): New array. - (init_reg_modes_once): Initialize it. - (choose_hard_reg_mode): Use it. - (record_reg_classes): Likewise. - * regmove.c (mark_flags_life_zones): Likewise. - * regrename.c (note_sets, clear_dead_regs, regrename_optimize, - scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno, - copy_value, maybe_mode_change, find_oldest_value_reg, - copyprop_hardreg_forward_1): - * regs.h (hard_regno_nregs): Declare. - * realod.c (reload_inner_reg_of_subreg): Use it. - (push_reload, combine_reloads, find_dummy_reload, - hard_reg_set_here_p, operands_match_p, decompose, find_reloads, - refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p, - reload_adjust_reg_for_mode): Likewise. - * reload1.c (compute_use_by_pseudos, count_pseudo, - count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live, - spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use, - clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p - allocate_reload_reg, choose_reload_regs, emit_reload_insns, - delete_output_reload): Likewise. - * resource.c (update_live_status, mark_referenced_resources, - mark_set_resources, mark_target_live_regs): Likewise. - * rtlanal.c: Include regs.h - (refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p, - dead_or_set_regno_p, find_regno_note, find_reg_fusage, - subreg_regno_offset, subreg_offset_representable_p, - hoist_test_store): Likewise. - * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise. - * sched-rgn.c (check_live_1, update_live_1): Likewise. - * stmt.c: Include regs.h - (decl_conflicts_with_clobbers_p): Likewise. - * varasm.c (make_decl_rtl): Likewise. - * Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy. - -2004-02-01 Kazu Hirata - - * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md, - config/arm/linux-gas.h, config/arm/netbsd-elf.h, - config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c, - config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h, - config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c, - config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c, - config/iq2000/iq2000.h, config/m32r/m32r.c, - config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h, - config/m68hc11/m68hc11.md, config/m68k/m68k.md, - config/mcore/mcore.c, config/mcore/mcore.h, - config/mcore/mcore.md, config/mips/mips.c, - config/ns32k/ns32k.h, config/ns32k/ns32k.md, - config/rs6000/rs6000.c, config/s390/s390.c, - config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c, - config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace - "gen_rtx (FOO, " with "gen_rtx_FOO (". - -2004-02-01 Kazu Hirata - - * config/h8300/h8300.md (two peephole2's): New. - -2004-02-01 Eric Botcazou - - * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3. - (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3. - (ASM_CPU_SPEC): Likewise - * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3. - (ASM_CPU_SPEC): Remove -mcpu=v8plus. Handle -mcpu=ultrasparc3. - -2004-02-01 Roger Sayle - - * builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations - isn't set, don't call expand_builtin_mathfn_2 to use the pow optab. - (expand_builtin): Always call expand_builtin_pow. - -2004-02-01 Roger Sayle - - * builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF, - BUILT_IN_SIGNBITL): New GCC builtins. - * builtins.c (expand_builtin_signbit): New function to RTL expand - calls to signbit, signbitf and signbitl as inline intrinsics. - (expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*. - (fold_builtin_signbit): New function to perform constant folding - of signbit, signbitf and signbitl. - (fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*. - - * doc/extend.texi: Document new signbit{,f,l} builtins. - -2004-02-01 Richard Sandiford - - * config/mips/mips.md (adddi3_internal_2): Remove superfluous %s. - -2004-02-01 Chris Demetriou - - * config/mips/mips.h (PREDICATE_CODES): Remove entries for - "mips_const_double_ok" and "simple_memory_operand", which were - removed from the MIPS port with the mips-3_4-rewrite branch merge. - * config/mips/mips.c (mips16_lay_out_constants): Update comment - for removal of simple_memory_operand. - -2004-01-31 Kazu Hirata - - * config/c4x/c4x.md: Use GEN_INT instead of - gen_rtx (CONST_INT, ...). - -2004-01-31 Richard Henderson - - * varasm.c (output_constant_pool): Don't zap the pool. - -2004-01-31 Kazu Hirata - - * genrecog.c (decision_type): Add DT_const_int. - (write_cond) [DT_const_int]: Print a comparison against small - constant. - (write_node): Simplify comparisons against small constants - before printing tests. - -2004-01-31 Kazu Hirata - - * config/m32r/m32r.c (m32r_load_pic_register): Use GEN_INT - instead of gen_rtx_CONST_INT. - -2004-01-31 Kazu Hirata - - * config/xtensa/xtensa.h (DYNAMIC_CHAIN_ADDRESS): Use GEN_INT - instead of gen_rtx_CONST_INT. - -2004-01-31 Kazu Hirata - - * target-def.h (TARGET_STRICT_ARGUMENT_NAMING): Define as - hook_bool_CUMULATIVE_ARGS_false. - * targhooks.c (default_strict_argument_naming): Rename to - hook_bool_CUMULATIVE_ARGS_false. - * targhooks.h: Update the prototype for - default_strict_argument_naming. - -2004-01-31 Kazu Hirata - - * config/sh/sh.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (". - * config/sh/sh.h: Likewise. - * config/sh/sh.md: Likewise. - -2004-01-31 Eric Botcazou - - * doc/invoke.texi (SPARC options): Restructure and update. - -2004-01-31 Kazu Hirata - - * system.h (PROMOTE_FUNCTION_ARGS, STRUCT_VALUE_INCOMING, and - STRICT_ARGUMENT_NAMING): Poison. - * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS): Define as - hook_bool_tree_false. - * targhooks.c (default_promote_function_args): Remove. - (default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING. - Don't check incoming. - (default_strict_argument_naming): Don't use - STRICT_ARGUMENT_NAMING. - * targhooks.h: Remove the prototype for - default_promote_function_args. - -2004-01-31 Kazu Hirata - - * config/i386/i386-protos.h: Remove the prototype for - ix86_setup_incoming_varargs. - * config/i386/i386.c (TARGET_SETUP_INCOMING_VARARGS): New. - (ix86_setup_incoming_varargs): Make it static. - * config/i386/i386.h (SETUP_INCOMING_VARARGS): Remove. - -2004-01-31 Kazu Hirata - - * alloc-pool.c: Fix comment typos. - * builtin-types.def: Likewise. - * builtins.def: Likewise. - * c-pretty-print.c: Likewise. - * df.h: Likewise. - * reload1.c: Likewise. - -2004-01-31 Kazu Hirata - - * doc/invoke.texi: Follow spelling conventions. - * doc/tm.texi: Likewise. - -2004-01-31 Kazu Hirata - - * doc/install.texi: Fix typos. - * doc/invoke.texi: Likewise. - -2004-01-31 Ulrich Weigand - - * config/s390/s390.c (s390_decompose_address): Do not treat virtual - registers as pointers. - * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode. - -2004-01-31 Paolo Bonzini - - * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine - and restore it to gen_lowpart_general on exit. - (gen_lowpart_for_combine): Adjust all callers to go through - gen_lowpart. - * cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible - and restore it to gen_lowpart_general on exit. - (gen_lowpart_if_possible): Adjust all callers to go through - gen_lowpart. - * emit-rtl.c (gen_lowpart_general): New name of gen_lowpart. - (gen_lowpart): Declare as pointer to function, initialized to - gen_lowpart_general. - * rtl.h (gen_lowpart): Declare as pointer to function. - -2004-01-31 Kazu Hirata - - * bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (". - * calls.c: Likewise. - * emit-rtl.c: Likewise. - * function.c: Likewise. - * reload1.c: Likewise. - * config/i386/cygming.h: Likewise. - * config/i386/i386.c: Likewise. - * config/i386/winnt.c: Likewise. - -2004-01-30 Dara Hazeghi - - PR bootstrap/9249 - * doc/install.texi: document --enable-__cxa_atexit option. - * configure.ac: Disable __cxa_atexit if not supported. - * configure: Regenerate. - -2004-01-30 Daniel Berlin - - * ggc-zone.c (ggc_free): New function. - -2004-01-30 Kazu Hirata - - alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c, - cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h, - flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h, - ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def, - tree-optimize.c, vmsdbgout.c, config/fp-bit.c, - config/alpha/alpha.c, config/alpha/alpha.h, - config/alpha/alpha.md, config/alpha/unicosmk.h, - config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c, - config/c4x/c4x-protos.h, config/c4x/c4x.md, - config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c, - config/frv/frvend.c, config/i386/cygming.h, - config/i386/djgpp.h, config/i386/emmintrin.h, - config/i386/gthr-win32.c, config/i386/i386-interix.h, - config/i386/i386-protos.h, config/i386/openbsd.h, - config/i386/winnt.c, config/i386/xm-mingw32.h, - config/i386/xmmintrin.h, config/ia64/ia64.md, - config/iq2000/iq2000.md, config/m32r/m32r.md, - config/m68k/m68k.md, config/mcore/mcore-elf.h, - config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h, - config/mips/iris5gas.h, config/mips/iris6.h, - config/mips/iris6gas.h, config/mips/linux.h, - config/mips/mips.md, config/mips/netbsd.h, - config/mips/openbsd.h, config/mips/windiss.h, - config/pa/fptr.c, config/rs6000/aix.h, - config/rs6000/altivec.h, config/rs6000/darwin.h, - config/rs6000/xcoff.h, config/s390/s390-protos.h, - config/s390/s390.c, config/s390/s390.h, config/s390/s390.md, - config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h, - config/sparc/sol2.h: Update copyright. - -2004-01-30 Kelley Cook - - * Makefile.in (abs_docdir, abs_srcdir): Define. - (doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir). - -2004-01-30 Kazu Hirata - - * genconfig.c (main): Have CC0_P check its operand even on a - target without cc0. - -2004-01-30 Kazu Hirata - - * config/alpha/alpha.c: Remove mentions of deprecates macros - in comments, remove some target-independent comments about target - macros, and/or add minimal function comments for target hook - implementations. - * config/avr/avr.c: Likewise. - * config/ia64/ia64.h: Likewise. - * config/ip2k/ip2k.c: Likewise. - * config/iq2000/iq2000.c: Likewise. - * config/m32r/m32r.h: Likewise. - * config/m68hc11/m68hc11.c: Likewise. - * config/mcore/mcore.c: Likewise. - * config/mmix/mmix.c: Likewise. - * config/mn10300/mn10300.c: Likewise. - * config/pa/pa.c: Likewise. - * config/pdp11/pdp11.c: Likewise. - * config/rs6000/rs6000.h: Likewise. - * config/sh/sh.c: Likewise. - * config/sh/sh.h: Likewise. - * config/sparc/sparc.c: Likewise. - * config/sparc/sparc.h: Likewise. - * config/stormy16/stormy16.c: Likewise. - * config/xtensa/xtensa.c: Likewise. - -2004-01-30 Ulrich Weigand - - PR optimization/12147 - * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with - RELOAD_FOR_OPADDR_ADDR. - (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register - might be reused as RELOAD_FOR_OPADDR_ADDR register. - -2004-01-30 Jan Hubicka - - * reload.c (get_secondary_mem): Fix updating of - secondary_memlocs_elim_used. - -2004-01-30 Richard Henderson - - * varasm.c (struct rtx_const, struct pool_constant): Remove. - (MAX_RTX_HASH_TABLE): Remove. - (const_rtx_hash_table, const_rtx_sym_hash_table): Remove. - (first_pool, last_pool, pool_offset): Remove. - (struct rtx_constant_pool): Split out from ... - (struct varasm_status): ... here. Reference one via pointer. - (struct constant_descriptor_rtx): Merge struct pool_constant. - (SYMHASH): Remove. - (decode_rtx_const): Remove. - (const_hash_rtx, compare_constant_rtx): Remove. - (record_constant_rtx): Remove. - (const_desc_rtx_hash, const_desc_rtx_eq): New. - (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New. - (const_rtx_hash_1, const_rtx_hash): New. - (init_varasm_status): Allocate a rtx_constant_pool, and its hashes. - (simplify_subtraction): Use simplify_rtx. - (force_const_mem): Rewrite to use new data structures. - (find_pool_constant): Likewise. - (get_pool_constant, get_pool_constant_mark, - get_pool_constant_for_function, get_pool_mode, - get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise. - (output_constant_pool_2): Split out from output_constant_pool. - (output_constant_pool_1): Likewise. Use new pool datastructures. - (output_constant_pool): Zap entire pool datastructure. - (mark_constant): Use new pool datastructures. - (mark_constants): Use for_each_rtx. - (mark_constant_pool): Use new pool datastructures. - -2004-01-30 Fariborz Jahanian - - * config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0. - Copy operands[1] to pseudo for simplify_gen_subreg. - -2004-01-30 Kazu Hirata - - * gcse.c (bypass_block): Fix a typo in the previous check-in - to the file. - -2004-01-30 Andrew Pinski - - * toplev.c: Include alloc-pool.h. - * Makefile.in (toplev.c): Update dependencies. - -2004-01-30 Richard Kenner - - * combine.c (simplify_shift_const, case XOR): Be careful when - commuting XOR with ASHIFTRT. - -2004-01-30 Kazu Hirata - Eric Botcazou - - * config/sparc/sparc-protos.h: Remove the prototype for - sparc_builtin_saveregs. - * config/sparc/sparc.c (TARGET_PROMOTE_FUNCTION_ARGS): New. - (TARGET_PROMOTE_FUNCTION_RETURN): Likewise. - (TARGET_PROMOTE_PROTOTYPES): Likewise. - (TARGET_STRUCT_VALUE_RTX): Likewise. - (TARGET_RETURN_IN_MEMORY): Likewise. - (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise. - (TARGET_STRICT_ARGUMENT_NAMING): Likewise. - (sparc_builtin_saveregs): Make it static. - (sparc_promote_prototypes): New. - (sparc_struct_value_rtx): Likewise. - (sparc_return_in_memory): Likewise. - * config/sparc/sparc.h: (PROMOTE_FUNCTION_ARGS): Remove. - (PROMOTE_FUNCTION_RETURN): Likewise. - (RETURN_IN_MEMORY): Likewise. - (STRUCT_VALUE): Likewise. - (STRUCT_VALUE_INCOMING): Likewise. - (EXPAND_BUILTIN_SAVEREGS): Likewise. - (STRICT_ARGUMENT_NAMING): Likewise. - (PROMOTE_PROTOTYPES): Likewise. - - * config/sparc/sparc.h (PROMOTE_MODE): Use word_mode. - -2004-01-30 Eric Botcazou - - PR c/12818 - * varasm.c (const_hash_1) : Use the - address to compute the hash value if flag_writable_strings. - (compare_constant) : Compare the addresses - if flag_writable_strings. - (build_constant_desc): Do not copy the expression for a - STRING_CST if flag_writable_strings. - -2004-01-30 Jan Hubicka - - * alloc-pool.c: Include hashtab.h - (alloc_pool_descriptor): New structure - (alloc_pool_hash): New global variable. - (hash_descriptor, eq_descriptor, alloc_pool_descriptor): New. - (create_alloc_pool): Update statistics. - (free_alloc_pool): Likewise. - (pool_alloc): Likewise. - (output_info): New structure - (print_statistics, dump_alloc_pool_statistics): New function. - * alloc-pool.h (alloc_pool_def): Turn name to be constant. - (dump_alloc_pool_statistics): Declare. - * toplev.c (finalize): Dump statistics. - - * reload.c (secondary_memlocs_elim_used): New static variable. - (get_secondary_mem): Update it. - (find_reloads): Use it. - -2004-01-30 Steven Bosscher - - * toplev.c: Fix broken checkin of 2003-12-30, again. - -2004-01-30 Ulrich Weigand - - * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for - s390*-*-* targets by specifying a 'nop' insn. - * configure: Regenerate. - -2004-01-30 Eric Botcazou - - PR target/11475 - * config/sparc/sparc.md (movhi_lo_sum): Tighten predicates. - -2004-01-29 Jakub Jelinek - - * emit-rtl.c (change_address): Use XEXP (memref, 0) instead - of addr when creating MEM copy. - -2004-01-29 Devang Patel - - * dwarf2out.c (gen_field_die): Do not equate decl number to die. - -2004-01-28 Ian Lance Taylor - - PR inline-asm/6162 - * reload.c (find_reloads): Only support one pair of commutative - operands. - -2004-01-29 Roger Sayle - - PR java/13824 - * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially - as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded - recursion. - -2004-01-29 Kazu Hirata - - * config/frv/frv.c: Don't mention deprecated macros in - comments. Remove some target-independent comments about - target macros. - * config/frv/frv.h: Likewise. - -2004-01-29 Zdenek Dvorak - - * cfghooks.c (split_block): Set probability and count of the - new edge. - -2004-01-29 Josef Zlomek - - * dwarf2out.c (struct die_struct): Added field decl_id. - (decl_die_table): Changed to hash table. - (decl_die_table_allocated): Deleted. - (decl_die_table_in_use): Deleted. - (DECL_DIE_TABLE_INCREMENT): Deleted. - (decl_die_table_hash): New function. - (decl_die_table_eq): New function. - (lookup_decl_die): Lookup in a hash table. - (equate_decl_number_to_die): Insert into a hash table. - (dwarf2out_init): Init hash table decl_die_table. - -2004-01-29 Jakub Jelinek - - PR optimization/13424 - * expr.c (store_constructor): Revert 2003-12-03 change. - - * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as - expected before returning early. Avoid sharing RTL if they - need to be changed. - - * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov - handling so that memory attributes are preserved. Don't call - ix86_set_move_mem_attrs. - (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed. - (ix86_expand_clrstr): Rename src argument to - dst. Rework rep_stos and strset handling so that memory attributes - are preserved. - (ix86_expand_strlen): Pass src argument to - ix86_expand_strlensi_unroll_1. Rework strlenqi_1 handling so that - memory attributes are preserved. - (ix86_expand_strlensi_unroll_1): Add src argument. Use - change_address instead of gen_rtx_MEM. - * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New - expanders. - (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64, - strmovqi, strmovqi_rex64): Remove. - (rep_mov*, strmov*): Prefix insn names with *. - (strset, strset_singleop, rep_stos): New expanders. - (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64, - strsetqi, strsetqi_rex64): Remove. - (rep_stos*, strset*): Prefix insn names with *. - (rep_stosqi_rex64): Likewise. Fix mode of dirflag reg from DImode - to SImode. - (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes - are preserved. - (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1): - Prefix insn names with *. - (cmpstrqi_nz_1, cmpstrqi_1): New expanders. - (strlenqi_1, strlenqi_rex_1): Prefix insn names with *. - (strlenqi_1): New expander. - * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype. - -2004-01-29 Zdenek Dvorak - - * Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency. - * basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb, - verify_flow_info): Declaration removed. - * cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c. - (debug_bb, debug_bb_n): Add argument to dump_bb call. - * cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge, - try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block - instead of delete_block. - * cfghooks.c: Include timevar.h and toplev.h. - (cfg_hooks): Define here. - (verify_flow_info, dump_bb): Moved from cfg.c. - (redirect_edge_and_branch, redirect_edge_and_branch_force, - split_block, split_block_after_labels, move_block_after, - delete_basic_block, split_edge, create_basic_block, - create_empty_bb, can_merge_blocks_p, merge_blocks, - make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges): - New functions. - * cfghooks.h (struct cfg_hooks): Added fields name, - make_forwarder_block, tidy_fallthru_edge and - move_block_after. Changed type of verify_flow_info, dump_bb, - split_block fields. Renamed cfgh_split_edge and delete_block - fields. - (redirect_edge_and_branch, redirect_edge_and_branch_force, - split_block, delete_block, split_edge, create_basic_block, - can_merge_blocks_p, merge_blocks): Macros removed. - (cfg_hooks): Do not export. - (verify_flow_info, dump_bb, redirect_edge_and_branch, - redirect_edge_and_branch_force, split_block, split_block_after_labels, - move_block_after, delete_basic_block, split_edge, create_basic_block, - create_empty_bb, can_merge_blocks_p, merge_blocks, - make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges): - Declare. - (cfg_layout_rtl_cfg_hooks): Declare. - * cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch): - New functions. - (canonicalize_loop_headers): Use new semantics of make_forwarder_block. - (redirect_edge_with_latch_update): Removed. - (make_forwarder_block): Moved to cfghooks.c, semantics changed. - * cfgloopmanip.c (remove_bbs): Do not update dominators here. - * cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb, - rtl_delete_block, rtl_split_block, rtl_merge_blocks, - tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block, - cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to - cfghooks.c. - (rtl_create_basic_block): Coding style fix. - (rtl_tidy_fallthru_edge, rtl_move_block_after, - rtl_make_forwarder_block): New functions. - (update_cfg_after_block_merging): Removed. - (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries. - * flow.c (verify_wide_reg, verify_local_live_at_start): Add argument - to dump_bb. - * ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1, - find_if_case_2): Don't update dominators. - * timevar.def (TV_CFG_VERIFY): New. - * loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info. - * cfglayout.c (copy_bbs): Don't call add_to_dominance_info. - * cfgloopmanip.c (split_loop_bb): Don't update dominators. - (remove_bbs): Don't call remove_bbs. - (create_preheader): Use make_forwarder_block. - (mfb_keep_just, mfb_update_loops): New static functions. - -2004-01-29 Kazu Hirata - - * config/avr/avr.h: Remove target-independent comments about - target macros. - -2004-01-28 Daniel Berlin - - * timevar.c (timevar_print): Mention when checking is enabled. - -2004-01-28 Giovanni Bajo - - * c-lex.c (c_lex): Rename to... - (c_lex_with_flags): Add new parameter to get CPP flags. - (c_lex): Thunk to c_lex_with_flags while keeping the old interface. - * c-pragma.h (c_lex_with_flags): Declare. - -2004-01-28 Kazu Hirata - - * config/mcore/mcore.c (mcore_external_libcall): Add a - comment. - (mcore_return_in_memory): Likewise. - -2004-01-28 Kazu Hirata - - * config/mcore/mcore-protos.h: Remove the prototype for - mcore_setup_incoming_varargs. - * config/mcore/mcore.c (TARGET_ASM_EXTERNAL_LIBCALL): New. - (TARGET_PROMOTE_FUNCTION_ARGS): Likewise. - (TARGET_PROMOTE_FUNCTION_RETURN): Likewise. - (TARGET_PROMOTE_PROTOTYPES): Likewise. - (TARGET_STRUCT_VALUE_RTX): Likewise. - (TARGET_RETURN_IN_MEMORY): Likewise. - (TARGET_SETUP_INCOMING_VARARGS): Likewise. - (mcore_setup_incoming_varargs): Make it static. Receive the - first argument by reference. Add argument second_time. - (mcore_external_libcall): New. - (mcore_return_in_memory): Likewise. - * config/mcore/mcore.h (PROMOTE_FUNCTION_ARGS): New. - (PROMOTE_FUNCTION_RETURN): Likewise. - (STRUCT_VALUE): Likewise. - (RETURN_IN_MEMORY): Likewise. - (SETUP_INCOMING_VARARGS): Likewise. - (PROMOTE_PROTOTYPES): Likewise. - (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise. - -2004-01-28 Kazu Hirata - - * config/m32r/m32r-protos.h: Remove the prototype for - m32r_setup_incoming_varargs. - * config/m32r/m32r.c (TARGET_PROMOTE_PROTOTYPES): New. - (TARGET_STRUCT_VALUE_RTX): Likewise. - (TARGET_RETURN_IN_MEMORY): Likewise. - (TARGET_SETUP_INCOMING_VARARGS): Likewise. - (m32r_return_in_memory): New. - (m32r_setup_incoming_varargs): Make it static. - * config/m32r/m32r.h: Remove #undef of - ASM_OUTPUT_EXTERNAL_LIBCALL. Remove the commented-out - definitions of PROMOTE_FUNCTION_ARGS and - PROMOTE_FUNCTION_RETURN. - (PROMOTE_PROTOTYPES): Remove. - (RETURN_IN_MEMORY): Likewise. - (STRUCT_VALUE): Likewise. - -2004-01-28 Kazu Hirata - - * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES): New. - (TARGET_STRUCT_VALUE_RTX): Likewise. - (m68k_struct_value_rtx): Likewise. - * config/m68k/m68k.h (STRUCT_VALUE_REGNUM): Rename to - STRUCT_VALUE_REGNUM. - (PROMOTE_PROTOTYPES): Remove. - * config/m68k/m68kelf.h (STRUCT_VALUE_REGNUM): Rename to - STRUCT_VALUE_REGNUM. - * config/m68k/m68kv4.h (STRUCT_VALUE_REGNUM): Likewise. - * config/m68k/netbsd-elf.h (STRUCT_VALUE_REGNUM): Likewise. - -2004-01-28 Kazu Hirata - - * config/stormy16/stormy16.c - (TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Rename to - TARGET_BUILD_BUILTIN_VA_LIST. - -2004-01-28 Kazu Hirata - - * config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New. - (TARGET_STRUCT_VALUE_RTX): Likewise. - (TARGET_RETURN_IN_MEMORY): Likewise. - (TARGET_SETUP_INCOMING_VARARGS): Likewise. - (v850_return_in_memory): Likewise. - (v850_setup_incoming_varargs): Likewise. - * config/v850/v850.h (PROMOTE_PROTOTYPES): Remove. - (SETUP_INCOMING_VARARGS): Likewise. - (RETURN_IN_MEMORY): Likewise. - (STRUCT_VALUE): Likewise. - -2004-01-28 Kazu Hirata - - * config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New. - (fr30_setup_incoming_varargs): Don't use - STRICT_ARGUMENT_NAMING. - * config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove. - (STRICT_ARGUMENT_NAMING): Likewise. - -2004-01-28 Kazu Hirata - - * config/frv/frv-protos.h: Remove the prototype for - frv_expand_builtin_saveregs. - * config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise. - (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise. - (frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of - STRUCT_VALUE_REGNUM. - (frv_expand_builtin_saveregs): Make it static. - (frv_struct_value_rtx): New. - * config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove. - -2004-01-29 Jan Hubicka - - PR c++/12850 - * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and - initial pointers. - * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS - for functions that will be only inlined. - (cgraph_mark_function_to_output): Likewise. - (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear; - do not clear function body. - * tree-optimize.c (clear_decl_rtl): Use decl_function_context. - (tree_rest_of_compilation): Reorganize the logic releasing function - body to use callgraph datastructure. - -2004-01-28 John David Anglin - - * pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand - to register_operand. - -2004-01-28 Zack Weinberg - - * config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di) - (cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and - match_operand expressions so that all match_dups appear - lexically after their corresponding match_operands. - -2004-01-28 Kazu Hirata - - * config/h8300/h8300.c (WORD_REG_USED): Use - HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM. - (compute_saved_regs): Likewise. - (h8300_expand_prologue): Likewise. Allocate locals after - saving registers. - (h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead - of FRAME_POINTER_REGNUM. Deallocate locals before saving - registers. - (h8300_initial_elimination_offset): Adjust for the new frame - layout, which swaps flips the order of locals and saved - registers. - * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12. - (HARD_FRAME_POINTER_REGNUM): New. - (ELIMINABLE_REGS): Add an elimination rule from - FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM. - (REGISTER_NAMES): Add fp. - * config/h8300/h8300.md (FP_REG): Change to 11. - (HFP_REG): New. - -2004-01-28 Kazu Hirata - - * genrecog.c (write_node): Remove a useless local variable. - -2004-01-28 Ian Lance Taylor - - * Makefile.in (options.c options.h): Use stamp file s-options to - avoid unnecessary rebuilds. - (options.o): New target listing dependencies. - (gtyp-gen.h): Use stamp file s-gtyp-gen. - (STAGESTUFF): Add s-gtyp-gen. - -2004-01-28 Richard Henderson - - * ggc.h (ggc_free): Declare. - * ggc-common.c (ggc_realloc): Use it. - * ggc-page.c: Remove lots of inline markers. - (globals): Add free_object_list. - (ggc_alloc): Tidy. - (ggc_free, validate_free_objects): New. - (poison_pages): Provide default. - (ggc_collect): Call validate_free_objects; emit markers to - the debug file. - -2004-01-28 Zack Weinberg - Jim Wilson - - * config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move): - Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a - scratch pointer. - (ia64_secondary_reload_class): Delete case GR_REGS. - * config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal): - Do not allocate a scratch register. - (reload_inti, reload_outti, reload_intf, reload_outtf): Delete. - -2004-01-28 Jan Hubicka - - * gcse.c (bypass_block): Prevent edges to be unified when we are - about to emit compenstation code. - -2004-01-28 Nick Clifton - - * config/arm/arm.c (arm_expand_builtin): Force second argument of - the setcwx insn into a register. - -2004-01-28 Richard Sandiford - - * config/fp-bit.c (pack_d): When using paired doubles to implement - a long double, round the high part separately. - (unpack_d): Fix the case in which the high part is a power of two - and the low part is a nonzero value of the opposite sign. - -2004-01-28 Kazu Hirata - - * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New. - (TARGET_STRUCT_VALUE_RTX): Likewise. - (c4x_external_libcall): Likewise. - (c4x_struct_value_rtx): Likewise. - * config/c4x/c4x.h: Remove. - (STRUCT_VALUE_REGNUM): Likewise. - (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise. - -2004-01-28 Kazu Hirata - - * config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New. - (TARGET_STRUCT_VALUE_RTX): Likewise. - * config/i386/i386.h (STRUCT_VALUE_INCOMING): Remove. - (STRUCT_VALUE): Likewise. - (PROMOTE_PROTOTYPES): Likewise. - -2004-01-27 Roger Sayle - - * config/pa/pa.c (emit_move_sequence): Check that operand1 is a - CONST_INT before using INTVAL. - -2004-01-27 Ulrich Weigand - - * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN. - * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current - frame if !TARGET_BACKCHAIN. - * config/s390/s390.md ("allocate_stack"): Use pattern only if - TARGET_BACKCHAIN. - * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default. - -2004-01-27 Zack Weinberg - - * ia64.c (ia64_function_arg): When placing HFAs in integer - registers, do not special case the mode used for complex - types. Do not advance int_regs until the current register - is full. - -2004-01-27 Richard Sandiford - - PR target/7297 - * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp(). - -2004-01-27 David Edelsohn - - * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting - slow, unaligned loads and stores while debugging. Fix formatting. - -2004-01-27 David Edelsohn - - * config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead - of computing wmode. - (restore_stack_nonlocal): Same. - -2004-01-27 Devang Patel - - * Makefile.in (dwarf2out.o): Depend on input.h - * dbxout.c (dbx_debug_hooks): Add new empty hook for - imported_module_or_decl. - (xcoff_debug_hooks): Same. - * sdbout.c (sdb_debug_hooks): Same. - * vmsdbgout.c (vmsdbg_debug_hooks): Same. - * debug.c (do_nothing_debug_hooks): Same. - (debug_nothing_tree_tree): New function. - * debug.h (gcc_debug_hooks): New hook, imported_module_or_decl. - * dwarf2out.c: Include input.h. - (dwarf2_debug_hooks): Add new hook for imported_module_or_decl. - (remove_child_TAG): New function. - (dwarf_tag_name): Handle DW_TAG_imported_module. - (gen_subprogram_die): Equate decl number to declaration die. Do not - remove all children dies while reusing declaration die for definition. - Instead, selectively remove only formal parameters. - (gen_variable_die): Equate variable decl to declaration die. - (gen_field_die): Equate field decl to line number. - (force_namespace_die): Replace it with ... - (force_decl_die): ... this. - (force_type_die): New function. - (setup_namespace_context): Replace use of force_namespace_die() with - force_decl_die(). - (gen_namespace_die): Same. - (dwarf2out_imported_module_or_decl): New function. - -2004-01-27 Bob Wilson - - * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG - on CQImode and CHImode incoming arguments in register a7. - (function_arg): Wrap BLKmode argument in register a7 in a PARALLEL. - * config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define. - * config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or - xtensa_copy_incoming_a7 before reload. - -2004-01-27 J"orn Rennecke - - * coverage.c (get_coverage_counts): Give a different message - if flag_guess_branch_prob is set. - * predict.c (counts_to_freqs): Return an int. - (estimate_bb_frequencies): If counts_to_freqs returns zero, - calculate estimates. - -2004-01-27 Kazu Hirata - - * config/iq2000/iq2000-protos.h: Remove the prototype for - iq2000_setup_incoming_varargs. - * config/iq2000/iq2000.c (TARGET_PROMOTE_FUNCTION_ARGS): New. - (TARGET_PROMOTE_FUNCTION_RETURN): Likewise. - (TARGET_PROMOTE_PROTOTYPES): Likewise. - (TARGET_STRUCT_VALUE_RTX): Likewise. - (TARGET_RETURN_IN_MEMORY): Likewise. - (TARGET_SETUP_INCOMING_VARARGS): Likewise. - (TARGET_STRICT_ARGUMENT_NAMING): Likewise. - (iq2000_return_in_memory): Likewise. - (iq2000_setup_incoming_varargs): Make it static. Receive the - first argument by reference. - * config/iq2000/iq2000.h (PROMOTE_FUNCTION_ARGS): Remove. - (PROMOTE_FUNCTION_RETURN): Likewise. - (PROMOTE_PROTOTYPES): Likewise. - (RETURN_IN_MEMORY): Likewise. - (STRUCT_VALUE): Likewise. - (SETUP_INCOMING_VARARGS): Likewise. - (STRICT_ARGUMENT_NAMING): Likewise. - -2004-01-24 James A. Morrison - - * fixinc/fixinc.c (test_test): Initialize res. - (start_flexer): Initialize pz_cmd_save. - -2004-01-27 Zack Weinberg - - * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS, - SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS. - -2004-01-27 Zack Weinberg - - PR 7198 - * config/ia64/ia64.md (*nmaddsf4, *nmadddf4, *nmadddf4_alts) - (*nmadddf4_trunc, *nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf) - (*nmaddxf4_alts, *nmaddxf4_truncdf_alts): - Rewrite pattern as (minus (op 3) (mult (op 1) (op 2))). - Possibly rename pattern for consistency. - Remove ??? comments suggesting that this be done. - (*nmaddsf4_alts, *nmadddf4_truncsf_alts, *nmaddxf4_truncsf_alts): - New patterns. - (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr) - (divsf3_internal_lat, divsf3_internal_thr, sqrtsf2_internal_thr) - (divdf3_internal_lat, divdf3_internal_thr, sqrtdf2_internal_thr) - (divxf3_internal_lat, divxf3_internal_thr, sqrtxf2_internal_thr): - Update to match. - -2004-01-27 Ian Lance Taylor - - * config/arm/arm.c (output_return_instruction): Only restore IP - into SP if frame_pointer_needed. - -2004-01-27 Eric Botcazou - - * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1 - for SCmode and DCmode if ARCH32. - (sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32. - * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode - if ARCH32. - (BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode - if ARCH32. - (BASE_OUTGOING_VALUE_REG): Likewise. - -2004-01-27 Eric Botcazou - - PR target/10904 - PR target/13058 - * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New. - Forbid mode changes from SImode for lower FP regs if ARCH64. - -2004-01-27 J"orn Rennecke - - * Makefile.in (bt-load.o): Depend on except.h. - * bt-load.c (except.h): #include. - (compute_defs_uses_and_gen): If insn at end of BB can throw - within this function, consider registers used by it unavailable for - btr migration. - (move_btr_def): If insn at end of BB can throw, insert before rather - than after. - - * flags.h (flag_btr_bb_exclusive): Declare. - * toplev.c (flag_btr_bb_exclusive): New variable. - (f_options): Add btr-bb-exclusive. - * bt-load.c (augment_live_range): Restore old behaviour if - flag_btr_bb_exclusive is set. - * common.opt: Add entry for -fbtr-bb-exclusive. - * opts.c (common_handle_options): Same. - * doc/invoke.texi: Document -fbtr-bb-exclusive. - - * bt-load.c (btrs_live_at_end): New variable. - (compute_defs_uses_and_gen): Compute its pointed-to array. - (clear_btr_from_live_range, add_btr_to_live_range): Update it. - (augment_live_range): When augmenting with a new dominator, - use only its btrs_live_at_end set, but also add in the full set - of the old dominator. - (btr_def_live_range): Use btrs_live_at_end. - (move_btr_def): Set other_btr_uses_before_def, and move new set - to the end of the basic block, if appropriate. - (migrate_btr_defs): Allocate and free btrs_live_at_end. - - * bt-load.c (basic_block_freq): Remove outdated comment. - -2004-01-27 Alan Modra - - * config/rs6000/rs6000.h: Correct target_flags free bits comment. - (PREDICATE_CODES): Remove duplicate. - * config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define. - (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL. - (MASK_PROFILE_KERNEL): Adjust define. - -2004-01-27 Jakub Jelinek - - * config/i386/i386.c (ix86_constant_alignment): Decrease alignment - of long string literals from 32 bytes to sizeof (void *) when !-Os - and to 1 with -Os. - -2004-01-26 Kazu Hirata - - * config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept - constant addresses in the normal mode. - -2004-01-26 Kaveh R. Ghazi - - * system.h (CHAR_BITFIELD): Delete. - (BOOL_BITFIELD): New. - * c-decl.c (c_scope): Use BOOL_BITFIELD. - * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD. - -2004-01-26 Kazu Hirata - - * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New. - (TARGET_PROMOTE_FUNCTION_RETURN): Likewise. - (TARGET_PROMOTE_PROTOTYPES): Likewise. - (TARGET_STRUCT_VALUE_RTX): Likewise. - (TARGET_RETURN_IN_MEMORY): Likewise. - (arc_return_in_memory): Likewise. - * config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove. - (PROMOTE_FUNCTION_RETURN): Likewise. - (RETURN_IN_MEMORY): Likewise. - (STRUCT_VALUE): Likewise. - -2004-01-26 Richard Henderson - - * c-parse.in (extension): Use itype. - (SAVE_EXT_FLAGS): Don't allocate a tree. - (RESTORE_EXT_FLAGS): Don't read a tree. - -2004-01-26 Jan Hubicka - - * cselib.c (discard_useless_values): Clear out value pointer pointing - to datastructure to be recycled. - -2004-01-25 Jan Hubicka - - * genextract.c (main): Do not output the memset when not checking. - -2004-01-26 Kazu Hirata - - * config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a - switch statement instead of a chain of if statements. - -2004-01-26 Jeff Law - - * doc/contrib.texi: Minor cleanup for Paolo Carlini's entry. Add - acute accents for Petur Runolfsson's entry. - -2004-01-26 Kazu Hirata - - * config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New. - (TARGET_RETURN_IN_MEMORY): Likewise. - * config/pdp11/pdp11.h (STRUCT_VALUE): Remove. - (RETURN_IN_MEMORY): Likewise. - -2004-01-26 Fariborz Jahanian - - * config/rs6000/rs6000.c (rs6000_emit_move): split slow - unaligned load/store into smaller loads and stores. - -2004-01-26 Fariborz Jahanian - - * function.c (assign_parms): Do not assign - long long argument to memory in prologue if - is it loaded into register. - -2004-01-26 Fariborz Jahanian - - PR middle-end/13779 - * expr.c (emit_group_load): split constant - correctly into register components of PARALLEL insn. - -2004-01-26 Fariborz Jahanian - - * gcc/config/rs6000/rs6000.md (save_stack_nonlocal): - Use adjust_address_nv directly with appropriate mode. - (restore_stack_nonlocal): Ditto. - -2004-01-26 Kazu Hirata - - * config/xtensa/xtensa-protos.h: Remove the prototype for - xtensa_builtin_saveregs. - * config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New. - (TARGET_PROMOTE_FUNCTION_RETURN): Likewise. - (TARGET_PROMOTE_PROTOTYPES): Likewise. - (TARGET_STRUCT_VALUE_RTX): Likewise. - (TARGET_RETURN_IN_MEMORY): Likewise. - (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise. - (xtensa_builtin_saveregs): Make it static. - (xtensa_return_in_memory): New. - * config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove. - (PROMOTE_FUNCTION_RETURN): Likewise. - (PROMOTE_PROTOTYPES): Likewise. - (STRUCT_VALUE): Likewise. - (RETURN_IN_MEMORY): Likewise. - (EXPAND_BUILTIN_SAVEREGS): Likewise. - -2004-01-26 Kazu Hirata - - * config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New. - (arm_setup_incoming_varargs): Likewise. - * config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove. - -2004-01-26 Kazu Hirata - - * config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New. - (cris_setup_incoming_varargs): Likewise. - * config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove. - -2004-01-26 Kazu Hirata - - * config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New. - (ns32k_struct_value_rtx): Likewise. - * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to - NS32K_STRUCT_VALUE_REGNUM. - -2004-01-26 Kazu Hirata - - * config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New. - (TARGET_PROMOTE_PROTOTYPES): Likewise. - (TARGET_STRUCT_VALUE_RTX): Likewise. - (arm_struct_value_rtx): Likewise. - * config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove. - (STRUCT_VALUE): Likewise. - (STRUCT_VALUE_REGNUM): Likewise. - (PROMOTE_PROTOTYPES): Likewise. - -2004-01-26 Kazu Hirata - - * config/ia64/ia64-protos.h: Remove the prototype for - ia64_setup_incoming_varargs and ia64_return_in_memory. - * config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New. - (TARGET_RETURN_IN_MEMORY): Likewise. - (TARGET_SETUP_INCOMING_VARARGS): Likewise. - (TARGET_STRICT_ARGUMENT_NAMING): Likewise. - (ia64_setup_incoming_varargs): Adjust the arguments to meet - the requirement of TARGET_SETUP_INCOMING_VARARGS. - (ia64_return_in_memory): Make it static. Change the return - type to bool from int. Add an argument. - (ia64_struct_value_rtx): New. - * config/ia64/ia64.h: Remove commented-out definitions of - PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and - PROMOTE_PROTOTYPES. - (RETURN_IN_MEMORY): Remove. - (STRUCT_VALUE_REGNUM): Likewise. - (STRICT_ARGUMENT_NAMING): Likewise. - -2004-01-26 Eric Botcazou - - PR target/13666 - * config/sparc/sparc.c (function_arg_union_value): New function. - (function_arg): Use it to deal with unions. - (function_value): Likewise. Define 'regbase' only for ARCH64. - Replace a conditional statement by a simpler one. - -2004-01-26 Richard Sandiford - - * config/mips/mips.c (mips16_optimize_gp): Delete. - (mips_reorg): Don't call it. - -2004-01-26 Michael Hayes - - * config/c4x/c4x.md (addqi3_noclobber): Move up pecking order. - (floatunsqihf2): Remove operand 6. - (fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other - fix patterns. - (ldi_conditional, ldf_conditional): Validate operands. - -2004-01-26 Michael Hayes - - * config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove. - (HAVE_GAS_HIDDEN): Undefine as interim measure. - -2004-01-26 Michael Hayes - - * config/c4x/c4x.c (c4x_legitimate_address_p): Invalidate direct - memory references if TARGET_EXPOSE_LDP nonzero. - -2004-01-26 Michael Hayes - - * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts. - -2004-01-26 Michael Hayes - - * config/c4x/c4x.c (c4x_valid_operands): More aggressively reject - invalid operand combinations. - -2004-01-26 Michael Hayes - - * config/c4x/c4x.c (c4x_check_legit_addr): Rename to - c4x_legitimate_address_p. Fix post_modify check. - - * config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust. - * config/c4x/c4x.h (c4x_check_legit_addr): Adjust. - -2004-01-25 Kazu Hirata - - * config/pa/pa-protos.h: Remove the prototype for - hppa_builtin_saveregs. Add a prototype for - pa_return_in_memory. - * config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New. - (TARGET_PROMOTE_PROTOTYPES): Likewise. - (TARGET_STRUCT_VALUE_RTX): Likewise. - (TARGET_RETURN_IN_MEMORY): Likewise. - (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise. - (pa_struct_value_rtx): Likewise. - (pa_return_in_memory): Likewise. - * config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to - PA_STRUCT_VALUE_REGNUM. - (INIT_CUMULATIVE_ARGS): Use pa_return_in_memory. - (EXPAND_BUILTIN_SAVEREGS): Remove. - (PROMOTE_PROTOTYPES): Likewise. - (PROMOTE_FUNCTION_RETURN): Likewise. - -2004-01-25 Kazu Hirata - - * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New. - (TARGET_STRUCT_VALUE_RTX): Likewise. - (vax_struct_value_rtx): Likewise. - * config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to - VAX_STRUCT_VALUE_REGNUM. - (PROMOTE_PROTOTYPES): Remove. - -2004-01-26 Michael Hayes - - * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS): Handle symref. - -2004-01-25 Chris Demetriou - - * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2, - and MIPS64 have HI/LO interlocks. Update comment. - -2004-01-25 Kazu Hirata - - * config/stormy16/stormy16-protos.h: Remove the prototype for - xstormy16_setup_incoming_varargs. - * config/stormy16/stormy16.c - (xstormy16_setup_incoming_varargs): Remove. - (xstormy16_return_in_memory): New. - (TARGET_PROMOTE_FUNCTION_ARGS): Likewise. - (TARGET_PROMOTE_FUNCTION_RETURN): Likewise. - (TARGET_PROMOTE_PROTOTYPES): Likewise. - (TARGET_STRUCT_VALUE_RTX): Likewise. - (TARGET_RETURN_IN_MEMORY): Likewise. - * config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove. - (PROMOTE_FUNCTION_RETURN): Likewise - (PROMOTE_PROTOTYPES): Likewise - (RETURN_IN_MEMORY): Likewise - (STRUCT_VALUE): Likewise - (SETUP_INCOMING_VARARGS): Likewise - -2004-01-25 Richard Sandiford - - * config/mips/mips.c (mips_offset_within_object_p): New function. - (mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and - SYMBOL_CONSTANT_POOL cases. Also use it for SYMBOL_GENERAL if the - ABI has 64-bit pointers and the object file only allows 32-bit symbols. - -2004-01-25 Kazu Hirata - - * config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove. - (PROMOTE_FUNCTION_RETURN): Likewise. - -2004-01-25 Kazu Hirata - - * config/mn10300/mn10300-protos.h: Remove the prototype for - mn10300_builtin_saveregs. - * config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New. - (TARGET_STRUCT_VALUE_RTX): Likewise. - (TARGET_RETURN_IN_MEMORY): Likewise. - (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise. - (mn10300_return_in_memory): Likewise. - (mn10300_builtin_saveregs): Make it static. - * config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove. - (RETURN_IN_MEMORY): Likewise. - (STRUCT_VALUE): Likewise. - (EXPAND_BUILTIN_SAVEREGS): Likewise. - -2004-01-25 Eric Botcazou - - PR bootstrap/13853 - * cfgcleanup.c (try_optimize_cfg): Explicitly test against 0. - -2004-01-25 Kazu Hirata - - * config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by - using ccr. - -2004-01-25 Kazu Hirata - - * config/i860/i860-protos.h: Remove the prototype for - i860_saveregs. - * config/i860/i860.c (i860_saveregs): Make it static. - (i860_struct_value_rtx): New. - (TARGET_STRUCT_VALUE_RTX): Likewise. - (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise. - * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to - I860_STRUCT_VALUE_REGNUM. - (EXPAND_BUILTIN_SAVEREGS): Remove. - -2004-01-25 Kazu Hirata - - * config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New. - (TARGET_RETURN_IN_MEMORY): Likewise. - (m68hc11_struct_value_rtx): Likewise. - (m68hc11_return_in_memory): Likewise. - * config/m68hc11/m68hc11.h: Remove a commented-out definition - of PROMOTE_PROTOTYPES. - (RETURN_IN_MEMORY): Remove. - (STRUCT_VALUE_REGNUM): Likewise. - -2004-01-25 Kazu Hirata - - * config/mmix/mmix-protos.h: Remove the prototype for - mmix_setup_incoming_varargs. - * config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New. - (TARGET_STRUCT_VALUE_RTX): Likewise. - (TARGET_SETUP_INCOMING_VARARGS): Likewise. - (mmix_setup_incoming_varargs): Make it static. - (mmix_struct_value_rtx): New. - * config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove. - Remove a commented-out definition of PROMOTE_FUNCTION_RETURN. - (STRUCT_VALUE_REGNUM): Remove. - (SETUP_INCOMING_VARARGS): Likewise. - -2004-01-25 Kazu Hirata - - * config/mips/mips-protos.h: Remove the prototypes for - mips_setup_incoming_varargs and mips_return_in_memory. - * config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New. - (TARGET_PROMOTE_FUNCTION_RETURN): Likewise. - (TARGET_PROMOTE_PROTOTYPES): Likewise. - (TARGET_STRUCT_VALUE_RTX): Likewise. - (TARGET_RETURN_IN_MEMORY): Likewise. - (TARGET_SETUP_INCOMING_VARARGS): Likewise. - (TARGET_STRICT_ARGUMENT_NAMING): Likewise. - (mips_setup_incoming_varargs): Match the prototype for - TARGET_SETUP_INCOMING_VARARGS. - (mips_return_in_memory): Make it static. Add argument fntype. - (mips_strict_argument_naming): New. - * config/mips/mips.h (PROMOTE_PROTOTYPES): Remove. - (PROMOTE_FUNCTION_ARGS): Likewise. - (PROMOTE_FUNCTION_RETURN): Likewise. - (STRUCT_VALUE): Likewise. - (RETURN_IN_MEMORY): Likewise. - (SETUP_INCOMING_VARARGS): Likewise. - (STRICT_ARGUMENT_NAMING): Likewise. - -2004-01-25 Kazu Hirata - - * config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New. - (TARGET_RETURN_IN_MEMORY): Likewise. - (TARGET_SETUP_INCOMING_VARARGS): Likewise. - (ip2k_return_in_memory): Likewise. - (ip2k_setup_incoming_varargs): Likewise. - * config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove. - (STRUCT_VALUE): Likewise. - (STRUCT_VALUE_INCOMING): Likewise. - (SETUP_INCOMING_VARARGS): Likewise. - -2004-01-25 Kazu Hirata - - * config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New. - (TARGET_RETURN_IN_MEMORY): Likewise. - (TARGET_STRICT_ARGUMENT_NAMING): Likewise. - (avr_return_in_memory): Remove. - * config/avr/avr.h (RETURN_IN_MEMORY): Remove. - (STRUCT_VALUE): Likewise. - (STRUCT_VALUE_INCOMING): Likewise. - (STRICT_ARGUMENT_NAMING): Likewise. - -2004-01-25 Jan Hubicka - - * combine.c (recog_for_combine): Avoid allocating unnecesary RTX. - -2004-01-25 Richard Sandiford - - * config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete. - (mips_regno_mode_ok_for_base_p): Declare. - * config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77. - (FRAME_POINTER_REGNUM): Renumber to 78. - (FIRST_PSEUDO_REGISTER): Update comment accordingly. - (BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete. - (GP_REG_OR_PSEUDO_NONSTRICT_P): Delete. - (REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p. - (REG_MODE_OK_FOR_BASE_P): Likewise. - * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change - entry for 77 to "$arg" and entry for 78 to "$frame". - (mips_regno_to_class): Map 77 and 78 to ALL_REGS. - (mips_reg_mode_ok_for_base_p): Remove. - (mips_regno_mode_ok_for_base_p): New function, derived from old - BASE_REG_P macro. Don't enforce the mips16 stack pointer - restrictions unless we're being strict. - (mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p. - -2004-01-24 Kazu Hirata - - * c-common.h: Fix comment typos. - * c-decl.c: Likewise. - * cgraphunit.c: Likewise. - * combine.c: Likewise. - * et-forest.c: Likewise. - * flow.c: Likewise. - * function.c: Likewise. - * ifcvt.c: Likewise. - * integrate.c: Likewise. - * jump.c: Likewise. - * postreload.c: Likewise. - * varray.c: Likewise. - -2004-01-24 Kazu Hirata - - * doc/frontends.texi: Update copyright. - * doc/gcov.texi: Likewise. - * doc/gty.texi: Likewise. - * doc/sourcebuild.texi: Likewise. - * doc/standards.texi: Likewise. - -2004-01-24 Herman A.J. ten Brugge - - PR target/12978 - * c4x.md: (movstrqi*) Use match_scratch instead of match_dup. - Remove movstrqi_small because it conflicts with movstrqi_large. - -2004-01-24 Kazu Hirata - - * config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New. - (TARGET_STRUCT_VALUE_RTX): Likewise. - (cris_struct_value_rtx): Likewise. - * config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove. - (CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of - STRUCT_VALUE_REGNUM. - (STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM. - -2004-01-24 Ian Lance Taylor - - PR bootstrap/13848 - * 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 Jan Hubicka - - * emit-rtl.c (change_address, adjust_address_1, offset_address, - widen_memory_access): Return early when there is nothing to change. - -2004-01-24 Jakub Jelinek - - * simplify-rtx.c (simplify_relational_operation): Don't - simplify address == constant into address + -constant == 0. - -2004-01-24 Kazu Hirata - - * gcc.c (process_command): Don't internationalize the - Copyright message. - * mips-tfile.c (main): Likewise. - -2004-01-24 Andreas Tobler - - * cse.c: (cse_cc_succs) Fix comparison warning. - -2004-01-24 Kazu Hirata - - * config/h8300/h8300.md: Remove extraneous USE in expanders. - -2004-01-24 Kazu Hirata - - * config/h8300/h8300-protos.h: Provide prototypes for - h8300_legitimate_constant_p and h8300_legitimate_address_p. - * config/h8300/h8300.c (h8300_legitimate_constant_p): New. - (h8300_rtx_ok_for_base_p): Likewise. - (h8300_legitimate_address_p): Likewise. - * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use - h8300_legitimate_constant_p. - (RTX_OK_FOR_BASE_P): Remove. - (GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p. - -2004-01-24 Kazu Hirata - - * config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New. - (REG_OK_FOR_BASE_NONSTRICT_P): Likewise. - (REG_OK_FOR_INDEX_STRICT_P): Likewise. - (REG_OK_FOR_BASE_STRICT_P): Likewise. - (REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P. - (REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P. - (REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P. - (REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P. - -2004-01-24 Jan Hubicka - - * cselib.c (remove_useless_values): Do not access discarded values. - -2004-01-24 Joseph S. Myers - - * c-typeck.c (build_conditional_expr): Do not allow non-lvalue - arrays. - -2004-01-23 Kazu Hirata - - * recog.c: Fix a typo in copyright. - -2004-01-23 Andrew Pinski - - * config/rs6000/rs6000.md (call): Fix misappiled patch. - (call_value): Likewise. - -2004-01-23 Richard Henderson - - PR opt/12941 - * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value. - (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0) - if SHIFT_COUNT_TRUNCATED is set. - -2004-01-23 Bob Wilson - - * config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as - separate real and imaginary parts. - * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define. - -2004-01-23 Hartmut Penner - - PR target/13674 - * config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage - loading into GPR. - -2004-01-23 Jan Hubicka - - * emit-rtl.c (change_address_1): Do not re-generate the RTX if nothing - change. - - * alloc-pool.c (align_four): Kill. - (create_alloc_pool): Align size to eight. - (free_alloc_pool, free_pool): Invalidate deallocated data. - -2004-01-23 Ian Lance Taylor - - PR gcc/1532 - * cse.c (cse_change_cc_mode): New static function. - (cse_change_cc_mode_insns, cse_cc_succs): Likewise. - (cse_condition_code_reg): New function. - * rtl.h (cse_condition_code_reg): Declare. - * toplev.c (rest_of_handle_cse2): 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): New function. - * 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/tm.texi (Condition Code): Document new hooks. - -2004-01-23 Rainer Orth - - * fixinc/inclhack.def (bad_lval): Renamed to ... - (alpha_bad_lval): ... this. - Removed file list. - Restrict to alpha*-dec-osf*. - * fixinc/fixincl.x: Regenerate. - * fixinc/tests/base/dirent.h: Remove, moving test ... - * fixinc/tests/base/testing.h: ... here, reflecting new name. - -2004-01-23 Zack Weinberg - - PR c/13814 - * c-decl.c (diagnose_mismatched_decls): Also discard a - built-in if we encounter an old-style definition with the - same name. - -2004-01-23 Jakub Jelinek - - * config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was - set to default{32,64}. - -2004-01-21 Jakub Jelinek - - * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR) - [!__powerpc64__]: Corrected to handle kernels with changed ucontext. - -2004-01-23 Eric Botcazou - Olivier Hainque - - * fold-const.c (fold_binary_op_with_conditional_arg): Only - build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR. - -2004-01-23 Daniel Jacobowitz - - * config/arm/arm.c (arm_legitimate_address_p): Don't check the mode - size for minipool references. - -2004-01-23 Roger Sayle - - * real.c (real_floor, real_ceil): Tweak to allow input and output - arguments to overlap. - (real_round): New function to implement round(3m) semantics. - * real.h (real_round): Prototype here. - * builtins.c (fold_builtin_round): New function to constant fold - round, roundf and roundl. - (fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}. - -2004-01-23 Alexandre Oliva - - PR optimization/13819 - * config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs - introduced by 2004-01-20's Jan Hubicka's copy_insn change. - (sh_handle_sp_switch_attribute): Remove warning. - -2004-01-23 Jan Hubicka - - * i386.c (ix86_emit_restore_regs_using_mov): Deal with large offsets. - -2004-01-23 J"orn Rennecke - - * doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP - may or may not return non-NIL. - * postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code, - check CANNOT_CHANGE_MODE_CLASS - -2004-01-23 Jan Hubicka - - * basic-block.h (PROP_POSTRELOAD): New macro. - (CLEANUP_LOG_LINKS): New. - * cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to. - * toplev.c (rest_of_handle_life): Preserve LOG_LINKS trought cleanup_cfg. - - * cselib.c (value_pool): New. - (new_cselib_val): Use pool. - (cselib_init): Initialize value_pool - (cselib_finish): Free pool. - -2004-01-23 Eric Botcazou - - * config/sparc/sparc.c (scan_record_type): New function. - (function_arg_slotno): Use it to determine which kinds of - registers the record can be passed in. - -2004-01-22 James A. Mmorrison - - * config/pa/fptr.c: Fix old-style definition. - -2004-01-22 Paolo Bonzini - - PR optimization/13724 - * cse.c (fold_rtx) : Fold a SUBREG to zero if it - represents the zero bits produced by a ZERO_EXTEND operation. - -2004-01-22 Roger Sayle - - PR optimization/13821 - * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to - correctly calculate the lowpart offset of the contracted subreg. - -2004-01-22 Ian Lance Taylor - - * doc/invoke.texi (Optimize Options): Note that --param arguments - are subject to change without notice. - -2004-01-22 Rainer Orth - - * config.gcc (mips-sgi-irix6*o32): Removed. - * config/mips/iris6-o32-as.h: Likewise. - * config/mips/iris6-o32-gas.h: Likewise. - * config/mips/iris6-o32.h: Likewise. - -2004-01-22 Jan Hubicka - - * cfgcleanup.c (first_pass): New static variable. - (try_forward_edges): Add work limiting check for threading. - (try_crossjump_bb): Add work limiting check for crossjumping. - (try_optimize_cfg): Maintain first pass variable. - -2004-01-22 Bob Wilson - - * config/xtensa/xtensa.c (function_arg): Generalize logic so that it - handles complex and vector modes. - -2004-01-22 Kazu Hirata - - * config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove. - (REG_OK_FOR_BASE_P_STRICT): Likewise. - (STRICT): Likewise. - -2004-01-22 Daniel Jacobowitz - - * c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1) - (genrtl_for_stmt): Remove emit_nop calls. - -2004-01-22 John David Anglin - - PR target/13713 - PR target/13324 - * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload, - movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload, - clrstrdi_prereload, clrstrdi_postreload): Fix constraints. - -2004-01-22 Daniel Jacobowitz - - * config/arm/arm.c: Include "debug.h". - (thumb_pushpop): Take two new arguments. Add some commentary. - Output frame information when pushing. - (thumb_exit, thumb_unexpanded_epilogue): Update calls to - thumb_pushpop. - (thumb_output_function_prologue): Likewise. Accumulate a CFA - offset, and pass it to thumb_pushpop. Output CFI information. - (thumb_expand_prologue): Add some frame-related markers and notes. - -2004-01-22 Ulrich Weigand - - * config/s390/s390.c (s390_frame_info): Allow large frame sizes - for TARGET_64BIT. - (s390_arg_frame_offset): Change return type to HOST_WIDE_INT. - * config/s390/s390-protos.h (s390_arg_frame_offset): Likewise. - -2004-01-22 Roger Sayle - Paolo Bonzini - - * rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb. - (subreg_lsb): Change to call new subreg_lsb_1 helper function. - * rtl.h (subreg_lsb_1): Prototype here. - * simplify-rtx.c (simplify_subreg): Optimize subregs of zero and - sign extensions. - -2004-01-22 Kazu Hirata - - * doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the - macro need not be defined if jump-tables should contain - relative addresses only when -fPIC or -fPIC is in effect. - -2004-01-22 Jan Hubicka - - * alias.c (reg_base_value): Turn into varray. - (reg_base_value_size): Kill. - (old_reg_base_value): New deletable varray. - (alias_invariant_size): New variable. - (REG_BASE_VALUE): Update to use varray. - (find_base_value): Likewise. - (record_set): Likewise. - (record_base_value): Likewise. - (memrefs_conflict_p): Likewise. - (record_set): Likewise - (record_base_value): Likewise. - (memrefs_conflict_p): Use alias_invariant_size. - (init_alias_analysis): Use varray; set alias_invariant_size; - rescale other arrays to be sized by maxreg. - (end_alias_analysis): Save reg_base_value; clear alias_invariant_size. - -2004-01-22 Eric Botcazou - - * config/sparc/sparc.c (function_arg_slotno): Use - FLOAT_TYPE_P to detect FP fields in structures. - (function_arg_record_value_1): Likewise. - (function_arg_record_value_2): Likewise. - -2004-01-22 Jan Hubicka - - * function.c (allocate_struct_function): Do not initialize expr, emit - and varasm. - (prepare_function_start): Do it here. - * c-parse.in (maybe_type_qual): Do not produce line number notes. - -2004-01-22 Eric Botcazou - - PR target/13559 - * config/sparc/sparc.c (function_arg_record_value_3): Revert - to 'word_mode' once the first slot has been filled. - -2004-01-22 Olivier Hainque - - * config/sparc/sparc.c (function_arg_record_value_1): Fix - computation of the number of integer registers required. - -2004-01-21 Kazu Hirata - - * config/i386/i386.md: Simplify certain comparisons of - const_int. - -2004-01-21 Andrew Pinski - - PR target/13785 - * config/rs6000/rs6000.md (call_value): Force operand - 1 not operand 0 into a register. - -2004-01-21 Kazu Hirata - - * cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def, - unwind-dw2-fde.h: Update copyright. - -2004-01-21 John David Anglin - - * pa-protos.h: Update copyright. - * pa.h: Likewise. - * pa.md: Likewise. - -2004-01-21 Caroline Tice - - PR target/12308 - * config/i386/i386.md (fix_truncxfdi2): Add clause to clobber - flags register. - (fix_truncdfdi2): Likewise. - (fix_truncsfdi2): Likewise. - (*fix_truncdi_1): Likewise. - (fix_truncxfsi2): Likewise. - (fix_truncdfsi2): Likewise. - (fix_truncsfsi2): Likewise. - (*fix_truncsi_1): Likewise. - (fix_truncxfhi2): Likewise. - (fix_truncdfhi2): Likewise. - (fix_truncsfhi2): Likewise. - (*fix_trunchi_1): Likewise. - -2004-01-21 Kazu Hirata - - * alias.c, basic-block.h, c-common.c, c-common.h, - c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c, - calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c, - combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c, - cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h, - defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c, - expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c, - genautomata.c, genconditions.c, genemit.c, genflags.c, - gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c, - ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c, - langhooks-def.h, langhooks.c, langhooks.h, line-map.c, - line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c, - ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c, - rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h, - target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h, - unwind.h, varray.c, varray.h: Update copyright. - -2004-01-21 Kazu Hirata - - * config/h8300/coff.h: Update copyright. - * config/h8300/elf.h: Likewise. - * config/h8300/h8300-protos.h: Likewise. - * config/h8300/h8300.c: Likewise. - * config/h8300/h8300.h: Likewise. - * config/h8300/h8300.md: Likewise. - -2004-01-21 John David Anglin - - * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3, - ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time, - ultrix_unistd): New hacks. - * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK, - ULTRIX_CONST2_CHECK): Add checks. - * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise. - * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise. - * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise. - * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise. - * fixinc/tests/base/locale.h: New file. - * fixinc/fixincl.x: Rebuilt. - -2004-01-21 Andreas Jaeger - Michael Matz - - * doc/extend.texi (Extended Asm): Clarify memory clobber. - -2004-01-21 Jakub Jelinek - - * crtstuff.c (frame_dummy, __do_global_ctors_1): Call - _Jv_RegisterClasses through a function pointer. - -2004-01-21 Falk Hueffner - - PR target/12898 - * config/alpha/alpha.c (alpha_emit_set_const_1): If - no_new_pseudos, use gen_rtx_SET directly for SImode constants - which need multiple instructions to emit. - -2004-01-21 Inaoka Kazuhiro - - * config/m32r/m32r.h (CPP_SPEC): Define. - -2004-01-21 Zack Weinberg - - * c-decl.c (merge_decls): Kill different_binding_level and - different_tu arguments; simplify throughout. - (duplicate_decls): Likewise. - (pushdecl, merge_translation_unit_decls): Update calls to - duplicate_decls. - -2004-01-20 Kaveh R. Ghazi - - * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and - $(SYSTEM_H). - (print-rtl1.o): Depend on $(SYSTEM_H). - -2004-01-20 Kelley Cook - - PR bootstrap/12730 - * configure.ac: Delete definition and subsitution of docdir. - Add info, man, srcman and srcinfo to target hooks. Create doc/ - directory. - * configure: Regenerate. - * Makefile.in: Don't substitute docdir and delete all references - throughout. - (MAKEINFOFLAGS): Define. - (stmp-docobjdir): Delete. - (INFOFILES, MANFILES): Define. - (info): Call lang.info, srcinfo and lang.srcinfo. - (generated-manpages): Call lang.man, srcman and lang.srcman. - (srcinfo, srcman): New rules to copy back files to source directory. - (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule. - (install-man): Revamp rule. - (clean): Update dvi directory. - (distclean): Delete TAGS from front end directorys. - (maintainer-clean): Delete all document files in source directory. - - objc/Make-lang.in (objc.man, objc.info): Dummy entries. - (objc.srcman, objc.srcinfo): Likewise. - -2004-01-20 Bruce Korb - - * fixinc/inclhack.def(math_exception): bypass only for glibc. - (matherr_decl): rename & relocate as exception_structure. - This fix must precede the math_exception fix. - -2004-01-20 Roger Sayle - - * fold-const.c (fold_convert): Rename to fold_convert_const. - (fold_convert_const): Change arguments to take a tree_code, - a type and the operand/expression to be converted. Return - NULL_TREE if no simplification is possible. Add support for - FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR. - (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR. - Adjust call to fold_convert to match new fold_convert_const. - Avoid modifying the tree passed to fold in-place. - -2004-01-21 Alan Modra - - * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define. - * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT. - * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document. - -2004-01-20 John David Anglin - - * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes. - * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d): - Likewise. Handle frames larger than 0x7fffffff on 64-bit ports. - (emit_move_sequence): Check scratch_reg first in various if statements. - Extend source simplification to handle all 64-bit CONST_INTs. - (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing - frame size. - (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for - frame offset calculations. - * pa.h (NEW_HP_ASSEMBLER): Add comment. - (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT, - LEGITIMATE_64BIT_CONST_INT_P): Define. - (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P. Treat - any CONST_INT as legitimate during and after reload. - (VAL_32_BITS_P, INT_32_BITS): Define. - (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets. - -2004-01-20 Jan Hubicka - - * emit-rtl.c (verify_rtx_sharing, copy_insn_1, - emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers - containing hard regs are shared. - (gen_hard_reg_clobber): New function. - (hard_reg_clobbers): New array. - * genemit.c (gen_exp): Use gen_hard_reg_clobber. - (copy_rtx): Do not copy clobbers containing hard regs. - * rtl.h (gen_hard_reg_clobber): Declare. - -2004-01-20 Jan Hubicka - - * varray.c: Include hashtab.h - (varray_descriptor): New structure. - (hash_descriptor, eq_descriptor, varray_descriptor, - print_statistics): New static functions - (varray_init, varray_grow): Update statistics - (dump_varray_statistics): New function. - * varray.h (dump_varray_statistics): Declare. - * toplev.c (finalize): Call it. - * Makefile.in (varray.o): Add dependency. - -2004-01-20 Jan Hubicka - - * cselib.c: Include alloc-pool.h - (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill. - (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare. - (new_elt_list, new_elt_loc_list, unchain_one_elt_list, - unchain_one_elt_loc_list_pool, unchain_one_value, - new_cselib_val): Simplify using allocpool. - (cselib_init): Initialize allocpools. - (cselib_finish): Finish allocpools. - * Makefile.in (cselib.o): Depend on alloc-pool.h - -2004-01-20 Richard Sandiford - - * config/mips/mips.c (mips_load_call_address): Make the call insn - use $gp if it could be calling a lazy binding stub. - -2004-01-20 Kazu Hirata - - * config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define. - (TARGET_PROMOTE_FUNCTION_RETURN): Likewise. - (TARGET_STRUCT_VALUE_RTX): Likewise. - * config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove. - (PROMOTE_FUNCTION_RETURN): Remove. - (STRUCT_VALUE): Remove. - -2004-01-20 Denis Chertykov - - PR bootstrap/13735 - * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X - register as pointer after reload. - -2004-01-20 Zdenek Dvorak - - PR optimization/12440 - * loop.c: Include ggc.h. - (loop_optimize): Run garbage collector between optimization of loops. - * Makefile.in (loop.o): Add GGC_H dependency. - -2004-01-20 Hartmut Penner - - * gcc/config/rs6000/rs6000.c (function_arg) Handle - vector register special in function without prototype. - (function_arg_advance): Vector parameters get always - GPRs allocated for the linux64 target. - -2004-01-20 Kazuhiro Inaoka - - * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK - not TARGET_M32RX_MASK. - -2004-01-20 Eric Botcazou - - PR target/13557 - * config/sparc/sparc.c (function_arg): Reorder the cases. - -2004-01-19 Per Bothner - - Move cpp_reader's line_maps field to a shared global. - * cpphash.h (cpp_reader): Rename line_maps field to line_table - and change the type to a pointer rather than a struct. - * cppinit.c (cpp_push_main_field): Adjust accordingly. - * cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks): - Likewise. - * cppfiles.c (validate_pch): Likewise. - * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text): - Likewise. - * cpperror.c (print_location): Likewise. - * cpplib.h (cpp_create_reader): New line_maps pointer parameter. - * cppinit.c (cpp_create_reader): Handle new parameter. - (cpp_destroy): Don't free line_maps - that's no longer our job. - * input.h (line_table): New variable. - * toplev.c (line_table): Declare variable. - (general_init): Initialize line_table. - * c-opts.c (c_common_init_options): Pass line_table to - cpp_create_reader. - * fix-header.c (read_scan_file): New local variable line_table. - Initialize, and pass it to cpp_create_reader. - * Makefile.in (LIBS, LIBDEPS): Add libcpp.a. - (C_AND_OBJC_OBJS, fix-header): Remove redundant libcpp.a. - -2004-01-19 Per Bothner - - Implement a cache for linemap_lookup. - * line-map.h (struct_line_maps): Add cache field. - * line-map.c (linemap_init): Zero cache field. - (linemap_add): Set cache field to offset of newly allocated map. - (linemap_lookup): Use and set cache field. - -2004-01-20 Kaz Kojima - - PR optimization/13567 - * cse.c (cse_basic_block): Call cse_insn with a non-null - libcall_insn for the last SET insn of a no-confilict block. - -2004-01-20 Kelley Cook - - * Makefile.in (target_noncanonical, program_transform_name): Use - immediate define instead of deferred. - (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME, - PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME, - GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of - deferred backquote. - -2004-01-20 Joseph S. Myers - - * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to - true unconditionally. - * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning): - Remove. - (build_unary_op, build_modify_expr): Don't handle extended - lvalues. - (build_component_ref, build_conditional_expr): Call non_lvalue - instead of pedantic_non_lvalue. - (build_c_cast): Don't condition use of non_lvalue on pedantic. - * fold-const.c (fold): Don't check pedantic directly for - COMPOUND_EXPR. Ensure that results for COMPOUND_EXPR are - passed to pedantic_non_lvalue. - * doc/extend.texi: Remove documentation of extended lvalues. - -2004-01-19 Roger Sayle - - PR optimization/5263 - * simplify-rtx.c (associative_constant_p): Delete. - (simplify_associative_operation): Rewrite to linearize terms, and - attempt to simplify new term against both left and right subterms. - (simplify_binary_operation): Call swap_commutative_operands_p on - op0 and op1, not trueop0 and trueop1. Move the initialization of - trueop0 and trueop1 down to where first needed. - (simplify_relational_operation): Likewise. - * rtlanal.c (commutative_operand_precedence): Also order constant - operands using avoid_constant_pool_reference. - -2004-01-19 Richard Henderson - - * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN, - don't check memory mode. - (unaligned_memory_operand): Likewise. - (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't - abort for op0 not MEM. - - * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination - is not a reg, copy to a scratch first. - (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi, - unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le, - unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG. - (reload_inqi, reload_inhi): Fix mode of op0. - (reload_inqi_help, reload_inhi_help, reload_outqi_help, - reload_outhi_help): Likewise. Use define_insn_and_split. - - * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN - as well as $29 dead. - -2004-01-19 Eric Botcazou - - * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New. Emit - "tls_object" for thread-local objects. - * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit - "#tls" for thread-local sections. - * configure.ac (thread-local checks): Specify --fatal-warnings in - every binutils-specific checks. For sparc*-*-*, test whether the - OS is Solaris and the tools are native and act accordingly. - * configure: Rebuild. - -2004-01-19 Jeff Law - - * contrib.texi: Update Paolo Carlini's entry. New entries for - Jerry Quinn and Petur Runolfsson. - -2004-01-19 Roger Sayle - - * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for - size, don't use the larger zero-extending loads. - -2004-01-19 Richard Henderson - - * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs. - * alpha.md (UNSPEC_NT_LDA): Remove. - (UNSPEC_CVTLQ, cvtlq): New. - (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f. - (extendsidi2_fix): Remove. - (extendsidi2 splitter): Use cvtlq. - (extendsidi2 fp peepholes): Remove. - (cvtql): Use SFmode instead of SImode. - (fix_trunc?fsi): Update to match. - (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New. - (movsi): Rename from movsi_nofix, remove f alternatives. - (movsi_nt_vms): Similarly. - (movsi_fix, movsi_nt_vms_fix): Remove. - (nt_lda): Remove. - * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda. - -2004-01-19 Jan Hubicka - - * cgraph.c (cgraph_remove_node): Fix removal from linked list. - * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed - list. - (cgraph_remove_unreachable_nodes): New function - (cgraph_decide_inlining_of_small_function): Fix pasto. - (cgraph_decide_inlining_incrementally): Fix pasto. - (cgrpah_decide_inlining): Likewise; remove unreachable nodes. - -2004-01-19 Steven Bosscher - - * gengtype.c (header_file): Make it static. - (write_types_process_field, write_enum_defn): Minor whitespace fixes. - * gengtype.h (header_file): No longer extern. - -2004-01-18 Kazu Hirata - - * defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default. - * expr.c (CASE_VECTOR_PC_RELATIVE): Remove. - * stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise. - -2004-01-18 Kazu Hirata - - * stmt.c (HAVE_casesi): Define it not already defined. - (HAVE_tablejump): Likewise. - (expand_end_case_type): Resort to the binary tree method if - neither casesi or tablejump is available. - -2004-01-18 Daniel Jacobowitz - - * final.c (final_scan_insn): Make non-static again. - * output.h (final_scan_insn): Re-add prototype. - * config/arc/arc.c (arc_output_function_epilogue): Add NULL - to final_scan_insn call. - * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise. - * config/mips/mips.c (mips_output_conditional_branch): Likewise. - * config/pa/pa.c (output_lbranch, output_call): Likewise. - * config/sh/sh.c (print_slot): Likewise. - * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise. - (output_sibcall, sparc_flat_function_epilogue): Likewise. - -2004-01-18 Jan Hubicka - - * basic-block.h (try_redirect_by_replacing_jump): Declare. - * cfgcleanup.c (try_optimize_cfg): Use it. - * cfgrtl.c (try_redirect_by_replacing_jump): Export. - (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch): - Kill hack. - (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump. - - Revert: - 2004-01-16 Geoffrey Keating - - * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps - even after reload, just don't remove the actual jump tables. - -2004-01-18 Kazu Hirata - - * config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove. - -2004-01-18 Kazu Hirata - - * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of - the size of a pointer in bytes. - -2004-01-18 Roger Sayle - - * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing - live "next" variable, which could lead to an infinite loop. - -2004-01-18 Andrew Pinski - - * config/rs6000/altivec.h: Wrap C++ functions in extern "C++" - block. - - * config/rs6000/rs6000.c (rs6000_special_round_type_align): - Check for NULL in the chain and remove repeated code. - -2004-01-18 Jan Hubicka - - * coverage.c (checksum_string): Rename to ... - (coverage_checksum_string): ... this one, Use crc32_string; recognize - names containing random number and zero the number out in order to get - match. - -2004-01-18 Richard Sandiford - - * config/mips/mips.c (mips_got_alias_set): Mark for PCH. - -2004-01-18 Joseph S. Myers - - * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi, - doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi, - doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi, - doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi, - doc/trouble.texi: Remove trailing whitespace. - -2004-01-18 Richard Sandiford - - PR target/7618 - * config/mips/mips.c: Include cfglayout.h. - (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define. - (mips_unspec_offset_high): Add temporary register argument. - (mips_load_call_address): New function, split out from... - (mips_expand_call): ...here. - (mips_output_cplocal): New function. - (mips_output_function_prologue, mips_output_function_epilogue): Use it. - (mips_emit_loadgp): New function, split out from... - (mips_expand_prologue): ...here. - (mips_output_mi_thunk): New function. - -2004-01-17 Bernardo Innocenti - - * longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040, - mcpu32): Remove redundant checks for implied target predefines. - -2004-1-17 Andrew Pinski - - * config/rs6000/rs6000.c (rs6000_special_round_type_align): - Return type is unsigned int not int. - * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align): - Likewise. - -2004-01-18 Joseph S. Myers - - * doc/contrib.texi, doc/cppenv.texi, doc/extend.texi, - doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use - "GNU/Linux" and "Microsoft Windows" terminology. - -2004-01-18 Joseph S. Myers - - * doc/c-tree.texi, doc/compat.texi, doc/cpp.texi, - doc/cppopts.texi, doc/extend.texi, doc/install.texi, - doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi, - doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use - @smallexample instead of @example. - -2004-01-17 Ziemowit Laski - - * objc/objc-act.c (build_objc_method_call): Use target - hooks instead of macros to determine if ..._stret - dispatchers should be used (NeXT runtime only). - -2004-01-17 Roger Sayle - - * builtins.c (expand_builtin_expect_jump): Fix mistake in my - last patch. Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL. - -2004-01-17 Daniel Jacobowitz - - * rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc) - (emit_call_insn_before_sameloc, emit_insn_after_sameloc) - (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New - macros. - * reload1.c (emit_reload_insns): Use them. - * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc) - (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check - for NULL PATTERN. - -2004-01-17 Daniel Jacobowitz - - * final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define. - (final_scan_insn): Update to take an additional SEEN argument. Emit - a line note after the prologue. Make static. - (line_note_exists): Remove. - (final): Don't initialize line_note_exists. Update call to - final_scan_insn. - * output.h (final_scan_insn): Remove prologue. - * function.c (set_insn_locators): Update comment. - (thread_prologue_and_epilogue_insns): Add a comment. - -2004-01-17 Andrew Pinski - - PR target/10781 - * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align): - Prototype. - * config/rs6000/rs6000.c (rs6000_special_round_type_align): - New function. - * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it. - * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise. - * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise. - -2004-01-17 Jan Hubicka - - * toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous - commit. - - * toplev.c (HAVE_conditional_execution): Provide default. - (rest_of_handle_reorder_blocks): For conditional_execution target - update liveness once after all transformations - (rest_of_compilation): Do crossjumping before ce3. - -2004-01-17 Geoffrey Keating - - * alias.c (new_alias_set): Mark last_alias_set for PCH. - (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it - for PCH. - (get_frame_alias_set): Likewise, except rename it to 'frame_set'. - * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH. - (get_TOC_alias_set): Mark 'set' for PCH. - -2004-01-16 Geoffrey Keating - - * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps - even after reload, just don't remove the actual jump tables. - -2004-01-17 J. Brobecker - - * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type(). - Remove checks for is_ada() and TREE_UNSIGNED. - (subrange_type_die): Emit a byte_size attribute if the subrange - type size is different from the base type size. - (modified_type_die): Replace call to is_ada_subrange_type() by - call to is_subrange_type(). - -2004-01-16 Andrew Pinski - - * config/sh/sh.c: Include ggc.h. - -2004-01-16 Geoffrey Keating - - * Makefile.in (MD5_H): New. - (fold-const.o): Depend on md5.h. - (dwarf2out.o): Likewise. - (cppfiles.o): Likewise. - * cppfiles.c: Include md5.h. - (should_stack_file): Check against list read from PCH file. - (struct pchf_data): New. - (pchf): New variable. - (struct pchf_adder_info): New. - (pchf_adder): New. - (pchf_save_compare): New. - (_cpp_save_file_entries): New. - (_cpp_read_file_entries): New. - (struct pchf_compare_data): New. - (pchf_compare): New. - (check_file_against_entries): New. - * cpphash.h (_cpp_save_file_entries): Prototype. - (_cpp_read_file_entries): Prototype. - * cpppch.c (cpp_write_pch_state): Write the list of headers. - (cpp_read_state): Read the list of headers. - -2004-01-17 Jan Hubicka - - * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and - builtin_expect specially. - * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100. - (PARAM_LARGE_FUNCTION_INSNS): Set to 3000. - * invoke.texi (max-inline-insns-single): Set to 100. - (large-function-insns): Set to 3000. - -2004-01-16 Eric Christopher - Chandrakala Chavva - - * cppcharset.c (one_iso88591_to_utf8): New function. - (convert_iso88591_utf8): Ditto. Use. - (conversion_tab): Use. - (_cpp_input_to_utf8): New function. - (_cpp_init_iconv_buffer): Ditto. - (_cpp_close_iconv_buffer): Ditto. - * cpphash.h: Prototype new functions. - (cpp_buffer): Add input_cset_desc. - * cppinit.c: Add input_charset default. - * cpplib.c (cpp_push_buffer): Support init and - close of iconv. - * cpplib.h (cpp_options): Add input_charset. - -2004-01-16 Kazu Hirata - - * system.h (ASM_OUTPUT_SECTION_NAME): Poison. - * config/alpha/unicosmk.h: Remove a commented-out definition - of ASM_OUTPUT_SECTION_NAME. - * config/stormy16/stormy16.h: Likewise. - -2004-01-16 Rainer Orth - - * fixinc/inclhack.def (alpha___extern_prefix): Renamed to ... - (alpha___extern_prefix_sys_stat): ... this. - Apply to , too. - Tweak to match more variations. - * fixinc/tests/base/sys/stat.h: Adapt for new hackname. - - * fixinc/inclhack.def (alpha___extern_prefix, - alpha___extern_prefix_standards): New hacks to obey - __PRAGMA_EXTERN_PREFIX. - * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New - test. - * fixinc/tests/base/standards.h: Likewise. - - * fixincl/inclhack.def (alpha_pthread): Tweak to match more - variations. - New testcase. - * fixinc/tests/base/pthread.h: Handle it. - - * fixincl/inclhack.def (bad_lval): Sort file list. - Add many missing files up to Tru64 UNIX V5.1B. - * gcc/fixinc/tests/base/libgen.h: Renamed to ... - * gcc/fixinc/tests/base/dirent.h: ... this to match new file list - order. - - * fixinc/fixincl.x: Regenerate. - -2004-01-16 Mark Mitchell - - * version.c (version_string): Change to 3.5.0. - * doc/include/gcc-common.texi (version-GCC): Likewise. - -2004-01-16 Jan Hubicka - - * i386.md (load_tp_di): Fix pasto. - - PR opt/13608 - * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function. - - * c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator, - pp_c_character_constant, pp_c_floating_constant, - pp_c_additive_expression, pp_c_shift_expression, - pp_c_equality_expression, pp_c_and_expression, - pp_c_exclusive_or_expression, pp_c_inclusive_or_expression, - pp_c_logical_and_expression): Remove inline modifier. - * dwarf2out.c (get_AT): Likewise. - * et-forest.c (et_splay): Likewise. - * ra.h (ra_alloc, ra_calloc): Likewise - -2004-01-16 Kazu Hirata - - * config/frv/frv-protos.h: Fix comment formatting. - * config/frv/frv.c: Likewise. - * config/frv/frv.h: Likewise. - * config/frv/frv.md: Likewise. - * config/frv/frvbegin.c: Likewise. - * config/frv/frvend.c: Likewise. - -2004-01-16 Kazu Hirata - - * system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison. - * doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention - LINKER_DOES_NOT_WORK_WITH_DWARF2. - (LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove. - -2004-01-16 J"orn Rennecke - - PR 11864 - * postreload.c (reload_cse_simplify_operands): Don't remove - implicit extension from LOAD_EXTEND_OP. - -2004-01-16 Jan Hubicka - - PR opt/11350 - * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal - after reload. - * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks, - rtl_try_redirect_by_replacing_branch): Likewise. - -2004-01-15 Geoffrey Keating - - PR pch/13689 - * alias.c (struct alias_set_entry): Mark for GC. - (alias_sets): Make static, mark for GC. - (record_alias_subset): Use GC to allocate alias structures. - * varray.c (element): Make generic varrays GCed. - - PR pch/13361 - * c-typeck.c (constructor_asmspec): Delete. - (struct initializer_stack): Delete field 'asmspec'. - (start_init): Delete saving of asmspec. - (finish_init): Don't update constructor_asmspec. - * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree. - * stmt.c (expand_asm): Duplicate strings from tree. - (expand_asm_operands): Likewise. - * tree.c (tree_size): Update computation of size of STRING_CST. - (make_node): Don't make STRING_CST nodes. - (build_string): Allocate string with tree node. - * tree.def (STRING_CST): Update comment. - * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST. - (tree_string): Place contents of string in tree node. - * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string - from tree. - - * config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case - altivec operands. - -2004-01-15 Kazu Hirata - - * c-common.h: Fix comment formatting. - * c-cppbuiltin.c: Likewise. - * c-pragma.c: Likewise. - * calls.c: Likewise. - * collect2.c: Likewise. - * cppcharset.c: Likewise. - * cpptrad.c: Likewise. - * dbxout.c: Likewise. - * defaults.h: Likewise. - * dwarf2out.c: Likewise. - * fold-const.c: Likewise. - * genautomata.c: Likewise. - * genconditions.c: Likewise. - * genflags.c: Likewise. - * gengtype.c: Likewise. - * integrate.c: Likewise. - * loop.c: Likewise. - * predict.c: Likewise. - * sdbout.c: Likewise. - -2004-01-15 Zack Weinberg - - * config/ia64/ia64.md (*movti_internal): C output template - extracted to ia64.c. - (*movti_internal_reg): Delete. - (reload_inti, reload_outti): Use the correct mode on operand 2 - in the first place, don't fix it up in the output template. - (movtf, reload_ointf, reload_outtf): New expanders. - (*movtf_internal): New define_insn_and_split. - * config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode; - make static; do not hand TFmode CONST_DOUBLEs to split_double. - (ia64_split_tmode_move): New function, body mostly pulled - from ia64.md:*movti_internal. - (ia64_function_arg_words): New function, extracted common - logic from ia64_function_arg et seq. - (ia64_function_arg_offset): Likewise. Handle correctly the - case of a scalar quantity 16 bytes wide with only 8-byte alignment. - (ia64_function_arg, ia64_function_arg_partial_nregs) - (ia64_function_arg_advance): Use ia64_function_arg_words and - ia64_function_arg_offset. - (ia64_function_value): TCmode does not go in float regs. - (ia64_secondary_reload_class): Also handle TFmode. - * config/ia64/ia64-protos.h: Remove prototype for - ia64_split_timode; add prototype for ia64_split_tmode_move. - -2004-01-15 Kelley Cook - - * Makefile.in (MAINT): Make it an immediate assignment. - -2004-01-15 Kazu Hirata - - * config/m32r/m32r.md: Remove useless calls to gen_lowpart. - -2004-01-15 Kazu Hirata - - * config/h8300/coff.h: Replace Hitachi with Renesas. - * config/h8300/elf.h: Likewise. - * config/h8300/h8300-protos.h: Likewise. - * config/h8300/h8300.c: Likewise. - * config/h8300/h8300.h: Likewise. - * config/h8300/h8300.md: Likewise. - * config/h8300/lib1funcs.asm: Likewise. - -2004-01-15 Andrew Pinski - - * config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF - around it. - -2004-01-15 Kazu Hirata - - * config/h8300/h8300.c (h8300_return_in_memory): New. - (TARGET_STRUCT_VALUE_RTX): Likewise. - (TARGET_RETURN_IN_MEMORY): Likewise. - * config/h8300/h8300.h (STRUCT_VALUE): Remove. - (RETURN_IN_MEMORY): Likewise. - -2004-01-15 Richard Earnshaw - - PR optimization/13375 - * gcse.c (handle_avail_expr): Just return if the source is not a - single set. - -2004-01-15 Richard Earnshaw - Daniel Jacobowitz - - * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case. - (EQUIV): Define. - (ARM_FUNC_ALIAS): New macro. - * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it. - * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it. - -2004-01-15 John David Anglin - - PR optimization/12372 - * calls.c (expand_call): Add call_fusage data for stack arguments in - constant calls. - -2004-01-15 Alan Modra - - * config/rs6000/rs6000.c (uses_TOC): Correct comment. Make static. - (rs6000_elf_declare_function_name): Formatting. - * config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration. - -2004-01-15 Jan Hubicka - - PR bootstrap/13692 - * sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in - previous patch. - -2004-01-15 Richard Henderson - - * config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after - integer regs of the same call-savedness. - -2004-01-15 Andreas Schwab - - PR bootstrap/13562 - * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc - status for NOTB/NOTW/NEGW methods. - -2004-01-15 Kazu Hirata - - * doc/invoke.texi: Update dump file names. Fix a typo. - -2004-01-15 Kazu Hirata - - * builtins.c (expand_builtin_va_end): Don't use - EXPAND_BUILTIN_VA_END. - * system.h (EXPAND_BUILTIN_VA_END): Poison. - * config/d30v/d30v.h: Remove a commented-out definition of - EXPAND_BUILTIN_VA_END. - * config/stormy16/stormy16.h: Likewise. - -2004-01-15 Kazu Hirata - - * system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison. - * targhooks.c (default_struct_value_rtx): Don't use - STRUCT_VALUE_INCOMING_REGNUM. - -2004-01-15 Kelley Cook - - PR bootstrap/12744 - * configure.in: Revamp enable-generated-files-in-srcdir rule to define - GENINSRC and not parsedir. Define srcextra as a langhook. - * configure: Regenerate. - * Makefile.in: Suppress default .l.c rule. Don't substitute - parsedir and delete all references throughout. Conditionally define - rule for srcextra dependent on GENINSRC. - (stmp-docobjdir): Delete. - (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule. - (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c, - and gengtype-yacc.h back to source directory. - (maintainer-clean): Delete all parse files in source directory. - (distclean): Delete generated files. - - * objc/Make-lang.in (objc-parse.o): Use implicit build rule. - (objc-parse.c, objc-parse.y): Don't use parsedir. - (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source - directory if requested. - (po-generated): Don't use parsedir. - (objc.maintainer-clean): Delete above files from source directory. - -2004-01-14 Kazu Hirata - - * doc/tm.texi (FUNCTION_VALUE): Fix a typo. - -2004-01-14 Kazu Hirata - - * doc/tm.texi: Replace RETURN_IN_MEMORY with - TARGET_RETURN_IN_MEMORY. - -2004-01-15 Jan Hubicka - - * builtins.c (std_expand_builtin_va_arg): Align operand when needed. - * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic - functions accepting SSE arguments - (function_arg): Warn only when asked to warn. - * i386.h (ix86_args): Add warn_sse/warn_mmx fiels. - -2004-01-14 Joseph S. Myers - - * c-parse.in (stmts_and_decls): Make label at end of compound - statement a hard error. - -2004-01-14 Jan Hubicka - - * cgraph.c (create_edge): Use local.redefined_extern_inline. - * cgraph.h (cgraph_local_info): Sort fields by size; add - redefined_extern_inline - (cgraph_global_info): Sort fields by size. - (cgraph_node): Likewise. - * cgraphunit.c (cgraph_finalize_function): Se - local.redefined_extern_inline on redefinition. - (cgraph_analyze_function): Use it; fix formating. - -2004-01-14 Jan Hubicka - - PR c++/10776 - * sched-deps.c (trye_dependency_cache, anti_dependency_cache, - outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of - bitmaps - (cache_size): New variable - (add_dependence): Update use; canonize early memory locations - (sched_analyze_1): Likewise. - (sched_analyze_2): Likewise. - (init_dependency_caches): Initialize bitmaps. - (free_dependency_caches): Free bitmaps - -2004-01-14 Kazu Hirata - - * calls.c: Replace STRICT_ARGUMENT_NAMING in comments with - targetm.calls.strict_argument_naming(). - * target.h: Likewise. - -2004-01-14 Richard Henderson - - PR debug/13231 - * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue - instructions. - -2004-01-14 Richard Henderson - - PR c++/12491 - * except.c (struct eh_region): Add u.fixup.resolved. - (resolve_one_fixup_region): Split out from ... - (resolve_fixup_regions): ... here. - -2004-01-14 Kazu Hirata - - * config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0. - -2004-01-14 Kazu Hirata - - * config/alpha/alpha.h (STRUCT_VALUE): Remove. - * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef. - (STRUCT_VALUE): Remove. - -2004-01-14 Steven Bosscher - - * system.h: Poison PROMOTED_MODE - * integrate.c (expand_inline_function): Don't mention the - PROMOTED_MODE. - * loop.c (update_giv_derive): Same. - * tree.h (DECL_RTL): Same. - -2004-01-14 J"orn Rennecke - - PR target/9365 - * sh.c (gen_block_redirect): Add special handling of RETURN. - (gen_far_branch) Don't call gen_stuff_delay_slot if there is no - far branch target (i.e. it's a return). - -2004-01-14 Kazu Hirata - - * regrename.c (find_oldest_value_reg): Fix a warning. - -2004-01-14 Richard Earnshaw - - 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. - -2004-01-14 Kazu Hirata - - * config/m32r/m32r.md: Use GEN_INT instead of gen_rtx - (CONST_INT, VOIDmode, ...). - -2004-01-14 Richard Earnshaw - - * regrename.c (find_oldest_value_reg): If the replacement uses - multiple hard registers, check that all of them are in CLASS. - -2004-01-14 Jan Hubicka - - * alias.c (get_alias_set): Initialize alias set to 0 when subset is - impossible. - -2004-01-14 Kelley Cook - - * Makefile.in: Define MAINT from --enable-maintainer-mode. - -2004-01-14 Hartmut Penner - - * gcc/config/rs6000/rs6000.c (rs6000_stack_info) - Calculate always vrsave_mask if TARGET_ALTIVEC. - (rs6000_emit_prologue): Emit code for vrsave - only if TARGET_ALTIVEC_VRSAVE. - (rs6000_emit_epilogue): Likewise. - -2004-01-14 Eric Botcazou - - * config/sparc/sparc.md (tie_add32): Fix pasto. - (tie_add64): Likewise. - -2004-01-14 Zdenek Dvorak - - * config/i386/i386.md (*addqi_1_slp): Do not access operands[2]. - -2004-01-13 Kazu Hirata - - * config/iq2000/iq2000-protos.h: Fix comment formatting. - * config/iq2000/iq2000.c: Likewise. - * config/iq2000/iq2000.md: Likewise. - -2004-01-14 J. Brobecker - - * dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME. - (subrange_type_die): Add handle for nameless subrange types. - -2004-01-13 Kazu Hirata - - * config/h8300/h8300-protos.h: Replace do_movsi with - h8300_expand_movsi. - * config/h8300/h8300.c (do_movsi): Change to - h8300_expand_movsi. - * config/h8300/h8300.md (movsi): Replace do_movsi with - h8300_expand_movsi. - (movsf): Likewise. - -2004-01-13 Kazu Hirata - - * config/h8300/h8300.c (dosize): Change to - h8300_emit_stack_adjustment. Update callers. - -2004-01-13 Kazu Hirata - - * config/h8300/h8300.md (movstrictqi): Add an alternative with - the source being post_inc. Tighten the predicate for the - destination to register_operand. - (movstricthi): Likewise. - -2004-01-13 Kazu Hirata - - * system.h (SHARED_BSS_SECTION_ASM_OP): Poison. - * varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP. - * doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove. - -2004-01-14 Jan Hubicka - - Partial fix PR c++/12850 - * cgraphunit.c (cgraph_finalize_function): Always ggc_collect when - at zero nest level. - -2004-01-13 Bernardo Innocenti - - * config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr" - pseudo-register. - -2004-01-13 Devang Patel - - PR c++/12709 - * c-common.c (finish_fname_decls): Use the chain only if the - tree is an expr_stmt. - -2004-01-13 Vladimir Makarov - - * rtl.def: Add comment about new option in automata_option. - - * genautomata.c (PROGRESS_OPTION): New macro. - (progress_flag): New global variable. - (gen_automata_option): Process `progress'. - (transform_insn_regexps, check_unit_distributions_to_automata, - make_automaton, NDFA_to_DFA, build_automaton, create_automata, - expand_automata, write_automata): Print about the progress only if - progress_flag. Remove fflush. - (initiate_automaton_gen): Process command line flag `-progress'. - - * doc/md.texi: Describe the new option. - -2004-01-13 Zdenek Dvorak - - * cfg.c (dump_bb): Dump entry edges. - -2004-01-13 Richard Earnshaw - - * arm.c (thumb_legitimate_address_p): Only allow constant pool - references from SImode. - * arm.md (thumb_movhi_insn): Don't allow minipool references. - -2004-01-13 Kazu Hirata - - * system.h (TEXT_SECTION): Poison. - * varasm.c (text_section): Don't use TEXT_SECTION. - * config/sh/sh.c (sh_file_start): Fix a comment typo. - * doc/tm.texi (TEXT_SECTION): Remove. - -2004-01-13 Ben Elliston - - * doc/rtl.texi (Vector Operations): Remove defunct vec_const item. - -2004-01-12 James E Wilson - - * unwind-libunwind.c: Delete. - -2004-01-12 Zack Weinberg - - PR 13656 - * c-decl.c (diagnose_mismatched_decls): Whenever newtype or - oldtype is set, set *newtypep or *oldtypep too. Do not set - them at the very end. - (validate_proto_after_old_defn): Restructure for comprehensibility; - make error messages clearer. - -2004-01-12 Zack Weinberg - - * varray.h (VARRAY_POP): Add checking variant, aborts on underflow. - (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked. - * varray.c: No need to prototype error. - (varray_check_failed): Wrap long string onto two lines. - (varray_underflow): New function. - -2004-01-13 Steven Bosscher - - PR c++/13376 - * function.h (struct function): Kill `name' field. - (current_function_name): Make it an extern function. - * function.c (current_function_name): New function. - * graph.c: Update all uses of current_function_name. - * gcse.c: Likewise. - * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c, - config/mips/mips.c, config/pdp11/pdp11.c: Likewise. - * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P - instead of a strcmp with "main". - -2004-01-13 Jan Hubicka - - * c-decl.c (diagnose_mismatched_decls): Fix warning calls. - - * cgraphunit.c (cgraph_optimize_function): Always do - optimize_inline_calls when there is always_inline callee. - (cgraph_decide_inlining): Fix formating. - * tree-inline.c (inlinable_function_p): Do sorry for alwaysinline - functions. - (expand_call_inline): Likewise. - * toplev.h (sorry): Fix prototype. - -2004-01-12 Roger Sayle - - * builtins.c (expand_builtin_expect_jump): Simplify logic. Handle - conditional jumps that drop through to unconditional jumps or the - end of the sequence. - -2004-01-13 Jan Hubicka - - * alias.c (new_alias_set): Construct the alias_set varray. - (init_alias_once): Don't do it here. - -2004-01-12 Marc Espie - - * system.h: handle YYBYACC like YYBISON. - -2004-01-12 Jonathan Merriman - - PR target/10847 - * config.gcc: No longer includes conflicting header sparc/sol2.h when - building on sparc64-*-openbsd*. - -2004-01-12 Andrew Pinski - - PR debug/13539 - * dbxout.c (dbxout_type): Protected inheritance is not - private but protected. - -2004-01-12 Richard Sandiford - - * config/mips/mips.c (mips_symbolic_constant_p): Revert last patch. - -2004-01-12 Kazu Hirata - - PR optimization/12508. - * combine.c (try_combine): Remove a dead set in a parallel - even if its destination is a subreg. - - Revert: - 2003-06-03 Kazu Hirata - * combine.c (simplify_set): Don't move a subreg in SET_SRC to - SET_DEST if WORD_REGISTER_OPERATIONS is not defined. - -2004-01-12 Geoffrey Keating - - * real.c: Update copyright date. - * emit-rtl.c: Likewise. - * rtl.h: Likewise. - * dwarf2out.c: Likewise. - * config/rs6000/darwin-ldouble.c: Likewise. - * config/rs6000/rs6000.md: Likewise. - -2004-01-12 David Edelsohn - - * config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX - TFmode to SImode libfuncs. - -2004-01-12 Roger Sayle - - PR middle-end/11397 - * varasm.c (assemble_alias): Remove weak aliases from weak_decls. - -2004-01-12 Jan Hubicka - - PR opt/12826 - * loop.c (insert_loop_mem): Preffer VOLATILE memory references to be - stored. - - PR opt/12863 - * cfgcleanup.c (label_is_jump_target_p): Move to... - * rtlanal.c (label_is_jump_target_p): ... here. - * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Fix redirecting of fallthru - edges unified with branch edges. - -2004-01-12 Richard Earnshaw - - * simplify-rtx.c (simplify_immed_subreg): Correctly extract the - high word of an integral CONST_DOUBLE. - -2004-01-12 Paul Brook - - * simplify-rtx.c (simplify_plus_minus): Always generate canonical form. - -2004-01-12 J"orn Rennecke - - PR target/13585 - * sh-protos.h (check_use_sfunc_addr): Declare. - * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions. - * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate. - -2004-01-12 Jan Hubicka - - * alias.c: Invlude varray.h - (alias_sets): Turn into varray. - (get_alias_set_entry): Use VARRAY; mark inline. - (mems_in_disjoint_alias_sets_p): Mark inline. - (record_alias_subset): Use varray. - (init_alias_once): Initialize varray. - (new_alias_set): Grow array. - * varray.c: Make VARRAY_GENERIC_PTR non GTYized. - -2004-01-12 Jan Hubicka - - Partial fix for PR opt/10776 II - * cselib.c: Include params.h - (cselib_invalidate_mem): Limit amount of nonconflicting memory - locations. - * params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New. - * Makefile.in (cselib.o): Depend on params.h - -2004-01-12 Richard Sandiford - - * combine.c (combine_simplify_rtx): Don't pass VOIDmode to - simplify_unary_operation if the operand has a known mode. - -2004-01-12 Hartmut Penner - - PR target/13534 - * gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New - predicate to handle 'ld' conform addresses. - * gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y' - contraint. - (EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint - are memory contraints. - * gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand): - New prototype. - * gcc/config/rs6000/rs6000.md (*movdf_hardfloat64): - Change 'o' to 'Y' constraint. - (*movdf_softfloat64): Ditto. - -2004-01-12 Bernardo Innocenti - - * gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the - brace-enclosed syntax in all C output statements. - -2004-01-12 David Edelsohn - - PR target/13401 - * config/rs6000/rs6000.c (rs6000_output_function_epilogue): - Objective-C language type value is 14. - -2004-01-12 Markus F.X.J. Oberhumer - - PR c/12148 - * config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of - `int' in a number of places to make sure we always have a SImode - and not a HImode. Add a 'L' suffix to a number of constants. - -2004-01-11 John David Anglin - - * pa.c: Don't include obstack.h. - - * pa.md: Correct constraint in pattern for loading PIC label address. - -2004-01-11 Kaz Kojima - - * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine - before defining. - -2004-01-11 Steven Bosscher - - PR fortran/9972 - * toplev.c (rest_of_handle_inline): Also consider functions - for deferral if the language is GNU F77. - -2004-01-11 Zack Weinberg - - * c-decl.c (diagnose_arglist_conflict): Add missing space to - diagnostic messages. - -2004-01-11 Jakub Jelinek - - PR middle-end/13392 - * builtins.c (expand_builtin_expect_jump): Handle conditional jumps - to drop through label. Don't fall back to SCC even when conditional - jump has not been found. - -2004-01-11 Jan Hubicka - - * invoke.texi: Fix syntax error in previous patch. - - Partial fix for PR opt/10776 - * Makefile.in (reload.o): Include param.h - * params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter. - * reload.c: Include params.h. - (find_equiv_reg): Work limiting check. - * invoke.texi: Document. - -2004-01-11 Richard Sandiford - - * config/mips/mips.c (mips_symbolic_constant_p): Don't allow - out-of-bounds accesses to string constants. Simplify mips16 - case accordingly. - -2004-01-11 Richard Sandiford - - PR optimization/13469 - * toplev.c (rest_of_compilation): Call purge_all_dead_edges after - reload_cse_regs (-fnon-call-exceptions only). - -2004-01-11 Kazu Hirata - - * config/mcore/lib1.asm: Fix comment formatting. - * config/mcore/mcore-elf.h: Likewise. - * config/mcore/mcore.c: Likewise. - * config/mcore/mcore.h: Likewise. - * config/mcore/mcore.md: Likewise. - -2004-01-10 Zack Weinberg - - * c-decl.c (duplicate_decls): Break apart into... - (diagnose_arglist_conflict, validate_proto_after_old_defn) - (locate_old_defn, diagnose_mismatched_decls, merge_decls): - ... these new functions. Restructure for comprehensibility. - Remove various archaic special cases. Always report the - location of the previous declaration when a diagnostic is issued. - (redeclaration_error_message): Fold into diagnose_mismatched_decls. - (match_builtin_function_types): Delete unnecessary forward declaration. - -2004-01-10 Zack Weinberg - - * genautomata.c (make_automaton, NDFA_to_DFA): - Print progress bars with '.' characters instead of '*'. - (build_automaton): Change notes to match. - -2004-01-10 Kazu Hirata - - * config/m32r/m32r.md: Use define_constants for unspec and - unspec_volatile. - -2004-01-10 Jan Hubicka - - PR opt/11635 - * expr.c (expand_expr_real): More curefully expand union casts. - -2004-01-10 Kazu Hirata - - * config/m32r/m32r.md (flush_icache): Use 1 for - unspec_volatile. - -2004-01-10 David Edelsohn - James E Wilson - - PR debug/12860 - * dbxout.c (dbxout_symbol): Remove initialization of - current_sym_code, current_sym_value, and current_sym_addr. - (dbxout_symbol_location): Same. - (dbxout_prepare_symbol): Zero current_sym_code, - current_sym_value, and current_sym_addr. - -2004-01-10 Richard Sandiford - - * tree.c (get_unwidened): Reorder conditions so that the null pointer - check is done first. - -2004-01-09 Eric Christopher - - * toplev.c (rest_of_handle_cfg): Add reg_scan pass - if we're running mark_constant_function. - -2004-01-09 Jeff Bailey - - PR target/12561 - * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR. - -2004-01-09 Andrew Pinski - - PR debug/11231 - * dbxout.c (dbxout_type_fields): Return if any item is - error_mark_node or the type is error_mark_node. - -2004-01-09 Geoffrey Keating - - * config/rs6000/darwin-ldouble.c: Add big comment explaining - exactly what is expected as a 'long double'. - (_xlqadd): When a value to be returned is representable as a - 'double', just return it directly, do not construct it using a union. - Also, correct final fixup. - (_xlqmul): Likewise. - (_xlqdiv): Likewise. - * real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c. - - * config/rs6000/rs6000.md (fix_trunctfdi2): Delete. - -2004-01-09 Richard Henderson - - * recog.c (constrain_operands): Validate mem operands. - -2004-01-09 James E Wilson - - * gcc.c (init_spec): Remove -lunwind from shared case. - * conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind. - -2004-01-09 Steve Ellcey - - * configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*. - * configure: Regenerate - -2004-01-09 Joseph S. Myers - - PR c/11234 - * c-typeck.c (build_c_cast): If pedantic, warn for conversions - between function and object pointers. - (digest_init): When comparing a pointer to function type to the - target type, only apply TREE_TYPE once to the pointer to function - type. - * except.c (for_each_eh_label_1): Treat data as a pointer to a - function pointer rather than casting it to a function pointer. - (for_each_eh_label): Update caller. - * recog.h (struct insn_data): Use a struct or union for output. - * genoutput.c (output_insn_data): Update. - * final.c (get_insn_template): Update. - -2004-01-09 Mark Mitchell - - * expr.h (expand_expr): Make it a macro, not a function. - (expand_expr_real): New function. - * expr.c (store_expr): Adjust logic for deciding whether or not to - copy the value returned by expand_expr. - (expand_expr): Rename to ... - (expand_expr_real): ... this. Add alt_rtl parameter. Adjust - calls to language hooks. - * c-common.h (c_expand_expr): Adjust prototype. - * c-common.c (c_expand_expr): Add alt_rtl parameter. - * langhooks-def.h (lhd_expand_expr): Change prototype. - * langhooks.c (lhd_expand_expr): Add all_rtl parameter. - * langhooks.h (lang_hooks): Change type of expand_expr. - * stmt.c (stmt_status): Add x_last_expr_alt_rtl. - (last_expr_alt_rtl): Likewise. - (expand_expr_stmt_value): Set last_expr_alt_rtl. - (clear_last_expr): Clear it. - (expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL. - (expand_end_bindings): Save and restor last_expr_alt_rtl. - * tree.def (RTL_EXPR): Give it an additional operand. - * tree.h (RTL_EXPR_ALT_RTL): New macro. - -2004-01-09 Kazuhiro Inaoka - - * config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__. - * config/m32r/m32r.c (call26_operand): Allow in PIC mode. - -2004-01-09 Kazu Hirata - - PR target/13380. - * config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17) - or (ne:SI (reg:CC 17) (const_int 0)). - Be specific about modes wherever possible. - -2004-01-09 Kazu Hirata - - * config/m32r/m32r.c (m32r_expand_block_move): Call - gen_movestrsi_internal with two more arguments. - (m32r_output_block_move): Adjust operand numbers. - Properly update the source and destination pointers. - * config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of - 'r+'. Change the set detinations to match_operand. - -2004-01-09 Kazu Hirata - - * final.c (FIRST_INSN_ADDRESS): Remove. - (shorten_branches): Don't use FIRST_INSN_ADDRESS. - * system.h (FIRST_INSN_ADDRESS): Poison. - * config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS. - * config/m32r/m32r-protos.h: Remove the prototype for - m32r_first_insn_address. - * config/m32r/m32r.c (m32r_first_insn_address): Remove. - * config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise. - * doc/md.texi (FIRST_INSN_ADDRESS): Likewise. - -2004-01-09 J. Brobecker - - * dwarf2out.c (gen_enumeration_type_die): Return the DIE that - we just created. - (is_ada_subrange_type): DIEs for enumeration subtypes should be - emitted as subrange types too. - (subrange_type_die): Add handling of enumeration subtypes. - -2004-01-08 Richard Henderson - - PR opt/12441 - Revert: Sat Mar 30 14:08:55 CET 2002 Jan Hubicka - * i386.c (aligned_operand): Be prepared for SUBREGed registers. - (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG. - (ix86_address_cost): Be prepared for SUBREGed registers. - (legitimate_address_p): Accept SUBREGed registers. - -2004-01-08 Kelley Cook - - * Makefile.in: Rename configure.in to configure.ac - * doc/sourcebuild.texi: Likewise. - * configure: Regenerate. - * config.in: Regenerate. - -2004-01-08 Stuart Hastings - - * config/i386/i386.md: Typos in MMX/SSE immediate shifts. - -2004-01-08 Jan Hubicka - - * cgraphunit.c (cgraph_decide_inlining): Fix typo. - -2004-01-08 Geoffrey Keating - - * config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset. - (UNSPEC_FIX_TRUNC_TF): New constant. - (movtf_internal): Make splitter active only when insn is active. - (extenddftf2): Rewrite to properly load zero into low part. - (extenddftf2_internal): New. - (extendsftf2): Rewrite. - (truncdftf2): Correct length. - (floatditf2): Delete. - (fix_trunc_helper): New. - (fix_trunctfdi2): Use fix_trunc_helper. - (fix_trunctfsi2): Likewise.fix_trunc - (fix_trunctfsi2_internal): New. - - * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum - addresses are legitimate on Darwin even when flag_pic. - (rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create - non-offsettable addresses for loads of TFmode constants. - -2004-01-08 Kazuhiro Inaoka - - * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit - variables in the appropriate bss section. - -2004-01-09 Alan Modra - - * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure - target_flags has MASK_POWERPC64 when -m64. - * config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64 - to 620, 630, power3, power4 and rs64a entries. - * config/rs6000/rs6000.h (MASK_64BIT): Expand comment. - -2004-01-08 Richard Sandiford - - * simplify-rtx.c (simplify_immed_subreg): Fix construction of - floating-point constants. - -2004-01-08 J. Brobecker - - * dwarf2out.c (subrange_type_die): Add context_die parameter. - Create the subrange_type DIE using the given context DIE. - (modified_type_die): Update call to subrange_type_die. - -2004-01-08 Zack Weinberg - - * dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h: - Add multiple-include guard. - -2004-01-08 Hartmut Penner - - * gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept - all vector constant loadable by vsplt*. - (output_vec_const_move): Likewise. - -2004-01-07 Joseph S. Myers - - PR c/6024 - * c-typeck.c (comptypes): Only treat enumerated types in the same - translation unit as compatible with each other when they are the - same type. - * doc/extend.texi: Update. - -2004-01-07 Joseph S. Myers - - PR c/12165 - * c-decl.c (grokdeclarator): Take type qualifiers of typedefed - array type from the array element type. - -2004-01-07 Alan Modra - - * config/rs6000/rs6000.c (rs6000_dbx_register_number): New function. - * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare. - * config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define. - (DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment. - * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define. - -2004-01-06 Eric Christopher - - * config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default. - (DWARF2_DEBUGGING_INFO): Define. - (PREFERRED_DEBUGGING_TYPE): Set to dwarf2. - * config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove. - * config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0 - for irix as. - (SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as. - * config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove. - * config/mips/iris5gas.h: Ditto. - (DBX_DEBUGGING_INFO): Remove. - (DWARF2_DEBUGGING_INFO): Ditto. - (MIPS_DEBUGGING_INFO): Ditto. - (PREFERRED_DEBUGGING_TYPE): Ditto. - * config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove. - (PREFERRED_DEBUGGING_TYPE): Ditto. - (SUBTARGET_ASM_DEBUGGING_SPEC): Ditto. - * config/mips/elf64.h: Ditto. - -2004-01-06 Jan Hubicka - - * Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate. - (STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use. - -2004-01-06 Geoffrey Keating - - * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c. - (TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128. - * config/rs6000/darwin-ldouble.c: New. - - * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg - for constants. - (constant_subword): Delete. - * rtl.h (constant_subword): Delete prototype. - (immed_double_const): Is not in varasm.c. - * simplify-rtx.c (simplify_immed_subreg): New. - (simplify_subreg): Use simplify_immed_subreg. - - * config/rs6000/rs6000.md (floatsitf2): Use expand_float rather - than trying to generate RTL directly. - (fix_trunctfsi2): Use expand_fix rather than trying to generate - RTL directly. - - * dwarf2out.c (add_const_value_attribute): Remove incorrect comment. - -2004-01-06 David Edelsohn - - * config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each - function into a separate macro. - (read_only_data_section): Add void argument. - (private_data_section): Same. - (read_only_private_data_section): Same. - (toc_section): Same. - -2004-01-06 Jan Hubicka - - * invoke.texi: Remove typo in last change. - - PR target/10301 - * config.gcc: Accept opteron and athlon-64 as variants - of k8. - * i386.c (override_options): Likewise. - * invoke.texi (i386 -mtune): Expand documentation. - -2004-01-06 Kazu Hirata - - * alias.c: Fix comment typos. - * builtins.c: Likewise. - * cfg.c: Likewise. - * df.c: Likewise. - * dominance.c: Likewise. - * dwarf2out.c: Likewise. - * emit-rtl.c: Likewise. - * expr.c: Likewise. - * final.c: Likewise. - * fold-const.c: Likewise. - * gcse.c: Likewise. - * genattrtab.c: Likewise. - * genrecog.c: Likewise. - * gensupport.c: Likewise. - * ggc-zone.c: Likewise. - * integrate.c: Likewise. - * local-alloc.c: Likewise. - * loop.c: Likewise. - * recog.c: Likewise. - * regmove.c: Likewise. - * reg-stack.c: Likewise. - * reorg.c: Likewise. - * rtlanal.c: Likewise. - * rtl.h: Likewise. - * sched-ebb.c: Likewise. - * simplify-rtx.c: Likewise. - * toplev.c: Likewise. - * varasm.c: Likewise. - -2004-01-06 Kazu Hirata - - * doc/install.texi: Fix typos. - * doc/invoke.texi: Likewise. - * doc/md.texi: Likewise. - -2004-01-06 Kazuhiro Inaoka - - * config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed - -2004-01-06 Jan Hubicka - - * i386.c (init_cumulative_args): Add handling of MMX_REGPARM. - (function_arg_advance): Do not pass aggregates in SSE; deal handling - of MMX_REGPARM. - (function_arg): Add new warnings about ABI changes; fix SSE_REGPARM; - add MMX_REGPARM. - * i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields. - (SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI. - (MMX_REGPARM_MAX): Similarly for -mmmx. - -2004-01-05 Kazu Hirata - - * config/sh/linux.h: Fix comment formatting. - * config/sh/netbsd-elf.h: Likewise. - * config/sh/sh.c: Likewise. - * config/sh/sh.h: Likewise. - * config/sh/vxworks.h: Likewise. - -2004-01-05 Kazu Hirata - - * system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison. - * toplev.c (output_file_directive): Don't use - ASM_OUTPUT_MAIN_SOURCE_FILENAME. - -2004-01-05 Steven Bosscher - - * toplev.c: Fix broken checkin of 2003-12-30. - -2004-01-05 Daniel Berlin - - * ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS - (USING_MMAP): We don't support non-mmap. - (struct alloc_chunk): Steal 1 bit from typecode, use it to mark - large objects. - (struct page_entry): Remove bytes_free. - (struct page_table_chain): Remove. - (struct globals): Remove page_table member. - (loookup_page_table_entry): Function deleted. - (set_page_table_entry): Ditto. - (ggc_allocated_p): No longer need page table lookups. - (ggc_marked_p): Ditto. - (alloc_small_page): Don't care about bytes_free anymore. - (alloc_large_page): Round up size. - (ggc_alloc_zone_1): Mark large objects as such, and calculate - their size the new way. - Remove page table lookups and setting. - (ggc_get_size): Calculate large object size the new way. - (sweep_pages): Redo to account for fact that we no longer have - bytes_free. - (ggc_collect): No longer need to reincrement bytes_free. - (ggc_pch_alloc_object): Handle new large objects properly. - (ggc_pch_read): Put PCH stuff into it's own uncollected zone. - -2004-01-05 Kazu Hirata - - * doc/invoke.texi: Remove a page break. - -2004-01-05 Kazu Hirata - - * config/avr/avr.c (avr_output_function_prologue): Remove an - extra pair of curly braces. - -2004-01-05 Kazu Hirata - - * config/mn10300/mn10300.c: Fix comment formatting. - * config/mn10300/mn10300.h: Likewise. - -2004-01-05 Richard Kenner - - * tree.h: Update documentation on nothrow_flag. - * print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for - types. - -2004-01-05 Kazu Hirata - - * doc/invoke.texi: Remove traces of dead ports. - -2004-01-05 Richard Sandiford - - * doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs - option. - -2004-01-05 Richard Sandiford - - PR target/12945 - * coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for - counter labels. - * config/mips/mips.c (INTERNAL_SYMBOL_P): Delete. - (mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating - string constants if TARGET_MIPS16. Use SYMBOL_REF_DECL to check - the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P. - (mips_symbol_insns): Don't trust the local/global classification. - (m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol. - (override_options): Make -mabicalls -fno-unit-at-a-time imply - -mno-explicit-relocs. - (mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish - between local and global symbols. - -2004-01-05 Richard Sandiford - - * config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare. - (mips_preferred_reload_class): Declare. - * config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function. - (EXTRA_CONSTRAINT): Update accordingly. - (PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class. - * config/mips/mips.c (mips_dangerous_for_la25_p): New function. - (mips_preferred_reload_class): New function. Prefer LEA_REGS if - mips_dangerous_for_la25_p. - (mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS - if mips_dangerous_for_la25_p. - -2004-01-05 Bernardo Innocenti - - * config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison - warning. - -2004-01-04 Nathanael Nerode - - * configure.ac: Use AC_PROG_CPP_WERROR. - * configure: Regenerate. - -2004-01-04 Zack Weinberg - - * .cvsignore: Add autom4te.cache. - -2004-01-04 Richard Sandiford - - * doc/invoke.texi: Revamp documentation of MIPS options. Remove - -mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile, - -m4650, -mfix7000 and -(m)no-crt0. Put endianness options first, - then architecture options, then ABI options. General rewording. - -2004-01-04 Joseph S. Myers - - PR c/3414 - * doc/extend.texi: Clarify definition of malloc attribute. - -2004-01-04 Jan Hubicka - - * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency. - * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed - * cgraph.h (cgraph_edge): Replace inline_call by inline_failed - (cgraph_inline_p): Add extra argument reason. - * cgraphunit.c: Minor formating fixes. - cgraph_first_inlined_callee): New functions. - (record_call_1): Record builtins too. - (cgraph_analyze_function): Update inline_failed messages. - (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into, - cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed. - (cgraph_check_inline_limits): Likewise; Add argument reason. - (cgraph_set_inline_failed): New static function. - (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set - reasons. - (cgraph_inline_p): Add new argument reason. - * tree-inline.c (expand_call_inline): Update warning. - -2004-01-03 Nathanael Nerode - - * configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM - with modern equivalents. - * configure: Regenerate. - - * configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE. - * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove. - * configure: Regenerate. - - * doc/install.texi: Note that 'gcc' is now a 2.57 directory. - - * configure.in: Rename to configure.ac. - * configure.ac: Renamed from configure.in; make minimum necessary - changes for autoconf 2.5x. - * aclocal.m4: Make minimum necessary changes for autoconf 2.5x. - * configure: Regenerate with autoconf 2.57. - -2004-01-03 Kazu Hirata - - * config/mips/linux.h: Fix comment formatting. - * config/mips/mips.c: Likewise. - * config/mips/mips.h: Likewise. - * config/mips/mips.md: Likewise. - * config/mips/netbsd.h: Likewise. - * config/mips/windiss.h: Likewise. - -2004-01-02 Richard Henderson - - * config/i386/i386.md (fp constant pool splitter): Reorg suppression - for sse and 387; add suppression for mmx. - -2004-01-02 Andrew Pinski - - * loop.c (loop_optimize): Free all loops_info's mems. - - * c-typeck.c (finish_init): Free spelling_base before - setting it again. - - * cfgloop.c (flow_loops_find): Always free the sbitmap - headers. - - * predict.c (estimate_probability): Free bbs after being - done with it. - -2004-01-02 Kazu Hirata - - * config/mn10300/mn10300.h (PREDICATE_CODES): Add - const_8bit_operand and call_address_operand. - -2004-01-02 Jan Hubicka - - * cgraphunit.c (cgraph_optimize_function): Call optimize_inline_calls - when there is nothing to inline but warnings are requested. - (cgraph_decide_inlining): Fix memory leak. - -2004-01-02 Jan Hubicka - - * expr.c (store_constructor): Fix pasto in previous patch. - -2004-01-02 Kazu Hirata - - * config/i386/cygming.h: Fix comment formatting. - * config/i386/djgpp.h: Likewise. - * config/i386/gthr-win32.c: Likewise. - * config/i386/i386-interix.h: Likewise. - * config/i386/i386.c: Likewise. - * config/i386/i386.h: Likewise. - * config/i386/openbsd.h: Likewise. - * config/i386/winnt.c: Likewise. - * config/i386/xm-mingw32.h: Likewise. - -2004-01-02 Joseph S. Myers - - * doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update - copyright and last modification dates. - -2004-01-02 Andreas Jaeger , Gerald Pfeifer - - * doc/install.texi (Specific): Mention x86_64. - -2004-01-01 Hans-Peter Nilsson - - * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]: - Call force_operand on plus_constant result. - -2004-01-01 Jan Hubicka - - * expmed.c (store_bit_field, extract_bit_field): Use new named patterns - * expr.c (store_constructor): Use vec_init pattern. - * genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init. - * optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init - (vec_set_optab, vec_extract_optab, vec_init_optab): New. - * i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf): - New patterns. - (sse2_unpc?pd): Fix pattern. - (sse2_movlpd): Kill. - (sse2_movsd): Deal with movlpd too. - * i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd. - (ix86_expand_vector_init): New. - * emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions. - * md.texi (vec_set, vec_extract): Document - -2003-12-31 Jan Hubicka - - PR opt/13473 - * recog.c (validate_replace_rtx_1): Take care for RTL sharing inside - ASM input operands - - PR opt/12617 - * toplev.c (dump_file_index): Reorder ce3 and bbro. - (dump_file): Likewise. - (rest_of_compilation): Likewise. - - PR debug/13367 - * cgraph.c (cgraph_function_possibly_inlined): Even with - flag_really_no_inline we inline always_inline functions. - * cgraphunit.c (cgraph_analyze_function): Clear inlinable flag - for non-always_inline functions when there is flag_really_no_inline. - (cgraph_decide_inlining): Limit work done when not inlining. - (cgraph_decide_inlining_incrementally): Likewise. - (cgraph_optimize_function): Check whether something got inlined. - * c-objc-common.c (c_disregard_inline_limits): Do not always inline - extern inline functions when not inlining. - - * opts.c (decode_options): Disable crossjumping at -O1 - * invoke.texi (-O1): Document change. - -See ChangeLog.10 for earlier changes. diff --git a/gcc/ChangeLog.4 b/gcc/ChangeLog.4 deleted file mode 100644 index 25546c471dcc..000000000000 --- a/gcc/ChangeLog.4 +++ /dev/null @@ -1,15261 +0,0 @@ -2000-12-31 Philip Blundell - - * config/arm/linux-gas.h (CLEAR_INSN_CACHE): Add missing asm - operands. - -2000-12-30 Richard Henderson - - * dbxout.c (dbxout_block): Invert logic on eliding LBRAC/RBRAC. - Initialize variables properly for DBX_LBRAC_FIRST. - -2000-12-30 Richard Kenner - - * expr.c (expand_expr, case COMPONENT_REF): Fix typo in last change. - -2000-12-30 Kaveh R. Ghazi - - * builtins.c (validate_arglist): New function, use it. - -2000-12-30 Philip Blundell - - * config/arm/arm.c (arm_expand_prologue): Fix typos in error - message and comment. Note location of testcase for an unhandled - situation. - -2000-12-30 Jeffrey Oldham - - * defaults.h (BUILD_VA_LIST_TYPE): New definition. - * tree.c (build_common_tree_nodes_2): Ensure the va_list_type_node - is a copy, not an alias. - -2000-12-30 Richard Kenner - - * calls.c (calls_function_1, case CONSTRUCTOR): New case. - - * alias.c (alias_sets_conflict_p): New function. - (mems_in_disjoint_alias_sets_p): Use it. - (readonly_fields_p): Moved from expr.c; check for record type. - (objects_must_conflict_p): New function. - * calls.c (expand_call): Use assign_temp as much as possible, use - readonly variant if assigned once, and don't set memory attributes. - (emit_library_call_value_1, store_one_arg): Likewise. - * integrate.c (expand_inline_function): Likewise. - * stmt.c (expand_asm_operands, expand_return): Likewise. - * expr.c (copy_blkmode_from_reg, store_constructor): Likewise. - (store_field, save_noncopied_parts, expand_expr): Likewise. - (expand_expr_unaligned): Likewise. - (readonly_fields_p): Moved to alias.c. - (safe_from_p): Rework handling of SAVE_EXPR. - MEMs ony conflict if alias sets conflict; likewise for INDIRECT_REF. - * function.c (struct temp_slot): Delete field ALIAS_SET; add TYPE. - (assign_stack_for_temp): Use objects_must_confict_p. - Set all memory attributes from type, if specified. - (mark_temp_slot): Mark TYPE field. - * tree.h (alias_sets_conflict_p, readonly_fields_p): New decls. - (objects_must_conflict_p): Likewise. - - * stmt.c (expand_decl): Don't use assign_stack_temp in error case. - (add_case_node): No need to copy nodes anymore. - -2000-12-30 Alexandre Oliva - - * config/sh/sh.c (split_branches): Don't dereference re-computed - `beyond' before checking it's non-NULL. - -2000-12-29 Robert Lipe - - Remove COFF support from i?86-pc-sco3.2v5. - * i386/sco5.h (PREFERRED_DEBUGGING_TYPE): Change to Dwarf II. - (TARGET_ELF): Now always true. - (SUBTARGET_SWTICHES: )Remove -mcoff. - - * i386/t-sco5 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, - MULTILIB_EXCEPTION): Nuke coff. - (CRTSTUFF_T_CFLAGS_S): Deleted. - (TARGET_LIBGCC2_CFLAGS): Added. - -2000-12-29 Alexandre Oliva - - * varasm.c (output_constant_def): Don't ENCODE_SECTION_INFO - twice. Update desc->rtl and ->label, in case ENCODE_SECTION_INFO - modifies them. - -2000-12-29 Bernd Schmidt - - * ia64.c (ia64_expand_load_address): Accept additional scratch - register argument. All callers & prototype changed. - Use scratch register when generating load_symptr insns. - * ia64.md (movdi_symbolic): Clobber a scratch register. Use it - when calling ia64_expand_load_address. - (movdi): Generate movdi_symbolic with additional operand. - (load_gprel64): Use pic_offset_table_rtx instead of (reg:DI 1). - (load_symptr): Likewise. Use additional operand as a scratch - register instead of generating it here. - - * basic-block.h: Add a comment. - * flow.c (PROP_POSTRELOAD): New macro. - (update_life_info): Add it to prop_flags. - (mark_set_1): If it is set, compute REG_N_SETS for the original - register number of a hard reg. - - * emit-rtl.c (gen_raw_REG): New function. - (gen_rtx_REG, gen_reg_rtx, init_emit_once): Use it instead of - gen_rtx_raw_REG. - * print-rtl.c (print_rtx): Print ORIGINAL_REGNO. - * final.c (alter_subreg): Update it. - * regrename.c (do_replace): Likewise. Use gen_raw_REG. - * rtl.def (REG): Update comment. - * rtl.h (X0UINT, ORIGINAL_REGNO): New macros. - (gen_raw_REG): Declare. - -2000-12-29 Richard Kenner - - * tree.c (get_set_constructor_bits): Use host_integerp and - tree_low_cst. - - * local-alloc.c (update_equiv_regs): Don't use copy_rtx on PATTERN. - - * toplev.c (main): Call xmalloc_set_program_name. - * gcc.c (main): Likewise. - -2000-12-29 Philip Blundell - - * config/arm/arm.c (arm_override_options): Fix typo in warning - message. - -2000-12-29 Richard Henderson - - * config/alpha/alpha.c (alpha_expand_block_move): Initialize - src_align and dst_align in bits. Do unaligned quadword loads - if possible for BWX too. - (alpha_expand_block_clear): Initialize align in bits. Track - small leading offsets into a larger alignment. Play games with - stq_u for large 4-byte aligned blocks. Use load/mask/store - for appropreately aligned heads and tails. - -2000-12-29 Alexandre Oliva - - * function.c (assign_parms): Convert arguments passed by - reference to the right mode. - -2000-12-28 Geoffrey Keating - - * c-parse.in (select_or_iter_stmt): Use truthvalue_conversion - on the condition of a FOR statement, so that it gets typechecked - and optimized. - -2000-12-29 Alexandre Oliva - - * c-decl.c (grokdeclarator): Prevent crash in case of overflow in - array size. - - * calls.c (emit_library_call_value_1): Add to call_fusage the - stack slot assigned to argument passed by reference. - -2000-12-28 Jeffrey Oldham - - * toplev.h (extern really_sorry): Remove extern declaration for - nonexistent function. - -2000-12-28 Jeffrey Oldham - - * varasm.c (initializer_constant_valid_p): Indicate subtraction of - pointers to the same string constant is absolute. - -2000-12-28 Joseph S. Myers - - * c-common.c (enum format_type): Add strfmon_format_type. - (decl_attributes): Handle format attributes strfmon and - __strfmon__. - (FMT_FLAG_USE_DOLLAR, FMT_FLAG_ZERO_WIDTH_BAD, - FMT_FLAG_EMPTY_PREC_OK): Define. - (format_char_info): Update comment for flag_chars. - (format_flag_spec): Add skip_next_char. - (format_kind_info): Add left_precision_char. - (printf_flag_specs, scanf_flag_specs, strftime_flag_specs, - format_types): Update for these new structure members and flags. - (time_char_table): Make const. - (strfmon_length_specs, strfmon_flag_specs, strfmon_flag_pairs, - monetary_char_table): New. - (format_types): Add details of strfmon formats. - (init_function_format_info): Create default attribute for strfmon. - (check_format_info_main): Check the new flags. Handle - skip_next_char and left precision. - * toplev.c (documented_lang_options): Update description of - -Wformat. - * extend.texi: Document strfmon format attributes. Document - attribute forms such as __printf__. Clarify format_arg attribute - documentation. - * invoke.texi (-Wformat): Update for strfmon formats. - -2000-12-28 Andreas Jaeger - - * expmed.c (store_bit_field): Fix last patch. - -2000-12-28 Alexandre Oliva - - * config/sh/crt1.asm (start_l): `__SH4_SINGLE_ONLY__' was missing - the trailing `__'. - -2000-12-28 Alan Lehotsky - - * expmed.c (store_bit_field): Correctly compute smallest mode that - is sufficient to contain all bits we are storing. - -2000-12-27 Kaveh R. Ghazi - - * builtins.c (build_function_call_expr): New function. Use it - everywhere in lieu of manually constructing a CALL_EXPR. - -2000-12-27 Chandrakala Chavva - - * calls.c (store_one_arg): If parm is passed both in stack and in - register and offset is greater than reg_parm_stack_space, split - the offset and call emit_push_insn(). - -2000-12-27 Nick Clifton - - * ifcvt.c (noce_emit_store_flag): Handle jump insns that are - PARALLEL. - -2000-12-27 Alexandre Oliva - - * rtl.c (copy_most_rtx, shallow_copy_rtx): Copy frame_related - flag. - -2000-12-27 Bruce Korb - - * fixinc/Makefile.in: fix for ancient Bourne shell - * fixinc/Makefile.BEOS: obsolete - * fixinc/Makefile.DOS: obsolete - * fixinc/fixincl.sh(LINKS): use `test -d' rather than `ls' for testing - -2000-12-27 Bernd Schmidt - - * sched-deps.c (get_condition, conditions_mutex_p): New functions. - (add_dependence): Use them to avoid adding unnecessary dependencies - between conditionally executed insns. - (sched_analyze_1, sched_analyze_2, sched_analyze_insn): Don't free - dependency lists if current insn is a COND_EXEC. - -2000-12-27 Geoffrey Keating - - * config/rs6000/rs6000.md (define_attr "length"): Correct - calculation. - -2000-12-26 Kazu Hirata - - * config/h8300/h8300.c: Fix a comment typo. - (get_shift_alg): Fix a typo in the assembly code for 12-bit - ASHIFTRT in HImode. Do not output extra whitespace after one line - of assembly code. Output a tab after an opcode instead of a - space. - (emit_a_shift): Output a tab after an opcode instead of a space. - -2000-12-23 Marek Michalkiewicz - - * config/avr/avr.c (out_movqi_r_mr, out_movhi_r_mr, out_movsi_r_mr, - out_movsi_mr_r, out_movqi_mr_r, out_movhi_mr_r): Use %o instead of - %4 in output templates, do not modify operands passed by the caller. - -2000-12-23 Joseph S. Myers - - * builtins.def (BUILT_IN_LABS, BUILT_IN_LLABS, BUILT_IN_IMAXABS): - Don't define. - * builtins.c (expand_builtin): Don't handle BUILT_IN_LABS, - BUILT_IN_LLABS and BUILT_IN_IMAXABS. - * c-common.c (c_common_nodes_and_builtins): Use BUILT_IN_ABS for - builtin labs, llabs and imaxabs. - (expand_tree_builtin): Don't handle BUILT_IN_LABS, BUILT_IN_LLABS - and BUILT_IN_IMAXABS. - -2000-12-23 Joseph S. Myers - - * c-common.c (builtin_function_2): New function. - (c_common_nodes_and_builtins): Use it to define each pair (foo, - __builtin_foo) of builtins in one place. - -2000-12-22 Joseph S. Myers - - * gccbug.in: Add libgcj and preprocessor categories. - -2000-12-22 Bernd Schmidt - - * config/ia64/ia64.c (itanium_reorder): Only schedule stops in - the final scheduling pass. - -2000-12-22 Nick Clifton - - * config/arm/arm.h (struct machine_function): Add new field - 'lr_save_eliminated'. - * config/arm/arm.c (arm_compute_save_reg_mask): Do not include the - link register if its save has been eliminated. - (output_arm_prologue): Mention if the save of the link register - has been eliminated. - (output_arm_epilogue): Rename 'live_regs_mask' to - 'saved_regs_mask'. - Test 'saved_regs_mask' for the link register, not regs_ever_live. - (arm_expand_prologue): If the link register has not been saved set - lr_save_eliminated and emit a USE to prevent later passes from - scavenging it. - - * dwarf2out_frame_debug_expr: Allow the (scratch) frame - pointer to be initialized from the stack pointer plus a - constant. - -2000-12-22 Bernd Schmidt - - * regrename.c (struct du_chain): New field "earlyclobber". - (enum scan_actions): Remove unused entry "note_reference". - (enum scan_actions_name): Likewise. - (note_sets, clear_dead_regs, merge_overlapping_regs): New static - functions. - (regrename_optimize): Use them to compute unavailable regs; get - rid of the more simpleminded code we used to have here. - Use a tick array to ensure registers are allocated in a more - round-robin way. Disable code that only optimizes registers - that were seen more than once. - (referenced_regs): Remove variable. - (scan_rtx_reg): New arg "earlyclobber". All callers changed. - Store its value in newly generated du_chain structures. - Add new du_chains at the end, not the start, of the list. - Don't handle the "note_reference" action. - (scan_rtx): New arg "earlyclobber". All callers changed. - (build_def_use): Lose code to keep track of referenced regs. - -2000-12-22 Kaveh R. Ghazi - - * Makefile.in (sched-deps.o, sched-rgn.o): Fix dependency typo. - - * fp-bit.h (usi_to_float): Add prototype. - - * i386.c (ix86_expand_builtin): Delete unused label. - - * dwarf2out.c (file_info_cmp): Prototype. - (dwarf2out_line): Hide variable `old_in_use'. - - * objc-act.c (objc_fatal): Delete. - - * sched-vis.c (visualize_stall_cycles): Remove unused variable. - - * system.h (getopt): Fix error in last change. - - * varasm.c (assemble_trampoline_template): Constify. - -2000-12-22 Jason Merrill - - * collect2.c (main): Use auto_demangling. - -2000-12-22 Alexandre Oliva - - * function.c (assign_parms): Update parm's DECL_INCOMING_RTL - when optimizing PARALLEL to REG. - -2000-12-22 Graham Stott - - * reload.c (update_auto_inc_notes): New, broken out from ... - (find_reloads_address_1): ... use here, also correct possible - use of uninitialized reloadnum. - -2000-12-21 David O'Brien - - * config/freebsd.h (LIB_SPEC): remove -kthread option. - -2000-12-22 Michael Hayes - - * resource.c (mark_set_resources): Use MARK_SRC_DEST for - PRE_MODIFY and POST_MODIFY cases. - - * rtlanal.c (side_effects_p): Handle PRE_MODIFY and POST_MODIFY. - -2000-12-22 Michael Hayes - - * md.texi (Looping Patterns): New node. - -2000-12-21 Joseph S. Myers - - * gcc.texi, cpp.texi: Update last-updated dates. - -2000-12-21 Chandrakala Chavva - - * varasm.c (output_addressed_constants): Use language specific - expander on unknown nodes. - -2000-12-21 Graham Stott - - * combine.c (distribute_notes): Handle REG_NON_LOCAL_GOTO notes. - -2000-12-21 Bernd Schmidt - - * Makefile.in (out_object_file): Depend on sched-int.h. - * rtl.h (single_set_1): New macro. - (single_set_2): Renamed from single_set_1 and extra argument added. - * rtlanal.c (single_set_2): Likewise. - - * config/ia64/ia64-protos.h (get_bundle_name, ia64_issue_rate, - ia64_adjust_cost, ia64_sched_init, ia64_sched_finish, - ia64_sched_reorder, ia64_sched_reorder2, ia64_variable_issue): - Declare. - * config/ia64/ia64.c: Include "sched-int.h". - (hard_regno_rename_ok): Also disallow renaming from the various - reg_save_* regs. - (ia64_safe_itanium_requiers_unit0, ia64_safe_itanium_class, - ia64_safe_type, init_insn_group_barriers, group_barrier_needed_p, - safe_group_barrier_needed_p, fixup_errata): New static functions. - (rtx_needs_barrier): Handle bundle selector and cycle display - insns. - (emit_insn_group_barriers): Accept additional FILE * arg. All - callers changed. Rework to only generate stop bits between - basic blocks that haven't been inserted by scheduling. - (struct bundle, struct ia64_packet): New structures. - (NR_BUNDLES, NR_PACKETS): New macros. - (bundle, packets, type_names): New static arrays. - (ia64_final_schedule): New variable. - (ia64_single_set, insn_matches_slot, ia64_emit_insn_before, - gen_nop_type, finish_last_head, rotate_one_bundle, rotate_two_bundles, - cycle_end_fill_slots, packet_matches_p, get_split, find_best_insn, - find_best_packet, itanium_reorder, dump_current_packet, schedule_stop): - New static functions. - (ia64_issue_rate, ia64_sched_init, ia64_sched_reorder, - ia64_sched_finish, ia64_sched_reorder2, ia64_variable_issue): New - functions. - (ia64_reorg): Perform a final scheduling pass. - * config/ia64/ia64.h (CONST_COSTS): Slightly increase SYMBOL_REF costs. - (MAX_CONDITIONAL_EXECUTE, ADJUST_COST, ISSUE_RATE, MD_SCHED_INIT, - MD_SCHED_REORDER, MD_SCHED_REORDER2, MD_SCHED_FINISH, - MD_SCHED_VARIABLE_ISSUE): Define macros. - (ia64_final_schedule): Declare variable. - * config/ia64/ia64.md (attr itanium_class): Add some more classes. - (attr type): Account for them. - (itanium_requires_unit0): New attribute. - (function units): Rewrite. - (some splitters): Don't create scheduling barriers here. - (gr_spill_internal, gr_restore_internal): Don't predicate the - pseudo-op. - (nop_m, nop_i, nop_f, nop_b, nop_x, cycle_display, cycle_display_1, - bundle_selector): New patterns. - (insn_group_barrier): Now has an operand. - -2000-12-21 DJ Delorie - - * dwarf2out.c (simple_decl_align_in_bits): new - (field_byte_offset): Try both the type align and the - decl align, use whichever works, preferring the type align. - -2000-12-21 Joseph S. Myers - - * gccbug.in: Fix typo. - -2000-12-20 Benjamin Kosnik - - * Makefile.in (gcc_gxx_target_include_dir): Use instead of - build_tooldir and libstdcxx_incdir. - -2000-12-20 Robert Lipe - - * haifa-sched.c (schedule_block): Provide empty source statement - if not MD_SCHED_REORDER2. - -2000-12-20 Richard Henderson - - * rtl.h (REG_NON_LOCAL_GOTO): New. - * rtl.c (reg_note_name): Update. - * stmt.c (expand_goto): Emit a REG_NON_LOCAL_GOTO note. - * builtins.c (expand_builtin_longjmp): Likewise. - * flow.c (make_edges): Check for REG_NON_LOCAL_GOTO and do - not emit an edge. - -2000-12-20 Marek Michalkiewicz - - * config/avr/avr.c (out_movsi_r_mr, out_movsi_mr_r, out_movhi_mr_r): - Do not output undefined opcodes where source or destination register - overlaps with modified pointer register. Handle (X + d) addresses. - * config/avr/avr.md (*movhi, *movsi, *movsf): Correct insn length - in alternatives with memory operand. - -2000-12-20 Richard Henderson - - * c-typeck.c (build_asm_stmt): New, broken out from ... - (c_expand_asm_operands): ... here. Just do rtl expansion. - (c_expand_return): Return the new stmt node. - (c_start_case, do_case): Likewise. - * c-common.c (c_expand_expr_stmt): Likewise. - * c-common.h: Update declarations. - * c-tree.h: Likewise. - * c-semantics.c (build_stmt): Use STMT_LINENO not TREE_COMPLEXITY. - * c-parse.in (fndef): Set DECL_SOURCE_LINE to the open brace. - (nested_function, notype_nested_function): Likewise. - (compstmt): Return the compound statement not the binding level. - (lineno_labeled_stmt): Simplify. - (lineno_stmt, lineno_label): Set STMT_LINENO. - (stmt, label): Return the new stmt node. - -2000-12-20 Bernd Schmidt - - * Makefile.in (OBJS): Add sched-ebb.o. - (sched-ebb.o): New rule. - (sched-vis.o): Depend on hard-reg-set.h and $(BASIC_BLOCK_H). - (haifa-sched.o): Depend on insn-flags.h. - * haifa-sched.c: Include "insn-flags.h". - (priority): Don't access BLOCK_NUM, use the new contributes_to_priority - callback. - * rtl.h (schedule_ebbs): Declare. - * sched-int.h (struct sched_info): Add new members - contributes_to_priority and compute_jump_reg_dependencies. - * sched-rgn.c (contributes_to_priority, compute_jump_reg_dependencies): - New functions. - (region_sched_info): Add them. - * sched-vis.c: Include "hard-reg-set.h" and "basic-block.h". - * sched-ebb.c: New file. - * sched-deps.c (sched_analyze_insn): Add code to handle JUMP_INSNs. - - * flow.c (ior_reg_cond, and_reg_cond, elim_reg_cond): Properly - handle all relational operators. - -2000-12-20 Alexandre Oliva - - * final.c (output_addr_const): Use ASM_OUTPUT_SYMBOL_REF. - * tm.texi: Document it. - -2000-12-19 Benjamin Kosnik - - * Makefile.in (-DGPLUSPLUS_TOOL_INCLUDE_DIR): Use build_tooldir - instead of gcc_tooldir. - -2000-12-19 John David Anglin - - * system.h (getopt): Update prototype to match include/getopt.h. - -2000-12-19 John David Anglin - - From Jeff Law. - * pa.c (basereg_operand): Simplify. - -2000-12-19 Bernd Schmidt - - * haifa-sched.c (rm_line_notes): Arguments are now head and tail, - not block number. All callers and prototype changed. - (set_priorities): Likewise. - (save_line_notes): Add head and tail arguments; all callers and - prototype changed. - (restore_line_notes): Likewise. Don't crash on insns generated - during scheduling. - (schedule_block): Don't use BLOCK_HEAD/BLOCK_END macros. - Call MD_SCHED_INIT with additional argument. - When starting a new cycle, emit cycle_display insns if available. - Don't stop scheduling when encountering a JUMP_INSN, but add another - call to schedule_more_p in the inner loop. - Call MD_SCHED_REORDER2 after scheduling an insn. - Call MD_SCHED_FINISH once all insns are scheduled. - (sched_init): Compensate for the fact that get_block_head_tail - doesn't include leading notes. - * sched-deps.c (free_deps): Free vectors here. - * sched-rgn.c (compute_block_backward_dependencies): Not here. - (last_was_jump): New static variable. - (schedule_more_p): Test it. - (init_ready_list): Initialize it. - (can_schedule_ready_p): Set it if we have a JUMP_INSN. - - * config/i386/i386.h (MD_SCHED_INIT): Add new arg. - * config/m32r/m32r.h (MD_SCHED_INIT): Add new arg. - * config/sparc/sparc.h (MD_SCHED_INIT): Add new arg. - - * md.texi (cycle_display): Document. - * tm.texi (MD_SCHED_INIT): Document new arg. - (MD_SCHED_FINISH, MD_SCHED_REORDER2): Document. - - * flow.c (ior_reg_cond, nand_reg_cond, not_reg_cond): Rewrite - to use different representation. All callers changed. - (and_reg_cond): Renamed from nand_reg_cond; caller changed. - (init_propagate_block_info): Don't test flags to determine - whether to compute conditional lifetimes. - Adjust code for new representation of conditional lifetimes. - (mark_regno_cond_dead): Similar adjustment. - (free_reg_cond_life_info): Similar adjustment. - (elim_reg_cond): New function. - (flush_reg_cond_1): Use it. - -2000-12-19 Catherine Moore - - * reload1.c (reload_combine): Take multi-hard-regs into account - when processing CALL_INSN_FUNCTION_USAGE. - -2000-12-19 Joseph S. Myers - - * invoke.texi (-print-search-dirs): Make references to cpp refer - to cpp0 instead. - -2000-12-18 Kaveh R. Ghazi - - * fold-const.c (tree_expr_nonnegative_p): Treat truth values as - non-negative. - -Tue Dec 19 00:37:08 2000 J"orn Rennecke - - * reload.c (push_reload): When using a dying register for the reload - register in an in-out reload, use outmode if wider than inmode. - -2000-12-19 Joseph S. Myers - - * config/d30v/d30v.h (EXIT_BODY): Update comment. - -2000-12-18 Joseph S. Myers - - * config.gcc (*-*-linux*): Don't define HAVE_ATEXIT or BSTRING. - * tm.texi (EXIT_BODY): Update documentation. - * config/freebsd.h, config/netware.h, config/arm/coff.h, - config/arm/conix-elf.h, config/arm/unknown-elf.h, - config/d30v/d30v.h, config/mcore/mcore.h, config/pj/pj.h, - sparc/sp86x-aout.h: Remove definitions of HAVE_ATEXIT (some - commented out) and associated comments. - -2000-12-18 Joseph S. Myers - - * c-common.c (STD_C9L, ADJ_STD): Define. - (printf_length_specs, scanf_length_specs): Mark "ll" as standard - STD_C9L. - (T99_LL): Rename to T9L_LL. - (T99_ULL): Rename to T9L_ULL. - (print_char_table, scan_char_table): Use T9L_LL and T9L_ULL - instead of T99_LL and T99_ULL. - (check_format_info_main): Use ADJ_STD on all format standard - versions being compared. - * c-common.h: Declare warn_long_long. - * c-tree.h: Don't declare warn_long_long. - -2000-12-18 Joseph S. Myers - - * COPYING: Update to current - ftp://ftp.gnu.org/pub/gnu/Licenses/COPYING-2.0 (fixes references - to 19yy as example year in copyright notice). - -2000-12-18 Neil Booth - - * c-lex.c (cb_file_change): Treat in_system_header as strictly - boolean (0 or 1). - -2000-12-18 Neil Booth - - * cppmain.c: Update print.lineno with -P. - -2000-12-18 Neil Booth - - * c-lex.c: s/change_file/file_change. - * cpplib.h: Similarly. - * cppmain.c: Similarly. - * fix-header.c: Similarly. - * cppfiles.c (stack_include_file): Pass the buffer location and - size to cpp_push_buffer. Generate the file_change callback, - so that sysp is already set. - * cpphash.h: Add _cpp_do_file_change. - * cpplib.c (do_line): Set buffer->sysp directly. Generate the - file_change callback after setting sysp. - (_cpp_do_file_change): Handle FC_ENTER and the FC_RENAME exception - here. - (cpp_push_buffer): Don't generate a callback. Clear sysp. - (cpp_pop_buffer): Clean up logic. - -2000-12-18 Benjamin Kosnik - - * configure.in (gcc_gxx_include_dir): Simplify. - (libstdcxx_incdir): Export. - * configure: Regenerate. - * Makefile.in (PREPROCESSOR_DEFINES): Add in - GPLUSPLUS_TOOL_INCLUDE_DIR bits here.. - (libstdcxx_incdir): Add. - * cppdefault.c (GPLUSPLUS_TOOL_INCLUDE_DIR): Add search path. - -2000-12-18 Neil Booth - - * c-lex.c (lex_lineno): Remove. - (init_c_lex, c_lex): Remove lex_lineno. - (cb_change_file): Update lineno correctly, both before calling - push_srcloc and before leaving the function. - (cb_def_pragma): Set lineno before outputting diagnostics. - -Sun Dec 17 18:45:41 2000 Richard Kenner - - * print-tree.c (print_node): Print DECL_USER_ALIGN and TYPE_USER_ALIGN. - Print TYPE_MIN_VALUE and TYPE_MAX_VALUE for REAL_TYPE. - Use print_node_brief to print bounds. - -2000-12-17 Neil Booth - - * cpplib.h (struct cpp_reader): Remove references to string_pool - and temp_string_pool. - * cppinit.c (cpp_create_reader, cpp_cleanup): Similarly; using - ident_pool in place. - * cpplex.c (parse_number, unescaped_terminator_p, parse_string, - save_comment, cpp_token_as_text): Similarly. - * cpplib.c (do_define, glue_header_name, parse_assertion): Similarly. - * cppmacro.c (make_number_token, builtin_macro, lock_pools, - unlock_pools, stringify_arg, paste_tokens): Similarly. - -Sun Dec 17 12:41:48 2000 Richard Kenner - - * dwarf2out.c (loc_descriptor_from_tree, case NOP_EXPR): New case. - (loc_descriptor_from_tree, case CONVERT_EXPR): Likewise. - (loc_descriptor_from_tree, case NON_LVALUE_EXPR): Likewise. - -2000-12-17 Richard Earnshaw - - * Makefile.in (check-po): Use $(MAKE). - (risky-stage1, risky-stage2, risky-stage3, risky-stage4): Likewise. - -2000-12-17 Neil Booth - - * cppmain.c (check_multiline_token): New function. - (scan_buffer): Use it. - (cb_change_file): Restructure to avoid warning. - * cpperror.c (print_location): Initialize col. - -2000-12-14 Philipp Thomas - - * protoize.c (main): Correctly set locale categories. - * gcc.c (main): Likewise. - * cppmain.c (general_init): Likewise. - * toplev.c (main): Likewise. - * gcov.c (main): Likewise. - * collect2.c (main): Likewise. - -2000-12-17 Kaveh R. Ghazi - - * c-common.c (c_common_nodes_and_builtins): Create a - cstring_endlink, use it. Rename int_ftype_string_string to - int_ftype_cstring_cstring, string_ftype_string_int to - string_ftype_cstring_int, and string_ftype_string_string to - string_ftype_cstring_cstring. Prefer sizetype_endlink and - int_endlink to manually recreating them. Fix the prototype - set for __builtin_strspn/__builtin_strcspn. - -2000-12-12 Marek Michalkiewicz - - * config/avr/avr.c (out_set_stack_ptr): Update comment. - (print_operand): Add support for %~ and %o. - -2000-12-17 Herman A.J. ten Brugge - - * c4x.h: Add ASM_OUTPUT_DEF definition for bounded pointer code. - -2000-12-17 Neil Booth - - * c-lex.c: Move main_input_filename handling to FC_ENTER. Clean up. - * cpperror.c (print_containing_files): Get right line number. - (print_location): Output column of 1 if 0. - * cppfiles.c (stack_include_file): cpp_push_buffer handles - the callback. - * cpphash.h (_cpp_do_file_change): No longer external. - * cpplib.c (do_file_change): Now local to cpplib.c. - (do_line): Fake a buffer stack for preprocessed files. - (cpp_push_buffer): Create a file_change callback. Handle faked - buffers. - (cpp_pop_buffer): Similarly. - * cpplib.h: BUF_FAKE: New buffer type. - * cppmain.c: Update to handle correct file renaming where a - #line is the first line of the main file, and produce only - the renamed file, not the original file, as output. - -2000-12-17 Michael Hayes - - * config/c4x/c4x.md: Remove redundant @s from output patterns. - -2000-12-17 Michael Hayes - Herman A.J. ten Brugge - - * config/c4x/c4x.h (REGISTER_TARGET_PRAGMAS): Call c4x_init_pragma. - - * config/c4x/c4x-protos.h (c4x_init_pragma): New prototype. - - * config/c4x/c4x.c (c4x_init_pragma): New function. - (c_lex_func): New variable. - (c4x_parse_pragma): Use c_lex_func. - -2000-12-17 Michael Hayes - Herman A.J. ten Brugge - - * config/c4x/c4x.h (MD_INIT_BUILTINS): Add void_list_node argument - to c4x_init_builtins. - - * config/c4x/c4x-protos.h (c4x_init_builtins): Add tree argument. - - * config/c4x/c4x.c (c4x_init_builtins): Add tree argument. - (c4x_output_ascii): Fix. - -2000-12-17 Michael Hayes - Herman A.J. ten Brugge - - * config/c4x/c4x.h (MD_INIT_BUILTINS, MD_EXPAND_BUILTIN): Define. - - * config/c4x/c4x-protos.h (c4x_init_builtins): New prototype. - (c4x_expand_builtin): Likewise. - - * config/c4x/c4x.c (c4x_init_builtins): New function. - (c4x_expand_builtin): Likewise. - - * config/c4x/c4x.md (floatunsqihf2): New pattern. - (*floatqihf2_set, *fixhfqi_set, fix_trunchfqi2): Likewise. - (fixuns_trunchfqi2, toieee, frieee, *ldhf_conditional): Likewise. - (*ldhf_conditional_noov, movhfcc, trap, cond_trap_cc): Likewise. - (*toieee_movqf_clobber, *frieee_movqf_clobber): Likewise. - -2000-12-17 Michael Hayes - - * libgcc2.h: Use Wtype for SItype and DWtype for DItype in prototypes. - * libgcc2.c (__absvsi2): Use Wtype and DWtype. - (__absvdi2, __addvsi3, __addvdi3, __subvsi3): Likewise. - (__subvdi3, __mulvsi3, __mulvdi3, __negvsi2, __negvdi2): Likewise. - -2000-12-16 Alexandre Oliva - - * config/sh/sh.h (INITIALIZE_TRAMPOLINE): Enclose the block - statement in do/while(0). - -Sat Dec 16 19:56:24 MET 2000 Jan Hubicka - - * i386.md (ashrsi3_cmpno, ashrhi3_cmpno, ashrqi3_cmpno, lshrsi3_cmpno, - lshrhi3_cmpno): Remove redundant '@' from the template. - - * i386.md (cmpstrsi_1): Fix type of the compare. - - * genattrtab.c (attr_rtx_cost): New function. - (simplify_test_exp): Avoid overactive inlining; use temporary - obstacks for tests. - -Sat Dec 16 10:41:11 2000 Richard Kenner - - * diagnostic.c (finish_abort): Deleted. - (fatal): Add code from finish_abort. - (error_recursion, fancy_abort): Call fatal, not finish_abort. - (trim_filename): Remove leading "../". - * diagnostic.h (finish_abort): Deleted. - * toplev.c (crash_signal): Call fatal, not finish_abort. - - * stor-layout.c (place_field): Treat overflowing DECL_SIZE_UNIT - as if size were variable. - - * expmed.c (expand_mult): Write REG_EQUAL note with proper mode. - -2000-12-16 Neil Booth - - * tradcpp.c: T_WARNING: New. - (do_warning): New function. - (finclude): Skip past the newline and increase the line number - before calling output_line_command. - (do_line): Skip the new line after output_line_command. Don't - pre-decrement the line number. - -2000-12-15 Diego Novillo - - * i386/unix.h (ASM_OUTPUT_MI_THUNK): Fix references to - _GLOBAL_OFFSET_TABLE_ when using Intel syntax. - -2000-12-15 Jakub Jelinek - - * gcc.c (cpp_options): Pass -fno-operator-names. - * cpplib.h (struct cpp_options): Add operator_names. - * cppinit.c (cpp_create_reader): Initialize it. - (initialize_builtins): If -fno-operator-names, don't add - C++ alternate operator names. - (COMMAND_LINE_OPTIONS): Add -fno-operator-names. - (cpp_handle_option): Clear operator_names. - -2000-12-15 Jason Merrill - - * jump.c (jump_optimize_1): Don't delete the line note after the - prologue even if it seems redundant. - - * config/arm/arm.c (arm_expand_prologue): Set RTX_FRAME_RELATED_P - on all insns used to adjust the stack. - -Fri Dec 15 15:32:16 MET 2000 Jan Hubicka - - * combine.c (cant_combine_insn_p): Get around SUBREGs when determining - hardreg<->reg moves. - -Fri Dec 15 14:48:37 MET 2000 Jan Hubicka - - * genrecog.c (add_to_sequence): Remove special case for - const_int_operand. - (maybe_both_true): Return 1 when falling out of sequence when - trying to find common position in the pattern. - -Fri Dec 15 14:44:51 MET 2000 Jan Hubicka - - * integrate.c (copy_rtx_and_substitute): Copy mode too. - -Fri Dec 15 14:11:57 MET 2000 Jan Hubicka - - * flow.c (notice_stack_pointer_modification_1): Cleanup. - -2000-12-15 Alexandre Oliva - - * function.c (adjust_trampoline_addr): New function. - (trampoline_address): Call it instead of round_trampoline_addr(). - * tm.texi (TRAMPOLINE_ADJUST_ADDRESS): Document it. - -2000-12-14 Zack Weinberg - - * cppfiles.c (hack_vms_include_specification): Delete function - (not used since 1998). - -Fri Dec 15 03:37:51 2000 J"orn Rennecke - - * haifa-sched.c (sched_init): Don't put a note in front of any BARRIER. - -2000-12-14 Jim Wilson - - * alias.c (get_alias_set): Call record_component_aliases for - COMPLEX_TYPE. - (record_component_aliases): Handle COMPLEX_TYPE. - -2000-12-14 Kaveh R. Ghazi - - * fixinc/gnu-regex.c: Disable NLS. - -2000-12-14 Richard Henderson - - * config/alpha/alpha.c (alpha_emit_conditional_move): Do not swap - comparison operands when that would create non-canonical rtl. - - * config/i386/i386.md (umulsi3_highpart): Remove * from name. - (smulsi3_highpart): Likewise. - -2000-12-14 Neil Booth - - * gcc.c (cpp_options): Add -remap. - -2000-12-14 Neil Booth - - * gcc.c (cpp_options): Update to use '&'. - (struct switchstr): Change type of validated to save space. - New member 'ordering'. - (handle_braces, validate_switches): Update to handle '&'. - -2000-12-13 Laurynas Biveinis - - * fixinc/inclhack.def: skip stdio_va_list fix if __DJ_va_list - found in a header. - * fixinc/fixincl.x: regenerated. - -2000-12-13 DJ Delorie - - * config.gcc (cygwin, win32, mingw32): Use float-i386.h. - -2000-12-13 Tom Tromey - - * gcc.c (handle_braces): Handle %{ - - * function.c (assign_parms): Optimize incoming PARALLELs into - REGs if possible. - -2000-12-13 Bruce Korb - - * fixinc/Makefile.in(*): substantial rewrite to accommodate systems - that cannot handle bi-directional pipes, viz. BeOS and DOS. - * fixinc/fixlib.h(IGNORE_ARG): new macro - (STATIC): define for all of fixinc to use - * fixinc/fixfixes.c(*): eliminate unused arg warnings - * fixinc/fixtests.c(*): ditto - * fixinc/fixincl.c(start_fixer): chain_open now uses const arg list - * fixinc/gnu-regex.c: reorder some includes to avoid _GNU_SOURCE - warning. Also, eliminate the ``#ifdef emacs'' stuff. - (re_syntax_options): make global as it is declared so. - * fixinc/mkfixinc.sh: process the argument list more consistently - (beos/msdosdjgpp): set TARGETS to twoprocess vs. oneprocess - * fixinc/procopen.c(globals): include "fixlib.h" for std defs - * fixinc/server.c(globals): ditto - * fixinc/server.h(defines): ditto - -2000-12-13 Neil Booth - - * tradcpp.c (special_symbol): Improve test for definedness, - though it is still not perfect. - (do_define): Don't define illegal macro names. - -2000-12-07 Aldy Hernandez - - * config/mips/elf.h (ASM_OUTPUT_SECTION_NAME): emit @nobits - if changing into .bss section. - * config/mips/elf64.h: same. - * config/mips/iris6.h: same. - * config/mips/netbsd.h: same. - * config/mips/openbsd.h: same. - -2000-12-13 Neil Booth - - * cppfiles.c (read_name_map): Return null if open () fails. - (remap_filename): Simplify logic. Add ICE if it doesn't work - as expected. Perform secondary lookup attempt on base filename - only. - -Wed Dec 13 19:48:04 MET 2000 Jan hubicka - - * flow.c (notice_stack_pointer_modification_1): Notice midifications - using PRE_MODIFY and POST_MODIFY. - -Wed Dec 13 17:25:32 MET 2000 Jan Hubicka - - * genoutput.c (process_template): Add sanity checking for '@' templates. - -2000-12-13 Bernd Schmidt - - * simplify-rtx.c (cselib_finish): Free reg_values and used_regs - varrays. - -2000-12-12 Mike Stump - - * Makefile.in (distclean): Remove safe-ctype.c as well. - -2000-12-12 Brad Lucier - - * tradcpp.c (do_error): Cast difference of pointers to int - for error message. - -2000-12-12 Franz Sirl - - * config/rs6000/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Move from here... - * config/rs6000/sysv4.h (HANDLE_PRAGMA_PACK_PUSH_POP): ...to here. - -2000-12-12 Jim Wilson - - * rtlanal.c (may_trap_p): Check operand modes of LE, LT, GE, and GT. - -2000-12-12 Alexandre Oliva - - * configure.in: Simplify language enabling/disabling code. - * configure: Rebuilt. - * ch/config-lang.in (target_libs): Set. - (build_by_default): Set to no. - * cp/config-lang.in (target_libs): Set. - * f/config-lang.in (target_libs): Set. - * java/config-lang.in (target_libs): Set. - * objc/config-lang.in (target_libs): Set. - -2000-12-12 Neil Booth - - * tradcpp.c (enum node_type): Add T_ERROR. - (do_error): New function. - (directive_table): Add #error handler. - -2000-12-12 Franz Sirl - - * configure.in (HAVE_AS_DWARF2_DEBUG_LINE): Enable .file/.loc check - for powerpc*-*-*. - * configure: Regenerated. - * config/rs6000/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define. - * config/rs6000/rs6000.c (rs6000_unique_section): Use - STRIP_NAME_ENCODING. - -Mon Dec 11 13:51:09 2000 Jeffrey A Law (law@cygnus.com) - - * pa.c (cmpib_comparison_operator): Remove GEU and LTU. - * pa.h (PREDICATE_CODES, cmpib_comparison_operator): Corresponding - changes. - -2000-12-11 Bruce Korb - - * fixinc/fixincl.tpl: initialize all fields for warnings - * fixinc/fixincl.x: regenerate - -2000-12-11 Neil Booth - - * tradcpp.h: For tradcpp, NUL is not whitespace. - -2000-12-11 Neil Booth - - * fix-header.c (read_scan_file): Macro expansion is not a file buffer. - -2000-12-05 Marek Michalkiewicz - - * config/avr/avr.c (compare_condition, compare_sign_p): New functions. - (compare_diff_p, compare_eq_p): Call compare_condition. - (out_tsthi, out_tstsi): Call compare_sign_p. - (avr_progmem_p): Check for error_mark_node. - -2000-12-11 Neil Booth - - * cpperror.c (print_location): New function. - (print_containing_files): Simplify. - (_cpp_begin_message): Simplify and use print_location. - * cppfiles.c (stack_include_file): Update. - (_cpp_pop_file_buffer): Update. - * cpphash.h (struct cpp_buffer): New members - include_stack_listed and type. - * cpplib.c (_cpp_handle_directive): Buffer->inc is not null. - (run_directive): Take buffer type. cpp_push_buffer cannot fail. - (_cpp_do__Pragma, cpp_define, _cpp_define_builtin, cpp_undef, - handle_assertion): Update. - (cpp_push_buffer): Take a buffer type and file name. - (cpp_pop_buffer): Update. Clear include_stack_listed. - * cpplib.h (input_stack_listing_current): Remove. - (enum cpp_buffer_type): New. - (cpp_push_buffer): New prototype. - * cppmacro.c (builtin_macro): Simplify; buffer cannot be null. - * fix-header.c (read_scan_file): Update. - -2000-12-10 Robert Lipe - - * install.texi (i*86-*-sco3.2v5*): Remove information duplicated - in html version. - -2000-12-10 Richard Henderson - - * genrecog.c (find_operand): Handle 'V' format code. - (find_matching_operand): New. - (validate_pattern): Accept '=' for an in-out operand if there - is another operand with a matching constraint. - - * config/i386/i386.md (andqi_ext_0_cc): Use matching constraint - for op1 to op0. - -2000-12-10 Richard Henderson - - * genrecog.c (validate_pattern) [STRICT_LOW_PART]: Fix thinko. - -2000-12-09 Richard Henderson - - * genrecog.c (validate_pattern): Verify that ZERO_EXTRACT and - STRICT_LOW_PART as SET_DEST have in-out constraints. - -2000-12-09 Joseph S. Myers - - * c-common.c (check_function_format): Don't suggest adding format - attributes to functions with no parameter to which to add them. - -2000-12-09 Nick Clifton - - * config/arm/arm.c (arm_expand_prologue): Mark the generated - insn not the set as being DWARF2_FRAME_RELATED_P. - -2000-12-09 Laurynas Biveinis - - * Makefile.in: use $(build_exeext) for all build - system executable targets. - -2000-12-09 Laurynas Biveinis - - * install.texi: remove i[345]86-*-winnt3.5 section. - * configur.bat: removed. - * config/msdos: directory removed. - -2000-12-09 Neil Booth - - * cppfiles.c (NEVER_REREAD, DO_NOT_REREAD): Move from cpphash.h. - * cpphash.h (NEVER_REREAD, DO_NOT_REREAD, ABSOLUTE_PATH): Delete. - * cpplex.c (parse_identifier): Improve diagnostic. - (_cpp_lex_token): Return unconditionally at the end of a directive. - * cpplib.c (read_flag): Verify legality of each flag. - (end_directive): Resotre pfile->skipping before skip_rest_of_line. - (do_line): Use the new read_flag. - * cppmacro.c (struct cpp_macro, parse_arg, replace_args, - check_macro_redefinition, parse_params): Rename var_args to - variadic. - -2000-12-09 Joseph S. Myers - - * .cvsignore: Add info files. - -2000-12-08 Laurynas Biveinis - - * config/winnt: Remove obsolete directory. - * install.texi (Configurations): Remove obsolete documentation for - Windows NT. - -2000-12-08 Joseph S. Myers - - * configure.in: Don't define INSTALL_INFO. - * configure: Regenerate. - * Makefile.in (INSTALL_INFO): Remove. - (info): Depend on info files in source directory. - (cpp.info, gcc.info, c-tree.info): Build info files in source - directory. - (distclean): Don't remove info files. - (maintainer-clean): Remove info files from source directory. - (install-normal): Depend on install-info. - (install-info): Install info files from source directory, if they - exist. - * texinfo.tex: Update to version 2000-11-09.08 from ftp.gnu.org. - -2000-12-08 Alexandre Oliva - - * lcm.c (optimize_mode_switching): Check whether an insn is a NOTE - before taking its NOTE_LINE_NUMBER. - -2000-12-08 Nick Clifton - - * config/arm/arm.md (load_indirect_jump): Add pool ranges. - - * extend.texi: Document ARM "interrupt" function attribute. - Mention that the ARM also support the "naked" function - attribute. - - * config/arm/arm-protos.h (arm_current_func_type): Add - prototype. - - * config/arm/arm.h (EXCEPTION_LR_REGNUM): Define. - (struct machine_function): Add 'func_type' field. - Define bit values for 'func_type' field. - (ARM_FUNC_TYPE): New macro. - (IS_INTERRUPT): New macro. - (IS_VOLATILE): New macro. - (IS_NAKED): New macro. - (IS_NESTED): New macro. - (ARM_INITIAL_ELIMINATION_OFFSET): Use IS_VOLATILE. - - * config/arm/arm.c (isr_attribute_args): New Structure. A - list of "interrupt" function attribute modifiers. - (arm_isr_value): New Function: Returns the type of the current - interrupt function. - (arm_compute_func_type): New Function: Computes the type of - the current function. - (arm_current_func_type): New Function: Returns the type of the - current function. - (use_return_insn): Use arm_current_func_type. - (arm_valid_type_attribute_p): Accept "interrupt" function - attribute. - (arm_comp_type_attributes): Check "interrupt" attributes. - (arm_valid_machine_decl): Accept "interrupt" function - attribute. - (arm_function_ok_for_sibcall): Do not allow interrupt - functions to use sibcalls. - (arm_naked_function_p): Delete. - (print_multi_reg): Remove redundant parameter 'hat'. - (arm_compute_save_reg_mask): New Function: Compute a bit mask - of registers saved during the current function's prologue. - (output_arm_return_instruction): Use arm_current_func_type. - Generate return instruction when LR is not poppsed off the - stack. - (arm_volatile_func): Delete. - (output_arm_prologue): Use arm_current_func_type and - arm_compute_save_reg_mask. - Note presernce of interrupt functions. - (arm_output_epilogue): Use arm_current_func_type and - arm_compute_save_reg_mask. - (arm_expand_prologue): Use arm_current_func_type and - arm_compute_save_reg_mask. - (arm_init_machine_status): Initialize func_type field, if - necessary. - (thumb_expand_prologue): Use arm_current_func_type. - (output_thumb_prologue): Use arm_current_func_type. - -2000-12-08 Brad Lucier - - * tradcpp.c (do_include): Make pointer differences 64-bit clean. - -Fri Dec 8 08:23:29 2000 J"orn Rennecke - - * fp-bit.c (_fpmul_parts): Use USItype variables as inputs - for multiplies. - -2000-12-07 Mike Stump - - * Makefile.in (distclean): Remove alloca.c hashtab.c. - -2000-12-07 Zack Weinberg - - * Makefile.in (HOST_RTL): Add safe-ctype.o. - (safe-ctype.o): New rule. - * system.h: Include safe-ctype.h, not ctype.h. No need to - wrap ctype macros. - - * cpphash.h: Zap IStable and related macros. Define is_* in - terms of safe-ctype.h macros. - * cppinit.c: Delete the IStable and all related code. - - * tradcpp.c: Delete is_idchar, is_idstart, is_hor_space, and - is_space arrays. Delete initialize_char_syntax. Change all - references to the above arrays to use macros instead. - * tradcpp.h: Define is_idchar, is_idstart, is_space, and - is_nvspace in terms of safe_ctype.h's macros. - * tradcif.y: is_idchar, is_idstart are macros not arrays. - - * config/i370/i370.c, config/winnt/dirent.c, - config/winnt/fixinc-nt.c, config/winnt/ld.c: - Use uppercase ctype macros. If we included ctype.h, - include safe-ctype.h instead. - - * fixinc/fixfixes.c: Use uppercase ctype macros. Don't test - ISLOWER(c) before calling TOUPPER(c). - * fixinc/fixincl.c (extract_quoted_files): Simplify out some gunk. - * fixinc/gnu-regex.c: Include safe-ctype.h, not ctype.h. No need to - wrap ctype macros. Don't test ISUPPER(x) before calling TOLOWER(x). - -2000-12-07 DJ Delorie - - * c-decl.c (grokdeclarator): preserve previous alignments when - rebuilding array types. - -2000-12-07 Neil Booth - - * cppfiles.c (struct include_file): Move from cpphash.h. - (_cpp_never_reread): New function. - (open_file, read_include_file): Use it. - (stack_include_file): Set the buffer's sysp according to the - path in which the file was found. - (find_include_file): Don't set sysp. - (cpp_make_system_header, actual_directory): Update. - (_cpp_execute_include): Do #include_next lookup handling here, - not in cpplib.c. Use _cpp_never_reread. - * cpphash.h (struct_include_file): Remove. - (struct cpp_buffer): New member sysp. - (CPP_IN_SYSTEM_HEADER, _cpp_execute_include): Update. - (_cpp_never_reread): New. - * cpplib.c (read_line_number): Rename read_flag. Rework slightly. - (end_directive): Clear line_extension flag. - (_cpp_handle_directive): Set line_extension flag for #number. - (do_include_next): Handle path lookup in _cpp_execute_include. - (do_line): Cleanup to use read_flag. Don't allow flags in #line. - (_cpp_do_file_change): Update. - (do_pragma_once): Use cpp_never_reread. Clean up. - * cpplib.h (struct lexer_state): New member line_extension. - -2000-12-07 Richard Henderson - - * flow.c (calculate_global_regs_live): Force the stack pointer live - after reload as well. - -2000-12-07 Bruce Korb - - * fixinc/Makefile.*(exeext): the variables are exeext, the - substitution expression is build_exeext. - -2000-12-07 Neil Booth - - * c-common.c (parse_in): Make a cpp_reader *. - * cppfiles.c (_cpp_fake_include): Remove. - * cpphash.h: Similarly. - * cpplib.c (do_line): Don't call _cpp_fake_include. A valid - #line always creates a callback; FC_RENAME if there are no - #line flags. - * fix-header.c (read_scan_file): cpp_push_buffer cannot fail. - The first EOF must be our get_char buffer. - -2000-12-07 Joseph S. Myers - - * c-common.c (warn_format_security): New variable. - (check_format_info): Warn about non-literal formats with no format - arguments if either -Wformat-nonliteral or -Wformat-security is - specified. - (set_Wformat): Set warn_format_security for settings other than 1. - * c-common.h (warn_format_security): Declare. - * c-decl.c (c_decode_option): Decode -Wformat-security and - -Wno-format-security. - * invoke.texi: Document -Wformat-security. - * toplev.c (documented_lang_options): Include -Wformat-security - and -Wno-format-security. - -2000-12-07 Joseph S. Myers - - * c-common.c (check_format_info): Warn for non-constant format - strings with strftime formats if -Wformat-nonliteral. Where the - format can convert arguments, if the format is not a string - literal and there are no arguments to the format, give a different - warning message from the general non-string-literal case. - -2000-12-07 Joseph S. Myers - - * c-common.c (format_wanted_type): Add reading_from_flag. - (print_char_table): Mark %s and %S formats with flag "R". - (check_format_info_main): Set up reading_from_flag appropriately. - If aflag, always set writing_in_flag rather than relying on the - format used being a scanf format and so having it set. - (check_format_types): Check for formats reading through null - pointers. - -2000-12-07 Joseph S. Myers - - * invoke.texi (-Wformat): Document what format features are - checked. - -2000-12-06 Kazu Hirata - - * config/h8300/h8300.h: Fix formatting. - -2000-12-06 Joel Sherrill - - * config.gcc (a29k*-*-rtems*, arm*-*-rtems*, c4x-*-rtems*, - h8300-*-rtems*, hppa1.1-*-rtems, *mips*-*-rtems*): New targets. - * config.gcc (*-rtems*): Add support for gthr-rtems.h. - * gthr-rtems.h, config/a29k/rtems.h, config/arm/rtems-elf.h, - config/h8300/rtems.h, config/mips/rtems.h: New files. - -2000-12-06 Mark Kettenis - - * config.gcc: Reorganize handling of *-*-gnu*, to share target - specific make details with Linux. Update comments to clarify - the distinction between GNU/Linux and GNU/Hurd. - -Wed Dec 6 19:22:02 2000 Jeffrey A Law (law@cygnus.com) - - * contrib.texi: Fix my email address. Update Per's - list of contributions. - -2000-12-06 Rodney Brown - - * c-lex.c (cb_indent): Decorate `str' argument, unused on HP-UX. - * collect2.c (scan_libraries): Remove unused `ch'. - (COFF specific stuff): Prototype ldgetname. Declare and prototype - ldbtread and ldclose. - - * config/alpha/osf.h: Standarize copyright statement. - * config/arc/arc.h: Likewise. - * config/arm/elf.h config/arm/coff.h config/arm/aout.h: Likewise. - * config/arm/arm.c config/arm/arm.h: Likewise. - * config/elxsi/elxsi.h: Likewise. - * config/i386/sco.h: Likewise. - * config/m68k/crds.h config/m68k/hp320.h config/m68k/lynx.h: Likewise. - * config/m68k/m68kv4.h config/m68k/next21.h: Likewise. - * config/m68k/sun3.h: Likewise. - * config/m88k/dgux.h config/m88k/dguxbcs.h: Likewise. - * config/pdp11/2bsd.h config/pdp11/pdp11.h: Likewise. - * config/romp/romp.h: Likewise. - * config/rs6000/aix41.h: Likewise. - * config/sparc/sysv4.h: Likewise. - * config/we32k/we32k.c config/we32k/we32k.h: Likewise. - * fixinc/gnu-regex.c fixinc/gnu-regex.h: Likewise. - * cpplib.h cppexp.c cselib.h profile.c: Likewise. - * longlong.h: Likewise. - * libgcc2.c: Likewise. - -2000-12-06 Herman A.J. ten Brugge - - * machmode.def: Use correct definition for BITSIZE on targets where - BITS_PER_UNIT != 8. - -2000-12-06 Bruce Korb - - * fixinc/Makefile.*: Reduce differences to (ultimately) reduce - the number of them. - -2000-12-06 J. David Anglin - - * pa.c: Include expr.h before c-tree.h. - (remove_useless_addtr_insns): Use reverse_condition_maybe_unordered - instead of reverse_condition. - (print_operand): Correct predicates for GT, GE, LT and LE. Add - predicates for LTGT, UNLE, UNLT, UNGE, UNGT, UNEQ, UNORDERED and - ORDERED. - (cmpib_comparison_operator): Add GEU and LTU codes. - * pa.h (PREDICATE_CODES): Add codes for cmpib_comparison_operator. - * pa.md (bltgt, bunle, bunlt, bunge, bungt, buneq, bunordered, - bordered): New float conditional branch patterns. - -Wed Dec 6 21:03:41 2000 J"orn Rennecke - - * final.c (final_addr_vec_align): Fix clipping to BIGGEST_ALIGNMENT. - -2000-12-06 Sylvain Pion - - * cpplex.c (skip_escaped_newlines): Don't warn for spaces between - backslash and newline, when inside a comment. - -2000-12-06 Joseph S. Myers - - * invoke.texi: Use @table @samp instead of @itemize @minus for - table of language standards. Fix use of @pxref. From Zack - Weinberg. Also exclude specs documentation from generated - manpage, and create separate ENVIRONMENT section. - -2000-12-06 Michael Matz - - * gcse.c (compute_pre_data): Kill trapping expressions in - destination blocks of abnormal edges. - -2000-12-05 Richard Sandiford - - * config/mn10300/mn10300.c (mn10300_print_reg_list): Added. - (mn10300_get_live_callee_saved_regs): Likewise. - (mn10300_gen_multiple_store): Likewise. - (store_multiple_operation): Likewise. - (expand_prologue): Use mn10300_gen_multiple_store(). - * config/mn10300/mn10300-protos.h (mn10300_print_reg_list): Added. - (mn10300_get_live_callee_saved_regs): Likewise. - (mn10300_gen_multiple_store): Likewise. - (store_multiple_operation): Likewise. - * config/mn10300/mn10300.md (store_movm): Use a MATCH_PARALLEL - tied to store_multiple_operation(). - -Tue Dec 5 20:09:14 2000 Jeffrey A Law (law@cygnus.com) - - * builtins.c (expand_builtin_setjmp_setup): Set - current_function_has_nonlocal_label. - -2000-12-05 Neil Booth - - * cppfiles.c (stack_include_file): Push zero-length buffers - in case of failure. Return void, as we don't fail any more. - (read_include_file): Check for files we shouldn't re-read. - Don't return an error code; errors are implied by marking the - file NEVER_REREAD. - (_cpp_execute_include): Move the recursion and in-macro checks - here. Update for stack_include_file not failing. - * cpplib.c (cpp_push_buffer): Always succeed, since - _cpp_execute_include performs the recursion check. Tidy up. - * cpplib.h (cpp_push_buffer): Update prototype. - -2000-12-05 Alexandre Oliva - - * sched-vis.c (visual_tbl_line_length): New variable. - (get_visual_tbl_length): Set it. - (visualize_stall_cycles): Don't let stalls overrun - visual_tbl_line_length. - -2000-12-05 Geoffrey Keating - - * global.c (global_conflicts): Allow for a REG_UNUSED note - with a different mode to the REG set in the insn. - -2000-12-05 Kaveh R. Ghazi - - * Makefile.in (fixinc.sh): Pass $WARN_CFLAGS into fixinc dir. - - * fixinc/Makefile.in (FIXINC_DEFS): Add $(WARN_CFLAGS). - -2000-12-05 Bruce Korb - - * fixinc/mkfixinc.sh(*-gnu*): activate fixinc for GNU/Hurd and - GNU/Linux. - -2000-12-05 Richard Earnshaw - - * fixinc/mkfixinc.sh: Run fixinc on netbsd. - * fixinc/inclhack.def (machine/ansi.h): Run this rule on all files, - to cope with aliased copies. - * fixinc/fixincl.x: Regenerate. - -2000-12-05 Bernd Schmidt - - * sched-vis.c: Guard with #ifdef INSN_SCHEDULING. - * sched-rgn.c: Likewise. - (rgn_print_insn): Fix output. - -2000-12-05 Bruce Korb - - * fixinc/Makefile.*: make these more consistent - * fixinc/mkfixincl.sh: enable BeOS fixincludes - -2000-12-05 Richard Henderson - - * stmt.c (warn_if_unused_value): Move side effects test earlier. - -2000-12-05 Alan Modra - - * bb-reorder.c (reorder_basic_blocks): Do check for EH edges even - when using sjlj. - -2000-12-05 Richard Henderson - - * flow.c (calculate_global_regs_live): Only force stack pointer - live before reload. Force pic register live before reload. - (insn_dead_p): Don't protect pic references from deletion. - -2000-12-05 Joseph S. Myers - - * invoke.texi: Add support for using texi2pod.pl. Don't use - @multitable. - -2000-12-04 Nick Clifton - - * config/arm/arm.c (arm_override_options): Test 'insn_flags' not - 'tune_flags' for XScale nature. - Remove spurious test of HARD_FLOAT and XScale flags. - - * config/arm/arm.md (umulsidi3adddi): Restore "=&r" register - contraint, accidentally changed during XScale contribution. - - * config/arm/lib1funcs.asm (interwork_call_via_, call_via_): Do - not create these functions if the target architecture does not - support Thumb instructions. - -2000-12-04 Joseph S. Myers - - * ONEWS: New file with the current contents of NEWS up to EGCS - 1.1. - * NEWS: Generate automatically from online release notes from EGCS - 1.0 to GCC 2.95.2, using ../contrib/gennews. - -2000-12-04 Neil Booth - - * tradcif.y: Move lexptr to top of file. Add rule to handle - assertions in conditional expressions. - * tradcpp.c (parse_answer): Assertions do not need to go to - end of line in conditional directives. - (parse_assertion): Get first character of identifiers correct. - (test_assertion): New function. - * tradcpp.h (test_assertion): New prototype. - -2000-12-01 Rodney Brown - - * config.gcc: Fix typo for UnixWare 7. - -2000-12-03 Phil Edwards - - * invoke.texi: Replace `pedwarns' with clearer text. - -2000-12-04 Bruce Korb - - * fixinc/Makefile.*(clean): don't clean autogenerated files. - (mainainer-clean): clean autogenerated files - -2000-12-04 DJ Delorie - - * md.texi: Add overview, clarify match_dup and define_expand. - -2000-12-04 DJ Delorie - - * print-tree.c (print_node): Target-specific builtins print - numbers, not names. - -2000-12-04 Jason Merrill - - * stor-layout.c (int_mode_for_mode): Handle MODE_VECTOR_INT, - MODE_VECTOR_FLOAT. - - * diagnostic.c (report_problematic_module): s/function/module/. - - * c-lex.h: Remove decl for check_newline. - -2000-12-04 Gerald Pfeifer - - * README.APOLLO: Remove obsolete file. - -2000-12-04 Neil Booth - - * cppinternals.texi: New file. - -2000-12-04 Neil Booth - - * cppfiles.c (cpp_make_system_header): Take 2 booleans, - and operate on current buffer. - (cpp_read_file): Rename _cpp_read_file. - * cpplib.c (do_line, do_pragma_system_header): Update calls to - cpp_make_system_header. - * fix-header.c: Similarly. - * cpphash.h (_cpp_read_file): Move from... - * cpplib.h: ... here. - * cppinit.c (do_includes, cpp_start_read): Update appropriately. - -2000-12-03 Kaveh R. Ghazi - - * builtins.c (expand_builtin_strspn, expand_builtin_strcspn): - Handle another transformation. - -2000-12-03 Nick Clifton - - * config.gcc: Add support for StrongARM targets. - * config/arm/t-strongarm-elf: New file. - * config/arm/t-strongarm-coff: New file. - * config/arm/t-strongarm-pe: New file. - * config/arm/strongarm-pe.h: New file. - -2000-12-03 Nick Clifton - - * NEWS: Mention XScale has been added. - * config.gcc: Add support for XScale targets. - * config/arm/arm.h: Add support for XScale processor. - * config/arm/arm.c: Add support for XScale processor. - * config/arm/arm.md: Add support for XScale processor. - * config/arm/t-xscale-elf: New file. - * config/arm/t-xscale-coff: New file. - * config/arm/xscale-elf.h: New file. - * config/arm/xscale-coff.h: New file. - -2000-12-03 Richard Henderson - - * bb-reorder.c (reorder_basic_blocks): Don't check for EH edges - unless exception handling is enabled, and if not using sjlj. - - * builtins.c (expand_builtin_setjmp_setup): New. - (expand_builtin_setjmp_receiver): New. - (expand_builtin_setjmp): Split out _setup and _receiver functions. - Move argument parsing in from ... - (expand_builtin): ... here. - * except.c (receive_exception_label): Branch around receiver - unless new-style exceptions. Call expand_builtin_setjmp_receiver. - (start_dynamic_handler): Call expand_builtin_setjmp_setup. - * expr.h: Update builtin setjmp decls. - -2000-12-03 Bruce Korb - - * fixinc/mkfixinc.sh(build machine): Sometimes, there is no canonical - build machine name. Default to the target. - -2000-12-03 Laurynas Biveinis - - * Makefile.in: use $(build_canonical), not $(canonical_build). - -2000-12-03 Bernd Schmidt - - * Makefile.in (OBJS): Add sched-rgn.o. - (sched-rgn.o): New rule. * haifa-sched.c (sched_verbose): No - longer static. - (INSN_PRIORITY, INSN_COST, INSN_UNIT, INSN_REG_WEIGHT, - INSN_BLOCKAGE, UNIT_BITS, BLOCKAGE_MASK, ENCODE_BLOCKAGE, - UNIT_BLOCKED, BLOCKAGE_RANGE, MIN_BLOCKAGE_COST, - MAX_BLOCKAGE_COST): Move to sched-int.h. - (MAX_RGN_BLOCKS, MAX_RGN_INSNS, INSN_REF_COUNT, FED_BY_SPEC_LOAD, - IS_LOAD_INSN, struct haifa_edge, edge_table, NEXT_IN, NEXT_OUT, - FROM_BLOCK, TO_BLOCK, nr_edges, in_edges, out_edges, IN_EDGES, - OUT_EDGES, edgelst, struct region, nr_regions, rgn_table, - rgn_bb_table, block_to_bb, containing_rgn, RGN_NR_BLOCKS, - RGN_BLOCKS, BLOCK_TO_BB, BB_TO_BLOCK, CONTAINING_RGN, - debug_regions, find_single_block_region, find_rgns, too_large, - init_regions, current_nr_blocks, current_blocks, bitset, bitlst, - bitlst_table_last, bitlst_table_size, bitlst_table, bitset_member, - extract_bitlst, bblst, struct candidate, candidate_table, - bblst_table, bblst_size, bblst_last, IS_VALID, IS_SPECULATIVE, - SRC_PROB, target_bb, split_edges, compute_trg_info, - debug_candidate, debug_candidates, bbset, bbset_size, dom, - IS_RGN_ENTRY, IS_DOMINATED, prob, GET_SRC_PROB, edgeset, - rgn_nr_edges, rgn_edges, edgeset_size, edgeset_bitsize, - EDGE_TO_BIT, edge_to_bit, pot_split, ancestor_edges, - compute_dom_prob_ps, ABS_VALUE, INSN_PROBABILITY, - IS_SPECULATIVE_INSN, INSN_BB, MIN_DIFF_PRIORITY, MIN_PROBABILITY, - MIN_PROB_DIFF, check_live_1, update_live_1, check_live, - update_live, set_spec_fed, is_pfree, find_conditional_protection, - is_conditionally_protected, may_trap_exp, haifa_classify_insn, - is_prisky, is_exception_free, add_branch_dependences, - propagate_deps, compute_block_backward_dependences, - debug_dependencies, is_cfg_nonregular, build_control_flow, - new_edge, bb_deps, BITSET_UNION, BITSET_INTER, BITSET_DIFFER, - BITSET_INVERT, BITSET_ADD, BITSET_REMOVE, debug_regions, - UPDATE_LOOP_RELATIONS, INSN_TRAP_CLASS, WORST_CLASS, IS_REACHABLE, - CONST_BASED_ADDRESS_P, free_pending_lists, sched_target_n_insns, - target_n_insns, sched_n_insns, init_ready_list, deaths_in_region, - can_schedule_ready_p, new_ready, schedule_more_p, rgn_print_insn, - rgn_rank, region_sched_info): Move to sched-rgn.c. - (debug_reg_vector): Delete useless function. - (get_bb_head_tail): Likewise. - (insn_issue_delay, insn_cost, ready_add, get_block_head_tail, - no_real_insns_p, rm_line_notes, save_line_notes, - restore_line_notes, rm_redundant_line_notes, sched_init): No - longer static. - (rm_line_notes, save_line_notes, restore_line_notes, - schedule_block, set_priorities): Change argument to be a real - basic block, not one of haifa's "bb"s. All callers changed - (rm_other_notes): Initialize note_list here, not in - schedule_region. - (sched_finish): New function, called from schedule_insn. * * - sched-int.h (INSN_PRIORITY, INSN_COST, INSN_UNIT, INSN_REG_WEIGHT, - INSN_BLOCKAGE, UNIT_BITS, BLOCKAGE_MASK, ENCODE_BLOCKAGE, - UNIT_BLOCKED, BLOCKAGE_RANGE, MIN_BLOCKAGE_COST, - MAX_BLOCKAGE_COST): Moved here from haifa-sched.c. - (get_block_head_tail, no_real_insns_p, rm_line_notes, - save_line_notes, restore_line_notes, rm_redundant_line_notes, - rm_other_notes, insn_issue_delay, set_priorities, schedule_block, - sched_init, sched_finish, ready_add, insn_cost): Declare. - -2000-12-03 Laurynas Biveinis - Bruce Korb - - * Makefile.in: pass $(build_canonical) to mkfixinc.sh. - * fixinc/mkfixinc.sh: accept build system name as an argument. - Use it for choosing the fix build method. Use the target for - selecting special fix rules. - -2000-12-03 Bernd Schmidt - - * Makefile.in (OBJS): Add sched-deps.o. - (sched-deps.o): New rule. - * haifa-sched.c (struct deps, struct haifa_insn_data): Moved to - sched-int.h. - (INSN_DEPEND, INSN_LUID, CANT_MOVE, INSN_DEP_COUNT): Macros moved to - sched-int.h. - (SIZE_FOR_MODE): Delete unused macro. - (reg_known_equiv_p, reg_known_value, reg_pending_clobbers, - reg_pending_sets, reg_pending_sets_all, true_dependency_cache, - anti_dependency_cache, output_dependency_cache, - forward_dependency_cache): Variables moved to sched-deps.c. - (add_dependence, remove_dependence, find_insn_list, - find_insn_mem_list, add_insn_mem_dependence, flush_pending_lists, - sched_analyze_insn, sched_analyze_1, sched_analyze_2, - sched_analyze, group_leader, compute_forward_dependences, - init_deps, free_deps, init_dependency_caches, free_dependency_caches): - Functions moved to sched-deps.c. - (schedule_region): Call init_deps_global and finish_deps_global - instead of directly manipulating dependency data structures. - * sched-deps.c: New file. - (init_deps_global, finish_deps_global): New functions. - * sched-int.h (struct haifa_insn_data, struct deps): Moved here from - haifa-sched.c. - (h_i_d): Declare. - (INSN_DEPEND, INSN_LUID, CANT_MOVE, INSN_DEP_COUNT): Macros moved here - from haifa-sched.c. - - * Makefile.in (OBJS): Add sched-vis.o. - (sched-vis.o): New rule. - * haifa-sched.c (get_unit_last_insn): New function. - (sched_dump, insn_unit, actual_hazard_this_instance): No longer - static. - (schedule_block): Call visualize_alloc and visualize_free. Delete - spurious return statement. - (init_target_units, insn_print_units, get_visual_tbl_length, - init_block_visualization, print_block_visualization, safe_concat, - visualize_scheduled_inns, visualize_no_unit, visualize_stall_cycles, - print_exp, print_value, print_pattern, print_insn, target_units, - MAX_VISUAL_LINES, INSN_LEN, n_visual_lines, visual_tbl, - n_vis_no_unit, vis_no_unit): Move scheduling visualization - functions/variables... - * sched-vis.c: ...here. New file. - (visualize_alloc, visualize_free): New functions. - (visualize_scheduled_insns, visualize_stall_cycles, - print_block_visualization): Lose basic block argument. All callers - changed. - (visualize_scheduled_insns): Use new function get_unit_last_insn. - * sched-int.h (current_sched_info, sched_dump): Declare. - (init_target_units, insn_print_units, init_block_visualization, - print_block_visualization, visualize_scheduled_inns, - visualize_no_unit, visualize_stall_cycles, visualize_alloc, - visualize_free): Declare functions. - - * sched-int.h: New file. - * Makefile.in (haifa-sched.o): Depend on it. - * haifa-sched.c: Include it. - (no_real_insns_p): New function. - (current_sched_info): New static variable. - (__inline, HAIFA_INLINE): Moved to sched-int.h. - (get_block_head_tail): Minor cleanup. - (init_ready_list, can_schedule_ready_p, new_ready, schedule_more_p, - rgn_print_insn, rgn_rank): New functions, broken out of - rank_for_schedule, schedule_insn and schedule_block, where they - are now called through function pointers in current_sched_info. - (queue_insn, schedule_insn, queue_to_ready, debug_ready_list, - print_insn): To display uid and block number, call the print_insn - function pointer in current_schedule_info. - (region_sched_info): New static variable. - (sched_target_n_insns, sched_n_insns, target_n_insns): New global - variables, moved out of schedule_block. - (schedule_block): Return void. All callers changed. - Move some of the setup code into schedule_region. Get head/tail - from current_sched_info, and update it when done. - (schedule_region): Slightly rearranged, some code moved here from - schedule_block. Call no_real_insns_p to avoid doing work for a - block that consists only of notes and labels. - (schedule_insns): Initialize current_sched_info. - -2000-12-03 Neil Booth - - * cppmacro.c (funlike_invocation_p): Re-disable macros enabled - by contexts drops AFTER argument pre-expansion, so that they - remain enabled during argument pre-expansion. - (_cpp_pop_context): Unconditionally re-enable a macro when - dropping a context level. - -2000-12-03 Manfred Hollstein - - * arm/t-linux (MULTILIB_OPTIONS): Comment. - (MULTILIB_DIRNAMES): Likewise. - (EXTRA_MULTILIB_PARTS): Likewise. - (LIBGCC): Likewise. - (INSTALL_LIBGCC): Likewise. - -2000-12-02 Kaveh R. Ghazi - - * builtins.c (expand_builtin_strcat, expand_builtin_strncat, - expand_builtin_strspn, expand_builtin_strcspn): New functions. - (expand_builtin): Handle BUILT_IN_STRCAT, BUILT_IN_STRNCAT, - BUILT_IN_STRSPN and BUILT_IN_STRCSPN. - - * builtins.def (BUILT_IN_STRCAT, BUILT_IN_STRNCAT, - BUILT_IN_STRSPN, BUILT_IN_STRCSPN): New entries. - - * c-common.c (c_common_nodes_and_builtins): Declare builtin - strcat, strncat, strspn and strcspn. - (string_ftype_string_cstring): Renamed from `string_ftype_ptr_ptr'. - - * extend.texi (strcat, strcspn, strncat, strspn): Document new - builtins. - -2000-12-02 Kaveh R. Ghazi - - * builtins.c (expand_builtin_strcmp): Use const*_rtx when - expanding strcmp at compile-time. Add another transformation. - (expand_builtin_strncmp): Add more transformations. Call - expand_builtin_memcmp, not expand_builtin_strcmp, under - appropriate conditions if HAVE_cmpstrsi. - -2000-12-02 David Edelsohn - - * rs6000.md (anddi3_internal[23]): Prefer rldic? over andis - instruction. - (cr logic): Really make operands sequential. - -2000-12-02 Geoffrey Keating - - * c-common.c (combine_strings): When the ISO C standard specifies - the maximum length of a string, it doesn't include the trailing - zero byte. - - * cpplib.c (do_ifdef): Add check_eol() call. - (do_ifndef): Likewise. - -2000-12-02 Daniel Berlin - Bruce Korb - - * fixinc/*: global substitute /__MSDOS__/SEPARATE_FIX_PROC/ - * fixinc/mkfixinc.sh: prepare to use Makefile.BEOS for *-*-beos* - * fixinc/Makefile.DOS: define SEPARATE_FIX_PROC for build - * fixinc/fixfix.c(wrap_fix): avoid wrapping files that - use the "__need_" hackery. It breaks them. - * fixinc/fixincl.c(process - SEPARATE_FIX_PROC): - Sometimes on DOS and BeOS the temp output file cannot be opened. - Skip the file noisily. Ought to be fixed instead. - -2000-12-02 Bruce Korb - - From: 2000-11-19 Kaveh R. Ghazi - - * fixfixes.c (emit_gnu_type, format_write): Prototype. - (format_write, char_macro_use_fix, char_macro_def_fix): Use gcc's - custom uppercase ctype macros. - * fixincl.c (do_version): Make static and add ATTRIBUTE_NORETURN. - Use gcc's custom uppercase ctype macros. - (main): Prototype. - (machine_matches): Add static prototype and constify variable. - (create_file, test_test, egrep_test): Add static prototype. - (quoted_file_exists): Likewise, and constify parameters. - (extract_quoted_files, internal_fix, start_fixer, fix_applies, - write_replacement, test_for_changes): Add static prototype. - (write_replacement, test_for_changes): Delete excess argument to - `create_file'. - * fixtests.c (test): Make static. - * server.c (load_data, sig_handler, server_setup, find_shell): Add - static prototype. - (sig_handler): Mark parameter with ATTRIBUTE_UNUSED. - -2000-12-02 Bruce Korb - - * fixnc/mkfixinc.sh(msdosdjgpp): remove from fixincludes exception list - (per Laurynas Biveinis ) - -2000-12-02 Richard Earnshaw - - * arm.h (ARM_REGNO_OK_FOR_BASE_P, THUMB_REGNO_MODE_OK_FOR_BASE_P): New - macros. - (REGNO_MODE_OK_FOR_BASE_P): Define in terms of above. - (REGNO_OK_FOR_FOR_BASE_P): Delete. - (ARM_REG_OK_FOR_BASE_P, THUMB_REG_MODE_OK_FOR_BASE_P): New macros for - both strict and non-strict uses. - (REG_MODE_OK_FOR_BASE_P): Define in terms of above. - (ARM_REG_OK_FOR_INDEX_P, THUMB_REG_OK_FOR_INDEX_P): New macros. - (REG_OK_FOR_INDEX_P): Define in terms of above. - (REG_OK_FOR_BASE_P): Delete. - (REG_OK_FOR_PRE_POST_P): Delete. - (ARM_BASE_REGISTER_RTX_P): Renamed from BASE_REGISTER_RTX_P. - (ARM_INDEX_REGISTER_RTX_P): Renamed from INDEX_REGISTER_RTX_P. - (ARM_GO_IF_LEGITIMATE_INDEX): Renamed from GO_IF_LEGITIMATE_INDEX. - (THUMB_LEGITIMATE_OFFSET): Renamed from LEGITIMATE_OFFSET. - (ARM_GO_IF_LEGITIMATE_ADDRESS): Adjust for name changes. Use ARM - specific variants rather than general ones. Use ARM_REG_OK_FOR_BASE_P - in pre/post increment cases. - (THUMB_GO_IF_LEGITIMATE_ADDRESS): Similarly for Thumb. - (ARM_LEGITIMIZE_ADDRESS): Similarly. - (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Similarly. - * arm.c (legitimate_pic_address): Similarly. - -2000-12-02 Neil Booth - - * tradcpp.c (struct answer, parse_assertion, parse_answer, - canonicalize_text, find_answer): New. - (do_assert, do_unassert): Provide appropriate function bodies. - (union hashval): New member answers. - -2000-11-23 Marek Michalkiewicz - - * config/avr/avr.md: Document UNSPEC usage. - (*tablejump_rjmp, *tablejump_lib, *tablejump_enh, *tablejump): - Make operand 0 input only, clobber it. Use UNSPEC, not a bogus - MEM for program memory word reference. Do not add the label to - the table index in each of the asm output templates, instead ... - (casesi): ... do it in RTL. Adjust to match the above change. - -2000-12-02 Bernd Schmidt - - * c-common.c (PTRDIFF_TYPE): Provide default here, ... - * c-decl.c: ... not here. - - * haifa-sched.c (sched_dump): Renamed from dump. All users changed. - (old_max_uid): New variable. - (compute_forward_dependences): Renamed from - compute_block_forward_dependences; changed to accept block head and - tail instead of block number. Caller changed. - (free_deps, init_dependency_caches, free_dependency_caches, - init_regions, sched_init): New functions, split out from - schedule_insns and compute_block_backward_dependences. - -2000-12-02 Neil Booth - - * cppexp.c (parse_number): Update diagnostic test. - -2000-12-02 Bernd Schmidt - - * reload1.c (free_for_value_p): New function, frontend to - reload_reg_free_for_value_p. All callers of the latter now call - this function with an additional mode argument. - -2000-12-02 Gerald Pfeifer - - * install.texi (Configurations): Remove obsolete documentation for - hppa*-*-*. - -2000-12-02 Gerald Pfeifer - - * install.texi (Installation): Remove obsolete description for - libstdc++ which is now an integral part of GCC. - -2000-12-01 Jim Blandy - - * dbxout.c (dbxout_parms): Correctly describe parameters passed by - invisible reference in registers, but then spilled to the stack. - Remove code to emit a second stab for such parameters; it attempts - to describe the value's location by introducing a synthetic C++ - `reference' type, and then saying the stack slot has that - reference type. This loses type information (breaking GDB's - `ptype' command, among other things) just to describe a location - which stabs can represent correctly in other ways. - -2000-12-01 Alexandre Oliva - - * final.c (output_addr_const) : Don't assume at least one - operand is a CONST_INT. - - * config/sh/sh.c (reg_class_from_letter): Assign `k' to SIBCALL_REGS. - (machine_dependent_reorg): Split all insns. - * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Compute - reg_class_contents[SIBCALL_REGS]. - (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Add SIBCALL_REGS. - * config/sh/sh.md (calli_pcrel, call_pcrel, call_valuei_pcrel, - call_value_pcrel, call, call_value, sibcall): Match even when - not optimizing. - (sibcalli_pcrel, sibcall_pcrel): Likewise. Use constraint `k' - for call address. - (sibcalli): Likewise. - -2000-12-01 Joseph S. Myers - - * c-common.c (warn_format, warn_format_y2k, - warn_format_extra_args, warn_format_nonliteral): Define. - (check_format_info): Check warn_format_nonliteral and - warn_format_extra_args. - (check_format_info_main): Check warn_format_y2k. - (set_Wformat): New function. - * c-common.h (warn_format_y2k, warn_format_extra_args, - warn_format_nonliteral, set_Wformat): Declare. - * c-decl.c (warn_format): Remove definition. - (c_decode_option): Handle -Wformat-nonliteral, - -Wno-format-extra-args and -Wno-format-y2k, and negated versions. - Use set_Wformat. - * invoke.texi: Document these new options and -Wformat=2. - * toplev.c (documented_lang_options): Add these new options. - -2000-12-01 Joseph S. Myers - - * builtins.def (BUILT_IN_IMAXABS): Add. - * builtins.c (expand_builtin): Also abort on BUILT_IN_IMAXABS. - * c-common.c (c_common_nodes_and_builtins): Create builtin - functions __builtin_imaxabs, and plain imaxabs unless - flag_no_nonansi_builtin outside C99 mode. - (expand_tree_builtin): Handle BUILT_IN_IMAXABS. - * extend.texi: Document builtin imaxabs. - -2000-12-01 Joseph S. Myers - - * c-common.c: Include "defaults.h". - (WINT_TYPE, INTMAX_TYPE, UINTMAX_TYPE): Define. - (c_common_nodes_and_builtins): Create string_type_node, - const_string_type_node, wint_type_node, intmax_type_node, - uintmax_type_node, default_function_type, ptrdiff_type_node and - unsigned_ptrdiff_type_node. - * c-common.h (identifier_global_value): Declare. - * c-decl.c (WINT_TYPE, INTMAX_TYPE, UINTMAX_TYPE): Don't define. - (init_decl_processing): Don't create string_type_node, - const_string_type_node, wint_type_node, intmax_type_node, - uintmax_type_node, default_function_type, ptrdiff_type_node and - unsigned_ptrdiff_type_node. - (identifier_global_value): New function. - -2000-12-01 Neil Booth - - * cppinit.c (initialize): Forgotten prototype. - * cpplex.c (_cpp_lex_token): Loop until not skipping. - Always clear PREV_WHITE upon meeting a new line. - * cpplib.c (end_directive): Set pfile->skipping after - skip_rest_of_line. - * cpplib.h (cpp_reader): Remove macro_pos. - * cppmacro.c (cpp_get_line): Don't do anything special inside - macros. - (parse_arg): Add PREV_WHITE if a token appears after new lines. - (funlike_invocation_p): Save and restore the output position - over a successful check for a '('. - (enter_macro_context): Delete uses of macro_pos. - (cpp_get_token): Don't use pfile->skipping. - -2000-12-01 Phil Edwards - - * diagnostic.c: Fix typos in comments. - * diagnostic.h: Likewise. - -2000-11-30 Phil Edwards - - * rtl.texi (Machine Modes): Document BImode and OImode. - -2000-12-01 Joseph S. Myers - - * gcc.c (default_compilers): Add suffixes .mi, .cp, .ii, .FOR and - .FPP. - -2000-12-01 Joseph S. Myers - - * c-decl.c (grokdeclarator): If pedantic, warn about arrays with - incomplete element type. - (grokparms): Before checking for incomplete parameter type, check - the type isn't error_mark_node. - -2000-12-01 Jakub Jelinek - - * builtins.c (target_char_cast): New function. - (expand_builtin_strchr): Use it. - (expand_builtin_strrchr): Use it. - (builtin_memset_read_str): New function. - (expand_builtin_memset): Use target_char_cast. - Try to optimize memset with second argument nonzero using - store_by_pieces. - -2000-11-30 Marek Michalkiewicz - - * install.texi (avr): Replace incomplete list of supported MCU - types with a link to the current one ... - * invoke.texi (AVR Options): ... here. Update -mmcu= to list - all supported MCU types. Document -minit-stack= default. - Document new options -mno-tablejump, -mtiny-stack. - * md.texi (AVR family): Fix typo in 'w' constraint letter - description. Document 'q'. Update 'O'. - -2000-12-01 Bernd Schmidt - - * combine.c (cant_combine_insn_p): Only disallow insns involving - hard regs if they are reg-reg moves. - (try_combine, can_combine_p, combinable_i3pat): Delete old - SMALL_REGISTER_CLASSES tests. - -2000-12-01 Alexandre Oliva - - * config/sh/sh.c (shiftcosts): Don't get INTVAL before testing - whether X is a CONST_INT. - (addsubcosts): Likewise. - - * config/sh/sh.h (OUTPUT_ADDR_CONST_EXTRA): Use INTVAL instead of - mis-used XINT. - (ARG_POINTER_REGNUM): Set to AP_REG. - -2000-11-30 Alexandre Oliva - - * config/sh/sh.md (fpu_switch0, fpu_switch1, movpsi, fpu_switch, - splits): Only match on TARGET_SH4. - - * combine.c (try_combine): Disregard USEs when updating LOG_LINKS - of subsequent insns. - -2000-11-30 Richard Henderson - - * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Disable. - * config/alpha/alpha32.h (ASM_OUTPUT_MI_THUNK): Likewise. - -2000-11-30 Richard Henderson - - * config/alpha/elf.h (ASM_OUTPUT_SECTION_NAME): Copy elfos.h defn. - (DO_SELECT_SECTION): New. - (SELECT_SECTION): Use it. - (UNIQUE_SECTION_P): New. - (UNIQUE_SECTION): New. - -2000-11-30 Alexandre Oliva - - * c-common.c (status_warning) [! ANSI_PROTOTYPES]: Load status - from va_list before using it. - -2000-11-30 Michael Matz - - * flow.c (make_edge): Early out, if no flags to set. - (calculate_global_regs_live): Clear out garbage only when necessary. - - * simplify-rtx.c (varray_type used_regs): New. - (clear_table): Use it to only clear necessary items. - (cselib_lookup, cselib_record_set): Remember newly set items. - (cselib_update_varray_sizes, cselib_init): Initialize and grow - used_regs. - - * local-alloc.c (update_equiv_regs): New local `cleared_regs'. - Move clearing of dead regs out of insn-loop. - -2000-11-30 Richard Henderson - - * calls.c (expand_call): Emit queued insns before creating - the tail recursion sequence. - -2000-11-30 J. David Anglin - Bruce Korb - - * fixinc/inclhack.def(): prevent dual double definition protection - * fixinc/fixincl.x: regenerate - -2000-11-29 Loren J. Rittle - - * fixinc/Makefile.in (fixincl.x): Explicitly state the - location of the generated file. - -2000-11-30 Gerald Pfeifer - - * README.FRESCO: Remove obsolete file. - -2000-11-30 Mark Kettenis - - * config/t-gnu (LIBGCC1, CROSS_LIBGCC1, CRTSTUFF_T_CFLAGS, - TARGET_LIBGCC2_CFLAGS): Remove. We now use the settings from - config/t-linux for the Hurd. - -2000-11-30 Stephane Carrez - - * config/mn10200/udivmod.c, config/mn10200/divmod.c, - config/mn10200/udivmodsi4.c: Moved from here. - * config/udivmod.c, config/divmod.c, config/udivmodsi4.c: To here. - * config/mn10200/t-mn10200 (LIB2FUNCS_EXTRA): Use the generic - C division functions. - * config/m68hc11/t-m68hc11-gas (LIB2FUNCS_EXTRA): Likewise. - -Thu Nov 30 01:12:52 2000 Jeffrey A Law (law@cygnus.com) - - * pa.md (conditional moves): Avoid holes in operand list. - (mod, umod patterns): Similarly. - (variable extract/shift patterns): Similarly. - -2000-11-30 Neil Booth - - * objc/objc-act.c (lang_init, finish_file, maybe_objc_comptypes, - maybe_objc_check_decl, build_objc_string_object, - objc_declare_alias, objc_declare_class, build_message_expr, - build_protocol_expr, build_selector_expr, build_encode_expr, - get_class_ivars, start_class, start_protocol): Remove - redundant code, assuming doing_objc_thang is true. - -2000-11-29 John David Anglin - - * pa.c (restore_unscaled_index_insn_codes): Delete procedure. - (record_unscaled_index_insn_codes): Likewise. - (unscaled_index_insn_codes): Delete. - (max_unscaled_index_insn_codes_uid): Delete. - (output_function_prologue, output_function_epilogue, pa_reorg): - Don't use the unscaled index insn hack. - - * pa.md: Remove hack from all index insns to reverse the operand - order of frame and stack pointer references incorrectly created - in the reload pass. - - * function.h (emit_status): Delete member regno_pointer_flag and - rename regno_pointer_flag_length to regno_pointer_align_length. - Delete define for REGNO_POINTER_FLAG. - * integrate.h (inline_remap): Delete member regno_pointer_flag. - Add member x_regno_reg_rtx. - * rtl.h (rtx_def): Use frame_related bit to indicate register is - a pointer in REG expressions. Define REG_POINTER macro. - * alias.c (find_base_value, find_base_term): Use REG_POINTER - instead of REGNO_POINTER_FLAG. - * combine.c (nonzero_bits, num_sign_bit_copies): Likewise. - * emit-rtl.c (gen_reg_rtx): Use regno_pointer_align_length instead - of regno_pointer_flag_length. Remove code which refers to - regno_pointer_flag. - (mark_reg_pointer): Use REG_POINTER. - (free_emit_status): Remove code which refers to regno_pointer_flag. - (init_emit, mark_emit_status): Likewise. - * flow.c (dump_flow_info): Likewise. - * function.c (preserve_temp_slots): Likewise. - * integrate.c (expand_inline_function, copy_rtx_and_substitute): - Use x_regno_reg_rtx instead of regno_pointer_flag for function - pointer determination in map. - * loop.c (strength_reduce, maybe_eliminate_biv_1): Use REG_POINTER. - * predict.c (estimate_probability): Likewise. - * regclass.c (record_address_regs, reg_scan_mark_refs): Likewise. - * unroll.c (unroll_loop): Use x_regno_reg_rtx instead of - regno_pointer_flag for function pointer determination in map. - * convex.h (RTX_COSTS): Don't test regno_pointer_flag and use - REG_POINTER. - * pa.c (hppa_legitimize_address, emit_move_sequence, basereg_operand): - Use REG_POINTER. - (restore_unscaled_index_insn_codes): Revise comment. - - * expr.c (do_compare_and_jump): Add missing TYPE_MODE in statement. - -2000-11-30 Joseph S. Myers - - * extend.texi: Update documentation for attributes. - -2000-11-29 David O'Brien - - * config/alpha/elf.h (IDENT_ASM_OP): Protect the #define. - (ASM_DECLARE_OBJECT_NAME): Same. - (ASM_FILE_END): Same. - (ASM_FINISH_DECLARE_OBJECT): Same. - (ASM_IDENTIFY_GCC): Same. - (ASM_IDENTIFY_LANGUAGE): Same. - (ASM_OUTPUT_CONSTRUCTOR): Same. - (ASM_OUTPUT_DEF): Same. - (ASM_OUTPUT_DESTRUCTOR): Same. - (ASM_OUTPUT_EXTERNAL_LIBCALL): Same. - (ASM_OUTPUT_SECTION_NAME): Same. - (ASM_WEAKEN_LABEL): Same. - (BSS_SECTION_ASM_OP): Same. - (COMMON_ASM_OP): Same. - (CONST_SECTION_ASM_OP): Same. - (CONST_SECTION_FUNCTION): Same. - (CTORS_SECTION_ASM_OP): Same. - (DTORS_SECTION_ASM_OP): Same. - (ESCAPES): Same. - (FINI_SECTION_ASM_OP): Same. - (IDENT_ASM_OP): Same. - (IDENT_ASM_OP): Same. - (INIT_SECTION_ASM_OP): Same. - (INT_ASM_OP): Same. - (MAX_OFILE_ALIGNMENT): Same. - (SBSS_SECTION_ASM_OP): Same. - (SDATA_SECTION_ASM_OP): Same. - (SECTION_FUNCTION_TEMPLATE): Same. - (SELECT_SECTION): Same. - (SE_CONST_SECTION): Same. - (SIZE_ASM_OP): Same. - (SKIP_ASM_OP): Same. - (STRING_ASM_OP): Same. - (STRING_LIMIT): Same. - (TYPE_ASM_OP): Same. - (TYPE_OPERAND_FMT): Same. - -2000-11-29 Neil Booth - - * c-decl.c (c_decode_option): Don't handle -lang-objc. - * objc/lang-options.h: Remove -lang-objc. - * objc/lang-specs.h: Don't pass -lang-objc to cc1obj. - * objc/objc-act.c (lang_init_options): Set c_language. - -2000-11-29 Jakub Jelinek - - * expr.c (can_store_by_pieces): Reinitialize max_size for reverse - tests. - -2000-11-29 Neil Booth - - * c-pragma.c (init_pragma): Update for parse_in type change. - -2000-11-29 Laurynas Biveinis - - * configure.in: recognize DOS-style absolute paths. - -2000-11-29 Jakub Jelinek - - * expr.h (store_by_pieces): Add prototype. - (can_store_by_pieces): Likewise. - * expr.c (struct store_by_pieces): Renamed from clear_by_pieces. - (can_store_by_pieces): New. - (store_by_pieces): New. - (clear_by_pieces): New. - (clear_by_pieces_1): New. - (store_by_pieces_1): Renamed from clear_by_pieces, handle storing - arbitrary compiler generated constants into memory block. - (store_by_pieces_2): Renamed from clear_by_pieces_1, likewise. - * builtins.c (c_readstr): New. - (builtin_memcpy_read_str): New. - (expand_builtin_memcpy): If src is string constant and - emit_block_move would move it by pieces, compute integer constants - from the string and store it into memory block instead. - (builtin_strncpy_read_str): New. - (expand_builtin_strncpy): If N is not constant zero and c_strlen does - not return INTEGER_CST, don't optimize. - If N is larger than strlen(src) + 1, try to copy the string - including padding with store_by_pieces. - (expand_builtin_strcmp): If both arguments have side effects, don't - optimize. - (expand_builtin_fputs): If STR has side effects, don't optimize. - -2000-11-29 Richard Earnshaw - - * arm.md (sibcall, sibcall_value, sibcall_insn, sibcall_value_insn): - Add use of link register. - -2000-11-29 Joseph S. Myers - - * extend.texi: Update documentation for default format attributes. - -Tue Nov 28 21:56:45 2000 Jeffrey A Law (law@cygnus.com) - - * pa/pa-64.h (ASM_OUTPUT_SECTION_NAME): Use a hash table, not - a list, to keep track of the sections. - -2000-11-28 Nick Clifton - - * config/arm/arm.md (pic_load_addr): Split into - pic_load_addr_arm and pic_load_addr_thumb. - - * config/arm/arm.c (legitimize_pic_address): Generate either - ARM or Thumb versions of pic_load_addr. - (arm_finalize_pic): Generate either ARM or Thumb versions of - pic_load_addr. - -2000-11-28 Richard Henderson - - * calls.c (expand_call): Defer const/pure NO_DEFER_POP until - after sibcall do_pending_stack_adjust. - -Wed Nov 29 00:08:23 2000 J"orn Rennecke - - * jump.c (delete_insn): Check that REG_LABEL note actually contains - a CODE_LABEL. - -2000-11-28 Neil Booth - - * c-common.h: Remove flag_digraphs. - * c-decl.c: Remove flag_digraphs. - (c_decode_option): Don't set it. - * c-lex.c (init_c_lex): Don't do anything for digraphs. - -2000-11-28 Richard Henderson - - * c-parse.in (finish_parse): Update for parse_in type change. - (_yylex): Likewise. - -2000-11-28 Neil Booth - - * cppmacro.c (cpp_scan_buffer_nooutput): Take a boolean - indicating whether to scan all buffers on the stack or - just one. - * cppinit.c (do_includes): Update. - * cppmain.c (main): Update. - * cpplib.h: Update prototype. - -2000-11-28 Richard Henderson - - * genoutput.c (validate_insn_operands): New. - (gen_insn): Call it. - - * config/alpha/alpha.md (divmodsi_internal): Renumber operands. - (divmoddi_internal): Likewise. - * config/arm/arm.md (andsi3_compare0_scratch): Likewise. - * config/i960/i960.md (branch patterns): Likewise. - * config/ia64/ia64.md (tbit_and_0): Likewise. - (tbit_and_1, tbit_or_0, tbit_or_1): Likewise. - * config/m68k/m68k.md (zero_extract memory patterns): Likewise. - * config/mips/mips.md (divmodsi4_internal): Likewise. - (divmoddi4_internal): Likewise. - * config/rs6000/rs6000.md (call patterns): Likewise. - * config/sh/sh.md (movsi_y): Likewise. - * config/sparc/sparc.md: Comment out if 0 v8p shift pattern. - -2000-11-28 Richard Henderson - - * config.gcc: Kill residual pyramid support. - -2000-11-28 Neil Booth - - * c-lex.h (parse_in): Change parse_in to a cpp_reader *. - * c-decl.c (c_decode_option): Update to match. - * c-lex.c (init_c_lex, yyparse): Update to match. - * c-lang.c (lang_init_options): Use cpp_create_reader. - * cppinit.c (cpp_init): Rename initialize. - (cpp_reader_init): Rename cpp_create_reader. Create the - reader. Initialize cpplib if appropriate. - * cpplib.h (cpp_create_reader) New prototype. - (cpp_init, cpp_reader_init): Delete prototypes. - * cppmain.c (general_init, setup_callbacks): New functions. - (main): Use them. - * fix-header.c (scan_in): Change type to cpp_reader *. - (read_scan_file): Update for new cpplib interface and scan_in type. - - * cp/decl.c (parse_in): Change to cpp_reader *. - (lang_decode_option): Update. - * cp/lex.c (lang_init_options): Use new cpplib interface. - (init_cp_pragma, finish_parse, handle_pragma_implementation): Update. - * cp/spew.c (read_token): Update. - * objc/objc-act.c (lang_init_options): Update new cpplib interface. - -2000-11-28 Jakub Jelinek - - * loop.c (load_mems): Avoid using next_label to find end_label. If - jumping outside of the loop (other than loop end), don't hoist MEMs - out of loop. - -2000-11-28 Jan Hubicka - - * calls.c (expand_call): Don't disable tail recursion based - on the loop nest. - -2000-11-28 Neil Booth - - * tradcpp.c (enum node_type): New hash types T_ASSERT, T_UNASSERT. - (struct directive): Drop 4th argument from handlers. - (do_define, do_line, do_include, do_undef, do_else, do_elif, - do_endif): Similarly. - (do_assert, do_unassert, do_ifdef, do_ifndef): New handlers. - (do_ifxdef): Update as common handler of do_ifdef and do_ifndef. - (make_definition, make_undef): Take a const char*. - (make_assertion): New function. - (struct directive_table): Update. - (main): Handle -A command line argument. - (handle_directive): Drop fourth handler argument. - -2000-11-28 Bernd Schmidt - - * simplify-rtx.c (cselib_record_sets): Ignore sets whose destination - is anything but REG or MEM, but look inside STRICT_LOW_PART. - -Tue Nov 28 09:53:50 2000 Richard Kenner - - * system.h (IS_DIR_SEPARATOR): Use uppercase macro name. - (IS_ABSOLUTE_PATHNAME): New macro. - * gcc.c (find_a_file, process_command, do_spec_1, main): Use it. - -2000-11-28 Jakub Jelinek - - * config/i386/i386.md (truncxfsf2_2): Fix predicate. - -2000-11-27 Jim Wilson - - * reload1.c (reload): Use HOST_WIDE_INT for old_frame_size. - -2000-11-27 Matthias Klose - - * extend.texi (Nested Functions): Update URL of Usenix paper. - -2000-11-27 Mark Mitchell - - * function.c (free_after_compilation): Clear x_clobber_return_insn. - -2000-11-27 Neil Booth - - * cppinit.c (cpp_reader_init): Remove handling of warn_paste - command line options. - (cpp_handle_option): Similarly. - * cpplib.h (struct cpp_options): Remove warn_paste. - * cppmacro.c (paste_tokens): Apart from assembler, make - unpasteable token warning mandatory. - -2000-11-27 Neil Booth - - * tradcpp.c (enum pending_dir_t, struct pending_dir): New. - (main): Allocate a pending directive set of these. Use it. - Merge handling of -D and -U. Update handling of pending - directives. Free the memory after use. - -2000-11-27 Bernd Schmidt - - * flow.c (entry_exit_blocks): Add entry for cond_local_set. - (struct propagate_block_info): Add new member cond_local_set. - (propagate_block): Accept new arg cond_local_set. All callers - changed. - (init_propagate_block_info): Likewise. - (calculate_global_regs_live): Allocate & free cond_local_set. Always - rescan if there's overlap between cond_local_set and new_live_at_end. - (mark_set_1): Set bits either in cond_local_set or local_set, as - appropriate. - * basic-block.h (struct basic_block_def): New field cond_local_set. - (propagate_block, init_propagate_block_info): Update prototypes. - -Mon Nov 27 17:29:44 2000 kaz Kojima - - * gcc/config/sh/sh.md (udivsi3_i4, udivsi3_i4_single): Clobber - T register. - -2000-11-27 Richard Earnshaw - - * arm.c (select_dominance_cc_mode): Handle new way that combine - canonicalizes conditional compares. - (arm_select_cc_mode): Likewise. - * arm.md: Garbage collect some dead code. - (cmp_and, cmp_ior): New patterns. - (splitter for conditional move with inverted false): Use cond_exec - and handle unordered comparisons. - -Mon Nov 27 17:22:56 MET 2000 Jan Hubicka - - * i386.c (ix86_force_to_memory, ix86_free_from_memory): New. - * i386-protos.h (ix86_force_to_memory, ix86_free_from_memory): Declare - * i386.md (float?i?f, int/fp operations): Rewrite spliters to use - ix86_force_to_memory and ix86_free_from_memory. - -2000-11-27 Richard Earnshaw - - * arm.md (arm_adddi3, adddi_sesidi_di, adddi_zesidi_di, arm_addsi3, - arm_subsi3_insn, anddi_zesidi_di, arm_andsi3_insn, anddi_notdi_di, - anddi_notzesidi_di, anddi_notsesidi_di, arm_iorsi3, - one_cmpldi2): Merge with splitters to create define_insn_and_split - patterns. Remove redundant splits. - (peephole2 for add:SI of invalid immediate): New. - (peephole2 for minus:SI of invalid immediate): New. - (peephole2 for ior:SI of invalid immediate): New. - (peephole for merge of move and compare): Convert ot peephole2. - (addsf3, adddf3): Mark as commutative. - - * arm.md (thumb peephole for merging stack adjustments): Convert to - peephole2. - -2000-11-27 Bernd Schmidt - - * haifa-sched.c (print_pattern): Prettier output for COND_EXEC. - - * reload1.c (reload_cse_simplify_set): Pass down mode to cselib_lookup. - (reload_cse_simplify_operands): Do nothing about operands where both - the operand and the match_operand fail to give us a mode. - * simplify-rtx.c (wrap_constant): New function. - (entry_and_rtx_equal_p): Except integer constants to come wrapped in a - CONST describing the proper mode. - (rtx_equal_for_cselib_p): Pass down modes to recursive calls of - cselib_lookup. - (cselib_lookup_mem): Call wrap_constant on the rtx that is passed to - htab_find_slot_with_hash. - (cselib_lookup): Likewise. - - Based on a patch from Geoff Keating : - * loop.c (basic_induction_var): If a REG is set from something - that is not a biv, then the REG is not a biv. Even if it is - earlier set from something that is a biv. - -2000-11-27 Alexandre Oliva - - * configure.in (extra_objs): Enclose extra_headers in quotes. - * configure: Rebuilt. - -2000-11-27 Neil Booth - - * c-lex.c (cb_enter_file, cb_leave_file, cb_rename_file): - Combine into the new function cb_change_file. - (init_c_lex): Update. - * cppfiles.c (stack_include_file): Use _cpp_do_file_change. - (cpp_syshdr_flags): Delete. - * cpphash.h (_cpp_do_file_change): New prototype. - Move struct cpp_buffer here from... - * cpplib.h (struct cpp_buffer): ... here. - (enum cpp_fc_reason, struct cpp_file_loc, - struct_cpp_file_change, change_file): New. - (enter_file, leave_file, rename_file, cpp_syshdr_flags): Delete. - * cpplib.c (do_line): Update for new cb_change_file callback. - (_cpp_do_file_change): New function. - (_cpp_pop_buffer): Update to use it. - * cppmain.c (move_printer): Delete. - (main): Set up single callback cb_change_file. - (cb_enter_file, cb_leave_file, cb_rename_file): Delete. - (cb_change_file): New. - * fix-header.c (cur_file, cb_change_file): New. - (recognized_function, read_scan_file): Update. - * scan-decls.c (scan_decls): Update. - * scan.h (recognized_function): Update prototype. - -2000-11-26 Mark Mitchell - - * tree.h (mark_tree_hashtable): New function. - * tree.c (mark_tree_hashtable_entry): New function. - (mark_tree_hashtable): Likewise. - -2000-11-27 Michael Meissner - - * d30v-protos.h (srelational_si_operator): Correctly spell - function. - (urelational_si_operator): Ditto. - (relational_si_operator): Ditto. - (d30v_expand_prologue): Add prototype. - (d30v_expand_epilogue): Ditto. - - * d30v.h (OPTIMIZATION_OPTIONS): Undo November 22nd change. - - * d30v.md (movcccc_*): Delete now unused patterns. - (64 bit comparison splitters): Rewrite to use COND_EXEC instead of - IF_THEN_ELSE. - (define_cond_exec): Use 'b' to select branch flags. - -2000-11-26 Kaveh R. Ghazi - - * builtins.c (expand_builtin_strncmp, expand_builtin_strncpy): New - functions. - (expand_builtin): Handle BUILT_IN_STRNCPY and BUILT_IN_STRNCMP. - - * builtins.def (BUILT_IN_STRNCPY, BUILT_IN_STRNCMP): New entries. - - * c-common.c (c_common_nodes_and_builtins): Declare builtin - strncpy and strncmp. - - * extend.texi (strncmp, strncpy): Document new builtins. - -2000-11-26 Mark Mitchell - - * config/elfos.h (ASM_OUTPUT_SECTION_NAME): Use a hash table, not - a list, to keep track of the sections. - * tm.texi (ASM_OUTPUT_SECTION_NAME): Document the fact that the - parameter provided will always be a canonical string. - -2000-11-26 Neil Booth - - * cppmacro.c (cpp_scan_buffer_nooutput): Only scan the - current buffer. - -2000-11-26 Joseph S. Myers - - * makefile.vms: Remove EGCS references. - -2000-11-26 Ulrich Drepper - - * dwarf2out.c (output_file_names): New function. Compute minimal - combination of directory and file name table and emit them. - (output_line_info): Remove code to emit directory and file name - table and call output_file_names instead. - (file_info_cmp): Helper function to sort directory names. - -2000-11-26 Neil Booth - - * cpplib.h (struct cpp_reader): Remove lang_asm. - (struct cpp_options): Remove c89. New members lang, - extended_numbers. - * cppexp.c (parse_number): Use them. - * cpphash.h (VALID_SIGN): Use them. - * cppinit.c (set_lang, cpp_start_read): Update. - * cpplex.c (parse_string, _cpp_lex_token): Update. - * cpplib.c (_cpp_handle_directive): Update. - * cppmacro.c (parse_args): Update. - * cppmain.c (scan_buffer): Update. - -Sun Nov 26 10:02:37 2000 Richard Kenner - - * fold-const.c (fold, case CONVERT_EXPR): Always return tree of - proper type. - -2000-11-26 Neil Booth - - * Makefile.in: Remove MAYBE_CPPLIB and maybe_cpplib. - * c-decl.c: Remove parse_in declaration. - * c-lang.c: Similarly. - * c-lex.c: Similarly. - * c-parse.in: Similarly. - * c-pragma.c: Similarly. - * configure.in: Similarly. - * cp/Make-lang.in: Similarly. - * cp/spew.c: Similarly. - * cp/decl2.c: Remove check for lang-c++ option. - * cp/lang-specs.h: Remove -lang-c++ from cc1plus command line. - * cp/lex.c (lang_init_options): With cpp_reader_init, default to C++. - * c-lex.h: Add declaration of parse_in. - * cppinit.c: Call set_lang after allocating pfile->pending. - * configure: Regenerate. - -2000-11-25 Zack Weinberg - - * combine.c (try_combine): Remove redundant test. - -2000-11-25 Richard Henderson - - * c-common.h (DECL_C_HARD_REGISTER): New. - * c-decl.c (finish_decl): Set it for asm register variables. - * c-semantics.c (emit_local_var): Test it when instantiating one. - -2000-11-25 Richard Henderson - - * c-decl.c (c_expand_body): Use DECL_SOURCE_LINE rather than - lineno for the start of the function. - -2000-11-25 Richard Henderson - - * dwarf2out.c (file_table, file_table_allocated): Remove. - (file_table_allocated): Remove. - (struct file_table): New. - (decl_file_table, line_file_table): New. - (print_dwarf_line_table): Use them. - (size_of_line_prolog): Likewise. - (output_line_info): Likewise. - (add_src_coords_attributes): Likewise. - (gen_subprogram_die): Likewise. - (gen_variable_die): Likewise. - (dwarf2out_add_library_unit_info): Likewise. - (dwarf2out_line): Likewise. - (lookup_filename): Take a struct file_table argument. - (init_file_table): New. - (dwarf2out_init): Use it. - -2000-11-25 Joseph S. Myers - - * invoke.texi: Update sequence points references. - -2000-11-25 Neil Booth - - * c-common.c: Remove USE_CPPLIB conditional inclusions. - * c-common.h: Similarly. - * c-decl.c: Similarly. - * c-lang.c: Similarly. - * c-lex.c: Similarly. - * c-parse.in: Similarly. - * c-pragma.c: Similarly. - * c-pragma.h: Similarly. - * gcc.c: Similarly. - * toplev.c: Similarly. - * cp/cp-tree.h: Similarly. - * cp/decl2.c: Similarly. - * cp/lang-specs.h: Similarly. - * cp/lex.c: Similarly. - * cp/lex.h: Similarly. - * cp/spew.c: Similarly. - * java/lang-options.h: Similarly. - * objc/lang-specs.h: Similarly. - * objc/objc-act.c: Similarly. - - * configure.in: Remove configure option. - * config.in: Regenerate. - * configure: Regenerate. - -2000-11-25 Richard Henderson - - * haifa-sched.c (sched_analyze_1, sched_analyze_2, sched_analyze): - Revert 2000-11-22 change. - -2000-11-25 Bernd Schmidt - - * config/i386/i386.h (FIXED_REGS): Make the three flags registers - fixed. - -2000-11-25 Philipp Thomas - * configure.in (ALL_LINGUAS): Remove en_GB and add sv. - * configure: Rebuilt. - -2000-11-25 Jakub Jelinek - - * config/sparc/sparc.md (muldi3_v8plus): Remove H constraint. - Handle CONST_INT as second argument. - * config/sparc/sparc.c (set_extends): Remove first argument. - Properly handle AND, CONST_INT and CONST_DOUBLE, handle IOR, XOR and - MOV. - (sparc_check_64): Abort if first argument is not REG. - If it is DImode REG, look at the lower register of the register - pair. - - * config/sparc/sparc.c (load_pic_register, restore_regs, - output_return, sparc_v8plus_shift, sparc_function_profiler, - sparc_function_block_profiler, sparc_block_profiler): Fix output - formatting. - -2000-11-25 Alexandre Oliva - - * config/sh/sh.h (TARGET_NONE): New. - (TARGET_SWITCHES): For all variant-selecting switch, use - TARGET_NONE to reset all other variant-selecting switch. Added - empty strings to avoid warnings. - (TARGET_DEFAULT): Set to SH1_BIT. - - * Makefile.in ($(INTL_TARGETS)): Added $(CONFIG_H) for - insn-codes.h. - - * gcc/config/sh/sh.md (sibcalli, sibcalli_pcrel): New insns. - (sibcall_pcrel): New insn_and_split. - (sibcall, sibcall_value, sibcall_epilogue): New expands. - - * config/sh/sh.md (GOTaddr2picreg, symGOT2reg, symGOTOFF2reg, - symPLT_label2reg, call, call_value): Don't set - current_function_uses_pic_offset_table. - * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Don't mark - PIC_OFFSET_TABLE_REGNUM as call_used, so that calc_live_regs - takes it into account. - (FINALIZE_PIC): Delete, useless. - (LEGITIMATE_CONSTANT_P): Delete, unused. - * config/sh/sh.c (sh_expand_prologue): Don't use - current_function_uses_pic_offset_table. Don't special-case - PIC_OFFSET_TABLE_REGNUM. Initialize it if it's ever live and - PIC is enabled. - (sh_expand_epilogue, initial_elimination_offset): Don't - special case PIC_OFFSET_TABLE_REGNUM. - -2000-11-25 Alexandre Oliva , NIIBE Yutaka - - * config/sh/sh-protos.h (symbol_ref_operand): Declare. - * config/sh/sh.md (UNSPEC_CALLER): New constant. - (calli_pcrel, call_valuei_pcrel): Use PIC_REG. - (call_pcrel, call_value_pcrel): New insn_and_splits. - (call, call_value): Use them. - (call_site): New expand. - (sym_label2reg, symPLT_label2reg): Adjust to hold call_sites. - * config/sh/sh.h (OUTPUT_ADDR_CONST_EXTRA) [UNSPEC_CALLER]: - Output call_site label. - (PREDICATE_CODES): Added symbol_ref_operand. - * config/sh/sh.c (symbol_ref_operand): Define. - * emit-rtl.c (try_split): Propagate CALL_INSN_FUNCTION_USAGE - to CALL_INSNs in the split sequence. - -2000-11-24 Nick Clifton - - * config.gcc (v850-*-*): Define c_target_objs and - cxx_target_objs. - - * config/v850/t-v850: Define how to build v850-c.o - - * config/v850/v850.h (struct data_area_stack_element): Move - definition here from v850.c. - - * config/v850v850.c: Include gcc.h to avoid compile time - warning. - (push_data_area): Move to v850-c.c. - (pop_data_area): Move to v850-c.c. - (mark_current_function_as_interrupt): Move to v850-c.c. - (GHS_default_section_names): Allow to be exported. - (GHS_current_section_names): Allow to be exported. - (data_area_stack_elements): Allow to be exported. - (ghs_pragma_section): Move to v850-c.c. - (ghs_pragma_interrupt): Move to v850-c.c. - (ghs_pragma_starttda): Move to v850-c.c. - (ghs_pragma_startsda): Move to v850-c.c. - (ghs_pragma_startzda): Move to v850-c.c. - (ghs_pragma_endtda): Move to v850-c.c. - (ghs_pragma_endsda): Move to v850-c.c. - (ghs_pragma_endzda): Move to v850-c.c. - - * config/v850/v850-c.c: New file: Contains v850 specific - pragma parsing functions. - -2000-11-24 Nick Clifton - - * config.gcc (extra_objs): Remove duplicate description. - (c_target_objs): New variable. Contains target specific - object files for the gcc C compiler only. - (cxx_target_objs): New variable. Contains target specific - object files for the gxx C++ compiler only. - - * configure.in (c_target_objs): Substitute in the makefile. - (cxx_target_objs): Substitute in the makefile. - * configure: Regenerate. - - * Makefile.in (C_TARGET_OBJS): Define and initialize from - c_target_objs. - (CXX_TARGET_OBJS): Define and initialize from - cxx_target_objs. - (C_AND_OBJC_OBJS): Include C_TARGET_OBJS. - - * cp/Make-lang.in (CXX_C_OBJS): Include CXX_TARGET_OBJS). - - * tm.texi (REGISTER_TARGET_PRAGMAS): Add paragraph explaining - about how the use of the 'c_lex' function requires the use of - the target specific, language specific object files feature of - the configuration mechanism. - -Fri Nov 24 18:50:58 2000 Richard Kenner - - * gcc.c (process_command): Use F_OK, not R_OK. - -2000-11-24 Arno J. Klaassen - - * flow.c (print_rtl_and_abort): Remove ANSIism. - -Fri Nov 24 19:54:36 2000 Alexandre Oliva - - * config/sh/sh.h (GENERAL_REGISTER_P, - GENERAL_OR_AP_REGISTER_P, FP_REGISTER_P, XD_REGISTER_P, - FP_OR_XD_REGISTER_P, FP_ANY_REGISTER_P): New macros. Use them - all over. - (SPECIAL_REG): Renamed to SPECIAL_REGISTER_P. - * config/sh/sh.c: Use new macros. - * config/sh/sh.md: Likewise. - -Fri Nov 24 19:46:16 2000 Alexandre Oliva - - * config/sh/sh.md: Clobber MACH_REG and MACL_REG in SImode, - instead of just MACH_REG in DImode. Always refer to FPSCR_REG - in PSImode. - -Fri Nov 24 22:37:41 2000 Denis Chertykov - - * config/avr/avr.c (out_tsthi,out_tstsi): Test simplification bug - fixed. - (machine_dependent_reorg): Wrong optimization based on - NOTICE_UPDATE_CC removed. - -Fri Nov 24 19:48:09 2000 J"orn Rennecke - - * jump.c (delete_computation): Re-instate deletion of feeding insn. - (delete_insn): Look for REG_LABEL notes. - (redirect_tablejump): Delete feeding insns. - -2000-11-24 Bernd Schmidt - - * config/i386/i386.md (call_pop_0, call_pop_1, call_value_pop_0, - call_value_pop_1): Make sure operand numbers are contiguous. - - * fold-const.c (fold_range_test): Avoid crash if LHS or RHS is null. - - * reload1.c (conflicts_with_override): New function. - (emit_input_reload_insns): Use it to tighten test for validity - of substituting into output of previous insn. - - * haifa-sched.c (struct ready_list): New. - (ready_lastpos, ready_add, ready_remove_first, ready_sort): New static - functions. - (schedule_insn): Replace args READY and N_READY with a pointer to a - ready_list; return void. Use the new functions to access the ready - list. All callers changed. - (queue_to_ready, debug_ready_list): Likewise. - (schedule_block): Initialize a ready_list structure. Use new - functions to access it. - (max_priority): Remove unused variable. - (schedule_insn): Don't set it. - - * c-common.c (verify_tree): Don't recurse into CONSTRUCTORs. - - * combine.c (cant_combine_insn_p): New function. - (try_combine): Use it. - - * Makefile.in (c-common.o): Depend on $(OBSTACK_H). - * c-common.c (c-obstack.c): Include "obstack.h". - (struct reverse_tree): Delete. - (reverse_list, reverse_max_depth): Delete. - (build_reverse_tree, common_ancestor, modify_ok): Delete functions. - (struct tlist, struct tlist_cache): New. - (tlist_obstack, tlist_firstobj, warned_ids, save_expr_cache): New. - (add_tlist, merge_tlist, verify_tree, warning_candidate_p, - warn_for_collisions, warn_for_collisions_1, new_tlist): New - static functions. - (verify_sequence_points): Rewritten. - * fold-const.c (fold): Don't lose possibly important sequence - points when removing one arm of TRUTH_ORIF_EXPRs or TRUTH_ANDIF_EXPRs. - -2000-11-24 Richard Sandiford - - * gcc/cse.c (cse_insn): Removed conversion of REG_EQUIV to REG_EQUAL - when reversing a register-to-register copy. Reversal now disabled - when the previous instruction has a REG_EQUIV. - -2000-11-24 Nathan Sidwell - - * c-parse.in (unary_expr): Move VA_ARG from here ... - (primary): ... to here. - -2000-11-23 Graham Stott - - * expr.c (store_constructor): If a field is non addressable and - the target is a MEM use MEM_ALIAS_SET otherwise use get_alias_set. - -2000-11-23 Bernd Schmidt - - * flow.c (print_rtl_and_abort): New function. - (verify_wide_reg, verify_local_live_at_start): Try to dump more - information before aborting. - -2000-11-23 Alexandre Oliva - - * emit-rtl.c (gen_lowpart_common): Use word 0 if register mode - is narrower than requested mode. - (gen_highpart): Abort if register mode is narrower than - requested mode. - -2000-11-23 Graham Stott - - * cse.c (cse_insn): Initialize all regcost variables. - Fix a typo add missing '='. - Only compare costs if there is a replacement insn. - -Thu Nov 23 04:33:33 2000 Alexandre Oliva - - * final.c (output_addr_const) [LABEL_REF]: Simplify. - [MINUS]: Enclose non-CONST_INTs in parentheses. - [default]: Try OUTPUT_ADDR_CONST_EXTRA. - * tm.texi (OUTPUT_ADDR_CONST_EXTRA): Document it. - * varasm.c (decode_rtx_const) [CONST]: If it's not something - PLUS or MINUS a CONST_INT, use the whole CONST with offset 0 - instead of abort()ing. - * sh.c (output_pic_addr_const): Removed. Fixed all callers. - * sh.h (OUTPUT_ADDR_CONST_EXTRA): New. Handle the UNSPECs - formerly handled in output_pic_addr_const. - * sh.md (sym_label2reg, symPLT_label2reg): Enclose UNSPEC - operands of MINUS in CONSTs so that decode_rtx_const() will - accept them. - -Thu Nov 23 04:10:30 2000 Alexandre Oliva - - * config/sh/sh.md (mova_const): New pattern. - (GOTaddr2picreg): Use it. - * config/sh/sh.c (broken_move): Match it. - (mova_p): Don't match it. - (machine_dependent_reorg): Adjust it. - -Thu Nov 23 02:09:09 2000 Alexandre Oliva - - * config/sh/sh.h (FIRST_GENERAL_REG, LAST_GENERAL_REG): New. - Moved most register-number #defines... - * config/sh/sh.md (define_constants): ... here. Use macros to - refer to registers and unspecs. - * config/sh/sh.c: Likewise. - -Thu Nov 23 01:01:32 2000 J"orn Rennecke - - * Makefile.in (HOST_CFLAGS): Add -DGENERATOR_FILE. - (rtl.o, print-rtl.o, bitmap.o, obstack.o): Build with -DGENERATOR_FILE. - (alloca.o, vfprintf.o, ggc-none.o, errors.o): Likewise. - (splay-tree.o, hash.o): Likewise. - GCONFIG_H: New. - (rtl.o, print-rtl.o): Depend on $(GCONFIG_H) instead of $(CONFIG_H). - (bitmap.o, obstack.o, vfprintf.o, ggc-none.o, errors.o): Likewise. - (hashtab.o): Likewise. - (gcov.o): Depend on $(CONFIG_H). - * configure.in: #include insn-codes.h in tm.h. - -2000-11-22 Nick Clifton - - * config/arm/arm.c (arm_encode_call_attribute): Make 'newstr' a - const char * to avoid a compile time warning. - - * config/arm/arm.md (define_constants): Define symbolic names for - the link register, last integer register and the fake CC register. - Update patterns to use these symbolic names. - -2000-11-22 Neil Booth - - * cpplex.c (trigraph_ok): Ensure we don't warn twice. - * cpplib.h (struct cpp_buffer): New member last_Wtrigraphs. - -2000-11-22 Richard Henderson - - * haifa-sched.c (sched_analyze_1): Don't special-case calls - for clobbering registers. - (sched_analyze_2): Likewise. - (sched_analyze): Zap reg_last_uses and reg_last_sets after calls. - -2000-11-22 Chris Demetriou - Neil Booth - - * gcc.c (validate_switches): Validate multiple switches named - in '|' (or) expressions in specs. - (handle_braces): If more than 1 alternative in a '|' spec - matches, call do_spec1 just once. - -2000-11-22 Michael Meissner - - * d30v.h (TARGET_SWITCHES): Add documentation strings. - (TARGET_OPTIONS): Ditto. - (OPTIMIZATION_OPTIONS): Temporarily turn off -frename-registers if - -O3. - -Wed Nov 22 06:40:56 2000 Jeffrey A Law (law@cygnus.com) - - * pa.c (hppa_encode_label): Account for addition of encoding - character when allocating persistent space for the new label - name. - -2000-11-22 Zack Weinberg - - * Makefile.in, config.gcc, configure.in: Expunge remaining - traces of facility for running MD files through C preprocessor. - -2000-11-22 Joseph S. Myers - - * gcov.texi: Add magic comments for texi2pod.pl. - * Makefile.in: Add rules to generate and install gcov.1. - * gcov.1: New (generated) file. - -2000-11-21 Richard Henderson - - * regrename.c (scan_rtx_reg): Terminate the chain rather than - abort on mark_read with NO_REGS. - -2000-11-21 Mike Stump - - * fixinc/fixtests.c (TEST_FOR_FIX_PROC_HEAD): Fix to allow - compilation with older compilers, such as /bin/cc on SunOS. - * fixinc/fixfixes.c (FIX_PROC_HEAD): Ditto. - -2000-11-21 Richard Henderson - - * varasm.c (record_constant): Pad the constructed - constant_descriptor appropriately. - -Wed Nov 22 00:52:55 2000 J"orn Rennecke - - * rtl.h (traverse_md_constants): Declare. - (struct md_constant): Define. - * Makefile.in (HOST_RTL): Add hashtab.o . - (OBJS): Add hashtab.o . - (hashtab.o): New rule. - (rtl.o): Depends on HASHTAB_H. - * rtl.c (hashtab.h): #include. - (md_constants): New static variable. - (def_hash, def_name_eq_p, read_constants): New static functions. - (traverse_md_constants): New function. - (read_name): Do constant expansion. - (read_rtx): Recognize define_constants. - * gencodes.c (print_md_constant): New function. - (main): Emit #defines for all constant definitions encountered. - * md.texi (Constant Definitions): New node. - * gensupport.c (xcalloc): New function. - -2000-11-21 Richard Henderson - - * config/alpha/alpha.c (alpha_split_tfmode_frobsign): New. - * config/alpha/alpha-protos.h: Declare it. - * config/alpha/alpha.md (abstf_internal): Use it. - (negtf_internal): Likewise. - (andnotdi3): Unstar the name. - (movtf_internal): Add o/G alternative. - -2000-11-21 Zack Weinberg - - * stringpool.c (stringpool_statistics): Also report number and - percentage of entries which are identifiers. - -2000-11-21 Diego Novillo - - * gcse.c (hoist_expr_reaches_here_p): Do not mark expr_bb as - visited before visiting it. - -2000-11-21 Nick Clifton - - * config/arm/arm.h: Accept TARGET_CPU_arm9tdmi, - TARGET_CPU_strongarm110 and TARGET_SPU_strongarm1100. - - * config.gcc: Accept --with-cpu=arm9 and --with-cpu=arm9tdmi. - -2000-11-21 Richard Henderson - - * c-common.c (c_unsafe_for_reeval): New function. - (add_c_tree_codes): Register it. - * c-common.h: Declare it. - * tree.c (lang_unsafe_for_reeval): New hook. - (unsafe_for_reeval): Call it. - * tree.h: Declare it. - -2000-11-21 Richard Henderson - - * config/i386/i386.c (i386_simplify_dwarf_addr): Simplify @GOT - references as well. - -2000-11-21 Neil Booth - - * do_includes: Revert to using cpp_read_file. - -2000-11-21 Bernd Schmidt - - * loop.c (consec_sets_giv): If the reg we're examining is anything - but UNKNOWN_INDUCT, do nothing. - Reset the reg's type to UNKNOWN_INDUCT before returning. - - Mostly from Vladimir Makarov (vmakarov@redhat.com) - * ia64.md (attr itanium_class): Define insn types as described in - Itanium docs. - (all insn patterns): Use itanium_class, not type attributes. - Occasionally split alternatives as necessary. - (attr type): Compute from new attr itanium_class. - -2000-11-21 Kaveh R. Ghazi - - * tradcpp.c (output_line_command): Mark system headers as such in - `line' commands. - -2000-11-21 Jakub Jelinek - - * configure.in (HAVE_AS_DWARF2_DEBUG_LINE): SPARC has .file/.loc - support in as as well. - * configure: Regenerate. - -2000-11-20 Richard Henderson - - * c-lex.c (orig_filename): New variable. - (init_c_lex): Set it. Move call to cpp_start_read ... - (yyparse): ... here. New function. - * c-parse.in (yyparse_1): Rename the parser entry point. - * c-tree.h: Declare it. - -2000-11-21 Jakub Jelinek - - * expr.c (do_compare_and_jump): If op0 was replaced by promoted - integer constant, use type of op1 for comparison. - -2000-11-20 Stan Shebs - - * config/rs6000/xm-darwin.h: New file, Darwin host definitions. - * config/rs6000/x-darwin: New file, Darwin host fragment. - * config.gcc (powerpc-*-darwin*): New host. - * system.h (HAVE_DESIGNATED_INITIALIZERS): Allow this to be - overridden by a config file. - -2000-11-20 Neil Booth - - * cppmacro.c (paste_tokens): Rename from paste_payloads. - Change token type after pasting spellings. - (paste_all_tokens): Use it. - * gcc.dg/cpp/paste2.c: Update test. - * objc/execute/paste.m: New test. - -2000-11-20 Richard Henderson - - * dwarf.h (FMT_CODE): Adjust argument order; fix mapping to - dwarf_subscr_data_formats bits. - * dwarfout.c (simple_type_size_in_bits): Handle a type with - no computed size as size zero. - (field_byte_offset): Likewise. - (subscript_data_attribute): Handle a range with no upper bound. - -2000-11-20 Kaveh R. Ghazi - - * gansidecl.h (const): Check __STDC__ before undef'ing `const'. - -2000-11-20 Joseph S. Myers - - * c-typeck.c (build_conditional_expr): When merging type - qualifiers for conditional expressions between a pointer and a - pointer to a void type, merge the qualifiers on the target types - rather than the pointer type. Remove obsolete conditioned out - code. - -2000-11-20 Neil Booth - - * c-lang.c (lang_init_options): Update call to - cpp_reader_init. - * cppmain.c (main): Similarly. - * fix-header.c (read_scan_file): Similarly. - * cp/lex.c (lang_init_options): Similarly. - * objc/objc-act.c (lang_init_options): Similarly. - * cppexp.c (parse_number): Only warn for unextended C89. - * cppinit.c (set_lang): New function. - (cpp_reader_init): Take a LANG argument and pass it to set_lang. - (COMMAND_LINE_OPTIONS): New option std=c++98. - (cpp_handle_option): Use set_lang. - * cpplex.c (_cpp_lex_token): Warn pedantically if not C99. - * cppib.h (enum_c_lang): New enumeration. Update comments. - -2000-11-20 Will Cohen - - * calls.c (expand_call): Clear target only when target is in - hard register and current_function_check_memory_usage is set. - -2000-11-20 Bernd Schmidt - - * toplev.c (rest_of_compilation): Run optimize_mode_switching even - if not optimizing. - * sh.c (emit_sf_insn, emit_df_insn): Just call emit_insn. - -2000-11-19 Richard Henderson - - * crtstuff.c (force_to_data): Use array size 1 not 0. - - * dwarf2out.c (simple_type_size_in_bits): Handle a type with - no computed size as size zero. - (field_byte_offset): Likewise. - -2000-11-20 Joseph S. Myers - - * config.gcc: Fix another typo. - -2000-11-19 Richard Henderson - - * c-decl.c (grokdeclarator): Support flexible array members. - Use open-ended ranges for these and zero-length arrays. - * c-typeck.c (push_init_level): Validate the context of - initialization of a zero-length array. - * tree.c (int_fits_type_p): Be prepared for missing bounds. - * varasm.c (array_size_for_constructor): New. - (output_constructor): Use it for arrays of unspecified length. - * extend.texi (Zero Length): Mention C99 flexible array members. - Document initialization in a top-level struct as valid. - -2000-11-19 Joseph S. Myers - - * config.gcc, invoke.texi: Fix errors in spelling of "deprecated". - - * alias.c (mems_in_disjoint_alias_sets_p): Do use alias sets in - stdarg and varargs functions. - -2000-11-19 Zack Weinberg - - * gcc.c (process_command): Define 'j' variable when - MODIFY_TARGET_NAME is defined. - -2000-11-19 Richard Henderson - - * stor-layout.c (variable_size): Only put SAVE_EXPRs on pending_sizes. - -2000-11-19 Franz Sirl - - * rs6000/rs6000.c (rs6000_encode_section_info): Fix string length - calculation and allocation. - -2000-11-19 Kaveh R. Ghazi - - * builtins.c (c_getstr): Constify variable. - * gmon-sol2.c (_mcleanup): Comment out #endif labels. - * conflict.c (const_conflict_graph_arc): New typedef. - (arc_hash, arc_eq): Avoid needlessly casting away const-ness. - * cppmacro.c (builtin_macro): Likewise. - * dwarf2out.c (output_comp_unit): Constify variable. - * fix-header.c (v_fatal): Add ATTRIBUTE_PRINTF. - * protoize.c (IS_SAME_PATH_CHAR): Use TOUPPER, not toupper. - * ssa.c (ssa_rename_from_hash_function): Avoid needlessly casting - away const-ness. - * tradcpp.c (rescan, do_line, macroexpand, macarg): Use - ISALNUM/ISDIGIT/ISPRINT, not isalnum/isdigit/isprint. - * varasm.c (const_str_htab_hash, const_str_htab_eq, - compare_constant_1, record_constant_1): Constify. - -2000-11-18 Richard Henderson - - * c-decl.c (grokdeclarator): Special case the creation of an - index for a zero-length array. - * tree.c (build_index_type): Revert Oct 20 change. - -2000-11-18 Marek Michalkiewicz - - * config/avr/avr-protos.h (avr_output_addr_vec_elt): Prototype. - * config/avr/avr.c (jump_tables_size): New variable. - (function_prologue): Initialize it as 0. - (function_epilogue): Add it to function_size. - (avr_output_addr_vec_elt): New function. Count words in jump - tables in jump_tables_size. Move code ... - * config/avr/avr.h (ASM_OUTPUT_ADDR_VEC_ELT): ... from here. - Call avr_output_addr_vec_elt instead. - * config/avr/avr.md (tablejump): Remove disabled define_expand. - -2000-11-18 Mark Mitchell - - * configure.in: Make --enable-new-gxx-abi the default. - * configure: Likewise. - -2000-11-18 Kaveh R. Ghazi - - * Makefile.in (tradcpp.o, tradcif.o): Depend on tradcpp.h. - - * tradcif.y: Include tradcpp.h. Constify. Make functions static. - Move extern function declarations to tradcpp.h. - - * tradcpp.c: Likewise. - - * tradcpp.h: New file. - -2000-11-18 Joseph S. Myers - - * c-decl.c (check_for_loop_decls): New function. - * c-parse.in (for_init_stmt): New. - (select_or_iter_stmt): Use for_init_stmt. - * c-tree.h (check_for_loop_decls): New declaration. - -2000-11-18 Neil Booth - - * cppinit.c: Update comments. - (cpp_reader_init): Make -imacro and -include use the standard - #include "" search path. - (do_includes): New function. - -2000-11-18 Ben Elliston - - * config/sh/crt1.asm (start_l): Move PC-relative move instruction - out of a branch delay slot. - -2000-11-17 Richard Henderson - - * config/alpha/elf.h (PREFERRED_DEBUGGING_TYPE): Set to DWARF2_DEBUG. - (ASM_SPEC): Disable and enable .mdebug based on -gstabs. - (ASM_FILE_START): Only write out ecoff .file directive if - emitting mdebug debugging. - -2000-11-17 Richard Henderson - - * configure.in (HAVE_AS_DWARF2_DEBUG_LINE): New. Detect - whether as accepts .file/.loc and produces dwarf2 line info. - * dwarf2out.c (DWARF2_ASM_LINE_DEBUG_INFO): Default on if - the assembler supports it. - * config.in, configure: Regenerate. - -2000-11-17 Richard Henderson - - * fixinc/mkfixinc.sh: Don't disable fixincludes for any linux*. - -2000-11-17 Jim Wilson - - * config/ia64/ia64.c (emit_insn_group_barriers, case CALL_INSN): - Don't clear need_barrier is next_insn is a CALL_INSN, or has - instruction type B or UNKNOWN. - -2000-11-17 Neil Booth - - * cpperror.c (print_file_and_line): Don't display line number if 0. - -2000-11-17 Zack Weinberg - - * ggc.h: Delete ggc_add_string_root and ggc_mark_string. Add - digit_vector and digit_string. - * stringpool.c (digit_vector): New. - (ggc_alloc_string): Use digit_string. - - * stmt.c (digit_strings): Delete. - (init_stmt): Do not initialize digit_strings. - (expand_asm_operands): Use ggc.h's digit_string macro. - * toplev.c (mark_file_stack): Delete. - (compile_file): Don't call init_tree_codes. - (main): No need to make the file stack a GC root. - * tree.c (init_tree_codes): Delete. - * tree.h (init_tree_codes): Delete. - - * c-lex.c: Don't include ggc.h. - (mark_splay_tree_node, mark_splay_tree): Delete. - (init_c_lex): No need to ggc_strdup string constant. Don't add - file_info_tree to GGC roots. - (cb_enter_file, cb_rename_file): No need to ggc_strdup - ip->nominal_fname. - - * Makefile.in (c-lex.o): No longer depends on $(GGC_H). - - * dbxout.c (dbxout_init), - dwarf2out.c (dwarf2out_line), - ggc-common.c (ggc_mark_rtx_children, ggc_mark_trees), - varasm.c (mark_const_hash_entry, mark_pool_constant, init_varasm_once), - xcoffout.c (xcoffout_source_file), - i386.c (load_pic_register): - Delete call(s) to ggc_add_string_root and/or ggc_mark_string. - - * except.c (create_rethrow_ref), - profile.c (init_edge_profiler), - toplev.c (compile_file), - varasm.c (named_section, assemble_static_space, - assemble_trampoline_template, output_constant_def, force_const_mem), - i386.c (load_pic_register), - ia64.c (ia64_encode_section_info), - rs6000.c (rs6000_emit_load_toc_table, create_TOC_reference, - rs6000_emit_prologue, rs6000_emit_epilogue), - rs6000.md (load_toc_aix_si, load_toc_aix_di): - Change ggc_alloc_string (var, -1) to ggc_strdup (var). - - * profile.c (output_func_start_profiler), - tree.c (make_node), - i386.c (load_pic_register): No need to ggc_strdup string constant. - -2000-11-17 Hans-Peter Nilsson - - * Makefile.in (config.status): Depend on config.gcc. - * configure.in : Move - contents of loop into config.gcc, removing autoconf quoting. - Fix changequote bug for alpha*-*-vxworks*. - * configure: Regenerate. - * config.gcc: New. - -2000-11-16 Zack Weinberg - - * c-parse.in (if_prefix): Find the filename and line number at - $-2 and $-1 respectively. - * diagnostic.c (error_recursion): Add missing newline, use - fputs, translate string. - -2000-11-16 Zack Weinberg - - * stringpool.c: New file. - * ggc-common.c (ggc_mark_string_ptr, ggc_add_string_root): Delete. - (ggc_alloc_string): Now in stringpool.o. - * ggc-page.c, ggc-simple.c: Do not define or allocate empty_string. - * ggc.h: Delete prototype of ggc_add_string_root. #define - ggc_add_string_root and ggc_mark_string to nothing. Prototype - init_stringpool and stringpool_statistics. - (ggc_alloc_string): Returns a const char *. - * tree.c (hash_table, do_identifier_warnings): Delete. - (init_obstacks): Don't initialize the identifier hash table. - (get_identifier, maybe_get_identifier, start_identifier_warnings, - set_identifier_size): Now in stringpool.c. - * tree.h (struct tree_string): Constify pointer field. - (approx_sqrt): Prototype. - - * Makefile.in (stringpool.o): Add rule, mention in OBJS. - - * toplev.c (approx_sqrt): New function. - (compile_file): Call stringpool_statistics if mem_report is on. - (main): Call init_stringpool. - - * builtins.c (c_strlen), c-decl.c (finish_decl), c-lex.c - (process_directive), c-typeck.c (constructor_asmspec, struct - initializer_stack, start_init), except.c (create_rethrow_ref), - stmt.c (digit_strings), toplev.c (decode_f_option), tree.c - (built_in_filename), varasm,c (in_named_name, - assemble_static_space, struct constant_descriptor, struct - deferred_string, struct pool_constant, force_const_mem), - i386.c (pic_label_name, global_offset_table_name), rs6000.c - (rs6000_emit_prologue, rs6000_emit_epilogue) : Constify a char *. - - * c-common.c (combine_strings): Combine strings in scratch - buffer, then pass to build_string. - * optabs.c (init_libfuncs), profile.c (init_edge_profiler, - output_func_start_profiler), stmt.c (init_stmt), alpha.c - (alpha_need_linkage), arm.c (arm_encode_call_attribute), - i386.c (load_pic_register), ia64.c (ia64_encode_section_info), - rs6000.c (rs6000_encode_section_info): Create string in - scratch buffer, then pass to ggc_alloc_string. - - * stmt.c (expand_asm_operands): If we must adjust the - constraint strings, do so by creating a new one, not by - modifying the old one in place. Constify some char *s. - * config/pa/pa.c (hppa_encode_label): Drop unnecessary second - argument. Create string in scratch buffer, then pass to - ggc_alloc_string. - * config/pa/pa-protos.h: Update prototype. - * config/pa/elf.h, config/pa/pa.h, config/pa/som.h: - hppa_encode_label takes only one argument. - -2000-11-16 Kaveh R. Ghazi - - * mcore.c (mcore_expand_prolog): Call xmalloc/xrealloc, not - malloc/realloc. - - * cpplib.c (glue_header_name): Likewise. - - * fixincl.c (run_compiles, start_fixer): Likewise. - - * fixlib.c (load_file_data): Likewise. - - * mkdeps.c (munge): Likewise. - -2000-11-17 Hans-Peter Nilsson - - * defaults.h [EH_FRAME_SECTION_ASM_OP] (EH_FRAME_SECTION): Remove - trailing ';'. Fix formatting. - -2000-11-16 Jim Wilson - - * config/ia64/ia64.h (MASK_INLINE_DIV_LAT, MASK_INLINE_DIV_THR): - Shift masks left by one to avoid conflict. - - * config/ia64/ia64.c (ia64_encode_section_info): Disallow decls with - DECL_EXTERNAL set. - -2000-11-16 Nick Clifton - - * config/arm/arm.c (output_arm_prologue): Note nested functions. - (arm_expand_prologue): For nested functions preserve the - static chain register during stack frame creation. - - * config/arm/arm.h (STATIC_CHAIN_REGNUM): Change to 12. - (ARM_INITIAL_FRAME_ELIMINATION_OFFSET): For a nested function - with a stack frame there is a 4 byte gap between the arg - pointer and the hard frame pointer (used to preserve the - static chain register during stack frame creation). - -2000-11-16 DJ Delorie - - * rtl.c (read_rtx): Provide suitable names for unnamed - define_insn and define_insn_and_split patterns, based on file - and line numbers. - -2000-11-15 Neil Booth - - * cpplib.c (start_directive, end_directive): New functions. - (_cpp_handle_directive, run_directive): Use them. - (_cpp_handle_directive): Don't -Wtraditional on indented - null directives. - (_cpp_push_buffer): Don't re-clear was_skipping. - * cpplib.h (struct cpp_reader): New member la_saved. - * cppmacro.c (cpp_get_token): Don't interpret _Pragma in - directives. - - gcc.dg/cpp/_Pragma1.c: Update. - gcc.dg/cpp/_Pragma2.c: New test. - -2000-11-15 Mark Mitchell - - * toplev.c (wrapup_global_declarations): Don't write out - artificial static variables that aren't needed. - -2000-11-15 Bernd Schmidt - - * ia64.c (struct group): New structure. - (last_group): New static array. - (group_idx): New static variable. - (emit_group_barrier_after, errata_find_address_regs, errata_emit_nops): - New static functions. - (emit_insn_group_barriers): Initialize and keep track of group_idx - and last_group. - Call errata_emit_nops if TARGET_B_STEP or TARGET_A_STEP. - Replace all calls to emit_insn_after that emit a group barrier to use - emit_group_barrier_after. - * ia64.h (MASK_B_STEP): New. - (other MASK_XXX macros): Renumbered. - (TARGET_B_STEP): New. - (TARGET_SWITCHES): Add -mb-step. - -2000-11-15 Fred Fish - - * fixinc/mkfixinc.sh (fixincludes): Add *-*-beos* to list of - machines for which fixincludes is not needed. - * config/i386/x-beos (STMP_FIXPROTO): Don't run fixproto. - -2000-11-15 Jason Merrill - - * diagnostic.c (finish_abort): New fn. - (fancy_abort, error_recursion): Use it. - * toplev.c (crash_signal): Likewise. - * diagnostic.h: Declare it. - -2000-11-13 Andrew Haley - - * tree.c (build_type_no_quals): New function. - * tree.h (build_type_no_quals): Declare. - * c-common.c (c_get_alias_set): When considering type - compatibility for pointer types, ignore cv-qualifiers anywhere in - a pointer chain. - -2000-11-15 Graham Stott - - * regrename.c (scan_rtx_rtx): Skip to the next chain on - encountering a terminated chain. - -2000-11-14 Mark Mitchell - - * configure.in: Move check for V3 above check for C++ header-file - directory. - * configure: Regenerated. - -2000-11-14 DJ Delorie - - * config/v850/v850.c: Remove obstacks. - -Tue Nov 14 21:54:31 2000 Marek Michalkiewicz & Denis Chertykov - - * config/avr/avr.c (avr_case_values_threshold): New. - (avr_override_options): Set it depending on options, make it large - when not optimizing to work around "unable to generate reloads". - - * config/avr/avr.h (TARGET_SWITCHES): Add -mno-tablejump option. - (EXTRA_SECTION_FUNCTIONS): Make the .progmem.gcc_sw_table section - executable if not AVR_MEGA. Make sure jump tables are word-aligned. - (JUMP_TABLES_IN_TEXT_SECTION): Define as 0, not 1. - (ASM_OUTPUT_ADDR_VEC_ELT): Optimize, use "rjmp" if not AVR_MEGA. - (avr_case_values_threshold): Declare as extern int. - (CASE_VALUES_THRESHOLD): Define as avr_case_values_threshold. - - * config/avr/avr.md (tablejump): Removed. - (*tablejump_rjmp): New for jump tables made from "rjmp" instructions. - (*tablejump_lib, *tablejump_enh, *tablejump): Change to expect the - index in the table, not multiplied by 2. - (casesi): Change to match the above insns. Always enable. - - * config/avr/libgcc.S (__tablejump__): Rename to __tablejump2__. - Change to expect the word address of the table, multiply it by 2 - here and not in the caller. Change "adiw" to faster "inc". - -2000-11-14 Neil Booth - - * cppexp.c (parse_defined): Call cpp_get_token not - _cpp_get_token. - (lex): Similarly. - * cpplex.c (cpp_output_line): Similarly. - * cpplib.c (glue_header_name, do_line, do_ident, - parse_answer, parse_assertion): Similarly. - (_cpp_handle_diretive): Don't save to lookaheads - when processing directives. - * cppmacro.c (parse_arg, expand_arg): Call cpp_get_token not - _cpp_get_token. - (funlike_invocation_p): Don't save to lookaheads - when pre-expanding arguments. - (_cpp_get_token): Delete. - (cpp_get_token): Merge contents of _cpp_get_token. - -2000-11-14 Jakub Jelinek - - * builtins.c (expand_builtin_setjmp): Set - current_function_calls_setjmp. - (expand_builtin_longjmp): Set current_function_calls_longjmp. - - * config/sparc/sparc.md (builtin_setjmp_setup): New expand. - (do_builtin_setjmp_setup): New insn. - -Tue Nov 14 12:34:56 2000 Richard Kenner - - * tree.c (get_unwidened): Use host_integerp and tree_low_cst. - (int_fits_type_p): For variable bounds, call force_fit_type. - -2000-11-14 Jakub Jelinek - - * varasm.c (struct deferred_string): New structure. - (const_str_htab): New variable. - (STRHASH): New macro. - (mark_const_str_htab_1, mark_const_str_htab, const_str_htab_hash, - constr_str_htab_eq, const_str_htab_del): New functions. - (output_constant_def): Add DEFER argument, defer string - constants until mark_constant_pool time if requested. - (mark_constant_pool): Walk the insn chain even if const_str_htab is - not empty. - (mark_constants): If a SYMBOL_REF for deferred string is found, - output it and remove from hash table. - (output_addressed_constants): Set DEFER to 0 in call to - output_constant_def. - * rtl.h (STRING_POOL_ADDRESS_P): Define. - (output_constant_def): Adjust prototype. - * expr.c (expand_expr): Set DEFER to 1 in call to output_constant_def. - -2000-11-14 Chandrakala Chavva - - * optabs.c (expand_complex_ab):: Use overflow-trapping optabs for - signed types if flag_trapv. - -2000-11-14 Zack Weinberg - - * tradcpp.c, tradcif.y: Update FSF mailing address, delete - reference to GPLv1. - -2000-11-14 Joseph S. Myers - - * c-common.h (CTI_C_SIZE_TYPE): Update comment. - -2000-11-14 Jakub Jelinek - - * varasm.c (struct varasm_status): Change x_const_rtx_sym_hash_table - to array of pool_constnat pointers. - (struct pool_constant): Add next_sym and label members. - (struct pool_sym): Remove. - (init_varasm_status): Change pool_sym into pool_constant. - (mark_pool_constant): Mark pc->label string as well. - (mark_pool_sym_hash_table): Remove. - (mark_varasm_status): Remove it from caller as well. - (free_varasm_status): Don't free pool_sym structures. - (force_const_mem): Don't allocate pool_sym structure, instead - fill pool->label and chain it into rtx_sym hash table. - (find_pool_constant, mark_constant_pool): Use pool_constant instead - of pool_sym. - -2000-11-14 Jakub Jelinek - - * reload1.c (emit_input_reload_insns): Honor forcing of constants - into memory by PREFERRED_RELOAD_CLASS NO_REGS. - -2000-11-14 Michael Matz - - * dominance.c: New file. - * Makefile.in (OBJS): Add dominance.o. - - * flow.c (compute_flow_dominators): Remove. - (compute_immediate_dominators): Remove. - (compute_immediate_postdominators): Remove. - * basic-block.h: Remove their prototypes. - (calculate_dominance_info): Add prototype. - - * dce.c (eliminate_dead_code): Change calls to above functions. - Don't compute dominators but only immediate dominators. - * flow.c (flow_loops_find): Change callers. - * gcse.c (compute_code_hoist_data): Likewise. - * haifa-sched.c (schedule_insns): Likewise. - * ifcvt.c (if_convert): Likewise. - * ssa.c (convert_to_ssa): Likewise, and only compute immediate - dominators. - -2000-11-14 Richard Henderson - - * stmt.c (warn_if_unused_value): Don't warn if the expression - has side effects. - - * c-typeck.c (c_sizeof): Fold result to c_size_type_node. - (c_sizeof_nowarn, c_alignof, c_alignof_expr): Likewise. - -2000-11-13 Franz Sirl - - * loop.c (basic_induction_var): Revert accidental checkin. - -2000-11-13 Hans-Peter Nilsson - - * c-lex.c (cb_leave_file): Harmonize conditions and order of - statements to those of process_directive for (action == act_pop). - - * collect2.c (main): Pass on -B options from COLLECT_GCC_OPTIONS. - - * local-alloc.c (equiv_init_movable_p): References to CC0 are not - movable. - -2000-11-13 Joseph S. Myers - - * c-parse.in (stmts_and_decls): Deprecate use of label at end of - compound statement. - -2000-11-13 Neil Booth - - * cpplex.c (_cpp_lex_token): CPP_COMMENT and true CPP_EOF - cases return without MI check. - * cpplib.c (do_diagnostic): Take boolean of whether to - print the directive name. - (do_error, do_warning): Update. - (do_pragma_dependency): Use it. - * cpplib.h (VARARGS_FIRST): Delete. - (struct cpp_token): Delete integer. - * cppmacro.c (enter_macro_context): Move disabled check - to _cpp_get_token. - (_cpp_get_token): Simplify into a single loop. - -2000-11-13 Richard Earnshaw - - * configure.in: Use 'test -f' not '[ -e'. - * configure: Regenerated. - -2000-11-13 DJ Delorie - - * config/mn10300/mn10300.md (store_movm): Note which registers are - really used or clobbered. - -2000-11-13 Joseph S. Myers - - * c-parse.in (ends_in_label): Remove from %union and %type. - (decls, stmts, lineno_stmt_or_labels, xstmts, - lineno_stmt_or_label, stmt_or_label): Remove. - (stmts_and_decls, lineno_stmt_decl_or_labels_ending_stmt, - lineno_stmt_decl_or_labels_ending_decl, - lineno_stmt_decl_or_labels_ending_label, - lineno_stmt_decl_or_labels_ending_error, - lineno_stmt_decl_or_labels, compstmt_contents_nonempty, - lineno_stmt, lineno_label): New. - (compstmt_nostart): Use compstmt_contents_nonempty. - -2000-11-13 Joseph S. Myers - - * c-common.c (boolean_increment): New function. - * c-common.h (enum c_tree_index): Add CTI_C_BOOL_TYPE, - CTI_C_BOOL_TRUE and CTI_C_BOOL_FALSE. - (c_bool_type_node, c_bool_true_node, c_bool_false_node): Define. - (boolean_increment): Declare. - * c-convert.c (convert): Allow for BOOLEAN_TYPE. - * c-decl.c (init_decl_processing): Create boolean nodes. - (finish_struct): Allow for _Bool bitfields. - * c-parse.in (reswords): Add _Bool. - (rid_to_yy): Allow for RID_BOOL. - * c-typeck.c (default_conversion): Make booleans promote to int. - (convert_arguments, build_unary_op, build_modify_expr, - convert_for_assignment): Allow for booleans. - * ginclude/stdbool.h: Make conforming to C99. - -2000-11-13 Joseph S. Myers - - * c-parse.in (c99_block_start, c99_block_end, - c99_block_lineno_labeled_stmt): New. - (simple_if, do_stmt_start): Use c99_block_lineno_labeled_stmt. - (stmt): Split off selection and iteration statements into... - (select_or_iter_stmt): New. Use c99_block_lineno_labeled_stmt. - -2000-11-13 Joseph S. Myers - - * invoke.texi (-Wtrigraphs, -fdump-translation-unit, -save-temps, - -time): Update. - -2000-11-13 Richard Earnshaw - - * arm.md (mulsidi3adddi, umulsidi3adddi): Revert previous change. - Rewrite to avoid use of match_dup. Don't try to tie registers that - are not in the same mode. - -2000-11-13 Joseph S. Myers - - * invoke.texi: Update lists of languages and suffixes supported. - -2000-11-13 Joseph S. Myers - - * configure.in: Take toplevel configure arguments from the - environment to create configargs.h and substitute - gcc_config_arguments, taking account of any existing configargs.h - if reconfiguring. - * configure: Regenerate. - * gccbug.in: Include toplevel configure arguments in gccbug. - -2000-11-13 Richard Earnshaw - - * varasm.c (struct constant_descriptor): Put CONTENTS inside a - union to make it well-aligned. Update all uses. - -2000-11-13 Joseph S. Myers - - * c-parse.in (initelt): Give appropriate pedantic warnings, - depending on flag_isoc99, for non-ISO syntax and for C99 syntax - outside C99 mode. - (designator): If pedantic, pedwarn for a designator specifying a - range of elements. - * c-typeck.c (set_init_index, set_init_label): Don't pedwarn for - these cases. - * extend.texi: Document the C99 syntax as the preferred syntax, - and the pre-2.5 syntax as obsolete. Mention use of designator - lists for nested subobjects. - -2000-11-13 Joseph S. Myers - - * diagnostic.c (vbuild_message_string, output_do_printf, vnotice): - Add ATTRIBUTE_PRINTF. - * tradcpp.c (v_message, warning, error, fatal, error_with_line): - Add ATTRIBUTE_PRINTF*. - -2000-11-12 Mark Mitchell - - * function.c (assign_parms): When calling put_var_into_stack, make - sure that there are no hidden pending sequences. - -2000-11-12 Kaveh R. Ghazi - - * builtins.c (expand_builtin): Handle BUILT_IN_INDEX and - BUILT_IN_RINDEX. Add missing checks for BUILT_IN_STRCHR and - BUILT_IN_STRRCHR. - - * builtins.def (BUILT_IN_INDEX, BUILT_IN_RINDEX): New entries. - - * c-common.c (c_common_nodes_and_builtins): Declare index and - rindex when nonansi builtins are allowed. - - * extend.texi (index, rindex): Document new builtins. - -2000-11-12 Mark Mitchell - - * configure.in: Turn on libstdc++ V3 by default. - * configure: Regenerated. - - * fixinc/mkfixinc.sh: Use the ordinary fixincludes on Solaris. - -2000-11-12 Jakub Jelinek - - * reload1.c (set_label_offsets): Go inside of PARALLELs. - -2000-11-12 Joseph S. Myers - - * invoke.texi: Clean up option summary. - -2000-11-12 Nick Clifton - - * config/mcore/mcore.c: Fix comment formating, and adjust sequence - of #include headers. - -2000-11-12 Marc Espie - - * configure.in: Fix filds test. - * configure: Regen. - -2000-11-12 Mark Mitchell - - * jump.c (delete_computation): Don't assume that just because an - instruction sets a register, that register is dead. - -2000-11-12 Neil Booth - - * cppexp.c: Don't worry about pfile->skipping. - * cpplib.c (struct if_stack): Make was_skipping unsigned char. - (cpp_handle_directive): Save pfile->skipping in struct cpp_buffer - for handled directives. - (skip_rest_of_line): Use _cpp_lex_token after popping contexts - and releasing lookaheads. - (do_ifdef, do_ifndef, do_if): Use buffer->was_skipping. - (do_else, do_elif, push_conditional): Update logic. - (do_endif): Set buffer->was_skipping rather than pfile->skipping. - (unwind_if_stack): Inline into cpp_pop_buffer. - (cpp_push_buffer): Clear ifs->was_skipping for cpp_handle_directive. - * cpplex.c (_cpp_lex_token): Clear skipping on EOF. Handle - multiple-include optimisation. - * cpplib.h (struct cpp_buffer): New member was_skipping. - * cppmacro.c (_cpp_get_token): Loop whilst pfile->skipping. This - works because skipping == 0 in directives. - (_cpp_release_lookahead): Renamed from release_lookahead. - (cpp_get_token): No need to check skipping as _cpp_get_token does - this for us. No need to handle MI optimisation. - -Sat Nov 11 21:14:02 2000 Mark P Mitchell - - * fixinc/inclhack.def (sunos_matherr_decl): Bypass matherr - declarations that use `__MATH_EXCEPTION' in their prototypes, too. - * fixinc/fixincl.x: Regenerated. - -2000-11-11 Bruce Korb - - * fixinc/inclhack.def (avoid_bool_type): avoid commenting out #endif - (avoid_wchar_t_type): ditto - * fixinc/fixinc.irix: obsoleted - -2000-11-11 Zack Weinberg - - * configure.in: Don't add $outputs to all_lang_makefiles. Add - $srcdir/$s/Makefile.in if it exists. - * configure: Regenerate. - -Sat Nov 11 18:41:20 2000 Mark P Mitchell - - * fixinc/mkfixinc.sh: Use the ordinary fixincludes on IRIX. - -2000-11-11 Jason Merrill - - * function.c (assign_parms): If TREE_ADDRESSABLE is set, try to - give the parm a register and then call put_var_into_stack. - * stmt.c (expand_decl): Likewise. - -2000-11-11 Joseph S. Myers - - * gcc.texi: Adjust wording. - -2000-11-11 Mark Mitchell - - * fixinc/inclhack.def (avoid_wchar_t_type): New fix. - * fininc/fixincl.x: Regenerated. - -2000-11-11 Joseph S. Myers - - * invoke.texi: Correct spelling of -foptimize-register-move. - -2000-11-11 Neil Booth - - Remove CPP_PLACEMARKERs. - - * cppexp.c (lex): Don't handle CPP_PLACEMARKER. - * cpplex.c (_cpp_lex_token): Rename skip_newlines to next_bol - * cpplib.c (skip_rest_of_line, check_eol, cpp_push_buffer): - Similarly. - * cpplib.h: Remove CPP_PLACEMARKER. - (struct lexer_state): Rename skip_newlines to next_bol. - * cppmacro.c (stringify_arg): Don't handle CPP_PLACEMARKER. - Simplify prev_white handling as a result. - (paste_all_tokens): Don't worry about CPP_PLACEMARKERs. - (parse_arg): Empty arguments are now empty, not CPP_PLACEMARKERs. - (parse_args): Similarly. Update argument count tests. - (enter_macro_context): Return 2 to indicate an empty macro. - (replace_args): Don't bother pre-expanding an empty argument. - Handle placemarkers and ## extension during pre-expansion. - (cpp_get_token): Handle empty macro expansions. Don't worry - about CPP_PLACEMARKERs. - (_cpp_create_definition): Empty macros are now empty. - (cpp_macro_definition): Don't special case empty macros. - * scan-decls.c: Don't bother with CPP_PLACEMARKERs. - * c-lex.c: Similarly. - -2000-11-11 Joseph S. Myers - - * gcc.texi, invoke.texi: Add new section discussing language - standards; link to it where appropriate; refer to ISO C instead of - ANSI C. - -2000-11-11 Alexandre Oliva - - * builtins.c (std_expand_builtin_va_start): Take PARM_BOUNDARY - into account. - - * config/sh/sh.h (MODES_TIEABLE_P): Don't tie SFmode to other FP - modes. - -2000-11-10 Joseph S. Myers - - * gcc.texi, gcov.texi: Update dates and version numbers. - -2000-11-10 Zack Weinberg - - * configure.in: Remove AC_PROG_LEX and AC_PROG_YACC. Look for - flex and bison, specifically, first in a unified build and - then installed on the system. - * Makefile.in: Set BISON to @BISON@, FLEX to @FLEX@. Rename - LEXFLAGS to FLEXFLAGS. Adjust ORDINARY_FLAGS_TO_PASS to - match. - - (collect2.o, gcc.o, prefix.o, toplev.o, alloca.o, intl.o, - cppdefault.o): Remove pointless sed munging of source file - name. - -2000-11-10 Bernd Schmidt - - * reload.c (find_reloads_address_1, case POST_MODIFY): Use RELOAD_OTHER - for address reloads. Push replacements for REG_INC notes. - (regno_clobbered_p): New arg SETS. Examine SETs if it's nonzero. All - callers changed. - * reload1.c (choose_reload_regs): Registers set in the insn can't be - used for RELOAD_OTHER reloads. - -2000-11-10 Mark Mitchell - - * c-dump.h: New file. - -2000-11-10 Kaveh R. Ghazi - - * alpha.c (check_float_value): Use memcpy, not bcopy. - * arm.c (output_move_double): Likewise. - * arm.md: Likewise. - * m88k.c (legitimize_operand): Likewise. - * m88k.h (ORDER_REGS_FOR_LOCAL_ALLOC): Likewise. - * m88k.md: Likewise. - * mips.c (override_options): Likewise. - * mips.md: Likewise. - * romp.c (output_fpops): Likewise. - * rs6000.c (rs6000_override_options): Likewise. - * sh.md: Likewise. - * vax.c (check_float_value): Likewise. - - * emit-rtl.c (copy_rtx_if_shared, init_emit_once): Likewise. - * expmed.c (synth_mult): Likewise. - * final.c (add_bb_string): Likewise. - * genattr.c (main): Likewise. - * genattrtab.c (attr_string, simplify_cond, copy_rtx_unchanging): - Likewise. - * jump.c (thread_jumps): Likewise. - * prefix.c (save_string): Likewise. - * real.h (REAL_VALUE_FROM_CONST_DOUBLE): Likewise. - * regclass.c (init_reg_sets, init_reg_sets_1): Likewise. - * reload1.c (reload, eliminate_regs): Likewise. - -2000-11-10 Joseph S. Myers - - * gcc.texi (Service): Update to reflect current practice and - location of the GNU service directory. - -2000-11-09 Bernd Schmidt - - * regrename.c (build_def_use): Mark contents of REG_INC notes as - needing replacement. - - * config/ia64/ia64.md (extendsfdf2, extendsftf2, extenddftf2): Emit - a no-op move if regs are equal. - * toplev.c (rest_of_compilation): Do the noop moves elimination pass - when calling jump after post-reload splitting. - -2000-11-09 Jan van Male - - * c-tree.texi: Fix typos. - * extend.texi: Likewise - * gcov.texi: Likewise - * rtl.texi: Likewise - * tm.texi: Likewise - -2000-11-09 Hans-Peter Nilsson - - * c-lex.c [! NO_IMPLICIT_EXTERN_C] (cb_enter_file): Check - in_system_header and flags[1] before dereferencing flags[2]. - -2000-11-09 Matthew Hiller - - * reload1.c (reload_combine): Fixed calculation of - first_index_reg, last_index_reg. - -2000-11-09 Mark Mitchell - - * c-dump.c (dequeue_and_dump): Dump function bodies. - - * Makefile.in (C_AND_OBJC_OBJS): Add c-dump.o. - (c-dump.o): New target. - * c-common.h (flag_dump_translation_unit): New variable. - (C_TYPE_QUALS): New macro. - (strip_array_types): New function. - (DECL_C_BIT_FIELD): New macro. - (SET_DECL_C_BIT_FIELD): Likewise. - (CLEAR_DECL_C_BIT_FIELD): Likewise. - (dump_info_p): New typedef. - (dump_tree_fn): Likewise. - (lang_dump_tree): New variable. - (dump_node_to_file): New function. - * c-common.c (flag_dump_translation_unit): Define it. - (strip_array_types): New function. - * c-decl.c (c_decode_option): Handle -fdump-translation-unit. - * c-lang.c (finish_file): Call dump_node_to_file if - flag_dump_translation_unit. - * c-semantics.c (mark_rtl_for_local_static): Fix typo in comment. - * c-tree.h (DECL_C_BIT_FIELD): Remove declaration. - * c-dump.c: New file. - -2000-11-09 Christopher Faylor - - * config/i386/cygwin.h: Add mingw startfile prefix. - -2000-11-09 Richard Henderson - - * flow.c (invalidate_mems_from_set): Split out from ... - (mark_set_1): ... here. - (try_pre_increment_1): Use it. Use propagate_block_delete_insn - instead of turning insn into a NOTE_INSN_DELETED. - -2000-11-10 Joseph S. Myers - - * extend.texi, invoke.texi: Move documentation of builtin versions - of C library functions to one place and update. - -2000-11-09 Richard Henderson - - * fold-const.c (fold): Compare TYPE_MAIN_VARIANT rather than - the types themselves to discover type equivalence. - -2000-11-09 Mike Stump - - * Makefile.in (distclean): Remove a few extra leftovers. - -2000-11-09 Richard Henderson - - * recog.c (validate_replace_rtx_1): Consider subregs when - replacing a register with a constant inside a sign/zero_extend. - - * config/alpha/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define. - -2000-11-09 Geoffrey Keating - - * c-decl.c (finish_struct): When a structure is completed, - check all its variant types for completeness. - -2000-11-09 Neil Booth - - * cpphash.c: Move cpp_defined here from cpplib.c. - * cpplib.c: Update comments, move cpp_defined to cpphash.c. - * cpplex.c (_cpp_lex_token): Don't leave the lexer at EOL. - * cppmacro.c (cpp_get_token): Update comments, no need now - to catch the CPP_EOF meaning EOL case. - -2000-11-08 Geoffrey Keating - - * config/sparc/sparc.c (sparc_va_arg): When the required alignment - is more than that provided, copy to a temporary. - -2000-11-09 Alexandre Oliva - - * mklibgcc.in (EXTRA_MULTILIB_PARTS): Prevent `make' from - interpreting $out as a macro assignment. - * Makefile.in (T_TARGET): New auxiliary macro and target. - (all): Add a target right in the beginning, so that we don't build - T_TARGET by default. - -2000-11-09 Graham Stott - - * config/i386/i386.md (mmx_pinsrw): Output operands in correct - order for -mintel-syntax. Remove comment now that the operand - order has been checked. - (mmx_pextrw): Likewise. - (mmx_pshufw): Likewise. - -2000-11-09 Jakub Jelinek - - * builtins.c (c_strlen): Use TREE_STRING_LENGTH - 1 for max. - (c_getstr): New function. - (expand_builtin_strstr): Do nothing if -fcheck-memory-usage. - If both arguments are constant string, optimize out. - (expand_builtin_strchr, expand_builtin_strrchr): New functions. - (expand_builtin_strpbrk): Use c_getstr, do nothing if - -fcheck-memory-usage. - (expand_builtin_fputs): Likewise. - (expand_builtin_strcmp): Add MODE argument. - Use even if !HAVE_cmpstrsi. - Optimize the case when both arguments are constant strings. - (expand_builtin): Adjust expand_builtin_strcmp caller. - Call expand_builtin_strchr and expand_builtin_strrchr. - * c-common.c (c_common_nodes_and_builtins): Add strchr and strrchr - builtins. - * builtins.def (BUILT_IN_STRRCHR): Add. - -2000-11-08 Gerald Pfeifer - - * fixinc/gnu-regex.c: Rename EGCS LOCAL markers to GCC LOCAL. - -2000-11-09 Joseph S. Myers - - * calls.c (expand_call, emit_library_call_value_1), collect2.c - (scan_prog_file), config/a29k/a29k.c (print_operand), - config/sparc/sparc.c (order_regs_for_local_alloc): Use memcpy () - instead of bcopy (). - * real.h: Use memcmp () instead of bcmp (). - * config/m88k/m88k.c (m88k_layout_frame), config/sh/sh.c - (split_branches), config/sparc/sparc.c (ultra_flush_pipeline, - ultrasparc_sched_init, ultrasparc_sched_reorder), - config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Use memset () - instead of bzero (). - * config/vax/xm-xms.h (FILE_NAME_NONDIRECTORY): Use strrchr () - instead of rindex (). - * configure.in: Don't check for bzero, bcmp, index or rindex. - * configure, config.in: Regenerate. - * system.h: Don't include declarations for bzero, bcmp, index or - rindex. - * config/i386/xm-beos.h, config/rs6000/xm-beos.h: Don't define - bzero, bcmp, index or rindex. - -Wed Nov 8 21:58:20 2000 Christopher Faylor - - * config/i386/cygwin.h: Add -no-win32 switch. Separate -mno-cygwin - include and library paths from -mcygwin case. Parameterize some - declarations to avoid warnings. Use standard locations for include and - lib dirs. - -2000-11-08 Nick Clifton - - * config/arm/arm.md (mulsidi3adddi): Change output operand - constraint from "=&" to "+&". - (umulsidi3adddi): Change output operand constraint from "=&" to - "+&". - -2000-11-08 Richard Henderson - - * flow.c (init_propagate_block_info): Protect the rtx stored in - mem_set_list from modification by find_auto_inc. - (mark_set_1): Likewise. - -2000-11-08 Neil Booth - - Move directive handling into the lexer itself. - - * cpplex.c (_cpp_lex_token): Handle directives directly. - In the case of a directive interrupting a function-like - macro invocation, use extra_char since read_ahead is - used to store the '#'. Return a CPP_EOF in this case. - * cppmacro.c (parse_arg): No need to handle CPP_DHASH any more. - (cpp_get_token): Don't handle directives here. - * cpplib.h: Remove CPP_DHASH token type. - -Wed Nov 8 21:53:41 MET 2000 Jan Hubicka - - * regmove.c (combine_stack_adjustments_for_blocks): Recognize pushes - formed using PRE_MODIFY too. - -2000-11-08 Mark Mitchell - - * c-tree.texi (VAR_DECL): Describe representation of GCC's - extension for placing variables in particular registers. - - * c-tree.texi (FUNCTION_TYPE): Clarify TYPE_ARG_TYPES for - unprototyped C functions with no parameters. - -2000-11-08 Jakub Jelinek - - * config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): Cast DELTA to int - before passing to fprintf. - -2000-11-08 Jakub Jelinek - - * function.c (expand_function_start): Cast GET_MODE_SIZE to - HOST_WIDE_INT before negating it. - -2000-11-08 Jakub Jelinek - - * expr.c (expand_expr) [ADDR_EXPR]: Handle when op0 is RETURN_DECL - passed in multiple non-contiguous locations. - -2000-11-08 Gerald Pfeifer - - * README.gnat: Remove file. - -2000-11-08 Alexandre Oliva - - * mklibgcc.in (EXTRA_MULTILIB_PARTS): Generate multilib parts - in-place. - -2000-11-07 Richard Henderson - - * dwarfout.c (INSN_LABEL_FMT): Remove. - (output_label_die): Use ASM_GENERATE_INTERNAL_LABEL. - (dwarfout_label): Remove. - * dwarfout.h: Remove it's prototype. - * dwarf2out.c (INSN_LABEL_FMT): Remove. - (gen_label_die): Use ASM_GENERATE_INTERNAL_LABEL. - (dwarf2out_label): Remove. - * dwarf2out.h: Remove it's prototype. - * final.c (final_scan_insn): Don't call dwarf[2]out_label. - -2000-11-07 Richard Henderson - - * config/ia64/fde-glibc.c (find_fde_for_dso): Do a binary - search on the unwind region section. - - * config/ia64/ia64.md (movbi): Add r/r alternative. - (cmovdi_internal_astep): Describe all combinations of register - classes for sources & destinations; remove matching constraints. - (cmovdi_internal): Likewise. - - * gcc.c (default_compilers) [@cpp-output]: Add -fpreprocessed. - -2000-11-07 Richard Henderson - - * c-lang.c (start_cdtor, finish_cdtor): New functions. - (finish_file): Use them in building constructor/destructor functions. - - * config/alpha/alpha.h (HAS_INIT_SECTION, LD_INIT_SWITCH, - LD_FINI_SWITCH): Move ... - * config/alpha/osf.h: ... here. - * config/alpha/alpha-interix.h: Don't undef them. - -2000-11-07 Jeffrey Oldham - - * config/mips/t-iris6 (FPBIT): New. Added so that __unorddf2 is - included in libgcc.a. - (DPBIT): Likewise. - (dp-bit.c): Likewise. - (fp-bit.c): Likewise. - -2000-11-07 Nick Clifton - - * config/m88k/m88k.h (GLOBAL_ASM_OP): Add missing tab. - (INTERNAL_ASM_OP): Add missing tab. - -2000-11-07 Joseph S. Myers - - * alias.c (init_alias_analysis), calls.c (expand_call, - emit_library_call_value_1), combine.c (init_reg_last_arrays), - cse.c (new_basic_block), dbxout.c (dbxout_type), diagnostic.c - (init_output_buffer, set_diagnostic_context), dwarf2out.c - (equate_decl_number_to_die, build_abbrev_table), emit-rtl.c - (init_emit_once), fold-const.c (mul_double, div_and_round_double), - function.c (assign_parms), gcse.c (compute_can_copy, - alloc_gcse_mem, alloc_reg_set_mem, record_one_set, - compute_hash_table, compute_set_hash_table, - compute_expr_hash_table), genattrtab.c (optimize_attrs), global.c - (global_alloc, global_conflicts), haifa-sched.c (compute_trg_info, - clear_units, schedule_block), integrate.c (initialize_for_inline, - expand_inline_function), jump.c (thread_jumps), local-alloc.c - (local_alloc), loop.c (combine_movables, count_loop_regs_set, - load_mems_and_recount_loop_regs_set), print-tree.c (debug_tree), - regclass.c (init_reg_sets, init_reg_sets_1, regclass, - record_reg_classes, allocate_reg_info), reload.c - (get_secondary_mem, remove_address_replacements, find_reloads), - reload1.c (reload, set_initial_label_offsets, finish_spills, - reload_as_needed, choose_reload_regs_init, - reload_cse_simplify_operands), reorg.c (dbr_schedule), sbitmap.c - (sbitmap_zero), simplify-rtx.c (simplify_plus_minus), ssa.c - (rename_registers), stmt.c (expand_end_case), unroll.c - (unroll_loop), varray.c (varray_grow), objc/objc-act.c: Use memset - () instead of bzero (). - -2000-11-07 Neil Booth - - * cp/lang-specs.h: Fix -save-temps specs under USE_CPPLIB. - -2000-11-07 Kaveh R. Ghazi - - * c-common.c (combine_strings): Only warn about long strings for C. - -Tue Nov 7 19:44:30 2000 J"orn Rennecke - - * combine.c (distribute_notes): Fix typo in last change. - -2000-11-07 Geoff Keating - - * config/rs6000/rs6000.md (movdi_internal32+1): Use - operand_subreg_force rather than gen_rtx_SUBREG. - (movdi_internal32+2): Likewise. - -2000-11-07 Philip Blundell - - * configure.in (arm*-*-linuxaout*): Obsolete, deleted. - * config/arm/linux-aout.h: Likewise. - * configure: Regenerate. - -2000-11-07 Philipp Thomas - - * ABOUT-GCC-NLS: Remove the patch for gettext as it has been - accepted my the gettext maintainer. - -2000-11-07 Kaveh R. Ghazi - - * builtins.c (expand_builtin_strpbrk): New function. - (expand_builtin): Handle BUILT_IN_STRPBRK. - - * builtins.def (BUILT_IN_STRPBRK): New entry. - - * c-common.c (c_common_nodes_and_builtins): Declare builtin - strpbrk. - -2000-11-07 David O'Brien - - * config/alpha/freebsd.h: New file -- FreeBSD/alpha architecture file. - * POTFILES.in: Add config/alpha/freebsd.h - * configure.in: Add alpha*-freebsd support. - * configure: Regenerate. - -2000-11-07 Joseph S. Myers - - * tree.c (build_common_tree_nodes_2): Make va_list_type_node be a - copy of ptr_type_node rather than ptr_type_node itself. - -Tue Nov 7 06:29:24 2000 J"orn Rennecke - - * combine.c (recog_for_combine): Allocate uninitialized vector with - rtvec_alloc. - * recog.c (apply_change_group): Likewise. - -Tue Nov 7 06:24:02 2000 J"orn Rennecke - - * flow.c (verify_local_live_at_start): Back out last change. - * combine.c (distribute_notes): When parts of a hard reg are - neither set nor referenced in PLACE, search backwards for a - place to put a REG_UNUSED note; if none found, ask for flow - info refresh. - -Mon Nov 6 20:08:13 2000 J"orn Rennecke - - * reload1.c (eliminate_regs_in_insn): Allow a set to be a PARALLEL - with (clobber (match_scratch...)). - -2000-11-06 Neil Booth - - * c-lex.c (init_c_lex): If cpp_start_read fails, exit with - error status. - -2000-11-06 Neil Booth - - * tradcpp.c (special_symbol): Assign an null string rather - than writing to an unallocated buffer. - -2000-11-06 Neil Booth - - * cpplex.c (_cpp_equiv_tokens): Check arg_no in the - CPP_MACRO_ARG case. - -2000-11-06 Neil Booth - - * c-lex.c (c_lex): Replace tok.val.aux with tok.val.c or - tok.val.arg_no as appropriate. - * cppexp.c (lex): Similarly. - * cpplex.c (_cpp_lex_token, cpp_spell_token, cpp_output_token, - cpp_equiv_tokens, cpp_can_paste, cpp_avoid_paste): Similarly. - * cppmacro.c (stringify_arg, replace_args, lex_expansion_token, - cpp_macro_definition): Similarly. - * cpplib.h (struct cpp_token): Replace aux with c and arg_no. - -2000-11-06 Jakub Jelinek - - * config/sparc/sparc.md (adddi3): If operands[2] is 4096 and - operands[1] is constant, calculate the sum and generate movdi. - (addsi3): Similarly. Use SImode in call to arith_4096_operand. - (subsi3): Use SImode in call to arith_4096_operand. - -2000-11-06 Jakub Jelinek - - * config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): On sparc64 we need to - adjust %o1, not %o0 if the return type is large structure. - -2000-11-06 Jakub Jelinek - - * config/sparc/sparc.md (smulsi3_highpart_v8plus, ashldi3_v8plus+1, - update_return, flush, flushdi, ffssi2, ffsdi2): Fix output formatting. - -Sat Sep 23 19:10:20 2000 Denis Chertykov & Marek Michalkiewicz - - * expmed.c (expand_divmod): For signed divide by 2, prefer - a branch and fewer shifts if branches are very cheap. - -2000-11-05 Joseph S. Myers - - * Makefile.in: Remove all targets related to building - distributions and diffs, or INSTALL. - * INSTALL, install1.texi: Remove. - * configure.in: Remove mention of distdir. - * configure: Regenerate. - * objc/Make-lang.in: Remove mention of distdir. - -2000-11-04 Neil Booth - - * cpp.texi: Update for _Pragma. - -2000-11-04 Joseph S. Myers - - * gcc.texi (Contributing): Update URL for projects web page. - -2000-11-04 Neil Booth - - * cpplex.c (parse_string): Don't allow multiline strings in - #include family directives. - -2000-11-04 Neil Booth - - * cpplib.c (do_line): Only warn pedantically if not reading - preprocessed input. - -2000-11-04 Alexandre Oliva - - * calls.c (emit_call_1) [sibcall_pop]: Use n_popped instead of - RETURN_POPS_ARGS(). - -2000-11-03 Zack Weinberg - - * builtins.c (expand_builtin_strlen): Remove unused mode - argument. - * gcc.c (process_command): Remove unused variable. - * fold-const.c: Include expr.h. - * recog.c: Include reload.h. - * Makefile.in (recog.o, fold-const.o): Update deps. - -2000-11-02 Geoffrey Keating - - * fixinc/gnu-regex.c: Change 'CYGNUS LOCAL' to 'EGCS LOCAL'. - -Fri Nov 3 13:41:04 2000 Mark P Mitchell - - * config/mips/iris6.h (SUBTARGET_CC1_SPEC): Remove -static - handling. - (STARTFILE_SPEC): Likewise. - (LINK_SPEC): Likewise. - -2000-11-03 Kaveh R. Ghazi - - * Makefile.in (fold-const.o): Depend on $(GGC_H), not ggc.h. - (toplev.o): Likewise for $(LOOP_H)/loop.h and $(REGS_H)/regs.h. - (simplify-rtx.o): Likewise for $(GGC_H)/ggc.h. - -2000-11-03 Joseph S. Myers - - * c-decl.c (duplicate_decls, copy_lang_decl), dwarfout.c - (dwarfout_line), gcc.c (main, save_string), tree.c (init_obstacks, - perm_calloc, get_identifier, maybe_get_identifier, - real_value_from_int_cst, simple_cst_equal), varasm.c - (assemble_name, assemble_real, immed_real_const_1, - compare_constant_1, decode_rtx_const, output_constant_pool): Use - strrchr () instead of rindex (). Use memcmp () instead of bcmp - (). Use memcpy () instead of bcopy (). Use memset () instead of - bzero (). - -2000-11-03 Nathan Sidwell - - * cppfiles.c (open_file): If already read, then don't reopen. - Immediately close an empty file. - -2000-11-01 Bernd Schmidt - - * expr.h (fold_builtin): Move declaration... - * tree.h (fold_builtin): ... here. - -Fri Nov 3 05:41:07 2000 J"orn Rennecke - - * flow.c (verify_local_live_at_start): Allow hard regs to die. - -2000-11-02 Neil Booth - -config: - * a29k/a29k.h, a29k/unix.h, a29k/vx29k.h, - alpha/alpha-interix.h, alpha/alpha.h, alpha/linux.h, - alpha/openbsd.h, alpha/osf.h, alpha/vms.h, alpha/vxworks.h, - alpha/win-nt.h, arc/arc.h, arm/arm.h, arm/conix-elf.h, - arm/linux-aout.h, arm/linux-elf.h, arm/netbsd.h, arm/riscix.h, - arm/riscix1-1.h, arm/semiaof.h, arm/unknown-elf-oabi.h, arm/vxarm.h, - c4x/rtems.h, clipper/clix.h, convex/convex.h, d30v/d30v.h, - elxsi/elxsi.h, fr30/fr30.h, h8300/h8300.h, i370/linux.h, i370/mvs.h, - i370/oe.h, i386/386bsd.h, i386/aix386ng.h, i386/beos-elf.h, - i386/bsd386.h, i386/crtdll.h, i386/cygwin.h, i386/dgux.h, - i386/djgpp-rtems.h, i386/djgpp.h, i386/freebsd-aout.h, i386/freebsd.h, - i386/gnu.h, i386/i386-interix.h, i386/i386.h, i386/linux-aout.h, - i386/linux-oldld.h, i386/linux.h, i386/lynx-ng.h, i386/lynx.h, - i386/mach.h, i386/mingw32.h, i386/moss.h, i386/netbsd.h, - i386/netware.h, i386/next.h, i386/openbsd.h, i386/osf1elf.h, - i386/osfelf.h, i386/osfrose.h, i386/ptx4-i.h, i386/rtems.h, - i386/rtemself.h, i386/sco.h, i386/sco4.h, i386/sco4dbx.h, i386/sco5.h, - i386/scodbx.h, i386/sequent.h, i386/sol2.h, i386/sun.h, i386/sysv3.h, - i386/sysv4.h, i386/uwin.h, i386/vsta.h, i386/vxi386.h, i386/win-nt.h, - i386/win32.h, i860/fx2800.h, i860/i860.h, i860/mach.h, i860/sysv3.h, - i860/sysv4.h, i960/i960.h, i960/rtems.h, i960/vx960-coff.h, - ia64/ia64.h, ia64/linux.h, m32r/m32r.h, m68k/3b1.h, m68k/3b1g.h, - m68k/a-ux.h, m68k/altos3068.h, m68k/amix.h, m68k/apollo68.h, - m68k/crds.h, m68k/ctix.h, m68k/dpx2.h, m68k/hp2bsd.h, m68k/hp320.h, - m68k/hp3bsd.h, m68k/hp3bsd44.h, m68k/isi.h, m68k/linux-aout.h, - m68k/linux.h, m68k/lynx-ng.h, m68k/lynx.h, m68k/m68kemb.h, - m68k/m68kv4.h, m68k/mot3300.h, m68k/netbsd.h, m68k/news.h, - m68k/next.h, m68k/openbsd.h, m68k/pbb.h, m68k/plexus.h, m68k/rtems.h, - m68k/rtemself.h, m68k/sun2.h, m68k/sun3.h, m68k/sun3mach.h, - m68k/tower-as.h, m68k/tower.h, m68k/vxm68k.h, m88k/dgux.h, - m88k/dolph.h, m88k/luna.h, m88k/m88k-aout.h, m88k/m88k-coff.h, - m88k/openbsd.h, m88k/sysv3.h, m88k/sysv4.h, mips/bsd-4.h, - mips/bsd-5.h, mips/dec-bsd.h, mips/dec-osf1.h, mips/gnu.h, - mips/iris3.h, mips/iris5.h, mips/iris6.h, mips/linux.h, mips/mips.h, - mips/netbsd.h, mips/news4.h, mips/news5.h, mips/nws3250v4.h, - mips/openbsd.h, mips/osfrose.h, mips/rtems64.h, mips/sni-svr4.h, - mips/svr3-4.h, mips/svr3-5.h, mips/svr4-4.h, mips/svr4-5.h, - mips/ultrix.h, ns32k/encore.h, ns32k/merlin.h, ns32k/netbsd.h, - ns32k/ns32k.h, ns32k/pc532-mach.h, ns32k/pc532.h, ns32k/sequent.h, - ns32k/tek6000.h, ns32k/tek6100.h, ns32k/tek6200.h, pa/pa-hiux.h, - pa/pa-hpux.h, pa/pa-hpux7.h, pa/pa-linux.h, pa/pa-osf.h, - pa/pa-pro-end.h, pa/pa.h, pa/rtems.h, pj/linux.h, pj/pj.h, - romp/romp.h, rs6000/aix.h, rs6000/aix31.h, rs6000/aix41.h, - rs6000/aix43.h, rs6000/beos.h, rs6000/eabi.h, rs6000/eabisim.h, - rs6000/linux.h, rs6000/lynx.h, rs6000/mach.h, rs6000/rtems.h, - rs6000/sysv4.h, rs6000/vxppc.h, sh/elf.h, sh/linux.h, sh/rtems.h, - sh/rtemself.h, sh/sh.h, sparc/aout.h, sparc/elf.h, sparc/linux-aout.h, - sparc/linux.h, sparc/linux64.h, sparc/lite.h, sparc/litecoff.h, - sparc/liteelf.h, sparc/lynx-ng.h, sparc/lynx.h, sparc/netbsd.h, - sparc/openbsd.h, sparc/pbd.h, sparc/rtems.h, sparc/rtemself.h, - sparc/sol2-sld-64.h, sparc/sol2.h, sparc/sp64-aout.h, - sparc/sp64-elf.h, sparc/sp86x-aout.h, sparc/sp86x-elf.h, - sparc/sparc.h, sparc/sysv4.h, sparc/vxsim.h, sparc/vxsparc.h, - v850/rtems.h, vax/netbsd.h, vax/openbsd.h, vax/ultrix.h, vax/vax.h, - vax/vaxv.h, vax/vms.h, we32k/we32k.h - - Replace -A() with -A=, the new assertion syntax. - -Thu Nov 2 21:52:35 2000 J"orn Rennecke - - * combine.c (distribute_notes): Use rtx_equal_p to check elim_i2 / - elim_i1. - In REG_DEAD handling: When handling parts of multi-hard-reg hard - registers, increment the loop counter by the size of the parts; - use recursion to handle individual parts. - -2000-11-02 Neil Booth - - * configure.in: Make integrated CPP the default. - * configure: Regenerate. - -Thu Nov 2 19:20:12 2000 J"orn Rennecke - - * reload.c (find_equiv_reg): Test all hard registers for membership - in the requested class. - -2000-11-02 Joseph S. Myers - - * collect2.c (main, write_c_file_stat), gcc.c (translate_options, - process_command, main), gcov.c (open_files, output_data), tlink.c - (frob_extension, scan_linker_output), toplev.c - (file_name_nondirectory): Use strchr () and strrchr () instead of - index () and rindex (). - -2000-11-02 Joseph S. Myers - - * c-common.c (get_flag_spec, check_format_info_main, - check_format_types): Use strchr () instead of index (). Compare - against error_mark_node instead of comparing the TREE_CODE against - ERROR_MARK. - -2000-11-02 Zack Weinberg - - Integrated CPP. - - * c-lex.c (init_c_lex): Update cpp_start_read call. - (cb_ident): Update for new callback prototype. - (cb_def_pragma): Update for new cpp_get_token prototype. - (c_lex): Similarly. Use cpp_get_line. - - * c-parse.in (finish_parse): Update for new cpp_finish - prototype. - - * cp/lex.c (finish_parse): Similarly. - -2000-11-01 Geoff Keating - - * machmode.def: Add V16QImode. - -2000-11-01 Richard Henderson - - * dwarf2out.c (loc_descriptor_from_tree): Check for null result - from rtl_for_decl_location. - (add_location_or_const_value_attribute): Likewise. - -2000-11-01 Neil Booth - - * cpplib.c (run_directive): Use correct line number for output - of _Pragma. Remember any in-progress directive. - - * gcc.dg/cpp/vararg2.c, gcc.dg/cpp/_Pragm1.c: New tests. - -2000-11-01 Richard Henderson - - * stmt.c (expand_start_null_loop): Set continue_label. - -2000-11-01 Bernd Schmidt - - * builtins.c (fold_builtin_constant_p, fold_builtin): New functions. - (expand_builtin_constant_p): Move parts of the code into - fold_builtin_constant_p. - (expand_builtin_strlen): Move parts of the code into fold_builtin. - * expr.h (fold_builtin): Declare. - * fold-const.c (fold): Handle builtin calls. - - * c-typeck.c (build_function_call): Call fold on the CALL_EXPR. - -2000-11-01 Richard Henderson - - * stmt.c (expand_start_null_loop): New. - (expand_end_null_loop): New. - * c-semantics.c (genrtl_do_stmt): Use them. - * tree.h: Declare them. - -2000-11-01 Richard Henderson - - * cppmain.c (scan_buffer): Don't avoid paste for assembly. - -2000-11-01 Neil Booth - - * c-parse.in (_yylex): Remove CPP_BACKSLASH case. - * cp/spew.c: Similarly. - * cpplex.c (_cpp_lex_token): Backslashes are now CPP_OTHER. - * cppmacro.c (stringify_arg): Similarly. - * cpplib.h (CPP_BACKSLASH): Delete. - -2000-10-31 Kaveh R. Ghazi - - * builtins.c (expand_builtin_strstr): New function. - (expand_builtin): Handle BUILT_IN_STRSTR and BUILT_IN_STRCHR. - - * builtins.def (BUILT_IN_STRSTR, BUILT_IN_STRCHR): New entries. - - * c-common.c (c_common_nodes_and_builtins): Declare builtin strstr - and builtin strchr. - -2000-10-31 Richard Henderson - - * config/i386/i386.c (fcmov_comparison_operator): Check for - CCFPmode or CCFPUmode instead of CCmode. - (ix86_expand_fp_movcc): Call ix86_expand_setcc for most - unordered operations as well. - -2000-10-31 Richard Henderson - - * c-semantics.c (genrtl_do_stmt): Use integer_zerop instead - of integer_zero_node. - -2000-10-31 Richard Henderson - - * c-semantics.c (genrtl_do_stmt): Special case do/while(0). - -2000-10-31 Nick Clifton - - * config/arm/unknown-elf.h (UNIQUE_SECTION_P): Do not allow - -fdata-sections to override the section attribute of a DECL. - -2000-10-31 Chris Demetriou - - * libgcc2.c (__shtab): Remove __shtab variable. - * libgcc-std.ver (GCC_3.0): Remove __shtab from symbol list. - * Makefile.in (LIB2FUNCS): Remove _shtab from list of library - members. - -2000-10-31 Jim Wilson - - * defaults.h (ASM_OUTPUT_DEBUG_LABEL): New. - * tm.texi (ASM_OUTPUT_DEBUG_LABEL): Document. - * dwarf2out.c (dwarf2out_begin_block): Use ASM_OUTPUT_DEBUG_LABEL - instead of ASM_OUTPUT_INTERNAL_LABEL. - (dwarf2out_end_block, dwarf2out_label): Likewise. - * final.c (final_scan_insn, case NOTE_INSN_DELETED_LABEL): Likewise - * config/ia64/ia64.h (ASM_OUTPUT_DEBUG_LABEL): Define. - -2000-10-31 Richard Henderson - - * dwarf2out.c (struct dw_loc_descr_struct): Add dw_loc_addr. - (size_of_locs): Set it. - (output_loc_operands): Use it to compute branch displacement. - (int_loc_descriptor): New. - (mem_loc_descriptor): Dereference memory in the proper size. - Use DW_OP_plus_uconst when possible. Use int_loc_descriptor. - (loc_descriptor_from_tree): New. - (rtl_for_decl_location): Break out from ... - (add_location_or_const_value_attribute): ... here. - (add_bound_info): Use loc_descriptor_from_tree. - -2000-10-31 Neil Booth - - * cpp.texi: Update for new command line assertion syntax. - * cpplib.c (cpp_define): Simplify a bit. - (cpp_assert, cpp_unassert): Use handle_assertion. - (handle_assertion): New function; accept new command line - syntax with '='. - * testsuite/gcc.dg/cpp/assert3.c: New tests. - -2000-10-31 Neil Booth - - * cppmacro.c (STDC_0_IN_SYSTEM_HEADERS): Define to 0 if - undefined. Remove #ifdef check. - * config/i386/sol2.h, config/rs6000/sol2.h, config/sparc/sol2.h: - Define STDC_0_IN_SYSTEM_HEADERS to 1. - -2000-10-31 Jan Hubicka - Jakub Jelinek - - * config/i386/i386.h: Clarify CCNOmode description in comment. - (EXTRA_CC_MODES): Remove CCRCmode. - * config/i386/i386.c (ix86_comparison_operator): Remove CCRCmode. - (put_condition_code, ix86_match_ccmode): Likewise. - (ix86_cc_mode): Likewise. Fix comment. - (ix86_expand_strlensi_unroll_1): *rc patterns are gone. - * config/i386/i386.md: Add unspec 12 description. - (adddi3 split): Use unspec 12 instead of CCRCmode. - (addsi3_carry_rc): Remove. - (addsi3_cc, addqi3_cc): New patterns. - (addsi_3): Swap operands, match CCZmode. - (addsi_4): Rewritten. - (addsi_5): Renamed from addsi_6. - (addsi_6): Removed. - (addhi_3): Swap operands, match CCZmode. - (addhi_4): Rewritten. - (addhi_5): Renamed from addhi_6. - (addhi_6): Removed. - (addqi_3): Swap operands, match CCZmode. - (addqi_4): Rewritten. - (addqi_5): Renamed from addqi_6. Use =q constraint for clobber. - (subsi3_carry_rc): Removed. - (iorqi_3): Use =q constraint for clobber. - (xorqi_cc_2): Likewise. - (negdi2_1 split): Don't use CCRCmode, use ltu instead of gtu. - (x86_movsicc_0_m1_rc): Removed. - (cmp?i peepholes): Remove neg. Use CCGCmode instead of CCRCmode. - -2000-10-31 Joseph S. Myers - - * c-typeck.c (build_unary_op): If pedantic, pedwarn for increment - and decrement of complex types. - -2000-10-31 Kaveh R. Ghazi - - * builtins.c (expand_builtin_fputs): When deleting NOP calls to - builtin fputs, ensure we still evaluate the stream in case it - has side-effects. - -2000-10-31 Jakub Jelinek - - * expr.c (do_store_flag): Pass operand_mode instead of GET_MODE (op0) - to expand_shift. - -Tue Oct 31 15:33:27 2000 J"orn Rennecke - - * sh-protos.h (reg_no_subreg_operand, emit_fpscr_use): Don't declare. - (fp_extended_operand, emit_fpscr_use): Likewise. - * sh.c (reg_no_subreg_operand, fp_extended_operand): Delete functions. - (fpul_operand): New function. - * sh.h (PREDICATE_CODES): Remove reg_no_subreg_operand and - fp_extended_operand. Add fpul_operand. - * sh.md (mulsf3, mulsf3_i4): Use fp_arith_reg_operand for "f" operands. - (mulsf3_ie, macsf3, cmpgtsf_t, cmpeqsf_t, ieee_ccmpeqsf_t): Likewise. - (cmpgtsf_t_i4, cmpeqsf_t_i4, ieee_ccmpeqsf_t_4, negsf2): Likewise. - (negsf2_i, sqrtsf2, sqrtsf2_i, abssf2, abssf2_i, adddf3): Likewise. - (adddf3_i, subdf3, subdf3_i, muldf3, muldf3_i, divdf3): Likewise. - (divdf3_i): Likewise. - (floatsisf2): Likewise. Use fpul_operand for 'y' operand. - (floatsisf2_i4, floatsisf2_ie, fix_truncsfsi2): Likewise. - (fix_truncsfsi2_i4, fixsfsi, floatsidf2, floatsidf2_i): Likewise. - (fix_truncdfsi2, fix_truncdfsi2_i, extendsfdf2): Likewise. - (extendsfdf2_i4, truncdfsf2, truncdfsf2_i4): Likewise. - -2000-10-31 Bernd Schmidt - - * config/i386/i386.c (ix86_init_builtins): Correct return type - building v4hi_ftype_v4hi_int_int tree node. - (ix86_expand_builtin): Use correct operand numbers 0 and 1. - Copy operand 0 into a Pmode register, don't generate a MEM rtx. - - * config/i386/i386.md (sse_movntdi): Use mmx register constraint - for operand 1. - (mmx__uavgv8qi3): Correct insn mnemonic. - (mmx_psadbw): Correct insn mnemonic. Use V8QI mode for operands 1 and 2. - (mmx_punpckhwd): Correct insn mnemonic. - (mmx_punpckhdq): Likewise. - (mmx_punpcklwd): Likewise. - (mmx_punpckldq): Likewise. - (prefetch): Use immediare_operand and 'n' constraint for operand 1. - Renumber case labels to match the _mm_prefetch constants defined in - xmmintrin.h. - - * recog.c (split_all_insns): Don't try to call cleanup_subreg_operands - if the splitter didn't emit new insns. - Make sure we call cleanup_subreg_operands even when splitting the last - insn in a basic block. - - * invoke.texi (Debugging Options): Describe -do. - * toplev.c (enum_dump_file_index): New entry DFI_postreload. - (dump_file): Likewise. - (rest_of_compilation): Split .greg dump into .greg and .postreload. - -2000-10-30 Neil Booth - - * cppfiles.c (stack_include_file): Check for stacked contexts - here. - * cpphash.h (_cpp_do__Pragma): New prototype. - * cppinit.c (cpp_reader_init): Add _Pragma keyword to hash table. - - * cpplex.c (skip_escaped_newlines): Only process trigraphs and - escaped newlines if !(buffer->from_stage3). - (_cpp_lex_token): Warn about missing newlines iff - !buffer->from_stage3. - - * cpplib.c (get__Pragma_string, destringize, - _cpp_do__Pragma): New functions. - (run_directive): Set output_line for _Pragma to avoid line - markers in output. Set from_stage3 and prevent macro expansion - for _Pragma and command-line options. Check buffer exhaustion. - (cpp_push_buffer): Don't check for stacked macro contexts, as - this is perfectly legitimate for _Pragma. Move the check to - stack_include_file instead. Set from_stage3 iff buffer is - preprocessed input. - - * cpplib.h (struct cpp_buffer): Make warned_cplusplus_comments - unsigned. New boolean from_stage3. - (struct spec_nodes): Add n__Pragma. - - * cppmacro.c (enter_macro_context): Flip sense of return value. - (_cpp_get_token): Handle _Pragma operator. - -2000-10-30 Phil Edwards - - * gcc.texi: The C++ standard isn't "draft" anymore. - -2000-10-30 Mark Mitchell - - * cppmacro.c (builtin_macro): Use NT_VOID, not T_VOID. - -2000-10-29 Neil Booth - - * cpplib.c (skip_rest_of_line): Use _cpp_get_token. - -2000-10-29 Joseph S. Myers - - * toplev.c, flags.h, fold-const.c, real.c, rtl.c, - fixinc/inclhack.def: Change comments mentioning C9X to refer to - C99 instead. - - * invoke.texi: Document that -V will only work for very similar - versions of driver and compiler. - -2000-10-29 Neil Booth - - * cppmacro.c (_cpp_create_definition): Optimize the case of - a macro defined to itself. - -2000-10-29 Neil Booth - - * cpplex.c (save_comment): Don't store new lines in C++ comments. - -2000-10-29 Michael Hayes - - * integrate.c (copy_insn_list): Copy the unchanging flag for calls. - -2000-10-28 Geoffrey Keating - - * cpphash.c (cpp_forall_identifiers): Add context variable - for callback routine. - * cppmain.c (dump_macro): Update to match cpp_forall_identifiers - change. - (main): Call cpp_forall_identifiers with null context. - * cpplib.h (cpp_forall_identifiers): Update prototype. - - * cppmain.c: Make `parse_in' and `print' static. - -2000-10-28 Alan Modra - - * c-decl.c (finish_function): Clear c_function_name_declared_p. - -2000-10-28 Richard Henderson - - * regrename.c (scan_rtx_address): Frob action, not class, - when trying to disable optimization. - -2000-10-28 Mark Mitchell - - * c-semantics.c (make_rtl_for_local_static): Don't clobber - DECL_ASSEMBLER_NAME. - -2000-10-28 Joseph S. Myers - - * configure.in: Determine and substitute gcc_version_full. - * configure: Regenerate. - * gccbug.in: Use it to give full version. Don't allow - confidential PRs. - -2000-10-28 Richard Henderson - - * recog.c (split_all_insns): Run cleanup_subreg_operands - after reload. - - * regrename.c (regrename_optimize): Verify that all registers of - a multiple register mode are available. - (scan_rtx_address): Accept the mode of the address; all callers - changed. - - * cpplib.c (run_directive): Fix prototype. - -2000-10-28 Bernd Schmidt - - * reload.c (find_reloads): Distinguish "wins" so that we know whether - a given operand won because of a matching constraint or not; then use - that information to compute goal_alternative_matched properly. - * reload1.c (choose_reload_regs): Never set reload_override_in for an - optional reload. - - * config/ia64/ia64.h (RTX_COSTS): A few more entries, and a more - accurate value for MULT. - * config/ia64/ia64.c (ia64_print_operand): Require probability to be - 2% or > 98% before using static branch prediction bits. - -2000-10-28 Neil Booth - - New macro expander. - - * cpplib.c (struct answer): New. - (struct if_stack): Use cpp_lexer_pos rather than line and col. - Rename cmacro mi_cmacro. - (struct directive, KANDR, STDC89, EXTENSION, COND, IF_COND, INCL, - IN_I): New directive and flags. - (skip_rest_of_line, check_eol, run_directive, glue_header_name, - parse_answer, parse_assertion, find_answer): New functions. - (parse_ifdef, detect_if_not_defined, validate_else): Remove. - (lex_macro_node): New function to replace parse_ifdef and - get_define_node. - - (_cpp_handle_directive): New function, combines _cpp_check_directive - and _cpp_check_linemarker. - - (do_define, do_undef, parse_include, do_include, do_import, - do_include_next, read_line_number, do_line, do_ident, do_pragma, - do_pragma_once, do_pragma_poison, do_pragma_dependency): - Update for new token getting interface. - - (do_ifdef, do_ifndef, do_if, do_else, do_endif, push_conditional) - : Update for new multiple-include optimisation technique. - (do_elif): Don't forget to invalidate controlling macros. - - (unwind_if_stack, cpp_defined, cpp_push_buffer, cpp_pop_buffer): Update. - (parse_assertion, parse_answer, find_answer, _cpp_test_assertion): - Functions to handle assertions with the new token interface. - (do_assert, do_unassert): Use them. - - (cpp_define, _cpp_define_builtin, cpp_undef, cpp_assert, cpp_unassert): - Use run_directive. - - (_cpp_init_stacks): Register directive names. Don't register special - nodes. - - * cpperror.c (print_containing_files, _cpp_begin_message): Update to - new position recording regime. - (cpp_ice, cpp_fatal, cpp_error, cpp_error_with_line, cpp_warning, - cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line, - cpp_pedwarn_with_file_and_line): Update for _cpp_begin_message changes. - (cpp_type2name): Move to cpplex.c. - - * cppexp.c (parse_charconst): spec_nodes is no longer a pointer. - (parse_defined): Update to handle new multiple include optimisation - method. Remove poisoned identifier warning. - (parse_assertion, TYPE_NAME): Delete. - (lex): Update for multiple include optimisation, removal of - CPP_DEFINED, to use _cpp_test_assertion for assertions and - cpp_token_as_text. - (_cpp_parse_expr): Update for MI optimisation, and to use op_as_text. - (op_as_text): New function, to wrap cpp_token_as_text. - - * cppfiles.c (stack_include_file, _cpp_pop_file_buffer): - Update for MI optimisation. - (_cpp_execute_include): Take a token rather than 3 arguments. Fix - segfault on diagnostic. - (_cpp_compare_file_date): Take a token rather than 3 args. - (cpp_read_file): Work correctly for zero-length files. - - * cpphash.c (_cpp_init_macros, _cpp_cleanup_macros): Rename - _cpp_init_hashtable and _cpp_cleanup_hashtable. - (cpp_lookup): Place identifiers at front of identifier pool - for _cpp_lookup_with_hash. - (_cpp_lookup_with_hash): Require identifiers to be at the front of - the identifier pool. Commit the memory if not already in the - hash table. - - * cppinit.c (cpp_reader_init): Move cpp_init_completed test to top. - Initialize various members of cpp_reader, memory pools, and the - special nodes. - (cpp_printer_init): Delete. - (cpp_cleanup): Update. - (struct builtin, builtin_array, initialize_builtins): Update for new - hashnode definition and builtin handling. - (cpp_start_read, cpp_finish): Don't take or initialize a - printer. Update. - - * cpplib.h (cpp_printer, cpp_toklist, CPP_DEFINED, BOL, - PASTED, VAR_ARGS, BEG_OF_FILE, IN_DIRECTIVE, KNOWN_DIRECTIVE, - T_VOID, T_SPECLINE, T_DATE, T_FILE, T_BASE_FILE, T_INCLUDE_LEVEL, - T_TIME, T_STDC, T_OPERATOR, T_POISON, T_MACRO, T_ASSERTION): Delete. - (struct cpp_pool, struct cpp_macro, struct cpp_lexer_pos, - struct cpp_lookahead, CPP_DHASH, enum mi_state, enum mi_ind, - NO_EXPAND, VARARGS_FIRST, struct cpp_token_with_pos, - struct toklist, struct cpp_context, struct specnodes, - TOKEN_LOOKAHEAD, TOKEN_BUFFSIZE, NODE_OPERATOR, NODE_POISONED, - NODE_BUILTIN, NODE_DIAGNOSTIC, NT_VOID, NT_MACRO, NT_ASSERTION, - enum builtin_type, cpp_can_paste): New. - (struct cpp_token): Delete line and col members. - (struct cpp_buffer): New member output_lineno. - (struct lexer_state): Delete indented, in_lex_line, seen_dot. - Add va_args_ok, poisoned_ok, prevent_expansion, parsing_args. - (struct cpp_reader): New members lexer_pos, macro_pos, directive_pos, - ident_pool, temp_string_pool, macro_pool, argument_pool, string_pool, - base_context, context, directive, mi_state, mi_if_not_defined, - mi_lexed, mi_cmacro, mi_ind_cmacro, la_read, la_write, la_unused, - mlstring_pos, macro_buffer, macro_buffer_len. - Delete members mls_line, mls_column, token_list, potential_control_macro, - temp_tokens, temp_cap, temp_alloced, temp_used, first_directive_token, - context_cap, cur_context, no_expand_level, paste_level, contexts, args, - save_parameter_spellings, need_newline, . - Change type of date, time and spec_nodes members. - Change prototypes for include and ident callbacks. - (struct cpp_hashnode): Change type of name. Remove union members - expansion and code. Add members macro, operator and builtin. - - (cpp_token_len, cpp_token_as_text, cpp_spell_token, cpp_start_read, - cpp_finish, cpp_avoid_paste, cpp_get_token, cpp_get_line, - cpp_get_output_line, cpp_macro_definition, cpp_start_lookahead, - cpp_stop_lookahead): New prototypes. - (cpp_printer_init, cpp_dump_definition): Delete prototypes. - - (U_CHAR, U, ustrcmp, ustrncmp, ustrlen, uxstrdup, ustrchr, ufputs): - Move from cpphash.h. - - * cpphash.h (U_CHAR, U, ustrcmp, ustrncmp, ustrlen, uxstrdup, ustrchr, - ufputs): Move to cpplib.h. - (enum spell_type, struct token_spelling, _cpp_token_spellings, TOKEN_SPELL, - TOKEN_NAME, struct answer, FREE_ANSWER, KANDR, STDC89, EXTENSION, - COND, EXPAND, INCL, COMMENTS, IN_I, struct directive, directive_handler, - struct spec_nodes, _cpp_digraph_spellings, _cpp_free_temp_tokens, - _cpp_init_input_buffer, _cpp_grow_token_buffer, _cpp_init_toklist, - _cpp_clear_toklist, _cpp_expand_token_space, _cpp_expand_name_space, - _cpp_equiv_tokens, _cpp_equiv_toklists, _cpp_process_directive, - _cpp_run_directive, _cpp_get_line, _cpp_get_raw_token, _cpp_glue_header_name, - _cpp_can_paste, _cpp_check_directive, _cpp_check_linemarker, - _cpp_parse_assertion, _cpp_find_answer): Delete. - (VALID_SIGN, ALIGN, POOL_FRONT, POOL_LIMIT, POOL_BASE, POOL_SIZE, - POOL_USED, POOL_COMMIT, struct cpp_chunk, _cpp_lex_token, _cpp_init_pool, - _cpp_free_pool, _cpp_pool_reserve, _cpp_pool_alloc, _cpp_next_chunk, - _cpp_lock_pool, _cpp_unlock_pool, _cpp_test_assertion, - _cpp_handle_directive, DSC): New. - (struct include_file): New member defined. - - (DO_NOT_REREAD, _cpp_begin_message, _cpp_execute_include, - _cpp_compare_file_date): Update. - (_cpp_pop_context, _cpp_get_token, _cpp_free_lookaheads, _cpp_push_token): New. - (_cpp_init_macros, _cpp_cleanup_macros): Rename to _cpp_init_hashtable, - _cpp_cleanup_hashtable. - - * Makefile.in: Remove cppoutput.c. - - * cppoutput.c: Delete - - * fixheader.c (read_scan_file): Update for new cpp_get_token - prototype. - (recognized_function): New argument LINE. - - * scan-decls.c (skip_to_closing_brace, scan_decls): Update for - new cpp_get_token prototype. - - * scan.h (recognized_function): Update prototype. - - * po/POTFILES.in: Remove cppoutput.c. - -2000-10-27 Mark Mitchell - - * c-typeck.c (check_init_type_bitfields): Remove. - (constructor_incremental): Likewise. - (struct constructor_stack): Remove incremental bit. - (struct initializer_stack): Likewise. - (start_init): Don't play with constructor_incremental. - (finish_init): Likewise. - (really_start_incremental_init): Likewise. - (push_init_level): Likewise. - (pop_init_level): Likewise. - (output_init_level): Likewise. - (output_pending_init_elements): Likewise. - -2000-10-21 Mike Coleman - - * c-pragma.c (handle_pragma_pack): Initialize align to -1. - Improve error messages. Correct parsing of - #pragma pack(pop [,id]). Do not check the user-supplied - alignment if we're popping. - - * gcc.dg/pack-test-1.c: New test case. - * gcc.dg/pack-test-2.c: New test case. - * gcc.dg/pack-test-1.h: New file. - -2000-10-27 Neil Booth - - * cpp.texi: Update. - -2000-10-27 Kelley Cook - - * invoke.texi: Document -mintel-syntax - -2000-10-27 Richard Henderson - - * invoke.texi: Document -frename-registers. Add it to -O3. - * toplev.c (rest_of_compilation): Run regrename before ifcvt2. - (enum dump_file_index, dump_file): Update order. - (main): Set flag_rename_registers at -O3. - -2000-10-27 Richard Henderson - - * config/alpha/alpha.h (enum reg_class): Add PV_REG. - (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Update. - (REG_CLASS_FROM_LETTER): Assign it to 'c'. - * config/alpha/alpha.md (call_osf_1): Use it. - (call_value_osf_1): Likewise. - - * config/ia64/ia64.c: Revert 10-23 patch. - (ia64_hard_regno_rename_ok): New. - * config/ia64/ia64-protos.h: Declare it. - * config/ia64/ia64.h (HARD_REGNO_RENAME_OK): Use it. - -2000-10-27 Bernd Schmidt - Richard Henderson - - * regrename.c: Rewrite to handle multi-register modes and - cond_exec instructions. - * Makefile.in (regrename.o): Update dependencies. - * recog.h (struct operand_alternative): Add is_address. - * recog.c (preprocess_constraints) [case 'p']: Set it. - -2000-10-27 Zack Weinberg - - * configure.in: If not NO_MINUS_C_MINUS_O, substitute - OUTPUT_OPTION with '-o $@'. Make zlibdir, zlibinc relative to - top level. Kill oldstyle_subdirs. Do not include - $srcdir/$s/Makefile.in in all_lang_makefiles, but do include - $outputs. Do not run configure.lang from config.status. - Rearrange warning-flag logic to correspond to what the - makefile wants. Put special vax stage1 options in - @stage1_flags@ not @stage1_warn_cflags@. Don't do anything - with extra_c_objs, extra_cxx_objs, or extra_cpp_objs. - (--enable-c-cpplib): AC_SUBST(maybe_cpplib) with "libcpp.a" if - switch is given, nothing otherwise. - * configure.lang: Delete. - - * Makefile.in: Expunge all traces of extra_c_objs, - extra_cxx_objs, and extra_cpp_objs. Set MAYBE_CPPLIB from - @maybe_cpplib@. Add $(MAYBE_CPPLIB) to C_AND_OBJC_OBJS. Set - warning options via a three level scheme so that -pedantic and - -Wtraditional are not used for non-C front ends: LOOSE_WARN, - STRICT1_WARN, STRICT2_WARN -> $(@D)-warn, GCC_WARN_CFLAGS -> - WARN_CFLAGS. Distinguish STAGE1_CFLAGS from BOOT_CFLAGS. - Add -I$(@D) and -I$(srcdir)/$(@D) to INCLUDES. - Set OUTPUT_OPTION, ZLIB, ZLIBINC. Do not set P, - LANG_FLAGS_TO_PASS. Add OUTPUT_OPTION to all object-file - generation rules. Wrap all rules that change the current - directory in parentheses; pmake doesn't spawn a new shell for - each command. Expunge all references to $(P). When one - command depends on another and they're run all at once, use && - to separate them, not ;. Add libgcc_s$(SHLIB_EXT) to files - deleted on make clean. Force OUTPUT_OPTION='-o $@' in stage2 - and beyond. - - * objc/Make-lang.in: Wrap all rules that change the current - directory in parentheses. Expunge all references to $(P). - When one command depends on another and they're run all at - once, use && to separate them, not ;. Add OUTPUT_OPTION to - all object-file generation rules. Delete obsolete variables. - * objc/Makefile.in: Delete. - -2000-10-27 Jakub Jelinek - - * calls.c (expand_call): If sibcall_failure is set during pass 1, - clear tail_call_insns as well. - -2000-10-27 Nick Clifton - - * config/arm/arm-protos.h (arm_function_ok_for_sibcall): Add - prototype. - -2000-10-26 Richard Henderson - - * calls.c (expand_call): Supress sibcall if we have a - BLKmode return in registers. - -2000-10-26 Bernd Schmidt - - * ia64.h (PREFERRED_RELOAD_CLASS): Force floating point constants - into memory. - -2000-10-26 Nathan Sidwell - - * tree.c (make_node, case 't'): Set alignment to that of - char_type_node. - * expr.c (move_by_pieces_ninsns): Abort if some length remains. - -2000-10-25 Mark Mitchell - - * Makefile.in (site.exp): Define HAVE_LIBSTDCXX_V3. - * configure.in (enable-libstdcxx-v3): Arrange to have - HAVE_LIBSTDCXX_V3 substituted into the output files. - -2000-10-25 Richard Henderson - - * recog.c (constrain_operands): Initialize which_alternative - before no alternatives early exit. - - * cse.c (find_comparison_args): Check that we can reverse a - comparison if needed before accepting the substitution. - - * reload.c (find_reloads_address_part): Kill rtx obstack hackery. - - * simplify-rtx.c (simplify_relational_operation): Sign extend - low words before sign extending to high words. - -2000-10-25 Nick Clifton - - * config/mcore/mcore.c: Include config.h before system.h. - -2000-10-25 Ray Essick - - * config/mcore/mcore.md (return): Force function epilogue to - always be generated to work around epilogue suppression bug in - M*Core backend. - -2000-10-25 Joseph S. Myers - - * c-decl.c (grokdeclarator): Move warning for qualified void - return types with -pedantic to when the function type is - constructed. At -W, warn in general for qualified function return - types, except for volatile void. - * invoke.texi: Document this new warning at -W. - -2000-10-25 Neil Booth - - * cpp.texi: Update with implementation-defined behavior and - internal limits. - -2000-10-25 Jakub Jelinek - - * stor-layout.c (layout_type): If TYPE_ALIAS_SET was already set on the - incomplete type force it into alias set 0. - -Wed Oct 25 01:02:44 EDT 2000 John Wehle (john@feith.com) - - * alias.c: Include basic-block.h. - (loop_p): New function. - (mark_constant_function): Use it. - * Makefile.in (alias.o): Update dependencies. - -2000-10-24 Aldy Hernandez - - * config/mn10300/mn10300.c (secondary_reload_class): Treat pseudos - like memory. - -2000-10-24 Jim Wilson - - * expmed.c (store_bit_field): Move integer pun code down after - code that calls emit_move_insn for entire register move. - * stor-layout.c (compute_record_mode): Revert Mar 25, Aug 18, and - Oct 20 changes. Only store mode in TYPE_MODE if RECORD_TYPE. - -2000-10-24 Richard Henderson - - * rtlanal.c (rtx_unstable_p, rtx_varies_p): Don't consider pic - register stable if PIC_OFFSET_TABLE_REG_CALL_CLOBBERED. - -2000-10-24 Aldy Hernandez - - * gcse.c (cprop_insn): do not propagate constants into jump_insn - for machines with CC0 more than once. - -2000-10-24 Richard Henderson , Aldy - - * config/mn10300/mn10300.h (PREFERRED_RELOAD_CLASS): Treat - pseudos just like memory. - -2000-10-24 Alexandre Oliva - - * combine.c (distribute_notes): Discard REG_LIBCALL and REG_RETVAL - when deleting libcall sequence collapsed to a single instruction. - -2000-10-24 Andrew Haley - - * expr.c (do_store_flag): Don't crash if either side of a - comparison is error_mark_node. - -2000-10-24 Jakub Jelinek - - * sibcall.c (purge_mem_unchanging_flag): New function. - (optimize_sibling_and_tail_recursive_calls): Call it. - -2000-10-24 Philipp Thomas - - * Makefile.in (check-po): New target for doing checks in the po - subdir if all languages configured. - (CHECK_TARGETS): Add @CHECK_PO@, replaced with check-po via - configure if NLS is enabled. - * configure.in: If NLS is enabled, substitute CHECK_PO by check-po, - otherwise leave empty. - * configure: Regenerate. - -2000-10-23 Diego Novillo - - * i386.c (print_operand): Handle new 'A' formatting code. - 387 opcodes need suffixes even with -mintel-syntax. - Check for explicit size override (codes 'b', 'w' and 'k'). - (print_operand_address): Check if register prefix is needed when - emitting `ds' segment override. - * i386.h: Add comment about new 'A' formatting code. - * i386.md (jump and call patterns): Emit absolute references using %A. - -2000-10-23 Richard Henderson - - * config/ia64/ia64.c (ia64_expand_prologue): Mark extra - output registers as fixed. - (ia64_function_epilogue): Undo output fixation. - -2000-10-23 Richard Henderson - - * config/alpha/alpha.md: Add names for all unnamed insns; use - define_insn_and_split in some obvious places. - (lda): Remove. - (zero_extendqihi2): Use an expander w/ nonimmediate_operand for BWX. - (zero_extendqisi2, zero_extendqidi2): Likewise. - (zero_extendhisi2, zero_extendhidi2): Likewise. - (abs splitters): Fix match_scratch operand number. - (bcc_reverse): Swap pc & label instead of non-canonical compare. - -2000-10-23 Jim Wilson - - * ia64.c (ia64_print_operand, case 'r'): Correct comment. Handle - CONST_INT. - * ia64.md (cmpsi_adjusted): Use %r3. - (cmpdi_adjusted): Likewise. - -2000-10-23 Diego Novillo - - * config/i386/att.h (ASM_FILE_START): Define. - -2000-10-23 Diego Novillo - - * config/i386/linux.h (ASM_FILE_START): Define. - -Wed Oct 18 11:16:40 2000 Donald Lindsay - - * gcc/configure.in: m68k-coff tm_file should not have libgloss.h, - since this (only) drags in a crt0.o reference that the .ld files - also introduce. - -2000-10-23 Geoff Keating - - * reload1.c (reload_reg_reaches_end_p): A RELOAD_OTHER can - overwrite the value in a RELOAD_FOR_INPUT and other kinds of - reloads just like an RELOAD_FOR_OUTPUT would. - - * local-alloc.c (update_equiv_regs): Add an abort(). When - deleting or moving insns, update reg_equiv[regno].init_insns. - -2000-10-23 Mark Mitchell - - * c-tree.texi: Improve documentation for IF_STMTs and related - conditional statements. - -2000-10-22 Mark Mitchell - - * expr.c (do_preexpand_calls): Remove. - (same_from_p): Don't use CALL_EXPR_RTL. - (expand_expr): Don't call preexpand_calls, or use CALL_EXPR_RTL. - (preexpand_calls): Remove. - * tree.c (first_rtl_op): Remove CALL_EXPR case. - (unsave_expr_1): Likewise. - * tree.def (CALL_EXPR): Give it only two slots. - * tree.h (CALL_EXPR_RTL): Remove. - -2000-10-21 Chandrakala Chavva - - * libgcc-std.ver (__addvsi3, __addvdi3, __subvsi3, __subvdi3, - __mulvsi3, __negvsi2, __negvdi2, __absvsi2, __absvdi2, __mulvdi3): - New functions. - -2000-10-22 Alexandre Oliva - - * calls.c (combine_pending_stack_adjustment_and_call): Don't - adjust stack when unadjusted_alignment ends up as zero. - -2000-10-22 Joseph S. Myers - - * fixinc/genfixes: Remove EGCS reference. - * install.texi: Remove EGCS reference. - * INSTALL: Regenerate. - -2000-10-22 Mark Mitchell - - * tree.h (TYPE_IS_SIZETYPE): Add more documentation. - -2000-10-21 Joseph S. Myers - - * diagnostic.c: Remove EGCS reference in comment. - -Sat Oct 21 08:24:25 2000 Richard Kenner - - * loop.c (strength_reduce): Fix error in last change. - -2000-10-20 David Edelsohn - - * Makefile.in (SHLIB_NM_FLAGS): New. - (libgcc.mk): Pass it. - * mklibgcc.in (libgcc.map): Use it. - - * rs6000/t-aix43 (SHLIB_EXT, SHLIB_LINK, SHLIB_LIBS, - SHLIB_MKMAP, SHLIB_MAPFILES, SHLIB_NM_FLAGS): New. - -2000-10-20 Kaveh R. Ghazi - - * mips.h (REG_CLASS_FROM_LETTER): Cast array arg to unsigned char. - - * sparc.c (load_pic_register): Delete unused varaible. - - * libgcc2.c (__addvsi3): Delete unused variable. - - * libgcc2.h (__absvsi2, __absvdi2, __addvsi3, __addvdi3, - __subvsi3, __subvdi3, __mulvsi3, __mulvdi3, __negvsi2, - __negvdi2): Prototype. - - * ssa.c (apply_delayed_renames): Avoid undefined operation. - - * toplev.c (display_target_options): Make static to match - prototype. Delete empty declaration. - -2000-10-20 Tom Tromey - - * cppspec.c (DEFAULT_WORD_SWITCH_TAKES_ARG): Added -MF and -MT. - * gcc.c (DEFAULT_WORD_SWITCH_TAKES_ARG): Added -MF and -MT. - -Fri Oct 20 17:05:49 2000 Richard Kenner - - * expr.c (expand_expr, case SAVE_EXPR): Set RTX_UNCHANGING_P on - returned MEM. - (expand_expr_unaligned, case ARRAY_REF): Check that index is - a constant before comparing it; use tree_low_cst. - * tree.c (save_expr): Set TREE_READONLY. - (substitute_expr): Return inside of NON_LVALUE_EXPR. - (build, build1): Set TREE_READONLY if all operands are. - (build_index_type): If upper bound is a negative number, lower - bound is zero and sizetype is unsigned, use upper bound of one and - lower of zero. - -2000-10-20 David Edelsohn - - * gcc.c (process_command, main): Use "because" instead of - "since" in error messages. - -Fri Oct 20 13:33:16 2000 Richard Kenner - - * stor-layout.c (compute_record_mode): Use tree_low_cst. - Don't use mode of field for record unless sizes are the same. - (layout_type, case ARRAY_TYPE): Remove special bounds handling - previously added for Ada; also change to using host_integerp - and tree_low_cst. - - * loop.c (strength_reduce): Show when new register made for - giv is known to be a pointer and its aligment if so and known. - (loop_dump_aux): Show VERBOSE parameter unused. - - * gcse.c (set_hash_table_size): Now unsigned. - * sdbout.c (template_name_p): Add "const" to avoid warnings. - (sdbout_record_type_name, plain_type_1, sdbout_symbol): Likewise. - (sdbout_one_type, sdbout_parms, sdbout_reg_parms): Likewise. - (sdbout_end_epilogue): Remove variable NAME. - * system.h (getopt): Add default definition. - * config/alpha/alpha.c (print_operand): Don't continue processing - after issuing error. - (summarize_insn): Avoid use of UL in constant. - - * function.c (locate_and_pad_parm): Use host_integerp and tree_low_cst. - - * fold-const.c (force_fit_type): Unsigned values can overflow - if they are sizetype. - (int_const_binop): Don't use cache if overflows. - -2000-10-20 Richard Henderson - - * function.c (locate_and_pad_parm): Zero alignment_pad. - - * regrename.c (rr_replace_reg): Rewrite to use recog_data to - perform substitutions, and apply_change_group to see if it worked. - -Fri Oct 20 13:33:16 2000 Richard Kenner - - * dwarf2out.c (add_bound_info): Also ignore COND_EXPR. - - * combine.c (struct undo): Change int to unsigned int. - (do_SUBST_INT): Args are unsigned int. - (make_extraction, force_to_mode): Use proper type when forming mask. - (make_field_assignment): Likewise. - -2000-10-20 Joseph S. Myers - - * c-common.c (check_format_info_recurse): Extract string constant - initializers from non-volatile constant arrays and check them as - formats. - * c-typeck.c (decl_constant_value): Don't check pedantic or check - for DECL_MODE (decl) != BLKmode. - (decl_constant_value_for_broken_optimization): New function which - includes these checks. - (default_conversion, convert_for_assignment, digest_init): Use - decl_constant_value_for_broken_optimization instead of - decl_constant_value. - -2000-10-20 Mark Mitchell - - * tree.h (DECL_ALIGN_UNIT): New macro. - -2000-10-14 Marek Michalkiewicz - - * config/avr/avr-protos.h (avr_output_bld): New. - (out_shift_with_cnt): Add t_len argument. - * config/avr/avr.c (avr_num_arg_regs): Remove -mpack-args. - (output_movqi, output_movhi, output_movsisf): Optimize loading - any constant with exactly one bit set to NO_LD_REGS. - (out_shift_with_cnt): Optimize output code for size or speed, - depending on optimize_size. Handle small shift counts as well - (if not hand-optimized in ?sh??i3_out). Shifts can be done - with or without a scratch register, with help of __tmp_reg__ - or __zero_reg__ if necessary. Add T_LEN argument to pass the - length of TEMPLATE in words, return total insn length in *LEN. - (ashlqi3_out, ashrqi3_out, lshrqi3_out): Change all calls to - out_shift_with_cnt to work with the above change. - (ashlhi3_out, ashlsi3_out, ashrhi3_out, ashrsi3_out, lshrhi3_out, - lshrsi3_out): Likewise. Optimize more known shift count cases. - Remove cases already well optimized in out_shift_with_cnt. - (avr_output_bld): New function. - * config/avr/avr.h (MASK_PACK_ARGS, TARGET_PACK_ARGS): Remove. - (TARGET_SWITCHES): Remove -mpack-args backward compatibility. - * config/avr/avr.md (*reload_inqi, *reload_inhi, *reload_insi): - Add reload_completed to insn condition - only for peepholes. - (ashlqi3, ashrqi3, lshrqi3): Correct insn length for shift counts - in a register or memory. - (ashlhi3, ashlsi3, ashrhi3, ashrsi3, lshrhi3, lshrsi3): Likewise. - Do not require a scratch register. - (*ashlhi3_const, *ashlsi3_const, *ashrhi3_const, *ashrsi3_const, - *lshrhi3_const, *lshrsi3_const): New insns and matching peepholes. - Optimize shifts by known count using a scratch register, but only - if one is still available after register allocation. - -2000-10-20 J. David Anglin - - * t-vax: New file. Don't build modules from libgcc1.c. - -Fri Oct 20 00:57:00 EDT 2000 John Wehle (john@feith.com) - - * alias.c: (mark_constant_function): Don't check pure functions. - Initialize and end alias analysis. - (nonlocal_mentioned_p): Rename from nonlocal_reference_p. - Don't make a special exception for recursion. Handle - UNSPEC_VOLATILE. Don't assume ASM_OPERANDS is non-local - unless it's volatile. - - * local-alloc.c (equivalence): New structure. - (reg_equiv): Define. - (contains_replace_regs): Remove array and use - field in reg_equiv. - (memref_referenced_p): Likewise. - (no_equiv): Likewise. - (update_equiv_regs): Likewise. - - (equiv_init_varies_p, - equiv_init_movable_p): New functions. - (update_equiv_regs): Use them. Use rtx_varies_p - instead of function_invariant_p. Process insns - from end to beginning. Allow a REG_EQUIV insn - within the same loop as a use to be moved, also - allow it to be moved out of a loop. Update - REG_DEAD notes when substituting into an insn. - -2000-10-19 Jim Wilson - - * c-decl.c (start_decl): Check for error_mark_node type before using - COMPLETE_TYPE_P. - (finish_decl): Likewise. Don't give an error if decl type is - already error_mark_node. - - * haifa-sched.c (compute_trg_info): Add explanatory comments. - New local update_blocks. Use update_blocks to remove duplicates - when computing update blocks. Check for bblst_table overflow. - (schedule_block): Add explanatory comment. Reduce bblst_size by - factor of 2. - * config/ia64/ia64.md (movdi_symbolic): Document loss of REG_LABEL - notes. - -2000-10-19 Chandrakala Chavva - - * libgcc2.c (_mulvsi3): Change variables u and v to a and b. - -2000-10-19 Chandrakala Chavva - - * expmed.c: Minor corrections in comments. - * invoke.texi: Added desciption for the new option -ftrapv. - -2000-10-19 Chandrakala Chavva - - * libgcc2.c: Added the missing #endif. - -Thu Oct 19 14:25:11 MET DST 2000 Jan Hubicka - - * i386.h (CONST_OK_FOR_LETTER): Re-add 'N'; document. - -2000-10-18 Chandrakala Chavva - - * expmed.c (expand_mult): Don't do synth_mult optimization for -ftrapv. - Use smulv_optab for -ftrapv. - (expand_mult_highpart): Use unsigned multiply. - (expand_divmod): Special-case division by -1. - For EXACT_DIV_EXPR, do right shift first, then the multiply. - For complex divide, use abs with unsigned result. - * expr.c (force_operand): Use unsigned multiply. - (expand_expr): Use overflow-trapping optabs for signed types if - flag_trapv. - If flag_trapv, don't generate a recursive call with EXPAND_SUM - if the type is signed and the original call wasn't EXPAND_SUM or - EXPAND_INITIALIZER. - * expr.h (addv_optab, subv_optab, smulv_optab, sdivv_optab): Declare. - (negv_optab, absv_optab): Declare. - * flags.h (flag_trapv): Declare. - * genopinit.c (optabs): Add entries for addv_optab, subv_optab, - smulv_optab, sdivv_optab, negv_optab and absv_optab. - (gen_insn): Interpret '$P' as requiring an integer mode, - including partial integer modes. - * loop.c (emit_iv_add_mult): Use unsigned expand_mult_add. - (product_cheap_p): Use unsigned expand_mult. - * optabs.c (addv_optab, subv_optab, smulv_optab, sdivv_optab): Define. - (negv_optab, absv_optab): Define. - (expand_binop): Use overflow-trapping optabs for signed types if - flag_trapv. - Handle negv_optab libe neg_optab. - (expand_abs): Take result_unsignedp argument instead of unsignedp one. - Use overflow-trapping optabs for signed result if flag_trapv. - (expand_complex_abs): Use overflow-trapping optabs for signed types if - flag_trapv. - Don't open-code complex absolute-value operation for flag_trapv. - (init_optabs): Initialize addv_optab, subv_optab, smulv_optab, - sdivv_optab, negv_optab and absv_optab. - * toplev.c (flag_trapv): Define. - (lang_independent_options f_options): Include flag_trapv. - * tree.h (TYPE_TRAP_SIGNED): Define. - * libgcc2.c (__addvsi3, __addvdi3, __subvsi3,__subvsi3, __subvdi3, - __mulvsi3, __negvsi2, __negvdi2, __absvsi2, __absvdi2, __mulvdi3): - New functions. - * Makefile.in: add _absvsi2 _absvdi2 _addvsi3 _addvdi3 _subvsi3 - _subvdi3 _mulvsi3 _mulvdi3 _negvsi2 _negvdi2. - -2000-10-18 Geoffrey Keating - David V. Henkel-Wallace - - * config/i386/t-netware: Bring in from the Red Hat tree. - * config/i386/netware.h: Likewise. - * config/netware.h: Likewise. - * config/rs6000/netware.h: Delete. - * configure.in: Add i[34567]86-*-netware. - * configure: Hand-edit to match configure.in change. - -2000-10-18 Mark Mitchell - - * c-common.h (flag_no_builtin): Declare. - (flag_no_nonansi_builtin): Likewise. - (c_common_nodes_and_builtins): Change prototype. - * c-common.c (flag_no_builtin): New variable. - (flag_no_nonansi_builtin): Likewise. - (c_common_nodes_and_builtins): Remove parameters. Adjust - accordingly. - * c-decl.c (flag_no_builtin): Remove. - (flag_no_nonansi_builtin): Likewise. - (init_decl_processing): Adjust call to - c_common_nodes_and_builtins. - -2000-10-18 Marc Espie - - * tm.texi (LIBGCC_SPEC): Synch with reality. - -2000-10-18 Joseph S. Myers - - * c-common.c (check_format_types): Check for writing through a - NULL pointer argument. - -2000-10-18 Hans-Peter Nilsson - - * tm.texi (Exception Region Output): Document - DWARF_CIE_DATA_ALIGNMENT. - * dwarf2out.c (DWARF_CIE_DATA_ALIGNMENT): Wrap definition in - #ifndef. - [ENABLE_CHECKING] (reg_save): Abort if offset is not a multiple of - DWARF_CIE_DATA_ALIGNMENT. - -2000-10-18 Michael Hayes - - * basic-block.h (struct loop): Delete fields pre_header_root - and pre_header_trace and replace with pre_header_edges - and num_pre_header_edges. - * flow.c (flow_loop_dump): Dump pre_header_edges. - (flow_loops_free): Free pre_header_edges. - (flow_loop_pre_header_scan): Calculate pre_header_edges. - -2000-10-18 Gerald Pfeifer - - * contrib.texi: Update references to steering committee members - and Jeff Law's entry. - -2000-10-18 Joseph S. Myers - - * c-common.c (CPLUSPLUS_STD_VER, C_STD_VER, C_STD_NAME): Define. - (maybe_read_dollar_number, check_format_info_main): Use them for - pedantic warning messages. - -2000-10-18 Joseph S. Myers - - * c-common.c (check_format_info_main): Minor cleanup: move - variables into inner scopes; initialize declarations where - appropriate; don't hardcode "scanf" name on warning for zero - width. - -2000-10-17 Mark Mitchell - - * c-common.c (back_end_hook): New variable. - * c-common.h (back_end_hook): Declare it. - * c-lang.c (finish_file): Use it. - - * emit-rtl.c (init_emit_once): Initialize the const_int_htab - earlier. - -2000-10-18 Jan Hubicka - - * i386.c (ix86_comparison_operator, put_condition_code, - ix86_match_ccmode, ix86_cc_mode): Handle CCRCmode. - (ix86_expand_strlensi_unroll_1): Use CCRCmode. - * i386.h (EXTRA_CC_MODES): Add CCRCmode. - * i386.md (adddi and negdi splitter): Use CCRCmode. - (add?i_3, add?i_4, add?i_5): Use CCRCmode; swap operands - (subsi3_carry): add '*' - (addsi3_carry_rc, subsi3_carry_rc, x86_movsicc_0_m1_rc): New. - (cmp to add peep2): Use CCRCmode; swap operands. - -2000-10-18 Kazu Hirata - - * h8300.c: Fix a comment typo. - (round_frame_size): New. - (compute_saved_regs): Likewise. - (push): Likewise. - (pop): Likewise. - (push_order): Remove. - (pop_order): Likewise. - (function_prologue): Rearrange code for readability. - (function_epilogue): Likewise. - - * config/h8300/h8300.md: Remove an unnecessary sign_extend - expander that is used when not optimizing. Output a tab after - each assembly insns. - - * reorg.c: Fix formatting. - -2000-10-17 Joern Rennecke - - * reload1.c (move2add_note_store): Check for simple - auto-inc in destination. - -2000-10-17 Michael Chastain - - * config/i386/i386-aout.h: define INT_ASM_OP. - -Tue Oct 17 20:11:08 2000 Alan Modra - - * pa.c (print_operand): Handle case 'c' for .vtable_inherit - -Tue Oct 17 20:05:51 2000 Martin Buchholz - - * i370.md: Fix spelling typo. - -2000-10-17 Franz Sirl - - * function.c (locate_and_pad_parm): Don't align stack unconditionally. - Fixes execute/20001017-1.c on powerpc-linux-gnu. - - * expr.c (store_constructor): Apply MEM_ALIAS_SET to MEMs only. - * rs6000/rs6000.c (rs6000_hash_constant): Use X0INT to access a - LABEL_REF. - - * rs6000/rs6000.h (NO_DOLLAR_IN_LABEL, DOLLARS_IN_IDENTIFIERS, - ENCODE_SECTION_INFO, ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Move from - here... - * rs6000/aix.h: ...to here. - * rs6000/linux.h (ASM_APP_ON, ASM_APP_OFF): Define to Linux-style. - -2000-10-17 Jakub Jelinek - - * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Reload gp if needed. - - * config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): Always use call, make - sure linker can relax even the delay slot mov %g1,%o7, fix output - formating. - -2000-10-17 Kazu Hirata - - * config/h8300/h8300.md: Remove an unnecessary zero_extend - expander that is used when not optimizing. Output a tab after - each assembly insns. - -2000-10-17 Chandrakala Chavva - - * gcc.c: New options --target-help. - (process_command): Added code to parse this new option. - * toplev.c (display_target_options): New function to support the - above new option. - * cppinit.c (new_pending_directive) : New option OPT_target__help. - (cpp_handle_option): Support this new option. - * invoke.texi: Added notes about --target-help option. - -2000-10-17 Graham Stott - - * config/i386/i386.md (testqi_1): Add missing operand prefix - for operand 0. - * config/i386/i386-protos.h: Add missing prototype. - -2000-10-17 Diego Novillo - - * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Symbol - _GLOBAL_OFFSET_TABLE should not have a $ prefix when - using -mintel-syntax. - -2000-10-17 Joseph S. Myers - - * c-common.c (FMT_FLAG_DOLLAR_MULTIPLE): Define. - (format_types): Use it for printf. - (maybe_read_dollar_number): Add parameter for the kind of format - involved. Warn for multiple use for arguments if this is - inappropriate for the kind of format involved. - (check_format_info_main): Update calls to maybe_read_dollar_number. - -2000-10-17 J. David Anglin - - * inclhack.def (hpux_maxint): Also apply fix to values.h. - * fixincl.x: Rebuilt. - -2000-10-17 Alexandre Oliva - - * genrecog.c (write_switch): Return the first condition that needs a - label. - -2000-10-17 Bernd Schmidt - - * c-tree.h (warn_sequence_point): Move declaration to... - * c-common.h (warn_sequence_point): ... here. - * c-decl.c (warn_sequence_point): Move definition to... - * c-common.c (warn_sequence_point): ... here. - (struct reverse_tree): New. - (reverse_list, reverse_max_depth): New static variables. - (build_reverse_tree, common_ancestor, modify_ok - verify_sequence_points): New functions. - (c_expand_expr_stmt): Call verify_sequence_points if -Wsequence-point. - * c-typeck.c (check_modify_expr): Delete. - (build_modify_expr): Don't call it. - -2000-10-17 Joseph S. Myers - - * c-common.h (warn_missing_format_attribute): New variable. - * c-decl.c (warn_missing_format_attribute): New variable. - (c_decode_option): Decode -Wmissing-format-attribute and - -Wno-missing-format-attribute. - * c-common.c (check_function_format): If - -Wmissing-format-attribute, give a warning where a vprintf or - vscanf function is called by a function without its own printf or - scanf attribute. - * toplev.c (documented_lang_options): Add - -Wmissing-format-attribute. - * invoke.texi: Document -Wmissing-format-attribute. - -2000-10-17 Marc Espie - - * invoke.texi (-shared): Insist on requiring code generation flags - to be used along with -shared, and document the subtle failure that - may occur otherwise. - -2000-10-16 J. David Anglin - - * pa.md (return_internal): Move `use' after `return'. - -2000-10-16 Theodore Papadopoulo - - * machmode.def: Correct comment. - -2000-10-16 Rodney Brown - - * print-rtl.c (print_rtx_head): Constify. - * rtl.h (print_rtx_head): Similarly. - - * config/pa/pa/pa-protos.h (output_64bit_and, output_64bit_ior): - Constify char * return value. - * config/pa/pa/pa.c - (output_64bit_and, output_64bit_ior): Constify char * return value. - (pa_can_combine_p): Make static. - (function_arg): Decorate unused `named' argument. Fix comment typo. - (function_arg_partial_nregs): Decorate unused `named' argument. - -2000-10-16 Joseph S. Myers - - * c-common.c (format_check_results): New structure. - (finish_dollar_format_checking): Adjust to take a - format_check_results * parameter. - (check_format_info, check_format_info_recurse, - check_format_info_main): Split check_format_info into three - functions, the main checking going in check_format_info_main. - Recurse when any reduction of the format string argument towards a - string literal is done; go down both branches of a conditional - expression. Don't warn for extra format arguments or empty format - strings if they only occur in some branches of a conditional - expression. - -2000-10-16 Kazu Hirata - - * config/h8300/h8300.c: Remove obstack. Include ggc.h. - -2000-10-16 Jakub Jelinek - - * rtlanal.c (may_trap_p): Check operand modes of COMPARE. - -2000-10-15 Diego Novillo - - * i386.md (*movsi_or): Switch operand order for intel syntax. - -2000-10-14 Joseph S. Myers - - * PROBLEMS: Remove. - - * gcc.texi (Contributing): Update. - -2000-10-13 Diego Novillo - - * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Output final jump using - appropriate assembler dialect. - -2000-10-13 Alexandre Oliva - - * c-common.c (c_expand_builtin): PARAMS-ize prototype. - -2000-10-12 Marek Michalkiewicz - - * config/avr/avr.c (output_movhi, output_movsisf): Fix loading - constants 1 and 2 to NO_LD_REGS. - -2000-10-13 Kaveh R. Ghazi - - * Makefile.in (c-parse.c, tradcif.c): Create atomically. - - * objc/Make-lang.in (objc-parse.c): Likewise. - -2000-10-13 Richard Earnshaw - - * arm.c: Include obstack.h - (minipool_obstack, minipool_startobj): Define. - (arm_add_gc_roots): Initialize them. - (create_fix_barrier): Use our new obstack. - (push_minipool_barrier, push_minipool_fix): Likewise. - (arm_reorg): Release obstack memory. - -2000-10-13 Jakub Jelinek - - * config/sparc/sparc.md (nonlocal_goto_receiver): Remove. - (prologue, exception_receiver, builtin_setjmp_receiver): New - patterns. - * config/sparc/sparc.h (FINALIZE_PIC): Remove. - * config/sparc/sparc-protos.h (finalize_pic): Remove. - (load_pic_register): New prototype. - * config/sparc/sparc.c (pic_setup_code): Remove. - (finalize_pic): Rename to... - (load_pic_register): ...this function. - Don't look for nonlocal_goto_receivers and emit pic setup code - directly. Don't check current_function_uses_pic_offset_table. - -2000-10-13 Richard Earnshaw - - * tree.h (struct obstack): Declare. - -2000-10-12 Mark Mitchell - - Remove obstacks. - * Makefile.in (ggc-callbacks.o): Remove target. - (flow.o): Depend on GGC_H. - * alias.c (init_alias_analysis): - Remove ggc_p conditionals. - (end_alias_analysis): Likewise. - * basic-block.h (init_flow): New function. - (allocate_reg_life_data): Declare. - * bb-reorder.c (function_obstack): Replace with ... - (flow_obstack): ... new variable. - (fixup_reorder_chain): Use it. - * c-decl.c (ggc_p): Remove. - (caller-save.c): Don't call oballoc/obfree. - * combine.c (struct - undobuf): Remove storage. - (try_combine): Don't call oballoc. - (undo_all): Don't call obfree. - * cse.c (insert): Use xmalloc, not - oballoc. - (cse_main): Adjust accordingly. - * dwarf2out.c (save_rtx): Remove - obstack code. - (dwarf2out_init): Remove ggc_p conditionals. - * emit-rtl.c (rtl_obstack): Remove. - (gen_rtx_CONST_INT): Remove ggc_p conditionals. - (make_insn_raw): Likewise. - (emit_insn_before): Likewise. - (emit_insn_after): Likewise. - (emit_insn): Likewise. - (gen_sequence): Likewise. - (copy_insn_1): Remove handling of `b' RTL components. - (init_emit_once): Remove ggc_p conditionals. - * except.c (create_rethrow_ref): Don't fool with obstacks. - (add_partial_entry): Likewise. - (call_get_eh_context): Likewise. - (begin_protect_partials): Likewise. - (protect_with_terminate): Likewise. - * explow.c - (plus_constant_wide): Likewise. - * expr.c (init_expr_once): - Likewise. - (emit_block_move): Likewise. - (clear_storage): Likewise. - (expand_expr): Likewise. - * flow.c (function_obstack): Remove. - (flow_obstack): New variable. - (flow_firstobj): Likewise. - (create_base_block): Use the flow_obstack. - (split_block): Likewise. - (split_edge): Likewise. - (calculate_global_regs_live): Likewise. - (allocate_bb_life_data): Make it static. Likewiwse. - (init_flow): New function. - (size_int_type_wide): Remove ggc_p conditionals. - * function.c - (push_function_context_to): Don't call save_tree_status. - (pop_function_context_from): Or restore_tree_status. - (assign_stack_local_1): Don't call push_obstacks. - (find_fixup_replacement): Use xmalloc. - (fixup_var_refs_insns): Free the storage. - (insns_for_mem_walk): Don't mess with obstacks. - (instantiate_decls): Likewise. - (trampoline_address): Likewise. - (expand_function_end): Likewise. - * function.h (sturct function): - Remove obstack-related variables. - (save_tree_status): Don't declare. - (restore_tree_status): Likewise. - * gcse.c (compute_can_copy): - Don't call oballoc/obfree. - * genattrtab.c (operate_exp): Remove - ggc_p conditionals. - (simplify_cond): Likewise. - (simplify_test_exp): Don't mess with obstacks. - (optimize_attrs): Likewise. - * gengenrtl.c (gendef): Don't include - ggc_p conditionals. - * ggc-callbacks.c (ggc_p): Remove. - * ggc-none.c (ggc_p): Remove. - * ggc.h (ggc_p): Don't declare. - * integrate.c (save_for_inline): Don't mess with obstacks. - (integrate_decl_tree): Likewise. - (output_inline_function): Likewise. - * lists.c - (init_EXPR_INSN_LIST_cache): Likewise. - * loop.c (temp_obstack): - Remove. - (rtl_obstack): Likewise. - (init_loop): Don't mess with obstacks. - (reg_address_cost): Free BIVs and GIVs. - (check_insns_for_bivs): Use xmalloc, not oballoc. - (find_mem_givs): Likewise. - (record_biv): Likewise. - (general_induction_var): Likewise. - (product_cheap_p): Likewse. - * optabs.c (init_one_libfunc): Remove - ggc_p conditional. - * print-tree.c (debug_tree): Don't use - oballoc/obfree. - (print_node): Likewise. - * profile.c (output_func_start_profiler): - Remove call to temporary_allocation. - * reload1.c - (eliminate_regs_in_insn): Don't mess with obstacks. - * resource.c - (mark_target_live_regs): Use xmalloc. - (free_resource_info): Free the memory. - * rtl.c (rtl_obstack): - Remove. - (rtvec_alloc): Don't mess with obstacks. - (rtx_alloc): Likewise. - (rtx_free): Remove. - (copy_rtx): Don't handle `b' cases. - (read_rtx): Use a local rtl_obstack. - * rtl.h (oballoc): Remove. - (obfree): Likewise. - (pop_obstacks): Likewise. - (push_obstacks): Likewise. - (allocate_bb_life_data): Likewise. - (allocate_reg_life_data): Likewise. - (rtx_free): Likewise. - * sdbout.c (sdbout_queue_anonymous_type): - Use tree_cons, not saveable_tree_cons. - * simplify-rtx.c - (cselib_init): Don't mess with obstacks. - * stmt.c - (mark_block_nesting): Mark the label_chain. - (epxand_label): Use ggc_alloc, not oballoc. - (clear_last_expr): Don't mess with obstacks. - (expand_decl_cleanup): Likewise. - (expand_dcc_cleanup): Likewise. - (expand_dhc_cleanup): Likewise. - (expand_anon_union_decl): Likewise. - (add_case_node): Use xmalloc, not oballoc. - (free_case_nodes): New function. - (expand_end_case): Call it. - * stor-layout.c (layout_type): Don't - mess with obstacks. - (layout_type): Likewise. - * toplev.c (wrapup_global_declarations): - Likewise. - (compile_file): Remove ggc_p conditionals. - (rest_of_compilation): Call init_flow. Remove ggc_p conditionals. - (decode_f_option): Remove ggc_p conditionals. - * tree.c - (function_maybepermanent_obstack): Remove. - (maybepermanent_obstack): Likewise. - (function_obstack): Likewise. - (tmeporary_obstack): Likewise. - (momentary_obstack): Likewise. - (temp_decl_obstack): Likewise. - (saveable_obstack): Likewise. - (rtl_obstack): Likewise. - (current_obstack): Likewise. - (expression_obstack): Likewise. - (struct obstack_stack): Likewise. - (obstack_stack): Likewise. - (obstack_stack_obstack): Likewise. - (maybepermanent_firstobj): Likewise. - (temporary_firstobj): Likewise. - (momentary_firstobj): Likewise. - (temp_decl_firstobj): Likewise. - (momentary_function_firstobj): Likewise. - (all_types_permanent): Likewise. - (struct momentary_level): Likewise. - (momentary_stack): Likewise. - (init_obstacks): Remove initialization of removed obstacks. - (save_tree_status): Remove. - (restore_tree_status): Likewise. - (temporary_allocation): Liekwise. - (end_temporary_allocation): Liekwise. - (resume_temporary_allocation): Likewise. - (saveable_allocation): Likewise. - (push_obstacks): Likewise. - (push_obstacks_nochange): Likewise. - (pop_obstacks): Likewise. - (allocation_temporary_p): Likewise. - (permanent_allocation): Likewise. - (preserve_data): Likewise. - (preserve_initializer): Likewise. - (rtl_in_current_obstack): Likewise. - (rtl_in_saveable_obstack): Likewise. - (oballoc): Likewise. - (obfree): Likewise. - (savealloc): Likewise. - (expralloc): Likewise. - (print_obstack_name): Likewise. - (debug_obstack): Likewise. - (object_permanent_p): Likewise. - (push_momentary): Likewise. - (perserve_momentary): Likewise. - (clear_momentary): Likewise. - (pop_momentary): Likewise. - (pop_momentary_nofree): Likewise. - (suspend_momentary): Likewise. - (resume_momentary): Likewise. - (make_node): Don't set TREE_PERMANENT. - (copy_node): Remove ggc_p conditionals. Don't set TYPE_OBSTACK. - Don't set TREE_PERMANENT. - (get_identifier): Remove ggc_p conditionals. - (build_string): Likewise. - (make_tree_vec): Likewise. - (build_decl_list): Remove. - (build_expr_list): Likewise. - (tree_cons): Remove ggc_p conditionals. - (decl_tree_cons): Remove. - (expr_tree_cons): Likewise. - (perm_tree_cons): Likewise. - (temp_tree_cons): Likewise. - (saveable_tree_cons): Likewise. - (build1): Remove ggc_p conditionals. - (build_parse_node): Likewise. - (build_type_attribute_variant): Don't mess with obstacks. - (build_type_copy): Likewise. - (type_hash_canon): Likewise. - (build_pointer_type): Likewise. - (build_reference_type): Likewise. - (build_index_type): Likewise. - (build_range_type): Likewise. - (dump_tree_statistics): Don't print obstack information. - * tree.h - (struct tree_common): Remove permanent_flag. - (TREE_PERMANENT): Remove. - (TREE_SET_PERMANENT): Likewise. - (TYPE_OBSTACK): Likewise. - (struct tree_type): Remove obstack. - (oballoc): Remove. - (savealloc): Likewise. - (build_decl_list): Likewise. - (build_expr_list): Likewise. - (perm_tree_cons): Likewise. - (temp_tree_cons): Likewise. - (saveable_tree_cons): Likewise. - (decl_tree_cons): Likewise. - (expr_tree_cons): Likewise. - (suspend_momentary): Likewise. - (allocation_temporary_p): Likewise. - (resume_momentary): Likewise. - (push_obstacks_nochange): Likewise. - (permanent_allocation): Likewise. - (push_momentary): Likewise. - (clear_momentary): Likewise. - (pop_momentary): Likewise. - (end_temporary_allocation): Likewise. - (pop_obstacks): Likewise. - (push_obstacks): Likewise. - (pop_momentary_nofree): LIkewise. - (preserve_momentary): Likewise. - (saveable_allocation): Likewise. - (temporary_allocation): Likewise. - (resume_temporary_allocation): Likewise. - (perserve_initializer): Likewise. - (debug_obstack): Likewise. - (rtl_in_current_obstack): Likewise. - (rtl_in_saveable_obstack): Likewise. - (obfree): Likewise. - * varasm.c (current_obstack): Remove. - (saveable_obstack): Remove. - (rtl_obstack): Remove. - (immed_double_const): Don't mess with obstacks. - (immed_real_cons): Likewise. - (output_constant_def): Likewise. - (init_varasm_status): Use xcalloc. - (mark_pool_constant): Mark the pool constant itself. - (free_varasm_status): Free memory. - (decode_rtx_const): Call bzero directly, rather than expanding it - inline. - (record_rtx_const): Don't mess with obstacks. - (force_const_mem): Likewise. - * config/arm/arm.c (arm_encode_call_attribute): Remove ggc_p - conditionals. - (aof_pic_entry): Likewise. - * config/ia64/ia64.c (ia64_encode_section_info): Likewise. - * config/m32r/m32r.c (m32r_encode_section_info): Likewise. - * config/pa/pa.c (saveable_obstack): Remove. - (rtl_obstack): Likewise. - (current_obstack): Likewise. - (output_call): Don't mess with obstacks. - (hppa_encode_label): Remove ggc_p conditionals. - * config/romp/romp.c (get_symref): Don't mess with obstacks. - * config/rs6000/rs6000.c (output_toc): Remove ggc_p conditional. - (rs6000_encode_section_info): Likewise. - * config/sh/sh.c (get_fpscr_rtx): Likewise. - -Thu Oct 12 16:02:31 MET DST 2000 Jan Hubicka - - * i386.md (adddi3, subdi3 splitters): Update for new pattern. - (addsi3_cc, addqi3_cc, subsi3_cc): Remove - (addsi3_carry): Canonicalize. - (addqi_5): Remove '*'. - (sbb pattern): Canonicalize. - - * i386.md (cmp to inc/add peep2): New. - -2000-10-12 Richard Earnshaw - - * bb-reorder.c (reorder_basic_blocks): Allocate an aux block for - the exit block. - -2000-10-12 Joseph S. Myers - - * gcc.texi: Merge in contents of README.TRAD and TESTS.FLUNK. - * README.TRAD, TESTS.FLUNK: Remove. - -2000-10-12 Joseph S. Myers - - * c-common.c (decl_attributes): Don't allow strftime formats with - first_arg_num nonzero. - (check_format_info): Set wanted_type and wanted_type_name to zero - before they are possibly assigned and used. - -2000-10-12 Joseph S. Myers - - * c-common.c (scanf_flag_specs): Add flags ' and I. - (strftime_flag_pairs): Disallow any pair of the _, - and 0 flags, - or the ^ and # flags together. - (scan_char_table): Handle the ' and I flags. - (format_types): Add ' and I flags for scanf. - -2000-10-12 Joseph S. Myers - - * c-common.c (print_char_table): Use the unpromoted type for - lengths "h" and "hh" with conversions dioxXu. - (check_format_types): Apply the default argument promotions where - the wanted type is not a pointer target. - -2000-10-11 Michael Meeks - Joseph S. Myers - - * c-typeck.c (check_modify_expr): New function. - (build_modify_expr): Call it if warn_sequence_point. - * c-decl.c (warn_sequence_point): New variable. - (c_decode_option): Handle -Wsequence-point and - -Wno-sequence-point. Enable -Wsequence-point as part of -Wall. - * c-tree.h (warn_sequence_point): Declare. - * invoke.texi (-Wsequence-point): Document. - * toplev.c (documented_lang_options): Add -Wsequence-point and - -Wno-sequence-point. - Original work by Michael Meeks, 16 Jun 1998. - -Wed Oct 11 06:15:41 2000 Richard Kenner - - * tree.c (get_narrower): Don't look at precision of field if - not laid out yet. - -Tue Oct 10 23:14:33 2000 Denis Chertykov - - * config/avr/avr.c (valid_machine_decl_attribute): Allow `extern' - declaration for data with "progmem" attribute. - -2000-10-09 Marek Michalkiewicz - - * config/avr/avr.c (out_shift_with_cnt): Use AS2 macro. - Correct insn length if shift count is a memory operand. - * config/avr/avr.md: New define_peephole2 to use *reload_inqi. - (*iorhi3_clobber): Change lo8 to hi8. - (zero_extendhisi2): Change %B0 to %A1. - (ashlhi3, ashrhi3): Correct insn length. - (andhi3, abssf2, extendqisi2, extendhisi2): Change "cc" - from "clobber" to "set_n" in some alternatives. - -2000-10-10 Jakub Jelinek - - * reload1.c (calculate_needs_all_insns): If deleting an instruction, - remove its insn_chain structure as well. - -2000-10-09 J. David Anglin - - * dbxout.c (dbxout_source_line): Remove extra tab. - -2000-10-09 Hans-Peter Nilsson - - * config/elfos.h (UNIQUE_SECTION): Apply STRIP_NAME_ENCODING on name. - -2000-10-09 Richard Henderson - - * Makefile.in (LANG_LIB2FUNCS): Remove. - (LIB2FUNCS): Remove _pure. - (LIB2ADD): Remove LANG_LIB2FUNCS. - (stage_a): Don't set LANG_LIB2FUNCS. - * libgcc2.c (__terminate): Mark noreturn. - (__pure_virtual): Remove. - * mklibgcc.in: Remove LIB2ADD .txt processing. - -2000-10-09 Richard Earnshaw - - * arm.md (push_multi): Revert unintended change. - -2000-10-09 Richard Earnshaw - - * arm.c: Miscellaneous white space and comment clean-ups. No - functional change. - * arm.md: Likewise. - -2000-10-09 Kaveh R. Ghazi - - * c-common.c (c_expand_builtin_printf): Set the TREE_TYPE of a new - STRING_CST by calling combine_strings. - -2000-10-09 Richard Earnshaw - - * arm.c (thumb_expand_movstrqi): Rewrite to support SSA form. - (thumb_output_move_mem_multiple): Support new insn format. - * arm.md (movmem12b): Use SSA compatible format. - (movmem8b): Likewise. - -2000-10-09 Richard Earnshaw - - * arm.md (predicable): New attribute, default to "no". - (all patterns): Mark as predicable if appropriate. - (conditional execution splits): Split using predication format. - (define_cond_exec): Define. - * arm.c (arm_print_operand): handle insn predicate. - -2000-10-09 Gerald Pfeifer - - * README.NS32K: Remove file. - -2000-10-09 Gerald Pfeifer - - * README-bugs: Remove file. - -2000-10-08 Philipp Thomas - * aclocal.m4 (AM_GNU_GETTEXT): Fix non portable use of == operator - for test. - * configure: Rebuilt. - -2000-10-08 Philipp Thomas - * aclocal.m4 (AM_WITH_NLS): When not using included gettext, - disable catalog building if no suitable program was found. - Move warning message from here - (AM_GNU_GETTEXT): To here. - * configure: Rebuilt. - -2000-10-08 Philipp Thomas - * aclocal.m4 (GCC_PATH_PROG): New. Like AC_PATH_PROG but uses - different cache variables. - (GCC_PATH_PROG_WITH_TEST): New. Like AM_PATH_PROG_WITH_TEST but - uses different cache variables. - (AM_WITH_NLS): Use GCC_PATH_PROG and GCC_PATH_PROG_WITH_TEST. - * configure: Regenerated. - -2000-10-08 Richard Henderson - - * Makefile.in (libgcc.mk): Pass SHLIB_EXT, not SHLIB_LIBS. - * configure.in (sparc*-*-solaris*): Use t-slibgcc{,-sld}. - * mklibgcc.in: Consider SHLIB_LINK the entire shlib build command. - Use SHLIB_EXT. - - * config/t-linux (SHLIB_EXT): New. - (SHLIB_LINK): Use the entire build command, with substitutions. - (SHLIB_LIBS): Remove. - * config/alpha/t-osf4: Likewise. - * config/mips/t-iris6: Likewise. - * config/sparc/t-sol2: Likewise, but move shlib stuff... - * config/sparc/t-slibgcc-sld: ...here. - * config/sparc/t-slibgcc: New file. - -2000-10-08 Joseph S. Myers - - * tm.texi (INTMAX_TYPE, UINTMAX_TYPE): Define. - * c-common.h (enum c_tree_index): Add CTI_INTMAX_TYPE and - CTI_UINTMAX_TYPE. - (intmax_type_node, uintmax_type_node): Define. - * c-common.c (decl_attributes): If pedantic, warn if `mode' - attributes create a type wider than intmax_t. - (T_IM, T_UIM): Define properly. - * c-decl.c (INTMAX_TYPE, UINTMAX_TYPE): Define if not already - defined. - (init_decl_processing): Initialize intmax_type_node and - uintmax_type_node. - * c-lex.c (lex_number): When pedantic and warning for integer - constants that are too large, in C99 mode warn for those that have - a type wider than long long. - -2000-10-08 Joseph S. Myers - - * c-common.c (FMT_FLAG_ARG_CONVERT, FMT_FLAG_SCANF_A_KLUDGE, - FMT_FLAG_FANCY_PERCENT_OK): Define. - (format_char_info): Add flag "4" to comment. - (format_flag_spec, format_flag_pair): New structures. - (format_kind_info): Add additional fields to control format - checking. - (printf_flag_specs, printf_flag_pairs, scanf_flag_specs, - scanf_flag_pairs, strftime_flag_specs, strftime_flag_pairs): New - arrays. - (time_char_table): Use "4" flag to handle %Ey. - (format_types): Add entries for new fields. - (get_flag_spec): New function. - (check_format_info): Increase size of flag_chars[] to 256. - Control format checking using the new fields of a format_kind_info - and the new tables; remove all conditionals on printf_format_type, - scanf_format_type or strftime_format_type. Handle all details of - bad combinations of flags (including width, precision and strftime - modifiers) through data rather than ad hoc code. Handle all - details of standard versions in which flags appeared through - data. Use the "4" flag. - -2000-10-07 Will Cohen , Kazu Hirata - - * config/h8300/h8300.md: Remove the memory alternative and correct - the insn lengths in the templates for sign extension and zero - extension. - -2000-10-07 Richard Henderson - - * calls.c (expand_call): Disallow sibcalls to noreturn functions. - * flow.c (make_edges): Revert last change. - - * config/alpha/alpha.h (FUNCTION_OK_FOR_SIBCALL): Don't test - TREE_THIS_VOLATILE. - * config/pa/pa.h (FUNCTION_OK_FOR_SIBCALL): Likewise. - -2000-10-06 David O'Brien - - * config/alpha/elf.h: Standardize the formatting. - -2000-10-06 David O'Brien - - * config/alpha/elf.h: Protect the ASM_OUTPUT_IDENT definition with an - #undef. - -2000-10-06 Richard Henderson - - * function.c (diddle_return_value): Examine - current_function_return_rtx instead of the DECL_RESULT. - (expand_function_end): Handle reloading DECL_RESULT from memory - into a hard register. Query promote_mode for sign of mismatched - modes. - -2000-10-06 Vladimir Makarov - - * haifa-sched.c (schedule_insns): Fix typo in freeing - forward_dependency_cache. - -2000-10-06 Alexandre Oliva - - * config/sh/sh.md (calli_pcrel, call_valuei_pcrel): Add - `TARGET_SH2' as a condition. - -2000-10-06 Vladimir Makarov - - * haifa-sched.c (anti_dependency_cache, output_dependency_cache, - forward_dependency_cache): New variables. - (add_dependence, remove_dependence): Use anti_dependency_cache and - output_dependency_cache. - (compute_block_forward_dependences): Use forward_dependency_cache. - (schedule_insns): Allocate and free memory for anti/output/forward - dependencies caches. - -2000-10-06 Alexandre Oliva - - * config/sh/sh.md (call, call_value): Use `TARGET_SH2' instead of - `! TARGET_SH1'. Reindent. - -2000-10-06 Kaveh R. Ghazi - - * builtins.c (is_valid_printf_arglist, expand_builtin_printf): - Move functions from here ... - - * c-common.c (is_valid_printf_arglist, c_expand_builtin_printf): - ... to here. - (c_expand_builtin): New function. - (init_function_format_info): Don't set `check_function_format_ptr'. - (c_common_nodes_and_builtins): Set built_in_class type for - printf/__builtin_printf to BUILT_IN_FRONTEND. - (c_expand_expr): Handle CALL_EXPRs that are front-end builtins. - - * c-common.h (build_function_call): Declare. - - * expr.c (expand_expr): Pass builtins with class BUILT_IN_FRONTEND - to `lang_expand_expr' rather than `expand_builtin'. - - * tree.c (check_function_format_ptr): Delete. - - * tree.h (check_function_format_ptr): Likewise. - -2000-10-06 Hans-Peter Nilsson - - * dwarf2out.c (build_cfa_loc): Correct to use DW_OP_regx or - DW_OP_bregx when cfa->reg > 31. - - * frame-dwarf2.c (decode_stack_op) [case DW_OP_regx]: Add missing - break. - -2000-10-05 Richard Henderson - - * c-decl.c (warn_missing_noreturn): Remove. - (c_expand_body): Don't set or check can_reach_end. - * c-tree.h (warn_missing_noreturn): Move ... - * flags.h: ... here. - (can_reach_end): Remove. - * flow.c (check_function_return_warnings): New. - (make_edges): No edge to exit for noreturn sibcalls. - * function.c (expand_function_end): Save the return value - clobber instruction. - (mark_function_status): Mark it. - * function.h (struct function): Add x_clobber_return_insn. - * jump.c (can_reach_end): Remove. - (calculate_can_reach_end): Remove. - (jump_optimize_1): Don't call it. - * output.h (check_function_return_warnings): Declare. - * toplev.c (warn_missing_noreturn): Move from c-decl.c - (rest_of_compilation): Call check_function_return_warnings. - -2000-10-05 Richard Henderson - - * Makefile.in (NM_FOR_TARGET): New. - (libgcc.mk): Pass SHLIB_MKMAP, SHLIB_MAPFILES. - (libgcc.a, stmp-multilib): Pass NM_FOR_TARGET. - * mklibgcc.in: If SHLIB_MKMAP, build libgcc.map. Depend the - shared library build on that and EXTRA_MULTILIB_PARTS. - * mkmap-flat.awk: New file. - * mkmap-symver.awk: New file. - * libgcc-std.ver: New file. - * config/libgcc-glibc.ver: New file. - * config/ia64/libgcc-ia64.ver: New file. - * config/t-linux (SHLIB_MKMAP, SHLIB_MAPFILES): New. - (SHLIB_LINK): Add --version-script. - * config/ia64/t-ia64 (SHLIB_MAPFILES): Add libgcc-ia64.ver. - * config/mips/t-iris6 (SHLIB_MKMAP, SHLIB_MAPFILES): New. - * config/sparc/t-sol2 (SHLIB_MKMAP, SHLIB_MAPFILES): New. - (SHLIB_LINK): Add -M. - -2000-10-05 Richard Henderson - - * Makefile.in (LIB2FUNCS): Add _clz. - * libgcc2.c (__ffsdi2): Use count_trailing_zeros. - (__clz_tab): Put in its own unit, non-static. - * libgcc2.h: Always include longlong.h. - - * longlong.h [alpha] (count_leading_zeros): Use cmpbge with - a zero instead of -1. - (count_trailing_zeros): Likewise. - -2000-10-05 Richard Henderson - - * config/alpha/alpha.c (alpha_emit_setcc): Don't swap GT tests - when second op1 is const0_rtx. Validate op0 as a register. - * config/alpha/alpha.md (setcc_internal): Don't allow constants - in the first argument of the compare. - (setcc_swapped_internal): Likewise. - (setne_internal): Likewise. - -2000-10-05 Geoff Keating - - * tree.c (tree_size): New function split out of copy_node. - (make_node): Remove obstack handling. Use tree_size. - (copy_node): Use tree_size. - * tree.h: Prototype tree_size. - -2000-10-05 Richard Henderson - - * diagnostic.c (output_format): Add missing break. - -2000-10-05 Jim Wilson - - * function.c (fixup_var_refs_1, case SET): When gen_move_insn returns a - SEQUENCE, call emit_insn_before, copy PATTERN and REG_NOTES of last - sequence insn to INSN, and delete last sequence insn. - -2000-10-05 Phil Edwards - - * gcc.c (main): Include generated configargs.h header - and use arguments in '-v' output. - -Thu Oct 5 16:16:57 2000 Richard Kenner - - * gcc.c: Move data on prefixes forward in file and reorganize. - (md_exec_prefix, md_startfile_prefix, md_startfile_prefix_1): - Always define, but make null if no value. - (static_specs): Add "md_exec_prefix", "md_startfile_prefix", - and "md_startfile_prefix_1". - (main): Check whether md_exec_prefix and the others are the - null string rather than whether the macro is defined. - -Thu Oct 5 19:04:18 2000 J"orn Rennecke - - * (convert_move): Use zero_extendpsisi2 to do an unsigned extension - from PSImode to SImode. - -2000-10-05 Jakub Jelinek - - * emit-rtl.c (gen_lowpart_common) [REAL_ARITHMETICS]: Fix conversion - from float to integral mode with HOST_BITS_PER_WIDE_INT 64. - * dwarf2out.c (add_const_value_attribute): Divide by 4, not - sizeof(long). - -Thu Oct 5 09:31:31 2000 Richard Kenner - - * fold-const.c (fold, case MINUS_EXPR, case EQ_EXPR): Perform - negation in proper type.a - -2000-10-04 Richard Henderson - - * configure.in (enable-shared): New. - * Makefile.in (LIBGCC_DEPS): Depend on EXTRA_PARTS as well. - (libgcc.mk): Pass SHLIB_LINK, SHLIB_LIBS, SHLIB_MULTILIB to mklibgcc. - * mklibgcc.in: Use them to link shared a libgcc. - * config/t-linux (SHLIB_LINK, SHLIB_LIBS): New. - * config/alpha/t-ieee (SHLIB_MULTILIB): New. - * config/mips/t-iris6 (SHLIB_LINK, SHLIB_LIBS): New. - * config/sparc/t-sol2 (SHLIB_LINK, SHLIB_LIBS): New. - - * configure.in (alpha-osf*): Use t-osf and x-osf. - * config/alpha/t-osf: New file. - * config/alpha/t-osf4: New file. - * config/alpha/x-osf: New file. - * config/alpha/x-alpha: Remove file. - -2000-10-04 Will Cohen - - * c-typeck.c (process_init_element): Added warning for zero-length - array. - - * extend.texi (Zero Length): State that static initializers for - zero-length arrays are not allowed. - -Mon Oct 2 14:50:14 MET DST 2000 Jan Hubicka - - * rtlanal.c (single_set_1): Do not require USE and CLOBBERs - to come last. - -2000-10-03 Michael Hayes - - * config/float-c4x.h: New. - * configure.in (c4x-*): Set float_format to c4x. - * configure: Regenerate. - -2000-10-02 Kaveh R. Ghazi - - * configure.in (sparc-*-solaris2*): Disable 32-to-64 cross - compilation for solaris versions 2.7 and greater. - -2000-10-02 Marc Espie - - * config/alpha.h (WORD_SWITCH_TAKES_ARG): add -rpath to default, - instead of redefining from scratch. - -2000-10-02 David O'Brien - - * config/i386/freebsd.h (NO_PROFILE_COUNTERS): Define. - -2000-10-01 Mark Mitchell - - * config/ns32k/genix.h: Remove. - * config/ns32k/x-genix: Likewise. - * config/ns32k/xm-genix.h: Likewise. - * config/fx80: Remove all filee in directory. - * config/pyr: Likewise. - * config/tahoe: Likewise. - * config/gmicro: Likewise. - * config/spur: Likewise. - * configure.in: Remove configury bits for above targets. - * configure: Regenerated. - - * configure.in: Don't configure chill by default. - * configure: Regenerated. - - * c-decl.c (c_expand_body): Don't generate RTL if flag_syntax_only. - (lang_mark_false_label_stack): Remove. - * c-lex.c (init_c_lex): Add file_info_tree as GC root. Allocate - string in GC area. - (mark_splay_tree_node): New function. - (mark_splay_tree): Likewise. - * except.c (mark_eh_status): Only call lang_mark_false_label_stack - if it exists. - * ggc-callbacks.c (lang_mark_false_label_stack): Remove. - * ggc-common.c (lang_mark_false_label_stack): Change type. - * ggc.h (ggc_alloc_string): Add comment. - (ggc_strdup): New function. - -Sat Sep 23 19:10:20 2000 Denis Chertykov - - * config/avr/avr.h (BRANCH_COST): Define as 0. - - * config/pdp11/pdp11.c: #include "tree.h" added. - -2000-09-30 Marek Michalkiewicz - - * config/avr/avr.c (ashlhi3_out, ashlsi3_out, ashrhi3_out, - ashrsi3_out, lshrhi3_out, lshrsi3_out): Optimize more cases - with known shift count. - * config/avr/avr.md (ashlsi3, ashrsi3, lshrsi3): - New alternative for shift count 2 with no scratch register. - (ashlhi3, ashlsi3): Change "cc" attribute from "clobber" to - "set_n" for shift counts 1 and 2. - -2000-09-30 Geoff Keating - - * config/rs6000/rs6000.md (movsi_to_cr): Remove the USE. Calculate - the mask value from the individual SET operations. - (return_internal_si): Move the USE after the RETURN. - (return_internal_di): Likewise. - (return_and_restore_fpregs_si): Likewise. - (return_and_restore_fpregs_di): Likewise. - (return_eh_si): Likewise. - (return_eh_di): Likewise. - * config/rs6000/rs6000.c (mtcrf_operation): Don't look for, - or check, the USE. - (rs6000_emit_prologue): Don't emit the USE for movsi_to_cr. - Don't generate a PARALLEL around a single operation movsi_to_cr. - Generate the RETURN first in any PARALLELs. - - * rtlanal.c (single_set_1): Use fatal_insn to display the - invalid insn. Check for more cases when a USE or CLOBBER occurs - before a SET. - * Makefile.in: Update dependencies for rtlanal.o. - -2000-09-30 Joseph S. Myers - - * i386.c: Move include of "config.h" to before that of . - -2000-09-30 Joseph S. Myers - - * c-tree.texi, contrib.texi, gcc.texi, install.texi, invoke.texi: - Consistently use @email for formatting email addresses. - -2000-09-29 Richard Henderson - - * cse.c (notreg_cost): New argument outer. - (COST): Pass in SET to notreg_cost - (COST_IN): New. - (fold_rtx): Use COST_IN. Prefer constants when costs - are the same. - -2000-09-29 David Edelsohn - - * fixinc/inclhack.def (broken_cabs): Generalize regex. - * fixinc/fixincl.x: Regenerate. - -2000-09-29 Franz Sirl - - * loop.c (check_final_value): A GIV is not replaceable if used - before set. - -Fri Sep 29 10:04:12 2000 Jeffrey A Law (law@cygnus.com) - - * version.c: Bump to gcc-2.97. - -Frs Sep 29 13:37:59 MET DST 2000 Jan Hubicka - - * final.c (final_scan_insn): Remove extra extract_insn call; - Use caching for constrain_operands. - (cleanup_subreg_operands): Use caching for extract_insn. - * recog.c (constrain_operands_cached): New. - * recog.h (constrain_operands_cached): Declare. - * i386.c (ix86_attr_length_immediate_default, - ix86_attr_length_address_default, ix86_agi_dependant): Cache - extract_insn call. - - * recog.c (asm_noperands): Tweak. - (extract_insn): Do not call asm_noperads for non-asm instructions. - -Fri Sep 29 13:20:42 MET DST 2000 Jan Hubicka - - * recog.c (recog_memoized): Rename to recog_memoized_1. - * recog.h (recog_memoized): Rename to recog_memoized_1. - (recog_memoized): New macro. - * rtl.h (single_set): Rename to single_set_1 - (single_set): New macro. - * rtlanal.c (single_set): Rename to single_set_1; expect clobbers - to be last. - - * i386.md (strmovsi_1, strmovhi_1 strmovqi_1): - Do not use match_dup of input operands at outputs. - Use register_operand for memory expression. - (rep_movsi): Put use last, canonicalize. - Use register_operand for memory expression. - (rep_movqi): Put use last. - Use register_operand for memory expression. - (strsetsi_1, strset_hi_1, strsetqi_1): Do not use match_dup - of input operands at outputs. Use register_operand for memory - expression. - (rep_stossi): Put use last; canonicalize; fix match_dup in - the address expression - (rep_stosqi): Likewise. - (memcmp expander): Update calls. - (cmpstrsi_nz_1, cmpstrsi_1, strlensi_1): Avoid match_dups in - the clobbers. - - * i386.md (fp_jcc_3, fp_jcc_4, jp_fcc_5): if_then_else operand is - VOIDmode. - (fp_jcc_4, fp_jcc_3): Refuse unordered comparisons. - -2000-09-28 David O'Brien - - * config/i386/freebsd-aout.h: New, FreeBSD a.out config file. - Contains the old contents of config/i386/freebsd.h - * config/i386/freebsd.h: Now the ELF rather than a.out config file. - Contains the old contents of config/i386/freebsd-elf.h - * config/i386/freebsd-elf.h: Retire this file -- contents moved to - config/i386/freebsd.h. - * configure.in: Adjust for above changes. - * po/POTFILES.in: Likewise. - * po/en_GB.po: Likewise. - * po/gcc.pot: Likewise. - * configure: Rebuilt. - -2000-09-28 Franz Sirl - - * doloop.c (doloop_modify): Prevent delete_insn() from - deleting too much. Prefer loop->top over loop->start as - target for the new JUMP insn. - (doloop_valid_p): Ignore loop with exit_count != 0. - -2000-09-28 Philipp Thomas - - * invoke.texi (i386 Options): Add athlon to table of possible - choices for -mcpu=. - -2000-09-28 Gabriel Dos Reis - - * diagnostic.h (output_clear_message_text): New function. - (output_message_text): New macro. - - * diagnostic.c (clear_text_info): Rename to - output_clear_message_text. - (output_clear): Adjust. - (output_finish): Rename to output_finalize_message. Tweek. - (output_to_stream): Adjust. - -2000-09-28 Neil Booth - - * cpperror.c (_cpp_begin_message): Do the test for suppression - of warnings and pedantic warnings before the "is a warning an - error" tests. - * cppinit.c (cpp_handle_option): Remove surplus \n. - * cpplex.c (ON_REST_ARG): Delete. - (skip_block_comment): Initialize prevc. - (parse_args): Improve error messages. - (maybe_paste_with_next): Use CONTEXT_VARARGS rather - than ON_REST_ARG. - * cpplib.c (cpp_push_buffer): Fix grammar in message. - * cppmain.c (main): Set callbacks for #ident and #pragma - only if no_output option is false. - (do_pragma_implementation): Only call the #pragma handler - if it is set in the cpp_reader structure. - -Wed Sep 27 14:00:07 2000 Donald Lindsay - - * integrate.c (copy_insn_list): if an ignored return value - is being clobbered, skip cloning that into the inline copy. - -2000-09-27 Joseph S. Myers - - * extend.texi, invoke.texi, gcc.texi, install.texi: Consistently - use @uref for formatting URLs. - -2000-09-27 Mark Elbrecht - - * config/i386/djgpp.h (UNIQUE_SECTION): Constify the variables - name and prefix. - -Tue 26-Sep-2000 18:25:38 BST Neil Booth - - * gcc.c (cpp_options): Add spec for -ftabstop=. - (invoke_as): New spec that handles invoking as. - Update specs to handle -save-temps and -traditional. - * ch/lang-specs.h, f/lang-specs.h, java/lang-specs.h: - Use invoke_as. - * cp/lang-specs.h, objc/lang-specs.h: Update to use - invoke_as, and handle -save-temps and -traditional (if - appropriate). - -2000-09-26 Jakub Jelinek - - * config/sparc/sparc.c (sparc_emit_set_const64): Don't abort when - op0 is a SUBREG. - (function_arg_slotno): Accept TImode/CTImode. - * config/sparc/sparc.h (MIN_UNITS_PER_WORD): If IN_LIBGCC2 define - to UNITS_PER_WORD. - -2000-09-26 Michael Hayes - - * flow.c (flow_loop_pre_header_scan): Punt if loop enters - from entry block. - -2000-09-25 Jim Wilson - - * config/ia64/ia64.h (INDEX_REG_CLASS): Define to GENERAL_REGS. - (REGNO_OK_FOR_INDEX_P): Define to REGNO_OK_FOR_BASE_P. - (LEGITIMATE_ADDRESS_DISP): Use LEGITIMATE_ADDRESS_REG. - (REG_OK_FOR_INDEX): Define to REG_OK_FOR_BASE_P. - -Tue 26-Sep-2000 00:16:22 BST Neil Booth - - * cpplex.c (parse_args): Don't set VOID_REST flag. - (CONTEXT_VARARGS): New flag. - (maybe_paste_with_next): Set context earlier in loop. Use - it. Do varargs test with CONTEXT_VARARGS flag. - (push_arg_context): Set CONTEXT_VARARGS flag if we're - pushing an argument context for a varargs argument. - * cpplib.h (VOID_REST): Delete. - * gcc.dg/cpp/vararg1.c: Add test case. - -2000-09-25 Branko Cibej - - * flags.h: Declare warning flag warn_system_headers. - * toplev.c: Define it. - (W_options): Add option -Wsystem-headers. - * diagnostic.c (count_error): Test warn_system_headers. - * invoke.texi: Add description for -Wsystem-headers. - * cpplib.h (cpp_options): New member warn_system_headers. - * cpphash.h (CPP_PEDANTIC, CPP_WTRADITIONAL): Don't test - CPP_IN_SYSTEM_HEADER. - * cpplib.c (do_import, do_pragma_once): Likewise. - * cpperror.c (_cpp_begin_message): Test warn_system_headers - and CPP_IN_SYSTEM_HEADER. - * cppinit.c (handle_option): Recognize -Wsystem_headers. - (print_help): Describe -Wsystem_headers. - * cpplex.c (lex_line): Reorganize condition so that warnings - about C++ comments in system headers can be enabled. Remove - label do_line_comment. - -Mon 25-Sep-2000 23:38:27 BST Neil Booth - - * cpplex.c (save_comment): Only store the initial '/' - now. - (lex_token): Combine handling of the two comment types. - Pass everything but the initial '/' to save_comment. - -Mon 25-Sep-2000 23:31:45 BST Neil Booth - - * cpphash.h (_cpp_digraph_spellings, _cpp_process_directive, - _cpp_can_paste): New library-internal prototypes. - * cpplex.c (dump_param_spelling, output_line_command, - output_token, cpp_scan_buffer, cpp_scan_buffer_nooutput, - cpp_printf, cpp_output_list): Move to cppoutput.c. - (process_directive, can_paste, digraph_spellings): Add _cpp_ prefix. - * cppmacro.c (dump_macro_args, cpp_dump_definition) Move to - cppoutput.c. - * cppoutput.c (dump_macro_args, cpp_dump_definition, output_token, - dump_param_spelling, output_line_command, cpp_scan_buffer, - cpp_scan_buffer_nooutput, cpp_printf, cpp_output_list): Moved - from elsewhere. - * Makefile.in: Add cppoutput.c. - * po/POTFILES.in: Add cppoutput.c. - -2000-09-25 Richard Henderson - - * config/ia64/ia64.c (ia64_print_operand): Define 'e' as 64-n. - * config/ia64/ia64.md (rotrsi3): Allow variable rotates; don't - split until after reload. - (rotlsi3, rotldi3): New. - -2000-09-25 Gabriel Dos Reis - - * diagnostic.c (output_last_position): Define. - (set_real_maximum_length): Tweek. - * diagnostic.h (output_last_position): Declare. - -2000-09-25 Kazu Hirata - - * config/i386/i386.c: Fix formatting. - -2000-09-24 Alan Lehotsky - - * emit-rtl-c (gen_lowpart_common): Accept non-paradoxical SUBREG when - UNITS_PER_WORD is small. - -2000-09-25 Joseph S. Myers - - * c-common.c (format_char_info): Add flags2; update comments. - (print_char_table, scan_char_table, time_char_table): Split some - flags out into flags2. - (check_format_info): Use flags2 for those flags, for identifying - the initial character of a scanf scanset, and for identifying - printf formats where the '0' flag is ignored with precision. - -2000-09-25 Hans-Peter Nilsson - - Changes below marked "here" add TABs on either or both sides, - covering start of line, up to any operand for all noted .*ASM.*_OP - definitions. All callers changed. - * tm.texi: Make documented *_ASM.*_OP:s include spacing - (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, SHARED_SECTION_ASM_OP, - BSS_SECTION_ASM_OP, SHARED_BSS_SECTION_ASM_OP, INIT_SECTION_ASM_OP, - ASM_BYTE_OP, FINI_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP, - ASM_STABS_OP, ASM_STABD_OP, ASM_STABN_OP). - Fix typos in description for LONG_LONG_TYPE_SIZE and - FINI_SECTION_ASM_OP. - * crtstuff.c (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Explain - why these defaults don't have leading spacing. - * dbxout.c (ASM_STABS_OP, ASM_STABN_OP): Here. - * dwarf2out.c (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP, - UNALIGNED_DOUBLE_INT_ASM_OP, SECTION_ASM_OP, ASM_BYTE_OP): Here. - * dwarfout.c (FILE_ASM_OP, VERSION_ASM_OP, - UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP, ASM_BYTE_OP, - PUSHSECTION_ASM_OP, POPSECTION_ASM_OP): Here. - * defaults.h (ASM_STABD_OP, EH_FRAME_SECTION_ASM_OP): Here. - * varasm.c (ASM_STABS_OP): Here. - * xcoffout.h (ASM_STABS_OP): Here. - * config/elfos.h (IDENT_ASM_OP, ASM_BYTE_OP, SET_ASM_OP, - SKIP_ASM_OP, ALIGN_ASM_OP, COMMON_ASM_OP, LOCAL_ASM_OP, - INT_ASM_OP, ASCII_DATA_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP, - STRING_ASM_OP): Here. - * config/freebsd.h (IDENT_ASM_OP): Here. - * config/linux-aout.h (SET_ASM_OP): Here. - * config/linux.h (SET_ASM_OP): Here. - * config/lynx.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, - INT_ASM_OP): Here. - * config/netbsd.h (TYPE_ASM_OP, SIZE_ASM_OP, SET_ASM_OP): Here. - * config/nextstep.h (EH_FRAME_SECTION_ASM_OP, ALIGN_ASM_OP): Here. - * config/openbsd.h (TYPE_ASM_OP, SIZE_ASM_OP, SET_ASM_OP): Here. - * config/psos.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, - INT_ASM_OP): Here. - * config/ptx4.h (IDENT_ASM_OP, ASM_BYTE_OP, SET_ASM_OP, - SKIP_ASM_OP, ALIGN_ASM_OP, COMMON_ASM_OP, LOCAL_ASM_OP, - INT_ASM_OP, ASCII_DATA_ASM_OP, CONST_SECTION_ASM_OP, - CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP, - FINI_SECTION_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP STRING_ASM_OP): Here. - * config/svr3.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP, - CONST_SECTION_ASM_OP, ASM_BYTE_OP): Here. - * config/a29k/udi.h (INT_ASM_OP): Here. - * config/alpha/alpha-interix.h (CONST_SECTION_ASM_OP, - CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INT_ASM_OP, - SET_ASM_OP): Here. - * config/alpha/alpha.h (TEXT_SECTION_ASM_OP, - READONLY_DATA_SECTION_ASM_OP, DATA_SECTION_ASM_OP, - UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP, - UNALIGNED_DOUBLE_INT_ASM_OP, ASM_STABS_OP, ASM_STABN_OP, - ASM_STABD_OP): Here. - * config/alpha/elf.h (IDENT_ASM_OP, SKIP_ASM_OP, ALIGN_ASM_OP, - COMMON_ASM_OP, INT_ASM_OP, ASCII_DATA_ASM_OP, - CONST_SECTION_ASM_OP, CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, - BSS_SECTION_ASM_OP, SBSS_SECTION_ASM_OP, SDATA_SECTION_ASM_OP, - INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP, TYPE_ASM_OP, - SIZE_ASM_OP, STRING_ASM_OP): Here. - * config/alpha/vms.h (LINK_SECTION_ASM_OP, - READONLY_SECTION_ASM_OP, LITERALS_SECTION_ASM_OP, - CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, COMMON_ASM_OP): Here. - * config/arc/arc.h (ASM_BYTE_OP, SET_ASM_OP): Here. - (PUSHSECTION_ASM_OP): Define this, not PUSHSECTION_FORMAT. - * config/arm/aof.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): - Here. - * config/arm/aout.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, - BSS_SECTION_ASM_OP, SET_ASM_OP): Here. - * config/arm/coff.h (INT_ASM_OP): Here. - * config/arm/conix-elf.h (UNALIGNED_WORD_ASM_OP): Here. - * config/arm/elf.h (TYPE_ASM_OP, SIZE_ASM_OP, INT_ASM_OP): Here. - * config/arm/linux-elf.h (IDENT_ASM_OP, CONST_SECTION_ASM_OP, - INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Here. - * config/arm/unknown-elf.h (UNALIGNED_WORD_ASM_OP): Here. - * config/avr/avr.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, - ASM_BYTE_OP, TYPE_ASM_OP, SIZE_ASM_OP, WEAK_ASM_OP, - STRING_ASM_OP): Here. Update documentation copy in comments. - * config/c4x/c4x.h (ASM_STABS_OP, BSS_SECTION_ASM_OP): Here. - * config/clipper/clipper.h (TEXT_SECTION_ASM_OP, - DATA_SECTION_ASM_OP): Here. - * config/clipper/clix.h (BSS_SECTION_ASM_OP, INIT_SECTION_ASM_OP): - Here. - * config/convex/convex.h (TEXT_SECTION_ASM_OP, - DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP): Here. - * config/d30v/d30v.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, - BSS_SECTION_ASM_OP): Here. - * config/fr30/fr30.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, - BSS_SECTION_ASM_OP): Here. - * config/fx80/fx80.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): - Here. - * config/gmicro/gmicro.h (TEXT_SECTION_ASM_OP, - DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP): Here. - * config/h8300/h8300.h (ASM_WORD_OP): Here. - * config/i370/i370.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, - BSS_SECTION_ASM_OP): Here. - * config/i386/aix386.h (INIT_SECTION_ASM_OP): Here. - * config/i386/bsd.h (ASM_BYTE_OP): Here. - * config/i386/cygwin.h (SET_ASM_OP, INT_ASM_OP): Here. - * config/i386/dgux.h (CONST_SECTION_ASM_OP): Here. - * config/i386/djgpp.h (IDENT_ASM_OP, INT_ASM_OP, SET_ASM_OP): - Here. - * config/i386/freebsd-elf.h (SET_ASM_OP): Here. - * config/i386/freebsd.h (TYPE_ASM_OP, SIZE_ASM_OP, INT_ASM_OP): - Here. - * config/i386/i386-coff.h (CTORS_SECTION_ASM_OP, - DTORS_SECTION_ASM_OP, INT_ASM_OP): Here. - * config/i386/i386-interix.h (STRING_ASM_OP, CONST_SECTION_ASM_OP, - CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INT_ASM_OP, - SET_ASM_OP): Here. - * config/i386/i386elf.h (BSS_SECTION_ASM_OP): Here. - * config/i386/netbsd.h (INT_ASM_OP): Here. - * config/i386/openbsd.h (INT_ASM_OP): Here. - * config/i386/osfrose.h (TYPE_ASM_OP, SIZE_ASM_OP, SET_ASM_OP, - IDENT_ASM_OP): Here. - * config/i386/sco5.h (ALIGN_ASM_OP, ASCII_DATA_ASM_OP, - ASM_BYTE_OP, IDENT_ASM_OP, COMMON_ASM_OP, SET_ASM_OP, - LOCAL_ASM_OP, INT_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP, STRING_ASM_OP, - SKIP_ASM_OP, GLOBAL_ASM_OP): Here. - * config/i386/seq-sysv3.h (SHARED_SECTION_ASM_OP, - SHARED_BSS_SECTION_ASM_OP): Here. - * config/i386/sequent.h (SHARED_SECTION_ASM_OP): Here. - * config/i386/sun386.h (ASM_BYTE_OP, TEXT_SECTION_ASM_OP, - DATA_SECTION_ASM_OP): Here. - * config/i386/svr3gas.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP, - CONST_SECTION_ASM_OP): Here. - * config/i386/sysv3.h (INIT_SECTION_ASM_OP): Here. - * config/i386/unix.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, - BSS_SECTION_ASM_OP): Here. - * config/i860/bsd-gas.h (ASCII_DATA_ASM_OP): Here. - * config/i860/bsd.h (ASCII_DATA_ASM_OP): Here. - * config/i860/fx2800.h (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP, - BSS_ASM_OP): Here, but use trailing spaces. - * config/i860/i860.h (ASM_BYTE_OP, TEXT_SECTION_ASM_OP, - DATA_SECTION_ASM_OP): Here. - * config/i860/paragon.h (ASCII_DATA_ASM_OP, BSS_SECTION_ASM_OP): - Here. - * config/i860/sysv3.h (ASCII_DATA_ASM_OP, CTORS_SECTION_ASM_OP, - DTORS_SECTION_ASM_OP, TDESC_SECTION_ASM_OP): Here. - * config/i860/sysv4.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, - TDESC_SECTION_ASM_OP): Here. - * config/i960/i960-coff.h (CTORS_SECTION_ASM_OP, - DTORS_SECTION_ASM_OP, INT_ASM_OP): Here. - * config/i960/i960.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): - Here. - * config/ia64/ia64.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, - BSS_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP, - UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP, - UNALIGNED_DOUBLE_INT_ASM_OP): Here. - * config/ia64/sysv4.h (ASM_BYTE_OP, STRING_ASM_OP, SKIP_ASM_OP, - COMMON_ASM_OP, ASCII_DATA_ASM_OP, INIT_SECTION_ASM_OP, - FINI_SECTION_ASM_OP, CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, - SDATA_SECTION_ASM_OP, SBSS_SECTION_ASM_OP): Here. - * config/m32r/m32r.h (SCOMMON_ASM_OP): Here. - * config/m68hc11/m68hc11.h (GLOBAL_ASM_OP): Here. - * config/m68k/auxas.h (BYTE_ASM_OP, WORD_ASM_OP, LONG_ASM_OP, - SPACE_ASM_OP, ALIGN_ASM_OP, GLOBAL_ASM_OP, SWBEG_ASM_OP, - SET_ASM_OP): Here. - * config/m68k/coff.h (BSS_SECTION_ASM_OP, CTORS_SECTION_ASM_OP, - DTORS_SECTION_ASM_OP, INT_ASM_OP): Here. - * config/m68k/crds.h (BSS_SECTION_ASM_OP): Here. - * config/m68k/dpx2.h (ASM_BYTE_OP, GLOBAL_ASM_OP): Here. - * config/m68k/hp320.h (ASCII_DATA_ASM_OP, GLOBAL_ASM_OP): Here. - * config/m68k/linux.h (BSS_SECTION_ASM_OP): Here. - * config/m68k/lynx.h (BSS_SECTION_ASM_OP): Here. - * config/m68k/m68k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, - GLOBAL_ASM_OP): Here. - * config/m68k/m68kelf.h (SWBEG_ASM_OP, BSS_ASM_OP, - BSS_SECTION_ASM_OP): Here. - * config/m68k/m68kv4.h (BSS_ASM_OP): Here. - * config/m68k/mot3300.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, - ASCII_DATA_ASM_OP, SET_ASM_OP, CTORS_SECTION_ASM_OP, - DTORS_SECTION_ASM_OP, GLOBAL_ASM_OP, ASM_BYTE_OP, ALIGN_ASM_OP, - SKIP_ASM_OP): Here. - * config/m68k/newsgas.h (SET_ASM_OP): Here. - * config/m68k/rtemself.h (INIT_SECTION_ASM_OP, - FINI_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP): Here. - * config/m68k/sgs.h (BYTE_ASM_OP, WORD_ASM_OP, LONG_ASM_OP, - SPACE_ASM_OP, ALIGN_ASM_OP, GLOBAL_ASM_OP, SWBEG_ASM_OP, - SET_ASM_OP, UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP): Here, - but use trailing spaces. - * config/m68k/tower-as.h (TEXT_SECTION_ASM_OP, - DATA_SECTION_ASM_OP, GLOBAL_ASM_OP, INIT_SECTION_ASM_OP, - FINI_SECTION_ASM_OP, CONST_SECTION_ASM_OP, BSS_SECTION_ASM_OP): - Here. - * config/m88k/dgux.h (FINI_SECTION_ASM_OP, INIT_SECTION_ASM_OP, - CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Here. - * config/m88k/m88k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, - CONST_SECTION_ASM_OP, TDESC_SECTION_ASM_OP, CTORS_SECTION_ASM_OP, - DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP, - IDENT_ASM_OP, FILE_ASM_OP, SECTION_ASM_OP, SET_ASM_OP, - GLOBAL_ASM_OP, ALIGN_ASM_OP, SKIP_ASM_OP, COMMON_ASM_OP, - BSS_ASM_OP, FLOAT_ASM_OP, DOUBLE_ASM_OP, INT_ASM_OP, SHORT_ASM_OP, - CHAR_ASM_OP, ASCII_DATA_ASM_OP, SBSS_ASM_OP, SCOMM_ASM_OP, - SDATA_SECTION_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP, INTERNAL_ASM_OP, - VERSION_ASM_OP, UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP, - PUSHSECTION_ASM_OP, POPSECTION_ASM_OP, REQUIRES_88110_ASM_OP, - ASM_BYTE_OP): Here. - * config/m88k/openbsd.h (SET_ASM_OP): Here. - * config/m88k/sysv4.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP, - CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Here. - * config/mcore/mcore-elf.h (UNALIGNED_INT_ASM_OP, - UNALIGNED_SHORT_ASM_OP, CTORS_SECTION_ASM_OP, - DTORS_SECTION_ASM_OP): Here. - * config/mcore/mcore-pe.h (CTORS_SECTION_ASM_OP, - DTORS_SECTION_ASM_OP, INT_ASM_OP): Here. - * config/mips/elf.h (TYPE_ASM_OP, SIZE_ASM_OP, - BSS_SECTION_ASM_OP): Here. - * config/mips/elf64.h (TYPE_ASM_OP, SIZE_ASM_OP): Here. - * config/mips/iris5.h (ABICALLS_ASM_OP): Here. - * config/mips/iris6.h (TYPE_ASM_OP, SIZE_ASM_OP, - POPSECTION_ASM_OP, BSS_SECTION_ASM_OP, CONST_SECTION_ASM_OP_32, - CONST_SECTION_ASM_OP_64, CTORS_SECTION_ASM_OP, - DTORS_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP): Here. - * config/mips/mips.c (ABICALLS_ASM_OP): Here. - * config/mips/mips.h (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP): - Here. - * config/mips/netbsd.h (TYPE_ASM_OP, SIZE_ASM_OP, WEAK_ASM_OP): - Here. - * config/mips/osfrose.h (SET_ASM_OP): Here. - * config/mips/sni-svr4.h (ABICALLS_ASM_OP): Here. - * config/ns32k/encore.h (SHARED_SECTION_ASM_OP): Here. - * config/ns32k/merlin.h (SHARED_SECTION_ASM_OP): Here. - * config/ns32k/ns32k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): - Here. - * config/ns32k/sequent.h (SHARED_SECTION_ASM_OP): Here. - * config/ns32k/tek6000.h (SHARED_SECTION_ASM_OP): Here. - * config/pa/pa-64.h (INT_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP): Here. - * config/pa/pa.h (ASM_STABS_OP, ASM_STABN_OP): Here. - * config/pj/pj.h (SET_ASM_OP, BSS_SECTION_ASM_OP): Here. - * config/pyr/pyr.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): - Here. - * config/romp/romp.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): - Here. - * config/rs6000/rs6000.h (SET_ASM_OP): Here. - * config/rs6000/sol2.h (ASM_STABN_OP): Here. - * config/rs6000/sysv4.h (SKIP_ASM_OP, LOCAL_ASM_OP, LCOMM_ASM_OP): - Here. - * config/sh/sh.h (SET_ASM_OP, BSS_SECTION_ASM_OP, - UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP): Here. - * config/sparc/linux.h (COMMON_ASM_OP): Here. - * config/sparc/linux64.h (COMMON_ASM_OP, - UNALIGNED_DOUBLE_INT_ASM_OP): Here. - * config/sparc/litecoff.h (BSS_SECTION_ASM_OP, - CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INT_ASM_OP): Here. - * config/sparc/lynx.h (BSS_SECTION_ASM_OP): Here. - * config/sparc/pbd.h (ASM_INT_OP): Here. - * config/sparc/sp64-elf.h (UNALIGNED_LONGLONG_ASM_OP): Here. - * config/sparc/sparc.h (ASM_BYTE_OP, TEXT_SECTION_ASM_OP, - DATA_SECTION_ASM_OP, IDENT_ASM_OP): Here. - * config/sparc/sun4gas.h (UNALIGNED_DOUBLE_INT_ASM_OP, - UNALIGNED_INT_ASM_OP, UNALIGNED_SHORT_ASM_OP): Here. - * config/sparc/sysv4.h (STRING_ASM_OP, COMMON_ASM_OP, SKIP_ASM_OP, - UNALIGNED_DOUBLE_INT_ASM_OP, UNALIGNED_INT_ASM_OP, - UNALIGNED_SHORT_ASM_OP, PUSHSECTION_ASM_OP, POPSECTION_ASM_OP, - TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP, - CONST_SECTION_ASM_OP, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP, - CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, - EH_FRAME_SECTION_ASM_OP): Here. - * config/sparc/vxsim.h (COMMON_ASM_OP): Here. - * config/spur/spur.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): - Here. - * config/tahoe/tahoe.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): - Here. - * config/v850/v850.h (SCOMMON_ASM_OP, ZCOMMON_ASM_OP, - TCOMMON_ASM_OP): Here. - * config/vax/vax.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): - Here. - * config/we32k/we32k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, - ASM_BYTE_OP): Here. - -2000-09-25 Richard Henderson - - * expmed.c (store_bit_field): Adjust last change to not consider - any word-sized field naturally aligned. - -2000-09-24 Richard Henderson - - * config/alpha/alpha.c (alpha_emit_conditional_branch): Handle - TFmode unordered compares properly. Revalidate integer compare - operands. - (alpha_emit_setcc): New. - (alpha_emit_conditional_move): Revalidate integer compare operands. - * config/alpha/alpha-protos.h: Update. - * config/alpha/alpha.md (cmpdi): Allow general operands. - (sne): Use alpha_emit_setcc. - (seq, slt, sle, sgt, sge, sltu, sleu, sgtu, sgeu): Likewise. - (sunordered, sordered): New. - -2000-09-24 Richard Henderson - - * config/ia64/ia64-protos.h: Update. - * config/ia64/ia64.c (call_multiple_values_operation): Remove. - (ia64_expand_call): New. - (ia64_expand_prologue): Emit an alloc if we need extra input - registers. - (ia64_expand_epilogue): New arg sibcall_p; don't emit the return - instruction if true. - (struct reg_flags): Add is_sibcall. - (rtx_needs_barrier): A sibcall does not use CFM et al. Ignore USEs. - (emit_insn_group_barriers): Set flags.is_sibcall. Remove hacks - for CODE_FOR_gr_spill_internal/CODE_FOR_gr_restore_internal. - * config/ia64/ia64.h (PREDICATE_CODES): Update. - * config/ia64/ia64.md (call): Use ia64_expand_call. - (call_value): Likewise. - (sibcall, sibcall_value): New. - (call patterns): Remove extra expanders; tidy. - (sibcall_epilogue): New. - (set_bsp): Remove the extra USE. Put the operand inside the UNSPEC. - -2000-09-24 Richard Henderson - - * emit-rtl.c (gen_lowpart_common): Use trunc_int_for_mode. - - * sibcall.c (skip_pic_restore): New. - (identify_call_return_value): Use it. - -2000-09-24 Mark Mitchell - - * c-tree.texi: Moved here from cp/ir.texi. Documented nested - functions. Generalize to handle both C and C++. - * Makefile.in (c-tree.info): New target. - (info): Add c-tree.info. - -Sun Sep 24 09:15:48 2000 Richard Kenner - - * expr.c (store_field): If BITSIZE is negative, use size of type. - (expand_expr, case COMPONENT_EXPR): Likewise. - -Sun 24-Sep-2000 11:40:23 BST Neil Booth - - * cpplex.c: Update TODO comment. - * cpplib.c (do_error, do_warning): Merge common code of - do_error and do_warning into do_diagnostic. Use it. - (do_diagnostic): New function. - * cpplib.h: Fix comment typo. - -2000-09-24 Joseph S. Myers - - * c-common.c (check_format_info): Warn for a wide character string - used as a non-wide format argument. - -2000-09-24 Joseph S. Myers - - * builtins.def (BUILT_IN_LLABS): Add. - * builtins.c (expand_builtin): Also abort on BUILT_IN_LLABS. - * c-common.c (c_common_nodes_builtins): Create builtin functions - __builtin_llabs, and plain llabs unless no_nonansi_builtins - outside of C99 mode. - (expand_tree_builtin): Handle BUILT_IN_LLABS. - -Sat 23-Sep-2000 22:39:18 BST Neil Booth - - * cpphash.h (CPP_RESERVE, CPP_PUTS_Q, CPP_PUTS, CPP_PUTC_Q, - CPP_PUTC, DUMMY_TOKEN, NO_DUMMY_TOKEN): Delete. - * cpplex.c (_cpp_expand_token_space, _cpp_init_toklist, - _cpp_free_toklist): No need to worry about extra dummy token - at the start of token lists any more. - (trigraph_ok): Only warn outside comments. - (skip_block_comment): Set and clear lexing_comment. - (skip_line_comment): Take a cpp_reader not cpp_buffer. - Set and clear lexing_comment. - (parse_number): Handle leading '.' indicated by pfile->seen_dot. - (check_long_token): Delete. - (lex_percent, lex_dot): New subroutines of lex_token to - handle lexing of '.' and '%' without lookback. - (lex_token): Use lex_dot and lex_percent. - (lex_line): Don't check for LIST_OFFSET. - (_cpp_init_input_buffer): Update for new _cpp_init_toklist. - * cpplib.c (_cpp_parse_assertion): Similarly. - (cpp_push_buffer): Initialize extra_char. - * cpplib.h (LIST_OFFSET): Delete. - (struct cpp_buffer): New member extra_char. - (struct lexer_state): New members lexing_comment and seen_dot. - -2000-09-23 Jason Merrill - - * config/rs6000/x-aix41 (CLIB): Define here. - * config/rs6000/t-aix43: Not here. - * config/rs6000/t-aix41: Or here. Remove. - * configure.in: Don't use it. - -2000-09-22 Jason Merrill - - * configure.in: Add test for HAVE_LD_DWARF_LINKONCE. - * toplev.c: Use it to initialize flag_eliminate_dwarf2dups. - * config.in: Regenerate. - - * configure.in: Fix checks for assembler features when using a - one-tree assembler that has not yet been built. - Fix --disable-threads. - -2000-09-19 Geoff Keating - - * stmt.c (expand_asm_operands): Allow # in constraints. - -2000-09-22 Jason Merrill - - * c-lex.c (skip_white_space): Just treat CRs as horizontal whitespace. - - * dbxout.c (dbxout_symbol_name): Just use DECL_NAME for - function-local names. - -2000-09-22 Brad Lucier - Mark Mitchell - - * toplev.c (warn_disabled_optimization): Declare new warning flag. - * flags.h (warn_disabled_optimization): Add it here. - * gcse.c (gcse_main): Add warning when disabled. - * invoke.texi: Document -Wdisabled-optimization. - -2000-09-21 Jason Merrill - - * dwarf2out.c (add_const_value_attribute): Multiply by length, not 4. - - * dwarf2out.c (tree_add_const_value_attribute): New fn. - (gen_variable_die): Call it for non-definitions. - - * dwarf2out.c (die_struct): Add die_mark field. - (mark_dies, unmark_dies): New fns. - (clear_die_sizes): Remove. - (print_die): Check die_symbol rather than die_offset. - (build_abbrev_table, output_pubnames, output_aranges): Check - die_mark rather than die_offset. - (output_comp_unit): Move calc_die_sizes after build_abbrev_table. - Call mark_dies. - -Thu 21-Sep-2000 18:19:05 BST Neil Booth - - * cppfiles.c (lookup_include_file): Rename to open_file. - Always create a splay tree value, even on syscall failures. - Negative entries indicated by fd == -2. - Re-open files closed in the meantime. - (_cpp_fake_include): Create a negative splay tree entry. - (find_include_file, cpp_read_file): Update for function name - change. - * gcc.gd/cpp/mi4.c: Testcase. - -2000-09-21 Nick Clifton - - * config/arm/t-arm-elf (MULTILIB_DIRNAMES): Enable multilibs for - ARM and THUMB modes. - - * config/mcore/mcore.c: Fix compile time warnings. - * config/mcore/mcore-protos.h: Fix compile time warnings. - -2000-09-20 J. David Anglin - - * configure.in: Correct test of gcc_cv_glibc. - * configure: Rebuilt. - * config.in: Rebuilt. - -2000-09-20 Kaveh R. Ghazi - - * builtins.c (expand_builtin_fputs): Also expand when length!=1. - (expand_builtin): Handle BUILT_IN_FWRITE. - - * builtins.def (BUILT_IN_FWRITE): New entry. - - * c-common.c (c_common_nodes_and_builtins): Declare __builtin_fwrite. - -Wed Sep 20 15:39:14 2000 Richard Kenner - - * gcc.c (modify_target): New variable and struct. - (process_command): Handle MODIFY_TARGET_NAME. - * tm.texi (MODIFY_TARGET_NAME): Add documentation for new macro. - * config/pa/pa.h (MODIFY_TARGET_NAME): New macro. - - * c-decl.c (finish_decl): Add else's to avoid referencing - TYPE_DOMAIN of an ERROR_MARK. - -Wed Sep 20 21:44:31 2000 Denis Chertykov - - * config/avr/avr.c (adjust_insn_length): Adjust lengths of - `reload_in*' insns. - -2000-09-19 Marek Michalkiewicz - - * config/avr/avr.md (neghi2): Add alternative for input and output - operands in different registers, as in negsi2. - (*negsi2): Remove '*' from the name. Use "movw" if available. - -2000-09-19 Jim Wilson - - * config/ia64/crtbegin.asm (__dso_handle): Delete use of - HAVE_GAS_HIDDEN macro. - -Tue 19-Sep-2000 22:38:57 BST Neil Booth - - * cpplex.c (lex_line): Drop the EOF token for unknown - directives in assembler. - -2000-09-19 David Edelsohn - - * configure.in: Allow enable_threads_flag value of "aix". Define - thread_file as "aix" for AIX 4.3 and above. - * configure: Regenerated. - - * gthr-aix.h: New file. - - * rs6000/t-aix43: Replace soft-float multilib with pthread. - Remove 403 processor multilib match. Fix rios2 processor multilib - match. - - * rs6000/aix.h (ASM_DECLARE_FUNCTION_NAME): Use function_section - to return to appropriate csect. - -2000-09-19 Kaveh R. Ghazi - - * builtins.c (is_valid_printf_arglist, expand_builtin_printf): New - functions. - (expand_builtin_fputs): Set `target' parameter for `expand_expr'. - (expand_builtin): Handle BUILT_IN_PUTCHAR, BUILT_IN_PUTS and - BUILT_IN_PRINTF. - - * builtins.def (BUILT_IN_PUTCHAR, BUILT_IN_PUTS, BUILT_IN_PRINTF): - New entries. - - * c-common.c (init_function_format_info): Handle __builtin_printf. - Set `check_function_format_ptr'. - (c_common_nodes_and_builtins): Set `puts_ftype' and - `printf_ftype'. Declare __builtin_putchar, __builtin_puts, - __builtin_printf and printf. - - * tree.c, tree.h (check_function_format_ptr): Declare. - -Tue 19-Sep-2000 18:26:57 BST Neil Booth - - * cppfiles.c (read_include_file): Take no special action for - zero-length files. - -2000-09-19 Bernd Schmidt - - * final.c (insn_current_reference_address): Use INSN_SHUID of seq - rather than that of branch. - (shorten_branches): Don't increment insn_current_address twice. - - Undo most of the Wed Jan 27 23:39:53 1999 patch: - * loop.h (struct induction): Delete members derived, ix and last_use. - (struct loop_ivs): Delete members first_increment_giv and - last_increment_giv. - * loop.c (verify_dominator, find_life_end, cmp_recombine_givs_stats, - recombine_givs): Delete functions. - (find_and_verify_loops): Don't initialize cont_dominator. - (strength_reduce): Lose code to try to find bivs that can be - expressed as givs of another biv, and to convert biv increments - into givs. - Lose loop_scan_start variable, always use loop->scan_start. - Don't call recombine_givs. Don't handle derived givs. - (record_giv): Don't initialize derived and last_use fields. - (biv_eliminiation_giv_has_0_offset): Lose code to handle derived - givs. - * unroll.c (derived_regs): Delete static variable. - (unroll_loop): Don't initialize it. - (copy_loop_body): Lose code to handle derived givs. - (find_splittable_givs): Don't check for givs made from biv - increments. - Don't set derived_regs. - - Fix misapplied earlier patch: - * config/sh/sh.md (floatsisf_ie): Reenable. Remove explicit reference - to fpul. - (floatsisf2): Generate floatsisf_ie by default. - (floatsisf_i4): Conditional on TARGET_SH4. - - (floatsisf2, floatsidf2, extendsfdf2): Also use reg_no_subreg_operand - predicate for the expanders. - -2000-09-19 Richard Henderson - - * config/i386/i386.h (CPP_CPU_SPEC): Define i586 and i686 symbols - in addition to pentium and pentiumpro symbols. - (CPP_CPU_DEFAULT_SPEC): Likewise. - - * c-typeck.c (c_expand_asm_operands): Restore the output tree - after expanding. - - * stmt.c (expand_expr_stmt): Only call warn_if_unused_value - if the tree has side effects. - (warn_if_unused_value): Do not warn about void constructs. - - * c-decl.c (poplevel): Invoke warn_about_unused_variables. - - * unroll.c (copy_loop_body): Update LABEL_NUSES before - calling invert_jump. - -2000-09-18 Geoff Keating - - * combine.c (can_combine_p): Don't substitute an ASM_OPERANDS - into anything. - -2000-09-18 Kaveh R. Ghazi - - * Makefile.in (c-common.o): Depend on diagnostic.h. - - * c-common.c: Include diagnostic.h. - (tfaff): Delete. - (status_warning): New function. - (check_format_info, maybe_read_dollar_number, check_format_types, - finish_dollar_format_checking, check_function_format): Accept a - `status' parameter. All callers changed. - - * c-common.h (check_function_format): Accept a `status' parameter. - - * c-typeck.c: Update call to `check_function_format'. - -2000-09-18 Richard Henderson - - * c-decl.c (c_expand_body): Call mark_varargs before - expand_function_start. - -2000-09-18 Geoff Keating - - * config/rs6000/eabi-cn.asm: Use /**/ to delimit comments, not #. - * config/rs6000/eabi-ci.asm: Likewise. - -2000-09-18 Richard Henderson - - * emit-rtl.c (init_emit_once): Initialize const_tiny_rtx - for BImode. - -2000-09-18 Jim Wilson - - * unroll.c (loop_iterations): Pass increment to extend_for_giv_value - before passing it to fold_rtx_mult_add. - - * unroll.c (final_giv_value): Pass increment through - extend_value_for_giv before passing it to emit_iv_add_mult. - - * function.c (fixup_var_refs_1, case ZERO_EXTRACT): If we have a - paradoxical subreg, then directly substitute the replacement and - return. - -Mon 18-Sep-2000 22:12:44 BST Neil Booth - - * cpp.texi: Update documentation, including some clarifications, - the treatment of various newline combinations, and space between - backslash and newline. - -Mon Sep 18 21:00:47 2000 J"orn Rennecke - - * sdbout.c (PUT_SDB_DEF, PUT_SDB_TAG, PUT_SDB_EPILOGUE_END): - Replace ASM_OUTPUT_LABELREF with assemble_name. - -Mon Sep 18 20:26:50 2000 J"orn Rennecke - - * sh.c (addsubcosts): CONST is not cheap. - (find_barrier): For Sh1, take alignment after jumps into account. - -2000-09-15 Andrew Haley - - * toplev.c (rest_of_compilation): Call purge_hard_subreg_sets to - remove all SETs of SUBREGs of hard registers. - * function.c (purge_hard_subreg_sets): New function. - (purge_single_hard_subreg_set): New function. - * rtl.h: (purge_hard_subreg_sets): New function. - -2000-09-18 Richard Henderson - - * config/ia64/ia64-protos.h: Update. - * config/ia64/ia64.c (signed_inequality_operator): New. - (ia64_expand_compare): New. - (ia64_register_move_cost): Handle PR_REGS moves. - (ia64_secondary_reload_class): Require a GR when moving to a PR. - (struct reg_write_state): Add written_by_and/or. - (struct reg_flags): Add is_and/or. - (rws_update): Set them. - (rws_access_regno): Test them to allow parallel comparisons. - (rtx_needs_barrier): Recognize parallel comparisons. - (emit_insn_group_barriers): Set prev_insn after a call stop bit. - Call recog_memoized; ignore pred_rel_mutex. - (emit_predicate_relation_info): Don't call find_basic_blocks here. - (ia64_reorg): Do it here instead. - * config/ia64/ia64.h: s/CCmode/BImode/g - (MODES_TIEABLE_P): Don't tie BImode. - (PREFERRED_RELOAD_CLASS): Do not reload operations into AR regs. - (CONST_COSTS): Pick sensible values for CONST_INT based on context. - (RTX_COSTS): Make multiply 4 insns. - (MEMORY_MOVE_COST): New. - (PREDICATE_CODES): Update. - * config/ia64/ia64.md: s/CCmode/BImode/g - (movcci, movbi): New. - (andbi3, andcmbi3, iorbi3, iorcmbi3, one_cmplbi2): New. - (cmpsi_and_0, cmpsi_and_1, cmpsi_andnot_0, cmpsi_andnot_1): New. - (cmpdi_and_0, cmpdi_and_1, cmpdi_andnot_0, cmpdi_andnot_1): New. - (tbit_and_0, tbit_and_1, tbit_and_2, tbit_and_3): New. - (cmpsi_or_0, cmpsi_or_1, cmpsi_orcm_0, cmpsi_orcm_1): New. - (cmpdi_or_0, cmpdi_or_1, cmpdi_orcm_0, cmpdi_orcm_1): New. - (tbit_or_0, tbit_or_1, tbit_or_2, tbit_or_3): New. - (mulsi, muldi): Use xmpy not xma. - (cmpbi): New. - (movcc, movcc_internal): Remove. - (branch expanders): Use ia64_expand_compare. - (setcc expanders): Likewise. - (cmov insns): Use move_operand and ia64_move_ok. - (pred_rel_mutex): Use unspec not unspec_volatile. Prevent the - scheduler from moving it past a use. - * config/ia64/build.hacks: Remove. - -Mon 18-Sep-2000 19:21:35 BST Neil Booth - - * cpphash.h (HASHSTEP): Take character rather than pointer - to character. - (_cpp_check_directive, _cpp_check_linemarker): Update prototypes. - - * cpphash.c (cpp_loookup): Update for new HASHSTEP. - - * cpplex.c (auto_expand_name_space, trigraph_replace, - backslash_start, handle_newline, parse_name, INIT_TOKEN_STR, - IMMED_TOKEN, PREV_TOKEN_TYPE, PUSH_TOKEN, REVISE_TOKEN, - BACKUP_TOKEN, BACKUP_TRIGRAPH, MIGHT_BE_DIRECTIVE, - KNOWN_DIRECTIVE): Delete. - - (handle_newline, check_long_token, skip_escaped_newlines, - unterminated): New functions. - (ACCEPT_CHAR, SAVE_STATE, RESTORE_STATE): New macros. - - (parse_identifier): Was parse_name, new implementation. - (skip_line_comment, skip_block_comment, skip_whitespace, - parse_number, parse_string, trigraph_ok, save_comment, - adjust_column, _cpp_get_line): New implementations. - - (lex_token): New function. Lexes a token at a time, looking - forwards. Contains most of the guts of the old lex_line. - (lex_line): New implementation, using lex_token to obtain - individual tokens. - (cpp_scan_buffer): Use the token's line, not the list's line. - - * cpplib.c (_cpp_check_directive, _cpp_check_linemarker): - New implementations. - (do_assert): Don't bother setting the answer's list's line. - (cpp_push_buffer): Initialize new pfile and read_ahead members - of struct cpp_buffer. - - * cpplib.h (cppchar_t): New typedef. - (struct cpp_buffer): read_ahead, pfile and col_adjust are - new members. - (struct lexer_state): New structure that determines the state - and behavior of the lexer. - (IN_DIRECTIVE, KNOWN_DIRECTIVE): New macros. - (struct cpp_reader): New member "state". Rename - multiline_string_line and multiline_string_column. Delete - col_adjust, in_lex_line members. - (CPP_BUF_COLUMN): Update. - -2000-09-18 Richard Henderson - - * combine.c (simplify_comparison): Shift a NOT out of a single - bit test. - - * combine.c (if_then_else_cond): Canonicalize BImode true to - STORE_FLAG_VALUE. - * explow.c (trunc_int_for_mode): Likewise. - - * combine.c (combine_simplify_rtx): Use gen_unary to distribute - the NOT for De Morgan's rule. - * simplify-rtx.c (simplify_unary_operation): Simplify a BImode NOT - of a comparison to the reverse comparison. - - * combine.c (try_combine): Allow split to create a single insn. - - * machmode.def: Add BImode. Add a column for bitsize. - * machmode.h (DEF_MACHMODE): Adjust for extra column. - (GET_MODE_BITSIZE): Use it. - * rtl.c (DEF_MACHMODE): Adjust for extra column. - (mode_bitsize): New. - (mode_mask_array): Use bitsize. - * combine.c (combine_simplify_rtx): Require inner and outer - modes to match on nonzero_bits optimizations. - -2000-09-18 Bernd Schmidt - - * reload1.c (forget_old_reloads_1): If a hard reg is stored, clear - its entry in spill_reg_store. - * config/sh/lib1funcs.ams (movstr_i4 functions): Always compile in. - * sh.c (reg_no_subreg_operand): New function. - * sh-protos.h (reg_no_subreg_operand): Declare it. - * sh.h (PREDICATE_CODES): Add it. - * sh.md (floatsisf2_i4, floatsidf2_i, extendsfdf2_i4): Use it for - input operand that needs to be in fpul. - (fix_truncsfsi2, fix_truncsfsi2_i4): Use register_operand for output. - * sh.c (find_barrier): Take into account that machine_dependent_reorg - might add new insns. - -2000-09-18 Alexandre Oliva - - * config/sh/sh.c (sh_expand_prologue): Mark GOTaddr2picreg as - MAYBE_DEAD. - (sh_expand_epilogue): Take the PIC register into account when - computing the frame size. - - * config/sh/sh.c (nonpic_symbol_mentioned_p): Check LABEL_REFs. - * config/sh/sh.md (sym_label2reg, symPLT_label2reg): Protect - LABEL_REFs with a PIC-safe unspec. - -2000-09-18 Joseph S. Myers - - * c-common.c (check_format_info): Properly save the argument - number and parameter for $ operand number formats in case width - and precision arguments are also used. Allow printf width and - precision arguments to have operand numbers even if none was - specified for the main format, since this is OK for %*.*m. Only - object to missing $ operand number if the format used requires an - argument. - -2000-09-18 Joseph S. Myers - - * c-common.c (format_char_info): Add 'W' flag to comment. - (print_char_table, scan_char_table): Use it. - (check_format_info): Use the 'W' flag to determine whether a - format argument is written into. - -2000-09-18 Joseph S. Myers - - * c-common.c (check_format_types): Reorganize and clean up, - checking earlier for ERROR_MARKs and making cur_type into its - TYPE_MAIN_VARIANT where convenient. - -2000-09-18 Joseph S. Myers - - * gcc.c (cpp_options): Add specs for __STDC_HOSTED__. - -2000-09-18 Bernd Schmidt - - * optabs.c (emit_libcall_block): Set CONST_CALL_P for the call. - - * i386-protos.h (ix86_init_builtins, ix86_expand_builtin): Declare. - * i386.c (struct builtin_description): New. - (bdesc_comi, bdesc_2arg, bdesc_1arg): New arrays. - (mmx_reg_operand): Declare MODE arg as unused. - (ix86_expand_sse_comi, ix86_expand_sse_compare, safe_vector_operand, - ix86_expand_unop1_builtin, ix86_expand_unop_builtin, - ix86_expand_binop_builtin, ix86_expand_store_builtin, - ix86_init_builtins, ix86_expand_builtin): New functions. - * i386.h (ix86_builtins): New enumeration. - (MD_INIT_BUILTINS, MD_EXPAND_BUILTIN): New macros. - * i386.md (attr length_immediate): 0 for mmx/sse types. - (attr prefix_0f): 1 for mmx/sse types. - (setcc_2): Remove "*" so we get gen_setcc_2. - (emms): Account for changed register numbering. Set "memory" attr - to unknown. - (sfence): Set "memory" attr to unknown. - -2000-09-18 Andreas Jaeger - - * configure.in: Define _GNU_SOURCE only when using the GNU C - Library. - * configure: Regenerated. - * config.in: Regenerated. - -2000-09-17 Mark Mitchell - - * cppinit.c (cpp_init): Don't use ANSI prototypes. - * flow.c (flow_dump_loop): Likewise. - (flow_loops_dump): Likewise. - - * c-typeck.c (c_start_case): Fix typo. - -2000-09-17 Joseph S. Myers - - * c-decl.c (grokdeclarator): Don't give a warning about defaulting - to int for plain complex which defaults to complex double. Do - warn about defaulting to complex double if pedantic. Warn about - complex integer types if pedantic. Warn about complex types if - pedantic and not in C99 mode. - * c-typeck.c (build_unary_op): If pedantic, warn about use of ~ - for complex conjugation. - -2000-09-17 Joseph S. Myers - - * contrib.texi: Update my entry. - -Sun Sep 17 18:48:32 2000 Denis Chertykov - - * config/avr/avr.md (mcu_enhanced): New attribute. - (mcu_mega): Likewise. - (extendhisi2): Use mcu_enhanced. - (zero_extendhisi2): Likewise. - (call_insn): Use mcu_enhanced and mcu_mega. - (call_value_insn): Likewise. - (*sbrx_branch): Use mcu_mega. - (*sbrx_and_branchsi): Likewise. - (*sbrx_and_branchhi): Likewise. - (*tablejump_lib): Likewise. - -Sun Sep 17 10:46:17 2000 Richard Kenner - - * alias.c (true_dependence): Allow non-unchanging read to conflict - with unchanging write. - - * expr.c (store_constructor_field): Accept ALIAS_SET arg. - (store_constructor): Pass alias_set to it. - - * c-decl.c (grokdeclarator): Reorder tests to avoid looking at - TYPE_MAIN_VARIANT of ERROR_MARK. - * c-lex.c (readescape): Avoid using printf syntax we don't recognize. - - * simplify-rtx.c (simplify_unary_operation): Add cases - FLOAT_EXTEND and FLOAT_TRUNCATE to ones that return 0. - -2000-09-17 Bernd Schmidt - - * expr.h (emit_library_call, emit_library_call_value): Delete - declarations. - * rtl.h (enum libcall_type): New. - (emit_library_call, emit_library_call_value): Change fn_type arg to - be of type enum libcall_type. - * calls.c: Likewise for the function definitions. Several callers - throughout changed to use the new enumeration appropriately. - (emit_library_call_value_1): Likewise. Put back code to make libcall - blocks of equal form, but only use it for the two new higher - enumeration values. - -2000-09-16 Mark Mitchell - - Convert the C front-end to use function-at-a-time mode. - * c-common.h: Include splay-tree.h. - (C_DECLARED_LABEL_FLAG): New macro. - (struct language_function): Add x_scope_stmt_stack and - x_function_name_declared_p. - (RECHAIN_STMTS): Move definition. - (lang_statement_code_p): Likewise. - (lang_expand_stmt): Likewise. - (lang_expand_decl_stmt): New variable. - (lang_expand_function_end): Likewise. - (current_scope_stmt_stack): New function. - (add_decl_stmt): Likewise. - (add_scope_stmt): Likewise. - (mark_stmt_tree): Likewise. - (struct c_lang_decl): New structure. - (DECL_SAVED_TREE): Define. - (c_mark_lang_decl): New function. - (c_expand_start_cond): Change prototype. - (c_finish_then): New function. - (c_finish_else): Likewise. - (current_function_name_declared): Remove. - (set_current_function_name_declared): Likewise. - (mark_c_language_function): Declare. - (case_compare): Likewise. - (c_add_case_label): Likewise. - (c_expand_expr): Likewise. - (c_safe_from_p): Likewise. - * c-common.c (lang_expand_function_end): New variable. - (struct if_elt): Add if_stmt. - (c_expand_start_cond): Add the if-statement to the statement-tree, - rather than generating RTL. - (c_finish_then): New function. - (c_expand_start_else): Don't generate RTL. - (c_finish_else): New function. - (c_expand_expr_stmt): Don't generate RTL. - (statement_code_p): Add SCOPE_STMT. - (case_compare): New function. - (c_add_case_label): Likewise. - (mark_stmt_tree): Likewise. - (c_mark_lang_decl): Likewise. - (mark_c_language_function): Likewise. - (c_expand_expr): Likewise. - (c_safe_from_p): Likewise. - * c-decl.c (c_stmt_tree): New variable - (c_scope_stmt_stack): Likewise. - (c_function_name_declared_p): Likewise. - (lang_expand_expr_stmt): Remove. - (poplevel): Don't call output_inline_function for nested - functions. - (pushdecl): Don't set DECL_CONTEXT for a local declaration of an - `extern' function. - (redeclaration_error_message): Change means of computing whether - or not a function is nested. - (lookup_label): Don't call label_rtx. - (init_decl_processing): Add more GC roots. - (start_decl): Add DECL_STMTs to the statement-tree, rather than - calling rest_of_decl_compilation. - (finish_decl): Don't call expand_decl. - (store_parm_decls): Begin the statement-tree, but don't generate - RTL. - (finish_function): Tie off the statement-tree. Call c_expand_body - if appropriate. - (c_expand_body): New function. - (push_c_function_context): Save more information. - (pop_c_function_contxt): Likewise. - (copy_lang_decl): Now that we use DECL_LANG_SPECIFIC, copy it. - (lang_mark_tree): Mark it. - (current_stmt_tree): Adjust. - (current_scope_stmt_stack): New function. - (do_case): Remove. - (set_current_name_declared): Likewise. - (c_begin_compound_stmt): Define. - (c_expand_decl_stmt): Likewise. - * c-lang.c: Include rtl.h and expr.h. - (lang_init): Set more language-specific hooks. - * c-lex.c: Include expr.h. - * c-parse.in: Changes throughout to add statements to the - statement-tree, rather than generating RTL after every statement. - * c-semantics.c (lang_expand_decl_stmt): Define. - (add_decl_stmt): New function. - (add_scope_stmt): Likewise. - (finish_stmt_tree): Tweak. - (genrtl_expr_stmt): Likewise. - (genrtl_decl_stmt): Handle local labels, and call - lang_expand_decl_stmt if required. - (genrtl_for_stmt): Fix line-number handling. - (genrtl_case_label): Handle cleanups. - (genrtl_asm_stmt): Don't call combine_strings. - (genrtl_compound_stmt): Simplify. - (expand_stmt): Handle SCOPE_STMTs. - * c-tree.h (struct lang_decl): New structure. - (C_DECLARED_LABEL_FLAG): Remove. - (c_begin_compound_stmt): Declare. - (c_expand_decl_stmt): Likewise. - (c_expand_start_case): Rename to c_start_case. - (c_finish_case): New function. - * c-typeck.c (start_init): Tweak setting of - constructor_incremental. - (c_expand_asm_operands): Tweak error-handling. Add to the - statement-tree. - (c_expand_return): Add to the statement-tree. - (c_expand_start_case): Rename to ... - (c_start_case): ... this. - (struct c_switch): New type. - (switch_stack): New variable. - (do_case): Simplify. - (c_finish_case): New function. - * dependence.c: Include expr.h. - (enum dependence_type): Change spelling of enumerals. - (check_node_dependence): Adjust. - * expr.h (lang_safe_from_p): Declare. - (safe_from_p): Likewise. - * expr.c (lang_safe_from_p): New variable. - (safe_from_p): Give it external linkage. Use lang_safe_from_p. - * stmt.c (expand_expr_stmt): Avoid clobberring of last_expr_type. - * toplev.c (rest_of_decl_compilation): Robustify. - * tree.c (contains_placeholder_p): Likewise. - * Makefile.in: Update dependencies. - * objc/objc-act.h: Adjust calculation of value for dummy_tree_code. - * objc/objc-act.c: Include rtl.h, expr.h, and c-common.h. - (objc_expand_function_end): New function. - (finish_method_def): Use it. - (init_objc): Initialize more language-specific hooks. - * objc/Make-lang.in: Update dependencies. - -2000-09-16 Geoffrey Keating - - * configure.in: Define macros that affect features before - testing for features. Don't define _XOPEN_SOURCE. - * configure: Regenerated. - * config.in: Regenerated. - -Sat Sep 16 19:42:50 EDT 2000 John Wehle (john@feith.com) - - * rtlanal.c (rtx_varies_p): Volatile asms vary. - (rtx_unstable_p): Restructure code. Volatile asms - are unstable. - -Sat Sep 16 14:35:55 2000 Richard Kenner - - * function.h (no_debugging_symbols): New field. - * integrate.c (save_for_inline): Renamed from save_for_inline_nocopy. - Initialize no_debugging_symbols. - (output_inline_function): Save and restore write_symbols and set from - no_debugging_symbols. - * toplev.c (rest_of_compilation): Call save_for_inline. - * tree.h: Update comment. - - * stor-layout.c (place_field): Don't do anything if field or - its type are ERROR_MARK. - -Sat Sep 16 19:14:00 2000 Laurynas Biveinis - - * cppfiles.c (purge_cache): Use munmap only if MMAP_THRESHOLD defined. - (read_include_file): Ensure inc->mmaped is initialized. - -2000-09-16 Richard Henderson - - * cppiles.c (purge_cache): Use PTR not caddr_t. - -2000-09-16 Hans-Peter Nilsson - - * gcc.c: In description for %{ - - * configure.in: Always define _GNU_SOURCE to make interfaces - visible that were hidden by only defining _GNU_SOURCE. - * configure: Regenerated. - -Sat 16-Sep-2000 08:13:45 BST Neil Booth - - * cpplex.c (push_macro_context): Set an argument's level after - calling parse_args. We could loop infinitely otherwise. - -2000-09-15 Tom Tromey - - * configure, config.in: Rebuilt. - * configure.in: Check for iconv.h. Define _XOPEN_SOURCE. - -2000-09-15 Greg McGary - - * cppmacro.c (check_trad_stringification): Check token - text pointers against limit before dereferencing. - -2000-09-15 Joseph S. Myers - - * c-common.c (format_wanted_type): New structure. - (check_format_types): New function. - (check_format_info): Pass all checking of types of format - arguments, including width and precision arguments, to this new - function. - -2000-09-15 Gerald Pfeifer - - * BUGS: Remove file. - -2000-09-15 Jakub Jelinek - - * config/alpha/alpha.c (override_options): ev6 cache latencies - from Richard Henderson. Don't allow -mmemory-latency=L0. - - * config/alpha/alpha.h (TARGET_CPU_EV5, TARGET_CPU_EV6): Define. - (TARGET_OPTIONS): Add tune=. - (alpha_tune_string): Declare. - * config/alpha/alpha.c (override_options): Add cpu_table. - Use alpha_cpu_string first to set both alpha_cpu and target_flags - and then alpha_tune_string to set alpha_cpu only. - Replace tests for PROCESSOR_EV* with TARGET_CPU_EV* tests. - * config/alpha/elf.h (ASM_FILE_START): Likewise. - * config/alpha/osf.h (ASM_FILE_START): Likewise. - * config/alpha/openbsd.h (ASM_FILE_START): Likewise. - -Fri Sep 15 19:45:55 MET DST 2000 Jan Hubicka - - * i386-protos.h (no_comparison_operator, uno_comparison_operator): - Remove. - (ix86_comparison_operator, ix86_cc_mode): Declare - * i386.h (CCGC, CCGCO): New modes. - (SELECT_CC_MODE): Move offline to .... - * i386.c (ix86_cc_mode): .... here; use new modes. - (ix86_comparison_operator): New. - (fcmov_comparison_operator): Ensure proper mode. - (put_condition_mode): More sanity checking. - (ix86_match_ccmode): Handle new modes. - (ix86_expand_fp_compare): GEU requires CCmode. - (ix86_expand_strlensi_unroll_1): Use emit_cmp_and_jump_insn instead of - doing it by hand. - * i386.md (cmp?i_ccz_1): Remove - (cmp?i_ccno_1): Use ix86_match_ccmode. - (cmp?i_minus_1): New. - (cmpsi_1): New expander. - (cmpqi_ext_1): Use match_ccmode - (cmpqi_ext_3): New expander. - (cmpqi_ext_3_insn): Rename from cmpqi_ext_3. - (cmpqi_ext_4): Use match_ccmode. - (add?i_?): Use match_ccmode. - (add?i_6): New. - (test?i_ccz_1): Remove - (test?i_1): New. - (testsi_ccno_1, testqi_ccz_1, testqi_ext_ccno_0): New expander. - (testqi_ext_0): Use ix86_match_ccmode. - (*xorqi_cc_ext_1): Use ix86_match_ccmode. - (xorqi_cc_ext_1): New expander. - (shift patterns): Use CCGOCmode for all shifts except for sar. - (setcc_?, jcc_?, miv?icc_nic): Use ix86_comparison_operator. - (setcc_3, jcc_3, miv?icc_c): Remove. - -2000-09-15 Will Cohen - - * dwarf2out.c (add_const_value_attribute): Changed array into a - xmalloced object, so it exists after function exit. - (free_AT): Added case for dw_val_class_float to free allocated - memory. - -2000-09-15 Kazu Hirata - - * config/i386/i386.md: Fix a comment typo. - * gcc.c: Fix formatting. - -2000-09-15 Bernd Schmidt - - * optabs.c (emit_libcall_block): If target is a user variable, - copy to a temporary first. - * expr.c (convert_move): When generating a libcall, make a libcall - block. - * calls.c (emit_library_call_value_1): Don't create a libcall - sequence here; our caller will in most cases do it. - - * sh.h (SECONDARY_INPUT_RELOAD_CLASS): Handle moving T, MACL or - MACH into FPUL. - (SECONDARY_OUTPUT_RELOAD_CLASS): Similar case. - * sh.md (reload_outsf): Generate recognizable patterns for - TARGET_SH3E. - (floatsisf2, floatsisf2_ie, floatsisf2_i4, fix_truncsfsi2, - fix_truncsfsi2_i4, fixsfsi, floatsidf2, floatsidf2_i, fix_truncdfsi2, - fix_truncdfsi2_i, extendsfdf2, extendsfdf2_i4, truncdfsf2, - truncdfsf2_i4): Change not to use explicit references to fpul. - (floatsisf2_ie): Remove USE of fpscr. - (floatsisf2): Change default expansion to match this. - (fix_truncsfsi2_i4_2, fix_truncdfsi2_i4 & splitters): Comment out - unused patterns. - -2000-09-15 Richard Henderson - - * expmed.c (store_bit_field): Consider naturally aligned - memory for direct reference. - -2000-09-15 Richard Henderson - - * config/alpha/alpha.c (alpha_expand_unaligned_load): Force all - AND addresses into alias set 0. - (alpha_expand_unaligned_store): Likewise. - (alpha_expand_unaligned_load_words): Likewise. - (alpha_expand_unaligned_store_words): Likewise. - -2000-09-15 Bernd Schmidt - - * config/sh/sh.h (CPP_SPEC): For -m4-nofpu, define __SH4_NOFPU__. - * config/sh/lib1funcs.asm (movstr_i4): Also compile if __SH4_NOFPU__ - is defined. - * config/mips/mips.c (mips_va_arg): Args passed by reference have a - rsize of UNITS_PER_WORD. - -Fri 15-Sep-2000 06:49:07 BST Neil Booth - - * cpplex.c (ON_REST_ARG): Correct the test. - (maybe_paste_with_next): Duplicate a token that fail pasting, - and clear its PASTE_LEFT flag, so that nested pasting attempts - do not occur. - -2000-09-14 Richard Henderson - - * calls.c (precompute_register_parameters): Use COSTS_N_INSNS, not 2. - * cse.c (rtx_cost): Likewise. - * optabls.c (expand_binop): Likewise. - (expand_twoval_binop, prepare_cmp_insn): Likewise. - * regclass.c (copy_cost): Likewise. - * reload1.c (reload_cse_move2add): Likewise. - -2000-09-14 Joseph S. Myers - - * c-parse.in (reswords): Add _Complex. - -2000-09-14 J. David Anglin - - * gcc.1: Delete documentation for -undef preprocessor option. - -2000-09-14 Alexandre Oliva - - * config/sh/sh.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP, - STARTFILE_SPEC, ENDFILE_SPEC): Remove define. - * config/sh/elf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): - Remove undefine before config/elfos.h. - * config/sh/t-sh (EXTRA_MULTILIB_PARTS): Comment out. - -2000-09-14 Kazu Hirata - - * invoke.texi (H8/300 Options): Add -ms2600. - * config/h8300.c (h8300_init_once): Output an error when -ms2600 - is used without -ms. - * config/h8300.h (TARGET_MAC): New. - (TARGET_SWITCHES): Add -ms2600 and -mno-s2600. - (CONDITIONA_REGISTER_USAGE): Disable the mac register on any - machine other than H8S/2600. - * config/h8300.md: Accept mac instructions on the H8S/2600 instead - of the H8S/2000. - -2000-09-14 Alexandre Oliva , Bernd Schmidt - - * reload.c (find_reloads_address_1): Generate reloads for auto_inc - pseudos that refer to the original pseudos, not only to their - equivalent memory locations. - -Thu Sep 14 12:10:16 2000 Richard Kenner - - * expr.c (expand_expr, case COMPONENT_EXPR): Copy memory attributes - when making new MEM. - - * Makefile.in (LN): Remove duplicate definition. - -2000-09-12 Bernd Schmidt - - From Joern Rennecke: - * local-alloc.c (update_equiv_regs): If there is no REG_EQUAL note - on an insn and function_invariant_p returns nonzero for the source, - add a REG_EQUAL note. - -Thu Sep 14 00:51:57 EDT 2000 John Wehle (john@feith.com) - - * alias.c (memrefs_conflict_p): An ADDRESSOF doesn't - conflict with frame_pointer_rtx. - -2000-09-13 Kazu Hirata - - * loop.c: Fix formatting. - * loop.h: Likewise. - -2000-09-13 Richard Henderson - - * config/ia64/ia64.md (divsf3): New. - (divsf3_internal_lat, divsf3_internal_thr): New. - (divdf3, divdf3_internal_lat, divdf3_internal_thr): New. - (divtf3, divtf3_internal_lat, divtf3_internal_thr): New. - (adddf3_trunc, subdf3_trunc, muldf3_trunc): New. - (madddf4_trunc, msubdf4_trunc, nmuldf3_trunc): New. - (nmadddf4_alts, nmadddf4_trunc): New. - (addtf3_truncsf, addtf3_truncdf, subtf3_truncsf): New. - (subtf3_truncdf, multf3_truncsf, multf3_truncdf): New. - (multf3_truncsf_alts, multf3_truncdf_alts): New. - (maddtf4_truncsf, maddtf4_truncdf, maddtf4_alts_truncdf): New. - (msubtf4_truncsf, msubtf4_truncdf, nmultf3_truncsf): New. - (nmultf3_truncdf, nmaddtf4_truncsf, nmaddtf4_truncdf): New. - (nmaddtf4_truncdf_alts): New. - (recip_approx): Don't predicate. - -2000-09-13 Richard Henderson - - * config/ia64/lib1funcs.asm (__divsf3): Protect fnorm.s with p6. - -2000-09-13 Stephane Carrez - - * flags.h (flag_dump_rtl_in_asm): Declare. - * toplev.c (flag_dump_rtl_in_asm): Define. - (decode_d_option): Set flag_dump_rtl_in_asm and flag_print_asm_name - if -dP is specified. - * rtl.h (print_rtx_head): Declare. - * print-rtl.c (print_rtx_head): Define. - (print_rtx): Print the string pointed to by print_rtx_head - at beginning of each dump line. - (print_rtl): Likewise. - (print_rtl_single): Likewise. - * final.c (final_scan_insn): Dump the insn in the assembly - file for debugging. - * gcc.1: Document -dP option. - * invoke.texi (Debugging Options): Likewise. - -2000-09-13 Stephane Carrez - - * md.texi (Machine Constraints): Document the 68HC11 constraints. - * install.texi (Configurations): Document the 68HC11&68HC12 port. - * invoke.texi (Option Summary, M68hc1x Options): Document the options. - -Tue Sep 12 13:51:13 2000 Denis Chertykov - - * config/avr/avr.h (ASSEMBLER_DIALECT): New macro declared. - * config/avr/avr.md (*movstrqi_insn): Cleanup output template. - (*clrstrqi): Likewise. - (xorhi3,xorsi3,absqi2): Likewise. - (one_cmplhi2,one_cmplsi2): Likewise. - (addsi3): Two stupid constraint alternatives removed. - (extendhisi2): Use `movw' for enhanced avr cores. - (zero_extendhisi2): Likewise. - -Wed Sep 13 02:31:23 EDT 2000 John Wehle (john@feith.com) - - * alias.c (find_base_term): Use frame_pointer_rtx - when handling an ADDRESSOF. - - * cse.c (canon_hash): Handle USE of BLKmode memory. - (cse_insn): Outgoing arguments for a libcall don't - affect any recorded expressions. - -2000-09-12 Tom Tromey - - * configure, config.in: Rebuilt. - * configure.in: Check for iconv, nl_langinfo, langinfo.h. - -2000-09-12 Jakub Jelinek - - * c-lex.c (lex_string): Use charwidth to compute bytemask. - * expr.c (expand_expr): Don't optimize constant array references - initialized with wide string constants. - -2000-09-13 Michael Hayes - - * loop.c (note_set_pseudo_multiple_uses): Correct. - -2000-09-12 Jim Wilson - - * ifcvt.c (noce_process_if_block): If A and B are the same, and no - else block, and X has side-effects, then fail. - -2000-09-12 Greg McGary - - * config/mips/mips-protos.h - (trap_cmp_op, mips_gen_conditional_trap): New func decls. - * config/mips/mips.h (ISA_HAS_COND_TRAP): New macro. - (PREDICATE_CODES): Add "trap_cmp_op". - * config/mips/mips.c - (trap_cmp_op, mips_gen_conditional_trap): New functions. - * config/mips/mips.md (trap, conditional_trap): New patterns. - -2000-09-12 Bernd Schmidt - - * flow.c (try_pre_increment_1): Don't do anything to sets of the stack - pointer. - -2000-09-12 Kaveh R. Ghazi - - * builtins.c (built_in_decls): New array. - (expand_builtin_fputs): New function. - (expand_builtin): Handle BUILT_IN_FPUTC and BUILT_IN_FPUTS. - - * builtins.def (BUILT_IN_FPUTC, BUILT_IN_FPUTS): New members. - - * c-common.c (c_common_nodes_and_builtins): Handle fputc/fputs. - - * tree.h (built_in_decls): New array. - -Tue Sep 12 08:53:57 2000 Jeffrey A Law (law@cygnus.com) - - * convex.md: Use "+" instead of "=" for outputs wrapped in a - STRICT_LOW_PART. - * i370.md, i386.md, ns32k.md, sh.md, vax.md: Likewise. - -2000-09-12 Kazu Hirata - - * haifa-sched.c: Fix formatting. - - * genattrtab.c: Fix formatting. - - * unroll.c: Fix formatting. - -2000-09-12 Bruce Korb - - * fixinc/fixfixes.c: make a type for the fix procedure & use it, - remove obsolete code - * fixinc/fixincl.c: Use PARAMS, not _P_. Add no-op default to switch. - * fixinc/fixincl.tpl: make non-exported arrays static scope - * fixinc/fixincl.x: regenerate - * fixinc/fixlib.h: Use PARAMS, not _P_ - * fixinc/fixtests.c: make a type for the test proc & use it - * fixinc/server.h: Use PARAMS, not _P_ - -2000-09-12 Kaveh R. Ghazi - - * c-typeck.c (process_init_element): Avoid union init warnings on - floating point zero. Don't crash on unions containing structs. - -2000-09-12 Alexandre Oliva - - * config/sh/sh.h (PREDICATE_CODES): Add CONST_DOUBLE to - general_movsrc_operand, and remove CONST_INT from - general_movdst_operand. - -2000-09-12 Bernd Schmidt - - * cse.c (approx_reg_cost): If SMALL_REGISTER_CLASSES, return INT_MAX - if a reference to non-fixed hardreg is seen. Otherwise, count hard - regs with a higher cost. - (preferrable): Deal with cases where either cost or regcost is - MAX_COST. - (cse_insn): Use MAX_COST rather than 10000. Always initialize - regcost values. - (COSTS_N_INSNS): Move definition... - * rtl.h: ...here. - (MAX_COST): New macro. - * loop.c (init_loop): Use COSTS_N_INSNS macro instead of hardcoded - constant. - -2000-09-11 Mark Mitchell - - * c-common.h (genrtl_clear_out_block): Remove. - * c-semantics.c (genrtl_clear_out_block): Remove. - (genrtl_while_stmt): Don't call it. - (genrtl_for_stmt): Likewise. - -2000-09-11 Zack Weinberg - - * cppfiles.c: Move all default-#defines to top of file. - (open_include_file): Replace by lookup_include_file. - (read_with_read, read_file): Merged into read_include_file. - (stack_include_file, purge_cache): New functions. - (close_cached_fd): Delete. - (lookup_include_file, read_include_file, _cpp_pop_file_buffer): - Cache the in-memory buffer, not the file descriptor. - - * cpphash.h (struct include_file): Add buffer, st, refcnt, - mapped fields. - (xcnew): New utility macro. - (DO_NOT_REREAD, NEVER_REREAD): Move up by struct include_file. - * cpplib.h (struct cpp_buffer): Remove mapped field. - -2000-09-11 Zack Weinberg - - * cpplex.c (parse_string): Accept backslash space newline as a - line continuation. - (lex_line): Likewise. - (_cpp_get_token): Remove hard limit on macro nesting. - -2000-09-12 Philipp Thomas - - * aclocal.m4 (AM_WITH_NLS): Don't force use of included gettext. - * configure: Rebuilt. - -2000-09-13 Michael Hayes - - * flow.c (split_block): Fix update of registers live at - end of split block. - -Tue Sep 12 01:51:38 MET DST 2000 Jan Hubicka - - * i386.md (add?i_3, add?i_5): New. - (add?i_4): Rename from add?i_3; Fix compare pattern. - (sub?i_3, xor?i_3, ior?i_3): New. - - * genrecog.c (write_tree): Output code to clear insn_extract cache. - * genattrtab.c (write_attr_case): Gen call to extract_insn_cache - instead of extract_insn and extract_constrain_insn_cache instead of - extract_insn and constrain_operands. - * recog.c (extract_insn_cached, extract_constrain_insn_cached): - New functions. - (extract_insn): Clear which_alternative. - (constrain_operands): Set which_alternative to -1 when failed. - * recog.h (extract_constrain_insn_cached, extract_insn_cached): - Declare. - -2000-09-11 Matthew Hiller - - * config/h8300/h8300.md (movstrictqi): Changed constraint modifier - on operand 0 to '+'. - (movstricthi): Likewise. - -2000-09-12 Michael Hayes - - * loop.h (LOOP_IVS): New macro. - (REG_IV_TYPE, REG_IV_INFO): Add ivs argument. - (struct loop_ivs): New. - (struct loop_info): Add ivs field. - (reg_iv_type, reg_iv_info): Delete prototype. - (reg_biv_class, loop_iv_list): Likewise. - * loop.c (record_biv, find_life_end): Pass loop argument. - (reg_iv_type): Remove global array and use - field in loop_regs structure within loop_ivs structure. - (reg_iv_info, reg_biv_class, loop_iv_list): Likewise. - (first_increment_giv, last_increment_giv): Use entry in - loop_ivs structure. - (record_initial): Pass ivs pointer. - * unroll.c (copy_loop_body, remap_split_bivs): Add loop argument. - -2000-09-12 Michael Hayes - - * loop.h (LOOP_REGS): New macro. - (struct loop_regs): New. - (struct loop_info): Add regs field. - * loop.c (set_in_loop): Remove global array and store - in loop_regs structure as part of loop_info structure. - (n_times_set, may_not_optimize): Likewise. - (reg_single_usage, moved_once): Likewise. - (count_one_set): Add regs argument. - (combine_movables, rtx_equal_for_loop_p, combine_givs): Likewise. - (set_pseudo_multiple_uses): Pass regs pointer. - -2000-09-12 Michael Hayes - - * unroll.c (iteration_info): Subsume into loop_iterations. - * loop.h (loop_info): New field iv. - -2000-09-12 Michael Hayes - - * basic-block.h (LOOP_TREE, LOOP_PRE_HEADER, LOOP_EDGES): New. - (LOOP_EXITS_DOMS, LOOP_ALL): Likewise. - (flow_loops_update): New prototype. - (flow_loops_find): Add flags to prototype. - (struct loop): Add `pre_header_root' and `pre_header_trace' fields. - * flow.c (flow_loop_pre_header_scan): New. - (flow_loop_dump): Dump pre-header root and trace and exit dominators. - (flow_loop_free): Free pre-header root and trace and exit dominators. - (flow_loops_find): New argument flags. - (flow_loops_update): New function. - * toplev.c (rest_of_compilation): Add flag argument to flow_loops_find. - -2000-09-12 Michael Hayes - - * basic-block.h (split_block, update_bb_for_insn): New prototypes. - * flow.c (split_block, update_bb_for_insn): New functions. - -2000-09-11 Richard Henderson - - * cse.c (fold_rtx): Honor NO_FUNCTION_CSE. - -2000-09-11 Richard Henderson - - * config/ia64/ia64-protos.h (fr_nonimmediate_operand): Declare. - * config/ia64/ia64.c (fr_nonimmediate_operand): New. - (ia64_override_options): Prevent optimizing division for both - latency and throughput. - (rtx_needs_barrier): Handle frcpa. - * config/ia64/ia64.h (MASK_INLINE_DIV_LAT): New. - (MASK_INLINE_DIV_THR, TARGET_INLINE_DIV_LAT): New. - (TARGET_INLINE_DIV_THR, TARGET_INLINE_DIV): New. - (TARGET_SWITCHES): Add -minline-divide-min-latency and - -minline-divide-max-throughput. - (PREDICATE_CODES): Update. - * config/ia64/ia64.md (extendsidi2): Remove * from f case. - (zero_extendsidi2): Likewise. Fix typo in f case insn. - (extendsfdf2): Add cases for gr<->fr and fr<->mem. - (extendsftf2): Likewise. - (extenddftf2): Likewise. - (fix_trunctfdi2_alts): New. - (fixuns_trunctfdi2_alts): New. - (madd*4): Rename from madd*3. - (divsi3, modsi3, udivsi3, umodsi3): New. - (divsi3_internal): New. - (divdi3, moddi3, udivdi3, umoddi3): New. - (divdi3_internal_lat, divdi3_internal_thr): New. - (multf3_alts, maddtf4_alts, nmaddtf4_alts): New. - (recip_approx): New. - -2000-09-11 Alexandre Oliva - - * print-rtl.c (debug_call_placeholder_verbose): New variable. - (print_rtx) [CALL_PLACEHOLDER]: Dump all call sequences if it is - set. - * integrate.c (copy_rtx_and_substitute): Don't share - LEAF_REG_REMAPpable registers with the inlined function. Don't - share the function value with calling sequences. - -2000-09-11 Jakub Jelinek - - * c-decl.c (do_case): Fix a typo. - - * combine.c (simplify_if_then_else): Don't convert a == b ? b : a - to a if the comparison is floating mode and not -ffast-math. - * simplify-rtx.c (simplify_ternary_operation): Likewise. - -Mon Sep 11 20:07:48 2000 J"orn Rennecke - - * sh.h (INITIALIZE_TRAMPOLINE): Remove stray call to - gen_ic_invalidate_line. - -2000-09-11 Philip Blundell - - * config/arm/elf.h (SUBTARGET_CPP_SPEC): Don't define `arm_elf'. - -Mon Sep 11 10:48:41 2000 Ulrich Drepper - - * install.texi (LANGUAGES): Update to include new languages. - * INSTALL: Rebuilt. - -2000-09-11 DJ Delorie - - * gcc.c (main): Don't warn about unused -B prefixes - (unused_prefix_warnings): remove - -2000-09-11 Kazu Hirata - - * final.c: Fix formatting. - - * integrate.c: Fix formatting. - -2000-09-11 Geoff Keating - - * alias.c (memrefs_conflict_p): An ADDRESSOF does conflict, sorry. - -2000-09-11 Bernd Schmidt - - * reload.c (regno_clobbered_p): Fix thinko in previous change. - -2000-09-10 Stephane Carrez - - * gcc.1: Document 68hc11 specific options. - -2000-09-10 Geoff Keating - - * config/rs6000/sysv4.h (MASK_LONG_DOUBLE_128): Define. - (TARGET_LONG_DOUBLE_128): Define. - (SUBTARGET_SWITCHES): Add -mlong-double-64 and -mlong-double-128. - (LONG_DOUBLE_TYPE_SIZE): Redefine. - (MAX_LONG_DOUBLE_TYPE_SIZE): Define. - (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on definition - of __LONG_DOUBLE_128__. - (CPP_SYSV_SPEC): Define __LONG_DOUBLE_128__ if -mlong-double-128 - passed. - (CPP_LONGDOUBLE_DEFAULT_SPEC): Define. - (CPP_SYSV_DEFAULT_SPEC): Define. - (SUBTARGET_EXTRA_SPECS): Add cpp_longdouble_default. - (INIT_TARGET_OPTABS): Define. - - * config/rs6000/aix.h (RS6000_ITRUNC): Moved from rs6000.h. - (RS6000_UITRUNC): Likewise. - (INIT_TARGET_OPTABS): New macro. - * config/rs6000/rs6000.c (rs6000_trunc_used): Delete. - (trunc_defined): Delete. - (output_prolog): Don't output .extern definitions for fp->int - conversion routines, ASM_OUTPUT_EXTERNAL_LIBCALL will do it. - * config/rs6000/rs6000.h (rs6000_trunc_used): Delete. - (trunc_defined): Delete. - (RS6000_ITRUNC): Moved to aix.h. - (RS6000_UITRUNC): Likewise. - * config/rs6000/rs6000.md (fix_truncdfsi2): Fail if it would - only emit a libcall. - (fixuns_truncdfsi2): Delete. - (trunc_call): Delete. - (trunc_call_rtl): Delete. - -2000-09-10 Zack Weinberg - - * varasm.c (make_decl_rtl): Restore leading star on - DECL_ASSEMBLER_NAME set for decls with an asmspec. - -2000-09-10 Zack Weinberg - - * c-pragma.c (handle_pragma_pack): Correct parsing logic so it - won't give a spurious error for '#pragma pack()'. Simplify - control flow for readability. 'reset' action is not necessary. - -2000-09-10 Zack Weinberg - - * defaults.h: Provide default definitions for: CHAR_TYPE_SIZE, - SHORT_TYPE_SIZE, INT_TYPE_SIZE, LONG_TYPE_SIZE, - LONG_LONG_TYPE_SIZE, WCHAR_TYPE_SIZE, FLOAT_TYPE_SIZE, - DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE, and WCHAR_UNSIGNED. - - * cppexp.c, dwarfout.c, dwarf2out.c, emit-rtl.c, final.c, optabs.c, - profile.c, sdbout.c, tradcif.y, tree.c: - Include defaults.h if not already included. - Don't define the above macros. - - * Makefile.in: Update dependencies. - -2000-09-10 Mark Mitchell - - * c-common.h (add_stmt): Change prototype. - (RECHAIN_STMTS): New macro. - (CASE_LABEL_DECL): Likewise. - (genrtl_case_label): Change prototype. - (c_expand_start_case): Remove prototype. - (build_case_label): Change prototype. - (decl_constant_value): Declare. - * c-common.c (check_case_value): Handle C++'s extensions to C - semantics. - * c-commnon.def (CASE_LABEL): Add room for the CASE_LABEL_DECL - field. - * c-parse.in (stmt): Adjust handling of return statements and case - laels. - * c-semantics.c (add_stmt): Return the new statement. - (genrtl_return_stmt): Take the RETURN_STMT as input, not the - returned expression. Directly generate RTL, rather than calling - c_expand_return. - (genrtl_switch_stmt): Don't call c_expand_start_case. - (build_case_label): Take the LABEL_DECL as input, too. - (genrtl_case_label): Just call add_case_node. - (expand_stmt): Adjust calls to genrtl_return_stmt and - genrtl_case_label. - * c-tree.h (c_expand_start_case): Declare. - * c-typeck.c (decl_constant_value): Give it external linkage. - (c_expand_return): Don't call expand_return or expand_null_return; - use genrtl_return_stmt instead. - * stmt.c (struct nesting): Remove num_ranges field. - (add_case_node): Give it external linkage. - (expand_start_case): Don't set num_ranges. - (expand_start_case_dummy): Don't clear it. - (pushcase): Rely on add_case_node to handle `default' labels. - (add_case_node): Handle `default' labels. - * tree.c (tree_int_cst_compare): New function. - * tree.h (tree_int_cst_compare): Declare. - (add_case_node): Likewise. - -2000-09-10 Richard Henderson - - * c-parse.in: Revert last change. - (init_reswords): Do not enter disabled keywords into the ridpointers - table, modulo objc weirdness. - (_yylex): Return the canonical spelling for a keyword. - -2000-09-10 Philip Blundell - - * config/arm/arm.h (CPP_ISA_SPEC): Don't define `arm' or `thumb'. - * config/arm/linux-elf.h (CPP_PREDEFINES): Don't define `__arm__'. - -Sun Sep 10 14:30:28 EDT 2000 John Wehle (john@feith.com) - - * alias.c (find_base_term): Handle ADDRESSOF. - (memrefs_conflict_p): An ADDRESSOF doesn't conflict. - -2000-09-10 Denis Chertykov - - * genoutput.c (output_insn_data): Translate to \n\ while - outputting templates with many lines. - -2000-09-10 Stephane Carrez - - * libgcc2.h: Use LONG_LONG_TYPE_SIZE instead of MIN_UNITS_PER_WORD - to decide whether 64-bit support must be generated. - -2000-09-10 Richard Henderson - - * c-parse.in (asm patterns): Fix volatile check. - -2000-09-09 Kaveh R. Ghazi - - * cppmacro.c (check_trad_stringification): New function. - (save_expansion): If -Wtraditional, warn about stringification of - macro arguments. - -2000-09-11 Michael Hayes - - * loop.h (struct loop_mem_info): Move from loop.c - (struct loop_info): Add fields store_mems, mems, mems_idx, - mems_allocated, unknown_address_altered, - unknown_constant_address_altered, num_mem_sets, and - first_loop_store_insn. - - * loop.c (loop_store_mems): Replace with field in loop_info struct. - (loop_mems, loop_mems_idx, loop_mems_allocated): Likewise. - (unknown_address_altered, unknown_constant_address_altered): Likewise. - (num_mem_sets): Likewise. - (replace_loop_mems, replace_loop_regs): New. - (struct loop_replace_args): New. - (load_mems): Use replace_loop_mems. - (try_copy_prop): Use replace_loop_regs. - (replace_loop_reg, replace_loop_mem): Use loop_replace_args structure. - -2000-09-09 Stephane Carrez - - * configure.in: Recognize m6811-elf and m6812-elf. - * configure: Regenerate. - -2000-09-09 Geoff Keating - - * recog.c (validate_replace_rtx_1): Correct MODE parameter in call - to operand_subword. - -2000-09-10 Michael Hayes - - * loop.c (struct movables): New. - (num_movables): Move into struct movables. - (the_movables): Change type to struct movables. - (ignore_some_movables): Change struct movable arg to struct movables. - (force_movables, combine_movables, regs_match_p): Likewise. - (rtx_equal_for_loop_p, move_movables): Likewise. - (scan_loop): Change movables to be of type struct movables. - Replace last_movable with field in movables structure. - -2000-09-08 Zack Weinberg - - * c-pragma.c: Don't elide entire file if !HANDLE_GENERIC_PRAGMAS. - (init_pragma): Avoid warning if pfile happens to be unused. - * c-pragma.h: Never define HANDLE_GENERIC_PRAGMAS. Never - define init_pragma to nothing. Always prototype - init_pragma. Prototype dispatch_pragma if !USE_CPPLIB. - - * c-lex.c (process_directive): Always call dispatch_pragma. - Initialize entering_c_header to 0. - -2000-09-08 Stephane Carrez - - * config/m68hc11/m68hc11.md: New file, machine description for - 68HC11 & 68HC12. - * config/m68hc11/m68hc11.h: New file, definitions for 68HC11 & 68HC12. - * config/m68hc11/m68hc11.c: New file, functions for 68HC11 & 68HC12. - * config/m68hc11/m68hc12.h: New file, definitions for 68HC12. - * config/m68hc11/m68hc11-protos.h: New file. - * config/m68hc11/m68hc11-crt0.S: New file, startup code. - * config/m68hc11/t-m68hc11-gas: New file, makefile fragment. - * config/m68hc11/xm-m68hc11.h: New file, target defs. - * config/m68hc11/larith.asm: New file, libgcc routines. - -2000-09-08 Stephane Carrez - - * Makefile.in (DPBIT_FUNCS): Add _usi_to_df. - (FPBIT_FUNCS): Add _usi_to_sf. - * config/fp-bit.c (usi_to_float): New function. - * config/fp-bit.h (L_usi_to_sf, L_usi_to_df): Define. - (usi_to_float): Add appropriate #define. - -2000-09-08 Bernd Schmidt - - * i386-protos.h (sse_comparison_operator, mmx_reg_operand): Declare - new functions. - * i386.c (sse_comparison_operator, mmx_reg_operand): New functions. - * i386.md (attr "type"): Add sse and mmx types. - (attr "memory"): Handle them without a crash. - (movsi_1, movdi_2): Allow MMX regs. - (movdi splits): Don't split moves involving MMX regs. - (setcc_4): Remove '*' from pattern name so we get a gen_setcc4. - (movv4sf_internal, movv4si_internal, movv8qi_internal, - movv4hi_internal, movv2si_internal, movv8qi, movv4hi, movv2si, - movv4sf, movv4si, pushv4sf, pushv4si, pushv8qi, pushv4hi, pushv2si, - sse_movaps, sse_movups, sse_movmskps, mmx_pmovmskb, mmx_maskmovq, - sse_movntv4sf, sse_movntdi, sse_movhlps, sse_movlhps, sse_movhps, - sse_movlps, sse_loadss, sse_movss, sse_storess, sse_shufps, - addv4sf3, vmaddv4sf3, subv4sf3, vmsubv4sf3, mulv4sf3, vmmulv4sf3, - divv4sf3, vmdivv4sf3, rcpv4sf2, vmrcpv4sf2, rsqrtv4sf2, vmrsqrtv4sf2, - sqrtv4sf2, vmsqrtv4sf2, sse_andti3, sse_nandti3, sse_iorti3, - sse_xorti3, maskcmpv4sf3, maskncmpv4sf3, vmmaskcmpv4sf3, - vmmaskncmpv4sf3, sse_comi, sse_ucomi, sse_unpckhps, sse_unpcklps, - smaxv4sf3, vmsmaxv4sf3, sminv4sf3, vmsminv4sf3, cvtpi2ps, cvtps2pi, - cvttps2pi, cvtsi2ss, cvtss2si, cvttss2si, addv8qi3, addv4hi3, - addv2si3, ssaddv8qi3, ssaddv4hi3, usaddv8qi3, usaddv4hi3, subv8qi3, - subv4hi3, subv2si3, sssubv8qi3, sssubv4hi3, ussubv8qi3, ussubv4hi3, - mulv4hi3, smulv4hi3_highpart, umulv4hi3_highpart, mmx_pmaddwd, - mmx_iordi3, mmx_xordi3, mmx_anddi3, mmx_nanddi3, mmx_uavgv8qi3, - mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pextrw, mmx_pshufw, - eqv8qi3, eqv4hi3, eqv2si3, gtv8qi3, gtv4hi3, gtv2si3, umaxv8qi3, - smaxv4hi3, uminv8qi3, sminv4hi3, ashrv4hi3, ashrv2si3, lshrv4hi3, - lshrv2si3, mmx_lshrdi3, ashlv4hi3, ashlv2si3, mmx_ashldi3, - mmx_packsswb, mmx_packssdw, mmx_packuswb, mmx_punpckhbw, - mmx_punpckhwd, mmx_punpckhdq, mmx_punpcklbw, mmx_punpcklwd, - mmx_punpckldq, emms, sfence, ldmxcsr, prefetch, stmxcsr, sse_clrti, - mmx_clrdi): New patterns. - -2000-09-08 Richard Earnshaw - - * arm.c: Don't include tm.h directly. - -Fri Sep 8 14:34:56 MET DST 2000 Jan Hubicka - - * recog.c (validate_replace_rtx_1): Fix confusion about equality - testing; simplify subregs of constants and nested subregs. - -2000-09-08 Alexandre Oliva - - * config/sh/sh.md (symPLT_label2reg): Use operand3 for PIC reg. - -2000-09-08 Bernd Schmidt - - * combine.c (combine_simplify_rtx): Try to simplify VEC_SELECT of a - VEC_CONCAT. - * rtl.texi (description of USE): Add note about possible pitfalls - with this rtx. - From Richard Henderson: - * reload1.c (choose_reload_regs): Compute need_mode properly. - -2000-09-07 Richard Henderson - - * config/ia64/lib1funcs.asm (__divsi3): Use .s1 for frcpa. - (__modsi3, __umodsi3): Likewise. - (__udivsi3): Likewise. Normalize the TFmode values. - -2000-09-07 Geoff Keating - - * config/rs6000/sol-c0.c (_start): Declare `termfunc' parameter - with a prototype. - * config/rs6000/rs6000.h (RS6000_ARG_SIZE): Use cast to suppress - warning. - -Fri Sep 8 03:26:38 2000 J"orn Rennecke - - * sh.md (cmpeqsi_ior_t, cmpeqsi_and_t): Remove. - (cmpeqdi_t): Add output pattern. - (cmpeqdi_t+1): Don't split when not optimizing. - Restore proper splitting operation. - -2000-09-07 Richard Henderson - - * c-lex.c (process_directive): If not HANDLE_GENERIC_PRAGMAS, - do not call dispatch_pragma. - -2000-09-07 Jim Wilson - - * reload.c (push_reload): Use CLASS_CANNOT_CHANGE_MODE_P in addition - to CLASS_CANNOT_CHANGE_MODE. - * config/ia64/ia64.h (CLASS_CANNOT_CHANGE_MODE_P): True only if the - mode classes are different. - -2000-09-07 Zack Weinberg - - * cpplib.h (struct cpp_options): Add user_label_prefix member, - left out of commit which removed cppulp.c. - -2000-09-07 Richard Henderson - - * bb-reorder.c (fixup_reorder_chain): Add jump in new block - after switch for CASE_DROPS_THROUGH. - -2000-09-07 Richard Henderson - - * loop.c (strength_reduce): Call check_ext_dependant_givs. - Properly extend the biv initial value for the giv. - (record_biv): Zero ext_dependant. - (record_giv): New argument ext_val. Update all callers. - (general_induction_var): Likewise. - (consec_sets_giv): Likewise. - (simplify_giv_expr): Likewise. Fill in ext_val if we find - a sign-extend, zero-extend, or truncate. - (combine_givs_p): Make sure modes are compatible. - (check_ext_dependant_givs): New. - (extend_value_for_giv): New. - * loop.h (struct induction): Add ext_dependant. - * unroll.c (iteration_info): Extend the biv initial value for the giv. - (find_splittable_givs): Likewise. - (final_giv_value): Likewise. - -2000-09-07 Zack Weinberg - - * c-pragma.h: Define HANDLE_GENERIC_PRAGMAS if - REGISTER_TARGET_PRAGMAS is defined. Duplicate some - definitions from cpplib.h. - * cpplib.h: Don't typedef struct cpp_reader if c-pragma.h has - already done it. - * tm.texi: Document HANDLE_PRAGMA as no longer supported. Add - documentation for REGISTER_TARGET_PRAGMAS. - - * c-lex.c: Include cpplib.h before c-pragma.h. Define a - default-pragma callback to implement -Wunknown-pragmas if - USE_CPPLIB. - * c-parse.in: Move all includes to top of file. - * c-pragma.c: Include cpplib.h before c-pragma.h. Include - tm_p.h. - (dispatch_pragma): Put the namespace in the -Wunknown-pragmas - warning. - (init_pragma): If REGISTER_TARGET_PRAGMAS is defined, call it. - - * arm.h, arm-protos.h, arm.c, - c4x.h, c4x-protos.h, c4x.c, - h8300.h, h8300-protos.h, h8300.c, - i370.h, i370-protos.h, i370.c, - i960.h, i960-protos.h, i960.c, - sh.h, sh-protos.h, sh.c, - v850.h, v850-protos.h, v850.c: Convert HANDLE_PRAGMA-based - pragmata scheme to use REGISTER_TARGET_PRAGMAS instead. - - * d30v.h: Don't mention HANDLE_PRAGMA in comment. Add - multiple include guard. - * i370.md (untyped_call): Use GEN_CALL. - (umodsi3): Remove unused variable. - * sh/elf.h: Don't undef HANDLE_SYSV_PRAGMA. - * v850.c (output_move_single, output_move_double): Constify - return value. - (print_operand): Constify a char *. - * v850.h (struct small_memory_info): Constify name member. - -2000-09-07 Kazu Hirata - - * config/h8300.h: Fix comment typos. - * config/h8300/h8300.md: Likewise. - * config/h8300/lib1funcs.asm: Likewise. - -Thu 07-Sep-2000 21:29:00 BST Neil Booth - - * Makefile.in: Remove references to cppulp.{c,o}. - * cppinit.c (initialize_builtins, cpp_start_read, - cpp_handle_option): Update to use cpp_options structure. - * cppulp.c: Remove. - -2000-09-07 Joseph S. Myers - - * c-common.c (time_char_table): Allow %#b and %#h. - -2000-09-07 Herman A.J. ten Brugge - - * reorg.c (find_end_label): If the basic block reorder pass moves the - return insn to some other place try to locate it again and put our - end_of_function_label there. - * reorg.c (relax_delay_slots): Check if find_end_label created a - new label that invalidates the current optimazation. - -2000-09-07 Catherine Moore - - * unroll.c (unroll_loop): Check for unconditional jumps - to loop continuation. Delete if n_iterations is 1. - (ujump_to_loop_cont): New routine. - -2000-09-07 Bernd Schmidt - - * rtl.c (class_narrowest_mode): Add entries for MODE_VECTOR_INT and - MODE_VECTOR_FLOAT. - * reload.c (regno_clobbered_p): Accept new arg, MODE, and use it - to handle multiword modes correctly. All callers and the declaration - changed. - -2000-09-06 Mark Mitchell - - * c-common.h (prep_stmt): Declare. - (lang_expand_stmt): Likewise. - * c-decl.c (lang_expand_stmt): Remove. - * c-semantics.c (lang_expand_stmt): Define. - (prep_stmt): New function. - (expand_stmt): Handle common statement types here. - -2000-09-07 Niibe Yutaka , Kaz Kojima , Alexandre Oliva - - * configure.in (sh-*-linux*): Added. - * configure: Rebuilt. - * config/sh/t-linux: New file. - * config/sh/sh.h (USERMODE_BIT): Define. - (TARGET_USERMODE): Likewise. - (TARGET_SWITCHES): New switches for the bits above. - (INITIALIZE_TRAMPOLINE): Call __ic_invalidate in USERMODE. - * config/sh/linux.h: New file. - * config/sh/lib1funcs.asm (GLOBAL): Don't prefix symbols with - underscore on linux. - (L_sdivsi3, L_udivsi3): Define for linux. - (L_ic_invalidate): Define. - * invoke.texi (SH Options): Document -musermode. - -2000-09-07 Alexandre Oliva - - * config/sh/sh.h (OVERRIDE_OPTIONS): Don't disable function - CSE unless generating PIC. - - * config/sh/sh.md (symPLT_label2reg): Force the initialization of - the PIC register. - -2000-09-06 H.J. Lu (hjl@gnu.org) - - * Makefile.in (clean_s1): Depend on stage_b. - (clean_s2): Depend on stage_d. Don't remove $(VOL_FILES) in - stage2. They are used for "make compare". - -2000-09-06 Mark Mitchell - - Move statement-tree facilities from C++ to C front-end. - * c-common.h (c_tree_index): Add CTI_VOID_ZERO. - (void_zero_node): New macro. - (struct stmt_tree_s): New type. - (stmt_tree): New typedef. - (struct language_function): New type. - (last_tree): New macro. - (last_expr_type): Likewise. - (walk_tree_fn): New typedef. - (current_stmt_tree): New function. - (begin_stmt_tree): Likewise. - (add_stmt): Likewise. - (finish_stmt_tree): Likewise. - (statement_code_p): Likewise. - (lang_statement_code_p): New variable. - (walk_stmt_tree): New function. - (STMT_IS_FULL_EXPR_P): New macro. - * c-common.c (lang_statement_code_p): New variable. - (c_common_nodes_and_builtins): Initialize void_zero_node. - (statement_code_p): New function. - (walk_stmt_tree): Likewise. - * c-decl.c (language_function): Rename to ... - (c_language_function): ... this. Include language_function. - (push_c_function_context): Adjust accordingly. - (pop_c_function_context): Likewise. - (mark_c_function_context): Likewise. - (current_stmt_tree): Define. - * c-semantics.c (begin_stmt_tree): New function. - (add_stmt): Likewise. - (prune_unused_decls): Likewise. - (finish_stmt_tree): Likewise. - -2000-09-06 Herman A.J. ten Brugge - - * flow.c (insn_dead_p): Detect dead memory stores with auto increments. - -2000-09-06 Kazu Hirata - - * calls.c: Fix formatting. - -2000-09-06 Graham Stott - - * config/i386/i386.h (ADDRESS_COST): Fix typo. - -2000-09-06 Zack Weinberg - - Integrated preprocessor. - - * Makefile.in: Remove all references to c-parse.gperf, - c-gperf.h, and c-parse.h. Remove -d from yacc command line - generating c-parse.c. Update dependencies. - * c-parse.gperf, c-gperf.h: Delete. - - * c-common.c: Don't define parse_options, cpp_token, yy_cur, - yy_lim, or yy_get_token. Don't define get_directive_line if - USE_CPPLIB. - * c-common.h: Add multiple include guard. Define RID values - for every keyword in C, C++, and Objective-C. Put all the - modifiers first. - (struct c_fileinfo, get_fileinfo, dump_time_statistics): New. - * c-decl.c (c_decode_option): Handle -lang-objc here. - (print_lang_identifier): Handle C_IS_RESERVED_WORD case. - (grokdeclarator): Adjust for new RID scheme. - (extract_interface_info): New stub. - * c-lang.c: Don't declare yy_cur or parse_options. - (lang_init_options): Call cpp_init. Don't call - cpp_options_init. - (lang_init): Don't call check_newline if USE_CPPLIB. - - * c-lex.c: Don't include c-parse.h. Do include timevar.h. - Elide lots of unnecessary code if USE_CPPLIB. Delete code - rendered unnecessary by new architecture. Move routines not - shared with C++ to c-parse.in. Maintain a local idea of the - line number. Handle C++ as well as C. - [USE_CPPLIB]: Declare and register callbacks for #ident and - for entering/leaving files. - (init_c_lex, c_lex): Are now the entry points to this file. - (check_newline): Break out directive handling to - process_directive. - (read_ucs, is_extended_char, utf8_extend_token): Moved here - from C++ front end. - (readescape, parse_float): Overhaul. - (lex_number, lex_string, lex_charconst): Break out of c_lex - (n'ee yylex). - (get_fileinfo, update_header_times, dump_one_header, - dump_time_statistics): New and/or moved here from C++. - Support per-file data needed by C++ and per-header timing - statistics (C++ only, at the moment). - * c-lex.h: Update prototypes. Add multiple include guard. - * c-tree.h (struct lang_identifier): Add rid_code field. - (C_IS_RESERVED_WORD, C_RID_CODE): New. - - * c-parse.in: Include c-pragma.h. Remove unnecesary calls to - reinit_parse_for_function and/or position_after_white_space. - (save_filename, save_lineno): Look ahead before saving. - (label -> identifier ':'): Save file and line before shifting ':'. - (reservedwords): No need to call get_identifier. - (init_parse, finish_parse, yyerror, yylex, yyprint, - make_pointer_declarator): Are now here for C/ObjC. - (rid_to_yy): Conversion table from RID constants to Yacc codes. - - * c-pragma.c: Rewrite parsing logic to fit with cpplib's - #pragma registry. Provide dummy implementation of that - interface if !USE_CPPLIB. - * c-pragma.h: Update to match. - - * flags.h: Add multiple include guard. - (flag_detailed_statistics): Moved here from C++. - * toplev.c: Define flag_detailed_statistics. - - * gcc.c (C specs): Use %(trad_capable_cpp) for -E|-M|-MM case - #if USE_CPPLIB. - * timevar.def (TV_CPP, TV_LEX): New. - * timevar.h: Add multiple include guard. - - * objc/lang-specs.h: Use %(trad_capable_cpp) for -E|-M|-MM case - #if USE_CPPLIB. - * objc/objc-act.c: Don't mention yy_cur or parse_options. - Initialize cpplib properly. Force lineno to 0 after first - call to check_newline. Don't handle -lang-objc here. - Move forget_protocol_qualifiers and remember_protocol_qualifiers here. - -2000-09-06 David Edelsohn - - * rs6000.md: Correct function unit definitions for cr_logical and - mtjmpr. - (sCOND): Additionally fail for sgt, slt, sge, sle if !TARGET_POWER - and use portable method for >=0 and floating point >=. Remove - associated matchers. - -2000-09-06 Mark Mitchell - - * extend.texi: Mark named return value extension as deprecated. - -2000-09-06 Geoff Keating - - * config/rs6000/rs6000.c (rs6000_reverse_condition): Return - the result. - -2000-09-06 Gabriel Dos Reis - - * toplev.c (display_help): Fix thinko in documentation. - - * diagnostic.h (output_buffer::indent_skip): New fields. - (output_indentation): New macro. - - * diagnostic.c (output_indent): New function. - (output_set_prefix, clear_diagnostic_info): Use. - (output_emit_prefix): Predict future indentation. - -2000-09-06 DJ Delorie - - * Makefile.in (stage_*): add more dependencies to ensure parallel - builds build correctly - -2000-09-06 Manfred Hollstein - - * Makefile.in (bootstrap-lean): Depend on bootstrap-lean_g, - not bootstrap-lean_f. - -2000-09-06 Andreas Schwab - - * mklibgcc.in: Emit rule for libgcc-stage-start. - * Makefile.in (stage1-start, stage2-start, stage3-start, - stage4-start): Don't handle libgcc here, use libgcc.mk instead. - -2000-09-06 Bernd Schmidt - - * local-alloc.c (local_alloc): Ignore CLASS_LIKELY_SPILLED. - (update_equiv_regs): Likewise, except for the mn10200 kludge. - (combine_regs): Likewise. - - * Makefile.in (cse.o): Depend on $(BASIC_BLOCK_H). - * cse.c: Include "basic-block.h". - (struct table_elt): New field REGCOST. - (CHEAP_REG): Delete macro. - (COST): Return 0 for REGs. - (approx_reg_cost_1, approx_reg_cost, preferrable): New functions. - (notreg_cost): Return 0 for appropriate SUBREGs. - (COSTS_N_INSNS): Return N * 2. - (rtx_cost): Return 0 for REGs, and use cost of nested rtx for cheap - SUBREGs. - (CHEAPER): Use new function preferrable. - (insert): Initialize REGCOST member. - (find_best_addr): Use approx_reg_cost for estimation of register - usage. - (cse_insn): Likewise. - * loop.c (iv_add_mult_cost): New function. - (add_cost, shift_cost, mult_cost): Delete variables. - (init_loop): Don't initialize add_cost; reduce copy_cost by half. - (strength_reduce): Use iv_add_mult_cost instead of fixed add_cost. - Make code that detects autoinc opportunities slightly less optimistic. - (simplify_giv_expr): If expression contains other reg that is also a - giv, only increment benefit if this is the only use of that reg. - (consec_sets_giv): Take that change into account. - (combine_givs): Slightly more verbose output. - - * i386.h (RTX_COSTS): For MULT, return true cost of multiplication, - not the cost of an equivalent shift. - * sh-protos.h (addsubcosts): Declare. - * sh.c (addsubcosts): New function. - * sh.h (CONST_COSTS): If CONST_OK_FOR_I, then return 0. - (RTX_COSTS): Tweak. Use addsubcosts. - (ADDRESS_COST): Return higher cost for reg+reg addressing. - -2000-09-06 Geoff Keating - - * config/rs6000/rs6000.c (validate_condition_mode): New function. - (branch_comparison_operator): Call validate_condition_mode to - abort rather than returning 0. - (branch_positive_comparison_operator): New function. - (scc_comparison_operator): Call validate_condition_mode to abort - rather than returning 0. - (ccr_bit): Call validate_condition_mode. Update for - new branch scheme. - (print_operand): Delete %C modifier. Update %E case - to use EQ bit not SO bit. - (rs6000_reverse_condition): New function. - (rs6000_generate_compare): New function. - (rs6000_emit_sCOND): New function. - (rs6000_emit_cbranch): New function. - (output_cbranch): The length of a long branch insn is - now only 8 bytes. Add validate_condition_mode. Use - rs6000_reverse_condition. Remove cror generation. - - * config/rs6000/rs6000.h: Update comments. - (PREDICATE_CODES): Add new predicate. Update codes used - by branch_comparison_operator and scc_comparison_operator. - * config/rs6000/rs6000-protos.h: Add prototypes for - new external functions. - * config/rs6000/rs6000.md: Add new scheduling parameters - for cr_logical instructions. Change length of branch - instructions. - (bCOND patterns): Call rs6000_emit_cbranch. - (sCOND patterns): Call rs6000_emit_sCOND. - (branch patterns): Change lengths to 4. - (cr logical patterns): New. - -2000-09-06 Richard Henderson - - * config/i386/i386.md (call_pop): Fix test for setting - current_function_uses_pic_offset_table. - (call, call_value_pop, call_value): Likewise. - -2000-09-06 Zack Weinberg - - * timevar.c (timevar_add): Delete. - (timevar_get): Also count time since the selected timer was - last updated. Do not examine the timevar stack if the - selected timer is standalone. - -2000-09-05 J. David Anglin - - * gthr-dce.h (__gthread_objc_mutex_deallocate): Free mutex->backend. - -2000-09-05 Jason Merrill - - * c-decl.c (finish_incomplete_decl): Don't call complete_array_type - for 'extern' arrays. - -2000-09-05 Richard Henderson - - * config/ia64/lib1func.asm (__divtf3): Rebundle for Itanium. - Eliminate final copy from non-trapping case. - (__divdf3, __divsf3): Likewise. - -2000-09-05 Richard Henderson - - * config/ia64/ia64.md (mulhi3): Fix typo last change. - * config/ia64/lib1func.asm (__divdi3, __udivdi3, __umodsi3): Likewise. - -2000-09-03 Donn Terry , Laurynas Biveinis - - * Makefile.in: Restructure bootstrap stages to allow clean - restart after failure. - -2000-09-05 Richard Henderson - - * config/ia64.md (movsi and movdi patterns): Allow moves from - 8-bit constants to AR registers. - -2000-09-05 Richard Henderson - - * config/ia64/ia64.md (mulhi3): New. - -2000-09-05 Richard Henderson - - * config/ia64/ia64.h (INIT_TARGET_OPTABS): Remove. - * config/ia64/lib1funcs.asm (__divdi3): Update from Intel IA-64 - Optimization Guide, minimum latency alternative. - (__moddi3, __udivdi3, __umoddi3): Likewise. - (__divsi3, __modsi3, __udivsi3, __umodsi3): Likewise. - -2000-09-05 Bruce Korb - - * fixinc/fixincl.c (load_file): always read header files - with sizes that are a multiple of the page size. - & use libiberty's getpagesize for determining that. - -2000-09-05 Alexandre Oliva - - * gcse.c (hash_string_1): Add prototype. - * cse.c (canon_hash_string): Likewise. - -2000-09-04 Craig Newell - - * gcc.c: Undefine "__WCHAR_TYPE__" before redefining it. - -2000-09-04 Andreas Schwab - - * Makefile.in (STAGESTUFF): Remove libgcc. - (stage1-start, stage2-start, stage3-start): Copy the contents of - the libgcc directory explicitly. - (mostlyclean): Clean libgcc. - -2000-09-04 Andrew Haley - - * dwarf2out.c: (stack_adjust_offset): New prototype. - -Wed Jan 1 00:23:59 MET 1997 Jan Hubicka - - * combine.c (make_extraction): Fix rtx_cost comparison to - match the comment. - -Wed Jan 1 00:17:32 MET 1997 Jan Hubicka - - * i386.md (pushsi2, pushhi2, pophi2, swapsf, swapdf, - umulsi3_highpart, smulsi3_highpart, testqi_ccno_1, xorqi_ext_1): - Add '*' to insn pattern name. - -2000-09-04 Jakub Jelinek - - * cpplex.c (ON_REST_ARG): Check VAR_ARGS flag of current context, - use posn - 1 to index into tokens array. - (maybe_paste_with_next): Adjust caller. - -2000-09-03 Geoff Keating - - * invoke.texi: Document the -mvxworks option for rs6000 ELF. - - * config/rs6000/rs6000.h: Update various comments about XER_REGNO. - (REGNO_REG_CLASS): Use symbolic register - names. - -2000-09-03 Richard Earnshaw - - * arm.c (final_prescan_insn): If the form of a jump insn isn't - recognized, don't try to conditionally execute it. - -Sun Sep 3 13:10:56 2000 Denis Chertykov - - * config/avr/avr.md ("*tablejump_lib"): New pattern. - (call_value_insn): Right length claculation. - (call_insn): Likewise. - -2000-09-02 Marek Michalkiewicz - - * config/avr/avr-protos.h, config/avr/avr.c (unique_section, - gas_output_limited_string, gas_output_ascii, output_movqi, - output_movhi, out_movqi_r_mr, out_movqi_mr_r, out_movhi_r_mr, - out_movhi_mr_r, out_movsi_r_mr, out_movsi_mr_r, output_movsisf, - out_tstsi, out_tsthi, ret_cond_branch, ashlqi3_out, ashlhi3_out, - ashlsi3_out, ashrqi3_out, ashrhi3_out, ashrsi3_out, lshrqi3_out, - lshrhi3_out, lshrsi3_out, output_reload_inhi, output_reload_insisf, - out_shift_with_cnt, ptrreg_to_str, cond_string, encode_section_info): - Add "const" as needed to remove warnings. - - * config/avr/avr.c (avr_override_options, avr_init_once, - function_prologue, function_epilogue, frame_pointer_required_p, - class_likely_spilled_p, order_regs_for_local_alloc, - avr_address_cost, avr_ret_register): Use K&R style arguments. - (initial_elimination_offset, gas_output_limited_string): - Remove ATTRIBUTE_UNUSED from the used arguments. - (output_mov*, out_mov*_r_mr, out_mov*_mr_r, output_reload_insisf): - Use local variables src, dest, base to access operands[]. - Rename reg_dest to reg_src if that's what it is. - (output_movhi, output_movsisf): Optimize loading 8-bit immediate - constants to LD_REGS if reg_was_0. - (output_reload_insisf): Change arg 3 to insn length and set it. - (out_movhi_r_mr, out_movhi_mr_r): Use in/out for more efficient - access to 16-bit I/O register pairs. - (avr_address_cost): Lower cost for the above case. - (out_tsthi): Use "or" (faster) instead of "sbiw" if the operand - may be clobbered, also for LD_REGS. - (adjust_insn_length): Correct insn length for iorhi3 and iorsi3 - with a CONST_INT. - - * config/avr/avr.h (PTRDIFF_TYPE): Make signed. - - * config/avr/avr.md: Change all uses of the TEST_HARD_REG_CLASS - macro to test_hard_reg_class function. - (*movsi, *movsf): Change "cc" attribute from "clobber" to "none" - for loading immediate constants to LD_REGS. - (andsi3, cmphi, cmpsi): Add return statements to avoid warnings. - - -Sat Sep 2 13:58:23 2000 Marek Michalkiewicz - - * config/avr/avr.md ("*negsi2"): substitute %@ to __zero_reg__ - * config/avr/libgcc.S: Lost part of the previous patch. - -2000-08-31 J. David Anglin - - * gthr-dce.h (__gthread_objc_mutex_allocate): Create a pthread_mutex_t - object before calling pthread_mutex_init. - -2000-09-02 Alexandre Oliva - - * config/sh/t-elf, config/sh/crt1.asm, config/sh/crti.asm, - config/sh/crtn.asm: New files. - * config/sh/t-sh (EXTRA_MULTILIB_PARTS): Set. - (crt1.o, crti.o, crtn.o): New targets. - * configure.in [sh-*-elf*, sh-*-rtemself*] (tmake_file): Added - sh/t-elf. - * configure: Rebuilt. - * config/sh/sh.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP, - STARTFILE_SPEC, ENDFILE_SPEC, CRT_CALL_STATIC_FUNCTION): Define. - * config/sh/elf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): - Undefine for config/elfos.h to redefine. - (STARTFILE_SPEC, ENDFILE_SPEC): Redefine after config/elfos.h. - -2000-09-02 Alexandre Oliva , Niibe Yutaka , Kaz Kojima - - * config/sh/sh-protos.h (nonpic_symbol_mentioned_p, - legitimize_pic_address, output_pic_addr_const): Declare. - * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Fix PIC register. - (PREFERGOT_BIT, TARGET_PREFERGOT): Likewise. - (TARGET_SWITCHES): New switch -mprefergot. - (OVERRIDE_OPTIONS): Set flag_no_function_cse unless -mprefergot. - (PIC_OFFSET_TABLE_REGNUM): Define. - (GOT_SYMBOL_TABLE): Likewise. - (LEGITIMIZE_ADDRESS): Use legitimize_pic_address. - (ENCODE_SECTION_INFO): Define. - (FINALIZE_PIC): New macros. - (LEGITIMATE_PIC_OPERAND_P, SYMBOLIC_CONST_P): New macro. - (ASM_OUTPUT_INT, ASM_OUTPUT_SHORT): Use output_pic_addr_const. - * config/sh/sh.c (print_operand_address): Use output_pic_addr_const. - (prepare_move_operands): Call emit_pic_move or - emit_pic_const_move if appropriate. - (output_far_jump): For PIC, use braf and output long offset. - (machine_dependent_reorg): - (sh_expand_prologue): Save and initialize the PIC register. - (sh_expand_epilogue): Restore it. - (initial_elimination_offset): Account for it. - (nonpic_symbol_mentioned_p): New function. - (legitimize_pic_address): Likewise. - (output_pic_addr_const): Likewise. - * config/sh/sh.md (calli_pcrel, call_valuei_pcrel): New insns. - (call, call_value): Use them. - (GOTaddr2picreg, sym_label2reg, symGOT2reg, symGOTOFF2reg, - symPLT_label2reg): New expands. - * invoke.texi (SH Options): Document -mprefergot. - -2000-09-01 Alexandre Oliva - - * rtl.h (ASM_OPERANDS_INPUT_CONSTRAINT_EXP): New macro. - * gcse.c (hash_string_1): New function. - (hash_expr_1) : Disregard filename and line number. - (expr_equiv_p) : Likewise. - * cse.c (rtx_cost): Don't increase the cost of ASM_OPERANDS. - (canon_hash_string): New function. - (canon_hash) : Disregard filename and line number. - (exp_equiv_p) : Likewise. - (fold_rtx): Use ASM_OPERANDS accessor macros. - * emit-rtl.c (copy_insn_1): Likewise. - * integrate.c (copy_rtx_and_substitute): Likewise. - * stmt.c (expand_asm_operands): Likewise. Give an - ASM_OPERANDS rtx the mode of the output reg being set from it. - -2000-09-01 Fred Fish - - * fix-header.c (write_rbrac): Add putc and getc to list of - functions to protect against prior definition as a macro. - -2000-09-01 Joseph S. Myers - - * c-common.h (enum c_tree_index): Add CTI_C_SIZE_TYPE. - (c_size_type_node): Define. - * c-decl.c (init_decl_processing): Initialize c_size_type_node. - * c-common.c (enum format_lengths, enum format_std_version, - format_length_info, format_type_detail, BADLEN, NOLENGTHS, - format_kind_info, printf_length_specs, scanf_length_specs, T89_I, - T99_I, T89_L, T99_LL, TEX_LL, T89_S, T89_UI, T99_UI, T89_UL, - T99_ULL, TEX_ULL, T89_US, T89_F, T99_F, T89_D, T99_D, T89_LD, - T99_LD, T89_C, T99_SC, T99_UC, T89_V, T94_W, TEX_W, T94_WI, - TEX_WI, T99_ST, T99_SST, T99_PD, T99_UPD, T99_IM, T99_UIM, - format_types): Define. - (format_char_info, print_char_table, scan_char_table, - time_char_table): Rearrange for new organization of information - about format length modifiers and standard versions. - (T_ST): Redefine to use c_size_type_node. - (check_format_info): Obtain information about length modifiers and - standard versions from tables. Adjust warning message wordings. - Use the name from the user's program for `ll' and `hh' length - modifiers in warning messages. Use more informative names for - wanted types where available (for wchar_t, wint_t, size_t, signed - size_t, ptrdiff_t, unsigned ptrdiff_t, intmax_t and uintmax_t). - -2000-09-01 Jim Wilson - - * calls.c (emit_call_1): Add REG_NORETURN note to call if ECF_NORETURN. - * combine.c (distribute_notes): Handle REG_NORETURN. - * rtl.c (reg_note_name): Add REG_NORETURN. - * rtl.h (enum reg_note): Likewise. - - * config/ia64/ia64-protos.h (emit_safe_across_calls): Renamed from - ia64_file_start. - * config/ia64/ia64.c (emit_safe_across_calls): Likewise. - (rtx_needs_barrier): Handle unspec_volatile 8 and 9. - (emit_predicate_relation_info): Handle conditional calls with - REG_NORETURN. - * config/ia64/ia64.h (ASM_FILE_START): Call emit_safe_across_calls - instead of ia64_file_start. - * config/ia64/sysv4.h (ASM_FILE_START): Likewise. - * config/ia64/ia64.md (safe_across_calls_all, - save_across_calls_normal): New patterns. - - * loop.c (check_final_value): Check for biv use before checking for - giv use. Check for both biv and giv uses. Always set last_giv_use - if there is a giv use. - -2000-09-01 Richard Henderson - - * config/ia64/ia64.md (mulsi3): Use grfr_register_operand. - (madddi3): Likewise. - (maddsi3): New. - -Fri Sep 1 10:59:47 2000 Richard Kenner - - * expr.c (clear_storage): Don't use emit_move_insn unless - either BLKmode or proper size. - (store_constructor): Don't call clear_storage if REG of wrong size. - - * flow.c (init_propagate_block_info): Don't mark frame dead at end - of function if returns wiht stack pointer depressed. - -2000-09-01 Andrew Haley - - * dwarf2out.c (stack_adjust_offset): New function. - (dwarf2out_stack_adjust): Break out stack adjust logic into - new stack_adjust_offset function. Look inside parallels and - sequences for stack adjustments. - -2000-08-31 Jeff Law - - * arm.md: Use no_new_pseudos to determine when it is safe - to create new pseudo registers. - - * arm.c (legitimize_pic_address): Use no_new_pseudos to determine - when we can safely allocate new registers. - -2000-08-31 Geoffrey Keating - - * stmt.c (expand_asm_operands): Twiddle generating_concat_p - so that CONCATs are not generated for ASMs. - * emit-rtl.c (gen_reg_rtx): Don't generate CONCATs when - not generating_concat_p. - * function.c (pop_function_context_from): Reset - generating_concat_p. - (prepare_function_start): Likewise. - * rtl.c (generating_concat_p): Define. - * rtl.h (generating_concat_p): Declare. - * toplev.c (rest_of_compilation): No CONCATs after RTL generation. - -2000-08-22 Philipp Thomas - Masanobu Yuhara - - * gmicro.h (TARGET_SWITCHES): Add descriptions and mark them - for translation. - -2000-08-30 Greg McGary - - * Makefile.in (fixinc.sh): Pass CC, CFLAGS and LDFLAGS to mkfixinc.sh - * fixinc/Makefile.in (fixincl): Pass $(LDFLAGS) to $(CC). - * fixinc/mkfixinc.sh: Pass $CC, $CFLAGS and $LDFLAGS to $MAKE. - -2000-08-30 Greg McGary - - * tree.h (struct tree_int_cst): Wrap low and high in a sub-struct. - (TREE_INT_CST_LOW, TREE_INT_CST_HIGH): Access through sub-struct. - (TREE_INT_CST): New macro. - * varasm.c (const_hash, compare_constant_1, record_constant_1): - Use new macro TREE_INT_CST. - -Wed 30-Aug-2000 23:18:59 BST Neil Booth - - * contrib.texi: Add self. - -2000-08-30 Alexandre Oliva - - * config/sh/sh.md (cmpeqsi_ior_t, cmpeqsi_and_t): New insns. - (cmpeqdi_t splitter): Use cmpeqsi_and_t instead of emitting jumps - and labels. - -2000-08-30 J. David Anglin - - * fixinc/gnu-regex.c: Don't define `const'. - -Tue Aug 29 22:09:59 2000 Richard Kenner - - * expr.c (store_constructor): Allow variable bounds of array type. - (expand_expr): Don't blow up if type is ERROR_MARK. - * varasm.c (output_constructor): Don't access lower bound of array - type unless need it if index is supplied (so it can be a variable - if no index is supplied). - Use tree_low_cst; use HOST_WIDE_INT for sizes; change BITPOS to POS. - Other minor cleanups. - -2000-08-29 J. David Anglin - - * Makefile.in: Revamp handling of cflags to allow different WARN_CFLAGS - for compilations in stage 1 and subsequent stages, respectively. - * configure.in (vax): Add compiler-dependent CFLAGS for stage 1. - * configure: Rebuilt. - * x-vax, x-vax-gcc: Deleted. - -2000-08-29 Zack Weinberg - - * c-common.c (declare_function_name): Use func_id_node, - function_id_node, and pretty_function_id_node. Do not make - __func__ visible at file scope. - * c-common.h (c_tree_index): Add CTI_FUNCTION_ID, - CTI_PRETTY_FUNCTION_ID, and CTI_FUNC_ID. - (function_id_node, pretty_function_id_node, func_id_node): New - macros. - * c-decl.c (init_decl_processing): Initialize function_id_node, - pretty_function_id_node, and func_id_node. - (c_make_fname_decl): Correct comment. - - * tree.h (struct tree_identifier): Constify pointer member. - - * c-decl.c (pushdecl, implicit_decl_warning): Constify a char *. - * c-pragma.h (struct weak_syms): Constify name and value members. - (add_weak): Constify arguments. - - * calls.c (special_function_p): Constify a char *. - (expand_call): Remove variable which is initialized and then - never used. - * dependence.c (struct def_use, struct induction, struct subscript): - Constify 'variable' member. - (get_low_bound, have_induction_variable): Constify char * argument. - (find_induction_variable): Add braces to avoid dangling else. - (classify_dependence): Constify char * arrays. - * profile.c (output_func_start_profiler): Constify a char *. - * stor-layout.c (finalize_record_size): Constify a char *. - * tree.c (is_attribute_p): Constify a char *. - * varasm.c (add_weak, remove_from_pending_weak_list): Constify argument. - - * varasm.c (make_function_rtl, make_decl_rtl): Rearrange code - for comprehensibility. Do not call get_identifier if we did - not change the DECL_ASSEMBLER_NAME of the decl. Use alloca to - create temporary string constants, not ggc_alloc_string. No - need to copy result of ASM_FORMAT_PRIVATE_NAME. Use const - char * to hold IDENTIFIER_POINTERs. - -2000-08-29 Richard Henderson - - * config/ia64/ia64.md (muldi3): Use grfr_register_operand - for the inputs. - -2000-08-29 Richard Henderson - - * reload.c (push_secondary_reload): Allow class == reload_class - if we're using a reload_in/out pattern. - - * config/ia64/ia64.md (reload_inti): Use a TImode scratch. Use - the half that does not conflict with the reload register. - (reload_outti): Likewise. - -2000-08-29 Kazu Hirata - - * reload.c: Fix formatting. - - * stmt.c: Fix formatting. - - * gcc.c: Fix formatting. - -2000-08-29 Zack Weinberg - - * flags.h (time_report, mem_report): New global flags. - * toplev.c: Define time_report and mem_report. - (f_options): Add -ftime-report and -fmem-report. - (compile_file): Turn on time_report if quiet_flag is off. - Call ggc_print_statistics at very end if mem_report is on. - * timevar.c (TIMEVAR_ENABLE): Examine time_report, not quiet_flag. - - * ggc-common.c (ggc_print_statistics): Rename to - ggc_print_common_statistics; all callers changed. Scale - quantities above 10K to kilobytes and above 10M to megabytes. - * ggc-page.c (ggc_page_print_statistics): Rename to - ggc_print_statistics. Report memory consumed by internal data - structures for each allocation bucket. Scale quantities above - 10K to kilobytes and above 10M to megabytes. - * ggc-simple.c: Prototype debug_ggc_tree to avoid warning. - Cast PTR_KEY(p) to unsigned long in fprintf call to avoid warning. - Define tally_leaves always. - (ggc_print_statistics): New function. - * ggc.h: Adjust for renamed functions. - -Wed Aug 30 00:11:42 2000 Denis Chertykov - - * config/avr/avr.md ("*movsf","*movsi"): Pass NULL to - output_movsisf instead of which_alternative. - - * config/avr/avr.c (output_reload_inhi): Check for NULL ponter. - -Tue Aug 29 22:29:58 2000 Denis Chertykov & Marek Michalkiewicz - - * config/avr/avr-protos.h: (avr_output_ascii) Removed. - (avr_progmem_p): New prototype. - (output_movsisf): Prototype declaration changed. - (output_movqi): New prototype. - (output_movhi): New prototype. - (call_insn_operand): Likewise. - (final_prescan_insn): Likewise. - (avr_simplify_comparision_p): Likewise. - (avr_normalize_condition): Likewise. - (compare_eq_p): Likewise. - (out_shift_with_cnt): Likewise. - (const_int_pow2_p): Likewise. - (output_reload_inhi): Prototype declaration changed. - - * config/avr/avr.c: (debug_hard_reg_set): Prototype declared. - (ldi_reg_rtx): New. rtx for r31. - (avr_init_stack): Initialize as "__stack". - (function_prologue): Use it. - Replace all TARGET_ENHANCED with AVR_ENHANCED. - (avr_mcu_name): Initialize as "avr2". - (avr_enhanced_p, avr_mega_p): New variables. - (mcu_types, avr_override_options): Handle all known MCU types. - Also handle avr1 (only preprocess, assemble and link). - (print_operand): Using of `%K' in output template removed. - (out_movqi_r_mr): Optimized. - (out_movhi_r_mr): Likewise. - (output_movqi): New function. - (output_movhi): Likewise. - (out_movsi_r_mr): Optimized. - (output_movsisf): Compute insn length for `adjust_insn_length' - (out_movqi_mr_r): Optimized. - (out_movhi_mr_r): Optimized. - (adjust_insn_length): Use output_movsisf, output_movqi, - output_movhi for insn length adjusting. - (reg_unused_after): Use dead_or_set_p. - (preferred_reload_class): Now haven't any restriction. - (reg_was_0): New function. - (io_address_p): Likewise. - (const_int_pow2_p): Likewise. - (output_reload_inhi): Likewise. - (output_reload_insisf): Likewise. - - * config/avr/avr.h (MULTILIB_DEFAULTS): Define. - (LIB_SPEC): Use -lc for all supported devices. - (LIBGCC_SPEC): Use -lgcc for all supported devices. - (AVR_MEGA): Define as avr_mega_p. - (AVR_ENHANCED): New, define as avr_enhanced_p. - (TARGET_SWITCHES): Remove -menhanced, now handled by -mmcu=... - (CPP_SPEC, LINK_SPEC): Handle all known MCU types. - (CRT_BINUTILS_SPECS): Handle all known MCU types. - Rename gcrt1-*.o to make file names unique on 8.3 filesystems. - (EXTRA_SPECS): Add CPP_AVR[1-5]_SPEC. - (ASM_SPEC): Pass -mmcu=... to the assembler. - Change all -DAVR_* to -D__AVR_*__. - (INIT_TARGET_OPTABS), config/avr/libgcc.S: - Rename library functions to start with two underscores. - (ASM_OUTPUT_COMMON): Outputs `.comm VAR,VAR-SIZE,1' to avoid - alignment. - (ASM_WEAKEN_LABEL): Declared for __attribute__((weak)). - (SUPPORTS_WEAK): Likewise. - (LDI_REG_REGNO): New. Register r31 will be used as temporary - register for loading constants to r0-r14. - - * config/avr/avr.md: Replace all TARGET_ENHANCED with - AVR_ENHANCED. - (*mov_r_sp): Removed. Handled by output_movhi. - (*mov_sp_r): Likewise. - (*mov_sp_r_no_interrupts): Likewise - (*mov_sp_r_tiny): Likewise. - (*movqi): Use output_movqi. - (*reload_inqi): New. - (*movhi): Use output_movhi. - (*reload_inhi): New. - (*negsi2): Optimized. - (*negsf2): Likewise. - Added peepholes (define_peephole2) for loading constants to r0-r14 - and for using `cpse' command. - - * config/avr/libgcc.S: Rename library functions to start with two - underscores. - Add support for enhanced core. - (_moqhi3): Fix typo, now _modqi3. - (__divsi_raw): Use __zero_reg__ as loop counter, smaller by 1 word. - (__prologue_saves__): Remove test for stack adjust by 0. - (__tablejump__): New. - - * config/avr/t-avr: Build libgcc2 with -mcall-prologues. - Add multilib support. - -Tue Aug 29 15:17:54 EDT 2000 John Wehle (john@feith.com) - - * loop.c (prescan_loop): Don't check unknown_address_altered - when deciding if insert_loop_mem is safe. Add BLKmode MEMs - to loop_store_mems as necessary. - (loop_invariant_p): Don't check unknown_address_altered - or unknown_constant_address_altered. - -2000-08-29 J. David Anglin - - * vax.md (sltu, sgeu): Delete sltu and sgeu insn patterns. - -2000-08-29 Zack Weinberg - - * cpperror.c (print_file_and_line): If line is (unsigned int)-1, - print just the filename. - * cpplex.c (_cpp_run_directive): Add additional argument, the - name to give the synthetic buffer. This defaults to - translated "". - * cpplib.c (cpp_define, cpp_undef, cpp_assert, cpp_unassert): - Adjust to match. - (_cpp_define_builtin): New function. - * cppinit.c (initialize_builtins): Use _cpp_define_builtin. - * cpphash.h: Update prototypes. - - * tradcpp.c (main): Process -D and -U simultaneously, in the - order they appeared on the command line. - -2000-08-29 Kaveh R. Ghazi - - * c-decl.c (define_label): Call warning_with_file_and_line and - error_with_file_and_line instead of plain warning or error. - - * c-parse.in (label): Use save_filename/save_lineno to ensure - correct values for calls to define_label. - -2000-08-29 Mark Mitchell - - * calls.c (expand_call): Don't create a VAR_DECL just to throw it - away. - * expr.c (expand_expr, case TARGET_EXPR): Don't call - mark_addressable. - * tree.h (get_file_function_name): Remove two duplicate - declarations. - -2000-08-28 Kazu Hirata - - * tree.c: Fix formatting. - - * xcoffout.c: Fix formatting. - -2000-08-28 Jason Merrill - - * dwarf2out.c (attr_checksum): Also ignore DW_AT_producer. - -2000-08-28 Daniel Berlin - - * dwarf2out.c (dwarf2out_finish): Don't bother calling - break_out_includes if it won't do anything. - -2000-08-28 Richard Henderson - - * reload.c (push_secondary_reload): Revert 2000-08-16 change. - (find_reloads): Likewise. - * config/alpha/alpha.md (reload_inqi): Revert 2000-08-11 change. - (reload_inhi): Likewise. - -2000-08-28 Richard Henderson - - * config/i386/i386.c: Don't error on EXTRA_CONSTRAINT defined. - (call_insn_operand): Don't expect a surrounding mem. - (constant_call_address_operand): Likewise. - * config/i386/i386.h (PREDICATE_CODES): Update. - * config/i386/i386.md (call patterns): Move the match_operand - for the call destination inside the mem. - -2000-08-28 Richard Henderson - - * local-alloc.c (requires_inout): Don't use reserved range for - EXTRA_CONSTRAINTS; use anything not matched by REG_CLASS_FROM_LETTER. - * recog.c (asm_operand_ok): Likewise. - (preprocess_constraints, constrain_operands): Likewise. - * regclass.c (record_reg_classes): Likewise. - * reload.c (find_reloads): Likewise. - * reload1.c (maybe_fix_stack_asms): Likewise. - (reload_cse_simplify_operands): Likewise. - * stmt.c (expand_asm_operands): Likewise. - - * md.texi: Update constraints documentation. - * tm.texi (EXTRA_CONSTRAINT): Update. - -2000-08-28 Daniel Berlin - - * dwarf2out.c (DIE_LABEL_PREFIX): Remove leading "__". - (print_die): If we don't know the offset of the - target die, try the symbol. Add a trailing newline. - (reverse_all_dies): New fn. - (dwarf2out_finish): Call it. - (break_out_includes): Reorganize for clarity. - (add_sibling_attributes): Don't call reverse_die_lists. - (output_comp_unit): Rename from output_comdat_comp_unit. Use for - primary CU, too. - * flags.h: Add flag_eliminate_dwarf2_dups. - * toplev.c (f_options): Support -feliminate-dwarf2-dups. - -2000-08-28 Jason Merrill - - * dwarf2.h (DW_TAG_GNU_BINCL, DW_TAG_GNU_EINCL): New tags. - * dwarf2out.c: #include "md5.h". - (DIE_LABEL_PREFIX): New macro. - (dw_val_struct): Add 'external' flag to val_die_ref. - (add_AT_die_ref, AT_ref): Adjust. - (AT_ref_external, set_AT_ref_external): New fns. - (build_abbrev_table): Call set_AT_ref_external. - (value_format): Call AT_ref_external. - (die_struct): Add die_symbol field. - (new_die): Clear it. - (dwarf_tag_name): Handle BINCL/EINCL. - (dwarf2out_start_source_file): Add BINCL DIE. - (dwarf2out_end_source_file): Add EINCL DIE. - (push_new_compile_unit, pop_compile_unit, clear_die_sizes): New fns. - (loc_checksum, attr_checksum, die_checksum): New fns. - (is_type_die, is_comdat_die, is_symbol_die): New fns. - (compute_section_prefix, assign_symbol_names): New fns. - (gen_internal_sym, output_die_symbol, output_symbolic_ref): New fns. - (output_die): Call output_die_symbol and AT_ref_external. - (output_comdat_comp_unit): New fn, split out from... - (dwarf2out_finish): ...here. Also call add_sibling_attributes for - secondary CUs. - (output_pubnames, output_aranges): Abort if we see entries from - secondary CUs. - * toplev.h: Declare file_name_nondirectory. - * toplev.c (file_name_nondirectory): New fn, moved from C++ frontend. - (rest_of_type_compilation): Call dwarf2out_decl if at toplevel. - (debug_start_source_file): Call dwarf2out_start_source_file - regardless of debug verbosity. - (debug_end_source_file): Similarly. - * tree.h: Declare clean_symbol_name. - * tree.c (clean_symbol_name): Split out from... - (get_file_function_name_long): ...here. - - * dwarf2out.c (new_loc_descr): Use calloc. - (splice_child_die): Remove the die from the right parent. - (gen_struct_or_union_die): Don't add AT_name to a specification DIE. - -Mon Aug 28 19:02:13 2000 Richard Kenner - - * toplev.c (decode_g_option): Don't give warning for unknown -g - option; return 0 instead. - (main): If -g option is not recognized by front end or - language-independent code, give warning. - -2000-08-28 Greg McGary - - * config/i386/i386-protos.h (ix86_expand_compare): Add extern decl. - * config/i386/i386.c (ix86_expand_compare): Remove `static'. - * config/i386/i386.md (trap, conditional_trap): New insn & expand. - -2000-08-27 Greg McGary - - * cpplex.c (parse_string): Don't look for backslash - before first char in `namebuf'. - * loop.c (strength_reduce): Skip NOTEs. - -2000-08-27 Jason Merrill - - * c-decl.c (duplicate_decls): Don't set TREE_STATIC or clear - DECL_EXTERNAL on a local extern. Don't set DECL_IGNORED_P or - TREE_ASM_WRITTEN, either. - (finish_decl): Adjust. - -2000-08-28 Philipp Thomas - - * ABOUT-GCC-NLS: Remove gettext patches from Paul Eggert as - they have been incorporated into the gettext CVS. Change the text to - reflect the current status of NLS. Add instructions for accessing - the gettext CVS and add the patch from Martin v. Loewis. - -2000-08-27 Geoff Keating - - * config/rs6000/rs6000.md (movdi_internal64+5): Make SUBREG-safe - by using gen_lowpart_common. - (movdi_internal64+6): Likewise. - -2000-08-26 Alexandre Oliva - - * tm.texi (FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): - Document. - - * config/mn10300/mn10300.h (DBX_REGISTER_NUMBER): Remap register - numbers to the ranges used by GDB. - -2000-08-25 Richard Henderson - - * config/ia64/ia64.h (struct machine_function): Add n_varargs. - * config/ia64/ia64.c (ia64_compute_frame_size): Use it. - (ia64_expand_prologue): Likewise. - (ia64_setup_incoming_varargs): Set it. Properly skip the current - argument for stdargs. - -2000-08-25 Jason Merrill - - * integrate.c (expand_inline_function): Pull out the original decl. - -2000-08-25 Jim Wilson - - * cse.c (cse_insn): Don't pass label subtraction to force_const_mem. - - * function.c (gen_mem_addressof): Clear MEM_ALIAS_SET if no decl. - -2000-08-25 Greg McGary - - * flow.c (dump_edge_info): Use ARRAY_SIZE. - * config/alpha/alpha.c (alpha_expand_block_move): Likewise. - -2000-08-25 Richard Earnshaw - - * arm.h (STRUCT_VALUE): Define to 0, not NULL. - -Fri Aug 25 12:52:49 EDT 2000 John Wehle (john@feith.com) - - * i386.c (ix86_find_base_term): New. - * i386-protos.h (ix86_find_base_term): Prototype. - * i386.h (FIND_BASE_TERM): Define. - * alias.c (find_base_term): Use it. - * tm.texi (FIND_BASE_TERM): Document it. - - * alias.c (true_dependence, write_dependence_p): Unchanging - memory can't conflict with non-unchanging memory. - - * alias.c (memrefs_conflict_p): A BLKmode reference - to a symbol (or CONST_INT address) always conflicts - with a reference to another symbol. - -2000-08-25 Joseph S. Myers - - * c-common.c (time_char_table): Don't allow width and flags with - "z" format. - -2000-08-25 Jakub Jelinek - - * config/i386/i386.c (ix86_expand_branch): Treat GE and GEU the same - way as LT and LTU when the second operand has 0 in low word. - -2000-08-26 Michael Hayes - - * basic-block.h (struct loop): Rename `exits' field to - `exit_edges'. Add `entry_edges' and `num_entries' fields. - - * flow.c (flow_loop_exit_edges_find): Rename from flow_loop_exits_find. - (flow_loop_entry_edges_find): Add. - (flow_edge_list_print): Rename from flow_exits_print. - (flow_loops_find): Call flow_loop_entry_edges_find. - (flow_loop_dump): Dump entry_edges list. - (flow_loops_free): Free entry_edges. - -2000-08-26 Michael Hayes - - * loop.c (loop_dump_aux, debug_loop): New functions. - (LOOP_BLOCK_NUM_1, LOOP_BLOCK_NUM, LOOP_INSN_UID): New macros. - - * flow.c (flow_loops_dump): Add callback parameter. - (flow_loop_dump): Add callback parameter and call it. Move - loop note debugging code to loop_dump_aux. - - * basic-block.h (flow_loop_dump): Add callback parameter - (flow_loops_dump): Likewise. - - * toplev.c (rest_of_compilation): Add NULL callback function pointer - to call to flow_loops_dump. - -2000-08-26 Michael Hayes - - * loop.c (count_loop_regs_set): Replace start and end arguments - with loop argument. All callers udated. - -2000-08-26 Michael Hayes - - * loop.c (constant_high_bytes): Delete. - -2000-08-26 Michael Hayes - - * loop.c (prescan_loop): Move checks for NOTE_INSN_LOOP_CONT - and NOTE_INSN_LOOP_VTOP to... - (find_and_verify_loops) ...here. - -Fri Aug 25 04:21:13 2000 Alexandre Oliva - - * crtstuff.c (CRT_CALL_STATIC_FUNCTION): Define default. - (fini_dummy, init_dummy): Use it. - -Fri 25-Aug-2000 08:03:27 BST Neil Booth - - * cpplex.c (is_macro_disabled): Caller has already checked - that we're not a preprocessed file. - -2000-08-24 Mark Mitchell - - * Makefile.in (C_AND_OBJC_OBJS): Remove c-iterate.o. - (c-iterate.o): Remove target. - * gcc/c-common.h (enum rid): Remove RID_ITERATOR. - * gcc/c-decl.c (init_decl_processing): Remove call to init_iterators. - (finish_decl): Don't handle iterators. - (grokdeclarator): Likewise. - * gcc/c-parse.gperf: Remove __iterator and __iterator__ keywords. - * gcc/c-gperf.h: Regenerated. - * gcc/c-iterate.c: Removed. - * gcc/c-lex.c (init_lex): Don't handle iterators. - * gcc/c-parse.in (primary): Remove pop_iterator_stack call. - (compstmt_primary_start): Remove push_iterator_stack call. - (stmt): Don't allow iterator statements. Replace iterator_expand - with expand_expr_stmt. - (all_iter_stmt): Remove. - (all_iter_stmt_simple): Likewise. - (all_iter_stmt_with_decl): Likewise. - * gcc/c-tree.h (ITERATOR_P): Remove. - (ITERATOR_BOUND_P): Likewise. - (init_iterators): Remove declaration. - (iterator_expand): Likewise. - (iterator_for_loop_start): Likewise. - (iterator_for_loop_end): Likewise. - (iterator_for_loop_record): Likewise. - (push_iterator_stack): Likewise. - (pop_iterator_stack): Likewise. - * gcc/c-typeck.c (decl_constant_value): Don't check ITERATOR_P. - (readonly_warning): Likewise. - * gcc/tree.h (ITERATOR_BOUND_P): Don't mention it. - -2000-08-24 Jim Wilson - - * c-common.c (decl_attributes, case A_ALIGN): Revert last change. - Copy type in a TYPE_DECL, just like pushdecl does. - -2000-08-24 Richard Henderson - - * toplev.c (main): Enable flag_reorder_blocks at -O2. - -2000-08-24 Zack Weinberg - - * ggc-page.c (alloc_page): If HAVE_MMAP_ANYWHERE and we're - asked for one page, allocate GGC_QUIRE_SIZE of them and put - the extras on the free list. - (release_pages): Clean up. - (ggc_set_mark): Don't adjust G.allocated here... - (sweep_pages): ... do it here. - -2000-08-24 Zack Weinberg - - * cppfiles.c (read_include_file): Rearrange initializations. - -2000-08-24 Richard Henderson - - * stmt.c (expand_asm_operands): Treat EXTRA_CONSTRAINT like g or X. - - * config/ia64/ia64-protos.h: Update. - * config/ia64/ia64.c (gr_register_operand): New. - (fr_register_operand, grfr_register_operand): New. - (gr_nonimmediate_operand, grfr_nonimmediate_operand): New. - (grfr_reg_or_8bit_operand): New. - (gr_reg_or_0_operand): Rename from reg_or_0_operand and - use gr_register_operand. - (gr_reg_or_5bit_operand, gr_reg_or_6bit_operand): Likewise. - (gr_reg_or_8bit_operand, gr_reg_or_8bit_adjusted_operand): Likewise. - (gr_reg_or_8bit_and_adjusted_operand): Likewise. - (gr_reg_or_14bit_operand, gr_reg_or_22bit_operand): Likewise. - (fr_reg_or_fp01_operand): Likewise. - (not_postinc_memory_operand): New. - (ia64_split_timode): Remove unused variables. - (rtx_needs_barrier): Check arguments to cmpxchg. - (builtin_description): Remove. - (bdesc_2argsi, bdesc_2argdi): Remove. - (ia64_init_builtins): Declare all builtins directly. - (ia64_expand_fetch_and_op): Rewrite to be called from - ia64_expand_builtin directly. Use expand_binop and co. - (ia64_expand_op_and_fetch): Likewise. - (ia64_expand_compare_and_swap): Likewise. - (ia64_expand_binop_builtin): Remove. - (ia64_expand_lock_test_and_set): New. - (ia64_expand_lock_release): New. - (ia64_expand_builtin): Use them. - * config/ia64/ia64.h (CONSTRAINT_OK_FOR_S): New. - (EXTRA_CONSTRAINT): Use it. - (PREDICATE_CODES): Update. - * config/ia64/ia64.md (*): Use gr_register_operand and co. - (mf): Indicate that we set memory as well as use it. - (fetchadd_acq_si): Show memory being modified as well. - (fetchadd_acq_di, cmpxchg_acq_si, cmpxchg_acq_di): Likewise. - (val_compare_and_swap_si, val_compare_and_swap_di): Remove. - (lock_test_and_set_si, lock_test_and_set_di): Remove. - (fetch_and_add_si, fetch_and_sub_si, fetch_and_or_si): Remove. - (fetch_and_and_si, fetch_and_xor_si, fetch_and_nand_si): Remove. - (fetch_and_add_di, fetch_and_sub_di, fetch_and_or_di): Remove. - (fetch_and_and_di, fetch_and_xor_di, fetch_and_nand_di): Remove. - (add_and_fetch_di, sub_and_fetch_di, or_and_fetch_di): Remove. - (and_and_fetch_di, xor_and_fetch_di, nand_and_fetch_di): Remove. - (add_and_fetch_si, sub_and_fetch_si, or_and_fetch_si): Remove. - (and_and_fetch_si, xor_and_fetch_si, nand_and_fetch_si): Remove. - * config/ia64/ia64intrin.h (*): Cast result to the appropriate - return type. Pretty print definitions. - -2000-08-24 Jim Wilson - - * config/ia64/ia64.md (movdi): Don't call gen_movdi_symbolic if - we have a SYMBOL_REF with SYMBOL_REF_FLAG set. - -2000-08-24 Jason Merrill - - * dwarf2out.c (AT_flag, AT_int, AT_unsigned, AT_string, AT_ref, - AT_loc, AT_addr, AT_lbl): Abort on unsuitable input. - (get_AT_low_pc, get_AT_hi_pc, get_AT_string, get_AT_flag, - get_AT_unsigned, get_AT_ref): Don't call them if get_AT fails. - -2000-08-24 Greg McGary - - * optabs.c (init_optabs): Initialize fixtab, fixtrunctab, floattab, - and extendtab within their proper array boundaries. - * emit-rtl.c (init_emit_once): Pass `const_tiny_rtx' with bounds - for the entire array. - - * config/arm/arm.c (arm_override_options): Use ARRAY_SIZE. - * config/alpha/alpha.c (alpha_lookup_xfloating_lib_func): Likewise. - * config/avr/avr.c (order_regs_for_local_alloc): Likewise. - * config/fr30/fr30.c (fr30_print_operand): Likewise. - * config/i386/dgux.c (output_options): Likewise. - * config/i386/dgux.h (ASM_FILE_START): Likewise. - * config/m88k/m88k.c (output_options): Likewise. - * config/m88k/m88k.h (ASM_FILE_START): Likewise. - * config/mcore/mcore.c (mcore_output_inline_const_forced, - layout_mcore_frame, handle_structs_in_regs): Likewise. - * config/mips/mips.c (output_block_move): Likewise. - * config/rs6000/rs6000.c (rs6000_override_options, - rs6000_file_start): Likewise. - * config/sparc/sparc.c (sparc_add_gc_roots): Likewise. - * fixinc/fixfixes.c (FIX_TABLE_CT): Likewise. - * fixinc/fixtests.c (TEST_TABLE_CT): Likewise. - * builtins.c (expand_builtin_setjmp): Likewise. - * expr.c (safe_from_p): Likewise. - * flow.c (life_analysis): Likewise. - * fold-const.c (size_int_type_wide): Likewise. - * gcc.c (translate_options, init_spec, set_spec, main): Likewise. - * genattrtab.c (make_length_attrs): Likewise. - * genopinit.c (gen_insn): Likewise. - * genrecog.c (NUM_KNOWN_PREDS, NUM_SPECIAL_MODE_PREDS): Likewise. - * global.c (global_alloc): Likewise. - * local-alloc.c (find_free_reg): Likewise. - * mips-tdump.c (print_symbol): Likewise. - * mips-tfile.c (parse_def, parse_input): Likewise. - * reload1.c (NUM_ELIMINABLE_REGS): Likewise. - * stmt.c (expand_nl_goto_receiver): Likewise. - * stor-layout.c (set_sizetype): Likewise. - * varasm.c (decode_reg_name): Likewise. - * toplev.c (decode_f_option, decode_W_option, - set_target_switch, print_switch_values): Likewise. - (NUM_ELEM): Remove macro. - (display_help, main): s/NUM_ELEM/ARRAY_SIZE/ - -2000-08-24 Greg McGary - - * tree.h (enum tree_index): New member `TI_MAIN_IDENTIFIER'. - (MAIN_NAME_P, main_identifier_node): New macros. - * c-common.c (c_common_nodes_and_builtins): Init main_identifier_node. - * c-decl.c (start_decl, grokdeclarator, start_function, - store_parm_decls, finish_function): Use MAIN_NAME_P. - * config/avr/avr.c (function_prologue, function_epilogue): Likewise. - * config/i386/cygwin.h (SUBTARGET_PROLOGUE): Likewise. - * config/i386/win32.h (SUBTARGET_PROLOGUE): Likewise. - * config/pdp11/pdp11.c (output_function_prologue): Likewise. - -2000-08-24 Greg McGary - - * cppfiles.c (actual_directory): Don't write beyond `dir' - when it contains "". - * real.c (asctoeg): Stay within bounds of etens[][]. - -2000-08-24 Kaveh R. Ghazi - - * dependence.c (dependence_string, direction_string, - dump_one_node, dump_node_dependence): Hide unused identifiers. - (get_low_bound, normalize_coefficients): Match definition to - static prototype. - (get_one_coefficient): Initialize variables `value0_is_idx' and - `value1_is_idx'. - (ziv_test, gcd_test): Mark parameters with ATTRIBUTE_UNUSED. - (ziv_test): Delete variable `idx', use parameter `sub' instead. - (direction_merge): Avoid automatic aggregate initialization. - (have_dependence_p): Use `src' not `dest' to set `src_idx'. - Initialize variables `dest_idx' and `src_idx'. - (end_dependence_analysis): Avoid C89 style function definition. - -2000-08-24 Joseph S. Myers - - * c-common.c (time_char_table): Don't allow width with %F. - (check_format_info): Don't allow "Z" length with scanf. - -2000-08-24 Gabriel Dos Reis - - * diagnostic.c (finish_diagnostic): Define. - (output_do_printf): Use wrap_text instead of output_add_string. - (default_print_error_function): Avoid embedded '\n'. - - * diagnostic.h (flush_diagnostic_buffer): Declare. - -2000-08-23 Alexandre Oliva - - * dependence.c: Replace `[][]' with `[][MAX_SUBSCRIPTS]'. - -2000-08-23 Hans-Peter Nilsson - - * Makefile.in (GCC_PASSES): Add specs. - -2000-08-23 Jim Wilson - - * frame.h (IA64_UNW_EHANDLER, IA64_UNW_UHANDLER): New. - * config/ia64/frame-ia64.c (__get_personality): Return zero if neither - EHANDLER nor UHANDLER bit is set. - (__get_except_table): Likewise. - -2000-08-23 Nick Clifton - - * config/arm/lib1funcs.asm: Replace upper case condition codes - with lower case versions. - - * config/arm/arm.h (STRUCT_VALUE): Define. - (STRUCT_VALUE_REGNUM): Delete. - -2000-08-23 Zack Weinberg - - * cpphash.h (IN_I): New flag for directive table. - * cpplib.c (DIRECTIVE_TABLE): Mark #define, #undef, #ident, and - #pragma with IN_I. - (_cpp_check_directive): If -fpreprocessed, execute directives - marked with IN_I. Issue no warnings in this case. - * cpplex.c (_cpp_get_token): Expand no macros if -fpreprocessed. - -2000-08-23 Joseph S. Myers - - * c-common.c (print_char_table): Allow 'I' flag with %d, %i and - %u. - (check_format_info): Support printf 'I' flag; warn about it with - -pedantic. - -2000-08-23 Richard Earnshaw (rearnsha@arm.com) - - * arm.c (arm_expand_prologue): Ensure that the stack-adjustment - barrier can't be ignored by the alias analysis code. - -2000-08-12 Eli Zaretskii - - * fixinc/inclhack.def (sysv68_string): Fix the Sed script so it - works inside fixincl. - -Wed Aug 23 04:55:48 2000 Alexandre Oliva - - * simplify-rtx.c (simplify_rtx): Don't pass VOIDmode to - simplify_relational_operation() unless both operands are of - VOIDmode. - * cse.c (fold_rtx): Likewise. - -Tue Aug 22 23:53:27 EDT 2000 John Wehle (john@feith.com) - - * rtlanal.c (rtx_unstable_p): The pic register is stable - (within one function) and the actual rtx should be used - when checking the registers. - (rtx_addr_can_trap_p): Pic memory addresses can't trap. - - * alias.c (true_dependence, write_dependence_p): Fix - bug in previous patch. - - * i386.c (ix86_GOT_alias_set): New. - (legitimize_pic_address): Use it. - - * rtlanal.c (rtx_unstable_p): An unchanging MEM is - only stable if its address is stable. - (rtx_varies_p): An unchanging MEM can't vary if - its address doesn't vary. - -2000-08-22 Kaveh R. Ghazi - - * c-parse.in (unop +): Restrict -Wtraditional warnings to user code. - -2000-08-22 J. David Anglin - - * vax.h (ASM_SPEC): Pass `-J' to assembler. - * x-vax-gcc: New file for bootstrapping with gcc. - * x-vax: Use X_CFLAGS rather than X_CPPFLAGS to pass `-J'. - * configure.in: Use x-vax-gcc with gcc. - * configure: Rebuilt. - -Tue Aug 22 21:21:05 2000 J"orn Rennecke - - * toplev.c (rest_of_compilation): Rebuild label notes after - post-reload splitting pass if new labels have been created. - -2000-08-22 Gabriel Dos Reis - - * diagnostic.h (output_buffer_state): New macro. - * diagnostic.c (diagnostic_for_decl, sorry, - default_print_error_function, output_do_verbatim, - report_diagnostic, report_problematic_module): Use it. - (wrap_text): Tweak. - (output_format): Use wrap_text instead of maybe_wrap_text. - -2000-08-22 Nick Clifton - - * config/arm/lib1funcs.asm (ARM_DIV_MOD_BODY): New macro. - Common code for ARM divide and modulus functions. - (THUMB_DIV_MOD_BODY): New macro. Thumb equivalent of - ARM_DIV_MOD_BODY. - (FUNC_END): New macro: Common code at the end of the division and - modulo functions. - (THUMB_FUNCTION_START): New macro: Common code at the start of - Thumb functions. - (__divsi3, __udivsi3, __modsi3, __umodsi3): Use new macros. - -Tue Aug 22 20:34:52 2000 Kaz Kojima - - * config/sh/sh.md (cmpeqdi_t splitter): Fix a reverse testing. - - * config/sh/sh.c (prepare_scc_operands): Apply force_reg to - sh_compare_op1 when the mode is DImode and sh_compare_op1 isn't - const0_rtx. - -2000-08-22 Nick Clifton - - * config/arm/lib1funcs.asm (__umodsi3): Before performing any - restorative additions, test for bottom bits of IP being set, - rather than relying upon the RORs not matching. - (__modsi3): Ditto. - -2000-08-22 David Edelsohn - - * aix.h (ASM_DECLARE_FUNCTION_NAME): Call named_section() or - text_section() as appropriate instead of emitting text csect - pseudo-op directly. - (TEXT_SECTION_ASM_OP): Only require default 32-bit alignment. - (UNIQUE_SECTION): Define macro. - (ASM_OUTPUT_SECTION_NAME): Define macro. - * rs6000.c (rs6000_override_options): Disable -ffunction-sections - on AIX if debugging and -fdata-sections always. - -2000-08-22 Steven King - - * config/float-i386.h (LDBL_EPSILON): Remove __convert_long_double - machinery. - (LDBL_MAX): Same here. - -2000-08-22 Richard Henderson - - * flow.c (tidy_fallthru_edge): Update b->end properly. - -2000-08-22 Stan Cox - - * Makefile.in (OBJS): Add dependence.o. - * dependence.c: New file. - -2000-08-22 Alexandre Oliva , John David Anglin - - * calls.c (check_sibcall_argument_overlap_1): Adjust for - ARGS_GROW_DOWNWARD. - (check_sibcall_argument_overlap): Likewise. - -2000-08-22 Alexandre Oliva - - * invoke.texi (SH Options): Document -m4-nofpu, - -m4-single-only, -m4-single, -m4, -mbigtable, -mfmovd, - -mhitachi, -mnomacsave, -misize, -mpadstruct, -mspace. - -2000-08-22 Joseph S. Myers - - * c-common.c (check_format_info): Give the 'some locales' warning - for strftime %Ey rather than the unconditional 'only last 2 digits - of year' one. - -2000-08-22 Richard Henderson - - * alias.c (init_alias_analysis): Do not register - struct_value_incoming_rtx or static_chain_rtx as pointing - to stack memory. - -Tue Aug 22 01:44:43 2000 Jeffrey A Law (law@cygnus.com) - - * protoize.c (munge_compile_params): Fix typo and formatting buglets. - -2000-08-22 Gabriel Dos Reis - - * diagnostic.h (report_problematic_module): Declare. - * diagnostic.c (report_problematic_module): New function. - (report_error_function): Tweak. - -Tue Aug 22 02:31:26 2000 Richard Kenner - - * stmt.c (expand_goto_internal, fixup_gotos): Only check - TYPE_RETURNS_STACK_DEPRESSED for FUNCTION_TYPE. - -2000-08-21 Richard Henderson - - * flow.c (calculate_global_regs_live): Mark frame pointer live - everywhere before reload. - -2000-08-21 Jim Wilson - - * real.c (ereal_from_int, ereal_from_uint, significand_size): Handle - INTEL_EXTENDED_IEEE_FORMAT. - (toe64): Delete INTEL_EXTENDED_IEEE_FORMAT support. Unconditionally - clear last two bytes of output FP value. - -2000-08-21 Graham Stott - - * config/ia64/ia64.h (REDO_SECTION_INFO_P): Change decl to DECL. - -2000-08-21 Jakub Jelinek - - * unroll.c (loop_find_equiv_value): If ret is modified between - insn and loop_start, ret might not be equivalent to reg. - -2000-08-21 Joseph S. Myers - - * c-common.c (init_dollar_format_checking, - maybe_read_dollar_number, finish_dollar_format_checking): New - functions. - (dollar_arguments_used, dollar_arguments_count, - dollar_first_arg_num, dollar_max_arg_used, dollar_format_warned): - New variables. - (check_format_info): Support $ formats for scanf and printf width - and precision. Always increment format_chars to advance past the - '*' of precision, not just when the format parameters are - available to check. - -2000-08-21 Kaveh R. Ghazi - - * mips.c (block_move_loop, expand_block_move, - function_arg_partial_nregs, save_restore_insns, function_prologue, - mips_expand_prologue, RA_MASK): Avoid using the `U' integer - constant suffix. - (function_arg_advance, function_arg): Match argument to format - specifier `%p'. - -2000-08-21 Nix - - * gcc.c (do_spec_1): Implement %j spec flag. - Remove dead comment. - - * gcc.texi (The Configuration File): Document HOST_BIT_BUCKET. - * system.h (HOST_BIT_BUCKET): Default to "/dev/null". - * config/i386/xm-dos.h (HOST_BIT_BUCKET): Define as "NUL". - * config/i386/xm-os2.h, config/winnt/winnt.h: Likewise. - - * protoize.c (munge_compile_params): Use HOST_BIT_BUCKET (if - writable) instead of hardcoded value. - - * toplev.c (compile_file): Output to a file even if -fsyntax-only. - - * gcc.c, config/i386/xm-dos.h, config/i386/xm-os2.h: Kill - MKTEMP_EACH_FILE. - - * gcc.c (cc1_options): Do not process -o or run the assembler if - -fsyntax-only. - * objc/lang-spec.h: Likewise. - -2000-08-21 Eli Zaretskii - - * fixinc/fixincl.c (fix_with_system): Pipe the output of - "external" fixes through `cat', to avoid truncating the input - file by redirection. - -2000-08-21 Jakub Jelinek - - * config/i386/i386.md (lea_general_1): Copy insn condition to split - condition. - (lea_general_2, lea_general_3): Likewise. - -2000-08-21 Kaveh R. Ghazi - - * c-decl.c (duplicate_decls, define_label): Restrict -Wtraditional - warnings to user code. - - * c-lex.c (readescape, yylex): Likewise. - - * c-typeck.c (store_init_value, process_init_element): Likewise - (c_expand_start_case): Format. - -2000-08-18 Maciej W. Rozycki - - * mips/linux.h (LINK_SPEC): Use %(endian_spec). - - * mips/mips.h: Change LINKER_ENDIAN_SPEC to ENDIAN_SPEC - and linker_endian_spec to endian_spec. - (ENDIAN_SPEC): Add %{EB} and %{EL}. - (LINK_SPEC): Remove %{EB} and %{EL}. - (ASM_SPEC): Likewise. Use %(endian_spec). - -2000-08-21 Joseph S. Myers - - * c-tree.h (flag_hosted): Move declaration from here... - * c-common.h (flag_hosted): ... to here. - (flag_noniso_default_format_attributes): New declaration. - * c-decl.c (flag_noniso_default_format_attributes): New variable. - (c_decode_option): Set it appropriately for options choosing - language standard variant. - * c-common.c (init_function_format_info): Only provide default - format attributes if flag_hosted. Only provide the gettext - formats if flag_noniso_default_format_attributes. Update - comments. - (check_format_info): Disable treatment of %a as a scanf flag in - C99 mode. - -2000-08-21 Joseph S. Myers - - * c-common.c (scan_char_table): Add 'w' to flags for all formats - except 'n'. - (check_format_info): Set 'wide' for scanf format widths. Warn for - a zero scanf width. Make the check for writing into a constant - object at the first level of indirection; at later levels, warn if - any type qualifiers are encountered. - -Mon Aug 21 07:41:12 2000 Jeffrey A Law (law@cygnus.com) - - * reload.c (reload_inner_reg_of_subreg): New function broken out of - push_reload. - (push_reload): Use reload_inner_reg_of_subreg. - (combine_reloads): Do not combine reloads if the input reload - is a SUBREG in which the inner part will need reloading. - - * global.c (global_alloc): Avoid passing dumpfile argument to - reload routines. - * toplev.c (rest_of_compilation): Likewise. - * reload.h (reload): Remove dumpfile argument. Callers changed. - (debug_reload, debug_reload_to_stream): Move prototypes here. - * rtl.h (reload): Remove dumpfile argument. - * reload.c (debug_reload): Remove prototype. - (debug_reload_to_stream): Likewise. - * reload1.c: Avoid passing dumpfile around, rely on rtl_dump_file - instead. - -2000-08-21 Gabriel Dos Reis - - * diagnostic.c (context_as_prefix): Export. - (need_error_newline): Remove. - (lang_diagnostic_starter, lang_diagnostic_finalizer): New objects. - (error_module_changed, record_last_error_module, - error_function_changed, record_last_error_function): New functions. - (initialize_diagnostics): Default initialize - lang_diagnostic_starter, lang_diagnostic_finalizer. - (init_output_buffer): Tweak. - (file_name_as_prefix): New function. - (announce_function, default_print_error_function, - report_error_function, set_diagnostic_context): Tweak. - -2000-08-21 Richard Earnshaw - - * flow.c (init_propagate_block_info): Handle SUBREG in a jump - condition expression. - -2000-08-20 Richard Henderson - - * flow.c (merge_blocks_nomove): Don't seek back past the bb note. - -2000-08-20 Zack Weinberg - - * cppinit.c (cpp_init): Set global flag when called. - (cpp_reader_init): Bomb out if cpp_init hasn't been called. - -Sun Aug 20 01:41:35 2000 Dennis Chernoivanov - - * cpplex.c (cpp_scan_buffer): Move `output_line_command' just - before `process_directive' so that newlines won't be missed - for directives. - (cpp_printf): Increment `print->lineno' when newline is emitted. - - * cppmain.c (cb_ident): Likewise. - (cb_define): Likewise. - (cb_undef): Likewise. - (cb_include): Likewise. - (cb_def_pragma): Likewise. - (dump_macros_helper): Likewise. - -2000-08-20 Richard Henderson - - * config/ia64/ia64.c (emit_insn_group_barriers): Stop if ar.lc - assigned before a loop. - - * config/ia64/ia64.md (ashlsi3): Zero extend the shift count. - (ashrsi3, lshrsi3): Likewise. - -2000-08-20 Gabriel Dos Reis - - * c-lang.c: #include diagnostic.h - (c_tree_printer): New function. - (lang_init): Initialize lang_printer. - - * Makefile.in (c-lang.o): Depends on diagnostic.h - -2000-08-20 Gabriel Dos Reis - - * c-errors.c (pedwarn_c99): Adjust call to report_diagnostic. - - * diagnostic.c (default_diagnostic_starter, - default_diagnostic_finalizer): New functions. - (diagnostic_for_asm, diagnostic_for_decl): Tweak. - (pedwarn, pedwarn_with_file_and_line, error, - error_with_file_and_line, fatal, warning, - warning_with_file_and_line): Adjust call to report_diagnostic. - (report_diagnostic): Rework. - (set_diagnostic_context): New function. - - * diagnostic.h (struct diagnostic_context): New data structure. - (diagnostic_message, diagnostic_argument_list, - diagnostic_file_location, diagnostic_line_location, - diagnostic_is_warning, diagnostic_starter, diagnostic_finalizer, - diagnostic_finalizer, diagnostic_auxiliary_data): New macros. - (set_diagnostic_context): Declare. - (report_diagnostic): Change prototype. - -Sun 20-Aug-2000 09:25:45 BST Neil Booth - - * fix-header.c (main): Initialize cpplib. - -2000-08-19 Michael Meissner - - * ifcvt.c (find_if_block): Do not assume that a THEN block has any - instructions in it before checking for indirect jumps. - - * ifcvt.c (find_if_block): Do not consider a THEN block that ends - in an indirect jump as a potential for conditional execution. - - * d30v.h (d30v_init_expanders): Don't declare here. - * d30v-protos.h (d30v_init_expanders): Declare here with a valid - prototype. - -Sat 19-Aug-2000 21:11:45 BST Neil Booth - - * cpp.texi: Add @section for assertions. - -Sat Aug 19 12:37:08 EDT 2000 John Wehle (john@feith.com) - - * loop.c (scan_loop): Use CONST_CALL_P instead of - checking for REG_LIBCALL / REG_RETVAL. - -Sat Aug 19 09:18:47 2000 Jeffrey A Law (law@cygnus.com) - - * reload1.c (reload_as_needed): Accept dumpfile argument, - pass it to emit_reload_insns. - (emit_reload_insns): Add new dumpfile argument. If non-null - then dump the reloads for each insn into the dumpfile. - (reload): Pass dumpfile to reload_as_needed. - - * invoke.texi: Clean up linux-gnu vs linux comments. - -2000-08-19 Richard Henderson - - * config/ia64/ia64.c (reg_or_5bit_operand): New. - (ia64_depz_field_mask): New. - * config/ia64/ia64.h (CONSTRAINT_OK_FOR_R): New. - (PREDICATE_CODES): Update. - * config/ia64/ia64.md: Update commentary. - (depz_internal): New. - (ashlsi3): Implement directly. - (ashrsi3, lshrsi3): Simplify; rely on extv and extzv for constants. - (ashldi3): Use shladd. - * config/ia64/ia64-protos.h: Update. - -2000-08-18 Zack Weinberg - - * toplev.c (independent_decode_option): Always process -g. - Remove third argument, now unused. Adjust caller to match. - -2000-08-18 Richard Henderson - - * combine.c (make_compound_operation): Break after creating - the extraction. - -2000-08-18 Zack Weinberg - - * cpplib.c (cpp_register_pragma_space): Just return if the - namespace is already registered. - -2000-08-18 Ray Essick & Nick Clifton - - * config/mcore/mcore.md (rotlsi3): Allow allow rotations by a - constant amount. Do not generate ROTL instruction. - -Fri Aug 18 16:22:20 2000 Alexandre Oliva - - * config/sh/elf.h: Do not include sh/sh.h. - * config/sh/rtems.h: Likewise. - * config/sh/rtemself.h: Do not include sh/elf.h. - * configure.in: Get them included with `tm_file's. - * configure: Rebuilt. - - * config/sh/sh.md (fpu_switch0, fpu_switch1): Simplify. - * config/sh/sh.c (fpscr_set_from_mem): Use them. - -Fri Aug 18 14:23:18 2000 Richard Kenner - - * stor-layout.c (compute_record_type): Don't use mode of single - field as mode of record if not integer mode of same type. - - * regmove.c (perhaps_ends_bb_p): New function. - (optimize_reg_copy_1, optimize_reg_copy_2): Call it. - (optimize_reg_copy_3, fixup_match_2, regmove_optimize): Likewise. - (fixup_match_1): Likewise. - (fixup_match_1, combine_stack_adjustments_for_block): Add casts to - avoid signed/unsigned warnings. - - * function.c (fixup_var_refs_1, case MEM): Update CODE after - updating X. - -Fri 18-Aug-2000 18:33:45 BST Neil Booth - - * cpphash.h: Use HAVE_DESIGNATED_INITIALIZERS. - (_cpp_trigraph_map): Declaration moved from cpplex.c - - * cppinit.c: Define _cpp_trigraph_map. Use UCHAR_MAX + 1 - instead of 256. Use consistent test for designated initializers. - (cpp_init): Initialize trigraph_map. - (initialize_standard_includes, parse_option): Use memcmp - instead of strncmp. - - * cpplex.c (init_trigraph_map): Remove. - (trigraph_ok, trigraph_replace, lex_line): Refer to - _cpp_trigraph_map. - - * cpplib.c (str_match, WARNING, ERROR, ICE): Delete. - (do_unassert): Remove unused "next" local. - - * system.h (HAVE_DESIGNATED_INITIALIZERS): New prototype. - -2000-08-18 Emmanuel Marty - - * arm/lib1funcs.asm (_umodsi3 THUMB VARIANT): Restore deleted return - insn. - -2000-08-17 Richard Henderson - - * config/ia64/ia64.c (spill_restore_mem): Handle emitting - the first insn in a sequence. - -Thu Aug 17 22:40:05 EDT 2000 John Wehle (john@feith.com) - - * alias.c (true_dependence, write_dependence_p): A read - involving a label_ref or the constant pool doesn't create - a dependency. - - * rtl.h (unchanging): Improve documentation. - -2000-08-17 Rodney Brown - - * cse.c (insert_regs): Remove unused `regno'. - -2000-08-17 Neil Booth - - * (cppinit.c) merge_include_chains: Use remove_dup_dir, - remove_dup_dirs. If qtail == brack, remove brack not - qtail. - (remove_dup_dir, remove_dup_dirs): New functions. - -2000-08-17 Neil Booth - - * cppinit.c (cpp_cleanup): Free include dir chains. - * cpplib.c (do_undef): Let _cpp_free_definition make the node void. - (do_unassert): Free the assert with _cpp_free_definition. - * cppmacro.c (_cpp_free_definition): Free memory allocated for - assertions. Make the node a T_VOID node. - -2000-08-17 Neil Booth - - * cppinit.c (path_include, append_include_chain): - Remove 2nd parameter (struct cpp_pending *). - (path_include, initialize_standard_includes, cpp_handle_option): - Update callers appropriately. - (cpp_handle_option): Use pend. - -2000-08-17 Neil Booth - - * cppinit.c (sort_options): Remove, put functionality in - cpp_init. - (cpp_init): New. - (initialize_builtins): Free memory. - (cpp_start_read): Move init_IStable to cpp_init. - - * cpplib.h (cpp_init): New prototype. - * cppmain.c (main): Call cpp_init. - -Thu Aug 17 13:20:32 EDT 2000 John Wehle (john@feith.com) - - * rtlanal.c (rtx_unstable_p): Use CONSTANT_P. - (rtx_unstable_p, rtx_varies_p): Process vectors. - -2000-08-16 Niibe Yutaka , Kaz Kojima - - * config/sh/lib1funcs.asm (GLOBAL): Define. Use for all - references to GLOBAL symbols. Use LOCAL where appropriate. - -2000-08-16 Kaveh R. Ghazi - - * configure.in (*-ibm-aix4.[12]*): Delete test for gnu ld. Always - use t-aix41 when host == target. - -2000-08-16 Richard Henderson - - * reload.c (push_secondary_reload): Revert last change. - If we use a reload_in/out pattern, make the when the same - as the primary reload. - (find_reloads): Likewise. - -2000-08-16 Manfred Hollstein - - * configure.in (libstdcxx-v3): Fix test. - * configure: Regenerate. - -Wed Aug 16 08:10:32 2000 Richard Kenner - - * calls.c (calls_function_1, expand_call): Only test - TYPE_RETURNS_STACK_DEPRESSED for FUNCTION_TYPE. - * function.c (thread_prologue_and_epilogue_insns): Likewise. - -2000-08-16 Richard Henderson - - * combine.c (simplify_shift_const): Revert previous two - changes. If SHIFT_COUNT_TRUNCATED, crop the shift count - before the main loop. - -2000-08-15 Richard Henderson - - * combine.c (simplify_shift_const): Bound shift count when - combining shifts. - -Tue Aug 15 17:33:05 2000 Richard Kenner - - * calls.c (ECF_SP_DEPRESSED): New macro. - (calls_function_1): Treat calling sp-depressed function as alloca. - (emit_call_1): Don't adjust SP if calling sp-depressed function. - (expand_call): Set ECF_SP_DEPRESSED if TYPE_RETURNS_STACK_DEPRESSED. - If sp-depressed, ensure block saves and restores SP. - * fold-const.c (extract_muldiv): Only check TYPE_IS_SIZETYPE - for INTEGER_TYPE. - * function.c (keep_stack_depressed): New function. - (thread_prologue_and_epilogue_insns): Call it. - * print-tree.c (print_node): Use HOST_WIDE_INT_PRINT_UNSIGNED - to print DECL_OFFSET_ALIGN. - Print no-force-blk and transparent-union flags properly. - * stmt.c (expand_goto_internal): Don't restore stack if last block - and function returns with sp depressed. - (fixup_gotos): Likewise. - (save_stack_pointer): New function, from code in expand_decl. - (expand_decl): Call new function. - * tree.h (TYPE_IS_SIZETYPE): Call INTEGER_TYPE_CHECK. - (TYPE_RETURNS_STACK_DEPRESSED): New macro. - (save_stack_pointer): New declaration. - - * diagnostic.c (fatal_function): New variable. - (set_fatal_function): New function. - (fatal): Call it. - * diagnostic.h (set_fatal_function): New declaration. - -2000-08-15 William Cohen - - * config/sh/elf.h (DWARF2_DEBUGGING_INFO): Defined. - (PREFERRED_DEBUGGING_TYPE): Set to dwarf2 info. - (DWARF2_ASM_LINE_DEBUG_INFO): Defined. - -2000-08-15 Richard Henderson - - * flow.c (mark_used_reg): Set reg_cond_reg appropriately. - -2000-08-15 Richard Earnshaw - - * arm.c (arm_function_ok_for_sibcall): New function. - * arm.h (FUNCTION_OK_FOR_SIBCALL): Define. - * arm.md (call expanders): Don't check here for calls that can't - be sibling calls. - -2000-08-15 Richard Earnshaw - - * arm.md (splits generating cond_exec): Disable. - -2000-08-15 Richard Earnshaw - - * arm/linux-elf.h (text_section): Delete declaration. - -2000-08-15 Richard Earnshaw - - ARM support for unordered FP operations. - * arm-protos.h (arm_comparison_operator): Declare. - * arm.c (arm_comparison_operator): New function. - (arm_select_cc_mode): Add unordered comparison codes. - (get_arm_condition_code): Likewise. - (arm_final_prescan_insn): Can't handle unordered jumps that can't - be done in one insn. - * arm.h (PREDICATE_CODES): Add arm_comparison_operator. - * arm.md (all uses of comparison_operator): Replace with - arm_comparison_operator. - (bunordered, bordered, bugt, bunlt, bunge, bunle, buneq, bltgt): New - expands. - (arm_buneq, arm_bltgt, arm_buneq_reversed, arm_bltgt_reveresed): New - patterns. - -Tue Aug 15 00:36:36 2000 Ovidiu Predescu - - * gthr-posix.h: Conditionally include ; include - from libobjc/. - -2000-08-14 Richard Henderson - - * config/i386/i386.c (legitimize_pic_address): Use Pmode - for all CONSTs. - -2000-08-14 Richard Henderson - - * configure.in (ia64-*): Set float_format for i386 long double. - - * real.c (GET_REAL): Treat 128-bit INTEL_EXTENDED_IEEE_FORMAT - as we would for i386 XFmode. - (PUT_REAL): Likewise. - (endian, ereal_atof, real_value_truncate): Likewise. - (ereal_isneg, toe64, etens, make_nan): Likewise. - * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Likewise. - - * config/ia64/ia64-protos.h: Update. - * config/ia64/ia64.c (general_tfmode_operand): New. - (destination_tfmode_operand): New. - (tfreg_or_fp01_operand): New. - (ia64_split_timode): New. - (spill_tfmode_operand): New. - (ia64_expand_prologue): Use TFmode not XFmode. - (ia64_expand_epilogue): Likewise. - (ia64_function_arg): Likewise. - (ia64_function_arg_advance): Likewise. - (ia64_return_in_memory): Likewise. - (ia64_function_value): Likewise. - (ia64_print_operand): Likewise. - (ia64_register_move_cost): Set GR<->FR to 5. - (ia64_secondary_reload_class): Get GR for TImode memory op. - * config/ia64/ia64.h (ROUND_TYPE_SIZE): Remove. - (ROUND_TYPE_ALIGN): Remove. - (LONG_DOUBLE_TYPE_SIZE): Set to 128. - (INTEL_EXTENDED_IEEE_FORMAT): Define. - (HARD_REGNO_NREGS): Use TFmode, not XFmode. - (HARD_REGNO_MODE_OK): Likewise. Disallow TImode in FRs. - (MODES_TIEABLE_P): Use TFmode, not XFmode. - (CLASS_MAX_NREGS): Likewise. - (ASM_OUTPUT_LONG_DOUBLE): Output by 4 byte hunks. - (PREDICATE_CODES): Update. - * config/ia64/ia64.md (movti): New. - (movti_internal): Use a clobber for memory alternatives. - (reload_inti, reload_outti): New. - (movsfcc_astep): Predicate properly. - (movdfcc_astep): Likewise. - (movxf): Remove. - (movtf): New. - (extendsftf2, extenddftf2): New. - (trunctfsf2, trunctfdf2): New. - (floatditf2, fix_trunctfdi2): New. - (floatunsditf2, fixuns_trunctfdi2): New. - (addtf3, subtf3, multf3, abstf2): New. - (negtf2, nabstf2, mintf3, maxtf3): New. - (maddtf3, msubtf3, nmultf3, nmaddtf3): New. - (cmptf): New. - (fr_spill): Use TFmode, not XFmode. - (fr_restore): Likewise. - * config/ia64/lib1funcs.asm (__divtf3): New. - * config/ia64/t-ia64 (LIB1ASMFUNCS): Add it. - -2000-08-14 Kaveh R. Ghazi - - * cse.c (fold_rtx): Avoid empty body in an if-statement. - - * doloop.c (doloop_iterations_max, doloop_modify): Avoid using the - `U' integer constant suffix. - - * dwarf2out.c (add_subscript_info): Avoid empty body in an - else-statement. - - * sparc/sol2.h (__enable_execute_stack): Prototype. - -2000-08-14 David Edelsohn - - * collect2.c: Remove use of AIX import file. - - * longlong.h: Test ARCH_PWR not ARCH_POWER. - - * rs6000.c (print_operand, case 'E'): Add else. - -2000-08-14 Richard Henderson - - * config/ia64/ia64.md (movdi): Delay calling ia64_expand_load_address. - (movdi_symbolic): New. - -2000-08-14 Jim Wilson - - * config/ia64/ia64.h (ASM_SPEC): Pass -mconstant-gp and -mauto-pic - to GNU as. For Intel as, pass -M const_gp and -M no_plabel. - * config/ia64/linux.h (ASM_SPEC): Pass -mconstant-gp and -mauto-pic - to GNU as. - -2000-08-14 Richard Henderson - - * expr.c (emit_group_load): Don't force constants into registers. - Special case source already in the correct mode. - -2000-08-14 Zack Weinberg - - * configure.in: Accept *-*-linux* not just *-*-linux-gnu*. - * fixinc/inclhack.def: Likewise. - * fixinc/mkfixinc.sh: Likewise. - * configure: Regenerate. - * fixinc/fixincl.x: Regenerate. - * install.texi: Document equivalence of linux and linux-gnu. - -Mon Aug 14 18:51:44 2000 J"orn Rennecke - - * cse.c (insert_regs): Also in REG case: When finding an invalid - value, and we make a new quantity, make sure that it won't be - mistaken by for a valid one by mention_regs. - -2000-08-13 Ralf Gütlein - - * h8300.md: Remove obsolete peepholes. - -2000-08-13 Kazu Hirata - - * invoke.texi (H8/300 Options): Fix typos. - * config/h8300.c: Fix formatting. - * config/h8300.h: Fix comment typos. - (OVERRIDE_OPTIONS): Fix formatting. - - * function.c: Fix formatting. - - * cse.c: Fix formatting. - -2000-08-13 Geoff Keating - - * flow.c (attempt_auto_inc): Remove unused variable `bb'. - (attempt_auto_inc): Suppress parentheses warning. - * function.c (put_reg_into_stack): Remove unused variable `unsigned_p'. - * loop.c (load_mems): Remove `u' suffix in two places. - * config/rs6000/rs6000.c: Remove unnecessary `u' suffixes from - hex constants. - * config/rs6000/rs6000.h: Likewise. - * config/rs6000/sol-c0.c: Prototype some functions. Remove the - __eabi dummy routine. - * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Remove unused - variable `buf_ptr'. - - * config/rs6000/rs6000.c (rs6000_select_section): Rewrite to - not put stuff in .sdata unnecessarily. - (rs6000_unique_section): New function. - * config/rs6000/rs6000-protos.h: Add rs6000_unique_section. - * config/rs6000/sysv4.h (UNIQUE_SECTION): Define. - - * c-typeck.c (build_array_ref): Don't complain about non-lvalue - arrays in C99. Don't try to look at DECL_REGISTER of a - COMPONENT_REF. Don't complain twice about the same error. - - * fixinc/inclhack.def (aix_pthread): New fix. - (aix_sysmachine): New fix. - * fixinc/fixincl.x: Regenerate. - - * expr.c (expand_expr): Call convert_modes when turning a large - multiply into a small one. - -2000-08-12 Geoff Keating - - * tree.h (DECL_OFFSET_ALIGN): Make the off_align field of - the tree structure an exponent rather than an explicit alignment - so it doesn't overflow. - (SET_DECL_OFFSET_ALIGN): New macro. - * stor-layout.c (place_union_field): Use SET_DECL_OFFSET_ALIGN - rather than DECL_OFFSET_ALIGN. - (place_field): Likewise. - * expmed.c (store_bit_field): Abort on align==0 to avoid - antisocial machine behavior. - -2000-08-12 Richard Henderson - - * sibcall.c (uses_addressof): Accept both addressof and - current_function_internal_arg_pointer inside a mem. - (optimize_sibling_and_tail_recursive_call): Fail tail recursion - if current_function_uses_addressof. - * stmt.c (expand_return): Kill tail recursion and HAVE_return - optimizations. - -2000-08-11 Richard Henderson - - * config/ia64/ia64.md (addsi3): Remove expander. - (subsi3, mulsi3, negsi2, one_cmplsi2): Likewise. - (*addsi3_shladd): New. - -2000-08-11 Richard Henderson - - * config/ia64/ia64.c (do_spill): Pass cfa offset to move expander. - (do_restore): Likewise. - (gen_movdi_x, gen_fr_spill_x, gen_fr_restore_x): New. - (ia64_expand_prologue, ia64_expand_epilogue): Use them. - (rtx_needs_barrier): Track actual bit manipulation for - ar.unat moves, gr_spill, and gr_restore. - (emit_insn_group_barriers): Special case gr_spill/gr_restore. - (process_set): Don't handle varargs spills. - * config/ia64/ia64.md (gr_spill): Accept cfa offset. Emit - .mem.offset here instead of in process_set. - (gr_restore): Likewise. - -2000-08-11 Richard Henderson - - * config/ia64/ia64.h (PROMOTE_MODE): Only extend to SImode. - -2000-08-11 Mark Elbrecht - - * gcc.texi (The Configuration File): Document - COLLECT2_HOST_INITIALIZATION, GCC_DRIVER_HOST_INITIALIZATION, and - UPDATE_PATH_HOST_CANONICALIZATION. - -2000-08-11 Kaveh R. Ghazi - - * c-parse.in (cast_expr): Avoid -Wstrict-prototype warnings for - unprototyped function pointer casts on integer constants. - -2000-08-11 Laurynas Biveinis - - * fixproto: Recognize DOS paths with drive letters as absolute paths. - -2000-08-11 Nathan Sidwell - - * extend.texi (Volatiles): Fix typos. - -2000-08-11 Kazu Hirata - - * flow.c: Fix formatting. - -2000-08-11 Richard Henderson - - * reload.c (push_secondary_reload): When invoking a reload_{in,out} - pattern, always allocate a tertiary scratch register. - - * config/alpha/alpha.md (reload_inqi): Use a DImode scratch. - (reload_inhi): Likewise. - -2000-08-11 Richard Henderson - - * function.c (put_reg_into_stack): Allow type to be NULL. - (schedule_fixup_var_refs): Likewise. - (gen_mem_addressof): Allow decl to be NULL. - (put_addressof_into_stack): Likewise. - - * flow.c (merge_blocks_nomove): Be more careful about - locating the beginning of block A. - - * combine.c (simplify_shift_const): Obey SHIFT_COUNT_TRUNCATED. - -Thu Aug 10 22:47:09 2000 Ovidiu Predescu - - * configure.in: - * configure: - * gthr-posix.h: - * config.in: Reverted the check for . - -2000-08-10 Chris Demetriou - - * mips/elf.h (CTOR_SECTION_NAME, DTOR_SECTION_NAME): New - macros define the name of CTOR and DTOR sections. - (CTOR_LIST_BEGIN, CTOR_LIST_END, DTOR_LIST_BEGIN, - DTOR_LIST_END): Change to use attributes to specify - sections. - * mips/elf64.h (CTOR_SECTION_NAME, DTOR_SECTION_NAME, - (CTOR_LIST_BEGIN, CTOR_LIST_END, DTOR_LIST_BEGIN, - DTOR_LIST_END): Same as in mips/elf.h. - -2000-08-10 Drew Moseley - - * config/mn10300/mn10300.h: Added no-crt0 option for explicitly - disabling just crt0.o. - -2000-08-10 Richard Earnshaw & Nick Clifton - - * arm.h (CPP_SPEC): Use sub-spec cpp_interwork. - (CPP_INTERWORK_SPEC, CPP_INTERWORK_DEFAULT_SPEC): New sub-specs. - (EXTRA_SPECS): Add them. - * arm/lib1funcs.asm: Support builds for interworking. - Use macros to eliminate duplicated pieces of code. - -2000-08-10 Kazu Hirata - - * h8300.c (expand_a_rotate): New. - (emit_a_rotate): Likewise. - (h8300_adjust_insn_length): Add support for the rotate insns. - * h8300.md (rotlqi3): New. - (*rotlqi3_1): Likewise. - (rotlhi3): Likewise. - (*rotlhi3_1): Likewise. - (rotlhi3): Likewise. - (*rotlhi3_1): Likewise. - * h8300-proto.h: Add prototypes for expand_a_rotate and - emit_a_rotate. - - * h8300.c: Fix comment typos. - (dosize): Declare the variable amount as unsigned. - (get_shift_alg): Fix a comparison between signed and unsigned. - (emit_a_shift): Likewise. - (h8300_adjust_insn_length): Simplify the code. - - * c-decl.c: Fix formatting. - -2000-08-10 Kaveh R. Ghazi - - * c-lex.c (parse_float, yylex): For -Wtraditional, issue a - warning about non-traditional numeric constant suffixes. - - * cppexp.c (parse_number): Likewise. - - * invoke.texi: (-Wtraditional): Document new behavior. - -Thu Aug 10 00:11:04 2000 Ovidiu Predescu - - * gthr-posix.h: Include auto-host.h. Conditionally include - . - * configure.in: Check for the header file. - * config.in: Added define for HAVE_SCHED_H. - -2000-08-09 Kaveh R. Ghazi - - * c-typeck.c (process_init_element): For -Wtraditional, warn about - initialization of unions. - - * invoke.texi (-Wtraditional): Document new behavior. - -2000-08-09 Zack Weinberg - - * configure.in (--enable-c-cpplib): Uncomment. Use AC_DEFINE - instead of extra_c_flags. - (--enable-c-mbchar): Use AC_DEFINE instead of extra_c_flags. - * configure: Regenerate. - * config.in: Regenerate. - - * cpperror.c (cpp_type2name): New function. - * cpplex.c (lex_line): If we issued an error for an invalid - preprocessing directive, discard that logical line. - * cpplib.c (do_line): Call a hook function if the current file - is renamed by #line. - (do_ident): Pass the contents of the string, not the entire - token, to the callback function. - * cpplib.h (CPP_LAST_PUNCTUATOR): New #define. - (cb.rename_file): New hook function. - (cb.ident): Adjust prototype. - (cpp_type2name): Prototype. - * cppmacro.c (dump_macro_args): Correct precedence lossage. - - * cppmain.c (cb_ident): Update for changed interface. - (cb_rename_file): New function. - (main): Set rename callback. - -2000-08-09 Alexandre Oliva - - * caller-save.c (mark_referenced_regs): Mark partially-overwritten - multi-word registers. - -2000-08-08 Joseph S. Myers - - * c-common.c (combine_strings, check_format_info): Refer to ISO C - or ISO C89 instead of ANSI C. - * c-decl.c (grokdeclarator, xref_tag, finish_struct, - build_enumerator, do_case): Likewise. - * c-lex.c (parse_float, yylex): Likewise. - * c-parse.in: Likewise. - * c-typeck.c (common_type, build_array_ref, build_binary_op, - build_unary_op, pedantic_lvalue_warning, build_conditional_expr, - build_c_cast, convert_for_assignment, set_init_index, - set_init_label, c_expand_start_case): Likewise. - * toplev.c (documented_lang_options, display_help): Likewise. - -2000-08-08 Kazu Hirata - - * h8300.c: Fix formatting. - * h8300.h: Likewise. - * h8300.md: Likewise. - (movsi_h8300hs): Fix formatting of the resulting assembly code. - - * reload1.c: Fix formatting. - -2000-08-08 Rodney Brown - - * alpha/alpha.c (alpha_emit_xfloating_libcall): - Use GEN_CALL_VALUE define. - * alpha/alpha.md (untyped_call): Use GEN_CALL define. - * clipper/clipper.md (untyped_call): Likewise. - * dsp16xx/dsp16xx.md (untyped_call): Likewise. - * fx80/fx80.md (untyped_call): Likewise. - * mips/mips.md (untyped_call): Likewise. - * ns32k/ns32k.md (untyped_call): Likewise. - * pa/pa.md (untyped_call): Likewise. - * romp/romp.md (untyped_call): Likewise. - * sparc/sparc.md (untyped_call): Likewise. - -2000-08-08 Jason Eckhardt - - * config/i860/i860.c (singlemove_string): Do not generate assembler - pseudo instructions that must be expanded (that is, with signed - constants larger than 16 bits). - -2000-08-08 Richard Henderson - - * flow.c (life_analysis): Only turn off PROP_LOG_LINKS and - PROP_AUTOINC at -O0. Don't collect alias info at -O0. - (init_propagate_block_info): Don't kill memory stores at -O0. - (mark_set_1, mark_used_regs): Likewise. - -2000-08-08 David Edelsohn - - * rs6000.c (optimization_options): Decorate 'level' as - ATTRIBUTE_UNUSED. - (mask64_operand): Remove sign-extend thinko. - (rldic_operand): New function. - (load_multiple_operation): regno's are unsigned ints. - (store_multiple_operation): Likewise. - (lmw_operation): Likewise. - (stmw_operation): Likewise. - (includes_lshift_p): shift_mask is unsigned int. - (includes_lshift64_p): New function. - (addrs_ok_for_quad_peep): unsigned int reg1. - (print_operand): Consistently add "else" after - output_operand_lossage(). - (print_operand, case 'b'): Fold in case 'W'. - (print_operand, case 'W'): Print rldic MB value. - (output_epilogue): Update Objective-C language string. - (output_toc): unsigned HOST_WIDE_INT low, compare unsigned. - * rs6000.h (PREDICATE_CODES): Add rldic_operand. - * rs6000.md (ashldi3): Add rldic instruction. - (iordi3, xordi3): Remove redundant "else if CONST_DOUBLE". - (cmpsi_internal2, cmpdi_interal2): Use 'b' output template - modifier. - -2000-08-08 Richard Henderson - - * config/ia64/ia64-protos.h: Remove duplicates. Update - for massive code rearrangements. - * config/ia64/ia64.c (ia64_arpfs_regno): Remove. - (ia64_rp_regno, ia64_fp_regno, ia64_input_regs): Remove. - (ia64_local_regs, ia64_need_regstk): Remove. - (ar_ccv_reg_operand): New. - (ia64_gp_save_reg): New. - (struct ia64_frame_info): Combine most of the size elements; - add new gr save elements. - (find_gr_spill): New. - (next_scratch_gr_reg): New. - (mark_reg_gr_used_mask): New. - (ia64_compute_frame_size): Rewrite. Allocate special AR regs - to GR backing store regs when possible. - (ia64_initial_elimination_offset): New. - (ia64_rap_fp_offset): Remove. - (save_restore_insns): Remove. - (setup_spill_pointers): New. - (finish_spill_pointers): New. - (spill_restore_mem): New. - (do_spill, do_restore): New. - (ia64_expand_prologue): Rewrite to use them. - (ia64_expand_epilogue): Likewise. - (ia64_direct_return): Update for current_frame_info changes. - (ia64_function_prologue): Simplify .prologue emission. Emit - .spill when needed. - (ia64_setup_incoming_varargs): Don't ever emit rtl. - (ia64_dbx_register_number): New. - (ia64_initialize_trampoline): New. - (ia64_secondary_reload_class): Request GR_REGS for integer - arithmetic destined for FR_REGS. - (ia64_init_machine_status): Don't reset return_address_pointer_rtx. - (ia64_mark_machine_status): Mark ia64_gp_save. - (rws_access_regno): Rename from rws_access_reg; don't treat - predicates specially. - (rws_access_reg): New. Update all callers. - (rtx_needs_barrier): Remove dead unspecs. - (ia64_epilogue_uses): Mark ar.pfs and ar.unat live on exit. - (ia64_encode_section_info): Silence signed/unsigned warnings. - (spill_offset, sp_offset, spill_offset_emitted): Remove. - (tmp_reg, tmp_saved): Remove. - (process_set): Rewrite to expect complicated bits via - REG_FRAME_RELATED_EXPR. - (ia64_expand_fetch_and_op): Use emit_move_insn; be explicit - in the use of ar.ccv; never set RTX_UNCHANGING_P. - (ia64_expand_op_and_fetch): Likewise. - (ia64_expand_compare_and_swap): Likewise. - (ia64_expand_builtin): Likewise. - * config/ia64/ia64.h (AR_UNAT_REGNUM): New. - (FIRST_PSEUDO_REGISTER): Update. - (AR_M_REGNO_P): Update. - (FIXED_REGS): Don't mark three local registers as used. - (EXTRA_CC_MODES): New. - (SELECT_CC_MODE): New. - (HARD_REGNO_NREGS): Allow DImode in p0; handle CCImode. - (HARD_REGNO_MODE_OK): Disallow CCImode from non-predicates. - (FRAME_GROWS_DOWNWARD): Unset. - (STARTING_FRAME_OFFSET): Zero. - (ELIMINABLE_REGS): Eliminate from the soft to hard frame pointer. - (INITIAL_ELIMINATION_OFFSET): Defer to out of line function. - (HARD_FRAME_POINTER_REGNUM): New. - (CAN_DEBUG_WITHOUT_FP): Define. - (TRAMPOLINE_TEMPLATE): Remove. - (TRAMPOLINE_SIZE): Lower to 32. - (TRAMPOLINE_ALIGNMENT): Lower to 64. - (INITIALIZE_TRAMPOLINE): Defer to out of line function. - (PREDICATE_CODES): Update. - (struct machine_function): Add ia64_gp_save. - * config/ia64/ia64.md: Purge unused unspecs. - (movsi patterns): Allow moves to/from AR_M_REGS. - (movdi patterns): Allow moves to/from p0. - (call patterns): Move most setjmp hackery to ia64_gp_save_reg. - (gr_spill, gr_restore): Indicate ar.unat read/written. - (nonlocal_goto): Don't pass old frame_pointer. - (nonlocal_goto_receiver): Remove. - (exception_receiver): New. - (builtin_setjmp_setup): New. - (builtin_setjmp_receiver): New. - * config/ia64/lib1funcs.asm (__ia64_save_stack_nonlocal): Bundle. - (__ia64_nonlocal_goto): Bundle. Don't kill r7. - (__ia64_restore_stack_nonlocal): Likewise. - (__ia64_trampoline): New. - * config/ia64/sysv4.h (DBX_REGISTER_NUMBER): Defer to out of line - function. - * config/ia64/t-ia64 (LIB1ASMFUNCS): Add __trampoline. - -2000-08-08 Richard Henderson - - * frame.h (ia64_frame_state): Add my_psp. - * libgcc2.c (ia64_throw_helper): Add throw_sp argument. - (__throw): Pass it in. Don't clobber r7. - * config/ia64/frame-ia64.c (init_ia64_reg_loc): Mark inline. - (execute_one_ia64_descriptor) [mem_stack_v]: Sets psp.when - and nothing to do with sp. - (normalize_reg_loc): Use frame->my_psp. - (frame_translate): Handle frame-pointer-less functions. Set - spill_base correctly, in absence of being told. - (__build_ia64_frame_state): New sp argument. Fill in frame->my_sp. - (__ia64_backtrace_helper): New sp argument. Use - builtin_return_address instead of label addresses. - (print_record) [mem_stack_v]: No size member. - -2000-08-08 Richard Henderson - - * regclass.c (choose_hard_reg_mode): Iterate over all CC modes. - -2000-08-08 Richard Henderson - - * tm.texi (LOCAL_REGNO): Document. - * flow.c (LOCAL_REGNO, EPILOGUE_USES): Provide default. - (mark_regs_live_at_end): Don't mark LOCAL_REGNO registers. - * reload1.c (reload): Likewise when considering nonlocal labels. - - * config/ia64/ia64.h (LOCAL_REGNO): New. - * config/sparc/sparc.h (LOCAL_REGNO): New. - -2000-08-08 Joseph S. Myers - - * c-lex.c (yylex): Don't allow integer suffixes 'LUL', 'Ll', 'lL'. - -2000-08-07 Nick Clifton - - * config/mips/mips.c: Fix compile time warning messages. - * config/mips/mips-protos.h: Add prototype for equality_op. - - * mn10300.h (TARGET_SWITCHES): Document `-mam33'. - -2000-08-07 Graham Stott - - * mn10300.md: Use nonimmediate_operand instead of general_operand - on output operands. - - * mn10300.h (PREFERRED_RELOAD_CLASS): Limit memory reloads. - -2000-08-07 Alexandre Oliva - - * sh.h (EXTRA_CONSTRAINT_Q): Adjust to GNU Coding Standards. - * sh.c (expand_block_move): Break long lines. - (expand_ashiftrt, fpscr_set_from_mem): Likewise. - * sh.md (mulsi3): Likewise. - (movdi): Adjust spacing. - -2000-08-07 Richard Henderson - - * expmed.c (store_bit_field): Don't require MEM_IN_STRUCT_P. - * expr.c (emit_group_store): Don't set it. - -2000-08-07 Kazu Hirata - - * invoke.texi (Options for Debugging Your Program or GCC): Remove - duplicate entries for 'w' and 'z'. - - * flow.c: Fix a comment typo. - -Sun Aug 6 23:47:35 2000 Ovidiu Predescu - - * c-parse.in: Changed the language string for Objective-C to "GNU - Objective-C". - -Sun Aug 6 11:54:03 2000 Ovidiu Predescu - - * gthr-posix.h: Integrated Chris Ball's changes - to improve the Posix thread support for Objective-C. - -2000-08-06 Joseph S. Myers - - * c-common.h (enum c_tree_index): Add CTI_SIGNED_SIZE_TYPE and - CTI_UNSIGNED_PTRDIFF_TYPE. - (signed_size_type_node): Define. - (unsigned_ptrdiff_type_node): Define. - * c-decl.c (init_decl_processing): Create the - signed_size_type_node and unsigned_ptrdiff_type_node types. - * c-common.c (T_SC): Define. - (T_SST): Define. - (T_UPD): Define. - (print_char_table): Use T_SST for %zd, %zi, %zn. Use T_UPD for - %to, %tu, %tx, %tX. Allow %hhn (T_SC). Add "c" to the flags for - %s and %p. - (scan_char_table): Use T_SC for %hhd, %hhi, %hhn. Use T_SST for - %zd, %zi, %zn. Use T_UPD for %to, %tu, %tx, %tX. Add "c" to the - flags for %c, %s and %[. - (check_format_info): Only allow leniency for signedness of targets - of character pointers (when pedantic) for formats flagged with - "c", so for strings but not for %hh formats. When pedantic, don't - allow character pointers to substitute for void pointers if a - second level of indirection is present. - -2000-08-06 Kazu Hirata - - * invoke.texi (Options for Debugging Your Program or GCC): Update - the names of dump files. - - * h8300.c (dosize): Rearrange code for conciseness. - (split_adds_subs): Likewise. - - * loop.c: Fix formatting. - - * dwarf2out.c: Fix formatting. - - * tm.texi (FUNCTION_ARG_PARTIAL_NREGS): Fix a typo. - - * expr.c: Fix formatting. - -2000-08-06 Kaveh R. Ghazi - - * rs6000.c (rs6000_maybe_dead): Prototype. - -2000-08-06 Richard Henderson - - * stmt.c (expand_goto): Do virtual_stack_vars_rtx replacement for - HAVE_nonlocal_goto as well. - * config/i960/i960.md (nonlocal_goto): Don't do it here. - * config/pj/pj.md (nonlocal_goto): Likewise. - -2000-08-07 Michael Hayes - - * loop.c (try_swap_copy_prop): New function. - (load_mems): Rename copies to load_copies and add new regset - store_copies. Check for sets of shadow registers and mark - in store_copies. Call try_swap_copy_prop for registers - marked in store_copies. - -Sun Aug 6 00:54:42 2000 Ovidiu Predescu - - * objc/objc-act.c: New command line option -fconstant-string-class - to allow specifying a user defined constant string class, - different from NXConstantString. - - * toplev.c: Moved the Objective-C specific options to - objc/lang-options.h. - - * objc/lang-options.h: Moved the Objective-C specific options from - toplev.c. Added -fconstant-string-class. - -2000-08-05 Chris Demetriou - - * mips/elf.h (CTOR_LIST_BEGIN, CTOR_LIST_END, - DTOR_LIST_BEGIN, DTOR_LIST_END): change type of - __CTOR_LIST__ from func_ptr array to just func_ptr, to - avoid extra alignment imposed on arrays. - * mips/elf64.h (CTOR_LIST_BEGIN, CTOR_LIST_END, - DTOR_LIST_BEGIN, DTOR_LIST_END): Likewise. - - * mips.h: Clean up comments and spacing near MASKs. - (TARGET_UNIX_ASM): Delete. - (MASK_MIPS16, MASK_NO_CHECK_ZERO_DIV, MASK_CHECK_RANGE_DIV, - MASK_UNINIT_CONST_IN_RODATA): Change values to make mask - values contiguous. - -2000-08-05 Joseph S. Myers - - * c-common.c (print_char_table): Add entries for the X/Open ' - format flag (print decimals with locale's thousands grouping - character). Make %C expect wint_t. - (check_format_info): If pedantic, warn when the %n$ operand - number form is used. Allow for the ' flag; warn about it if - pedantic. - -2000-08-05 Zack Weinberg - - * i386.h (FUNCTION_OK_FOR_SIBCALL): Not OK if DECL's return - type is a float mode, cfun->decl's return type is not, and - TARGET_FLOAT_RETURNS_IN_80387. - -2000-08-04 Andreas Schwab - - * cppmain.c (cb_def_pragma): Skip the first two tokens from the - token list, which are always `#' and `pragma'. - -2000-08-04 Zack Weinberg - - * tree.c (tree_expr_nonnegative_p): Move to... - * fold-const.c: ... here. Also handle BIND_EXPR and RTL_EXPR. - (rtl_expr_nonnegative_p): New. - * tree.h: Add prototype for rtl_expr_nonnegative_p. - - * real.h (CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH, CONST_DOUBLE_MEM, - CONST_DOUBLE_CHAIN: Move to... - * rtl.h: ...here. Use XCINT/XCEXP. - - * Makefile.in: Remove toplev.o from OBJS. Add rule to make - libbackend.a; add libbackend.a to STAGESTUFF. Add BACKEND - variable. Use BACKEND when linking cc1, not OBJS. Add BACKEND - to VOL_FILES. - - * objc/Make-lang.in (cc1obj): Link with $(BACKEND). - -2000-08-05 Herman A.J. ten Brugge - - * config/c4x/c4x.md (return_indirect_internal): New. - * config/c4x/c4x.c (c4x_expand_epilogue): Use it. - -2000-08-04 Joseph S. Myers - - * c-common.c (time_char_table): Mark up formats added in C99 and - make other corrections. %D and %g were added in C99. %Og is an - extension. %EX is permitted. %R, %T, %n, %r, %t were added in - C99. %e was added in C99. %Oj is an extension. %G and %z are in - C99 rather than GNU extensions, but %OG and %Oz are extensions. - %h was added in C99. %C was added in C99. %OY and %OC are - extensions. Add the C99 format %F. - (check_format_info): If pedantic and not in C99 mode, warn for C99 - formats, %E and %O. - -Fri Aug 4 23:01:58 2000 J"orn Rennecke - - * function.c (schedule_fixup_var_refs): New function, broken out - of put_reg_into_stack. - (put_reg_into_stack): Use it. - (put_var_into_stack): In CONCAT case, fixup up references for - components only after fixing up references to the whole concat. - -2000-08-04 Rodney Brown - - * alias.c (mark_constant_function): Use INSN_P. - (init_alias_analysis): Likewise. - * combine.c (combine_instructions): Use INSN_P. - (can_combine_p): Likewise. - (try_combine): Likewise. - (distribute_notes): Likewise. - (distribute_links): Likewise. - * cse.c (cse_around_loop): Use INSN_P. - (invalidate_skipped_block): Likewise. - (cse_set_around_loop): Likewise. - (cse_end_of_basic_block): Likewise. - (delete_trivially_dead_insns): Likewise. - * emit-rtl.c (unshare_all_rtl_again): Use INSN_P. - (unshare_all_rtl_1): Likewise. - (next_cc0_user): Likewise. - (try_split make_insn_raw): Likewise. - (remove_unnecessary_notes): Likewise. - * final.c (shorten_branches): Use INSN_P. - (leaf_renumber_regs): Likewise. - (leaf_renumber_regs_insn): Likewise. - * flow.c (find_label_refs): Use INSN_P. - (verify_wide_reg): Likewise. - (notice_stack_pointer_modification): Likewise. - (count_or_remove_death_notes): Likewise. - (verify_flow_info): Likewise. - (clear_log_links): Likewise. - * function.c (fixup_var_refs_insns): Use INSN_P. - (compute_insns_for_mem): Likewise. - * gcse.c (alloc_gcse_mem): Use INSN_P. - (compute_sets): Likewise. - (compute_hash_table): Likewise. - (classic_gcse): Likewise. - (cprop): Likewise. - (insert_insn_end_bb): Likewise. - (delete_null_pointer_checks_1): Likewise. - * global.c (expand_preferences): Use INSN_P. - (build_insn_chain): Likewise. - * graph.c (node_data): Use INSN_P. - * haifa-sched.c (priority): Use INSN_P. - (rm_line_notes): Likewise. - (rm_other_notes): Likewise. - (find_insn_reg_weight): Likewise. - (init_target_units): Likewise. - (schedule_block): Likewise. - (compute_block_forward_dependences): Likewise. - (debug_dependencies): Likewise. - (set_priorities): Likewise. - * integrate.c (function_cannot_inline_p): Use INSN_P. - (save_parm_insns): Likewise. - (copy_insn_list): Likewise. - * jump.c (mark_all_labels): Use INSN_P. - (never_reached_warning): Likewise. - * lcm.c (optimize_mode_switching): Use INSN_P. - * local-alloc.c (validate_equiv_mem): Use INSN_P. - (memref_used_between_p): Likewise. - (update_equiv_regs): Likewise. - (block_alloc): Likewise. - (no_conflict_p): Likewise. - * loop.c (scan_loop): Use INSN_P. - (find_and_verify_loops): Likewise. - (count_loop_regs_set): Likewise. - (loop_reg_used_before_p): Likewise. - (strength_reduce): Likewise. - (recombine_givs): Likewise. - (check_dbra_loop): Likewise. - (load_mems): Likewise. - (try_copy_prop): Likewise. - * print-rtl.c (print_rtx): Use INSN_P. - * recog.c (find_single_use): Use INSN_P. - * reg-stack.c (stack_regs_mentioned): Use INSN_P. - (next_flags_user): Likewise. - (swap_rtx_condition): Likewise. - * regmove.c (mark_flags_life_zones): Use INSN_P. - (optimize_reg_copy_1): Likewise. - (optimize_reg_copy_2): Likewise. - (optimize_reg_copy_3): Likewise. - (reg_is_remote_constant_p): Likewise. - (fixup_match_2): Likewise. - (regmove_optimize): Likewise. - (fixup_match_1): Likewise. - * regrename.c (build_def_use): Use INSN_P. - (replace_reg_in_block): Likewise. - (consider_use): Likewise. - * reload.c (find_equiv_reg): Use INSN_P. - * reload1.c (reload): Use INSN_P. - (maybe_fix_stack_asms): Likewise. - (calculate_needs_all_insns): Likewise. - (reload_as_needed): Likewise. - (emit_output_reload_insns): Likewise. - (delete_address_reloads_1): Likewise. - (reload_cse_regs_1): Likewise. - (reload_combine): Likewise. - (reload_cse_move2add): Likewise. - * reorg.c (redundant_insn): Use INSN_P. - (dbr_schedule): Likewise. - * resource.c (find_dead_or_set_registers): Use INSN_P. - (mark_target_live_regs): Likewise. - * rtlanal.c (reg_used_between_p): Use INSN_P. - (reg_referenced_between_p): Likewise. - (reg_set_between_p): Likewise. - (reg_set_p): Likewise. - (single_set): Likewise. - (multiple_sets): Likewise. - (find_last_value): Likewise. - (reg_set_last): Likewise. - (find_reg_note): Likewise. - (find_regno_note): Likewise. - * sibcall.c (sequence_uses_addressof): Use INSN_P. - * simplify-rtx.c (cselib_process_insn): Use INSN_P. - * ssa.c (find_evaluations): Use INSN_P. - (rename_block): Likewise. - (rename_equivalent_regs): Likewise. - * unroll.c (loop_find_equiv_value): Use INSN_P. - (set_dominates_use): Likewise. - * varasm.c (mark_constant_pool): Use INSN_P. - (mark_constants): Likewise. - * config/alpha/alpha.c (alpha_does_function_need_gp): Use INSN_P. - (alphaev4_next_group): Likewise. - (alphaev5_next_group): Likewise. - * config/c4x/c4x.c (c4x_process_after_reload): Use INSN_P. - (c4x_rptb_rpts_p): Likewise. - * config/mips/mips.c (mips16_optimize_gp): Use INSN_P. - * config/rs6000/rs6000.c (uses_TOC): Use INSN_P. - (rs6000_adjust_priority): Likewise. - * config/sh/sh.c (sh_loop_align): Use INSN_P. - (machine_dependent_reorg): Likewise. - (split_branches): Likewise. - * config/tahoe/tahoe.c (tahoe_cmp_check): Use INSN_P. - -Fri Aug 4 11:43:49 2000 John Wehle (john@feith.com) - - * combine.c (recog_for_combine): Remove the old notes - prior to attempting to recognize the new pattern. - (distribute_notes): Ignore REG_NONNEG notes. - -2000-08-04 Chandrakala Chavva - - * varasm.c (output_constructor): Add .align 0 for packed vars. - -2000-08-04 J. David Anglin - - * configure.in: Use default thread_file even when enable_threads is - yes or dce because hpux10.20 pa port uses MULTILIB implementation. - * configure: Rebuilt. - - * gthr-dce.h (__gthread_objc_condition_allocate): Fix typo. - -2000-08-04 Donn Terry (donnte@microsoft.com) - - * prefix.c (translate_name): Don't strip trailing DIR_SEPARATOR. - -2000-08-04 Mark Elbrecht - - * i386/x-djgpp: Delete code that conditionally modifies target_alias. - Delete code that conditionally modifies 'version'. - Delete X_CPPFLAGS. Add comment for SYSTEM_HEADER_DIR. - * i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): New macro. - * gcc.c (main): Use it. - * config/i386/xm-djgpp.h (UPDATE_PATH_HOST_CANONICALIZE): New macro. - * prefix.c (update_path): Use it. - * i386/djgpp.h (STANDARD_INCLUDE_DIR): Define. - (MD_EXEC_PREFIX): Set to '/dev/env/DJDIR/bin/'. - (ASM_OUTPUT_SECTION_NAME): Add code attribute to sections containing - code. - (SUPPORTS_WEAK, SUPPORTS_ONE_ONLY): Default to true. - (SUBTARGET_SWITCHES): Adjust. - (WCHAR_UNSIGNED, WCHAR_TYPE_SIZE, WCHAR_TYPE): Undefine before - defining. - (WINT_TYPE, SIZE_TYPE, PTRDIFF_TYPE): Define. - -2000-08-04 Joseph S. Myers - - * c-common.h (flag_isoc94): Declare. - * c-decl.c (flag_isoc94): Define. - (c_decode_option): Set flag_isoc94 as appropriate. - * c-common.c (T_PD, T_IM, T_UIM): Define. - (format_char_info): Add tlen and jlen. - (print_char_table): Add entries for %t and %j. Allow %zn. Allow - %F. Allow %lf. - (scan_char_table): Add entries for %t and %j. Allow %F. Allow - %l[. - (time_char_table): Add NULL entries for %t and %j. - (check_format_info): Allow for %t and %j. Warn for %F if pedantic - and not C99. Warn for %lc, %ls and %l[ if pedantic and not C94. - Warn for printf %lf if pedantic and not C99. Don't warn for empty - precision. Allow precision argument to be unsigned int. If - pedantic, warn for %p passed an argument not a pointer to possibly - qualified void or a possibly qualified character type, and for - pointer targets of the wrong sign, except for character pointers. - -2000-08-04 Joseph S. Myers - - * ginclude/stddef.h: Don't declare wint_t unless __need_wint_t. - * c-common.h (enum c_tree_index): Add CTI_WINT_TYPE. - (wint_type_node): Define. - * c-decl.c (WINT_TYPE): Define. - (init_decl_processing): Create the wint_type_node type. - * c-common.c (T_WI): Define. - (print_char_table): Use T_WI for %lc format. - -2000-08-04 Bruce Korb - - * fixinc/: Verified that the MSDOS patch does not break - the UNIX functionality and applied the next three patches - from July: - -2000-07-28 Eli Zaretskii - - * fixinc/fixfixes.c (main) [__MSDOS__]: Avoid overwriting the - output file with the temporary one by appending ".X" to generate - the temporary fuile's name. If the output file already has an - extension, replace it with ".X". - - * fixinc/fixincl.c (fix_with_system) [__MSDOS__]: Use $ORIGDIR, - not $DESTDIR, to find applyfix. Use sprintf instead of snprintf; - reallocate the command buffer while copying the command-line - argument. Redirect the output directly to the temporary file, - instead of going through another temporary file. - (process): Close the temporary file before unlinking it. - (machine_matches) [__MSDOS__]: If the machine doesn't match, set - the FD_SKIP_TEST flag. Pay attention to the FD_MACH_IFNOT flag. - (run_compiles): Pass p_fixd argument to machine_matches, as it - expects. - - * fixinc/fixincl.sh: Export ORIGDIR. If $DJDIR is set in the - environment, assume there are no symlinks in the include - directory. When cleaning up the DONE files, look for them - case-insensitively. Don't try to remove symlinks if they aren't - there. - - * fixinc/fixlib.c (make_raw_shell_str): Accept new argument smax; - all callers changed. Declare pz "const char *", to avoid compiler - warnings. - - * fixinc/fixlib.h (ENV_TABLE): Get ORIGDIR from the environment. - Change prototype of make_raw_shell_str. - -2000-07-27 Eli Zaretskii - - * fixinc/fixincl.c [__MSDOS__]: Don't include "server.h". - (initialize) [__MSDOS__]: Use tempnam. - (initialize): Don't use SIGPIPE if it is not defined. - - * fixinc/fixfixes.c (main) [__MSDOS__]: freopen for stdout should - return stdout. - -2000-07-25 Bruce Korb - - * fixinc/fix*.[ch]: substantially reworked to make it possible - to run this program without using fork(2) or pipe(2) (i.e. in - a DOS environment). - -2000-08-04 Joseph S. Myers - - * cppdefault.h (WINT_TYPE): Define. - * cppinit.c (builtin_array): Define __WINT_TYPE__. - * tradcpp.c (initialize_builtins): Define __WINT_TYPE__. - * tm.texi (NO_BUILTIN_WINT_TYPE, WINT_TYPE): Document. - -Fri Aug 4 06:53:46 2000 Clinton Popetz - - * (mips_legitimate_address_p): Don't allow register+offset - if the offset is large and negative, and we are compiling - for 64 bit registers. - -2000-08-04 Herman A.J. ten Brugge - - * gencodes.c (main): Define CODE_FOR_nothing as the last possible - insn_code_number + 1. - -2000-08-04 Kazu Hirata - - * h8300.c (function_prologue): Rearrange code for conciseness. - (function_epilogue): Likewise. - * h8300.h (OK_FOR_U): Fix formatting. - - * cse.c: Fix a comment typo. Fix formatting. - -2000-08-03 Richard Henderson - - * config/i386/i386.md (return_indirect_internal): New. - * config/i386/i386.c (ix86_expand_epilogue): Use it. - -2000-08-03 Zack Weinberg - - * cpplex.c (parse_name): Might have to glue a CPP_OTHER token - before the name. - (lex_line): Glue @ onto the beginning of identifiers and - string constants, in Objective-C mode. - (output_token, spell_token): Handle CPP_OSTRING. - (can_paste, maybe_paste_with_next): Handle pasting @ onto the - beginning of a NAME or a STRING, in objc mode. - - * cpplib.c (get_define_node): Do not permit identifiers that - begin with @ to be #defined. - * cppmacro.c (CAN_PASTE_AFTER): Add CPP_OTHER. - * cpplib.h (TTYPE_TABLE): Add CPP_OSTRING. - - * c-lang.c, objc/objc-act.c (build_objc_string): Delete. - * c-tree.h (build_objc_string): Delete prototype. - * objc/objc-tree.def: Delete OBJC_STRING_CST. - * c-lex.c (yylex): Use build_string for all three kinds of strings. - - * c-parse.in, objc/objc-act.c: Update commentary. - -2000-08-03 Mark Mitchell - - * extend.texi: Fix typo in last change. - - * extend.texi: Add commentary on statement-expressions and their - interactions with C++. - -2000-08-03 Nick Clifton - - * dwarf2.h (DW_LANG_Java): Change value to 0x000b. - * dwarf.h (LANG_JAVA): Change value to 0x000b. - -2000-08-03 Anthony Green - - * dwarf2out.c (gen_compile_unit_die): Add java language support. - (add_bound_info): Check for java language. - (is_java): New function. - * dwarfout.c (output_compile_unit_die): Ditto. - * dwarf.h (dwarf_source_language): Add java source language type. - * dwarf2.h (dwarf_source_language): Ditto. - -Thu Aug 3 20:32:25 MET DST 2000 Jan Hubicka - - * reg-stack.c (subst_stack_regs_pat): Use replace_reg to swap - operands. - - * i386.c (ix86_expand_branch): Mode of comparison in - IF_THEN_ELSE is VOIDmode. - -Thu Aug 3 10:05:53 2000 Akiko Matsushita - - * gengenrtl.c, rtl.c: Avoid #elif. - -2000-08-03 Michael Poole - - * tm.texi (Register Classes): Clarify order of sub-initializers - in REG_CLASS_CONTENTS. - -Thu Aug 3 15:53:03 2000 J"orn Rennecke - - From SAITOH Masanobu: - * sh.h (ASM_OUTPUT_REG_PUSH): Fix syntax. - -2000-08-03 David Billinghurst - - * config/i386/cygwin.h: Remove -remap from CPP_SPEC since this option - is not supported by tradcpp and isn't actually needed for cygwin. - -2000-08-03 Kazu Hirata - - * h8300.c: Fix a comment typo. - * h8300.h (OK_FOR_U): Accept a 32-bit constant address on H8S. - - * jump.c: Fix formatting. - - * toplev.c: Fix formatting. - -Thu Aug 3 01:05:32 2000 Jeffrey A Law (law@cygnus.com) - - * flow.c (find_auto_inc): Verify that we've got a REG before - peeking at its regno. Fail, don't abort if we can't find - the increment of the desired register. - - * pa.md (shadd height reduction patterns/splitters): Remove. - -2000-08-02 Jim Wilson - - * config/ia64/ia64-protos.h (flag_ssa): Declare. - * config/ia64/ia64.md (movti_internal, movti_internal+1): New. - -2000-08-02 Mark Mitchell - - * dce.c: Remove all uses of assert. - * dwarf2out.c: Likewise. - * dwarfout.c: Likewise. - * ssa.c: Likewise. - -2000-08-02 Zack Weinberg - - * gcc.h (lang_specific_driver): Constify second argument. - * gcc.c (translate_options, process_command, main): Likewise. - Constify variables to match. Cast second argument to - pexecute. - - * cppspec.c, gccspec.c: Adjust type of second argument to - lang_specific_driver, and update code as necessary. - -2000-08-02 Jakub Jelinek - - * loop.c (scan_loop): Ensure update_end label does not - go away until reg_scan_update is run. - -2000-08-02 Zack Weinberg - - * c-common.h: Prototype min_precision and c_build_qualified_type here... - * c-tree.h: ... not here. - * errors.h: Prototype fancy_abort. - - * emit-rtl.c (gen_lowpart_common): Move variable 'c' into - HOST_BITS_PER_WIDE_INT == 64 ifdef block. - * regrename.c (regrename_optimize): Make control flow explicit. - (replace_reg_in_block): Initialize reg_use to 0. - - * i386.c (legitimate_address_p): Rename error label to - report_error to avoid namespace clash. - -2000-08-02 Kazu Hirata - - * fold-const.c: Fix formatting. - -Wed Aug 2 16:26:15 MET DST 2000 Jan Hubicka - - * i386.c (legitimate_address_p): Accept other bases than - pic_offset_table_rtx for GOTOFF constructs. - -Wed Aug 2 15:59:34 MET DST 2000 Jan Hubicka - - * i386.md (shift to lea splitter): Use const_int_operand. - -2000-08-02 Zack Weinberg - - * cppexp.c, cppinit.c, cpplex.c, cpplib.c, cppmacro.c, - cppspec.c: Do not use 'legal' or 'illegal' in error messages - and comments. - - * cppmain.c (cb_define, cb_undef): Don't generate any output - if not done_initializing. - * cpplex.c (maybe_paste_with_next): When the token after a ## - is an omitted rest argument, only delete the token before it - if that token is a comma. Do not warn about bogus token - pastes for , ## rest_arg. - - * cpp.texi: Update. - * cpp.1: Regenerate. - -2000-08-02 Fred Fish - - * config/i386/beos-elf.h (STARTFILE_SPEC): Add i386-mcount.o - when user gives -p option. Add init_term_dyn.o for BeOS 5.0 - and later. - - * config/i386/beos-elf.h (INCLUDE_DEFAULTS): Add additional - Be directories to search path. - - Remove support for __declspec(dllimport) and __declspec(dllexport). - This is leftover cruft from the earlier BeOS gcc port when BeOS - used Microsoft's PE object file format. - * configure.in (i*86-*-beoself): Remove extra_objs=winnt.o. - * config/i386/t-beos (winnt.o): Remove Makefile frag. - * config/i386/beos-elf.h (TARGET_NOP_FUN_DLLIMPORT): Remove. - (VALID_MACHINE_DECL_ATTRIBUTE): Remove. - (VALID_MACHINE_TYPE_ATTRIBUTE): Remove. - (MERGE_MACHINE_DECL_ATTRIBUTES): Remove. - (REDO_SECTION_INFO_P): Remove. - (ASM_EXPORT_DECL): Remove. - (ASM_DECLARE_FUNCTION_NAME): Remove. - (ASM_DECLARE_OBJECT_NAME): Remove. - (ASM_OUTPUT_ALIGNED_COMMON): Remove. - (ASM_OUTPUT_ALIGNED_DECL_COMMON): Remove. - (ASM_OUTPUT_ALIGNED_LOCAL): Remove. - (STRIP_NAME_ENCODING): Remove. - - Remove support for obsolete version of BeOS that is no longer - supported by Be. - * configure.in (i*86-*-beospe*): Remove. - * config/i386/beos-pe.h: Remove. - -2000-08-01 Jeffrey Oldham - Mark Mitchell - - * Makefile.in (OBJS): Added dce.o. - (ssa.o): Updated target to include ssa.h. - (flow.o): Likewise. - (toplev.o): Likewise. - (dce.o): Created target. - * basic-block.h: Added comments. - (INVALID_BLOCK): Added definition. - (connect_infinite_loops_to_exit): Added declaration. - Moved SSA declarations to ssa.h. - * flow.c: Added inclusion of ssa.h. - (struct depth_first_search_dsS, depth_first_search_ds): - Added definitions. - (compute_immediate_postdominators): Added definition. - (connect_infinite_loops_to_exit): Likewise. - (flow_dfs_compute_reverse_init): Likewise. - (flow_dfs_compute_reverse_add_bb): Likewise. - (flow_dfs_compute_reverse_execute): Likewise. - (flow_dfs_compute_reverse_finish): Likewise. - * rtl.h (rtx/in_struct): Added use to determine insn necessity. - (LABEL_P): Added definition. - (JUMP_P): Likewise. - (NOTE_P): Likewise. - (BARRIER_P): Likewise. - (JUMP_TABLE_DATA_P): Likewise. - (INSN_DEAD_CODE_P): Likewise. - * ssa.c: Replaced inclusions with ssa.h inclusion. - (CONVERT_HARD_REGISTER_TO_SSA_P): Moved to ssa.h. - (rename_registers): Removed unnecessary variables. - * ssa.h: Created by moving declarations from ssa.c and - basic-block.h. - * timevar.def: Defined TV_DEAD_CODE_ELIM. - * toplev.c: Added ssa.h inclusion. - (dump_file_index): Added DFI_dce. - (dump_file): Added "dce" entry. - Defined flag_ssa. - (f_options): Added dce entry. - * invoke.texi: Document -fdce. Emphasize experimental status of - -fssa. - * dce.c: New file. - -2000-08-01 Zack Weinberg - - * cpperror.c (v_message): Split into _cpp_begin_message and - v_message macro. All callers updated. - (_cpp_begin_message): Do inhibit_errors/inhibit_warnings - checks here. - - * cppfiles.c (cpp_syshdr_flags): New function. - (read_include_file): Don't call cpp_output_tokens. Call - enter_file hook. - * cppinit.c (dump_macros_helper): Moved to cppmain.c. - (cpp_reader_init): Don't initialize token_buffer. Call - _cpp_init_internal_pragmas. - (cpp_cleanup): Don't clear token_buffer. - (cpp_start_read): Don't worry about output from -D processing. - Don't call cpp_output_tokens. - (cpp_finish): Don't dump macros here. Don't call - cpp_output_tokens. - * cppmacro.c (_cpp_dump_definition): Rename - cpp_dump_definition. Write directly to a FILE *. - (dump_funlike_macro): Delete. - (dump_macro_args): New. - - * cpplex.c (TOKEN_LEN): Convert to inline function. - (_cpp_grow_token_buffer, safe_fwrite, cpp_output_tokens, - cpp_scan_line, _cpp_dump_list): Delete. - (cpp_printf, cpp_output_list): New. - (output_line_command): Don't worry about entering or leaving files. - (cpp_scan_buffer): Just output each token as we hit it. - (process_directive): Don't call cpp_output_tokens. - (_cpp_glue_header_name): Don't use token_buffer. - (output_token, dump_param_spelling): Write directly to a FILE *. - - * cpplib.c (pass_thru_directive, dump_macro_name, - pragma_dispatch, do_pragma_gcc): Delete. - (do_define, do_undef, parse_include, do_line, do_ident, do_pragma, - do_pragma_poison, cpp_pop_buffer): Call the appropriate hook - functions. - (do_error, do_warning, pragma_dependency): Call - _cpp_begin_message, then cpp_output_list. - (cpp_register_pragma, cpp_register_pragma_space, - _cpp_init_internal_pragmas): New. - (do_pragma): Walk the pragmas table here. - (do_pragma_once, do_pragma_poison, do_pragma_system_header, - do_pragma_dependency): Return void. - (do_pragma_implementation): Moved to cppmain.c. - - * cpplib.h: Update prototypes. - (struct cpp_reader): Remove printer, token_buffer, - token_buffer_size, and limit. Add struct cb, and pragmas. - (struct cpp_printer): Remove last_id and written. - (CPP_WRITTEN, CPP_PWRITTEN, CPP_SET_WRITTEN, - CPP_ADJUST_WRITTEN): Delete. - * cpphash.h: Update prototypes. - (ufputs): New wrapper. - - * cppmain.c (cb_define, cb_undef, cb_include, cb_ident, - cb_enter_file, cb_leave_file, cb_def_pragma): New functions. - (main): Set up callbacks. Register #pragma implementation. - Dump macros from here. - -2000-08-01 Geoff Keating - - * rtl.h (enum reg_note): Add REG_MAYBE_DEAD. - * rtl.c (reg_note_name): Add REG_MAYBE_DEAD. - * flow.c (propagate_one_insn): Allow deletion of prologue/epilogue - insns if they have a REG_MAYBE_DEAD note attached. - * config/rs6000/rs6000.c (rs6000_maybe_dead): New function. - (rs6000_emit_load_toc_table): TOC loads may go dead. - -2000-08-01 Jim Wilson - - * config/ia64/ia64.c (ia64_function_arg): Fix last change. Verify - type exists before using it. Use number of words as alignment - otherwise. - (ia64_function_arg_partial_nregs, ia64_function_arg_advance, - ia64_va_arg): Propagate ia64_function_args changes here. - -2000-08-01 Richard Henderson - - * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Care for null DECL. - * config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise. - -2000-08-01 Bernd Schmidt - - From Joern Rennecke: - * sh.h (CPP_SPEC, TARGET_SWITCHES): Add m4-nofpu. - * sh.md (udivsi3, divsi3): Don't use libcalls that use the FPU - unless TARGET_SH3E is set. - * t-sh (MULTILIB_MATCHES): Add m2=m4-nofpu. - - * sh.md (ashlsi3_d, ashlsi3_k): Remove, replace with - (ashlsi3_std): New pattern. - (ashlsi3 expander): Use it for TARGET_SH3. - * sh.c (gen_ashift): Use it instead of ashlsi3_k. - -Tue Aug 1 12:34:21 MET DST 2000 Jan Hubicka - - * loop.c (canonicalize_condition): Use destination, not source to - determine SET's mode. - -2000-07-31 Mark Mitchell - - * flow.c (clear_log_links): Fix typo. - -Mon Jul 31 22:19:24 2000 Jeffrey A Law (law@cygnus.com) - - * loop.c (check_dbra_loop): Make change from July 17, 2000 work - on targets which need more than one insn for a compare/cbranch - operation. - -2000-07-31 Jim Wilson - - * config/ia64/ia64.c (ia64_function_arg): Use alignment not size - when computing offset. - -Mon Jul 31 20:35:50 2000 Denis Chertykov - - * genpeep.c (main): Handle DEFINE_PEEPHOLE2. - -2000-07-31 Geoff Keating - - * flow.c (clear_log_links): Nuke global_live_at_start and - global_live_at_end data, since if the log_links stuff is invalid - so is global_live_at_*. - -2000-07-31 Richard Henderson - - * tm.texi (Addressing Modes): Clarify PRE/POST_MODIFY descriptions. - -2000-07-31 Jakub Jelinek - - * cpplex.c (_cpp_get_line): If index is 0, return line 0 col 0. - (_cpp_get_token): Don't macro expand a just pasted token if it - was pasted at no_expand_level. - -2000-07-31 Zack Weinberg - - * cppmacro.c (find_param, count_params, save_expansion): - Permit 'defined' as a macro parameter name. - -2000-07-31 Zack Weinberg - - * Makefile.in: Rename cpp to cpp0, tradcpp to tradcpp0, and - xcpp to cpp throughout. - (native): Remove unnecessary dependency on cpp. - - * gcc.c (trad_capable_cpp, C specs): Rename cpp to cpp, - tradcpp to tradcpp0. - (.i spec): Add missing output-file spec to cc1 command line. - * objc/lang-specs.h: Rename cpp to cpp0 and/or tradcpp to tradcpp0. - -2000-07-31 Zack Weinberg - - * c-decl.c (mesg_implicit_function_declaration): Init to -1. - (implicit_decl_warning): New function. - (implicitly_declare): Use it. - * c-typeck.c (build_external_ref): Use implicit_decl_warning - to complain about implicit decls of builtins. - - * c-lang.c (lang_init): Set mesg_implicit_function_declaration - based on pedantic && flag_isoc99, if not already set. - * c-tree.h: Declare mesg_implicit_function_declaration. - Prototype implicit_decl_warning. - -2000-07-30 Jeffrey D. Oldham - - * Makefile.in (ssa.o): Updated header files in dependences. - * basic-block.h: Added compute_immediate_postdominators declaration. - * config/i386/i386.h (CONVERT_HARD_REGISTER_TO_SSA_P): Added - definition. - * flow.c (compute_immediate_dominators): Updated comment. - (compute_immediate_postdominators): Added definition. - * rtl.h (HARD_REGISTER_P): Added definition. - * ssa.c: Include additional header files. - (assert): Added definition. - (ssa_rename_to_lookup): Added to reimplement ssa_rename_to to - include select hard registers. - (ssa_rename_to_insert): Likewise. - (ssa_rename_from_initialize): Likewise. - (ssa_rename_from_lookup): Likewise. - (original_register): Likewise. - (ssa_rename_from_insert): Added to reimplement ssa_rename_from to - include select hard reigsters. - (ssa_rename_from_traverse): Likewise. - (ssa_rename_from_free): Likewise. - (ssa_rename_from_print): Likewise. - (ssa_rename_from_print_1): Likewise. - (ssa_rename_from_hash_function): Likewise. - (ssa_rename_from_equal): Likewise. - (ssa_rename_from_delete): Likewise. - (simplify_to_immediate_dominators): Removed in favor of - flow.c:compute_immediate_dominators. - (find_evaluations_1): Modified to work with hard registers. - (insert_phi_node): Likewise. - (insert_phi_nodes): Likewise. - (struct rename_set_data): Updated prev_reg comment. - (create_delayed_rename): Modified to work with hard registers. - (RENAME_NO_RTX): Updated comment. - (apply_delayed_renames): Modified to work with hard registers. - (rename_insn_1): Likewise and added handling of CLOBBER rtls. - (rename_block): Updated to use revised ssa_rename_to interface. - (rename_registers): Updated to use revised ssa_rename_to and - ssa_rename_from interface. - (convert_to_ssa): Revised to use compute_immediate_dominators and - deal with hard registers. - (make_regs_equivalent_over_bad_edges): Modified to work with hard - registers. Added check for illegal unification of hard register. - (make_equivalent_phi_alternatives_equivalent): Modified to work - with hard registers. - (compute_conservative_reg_partition): Likewise. - (coalesce_if_unconflicting): Modified to work with hard registers - and check for conflicting hard registers. - (mark_phi_and_copy_regs): Revised loop to work only on pseudo - registers. - (rename_equivalent_regs_in_insn): Modified to work with hard - registers. - (record_canonical_element_1): Added definition. - (check_hard_regs_in_partition): Added definition. - (convert_from_ssa): Added data structure deallocation and check - for illegal hard register unification. - (conflict_hard_regs_p): Added definition. - * toplev.c (rest_of_compilation): Added comment. - -2000-07-31 Anthony Green - - * config/ia64/crtbegin.asm (__EH_FRAME_BEGIN__): Align correctly. - -2000-07-31 Jason McMullan - - * builtins.c (expand_builtin_apply): Don't defer pop during - argument setup. - -2000-07-31 Herman A.J. ten Brugge - - * calls.c (combine_pending_stack_adjustment_and_call): Only use - preferred_unit_stack_boundary when it is > 1. - -2000-07-31 Joseph S. Myers - - * c-common.c (init_function_format_info): Add C99 format functions - in C99 mode. - - * c-decl.c (get_parm_info): Don't treat 'const void', 'volatile - void' or 'register void' as being the special case of 'void' alone - in a parameter list. - - * c-typeck.c (build_c_cast): Change -Wcast-qual pedwarn for - discarding qualifiers into a plain warning. - -2000-07-31 Kazu Hirata - - * combine.c: Fix formatting. - - * h8300.md: Fix formatting. - - * local-alloc.c: Fix formatting. - - * h8300.c (get_shift_alg): Remove the variable alg. - (emit_a_shift): Rearrange code to improve readability. - - * h8300.md (movsi_h8300hs): Rearrange code to improve readability. - - * h8300.h (MODES_TIEABLE_P): Accept a combination of QImode and - HImode on all architectures and a combination of HImode and SImode - on H8/300H and H8S. - - * h8300.c (split_adds_subs): Rearrange code for conciseness. - -Mon Jul 31 12:27:55 MET DST 2000 Jan Hubicka - - * i386.md (addsi to lea splitter, ashlqi3_1_lea): Fix bugs - in my last checkin. - -Mon Jul 31 10:41:01 MET DST 2000 Jan Hubicka - - * recog.c (extract_insn): Set operand_mode according to - operand if match_operand is VOIDmode. - -Mon Jul 31 10:36:38 MET DST 2000 Jan Hubicka - - * recog.c (validate_replace_rtx_1): Do not abort for (nil) expression. - -2000-07-31 Geoff Keating - - * c-parse.in (extdefs): Call ggc_collect between external - definitions. - -2000-07-30 Michael Hayes - Richard Henderson - - * Makefile.in (OBJS): Add doloop.o. - * doloop.c: New file. - - * final.c (insn_current_reference_address): Return 0 before final. - * flags.h (flag_branch_on_count_reg): Fix typos in commentary. - * jump.c (any_uncondjump_p): Likewise. - * loop.c (indirect_jump_in_function): Make static. - (strength_reduce): Call doloop_optimize. - (insert_bct, instrument_loop_bct): Remove. - * loop.h (doloop_optimize): Prototype. - * recog.c (split_all_insns): Split all INSN_P. - * toplev.c (flag_branch_on_count_reg): Default on. - - * config/c4x/c4x.c (c4x_optimization_options): Don't set - flag_branch_on_count_reg. - * config/i386/i386.c (override_options): Likewise. - * config/rs6000/rs6000.c (optimization_options): Likewise. - - * config/i386/i386.md (decrement_and_branch_on_count): Remove. - (doloop_end): New. - (dbra_ge): Remove, as well as all it's splitters. - - * config/rs6000/rs6000.md (decrement_and_branch_on_count): Remove. - (doloop_end): New. - - * config/ia64/ia64-protos.h (ar_lc_reg_operand): Declare. - (ia64_register_move_cost): Declare. - * config/ia64/ia64.c (ar_lc_reg_operand): New. - (struct ia64_frame_info): Add ar_size. - (ia64_compute_frame_size): Set it. - (save_restore_insns): Save and restore ar.lc. - (ia64_register_move_cost): New, moved from header file. Handle - application registers. - (REG_AR_PFS, REG_AR_EC): Remove. Replace with AR_*_REGNUM numbers. - (emit_insn_group_barriers): Special case doloop_end_internal. - (ia64_epilogue_uses): Mark ar.lc live at end. - * config/ia64/ia64.h (AR_CCV_REGNUM, AR_LC_REGNUM): New registers. - (AR_EC_REGNUM, AR_PFS_REGNUM): New registers. - (FIRST_PSEUDO_REGISTER): Make room. - (AR_M_REGNO_P, AR_I_REGNO_P, AR_REGNO_P): New. - (FIXED_REGISTERS, CALL_USED_REGISTERS): Update. - (REG_ALLOC_ORDER): Update. - (HARD_REGNO_MODE_OK): Update. - (REGISTER_NAMES): Update. - (enum reg_class): Add AR_M_REGS and AR_I_REGS. - (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update. - (REGNO_REG_CLASS): Update. - (LEGITIMATE_ADDRESS_DISP): Displacement range is 9 bits, not 10. - (REGISTER_MOVE_COST): Move out of line. - (PREDICATE_CODES): Update. - * config/ia64/ia64.md (movdi patterns): Handle ar register classes. - (addsi3_plus1_alt, adddi3_plus1_alt): New. - (shladd_elim splitter): Allow constants in the predicate. - (doloop_end, doloop_end_internal): New. - -2000-07-30 Richard Henderson - - * genattrtab.c (struct insn_def): Add lineno member. - (struct insn_ent): Likewise. - (struct attr_desc): Likewise. - (struct delay_desc): Likewise. - (struct function_unit_op): Likewise. - (struct function_unit): Likewise. - (check_attr_value): Use message_with_line. - (check_defs): Likewise. - (expand_units): Likewise. - (check_attr_test): Take a lineno argument. - (gen_attr): Likewise. - (gen_insn): Likewise. - (gen_delay): Likewise. - (gen_unit): Likewise. - (main): Give it to them. - (convert_set_attr_alternative): Take an insn_def argument - instead of num_alt and insn_index. - (convert_set_attr): Likewise. - (write_test_expr): Protect INSN_ADDRESSES load - with INSN_ADDRESSES_SET_P. - -2000-07-30 Richard Henderson - - * flow.c (init_propagate_block_info): Use pc_set. - -Sun Jul 30 20:58:34 MET DST 2000 Jan Hubicka - - * i386.md (*lea_general_[123]) New insns and splits. - (addsi3 to lea splitter): Handle other modes too. - (shlsi3 to lea splitter): Likewise. - (addhi_1_lea, shlhi_1_lea): New patterns. - (addhi_1, shlhi_1): Conditionize by PARTIAL_REG_STALL. - -Sun Jul 30 20:51:25 MET DST 2000 Jan Hubicka - - * recog.c (general_operand, nonimmediate_operand): Accept - any mode for VOIDmode CONSTANT_P operands. - -Sun Jul 30 20:42:21 MET DST 2000 Jan Hubicka - - * gcse.c (try_replace_reg): Use validate_replace_rtx_subexp - instead of replace_rtx. - * recog.c (validate_replace_rtx_subexp): New function. - * recog.h (validate_replace_rtx_subexp): Declare. - -Sun Jul 30 20:38:26 MET DST 2000 Jan Hubicka - - * combine.c (simplify_set, make_extraction, make_compound_operation - make_field_assignment): Use full mask instead of GET_MODE_MASK (mode) - as force_to_mode argument. - -Sun Jul 30 20:30:41 MET DST 2000 Jan Hubicka - - * combine.c (if_then_else_cond): Be sure that mode fits in - HOST_WIDE_INT. - -Sun Jul 30 20:27:36 MET DST 2000 Jan Hubicka - - * combine.c (record_promoted_value): Allow bitsize of mode - to be equivalent to HOST_BITS_PER_WISE_INT. - -Sun Jul 30 20:25:21 MET DST 2000 Jan Hubicka - - * function.c (assign_stack_local_1, assign_stack_temp_for_type): - Do not call gen_mode_alignment when mode is BLKmode. - -Sun Jul 30 20:21:54 MET DST 2000 Jan Hubicka - - * loop.c (express_from_1): Fix call of simplify_gen_binary. - -Sun Jul 30 20:08:37 MET DST 2000 Jan Hubicka - - * simplify-rtx.c (simplify_relational_operation): Verify that mode == - VOIDmode implies both operands to be VOIDmode. - (simplify_ternary_operation): Compute properly the mode of comparison. - * combine.c (combine_simplify_rtx): Likewise. - -2000-07-25 Michael Hayes - - * basic-block.h (struct loops): New field rc_order. - * flow.c (flow_loops_cfg_dump): Dump rc_order if computed. - (flow_loops_free): Free rc_order. - (flow_depth_first_order_compute): New parameter rc_order. - (flow_loops_find): Allocate rc_order and swap usage with - dfs_order. - -2000-07-30 Herman A.J. ten Brugge - Michael Hayes - - * config/c4x/c4x.md (set_ldp_prologue): Add for RTL prologue/epilogue. - (push_st, push_dp, pop_st, pop_dp, popqi_unspec): Likewise. - (nodb_call, return_from_epilogue): Likewise. - (return_from_interrupt_epilogue, prologue, epilogue): Likewise. - * config/c4x/c4x.c (c4x_expand_prologue, c4x_expand_eplilogue): Add. - * config/c4x/c4x-protos.h (c4x_interrupt_function_p): Add. - (c4x_expand_prologue, c4x_expand_epilogue): Likewise. - (c4x_valid_type_attribute_p): Likewise. - * config/c4x/c4x.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Delete. - (FUNCTION_BLOCK_PROFILER_EXIT): Convert to emit RTL. - -2000-07-30 Michael Hayes - - * config/c4x/c4x.c (c4x_emit_move_sequence): Use loadqi_big_constant - and loadhi_big_constant if applicable. - * config/c4x/c4x.md (loadqi_big_constant, loadhi_big_constant): Tweak - and add new splitter.s - -2000-07-30 Michael Hayes - - * config/c4x/c4x.c (c4x_rptb_insert): Make more robust. - -2000-07-30 Michael Hayes - - * config/c4x/c4x.h (ASM_FORMAT_PRIVATE_NAME): Output $ in label. - -2000-07-30 Michael Hayes - - * config/c4x/c4x.h (IS_XXX_REGNO): Rewrite to avoid unsigned warnings. - -2000-07-30 Michael Hayes - - * config/c4x/libgcc.S (divqf3): Improve accuracy. - -2000-07-27 Mark Mitchell - - Put phi nodes after NOTE_INSN_BASIC_BLOCK. - * rtl.h (NOTE_INSN_BASIC_BLOCK_P): New macro. - * bb-reorder.c (get_next_bb_note): Use NOTE_INSN_BASIC_BLOCK_P. - (get_prev_bb_note): Likewise. - (remove_scope_notes): Likewise. - * flow.c (commit_one_edge_insertion): Likewise. - (merge_blocks_nomove): Likewise. - (verify_flow_info): Likewise. - * gcse.c (insert_insn_end_bb): Likewise. - * reg-stack.c (emit_swap_insn): Likewise. - * ssa.c (first_insn_after_basic_block_note): New function. - (insert_phi_node): Use it. - (rename_block): Likewise. - (eliminate_phi): Likewise. - (make_regs_equivalent_over_bad_edges): Likewise. - (make_equivalent_phi_alternatives_equivalent): Likewise. - (for_each_successor_phi): Likewise. - (convert_from_ssa): Modify phi-node deletion algorithm. - -2000-07-29 Andreas Jaeger - - * configure.in (mips*-*-linux*): Use mips*el to check for little - endian MIPS, add tmake_file. - - * config/mips/linux.h (TARGET_VERSION): Use GNU/Linux. - (SUBTARGET_CPP_SPEC): Default MIPS_ISA is 1. - Patches by Maciej W. Rozycki . - -2000-07-28 Richard Henderson - - * config/ia64/ia64.c (ia64_print_operand): Fix typos. - Sign extend mode size before negating. - -2000-07-28 Richard Henderson - - * emit-rtl.c (gen_lowpart_common): Add missing 'c' variable. - -2000-07-28 Bernd Schmidt - - * cse.c (canon_hash): Handle PRE_MODIFY/POST_MODIFY. - (cse_insn): Likewise. - (addr_affects_sp_p): Likewise. - * expr.c (move_by_pieces): Likewise. - (clear_by_pieces): Likewise. - * gcse.c (oprs_unchanged_p): Likewise. - * haifa-sched.c (sched_analyze_2): Likewise. - * recog.c (offsettable_address_p): Likewise. - * regclass.c (record_address_regs): Likewise. - * reload.c (find_reusable_reload): Likewise. - (push_reload): Likewise. - (operands_match_p): Likewise. - (decompose): Likewise. - (find_reloads_address_1): Likewise. - (find_inc_amount): Likewise. - * reload1.c (elimination_effects): Likewise. - * resource.c (mark_set_resources): Likewise. - * flow.c (attempt_auto_inc): New function; mostly broken out - of find_auto_inc. - (find_auto_inc): Split into two functions and enhanced to - generate POST_MODIFY. - * rtl.def (PRE_MODIFY, POST_MODIFY): Adjust comment. - * rtl.h (count_all_occurrences): Declare. - (HAVE_{PRE,POST}_MODIFY_{DISP,REG}): Provide default of 0 if not - defined. - * rtlanal.c (count_all_occurrences): New function. - * tm.texi (HAVE_POST_MODIFY_DISP, HAVE_PRE_MODIFY_DISP, - HAVE_POST_MODIFY_REG, HAVE_PRE_MODIFY_REG): Document. - - * config/ia64/ia64-protos.h (destination_operand): Declare. - * config/ia64/ia64.c (destination_operand): New function. - (ia64_print_operand): Handle POST_MODIFY. - (rtx_needs_barrier): Likewise. - * config/ia64/ia64.h (HAVE_POST_MODIFY_DISP): Define to 1. - (HAVE_POST_MODIFY_REG): Define to 1. - (MAX_REGS_PER_ADDRESS): Change to 2. - (GO_IF_LEGITIMATE_ADDRESS): Accept POST_MODIFY too. - (LEGITIMATE_ADDRESS_REG): New helper macro. - (LEGITIMATE_ADDRESS_DISP): Likewise. - (PREDICATE_CODES): Add entry for destination_operand. - * config/ia64/ia64.md (all mov patterns): Use destination_operand - predicate for operand 0. - -2000-07-28 Kaveh R. Ghazi - - * dwarf2out.c: Indent #error directive. - - * gbl-ctors.h: Fix typo in comment. - (__do_global_ctors): Prototype. - - * gcse.c (record_one_set, pre_delete): Remove unused variables. - - * rs6000.c (rs6000_maybe_dead): Delete unused prototype. - (print_operand): Initialize variable `t'. - -2000-07-27 Aldy Hernandez - - * config/arm/arm.md ("call_value"): removed constraints. - Constraints are ignored in expanders. - (*call_value_reg): split =rf into various constraints. - (*call_value_mem): same - (*call_value_symbol): same - (*sibcall_value_insn): same - -2000-07-28 Philipp Thomas - - * install.texi (--enable-nls): Change the description of the NLS - related configure options to match the current state. - (--with-included-gettext): Likewise. - (--enable-maintainer-mode): New description added. - * extend.texi (-fstrict-prototype): Add missing '.'. - -2000-07-27 Jim Wilson - - * dwarf2out.c (gen_decl_die): Don't call gen_abstract_function if - DECL_INITIAL (decl) == NULL_TREE. - -2000-07-27 Alexandre Oliva - - * Makefile.in (INSN_ATTR_H): New macro. Replace all dependencies - on insn-attr.h with it. - * genattr.c: Generate `#include "insn-addr.h"' if HAVE_ATTR_length. - * insn-addr.h: New header. - (insn_addresses_): Renamed from insn_addresses. - (INSN_ADDRESSES_DEFN, INSN_ADDRESSES, INSN_ADDRESSES_ALLOC, - INSN_ADDRESSES_FREE, INSN_ADDRESSES_SET_P, INSN_ADDRESSES_SIZE, - INSN_ADDRESSES_NEW): New macros. - * genattrtab.c (write_test_expr): Use new macros. - * final.c (insn_addresses, init_insn_lengths): Likewise. - (align_fuzz, shorten_branches): Likewise. - (final): Likewise. Do not reject new insns if their addresses - have been added to INSN_ADDRESSES. - * config/arm/arm.c, config/avr/avr.c: Use new macros. - * config/h8300/h8300.c, config/i370/i370.c: Likewise. - * config/m88k/m88k.c, config/pa/pa.c, config/pa/pa.md: Likewise. - * config/sparc/sparc.c, config/sparc/sparc.md: Likewise. - * config/sh/sh.c: Likewise. - (output_branchy_insn): Use INSN_ADDRESSES_NEW. - - * Makefile.in (bootstrap): Move -BstageN/ back to the beginning. - -2000-07-27 Andrew Cagney - - * gcc.c (struct prefix_list): Add member priority. - (enum path_prefix_priority): Declare. - (add_prefix): Replace ``first'' with ``priority''. Append new - entry but keep list in priority order. - (process_command): Update. Pass PREFIX_PRIORITY_B_OPT or - PREFIX_PRIORITY_LAST to add_prefix. - (process_command): Move include kludge - foo/stageN - to before - foo/include. - -2000-07-27 Jason Merrill - - * dwarf2out.c (gen_typedef_die): Abort if we get identical - TREE_TYPE and DECL_ORIGINAL_TYPE on a typedef. - -2000-07-27 RodneyBrown - - * expr.h (get_alias_set, lang_get_alias_set): Delete prototypes. - * tree.h (get_alias_set, lang_get_alias_set): Prototype. - -2000-07-27 Joseph S. Myers - - * c-decl.c (finish_function): Don't treat 'main' specially unless - flag_hosted. In C99 mode, return 0 from 'main' unless - DEFAULT_MAIN_RETURN is otherwise defined. - - * c-decl.c (store_parm_decls): In C99 mode, pedwarn for function - parameters defaulting to int in an old-style function definition. - -2000-07-27 Kaveh R. Ghazi - - * c-parse.in (string): For -Wtraditional, warn about string - concatenation only once per line. - -Thu Jul 27 09:25:17 2000 Akiko Matsushita - - * pa/x-pa-hpux: Add -D_HIUX_SOURCE to FIXPROTO_DEFINES - for HI-UX/WE2 systems. - -2000-07-24 Bruce Korb - - * fixincl/fixfixes.c(emit_gnu_type): rewrote to *rely* on GCC - defining the __xxx_TYPE__ macros. - * fixincl/fixincl.tpl(gnu_type_map): now obsolete - * fixincl/fixlib.h: don't need to include "tm.h" anymore - * fixincl/inclhack.def(type_map): now obsolete - -Thu Jul 27 11:54:17 2000 Andrew Cagney - - * cpp.texi: Append a trailing full-stop to xrefs where needed. - -2000-07-26 Dave Pitts - - * i370.c: Remove LONGEXTERNAL ifdef from alias_number. Added hash - routine constants. - (mvs_hash_alias): New function. - (mvs_add_alias): Change argument spacing. - (mvs_need_alias): Change aliasing criteria. Added documentation. - (mvs_get_alias): Change to use hashed name. The hashed name prevents - CSECT name collisions. - (mvs_check_alias): Likewise. - (handle_pragma): Change documentation. - * i370.md (mulsi3, divsi3, udivsi3, modsi3, umodsi3): Changed gen_rtx - mode from SImode to DImode. - (iorhi3): Changed LTORG size for insn. - -Wed Jul 26 19:44:05 2000 Hans-Peter Nilsson - - * reload.c (find_reloads_toplev): Reload a paradoxical subreg of a - mem if the address is a mode_dependent_address_p. - -2000-07-26 Kazu Hirata - - * h8300.c (print_operand): Print ":8" when the 'R' operand is - suitable for 8-bit absolute. - * h8300.h (EIGHTBIT_CONSTANT_ADDRESS_P): New. - (OK_FOR_U): Add a case for the 8-bit constant address on the - H8/300H. - -Wed Jul 26 19:26:21 2000 Hans-Peter Nilsson - - * varasm.c (assemble_variable) [! defined(ASM_OUTPUT_ALIGNED_COMMON) - && ! defined (ASM_OUTPUT_ALIGNED_BSS]): Also test - ! defined(ASM_OUTPUT_ALIGNED_DECL_COMMON) before complaining about - lack of implemented alignment. - -2000-07-26 Geoffrey Keating - - * emit-rtl.c (gen_lowpart_common) [REAL_ARITHMETIC]: Handle - cross-compiling between 64-bit and 32-bit machines. - -2000-07-27 Richard Henderson - - * config/ia64/ia64.md (movqicc_astep, movqi_internal_astep): New. - (movhicc_astep, movhi_internal_astep): New. - (movsicc_astep, movsi_internal_astep): New. - (movdicc_astep, movdi_internal_astep): New. - (movsfcc_astep, movsf_internal_astep): New. - (movdfcc_astep, movdf_internal_astep): New. - (movxfcc_astep, movxf_internal_astep): New. - (cmovdi_internal_astep, cmovsi_internal_astep): New. - Unify the cmov[ds]i splitters. - -2000-07-27 Rodney Brown - - * real.c (asctoeg): Rename `error' label to unexpected_char_error - -2000-07-26 Nick Clifton - - * config/arm/vxarm.h (CPP_PREDEFINES): Remove definition of - __arm__. Allow it to be defined by CPP_ISA_SPEC in arm.h - - * dwarf2out.c (dwarf2out_frame_debug_expr): Accept SEQUENCE as - well as PARALLEL blocks in FRAME_RELATED_EXPR notes. - -2000-07-26 Alexandre Oliva - - * c-decl.c (finish_enum): Convert enumerations that fit in an - `int' to `int'. - (build_enumerator): In pedantic mode, cast to `int' those that - don't. - -2000-07-25 Rodney Brown - - * config/alpha/osf.h (SIZE_TYPE, PTRDIFF_TYPE): New. - -Tue Jul 25 23:08:33 2000 J"orn Rennecke - - * sh.md (cmpgtdi_t): Must be split. - (cmpgtdi_t+1): New splitter. - -2000-07-25 Zack Weinberg - - * cpplib.c (_cpp_check_directive): Issue -Wtraditional - warnings for indented directives even if we are skipping. - -2000-07-25 Nathan Sidwell - - * invoke.texi (strict-prototypes): Remove. - * extend.texi (Deprecated Features): Add strict-prototypes. - (Backwards Compatibility): New node. - -2000-07-25 Jakub Jelinek - - * config/i386/i386.md (andsi_1+1): Allow HImode. - (andsi_1+2): Require q_regs_operand. - -2000-07-25 Jakub Jelinek - - * config/i386/i386.md (call_pop): Check operands[0], - not operands[1]. Only check SYMBOL_REF_FLAG for a SYMBOL_REF. - (call): Likewise. - (call_value_pop): Only check SYMBOL_REF_FLAG for a SYMBOL_REF. - (call_value): Likewise. - -2000-07-25 Zack Weinberg - - * toplev.c (pipe_closed): Delete. - (crash_signal): New. Generate ICE for a fatal signal. - (float_signal): Call crash_signal outside a float-handler - block, not abort. - (main): Install crash_signal as handler for core-dumping signals. - -2000-07-25 David Edelsohn - - * rs6000.c (print_operand, case 'T'): New case. - - * rs6000.md (call_indirect_aix32): Convert to expander of - scheduled instructions. - (call_indirect_aix64): Likewise. - (call_value_indirect_aix{32,64}): Likewise. - (call, call_value): Invoke expanders for AIX. Fall through to - matchers for SysV. - (call_indirect_nonlocal_aix{32,64}): New patterns (ctr and lr). - (call_value_indirect_nonlocal_aix{32,64}): New patterns. - (call_nonlocal_aix32): Remove CALL_LONG alternative. Operand 1 - only "g" constraint. - (call_nonlocal_aix64): Likewise. - (call_value_nonlocal_aix{32,64}): Likewise. - (call_nonlocal_sysv): New pattern for ctr, lr, and symbolic - operands. - (call_value_nonlocal_sysv): New pattern. - (indirect_jump{si,di}): Use new 'T' modifier. - (tablejump{si,di} matchers): Likewise. - (return_internal_{si,di}): Likewise. - (return_eh_{si,di}): Likewise. - -2000-07-24 Richard Henderson - - * config/ia64/ia64.c (ia64_print_operand): Handle "%,". - * config/ia64/ia64.h (PRINT_OPERAND_PUNCT_VALID_P): Likewise. - * config/ia64/ia64.md (movdi_internal): Use it. - -2000-07-24 Zack Weinberg - - * cppexp.c: Warn about unary + if -Wtraditional. - * cpplex.c (lex_line): Always set BOL on the first token of a line. - -2000-07-24 Michael Meissner - - * d30v.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Delete references to - unsupported macro. - -2000-07-24 Nick Clifton - - * config/arm/arm.c (emit_multi_reg_push): Generate a - REG_FRAME_RELEATED_NOTE that is compatible with the code in - dwarf2out_debug_frame_expr. - -2000-07-24 Jason Merrill - - * dwarf2out.c: Complain if DWARF2_DEBUGGING_INFO is defined without - UNALIGNED_INT_ASM_OP. - (def_cfa_1): Don't emit def_cfa_register or def_cfa_offset to adjust - a location expression. - (dwarf2out_frame_debug_expr): Lose cfa_old_reg stuff. Don't - assume indirect access if we're saving the CFA address exactly. - - * Makefile.in (bootstrap): Move -BstageN/ to the end. - -2000-07-24 Jakub Jelinek - - * tradcpp.c (main): Update max_include_len for cpp_include_defaults - as well. - -2000-07-24 Michael Meissner - - * invoke.texi (D30V Options): Add d30v options. - -Mon Jul 24 02:04:52 2000 Jeffrey A Law (law@cygnus.com) - - * gcse.c (alloc_pre_mem): Do not alloc TRANSPOUT, it is not - needed by our gcse pass anymore. - (free_pre_mem): Corresponding changes. - (compute_pre_data): Do not call compute_transpout anymore. - - * gcse.c (alloc_avail_expr_mem): Kill unused 'u_bitmap'. - (free_avail_expr_mem, alloc_pre_mem, free_pre_mem): Corresponding - changes. - - * gcse.c (free_pre_mem): Do not free ANTLOC and AE_KILL here. - (compute_pre_data): Do it here instead. - - * gcse.c (alloc_pre_mem, free_pre_mem): Delete unused bitmap - 'temp_bitmap'. - (pre_delete): Corresponding changes. - -2000-07-23 Mark Mitchell - - * c-semantics.c (make_rtl_for_local_static): Use TREE_ASM_WRITTEN - to figure out whether or not a variable has already been emitted. - -Sun Jul 23 14:49:12 2000 Jason Eckhardt - - * config/i860/i860.md (untyped_call expander): Use GEN_CALL - instead of gen_call. - -Sun Jul 23 11:52:03 2000 George Helffrich (george@gly.bris.ac.uk) - - * dbxout.c (dbxout_type, case COMPLEX_TYPE): Fix length field in stab. - -2000-07-23 Kazu Hirata - - * h8300.c: Fix formatting. - -2000-07-23 Joseph S. Myers - - * c-typeck.c (c_expand_start_case): Change -Wtraditional pedwarn - for `long' switch expression into a plain warning. - - * c-lex.c (init_lex): Keep the "inline" keyword in C99 mode. - (yylex): Don't pedwarn for "inline" in C99 mode. - - * bitmap.c (debug_bitmap_file): Cast pointers to PTR for printing - with %p. - * ggc-page.c (debug_print_page_list, alloc_page, free_page, - ggc_alloc): Likewise. - * bb-reorder.c (dump_scope_forest_1): Likewise. - -2000-07-22 Aldy Hernandez - - * reload.c (find_reloads_toplev): Add new parameter - "address_reloaded". - (find_reloads): Add new parameter to find_reloads_toplev calls. - -2000-07-22 Jeffrey Oldham - - * collect2.c (main): Typo fixed. - * diagnostic.c: Typo fixed. - * dwarf2out.c (dwarf2out_frame_debug_expr): Typo fixed. - * eh-common.h: Typo fixed. - * emit-rtl.c (start_sequence): Typo fixed. - * flow.c (find_label_refs): Typo fixed. - (calculate_global_regs_live): Typo fixed. - (mark_regno_cond_dead): Typo fixed. - (create_edge_list): Typos fixed. - (verify_edge_list): Typo fixed. - * ggc-common.c (ggc_mark_rtx_children): Typo fixed. - * loop.c (strength_reduce): Typo in function name fixed. - * rtl.h: Added comments. Typo in function name fixed. - * rtlanal.c: Typo in function name fixed. - (insn_dependant_p): Rename to ... - (insn_dependent_p): ... this. - (computed_jumo_p): Typo fixed. - -2000-07-22 Kaveh R. Ghazi - - * system.h (__FUNCTION__): Wrap definition in #ifndef. - -2000-07-21 David Edelsohn - - * rs6000.h (SIZE_TYPE): Define. - -2000-07-21 Mark Mitchell - - * ssa.c (rename_insn_1): Don't rename registers that are - CLOBBERed. - -2000-07-21 Zack Weinberg - - * diagnostic.c (trim_filename, fancy_abort): Moved here from - rtl.c. - (fatal_function, set_fatal_function): Removed. - (fatal): Don't prepare for or call the fatal_function. - (diagnostic_lock, error_recursion): New. - (diagnostic_for_decl, report_diagnostic): Guard against - re-entering the error reporting routines. - (fancy_abort): Assume function is not NULL. - - * errors.c (fancy_abort): New. Assume function is not NULL. - * tradcpp.c (fancy_abort): Assume function is not NULL. - - * system.h: Provide default definition of __FUNCTION__. - * rtl.h: Use __FUNCTION__ not __PRETTY_FUNCTION__ throughout. - Always use __FUNCTION__ in definition of abort. - * tree.h: Likewise. - * varray.h: Likewise. - * toplev.h: Likewise. Don't prototype set_fatal_function. - -2000-07-20 Geoff Keating - - * config/rs6000/aix43.h (CPP_SPEC): Define __LONG_MAX__ correctly - in 64-bit mode. - * glimits.h: Don't do #if defined for ARCH_PPC. - - * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): All - constants of size no larger than a pointer should go in the TOC. - Add 'MODE' parameter. - (LEGITIMIZE_RELOAD_ADDRESS): Add MODE parameter to - ASM_OUTPUT_SPECIAL_POOL_ENTRY_P. - (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Likewise. - * config/rs6000/aix.h (SELECT_RTX_SECTION): Likewise. - * config/rs6000/netware.h (SELECT_RTX_SECTION): Likewise. - * config/rs6000/rs6000.c (constant_pool_expr_1): Likewise. - (rs6000_legitimize_address): Likewise. - (rs6000_emit_move): Likewise. - (rs6000_select_rtx_section): Likewise. - (output_toc): Deal properly with outputting small constants like - HImode, and SFmode in 32-bit mode, and DFmode in 64-bit mode. - * config/rs6000/sysv4.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Add - MODE parameter. Put small constants in the TOC. - - * config/rs6000/rs6000.c (easy_fp_constant_p): All constants are - easy in SImode. - (rs6000_emit_move): When reload calls us with an illegitimate - address, exit early. Move the change_address calls to one place - at the end of the routine. Merge the SImode and DImode expanders. - When called by reload to put an integer into a FP register, force - it to memory. - - * config/rs6000/rs6000.c (struct toc_hash_struct): Add 'key_mode' - field. - (rs6000_hash_constant): Hash mode too. - (toc_hash_function): Allow for key_mode. - (toc_hash_eq): Structures are different if key_mode differs. - (output_toc): Add 'mode' parameter. Save key_mode. - * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY): - Pass 'mode' parameter. - * config/rs6000/rs6000-protos.h (output_toc): Add 'mode' param. - - * config/rs6000/rs6000.c (output_toc): Use RS6000_OUTPUT_BASENAME - for vtable references. - - * config/rs6000/rs6000.h (PREFERRED_RELOAD_CLASS): If we have a - choice, don't put integer values in FP regs. - -Thu Jul 20 18:13:52 2000 Jeffrey A Law (law@cygnus.com) - - * flow.c (verify_flow_info): Revamp code to verify that the - head and end of each basic block are in the insn chain. - -Thu Jul 20 18:02:35 2000 Michael Matz - - * gcse.c (record_one_set): Prepend instead of append onto - reg_set_table, making it O(n) instead O(n^2). - * lcm.c (compute_antinout_edge,compute_laterin,compute_available): - Use a queue instead of a stack as worklist. - -2000-07-20 Kazu Hirata - - * h8300.c (two_insn_adds_subs_operand): Fix a typo. - * h8300.h (OK_FOR_T): New. - (EXTRA_CONSTRAINT): Support OK_FOR_T. - * h8300.md: Use inc/dec.[wl] for increment/decrement - by 1 and 2 in HI and SI modes. - -2000-07-20 Jim Wilson - - * config/ia64/ia64.h (ASM_OUTPUT_MI_THUNK): Handle DELTA values - larger than 14 bits. - -2000-07-20 Zack Weinberg - - * cppmacro.c (CAN_PASTE_AFTER): New macro. - (count_params): Don't set GNU_REST_ARGS on anything. - (save_expansion): Set PASTE_LEFT only on tokens for which - CAN_PASTE_AFTER is true, or which are named operators. - - * cpplex.c (parse_args): Distinguish between a rest argument - given one empty argument, and a rest argument given zero arguments. - (maybe_paste_with_next): Look for VOID_REST tag, and trigger - deletion of previous token based on that. - (get_raw_token): Flatten some control structure. - - * cpplib.h (CPP_LAST_EQ): Correct. - (VOID_REST): New token flag. - (GNU_REST_ARGS): Delete. - - * tradcpp.c (main): Don't munge -D options. - (make_definition): Bring -D handling in line with cpplib. - (do_define): Strip all leading whitespace from macro definitions. - -2000-07-20 David Billinghurst - - * Makefile.in (tradcpp): Depend on intl.o and version.o. - -2000-07-20 Bruce Korb - - * fixincl/check.tpl: strip the platform specific types before testing - * fixincl/fixfixes.c(gnu_type_fix): use platform specific types - * fixincl/fixincl.tpl: use platform specific types - * fixincl/fixlib.h: include the platform specific types - * fixincl/inclhack.def(gnu_types): don't supply the types - * fixincl/fixincl.x: regen - -2000-07-19 Jim Wilson - - * config/ia64/ia64.h (HARD_REGNO_MODE_OK): Don't allow XFmode in - GR_REGS. - -2000-07-19 Zack Weinberg - - * tradcpp.c (rescan): Do not recognize directives when the # - is indented. - -2000-07-19 Zack Weinberg - - Implement C++ named operators. - - * cpplib.h (TTYPE_TABLE): Move CPP_MIN and CPP_MAX into block - of operators allowed in #if and having an _EQ variant. Add - CPP_MIN_EQ, CPP_MAX_EQ, and CPP_DEFINED. - (cpp_token flags): Add NAMED_OP. - (enum node_type): Add T_OPERATOR. - (struct cpp_hashnode): Add code slot to value union. - * cpphash.h (spec_nodes): Remove n_defined. - - * cpplex.c (lex_line): Convert T_OPERATOR nodes to their proper types. - (spell_token, can_paste, maybe_paste_with_next): Handle named operators. - (is_macro_disabled): Tweak error messages. - - * cpplib.c (get_define_node): Disallow all named operators as - macro names. Tweak error messages. - (_cpp_init_stacks): Don't set up spec_nodes->n_defined. - - * cppinit.c (builtin_array): Add entries for the named operators. - * cppexp.c (lex): Check for CPP_DEFINED token. - (priority table): Add entries for CPP_MIN and CPP_MAX. - (_cpp_parse_expr): Handle CPP_MIN and CPP_MAX. - -2000-07-19 Bernd Schmidt - - * gcse.c (INSN_CUID): If ENABLE_CHECKING, abort if the uid is - larger than the array of cuids. - (alloc_gcse_mem): Use uid_cuid rather than INSN_CUID when computing - cuids. - -2000-07-19 Bruce Korb - - * fixinc/fixincl.c: Convert to using a table of environment variables - and activate the auto-edit marker on the fixed output files. - * fixinc/fixlib.h: Define the environment table - * fixinc/fixincl.sh: export the ${INPUT} dir - * fixinc/check.tpl: likewise - -2000-07-18 Zack Weinberg - - * gcc.c (.h spec): Fix typo. - -Wed Jul 19 01:22:15 CEST 2000 Marc Espie - - * Makefile.in: Fix tradcif.c path. - -2000-07-18 Zack Weinberg - - * cpplib.h (TTYPE_TABLE): Rearrange to use only two per-entry - macros, not five. - - * cpphash.h (TOKEN_NAME): New macro. - (_cpp_spell_operator): Deleted. - (token_spellings): Now _cpp_token_spellings. - - * cppexp.c: Use TOKEN_NAME or TYPE_NAME, not _cpp_spell_operator. - * cpplex.c: Use OP and TK macros when expanding the - TTYPE_TABLE. Eliminate token_names. For non-OPERATOR tokens, - store the stringification of the enumeration name (CPP_CHAR, - etc.) in the name slot of token_spellings. - Use TOKEN_NAME and/or TOKEN_SPELL, do not reference - token_spellings directly. - * cpplib.c: Use TOKEN_SPELL. - - * cpplex.c (_cpp_push_token): If the token being pushed back - is the previous token in this context, just subtract one from - context->posn. - * cppmacro.c (save_expansion): Clear aux field when storing a - placemarker. - -2000-07-18 Jakub Jelinek - - * cpplex.c (cpp_scan_buffer): Output line command even at the stop - buffer, provided it is not NULL. - -2000-07-18 Alexandre Oliva - - * c-decl.c (duplicate_decls): Do not call make_var_volatile() in - case of invalid volatile re-declaration. - -2000-07-18 Jakub Jelinek - - * calls.c (store_arg): Return nonzero if sibcall_failure is desired. - (expand_call): Adjust caller. - -2000-07-17 Gabriel Dos Reis - - * diagnostic.h (report_diagnostic): Change prototype. - - * diagnostic.c (output_do_verbatim, diagnostic_for_asm, - diagnostic_for_decl): Change prototype. - (error_with_decl, warning_with_decl, pedwarn_with_decl, warning, - error, warning, error_with_file_and_line, - warning_with_file_and_line, pedwarn_with_file_and_line, fatal): - Adjust call to report_diagnostic, diagnostic_for_decl. - (error_for_asm, warning_for_asm): Adjust call to diagnostic_for_asm. - (output_verbatim, verbatim): Adjust call to output_do_verbatim. - - * c-errors.c (pedwarn_c99): Adjust call to report_diagnostic. End - varaible argument list. - -2000-07-17 Zack Weinberg - - * cpphash.c: Don't include hashtab.h. Most macro-handling code - moved to cppmacro.c. - (hash_HASHNODE, eq_HASHNODE, _cpp_dump_macro_hash, - dump_hash_helper): Delete. - (expand_hash, higher_prime_number, _cpp_lookup_with_hash, - cpp_forall_identifiers): New. Implement specialized version of - Vlad's expandable hash table. - (cpp_lookup): Use new functions. - (_cpp_init_macros, _cpp_cleanup_macros): Adjust for new - implementation. - * cppmacro.c: New file. - * cppinit.c (dump_macros_helper): New. - (cpp_finish): Iterate over the identifier table directly. - * cpplex.c (parse_name): Calculate the hash of the identifier - while we scan it. Use _cpp_lookup_with_hash when we can. - - * cpphash.h: Update prototypes. - (xcnewvec, HASHSTEP): New helper macros. - * cpplib.h: Update prototypes. - * Makefile.in (LIBCPP_OBJS): Add cppmacro.o. - (cppmacro.o): New rule. - (cpphash.o): Update deps. - - * cppmain.c: Do not set pfile->printer if no_output is on. - -2000-07-15 Neil Booth - - * cpplib.c: Change all directive-handler functions to return - void, not int. - * cpphash.h: Update typedefs. - -2000-07-17 Geoffrey Keating - - * configure: Regenerate. - - * extend.texi (Extended Asm): Mention that a memory clobber - does not count as a side-effect. - - * unroll.c (copy_loop_body): Fix one instance of using host - arithmetic on the target; fixes loop-4 on a 32-bit -> 64-bit - cross-compile. - - * tlink.c (scan_linker_output): Tweak for output of AIX ld. - -2000-07-17 Richard Henderson - - * config/ia64/ia64.md (movdi): Split out load address code. - New post-reload splitter for symbolic operands. - (movdi_internal): Abort if we didn't split symbolic operands - when we should have. - * config/ia64/ia64.c (ia64_expand_load_address): New, from movdi bits. - (ia64_reorg): Split insns when not optimizing. - * config/ia64/ia64-protos.h (ia64_expand_load_address): Declare. - -Mon Jul 17 23:43:26 MET DST 2000 Jan Hubicka - - * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Use LONG_DOUBLE_TYPE_SIZE - instead of MAX_LONG_DOUBLE_TYPE_SIZE to decide output format. - -2000-07-17 Chandrakala Chavva - - * loop.c (check_dbra_loop) : Changed loop_continue to loop->cont. - -2000-07-17 Jason Merrill - - * Makefile.in (clean): Remove libgcc directory. - - * configure.in (-Wno-long-long check): Use higher-level macros. - -2000-07-17 Zack Weinberg - - * simplify-rtx.c (simplify_binary_operation): Recognize - (compare (gt[u] (cc) 0) (lt[u] (cc) 0)). - (simplify_ternary_operation): Do not examine MODE_BITSIZE of - a CONST_INT, it will always be zero. - -2000-07-17 Chandrakala Chavva - - * loop.c (check_dbra_loop) : Return if more than one condition is - present to control the loop. - -Mon Jul 17 08:26:35 2000 Clinton Popetz - - * mips.c (mips_expand_prologue): Don't calculate the last argument - register unless we need it. When we are calculating this, make - sure FUNCTION_ARG is giving us a REG. - -2000-07-17 Stephane Carrez - - * flow.c (libcall_dead_p): Use single_set to verify the insn - has only one set and get for analysis. - (propagate_one_insn): Don't pass the PATTERN of the insn. - -2000-07-17 Mark Klein - - * pa.c (emit_hpdiv_const): Update to match new pattern for udivsi3. - -2000-07-17 J. David Anglin - - * Makefile.in (TARGET_GETGROUPS_T): New configuration variable. - * configure.in (TARGET_GETGROUPS_T): Evaluate. - * sys-protos.h (getgroups): Use TARGET_GETGROUPS_T for array type - of second argument of getgroups. - * configure, config.in: Rebuilt. - -2000-07-17 Geoffrey Keating - - * simplify-rtx.c (simplify_relational_operation): Two signed - values with equal high words are less/greater than each other if - their low words are less/greater when considered as unsigned. - -Mon Jul 17 02:37:06 2000 Marc Espie - - * configure.in (vax-*-openbsd): Change to new style configuration, - add collect2/float_format information. - * configure: Rebuilt. - * config/vax/openbsd1.h: New. - * config/vax/openbsd.h: New. - * config/vax/t-openbsd: New. - -2000-07-17 Chip Salzenberg - - * c-common.c (shorten_compare): Quiet warnings about unsigned - comparisons with zero when they occur in a system header. - -2000-07-17 Joseph S. Myers - - * invoke.texi (-pedantic): Refer to ISO C instead of ANSI C, and - update to describe current practice. - - * glimits.h (LLONG_MIN, LLONG_MAX, ULLONG_MAX): Define for C99. - - * contrib.texi, cpp.texi, extend.texi, invoke.texi: Update - references to C9X. Change references to -fstd and -flang-isoc9x - to refer to -std. - - * c-common.c (scan_char_table): Allow "z" length modifiers on - diouxXn formats. - (check_format_info): Use TYPE_DOMAIN on the type matched against - for "z" formats, to retrieve the language size_t rather than the - internal one. - - * c-common.c (check_format_info): Do not make a pedantic objection - to the 'L' length modifier if used with a floating point type - character. - - * c-lex.c (yylex): Don't pedwarn for hexadecimal floating point - constants in C99 mode. - -2000-07-17 Kazu Hirata - - * h8300.md: Fix the format of mac. - (movsi_h8300hs): Output a tab after stmac instead of a space. - - * h8300.c (two_insn_adds_subs_operand): Improve code for detecting - profitable adds/subs sequences. - - * fold-const.c: Fix comment typos. - -2000-07-16 Laurynas Biveinis - - * cppfiles.c (read_name_map): Set map_list_ptr->map_list_map to NULL. - -2000-07-16 Kaveh R. Ghazi - - * fixinc/fixfixes.c (emit_gnu_type): Avoid string concatenation. - -2000-07-16 Neil Booth - - * cpplex.c: Update comments. - * README.Portability: Small update. - -2000-07-16 Neil Booth - - * README.Portability: Small update. - -2000-07-15 Richard Henderson - - * config/ia64/ia64-protos.h (ia64_move_ok): Prototype. - * config/ia64/ia64.c (ia64_move_ok): New function. - * config/ia64/ia64.md (movqi, movqi_internal): Use it. - (movhi, movsi, movdi, movsf, movdf, movxf): Likewise. - -2000-07-15 Zack Weinberg - - * cpphash.c (save_expansion): Clear PREV_WHITE on tokens - immediately following a paste operator. - * cppinit.c (sort_options): New function (only for HOST_EBCDIC). - (cpp_reader_init): Call it, if HOST_EBCDIC. - (cpp_handle_options): Do not sort option list here. - (handle_option): Rename to cpp_handle_option and export. - * cpplex.c (cpp_scan_buffer_nooutput, cpp_scan_buffer): Use - _cpp_get_token directly. - (cpp_scan_line): Return 0 at EOF, 1 otherwise. - * cpplib.c (cpp_push_buffer): Don't set new->lineno to 1. - * cpplib.h: Prototype cpp_handle_option. Update prototype of - cpp_scan_line. - -2000-07-15 Richard Henderson - - * fold-const.c (extract_muldiv): Don't optimize past an unsigned - cast around an expression. Tidy other unsigned tests. - -2000-07-15 Gabriel Dos Reis - - * diagnostic.c (doing_line_wrapping, line_wrapper_printf, notice, - v_error_with_decl, v_warning_with_decl, v_pedwarn_with_decl): Remove. - (v_message_with_decl): Rename to ... - (format_with_decl): ... this. Tweak - (diagnostic_for_decl): New function. - (fatal_io_error): Use verbatim in lieu of notice. - (announce_function): Use verbatim. - (default_print_error_function): Likewise. - (error_with_decl, warning_with_decl, pedwarn_with_decl): Use new - infratructure. - -2000-07-15 Kaveh R. Ghazi - - * mips.c (function_arg_pass_by_reference): Don't do automatic - aggregate initialization. - (machine_dependent_reorg): Initialize variable `mode'. - - * mips.md (absdi2): Change variable `regno1' to unsigned int. - (reload_indi): Rename loword/hiword to lo_word/hi_word to avoid - conflicts with sys/param.h macro of the same name. - (reload_outdi): Likewise. - -2000-07-15 Michael Meissner - - * fold-const.c (fold): When optimizing FOO++ == CONST into ++FOO - == CONST + INCREMENT, don't overwrite the tree node for FOO++, - create a new node instead. - -2000-07-15 Neil Booth - - * README.Portability: Correct example about calling a function - through a pointer to function. Format wide paragraphs. - -2000-07-15 Michael Meissner - - * README.Portability: Update integer suffixes and function - prototype sections. - -2000-07-15 Neil Booth - - * README.Portability: Small update. - -2000-07-15 Neil Booth - - * README.Portability: New file. - -Fri Jul 14 18:13:53 2000 Mark P Mitchell - - * INSTALL: Give special instructions for building GCC on Irix 6. - * config/mips/x-iris6 (CC): Don't set it. - (OLDCC): Likewise. - -2000-07-14 Jason Merrill - - * dwarf2out.c (dwarf2out_frame_debug_expr): If we store the CFA - register in the stack and later in another register, use the new - register. - -Fri Jul 14 10:25:53 2000 Clinton Popetz - - * config/mips/mips.md: (absdi2): Handle sign_extend for - second operand. - -2000-07-14 Nathan Sidwell - - * cpplib.c (do_pragma_dependency): Tidy warning messages. - -2000-07-14 Zack Weinberg - - * .cvsignore: Correct typo. - -2000-07-13 Mark Mitchell - - * .cvsignore: Add generated YACC files. - * objc/.cvsignore: New file. - -2000-07-14 Neil Booth - - * cpplex.c (adjust_column): New function. - (skip_whitespace): Use it. - (skip_block_comment): Use it, and warn about /*/* with - -Wcomments. - -2000-07-14 Neil Booth - - * cpphash.c (struct macro_info): Add new members. - (_cpp_free_definition): Delete the macro directly. - (count_params): Return void, with first token of - expansion in struct macro_info on success. - (parse_define): Return int. Hoist syntax checking from - save_macro_expansion. Leave call to save_expansion to - _cpp_create_definition. - (alloc_macro): Needs just 2 arguments. - (free_macro): Delete. - (save_expansion): Don't perform syntax check. - (_cpp_create_definition): Call save_expansion. - -2000-07-13 Kaveh R. Ghazi - - * genrecog.c (write_header): Split long string. - - * cpphash.c (macro_info): Don't use the `signed' keyword. - - * system.h (alloca): Prototype if __GNUC__ && __SIZE_TYPE__. - -2000-07-13 Jakub Jelinek - - * calls.c (stored_args_map): New variable. - (check_sibcall_argument_overlap_1): New. - (check_sibcall_argument_overlap): New. - (expand_call): Initialize stored_args_map. - Call check_sibcall_argument_overlap. - -2000-07-13 Bruce Korb - - * fixinc/fixfixes.c: move EXIT_BROKEN to header, add sub-expr max count - (emit_gnu_type): utility procedure for gnu_type_fix - (gnu_type_fix): implement various pre-processor guards around - standard types so these types can be defined over and over - * fixinc/fixincl.tpl: add a "gnu_type_map" that forces the standard - types alluded to above will have GNU-compliant base types - * fixinc/fixlib.h: add EXIT_BROKEN define and the gnu_type_map struct - * fixinc/inclhack.def: add test_text entries and utilize the new - "gnu_types" fix for the ptrdiff_t, size_t and wchar_t types. - * fixinc/fixincl.x: regenerate - -2000-07-12 Gabriel Dos Reis - - * diagnostic.c (vline_wrapper_message_with_location, - v_message_with_file_and_line, v_error_with_file_and_file, - v_error_for_asm, v_warning_for_asm, vfatal, - v_warning_with_file_and_line, v_pedwarn_with_file_and_line, - vsorry, verror, vwarning, vpedwarn): Remove. - (diagnostic_for_asm): New function. - (pedwarn, error, warning, pedwarn_with_file_and_line, - error_with_file_and_line, warning_with_file_and_line, sorry, - error_for_asm, warning_for_asm, fatal): Reimplement. - (finish_diagnostic): Clear diagnostic info as well. - -2000-07-13 Neil Booth - - * c-common.h (flag_digraphs): New. - * c-decl.c (c_decode_option): Set flag_digraphs as appropriate. - * c-lex.c (yylex): Use flag_digraphs to decide whether to - honor digraphs. - -2000-07-13 Zack Weinberg - - * gcc.c (do_spec_1): Add new %B operator. - (set_input): Prepare for %B. - - (link_command_spec): Move up with the other tm.h- - overrideable specs. Factor out the portion conditional on - LINK_LIBGCC_SPECIAL into a new spec, %(link_libgcc). - (struct compiler): Just have a single spec string. All users - updated. - (default_compilers): Remove unnecessary braces. - (static_specs): Update. - - (trad_capable_cpp, cpp_options, cc1_options, asm_options): New - named specs. - (C and assembly specs): Use the new named specs, as appropriate. - - * objc/lang-specs.h: Use the new named specs. - Remove unnecessary braces. - -2000-07-12 Zack Weinberg - - * gcc.c (execute): If a subprocess gets a fatal signal, report - strsignal() of the signal number, and ask for a bug report. - Do not do this for SIGPIPE if there's already been an error. - - * tradcpp.c: Don't include signal.h. Don't catch SIGPIPE. - Delete pipe_closed. - - * tradcif.c: Remove. - -2000-07-12 Zack Weinberg - - * final.c (profile_function): Do not emit profile counters in - the data section, if NO_PROFILE_COUNTERS is defined. - * tm.texi: Document NO_PROFILE_COUNTERS. Update doc for - FUNCTION_PROFILER. - - * config/i386/linux.h (NO_PROFILE_COUNTERS): Define. - (FUNCTION_PROFILER): Just emit a call to mcount. - -2000-07-12 Zack Weinberg - - * tradcpp.c (main): Rename 'perror' label to 'sys_error'. - - * cppexp.c, cpphash.c, cpphash.h, cppinit.c, cpplex.c, - cpplib.c, cpplib.h: Eradicate all traces of code dependent on - traditional, lang_chill, or lang_fortran. - - * cppfiles.c: #undef strcmp to suppress warning about macros - used without arguments. - (_cpp_execute_include): Use f, not fname, in "No include path" - error. - (_cpp_pop_file_buffer): New function. - * cpplib.c: Don't include . - (cpp_push_buffer): Set line_base and lineno in new buffer. - (cpp_pop_buffer): Use _cpp_pop_file_buffer. - - * cpplex.c: Move all prototypes and structure declarations to the - top of the file. Properly parenthesize some macro arguments. - (cpp_scan_line): New function. - (special_symbol [case T_INCLUDE_DEPTH]): Use pfile->include_depth, - don't need to walk up the stack counting. - -2000-07-12 Kaveh R. Ghazi - - * c-common.c (combine_strings): Emit a pedantic warning when a - string length is greater than the minimum ANSI C is required - to support. - -Wed Jul 12 13:24:30 2000 Jeffrey A Law (law@cygnus.com) - - * pa/xm-pa64.h (NO_SYS_SIGLIST): Kill. - * d30v/xm-d30v.h (NO_SYS_SIGLIST): Kill. - -2000-07-12 Kaveh R. Ghazi - - * c-decl.c (define_label): Warn about identifier conflicts with - labels in traditional C. - - * c-parse.in (unop +): Warn about the unary plus operator for - traditional C. - - * c-typeck.c (store_init_value): Warn about automatic aggregate - initialization for traditional C. - - * invoke.texi (-Wtraditional): Document new warnings. - -2000-07-12 Gabriel Dos Reis - - * Makefile.in (c-errors.o): Fix thinko in dependency. - -2000-07-12 Zack Weinberg - - * gcc.c (C specs [!USE_CPPLIB]): Invoke tradcpp if any of - -traditional, -ftraditional, or -traditional-cpp was given. - Do not pass -traditional to the preprocessor. - (.S spec): Likewise. Don't bother defining __ASSEMBLER__, the - preprocessor does it automatically. - * objc/lang-specs.h: Likewise. Don't bother defining __OBJC__. - - * ch/lang-specs.h: Always use tradcpp. Do not pass - -traditional, -trigraphs, or -pedantic to the preprocessor. - * f/lang-specs.h (.F spec): Likewise. Don't bother defining - _LANGUAGE_FORTRAN. - -2000-07-12 Zack Weinberg - - * cppexp.c (LOGICAL): Delete macro. - (_cpp_parse_expr): Do not use UNARY for unary +. Implement || - and && directly. - - * cpphash.c (HASHSIZE): Increase to 4096. - (struct hashdummy): Add hash field. - (eq_HASHNODE): Compare unreduced hashes, then lengths, then - the string values using memcmp. - (cpp_lookup): Set dummy.hash. - -Wed Jul 12 13:15:16 2000 Marc Espie - - * configure.in (m88k-openbsd): Express configuration using new fragment - style. - * configure: Rebuilt. - * m88k/aout-dbx.h: New. - * m88k/openbsd.h: New. - * m88k/xm-openbsd.h: New. - -2000-07-12 Kaveh R. Ghazi - - * expr.c (expand_expr): Return const0_rtx, not error_mark_node. - -2000-07-12 Richard Henderson - - * reload.c (push_secondary_reload): Make sure to add the new - reload at the end, after acquiring secondary memory. - -2000-07-12 Kaveh R. Ghazi - - * cpplex.c (is_macro_disabled): Use CPP_WTRADITIONAL. - - * c-decl.c (set_current_function_name_declared, anon_aggr_type_p, - lang_expand_stmt): Mark parameters with ATTRIBUTE_UNUSED. - - * c-parse.in (stmt): Delete unused variables. - - * convert.c (convert_to_vector): Likewise. - - * gensupport.c (process_rtx): Declare attr as `rtvec' not `rtx'. - - * tree.c (finish_vector_type): Prototype. - -2000-07-12 Bruce Korb - - * fixinc/fixfixes.c: use xmalloc - * fixinc/fixincl.c(initialize): set program name for xmalloc - * fixinc/fixlib.c(must_malloc): obsolete - (is_cxx_header): no longer used - disabled - (skip_quote): inserted and disabled for future use - * fixinc/fixlib.h: reflects above - * fixinc/fixtests.c: removed dinkleberries - -2000-07-12 Neil Booth - - * cpphash.h: (TOKEN_SPELL) Pulled from cpplex.c. - * cpplex.c (TOKEN_SPELL) Move to cpphash.h. - - * cpphash.c: (struct macro_info, alloc_macro, free_macro, - struct toklist_dummy): New. - (cpp_free_definition): Free macros with free_macro. - (count_params): Don't save parameter spellings. Save macro - information in a struct macro_info. - (parse_define): Don't allocate a token list. - (save_expansion): Allocate the macro's token list, and - save parameter spellings if necessary. Use TOKEN_SPELL. - (cpp_create_definition): Make list const. - -2000-07-12 Gabriel Dos Reis - - * c-typeck.c (pedwarn_c99): Move to - * c-errors.c: ... Here. - * toplev.h (verror, vwarning, vpedwarn): Remove prototypes. - * diagnostic.c (verror, vwarning, vpedwarn): Make static. - * Makefile.in (C_AND_OBJC_OBJS): Include c-errors.o - (c-errors.o): List dependency. - -2000-07-12 Mark Mitchell - - * c-parse.c: Remove. - * c-parse.h: Likewise. - * c-parse.y: Likewise. - * objc/objc-parse.c: Likewise. - * objc/objc-pasre.y: Likewise. - -2000-07-11 Rodney Brown - - * gcc.texi: Fix minor typos - * extend.texi: Fix minor typos - -2000-07-11 Marc Espie - - * collect2.c (main): Recognize .lo as object files. - -2000-07-11 J. David Anglin - - * pa.c (hppa_encode_label): Store labels in gc memory when ggc_p is - true. - - * aclocal.m4 (AC_FUNC_MMAP_ANYWHERE): Extend test to detect systems - with MAP_ANONYMOUS and MAP_ANON. - * configure, config.in: Rebuilt. - -2000-07-12 Gabriel Dos Reis - - * diagnostic.c (save_output_state): Remove. - (restore_output_state): Likewise. - (clear_text_info): New function. - (clear_diagnostic_info): Likewise. - (output_text_length, is_starting_newline, output_prefix, - line_wrap_cutoff, ideal_line_wrap_cutoff, prefix_was_emitted_for, - prefixing_policy, output_buffer_ptr_to_format_args): New macros - (set_real_maximum_length, output_set_maximum_length, - output_set_prefix, output_get_prefix, output_set_maximum_length, - output_destroy_prefix, init_output_buffer, - reshape_diagnostic_buffer, output_space_left, output_emit_prefix, - output_add_newline, output_add_character, output_add_space, - output_append_r, output_append, wrap_text, output_format, - output_do_printf, output_printf, output_do_verbatim, - output_verbatim, verbatim): Use them. - (output_clear): Split into cleat_text_info and - clear_diagnostic_info. - (struct output_state): Move to... - - * diagnostic.h: ...Here - (struct output_buffer): Adjust. - -2000-07-11 Zack Weinberg - - * cpplex.c (parse_name): No longer inline (premature optimization). - (do_pop_context): Fold into pop_context. - (pop_context): Returns int. - (lex_next): Hoist test for end of directive into pop_context. - (push_macro_context): Returns int; takes just reader and token. - Hoist test for excessive nesting to caller. - (push_arg_context): Returns void; takes just reader and token. - Do not call stringify_arg or get_raw_token. - (get_raw_token): Convert tail recursion through push_arg_context - to a loop at this level. Call stringify_arg here if appropriate. - (maybe_paste_with_next): Convert tail recursion to a while loop. - Hoist test of paste_level to caller. - - (stringify_arg): Push arg context at beginning. - (cpp_get_token): Split out core into _cpp_get_token. Call - process_directive here. Throw away CPP_PLACEMARKER tokens. - (_cpp_get_token): Convert tail recursion through - push_macro_context to a loop at this level. - (_cpp_glue_header_name, is_macro_disabled, stringify_arg, - _cpp_get_raw_token): Use _cpp_get_token. - (_cpp_skip_rest_of_line): Drop the context stack directly; do - not call pop_context. - (_cpp_run_directive): Call lex_next directly. - - * cpphash.h: Prototype _cpp_get_token. - * cppexp.c (lex): Use it. - * cpphash.c (parse_define): Use it. - * cpplib.c (get_define_node, do_undef, parse_include, - read_line_number, do_line, do_ident, do_pragma, do_pragma_gcc, - do_pragma_implementation, do_pragma_poison, do_pragma_dependency, - parse_ifdef, validate_else): Use it. - (cpp_push_buffer): Tweak error message; abort if anyone tries - to push a buffer while macro expansions are stacked. - -2000-07-11 Donn Terry - - * cpplex.c (free_macro_args, save_token): Cast arg of free - and/or xrealloc to PTR. - (_cpp_init_input_buffer): Clear all fields of the base context. - -Tue Jul 11 15:28:21 CDT 2000 Clinton Popetz - - * gensupport.c (process_rtx): Make rtl checking stop - complaining about the define_insn while it is being - converted from a define_insn_and_split. - -Tue Jul 11 16:26:17 2000 Clinton Popetz - - * config/mips/mips.c (simple_memory_operand): Access the - INTVAL of the address, not it's containing MEM. - -2000-07-11 Bruce Korb - - * fixinc/fixtests.c(double_slash): obsolete - (else_endif_label): likewise - * fixinc/inclhack.def(irix_multiline_cmnt): obsolete - (libc1_ifdefd_memx): correct initial comment - and omit the #if/#endif pair from the memxxx declarations - * fixinc/fixincl.x: regen - -2000-07-11 Kaveh R. Ghazi - - * cpplex.c (T, I, S, C, N): Avoid non-constant initializers. - -2000-07-11 Neil Booth - - * cpp.texi: Update. - -2000-07-11 Neil Booth - - * cppinit.c: (cpp_reader_init): Allow digraphs by default. - (handle_option): Set digraphs according to standard. - Merge OPT_lang_c89 handler with OPT_std_c89. - - * cpplex.c: (lex_line, can_paste): Honor digraphs in - accordance with the digraphs flag. - - * cpplib.h: (struct cpp_options): New option digraphs. - -2000-07-10 Hans-Peter Nilsson - Bruce Korb - - * fixinc/inclhack.def (libc1_ifdefd_memx): New fix. - * fixinc/fixincl.x: Regenerate. - * fixinc/tests/base/testing.h: Add testcase. - -2000-07-10 Richard Henderson - - * config/ia64/ia64.c (got_symbolic_operand): New. - (symbolic_operand, move_operand): Revert 0701 change. - * config/ia64/ia64.h (PREDICATE_CODES): Update. - * config/ia64/ia64-protos.h (got_symbolic_operand): Declare. - * config/ia64/ia64.md (movdi): Revert 0701 wrt symbolic_operand; - split the offset into a 14-bit low part instead of a 13-bit low part. - (load_fptr): Mark the mem as unchanging. - (load_symptr): Use got_symbolic_operand. - -2000-07-10 Nick Clifton - - * libgcc2.c (next_stack_level): Cast result of computation to - (void **) so that the assignment does not generate a warning. - -2000-07-10 Chandrakala Chavva - - * flags.h : Add new variable flag_single_precision_constant. - * toplev.c (display_help) : Add -fsingle-precision-constant option. - (flag_single_precision_constant): New. - * c-lex.c (yylex): Convert floating point constant to single - precision constant. - * invoke.texi : Add documentation for this new option. - -2000-07-10 Gabriel Dos Reis - - * diagnostic.c (output_octal): Second parameter is unsigned. - (output_long_octal): Likewise. - (output_hexadecimal): Likewise. - (output_long_hexadecimal): Likewise. - (output_format): Adjust arguments extraction. Tweak. - (output_verbatim, verbatim): End variable argument list. - (report_diagnostic): Improve documentation. - -2000-07-10 Benjamin Chelf - - * c-common.h (build_stmt): Declare. - (build_continue_stmt): Likewise. - (build_break_stmt): Likewise. - (build_return_stmt): Likewise. - - * c-decl.c (do_case): Rewrite to do what previously done in - c-parse.in. - - * c-semantics.c (build_stmt): Define. - (build_return_stmt): Likewise. - (build_break_stmt): Likewise. - (build_continue_stmt): Likewise. - (build_case_label): Likewise. - - * c-parse.in (BREAK): Change to build tree, then generate RTL. - (CONTINUE): Likewise. - (RETURN): Likewise. - (CASE): Likewise. - (DEFAULT): Likewise. - - * c-parse.y: Regenerate. - * c-pasre.c: Likewise. - -2000-07-09 Jason Merrill - - * expr.c (expand_expr): Bail earlier if we get an error_mark_node. - - * tree.h (STRIP_NOPS): Check for error_mark_node. - (STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Likewise. - (dwarf2out_*): Remove duplicate declarations. - - * c-decl.c (duplicate_decls): Copy DECL_ABSTRACT_ORIGIN from - DECL_ABSTRACT_ORIGIN, not DECL_ORIGIN. - -2000-07-10 Gabriel Dos Reis - - * diagnostic.c (wrap_text): New function. - (maybe_wrap_text): Likewise. - (output_add_string): Use it. - (output_format): Likewise. - (count_error): Use verbatim instead of notice. - (report_error_function): Likewise. Don't use plain fprintf. - (finish_diagnostic): New function. - (output_do_verbatim): Tweak. Commonalize functionalities in - output_verbatim and verbatim. - (output_verbatim): Adjust. - (verbatim): Likewise. - (report_diagnostic): Define. - - * diagnostic.h (report_diagnostic): Prototype. - -2000-07-09 Zack Weinberg - - * cppexp.c (_cpp_parse_expr): Don't use unary plus. - -2000-07-09 Neil Booth - - * cpphash.h: ISvspace, is_vspace, is_nvspace: New. - IShspace, ISspace: Update. - - * cppinit.c: ISTABLE: Update. - V: New. - - * cpplex.c (IS_HSPACE, S_NEWLINE): Remove. - (IS_DIRECTIVE): Rename KNOWN_DIRECTIVE. - (skip_block_comment, skip_line_comment, parse_string, - lex_line): Use is_vspace rather than IS_NEWLINE. - (skip_whitespace, lex_line): Clean up to use is_nvspace. - (lex_line): Use KNOWN_DIRECTIVE. Any kind of directive - gets a BOL flag. - (lex_next): Unconditionally stop if within a directive. - Treat directives within macro invocations as directives - (after parse_args emits error), not as the argument. - -2000-07-09 Gabriel Dos Reis - - * diagnostic.c (diagnostic_args): New macro. - (diagnostic_msg): Likewise. - (output_formatted_integer): Likewise. - (output_state): New data type. - (digit_buffer): Make global. - (output_add_integer): Rename to output_decimal. Squeeze - digit_buffer. - (output_long_decimal, output_unsigned_decimal, - output_long_unsigned_decimal, output_octal, output_long_octal, - output_hexadecimal, output_long_hexadecimal): New functions. - (output_append_r): New function. - (output_append): Tweak. - (output_flush_on): Rename to output_to_stream. - (output_format): Change prototype. Improve documentation. Handle - more format specifiers. - (build_location_prefix): Rename to context_as_prefix. - (output_notice): Rename to output_do_printf. - (output_printf): Tweak. - (line_wrapper_printf): Likewise. - (vline_wrapper_message_with_location): Adjust call to renamed - functions. - (v_message_with_decl): Likewise. - (default_print_error_function): Likewise. - (save_output_state): New function. - (restore_output_state): Likewise. - (output_do_verbatim): Likewise. - (output_verbatim): Define. - (verbatim): Likewise. - - * diagnostic.h (printer_fn): Change return type from void to int. - Improve documentation. - (output_add_integer): Rename to output_decimal. - (output_flush_on, output_format): Don't export. - (output_verbatim, verbatim): Declare. - -2000-07-08 Toon Moene - - * fold-const.c (extract_muldiv) case PLUS_EXPR, MINUS_EXPR: - Check whether c divides op1 exactly if operation is not - multiplication. - -2000-07-08 Richard Henderson - - * final.c (final): Do not abort when reg-stack introduces - a new insn. - -2000-07-08 Zack Weinberg - - * cpplib.h (struct cpp_name): Now struct cpp_string. - (CPP_INT, CPP_FLOAT, CPP_NUMBER, CPP_COMMENT, - CPP_HEADER_NAME): Change to type S. - (struct cpp_token): Rename 'name' field to 'str'. Add 'node' - field, a cpp_hashnode *. All references to val.name updated - to use val.str or val.node as appropriate. - (struct cpp_reader): Add spec_nodes field. - (cpp_idcmp): Now cpp_ideq; takes a token * and a char *. - - * cpphash.h (struct spec_nodes): New. - (enum spell_type): Reorder. Only SPELL_STRING tokens use - val.str. All references to 'spelling > SPELL_NONE' updated to - match. - - (CPP_IN_SYSTEM_HEADER): Check pfile->buffer and - pfile->buffer->inc are not NULL before dereferencing them. - - * cpplex.c (parse_name): Take a pointer to the current token, - plus current position and limit as args; return the new - position; don't copy the text of a name into the string - buffer, instead call cpp_lookup and store the node pointer. - If extending a token, copy out the text of the old into a - scratch buffer, append the new, look that up and store the new - node pointer. Inline. - (maybe_paste_with_next): If the result of paste is a NAME, - then look up the pasted text and store its node pointer. - (lex_line): Adjust for new parse_name interface. - Check for L"str", L'str' using spec_nodes->n_L. - (spell_token): SPELL_IDENT tokens have their spelling in - val.node->name. Handle SPELL_STRING tokens that don't have - string delimiters. - (_cpp_expand_name_space, - (can_paste): Check for L ## "str" using spec_nodes->n_L. - (cpp_get_token, special_symbol): No need to call cpp_lookup. - (cpp_idcmp): Now cpp_ideq; take a token * and a const char *; - return 1=equal 0=not, not a tristate. - - * cpphash.c (var_args_str): Delete. - (find_param): Compare node fields directly. - (is__va_args__): Use CPP_PEDANTIC. Just compare - token->val.node with spec_nodes->n__VA_ARGS__. - (dump_funlike_macro): Don't use var_args_str. - - * cpplib.c (_cpp_check_directive): Just walk through - spec_nodes->dirs comparing pointers. - (get_define_node, do_pragma_poison, detect_if_not_defined, - parse_ifdef): The identifier has already been looked up. - (do_ifdef, do_ifndef): parse_ifdef won't return a poisoned - node. - (do_if): Only call detect_if_not_defined at beginning of file. - (_cpp_parse_assertion): Only copy string pointers for - SPELL_STRING tokens. - (pragma_dispatch): Take a node pointer and examine its name - field. - (_cpp_init_stacks): Also initialize the spec_nodes structure. - - * cppinit.c (cpp_reader_init): Call _cpp_init_stacks after - _cpp_init_macros. - (cpp_cleanup): Free pfile->spec_nodes. Call _cpp_cleanup_* in - reverse order from the corresponding _cpp_init_* routines. - - * cppexp.c (parse_number, parse_charconst, parse_defined, - lex): Check val.node->type instead of calling cpp_defined. - Use spec_nodes entries where appropriate. - - * fix-header.c, scan-decls.c: Update for interface changes. - -2000-07-08 Geoffrey Keating - - * config/rs6000/rs6000.c (rs6000_emit_move): Fix conditions for - emitting aux_truncdfsf2. - -2000-07-03 Donn Terry (donnte@microsoft.com) - - * cppinit.c (print_help): split overlong line into ISO C89 - maximum chunks. - -2000-07-07 Zack Weinberg - - * cppexp.c: Update all code for new lexer interface. - (op_t, operator codes, struct token, tokentab2, op_to_str): Remove. - (struct suffix, vsuf_1, vsuf_2, vsuf_3, op_to_prio): New. - * cpplex.c (token_names): Trim leading CPP_ from names; make - the strings unsigned. - (_cpp_spell_operator): New. - (is_macro_disabled): Disable all macros if rescanning - preprocessed text. - (_cpp_get_directive_token): Remove. - - * cppinit.c: Don't set no_macro_expand. - * cpplib.c (read_line_number, do_line): Check only for EOF, - not VSPACE. - * cpphash.h: Update prototypes. - * cpplib.h (CPP_VSPACE): Remove. - (struct cpp_reader): Remove no_macro_expand. - -2000-07-08 Neil Booth - - * cpphash.c (is__va_args__): New function. - (count_params): Fix line reported in error messages. Use - is__va_args__. Don't return ')' on error. Flag GNU style - rest args macro definitions. - (parse_define): Check macro name is not __VA_ARGS__. - (save_expansion): Check identifier in non-varargs-macro is - not __VA_ARGS__. Don't flag GNU_VARARGS. - * cpplex.c (parse_args): Accept no argument iff GNU_REST_ARGS. - (maybe_paste_with_next): Use per-macro GNU_REST_ARGS rather - than per-token GNU_VARARGS. - * cpplib.h (GNU_VARARGS): Remove. - (GNU_REST_ARGS): New. - -Sat Jul 8 01:38:25 MET DST 2000 Jan Hubicka - - * i386.md (call_pop, call, call_value_pop): Do not set - current_function_uses_pic_offset_table for calls to static - functions or indirect calls. - -2000-07-07 Jim Wilson - - * config/ia64/ia64.c (rws_access_reg): New local write_count. If - is_predicate_reg, then take max write_count of register pair. - -2000-07-07 Kaveh R. Ghazi - - * tradcpp.c (main): Rename label `include' to `add_include' to - avoid conflicts with variable `include' in traditional C. - -2000-07-07 Jakub Jelinek - - * integrate.c (copy_insn_list): Remove REG_LABEL notes. - -2000-07-07 Jakub Jelinek - - * sibcall.c (uses_addressof): Add INMEM argument, check for - current_function_internal_arg_pointer outside of MEM rtxs in addition - to ADDRESSOFs. - (sequence_uses_addressof): Update caller. - -2000-07-07 Zack Weinberg - - * tradcpp.c (initialize_builtins): Honor NO_BUILTIN_SIZE_TYPE - and friends. - -2000-07-07 Kaveh R. Ghazi - - * system.h (UNION_INIT_ZERO): New macro for initializing union - members in structs. - - * cpplex.c (placemarker_token, eof_token): Use UNION_INIT_ZERO. - -2000-07-07 Neil Booth - - * cpp.texi: Update. - -Fri Jul 7 07:47:35 2000 Jeffrey A Law (law@cygnus.com) - - * final.c (final): Detect out of bounds array access to - the insn_lengths array. - -2000-07-07 Kazu Hirata - - * fold-const.c (fold): Fix a comment typo. - -2000-07-07 Neil Booth - - * cpp.texi: Update to new lexer. - -2000-07-06 Zack Weinberg - - * tradcpp.c: New file. - * tradcif.y: New file. - * tradcif.c: New generated file. - - * Makefile.in: Add rules to build tradcpp.o, tradcif.o, - $(srcdir)/tradcif.c. Add tradcpp to STAGESTUFF and - dependencies of C. Install tradcpp from install-common, in - $(libsubdir). - -2000-07-06 Zack Weinberg - - * cppinit.c: Include cppdefault.h. Refer to - cpp_GCC_INCLUDE_DIR and cpp_GCC_INCLUDE_DIR_len, not directly - to GCC_INCLUDE_DIR and its length. - (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE, - USER_LABEL_PREFIX, REGISTER_PREFIX, struct default_include, - STANDARD_INCLUDE_DIR, STANDARD_INCLUDE_COMPONENT): Move to - cppdefault.h. - (include_defaults_array): Move to cppdefault.c. - - * cppdefault.h: New file. - * cppdefault.c: New file. - - * Makefile.in (LIBCPP_OBJS): Add cppdefault.o. - (cppinit.o): Don't apply $(PREPROCESSOR_DEFINES) to this file. - (cppdefault.o): New rule; apply $(PREPROCESSOR_DEFINES) to - this file. - -Thu Jul 6 18:30:36 2000 Richard Kenner - - * reload.c (push_reload): When seeing if can reuse a register, - check extra registers against widest of INMODE and OUTMODE. - -2000-07-06 Neil Booth - - * cpplib.c: (_cpp_parse_assertion): Perform hash lookups - based on full length of predicate. - -2000-07-06 Hans-Peter Nilsson - - * timevar.c: [HAVE_SYS_RESOURCE_H]: Include . - [NEED_DECLARATION_GETRUSAGE]: Declare getrusage. - -2000-07-05 Kazu Hirata - - * h8300-proto.h: Fix formatting. - * h8300.c: Likewise. - * h8300.h: Likewise. - -2000-07-05 Jim Wilson - - * config/ia64/ia64.h (HARD_REGNO_MODE_OK): If FR_REGNO_P, disallow - CCmode. - -2000-07-05 Rodney Brown - - * invoke.texi: Fix minor typos - * md.texi: Fix minor typos - -2000-07-05 Zack Weinberg - - * cpplib.c (_cpp_parse_assertion): Fix buffer overrun. - -2000-07-04 Zack Weinberg - - * cpplex.c: Don't include sys/mman.h. - (cpp_push_buffer, cpp_pop_buffer): Moved to cpplib.c. - - * cpplib.c: Include sys/mman.h and obstack.h. - (cpp_push_buffer): Moved from cpplex.c; allocate buffers on an - obstack. - (cpp_pop_buffer): Moved from cpplex.c; free buffers from an obstack. - (_cpp_unwind_if_stack): Now static, unwind_if_stack. Don't - bother freeing if stack entries (they will be freed with their buffer). - (do_endif): Free if stack entries from the buffer obstack. - (push_conditional): Allocate if stack entries from the buffer obstack. - - (find_answer): Rename to _cpp_find_answer. - (do_assert, do_unassert): Update. - - * cpphash.h: Update prototypes. - (xobnew): New convenience macro. - * cpplib.h (struct cpp_reader): Add hash_ob and buffer_ob fields. - Update comments. - (struct cpp_hashnode): Remove disabled field. - - * cppinit.c: Don't include hashtab.h or splay-tree.h. - (report_missing_guard): Moved to cppfiles.c. - (cpp_reader_init): Call cpp_init_stacks, cpp_init_macros, - cpp_init_includes. - (cpp_cleanup): Call cpp_cleanup_stacks, cpp_cleanup_macros, - cpp_cleanup_includes. Don't destroy hashtab or - all_include_files here. - (cpp_finish): Use _cpp_report_missing_guards. - - * cppfiles.c (report_missing_guard): Moved from cppinit.c. - (_cpp_init_include_table): Rename _cpp_init_includes. - (_cpp_cleanup_includes, _cpp_report_missing_guards): New. - - * cppexp.c (parse_assertion): Update for new name of - find_answer. - - * Makefile.in (cpplib.o, cpphash.o, cppinit.o): Update deps. - -2000-07-04 Zack Weinberg - - * cpplib.c (do_ident): s/VSPACE/EOF/ - -2000-07-05 Neil Booth - - * cpplex.c: Fix trigraph replacement within strings. - -2000-07-04 Kaveh R. Ghazi - - * rs6000/aix.h (ASM_GENERATE_INTERNAL_LABEL): Fix format specifier. - - * xcoffout.c (assign_type_number): Constify. - (xcoffout_source_file): Add static prototype. Don't needlessly - cast away const-ness. - -2000-07-04 Jason Merrill - - * frame.h (frame_state): Move base_offset to end. - -Mon Jul 3 21:31:43 2000 Clinton Popetz - - * calls.c (emit_library_call_value_1): Revert previous change. - -2000-07-03 Zack Weinberg - - * fix-header.c (struct partial_proto): Remove unnecessary fields. - (recognized_extern, recognized_function, read_scan_file): - Update for new scheme. - (check_protection): It's still a multiple include guard even - if it doesn't always trigger. - * scan-decls.c (skip_to_closing_brace, scan_decls): Update for - new scheme. - * scan.h: Declare struct cpp_token. Update prototypes. - -2000-07-03 Neil Booth - Zack Weinberg - - Complete overhaul of the lexer and macro expander. - - * cpphash.c (object_defn, funct_defn, push_macro_expansion, - arg, arglist, argdata, reflist, collect_objlike_expansion, - collect_funlike_expansion, collect_params, - warn_trad_stringify, trad_stringify, duplicate_arg_p, add_pat, - unsafe_chars, macarg, compare_defs, special_symbol, - scan_arguments, stringify, funlike_macroexpand, - _cpp_quote_string, monthnames): Delete. - (cpp_lookup, _cpp_free_definition, dump_funlike_macro, - _cpp_create_definition, _cpp_dump_definition, - dump_hash_helper): Adjust. - (find_param, count_params, parse_define, var_args_str, - check_macro_redefinition, save_expansion): New. - - * cpplex.c (skip_block_comment, skip_line_comment, parse_name, - parse_string, output_line_command, trigraph_replace, - lex_line, cpp_push_buffer, cpp_pop_buffer, cpp_output_tokens, - cpp_scan_buffer_nooutput, cpp_scan_buffer, cpp_free_toklist, - cpp_idcmp, _cpp_get_directive_token, _cpp_init_input_buffer, - _cpp_skip_rest_of_line): Modify. - - (maybe_macroexpand, skip_comment, copy_comment, skip_string, - find_position, null_warning, bump_column, expand_name_space, - pedantic_whitespace, _cpp_output_list, _cpp_slice_toklist, - _cpp_squeeze_toklist, _cpp_scan_until, _cpp_skip_hspace, - _cpp_parse_name, _cpp_lex_token, cpp_get_non_space_token, - _cpp_prescan): Delete. - - (dump_param_spelling, process_directive, lex_next, - is_macro_disabled, stringify_arg, expand_context_stack, - output_token, make_string_token, alloc_number_token, - special_symbol, duplicate_token, maybe_paste_with_next, - can_paste, prevent_macro_expansion, restore_macro_expansion, - get_temp_token, release_temp_tokens, quote_string, - token_names, token_spellings, _cpp_expand_name_space, - _cpp_glue_header_name, _cpp_reserve_name_space, - digraph_spellings, trigraph_ok, skip_whitespace, save_comment, - placemarker_token, eof_token, cpp_context, macro_args, - get_raw_token, parse_arg, parse_args, save_token, - push_arg_context, push_macro_context, pop_context, - do_pop_context, free_macro_args, _cpp_get_line, - _cpp_run_directive): New. - - * cpplib.c (validate_else, parse_include, push_conditional, - pass_thru_directive, read_line_number, parse_ifdef, - detect_if_not_defined, _cpp_check_directive, do_define, - do_undef, do_include, do_import, do_include_next, do_error, - do_warning, do_ident, do_pragma, pragma_dispatch, gcc_pragmas, - top_pragmas, do_pragma_gcc, do_pragma_implementation, - do_pragma_poison, do_pragma_system_header, - do_pragma_dependency, do_sccs, do_ifdef, do_ifndef, do_else, - dl_elif, do_endif, _cpp_unwind_if_stack, do_assert, - do_unassert, cpp_define, cpp_undef, cpp_assert, cpp_unassert, - cpp_defined): Update for new scheme. - (strtoul_for_line, get_define_node, dump_macro_name, - _cpp_check_linemarker, _cpp_parse_assertion): New. - (_cpp_handle_directive, do_pragma_default): Delete. - - * cpphash.h (struct predicate): Now struct answer. - (enum spell_type, struct token_spelling, struct directive, - directive_handler): New. - Update prototypes. Remove unused macros. - * cpplib.h: Update prototypes. Remove unused macros, - structure definitions, and fields. - - * cpperror.c (print_containing_files, v_message): Adjust. - * cppexp.c (parse_assertion, lex, parse_escape, - _cpp_parse_expr): Adjust. - * cppfiles.c (open_include_file, _cpp_execute_include, - _cpp_compare_file_date, cpp_read_file, read_include_file): - Adjust. - * cppinit.c (dump_special_to_buffer): Delete. - (append_include_chain, merge_include_chains, cpp_reader_init, - cpp_cleanup, initialize_builtins, builtin_array, cpp_start_read, - cpp_finish, handle_option, print_help): Adjust. - * cppmain.c (main): Adjust. - -2000-07-03 Zack Weinberg - - * cppspec.c (lang_specific_driver): Use double quotes in error - message. - -Mon Jul 3 16:53:43 2000 Clinton Popetz - - * calls.c (emit_library_call_value_1): Use valreg instead - of hard_libcall_value. - -2000-07-03 Geoff Keating - - * config/rs6000/rs6000.c (rs6000_emit_move): New function. - * config/rs6000/rs6000-proto.h: Prototype rs6000_emit_move. - * config/rs6000/rs6000.md (movsi): Use rs6000_emit_move. - (movhi): Likewise. - (movqi): Likewise. - (movdf): Likewise. - (movsf): Likewise. - (movdi): Likewise. - (movti): Likewise. - - * expmed.c (expand_mult_highpart): Use op1 instead of wide_op1 when - mode instead of wider_mode is being used. - -2000-07-03 Jakub Jelinek - - * config/i386/i386.md (movstrictqi_xor): Use 'q' constraint instead - of 'r'. Use q_regs_operand. - (andsi_1+2): Use q_regs_operand. - -2000-07-03 Jakub Jelinek - - * builtins.c (get_memory_rtx): Always put into alias set 0. - -2000-07-03 Nick Clifton - - * config/arm/arm.md: Fix post increment and pre increment - peepholes so that they do not generate UNPREDICATBLE opcodes. - (ie ones where the increment clobbers the source/destination). - -2000-07-01 Marek Michalkiewicz - - * config/avr/avr.c (out_adj_frame_ptr): Make "frame pointer - change too big for -mtiny-stack" a warning, if larger than 63. - (out_set_stack_ptr): Change the logic so -mno-interrupts is - always safe to use on possible future devices. - (function_prologue): Write SPH before SPL, for consistency. - If interrupt_func_p true, we know we have enabled interrupts. - (avr_num_arg_regs): New function. Round up to even number of - bytes if no -mpack-args or if calling a libgcc function. - (function_arg, function_arg_advance): Use it. - (output_movsisf, ashlsi3_out, ashrsi3_out, lshrsi3_out): - Output "movw" if available. - (out_tsthi, out_tstsi, ashlqi3_out, lshrqi3_out): Change uses - of TEST_HARD_REG_CLASS macro to test_hard_reg_class function. - (asm_output_section_name): Add blanks for consistent output. - (encode_section_info): Set TREE_READONLY for progmem data to - avoid gas warnings about changed section attributes. - (avr_hard_regno_mode_ok): Force non-QImode data to start in - even numbered registers on devices with "movw". - * config/avr/avr.h (MASK_*): Define bits for target_flags. - (TARGET_SWITCHES): Mark help strings for translation. - Add new -mpack-args and -menhanced switches. - (TARGET_OPTIONS): Mark help strings for translation. - (progmem_section): Add section attributes. - * config/avr/avr.md (*movhi, call_insn, call_value_insn): - Output "movw" if available. - (mulqi3, mulqihi3, umulqihi3, mulhi3, *tablejump_enh): - New patterns. - * config/avr/libgcc.S (_mulqi3, _divqi3): Update to the new - call convention (arguments aligned on even registers). - (_cleanup, _exit): Make weak symbols libc can override. - -2000-07-03 Kaveh R. Ghazi - - * fp-bit.h: New file. - - * fp-bit.c: Move common code, prototypes, etc into fp-bit.h. - Comment #endif statements. - (__thenan_sf, __thenan_df): Add missing braces around initializer. - -Mon Jul 3 00:32:47 2000 Jeffrey A Law (law@cygnus.com) - - * gcse.c (compute_pre_data): Compute ae_kill using other local - properties instead of calling compute_ae_kill. - - * alias.c (init_alias_analysis): Do not call - prologue_epilogue_contains until after reload has completed. - -2000-07-02 Benjamin Chelf - - * c-common.h (genrtl_begin_compound_stmt): Remove declaration. - (genrtl_finish_compound_stmt): Likewise. - (genrtl_compound_stmt): Change to return void. - - * c-semantics.c (genrtl_begin_compound_stmt): Remove function and - move code from here to ... - (genrtl_compound_stmt): ... here. - (genrtl_finish_compound_stmt): Remove. - (expand_stmt): Add comment. - -2000-07-02 Zack Weinberg - - * c-typeck.c (build_indirect_ref): Use COMPLETE_OR_VOID_TYPE_P - and VOID_TYPE_P. - -2000-07-02 Jakub Jelinek - - * cpplib.h (struct cpp_reader): New field include_depth. - (struct cpp_printer): Rename last_bsd to last_id. - * cppfiles.c (read_include_file): Bump include_depth. - * cpplex.c (cpp_pop_buffer): Decrement include_depth. - (output_line_command): Output correct #line if a header - is including itself and is not protected against multiple inclusion. - Use include_depth instead of buffer_stack_depth, last_id instead of - last_bsd. - * cppinit.c (cpp_start_read): Initialize last_id instead of - last_bsd. - -2000-07-01 Benjamin Chelf - - * Makefile.in (C_AND_OBJC_OBJS): Added c-semantics.o. - (c-semantics.o): New target. - - * c-common.h (TREE_LANG_FLAG_?): Added documentation. - (genrtl_do_pushlevel): Moved from cp/cp-tree.h. - (genrtl_clear_out_block): Likewise. - (genrtl_goto_stmt): Likewise. - (genrtl_expr_stmt): Likewise. - (genrtl_decl_stmt): Likewise. - (genrtl_if_stmt): Likewise. - (genrtl_while_stmt): Likewise. - (genrtl_do_stmt): Likewise. - (genrtl_return_stmt): Likewise. - (genrtl_for_stmt): Likewise. - (genrtl_break_stmt): Likewise. - (genrtl_continue_stmt): Likewise. - (genrtl_scope_stmt): Likewise. - (genrtl_switch_stmt): Likewise. - (genrtl_case_label): Likewise. - (genrtl_begin_compound_stmt): Likewise. - (gerntl_finish_compound_stmt): Likewise. - (genrtl_compound_stmt): Likewise. - (genrtl_asm_stmt): Likewise. - (genrtl_decl_cleanup): Likewise. - (DECL_ANON_UNION_ELEMS): Likewise. - (emit_local_var): Likewise. - (make_rtl_for_local_static): Likewise. - (expand_cond): Likewise. - (expand_stmt): Likewise. - (c_expand_return): Likewise. - (c_expand_start_case): Likewise. - (do_case): Likewise. - (COMPOUND_STMT_NO_SCOPE): Likewise. - (c_expand_asm_operands): Likewise. - (NEW_FOR_SCOPE_P): New macro. - (expand_expr_stmt_fn): New type. - - (set_current_function_name_declared): Likewise. - (current_function_name_declared): Likewise. - (lang_expand_stmt): Likewise. - (stmts_are_full_exprs_p): Likewise. - (anon_aggr_type_p): Likewise. - (lang_expand_expr_stmt): Likewise. - (build_case_label): Likewise. - - * c-decl.c (lang_expand_expr_stmt): Initialize. - (stmts_are_full_exprs_p): Define. - (current_function_name_declared): Likewise. - (do_case): Likewise. - (lang_expand_stmt): Likewise. - (set_current_function_name_declared): Likewise. - (anon_aggr_type_p): Likewise. - - * c-semantics.c: New file. - (expand_cond): Moved from cp/semantics.c. - (genrtl_do_pushlevel): Likewise. - (genrtl_clear_out_block): Likewise. - (genrtl_goto_stmt): Likewise. - (genrtl_expr_stmt): Likewise. - (genrtl_decl_stmt): Likewise. - (genrtl_if_stmt): Likewise. - (genrtl_while_stmt): Likewise. - (genrtl_do_stmt): Likewise. - (genrtl_return_stmt): Likewise. - (genrtl_for_stmt): Likewise. - (genrtl_break_stmt): Likewise. - (genrtl_continue_stmt): Likewise. - (genrtl_scope_stmt): Likewise. - (genrtl_switch_stmt): Likewise. - (genrtl_case_label): Likewise. - (genrtl_begin_compound_stmt): Likewise. - (genrtl_finish_compound_stmt): Likewise. - (genrtl_compound_stmt): Likewise. - (genrtl_asm_stmt): Likewise. - (genrtl_decl_cleanup): Likewise. - (make_rtl_for_local_static): Moved from cp/decl.c. - (emit_local_var): Likewise. - (expand_stmt): Define. - - * c-tree.h: (c_expand_asm_operands): Moved to c-common.h. - (c_expand_return): Likewise. - (c_expand_start_case): Likewise. - -2000-07-01 Richard Henderson - - * config/ia64/ia64.c (symbolic_operand): Reject CONST expressions - with the low 13 bits set. - (move_operand): Check for CONST|SYMBOL_REF|LABEL_REF directly. - * config/ia64/ia64.md (movdi): Likewise. Expand a CONST with one - of the low 13 bits into a CONST plus an adddi3. - (load_symptr): Set RTX_UNCHANGING_P. - -See ChangeLog.3 for earlier changes. diff --git a/gcc/ChangeLog.5 b/gcc/ChangeLog.5 deleted file mode 100644 index c5f3b54200ff..000000000000 --- a/gcc/ChangeLog.5 +++ /dev/null @@ -1,14446 +0,0 @@ -2001-06-30 Zack Weinberg - - * rtl.def (DEFINE_INSN, DEFINE_INSN_AND_SPLIT, DEFINE_PEEPHOLE): - Change output-template slot to format 'T'. - * rtl.h (XTMPL): New. - * read-rtl.c (read_escape): New function. - (read_quoted_string, read_braced_string): Use it. - (read_rtx): Set star_if_braced from the format string. - Use XTMPL where appropriate. - * genoutput.c (gen_insn, gen_peephole): Use XTMPL to get the - template string. - - * rtl.c: Include errors.h for sake of rtl_check_failed* routines. - Document 'T' in rtx format strings. - * Makefile.in (rtl.o, $(HOST_PREFIX_1)rtl.o): Depend on errors.h. - * errors.c (internal_error): Add missing ": " at end of string. - - * i860.md: Change triple backslashes to double backslashes at - ends of lines in output templates. - * ns32k.md: Remove stray backslash-newline in output template. - -2001-06-29 Nick Clifton - - * gcc.c (process_command): Append a DIR_SEPARATOR to a path - specified by the -B switch, if doing so would create a valid - directory name. - * doc/invoke.texi: Document changed behavior of -B. - -2001-06-29 DJ Delorie - - * simplify-rtx.c (simplify_subreg): When simplifying a CONCAT, at - least get rid of the CONCAT if we can't simplify further. - -Fri Jun 29 12:27:24 2001 Jeffrey A Law (law@cygnus.com) - - * simplify-rtx.c (simplify_rtx): Use swap_commutative_operands_p. - - * doc/gcc.texi (Passes): Update due to recent -fdce -> -fssa-dce - changes. Fix documentation for SSA DCE pass. - - * ssa-dce.c (ssa_eliminate_dead_code): Renamed from - eliminate_date_code. - * ssa.h (ssa_eliminate_dead_code): Corresponding changes. - * timevar.def (TV_SSA_DCE): Renamed from TV_DEAD_CODE_ELIM. - * toplev.c (DFI_ssa_dce): Renamed from DFI_dce. - (dump_file_info): Similar changes. - (flag_ssa_dce): Similarly - (f_options): Similar changes. - (rest_of_compilation): Corresponding changes. - * doc/invoke.texi: Update as option is now -fssa-dce instead - of -fdce. Update dump file name. - - * ssa-dce.c (note_inherently_necessary_set): New function. - (find_inherently_necessary): Use it. Do not consider - NOTEs, CODE_LABELs or BARRIERS are necessary. Improve - handling of asms and unspecs. - (delete_insn_bb): Only delete INSNs, CALL_INSNs or JUMP_INSNs. - -2001-06-29 Joseph S. Myers - - * target.h (struct gcc_target): Add comp_type_attributes and - set_default_type_attributes. - * target-def.h (TARGET_COMP_TYPE_ATTRIBUTES, - TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Define. - (TARGET_INITIALIZER): Update. - * doc/tm.texi (COMP_TYPE_ATTRIBUTES, TARGET_COMP_TYPE_ATTRIBUTES, - SET_DEFAULT_TYPE_ATTRIBUTES, TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): - Update documentation of old target macros to describe new target - hooks. - * tree.c (make_node): Use target.set_default_type_attributes. - (default_comp_type_attributes, - default_set_default_type_attributes): New functions. - * tree.h (default_comp_type_attributes, - default_set_default_type_attributes): Declare. - * c-typeck.c (COMP_TYPE_ATTRIBUTES): Don't define. - (comptypes): Use target.comp_type_attributes. - * config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h - (arc_comp_type_attributes, arc_set_default_type_attributes, - COMP_TYPE_ATTRIBUTES, SET_DEFAULT_TYPE_ATTRIBUTES): Remove - functions and macros with default behavior. - * config/m32r/m32r-protos.h, config/m32r/m32r.c, - config/m32r/m32r.h (m32r_comp_type_attributes, - m32r_set_default_type_attributes, COMP_TYPE_ATTRIBUTES, - SET_DEFAULT_TYPE_ATTRIBUTES): Likewise. - * config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c, - config/m68hc11/m68hc11.h (m68hc11_comp_type_attributes, - m68hc11_set_default_type_attributes, COMP_TYPE_ATTRIBUTES, - SET_DEFAULT_TYPE_ATTRIBUTES): Likewise. - * config/ns32k/ns32k-protos.h, config/ns32k/ns32k.c, - config/ns32k/ns32k.h (ns32k_comp_type_attributes, - COMP_TYPE_ATTRIBUTES): Likewise. - * config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c, - config/rs6000/rs6000.h (rs6000_comp_type_attributes, - rs6000_set_default_type_attributes, COMP_TYPE_ATTRIBUTES, - SET_DEFAULT_TYPE_ATTRIBUTES): Likewise. - * config/d30v/d30v.h (COMP_TYPE_ATTRIBUTES, - SET_DEFAULT_TYPE_ATTRIBUTES): Remove commented out macro - definitions. - * config/i386/i386.h (SET_DEFAULT_TYPE_ATTRIBUTES): Likewise. - * config/ns32k/ns32k.h (SET_DEFAULT_TYPE_ATTRIBUTES): Likewise. - * config/arm/arm.c (arm_comp_type_attributes, - arm_set_default_type_attributes): Make static. - (TARGET_COMP_TYPE_ATTRIBUTES, TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): - Define. - * config/arm/arm.h (COMP_TYPE_ATTRIBUTES, - SET_DEFAULT_TYPE_ATTRIBUTES): Don't define. - * config/arm/arm-protos.h (arm_comp_type_attributes, - arm_set_default_type_attributes): Don't declare. - * config/i386/i386.c (ix86_comp_type_attributes): Make static. - (TARGET_COMP_TYPE_ATTRIBUTES): Define. - * config/i386/i386.h (COMP_TYPE_ATTRIBUTES): Don't define. - * config/i386/i386-protos.h (ix86_comp_type_attributes): Don't - declare. - -2001-06-28 Jan van Male - - * predict.c (dump_prediction): Eliminate fprintf warning. - -2001-06-28 Diego Novillo - - * flow.c (dump_bb): Remove unused third argument to call - to fprintf when displaying the basic block header. - -2001-06-28 Michael Hayes - Jeff Law - - * Makefile.in (OBJS): Add df.o - (df.o): Add dependencies. - * basic-block.h (flow_depth_first_order_compute): Declare. - * flow.c (flow_depth_first_order_compute): No longer declare. - Make external. - * df.c, df.h: New files. - -2001-06-28 Zack Weinberg - - * config/i386/i386.md: Global update to use new string syntax - where it will improve readability. Warning fixes: - (*truncdfsf2_2): Abort if which_alternative is not 0 or 1. - (*adddi_1_rex64, *adddi_2_rex64, *adddi_3_rex64, - *adddi_4_rex64, *adddi_5_rex64): Cast 1 to unsigned int. - - * read-rtl.c: Syntactic sugar for C embedded in strings in - machine descriptions. - (read_string): Break inner loop into separate function. Takes - an int. Dispatch to read_quoted_string or read_braced_string - as appropriate. Automatically insert a leading star on braced - strings if STAR_IF_BRACED is true. - (read_quoted_string, read_braced_string): New functions. - * doc/rtl.texi, doc/md.texi: Document new syntax. Update - examples to match. - - * rtl.c: Split RTL reader (read_rtx, read_skip_spaces, - traverse_md_constants, fatal_with_file_and_line, - fatal_expected_char, read_name, read_string, def_hash, - def_name_eq_p, read_constants, and related data) to its own - file. Weed out now-unnecessary #includes. - * read-rtl.c: New file. - * Makefile.in (HOST_RTL): Add read-rtl.o. - (read-rtl.o): New rule. - (rtl.o, $(HOST_PREFIX_1)rtl.o): Update dependencies. - * doc/gcc.texi (Passes): Talk briefly about the support - library used by genfoo. - * doc/rtl.texi (Reading RTL): read_rtx is not available in the - compiler itself. - -2001-06-28 Stan Shebs - - * config/darwin.h (REGISTER_TARGET_PRAGMAS): Define. - * config/darwin-c.c: New file. - * config/darwin-protos.h: Declare new functions. - * config/rs6000/t-darwin (darwin-c.o): New rule. - * config.gcc (powerpc-*-darwin*): Define c_target_objs and - cxx_target_objs. - * doc/extend.texi (Pragmas): New section. - -Thu Jun 28 20:13:11 CEST 2001 Jan Hubicka - - * flow.c (try_merge_block): Rename to try_optimize_cfg; - do basic simplifications on the CFG. - (is_forwarder_block_p, can_fallthru, try_redirect_by_replacing_jump, - try_simplify_condjump): New. - (redirect_edge_and_branch): Try replace jump insn. - (flow_delete_insn): Handle deleting of ADDR_VEC insns. - - * basic-block.h (FALLTHRU_EDGE, BRANCH_EDGE): New macros. - -Thu Jun 28 11:19:42 2001 Jeffrey A Law (law@cygnus.com) - - * ssa-dce.c (eliminate_dead_code): Properly handle control - dependencies implied by PHI nodes. - - * ssa-dce.c (eliminate_dead_code): Remove fake edges from the - CFG after dead code elimination is complete. - -2001-06-28 Rainer Orth - - * gthr-posix.h [LIBOBJC]: Add weak definitions of - sched_get_priority_max, sched_get_priority_min. - -2001-06-28 Gabriel Dos Reis - - * diagnostic.c (default_print_error_function): Tweak. - (report_error_function): Likewise. - * toplev.h (default_print_error_function): Move to... - * diagnostic.h: ...here. Add a `diagnostic_context *' parameter. - * tree.h (print_error_function): Move to... - * diagnostic.h: ...here. Add a `diagnostic_context *' parameter. - -Thu Jun 28 06:16:45 2001 Richard Kenner - - * expr.c (expand_assignment): When have varying-length object, - make MEM a BLKmode. - (expand_expr, case ADDR_EXPR): Use SAVE_EXPR_RTL after putting - SAVE_EXPR stack in case we had a SUBREG. - -Thu Jun 28 10:31:06 CEST 2001 Jan Hubicka - - * i386.md (cmp?i): Simplify; refuse immediate operand - in alternative 0 - * i386.c (cmpsi_operand): Refuse constants. - - * i386.md (movsi_insv_1, movsi_insv_1_rex64): Allow immediate operand. - - * flow.c (block_label, redirect_edge_and_branch): Split out from .... - (split_edge) .... here; - -2001-06-28 Neil Booth - - * i386/i386.c (ix86_valid_type_attribute_p): Give external - linkage, move declaration to... - * i386/i386-protos.h: ...here. - -2001-06-27 H.J. Lu (hjl@gnu.org) - - * build-make (CC): Removed. - (HOST_CC): Set to $(CC_FOR_BUILD). - (HOST_CFLAGS): Replace $(CFLAGS) with $(CFLAGS_FOR_BUILD). - Fix a typo in comments. - - * configure.in: Set CFLAGS to $(CFLAGS_FOR_BUILD) when - generating auto-build.h for canadian cross compile. Set CC - to `"${CC_FOR_BUILD}"' instead of just `${CC_FOR_BUILD}'. - Save/restore CFLAGS. - * configure: Regenerated. - -2001-06-27 Jim Wilson - - * emit-rtl.c (gen_highpart): Call validize_mem. - -2001-06-27 Bruce Korb - - * fixinc/inclhack.def(hpux11_cpp_pow_inline): new, but real similar to - hpux10_cpp_pow_inline. Not similar enough. - (solaris_mutex_init): renamed. PTHREAD_*_INITIALIZER is a problem for - all Solaris versions. This fix patches MUTEX and COND initializers, - the RWLOCK one will wait for someone to complain. For now, anyway. - (uw7_byteorder_fix): It was looking for the byteorder.h file in the - wrong directory. - -2001-06-27 Stan Shebs - - * objc/objc-act.c (handle_impent): Rewrite to be more portable - and to use ASM_DECLARE_CLASS_REFERENCE. - * config/darwin.h (ASM_DECLARE_CLASS_REFERENCE): Rename from - undocumented DECLARE_CLASS_REFERENCE, add file argument. - * doc/tm.texi (ASM_DECLARE_CLASS_REFERENCE): Document. - -Wed Jun 27 18:01:09 2001 Jeffrey A Law (law@cygnus.com) - - * simplify-rtx.c (simplify_rtx): Canonicalize commutative expressions - by putting complex operands first and constants second. - -2001-06-27 Gabriel Dos Reis - - * diagnostic.h: Add documentation. Make macros polymorphic. - * diagnostic.c (ideal_line_wrap_cutoff): Remove - definition. Replace with diagnostic_line_cutoff. - (prefixing_policy): Remove. Replace with diagnostic_prefixing_rule. - -2001-06-27 Joseph S. Myers - - * doc/c-tree.texi, doc/contrib.texi, doc/cpp.texi, - doc/cppinternals.texi, doc/extend.texi, doc/gcc.texi, - doc/gcov.texi, doc/install-old.texi, doc/install.texi, - doc/invoke.texi, doc/md.texi, doc/rtl.texi, doc/tm.texi: Replace - . at end of sentences preceded by a capital letter with @.. - -2001-06-26 Daniel Berlin - - * doc/invoke.texi: Add description of max-gcse-passes param. - - * gcse.c (gcse_main): Use MAX_GCSE_PASSES instead of MAX_PASSES. - (MAX_PASSES): Remove now unneeded macro. - - * params.h (MAX_GCSE_PASSES): New macro, to get parameter value of - max-gcse-passes param. - - * params.def (PARAM_MAX_GCSE_PASSES): New parameter, controlling - maximum number of GCSE passes to run. Defaults to 1 (which is what - MAX_PASSES in gcse.c used to be). - -2001-06-27 Neil Booth - - * system.h (TARGET_ESC): Move to ... - * defaults.h (TARGET_ESC): ... here. - * target-def.h (TARGET_VALID_DECL_ATTRIBUTE, - TARGET_VALID_TYPE_ATTRIBUTE): Default to a no-op handler. - * tree.c (default_valid_attribute_p): New. - (valid_machine_attribute): Handlers can not be NULL. - * tree.h (default_valid_attribute_p): New. - * doc/tm.texi: Document TARGET_ESC. - * cp/decl2.c (import_export_class): Update. - -2001-06-26 Bruce Korb - - * gcc/fixinc/fixincl.c(initialize): In very strict ANSI, you cannot - use preprocessing directives inside a string literal. Fixed. - -2001-06-26 Jim Wilson - - * doc/tm.texi (MAX_LONG_DOUBLE_TYPE_SIZE, INTEL_EXTENDED_IEEE_FORMAT): - Document. - -2001-06-27 Joseph S. Myers - - * doc/cpp.texi, doc/cppinternals.texi, doc/extend.texi, - doc/gcc.texi, doc/install.texi, doc/invoke.texi, doc/md.texi, - doc/tm.texi: Use @: where necessary when a full stop does not end - a sentence. - -2001-06-27 Joseph S. Myers - - * doc/gcc.texi, doc/install.texi, doc/invoke.texi: Remove trailing - whitespace. - -2001-06-26 Joseph S. Myers - - * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi, doc/gcc.texi, - doc/install.texi, doc/invoke.texi, doc/objc.texi, doc/rtl.texi, - doc/tm.texi: Use two spaces after ends of sentences. - -2001-06-26 Daniel Berlin - - * toplev.c (display_help): Fix param thinko. - * Makefile.in: Fix params.h dependencies. - -2001-06-26 Gabriel Dos Reis - - * toplev.c (decode_f_option): Adjust setting. - (toplev_main): Call diagnostic_initialize. Remove call to - reshape_diagnostic_buffer._ - - * diagnostic.h (struct output_buffer): Add new field format_decoder. - (diagnostic_format_decoder): New macro. - (diagnostic_prefixing_rule): Likewise. - (diagnostic_line_cutoff): Likewise. - (set_message_prefixing_rule): Remove. - - * diagnostic.c (lang_printer): Remove. - (diagnostic_message_length_per_line): Likewise. - (current_prefixing_rule): Likewise. - (initialize_diagnostics): Rename to... - (diagnostic_initialize): ...this. Tweak. - (default_initialize_buffer): Remove. - (reshape_diagnostic_buffer): Likewise. - (init_output_buffer): Adjust prefixing rule setting. - (output_format): Use format_decoder from the output_buffer. - - * c-lang.c (c_init): Adjust tree formatter setting. - -2001-06-26 Rainer Orth - - * config/i386/sol2.h (CPP_SPEC): Pass -P for .S files. - -2001-06-26 Neil Booth - - * Makefile.in (TARGET_H, TARGET_DEF_H): New. - (c-decl.o, tree.o, c-typeck.o, $(out_object_file)): Update. - * c-decl.c (duplicate_decls): Use function pointer. - * c-typeck.c (common_type): Similarly. - * tree.c (valid_machine_attribute): Similarly. - (merge_machine_type_attributes): Rename merge_type_attributes. - (merge_machine_decl_attributes): Rename merge_decl_attributes. - (merge_dllimport_decl_attributes): New function. - * tree.h (merge_machine_type_attributes): Rename merge_type_attributes. - (merge_machine_decl_attributes): Rename merge_decl_attributes. - (merge_dllimport_decl_attributes): New prototype. - * target.h: New. - * target-def.h: New. - -doc: (Joseph Myers) - * doc/gcc.texi, doc/tm.texi: Update documentation. - -cp: Make-lang.in: Update dependencies. - * spew.c: Include target.h. - (duplicate_decls): Call target function. - * decl2.c: include target.h - (import_export_class): Use existence of target function pointer. - * typeck.c: Include target.h. - (qualify_type_recursive): Rename variable. Call target function. - (type_after_usual_arithmetic_conversions): Similarly. - (common_type): Similarly. - -config: * 1750a/1750a.c, a29k/29k.c, alpha/alpha.c, arc/arc.c, arm/arm.c, - avr/avr.c, c4x/c4x.c, clipper/clipper.c, convex/convex.c, - d30v/d30v.c, dsp16xx/dsp16xx.c, elxsi/elxsi.c, fr30/fr30.c, - i370/i370.c, i386/i386.c, i860/i860.c, i960/i960.c, ia64/ia64.c, - m32r/m32r.c, m68hc11/m68hc11.c, m68k/m68k.c, m88k/m88k.c, - mips/mips.c, mn10200/mn10200.c, mn10300/mn10300.c, ns32k/ns32k.c, - pa/pa.c, pdp11/pdp11.c, pj/pj.c, romp/romp.c, rs6000/rs6000.c, - sh/sh.c, sparc/sparc.c, v850/v850.c, vax/vax.c, we32k/we32k.c) - : Include target.h and target-def.h. Define target. - - * arc/arc-protos.h (arc_valid_machine_decl_attribute): Remove. - * arc/arc.c (arc_valid_machine_decl_attribute): Rename - arc_valid_decl_attribute, make static. - * arc/arc.h (VALID_MACHINE_TYPE_ATTRIBUTE): Remove. - * arm/arm-protos.h (arm_valid_machine_decl_attribute, - arm_valid_type_attribute_p, arm_pe_valid_machine_decl_attribute, - arm_pe_merge_machine_decl_attributes): Remove. - * arm/arm.c (arm_valid_machine_decl_attribute_p): Rename - arm_valid_decl_attribute_p, make static. - (arm_pe_valid_decl_attribute_p): Move from pe.c. - * arm/pe.c (arm_pe_valid_machine_decl_attribute_p): Move to arm.c. - (arm_pe_merge_machine_decl_attributes): Move to tree.c. - * arm/arm.h (VALID_MACHINE_TYPE_ATTRIBUTE): Remove. - * arm/coff.h (VALID_MACHINE_DECL_ATTRIBUTE): Remove. - * arm/elf.h (VALID_MACHINE_DECL_ATTRIBUTE): Remove. - * arm/pe.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): New. - (VALID_MACHINE_TYPE_ATTRIBUTE, VALID_MACHINE_DECL_ATTRIBUTE): Remove. - * avr/avr-protos.h (valid_machine_type_attribute, - valid_machine_decl_attribute): Remove. - * avr/avr.c (valid_machine_type_attribute, - valid_machine_decl_attribute): Rename and make static. - * avr/avr.h (VALID_MACHINE_TYPE_ATTRIBUTE, - VALID_MACHINE_DECL_ATTRIBUTE): Remove. - * c4x/c4x-protos.h (c4x_valid_type_attribute_p): Remove. - * c4x/c4x.c (c4x_valid_type_attribute_p): Make static. - * c4x/c4x.h (VALID_MACHINE_TYPE_ATTRIBUTE): Remove. - * d30v/d30v.h: Remove obsolete comments. - * h8300/h8300-protos.h (h8300_valid_machine_decl_attribute): Remove. - * h8300/h8300.c (h8300_valid_machine_decl_attribute): Rename, make - static. - * h8300/h8300.h (VALID_MACHINE_DECL_ATTRIBUTE): Remove. - * i386/cygwin.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define. - (i386_pe_merge_decl_attributes, MERGE_MACHINE_DECL_ATTRIBUTES, - i386_pe_valid_type_attributes_p): Remove. - * i386/i386-protos.h (ix86_valid_decl_attribute_p, - ix86_valid_type_attribute_p): Remove. - * i386/i386.c (ix86_valid_decl_attribute_p): Remove. - (ix86_valid_type_attribute_p): Make static. - * i386/i386.h (VALID_MACHINE_DECL_ATTRIBUTE, - VALID_MACHINE_TYPE_ATTRIBUTE): Remove. - * i386/winnt.c (i386_pe_merge_decl_attributes): Move to tree.c. - * ia64/ia64-protos.h (ia64_valid_type_attribute): Remove. - * ia64/ia64.c (ia64_valid_type_attribute): Make static. - * ia64/ia64.h (VALID_MACHINE_TYPE_ATTRIBUTE): Remove. - * m32r/m32r-protos.h (m32r_valid_machine_decl_attribute): Remove. - * m32r/m32r.c (m32r_valid_decl_attribute): Make static. - * m32r/m32r.h (VALID_MACHINE_DECL_ATTRIBUTE): Remove. - * m68hc11/m68hc11-protos.h (m68hc11_valid_decl_attribute_p, - m68hc11_valid_type_attribute_p): Remove. - * m68hc11/m68hc11.c (m68hc11_valid_decl_attribute_p): Remove. - (m68hc11_valid_type_attribute_p): Make static. - * m68hc11/m68hc11.h (VALID_MACHINE_DECL_ATTRIBUTE, - VALID_MACHINE_TYPE_ATTRIBUTE): Remove. - * mcore/mcore-protos.h (mcore_valid_machine_decl_attribute, - mcore_merge_machine_decl_attribute): Remove. - * mcore/mcore.c (mcore_valid_machine_decl_attribute): Rename, - make static. - (mcore_merge_machine_decl_attributes): Move to tree.c. - * mcore/mcore.h (VALID_MACHINE_DECL_ATTRIBUTE, - VALID_MACHINE_TYPE_ATTRIBUTE): Remove. - (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define. - * ns32k/ns32k-protos.h (ns32k_valid_decl_attribute_p, - ns32k_valid_type_attribute_p): Remove. - * ns32k/ns32k.c (ns32k_valid_decl_attribute_p): Remove. - (ns32k_valid_type_attribute_p): Make static. - * ns32k/ns32k.h (VALID_MACHINE_DECL_ATTRIBUTE, - VALID_MACHINE_TYPE_ATTRIBUTE): Remove. - * rs6000/rs6000-protos.h (rs6000_valid_decl_attribute_p, - rs6000_valid_type_attribute_p): Remove. - * rs6000/rs6000.c (rs6000_valid_decl_attribute_p): Remove. - (rs6000_valid_type_attribute_p): Make static. - * rs6000/rs6000.h (VALID_MACHINE_DECL_ATTRIBUTE, - VALID_MACHINE_TYPE_ATTRIBUTE): Remove. - * sh/sh-protos.h (sh_valid_machine_decl_attribute): Remove. - * sh/sh.c (sh_valid_machine_decl_attribute): Rename, make static. - * sh/sh.h (VALID_MACHINE_DECL_ATTRIBUTE): Remove. - * v850/v850-protos.h (v850_valid_machine_decl_attribute): Remove. - * v850/v850.c (v850_valid_machine_decl_attribute): Rename, make static. - * v850/v850.h (VALID_MACHINE_DECL_ATTRIBUTE): Remove. - -2001-06-26 Vladimir Makarov - - * glimits.h (USHRT_MAX): Use unsigned suffix if int can not hold - it. - -2001-06-26 Gabriel Dos Reis - - * diagnostic.h (struct diagnostic_context): Add new field. - (lang_diagnostic_starter, lang_diagnostic_finalizer): Remove - declaratons. - (global_dc): Declare. - * diagnostic.c (global_diagnostic_context): New variable. - (global_output_buffer): Remove. - (global_dc): Define. - (lang_diagnostic_starter, lang_diagnostic_finalizer): Remove - definitions. - (initialize_diagnostics): Adjust initialization. - (set_diagnostic_context): Adjust setting. - -2001-06-26 Rainer Orth - - * config/mips/iris5.h (UNALIGNED_INT_ASM_OP, - UNALIGNED_SHORT_ASM_OP): Define. - * config/mips/iris6.h (UNALIGNED_INT_ASM_OP, - UNALIGNED_SHORT_ASM_OP): Undef. - -Tue Jun 26 12:40:12 CEST 2001 Jan Hubicka - - * i386.md (float_truncate splitter, and to mov splitters): Add - reload_completed; fix operand predicate. - - * haifa-sched.c (sched_init): Do not split insns. - * toplev.c (rest_of_compilation): Call split_all_insns before - sched1 pass; simplify condition of post-reload splitter; - call split_all_insn before sched2 pass. - -2001-06-26 Gabriel Dos Reis - - * diagnostic.h (diagnostic_prefixing_rule_t): New enum type. - (set_message_prefixing_rule): Adjust prototype. - * diagnostic.c (current_prefixing_rule): Adjust type. - -2001-06-26 Neil Booth - - * defaults.h: Default escape sequences to ASCII. - * config/i370/i370.h: Adjust for ASCII default. - * config/1750a/1750a.h: Remove escape sequence definitions. - * config/a29k/a29k.h: Similarly. - * config/alpha/alpha.h: Similarly. - * config/arc/arc.h: Similarly. - * config/arm/arm.h: Similarly. - * config/avr/avr.h: Similarly. - * config/c4x/c4x.h: Similarly. - * config/clipper/clipper.h: Similarly. - * config/convex/convex.h: Similarly. - * config/d30v/d30v.h: Similarly. - * config/dsp16xx/dsp16xx.h: Similarly. - * config/elxsi/elxsi.h: Similarly. - * config/fr30/fr30.h: Similarly. - * config/h8300/h8300.h: Similarly. - * config/i386/i386.h: Similarly. - * config/i860/i860.h: Similarly. - * config/i960/i960.h: Similarly. - * config/ia64/ia64.h: Similarly. - * config/m32r/m32r.h: Similarly. - * config/m68hc11/m68hc11.h: Similarly. - * config/m68k/m68k.h: Similarly. - * config/m88k/m88k.h: Similarly. - * config/mcore/mcore.h: Similarly. - * config/mips/mips.h: Similarly. - * config/mn10200/mn10200.h: Similarly. - * config/mn10300/mn10300.h: Similarly. - * config/ns32k/ns32k.h: Similarly. - * config/pa/pa.h: Similarly. - * config/pdp11/pdp11.h: Similarly. - * config/pj/pj.h: Similarly. - * config/romp/romp.h: Similarly. - * config/rs6000/rs6000.h: Similarly. - * config/sh/sh.h: Similarly. - * config/sparc/sparc.h: Similarly. - * config/v850/v850.h: Similarly. - * config/vax/vax.h: Similarly. - * config/we32k/we32k.h: Similarly. - * doc/tm.texi: Update documentation. - -2001-06-26 Gabriel Dos Reis - - * diagnostic.c (digit_buffer): Remove as global. Move to... - * diagnostic.h (struct output_buffer): ... here. - * diagnostic.c (output_formatted_integer): Adjust use of digit_buffer. - -2001-06-25 Steve Ellcey - - * config.gcc (ia64*-*-hpux*): Add ia64/hpux_longdouble.h to tm_file. - Define tmake_file to include ia64/t-hpux. - * real.c (INTEL_EXTENDED_IEEE_FORMAT): Test for value instead of - testing to see if it is defined. - * real.h (INTEL_EXTENDED_IEEE_FORMAT): Likewise. Default to 0 if - undefined. - * config/ia64/hpux_longdouble.h: New. - * config/ia64/ia64.c (hfa_element_mode): Add comment about incorrect - handling of long doubles. - (ia64_function_arg, ia64_function_value): Add checks for TFmode - and INTEL_EXTENDED_IEEE_FORMAT. - * config/ia64/ia64.h (INTEL_EXTENDED_IEEE_FORMAT): Define to one. - (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK, LIBCALL_VALUE): Add checks for - TFmode and INTEL_EXTENDED_IEEE_FORMAT. - * config/ia64/ia64.md (all TFmode patterns): Test - INTEL_EXTENDED_IEEE_FORMAT in condition. - (floatdidf2, floatdisf2): New, for !INTEL_EXTENDED_IEEE_FORMAT. - * config/ia64/quadlib.c: New. - * config/ia64/t-hpux: New. - * config/i386/i386.h (INTEL_EXTENDED_IEEE_FORMAT): Define to one. - -2001-06-25 Jim Wilson - - * config/i960/t-960bare (i960-c.o): Add missing header dependencies. - * config/i960/t-vxworks960: Likewise. - -2001-06-25 Dale Johannesen - - * bitmap.c (bitmap_last_bit_set): Fix a non-c89 usage (null actual - argument to macro). - -Mon Jun 25 11:10:51 CEST 2001 Jan Hubicka - - * i386.md (movsi_insv_1, movsi_insv_1_rex64): Fix constraints. - -2001-06-25 Joseph S. Myers - - * doc/c-tree.texi, doc/contrib.texi, doc/extend.texi, - doc/gcc.texi, doc/gcov.texi, doc/install.texi, doc/invoke.texi, - doc/md.texi, doc/rtl.texi, doc/tm.texi: Be more consistent about - the use of "GCC" and related terms. - * doc/gcc.1, doc/gcov.1: Regenerate. - -2001-06-24 Joseph S. Myers - - * doc/extend.texi, doc/gcc.texi, doc/install-old.texi, - doc/invoke.texi, doc/md.texi, doc/rtl.texi, doc/tm.texi: Remove - uses of @refill. - -Sun Jun 24 21:21:49 CEST 2001 Jan Hubicka - - * (movsi_insv_1, movsi_insv_1_rex64): Allow immediate operand. - -2001-06-24 Richard Henderson - - * builtins.c (expand_builtin_expect_jump): Disable if the - expression can't be re-evaluated. - -2001-06-24 Nick Clifton - - * config/arm/arm.c (arm_compute_save_reg_mask): For FIQ interrupt - handlers examine register r0-r7, for other interrupt handlers - examine r0-r12. If the interrupt handler is not a leaf function - save all call clobbered registers. - (arm_output_epilogue): If the prologue has pushed the IP register, - restore it here. - (Arm_expand_prologue): For interrupt functions that need the frame - pointer, push the IP register before it is corrupted. - - * config/arm/arm.h (ARM_SIGN_EXTEND): Fix compile time warnings - about the use of signed and unsigned quantities in a conditional. - -2001-06-23 Richard Henderson - - * config/alpha/crtfastmath.c: New file. - * config/alpha/t-crtfm: New file. - * config/alpha/elf.h (ENDFILE_SPEC): Use crtfastmath.o. - * config/alpha/osf.h (ENDFILE_SPEC): Likewise. - * config/alpha/t-crtbe (EXTRA_PARTS): Add pieces defined here. - * config.gcc (alpha-{linux,freebsd,netbsd,osf}): Use alpha/t-crtfm; - do not set extra_parts here. - -2001-06-24 Joseph S. Myers - - * doc/install-old.texi: Remove more documentation of configure - options. - * doc/install.texi: Add it here. - -Sat Jun 23 19:40:05 CEST 2001 Jan Hubicka - - * i386-protos.h (emit_i387_cw_initialization): Declare. - * i386.md (movsi_insv_1): Remove '*'. - (fix_trunc?f?i2): Revamp to use control word parameters. - (fix_trunc?i_1): Likewise; update splitters. - (fix splitter): Remove. - * i386.c (MAX_386_STACK_LOCALS): set to 3. - (emit_i387_cw_initialization): New function. - (output_fix_trunc): Do not initialize control word; - kill dead code; simplify. - -2001-06-23 Neil Booth - - * cppmacro.c (make_string_token): Avoid warning. - (cpp_macro_definition): Prepend the macro name. Update - comments. - * cppmain.c (cb_define, dump_macro): Update for changes - to cpp_macro_definition. - -Sat Jun 23 10:20:03 CEST 2001 Jan Hubicka - - * flow.c (attempt_auto_inc, try_pre_increment_1): Fix typo. - -Sat Jun 23 01:23:59 CEST 2001 Jan Hubicka - - * flow.c (mark_set_1, attempt_auto_inc, mark_used_reg, - try_pre_increment_1): compute REG_FREQ using bb->frequency. - - * regclass.c (loop_cost): Kill. - (frequency): New global variable. - (record_operand_costs): Replace loop_cost by frequency. - (scan_one_insn): Likewise. - (regclass): Likewise; set frequency according to bb->frequency. - - * flow.c (split_edge): Set frequency. - -Sat Jun 23 01:16:42 CEST 2001 Jan Hubicka - - * predict.c (block_info_def): Add nvisited. - (propagate_freq): Count nvisited; re-queue delayed blocks; handle - irreducible regions. - - * flow.c (dump_edge_info): Dump the probability of edge. - (combine_predictions_for_insn): Dump the basic block. - -2001-06-22 Joseph S. Myers - - * doc/gcc.texi: Update documentation of source files of C - compiler. - -2001-06-22 Richard Henderson - - * doc/invoke.texi (-funsafe-math-optimizations): Document its - possible effects at link time. - -2001-06-22 Diego Novillo - - * basic-block.h (dump_edge_info): Declare. - (clear_edges): Declare. - (mark_critical_edges): Declare. - * flow.c (dump_edge_info): Remove static declaration. - (clear_edges): Ditto. - (mark_critical_edges): Ditto. - (free_basic_block_vars): Only clear edges and free basic block - array if basic_block_info is not NULL. - * ssa.c (compute_dominance_frontiers): Remove static declaration. - * ssa.h (compute_dominance_frontiers): Declare. - -2001-06-22 Toshiyasu Morita (toshiyasu.morita@hsa.hitachi.com) - - * predict.c: (expected_value_to_br_prob): Check for const_true_rtx - instead of const1_rtx for true case. - -2001-06-22 David Mosberger - - * config/ia64/crtfastmath.c: New file. - * config/ia64/t-ia64 (EXTRA_PARTS): Include it. - * config/ia64/linux.h (ENDFILE_SPEC): New. - -2001-06-22 Toshiyasu Morita - - * config/h8300/h8300.c (asm_file_start): Remove reference to - "release F-1". - -2001-06-22 Joseph S. Myers - - * c-common.c (verify_tree): Check for x being NULL. - * doc/c-tree.texi: Document COMPOUND_BODY of an empty - COMPOUND_STMT. - Fixes PR c/3259. - -2001-06-22 DJ Delorie - - * config/arm/arm.h (struct machine_function): Remove ra_rtx. - * config/arm/arm.c (arm_mark_machine_status): Remove ra_rtx. - (arm_return_addr): Use get_hard_reg_initial_val et al. - * config/d30v/d30v.h (struct machine_function): Remove ra_rtx. - * config/d30v/d30v.c (d30v_mark_machine_status): Remove ra_rtx. - (d30v_return_addr): Use get_hard_reg_initial_val et al. - * config/rs6000/rs6000.h (struct machine_function): Remove ra_rtx. - * config/rs6000/rs6000.c (rs6000_override_options): Don't set - mark_machine_status. - (rs6000_mark_machine_status): Remove. - (rs6000_return_addr): Use get_hard_reg_initial_val. - (rs6000_ra_ever_killed): Use has_hard_reg_initial_val. - * config/v850/v850.h (INIT_EXPANDERS): Delete. - * config/v850/v850.c (struct machine_function): Delete. - (v850_init_machine_status): Delete. - (v850_mark_machine_status): Delete. - (v850_free_machine_status): Delete. - (v850_return_addr): Use get_hard_reg_initial_val. - (v850_init_expanders): Delete. - -Fri Jun 22 19:20:59 CEST 2001 Jan Hubicka - - * predict.c (estimate_bb_frequencies): Do not handle conditional - jumps jumping to fallthru basic block as conditional jumps. - -Fri Jun 22 19:11:28 CEST 2001 Jan Hubicka - - * regs.h (struct reg_info_def): Add freq field. - (REG_N_REFS): Update comment. - (REG_FREQ): New. - * regclass.c (scan_one_insn): Update REG_FREQ. - * flow.c (mark_set_1): Update REG_FREQ, make REG_N_SETS unweighted. - (attempt_auto_inc): Likewise. - (mark_used_reg): Likewise. - (try_pre_increment_1): Likewise. - * local-alloc.c (struct qty): Add freq field. - (alloc_qty): Set freq. - (update_equiv_regs): Set REG_FREQ. - (QTY_CMP_PRI): Use freq. - (combine_regs): Update qty->freq. - * global.c (struct allocno): Update comment for n_refs; - add freq field. - (local_reg_freq): New array. - (global_alloc): Update freq field; - allocate and initialize local_reg_freq. - (allocno_compare): Use freq field. - (find_reg): Likewise. - * reload1.c (count_pseudo): Use freq isntead of n_refs. - (count_spilled_pseudo): Likewise. - - * tm.texi (GCOV_TYPE_SIZE): Document. - * basic-block.h (gcov_type): Define. - (struct edge_def): Use gcov_type for count field. - (struct basic_block_def): Likewise. - * defaults.h (GCOV_TYPE_SIZE): Define. - * final.c (end_final): Use GCOV_TYPE_SIZE. - * flow.c (dump_edge_info, dump_flow_info, dump_bb): Print count fields - using HOST_WIDEST_INT_PRINT_DEC. - * gcov-io.h (__fetch_gcov_type, __store_gcov_type, __read_gcov_type, - __write_gcov_type): New. - (store_long): Remove. - * gcov.c (gcov_type): Set default. - (struct adj_list): Use gcov_type for arc_count. - (bb_info): Use gcov_type for succ_count, pred_count and exec_count. - (create_program_flow_graph): Read arc_count properly. - (solve_program_flow_graph): 'total' is gcov_type. - (output_data): Line_counts is gcov_type, print it properly. - * libgcc2.c (struct bb): Counts is gcov_type. - (__bb_exit_func): Use __read_gcov_type and __write_gcov_type. - * profile.c (LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE): Set default. - (GCOV_TYPE_SIZE): Define. - (struct bb_info): succ_count and pred_count is gcov_type. - (compute_branch_probabilities): Use __read_gcov_type, - print read edges to the dump file. - (total): Is gcov_type. - (gen_edge_profiler): Use GCOV_TYPE_SIZE. - -2001-06-14 Andrew Haley - - * optabs.c (emit_libcall_block): When using non-call exceptions, - don't mark libcalls never throwing. - -2001-06-21 Stan Shebs - - * objc/objc-act.c (hash_init): Use xcalloc. - -2001-06-21 Richard Henderson - - * flow.c (entry_exit_blocks): Initialize frequency. - (split_block): Copy it. - (dump_flow_info): Dump it. - -Thu Jun 21 22:15:10 2001 J"orn Rennecke - - * sh.c (barrier_align): Also recognize branch-around-a-jump-sequence - from machine-depedent_reorg for purposes of alignment supression - when no delay slot insn has been added. - -2001-06-21 Neil Booth - - * cppmacro.c (make_string_token): Null terminate. - -2001-06-21 DJ Delorie - - * config/alpha/alpha.h (struct machine_function): Remove. - * config/alpha/alpha.c (integrate.h): Include. - (override_options): Don't set up machine_status hooks. - (alpha_init_machine_status): Remove. - (alpha_mark_machine_status): Remove. - (alpha_free_machine_status): Remove. - (alpha_return_addr): Use get_hard_reg_initial_val. - (alpha_gp_save_rtx): Likewise. - (alpha_ra_ever_killed): Use has_hard_reg_initial_val. - -2001-06-20 Aldy Hernandez - - * config/sh/sh.md (interrupt_function): Use - current_function_interrupt. - (define_delay): Schedule in delay slot if TARGET_SH3, even if it is - an interrupt function. - - * config/sh/sh.h (current_function_interrupt): Define extern. - - * config/sh/sh.c (current_function_interrupt): New global. - (sh_expand_prologue): Set current_function_interrupt. - -2001-06-21 Phil Edwards - - * doc/install.texi: Add 'c' to list of --enable-languages choices. - -2001-06-21 DJ Delorie - - * integrate.c (mark_hard_reg_initial_vals): Check for NULL. - - * integrate.c (ggc.h): Include. - (initial_value_pair, initial_value_struct, - setup_initial_hard_reg_value_integration): Add prototypes. - (expand_inline_function): Call - setup_initial_hard_reg_value_integration. - (has_func_hard_reg_initial_val, get_func_hard_reg_initial_val, - get_hard_reg_initial_val, has_hard_reg_initial_val): New functions - to keep track of values present at the start of a function. - (mark_hard_reg_initial_vals): New, for gc. - (setup_initial_hard_reg_value_integration): New. Sets up pseudo - mappings for initial values. - (emit_initial_value_sets): New. Emits code to set initial value - pseudos. - * integrate.h: Add prototypes for new functions. - * function.h (struct function): Add hard_reg_initial_vals field. - * function.c (integrate.h): Include. - (mark_function_status): Call - mark_hard_reg_initial_vals. - * toplev.c (integrate.h): Include. - (rest_of_compilation): Call emit_initial_value_sets. - -2001-06-21 Stan Shebs - - * doc/contrib.texi, doc/cpp.texi, doc/cppinternals.texi, - doc/extend.texi, doc/gcc.texi, doc/install.texi, doc/invoke.texi, - doc/objc.texi, doc/tm.texi: Use the correct name "Objective-C" - everywhere instead of "Objective C". - -2001-06-21 Joseph S. Myers - - * doc/c-tree.texi, doc/contrib.texi, doc/extend.texi, - doc/gcc.texi, doc/install-old.texi, doc/install.texi, - doc/invoke.texi, doc/rtl.texi: Consistently use "front end" and - "back end" as nouns and "front-end" and "back-end" as adjectives. - -Wed Jun 20 21:53:35 CEST 2001 Jan Hubicka - - * predict.c (estimate_probability): Fix loop bounds. - -Wed Jun 20 19:10:48 CEST 2001 Jan Hubicka - - * toplev.c (rest_of_compilation): Run mark_constant_function - before profile-arcs. - -Wed Jun 20 19:08:18 CEST 2001 Jan Hubicka - - * predict.c (estimate_loops_at_level, propagate_freq - estimate_bb_frequencies, count_to_freqs): New functions. - (estimate_probability): Call estimate_bb_frequencies. - * basic-block.h (basic_block_def): Add field "freq". - (BB_FREQ_MAX): New constant. - -Wed Jun 20 17:02:50 2001 J"orn Rennecke - - * sh.c (barrier_align): Don't ask for alignment when seeing a - branch-around-a-jump from machine_dependent_reorg. - -Wed Jun 20 08:35:02 2001 Jeffrey A Law (law@cygnus.com) - - * ssa.c (rename_block): Update parameter to remove_phi_alternative - (convert_from_ssa): Do create REG_DEAD and REG_UNUSED notes when - re-running life analysis. - -2001-06-20 Stan Shebs - - * objc/objc-act.c (hash_init): Assume xmalloc always succeeds, - also use memset to clear the hash tables. - (hash_enter): Assume xmalloc always succeeds. - (hash_add_attr): Ditto. - (continue_class): Ditto. - -2001-06-20 Michael Meissner - - * builtins.c (predict.h): Include. - (expand_builtin_expect): Update comment. - (expand_builtin_expect_jump): New function to expand - __builtin_expect inside of a conditional jump expansion. - - * expr.c (do_jump): Special case __builtin_expect (, 0) and - __builtin_expect (, 1). - - * Makefile.in (builtins.o): Depend on $(PREDICT_H). - - * rtl.h (expand_builtin_expect_jump): Add prototype. - -2001-06-19 Geoffrey Keating - - * doc/rtl.texi (Machine Modes): Correct description of - floating-point modes on machines with non-8-bit bytes. - -2001-06-19 Bernd Schmidt - - * regmove.c (optimize_reg_copy_3): Do nothing if previous insn - carries a REG_EQUIV note. If it carries REG_EQUAL, delete the - note. - -Tue Jun 19 07:53:52 2001 Jeffrey A Law (law@cygnus.com) - - * ssa.c (remove_phi_alternative): Remove declaration. No longer - static. Second argument is a pointer to a basic block structure, - not a basic block index. - (convert_to_ssa): Do not remove dead code. - (convert_from_ssa): Do not remove dead code to create death notes. - * ssa.h (remove_phi_alternative): Declare. - - * flow.c (delete_unreachable_blocks): Fix patch error in - previous change (call to find_unreachable_blocks was lost). - - * ssa.c (ssa_uses): Remove definition. - (apply_delayed_renames): Don't grow ssa_uses. - (rename_block): Remove comment related to ssa_uses. - (rename_registers): Do not initialize ssa_uses. - (convert_from_ssa): Do not free ssa_uses. - - * ssa-dce.c: Renamed from dce.c. - * Makefile.in (OBJS): Replace dce.o with ssa-dce.o - (dependencies): Replace dce.c with ssa-dce.c and dce.o with - ssa-dce.o. - -2001-06-19 Eric Christopher - - * emit-rtl.c (gen_lowpart_common): Do not assume that SFmode - and DFmode are UNITS_PER_WORD and 2*UNITS_PER_WORD. Use - GET_MODE_BITSIZE instead of GET_MODE_SIZE/UNITS_PER_WORD. - -Tue Jun 19 01:52:27 2001 J"orn Rennecke - - * sh.c (output_branch): Delete bogus code. - - * sh.c (initial_elimination_offset): - Fix FROM == RETURN_ADDRESS_POINTER_REGNUM case. - -Mon Jun 18 12:50:49 2001 Jeffrey A Law (law@cygnus.com) - - * flow.c (find_unreachable_blocks): New function. - (delete_unreachable_blocks): Use find_unreachable_blocks. - * basic-block.h (find_unreachable_blocks): Declare. - - * dce.c (eliminate_dead_code): Fix formatting glitch. - -2001-06-18 Jason Merrill - - * c-common.h (RETURN_NULLIFIED_P): New macro. - * c-semantics.c (genrtl_return_stmt): Check it. - - * expr.c (clear_storage): Set TREE_NOTHROW on the decl for memset. - (emit_block_move): Likewise. - -Mon Jun 18 17:27:24 CEST 2001 Jan Hubicka - - * unroll.c: Include predict.h. - (unroll_loop): Drop prediction notes on preconditioning. - * predict.def (PRED_LOOP_PRECONDITIONG, PRED_LOOP_CONDITION): - New; add comments on the others. - * Makefile.in: (unroll.o): Add dependency on predict.h. - * loop.c (strength_reduce): Fix branch prediction. - -Mon Jun 18 17:26:56 CEST 2001 Jan Hubicka - - * stmt.c (emit_case_nodes): Optimize test whether index is in given - interval. - -Mon Jun 18 15:43:10 CEST 2001 Jan Hubicka - - * predict.c (estimate_probability): Do not bail out early - when note is present. - (combine_predictions_for_insn): Fix note removal code. - -2001-06-18 Ben Elliston - - * except.c (resolve_fixup_regions): Initialize "cleanup". - -2001-06-17 Neil Booth - - * tm.texi: Document STDC_0_IN_SYSTEM_HEADERS. - -Sat Jun 16 20:20:39 2001 Richard Kenner - - * expr.c (expand_expr, case ADDR_EXPR): If taking address of SAVE_EXPR, - use put_var_into_stack. - -2001-06-16 Franz Sirl - - * gccspec.c (lang_specific_driver): If compiling ObjC, add - -shared-libgcc when necessary. - * Makefile.in (gccspec.o): Compile with DRIVER_DEFINES. - -2001-06-16 Daniel Berlin - - * bitmap.h: Add dump_bitmap, bitmap_zero, bitmap_union_of_diffs, - bitmap_a_or_b, bitmap_a_and_b, bitmap_first_set_bit, - bitmap_last_set_bit. All for compatibility with sbitmap's. - - *bitmap.c (bitmap_zero): New function. - (bitmap_union_of_diffs): New function. - (bitmap_first_set_bit): New function. - (bitmap_last_set_bit): New function. - -2001-06-16 Neil Booth - - * cpp.texi, invoke.texi: Update. - * cpp.1, gcc.1: Regenerate. - -Sat Jun 16 12:45:20 CEST 2001 Jan Hubicka - - * i386.md (minsf): Fix splitter. (PR fortran/3191) - -2001-06-16 Neil Booth - - * doc/cpp.texi: Update. - * doc/cpp.1: Regenerate. - -2001-06-15 Loren J. Rittle - - * doc/install.texi: Use correct markup hints. - -Fri Jun 15 18:05:22 2001 Richard Kenner - - * function.c (gen_mem_addressof): Handle case where DECL is SAVE_EXPR. - - * explow.c (expr_size): If DECL and size specified, use it. - -2001-06-15 Zack Weinberg - - * doc/cpp.texi: Formatting corrections. - Correct buggy example of use of __GNUC__ etc. - Clarify $ in identifiers. - * doc/cpp.1: Regenerate. - -Fri Jun 15 19:35:38 CEST 2001 Jan Hubicka - - * optabs.c (expand_twoval_binop): Avoid undefined behavior. - -2001-06-15 Rainer Orth - - * doc/install.texi (Specific, alpha*-*-*): Fixed Tru64 UNIX - etc. spelling. - (Specific, alpha-*-osf1): Renamed to alpha*-*-osf*. - Added Tru64 UNIX V5.1 bootstrap hints. - (Specific, alpha*-*-osf*): Removed old section, obsolete. - -2001-06-15 Andreas Jaeger - - * doc/install.texi (Specific): Mention that glibc cannot be - compiled with GCC 3.0. - -2001-06-14 Andrew Haley - - * combine.c (nonzero_bits): Don't optimize away division by - zero. - -2001-06-15 Zack Weinberg - - * doc/cpp.texi: Revised and brought up to date. - * doc/cpp.1: Regenerate. - -2001-06-15 Loren J. Rittle - - * doc/install.texi: Update --enable-threads to match reality. - -2001-06-15 Michael Hayes - - * doc/install.texi: Update for C4x. - * README.C4X: Remove. - -2001-06-14 Joseph S. Myers - - * doc/c-tree.texi, doc/contrib.texi, doc/extend.texi, - doc/gcc.texi, doc/install.texi, doc/invoke.texi, doc/md.texi, - doc/objc.texi, doc/rtl.texi, doc/tm.texi: Fix spelling and typos. - Consistently use "built-in" and "bit-field". Minor logical markup - improvements. - * doc/gcc.1: Regenerate. - -2001-06-14 Richard Henderson - - * config/mips/mips.md (exception_receiver): New. - -2001-06-14 Daniel J. Berlin - - * doc/gcc.texi: Update passes documentation to be more in tune - with reality. - -Thu Jun 14 15:38:28 CEST 2001 Jan Hubicka - - * i386.c (ix86_expand_prologue): Fix merging conflict. - -2001-06-14 Joseph S. Myers - - * doc/c-tree.texi, doc/contrib.texi, doc/extend.texi, - doc/gcc.texi, doc/gcov.texi, doc/install-old.texi, - doc/invoke.texi, doc/md.texi, doc/rtl.texi, doc/tm.texi: Use more - logical markup. Use TeX quotes and dashes. Use @dots{} and - @minus{}. Avoid spaces inside @var. Update last modification - date in gcc.texi. - * doc/gcc.1, doc/gcov.1: Regenerate. - -Thu Jun 14 12:44:15 CEST 2001 Jan Hubicka - - * i386.c (x86_accumulate_outgoing_args, x86_prologue_using_move, - x86_epilogue_using_move): New global variables. - (override_options): Enable ACCUMULATE_OUTGOING_ARGS if preferred. - (ix86_emit_save_regs_using_mov): New static function. - (ix86_expand_prologue, ix86_expand_epilogue): Use moves if preferred. - * i386.h (MASK_MMX, MASK_SSE, MASK_SSE2, MASK_128BIT_LONG_DOUBLE, - MASK_MIX_SSE_I387): Renumber. - (MASK_NO_ACCUMULATE_OUTGOING_ARGS): New. - (x86_accumulate_outgoing_args, x86_prologue_using_move, - x86_epilogue_using_move): Declare. - (TARGET_PROLOGUE_USING_MOVE, TARGET_EPILOGUE_USING_MOVE): New. - -2001-06-13 John David Anglin - - * inclhack.def (hpux10_cpp_pow_inline): New hack. - -2001-06-13 Richard Henderson - - * ifcvt.c (dead_or_predicable): Fix return value last patch. - -2001-06-13 Mark Mitchell - - * NEWS: Remove. - -2001-06-13 Richard Henderson - - * ifcvt.c (cond_exec_get_condition): Use reversed_comparison_code. - (cond_exec_process_if_block, dead_or_predicable): Likewise. - -2001-06-13 Rainer Orth - - * mips-tfile.c (copy_object): Always pass indexNil for symbol - table index. - -2001-06-13 Kazu Hirata - - * config/h8300/h8300.h (OK_FOR_T): Remove. - (EXTRA_CONSTRAINT): Do not use OK_FOR_T. - * config/h8300/h8300.md: Remove alternatives involving inc and dec - in the helper patterns for addhi3 and addsi3. - -2001-06-13 Phil Edwards - - * doc/contrib.texi: Link to libstdc++'s thanks.html for now. - -2001-06-13 Zack Weinberg - - * Makefile.in: Move _bb and __gcc_bcmp to LIB2FUNCS_ST. - * libgcc-std.ver: Take out __bb* and __gcc_bcmp. - - * config/t-slibgcc-elf-ver, config/t-slibgcc-sld, - config/alpha/t-osf4, config/mips/t-iris6: Extract all - references to @shlib_map_file@, @shlib_objs@, or - @shlib_base_name@ to Makefile variables. - Bump soname version of libgcc to 1. - -2001-06-13 Joseph S. Myers - - * doc/install.texi: Use more logical markup. Include @node - commands in the source when generating any non-HTML. - -2001-06-13 Joseph S. Myers - - * README: Remove. Some of the contents moved to ../README. - -2001-06-13 Alexandre Oliva - - * doc/install.texi (--enable-shared): List package names - recognized by GCC. - -2001-06-13 Alexandre Oliva - - * doc/install.texi (ix86-*-solaris*): Removed, outdated. - (*-*-solaris*): Document problem in /bin/sh that affects - configuring libraries. - (sparc-*-solaris*): Recommend GNU binutils 2.11.1 or vendor tools. - (*-sun-solaris2.8): Document linker problem that explains why - libjava is disabled by default. - -2001-06-09 Mark Mitchell - - Revert this patch: - * toplev.c (rest_of_compilation): Remove dead code before - purge_addressof. - -2001-06-12 Alexandre Oliva - - Reverted: - 2001-06-07 Nathan Sidwell - * configure.in (sparc*-*-*): Check assembler R_SPARC_UA32 support. - * configure: Rebuilt. - -2001-06-12 Jim Wilson - - * loop.c (strength_reduce): Move bl->all_reduced set before - check_ext_dependant_givs call. - (check_ext_dependant_givs): Clear bl->all_reduced when ignoring givs. - -2001-06-12 Alexandre Oliva - - * doc/extend.texi (Function Attributes): Document SH's sp_switch - and trap_exit. - -2001-06-13 Joseph S. Myers - - * doc/invoke.texi: Use more logical markup. Use TeX quotes, - dashes and @dots{}. - -2001-06-12 Richard Henderson - - * config/i386/i386.c (ix86_expand_prologue): Always use - gen_pro_epilogue_adjust_stack; update arguments. - (ix86_expand_epilogue): Likewise. - (ix86_emit_epilogue_esp_adjustment): Remove. - (ix86_adjust_cost): Remove pro_epilogue_adjust_stack hack. - * config/i386/i386.md (pro_epilogue_adjust_stack): Use a BLKmode - clobber of scratch memory instead of a modification of EBP as the - barrier. Update all peepholes to match. - -2001-06-12 Joseph S. Myers - - * doc/gcc.texi: Change the font used for @def... commands to a - fixed width font. - * doc/extend.texi: Use more logical markup. Use "built-in" - instead of "builtin". Use @deftypefn to mark up built-in - functions; specify their types in the @deftypefn and not in the - descriptive text. Use TeX quotes and dashes. Add more index - entries. - -2001-06-12 lars brinkhoff - - * gcc.texi (HOST_BITS_PER_LONGLONG): Document. - (DIR_SEPARATOR_2): Likewise. - -2001-06-12 Joseph S. Myers - - * doc/install.texi (--exec-prefix, --bindir, --libdir, - --with-slibdir, --infodir, --mandir, --with-cpp-install-dir): - Document. - (--enable-cpp): Change to document --disable-cpp instead; update - to reflect current default. - (--without-fast-fixincludes): Remove documentation. - (Final install): Document installation directories in more - detail. Document use of make dvi. - -Tue Jun 12 19:01:43 CEST 2001 Jan Hubicka - - * recog.c (validate_replace_rtx_1): Fix previous patch. - -Tue Jun 12 17:25:39 CEST 2001 Jan Hubicka - - * recog.c (validate_replace_rtx_1): Do plus_constant call always. - -Tue Jun 12 17:24:07 CEST 2001 Jan Hubicka - - * simplify-rtx.c (simplify_subreg): Allow volatile memory - to be subregged in case we don't have move instruction. - -Tue Jun 12 12:20:12 CEST 2001 Jan Hubicka - - * loop.c: Include predict.h - (strength_reduce): Drop branch prediction note in case - number of iterations is known. - * predict.def (PRED_LOOP_ITERATIONS): new. - * Makefile.in (loop.o): Add dependency on predict.h - -2001-06-12 Kaveh R. Ghazi - - * c-decl.c (grokdeclarator): Use INTEGRAL_TYPE_P. - - * c-typeck.c (c_start_case): Likewise. - -2001-06-12 Mark Mitchell - - * expr.c (store_field): Don't set MEM_ALIAS_SET for a field - in a structure at a variable address. - -2001-06-12 Joseph S. Myers - - * doc/gcov.texi: Use more logical markup. - -2001-06-11 Mark Mitchell - - * unroll.c (initial_reg_note_copy): Use PUT_REG_NOTE_KIND and - REG_NOTE_KIND, not PUT_MODE and GET_MODE. - (final_reg_note_copy): Remove REG_WAS_0 notes that are no longer - valid. - -2001-06-11 Stan Shebs - - * config/darwin.h (ASM_FILE_END): Remove decl of language_string. - -2001-06-11 Stephane Carrez - - * config/m68hc11/m68hc11.md ("*lshrdi3_const32"): Mark the clobber - as an early clobber to make sure it is not used by reload in - one of the operands. - -2001-06-11 Mark Mitchell - - * doc/c-tree.texi: Update information about flag_honor_std. - * doc/install.texi: Note that binutils is required on HPUX 11. - * doc/invoke.texi (-fhonor-std): Note that -fno-honor-std is - now the default. - - * config/mips/abi64.h (RETURN_IN_MEMORY): Fix handling of - variable-sized types. - -2001-06-11 Joseph S. Myers - - * doc/md.texi: Use TeX dashes and quotes. - -2001-06-11 Joseph S. Myers - - * doc/rtl.texi: Reference manual chapter about trees. - -2001-06-11 Rainer Orth - - * config/mips/iris6.h (NO_BUILTIN_WINT_TYPE): Define. - (WINT_TYPE): Override. - (WINT_TYPE_SIZE): Likewise. - (SUBTARGET_CPP_SIZE_SPEC): Define __WINT_TYPE__ as appropriate. - - * config/sparc/sol2.h (WINT_TYPE): Define. - (WINT_TYPE_SIZE): Likewise. - - * config/sparc/sol2-sld-64.h (NO_BUILTIN_WINT_TYPE): Define. - (WINT_TYPE): Override. - (WINT_TYPE_SIZE): Likewise. - (CPP_ARCH32_SPEC): Add __WINT_TYPE__ definition. - (CPP_ARCH64_SPEC): Likewise. - -2001-06-11 Richard Henderson - - * unwind-dw2-fde.c (__deregister_frame_info): Don't play games - with alias attribute. - - * config/linux.h (CPLUSPLUS_CPP_SPEC): Use %(cpp) not $(cpp_cpu). - * config/alpha/linux.h (CPLUSPLUS_CPP_SPEC): Likewise. - -2001-06-11 Franz Sirl - - * config/rs6000/linux.h (CPLUSPLUS_CPP_SPEC): New. - -2001-06-11 Stan Shebs - - * config/darwin.c (darwin_encode_section_info): Rewrite to simplify - and fix coding mistakes. - -2001-06-11 Nick Clifton - - * config/m32r/m32r.md (movstrsi_internal): Do not expect a - return string from m32r_output_block_move. - * config/m32r/m32r-protos.h: Make m32r_output_block_move a - void function. - * config/m32r/m32r.h (INT32_P): Rename to UNIT32_P and remove - integer overflow. - (ROUND_ADVANCE): Remove signed/unsigned conflict. - * config/m32r/m32r.c: Declare prototypes for static functions. - (move_src_operand): Replace INT32_P with UINT32_P. - (function_arg_partial_nregs): Fixed signed/unsigned conflict - in initialisation of 'size'. - (m32r_sched_reord): Remove redundant declarations of 'code'. - (m32r_output_block_move): Change to a void function. - (m32r_encode_section_info): Cast return of - TREE_STRING_POINTER to avoid compile time warning. - -2001-06-11 Richard Henderson - - * config/alpha/osf5.h (TARGET_LD_BUGGY_LDGP): New. - * config/alpha/alpha.h (TARGET_LD_BUGGY_LDGP): Default. - (struct machine_function): Add gp_save_rtx. - * config/alpha/alpha.c (alpha_mark_machine_status): Mark it. - (alpha_gp_save_rtx): New. - * config/alpha/alpha-protos.h: Declare it. - * config/alpha/alpha.md (exception_receiver): Make an expander. - Use alpha_gp_save_rtx if TARGET_LD_BUGGY_LDGP. - -2001-06-11 Richard Henderson - - * config/alpha/osf.h (LINK_SPEC): Hide _GLOBAL_* symbols. - -2001-06-11 Rainer Orth - - * configure.in: Align --help messages. - Remove trailing full stops. - Consistently use lower case. - Fix DWARF 2 spelling. - * configure: Rebuilt. - -2001-06-11 Rainer Orth - - * config/alpha/alpha.h (CPP_SPEC): Don't define __LANGUAGE_C and - variants for .cpp/.cp/.c++ files. - Move definition of __LANGUAGE_C_PLUS_PLUS ... - (CPLUSPLUS_CPP_SPEC): ... here. - -Mon Jun 11 15:47:45 CEST 2001 Jan Hubicka - - * jump.c (duplicate_loop_exit_test): Fix loop header heuristics. - -2001-06-11 Joseph S. Myers - - * c-decl.c (store_parm_decls): When comparing types in an - old-style function declaration with those from a previous - prototype, compare the unqualified versions of parameter types. - Fixes PR c/3116. - -2001-06-11 Joseph S. Myers - - * doc/objc.texi: Use more logical markup. Use TeX dashes. - -2001-06-11 Joseph S. Myers - - * doc/c-tree.texi: Use more logical markup. - -2001-06-11 Joseph S. Myers - - * c-decl.c (xref_tag): Don't return previous tags of wrong type. - -2001-06-11 Aldy Hernandez - - * loop.c (scan_loop): Do not combine asm statements. - -2001-06-11 Michael Hayes - - * simplify-rtx.c (simplify_subreg): Fix offset calculation - for complex values within a CONCAT. - -2001-06-11 Joseph S. Myers - - * doc/install.texi: Update details of what components are included - in the GCC distribution. Update default directory for g++ - includes. Update documentation relating to old libio. Adjust - documentation on DejaGnu environment variables. Remove - documentation of --enable-cpplib. - -2001-06-11 Joseph S. Myers - - * doc/contrib.texi: Fix alphabetical order. Fix typos. Improve - markup. - -2001-06-10 Richard Henderson - - * ifcvt.c (life_data_ok): New. - (merge_if_block): Use it to determine whether to update - global_live_at_end. - (if_convert): Set it. - -2001-06-10 Richard Henderson - - * config/alpha/osf5.h (ASM_OLDAS_SPEC): Add -c. - -2001-06-10 Alexandre Oliva - - * doc/invoke.texi (MN10300 Options): Document -mno-crt0. - (SH Options): Document -mieee. - * doc/install.texi (Final install): Remove obsolete information - about installing cross compilers. - * doc/gcc.1: Rebuilt. - -2001-06-10 Richard Henderson - - * config/alpha/alpha.c (override_options): Set align_loops, - align_jumps, and align_functions. - * config/alpha/alpha.h (FUNCTION_BOUNDARY): Set to 32 bits. - (LOOP_ALIGN, LABEL_ALIGN_AFTER_BARRIER): Remove. - -2001-06-11 Michael Hayes - - * emit-rtl.c (gen_lowpart_common): Do not assume that SFmode and DFmode - are one and two words in size. - -2001-06-10 Richard Henderson - - * doc/invoke.texi (Optimization Options): Document -fpeephole2. - (Code Generation Options): Document -fnon-call-exceptions. - -2001-06-10 Mark Kettenis - - * config/i386/gnu.h (MD_FALLBACK_FRAME_STATE_FOR): Undefine. - -2001-06-10 Stephane Carrez - - * m68hc11.md (peepholes): Remove unused and wrong peepholes. - -2001-06-10 Mark Mitchell - Gabriel Dos Reis - - * Makefile.in (c-parse.o): Depend on diagnostic.h - (dwarf2out.o): Likewise. - - * dwarf2out.c: #include diagnostic.h - - * toplev.h (warningcount, errorcount, sorrycount): Remove - declarations. - - * toplev.c (warningcount, errorcount, sorrycount): Remove - definitions. - - * diagnostic.h (struct output_buffer): Reorder fields. - (diagnostic_kind_count): New macro. - (errorcount, warningcount, sorrycount): Define as macros. - (diagnostic_report_warnings_p): New macro. - (output_state): Add diagnostic_count field. - - * diagnostic.c (warningcount, errorcount, inhibit_warnings): - Remove tentative declaration. - (count_error): Use diagnostic_report_warnings_p. - - * c-parse.in: #include diagnostic.h - -2001-06-10 Stephane Carrez - - * config/m68hc11/m68hc11.md ("extendhisi2"): Fix constraints to - prefer a memory for operand 1. - ("*addsi3"): Fix constraints, the '!' was too strong. - ("*addsi3_split"): Accept soft register and split accordingly. - -2001-06-10 Stephane Carrez - - * config/m68hc11/m68hc11-protos.h (m68hc11_initialize_trampoline): - Move definition in the RTX_CODE section. - -2001-06-10 Stephane Carrez - - * config/m68hc11/m68hc11.h (RETURN_ADDR_RTX): Define the return - address as relative to the argument pointer. - -Sun Jun 10 10:58:53 CEST 2001 Jan Hubicka - - * predict.def (PRED_OPCODE): Place before call and error_return. - -Sun Jun 10 10:00:17 CEST 2001 Jan Hubicka - - * predict.def (PRED_CALL, PRED_ERROR_RETURN): New. - * predict.c (estimate_probability): Calculate dominance - information; improve detection of NORETURN heuristics; - add call/error_return heuiristics; tweak comparison heuristics - to recognize -1. - -2001-06-09 Alexandre Oliva - - * doc/invoke.texi (C Dialect Options): Document -aux-info. - (Debugging Options): Document -print-multi-directory and - -print-multi-lib. - * doc/gcc.1: Rebuilt. - - * toplev.c (independent_decode_option): Require `=' between - `-aux-info' and filename in the same argument. - * gcc.c: Don't pass -aux-info=filename twice. - -2001-06-09 Mark Mitchell - - * expr.c (expand_expr, case ARRAY_REF): Do not replace - an array element with the known initializing value if it has - side-effects. - - * toplev.c (rest_of_compilation): Remove dead code before - purge_addressof. - -2001-06-09 Neil Booth - - * cppinit.c (print_help): Document -fpreprocessed. - * invoke.texi: Similarly. - -Sun Jun 10 00:35:37 CEST 2001 Jan Hubicka - - * predict.def: New file. - * predict.h: New file. - * predict.c: Include predict.h. - (predictor_info): New structure and array. - (predict_edge, predict_insn): Rewrite; make global. - (predict_edge_def, predict_insn_def): New global functions. - (dump_prediction, combine_predictions_for_insns): New - static functions. - (estimate_probability): Change calls to predict_edge - to predict_edge_def and calls to predict_insn to predict_insn_def; - combine probabilities. - (expected_value_to_br_prob): Behave as predictor. - * rtl.h (REG_BR_PRED): Update coment. - (invert_br_probabilities): New. - * jump.c: Include predict.h - (duplicate_loop_exit_test): Drop branch prediction notes. - (invert_jump): Use invert_br_probabilities. - * Makefile.in: Add dependency on predict.h for jump and predict pass. - * ifcvt.c (dead_or_predicable): Use invert_br_probabilities. - * combine.c (distribute_notes): Handle BR_PRED. - -Sat Jun 9 23:29:41 CEST 2001 Jan Hubicka - - * predict.c (predict_insn, predict_edge): New static functions. - (estimate_probability): Revamp to use new functions; - fix loop header heruistics; add loop exist heruistics - -2001-06-09 Alexandre Oliva - - * config.gcc: Re-enable bi-arch sparc on Solaris 7 and above. - -2001-06-09 Peter Jakubek - - * config/m68k/m68k.md (ashrdi_const): Fix right shift by 16. - -2001-06-09 John David Anglin - - * vax.h (NOTICE_UPDATE_CC): Set CC_NO_OVERFLOW in cc_status.flags - for integer operations that don't update C bit. - -2001-06-09 Nicola Pero - - * gthr-posix.h (__gthread_objc_init_thread_system): If - pthread_key_create fails, it's not clear what the return value is. - This obvious fix makes sure it always returns -1 if a problem - occurs. - -2001-06-09 Joseph S. Myers - - * doc/gcc.texi: Use @defcodeindex for the index of options. Add - more index entries. Use more logical markup where appropriate. - Use TeX quotes and dashes. - -2001-06-09 Benjamin Kosnik - - * unwind-pe.h: Conditionally qualify references to abort with - std::. - -2001-06-09 Julian Foad - - * doc/invoke.texi: Remove superfluous text. - -2001-06-08 Richard Henderson - - * config/alpha/linux.h (CPLUSPLUS_CPP_SPEC): New. - (LIB_SPEC): Mirror config/linux.h version. - -2001-06-08 Richard Henderson - - * except.c (get_exception_pointer, get_exception_filter): Take a - struct function. Update all callers. - * except.h (get_exception_pointer): Update declaration. - * expr.c (expand_expr): Update get_exception_pointer call. - * integrate.c (expand_inline_function): Remap the exception pointer - from callee to caller. - -2001-06-08 Mark Mitchell - - * c-decl.c (grokdeclarator): Make the TREE_TYPE for declarations - accurately reflect its cv-qualification. - * c-typeck.c (type_lists_compatible_p): Ignore the top-levl - cv-qualifiers on function types. - -2001-06-08 Mark Mitchell - - * basic-block.h: Improve comments. - * except.c (expand_eh_region_end_allowed): Remove redundant call - to do_pending_stack_adjust. - * flow.c (life_analysis): Fix typo in comment. - (calculate_global_regs_live): Add documentation. - (mark_set_1): Likewise. - (debug_regset): Likewise. - * doc/rtl.texi (cond_exec): Document it. - -Fri Jun 8 21:52:51 CEST 2001 Jan Hubicka - - * i386.h (CONST_COSTS): set cost of constants representable in - immediate fields to 0. - -Fri Jun 8 21:34:54 CEST 2001 Jan Hubicka - - * function.c (diddle_return_value): Kill code to determine - return value before expand_function_end. - (expand_function_end): Delay call to clobber_return_register - after fucntion return value is computed. - - Re-install temporary reverted patch: - * toplev.c (rest_of_compilation): Call split_all_insns - before reg-stack and shorten-branches. Do shorten-branches - after reg-stack. - * final.c (shorten_branches): Remove insn splitting code. - -2001-06-08 Joseph S. Myers - - * doc/gcc.texi, doc/invoke.texi: Add index of command line - options. Use @opindex to index them rather than other indexing - commands. Use @var{...} instead of <...>. Avoid spaces in names - inside @var. Don't use @kindex to index escape sequences in - source code. - -2001-06-08 Jason Merrill - - * stmt.c (current_nesting_level): New fn. - * tree.h: Declare it. - * c-semantics.c (genrtl_compound_stmt): Use it. - - * dbxout.c (dbxout_symbol): Use DECL_RTL_SET_P. - -2001-06-08 Jakub Jelinek - - * jump.c (mark_modified_reg): Allow jump threading if condition - codes are represented by a hard register. - -2001-06-08 Jakub Jelinek - - * config/ia64/ia64.c (ia64_function_arg): Use [SDT]Fmode as gr_mode - for complex floats passed to unprototyped functions. - -2001-06-08 Mark Mitchell - - * except.c (expand_eh_region_end_allowed): Call - do_pending_stack_adjust as necessary. - -Fri Jun 8 14:16:33 CEST 2001 Jan Hubicka - - * function.c (clobber_return_register): Clobber the pseudo return - register too. - - * sibcall.c (skip_unreturned_value): New function. - (call_ends_block_p): Use it. - - * recog.c (split_insn): Break out from ... - (split_all_insns): ... here; do not use basic block information - when it is broken. - -Thu Jun 7 18:27:53 CEST 2001 Jan Hubicka - - * simplify-rtx.c (simplify_subreg): Fix verification of - combined subreg. - -2001-06-08 Rainer Orth - - * config/mips/mips.h (CPP_SPEC): Simplify .s/.S handling. - Don't define _LANGUAGE_C and variants for .cpp/.cp/.c++ files. - Move definition of _LANGUAGE_C_PLUS_PLUS ... - (CPLUSPLUS_CPP_SPEC): ... here. - Fixes PRs c++/3047, target/441. - -2001-06-08 Gerald Pfeifer - - * doc/install.texi2html (MAKEINFO): Keep value if set already. - -2001-06-08 Joseph S. Myers - - * doc/gcc.texi: Add trailing slash to URL. - -2001-06-07 Stan Shebs - - * config/darwin.h (ENCODE_SECTION_INFO): Define. - (REDO_SECTION_INFO_P): Ditto. - (STRIP_NAME_ENCODING): Ditto. - (ASM_DECLARE_OBJECT_NAME): Use ENCODE_SECTION_INFO. - (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Ditto. - (ASM_OUTPUT_LABELREF): Use STRIP_NAME_ENCODING. - (GEN_LAZY_PTR_NAME_FOR_SYMBOL): Ditto. - * config/darwin.c: No longer include c-tree.h. - (machopic_classify_ident): Rewrite to use symbol encoding. - (lookup_name_darwin): Remove. - (machopic_non_lazy_ptr_name): Handle encoded symbols. - (machopic_stub_name): Use STRIP_NAME_ENCODING. - (machopic_validate_stub_or_non_lazy_ptr): Ditto. - (machopic_finish): Ditto, remove test of decl. - (update_non_lazy_ptrs): New function. - (darwin_encode_section_info): New function. - * config/darwin-protos.h: Declare it. - * config/rs6000/rs6000.c (machopic_output_stub): Use - STRIP_NAME_ENCODING. - -2001-06-07 Mark Mitchell - - * tree.h (DECL_SOURCE_FILE): Improve documentation. - (DECL_SOURCE_LINE): Likewise. - -2001-06-07 Loren J. Rittle - - * config/alpha/elf.h (MAKE_DECL_ONE_ONLY): Copy definition - from config/elfos.h. - -2001-06-07 Phil Edwards - - * linux.h (CPLUSPLUS_CPP_SPEC): Move -D_GNU_SOURCE to here. - * pa/pa-linux.h: Allow CPLUSPLUS_CPP_SPEC to remain. - -2001-06-08 Joseph S. Myers - - * doc/contrib.texi: Add copyright notice. - -2001-06-08 Joseph S. Myers - - * doc/md.texi: Use four digit years in copyright notice. - -2001-06-08 Joseph S. Myers - - * config.gcc: For $target_alias of athlon-*, set - target_cpu_default2=5. - -Thu Jun 7 16:17:40 2001 Richard Kenner - - * global.c (build_insn_chain): Allow ADDR_VEC or ADDR_DIF_VEC after - end of last block if last real insn is a JUMP_INSN. - -2001-06-07 Joseph S. Myers - - * NEWS: Regenerate. - -2001-06-07 Rainer Orth - - * gthr-posix.h (__gthread_objc_thread_detach): Simply cast - pthread_t to objc_thread_t. - (__gthread_objc_thread_id): Likewise. - -2001-06-07 Rainer Orth - - * alpha/osf5.h (CPP_XFLOAT_SPEC): Override default definition. - (ASM_OLDAS_SPEC): Likewise. - - * alpha/osf.h (CPP_XFLOAT_SPEC): Define. - (CPP_SUBTARGET_SPEC): Use it. - (ASM_OLDAS_SPEC): Define. - (ASM_SPEC): Use it. - (SUBTARGET_EXTRA_SPECS): Define, declare the new specs above. - -2001-06-07 Rainer Orth - - * config/alpha/alpha.c (alpha_va_arg): Handle TFmode, TCmode args, - passed by reference. - -2001-06-07 Joseph S. Myers - - * doc/tm.texi (TARGET_SWITCHES, TARGET_OPTIONS): Adjust markup. - Document use of N_(...), and show it in examples. Note that - documentation should be added to invoke.texi. Avoid an overfull - hbox. - -Thu Jun 7 17:09:50 CEST 2001 Jan Hubicka - - * toplev.c (rest_of_compilation): Revert previous patch. - * final.c (shorten_branches): Likewise. - -2001-06-07 Gerald Pfeifer - - * pself.c, pself1.c, pself2.c, pself3.c, pself4.c, pself5.c: - Remove. - -2001-06-07 Joseph S. Myers - - * doc/install-old.texi: Remove more obsolete documentation. - -Thu Jun 7 13:20:14 CEST 2001 Jan Hubicka - - * expr.c (copy_blkmode_from_reg): Fix operand_subword_force call. - -Thu Jun 7 12:12:58 CEST 2001 Jan Hubicka - - * toplev.c (rest_of_compilation): Call split_all_insns - before reg-stack and shorten-branches. Do shorten-branches - after reg-stack. - * final.c (shorten_branches): Remove insn splitting code. - -2001-06-07 Nathan Sidwell - - * configure.in (sparc*-*-*): Check assembler R_SPARC_UA32 support. - * configure: Rebuilt. - -2001-06-07 Andreas Jaeger - - * emit-rtl.c (operand_subword): Remove unused variable. - -Wed Jun 6 14:51:05 CEST 2001 Jan Hubicka - - * i386.md (floatdi?f): Avoid usinf of SSE instructions - if TARGET_64BIT is false. - (floatdi?f_i386_only): New insn. - (floatdi?f_i386): Disable for !TARGET_64BIT. - - * (min?f, max?f splitters): Handle case where - operands are cross-matched. - - * i386.h (HI_REGISTER_NAMES): Remove redundant definition - (MMX_REGISTER_NAMES): Kill. - (PRINT_OPERAND): Fix comment. - (PRINT_REG): Likewise. - * i386.c (print_reg): Kill support for 'm' CODE; simplify. - (print_operand): Update comment; kill 'm'. - - * i386.c (x86_branch_hints): New global variable - (print_operand): Support outputting of branch prediction hints. - * i386.md (conditional jump patterns): Add branch prediction hints - to the template. - * i386.h (x86_branch_hints): Declare - (TARGET_BRANCH_PREDICTION_HINTS): New macro. - (PRINT_OPERAND_FUNCT_VALID_P): New. - * final.c (final_forward_branch_p): New function. - -2001-06-06 Richard Henderson - - * flow.c (mark_used_reg): Clean up looping over multiple hard - registers. Do conditional life bits across multiple hard regs. - -2001-06-05 Jeffrey D. Oldham - - * reload1.c (reload): Revert Schmidt's change so all USEs are not - deleted during reload. - -2001-06-05 Mark Mitchell - - * c-semantics.c (genrtl_scope_stmt): Write out nested inline - functions here, instead of ... - * c-decl.c (c_expand_body): ... here. - -2001-06-05 David O'Brien - - * config.gcc, config/sparc/bsd.h: Do not directly include - sparc/sparc.h. Instead do it via tm_file. - -2001-06-05 Richard Henderson - - * dwarf2.h (DW_EH_PE_aligned): New. - * dwarf2asm.c (eh_data_format_name): Name it. - (dw2_asm_output_encoded_addr_rtx): Align for it. - * dwarf2out.c (output_call_frame_info): Handle it for personality - routine and LSDA pointers. - - * unwind-pe.h (DW_EH_PE_aligned): New. - (base_of_encoded_value): Handle it. - (read_encoded_value_with_base): Likewise. - * unwind-dw2-fde.c (base_from_object): Likewise. - (get_cie_encoding): Likewise. - - * config/alpha/elf.h: Remove ecoff commentary. - * config/alpha/osf.h (ASM_PREFERRED_EH_DATA_FORMAT): New. - -2001-06-05 David O'Brien - - * config.gcc, config/i386/bsd386.h: Do not directly include - i386/386bsd.h. Instead do it via tm_file. - -2001-06-05 David O'Brien - - * elfos.h (USING_ELFOS_H): Identify the use of elfos.h in the same - way svr4.h does. - -2001-06-05 Pascal Obry - - * configure.in: Quote $enable_win32_registry in case the value has - spaces in it. - * configure: Ditto. - -2001-06-05 Mark Mitchell - - * print-rtl.c (xspaces): Remove. - (print_rtx): Use printf field-width, rather than xpsaces, to - indent. - * toplev.c (main): Disable sibling-call optimization if we are - handling exceptions. - -2001-06-05 Bernd Schmidt - - * reload1.c (reload): Delete all USEs generated during reload. - -2001-06-05 scott snyder - - * gccbug.in: Fix typo. - -2001-06-05 Andreas Jaeger - - * builtins.def: Fix definition of __builtin_cosf, it uses float as - parameter and return value. - -2001-06-04 Anthony Green - - * config/sparc/elf.h (CPP_PREDEFINES): Don't assert cpu or - machine. This is now done in sparc.h. - -2001-06-05 Nathan Sidwell - - Correct CVS resurrection of invoke.texi. - * doc/invoke.texi: Document new tree dump flags. - -2001-06-05 Joseph S. Myers - - * c-typeck.c (build_c_cast): Use TYPE_MAIN_VARIANT when checking - for casting an aggregate to its own type. Fixes PR c/2735. - -2001-06-05 Joseph S. Myers - - * doc/texinfo.tex: Update to version 2001-05-24.08. - -2001-06-05 Nathan Sidwell - - * c-common.h (flag_dump_translation_unit): Remove. - (enum tree_dump_index): Define. - (TDF_ADDRESS, TDF_SLIM): New #defines. - (dump_node_to_file): Remove. - (dump_node): Make extern. Add flags. - (dump_flag, dump_enabled_p, dump_begin, dump_end, - dump_switch_p): Prototype. - * c-common.c (flag_dump_translation_unit): Remove. - * c-decl.c (c_decode_option): Remove -fdump-translation-unit - logic. Use dump_switch_p. - * c-dump.h (struct dump_info): Add node and user fields. - (dump_pointer): Declare. - * c-dump.c (dump_node): Make extern. Add flags. - (SOL_COLUMN, EOL_COLUMN, COLUMN_ALIGNMENT): New #defines. - (dump_new_line, dump_maybe_newline): Use them. - (dump_pointer): New function. - (dequeue_and_dump): Check TDF_SLIM before dumping a _DECL's - chain or function's body. Dump address, if TDF_ADDRESS set. - (dump_flag): Define. - (dump_node_to_file): Remove. - (struct dump_file_info): New struct. - (dump_files): New array. - (dump_begin, dump_end, dump_enabled_p, dump_switch_p): Define. - * c-lang.c (finish_file): Adjust dumping. - * toplev.h (dump_base_name): Make extern. - * invoke.texi: Document new flags. - -2001-06-04 Mark Mitchell - - * c-tree.h (lang_decl): Add pending_sizes fields. - * c-decl.c (store_parm_decls): Save pending_sizes away for nested - functions. - (c_expand_body): Expand them. - (lang_mark_tree): Mark lang_decl:pending_sizes. - * function.c (expand_pending_sizes): New function, broken out - from ... - (expand_function_start): ... here. - * tree.h (expand_pending_sizes): Declare it. - -2001-06-04 Loren J. Rittle - - * doc/install.texi: Update FreeBSD information. Generalize - and update information for alpha-based platforms using ELF. - -2001-06-04 John David Anglin - - * c-decl.c (get_parm_info): Use INTEGRAL_TYPE_P. - (store_parm_decls): Likewise. - * c-typeck.c (convert_arguments): Likewise. - -2001-06-04 Richard Henderson - - * sibcall.c (optimize_sibling_and_tail_recursive_call): Suppress - optimization if current_function_calls_setjmp. - -2001-06-04 Joseph S. Myers - - * doc/c-tree.texi: Fix documentation of TREE_STRING_LENGTH for - wide strings. - -Mon Jun 4 20:44:25 CEST 2001 Jan Hubicka - - * simplify-rtx.c (simplify_subreg): Fix combining of - paradoxical subregs. - -Mon Jun 4 20:15:25 CEST 2001 Jan Hubicka - - * rtlanal.c (rtx_unsable_p): ADDRESSOF is stable. - (no_labels_between_p): Short circuit case beg==end. - -Mon Jun 4 20:03:05 CEST 2001 Jan Hubicka - - * rtlanal.c (operand_preference): Fix preference for objects. - -Mon Jun 4 20:00:40 CEST 2001 Jan Hubicka - - * gcse.c (handle_avail_expr): Be prepared to handle single_set - parallels. - -Mon Jun 4 19:59:46 CEST 2001 Jan Hubicka - - * combine.c (if_then_else_cond): Use simplify_subreg instead - of operand_subword. - * integreate.c (sub_constants): Likewise. - -Mon Jun 4 19:59:12 CEST 2001 Jan Hubicka - - * emit-rtl.c (constant_subword): Deprecate; remove most of code - and use simplify_gen_subreg. - -Mon Jun 4 19:55:23 CEST 2001 Lars Brinkhoff - - * sibcall.c (skip_copy_to_return_value): recognize the situation - when the called function's return value is copied into an - intermediate pseudo, and then into the calling functions return - value register. - -Mon Jun 4 16:50:33 CEST 2001 Jan Hubicka - - * simplify_rtx.c (simplify_subreg): Keep subregs on return values, - check CLASS_CANNOT_CHANGE_MODE before avoiding subreg on hard reg, - in case register wasn't OK previously, accept it now; allow - subregs of frame pointer if reload completed and frame pointer - is not needed. - - * combine.c (sombine_simplify_rtx): Fix comment; - use subreg_lowpart_offset instead of subreg_lowpart_p - (gen_lowpart_for_combine): Use subreg_lowpart_offset. - * rtl.h (subreg_lowpart_parts_p): Kill. - (subreg_lowpart_offset, subreg_highpart_offset): Declare. - * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset. - * emit-rtl.c (gen_lowpart_SUBREG): Use subreg_lowpart_offset; - (gen_lowpart_common): Likewise. - (subreg_lowpart_p): Likewise. - (subreg_lowpart_parts_p): Kill. - (subreg_lowpart_offset, subreg_highpart_offset): New function. - - * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg - to simplify SUBREG and REG. - (gen_highpart): Use simplify_gen_subreg for all simplifications. - - * emit-rtl.c (gen_realpart, gen_imagpart): Do not handle - CONCAT specially. - - * rtlanal.c (replace_regs): Use simplify_gen_subreg - -Mon Jun 4 09:21:19 2001 Richard Kenner - - * doc/c-tree.texi (ARRAY_REF): Say what type of expression must be. - (ARRAY_RANGE_REF): Added description. - - * tree.def (ARRAY_RANGE_REF): New code. - * alias.c (handled_component_p, can_address_p): Handle it. - * dwarf2out.c (loc_descriptor_from_tree): Likewise. - * explow.c (set_mem_attributes): Likewise. - * expr.c (expand_assignment, get_inner_reference): Likewise. - (expand_expr, expand_expr_unaligned, do_jump): Likewise. - * fold-const.c (operand_equal_p): Likewise. - * tree.c (staticp, stabilize_reference): Likewise. - * varasm.c (decode_addr_const): Likewise. - -Sun Jun 3 21:59:51 2001 Richard Kenner - - * reload.c (reload_inner_reg_of_subreg): Return 1 for PLUS. - (push_reload): Handle non-REG in reload_inner_reg_of_subreg case. - -2001-06-03 kaz Kojima - - * gcc/config/sh/sh.c (print_operand_address, print_operand): Call - mark_constant_pool_use before output_addr_const. - (struct pool_node): New field wend. - (add_constant): Note a sequence of constants that are referenced - by a given label. - (pool_window_label, pool_window_last): New variables. - (dump_table): Emit a unspec_volatile representing the end of a - sequence of constants. - (mark_constant_pool_use): New function. - * gcc/config/sh/sh.md (UNSPECV_WINDOW_END): New constant. - (consttable_2): Add the second operand which flags whether - this consttable entry was used or not. - (consttable_4, consttable_8, consttable_sf, consttable_df): - Likewise. - (consttable_window_end): New insn. - -2001-06-03 Alexandre Oliva - - * insn-addr.h (INSN_ADDRESSES_NEW): Make insn_uid__ unsigned. - Reformat according to coding standards. - - Warning removal. - * config/sh/sh.c (print_operand_address): Cast INTVAL to int. - (shl_and_kind): Cast wide constant. - (gen_far_branch): Define as static, as in declaration. - (barrier_align): Compute cache-line length as unsigned. Add - parentheses in initial credit computation. - (rounded_frame_size): Add parentheses. - (permanent_obstack): Remove declaration. Include ggc.h for - declaration of ggc_add_root_rtx(). - (get_free_reg): Removed declaration of unused variable reg. - (legitimize_pic_address): Mark mode argument as unused. - -2001-06-03 Igor Shevlyakov - - * config/sh/sh.c (output_branch): Support for insn with lenght - attr 12 & 16 which represents cond branches outside +-4096 range. - -2001-06-03 Alexandre Oliva - - * config/sh/lib1funcs.asm (ic_invalidate): Align the - cache-mirroring sequence. Add nops. - -2001-06-03 Joseph S. Myers - - * doc/install-old.texi: Remove more old installation - documentation. - * doc/install.texi: Add relevant parts here. - -2001-06-03 Gerald Pfeifer - - * doc/install.texi2html: New script. - -2001-06-03 David Edelsohn - - * doc/install.texi: Update AIX information again. - -2001-06-02 Joseph S. Myers - - * doc/gcc.texi, doc/install-old.texi: Remove old system-specific - installation documentation. - * doc/install.texi: Move it to here. - -2001-06-02 Joseph S. Myers - - * doc/install.texi: Clean up Texinfo markup. - -2001-06-02 Joseph S. Myers - - * doc/cpp.texi, doc/cppinternals.texi, doc/gcc.texi: Move contents - to just after title page. - -2001-06-02 Joseph S. Myers - - * doc/install-old.texi: Remove documentation of some configuration - options. - * doc/install.texi: Add relevant parts of this documentation here. - -2001-06-02 Gerald Pfeifer - - * contrib.texi: Updated entries for Mark Mitchell, Joseph S. Myers, - Gerald Pfeifer, Bernd Schmidt, and Dean Wakerley. - -Sat Jun 2 12:23:51 CEST 2001 Jan Hubicka - - * i386.md (all uses of ext_register_operand): Make sure they are - VOIDmode; replace all uses outside zero_extend. - (and?i splitters): Use ext_register_operands. - (test?i peep2): Remove ignored constraints. - * i386.c (ext_register_operand): Check that operand is - either pseudo or hard or 'Q' register. - -Sat Jun 2 06:53:50 2001 Richard Kenner - - * tree.h (struct record_layout_info_s): New field unpadded_align. - (set_lang_adjust_rli): New declaration. - * stor-layout.c (layout_decl): If DECL is packed, but at alignment - it would have if not packed, do not downgrade DECL_ALIGN. - (lang_adjust_rli, set_lang_adjust_rli): New. - (start_record_layout): Initialize new field unpadded_align. - (debug_rli): Display it. - (place_union_field, place_field): Set it. - (layout_type, case RECORD_TYPE): Call via lang_adjust_rli if set. - - * print-tree.c (print_node): Don't print "regdecl" when bit doesn't - mean that; use proper names instead. - Print DECL_NO_STATIC_CHAIN. - - * except.c (expand_builtin_frob_return_addr): Add missing call - to convert_memory_address #ifdef POINTERS_EXTEND_UNSIGNED. - (expand_builtin_eh_return): Likewise. - (expand_eh_return): Clean up ptr_mode != Pmode cases. - -2001-06-01 Jan van Male - - * doc/invoke.texi: Remove references to papers about sequence points - to readings.html, refer to that page. - -2001-06-01 Gerald Pfeifer - - * README: Update references to installation instructions. - -2001-06-01 Laurent Guerby - Gerald Pfeifer - - * doc/install.texi: Define srcdir when sources come from CVS. - Significantly improve markup. Wrap overly long lines - -2001-06-01 DJ Delorie - - * c-tree.texi, contrib.texi, cpp.texi, cppinternals.texi, - extend.texi, fdl.texi, gcov.texi, invoke.texi, md.texi, - objc.texi, rtl.texi, tm.texi, texinfo.tex, gcc.1, cpp.1, - gcov.1: Move to doc subdirectory. - * install.texi: Move to doc/install-old.texi. - * gcc.texi: Move to doc, refer to install-old.texi. - * Makefile.in: Reflect move of docs to doc/. - * f/Make-lang.in: Ditto. - * java/Make-lang.in: Ditto. - * doc/.cvsignore: New. - -2001-05-31 Jan van Male - - * invoke.texi: use two spaces between command options, eliminate - some 'overfull hboxes' - -2001-06-01 Hans-Peter Nilsson - - * Makefile.in (s-mlib): Make backtick-commands always succeed. - (DRIVER_DEFINES): Ditto. - -2001-05-31 Richard Henderson - - * gcc.c (init_gcc_specs): When linking against libgcc_s.so, - also link against libgcc.a. - -2001-05-31 Geoff Keating - - * config/mips/mips.h (ASM_OUTPUT_ASCII): Convert to function. - * config/mips/mips.c (mips_output_ascii): New function. - * config/mips/mips-protos.h (mips_output_ascii): Prototype. - - * config/mips/mips.h (DWARF_CIE_DATA_ALIGNMENT): Force to 4. - -Thu May 31 19:09:53 CEST 2001 Jan Hubicka - - * flow.c (set_block_for_new_insns): Remove bogus shortcut. - * i386.c (ix86_expand_int_movcc): Force one of operands to be register. - -2001-05-31 Rodney Brown - - * install.texi (Configuration): Add html links for --with-gnu-as & - --with-gnu-ld and refer to them from hppa & SCO triplets. - (Specific): Link back to with-gnu-ld for all ELF platfoms. - (Specific): Reword AVR binutils recommendation. - -2001-05-30 Zack Weinberg - - * ggc-page.c (size_lookup): Increase minimum allocation size - to eight bytes. - (ggc_print_statistics): Report size of each bin in bytes, not - as its order; there is no longer a direct relationship. - -2001-05-31 Jan van Male - - * extend.texi: Fix formating of examples, eliminate some - 'overfull hboxes'. - * gcc.texi: Eliminate some 'overfull hboxes'. - * invoke.texi: Use two spaces between command options, eliminate - some 'overfull hboxes'. - -2001-05-30 Richard Henderson - - * dwarf2out.c (dwarf2out_finish): Don't emit DW_AT_stmt_list at -g1. - -2001-05-30 Tom Tromey - - * gcc.c (do_spec_1): In `%O' case, if we computed saved_suffix, - use it in the new association. - -2001-05-30 Loren J. Rittle - John David Anglin - - * gthr-posix.h (__gthread_active_ptr): Cast function pointer - to target type to allow ISO C++ compiler to accept it. - * gthr-dce.h (__gthread_active_ptr): Likewise. - * gthr-solaris.h (__gthread_active_ptr): Likewise. - -2001-05-30 Neil Booth - - * cpplex.c (_cpp_lex_token): Revert patch of 16 May 2001 - so that we do accept comments in preprocessed input. - -2001-05-30 Neil Booth - - * cpphash.c (alloc_node): Cast allocated pointer. - -2001-05-30 Gordon Sadler - - * invoke.texi (Option Summary): Remove -isystem-c++ from options. - -2001-05-29 Stan Shebs - - * gcc.texi: Add links for information about Objective-C. - -2001-05-29 Nathan Sidwell - - * configure.in (gcc_version): Remove unrequired \ on ". (Solaris - /bin/sed fails on [^\"]). - (configargs.h): Likewise. - -2001-05-29 Hartmut Schirmer - - * config/sh/sh.h (IDENT_ASM_OP): End with TAB, not LF. - -2001-05-28 Stan Shebs - - * objc/objc.gperf: Remove, no longer used. - -2001-05-28 Joseph S. Myers - - * c-tree.texi, contrib.texi, cpp.texi, extend.texi, gcc.texi, - gcov.texi, install.texi, md.texi, objc.texi, rtl.texi, tm.texi: - Remove trailing whitespace. - -2001-05-28 Gerald Pfeifer - - * doc/install.texi (Specific): http://reality.sgi.com/ariel/freeware/ - became http://freeware.sgi.com/. - -2001-05-27 Geoffrey Keating - - * local-alloc.c (update_equiv_regs): Don't eliminate constant - expressions at -O0. - -2001-05-27 Stan Shebs - - * objc/objc-act.c: Add/fix various comments. - (init_selector): Remove, no longer used. - (build_msg_pool_reference): Ditto. - (objc_debug): Ditto. - -2001-05-27 Neil Booth - - * c-decl.c (init_decl_processing): - Don't call start_identifier_warnings. - * flags.h (warn_id_clash, id_clash_len): Remove. - * stringpool.c: Don't include flags.h. - (scan_for_clashes, do_identifier_warnings, - start_identifier_warnings): Remove. - * toplev.c (warn_id_clash, id_clash_len): Remove. - (display_help): Don't document -Wid-clash. - (decode_W_option): Print warning on -Wid-clash. - * tree.h (start_identifier_warnings): Remove. - * invoke.texi: Remove documentation of -Wid-clash. - -2001-05-27 Kaveh R. Ghazi - - * fixinc/fixtests.c: Declare entries in ENV_TABLE. - -2001-05-27 Bruce Korb - - * fixinc/check.tpl(HACK) add and use a Scheme variable - (has no test text): error out if no "test_text" is defined - * fixinc/fixincl.tpl: likewise - (FIXIDX): make it an enumeration so we minimize diffs - * fixinc/inclhack.def: re-alphabetize and add sort instructions - * fixinc/fixincl.x: regenerate - * fixinc/tests/base/stdio.h: test output got moved due to - the alphabetizing - * README-fixinc: rewrite (mostly) - -2001-05-27 Neil Booth - - * cpplib.c (run_directive): Set pfile->directive. - -2001-05-23 Theodore Papadopoulo - - * c-tree.texi: Reformat the manual as a single chapter now - included by gcc.texi. - * gcc.texi: Include c-tree.texi. Merge all indexes. - * Makefile.in (dvi): Add generation for the cppinternals - documentation. Added dependencies on fdl.texi and c-tree.texi - where appropriate. Use TEXI2DVI instead of custom tex calls. - (info): Added dependencies on fdl.texi and c-tree.texi where - appropriate. Remove the target c-tree.info. - -2001-05-27 Lars Brinkhoff - - * combine.c (try_combine): Fix typo in comment. - * expr.c (expand_expr): Likewise. - * config/i370/i370.md (untyped_call): Likewise. - -2001-05-26 Bruce Korb - - * fixinc/fixtests.c(stdc_0_in_system_headers_test): Must return "FIX" - when fixincl is operating in test mode - * fixinc/inclhack.def(AAB_dgux_int_varargs) : aesthetics - (AAB_ultrix_limits): remove redundant text - (AAB_ultrix_memory): ditto - (AAB_ultrix_string): ditto - (djgpp_wchar_h): fix the test text - (irix_stdio_va_list): add test text - (irix_limits_const): add a testing output file (limits.h is overwritten) - (strict_ansi_not_ctd): put limits.h second in list for same reason - (solaris27_mutex_init): test text needed selection text, too - - * fixinc/fixtests.c(stdc_0_in_system_headers_test): Must return "FIX" - when fixincl is operating in test mode - -2001-05-26 Philip Blundell - - * config/c4x/c4x-protos.h: Use GCC_C_PRAGMA_H in place of _C_PRAGMA_H. - * config/i960/i960-protos.h: Likewise. - * config/i370/i370-protos.h: Likewise. - * config/h8300/h8300-protos.h: Likewise, - * config/sh/sh-protos.h: Likewise. - * config/v850/v850-protos.h: Likewise. - -2001-05-26 Philip Blundell - - * config/arm/arm-protos.h: Use GCC_C_PRAGMA_H in place of _C_PRAGMA_H. - -2001-05-25 Zack Weinberg - - * toplev.c (debug_args, f_options, W_options): Mark - descriptions for translation. - (display_help): Translate descriptions on output. - - * cp/lang-options.h, f/lang-options.h, java/lang-options.h, - objc/lang-options.h: Mark descriptions for translation. - - * aclocal.m4: Quote final argument of patsubst. Use - 3-argument form of AC_DEFINE. Restore quotes to [] while - using AC_FD_CC. - * configure.in: Remove unnecessary changequote calls. - * configure, config.in: Regenerate. - -2001-05-25 Sam TH - - * basic-block.h: Fix header include guards. - * bitmap.h c-dump.h c-lex.h c-pragma.h c-tree.h collect2.h - cppdefault.h cpphash.h cpplib.h defaults.h diagnostic.h errors.h - except.h flags.h gcc.h gcov-io.h graph.h gstab.h gthr-aix.h - gthr-dce.h gthr-posix.h gthr-rtems.h gthr-single.h gthr-solaris.h - gthr-vxworks.h gthr-win32.h gthr.h hard-reg-set.h hwint.h - insn-addr.h libgcc2.h mbchar.h mkdeps.h params.h prefix.h real.h - rtl.h sbitmap.h system.h timevar.h toplev.h tradcpp.h tsystem.h - varray.h version.h: Likewise. - * config/dbxelf.h config/fp-bit.h config/arm/arm-protos.h - config/arm/arm.h config/c4x/c4x-protos.h - config/h8300/h8300-protos.h config/h8300/h8300.h - config/i370/i370-protos.h config/i370/i370.h - config/i960/i960-protos.h config/mcore/mcore.h - config/mips/mips-protos.h config/sh/sh-protos.h config/sh/sh.h - config/v850/v850-protos.h config/v850/v850.h: Likewise. - * fixinc/fixlib.h fixinc/server.h: Likewise. - -2001-05-25 Stacey Sheldon - - * config/arc/initfini.c (.init): Fix typo. - -2001-05-25 Geoffrey Keating - - * config/rs6000/rs6000.md (fseldfsf4): Correct mode of operand 4. - -2001-05-25 Rainer Orth - - * i386/i386.h (CC1_CPU_SPEC): Clarify -m486 etc deprecation messages. - -2001-05-25 Richard Henderson - - * libgcc-std.ver: Export XFmode and TFmode versions of symbols. - -2001-05-25 Richard Henderson - - * config.gcc (all gnu and linux): Use t-slibgcc-elf-ver with t-linux. - (i386-*-solaris2): Use t-slibgcc-elf-ver or t-slibgcc-sld. - (sparc*-*-solaris2): Likewise. - * config/t-linux: Remove shared libgcc macros. - * config/t-slibgcc-elf-ver: Move from sparc/t-slibgcc. - * config/t-slibgcc-sld: Move from sparc/t-slibgcc-sld. - -2001-05-25 Loren J. Rittle - - * config.gcc (*-*-freebsd*): Report bad configuration. - -2001-05-25 David Edelsohn - - * xcoffout.h (DBX_OUTPUT_GCC_MARKER): Do not emit any marker. - - * config/rs6000/aix.h (USER_LABEL_PREFIX): AIX symbols do not have - any prefix. - (ASM_OUTPUT_LABELREF): Delete. - -2001-05-25 Rainer Orth - - * fixinc/inclhack.def (strict_ansi_not, strict_ansi_not_ctd, - strict_ansi_only): Don't run if stdc_0_in_system_headers. - * fixinc/fixincl.x: Regenerate. - * fixinc/fixtests.c (stdc_0_in_system_headers_test): New function. - (FIX_TEST_TABLE): Declare it. - * fixinc/fixlib.h: Include config.h. - -2001-05-25 Rainer Orth - - * fixinc/inclhack.def (alpha___assert): Change char * args to - const char * on Tru64 UNIX to avoid excessive warnings from - assert.h. - * fixinc/fixincl.x: Regenerate. - -2001-05-25 Geoff Keating - - * dbxout.c (dbxout_symbol): Invert previous patch, which was - outputting a tag only for variable-size records. - -2001-05-25 Jeff Knaggs - - * config/alpha/alpha.md (movtf_internal): Use reg_overlap_mentioned_p - instead of rtx_equal_p for early clobber test. - -2001-05-26 Mark Mitchell - - * builtins.def: Encode additional information, such as names and - types, here. - * builtin-types.def: New file. - * builtins.c (built_in_names): Adjust use of DEF_BUILTIN. - (built_in_decls): Likewise. Don't explicitly initialize global - data to NULL. - (expand_builtin_mathfn): Handle float and long double variants of - math builtins. - (expand_builtin): Likewise. - * c-common.c (c_common_nodes_and_builtins): Make it table-driven. - (expand_tree_builtin): Handle long, long long, float, and long - double variants of math functions. - * c-common.h (c_tree_index): Remove some unused nodes. - (void_ftype): Remove. - (void_type_ptr): Likewise. - (int_ftype_int): Likewise. - (ptr_ftype_sizetype): Likewise. - * c-decl.c (init_decl_processing): Remove creation of DWARF - builtins. - * defaults.h (MD_INIT_BUILTINS): Provide default definition. - * tree.h (built_in_function): Adjust definition of DEF_BUILTIN. - * Makefile.in (c-common.o): Depend on builtin-types.def. - -2001-05-25 Dale Johannesen - - * config/rs6000/t-darwin: Fix dependencies for darwin.o. - -2001-05-25 Neil Booth - - * c-parse.in (notype_initdcl): Remove redundant line. - -2001-05-25 Rainer Orth - - * aclocal.m4: Fixed typo. - (gcc_AC_HEADER_STDBOOL): Define. - (gcc_AC_C__BOOL): Define. - * configure.in: Use them. - (AC_CHECK_HEADERS): Remove stdbool.h - * configure, config.in: Regenerate. - -2001-05-25 Richard Henderson - - * function.c (expand_function_start): Don't abort on PARALLEL - returns from hard_function_value. - -2001-05-25 Richard Henderson - - * config/i386/i386.md: Revert previous change. Do not apply - the peephole if the components do not die after the sequence. - -2001-05-25 Joseph S. Myers - - * c-parse.in (array_declarator): New. Handle C99 constructs. - Don't restrict [*] declarators to C only. - (after_type_declarator, parm_declarator_starttypename, - parm_declarator_nostarttypename, notype_declarator, - direct_absdcl1): Use it. - * c-decl.c (build_array_declarator, set_array_declarator_type): - New functions. Warn that [*] isn't properly implemented; pedwarn - for [*] outside C99 mode if pedantic rather than giving a hard - error. - (grokdeclarator): Handle static and type qualifiers in parameter - array declarators. - * c-tree.h (build_array_declarator, set_array_declarator_type): - Declare. - * extend.texi (Attribute Syntax): Document attributes in parameter - array declarators. - -2001-05-25 Mark Mitchell - - * config/i386/i386.md: Make sure cmpstr peepholes do not - affect liveness information. - -2001-05-24 Mark Mitchell - - * c-typeck.c (digest_init): Issue error messages about - invalid constants, not warnings. - -2001-05-24 Mark Mitchell - - * invoke.texi (-fno-builtin): Document that this is always on - in C++. - -2001-05-24 Philip Blundell - - * doc/install.texi (arm*-*-linux-gnu): Say that binutils 2.10 is - required. - -2001-05-24 Philip Blundell - - * config/arm/arm.c (output_return_instruction): Correctly handle - interworking and interrupt functions. - -2001-05-24 Philip Blundell - - * config/arm/arm.h (TARGET_SWITCHES): Correct misleading help for - -m{no-}sched-prolog. Fix typos and improve formatting. - -2001-05-24 Philip Blundell - - * invoke.texi (ARM Options): Improve wording slightly. Add - documentation for more options, including those for Thumb mode. - Don't mention options that don't exist or are unimplemented. - (Thumb Options): Delete; merged into above section. - -2001-05-24 Geoff Keating - - * config/rs6000/linux.h (SIGNAL_FRAMESIZE): Define. - (MD_FALLBACK_FRAME_STATE_FOR): Use it. - -Thu May 24 19:47:19 CEST 2001 Jan Hubicka - - * simplify-rtx.c (simplify_subreg): Fix CONCAT simplification; - fix hard register simplification. - -Thu May 24 00:15:17 2001 Rainer Orth - - * sparc/sol2.h (CPLUSPLUS_CPP_SPEC): Add all of CPP_SPEC instead - of just copying CPP_CPU_SPEC. - -Thu May 24 15:56:48 CEST 2001 Jan Hubicka - - * i386.c (incdec_operand): Accept only 1 and -1. - -2001-05-23 Kelley Cook - - * Makefile.in: Move many of the *_H definitions eariler in the - file, so that rules in t-* files that use them for - dependencies will work in a parallel build. - * config/i386/t-cygwin (winnt.o): Depend on $(CONFIG_H). - -2001-05-23 Richard Henderson - - * integrate.c (expand_inline_function): Handle CONCAT DECL_RESULT. - -2001-05-23 Neil Booth - - * cpp.texi: Update for handling of charconsts. - * cpplex.c (maybe_read_ucs): Don't accept D800-DFFF. Update - diagnostics. Skip to the end if the UCS is too short. - (cpp_interpret_charconst): Long charconsts issue a warning - not an error. - -2001-05-23 Richard Henderson - - * doc/install.texi (alpha-linux): Require binutils 2.11. - -2001-05-23 Neil Booth - - * c-lex.c (read_escape, read_ucs): Delete. - (lex_string): Use cpp_parse_escape. - * cpplex.c (read_ucs): Rename maybe_read_ucs. Do nothing - if not C++ or not C99. Warn if traditional. - (parse_escape): Rename cpp_parse_escape. Make the bitmask - unsigned. Warn for out-of-range escape sequences here. - Update to use maybe_read_ucs. - (cpp_interpret_charconst): Don't warn here. - * cpplib.h (cpp_parse_escape): New exported function. - -2001-05-23 Joseph S. Myers - - * extend.texi (Attribute Syntax): Clarify application of - attributes to parameters declared as functions or arrays. - -2001-05-23 Jason Merrill - - * dbxout.c (dbxout_type_methods): Do still group methods by name. - -2001-05-23 Zack Weinberg - - * diagnostic.c (vnotice): Kill. - (fnotice): Call vfprintf directly. - (diagnostic_for_decl, output_do_verbatim, output_verbatim, - verbatim, set_diagnostic_context): Rename string argument to - indicate that it is run through gettext. - (vbuild_message_string, build_message_string, output_do_printf): - Rename string argument to indicate that it is NOT run through - gettext. - (output_printf, diagnostic_for_decl, fatal_io_error, sorry, - output_do_verbatim, set_diagnostic_context, fnotice, _fatal_insn): - Run msgid argument through gettext. - (default_print_error_function): Run constant strings through - gettext when nothing else will. - (fatal_error, internal_error, error_recursion): Use fnotice. - Present complete sentences to gettext. - -2001-05-23 Mark Mitchell - - * jump.c (mark_jump_label): Fix thinko in 2001-05-19 change. - -2001-05-23 Richard Henderson - - * function.c (expand_function_start): Always use a pseudo - for the function result value. - -2001-05-22 Richard Henderson - - * config/mips/iris6.h (EH_FRAME_SECTION_ASM_OP): Give the - section pointer alignment. - - * doc/install.texi (alpha-linux): Require binutils >= 2.10. - - * unwind-dw2-fde.c (__deregister_frame_info): Stringize use - of __USER_LABEL_PREFIX__. - -2001-05-22 Richard Henderson - - * unwind-dw2-fde.c (__deregister_frame_info): Stubbify in favor of... - (__deregister_frame_info_bases): New. - * unwind-dw2-fde.h: Declare it. - * libgcc-std.ver: Export it. - * crtstuff.c (__do_global_dtors_aux): Call it if we would have - called __register_frame_info_bases. - -2001-05-22 Loren J. Rittle - - * config/freebsd.h (FBSD_CPP_PREDEFINES): Use #endif/#if pair - instead of #elif (which is OK for this case but not in general). - -2001-05-22 Andrew MacLeod - - * builtins.c (expand_builtin_longjmp): A longjmp can be a call too. - * config/ia64/ia64.md (nonlocal_goto): Reverse label and frame pointer - parameters to __ia64_nonlocal_goto. Flag as NO_RETURN. - * config/ia64/ia64.c (ia64_expand_epilogue): Make sure we are issuing - "r2" to the assembly file. Only issue allocs with nonzero parameters. - -2001-05-22 Loren J. Rittle - David O'Brien - - * config/freebsd.h (LIB_SPEC): Key the exact setting to - configure-time options and target version of FreeBSD. Set-up - to match architectural change in threading support. Correctly - report when -pthread option is not supported by configure-time - options. - (FBSD_CPP_PREDEFINES): Move from architecture-specific files - and extend to encode target version number in run-time setting - of __FreeBSD__ macro to match the system compiler. - (CPP_PREDEFINES): Likewise. - (PREFERRED_DEBUGGING_TYPE): Change to DWARF2_DEBUG. - - * config/alpha/freebsd.h (CPP_PREDEFINES): Moved to common freebsd.h. - * config/i386/freebsd.h (CPP_PREDEFINES): Likewise. - -2001-05-22 Loren J. Rittle - David O'Brien - - * config.gcc (the unlabeled system switch statement): Add - generic configuration section to handle *-*-freebsd*. Also, - to match the system compiler, default to threading support (it - may be disabled with the standard --disable-threads - configuration-time switch). - (i[34567]86-*-freebsd* in machine-specific section): Use it. - (alpha*-*-freebsd* in machine-specific section): Likewise. - - * config/freebsd3.h: New file to expose FBSD_MAJOR macro (3). - * config/freebsd4.h: New file to expose FBSD_MAJOR macro (4). - * config/freebsd5.h: New file to expose FBSD_MAJOR macro (5). - * config/freebsd6.h: New file to expose FBSD_MAJOR macro (6). - * config/freebsd-nthr.h: New file to expose FBSD_NO_THREADS macro. - -2001-05-22 Loren J. Rittle - David O'Brien - - * config/t-freebsd (TARGET_LIBGCC2_CFLAGS): Add -fPIC. - * config/t-freebsd-thread (TARGET_LIBGCC2_CFLAGS): Add - -pthread instead setting macro. - -2001-05-22 Richard Henderson - - * crtstuff.c (__register_frame_info_bases): Declare. - (frame_dummy): Use it, if CRT_GET_RFIB_TEXT or CRT_GET_RFIB_DATA. - (__do_global_dtors_aux, __do_global_dtors): Streamline. - - * config/i386/linux.h (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): New. - (CRT_GET_RFIB_DATA): New. - * config/i386/sysv4.h: Likewise. - * config/i386/sco5.h: Likewise. - (ASM_PREFERRED_EH_DATA_FORMAT): New. - -2001-05-22 Richard Henderson - - * rtl.c (read_string): Break out from ... - (read_rtx): ... here. - -2001-05-22 Gerald Pfeifer - - * doc/install.texi (Specific): Remove a bogus and duplicate part - copied from the end of the document. - -2001-05-22 Bernd Schmidt - - * Makefile.in (LIBGCC_DEPS): Correct LIB1ASMSRC dependency. - -2001-05-22 Gerald Pfeifer - - * install.texi: Remove obsolete information on SunOS as well as - i386-sun-sunos4, i860-intel-osf1, and powerpcle-*-solaris2*. - (Installing GNU CC on the Sun): Remove section. - -2001-05-22 Alexandre Oliva - - * cppfiles.c (remove_component_p): Don't assume lstat/stat will - keep errno unchanged on success. - -2001-05-22 Joseph S. Myers - - * c-lex.c (lex_number): If pedantic and not C99, pedwarn exactly - once for hexadecimal floats, whether or not they contain a decimal - point. Don't let the setting of pedantic otherwise affect the - parsing of hexadecimal floats. - -2001-05-22 Gerald Pfeifer - - * README.ACORN: Remove obsolete file. - -2001-05-22 Jan Hubicka - - * combine.c (gen_binary): Use swap_commutative_operands_p - (simplify_comparison): Likewise. - * expmed.c (emit_store_flag): Likewise. - * expr.c (compare_from_rtx): Likewise. - (do_compare_rtx_and_jump): Likewise. - * optabs.c (emit_cmp_and_jump_insn): Revert last patch; abort - if not emitting a branch and operands want swapping. - -2001-05-22 Neil Booth - - * c-lex.c (c_lex): Just cast cpp's hashnode to gcc's one. - * stringpool.c: (IS_FE_IDENT, make_identifier): Delete. - (maybe_get_identifier): Update. - * tree.h (make_identifier): Delete. - -2001-05-21 Richard Henderson - - * combine.c (subst): Do not substitute for a register as - a destination subreg/strict_low_part/zero_extract. - - * combine.c (simplify_comparison): Update op1 after constant - extension. - * recog.c (const_int_operand): Accept only constants valid - for the given mode. - * genrecog.c: Update comments wrt const_int_operand. - - * emit-rtl.c (init_emit_once): Zero unused memory in a - CONST_DOUBLE. - -2001-05-21 Mark Mitchell - - * tree.h (type_num_arguments): Declare it. - * tree.c (type_num_arguments): New function. - -2001-05-21 Richard Henderson - - * dwarf2out.c (current_funcdef_number): Move outside dwarf2 - conditional ifdef. - -2001-05-21 Geoff Keating - - * config/rs6000/rs6000.md (maxsf3): Use rs6000_emit_minmax. - (maxsf3+1): Delete. - (minsf3): Use rs6000_emit_minmax. - (minsf3+1): Generalize to handle both SMIN and SMAX. Use - rs6000_emit_minmax. - (movsfcc): Use rs6000_emit_cmove. - (fselsfsf4): Don't compare a CONST_INT with a floating-point value. - Don't generate emit_fselsfsf4. - (fseldfsf4): Likewise. - (maxdf3): Use rs6000_emit_minmax. - (maxdf3+1): Delete. - (mindf3): Use rs6000_emit_minmax. - (mindf3+1): Generalize to handle both SMIN and SMAX. Use - rs6000_emit_minmax. - (movdfcc): Use rs6000_emit_cmove. - (fseldfdf4): Don't compare a CONST_INT with a floating-point value. - Don't generate emit_fselsfsf4. - (fselsfdf4): Likewise. - * config/rs6000/rs6000.c (zero_fp_constant): New predicate. - (min_max_operator): New predicate. - (rs6000_emit_cmove): New function. - (rs6000_emit_minmax): New function. - * config/rs6000/rs6000-protos.h: Prototype new functions. - * config/rs6000/rs6000.h (PREDICATE_CODES): Add zero_fp_constant - and min_max_operator. - - * config/rs6000/rs6000.c (output_cbranch): Handle all - conditional types in the switch statement. - -2001-05-21 Mark Mitchell - - * c-decl.c (finish_decl): Don't set DECL_C_HARD_REGISTER for - non-register variables. - * extend.texi: Document that asm-specifications do not make sense - for non-static local variables. - -2001-05-21 Jason Merrill - - * dbxout.c (MINIMAL_DEBUG, flag_minimal_debug): Lose. - (dbxout_type_fields): Lose minimal_debug support. - (dbxout_type_methods, dbxout_type): Likewise. - -2001-05-17 Andrew Haley - - * config/rs6000/linux.h (MD_FALLBACK_FRAME_STATE_FOR): New. - -2001-05-21 Richard Henderson - - * dwarf2out.c (DEBUG_FRAME_SECTION): Rename from FRAME_SECTION. - Update all users. - -2001-05-20 Richard Henderson - - * dwarf2out.c (DEBUG_ABBREV_SECTION, DEBUG_ARANGES_SECTION, - DEBUG_MACINFO_SECTION, DEBUG_LOC_SECTION, DEBUG_PUBNAMES_SECTION, - DEBUG_STR_SECTION): Rename from s/DEBUG_//. Update all users. - * dwarfout.c (DEBUG_SFNAMES_SECTION, DEBUG_SRCINFO_SECTION, - DEBUG_MACINFO_SECTION, DEBUG_PUBNAMES_SECTION, DEBUG_ARANGES_SECTION): - Likewise. - * config/mips/iris6.h (DEBUG_SFNAMES_SECTION, DEBUG_SRCINFO_SECTION, - DEBUG_MACINFO_SECTION, DEBUG_PUBNAMES_SECTION, DEBUG_ARANGES_SECTION, - DEBUG_FRAME_SECTION, DEBUG_ABBREV_SECTION): Rename as above. - (DEBUG_LOC_SECTION, DEBUG_STR_SECTION): New. - * config/ia64/ia64.h (DEBUG_ABBREV_SECTION, DEBUG_ARANGES_SECTION, - DEBUG_PUBNAMES_SECTION): Rename as above. - (DEBUG_MACINFO_SECTION, DEBUG_LOC_SECTION, DEBUG_STR_SECTION): New. - -2001-05-20 Richard Henderson - - * optabs.c (emit_cmp_and_jump_insns): Don't swap commutative - operands unless the operation is commutative. - -2001-05-20 Kaveh R. Ghazi - - * fold-const.c (tree_expr_nonnegative_p): Detect more non-negative - cases. - -2001-05-21 Joseph S. Myers - - * extend.texi: Clarify documentation of extensions included in ISO - C99. Prefer C99 terminology and syntax to old GNU terminology and - syntax. Add more index entries. Document mixed declarations and - code as an extension in C89 mode. Warn about future changes to - semantics of inline functions. Fixes PR other/930. - -Sun May 20 16:39:24 2001 Richard Kenner - - * expr.c (expand_expr, case ARRAY_REF): Don't fold constant - access if EXPAND_CONST_ADDRESS or EXPAND_INITIALIZER. - (expand_expr, case COMPONENT_REF): Do copy if misaligned even - if EXPAND_CONST_ADDRESS or EXPAND_INITIALIZER. - - * stmt.c (expand_decl): Set mode, alignment, and sizes for CONST_DECL. - -2001-05-20 Richard Henderson - - * sched-deps.c (sched_analyze_insn): Force volatile memory reads - to be output before a branch. - -2001-05-20 Richard Henderson - - * Makefile.in (dwarf2asm.o): Depend on $(TREE_H). - -2001-05-20 Richard Henderson - - * config/i386/att.h (ASM_SHORT, ASM_LONG): Add trailing \t. - (ASM_DOUBLE): Remove. - * config/i386/bsd.h, config/i386/sco5.h: Likewise. - * config/i386/sun386.h: Likewise. - - * config/i386/i386.h (UNALIGNED_SHORT_ASM_OP): New. - (UNALIGNED_INT_ASM_OP, INT_ASM_OP): New. - - * config/i386/cygwin.h (INT_ASM_OP): Remove. - * config/i386/freebsd-aout.h, config/i386/i386-aout.h: Likewise. - * config/i386/i386-coff.h, config/i386/i386-interix.h: Likewise. - * config/i386/netbsd.h, config/i386/openbsd.h: Likewise. - - * config/i386/cygwin.h: Adjust uses of ASM_LONG for trailing \t. - * config/i386/djgpp.h, config/i386/i386.h: Likewise. - * config/i386/i386elf.h, config/i386/ptx4-i.h: Likewise. - * config/i386/sco5.h, config/i386/svr3gas.h: Likewise. - * config/i386/sysv4.h, config/i386/vsta.h: Likewise. - * config/i386/win32.h: Likewise. - -2001-05-20 Joseph S. Myers - - * invoke.texi: Add more options to summary list. - -2001-05-20 Joseph S. Myers - - * invoke.texi: Document meaning of -pedantic when -std=gnu* is - used. Fixes PR c/2291. - * gcc.1: Regenerate. - -2001-05-20 Stephane Carrez - - * config/m68hc11/m68hc11.c (m68hc11_override_options): Ignore - the -fpic and -fPIC options, clear flag_pic. - -2001-05-20 Neil Booth - - * hashtable.c (calc_hash): Fix HASHSTEP definition. - * stringpool.c (make_identifier): No statistics here anymore. - * objc-act.c (steup_string_decl): Remove redundant check. - -2001-05-20 Neil Booth - - * Makefile.in (OBJS, LIBCPP_OBJS, LIBCPP_DEPS, - cpplib.o, cpphash.o, fix-header): Update. - (hashtable.o): New target. - * c-common.h: Include cpplib.h. Define C_RID_CODE and - struct c_common_identifier here. - * c-lang.c (c_init_options): Update. Call set_identifier_size. - * c-lex.c (c_lex): Update. - * c-pragma.h: Update. - * c-tree.h (struct lang_identifier): Contain c_common_identifier. - Delete rid_code. - (C_RID_CODE): Delete. - * cpphash.c: Rewrite to use hashtable.c. - * cpphash.h: Update include guards. - (struct cpp_reader): Remove hashtab. - hash_ob and buffer_ob are no longer pointers. Add hash_table - and our_hashtable. - (HASHSTEP, _cpp_init_hashtable, _cpp_lookup_with_hash): Delete. - (_cpp_cleanup_hashtable): Rename _cpp_destroy_hashtable. - (_cpp_cleanup_stacks): Rename _cpp_init_directives. - * cppinit.c (cpp_create_reader): Update. - * cpplex.c (cpp_ideq, parse_identifier, cpp_output_token): Update. - (cpp_interpret_charconst): Eliminate warning. - * cpplib.c (do_pragma, do_endif, push_conditional, - cpp_push_buffer, cpp_pop_buffer): Update. - (_cpp_init_stacks): Rename cpp_init_directives. - (_cpp_cleanup_stacks): Remove. - * cpplib.h: Update include guards. Include tree-core.h and c-rid.h. - (cpp_hashnode, cpp_token, NODE_LEN, NODE_NAME, - cpp_forall_identifiers, cpp_create_reader): Update. - (C_RID_CODE, cpp_make_node): New. - (c_common_identifier): New identifier node for C front ends. - * cppmain.c (main): Update. - * fix-header.c (read_scan_file): Update. - * flags.h (id_clash_len): Make unsigned. - * ggc.h (ggc_mark_nonnull_tree): New. - * hashtable.c: New. - * hashtable.h: New. - * stringpool.c: Update comments and copyright. Update to use - hashtable.c. - * toplev.c (approx_sqrt): Move to hashtable.c. - (id_clash_len): Make unsigned. - * toplev.h (ident_hash): New. - * tree.c (gcc_obstack_init): Move to hashtable.c. - * tree.h: Include hashtable.h. - (IDENTIFIER_POINTER, IDENTIFIER_LENGTH): Update. - (GCC_IDENT_TO_HT_IDENT, HT_IDENT_TO_GCC_IDENT): New. - (struct tree_identifier): Update. - (make_identifier): New. -cp: - * cp-tree.h (struct lang_identifier, C_RID_YYCODE): Update. - (C_RID_CODE): Remove. - * lex.c (cxx_init_options): Call set_identifier_size. Update. - (init_parse): Don't do it here. -objc: - * objc-act.c (objc_init_options): Call set_identifier_size. Update. - -Sat May 19 18:23:04 2001 Richard Henderson - - * except.c (dw2_build_landing_pads): Use word_mode, not Pmode, - as ncessary. - (expand_eh_return): Convert between word_mode and Pmode. - * unwind-dw2.c (extract_cie_info): Do not assume words and pointers - are the same size. - (execute_stack_op): Likewise. - (execute_cfa_program): Likewise. - (uw_frame_state_for): Likewise. - (uw_update_context_1): Likewise. - * unwind.inc (_Unwind_Reason_Code): Likewise. - * config/mips/mips.h (EH_RETURN_DATA_REGNO): Define. - (EH_RETURN_STACKADJ_RTX): Likewise. - * config/mips/mips.c (compute_frame_size): Make space for saving - EH return registers. - (mips_expand_epilogue): Handle EH stack adjustments. - * config/mips/mips.md (eh_return): New pattern. - (eh_set_lr_si): Likewise. - (eh_set_lr_di): Likewise. - Add splitter to perform EH return after reload. - -2001-05-19 Mark Mitchell - - * jump.c (mark_jump_label): Tidy previous change. - -2001-05-19 Bruce Korb - - * fixinc/genfixes: no need for two warnings - * fixinc/Makefile.in: open stdin for those building with a closed one. - -2001-05-19 Mark Mitchell - - * jump.c (jump_optimize_1): Tidy. - (mark_jump_label): When changing the label in a LABEL_REF, change - update any REG_EQUAL notes as well. - -2001-05-19 Joseph S. Myers - - * c-parse.in (parm_declarator): Split into - parm_declarator_starttypename and parm_declarator_nostarttypename. - (parm_declarator_starttypename, parm_declarator_nostarttypename): - New. Allow parenthesized sub-declarators which don't begin with a - TYPENAME. Fixes PR c/166. - -2001-05-19 Mark Mitchell - - * defaults.h (TARGET_ALLOWS_PROFILING_WITHOUT_FRAME_POINTER): New - macro. - * tm.texi (TARGET_ALLOWS_PROFILING_WITHOUT_FRAME_POINTER): - Document it. - * toplev.c (main): If the target does not allow profiling without - a frame pointer, issue an error message. - * config/i386/linux.h (TARGET_ALLOWS_PROFILING_WITHOUT_FRAME_POINTER): - Define it to false. - -Sat May 19 07:53:42 2001 Richard Kenner - - * recog.c (general_operand): Modify last change to allow it if reload - has completed. - -Sat May 19 10:23:54 CEST 2001 Jan Hubicka - - * recog.c (general_operand): Prohibit nonzero subreg bytes on - subregs containing mem. - -Sat May 19 09:40:45 2001 Denis Chertykov - - * regrename.c (regrename_optimize): frame pointer register can - use a few hardregs. - -2001-05-18 Jason Merrill - - * README.DWARF: Move into dwarfout.c. - -2001-05-18 Dale Johannesen - - * config/rs6000/rs6000.c (secondary_reload_class): Fix Darwin - specific misuse of r0 as a reload address. - -Fri May 18 22:42:04 CEST 2001 Jan Hubicka - - * combine.c (combine_simplify_rtx): Clear op0_mode if simplification - succeeded. - -Fri May 18 07:26:34 2001 Richard Kenner - - * genrecog.c (enum decision_type): Add DT_elt_zero-wide_safe. - (add_to_sequence): Make that decision type. - (maybe_both_true_2, nodes_identical_1, factor_tests): Use it. - (write_switch, write_cond, debug_decision_2): Likewise. - - * dbxout.c (dbxout_type): Use host_integerp and fix typo in testing - for INTEGER_TYPE. - (dbxout_symbol, case TYPE_DECL): Don't generate tag for records of - variable size. - -2001-05-18 Stan Shebs - - * configure.in (gcc_cv_as_eh_frame): Cope with old assemblers. - * configure: Regenerate. - -2001-05-18 Per Bothner - - Changes needed for java/jvspec.c - * gcc.h (n_infiles, outfiles): Add declarations. - * gcc.c (n_infiles, outfiles): Mske no longer static. - -Fri May 18 10:14:42 2001 Jeffrey A Law (law@cygnus.com) - - * config/pa/som.h (EXCEPTION_SECTION): Define. - -2001-05-18 Daniel Berlin - - * dwarf2out.c: Add dw_loc_list_ref, a reference to a location - list. - Add have_location_lists, a variable to determine whether we need a - .debug_loc section or not. - (enum dw_val_class): Add dw_val_class_loc_list. - (dw_val_struct): Add val_loc_list. - (dw_loc_list_struct): New structure, represents location lists. - (new_loc_list): New function, return a new location list, given - the range and location expression. - (add_loc_descr_to_loc_list): New function, add a location - expression to a location list, given the expression and range. - (output_loc_list): New function, output a location list. - (gen_internal_sym): Modified to take symbol prefix, so we can - reuse it for location list symbols. - (add_AT_loc_list): New function, add a location list to a DIE at - the named attribute. - (AT_loc_list): New function, return the location list reference - for a given attribute, if it's a location list. - (print_die): Handle dw_val_class_loc_list. - (size_of_die): Ditto. - (value_format): Ditto. - (output_die): Ditto. - (output_location_lists): New function, output all of the location - lists for a DIE and it's children. - (dwarf2out_finish): Call output_location_lists if we have location - lists. - - -Fri May 18 15:39:16 CEST 2001 Jan Hubicka - - * gcse.c (try_replace_reg): First try global replace, later try to - simplify the expression. - - * gcse.c (find_used_regs): Change calling convention; work via - note_uses. - (cprop_insn): Update call of find_used_regs; work for CALL_INSNs too. - -2001-05-18 Bernd Schmidt - - Revert - 2001-02-09 Nick Clifton - * config/arm/arm.md: Change output constraint on post inc - load/store multiple patterns to be a read/write constraint. - -2001-05-18 Mark Mitchell - - * basic-block.h (struct basic_block_def): Add documentation about - what a basic block is, and what the various fields are used for. - * flow.c (calculate_globlal_regs_live): Add documentation about - how the algorithm works, and how we know that it will terminate. - Check that the inductive assumption that guarantees termination - actually holds. - (mark_used_regs): Treat conditionally set registers as used. - (debug_regset): Add comment. - * rtl.texi (cond_exec): Add documentation. - - * function.c (expand_function_start): Avoid creating BLKmode - pseudos. - -2001-05-17 Mark Mitchell - - * dwarf2out.c (output_comp_unit): Always output a compilation-unit - DIE, even if it has no children. - (dwarf2out_finish): Always output the line-number table, even if - it has no content. - -2001-05-18 David Edelsohn - - * rs6000.md (movsfcc,movdfcc): Remove NE case. - -2001-05-17 Bruce Korb - - * fixinc/fixincl.tpl: rewritten as an AutoGen version 5 template - * fixinc/genfixes: emit a warning if AutoGen is out of date - -2001-05-17 Brendan Conoboy - Bruce Korb - - * fixinc/fixincl.sh(FIXINC): accept local directory if fixincl not - found in fixinc directory. Facilitates binary distributions. - -2001-05-17 Jeffrey Oldham - - * dbxout.c (dbxout_symbol_location): For CONCAT, skip types not - COMPLEX_TYPE. - -Thu May 17 19:42:39 2001 Mark Kettenis - - * dwarf2out.c (modified_type_die): Equate qualified type to die. - -Thu May 17 23:19:46 CEST 2001 Jan Hubicka - - * integrate.c (copy_rtx_and_substitute): Use simplify_gen_subreg. - (simplify_subreg): Handle complex types represented as CONCAT. - - * recog.c (validate_replace_rtx_1): Properly canonicalize expression - * rtl.h (swap_commutative_operands_p): Declare. - * rtlanal.c (swap_commutative_operands_p): New. - (operand_preference): New static function. - - * combine.c (combine_simplify_rtx): Use swap_commutative_operands_p. - (gen_binary): Likewise. - * optabs.c (emit_cmp_and_jump_insns, emit_conditional_move): Likewise. - * simplify-rtx.c (simplify_gen_binary, - simplify_gen_relational): Likewise. - -Thu May 17 20:43:36 CEST 2001 Jan Hubicka - - * cse.c (fold_rtx): Use simplify_subreg. - - * simplify-rtx.c (simplify_replace_rtx): Use simplify_gen_subreg. - (simplify_gen_subreg): New. - (simplify_rtx): Use simplify_subreg. - * rtl.h (simplify_gen_subreg): Declare. - -2001-05-17 Mark Mitchell - - * doc/install.texi: Update Solaris information. - - * except.h (protect_cleanup_actions): Remove it. - (lang_protect_cleanup_actions): Declare it. - * except.c (protect_cleanup_actions): Remove it. - (lang_protect_cleanup_actions): New variable. - (init_eh): Don't make protect_cleanup_actions a GC root. - (expand_eh_region_and_cleanup): Call - lang_protect_cleanup_actions. - (output_function_exception_table): Remove unused `align' - variable. - * varasm.c (assemble_external): Abort if we have not yet - opened the assembly output file. - -Thu May 17 11:54:50 2001 Jeffrey A Law (law@cygnus.com) - - * except.c (sjlj_emit_function_enter): Call assemble_external_libcall - for eh_personality_libfunc. - -Thu May 17 19:48:00 CEST 2001 Jan Hubicka - - * recog.c (validate_replace_rtx_1): Use "TO" mode if not VOIDmode - when calling simplify_subreg. This is needed to allow replacing - of expression of one mode by expression of different mode. - -Thu May 17 19:40:03 CEST 2001 Jan Hubicka - - * simplify-rtx.c (simplify_subreg): Avoid creating of incorrect subregs. - -2001-05-17 Bernd Schmidt - - * expr.c (protect_from_queue): Protect against subsequent calls to - emit_queue. - (expand_expr, case ADDR_EXPR): Prevent protect_from_queue from being - too clever. - -Thu May 17 18:17:34 CEST 2001 Jan Hubicka - - * simplify_rtx.c (simplify_subreg): Fix simplification of nested subregs. - -2001-05-17 Gerald Pfeifer - - * gccbug.in (CATEGORIES): Add "bootstrap". - -Thu May 17 16:59:41 CEST 2001 Jan Hubicka - - * simplify-rtx.c (simplify_subreg): Break out from ... - * combine.c (combine_splify_rtx) ... here and ... - * recog.c (validate_replace_rtx_1): ... here; - * rtl.h (subreg_lowpart_parts_p, simplify_subreg): Declare. - * emit-rtl.c (subreg_lowpart_parts_p): Break out from ... - (subreg_lowpart_p): ... here. - -2001-05-17 Bernd Schmidt - - * stmt.c (expand_asm_operands): For inout operands, make sure - the substitution of '=' for '+' makes it into the rtl. - - * reload1.c (delete_output_reload): Call eliminate_regs on substed. - (reload_as_needed): Call update_eliminable_offsets a bit later. - -2001-05-17 Gerald Pfeifer - - * gcc.texi (gccbug): Refer to the web pages for detailed information - on GNATS. - -2001-05-16 Zack Weinberg - - * libgcc1-test.c, libgcc1.c, config/i386/perform.h: Delete file. - - * Makefile.in: Delete variables: OLDCC, CCLIBFLAGS, OLDAR, - OLDAR_FLAGS, LIBGCC1, LIBGCC1_TEST, CROSS_LIBGCC1, - LIB1FUNCS, and LIB1FUNCS_EXTRA. Delete rules: libgcc1-test, - libgcc1-test.o. Clarify commentary now that libgcc1 no longer exists. - * cross-make: Don't set LIBGCC1. - * mklibgcc.in: Delete all code for building from libgcc1.c. - Always honor LIB1ASMFUNCS if set. - - * crtstuff.c, floatlib.c, longlong.h, config/fp-bit.c, - config/arc/lib1funcs.asm, config/arm/lib1funcs.asm, - config/d30v/libgcc1.asm, config/fr30/lib1funcs.asm, - config/h8300/lib1funcs.asm, config/i386/cygwin.asm, - config/i386/uwin.asm, config/m68hc11/larith.asm, - config/m68k/lb1sf68.asm, config/mcore/lib1.asm, - config/mn10200/lib1funcs.asm, config/sh/lib1funcs.asm, - config/sparc/lb1spc.asm, config/sparc/lb1spl.asm, - config/v850/lib1funcs.asm, config/c4x/libgcc.S: - Delete or update references to libgcc1 in commentary. - - * config/t-libc-ok, config/t-linux, config/t-linux-aout, - config/t-netbsd, config/a29k/t-a29kbare, config/a29k/t-vx29k, - config/alpha/t-interix, config/alpha/t-osf, config/alpha/t-vms, - config/arc/t-arc, config/arm/t-arm-aout, config/arm/t-arm-coff, - config/arm/t-arm-elf, config/arm/t-linux, config/arm/t-pe, - config/arm/t-semi, config/arm/t-strongarm-coff, - config/arm/t-strongarm-elf, config/arm/t-strongarm-pe, - config/arm/t-xscale-coff, config/arm/t-xscale-elf, config/avr/t-avr, - config/c4x/t-c4x, config/d30v/t-d30v, config/fr30/t-fr30, - config/h8300/t-h8300, config/i386/t-beos, config/i386/t-cygwin, - config/i386/t-i386elf, config/i386/t-interix, config/i386/t-netware, - config/i386/t-next, config/i386/t-rtems-i386, config/i386/t-sol2, - config/i960/t-960bare, config/i960/t-vxworks960, config/ia64/t-ia64, - config/m32r/t-m32r, config/m68hc11/t-m68hc11-gas, config/m68k/t-lynx, - config/m68k/t-m68kbare, config/m68k/t-m68kelf, - config/m68k/t-mot3300-gald, config/m68k/t-mot3300-gas, - config/m68k/t-next, config/m68k/t-vxworks68, config/m88k/t-bug, - config/m88k/t-dgux, config/m88k/t-dgux-gas, config/m88k/t-dguxbcs, - config/m88k/t-luna, config/m88k/t-luna-gas, config/m88k/t-m88k, - config/m88k/t-m88k-gas, config/m88k/t-sysv4, config/mcore/t-mcore, - config/mcore/t-mcore-pe, config/mips/t-bsd, config/mips/t-bsd-gas, - config/mips/t-cross64, config/mips/t-ecoff, config/mips/t-elf, - config/mips/t-iris6, config/mips/t-r3900, config/mips/t-svr3, - config/mips/t-svr3-gas, config/mips/t-svr4, config/mips/t-svr4-gas, - config/mips/t-ultrix, config/mn10200/t-mn10200, - config/mn10300/t-mn10300, config/pa/t-linux, config/pa/t-linux64, - config/pa/t-pa, config/pa/t-pa64, config/pa/t-pro, - config/pdp11/t-pdp11, config/pj/t-pj, config/rs6000/t-aix43, - config/rs6000/t-beos, config/rs6000/t-darwin, config/rs6000/t-newas, - config/rs6000/t-ppccomm, config/rs6000/t-rs6000, config/sh/t-linux, - config/sh/t-sh, config/sparc/t-chorus-elf, config/sparc/t-elf, - config/sparc/t-sol2, config/sparc/t-sp86x, config/sparc/t-sparcbare, - config/sparc/t-sparclite, config/sparc/t-splet, - config/sparc/t-sunos41, config/sparc/t-vxsparc, - config/sparc/t-vxsparc64, config/v850/t-v850: - Don't set any of LIBGCC1, CROSS_LIBGCC1, or LIBGCC1_TEST. - - * config/alpha/alpha.h, config/i386/i386.h, config/i860/i860.h: - Don't set FLOAT_VALUE_TYPE, FLOAT_ARG_TYPE, INTIFY, or FLOATIFY. - * config/d30v/d30v.h: Don't mention LIBGCC_NEEDS_DOUBLE, - FLOAT_VALUE_TYPE, FLOAT_ARG_TYPE, FLOATIFY, INTIFY, - nongcc_SI_type, nongcc_word_type, or perform_* - * config/i860/fx2800: Don't define perform_umodsi3 or perform_modsi3. - - * config/i386/386bsd.h, config/i386/beos-elf.h, - config/i386/linux-aout.h, config/i386/linux-oldld.h, - config/i386/linux.h, config/i386/mach.h, config/i386/netbsd.h, - config/i386/openbsd.h, config/i386/osfrose.h, config/i386/rtemself.h: - Don't include i386/perform.h. - - * config/a29k/t-a29k, config/arm/t-semiaof, config/i370/t-i370, - config/i370/t-linux, config/i370/t-mvs, config/i370/t-oe, - config/i386/t-djgpp, config/i386/t-i386bare, config/i386/t-vsta, - config/ia64/t-hpux, config/mips/t-mips, config/mips/t-mips-gas, - config/mips/t-osfrose, config/sparc/t-sp64, config/sparc/t-sunos40, - config/vax/t-openbsd, config/vax/t-vax: Delete. - - * config.gcc: Remove references to deleted files. - (arm-semi-aof): Use arm/t-semi for tmake_file. - - * gcc.texi, install.texi, invoke.texi, tm.texi: - Delete or rewrite text which is no longer relevant now that - libgcc1 no longer exists. - - * config/t-openbsd, config/alpha/t-interix, config/i386/t-interix: - No need to set INSTALL_ASSERT_H. (Missed in previous sweep.) - -2001-05-16 Wolfgang Bangerth - Bruce Korb - - * fixinc/inclhack.def(solaris27_mutex_init): Fix broken mutex - initializer - -2001-05-16 Zack Weinberg - - * i386.md: Add two peepholes to clean up code generated by - cmpstr* expanders. - -2001-05-16 Richard Henderson - - * dwarf2asm.c (eh_data_format_name): Add names for "pointer size" - variants of non-absolute encodings. - - * config/i386/i386.h (ASM_PREFERRED_EH_DATA_FORMAT): New. - - * libgcc-std.ver (_Unwind_Find_FDE, __register_frame_info_bases, - __register_frame_info_table_bases): Export. - -2001-05-16 Richard Henderson - - * except.c (eh_data_format_name): Move to ... - * dwarf2asm.c: ... here. Use designated initializers if available. - (dw2_asm_output_encoded_addr_rtx): Accept varargs commentary. - * dwarf2asm.h: Update declarations. - * dwarf2out.c (output_cfi) [DW_CFA_set_loc]: If for_eh, mind - ASM_PREFERRED_EH_DATA_FORMAT. - (output_call_frame_info): Likewise. Use 'L' augmentation for - the LSDA encoding. - - * unwind-dw2-fde.h (struct fde_vector): New. - (struct old_object): Rename from struct object. - (struct object): New. - (__register_frame_info_bases): Declare. - (__register_frame_info_table_bases): Declare. - (struct dwarf_fde): Remove explicit pc_begin/pc_range members. - * unwind-dw2-fde.c (objects): Remove. - (unseen_objects, seen_objects): New. - (__register_frame_info_bases): New. - (__register_frame_info): Use it. - (__register_frame_info_table_bases): New. - (__register_frame_info_table): Use it. - (__deregister_frame_info): Rewrite for changed object struct. - (base_from_object, get_cie_encoding, get_fde_encoding): New. - (fde_unencoded_compare): Rename from fde_compare; uninline. - (fde_single_encoding_compare, fde_mixed_encoding_compare): New. - (start_fde_sort): Adjust for new definition of fde_vector. - (fde_insert): Likewise. - (end_fde_sort): Likewise. Select comparison function based - on properties of the object. - (fde_split): Take object and fde_compare_t arguments. - (frame_heapsort, fde_merge): Likewise. - (classify_object_over_fdes): Rename from count_fdes. Handle - encoded pointers. Collect encoding, mixed_encoding, and pc_begin - for the object. - (add_fdes): Handle encoded pointers. - (init_object): Rename from frame_init. Update for new struct object. - (linear_search_fdes): Rename from search_fdes. Handle encoded - pointers. - (binary_search_unencoded_fdes): Broken out from _Unwind_Find_FDE. - (binary_search_single_encoding_fdes): New. - (binary_search_mixed_encoding_fdes): New. - (search_object): New. - (_Unwind_Find_FDE): Update for new struct object. Fill in - the dwarf_eh_bases. - * unwind-dw2.c: Include unwind-pe.h. Constify all pointers - iterating over EH data. - (_Unwind_FrameState): Remove saw_lsda, addr_encoding. Add - fde_encoding, lsda_encoding. - (read_uleb128, read_sleb128): Remove. - (read_encoded_pointer): Remove. All callers use read_encoded_value. - (extract_cie_info): Set lsda_encoding from 'L' augmentation. - (uw_frame_state_for): Don't set bases.func. Handle encoded fde - pointers. - * unwind-pe.h: Add "struct" to _Unwind_Context references. - -2001-05-16 Neil Booth - - * cppexp.c (lex): Use NODE_NAME and NODE_LEN. - * cpphash.c (_cpp_lookup_with_hash): Similarly. - * cpplex.c (cpp_ideq, parse_identifier, cpp_token_len, - cpp_spell_token, cpp_output_token): Similarly. - * cpplib.c (lex_macro_node, do_undef, do_pragma, - do_pragma_poison, parse_assertion, do_assert): Similarly. - * cppmacro.c (builtin_macro, parse_args, funlike_invocation_p, - save_parameter, _cpp_create_definition, check_trad_stringification, - cpp_macro_definition): Similarly. - * cppmain.c (cb_define, cb_undef, dump_macro): Similarly. - * c-lex.c (cb_undef, c_lex): Similarly. - * fix-header.c (recognized_function): Similarly. - * cpplib.h (NODE_LEN, NODE_NAME): New. - (cpp_hashnode): Rename length len. - -Wed May 16 13:41:10 2001 Jeffrey A Law (law@cygnus.com) - - * pa32-regs.h (HARD_REGNO_MODE_OK): Allow TI/TFmode values in - GPRs. - -2001-05-16 Andreas Jaeger - - * Makefile.in (toplev.o): Add dependency on dwarf2asm.h. - - * toplev.c: Include dwarf2asm.h for prototype of - dw2_output_indirect_constants. - -Wed May 16 19:53:53 CEST 2001 Jan Hubicka - - * stmt.c (expand_asm_operands): Be able to offload addressof - expression to memory. (PR optimization/185) - -Wed May 16 18:53:23 CEST 2001 Jan Hubicka - - * combine.c (combine_simplify_rtx): Set op0_mode to VOIDmode after - applying distributive law. - -2001-05-16 John David Anglin - - * pa-hpux10.h (THREAD_MODEL_SPEC): Define. - - * gthr-dce.h (UNUSED): Attribute unused macro. - (__gthread_key_dtor): Make arguments UNUSED. - (__gthread_key_delete): Revise for compatibility with DRAFT4 - implementation. - -2001-05-16 David Edelsohn - - * doc/install.texi: Update AIX information. - * README.RS6000: Remove obsolete file. - -2001-05-16 Jakub Jelinek - Nathan Sidwell - - * gcc.c (give_switch): Don't write before start of string. - Always append suffix. - -2001-05-16 Nathan Sidwell - - * cpplex.c (_cpp_lex_token, '/' case): Comments can't appear - after stage3. - -2001-05-16 Gerald Pfeifer - - * README.ALTOS: Remove obsolete file. - -2001-05-16 Neil Booth - - * c-lex.h (save_and_forget_protocol_qualifiers, - forget_protocol_qualifiers, remember_protocol_qualifiers): - Remove deleted functions' prototypes. - -2001-05-16 Neil Booth - - * c-parse.in (methodtype): New production. - (methoddef, methodproto): Collapse separate '-' and '+' - handlers into 1. - -2001-05-16 Neil Booth - - * c-common.h (RID_FIRST_PQ): New. - * c-parse.in (objc_pq_context): New. - (objc parser): Set objc_pq_context rather than calling - remember_protocol_qualifiers and forget_protocol_qualifiers. - Don't call save_and_forget_protocol_qualifiers. - (yylexname): Handle objc protocol qualifiers here. - * stringpool.c (struct str_header): Replace with sp_hashnode. - (SP_EMPTY, SP_LEN, SP_TREE, SP_STR, SP_VALID): New. - (alloc_string): Rename alloc_ident. Use the SP_ accessors. - Allocate an IDENTIFIER_NODE for each identifier. - (FORALL_STRINGS, set_identifier): Delete. - (FORALL_IDS, expand_string_table, stringpool_statistics): Update. - (ggc_alloc_string): Use an obstack. - (get_identifier, maybe_get_identifier, mark_string_hash): Update. - * tree.h: Update comments. - (set_identifier): Delete. - * objc/objc-act.c (N_PQ, saved_pq, saved_not_pq, - save_and_forget_protocol_qualifiers, forget_protocol_qualifiers, - remember_protocol_qualifiers): Delete. - -Tue May 15 22:14:09 2001 Jeffrey A Law (law@cygnus.com) - - * flow.c (life_analysis): After life analysis is complete, do - an optional scan over insns looking for REG_LABEL notes that - reference a deleted label. - (propagate_block_delete_insn): Verify INOTE is a CODE_LABEL - before peeking at LABEL_NUSES. - -2001-05-15 Richard Henderson - - * unwind-sjlj.c (_Unwind_GetDataRelBase): New. - (_Unwind_GetTextRelBase): New. - -2001-05-15 Mark Mitchell - - * config/sparc/sol2.h (CPLUSPLUS_CPP_SPEC): Define. - -2001-05-15 Geoffrey Keating - - * objc/objc-act.c (handle_class_ref): Use rest_of_decl_compilation - so that CHOOSE_SECTION gets used. - - * config/rs6000/sysv4.h (ASM_PREFERRED_EH_DATA_FORMAT): Treat - TARGET_RELOCATABLE like flag_pic for now. - -2001-05-15 David Edelsohn - - * rs6000.md (movdi splitter): Sign extend more efficiently. - * rs6000.c (reg_or_arith_cint_operand): Redefine 64-bit constant - to "long long" valid on 32-bit and 64-bit hosts. - (logical_operand): Cast trunc_int_for_mode return value. - (rs6000_emit_move): Shift macro to encapsulate variable. - (rs6000_va_start): Use HOST_WIDE_INT_PRINT_DEC. - (rs6000_emit_{prologue,epilogue}): EH regno is unsigned but - plus_constant requires signed argument. - -2001-05-15 Loren J. Rittle - - * gthr-posix.h: Make additional pthread-* functions weak. - -Tue May 15 13:51:32 CEST 2001 Jan Hubicka - - * recog.c (apply_change_group): Avoid unneeded validating. - -2001-05-14 David Edelsohn - - * rs6000.c (num_insns_constant_wide): Constants are sign-extended. - (num_insns_constant): CONST_INT can be 64-bits. - -2001-05-14 Stan Shebs - - * config/darwin.h (LIB_SPEC): Just use -lSystem. - (LIBGCC_SPEC): Don't define. - -2001-05-14 Richard Henderson - - * configure.in (gcc_cv_as_eh_frame): New test. - * config.in, configure: Rebuild. - * gcc.c (init_spec): Honor USE_AS_TRADITIONAL_FORMAT. - -2001-05-14 Andrew MacLeod - - * config/ia64/lib1funcs.asm (__divtf3): Fix incorrect bits in - extended precision divide. - -2001-05-14 Andrew MacLeod - - * config/ia64/ia64.c (rtx_needs_barrier): Call rtx_needs_barrier - for RETURNS as well. - -Mon May 14 17:34:48 CEST 2001 Jan Hubicka - - * i386.h (TARGET_64BIT): Define to constant if !TARGET_BI_ARCH - (CPP_CPU??_SIZE_TYPE): New. - (CPP_CPU??_SPEC, CPP_CPUCOMMON_SPEC): Break out from... - (CPP_CPU_SPEC): ... here; support choosing of CPU. - (EXTRA_SPECS): Add cpp_cpu??, cpp_cpu??sizet, cpp_cpucommon. - (MAX_LONG_TYPE_SIZE, MAX_BITS_PER_WORD): Define to 32 for 32bit-only - compiler. - * i386.c (override_options): Add sorry about not suported modes. - -Mon May 14 08:56:47 2001 Jeffrey A Law (law@cygnus.com) - - * config/pa/som.h (NM_FLAGS): Remove. - (ASM_OUTPUT_FUNCTION_PREFIX): No longer truncate subspace names. - (ASM_OUTPUT_SECTION_NAME): Remove. - (MAKE_DECL_ONE_ONLY, ASM_WEAKEN_LABEL): Likewise. - -2001-05-14 Mark Mitchell - - * regrename.c (regrename_optimize): Do not rename registers to - leaf registers. - -2001-05-14 Alexandre Oliva - - * rtl.texi (CALL_INSN_FUNCTION_USAGE): Note that (and when) it may - contain MEMs. Remove useless distinction about clobbering - registers. - -2001-05-13 Geoff Keating - - * config/rs6000/rs6000.h (EXCEPTION_SECTION): Move to... - * config/rs6000/aix.h (EXCEPTION_SECTION): ... here. - * config/rs6000/sysv4.h (CONST_SECTION_ASM_OP): Delete. - (ASM_PREFERRED_EH_DATA_FORMAT): Define. - (EXCEPTION_SECTION): Define. - -2001-05-13 Zack Weinberg - - * libgcc2.c, libgcc2.h: Restore __eprintf. Label as used for - binary backward compat only. - * Makefile.in (LIB2FUNCS_ST): New. Put _eprintf here, not - in LIB2FUNCS. Pass it to mklibgcc. - * mklibgcc.in: Handle LIB2FUNCS_ST. - - * Makefile.in (installdirs): Don't create $(gcc_tooldir). - -2001-05-13 Alexandre Oliva - - * tm.texi (THREAD_MODEL_SPEC): Document it. - * gcc.c (main): Use it. - * config/rs6000/aix43.h (THREAD_MODEL_SPEC): Define it. - * config/rs6000/aix51.h (THREAD_MODEL_SPEC): Likewise. - -2001-05-13 Franz Sirl - - * rtl.h (SYMBOL_REF_WEAK): New macro. - * rtlanal.h (rtx_addr_can_trap): Use it, a weak SYMBOL_REF can trap. - * varasm.c (make_decl_rtl): Mark SYMBOL_REF weak if necessary. - * rtl.texi (SYMBOL_REF_WEAK): Document it. - * gcc.texi: Remove wrong description. - -2001-05-13 Mark Mitchell - - * Makefile.in (STAMP): New macro. - Replace all uses of `touch' with $(STAMP). - * fixinc/Makefile.in: Likewise. - -Sun May 13 07:26:34 2001 Richard Kenner - - * configure.in: ldopen is never in -lexc, so don't test for it. - Add test for exc_resume in -lexc for Ada. - * configure: Regenerated. - -2001-05-12 Richard Henderson - - * dwarf2asm.c (size_of_encoded_value): New function. - * dwarf2asm.h: Declare it. - * except.c (output_function_exception_table): Align the TType - array only as wide as the encoding. - -2001-05-12 Zack Weinberg - - * extend.texi: Document #pragma GCC java_exceptions. - -2001-05-12 Neil Booth - - * c-parse.in (bison parser, init_reswords): Remove uses of - doing_objc_thang. - * c-tree.h (doing_objc_thang): Remove. - -2001-05-12 Neil Booth - - * cpplex.c (_cpp_lex_token): Ensure we warn at most once - about files not ending in newlines. - -2001-05-12 Neil Booth - - * dwarfout.c (dwarfout_init): Add cast. - * sched-deps.c (sched_analyze_insn): Remove unused vars. - * unwind-dw2-fde.c (_Unwind_Find_FDE): Flag unused parameter so. -cp: - * method.c (build_mangled_C99_name): Remove unused prototype. - -2001-05-12 Alexandre Oliva - - * config/arm/arm.h (TARGET_PTRMEMFUNC_VBIT_LOCATION): Use delta. - -2001-05-12 Alexandre Oliva - - * defaults.h (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define. - * tm.texi (TARGET_PRTMEMFUNC_VBIT_LOCATION): Document. - -2001-05-11 Richard Henderson - - * defaults.h (ASM_PREFERRED_EH_DATA_FORMAT): New. - * dwarf2asm.c (dw2_force_const_mem, dw2_output_indirect_constant_1, - dw2_output_indirect_constants, dw2_asm_output_encoded_addr_rtx): New. - * dwarf2asm.h (dw2_asm_output_encoded_addr_rtx): Prototype. - (dw2_output_indirect_constants): Prototype. - * dwarf2out.c (dwarf2out_begin_prologue): Generate - current_function_func_begin_label if we'll need it for EH. Exit - early for IA64_UNWIND_INFO. - * except.c: Get DW_EH_PE_* defines from dwarf2.h. - (eh_data_format_name): Update for indirect references. - (output_function_exception_table): Care for IA64_UNWIND_INFO. - Handle ASM_PREFERRED_EH_DATA_FORMAT. - * except.h (MUST_USE_SJLJ_EXCEPTIONS): IA64_UNWIND_INFO needn't - define HAVE_eh_return etc. - * final.c (final_start_function): Always call dwarf2out_begin_prologue. - (final_end_function): Don't call output_function_exception_table. - * toplev.c (compile_file): Call dw2_output_indirect_constants. - (rest_of_compilation): Invoke output_function_exception_table - for ia64 before assemble_end_function. - * tm.texi (ASM_PREFERRED_EH_DATA_FORMAT): Document. - (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Document. - - * unwind-dw2.c (_Unwind_GetTextRelBase, _Unwind_GetDataRelBase): New. - * unwind.h: Declare them. - * libgcc-std.ver: Export them. - * unwind-pe.h: New file. - - * config/alpha/elf.h (ASM_PREFERRED_EH_DATA_FORMAT): New. - - * config/ia64/fde-glibc.c: Use "struct unw_table_entry" - instead of "fde". - (find_fde_for_dso): Extract DT_PLTGOT. - (_Unwind_FindTableEntry): Rename from __ia64_find_fde; return - the segment and gp as well. - * config/ia64/frame-ia64.c: Remove file. - * config/ia64/frame-ia64.h: Remove file. - * config/ia64/unwind-ia64.c: New file. - * config/ia64/unwind-ia64.h: New file. - * config/ia64/ia64.h (ASM_OUTPUT_EH_CHAR): Remove. - (ASM_OUTPUT_EH_SHORT, ASM_OUTPUT_EH_INT): Remove. - (ASM_OUTPUT_EH_DOUBLE_INT): Remove. - (ASM_PREFERRED_EH_DATA_FORMAT): New. - (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): New. - (IA64_UNWIND_INFO): Re-enable. - (HANDLER_SECTION): Remove. - (EH_RETURN_DATA_REGNO): New. - * config/ia64/ia64.md (exception_receiver): Remove. - * config/ia64/t-glibc (LIB2ADDEH): Re-enable. - * config/ia64/t-ia64 (LIB2ADDEH): Re-enable. - -2001-05-11 Richard Henderson - - * config/ia64/ia64.c (group_barrier_needed_p): Don't allow - calls and jumps to be bundled together. - (ia64_reorg): Emit a break after a noreturn call that ends - a function. - * config/ia64/ia64.md (break_f): New. - -2001-05-12 Neil Booth - - * c-lex.c (lex_charconst): Convert into a simple wrapper - around cpp_interpret_charconst, to which most of the code - body is moved. - * cppexp.c (MAX_CHAR_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE, - MAX_LONG_TYPE_SIZE, MAX_INT_TYPE_SIZE, MAX_CHAR_TYPE_MASK, - MAX_WCHAR_TYPE_MASK, parse_escape, parse_charconst): Remove. - (lex): Use cpp_interpret_charconst. - * cpplex.c (parse_escape, read_ucs, cpp_interpret_charconst, - hex_digit_value): New functions. - (MAX_CHAR_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): New macros. - * cpplib.h (cpp_interpret_charconst): New prototype. - * Makefile.in: Update. - -2001-05-12 Dean Wakerley - - * doc/install.texi: New file. Converted to texinfo from the HTML - documentation in wwwdocs/htdocs/install. - -Fri May 11 15:50:13 2001 Jeffrey A Law (law@cygnus.com) - - * gcse.c (insert_insn_end_bb): Do not search for assignments to - non-argumment registers that are mentioned in CALL_INSN_FUNCTION_USAGE. - - * toplev.c (compile_file): Move comment for opening output - file to just before the code that opens the output file. - -2001-05-11 Jakub Jelinek - - * regmove.c (regmove_optimize): Suppress the optimization for - unchanging destination register. Add comment above function. - -2001-05-11 Zack Weinberg - - * Makefile.in: Exterminate all references to assert.h. - * cross-make: Likewise. - * assert.h: Delete. - * configure.in: Correct commentary. - * configure: Regenerate. - - * libgcc-std.ver, libgcc2.c, libgcc2.h, sys-protos.h: - Remove __eprintf. - - * config/t-freebsd, config/t-linux, config/t-linux-aout, - config/t-netbsd, config/t-rtems, config/x-linux, - config/i386/t-beos, config/mcore/t-mcore, config/mcore/t-mcore-pe: - No need to override INSTALL_ASSERT_H. - - * fixinc/fixinc.dgux, fixinc/fixinc.interix, fixinc/fixinc.ptx, - fixinc/fixinc.svr4, fixinc/fixinc.winnt, fixinc/fixinc.wrap, - fixinc/fixincl.sh: Don't install assert.h into objdir/include. - -2001-05-11 Graham Stott - - * combine.c (simplify_comparison): Fix typo. - -2001-05-11 Mark Mitchell - - * loop.h (struct movables): Remove `num'. - * loop.c (scan_loop): Don't set it. Use count_insns_in_loop. - Adjust call to strength_reduce. - (num_unmoved_movables): New function. - (move_movables): Don't set movables->num. - (strength_reduce): Compute the number of instructions in the loop - here, rather than in the caller. - (check_dbra_loop): Always clear reversible_mem_store if there - are any memory sets. - (loop_regs_scan): Don't count instructions here. - (count_insn_in_loop): New function. - -2001-05-11 Mark Mitchell - - * optabs.c (emit_libcall_block): Don't mark calls as CONST_CALL_P. - -2001-05-11 Neil Booth - - * c-common.c (finish_label_expr): New function, lifted from - from cp/semantics.c. - * c-common.h (finish_label_expr, lookup_label): New prototypes. - * c-parse.in: Move 3 blocks of parser code into new functions. - * c-typeck.c (simple_asm_stmt, c_cast_expr): New functions. - * c-tree.h (simple_asm_stmt, c_cast_expr): New prototypes. - (lookup_label): Remove. - -2001-05-11 Alexandre Oliva - - * config/mn10300/t-mn10300 (dp-bit.c, fp-bit.c): Don't define - FLOAT_BIT_ORDER_MISMATCH. - -2001-05-10 David Edelsohn - - * expr.c (emit_push_insn): Convert PUSH_ROUNDING argument to - bytes. Reported by Kazu Hirata . - -2001-05-10 David Edelsohn - - * expr.c (emit_group_load): extract_bit_field requires a REG or - MEM as an argument. - -Thu May 10 14:45:44 2001 Jeffrey A Law (law@cygnus.com) - - * cse.c (cse_insn): Mostly remove first hunk of code which collapsed - a computed jump into an unconditional jump. - In second hunk of code for collapsing computed and conditional jumps - into unconditional jumps, reemit the jump in additional cases. - - * jump.c (jump_optimize_1): Do not wrap the new jump target - inside a LABEL_REF; gen_jump will do that automatically. - -2001-05-10 Toon Moene - - * dwarf2out.c (mem_loc_descriptor): Do not pass constant pool - contents for a SYMBOL_REF in case of floating point constants. - -2001-05-10 DJ Delorie - - * c-common.c (combine_strings): Widen strings in a - host-endian-independent way. - -2001-05-10 Joseph S. Myers - - * c-parse.in: Remove many shift/reduce conflicts. Update - %expect values. - (declspecs_nosc_nots_nosa_noea, declspecs_nosc_nots_nosa_ea, - declspecs_nosc_nots_sa_noea, declspecs_nosc_nots_sa_ea, - declspecs_nosc_ts_nosa_noea, declspecs_nosc_ts_nosa_ea, - declspecs_nosc_ts_sa_noea, declspecs_nosc_ts_sa_ea, - declspecs_sc_nots_nosa_noea, declspecs_sc_nots_nosa_ea, - declspecs_sc_nots_sa_noea, declspecs_sc_nots_sa_ea, - declspecs_sc_ts_nosa_noea, declspecs_sc_ts_nosa_ea, - declspecs_sc_ts_sa_noea, declspecs_sc_ts_sa_ea, declspecs_ts, - declspecs_nots, declspecs_ts_nosa, declspecs_nots_nosa, - declspecs_nosc_ts, declspecs_nosc_nots, declspecs_nosc, declspecs, - maybe_type_quals_setattrs, typespec_nonattr, typespec_attr, - typespec_reserved_nonattr, typespec_reserved_attr, - typespec_nonreserved_nonattr, maybe_setattrs, structsp_attr, - structsp_nonattr, components_notype, component_notype_declarator, - absdcl1_ea, absdcl1_noea, direct_absdcl1, absdcl_maybe_attribute, - firstparm, setspecs_fp): New - (typed_declspecs, reserved_declspecs, typed_typespecs, - reserved_typespecquals, declmods, typespec, typespecqual_reserved, - typed_declspecs_no_prefix_attr reserved_declspecs_no_prefix_attr - declmods_no_prefix_attr, nonempty_type_quals, structsp, - type_quals): Remove. Users updated. - (initdecls, notype_initdecls, after_type_declarator, - parm_declarator, notype_declarator, absdcl1, components, ivars): - Don't allow attributes at the start of a declarator; include them - in the production containing the declarator instead. Always - require type specifiers before trying to redeclare a typedef name. - (typename): Allow for attributes but warn that they are ignored. - (parmlist, firstparm, setspecs_fp): Include attributes in - parmlist; suck them off the parser stack in firstparm using - setspecs_fp. - -Thu May 10 09:17:42 2001 Jeffrey A Law (law@cygnus.com) - - * ifcvt.c (merge_if_block): Use any_uncondjump_p, not simplejump_p - to determine if a block has an unconditional jump at its end. - - * jump.c (jump_optimize_1): When converting a conditional jump - to an unconditional jump, build the jump using gen_jump instead - of just modify operands in-place. - -2001-05-09 Zack Weinberg - - * cppinit.c (cpp_post_options): Shut off macro expansion if - -fpreprocessed. - * cpplib.c (_cpp_handle_directive): If -fpreprocessed, accept - IN_I directives only if the # is in column 1 and the directive - name begins in column 2. - * cppmain.c (scan_buffer): Insert a space between # and an - identifier, when that identifier is a directive name. - - * tradcpp.c (struct file_buf): Add a pointer to the next entry - in the header search path. - (enum node_type): Add T_INCLUDE_NEXT. - (directive_table): Add entry for include_next. - (do_include_next): New function. - (process_include): New routine, broken out of do_include. - (finclude): Insert 'nhd' argument, to be copied into - next_header_dir of the new buffer. - (main): Adjust to match. - * gsyslimits.h, limity.h: Un-indent #include_next. - -2001-05-09 Joseph S. Myers - - * objc.texi: Move from ../libobjc/objc-features.texi. Adjust for - inclusion as a chapter of the GCC manual. - * gcc.texi: Include objc.texi. - * fdl.texi: Use @unnumberedsec for the addendum. - * Makefile.in ($(srcdir)/gcc.info, gcc.dvi): Update dependencies. - -Wed May 9 16:01:41 CEST 2001 Jan Hubicka - - * i386.md (DImode move splitters): Use !MMX and !SSE for the condition. - -Wed May 9 10:40:25 2001 Alexandre Oliva - - * regclass.c (scan_one_insn): Update REG_N_REFS when optimizing - handling of two-address insns. - -Wed May 9 10:36:18 2001 Alexandre Oliva - - * Makefile.in (NM_FOR_TARGET): Look for ./nm, then - ../binutils/nm-new instead of ../binutils/nm. - -Wed May 9 12:15:46 CEST 2001 Jan Hubicka - - * i386.md (movdi splitter): Fix the splitting condition - (float_extenddftf splitter): Fix mode. - -Wed May 9 12:05:39 CEST 2001 Jan Hubicka - - * genrecog.c (write_switch): Avoid outputting of switch for - types wider than int. - -2001-05-03 Andrew Haley - - * reload1.c (copy_eh_notes): New function. - (emit_input_reload_insns): Call it. - (emit_output_reload_insns): Call it. - -2001-05-07 Zack Weinberg - - * config.gcc (i[34567]86-*-sco3.2v4*, i[34567]86-*-sco*): - Delete stanzas. - * config/i386/sco.h, config/i386/sco4.h, config/i386/scodbx.h, - config/i386/sco4dbx.h, config/i386/x-sco4: Delete file. - - * optabs.c: Delete #ifdef BROKEN_LDEXP block. - -2001-05-07 John David Anglin - - * pa.md (interspace_jump): Revise comment. - (builtin_longjmp): Block initial setup insns from delay slot of - interspace branch. - (builtin_setjmp_receiver): New expander to save and restore PIC - register. - - * som.h (NM_FLAGS): Remove `-n' sort option. Revise comment. - -Mon May 7 09:30:14 2001 Jeffrey A Law (law@cygnus.com) - - * toplev.c (compile_file): Set up the output file before we call - the various initializers for the compiler. - - * except.c (sjlj_mark_call_sites): Do not search for assignments to - non-argumment registers that are mentioned in CALL_INSN_FUNCTION_USAGE. - - * pa.h (MAX_LONG_TYPE_SIZE): Should be 32, not 64. - * pa-64.h (*_TYPE_SIZE): Undefine before redefining. - -2001-05-06 Zack Weinberg - - * Makefile.in (tradcpp0): Correct typo in dependency list. - -2001-05-06 Geoff Keating - - * config/rs6000/rs6000.c (rs6000_emit_prologue): Don't save - the link register if we're not going to use it. - - * config/rs6000/rs6000.c (output_profile_hook): Fix a warning. - (output_function_profiler): Likewise. - -2001-05-07 Alan Modra - - * pa.c (compute_frame_size): 64-bit frame marker is 16 bytes. - -2001-05-06 Alexandre Oliva - - * unroll.c (loop_iterations): Don't sign-extend abs_diff; - zero-extend it. Make abs_inc unsigned. - - * optabs.c (expand_binop): Sign-extend xop0 and xop1 from the - widest mode in narrowing and widening operations. - - * config/mips/mips.md: Sign extend CONST_INTs. - -2001-05-06 Andreas Jaeger - - * invoke.texi (Option Summary): Add -momit-leaf-frame-pointer - (i386 Options): Document -momit-leaf-frame-pointer. - -2001-05-06 Neil Booth - - * c-typeck.c (internal_build_compound_expr): Check for - array to pointer conversion just once. - -2001-05-05 Richard Henderson - - * integrate.c (copy_insn_list): Substitute NOTE_EXPECTED_VALUE. - -2001-05-05 Richard Henderson - - * except.c (remove_fixup_regions): Adjust REG_EH_REGION notes - to the parent of the fixup region. - -2001-05-05 Jakub Jelinek - - * gcc.c (cpp_options): Define __NO_INLINE__ unless we are honoring - "inline" keyword. - * cpp.texi (__NO_INLINE): Document it. - -2001-05-05 Neil Booth - - * cppfiles.c (struct include_file): New member err_no. - (find_or_create_entry): Set it. - (open_file): Don't set fds to -2. Instead, use err_no to - remember previous errors, if any. - -2001-05-05 Stephane Carrez - - * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Optimize moves - between X and Y by using sequences of xgdx and xgdy. - -2001-05-05 Stephane Carrez - - * config/m68hc11/m68hc11.md ("*logicalsi3_silshr16"): Use '?' instead - of '!' for the 'D' alternative ('!' is too strong). - ("*logicalsi3_silshl16"): Likewise. - ("movstricthi"): Accept 'A' when 'd' constraint, remove spurious '+'. - ("movstrictsi"): Remove spurious '+'. - ("movstrictqi"): Don't accept 'A' and remove spurious '+'. - ("tstqi_1", "*lshrqi3_const1"): Put 'm' constraint before 'd'. - ("subqi3"): Disparage with '!' the 'x' and 'y' registers to avoid - a reload to them. - -2001-05-04 David Edelsohn - - * calls.c (store_one_arg): Don't divide align by BITS_PER_UNIT. - -2001-05-04 Lars Brinkhoff - - * simplify-rtx.c (simplify_binary_operation): Simplify ~a + 1 - into -a. - -2001-05-04 Franz Sirl - - * config/rs6000/rs6000.md (ashldi3 splits): Guard with - TARGET_POWERPC64. - -2001-05-04 Stephane Carrez - - * config/m68hc11/m68hc11.md (lshrhi3_const1): Fix shift of - soft register, use ror instead of rol. - -2001-05-04 Stephane Carrez - - * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Take - into account pre/post increment decrement for 68HC12. - Fix other problems in replacement and fix call to reg_mentioned_p. - -2001-05-04 Stephane Carrez - - * config/m68hc11/larith.asm (L_regs_frame): New for _.frame. - Put the soft registers in bss for 68HC12. - (L_regs_d3_4): New for _.d3 and _.d4. - (L_regs_d5_6): Likewise. - (L_regs_d1_2): Likewise. - * config/m68hc11/t-m68hc11-gas (T_CPPFLAGS): Compile new parts. - -2001-05-04 Stephane Carrez - - * config/m68hc11/m68hc11.h (CPP_SPEC): Pass -D__HAVE_SHORT_DOUBLE__ - to the pre-processor when -fshort-double is specified. - * config/m68hc11/m68hc11.2 (CPP_SPEC): Likewise. - -2001-05-04 Stephane Carrez - - * config/m68hc11/larith.asm (divmodhi4): Empty for 68HC12. - (__mulsi3): Rewrite for 68HC12. - * config/m68hc11/m68hc11.md (divmodhi4): Use idivs for 68HC12. - Mark 'x' constraint with earlyclobber to prevent a - RELOAD_FOR_OTHER_ADDRESS to go in it. - (mulhi3_m68hc12): New pattern. - (mulhi3_m68hc11): Rename of mulhi3. - (mulhi3): New expand for 68HC12 optimisation. - (umulhisi3, mulhisi3): New patterns for 68HC12. - -2001-05-04 Stephane Carrez - - * config/m68hc11/m68hc11.md (*tbne, *tbeq): New patterns for 68HC12. - (extendqisi2, extendqihi2, extendhisi2): Use sex for 68HC12. - (uminqi3, umaxqi3, uminhi3, umaxhi3): New pattern for 68HC12. - -2001-05-04 Stephane Carrez - - * config/m68hc11/m68hc11.h (CONST_COSTS): Make the cost of - constants cheap after reload. - * config/m68hc11/m68hc11.c (m68hc11_shift_cost): Shift by 16 and 32 - are cheap. - (m68hc11_rtx_costs): Cost of multiplication by 65536 is expensive - so that gcc prefers a shift by 16. - (m6811_cost, m6812_cost): Make the shift cheap compared to an add. - -2001-05-04 Nick Clifton - - * config/arm/elf.h (ASM_OUTPUT_ALIGNED_COMMON): Define. - -2001-05-04 Kaveh R. Ghazi - - * alpha.h: NULL_PTR -> NULL. - * arm.c: Likewise. - * arm.h: Likewise. - * avr.h: Likewise. - * c4x.c: Likewise. - * c4x.h: Likewise. - * i386.c: Likewise. - * i386.md: Likewise. - * i860.c: Likewise. - * ia64.c: Likewise. - * m68hc11.h: Likewise. - * rs6000.h: Likewise. - * sh.c: Likewise. - * sh.h: Likewise. - * sparc.h: Likewise. - * v850.c: Likewise. - - * expr.c: Likewise. - * final.c: Likewise. - * gcc.c: Likewise. - * recog.c: Likewise. - -2001-05-04 Kaveh R. Ghazi - - * i386.c (ix86_emit_restore_regs_using_mov, ix86_save_reg): Change - `bool' parameter to `int'. - - * hash.c (hash_lookup): Likewise. - - * hash.h (hash_lookup): Likewise. - - * tlink.c (symbol_hash_lookup, demangled_hash_lookup): Likewise. - -Fri May 4 13:10:03 CEST 2001 Jan Hubicka - - * i386.c (x86_initialize_trampoline): Fix mode of constant. - -2001-05-03 Geoff Keating - - * invoke.texi (i386 Options): Delete references to -malign-jumps, - -malign-loops, -malign-functions. - * i386.c (ix86_align_funcs): Delete. - (ix86_align_loops): Delete. - (ix86_align_jumps): Delete. - (override_options): Mark -malign-* as obsolete. Emulate their - behavior with the -falign-* options. Default -falign-* from - the processor table. - * i386.h (FUNCTION_BOUNDARY): Define to 16; revert Richard Kenner's - patch of Wed May 2 13:09:36 2001. - (LOOP_ALIGN): Delete. - (LOOP_ALIGN_MAX_SKIP): Delete. - (LABEL_ALIGN_AFTER_BARRIER): Delete. - (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Delete. - -2001-05-04 Andreas Jaeger - - * except.h: Add prototype declaration for - expand_builtin_init_dwarf_reg_sizes. - -2001-05-03 Geoffrey Keating - - * Makefile.in (site.exp): Set TESTING_IN_BUILD_TREE. - -2001-05-03 Stephane Carrez - - * config/m68hc11/m68hc11.md ("bitcmpqi"): New pattern for bitb - instruction. - ("bitcmpqi2"): New pattern for bit-extract and test. - ("bitcmphi"): New pattern for bitb/bita instructions. - -2001-05-03 Joseph S. Myers - - * gccbug.in: Use a temporary directory when the mktemp command is - not available. - -2001-05-03 Stephane Carrez - - * config/m68hc11/m68hc11.h (STATIC_CHAIN_REGNUM): Use soft z register - instead of _.d1. - (INITIALIZE_TRAMPOLINE): Call it. - (TRAMPOLINE_SIZE): Define according to 68HC11/68HC12. - (TRAMPOLINE_TEMPLATE): Remove. - * config/m68hc11/m68hc11.c (m68hc11_initialize_trampoline): New. - * config/m68hc11/m68hc11-protos.h (m68hc11_initialize_trampoline): - Declare. - -2001-05-03 David O'Brien - - * config/t-freebsd: Don't install "assert.h" in gcc. Compile crtbeginS.o - and crtendS.o with PIC. - -2001-05-03 Stephane Carrez - - * config/m68hc11/larith.asm (__mulqi3): Fix multiplication of two - negative numbers. - (___subdi3, ___adddi3): Use x instead of y as index register. - (__init_bss_section, __map_data_section): Optimize for 68HC12. - (__memset, __memcpy): Likewise. - (regs): Put the soft registers in bss for 68HC12. - (abort): Use trap to abort for 68hc12. - (__mulhi3, __mulhi32): Use emul for 68hc12. - (__mulsi3): Avoid to use the tmp soft register for 68hc12. - -2001-05-03 Stephane Carrez - - * config/m68hc11/m68hc11.h (LIMIT_RELOAD_CLASS): Don't define. - * config/m68hc11/m68hc11-protos.h (limit_reload_class): Remove. - * config/m68hc11/m68hc11.c (limit_reload_class): Remove. - (m68hc11_override_options): Remove setting of flag_no_nonansi_builtin. - Set 68HC12 min offset to -65536. - (print_operand): Put parenthesis arround the operand if it refers - to a symbol having the same name as a register. - (m68hc11_z_replacement): When z register is replaced by its - equivalent soft register, force the insn to be re-recognized. - (m68hc11_check_z_replacement): Fix the test when destination is - the index register and z dies in the insn. - (m68hc11_reorg): Remove the REG_DEAD notes beforce recomputing them. - -2001-05-03 Stephane Carrez - - * config/m68hc11/m68hc11.c (m68hc11_override_options): Initialize - costs according to processor variant. - (m68hc11_shift_cost): New function to compute shift costs. - (m68hc11_rtx_costs): Define costs according to processor variant. - (m6811_cost): Costs for 68HC11. - (m6812_cost): Costs for 68HC12. - (COSTS_N_INSNS): Remove. - - * config/m68hc11/m68hc11.h (RTX_COSTS): New. - (DEFAULT_RTX_COSTS): Remove. - (CONST_COSTS): Define costs according to OUTER_CODE. - (processor_costs): New struct to define costs. - (m68hc11_cost): Pointer to current costs. - -2001-05-03 Stephane Carrez - - * config/m68hc11/m68hc11.md (*addhi3_68hc12): Fix generation - and use m68hc11_notice_keep_cc when using leax/leay. - (addhi3 split): Reject split if the insn is handled by - leax/leay above. - * config/m68hc11/m68hc11.c (m68hc11_split_move): For 68HC12 the - push must be handled in a special way if the source operand uses - sp as index register. - (m68hc11_notice_keep_cc): New function. - (m68hc11_gen_movhi): Use it when an insn changes a register but - not the flags. - (m68hc11_gen_movqi): Fix move for 68HC12. - * config/m68hc11/m68hc11-protos.h (m68hc11_notice_keep_cc): Declare. - -2001-05-03 Stephane Carrez - - * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use LCT_CONST - and don't pass operands[0] to emit_library_call_value. - -2001-05-03 Stephane Carrez - - * config/m68hc11/m68hc11.md (tsthi_1): Use cpd for 68HC12. - (zero_extendsi split): Simplify and use (zero_extendhi). - (*addhi3): Remove 'w' constraint since stack pointer is handled - by (addhi3_sp). - (*ashlhi3_2): Operand 2 is clobbered use '+' for its constraint. - (*ashlhi3, *ashrhi3, *lshrhi3): Likewise. - (*ashrhi3_const): Fix shift by 7. - (*lshrsi3_const16): Fix template. - (call, call_value): Fix constraint and predicate. - -2001-05-03 Stephane Carrez - - * config/m68hc11/m68hc11.md (X_REGNUM, D_REGNUM): New constant. - (Y_REGNUM, SP_REGNUM, PC_REGNUM, A_REGNUM, B_REGNUM): Likewise. - (CC_REGNUM): Likewise. - (*unnamed splits): Use above constants instead of hard coded numbers. - (*adcq, *subcq, *addsi_carry, *rotlqi3_with_carry): Likewise. - (*rotlhi3_with_carry, *rotrhi3_with_carry): Likewise. - (*return_16bit, *unnamed peepholes): Likewise. - -2001-05-03 David O'Brien - - * config.gcc(rs6000-ibm-aix|powerpc-ibm-aix): Do not include - rs6000/rs6000.h twice. - -2001-05-03 Mark Elbrecht - - * config/i386/djgpp.h (CPP_PREDEFINES): Define __GO32__. - (CPP_SPEC): Conditionally define MSDOS and GO32. - (SUBTARGET_SWITCHES): Ignore -mbnu210 and -mno-bnu210. - (SUBTARGET_OVERRIDE_OPTIONS): Warn that -mbnu210 and -mno-bnu210 are - ignored. - (SUPPORTS_WEAK, SUPPORTS_ONE_ONLY): Remove. - -2001-05-03 Alexandre Oliva - - * config/mn10300/mn10300.md: Sign-extend GEN_INT operands. - -2001-05-03 Mark Mitchell - - * integrate.h (struct inline_remap): Add leaf_reg_map table. - * integrate.c (expand_inline_function): Use xcalloc to allocate - memory. - (copy_rtx_and_substitute): Use the leaf_reg_map for leaf - registers. - -2001-05-03 Mark Mitchell - - * c-dump.c (dequeue_and_dump): Don't look at DECL_ASSEMBLER_NAME - if it is not set. - -2001-05-03 Alexandre Oliva - - * config/mn10300/mn10300.h (LINK_SPEC): Pass --relax to the - linker if -mrelax is given. - (TARGET_SWITCHES): Document -mrelax. - - Re-installed 2001-01-09's patch: - * hwint.h (HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT): Use long long - if it's wider than long and the target's long is wider than the - host's. - -2001-05-02 David O'Brien - - * config.gcc, config/rs6000/aix51.h, config/rs6000/mach.h: Do not - directly include rs6000/rs6000.h. Instead do it in tm.h. - -2001-05-02 Stan Shebs - - * objc/objc-act.c (STRING_OBJECT_CLASS_NAME): Default to - NSConstantString for NeXT-style runtimes. - (STRING_OBJECT_GLOBAL_NAME): New macro. - (enum objc_tree_index): Add values OCTI_CNST_STR_GLOB_ID and - OCTI_STRING_CLASS_DECL. - (constant_string_global_id): New macro. - (string_class_decl): Ditto. - (setup_string_decl): New function. - (build_objc_string_object): Use it to build a NeXT runtime - compatible string initializer. - -2001-05-02 Jakub Jelinek - - * tradcpp.c (do_define): Make sure we don't walk past limit. - -2000-05-01 Franz Sirl - - * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow any stack - offsets if not REG_OK_STRICT. - - * config/rs6000/rs6000.h (REG_OK_STRICT_FLAG): New macro. - (INT_REG_OK_FOR_INDEX_P): Likewise. - (INT_REG_OK_FOR_BASE_P): Likewise. - (REG_OK_FOR_INDEX_P): Use INT_REG_OK_FOR_INDEX_P. - (REG_OK_FOR_BASE_P): Use INT_REG_OK_FOR_BASE_P. - (LEGITIMATE_OFFSET_ADDRESS_P): Use INT_REG_OK_FOR_INDEX_P and - INT_REG_OK_FOR_BASE_P instead of REG_OK_FOR_INDEX_P and - REG_OK_FOR_BASE_P. Take an additional parameter. - (LEGITIMATE_INDEXED_ADDRESS_P): Likeewise. - (LEGITIMATE_INDIRECT_ADDRESS_P): Likewise. - (LEGITIMATE_LO_SUM_ADDRESS_P): Likewise. - (GO_IF_LEGITIMATE_ADDRESS): Move code into new function - rs6000_legitimate_address() and use it. - * config/rs6000/rs6000.c: Update all callers. - (rs6000_legitimate_address): New function. - -2001-05-02 David Edelsohn - - * config/rs6000/rs6000.c (rs6000_emit_move): Merge - special_constant conditional blocks together. - -2001-05-02 Dale Johannesen - - * config/rs6000/rs6000.h (RS6000_ARG_SIZE): Remove unused NAMED - parameter. - (STRICT_ARGUMENT_NAMING): Define. - * config/rs6000/rs6000.c (function_arg_advance, function_arg, - function_arg_partial_nregs, setup_incoming_varargs): Remove - args logic which depends on "named" now that STRICT_ARGUMENT_NAMING - is defined. - -Wed May 2 13:09:36 2001 Richard Kenner - - * config/i386/i386.h (FUNCTION_BOUNDARY): Result is unsigned. - - * function.c (fixup_var_regs_1, case SUBREG): Use promoted mode - for replacement. - - * expr.c (store_field): Do nothing except elaborate side-effects if - zero-bit field. - -2001-05-02 Kaveh R. Ghazi - - * c-lex.c: NULL_PTR -> NULL. - * cse.c: Likewise. - * emit-rtl.c: Likewise. - * gcse.c: Likewise. - * genpeep.c: Likewise. - * jump.c: Likewise. - * mips-tdump.c: Likewise. - * reload1.c: Likewise. - * rtlanal.c: Likewise. - * stmt.c: Likewise. - * stor-layout.c: Likewise. - * toplev.c: Likewise. - -2001-05-01 Per Bothner - - * expr.c (expand_expr): When compiling LABELED_BLOCK_EXPR, - call do_pending_stack_adjust before emiting label. - -2001-05-01 Mark Mitchell - - * extend.texi: Fix typo. - -2001-05-01 Stan Shebs - - * objc/objc-act.c (build_module_descriptor): Clear DECL_CONTEXT - of UOBJC_MODULES_decl. - (generate_strings): Clear DECL_CONTEXT of new decl nodes. - (generate_descriptor_table): Ditto. - (generate_protocols): Ditto. - (generate_protocol_list): Ditto. - (generate_classref_translation_entry): Ditto. - -2001-05-01 Jeffrey Oldham - - * invoke.texi (Optimize Options): Add documentation for `--param - max-delay-slot-insn-search' and `--param - max-delay-slot-live-search' and reorder --param section. - * params.def: Modify initial comment. - * params.h (param_info): Add `help' member. - * toplev.c (lang_independent_params): Include `help' description. - (display_help): Print --param parameters. - -2001-05-01 Zack Weinberg - - * config.gcc: Don't default xmake_file to ${cpu_type}/x-${cpu_type}. - Remove references to deleted files. - (*-*-openbsd): No need to override xmake_file. - (*-*-sysv4): Treat like *-*-sysv. - - * configure.in: Probe for ldopen in various places, and set up - collect2 to be linked with them if found. - Don't dink with Windows registry stuff unless $host_os is a - Win32 os name. Check to see if we need -ladvapi32. - * configure: Regenerate. - - * Makefile: Get rid of CLIB and HOST_CLIB. - Substitute in COLLECT2_LIBS and link collect2 against its contents. - * build-make: Get rid of HOST_CLIB. - - * config/a29k/x-unix, config/alpha/x-osf, config/i386/x-aix, - config/i386/x-osfrose, config/m68k/x-dpx2, config/mips/x-iris3, - config/mips/x-mips, config/mips/x-osfrose, config/mips/x-sony, - config/mips/x-sysv, config/rs6000/x-aix31, config/rs6000/x-aix41, - config/rs6000/x-rs6000: Delete. - - * config/i386/x-cygwin, config/m68k/t-aux, config/mips/x-iris: - Don't set CLIB. - - 24 x-host fragments remain, 0 x-cpu, 3 top level. - -2001-05-01 Zack Weinberg - - * aclocal.m4 (gcc_AC_C_CHAR_BIT): Correct test program. - * configure: Regenerate. - -2001-05-01 Angela Marie Thomas - - * Makefile.in (install-headers): Remove redundant dependency. - -2001-05-01 Nathan Sidwell - - * c-tree.texi (USING_STMT): Document. - -2001-05-01 Kaveh R. Ghazi - - * bitmap.c: Change NULL_PTR to NULL or "(rtx*)0". - * c-common.c: Likewise. - * c-decl.c: Likewise. - * combine.c: Likewise. - * rs6000.c: Likewise. - * except.c: Likewise. - * explow.c: Likewise. - * expr.c: Likewise. - * fold-const.c: Likewise. - * function.c: Likewise. - * gcc.c: Likewise. - * gcse.c: Likewise. - * integrate.c: Likewise. - * loop.c: Likewise. - * objc/objc-act.c: Likewise. - * recog.c: Likewise. - * reg-stack.c: Likewise. - * reload.c: Likewise. - * reload1.c: Likewise. - * simplify-rtx.c: Likewise. - * stmt.c: Likewise. - * varasm.c: Likewise. - -2001-05-01 Gabriel Dos Reis - - * diagnostic.def: New file. - * diagnostic.h (diagnostic_t): New enum. - * Makefile.in (diagnostic.o): Depend on diagnostic.def - -2001-04-30 Zack Weinberg - - * tsystem.h: Test only POSIX for availability of string.h - and time.h. - * config.gcc (all systems): If USG appeared in xm_defines, - change it to POSIX. If both USG and POSIX appeared, just - delete USG. Remove unnecessary quotes around xm_defines - settings. - (m68k-crds-unos*): Don't #define unos - tested nowhere. - (m68k-apple-aux*): Don't #define AUX - tested nowhere. - (alpha*-*-linux*ecoff*, powerpc-*-linux*libc1, - powerpc-*-linux*): No need to set xm_defines - handled by - global settings for *-*-linux*. - -2001-04-30 Zack Weinberg - - * dbxout.c, mips-tfile.c, config/mips/mips.c, xcoffout.c: - Always include gstab.h, not system stab.h. Don't provide - default definitions of N_CATCH or N_OPT. Always use the - gstab.h variant of STAB_CODE_TYPE. - * final.c: Don't include stab.h/gstab.h at all, or provide - defaults for N_SLINE and N_SOL. - - * xcoffout.c: Can assume N_MAIN, N_DSLINE, N_BSLINE, N_BINCL, - N_EINCL, N_EXCL, N_M2C, N_SCOPE, N_CATCH, and N_OPT are - available. - * sdbout.c: Always include gsyms.h instead of system syms.h. - - * configure.in: No need to check for stab.h. - * configure, config.in: Regenerate. - * Makefile.in (final.o): Don't depend on gstab.h. - -2001-04-30 Mark Mitchell - Richard Henderson - - * extend.texi: Improve documentation of volatile asms. - -2001-04-30 Mark Mitchell - - * c-tree.texi: Fix thinko. - * gcc.texi: Likewise. - -2001-04-30 Richard Henderson - - * c-common.c (c_promoting_integer_type_p): New function, from the - corpse of old macro. Properly promote too-small enumerations and - booleans. Adjust all callers. - * c-common.h (C_PROMOTING_INTEGER_TYPE_P): Remove. - (c_promoting_integer_type_p): Declare. - * c-decl.c: Adjust C_PROMOTING_INTEGER_TYPE_P invocations. - * c-typeck.c: Likewise. - (default_conversion): Remove now redundant boolean check. - -2001-04-30 Jan Hubicka - Richard Henderson - - * regmove.c (try_apply_stack_adjustment): Remove now redundant - sanity checks. - (combine_stack_adjustments_for_block): Don't combine stack - allocation followed by deallocations. Handle grow-up stacks. - -2001-04-30 Mark Mitchell - - * fdl.texi: New file. - * c-tree.texi: Use the GFDL. - * gcc.texi: Likewise. - -2001-04-30 Stan Shebs - - * invoke.texi: Add a section documenting Objective-C options. - -2001-04-27 Andrew Haley - - * emit-rtl.c (try_split): Copy EH notes to sequence. - -2001-04-30 Mark Mitchell - - * regmove.c (record_stack_memrefs): Catch all references to the - stack pointer. - -2001-04-29 Toomas Rosin - - * Makefile.in (stmp-fixinc): quote shell assignment values - -2001-04-29 Kaveh R. Ghazi - - * c-aux-info.c: NULL_PTR->NULL in calls to `concat'. - - * gcc.c: Likewise. - - * prefix.c: Likewise. - -2001-04-28 Stan Shebs - - * objc/objc-act.c (handle_class_ref): Rewrite to flush target - specific code and use new macro ASM_DECLARE_UNRESOLVED_REFERENCE. - * config/darwin.h (ASM_DECLARE_UNRESOLVED_REFERENCE): Define. - * tm.texi (ASM_DECLARE_UNRESOLVED_REFERENCE): Document. - - * config/darwin.h (STANDARD_EXEC_PREFIX): Don't define. - (NEXT_OBJC_RUNTIME): Define. - -Sat Apr 28 21:02:58 CEST 2001 Jan Hubicka - - * rtl.h (simplify_gen_relational): Add cmp_mode parameter. - * simplify-rtx.c (simplify_gen_relational): Likewise. - - * simplify-rtx.c (simplify_replace_rtx): Handle relationals and MEMs. - - * i386.h (VALID_SSE_REG_MODE): Accept MMX modes if SSE2 - * i386.md (movsi_1, movdi2, movdi_1_rex64): Handle SSE2 moves. - - * i386.md (negsf2, negdf2, abssf2, absdf2): Force operands to - registers in SSE case; fix handling of the immediates. - (negsf2_ifs, abssf2_ifs): Tweak constraints; require - operands to be in regsiters before reload. - (negdf2_ifs, absdf2_ifs): Likewise; disable for 64bit - (negdf2_ifs_rex64, absdf2_ifs_rtx64): New. - (abstf,absxf,negtf,negxf splitters): Compute - properly the regnum for x86_64. - (avsdf2_if_rex64): New. - -Sat Apr 28 10:36:23 2001 Jeffrey A Law (law@cygnus.com) - - * flow.c (propagate_block_delete_insn): Handle deletion of ADDR_VEC - and ADDR_DIFF_VEC insns when the proceeding CODE_LABEL was put - into the constant pool. - * jump.c (jump_optimize_1): Remove barrier successors after all - the LABEL_NUSES counds have been computed. - (delete_barrier_successors): When deleting a tablejump insn, also - delete the jump table it uses. - * varasm.c (force_const_mem): Set LABEL_PRESERVE_P when forcing a - label into memory. - -2001-04-28 Martin Kalen - - * pa.c (FRP): Remove erroneous white space in macro definition. - -2001-04-28 Andreas Jaeger - - * invoke.texi: Use XX-bit instead of XXbit or XX bit where - appropriate. - * extend.texi: Likewise. - * tm.texi: Likewise. - -2001-04-28 Andreas Jaeger - - * md.texi: Use XX-bit instead of XXbit or XX bit where - appropriate. - -2001-04-28 Jens Schweikhardt - - * gcc.c (process_command): Allow -l lib in addition to -llib - for POSIX compliance. This fixes PR c/2347. - - * invoke.texi: Update section on Link Options accordingly. - -2001-04-27 Zack Weinberg - - * function.c (purge_addressof_1): Remove the duplicate - if (code == SET) block. Fold the two if (code == ADDRESSOF) - blocks together. - -2001-04-28 Jason Merrill - - * except.c (expand_eh_region_start): Don't start a new block. - (expand_eh_region_end): Don't end a block. - * stmt.c (expand_end_bindings): Don't end EH blocks. - (expand_decl_cleanup): Starting an EH region won't change the block. - (mark_block_as_eh_region, mark_block_as_not_eh_region): Lose. - (is_eh_region): Lose. - * tree.h: Adjust. - -2001-04-27 Jeffrey Oldham - - * except.c (expand_eh_region_end_cleanup): word_mode, not Pmode. - - * collect2.c (main): Add `-L' case to remove duplicate entries. - (is_in_args): New function to check for a duplicate argument. - * defaults.h (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES): New macro. - * tm.texi (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES): New documentation. - * config/mips/iris6.h (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES): - Define to be nonzero. - -2001-04-27 Andreas Jaeger - Richard Henderson - - * md.texi (Machine Constraints): Document additional i386 - constraints and fix description of "A". - -Fri Apr 27 10:43:49 2001 Jeffrey A Law (law@cygnus.com) - - * tm.texi (TARGET_MEM_FUNCTIONS): Update text. - -2001-04-27 Jason Merrill - - * except.c (get_exception_filter): word_mode, not Pmode. - -2001-04-26 Geoffrey Keating - - * config/sparc/sparc.md (movsf_no_f_insn): Add more alternatives - common to other movsf patterns. Move up so that in future - people who change the other patterns will change it too. - (movsf_lo_sum): Allow even for soft-float; add appropriate - constraints. - (movsf_high): Likewise. - (movsf_high+1): Allow even for soft-float. - - * function.c (expand_function_end): Always clobber the - return registers, even if there is no return label. - -Thu Apr 26 20:28:21 CEST 2001 Jan Hubicka - - * (ix86_expand_fp_movcc): Re-enable SSE conditional move generation. - -Thu Apr 26 19:20:28 CEST 2001 Jan Hubicka - - * i386.md (abs/neg splitter): Fix calculation of sign bit for TFmodes - (pushqi2_rex64, pushhi2_rex64): Add. - -2001-04-26 Andrew Haley - - * except.c (expand_eh_region_end_cleanup): Force pending stack - adjust before emitting label that branches around cleanup code. - -2001-04-26 H.J. Lu (hjl@gnu.org) - - * config.gcc (mips*-*-linux*): Add elfos.h to tm_file. - - * config/mips/ecoff.h (STARTFILE_SPEC): Undefine before - define. - * config/mips/elf64.h (MAX_OFILE_ALIGNMENT): Likewise. - (ASM_OUTPUT_SECTION_NAME): Likewise. - (ASM_WEAKEN_LABEL): Likewise. - (UNIQUE_SECTION): Likewise. - (ASM_OUTPUT_CONSTRUCTOR): Likewise. - (ASM_OUTPUT_DESTRUCTOR): Likewise. - * config/mips/elf.h (MAX_OFILE_ALIGNMENT): Likewise. - (ASM_OUTPUT_SECTION_NAME): Likewise. - (ASM_WEAKEN_LABEL): Likewise. - (UNIQUE_SECTION): Likewise. - (ASM_OUTPUT_CONSTRUCTOR): Likewise. - (ASM_OUTPUT_DESTRUCTOR): Likewise. - * config/mips/linux.h (HANDLE_SYSV_PRAGMA): Likewise. - * config/mips/mips.h (DBX_CONTIN_LENGTH): Likewise. - (ASM_FILE_START): Likewise. - (ASM_OUTPUT_SOURCE_LINE): Likewise. - (ASM_DECLARE_OBJECT_NAME): Likewise. - (ASM_FILE_END): Likewise. - (ASM_DECLARE_FUNCTION_NAME): Likewise. - (ASM_OUTPUT_INTERNAL_LABEL): Likewise. - (ASM_GENERATE_INTERNAL_LABEL): Likewise. - (ASM_OUTPUT_CASE_LABEL): Likewise. - (ASM_OUTPUT_SKIP): Likewise. - (ASM_OUTPUT_ASCII): Likewise. - (ASM_OUTPUT_IDENT): Likewise. - (READONLY_DATA_SECTION): Likewise. - (EXTRA_SECTIONS): Likewise. - (EXTRA_SECTION_FUNCTIONS): Likewise. - (SELECT_RTX_SECTION): Likewise. - (SELECT_SECTION): Likewise. - - * config/mips/linux.h (INVOKE__main): Undefine. - (CTOR_LIST_BEGIN): Likewise. - (CTOR_LIST_END): Likewise. - (DTOR_LIST_BEGIN): Likewise. - (DTOR_LIST_END): Likewise. - (SET_ASM_OP): Defined it to ".dummy". - (ASM_OUTPUT_DEF): Defined. - (ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL): Defined. - -2001-04-26 Nick Clifton - - * config/arm/arm.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Define, if the - assembler supports .p2align. - -2001-04-26 Nathan Sidwell - - * c-lex.c (c_lex): Remove # from %o diagnostic formatting. - -2001-04-26 Jakub Jelinek - - * integrate.c (expand_inline_function): Check for error_mark_node - in actual argument. - -2001-04-26 Jakub Jelinek - - * config/i386/i386.h (CC1_CPU_SPEC): Fix deprecation warnings for - -m386 and -m486. - -2001-04-26 Alexandre Oliva - - * configure.in (configargs.h): Define thread_model. - * configure: Rebuilt. - * gcc.c (main): Print it with -v. - -2001-04-25 Joseph S. Myers - - * invoke.texi: Document -Wmissing-braces, -dumpspecs, - -dumpmachine, -dumpversion, -fmem-report and -ftime-report. - * gcc.1: Regenerate. - -2001-04-25 Rainer Orth - - * dwarfout.c (is_pseudo_reg, type_main_variant, is_tagged_type, - is_redundant_typedef): Use static inline instead of inline static. - -Wed Apr 25 18:21:01 2001 Christopher Faylor - - * config/i386/cygwin.h: Move W32API search to LINK_SPEC to ensure that - this directory is always searched. - -2001-04-25 Richard Henderson - - * config/i386/i386.c (ix86_expand_epilogue): Properly compute size - of registers to restore along non eh_return path. - -2001-04-25 Jakub Jelinek - - * c-format.c (check_format_info_recurse): Handle - PLUS_EXPR for format string. - -2001-04-25 Jakub Jelinek - - * config/ia64/ia64.h (CC1_SPEC): Define. - * config/ia64/linux.h (CC1_SPEC): Define. - -Wed Apr 25 17:09:50 2001 J"orn Rennecke - - * emit-rtl.c (constant_subword): Also do sign extension in - BITS_PER_WORD == 16 case. - -2001-04-25 Jason Merrill - - * loop.c (try_swap_copy_prop): Go back to checking insn. - -2001-04-25 Jakub Jelinek - - * emit-rtl.c (subreg_hard_regno): Only do HARD_REGNO_MODE_OK check - if check_mode is nonzero. - -2001-04-25 Jakub Jelinek - - * config/i386/i386.c (ix86_expand_int_movcc): If overlap between - out and comparison sequence has been detected, put result into - proper temporary pseudo. - -2001-04-24 Zack Weinberg - - * Makefile.in (LIB2FUNCS): Remove _varargs and __dummy. - * libgcc-std.ver: Remove __builtin_saveregs, __dummy, and __empty. - * libgcc2.c: Remove __dummy and __builtin_saveregs. - * libgcc2.h: Don't prototype __builtin_saveregs or __dummy. - * config/i860/varargs.asm: New file - preserve i860 __builtin_saveregs - for future reference. - -2001-04-24 Jason Merrill - - * except.c (reachable_handlers): Step out one level from a RESX. - - * except.c (struct eh_region): Rename 'last' to 'resume'. - (mark_eh_region, duplicate_eh_region_1): Adjust. - (expand_eh_region_end_cleanup): Remember the jump, not the barrier. - (build_post_landing_pads): Likewise. - (expand_end_catch, expand_eh_region_end_allowed): Don't set it. - (expand_eh_region_end_must_not_throw): Likewise. - (connect_post_landing_pads): Thread (only) regions with non-deleted - resume insns. - - * except.c (expand_eh_region_end_cleanup): Save the EH return data - registers around the cleanup. - (get_exception_filter): New fn. - (finish_eh_generation): Use it. - -2001-04-24 Nathan Sidwell - - * c-semantics.c (add_scope_stmt): Don't call - current_scope_stmt_stack multiple times. - -2001-04-24 Zack Weinberg - Nathan Sidwell - - Lazy __FUNCTION__ generation. - * c-common.h (RID_FUNCTION_NAME, RID_PRETTY_FUNCTION_NAME, - RID_C99_FUNCTION_NAME): New _RIDs. - (CTI_FUNCTION_ID, CTI_PRETTY_FUNCTION_ID, CTI_FUNC_ID): Remove. - (CTI_FUNCTION_NAME_DECL, CTI_PRETTY_FUNCTION_NAME_DECL, - CTI_C99_FUNCTION_NAME_DECL, CTI_SAVED_FUNCTION_NAME_DECLS): New - global tree slots. - (function_id_node, pretty_function_id_node, func_id_node): Remove. - (c99_function_name_decl_node, function_name_decl_node, - pretty_function_name_decl_node, saved_function_name_decls): - Declare. - (struct language_function): Remove x_function_name_declared_p. - (make_fname_decl): Remove a parameter. - (declare_function_names): Remove prototype. - (start_fname_decls, finish_fname_decls): Prototype. - (fname_as_string): Likewise. - (fname_string, fname_decl): Likewise. - * c-common.c (make_fname_decl): Adjust. - (struct fname_var_t): New struct. - (fname_vars): New static array. - (declare_function_name): Remove. - (start_fname_decls, finish_fname_decls): New functions. - (fname_as_string): New function from remnants of - declare_function_name. - (fname_string, fname_decl): New functions. - - * c-decl.c (c_function_name_declared_p): Remove. - (init_decl_processing): Don't generate __FUNCTION__ et al ids, - don't call declare_function_name. Call start_fname_decls. - (c_make_fname_decl): Adjust parameters. Generate the name. Don't - clobber the line number. Call finish_decl. - (start_function): Call start_fname_decls. - (finish_function): Call finish_fname_decls. - Remove c_function_name_declared_p. - (push_c_function_context): Don't push c_function_name_declared_p. - (pop_c_function_context): Don't pop c_function_name_declared_p. - (c_begin_compound_stmt): Don't check c_function_name_declared_p. - * c-parse.in (STRING_FUNC_NAME, VAR_FUNC_NAME): New tokens. - (program): Call finish_fname_decls for C. - (primary): Add VAR_FUNC_NAME. - (reswords): Add slots for __FUNCTION__ et al. - (rid_to_yy): Add mappings for __FUNCTION__ et al. - (yylexname): If it's a STRING_FUNC_NAME generate the function name - now. Don't look for VAR_DECLs containing __FUNCTION__ et al. - * c-semantics.c (prune_unused_decls): Remove. - (finish_stmt_tree): Don't call prune_unused_decls. - (genrtl_decl_stmt): Don't prune unused decls here. - -2001-04-24 Nick Clifton - - * dwarf2out.c (mem_loc_descriptor): If a SYMBOL_REF is in the - constant pool, use the pool's SYMBOL_REF instead. - - * config/v850/v850.h (STRICT_ALIGNMENT): Always set, even for the - v850e. - -2001-04-23 Joseph S. Myers - - * c-convert.c (convert): When converting to a BOOLEAN_TYPE, avoid - passing nested NOP_EXPRs to fold. - -Mon Apr 23 14:32:12 CEST 2001 Jan Hubicka - - * reg-stack.c (emit_swap_insn): Do not get pass CALL_INSNs. - -2001-04-22 Mark Mitchell - - * loop.c (loop_delete_insns): Add prototype. - -2001-04-23 Phil Edwards - - * configure.in: Remove ENABLE_STD_NAMESPACE. - * config.in: Regenerated. - * configure: Regenerated. - -2001-04-22 Stan Shebs - - * config.gcc (powerpc-*-darwin*): Move the flag in xm-darwin.h - into xm_defines. - * config/rs6000/xm-darwin.h: Remove file. - -2001-04-22 Kaveh R. Ghazi - - * collect2.c (main): Use concat in lieu of xmalloc/sprintf. - (write_c_file_stat): Likewise. - - * dbxout.c (dbxout_init): Likewise. - - * profile.c (output_func_start_profiler): Likewise. - -2001-04-22 Philipp Thomas - - * ABOUT-GCC-NLS: Now that gettext 0.10.37 is out, - require it instead of the CVS version. - * cpperror.c (v_message): Put a blank before the macro - body to not confuse exgettext. - -2001-04-21 Mark Mitchell - - * flow.c (proagate_one_insn): Remove useless assignment. - * jump.c (delete_insn): Tidy. - * loop.c (try_copy_prop): When deleting an instruction with a - REG_RETVAL note, delete the entire libcall sequence. - (loop_delete_insns): New function. - * unroll.c (initial_reg_note_copy): Copy INSN_LIST notes, even if - we're not substituting into them yet. - -2001-04-21 Kazu Hirata - - * config/h8300/h8300.c (general_operand_src): Fix a comment typo. - - * config/sparc/sparc.c (sparc_flat_eligible_for_epilogue_delay): - Fix a comment typo. - * config/i960/i960.c (signed_arith_operand): Likewise. - - * calls.c (expand_call): Fix a comment typo. - -2001-04-20 Zack Weinberg - - * configure.in: Probe for times, clock, struct tms, and clock_t. - * configure, config.in: Regenerate. - * timevar.c: Replace ifdef forest in get_time with (relatively) - straightforward series of checks based on autoconf's probes. - -Fri Apr 20 12:24:50 2001 Jeffrey A Law (law@cygnus.com) - - * config/pa/som.h (NM_FLAGS): Define. - -2001-04-20 Bernd Schmidt - - * ia64.h (MD_SCHED_REORDER, MD_SCHED_REORDER2): Pass CLOCK to called - function. - * ia64-protos.h (ia64_sched_reorder): Additional arg for clock. - * ia64.c (nop_cycles_until): New function. - (prev_cycle, prev_first, last_issued): New static variables. - (ia64_sched_reorder): Additional arg for clock. - On final scheduling pass, emit extra NOPs as needed. - Set prev_first and prev_cycle. - (ia64_sched_reorder2): Pass clock arg down to ia64_sched_reorder. - (ia64_variable_issue): Set last_issued. - -2001-04-20 Alexandre Oliva - - * config/i386/i386.c (ix86_expand_int_movcc, - ix86_expand_strlensi_unroll_1): Sign-extend CONST_INTs. - -2001-04-20 Geoff Keating - - * config/rs6000/rs6000.md (ctrsi_internal1, ctrsi_internal2, - ctrsi_internal3, ctrsi_internal4, ctrsi_internal5, - ctrsi_internal6, ctrdi_internal1, ctrdi_internal2, - ctrdi_internal3, ctrdi_internal4, ctrdi_internal5, - ctrdi_internal6): In the short-branch case, this insn is only 4 - bytes long. Reported by Reza Yazdani . - -2001-04-20 Jakub Jelinek - - * reg-stack.c (check_asm_stack_operands): Issue error if "=t" resp. - "=u" is used together with "st" resp. "st(1)" clobber. - -2001-04-20 Jakub Jelinek - - * gcse.c (gcse_main): Fix comment typo. - (delete_null_pointer_check): Likewise. - (hash_scan_set): Don't consider sets with REG_EQUIV MEM notes. - * cse.c (cse_insn): Likewise. - * function.c (fixup_var_refs_insns_with_hash): The sequence is - toplevel. - -2001-04-19 Zack Weinberg - - * toplev.c: Excise all code for the undocumented -dm option. - (float_signal): Call signal just once, unconditionally. - -2001-04-19 Geoff Keating - - * fold-const.c (fold): Use first_rtl_op rather than - TREE_CODE_LENGTH when looping over parameters of a tree. - Correct strange grouping in test for evaluated SAVE_EXPR. - -Thu Apr 19 19:15:26 2001 Jeffrey A Law (law@cygnus.com) - - * config/pa/pa-linux.h (CPLUSPLUS_CPP_SPEC): Undefine. - * config/pa/pa.h (CPLUSPLuS_CPP_SPEC): Define. - - * config/pa/som.h (ASM_OUTPUT_FUNCTION_PREFIX): Truncate subspace - name at 32 total characters. - (ASM_OUTPUT_SECTION_NAME): Similarly. Also, only support placing - functions in named sections -- data items can still go into unique - sections, but they have normal names (ie $LIT$ and $DATA$). - - * config/pa/som.h (SUPPORTS_INIT_PRIORITY): SOM does not support - INIT_PRIORITY. - -2001-04-19 DJ Delorie - - * config/alpha/vms.h: Change OBJECT_SUFFIX and EXECUTABLE_SUFFIX - to TARGET_OBJECT_SUFFIX and TARGET_EXECUTABLE_SUFFIX. - * config/i386/cygwin.h: Likewise. - * config/i386/mingw32.h: Likewise. - * config/vax/vms.h: Likewise. - * config/i386/djgpp.h: Remove NO_AUTO_EXE_SUFFIX. - - * config/alpha/xm-vms.h: Change OBJECT_SUFFIX and EXECUTABLE_SUFFIX - to HOST_OBJECT_SUFFIX and HOST_EXECUTABLE_SUFFIX. - * config/i386/xm-cygwin.h: Likewise. - * config/i386/xm-djgpp.h: Likewise. - * config/i386/xm-mingw32.h: Likewise. - * config/vax/xm-vms.h: Likewise. - - * mkdeps.c (deps_add_default_target): Use TARGET_OBJECT_SUFFIX - instead of OBJECT_SUFFIX. - * collect2.c (find_a_file): Look for files matching the extension - HOST_EXECUTABLE_SUFFIX instead of EXECUTABLE_SUFFIX. - * gcc.c (DEFAULT_SWITCH_CURTAILS_COMPILATION): Depend on - TARGET_EXECUTABLE_SUFFIX. - (find_a_file): Use HOST_EXECUTABLE_SUFFIX. - (make_relative_prefix): Likewise. - (convert_filename): Use TARGET_ suffixes throughout. Remove - NO_AUTO_EXE_SUFFIX. - (process_command): Likewise. - (do_spec_1): Likewise. - * java/lang.c (init_parse): Likewise. - - * gcc.texi : Document four new options matching the pattern - (HOST|TARGET)_(OBJECT|EXECUTABLE)_SUFFIX. Remove documentation - for deleted macros OBJECT_SUFFIX and EXECUTABLE_SUFFIX. Remove - documentation for NO_AUTO_EXE_SUFFIX. - -2001-04-19 Mark Mitchell - - * toplev.h (struct lang_hooks): Allow decode_option to indicate - that language-independent processing should not be done. - * toplev.c (main): Adjust accordingly. - - * rtl.texi (jump_insn): Expand on JUMP_LABEL documentation. - * loop.c (load_mems): Handle a NULL JUMP_LABEL for a JUMP_INSN. - - * mips.md (reload_outputdi): Require that operand0 be a - general_operand. - -2001-04-19 Jakub Jelinek - - * invoke.texi (-Wshadow): Clarify. - -2001-04-18 Mark Mitchell - - * loop.c (load_mems): Examine all the instructions in the loop - before concluding that all jumps branch to the first instruction - after the loop. - -Wed Apr 18 20:32:03 2001 Christopher Faylor - - * config/i386/xm-cygwin.h (CPP_SPEC): Fix typo. - -2001-04-18 Jakub Jelinek - - * cpp.texi (-Wwhite-space): Remove. - (-Wall): -Wall does not imply -Wwhite-space. - -2001-04-17 Zack Weinberg - - * dbxout.c (dbxout_init): If DBX_OUTPUT_GCC_MARKER is defined, - use it instead of blindly generating a .stabs. - * xcoffout.h: Define DBX_OUTPUT_GCC_MARKER so we put the type - in the right place. - * xcoffout.c: Don't bother defining default for N_CATCH. - (UNKNOWN_STAB): Use internal_error. - (stab_to_sclass): Remove now-unnecessary aborts. - Remove #if 0'ed case N_BROWS. Add #ifdef N_OPT block. - -Tue Apr 17 21:41:11 2001 Jeffrey A Law (law@cygnus.com) - - * jump.c (mark_all_labels): Canonicalize the tail recursion - label attached to CALL_PLACEHOLDER insns. - -2001-04-17 Kaveh R. Ghazi - - * output.h (dump_flow_info, free_basic_block_vars, - which_alternative): Delete redundant prototypes. - - * rtl.h (bss_section): Likewise. - -2001-04-17 Loren J. Rittle - - * dbxout.c (N_OPT): Define if not available from - -2001-04-17 John David Anglin - - * vax.h (PROMOTE_PROTOTYPES): Define for compatibility with system - libraries and native K&R compilers. - -2001-04-16 Kaveh R. Ghazi - - * c-typeck.c (convert_arguments): Don't check for width changes - with -Wtraditional. - - * invoke.texi (-Wtraditional): Update documentation. - -2001-04-16 Zack Weinberg - - * toplev.c (output_lang_identify): Delete. - (compile_file): Don't call ASM_IDENTIFY_GCC or ASM_IDENTIFY_LANGUAGE. - Don't generate gcc2_compiled. label. Don't emit a nop if profiling. - If IDENT_ASM_OP is defined, emit an .ident "GCC (GNU) " - after calling ASM_FILE_END. - - * dbxout.c (dbxout_init): Don't call ASM_IDENTIFY_GCC_AFTER_SOURCE. - Instead, unconditionally emit an N_OPT stab with string equal - to STABS_GCC_MARKER, which defaults to "gcc2_compiled." - - * defaults.h: Don't provide default for ASM_IDENTIFY_LANGUAGE. - - * config/dbxelf.h, config/freebsd.h, config/nextstep.h, - config/psos.h, config/ptx4.h, config/1750a/1750a.h, - config/alpha/alpha.h, config/alpha/elf.h, config/arc/arc.h, - config/arm/aof.h, config/arm/coff.h, config/arm/elf.h, - config/arm/linux-elf.h, config/avr/avr.h, config/d30v/d30v.h, - config/dsp16xx/dsp16xx.h, config/h8300/h8300.h, - config/i370/i370.h, config/i386/beos-elf.h, - config/i386/osf1elf.h, config/i386/osfrose.h, - config/ia64/sysv4.h, config/m68k/3b1.h, config/m68k/auxgas.h, - config/m68k/crds.h, config/m68k/hp320.h, config/m68k/m68kv4.h, - config/m68k/mot3300.h, config/m68k/news.h, config/m68k/sgs.h, - config/m68k/tower-as.h, config/mcore/mcore-elf.h, - config/mips/iris6.h, config/mips/osfrose.h, - config/mips/sni-svr4.h, config/pa/som.h, config/pdp11/pdp11.h, - config/sparc/sp64-elf.h: - Delete definitions of any or all of: ASM_IDENTIFY_GCC, - ASM_IDENTIFY_GCC_AFTER_SOURCE, and ASM_IDENTIFY_LANGUAGE. - - * config/elfos.h, config/freebsd.h, config/linux.h, - config/alpha/elf.h, config/arm/linux-elf.h, config/i386/i386elf.h, - config/i386/ptx4-i.h, config/mips/gnu.h, config/mips/linux.h, - config/sparc/linux.h, config/sparc/linux64.h: Delete definitions - of ASM_FILE_START which merely emit a .version directive. Delete - definitions of ASM_FILE_END which merely emit an .ident directive. - - * config/avr/avr.h, config/vax/vax.h: Delete definition of - ASM_IDENTIFY_GCC and move part of its logic into - ASM_FILE_START. - - * config/i386/att.h, config/i386/gas.h, config/i386/linux.h, - config/sparc/linux-aout.h: Don't emit .version directive in - ASM_FILE_START. - - * config/i386/dgux.c, config/m88k/m88k.c, config/sh/sh.c - (output_file_start): Correct comment. - - * config/i386/osfrose.h: Don't emit trailing .ident directive. - * config/m68k/mot3300.h: Override STABS_GCC_MARKER to "gcc2_compiled%" - to match gdb. - * config/pa/lib2funcs.asm: Delete gcc_compiled. label. - * config/rs6000/aix.h: Correct comment. - - * config/i386/i386afe.h: Delete. - * config.gcc: Remove references to i386afe.h. - - * tm.texi: Delete documentation of ASM_IDENTIFY_GCC. The - other macros deleted by this patch were undocumented. - -Mon Apr 16 08:03:48 2001 Jeffrey A Law (law@cygnus.com) - - * pa.md (reload_outdi): Operand 0 must be a non hard register. - - * pa.c (secondary_reload_class): SAR<->FP copies require a - secondary register. - - * install.texi (mips-mips-bsd): Update list of functions - required to include memmove. - * tm.texi (TARGET_MEM_FUNCTIONS): Update list of implicitly - used functions to include memmove. - -2001-04-15 Toon Moene - - * i386.md (sqrtdf2): SFmode should be DFmode. - -2001-04-15 Alexandre Oliva - - * gcse.c (compute_ld_motion_mems): ASM outputs aren't moveable. - (find_moveable_store): Likewise. - -2001-04-15 Jim Wilson - - * function.c (expand_function_end): Handle PARALLEL real_decl_rtl. - -Sat Apr 14 16:24:19 CEST 2001 Jan Hubicka - - * i386.md (ashldi3_1_rex64): Add 'J' to the constraints - (ashrdi3_1_rex64): Change 'n' constraint to 'J'. - -2001-04-14 Alexandre Oliva - - * config/mn10300/mn10300.md (cmpsi): Tell reload to disregard the - first alternative. - -2001-04-14 Alan Modra - - * pa.c (force_mode): New function. - (emit_move_sequence): Use it instead of generating new rtx_REGs. - -2001-04-13 Jim Wilson - - * config/ia64/ia64.c (ia64_expand_epilogue): Emit alloc if sibcall_p. - (first_instruction): New static variable. - (rtx_needs_barrier): Return 1 for alloc. - (init_insn_group_barriers): Set first_instruction. - (rws_sum): Delete duplicate definition. - (group_barrier_needed_p): Return 0 when first_instruction true. - (safe_group_barrier_needed_p): Save and restore first_instruction - around group_barrier_needed_p call. - -Fri Apr 13 21:40:28 2001 Loren J. Rittle - - * expr.h (enum libfunc_index): Add LTI_memmove. - (memmove_libfunc): Define macro. - * optabs.c (init_optabs): Initialize memmove_libfunc. - * expr.c (expand_assignment): Use memmove_libfunc instead of - memcpy_libfunc. - -2001-04-13 Alan Modra - - * pa.h (GO_IF_LEGITIMATE_ADDRESS): Disallow PIC LO_SUM - fp mode addresses. - -2001-04-13 Kaveh R. Ghazi - - * Makefile.in (reg-stack.o): Depend on reload.h. - (insn-attrtab.o): Depend on flags.h. - - * genattrtab (main): Include flags.h in insn-attrtab.c. - - * reg-stack.c: Include reload.h. - - * sparc.h (flag_pic): Delete redundant declaration. - - * output.h (flag_pic): Likewise. - - * tree.h (pedantic): Likewise. - -2001-04-13 Kaveh R. Ghazi - - * Makefile.in (toplev.o, jump.o, regmove.o): Depend on reload.h - - * jump.c, regmove.c, toplev.c: Include reload.h. - - * reload.h (reload_cse_regs): Declare. - - * rtl.h (find_equiv_reg, operands_match_p, safe_from_earlyclobber, - reload_cse_regs, init_reload, mark_home_live, reload, - init_caller_save): Delete redundant prototypes. - -2001-04-13 Kaveh R. Ghazi - - * Makefile.in (ssa.o, regclass.o): Depend on $(EXPR_H). - - * regclass.c, ssa.c: Include expr.h. - - * rtl.h (memory_address, force_reg, emit_queue, emit_move_insn, - gen_move_insn): Delete redundant declarations. - -2001-04-13 Franz Sirl - - * Makefile.in (CFLAGS, BOOT_CFLAGS): Partly revert 2000-10-27 patch. - (stage1_build): Instead pass down STAGE1_CFLAGS here. Pass down - MAKEINFO and MAKEINFOFLAGS too. - (stage4_build): Correctly order -B flags. - -2001-04-13 Alan Modra - - * pa.c (hppa_init_pic_save): Set rtx_unchanging for - PIC_OFFSET_TABLE_SAVE_RTX. - (zdepi_cint_p): Describe zdepi insn. - Formatting and white space fixes throughout file. - - * pa.c (uint32_operand): Don't use long constant >= 2^32. - (emit_move_sequence): Use HOST_WIDE_INT constants. Don't worry - about 32->64 bit sign extension if 32 bit HOST_WIDE_INTs. - (compute_movstrsi_length): Make `align' unsigned to avoid warning. - (output_64bit_and): Use plain `int's for shift counts. - (output_64bit_ior): Likewise. - (function_arg_partial_nregs): Use unsigned vars to avoid warnings. - * pa.h (CONST_OK_FOR_LETTER_P): Use HOST_WIDE_INT constants for case - `N', and simplify. - - * pa-hpux10.h (NEW_HP_ASSEMBLER): Define to 1. - * pa-hpux11.h (NEW_HP_ASSEMBLER): Likewise. - * pa.h (LEGITIMATE_CONSTANT_P) Collapse two defines depending on - NEW_HP_ASSEMBLER into one. Kill warnings. - - * pa-gas.h: Delete file. - * config.gcc: Match `parisc' as well as `hppa' for cpu_type=pa. - Add new targets hppa*64*-*-linux* and parisc*64*-*-linux*. Update - hppa*-*-linux*. For all pa targets, remove pa/gas.h from tm_file, - instead setting MASK_GAS | MASK_JUMP_IN_DELAY in target_cpu_default2. - - * config/pa/mill32.S: New file. - * config/pa/mill64.S: New file. - * config/pa/t-linux (LIBGCC1, CROSS_LIBGCC1, LIB1ASMFUNCS, - LIB1ASMSRC, CRTSTUFF_T_CFLAGS_S, TARGET_LIBGCC2_CFLAGS): Define. - * config/pa/t-linux64: New file. - * config/pa/t-pa64 (CROSS_LIBGCC1): Change to libgcc1-asm.a - (LIB1ASMFUNCS, LIB1ASMSRC): Define. - (TARGET_LIBGCC2_CFLAGS): Add -Dpa64=1 -DELF=1. - - * elfos.h (SELECT_SECTION): Undef before defining. - * pa-linux.h (LINUX_DEFAULT_ELF, PTRDIFF_TYPE, CPP_SPEC): Remove. - (LIB_SPEC): Remove -lmilli. - (DBX_REGISTER_NUMBER): Remove. - (PREFERRED_DEBUGGING_TYPE, DWARF2_ASM_LINE_DEBUG_INFO, - (DWARF2_UNWIND_INFO, ASM_SPEC, LINK_SPEC, FUNCTION_OK_FOR_SIBCALL, - NO_PROFILE_COUNTERS, SELECT_RTX_SECTION, INCOMING_RETURN_ADDR_RTX, - DWARF_FRAME_RETURN_COLUMN, STRING_ASM_OP, TEXT_SECTION_ASM_OP, - DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP, ASM_FILE_START, - ASM_OUTPUT_DEF, ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT, - ASM_OUTPUT_LABEL, ASM_GLOBALIZE_LABEL, ASM_DECLARE_FUNCTION_NAME, - TARGET_GAS): Define. - * pa.c (output_arg_descriptor): Disable for TARGET_ELF32. - (function_arg): If TARGET_ELF32, pass fp args in both general and fp - regs if we don't have a prototype. - * pa.md (canonicalize_funcptr_for_compare): Not for TARGET_ELF32. - * pa.h (TARGET_ELF32): Default to 0 if undefined. - (EH_RETURN_DATA_REGNO, EH_RETURN_STACKADJ_RTX, - EH_RETURN_HANDLER_RTX): Define. - * pa32-regs.h (DBX_REGISTER_NUMBER): Remove unnecessary test. - (DWARF_FRAME_REGNUM): Define. - * pa64-regs.h (DWARF_FRAME_REGNUM): Define. - * pa32-linux.h: New file. - * pa64-linux.h: New file. - - * pa-64.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define. - (ASM_OUTPUT_DOUBLE_INT): Format, protect macro with do..while. - (LINK_SPEC, LIB_SPEC, MD_EXEC_PREFIX, MD_STARTFILE_PREFIX, - NEW_HP_ASSEMBLER, ASM_FILE_START, OBJECT_FORMAT_ELF, - DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_FORMAT, - DWARF2_ASM_LINE_DEBUG_INFO, USE_CONST_SECTION, CONST_SECTION_ASM_OP, - CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP, - FINI_SECTION_ASM_OP, EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, - READONLY_DATA_SECTION, CONST_SECTION_FUNCTION, CTORS_SECTION_FUNCTION, - DTORS_SECTION_FUNCTION, ASM_OUTPUT_SECTION_NAME, MAKE_DECL_ONE_ONLY, - UNIQUE_SECTION_P, UNIQUE_SECTION, INT_ASM_OP, ASM_OUTPUT_CONSTRUCTOR, - ASM_OUTPUT_DESTRUCTOR, TYPE_ASM_OP, SIZE_ASM_OP, ASM_WEAKEN_LABEL, - TYPE_OPERAND_FMT, ASM_DECLARE_RESULT): Move to.. - * pa64-hpux.h: New file. - (ASM_FILE_START): Correct typo. - (PREFERRED_DEBUGGING_FORMAT): Rename to PREFERRED_DEBUGGING_TYPE. - * config.gcc: Modify for above. - -Fri Apr 13 00:09:22 EDT 2001 John Wehle (john@feith.com) - - * jump.c (jump_optimize_1): Don't delete dead stores here. - * toplev.c (rest_of_compilation): Call delete_trivially_dead_insns - prior to running jump optimize before cse2. - -2001-04-12 Richard Henderson - - * Makefile.in (regmove.o): Depend on except.h. - * regmove.c: Include it. - -2001-04-12 Stan Shebs - - * objc/objc-act.c: Remove all code ifdefed with the never-used - macro OBJC_INT_SELECTORS. - * config/d30v/d30v.h: Remove commented-out ref to OBJC_INT_SELECTORS. - * tm.texi: Remove doc for OBJC_INT_SELECTORS. - -Thu Apr 12 18:13:37 2001 Rodney Brown - - * config/pa/quadlib.c: Add prototypes. - -2001-04-12 Kaveh R. Ghazi - - * bitmap.h (debug_bitmap): Delete redundant prototype. - - * rtl.h (get_frame_size): Likewise. - -2001-04-12 Jim Wilson - - * config/ia64/ia64.md (extendsfdf2, extendsftf2, extenddftf2): Simplify - to just emit an fnorm. - -2001-04-12 Kaveh R. Ghazi - - * c-common.h (truthvalue_conversion, type_for_mode, - type_for_size): Delete redundant declarations. - - * c-lex.h (is_class_name): Likewise. - - * c-tree.h (pedantic, convert, getdecls, gettags, - global_bindings_p, init_decl_processing, insert_block, - maybe_build_cleanup, poplevel, print_lang_decl, - print_lang_identifier, print_lang_type, pushdecl, pushlevel, - set_block, incomplete_type_error, build_function_call, - lvalue_or_else, mark_addressable): Likewise. - - * expr.h (expand_tree_builtin): Likewise. - -2001-04-12 Mark Mitchell - - * invoke.texi: Document --param max-gcse-memory. - -2001-04-12 Kaveh R. Ghazi - - * configure.in (errno): Check for declaration. - * configure, config.in: Regenerated. - - * system.h (errno): Only declare if not already done. - -2001-04-12 Alexandre Oliva - - * recog.c (general_operand, immediate_operand, - nonmemory_operand): Require CONST_INTs to be sign-extended - values for their modes. - -2001-04-12 Alexandre Oliva - - * expmed.c (store_bit_field): Truncate CONST_INTs. - (expand_mult_highpart, expand_divmod): Likewise. - * expr.c (convert_modes, store_field): Likewise. - * integrate.c (expand_inline_function): Use promote_mode() to - determine whether to convert_modes() an argument as signed - or unsigned. - * optabs.c (expand_binop): Get CONST_INT operands - sign-extended for their appropriate modes. - * stmt.c (emit_case_nodes): Convert node values to the - appropriate mode. - (expand_end_case): Convert minval and range to the appropriate - mode. - * unroll.c (loop_iterations): Truncate abs_diff to the mode of - the iteration variable. - * varasm.c (immed_double_const): Don't require words to be - narrower than host wide ints to properly sign-extend - CONST_INTs. - -2001-04-12 kaz Kojima - - * sh.md (builtin_setjmp_receiver): New expander. - -2001-04-12 David Edelsohn - - * config/rs6000/rs6000.c (rs6000_emit_move): Do not - special-case HOST_BITS_PER_WIDE_INT != 32. Use same criteria - for generating CONST_INT and CONST_DOUBLE. - -2001-04-12 Alexandre Oliva - - * config/rs6000/rs6000.c (logical_operand): CONST_INTs are - already sign-extended. - (rs6000_emit_prologue): Make register iterator signed. - (rs6000_emit_epilogue): Likewise. - * config/rs6000/rs6000.md (addsi3, adddi3): Sign-extend high - and low. - (movsf split, movdf split): Sign-extend CONST_INTs. - (movdi splits): Likewise. - -2001-04-12 Kelley Cook - - * config-lang.in (lang_dirs): Add in zlib. - -2001-04-11 Alexandre Oliva - - * config/i386/i386.md: Apply trunc_int_for_mode() to GEN_INT - operands that make it to RTL. - -2001-04-11 Stan Shebs - - Add Darwin (Mac OS X kernel) native support. - * config.gcc (powerpc-*-darwin*): Add native bits. - * config/darwin.c: New file, generic Darwin support functions. - * config/darwin.h: New file, generic Darwin definitions. - * config/darwin-protos.h: New file, generic Darwin prototypes. - * rs6000/darwin.h: New file, Darwin for PowerPC. - * rs6000/t-darwin: New file, Darwin makefile fragment. - * rs6000/rs6000.h (OBJECT_MACHO): New macro. - (TARGET_MACHO): Ditto. - (rs6000_abi): Add ABI_DARWIN. - (RS6000_REG_SAVE): Add ABI_DARWIN case. - (RS6000_SAVE_AREA): Ditto. - (FP_ARG_MAX_REG): Ditto. - (RETURN_ADDRESS_OFFSET): Ditto. - * rs6000/rs6000.c (rs6000_legitimize_address): Add TARGET_MACHO - cases. - (rs6000_emit_move): Add ABI_DARWIN cases. - (print_operand): Ditto. - (first_reg_to_save): Ditto. - (rs6000_stack_info): Ditto, also align stack by 16 instead of 8. - (debug_stack_info): Ditto. - (rs6000_emit_prologue): Ditto. - (rs6000_emit_epilogue): Ditto. - (output_profiler_hook): Ditto. - (output_function_profiler): Ditto. - (rs6000_add_gc_roots): Call machopic_add_gc_roots if TARGET_MACHO. - (output_mi_thunk): Add TARGET_MACHO case. - (add_compiler_stub): Ditto. - (output_compiler_stub): Ditto. - (no_previous_def): Ditto. - (output_call): Ditto. - (machopic_output_stub): Ditto. - (rs6000_machopic_legitimize_pic_address): Ditto. - (toc_section): Ditto. - * rs6000/rs6000.md (addsi3_high): New TARGET_MACHO pattern. - (macho_high): Ditto. - (macho_low): Ditto. - (movsi_low): Ditto. - (load_macho_picbase): Ditto. - (call): Add TARGET_MACHO case to modify function. - (call_value): Ditto. - (call_nonlocal_sysv): Add ABI_DARWIN case. - (call_value_nonlocal_sysv): Ditto. - * rs6000/rs6000-protos.h (rs6000_machopic_legitimize_pic_address): - Add prototype. - (machopic_output_stub): Ditto. - * ginclude/stddef.h: Test _BSD_WCHAR_T_DEFINED_. - -2001-04-11 Mark Mitchell - - * dwarf2out.c (modified_type_die): Don't create new types here. - * tree.h (get_qualified_type): New function. - (build_qualified_type): Adjust comment. - * tree.c (get_qualified_type): New function. - (build_qualified_type): Use it. - -2001-04-11 Kaveh R. Ghazi - - * cpp.texi (-Wtraditional): Update description. - - * invoke.texi (-Wtraditional): Likewise. - -2001-04-11 Jim Wilson - - * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Return 128 if argument - requires more than 64 bits of alignment. - -2001-04-11 Neil Booth - - * cpplib.c (do_line): Sanity check iff enable checking. - -2001-04-11 Richard Henderson - - * Makefile.in (insn-recog.o): Depend on toplev.h. - (insn-emit.o, doloop.o): Likewise. - * genrecog.c, genemit.c: Include toplev.h in generated file. - * doloop.c: Include toplev.h. - -2001-04-11 Mark Mitchell - - * Makefile.in (gcse.o): Depend on params.h. - * gcse.c: Include params.h. - (gcse_main): Don't do GCSE if doing so will take inordinate - amounts of memory. - * params.def (PARAM_MAX_GCSE_MEMORY): New parameter. - * params.h (MAX_GCSE_MEMORY): New macro. - -2001-04-11 Kaveh R. Ghazi - - * Makefile.in (insn-output.o): Depend on $(EXPR_H). - - * genoutput.c (output_prologue): Include expr.h in insn-output.c. - -2001-04-11 Kaveh R. Ghazi - - * output.h (assemble_real): Declare if REAL_VALUE_TYPE is defined. - - * real.h (ereal_atof, real_value_truncate, target_isnan, - target_isinf, target_negative, assemble_real, debug_real): Delete - redundant prototypes. - - * Makefile.in (ifcvt.o): Depend on toplev.h. - - * c-semantics.c: Include expr.h. - - * ifcvt.c: Include toplev.h. - - * expr.h (rtx_equal_p): Delete prototype. - - * rtl.h (exact_log2_wide, floor_log2_wide, permalloc, - protect_from_queue, gen_jump, gen_beq, gen_bge, gen_ble, - eliminate_constant_term, expand_complex_abs, find_single_use, - make_tree, init_expr_once, init_optabs, supports_one_only): - Likewise. - - * tree.h (exact_log2_wide, floor_log2_wide, expand_null_return, - rest_of_type_compilation, emit_queue, do_pending_stack_adjust, - expand_assignment, store_expr, emit_line_note_after, - emit_line_note_force, split_specs_attrs, label_rtx): Likewise. - - * toplev.h (exact_log2_wide, floor_log2_wide): Add prototype. - - * sparc-protos.h: Delete redundant prototypes. - -2001-04-11 Vladimir Makarov - - * reload.c (push_reload): Add condition missed in SUBREG byte - offset patch. - -Wed Apr 4 00:28:23 2001 Rainer Orth - - * sparc/sol2-sld-64.h (STARTFILE_SPEC): Added missing blank. - -Wed Apr 11 14:06:10 CEST 2001 Jan Hubicka - - * i386.md (floatsisf_sse): Fix output template - * i386.c (ix86_expand_fp_movcc) - - * reg-stack.c (emit_pop_insn): Handle complex modes. - (move_for_stack_reg): Emit proper move mode. - (subst_stack_regs_pat): Handle complex modes. - -2001-04-11 Jakub Jelinek - - * cpplex.c (_cpp_lex_token): Only warn if -Wcomment. - -2001-04-10 Richard Henderson - - * libgcc2.h (__terminate_func_ptr): Remove typedef. - (__pure_virtual, __terminate, __terminate_set_func, - __default_terminate, __throw_type_match, __empty, - __get_eh_context, __get_eh_info, __get_dynamic_handler_chain, - __eh_rtime_match, __unwinding_cleanup, __rethrow, - __sjthrow, __sjpopnthrow, __eh_alloc, __eh_free): - Remove prototypes of deleted functions. - -2001-04-10 Kaveh R. Ghazi - - * c-typeck.c (convert_arguments): -Wtraditional now activates - -Wconversion warnings, except for changes in signed-ness. - Detect complex<->int & int<->complex conversions as well. - - * invoke.texi (-Wtraditional): Document it. - -Tue Apr 10 17:45:50 2001 Richard Kenner - - * gcse.c (update_ld_motion_stores): Don't use variable I for an insn. - * flow.c (set_block_for_new_insns): Remove needless cast and - properly check for unset block number. - -2001-04-10 Andrew MacLeod - - * function.c (purge_single_hard_subreg_set): Only check REGNO if - the subreg was a hard register. Pseudos are left as subregs. - -2001-04-09 Franz Sirl - - * Makefile.in (LIB2FUNCS_STATIC_EXTRA): New macro. - (LIB2ADD_ST): New macro, pass it to mklibgcc. - * mklibgcc.in (libgcc2_st_objs): New variable, set it from LIB2ADD_ST. - (libgcc_st_objs): New, set from libgcc2_st_objs. Use it for libgcc.a. - * config/rs6000/t-ppccomm (LIB2FUNCS_STATIC_EXTRA): New macro. - -2001-04-09 Bo Thorsen - - * config/i386/i386.md: "TARGET_64BIT && TARGET_64BIT": Removed one. - -2001-04-09 Andrew MacLeod - - * output.h (set_block_num): Missed it earlier, remove deprecated - prototype. - -2001-04-09 Andrew MacLeod - - * gcse.c (oprs_unchanged_p): Pass basic_block to load_killed_in_block_p. - (load_killed_in_block_p): Change bb parameter from int to basic_block. - (oprs_not_set_p): Pass basic_blocks instead of ints as parameters. - (handle_rd_kill_set): Change bb parameter from int to basic_block. - (compute_kill_rd): Pass basic_blocks instead of ints as parameters. - (expr_killed_p): Change bb parameter from int to basic_block, pass - basic_blocks instead of ints as parameters. - (compute_ae_kill): Pass basic_blocks instead of ints as parameters. - (expr_reaches_here_p_work, expr_reaches_here_p): Change bb parameter - from int to basic_block, pass basic_blocks instead of ints as parms. - (pre_expr_reaches_here_p_work, pre_expr_reaches_here_p): Change bb - parameter from int to basic_block, pass basic_blocks instead of ints. - (process_insert_insn): Pass basic_blocks instead of ints as parameters. - (insert_insn_end_bb): Change bb parameter from int to basic_block, - pass basic_blocks instead of ints. - (pre_edge_insert, pre_insert_copy_insn, pre_insert_copies): Pass - basic_blocks instead of ints as parameters. - (pre_delete): Pass basic_blocks instead of ints as parameters. - (hoist_expr_reaches_here_p): Change bb parameter from int to - basic_block, pass basic_blocks instead of ints. - (hoist_code): Pass basic_blocks instead of ints as parameters. - (reg_set_info, store_ops_ok, store_killed_after, store_killed_before): - Change bb parameter from int to basic_block. - (build_store_vectors): Pass basic_blocks instead of ints as parameters. - (insert_insn_start_bb): Change bb parameter from int to basic_block, - pass basic_blocks instead of ints. - (insert_store): Pass basic_blocks instead of ints as parameters. - (replace_store_insn, delete_store): Change bb parameter from int to - basic_block, pass basic_blocks instead of ints. - (store_motion): Pass basic_blocks instead of ints as parameters. - -2001-04-09 Andrew MacLeod - - * basic-block.h (set_new_block_for_insns): New Prototype. - (set_block_num): Delete prototype. - * flow.c (set_block_num): Remove obsolete function. - (set_block_for_new_insns): Set BB for single or multiple insns. - * gcse.c (handle_avail_expr): Use set_block_for_new_insns. - (process_insn_end_bb): Use set_block_for_new_insns or - set_block_for_insn instead of set_block_num. - (pre_insert_copy_insn): Use set_block_for_new_insns. - (update_ld_motion_stores): Use set_block_for_new_insns. - (insert_insn_start_bb): Use set_block_for_new_insns. - (replace_store_insn): Use set_block_for_new_insns. - -2001-04-09 Andrew MacLeod - Jeff Law - - * alias.c (get_addr): Externalize. - (canon_true_dependence): New function. Behaves like true_dependance - except it already assumes a MEM has been canonicalized. - * flags.h (flag_gcse_lm, flag_gcse_sm): New optimization flags. - * gcse.c (struct ls_expr): Add load/store expressions structure. - (modify_mem_list, canon_modify_mem_list): New variable. - (gcse_main): Initialize & finalize alias analysis. Use enhanced - load motion and store motion if requested. - (alloc_gcse_mem): Allocate space for modify_mem_list array. - (free_gcse_mem): Free the modify_mem_list array. - (oprs_unchanged_p): Use load_killed_in_block_p. - (gcse_mems_conflict_p, gcse_mem_operand): New variables. - (mems_conflict_for_gcse_p): New function. Don't kill loads - with stores to themselves if its in the load/store expression list. - (load_killed_in_block_p): New function. - (canon_list_insert): New Function. - (record_last_mem_set_info): Keep a list of all instructions which - can modify memory for each basic block. - (compute_hash_table, reset_opr_set_tables): Clear modify_mem_list. - (oprs_not_set_p): Use load_killed_in_block_p. - (mark_call, mark_set, mark_clobber): Use record_last_mem_set_info. - (expr_killed_p): Use load_killed_in_block_p. - (compute_transp): Do not pessimize memory references. - (pre_edge_insert): Update stores for a load motion expression. - (one_pre_gcse_pass): Check loads/stores for extra load motion. - (ldst_entry): Find or create a ldst_expr structure. - (free_ldst_entry): Free memory for an individual item. - (free_ldst_mems): Free entire load/store expression list. - (print_ldst_list): Print debug info. - (find_rtx_in_ldst): Try to find an rtx expression in the ldst list. - (enumerate_ldsts): Assign integer values to each entry in list. - (first_ls_expr): First expression in the list. - (next_ls_expr): Next expression in the list. - (simple_mem): Check if expression qualifies for ld/st expression list. - (invalidate_any_buried_refs): Remove from expression list if its - used in some other way we don't understand. - (compute_ld_motion_mems): Find all potential enhanced load motion - expression. - (trim_ld_motion_mems): Remove any expressions which are invalid. - (update_ld_motion_stores): Copy store values to registers for loads - which have been moved. - (regvec, st_antloc, num_store): New global statics. - (reg_set_info): Marks registers as set. - (store_ops_ok): Verfies registers expressions are valid in a block. - (find_moveable_store): Look for moveable stores in a pattern. - (compute_store_table): Find stores in a function worth moving, maybe. - (load_kills_store): Check dependence of a load and store. - (find_loads): Find any loads in a pattern. - (store_killed_in_insn): Check if a store is killed in an insn. - (store_killed_after): Check is store killed after an insn in a block. - (store_killed_before): Check is store killed before an insn in a block. - (build_store_vectors): Generate the antic and avail vectors. - (insert_insn_start_bb): Insert at the start of a BB, update BLOCK_HEAD. - (insert_store): Add a store to an edge. - (replace_store_insn): Replace a store with a SET insn. - (delete_store): Delete a store insn. - (free_store_memory): Free memory. - (store_motion): Perform store motion. - * invoke.texi: Add documentation for -fcse-lm and -fgcse-sm. - * rtl.h (get_addr, canon_true_dependence): Add prototypes. - * toplev.c (flag_gcse_lm, flag_gcse_sm): New Variables. - (f_options): Add gcse-lm and gcse-sm. - -Mon Apr 9 16:18:03 CEST 2001 Jan Hubicka - - * i386.c (expand_fp_movcc): Fix condition reversal code. - - * i386.c (ix86_register_move_cost): Fix handling of reformating penalty - * i386.h (INTEGER_CLASS_P, MAYBE_INTEGER_CLASS_P): New. - (CLASS_MAX_NREGS): Use it. - - * i386.h (HARD_REGNO_NREGS): Handle properly TF and TCmodes on 64bit; - handle properly complex values. - (CLASS_MAX_NREGS): Likewise; update comment. - -2001-04-05 Bernd Schmidt - - * ia64.c (ia64_flag_schedule_insns2): New variable. - (ia64_override_options): Initialize it. Clear - flag_schedule_insns_after_reload. - (ia64_reorg): Only do scheduling if ia64_flag_schedule_insns2. - -Mon Apr 9 15:09:13 CEST 2001 Jan Hubicka - - * i386.md (truncdfsf2_*): Add i387->int/sse reg alternatives; - Do not require source to match destination anymore; - Add abort to the nontrivial cases that should be handled by split. - (fix_trunc?fdi): Add SSE case for x86_64. - (floatdi?f): Likewise. - (floatdi?f_sse): New. - (fix_trunc?fdi_sse): New. - -2001-04-09 Richard Sandiford - - * dwarfout.c (DEBUG_ARANGES_BEGIN_LABEL): New label. - (DEBUG_ARANGES_END_LABEL): Ditto. - (dwarfout_init): Generate length and version fields at the start - of the .debug_aranges info. Insert DEBUG_ARANGES_BEGIN_LABEL - after the length field. - (dwarfout_finish): Insert DEBUG_ARANGED_END_LABEL at the end of - the .debug_aranges info. - -Sun Apr 8 00:43:27 CEST 2001 Jan Hubicka - - * i386.c (call, call_value): Make sure that resulting call_insn - does have proper second operand. - -Sun Apr 8 22:50:49 2001 Christopher Faylor - - * config/i386/xm-cygwin.h (GET_ENV_PATH_LIST): Eliminate obsolete - function. Remove include of sys/cygwin.h. - -Sun Apr 8 22:20:27 2001 Christopher Faylor - - * config/i386/cygwin.h (STARTFILE_SPEC): search */lib/w32api by default. - (CPP_SPEC): Always search */include/w32api for header files. - (ASM_OUTPUT_SECTION_NAME): Avoid testing NULL DECL. - (LINK_SPEC): Add "cyg" to the library search prefixes. - -2001-04-08 Philip Blundell - - * config/arm/arm.h (ASM_OUTPUT_LABELREF): Use asm_fprintf. - -2001-04-08 Neil Booth - - * cpperror.c (print_location): Don't special case . - (_cpp_begin_message): Handle WARNING_SYSHDR the same as - WARNING, but we don't check if we're in system headers. - * cpplib.h (enum error_type): WARNING_SYSHDR: New. - * cpplib.c (do_warning): Warn in system headers. - -2001-04-07 Mumit Khan - - * mbchar.c: Include config.h first. - -2001-04-07 Zack Weinberg - - * config.gcc: Set default for xmake_file at top, not bottom. - Change places that set xmake_file to "none" to set to the - empty string instead, or remove them entirely if there is no - default xmake_file for this cpu_type. Remove references to - deleted files. - - * config/x-lynx, config/convex/x-convex, config/elxsi/x-elxsi, - config/i386/x-isc, config/i386/x-isc3, config/i386/x-ncr3000, - config/i386/x-next, config/i386/x-sco, config/i386/x-sysv3, - config/i386/x-vsta, config/i860/x-sysv4, config/m68k/x-amix, - config/m68k/x-apollo68, config/m68k/x-ccur, config/m68k/x-crds, - config/m68k/x-hp2bsd, config/m68k/x-mot3300, config/m68k/x-mot3300-gas, - config/m68k/x-tower, config/m88k/x-sysv4, config/mips/x-dec-osf1, - config/mips/x-sni-svr4, config/mips/x-ultrix, config/romp/x-mach, - config/romp/x-romp, config/rs6000/x-beos, config/rs6000/x-lynx, - config/rs6000/x-mach, config/rs6000/x-sysv4, config/sparc/x-sysv4: - Delete. - - * config/a29k/x-unix, config/i386/x-aix, config/i386/x-osf1elf, - config/i386/x-osfrose, config/m68k/x-dpx2, config/mips/x-iris3, - config/mips/x-mips, config/mips/x-osfrose, config/mips/x-sony, - config/mips/x-sysv, config/rs6000/x-aix31: - Just set CLIB to -lld or -lmld, as appropriate. - - * config/arm/x-riscix, config/i370/x-oe, config/i386/x-dgux, - config/i386/x-sco4, config/i386/x-sco5, config/m68k/x-hp320, - config/m68k/x-hp320g, config/m68k/x-next, config/m88k/x-dgux, - config/mips/x-iris, config/pa/x-pa: - Just set (some of) FIXPROTO_DEFINES, STMP_FIXPROTO, - OTHER_FIXINCLUDES_DIRS. - - * config/i386/x-djgpp: Don't set LN or LN_S. - * config/m88k/x-dolph: Don't define __m88k__. - * config/m88k/x-tekXD88: Don't set AR_FLAGS. - * config/pa/x-pa-mpeix: Just set up quadlib.asm. - * config/i860/fx2800.h: No need to #undef SVR4. - - 38 x-host fragments remain, 2 x-cpu. - -2001-04-07 Herman A.J. ten Brugge - - * c4x.h (HARD_REGNO_NREGS): HCmode mode uses 2 regs not 4. - -2001-04-06 Neil Booth - - * cpplib.c (cpp_push_buffer): Give stdin buffers the name . - -2001-04-06 Neil Booth - - * configure.in: Add check for lstat. - * configure, config.in: Regenerate. - * cppinit.c (append_include_chain): Make empty path ".". - * cpplib.c (do_line): Don't simplify #line paths. - * cppfiles.c (remove_component_p): New function. - (find_or_create_entry): Acknowledge stat () errors during - path simplification. - (handle_missing_header): Don't simplify paths. - (_cpp_simplify_pathname): Don't simplify VMS paths. Return - the empty path untouched. Don't leave a trailing '/'. - -2001-04-06 Benjamin Kosnik - - * cppdefault.c (GPLUSPLUS_BACKWARD_INCLUDE_DIR): Add. - * Makefile.in (-DGPLUSPLUS_BACKWARD_INCLUDE_DIR): Add. - -2001-04-06 Neil Booth - - * cppfiles.c (open_file): Fail directories silently, but - with an errno of NOENT set. - (read_include_file): Move the common exit code to the sole - caller. Return an int indicating success or failure. Let - open_file handle directories. - (stack_include_file): If read_include_file fails, - push a "null" buffer. - -2001-04-05 DJ Delorie - - * function.h (virtuals_instantiated): Declare. - * function.c: (virtuals_instantiated): Make global. - * calls.c (emit_library_call_value_1): Use - virtual_outgoing_args_rtx only if it hasn't been instantiated. - Otherwise, use the stack pointer directly. - -Thu Apr 5 19:13:33 CEST 2001 Jan Hubicka - - * i386.c (x86_initialize_trampoline): New global function. - * i386.h (TRAMPOLINE_SIZE): Size is 23 for x86_64. - (INITIALIZE_TRAMPOLINE): Move offline. - * i386-protos.h (x86_initialize_trampoline): Declare. - -Thu Apr 5 19:02:15 CEST 2001 Jan Hubicka - - * i386.md (movdi_1_rex64): Allow SSE->SSE reg move. - (lea_0): Rename to lea_1. - (lea_1_zext, lea_1_rex64, lea_2_rex64): New patterns. - (lea_general_?): Allow SImodes on TARGET_64BIT - (lea_general_?_zext): New patterns. - (call_1, call_1_rex64): Fix. - -Thu Apr 5 19:00:15 CEST 2001 Jan Hubicka - - * i386.c (ix86_split_long_move): Use PUT_MODE instead of change_address. - -Thu Apr 5 18:25:56 CEST 2001 Jan Hubicka - - * i386.c (function_arg): Return constm1_rtx for last argument. - (ix86_expand_prologue): Update gen_call calls. - * i386.h (FUNCTION_BLOCK_PROFILER_EXIT): Likewise. - * i386.md (call_pop): Likewise. - (call): Second operand is VOIDmode. - (call_0): Likewise; Support 64bits. - (call_exp): New expander. - (call_1): Get to the sync. - (call_1_exp): New pattern. - (call_value): Support 64bit. - (call_value_exp): New pattern. - (untyped_call): Update gen_call call. - (call_value_pop): Disable for 64bit. - (call_value_0_rex64): New pattern. - (call_value_1_rex64): Likewise. - -2001-04-05 Bo Thorsen - - * i386.md: Don't allow "builtin_setjmp_receiver" for TARGET_64BIT. - -Thu Apr 5 13:44:17 2001 J"orn Rennecke - - * i386.md (*andsi_1+3): If used after reload, make sure the operand - satisfies ANY_QI_REG_P. - -2001-04-05 Bernd Schmidt - - * config/ia64/ia64.c (rtx_needs_barrier): A PARALLEL can contain - ASM_OPERAND. - - * sched-deps.c (sched_analyze_insn): Revert more of the March 27 - change. - -2001-04-04 Zack Weinberg - - * config.gcc: Remove default for xm_file. Clean up local - machine type handling. Remove settings of xm_file to - something that doesn't exist. In the big switch, set xm_file, - don't append to it (the value before the big switch is always - null). Don't force build_xm_file or host_xm_file to have a value. - * configure.in: Remove default for xm_file. Do not special - case $cpu/xm-$cpu.h not existing. - * configure: Regenerate. - -2001-04-04 Diego Novillo - - * simplify-rtx.c (simplify_binary_operation): Check for overflow - when folding integer division and modulo operations. - -2001-04-04 Andrew MacLeod - - * dwarf2out.c (output_cfi): Add 'for_eh' parameter, use PTR_SIZE - instead of DWARF2_ADDR_SIZE for EH addresses. - (output_call_frame_info): Use PTR_SIZE instead of DWARF2_ADDR_SIZE for - EH addresses. - -2001-04-04 Richard Henderson - - * config/ia64/ia64.h (IA64_UNWIND_INFO): Disable. - * config/ia64/t-glibc (LIB2ADDEH): Disable. - * config/ia64/t-ia64 (LIB2ADDEH): Disable. - -2001-04-04 Richard Henderson - - * configure.in (gcc_cv_as_leb128): Escape "." in regexp. - * configure: Rebuilt. - -2001-04-04 Jakub Jelinek - - * gcse.c (delete_null_pointer_checks_1): Add delete_list argument, - push insns to delete to it instead of deleting them. - (delete_null_pointer_checks): Delete insns from delete_list after - all delete_null_pointer_checks_1 passes are done. - -2001-04-04 Richard Henderson - - * configure.in (gcc_cv_as_leb128): Tweek minor number extraction. - * configure: Rebuilt. - -2001-04-04 Zack Weinberg - - * expr.h: Remove #ifdef FUNCTION_CONVERSION_BUG logic. - * config/romp/xm-romp.h: Delete. - -2001-04-04 Bernd Schmidt - - * sched-deps.c (sched_analyze_insn): Partially revert March 27 - change. - -2001-04-04 Herman A.J. ten Brugge - - * emit-rtl.c (mark_label_nuses) Increment the label uses for - all labels present in rtx. - (try_split) Call new function for all split insns. - -2001-04-04 Jakub Jelinek - - * recog.c (validate_replace_rtx_1): Instead of aborting just make - sure the change won't be validated. - -Wed Apr 4 00:45:38 EDT 2001 John Wehle (john@feith.com) - - * rtl.h (set_noop_p): Declare. - * flow.c (set_noop_p): Move from here ... - * rtlanal.c (set_noop_p): ... to here and enhance. - * cse.c (delete_trivially_dead_insns): Use it. - * gcse.c (hash_scan_set): Likewise. - * jump.c (delete_noop_moves): Likewise. - * recog.c (split_all_insns): Likewise. - -2001-04-04 Alan Modra - - * dwarf2out.c (dwarf2out_frame_debug_expr): Support adjusting - stack pointer via a LO_SUM. Ditto for setting a temp register - used to save to the stack. Set cfa_temp when setting fp, and - allow matches to cfa_temp in addition to cfa_store when saving - regs. Handle POST_INC and LO_SUM register stores. Document the - changes and errors in rule 12 doco. - - * pa.c (set_reg_plus_d, store_reg, load_reg): Return last insn. - (actual_fsize, local_fsize, save_fregs): Move for store_reg to see. - (load_reg): Move closer to epilogue code. - (DO_FRAME_NOTES): Define to control the following.. - (FRP): Define to set RTX_FRAME_RELATED_P on insns. - (hppa_expand_prologue): Use FRP and REG_FRAME_RELATED_EXPR - notes as necessary. - (hppa_expand_epilogue): Likewise. - -2001-04-03 Richard Henderson - - * configure.in (gcc_cv_as_leb128): Reject gas before 2.11. - * configure: Rebuild. - -2001-04-03 Richard Henderson - - * rtl.h (LCT_THROW): New. - * calls.c (emit_library_call_value_1): Handle it. - * except.c (connect_post_landing_pads): Use it. - -2001-04-03 Zack Weinberg - - * gansidecl.h: Delete file. - * configure.in: Change all refs to gansidecl.h to use - ansidecl.h. Adjust *_file_list so they know where ansidecl.h - lives. - * configure: Regenerate. - - * Makefile.in (intl.o): Don't depend on gansidecl.h. - * defaults.h: s/gansidecl.h/ansidecl.h/ in comment. - * ggc.h, config/fr30/fr30.h, config/mcore/mcore.c: - Don't include gansidecl.h. - * intl.c, main.c, version.c, fixinc/fixlib.h, - fixinc/procopen.c, fixinc/server.c: Include ansidecl.h not - gansidecl.h. - -Tue Apr 3 19:41:21 CEST 2001 Jan Hubicka - - * i386.c (ix86_force_to_memory, ix86_free_from_memory): - Update for 64bit. - -2001-04-03 Zack Weinberg - - * config/i386/xm-beos.h, config/i386/xm-isc.h, - config/i386/xm-next.h, config/i386/xm-sco.h, - config/i386/xm-sco5.h, config/m68k/xm-plexus.h, - config/m88k/xm-m88k.h: Delete. - - * config/i386/xm-djgpp.h: Don't define __MSDOS__. - * config/romp/xm-romp.h: Don't define bcopy. - * config/rs6000/xm-beos.h: Don't define bcopy, HAVE_VPRINTF, - HAVE_PUTENV, HAVE_RENAME, or USE_C_ALLOCA. - - * config.gcc: Remove references to deleted files. - - 14 xm-host.h remain, 1 xm-cpu.h. - -2001-04-03 Jakub Jelinek - David S. Miller - Andrew MacLeod - - Use byte offsets in SUBREGs instead of words. - - * alias.c (nonlocal_mentioned_p): Use subreg_regno function. - * caller-save.c (mark_set_regs): Change callers of subreg_hard_regno - to pass new argument. - (add_stored_regs): Use subreg_regno_offset function. - * calls.c (expand_call): For non-paradoxical SUBREG take endianess - into account. - (precompute_arguments): Use gen_lowpart_SUBREG. - * combine.c (try_combine): Replace explicit XEXP with SUBREG_REG. - (combine_simplify_rtx): Rework to use SUBREG_BYTE. - (simplify_set): Rework to use SUBREG_BYTE. - (expand_field_assignment): Use SUBREG_BYTE. - (make_extraction): Use SUBREG_BYTE. - (if_then_else_cond): Use SUBREG_BYTE. - (apply_distributive_law): Use SUBREG_BYTE and fixup subreg comments. - (gen_lowpart_for_combine): Compute full byte offset. - * cse.c (mention_regs): Use SUBREG_BYTE. - (remove_invalid_subreg_refs): Rework to use SUBREG_BYTE. - (canon_hash): Use SUBREG_BYTE. - (fold_rtx): Pass SUBREG_BYTE div UNITS_PER_WORD to operand_subword. - (gen_lowpart_if_possible): Formatting. - * dbxout.c (dbxout_symbol_location): Compute SUBREG hard regnos - correctly. - * dwarf2out.c (is_pseudo_reg): Fixup explicit XEXP into SUBREG_REG - (mem_loc_descriptor): Fixup explicit XEXP into SUBREG_REG - (loc_descriptor): Fixup explicit XEXP into SUBREG_REG - * dwarfout.c (is_pseudo_reg): Fixup explicit XEXP into SUBREG_REG - (output_mem_loc_descriptor): Fixup explicit XEXP into SUBREG_REG - (output_loc_descriptor): Fixup explicit XEXP into SUBREG_REG - * emit-rtl.c (gen_rtx_SUBREG): New function, used to verify - certain invariants about SUBREGs the compiler creates. - (gen_lowpart_SUBREG): New function. - (subreg_hard_regno): New function to get the final register number. - (gen_lowpart_common): Use SUBREG_BYTE. - (gen_imagpart): Spacing nits. - (subreg_realpart_p): Use SUBREG_BYTE. - (gen_highpart): Use SUBREG_BYTE. - (subreg_lowpart_p): Always compute endian corrected goal offset, - even at the byte level, then compare against that. - (constant_subword): New function, pulled out all constant cases - from operand_subword and changed second argument name to offset. - (operand_subword): Detect non REG/SUBREG/CONCAT/MEM cases early - and call constant_subword to do the work. Return const0_rtx if - looking for a word outside of OP. - (operand_subword_force): Change second arg name to offset. - * expmed.c (store_bit_field): Use SUBREG_BYTE. - (store_split_bit_field): Use SUBREG_BYTE. - (extract_bit_field): Use SUBREG_BYTE. - (extract_split_bit_field): Use SUBREG_BYTE. - (expand_shift): Use SUBREG_BYTE. - * expr.c (store_expr, expand_expr): Use gen_lowpart_SUBREG. - * final.c (alter_subreg) Use subreg_hard_regno and SUBREG_BYTE. - * flow.c (set_noop_p): Use SUBREG_BYTE. - (mark_set_1): Remove ALTER_HARD_SUBREG. Use subreg_regno_offset instead. - * function.c (fixup_var_refs_1): Fixup explicit XEXP into a SUBREG_REG. - (fixup_memory_subreg): Use SUBREG_BYTE and remove byte endian - correction code. - (optimize_bit_field): Use SUBREG_BYTE. - (purge_addressof_1): Use SUBREG_BYTE. - (purge_single_hard_subreg_set): Use subreg_regno_offset function. - (assign_params): Mark arguments SUBREG_PROMOTED_VAR_P if they are - actually promoted by the caller and PROMOTE_FOR_CALLS_ONLY is true. - * gengenrtl.c (special_rtx): Add SUBREG. - * global.c (mark_reg_store): Use SUBREG_BYTE. - (set_preference): Rework to use subreg_regno_offset and SUBREG_BYTE. - * ifcvt (noce_emit_move_insn): Use SUBREG_BYTE. - * integrate.c (copy_rtx_and_substitute): Use SUBREG_BYTE and make sure - final byte offset is congruent to subreg's mode size. - (subst_constants): Use SUBREG_BYTE. - (mark_stores): Use subreg_regno_offset function. - * jump.c (rtx_renumbered_equal_p, true_regnum): Use subreg_regno_offset - function and SUBREG_BYTE. - * local-alloc.c (combine_regs): Use subreg_regno_offset function. - (reg_is_born): Use subreg_hard_regno. - * recog.c (valid_replace_rtx_1): Use SUBREG_BYTE and remove byte - endian correction code. Don't combine subregs unless resulting - offset aligns with type. Fix subreg constant extraction for DImode. - Simplify SUBREG of VOIDmode CONST_DOUBLE. - (general_operand): Remove dead mode_altering_drug code. - (indirect_operand): Use SUBREG_BYTE. - (constrain_operands): Use subreg_regno_offset function. - * reg-stack.c (get_true_reg): Use subreg_regno_offset function. - * regmove.c (regmove_optimize): Use SUBREG_BYTE. - (optimize_reg_copy_3): Use gen_lowpart_SUBREG. - * regs.h (REG_SIZE): Allow target to override. - (REGMODE_NATURAL_SIZE): New macro which target can override. - * reload.c (reload_inner_reg_of_subreg): subreg_regno should be used - on the entire subreg rtx. - (push_reload): Use SUBREG_BYTE in comments and code. - (find_dummy_reload): Use subreg_regno_offset. Only adjust offsets - for hard registers inside subregs. - (operands_match_p): Use subreg_regno_offset. - (find_reloads): Use SUBREG_BYTE and only advance offset for subregs - containing hard regs. - (find_reload_toplev): Use SUBREG_BYTE. Remove byte endian - corrections when fixing up MEM subregs. - (find_reloads_address_1): Use SUBREG_BYTE, subreg_regno, and - subreg_regno_offset where appropriate. - (find_reloads_subreg_address): Use SUBREG_BYTE. Remove - byte endian corrections when fixing up MEM subregs. - (subst_reloads): When combining two subregs, make sure final - offset is congruent to subreg's mode size. - (find_replacement): Use SUBREG_BYTE and subreg_regno_offset. - (refers_to_regno_for_reload_p): Use subreg_regno. - (reg_overlap_mentioned_for_reload_p): Use subreg_regno_offset. - * reload1.c (eliminate_regs) Use SUBREG_BYTE. Remove byte endian - correction code for memory subreg fixups. - (forget_old_reload_1): Use subreg_regno_offset. - (choose_reload_regs): Use subreg_regno. - (emit_input_reload_insns): Use SUBREG_BYTE. - (reload_combine_note_store): Use subreg_regno_offset. - (move2add_note_store): Use subreg_regno_offset. - * resource.c (update_live_status, mark_referenced_resources): Use - subreg_regno function. - (mark_set_resources): Use subreg_regno function. - * rtl.h (SUBREG_WORD): Rename to SUBREG_BYTE. - (subreg_regno_offset, subreg_regno): Define prototypes. - (subreg_hard_regno, constant_subword, gen_rtx_SUBREG): Newi functions. - (gen_lowpart_SUBREG): Add prototype. - * rtl.texi (subreg): Update to reflect new byte offset representation. - Add mentioning of the effect that BYTES_BIG_ENDIAN has on subregs now. - * rtlanal.c (refers_to_regno_p): Use subreg_regno. - (reg_overlap_mentioned_p): Use subreg_regno. - (replace_regs); Make sure final offset of combined subreg is - congruent to size of subreg's mode. - (subreg_regno_offset): New function. - (subreg_regno): New function. - * sched-vis.c (print_value): Change SUBREG_WORD to SUBREG_BYTE. - * sdbout.c (sdbout_symbol): Compute offset using alter_subreg. - * stmt.c (expand_anon_union_decl): Use gen_lowpart_SUBREG. - * tm.texi (ALTER_HARD_SUBREG): Remove, it is now dead. - (SUBREG_REGNO_OFFSET): Describe SUBREG_REGNO_OFFSET overrides. - * config/a29k/a29k.c (gpc_reg_operand): Use subreg_regno. - (a29k_get_reloaded_address): Use SUBREG_BYTE. - (print_operand): Use SUBREG_BYTE. - * config/alpha/alpha.c (print_operand_address): Use SUBREG_BYTE. - * config/arm/arm.c (arm_reload_in_hi): Use SUBREG_BYTE. - (arm_reload_out_hi): Use SUBREG_BYTE. - * config/d30v/d30v.c (d30v_split_double): Use subreg_regno_offset - instead of SUBREG_WORD. - (d30v_print_operand_memory_reference): Use subreg_regno_offset. - * config/dsp16xx/dsp16xx.md (extendqihi2, zero_extendqihi2): Fix - SUBREG creation to use byte offset. - * config/h8300/h8300.md (Unnamed HImode zero extraction and 16bit - inverted load insns): Fix explicit rtl subregs to use byte - offsets. - * config/i370/i370.md (cmpstrsi, movstrsi, mulsi3, divsi3, - udivsi3, umodsi3): Generate SUBREGs with byte offsets. - * config/i860/i860.c (single_insn_src_p): Use SUBREG_BYTE. - * config/i860/i860.md (mulsi3_big): Fixup explicit SUBREGs in rtl - to use byte offsets. - (unnamed fmlow.dd insn): Fixup SUBREGS to use byte offsets. - * config/i960/i960.md (extendhisi2): Generate SUBREGs with byte - offsets, also make sure it is congruent to SUBREG's mode size. - (extendqisi2, extendqihi2, zero_extendhisi2, zero_extendqisi2, - unnamed ldob insn): Generate SUBREGs with byte offset. - (zero_extendqihi2): SUBREG's are byte offsets. - * config/m68hc11/m68hc11.c (m68hc11_gen_lowpart): Use SUBREG_BYTE. - (m68hc11_gen_highpart): Use SUBREG_BYTE. - * config/m68k/m68k.md (zero_extendhisi2, zero_extendqihi2, - zero-extendqisi2): Generate SUBREGs with byte offset. - (umulsidi3, mulsidi3, subreghi1ashrdi_const32, - subregsi1ashrdi_const32, subreg1lshrdi_const32): Fixup explicit - subregs in rtl to use byte offsets. - * config/m88k/m88k.md (extendsidi2): fixup subregs to use byte offset. - * config/mips/mips.c (mips_move_1word): Use subreg_regno_offset. - (mips_move_2words): Use subreg_regno_offset. - (mips_secondary_reload_class): Use subreg_regno_offset. - * config/mips/mips.md (DImode plus, minus, move, and logical op - splits): Fixup explicit subregs in rtl to use byte offsets. - * config/mn10200/mn10200.c (print_operand): Use subreg_regno function. - * config/mn10300/mn10300.c (print_operand): Use subreg_regno function. - * config/ns32k/ns32k.md (udivmoddisi4): Fix explicit subregs in - rtl to use byte offsets. - * config/pa/pa.c (emit_move_sequence): Use SUBREG_BYTE. - * config/pa/pa.md (floatunssisf2, floatunssidf2, mulsi3): fix explicit - subregs to use byte offsets. - * config/pdp11/pdp11.md (zero_extendhisi2, modhi3, modhi3+1): - Fixup explicit subregs in rtl to use byte offsets. - * config/romp/romp.c (memory_offset_in_range_p): Use SUBREG_BYTE - and remove byte endian correction code. - * config/sh/sh.c (output_movedouble): Use subreg_regno. - (gen_ashift_hi): Use SUBREG_BYTE. - (regs_used): Use subreg_regno_offset. - (machine_dependent_reorg): Use subreg_regno_offset. - * config/sh/sh.h (INDEX_REGISTER_RTX_P): Use SUBREG_BYTE. - * config/sh/sh.md (DImode and DFmode move splits): Use subreg_regno. - (movdf_i4): Subregs are byte offsets now. - * config/sparc/sparc.c (ultra_find_type): Use SUBREG_BYTE. - * config/sparc/sparc.h (ALTER_HARD_SUBREG): Removed. - (REGMODE_NATURAL_SIZE): Override. - (REG_SIZE): For SUBREG check float mode on SUBREG_REG's mode. - * config/sparc/sparc.md (TFmode move splits): Generate SUBREGs - with byte offsets. - (zero_extendhisi2, zero_extendqidi2_insn, extendhisi2, - extendqihi2, sign_extendqihi2_insn, sign_extendqisi2_insn, - extendqidi2): Generate SUBREGs with byte offsets, also make sure - it is congruent to SUBREG's mode size. - (smulsi3_highpart_v8plus): Fix explicit subregs in rtl to use byte - offsets. - (cmp_siqi_trunc, cmp_siqi_trunc_set, cmp_diqi_trunc, - cmp_diqi_trunc_set, lshrdi3_v8plus+1, lshrdi3_v8plus+2, - lshrdi3_v8plus+3, lshrdi3_v8plus+4): Use proper - SUBREG_BYTE offset for non-paradoxical subregs in patterns. - * config/v850/v850.c (print_operand, output_move_double): Use - subreg_regno function. - -2001-04-03 Alexandre Oliva - - * configure.in (target_subdir): Use target_alias, not target. - * configure: Rebuilt. - - * config/sh/crtn.asm (init, fini): Restore r15 from r14, not the - other way round. - * config/sh/crti.asm: Fix typos in comments. - -2001-04-03 Alan Modra - - * pa.h: Revise comments for TARGET_NO_SPACE_REGS and - TARGET_FAST_INDIRECT_CALLS. - * pa.c (override_options): TARGET_NO_SPACE_REGS is now OK with - -fPIC. Don't warn. - (return_addr_rtx): Short circuit export stub matching when - TARGET_NO_SPACE_REGS. - (output_millicode_call): For out of range calls, make -fPIC - take precedence, then TARGET_PORTABLE_RUNTIME, then ble. Don't - return before delay slot checks when TARGET_PORTABLE_RUNTIME. - * pa.md: Modify length attr calculation of all millicode insns to - match above. - -2001-04-02 Geoffrey Keating - - * configure.in (gcc_cv_as_leb128): Correct name of cache variable. - Require at least 2.11 in the version test. Specifically check - for and reject GAS version 2.10.90. - * configure: regenerate. - -2001-04-03 Alan Modra - - * pa.c (override_options): Remove PIC profiling warning. - (hp_profile_labelno): Delete. - (hp_profile_label_rtx): Delete. - (hp_profile_label_name): Delete. - (pa_add_gc_roots): Remove reference to hp_profile_label_rtx. - (output_function_prologue): Remove profiling code and all tests on - profile_flag. Move store of PIC_OFFSET_TABLE_REGNUM now that - merge_sp_adjust_with_store can work for PIC and profiling. - (hppa_expand_epilogue): Remove profile_flag test. - (hppa_can_use_return_insn_p): Likewise. - (hppa_init_pic_save): Emit before tail_recursion_reentry, and - cater for PROFILE_HOOK. - (hppa_profile_hook): New function. - * pa.h (FUNCTION_PROFILER): Now does nothing. - (PROFILE_HOOK): Define. - (hppa_profile_hook): Declare. - (PROFILE_BEFORE_PROLOGUE): Delete. - (ASM_OUTPUT_REG_PUSH): Delete. - (ASM_OUTPUT_REG_POP): Delete. - * pa.md (call_profiler): Turn it into a call insn, and don't `use' - r24. Accept function name operand, and use this and a locally - generated label to calculate pc-rel offset to func start. - -2001-04-02 Kaveh R. Ghazi - - * $(HOST_PREFIX_1)errors.o, $(HOST_PREFIX_1)ggc-none.o, - ggc-common.o, ggc-simple.o, ggc-page.o, ggc-none.o: Depend on - $(SYSTEM_H). - -2001-04-03 Alan Modra - - * dwarf2out.c (dwarf2out_frame_debug_expr): Move errant HIGH and - LO_SUM cases to where they belong. - -2001-04-02 Richard Henderson - - * except.h (lang_eh_type_covers): Mark extern. - (lang_eh_runtime_type): Likewise. - -2001-04-02 Zack Weinberg - - * genattr.c, gencheck.c, gencodes.c, genconfig.c, genflags.c, - gengenrtl.c: Wrap generated header in multiple-include guard. - Improve error checking. - -2001-04-02 Kaveh R. Ghazi - - * configure.in: Don't check for putenv. - * configure: Regenerate. - * gcc.c (putenv): Don't define. - * vax/xm-vms.h: Handle putenv. - -2001-04-02 Jakub Jelinek - - * ifcvt.c (noce_emit_move_insn): New. - (noce_try_store_flag, noce_try_store_flag_constants, - noce_try_store_flag_inc, noce_try_store_flag_mask, - noce_try_cmove, noce_try_cmove_arith, noce_try_minmax, - noce_try_abs): Use it. - (noce_process_if_block): Likewise. - For STRICT_LOW_PART, take mode from its SUBREG. - -2001-04-02 Jakub Jelinek - - * fold-const.c (fold): Before optimizing unsigned comparison with - 0x7fffffffU, make sure arg0 is integral type. - -2001-04-02 Joseph S. Myers - - * c-tree.texi: Document representation of wide strings. - -2001-04-01 Richard Henderson - - * except.h (expand_builtin_dwarf_fp_regnum): Declare. - -Sun Apr 1 11:49:05 CEST 2001 Jan Hubicka - - * i386.md: remove obsoleted comments. - (adddi_?): Rename to adddi_?_rex64; disable for 32bit. - (x86_movsicc_0_m1_rex64): Rename to x86_movdicc_0_m1_rex64; - fix output template. - -2001-03-31 Marek Michalkiewicz - - * config/avr/libgcc.S (__mulhi3): Optimize previous change. - -2001-03-30 Bernd Schmidt - - * loop.c (load_mems): When generating a load from a pseudo, update - REGNO_LAST_UID. - -Fri Mar 30 17:36:43 CEST 2001 Jan Hubicka - - * i386.c (ix86_split_long_move): Use change address to compensate - stack pointer change in push instruction. - -Fri Mar 30 00:31:00 CEST 2001 Jan Hubicka - - * i386.md (sse_movdfcc_eq): Fix constraint (sse_mov?fcc splitter): Use operands_match_p - instead of rtx_equal_p; fix the output template. - -Fri Mar 30 00:21:41 CEST 2001 Jan Hubicka - - * i386.c (ix86_expand_setcc): Support 64bit. - (ix86_expand_int_movcc): Likewise. - * i386.md (movdicc_rex64, x86_movsicc_0_m1_rex64, movdicc_c_rex64): - New patterns. - - * i386.md (allocate_stack_worker): Turn to expander. - (allocate_stack_worker_1, allocate_stack_worker_rex64): New insns. - - * i386.c (print_reg): Do not print x86_64 style regs on IA-32 - -2001-03-29 Richard Henderson - - * libgcc2.c [L__main]: Include unwind-dw2-fde.h instead of frame.h. - -2001-03-28 Matthew Hiller - - * config/mn10300/mn10300.md (cmpsi): Fix first alternative's - output template. - - * MAINTAINERS: Added self. - -2001-03-28 Richard Henderson - - * Makefile.in (cs-tconfig.h): Depend on CONFIG_H, not GCONFIG_H. - Use ALL_CFLAGS not HOST_CFLAGS for sjlj detection. - -2001-03-28 Jim Wilson - - * config/ia64/ia64.md (movtf): Change DImode to TFmode in calls to - operand_subword. - -2001-03-28 Kaveh R. Ghazi - - * toplev.h (fatal_error): Add ATTRIBUTE_NORETURN. - - * tradcif.y (yyerror): Likewise. Add format specifier in call to - `error'. - - * tradcpp.c (macroexpand): Likewise for call to `error_with_line'. - -2001-03-28 DJ Delorie - - * Makefile.in (stage1_build): Revert CFLAGS patch. - -2001-03-28 Marek Michalkiewicz - - * config/avr/libgcc.S (__mulhi3): Correct tests to exit the loop - when multiplier or multiplicand is zero. - -2001-03-28 Bernd Schmidt - - * cselib.c (hash_rtx): Don't do tail recursion elimination by hand. - - * config/ia64/ia64.c (update_set_flags): New function, broken out of - rtx_needs_barrier. - (set_src_needs_barrier): Likewise. - (rtx_needs_barrier): For SET case, use these two functions. Rework - PARALLEL case to handle all inputs before all outputs. - (emit_insn_group_barriers): Call init_insn_group_barriers only if we - saw a label and no stop bit since then. - (maybe_rotate, process_epilogue): Add prototypes. - -2001-03-28 Richard Henderson - - * config/rs6000/rs6000.h (EPILOGUE_USES): Use TARGET_AIX, - not TARGET_TOC for special toc restore handling. - * config/rs6000/rs6000.md (eh_return): Likewise. - -2001-03-28 Richard Henderson - - * config/sparc/sparc.c (eligible_for_epilogue_delay): False if - current_function_calls_eh_return. - (output_function_epilogue): Handle eh_return. - * config/sparc/sparc.h (DOESNT_NEED_UNWINDER): Remove. - (EH_RETURN_DATA_REGNO): New. - (EH_RETURN_STACKADJ_RTX): New. - (EH_RETURN_HANDLER_RTX): New. - * config/sparc/sparc.md (call/short branch peepholes): Check - can_throw_internal instead of in_same_eh_region. - - * config/rs6000/rs6000.c (rs6000_stack_info): Allocate space - for eh_return data registers. - (rs6000_emit_prologue): Save eh_return data registers. - (rs6000_emit_epilogue): Force inline restores if eh_return. - Restore eh_return data registers. Mind EH_RETURN_STACKADJ_RTX. - * config/rs6000/rs6000.h (rs6000_stack_t): Add ehrd_offset. - (EH_RETURN_DATA_REGNO, EH_RETURN_STACKADJ_RTX): New. - (EPILOGUE_USES): True for TOC_REGISTER if calls_eh_return and - the target uses one. - * config/rs6000/rs6000.md (eh_epilogue, eh_reg_restore): Remove. - (return_eh_si, return_eh_di): Remove. - (eh_return): New, from corpse of eh_epilogue. - (eh_set_lr_si, eh_set_lr_di): New. - - * config/i386/i386.c (general_no_elim_operand): Disallow virtual regs. - (ix86_save_reg): If maybe_eh_return, true for EH_RETURN_DATA_REGNOs. - True for pic register if current_function_calls_eh_return. - (ix86_expand_epilogue): Change "emit_return" argument into "style". - Handle eh_return requirements. - * config/i386/i386.h (EH_RETURN_DATA_REGNO): New. - (EH_RETURN_STACKADJ_RTX): New. - * config/i386/i386.md (exception_receiver): Remove. - (eh_return, eh_return_1): New. - * config/i386/linux.h (MD_FALLBACK_FRAME_STATE_FOR): New. - - * config/alpha/alpha.c (alpha_sa_mask): Add EH_RETURN_DATA_REGNOs. - (alpha_mark_machine_status): No eh_epilogue_sp_ofs ... - (alpha_expand_epilogue): ... use EH_RETURN_STACKADJ_RTX instead. - * config/alpha/alpha.h (machine_function): Remove eh_epilogue_sp_ofs. - (EH_RETURN_DATA_REGNO): New. - (EH_RETURN_STACKADJ_RTX, EH_RETURN_HANDLER_RTX): New. - * config/alpha/alpha.md (eh_epilogue): Remove. - (exception_receiver): Use $26 for ldgp input. - * config/alpha/linux.h (MD_FALLBACK_FRAME_STATE_FOR): New. - -2001-03-28 Richard Henderson - - * except.c: Rewrite entirely for IA-64 ABI exception handling. - * except.h: Likewise. - - * Makefile.in (LIB2ADDEH): Mention unwind-dw2*.c - (LIB2ADDEHDEP): New. - (LIB2FUNCS_EH): Remove. - (LIB2ADD): Remove LIB2ADDEH. - (libgcc.mk): Pass LIB2ADDEHDEP, don't pass LIB2FUNCS_EH. - (LIBGCC_DEPS): Use LIB2ADDEHDEP. - (crt{begin,end}[S].o): Likewise. - (except.o): Update includes. - * mklibgcc.in: Remove LIB2FUNCS_EH, add LIB2ADDEH, LIB2ADDEHDEP. - (libgcc2_c_dep): Use LIB2ADDEHDEP. - - * basic-block.h (struct basic_block_def): Remove eh_beg, eh_end. - * bb-reorder.c (reorder_basic_blocks): Don't disable for EH. - * builtins.def (BUILT_IN_EH_RETURN_DATA_REGNO): New. - * builtins.c (expand_builtin): Implement it. - [BUILT_IN_EH_RETURN]: Update for nr arguments change. - * c-common.c (c_common_nodes_and_builtins): Declare it. - * c-decl.c (init_decl_processing): Update __builtin_eh_return. - * calls.c (libfunc_nothrow): Remove. - (emit_library_call_value_1): Don't call it. - * crtstuff.c: Include unwind-dw2-fde.h instead of frame.h. - * dwarf2.h (dwarf_call_frame_info): Add dwarf2.1 elements. - (DW_EH_PE_*): New defines for pointer encoding in .eh_frame. - * dwarf2out.c (struct dw_fde_struct): Add uses_eh_lsda, funcdef_number. - (current_funcdef_number): Globalize. - (output_call_frame_info): Emit frame data if an lsda is needed. - Generate augmentation for personality routine. Don't play with - difference symbols. - (dwarf2out_begin_prologue): Record funcdef_number. - * dwarf2out.h (current_funcdef_number): Declare. - * expr.c (expand_expr): Update for except.h name changes. - Remove POPDCC_EXPR, POPDHC_EXPR. Add EXC_PTR_EXPR. - * expr.h (LTI_throw, LTI_rethrow): Remove. - (LTI_sjthrow, LTI_sjpopnthrow, LTI_terminate): Remove. - (LTI_eh_rtime_match): Remove. - (LTI_unwind_resume, LTI_eh_personality): Add. - (LTI_unwind_sjlj_register, LTI_unwind_sjlj_unregister): Add. - * final.c (final): Don't call check_exception_handler_labels, - init_insn_eh_region, or free_insn_eh_region. - (final_scan_insn): Always emit debug labels for - NOTE_INSN_EH_REGION notes. - * flags.h (flag_new_exceptions): Remove. - * flow.c (entry_exit_blocks): Remove eh_beg, eh_end. - (record_active_eh_regions): Remove. - (count_basic_blocks): Check all instructions for REG_EH_REGION. - Use can_throw_internal. - (find_basic_blocks_1): Likewise. - (move_stray_eh_region_notes): Remove. - (find_label_refs): No eh_return_stub_label. - (make_edges): Likewise. No init/free_eh_nesting_info. Handle RESX. - (make_eh_edge): No eh_nest_info. Update for reachable_handlers - changes. - (delete_unreachable_blocks): Don't track deleted handlers. - (flow_delete_block): Use maybe_remove_eh_handler. - (delete_eh_regions): Remove. - (merge_blocks): Don't check for eh region match. - (mark_regs_live_at_end): Handle EH_RETURN_DATA_REGNO, - EH_RETURN_STACKADJ_RTX, EH_RETURN_HANDLER_RTX. - (init_propagate_block_info): Disable dead frame store optimization - when current_function_calls_eh_return. - (dump_bb): Don't print eh_beg, eh_end. - * function.c (fixup_var_refs): No catch_clauses. - (expand_function_end): Likewise. Call expand_eh_return before - the return register use. Call sjlj_emit_function_exit_after. - (expand_function_start): Force pseudo DECL_RESULT if sjlj exceptions. - * function.h (struct function): Add calls_eh_return, uses_eh_lsda. - * ifcvt.c (dead_or_predicable): Remove eh region check. - * integrate.c (function_cannot_inline_p): Disallow __builtin_eh_return. - Don't check for EH vs parameters. - (expand_inline_function_eh_labelmap, eif_eh_map): Remove. - (expand_inline_function): Call duplicate_eh_regions. - (copy_insn_list): Don't handle NOTE_INSN_EH_REGION_BEG/END. - (copy_insn_notes): Remap REG_EH_REGION notes. - (copy_rtx_and_substitute): Remove SYMBOL_REF_NEED_ADJUST check. - * integrate.h (struct inline_remap): Add local_return_label. - * jump.c (jump_optimize_1): Don't init/free_insn_eh_region, nor - check_exception_handler_labels, nor exception_optimize. - (find_cross_jump): No EH region check. - * optabs.c (init_optabs): Update for changed eh libfuncs. - * rtl.def (RESX): New. - * rtl.h (SYMBOL_REF_NEED_ADJUST): Remove. - * stmt.c (expand_decl_cleanup): Simplify using_eh_for_cleanups_p - checks. Update for except.h name changes. - (expand_cleanups): Likewise. - (expand_dcc_cleanup, expand_dhc_cleanup): Remove. - * toplev.c (dump_file_index, dump_file): Add .02.eh dump. - (compile_file): Call init_eh before init_optabs. Don't - output_exception_table here. - (rest_of_compilation): Call convert_from_eh_region_ranges, - convert_to_eh_region_ranges, output_function_exception_table. - Don't emit_eh_context. - * tree.def (POPDHC_EXPR, POPDCC_EXPR): Remove. - (EXC_PTR_EXPR): New. - - * md.texi (eh_epilogue): Remove. - (eh_return): Document. - * tm.texi (EH_RETURN_DATA_REGNO): Document. - (EH_RETURN_STACKADJ_RTX, EH_RETURN_HANDLER_RTX): Document. - - * eh-common.h: Remove file. - * frame-dwarf2.c, frame.c, frame.h: Remove files. - * libgcc2.c (L_eh): Remove. - - * unwind-dw2-fde.c: New file, largely copied from frame.c. - * unwind-dw2-fde.h: New file. - * unwind-dw2.c: New file, largely cribbed from frame-dwarf2.c. - * unwind-sjlj.c, unwind.h, unwind.inc: New files. - * libgcc-std.ver: Update for eh symbols. - -2001-03-27 Richard Henderson - - * regmove.c (perhaps_ends_bb_p): Use can_throw_internal to - reduce false positives. - (regmove_optimize): Disable if flag_non_call_exceptions. - - * stmt.c (expand_return): Remove always true predicate. - (expand_decl_cleanup_no_eh): Remove dead code. - - * sched-deps.c (sched_analyze_insn): Consolidate scheduling - barrier code. Add a scheduling barrier if a non-call insn - can throw internally. - - * rtlanal.c (rtx_addr_can_trap_p): Virtual registers cannot trap. - Auto-inc addresses trap only if their base register does. - - * except.c (can_throw_internal): Rename from can_throw. - * except.h, resource.c: Update references. - - * integrate.c (copy_insn_list): Use returnjump_p. - (copy_insn_notes): Recurse for CALL_PLACEHOLDER. - - * function.h (struct function): Move all boolean valued fields - to single bit fields at the end of the struct. - - * bb-reorder.c, dwarf2out.c, except.c, except.h, flow.c, - jump.c, toplev.c: - Rename asynchronous_exceptions to flag_non_call_exceptions. - - * gthr-single.h (UNUSED): New. Distinguish between how C - and C++ mark unused function arguments. Use throughout. - - * Makefile.in (cs-tconfig.h): Copy USING_SJLJ_EXCEPTIONS - value to target configuration header. - * configure.in (CONFIG_SJLJ_EXCEPTIONS): New. - * config.in, configure: Rebuild. - * except.h (USING_SJLJ_EXCEPTIONS): New. Define based on - configuration and target defines. - (exceptions_via_longjmp): Remove. - * dwarf2out.c, except.c, final.c, toplev.c, config/ia64/ia64.c: - Use USING_SJLJ_EXCEPTIONS instead of exceptions_via_longjmp. - - * except.h (flag_non_call_exceptions): Move ... - * flags.h: ... here. - - * combine.c (distribute_notes) [REG_EH_REGION]: If non-call - exceptions, put the note on the trapping instruction. - - * flags.h (flag_new_exceptions): Remove. - * toplev.c: Don't set it. - * final.c: Don't check it. - * except.c: Provide stub definition. - - * flow.c (tidy_fallthru_edges): Don't combine complex edges. - (calculate_global_regs_live): Kill call-clobbered registers - across exception edges. - * reg-stack.c (convert_regs_1): Kill the entire target stack - across non-call exception edges. - - * flow.c (cleanup_cfg): Take no argument. - * output.h, sibcall.c, toplev.c: Update all calls. - -2001-03-27 Kaveh R. Ghazi - - * configure.in: Don't check for bcopy. - * configure, config.in: Regenerate. - - * system.h: Don't define or prototype bcopy, instead poison it. - -2001-03-27 Richard Henderson - - * function.c (expand_function_start): Set DECL_REGISTER on - a pseudo used for DECL_RESULT. - - * rtl.h (LCT_NORETURN): New. - * calls.c (emit_library_call_value_1): Handle it. - -2001-03-27 Stan Shebs - - * objc/objc-act.c (objc_init): Use dump_base_name. - (gen_declaration): Clear the buffer arg. - (gen_declaration_1): New function, body of gen_declaration. - (adorn_decl): Call gen_declaration_1 instead of gen_declaration. - (gen_method_decl): Ditto, plus always clear buffer arg. - (error_with_ivar): Simplify. - (warn_with_method): Ditto. - (build_message_expr): Don't clear buffers. - (dump_interface): Ditto. - (objc_debug): Ditto. - (build_keyword_selector): Clear the buffer by only zeroing - the first element. - (objc_implementation_context): Declare. - (start_class): Warn about missing @end. - (finish_objc): Ditto. - -2001-03-28 John David Anglin - - * reload1.c (eliminate_regs): Don't abort on MEM USEs. - -2001-03-27 Kaveh R. Ghazi - - * Makefile.in (SYSTEM_H): Define. - Depend on $(SYSTEM_H), not system.h. - - * objc/Make-lang.in: Depend on $(SYSTEM_H), not system.h. - -2001-03-27 Jim Wilson - - * final.c (final_scan_insn, case NOTE_INSN_BASIC_BLOCK): Call - IA64_UNWIND_EMIT. - * config/ia64/ia64.c (block_num, need_copy_state): New static vars. - (process_epilogue): New static function. - (process_set): Call process_epilogue instead of emitting .restore - directly. - (process_for_unwind_directive): Handle NOTE_INSN_BASIC_BLOCK. - - * flow.c (struct reg_cond_life_info): New fields orig_condition - and stores. - (init_propagate_block_info): Set new fields. - (mark_regno_cond_dead): Set and use new fields. - (flush_reg_cond_reg_1): Likewise. - (and_reg_cond, case AND): Check for redundant AND conditions. - (mark_used_reg): Delete unnecessary clears before freeing splay trees. - Set new fields. - -2001-03-27 Neil Booth - - * cppmacro.c (stringify_arg): Null terminate strings. - -2001-03-27 Zack Weinberg - - * config.gcc (m68hc11-*-*, m68hc12-*-*): Convert to new tm.h - inclusion style. xm-m68hc11.h no longer exists. - * config/m68hc11/xm-m68hc11.h: Delete file. - * config/m68hc11/m68hc12.h: Convert to new tm.h inclusion style. - - * config/m68hc11/m68hc11.h: Convert to new tm.h inclusion style. - Don't define GCC_VERSION, N_, or PARAMS; don't include - gansidecl.h or stdio.h. Define inhibit_libc here. - Make code conditioned on #if GCC_VERSION > 2095 unconditional. - Delete code conditioned on #if GCC_VERSION == 2095. - - * config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c: - Make code conditioned on #if GCC_VERSION > 2095 unconditional. - Delete code conditioned on #if GCC_VERSION == 2095. - -2001-03-27 Kaveh R. Ghazi - - * system.h: Include symcat.h. - (STRINGIFY): Don't define. - - * configure.in: Adjust comment. - - * builtins.c: Use STRINGX, not STRINGIFY. - * gencheck.c: Likewise. - * gengenrtl.c: Likewise. - * protoize.c: Likewise. - - * cpplex.c: Don't include symcat.h. - * cpplib.c: Likewise. - - * gansidecl.h (HAVE_STRINGIZE): Don't define. - -2001-03-27 Alan Modra - - * c-typeck.c (digest_init): Fold init expression. - -2001-03-26 Kaveh R. Ghazi - - * sbitmap.c (sbitmap_copy): Call memcpy, not bcopy. - -2001-03-27 Alan Modra - - * except.c (eh_regs): Save results of build_pointer_type to a temp - as FUNCTION_VALUE macro may evaluate its args multiple times. - -2001-03-26 Mark Mitchell - - * c-common.h (DECL_NUM_STMTS): New macro. - * c-decl.c (duplicate_decls): Copy DECL_NUM_STMTS, not - DECL_FRAME_SIZE. - (pushdecl): Likewise. - * c-semantics.c (add_stmt): Update DECL_NUM_STMTS. - * integrate.c (expand_inline_function): Don't check - DECL_FRAME_SIZE. - * print-tree.c (print_node): Don't print it. - * toplev.c (rest_of_compilation): Don't try to inline when - flag_no_inline is on. - * tree.h (DECL_FRAME_SIZE): Remove. - (tree_decl): Adjust accordingly. - -2001-03-26 Kaveh R. Ghazi - - * combine.c (try_combine): Use memcpy, not bcopy. - - * genattrtab.c (expand_units): Likewise. - -Mon Mar 26 15:55:08 CEST 2001 Jan Hubicka - - * i386.md (push mem DI peep2): New. - (mov 0, mov -1 peep2): Handle 64bit. - (lea to arithmetics peep2): Handle 64bit leas. - (rsp arithmetics to push/pop peep2s): New. - - * i386.md (truncdfsf2_3, trunctfsf2_2): Change predicate to memory_operand. - -Mon Mar 26 14:35:18 CEST 2001 Jan Hubicka - - * i386.c (struct machine_function): Add save_varrargs_registers. - (ix86_save_varrargs_registers): New macro. - (ix86_frame_layout): Support 64bit; support red zones and varrargs area. - (ix86_expand_prologue): Likewise. - (ix86_emit_epilogue_esp_adjustement): Likewise. - (ix86_expand_epilogue): Likewise. - * i386.md (pro_epilogue_adjust_stack): Turn to expander; support 64bit. - (pro_epilogue_adjust_stack_1): New insn. - (pro_epilogue_adjust_stack_rex64): Likewise. - * i386.h (MASK_NO_RED_ZONE): New constant. - (TARGET_RED_ZONE): New macro. - (TARGET_OPTIONS): Add "red-zone" and "no-red-zone" - (RED_ZONE_SIZE): New constant. - (RED_ZONE_RESERVE): New constant. - -2001-03-25 Kaveh R. Ghazi - - * toplev.c (set_float_handler): Use memcpy, not bcopy. - -2001-03-25 Kazu Hirata - - * config/h8300/h8300.md (umodqi3): Output a tab instead of a - space. - (modqi3): Likewise. - (umodhi3): Likewise. - (modhi3): Likewise. - -2001-03-25 Kaveh R. Ghazi - - * mkconfig.sh (DEFINES): Handle entries with '='. - - * config.gcc: Don't use i370/xm-mvs.h or ns32k/xm-pc532-min.h. - Set xm_defines to MACRO=value instead. - - * i370/xm-mvs.h: Delete. - - * ns32k/xm-pc532-min.h: Likewise. - -Sun Mar 25 15:01:40 CEST 2001 Jan Hubicka - - * i386.md (ashldi3, ashrdi3, lshrdi3): Change predicates to - shiftdi_operand; - use ix86_expand_binary_operator - (?sh??i_?): Disable for 64bit. - * i386.h (PREDICATE_CODES): Add shiftdi_operand. - * i386.c (shiftdi_operand): New predicate. - - * (ashldi3_1_rex64, ashldi3_cmp_rex64, ashlsi3_1_zext, ashlsi3_cmp_zext, - ashrdi3_63_rex64, ashrdi3_1_one_bit_rex64, ashrdi3_1_rex64, - ashrdi3_one_bit_cmp_rex64, ashrdi3_cmp_rex64, ashrsi3_31_zext, - ashrsi3_1_one_bit_zext, ashrsi3_1_zext, ashrsi3_one_bit_cmp_zext, - ashrsi3_cmp_zext, lshrdi3_1_one_bit_rex64, lshrdi3_1_rex64, - lshrdi3_cmp_one_bit_rex64, lshrdi3_cmp_rex64, lshrsi3_1_one_bit_zext, - lshrsi3_1_zext, lshrsi3_cmp_one_bit_zext, lshrsi3_cmp_zext, - rotlsi3_1_one_bit_rex64, rotldi3_1_rex64, - rotlsi3_1_one_bit_zext, rotlsi3_1_zext, rotrdi3_1_one_bit_rex64, - rotrdi3_1_rex64, rotrsi3_1_one_bit_zext, rotrsi3_1_zext): New patterns. - (rotldi3, rotrdi3): New expanders. - -Sun Mar 25 14:25:33 CEST 2001 Jan Hubicka - - * i386.md (movstrsi): Move offline. - (movstrdi): New. - (strmovdi_rex64): New. - (strmov?i): Accept 64bit. - (strmov?i_rex64): New. - (strmov?i_rex_1): New. - (strmov?i_1): Disable for 64bit. - (rep_mov?i_rex64): New. - (rep_mov?i): Disable for 64bit. - (clrstrsi): Move offline. - (strset?i_rex64): New. - (strset?i: Accept 64bit. - (rep_stos?i): Disable for 64bit. - (rep_stos?i_rex64): New. - (strset?i_rex_1): New. - (strset?i_1): Disable for 64bit. - (cmpstrsi): Accept 64bit. - (cmpstrsi_nz_1): Rename to cmpstrqi_nz_1; Disable for 64bit. - (cmpstrqi_nz_rex_1): New. - (cmpstrsi_1): Rename to cmpstrqi_1; Disable for 64bit. - (strlensi): Move offline. - (strlendi): New. - (strlenqi_1): Disable for 64bit; fix constraints. - (strlenqi_rex_1): New. - * i386.c (ix86_adjust_counter): New static function. - (ix86_zero_extend_to_Pmode): Likewise. - (ix86_expand_aligntest): Likweise. - (ix86_expand_strlensi_unroll_1): Make static; update for 64bit. - (ix86_expand_movstr): New global function. - (ix86_expand_clrstr): New global function. - (ix86_expand_strlen): New global function. - * i386-protos.h (ix86_expand_movstr, ix86_expand_clrstr, - ix86_expand_strlen): Declare. - (ix86_expand_strlensi_unroll_1): Delete. - -Sat Mar 24 23:15:19 CET 2001 Jan Hubicka - - * i386.md (cmpdi): Fix operand predicates. - (cmpdi_ccno_1_rex64, cmpdi_minus_1_rex64, cmpdi_1_rex64, - cmpdi_1_insn_rex64): New patterns. - (adddi3): Turn to expander. - (adddi3_1, adddi3_carry_rex64, adddi3_cc_rex64): New patterns. - (addsi3_carry_zext): New pattern. - (adddi_?_rex64): New patterns and splitters. - (addsi_?_zext): New patterns. - (subsi3_carry_zext): New pattern. - (subdi_?_rex64): New patterns and splitters. - (iorsi_?_zext): New patterns. - (iordi_?_rex64): New patterns and splitters. - (iorsi_?_zext): New patterns. - (iorsi_?_zext_imm): New patterns. - (xorsi_?_zext): New patterns. - (xordi_?_rex64): New patterns and splitters. - (xorsi_?_zext): New patterns. - (negdi*): New patterns. - (one_cmpldi*): Likewise. - (one_cmplsi*_zext, negsi*_zext): Likewise. - (testqi_ext_3_rex64): New pattern. - -Sat Mar 24 21:13:28 CET 2001 Jan Hubicka - - * i386-protos.h (ix86_split_long_move): Return void. - * i386.c (ix86_split_to_parts): Handle 64bit target. - (ix86_split_long_move): Likewise. - * i386.md (all calls to ix86_split_long_move): Update. - -2001-03-23 Richard Henderson - - * config/mips/iris4.h (ASM_OUTPUT_ASCII): Rename local variables - to avoid shadowing arguments. - -2001-03-23 Jakub Jelinek - - * varasm.c (make_decl_rtl): Don't append var_labelno discriminator - to variable names where DECL_NAME is different from - DECL_ASSEMBLER_NAME. - -2001-03-23 Jim Wilson - - * varasm.c (make_decl_rtl): Add TREE_PUBLIC check to abort test. - (assemble_alias): Call make_decl_rtl. - -Fri Mar 23 16:59:08 2001 J"orn Rennecke - - * stor-layout.c (layout_type): Give OFFSET_TYPE a MODE_INT type. - -2001-03-23 Bryce McKinlay - - * extend.texi: Document the "java_interface" attribute. - -2001-03-22 Zack Weinberg - - * mkconfig.sh: Use a subshell with redirected stdout, - instead of closing stdout and confusing commands that run - afterward. Throw away output of cmp. - -2001-03-22 Gordon Sadler - - * Makefile.in (stage1_build): Pass CFLAGS to stage1_build. - -Thu Mar 22 22:15:59 CET 2001 Jan Hubicka - - * i386.md (zero_extendsidi2_32): Break out from ... - (zero_extendsidi2): ... here ; turn to expander. - (zero_extendsidi2_rex64): New. - (extendsidi2_32): Break out from ... - (extendsidi2): ... here ; turn to expander. - (extendsidi2_rex64): New. - (zero_extendhidi2, zero_extendqidi2, extendhidi2, extendqidi2): New. - (trunc?f?f splitters): Add 64bit versions. - -Thu Mar 22 21:41:16 CET 2001 Jan Hubicka - - * i386.md (pushsi, pushsi2_prologue): Disable. - (pushsi2_rex64): New. - (movabs?i_1_rex64, movabs?i_2_rex64): New. - (movqi_ext_1): Disable for 64bit. - (movqi_ext_1_rex64): New. - (pushdi2_rex64): New pattern, peep2s and splitter. - (pushdi2_prologue_rex64): New pattern. - (popdi1_epilogue_rex64, popdi1, movdi_xor_rex64, movdi_or_rex64): - Likewise. - (movdi splitters): Disable for 64bit. - (movdi_1_rex64): New pattern, peep2s and splitters. - (swapdi): New pattern. - (pushsf): Disable for 64bit. - (pushsf_rex64): New pattern and splitter. - (pushdf_nointeger): Disable for 64bit. - (pushdf_integer): Handle the 64bit case. - (pushtf): Likewise; update splitters. - -2001-03-22 Richard Henderson - - * mkconfig.sh: Include insn-flags.h. - * Makefile.in (CONFIG_H): Include insn-flags.h. - (lots of objects): Remove insn-codes.h and insn-flags.h. - - * alias.c, bb-reorder.c, calls.c, do-loop.c, flow.c, haifa-sched.c, - integrate.c, jump.c, loop.c, predict.c, profile.c, reg-stack.c, - regmove.c, reorg.c, a29k/a29k.c, alpha/alpha.c, arc/arc.c, arm/arm.c, - avr/avr.c, clipper/clipper.c, convex/convex.c, d30v/d30v.c, - dsp16xx/dsp16xx.c, fr30/fr30.c, h8300/h8300.c, i370/i370.c, - i386/i386.c, i860/i860.c, ia64/ia64.c, m32r/m32r.c, m68hc11/m68hc11.c, - m68k/m68k.c, m88k/m88k.c, mcore/mcore.c, mn10200/mn10200.c, - mn10300/mn10300.c, ns32k/ns32k.c, pa/pa.c, pdp11/pdp11.c, - pj/pj.c, romp/romp.c, rs6000/rs6000.c, sh/sh.c, sparc/sparc.c, - v850/v850.c, vax/vax.c: - Don't include insn-flags.h. - - * diagnostic.c, expr.h, reload.c, toplev.c: - Don't include insn-codes.h. - - * builtins.c, combine.c, except.c, explow.c, expmed.c, expr.c, - final.c, function.c, optabs.c, recog.c, reload1.c, stmt.c, - c4x/c4x.c, i960/i960.c, mips/mips.c: - Don't include insn-codes.h or insn-flags.h. - - * genemit.c, genopinit.c, genoutput.c: Don't include insn-codes.h - or insn-flags.h in the generated code. - * genflags.c (gen_proto): Use "struct rtx_def *" instead of "rtx". - (main): Forward declare struct rtx_def. - -2001-03-22 Joseph S. Myers - - * invoke.texi (-ffast-math): Remove duplicate line about - __FAST_MATH__. - - * gcc.texi: Remove more obsolete documentation of bugs and - installation problems. - -2001-03-21 Kazu Hirata - - * config/h8300/h8300.md (movsi_h8300hs): Split the 2nd alternative - into two parts. - -2001-03-20 Jason Merrill - - * collect2.c (is_ctor_dtor): Always use '_' in the file fn names, - not '.' or '$'. - * tree.c (FILE_FUNCTION_FORMAT): Likewise. - * varasm.c (CHKR_PREFIX): Likewise. - -Wed Mar 21 14:27:11 2001 Richard Kenner - - * gcse.c (hash_scan_set): An expression is not anticipatible if it - is part of a multi-SET insn. - - * cse.c (find_comparison_args): Remove previous change. - * ifcvt.c (noce_process_if_block): When moving an insn, remove any - REG_EQUAL notes. - - * config/i386/i386.md (conditional_trap): Remove warning. - - * recog.c (push_operand): Fix error in last change that caused - undefined symbol on many targets. - - * sdbout.c: #include ggc.h. - (sdbout_init): Move to end of file. - Call ggc_add_tree_root for anonymous_types. - (sdbout_symbol): Use DECL_NAME for local, not DECL_ASSEMBLER_NAME. - (sdbout_one_type): Use DECL_NAME for field name. - * Makefile.in (sdbout.o): Show includes ggc.h. - -Wed Mar 21 20:33:26 CET 2001 Jan Hubicka - - * i386.c (override_options): Default ix86_regparm to REGPARM_MAX. - (override_options): Use properlimits for preferred_stack_boundary. - (ix86_valid_type_attribute_p): Disable stdcall and cdecl attributes - on x86_64. - (ext_register_operand): Accept DImode. - (load_pic_register): Abort on 64bit. - (gen_push): Use Pmode instead of SImode. - (ix86_save_reg): Pic reg is never used on 64bit. - (ix86_expand_prologue): Likewise. - (ix86_emit_save_regs): Use Pmode instead of SImode. - (legitimate_address_p): Check displacement for 64bit. - (print_operand): Avoid outputting of (%rip) on 64bit. - (print_operand_address): Output (%rip) where possible. - (split_di): Abort on 64bit registers. - (ix86_expand_branch): DImode comparison is simple for x86_64. - (memory_address_length): Recognize memory addresses formed using - PRE/POST modify. - (ix86_data_alignment, ix86_local_alignment): Align arrays to 16 bytes - for x86_64. - * i386.h (TARGET_USE_SAHF): Disable for 64bit. - -Wed Mar 21 18:51:19 CET 2001 Jan Hubicka - - * recog.c (push_operand): Recognize new format of push instructions. - -Wed Mar 21 10:53:57 CET 2001 Jan Hubicka - - * i386.md (pushqi1): New. - * i386-protos.h (x86_64_general_operand, x86_64_szext_general_operand, - x86_64_nonmemory_operand, x86_64_szext_nonmemory_operand, - x86_64_immediate_operand, x86_64_immediate_operand, - x86_64_zext_immediate_operand): Declare. - * i386.c (x86_64_general_operand, x86_64_szext_general_operand, - x86_64_nonmemory_operand, x86_64_szext_nonmemory_operand, - x86_64_immediate_operand, x86_64_immediate_operand, - x86_64_zext_immediate_operand): define. - * i386.h (PREDICATE_CODES): Add new predicates. - -Wed Mar 21 10:25:13 CET 2001 Jan Hubicka - - * i386.md (pophi1, popqi1, pushqi1): Remove. - - * expr.c (emit_single_push_insn): New function. - (move_by_pieces): Accept NULL as destination for push instructions. - (gen_push_operand): Kill. - (emit_push_insn): Pass NULL when pushing; avoid updating of - stack_pointer_delta. - * expr.h (gen_push_operand): Kill. - -Tue Mar 20 20:15:06 2001 Richard Kenner - - * rtl.texi (COMPARE): Clarify documentation and reference section - on comparisons. - -2001-03-20 Stan Shebs - - * objc/objc-act.c (get_static_reference): Use NULL_TREE. - (get_object_reference): Ditto. - (error_with_ivar): Use error_with_file_and_line. - (warn_with_method): Use warning_with_file_and_line. - -2001-03-20 Tom Tromey - - * libgcc-std.ver: Added __fixunssfsi and __fixunsdfsi. - -2001-03-20 Mark Mitchell - - * tree.c (set_decl_assembler_name): Set DECL_ASSEMBLER_NAME for - variables that are TREE_PUBLIC, even if not TREE_STATIC. - -2001-03-20 DJ Delorie - - * Makefile.in (install-libgcc): Pass complete list of variables. - (install-multilib): Ditto. - -2001-03-20 David Billinghurst - - * config/i386/cygwin.h: Declare ctor_section, dtor_section - drectve_section, switch_to_section. - - * winnt.c: Declare functions associated_type, gen_stdcall_suffix, - i386_pe_dllexport_p, i386_pe_dllimport_p, i386_pe_mark_dllexport, - i386_pe_mark_dllimport. - -2001-03-20 David Billinghurst - - * config/i386/cygwin.h: Include Declare and constify - functions i386_pe_*. - - * config/i386/winnt.c: Include "tm_p.h" and "toplev.h" Constify - i386_pe_* functions with char * arguments. - -2001-03-20 Alexandre Oliva - - * config/sh/sh.md (movsf_ie): Fix output patterns for fpul load - and store. - (movsi_ie): Introduce fpul store. - -2001-03-20 Alan Modra - - * Makefile.in (OBJS): Remove hashtab.o. - -2001-03-19 Stan Shebs - - * objc/objc-act.c (maybe_objc_method_name): Remove, never called. - * c-lang.c (maybe_objc_method_name): Ditto. - * c-tree.h (maybe_objc_method_name): Remove decl. - -2001-03-19 Tom Tromey - - * gcc.c (init_gcc_specs): Fix comment. - -2001-03-19 Mark Mitchell - - Compute DECL_ASSEMBLER_NAME lazily. - * tree.h (DECL_ASSEMBLER_NAME): Compute it lazily. - (DECL_ASSEMBLER_NAME_SET_P): New macro. - (SET_DECL_ASSEMBLER_NAME): Likewise. - (COPY_DECL_ASSEMBLER_NAME): Likewise. - (set_decl_assembler_name): Declare. - (lang_set_decl_assembler_name): Likewise. - * tree.c (lang_set_decl_assembler_name): New variab.e - (set_decl_assembler_name): New function. - (init_obstacks): Set lang_set_decl_assembler_name. - (build_decl): Don't set DECL_ASSEMBLER_NAME. - * c-decl.c (duplicate_decls): Use SET_DECL_ASSEMBLER_NAME, - COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME - where it's not necessary. - (builtin_function): Likewise. - (finish_decl): Likewise. - * dbxout.c (dbxout_type_methods): Likewise. - * ggc-common.c (ggc_mark_trees): Likewise. - * profile.c (output_func_start_profiler): Likewise. - * varasm.c (make_decl_rtl): Likewise. - - * cse.c (find_comparison_args): Update documentation. Fix - mishandling of COMPARE operations. - - * tree.def (ABS_EXPR): Add documentation. - * fold-const.c (fold): Improve folding of ABS_EXPRs. - -2001-03-19 Zack Weinberg - - * Makefile.in (hash.o): Depend on $(GCONFIG_H), not $(CONFIG_H). - -2001-03-19 Jakub Jelinek - - * crtstuff.c (init_dummy): Use CRT_END_INIT_DUMMY if defined. - Remove ia32 linux PIC kludge and move it... - * config/i386/linux.h (CRT_END_INIT_DUMMY): ...here. - -Mon Mar 19 18:53:54 CET 2001 Jan Hubicka - - * i386.md (absdf2 expander): Fix 64bit case. - -2001-03-19 Brad Lucier - - * Makefile.in: Have splay-tree.o depend on $(GCONFIG_H). - -2001-03-16 Andrew Haley - - * config/ia64/libgcc-ia64.ver: Add __ia64_backtrace. - -2001-03-19 Gerald Pfeifer - - * README.X11: Remove obsolete file. - -2001-03-18 Anthony Green - - * config/pj/pj.h: Remove some trailing commas. - (ASM_SPEC): Use -EB and -EL, not -mb and -ml. - -2001-03-18 Richard Henderson - - * defaults.h (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Move from ... - * calls.c: ... here. - * combine.c, expr.c, final.c, function.c toplev.c: Don't provide - defaults for them here. - -2001-03-17 Anthony Green - - * config/pj/lib1funcs.S: Fix broken comment. - * config/pj/pj.h (LOCAL_LABEL_PREFIX): Prefix internal - labels with '.'. - -2001-03-18 Joseph S. Myers - - * gcc.texi: Remove obsolete information relating to build and - installation problems with enquire or the Pyramid C compiler. - -2001-03-17 Richard Henderson - - * dwarf2out.c (queue_reg_save): New. - (flush_queued_reg_saves, clobbers_queued_reg_save): New. - (dwarf2out_frame_debug_expr): Call queue_reg_save instead of - dwarf2out_reg_save. - (dwarf2out_frame_debug): Call flush_queued_reg_saves when needed. - (cfa, cfa_store, cfa_temp): Make static. - * final.c (final_scan_insn): Always call dwarf2out_frame_debug. - -2001-03-17 Richard Henderson - - * integrate.h (struct inline_remap): Add local_return_label. - * integrate.c (expand_inline_function): Initialize it and emit - it after copy_insn_notes. - (copy_insn_list): Don't store local_return_label here. - (copy_insn_notes): New function split out from copy_insn_list. - -2001-03-17 Richard Henderson - - * dwarf2out.c (lookup_filename): Emit .file if the assembler - is generating .debug_line. - (dwarf2out_init): Add main_input_filename to the file table first. - * configure.in (as_dwarf2_debug_line): Test with file number 1 - instead of file number 0. - -Sat Mar 17 11:52:34 2001 Richard Kenner - - * combine.c (undobuf): Remove field previous_undos; all refs deleted. - (gen_rtx_combine): Deleted; all references changed as appropriate. - (gen_unary): Deleted; all refs changed to call simplify_gen_unary. - - * print-tree.c (print_node): Print DECL_NONADDRESSABLE_P. - -2001-03-17 David Billinghurst - - * config/i386/xm-cygwin.h: Include - - * config/ia64/ia64.c (ia64_compute_frame_size): If reg_fp is zero, - then set it to LOC_REG (79) instead of aborting. - -2001-03-16 Phil Edwards - - * gccbug.in: Remove high priority. - -2001-03-16 Richard Henerson - - * aclocal.m4 (gcc_AC_EXAMINE_OBJECT): Substitute leading od - output with a space instead of deleting it. - * configure: Regenerate. - -2001-03-16 Zack Weinberg - - * aclocal.m4 (gcc_AC_EXAMINE_OBJECT): New utility macro which - handles the gory details of converting an object file into - something that's safe to grep. - (gcc_AC_C_COMPILE_BIGENDIAN): Rename to - gcc_AC_C_COMPILE_ENDIAN. Use gcc_AC_EXAMINE_OBJECT. Put - newlines at either end of the string we're looking for. - Make 'checking ...' message less stilted. - (gcc_AC_C_FLOAT_FORMAT): Use gcc_AC_EXAMINE_OBJECT. Handle - ARM in-memory layout and its hypothetical converse. Don't - define HOST_FLOAT_WORDS_BIG_ENDIAN unless it's different from - HOST_WORDS_BIG_ENDIAN. - - * configure.in: Adjust for renamed macro. Move - gcc_AC_C_FLOAT_FORMAT below gcc_AC_C_COMPILE_ENDIAN. - * configure, config.in: Regenerate. - -2001-03-16 Laurynas Biveinis - - * fixinc/Makefile.in: Set SHELL. - -2001-03-16 Laurynas Biveinis - - * fixinc/fixincl.c (fix_with_system): Quote file names before - passing them to shell. - -2001-03-16 Laurynas Biveinis - - * Makefile.in: Use fix-header$(build_exeext) instead - of fix-header. - -2001-03-16 Richard Henderson - - * dwarf2out.c: Revert most of 2000-11-25 and 2001-01-24 changes. - (LN_PROLOG_AS_LABEL, LN_PROLOG_END_LABEL): New. - (size_of_line_prolog): Remove. - (output_line_info): Compute prologue size via label difference. - (lookup_filename): Return "unspecified" for and . - - * configure.in (HAVE_AS_DWARF2_DEBUG_LINE): Require that the - assembler error when redefining file numbers. - * config.in, configure: Rebuild. - - * dwarf2asm.c (dw2_asm_output_data): Mask data to the output size. - (dw2_asm_output_data_uleb128): Use space not tab after .uleb128. - (dw2_asm_output_delta_uleb128): Likewise. - (dw2_asm_output_delta_sleb128): Similarly. - (dw2_asm_output_data_sleb128): Similarly. Print number in decimal. - -2001-03-16 Michael Meissner - - * mips.h (BITMASK_HIGH): Replacement for 0x80000000 that avoids - warnings. - (BITMASK_UPPER16): Replacement for 0xffff0000 that avoids - warnings. - (BITMASK_LOWER16): Replacement for 0x0000ffff. - - * mips.c (save_restore_insns): Use BITMASK_UPPER16/BITMASK_LOWER16 - instead of 0xffff0000/0x0000ffff to avoid warnings about constants - being unsigned in ISO C and signed in traditional. - (expand_prologue): Ditto. - (RA_MASK): Use BITMASK_HIGH to avoid warnings. - - * mips.md (divmodsi4,divmodsi4): Use BITMASK_HIGH to avoid - warnings. - (divsi3,divdi3): Ditto. - (modsi3,moddi3): Ditto. - (fix_truncdfsi2,fix_truncdfdi2): Ditto. - (fix_truncsfsi2,fix_truncsfdi2): Ditto. - (movsi split): Use BITMASK_UPPER16/BITMASK_LOWER16 to avoid - warnings. - -Fri Mar 16 14:47:57 CET 2001 Jan Hubicka - - * i386.c (ix86_expand_fp_movcc): Do not attempt to construct - SSE based conditional moves on LTGT/UNEQ conditions; - Canonicalize EQ to NE. - * i386.md (sse_mov?fcc): Disallow EQ and NE in IEEE mode. - (sse_mov?fcc_ne): New. - - * i386-protos.h (sign_extended_value, zero_extended_value): Declare. - -2001-03-16 Alexandre Oliva - - * config/sh/sh.c (sh_expand_prologue): Insns that set up the PIC - register may be dead. - -2001-03-16 Brad Lucier - - * Makefile.in (hash.o): Depend on CONFIG_H. - -2001-03-15 Mark Mitchell - - * dwarf2out.c (rtl_for_decl_location): Use DECL_RTL_IF_SET. - -2001-03-15 Richard Henderson - - * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): New. - (ASM_OUTPUT_DWARF_PCREL): New. - * config/ia64/hpux.h (ASM_OUTPUT_DWARF_OFFSET): Remove. - -2001-03-16 Alexandre Oliva - - * cppfiles.c (stack_include_file): Use MAX of sysp. - -2001-03-15 Steve Ellcey - - * config.gcc (ia64*-*-hpux*): New case. - * config/ia64/hpux.h: New file for HP-UX support. - * config/ia64/t-hpux: New file for HP-UX support. - -2001-03-16 Bruce Korb , Alexandre Oliva - - * fixinc/inclhack.def (irix_stdio_va_list): New. - * fixinc/fixincl.x: Rebuilt. - -2001-03-15 Richard Henderson - - * dwarf2asm.c (dw2_asm_output_offset): Use ASM_OUTPUT_DWARF_OFFSET - if provided by the target. - (dw2_asm_output_pcrel): Likewise with ASM_OUTPUT_DWARF_PCREL. - (dw2_asm_output_addr): New. - * dwarf2asm.h (dw2_asm_output_addr): Declare. - * dwarf2out.c (output_cfi): Use it for program addresses. - (output_call_frame_info, output_die): Likewise. - (output_aranges, output_line_info): Likewise. - -2001-03-15 Bruce Korb - - * gcc.c(main): make more rigorous - * collect2.c(main): guard against ignoring SIGCHLD - * protoize.c(main): ditto - * gcc/fixinc/fixincl.c(initialize): ditto - -2001-03-15 Mark Mitchell - - * sdbout.c (sdbout_symbol): Use DECL_RTL_SET_P, SET_DECL_RTL. - (sdbout_parms): Likewise. - -Thu Mar 15 12:57:14 2001 Jeffrey A Law (law@cygnus.com) - - * reload1.c (reload_cse_simplify_set): For LOAD_EXTEND_OP, do not - "widen" a destination that is already wider than a word. Also do - not widen if LOAD_EXTEND_OP is NIL for the given mode. - -2001-03-15 Bernd Schmidt - - * config/ia64/ia64.c (ia64_sched_reorder): Remove debugging aids. - -Thu Mar 15 11:30:31 EST 2001 John Wehle (john@feith.com) - - * i960.h (ROUND_TYPE_SIZE_UNIT): Fix typo. - -Thu Mar 15 11:24:29 EST 2001 John Wehle (john@feith.com) - - * i960.h (i960_maxbitalignment, - i960_last_maxbitalignment): Declare. - * i960.c (i960_maxbitalignment, - i960_last_maxbitalignment): Make global. - (process_pragma): Delete. - (i960_pr_align, i960_pr_noalign): Move from here ... - * i960-c.c: ... to this new file. - * t-960bare (i960-c.o): New rule. - * t-vxworks960 (i960-c.o): Likewise. - * config.gcc (i960-*-*): Define c_target_objs and - cxx_target_objs. - -2001-03-15 Bernd Schmidt - - * cselib.c (hash_rtx): For REG and MEM, just use value of expression - without adding in rtx code and mode. - - * alias.c (init_alias_analysis): Don't use any rtx whose value - varies as a known value. - Delete a superfluous test. - - * config/ia64/ia64.c (maybe_rotate): New function, broken out of - ia64_sched_reorder. - (ia64_sched_reorder): Call maybe_rotate; also rotate after - scheduling a stop bit. - (ia64_emit_nops): Correctly handle ASMs. - -2001-03-15 Mark Mitchell - - * varasm.c (assemble_variable): Use DECL_RTL_SET_P. - -2001-03-15 Neil Booth - - * cpp.texi: Update documentation for -include and -imacros. - * cppfiles.c (struct include_file): Remove "defined" memeber. - (find_or_create_entry): Make a copy of the file name, and - simplify it. - (open_file): Update to ensure we use the simplified filename. - (stack_include_file): Don't set search_from. - (cpp_included): Don't simplify the path name here. - (find_include_file): New prototype. Call search_from to - get the start of the "" include chain. Don't simplify the - filenames here. - (_cpp_execute_include): New prototype. Move diagnostics to - do_include_common. Update. - (_cpp_pop_file_buffer): Don't set defined. - (search_from): New prototype. Use the preprocessor's cwd - for files included from the command line. - (read_name_map): Don't simplify the pathname here. - * cpphash.h (enum include_type): New. - (struct buffer): Delete search from. New search_cached. - (_cpp_execute_include): Update prototype. - * cppinit.c (do_includes): Use _cpp_execute_include. - * cpplib.c (do_include_common): New function. - (do_include, do_include_next, do_import): Use it. - -2001-03-14 Mark Mitchell - - * varasm.c (assemble_alias): Use DECL_ASSEMBLER_NAME, not the - contents of the RTL, to determine the name of the object. - -2001-03-14 Mark Mitchell - - * tree.h (DECL_RTL): Allocate RTL lazily. - (SET_DECL_RTL): New macro. - (DECL_RTL_SET_P): Likewise. - (COPY_DECL_RTL): Likewise. - (DECL_RTL_IF_SET): Likewise. - * varasm.c (make_decl_rtl): Add assertions about the kind of - declaration we are processing. - * c-decl.c (duplicate_decls): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc. - (start_decl): Likewise. - (finish_decl): Likewise. - * c-semantics.c (emit_local_var): Likewise. - * calls.c (expand_call): Likewise. - * dbxout.c (dbxout_symbol): Likewise. - * emit-rtl.c (unshare_all_rtl): Likewise. - (unshare_all_decls): Likewise. - (reset_used_decls): Likewise. - * expr.c (store_constructor): Likewise. - (safe_from_p): Likewise. - (expand_expr): Likewise. - * function.c (put_var_into_stack): Likewise. - (instantiate_decls_1): Likewise. - (assign_parms): Likewise. - (expand_function_start): Likewise. - (expand_function_end): Likewise. - * ggc-common.c (gcc_mark_trees): Likewise. - * integrate.c (function_cannot_inline_p): Likewise. - (copy_decl_for_inlining): Likewise. - (expand_inline_function): Likewise. - (integrate_parm_decls): Likewise. - (integrate_decl_tree): Likewise. - * print-tree.c (print_node): Likewise. - * reg-stack.c (stack_result): Likewise. - * stmt.c (label_rtx): Likewise. - (expand_return): Likewise. - (expand_decl): Likewise. - (expand_decl_cleanup): Likewise. - (expand_anon_union_decl): Likewise. - * toplev.c (check_global_declarations): Likewise. - (rest_of_decl_compilation): Likewise. - * tree.c (simple_cst_equal): Likewise. - * objc/objc-act.c (generate_static_references): Likewise. - -2001-03-14 Zack Weinberg - - * aclocal.m4 (gcc_AC_C_CHARSET, gcc_AC_C_COMPILE_BIGENDIAN, - gcc_AC_C_FLOAT_FORMAT): New macros. - * configure.in: Add AC_PROG_CPP after CC tests; - gcc_AC_C_CHARSET and gcc_AC_C_FLOAT_FORMAT after the sizeof - tests; and gcc_AC_C_COMPILE_BIGENDIAN after gcc_AC_C_CHAR_BIT. - * configure, config.in: Regenerate. - - * config/a29k/xm-a29k.h, config/arc/xm-arc.h, - config/arm/xm-arm.h, config/c4x/xm-c4x.h, - config/convex/xm-convex.h, config/d30v/xm-d30v.h, - config/i370/xm-linux.h, config/i370/xm-oe.h, - config/ia64/xm-ia64.h, config/m32r/xm-m32r.h, - config/m68k/xm-m68k.h, config/mips/xm-mips.h, - config/pa/xm-linux.h, config/pa/xm-pa.h, - config/rs6000/xm-lynx.h, config/rs6000/xm-mach.h, - config/rs6000/xm-rs6000.h, config/rs6000/xm-sysv4.h, - config/sparc/xm-sparc.h, config/vax/xm-vax.h, - config/we32k/xm-we32k.h: Delete. - - * config/i370/xm-mvs.h, config/m88k/m88k.h, - config/romp/xm-romp.h, config/rs6000/xm-beos.h, - config/vax/xm-vms.h: Don't define any of: - HOST_FLOAT_FORMAT, HOST_EBCDIC, HOST_WORDS_BIG_ENDIAN - - * config/rs6000/aix.h: Define COLLECT_EXPORT_LIST here. - - * config.gcc: Remove references to deleted files. - (i370-*-opened*): Use i370/xm-mvs.h (which now defines only - FATAL_EXIT_CODE, which is the same between oe and mvs). - -2001-03-14 DJ Delorie - Vladimir Makarov - - * config/i960/i960.c (i960_function_prologue): Compute size of - frame according to number of registers actually saved there. - -2001-03-14 Richard Henderson - - * expr.c (emit_move_insn_1): Fix else if around #endif. - -Wed Mar 14 22:39:12 CET 2001 Jan Hubicka - Vojtech Pavlik - - * md.texi (machine constraints): Document 'Q', 'R', 'e' and 'Z' - constraints. - -Wed Mar 14 22:26:10 CET 2001 Jan Hubicka - - * i386.c (ix86_cmodel_string, ix86_cmodel): Define. - (override_options): Parse cmodel string. - (x86_64_sign_extended_value, x86_64_zero_extended_value): New. - * i386.h (TARGET_OPTIONS): Add "cmodel". - (EXTRA_CONSTRAINT): Recognize 'e' and 'Z'. - (enum cmodel): New. - (ix86_cmodel_string, ix86_cmodel): Declare. - -Wed Mar 14 22:26:54 CET 2001 Jan Hubicka - - Spot by Matt Kraai: - * i386.h (GENERAL_REG_P): Add missing REG_P. - -2001-03-14 Laurynas Biveinis - - * configure.in: Use $gcc_cv_as instead of $as. - * configure: Regenerated. - -2001-03-14 Neil Booth - - * cppfiles.c (stack_include_file): Only increase the include - count if we actually process the file properly, as opposed - to treating it as length zero. Only call read_include_file - if not DO_NOT_REREAD. Handle the -H include file output - here. - (read_include_file): Remove now redundant DO_NOT_REREAD check. - (cpp_included, find_include_file): Simplify pathnames after - remapping them. If remapping, don't use the remapped file - name's buffer as our scratch buffer. - (cpp_pop_file_buffer): Replace the multiple include macro - only if it isn't yet set. - (read_name_map): Simplify remapped names when reading in. - (remap_filename): Move code to code path that uses it. - (_cpp_simplify_pathname): Return the input pointer. - * cpphash.h (_cpp_simplify_pathname): Update prototype. - -2001-03-14 Mark Mitchell - - * expr.c (expand_expr): Revove bogus conditional. - -Wed Mar 14 19:29:50 CET 2001 Jan Hubicka - - * expr.c (emit_move_insn_1): Guard PUSH_ROUNDING use by ifdef. - -2001-03-14 Jakub Jelinek - - * reg-stack.c (stack_result): Unconditionally use - FUNCTION_OUTGOING_VALUE resp. FUNCTION_VALUE. - -Wed Mar 14 16:36:25 CET 2001 Jan Hubicka - - * expr.c (emit_move_insn_1): Split push of complex value when - no suitable push instruction exist. - - * i386.md (QImode move/add/shift patterns): Use ANY_QI_REG_P - instead of QI_REG_P. - -Tue Mar 13 22:22:04 2001 Richard Kenner - - * alias.c (handled_component_p, can_address_p): New functions. - (get_alias_set): Use them. - -2001-03-13 Jim Wilson - - * config/ia64/ia64.c (find_gr_spill): Subtract frame_pointer_needed - from 80 in try_locals code. - (ia64_expand_prologue): Add comment pointing to find_gr_spill change. - -2001-03-13 Zack Weinberg - - * aclocal.m4 (gcc_AC_COMPILE_CHECK_SIZEOF, gcc_AC_C_CHAR_BIT, - gcc_AC_C_LONG_LONG): New. - * configure.in: Use them. Probe the size of short, int, long, - and long long/__int64 if we have them. Move all the AC_C_* - checks together, except gcc_AC_C_CHAR_BIT which has to go - after AC_CHECK_HEADERS(limits.h). - Take hwint.h out of host_xm_file and build_xm_file. - - * hwint.h: Unconditionally define HOST_BITS_PER_CHAR, - HOST_BITS_PER_SHORT, HOST_BITS_PER_INT, HOST_BITS_PER_LONG, - and HOST_BITS_PER_LONGLONG in terms of SIZEOF_* and CHAR_BIT. - Move the HOST_WIDEST_INT setup logic here from system.h. - Provide HOST_WIDEST_INT even if HOST_BITS_PER_LONGLONG is not - defined. - * system.h: Include hwint.h after limits.h. HOST_WIDEST_INT - is now handled by hwint.h. - - * config/alpha/xm-alpha-interix.h, config/alpha/xm-vms.h, - config/c4x/xm-c4x.h, config/i370/xm-oe.h, - config/ia64/xm-ia64.h: Don't define any of: - HOST_BITS_PER_LONG, HOST_BITS_PER_CHAR, HOST_BITS_PER_SHORT, - HOST_BITS_PER_LONGLONG. - - * config/alpha/xm-alpha.h, config/dsp16xx/xm-dsp16xx.h, - config/h8300/xm-h8300.h, config/mips/iris6.h, - config/mn10200/xm-mn10200.h, config/pa/xm-pa64hpux.h, - config/sparc/xm-sp64.h: Delete. - * config.gcc: Remove references to deleted files. - - * config/arm/xm-arm.h, config/mips/xm-mips.h: Don't define - HOST_FLOAT_FORMAT to IEEE_FLOAT_FORMAT. - * config/i370/xm-linux.h: Clarify floating-point situation in - a comment. - -2001-03-13 Neil Booth - - * cppfiles.c (NO_INCLUDE_PATH): New macro. - (find_include_file): Decide here which part of the include - chain to start the search. Complain about an empty include - chain in all cases apart from an abolsute file name. - (_cpp_execute_include): Don't choose the search chain here. - Don't call handle_missing_include in the case of an empty - include chain. - (_cpp_compare_file_date): Don't choose the search chain here. - * cpplib.c (do_include_next): Move the in-main-file diagnostic - here from _cpp_execute_include. Behave like #include if - we're in the main file. - -2001-03-13 Kaveh R. Ghazi - - * system.h (malloc, realloc, calloc, strdup): Only poison these - tokens when IN_GCC is defined. - -Tue Mar 13 14:38:44 CET 2001 Jan Hubicka - - * i386.md (abs?f expander): Support SSE case. - (abd?f_if): Add new "USE"; add splitters. - -2001-03-13 Kaveh R. Ghazi - - * cpp.texi (poison): Explain the macro expansion exception. - -2001-03-13 Jakub Jelinek - - * expr.c (store_expr): Add dont_store_target. If temp is already in - target before copying to reg, don't store it into target again. - -2001-03-12 Neil Booth - - * cppinternals.texi: Update for file handling. - -2001-03-12 Jeffrey Oldham - - * emit-rtl.c (remove_unnecessary_notes): Reverse Richard Kenner's - 2001-02-24 which broke building the Java library. - * function.c (identify_blocks): Likewise. - (all_blocks): Likewise. - * integrate.c (integrate_decl_tree): Likewise. - * print-tree.c (print_node): Likewise. - * tree.h (BLOCK_NUMBER): Likewise. - (struct tree_block): Likewise. - -2001-03-12 David Edelsohn - - * rs6000/aix51.h (CPP_SPEC, CPLUSPLUS_CPP_SPEC): Fix typo in - __WCHAR_TYPE__ definition. - (WCHAR_TYPE_SIZE): #undef before #define. - -2001-03-12 Neil Booth - - * cppfiles.c: Update comments. - (destroy_include_file_node): Rename destroy_node. - (find_or_create_entry): New function. - (open_file, _cpp_fake_include): Use it. - (handle_missing_header): New function, broken out of - _cpp_execute include. Don't segfault if there is no - system or quoted path. - (_cpp_execute_include): Use handle_missing_header. - -2001-03-12 Jeffrey Oldham - - * jump.c (reversed_comparison_code_parts): Reverse Jan Hubricka's - 2001-02-28 patch because it breaks arm-linux and mips-sgi-irix6.5. - -Mon Mar 12 14:05:32 2001 Richard Kenner - - * flow.c (insn_dead_p): Don't consider two memrefs equivalent - unless anti_dependence says they are. - * alias.c (objects_must_conflict): If neither has a type specified, - they must conflict. - -2001-03-12 Neil Booth - David Billinghurst - - * config/mips/iris5.h: Change WCHAR_TYPE to int. - -Mon Mar 12 16:32:21 CET 2001 Jan Hubicka - - * i386.md (trunctfdf2_2): Rename missnamed pattern. - (*_one_bit): Remove type on the match_operand in attributes. - -Mon Mar 12 16:27:56 CET 2001 Jan Hubicka - - * i386.c: Commit forgotten hunk in previous patch. - (regclass_map): Add extended registers. - (dbx_register_map): Add missing frame register. - -Mon Mar 12 15:41:08 CET 2001 Jan Hubicka - - * i386.md (all XFmode patterns except swapxf): Disable for 64bit. - - * i386.md (x86_sahf_1): Disable for 64bit. - (popsi*, pophi*): Likewise. - (pushqi, pushhi): Likewise. - (movdi, pushdi): Likewise. - (zero extend DImode splitter): Likewise. - (adddi, minusdi splitter): Likewise. - (umulsidi): Likewise. - (umulsi): New. - (mulsidi): Disable for 64bit - (lshift:DI/ashift:DI): Disable for 64bit. - (loop patterns): Likewise. - (call_pop, call_value_pop expanders and patterns): Likewise. - (prologue_get_pc): Likewise. - (leave): Likewise. - (fcmovDI pattern and splitter): Likewise. - (movdfcc_1_rex64): New. - -Mon Mar 12 15:16:36 CET 2001 Jan Hubicka - - * i386.h (VALID_FP_MODE_P): XFmode is invalid on x86_64. - (MODES_TIEABLE_P): QImodes and DImodes are tiable on x86_64. - (HARD_REGNO_CALLER_SAVE_MODE): Save QImodes as QImodes for x86_64. - (STATIC_CHAIN_REGNUM): Set to r10 for x86_64. - (PIC_OFFSET_TABLE_REGNUM): Set to INVALID_REGNUM for x86_64. - (LIMIT_RELOAD_CLASS): Avoid limiting of QImodes on x86_64. - (SECONDARY_OUTPUT_RELOAD_CLASS): No need to QImodes. - (PUSH_ROUNDING): x86_64 rounds to 64bits. - (CONSTANT_ADDRESS_P): Accept CONST_DOUBLE. - (REGPARM_MAX): Set to 6 for x86_64. - (SSE_REGPARM_MAX): Set to 16 for x86_64. - * i386.c (hard_regno_mode_ok): QImodes can be in all general purpose - registers. - - * (patterns that does use upper halves): Update constraints - 'q' to 'Q' and 'r' to 'R'. - (cmpqi_ext_1): Disable for 64bit. - (cmpqi_ext_3_insn): Likewise. - (movqi_extzv_1): Likewsie. - (addqi_ext_1): Liekwsie - (testqi_ext_1): Liekwsie - (andqi_ext_1): Liekwsie - (xorqi_ext_1): Liekwsie - (cmpqi_ext_1_rex64): New. - (cmpqi_ext_3_insn_rex64): Likewise. - (movqi_extzv_1_rex64): Likewsie. - (addqi_ext_1_rex64): Liekwsie - (testqi_ext_1_rex64): Liekwsie - (andqi_ext_1_rex64): Liekwsie - (xorqi_ext_1_rex64): Liekwsie - -2001-03-11 Zack Weinberg - - * configure.in: Move check for unsigned enumerated bitfields - to macro in aclocal.m4. Disable it for now. - * configure, config.in: Regenerate. - * system.h: Don't do anything with ONLY_INT_FIELDS. Use the - unsigned-int form of ENUM_BITFIELD() unless being compiled by GCC. - * varasm.c (struct rtx_const): Use ENUM_BITFIELD(). Move enum - kind above its first use. - - * config/xm-interix.h, config/alpha/xm-alpha.h, - config/i370/xm-linux.h, config/i386/xm-beos.h, - config/i386/xm-mingw32.h, config/mips/xm-mips.h, - config/pa/xm-pa.h, config/pa/xm-pa64hpux.h, - config/rs6000/xm-beos.h, config/rs6000/xm-sysv4.h, - Don't define ONLY_INT_FIELDS under any circumstances. - - * config/pa/xm-pa.h: Don't define __BSD_NET2__. - - * config/pa/xm-pahpux.h, config/pa/xm-papro.h, - config/sparc/xm-sysv4.h: Delete - now identical with some - other xm header. - * config.gcc (hppa targets): Replace xm-pahpux.h and - xm-papro.h with implicit xm-pa.h. - (sparc targets): Replace xm-sysv4.h with implicit or explicit - xm-sparc.h. - -2001-03-12 Aldy Hernandez - - * reload1.c (reload_cse_simplify): Call reload_cse_simplify_set - before reload_cse_noop_set_p. - -2001-03-11 Zack Weinberg - - * config.gcc: Where xm-host.h used to include another - xm-host.h, list the nested header directly in xm_file. Remove - references to deleted files. Can now use sparc/xm-sp64.h for - sparcv9-*-solaris*. - - * config/xm-linux.h, config/arm/xm-linux.h, - config/i386/xm-dos.h, config/i386/xm-gnu.h, - config/i386/xm-linux.h, config/i386/xm-openbsd.h, - config/i860/xm-fx2800.h, config/m68k/xm-atari.h, - config/m68k/xm-linux.h, config/m68k/xm-sun3.h, - config/sparc/xm-linux.h, config/sparc/xm-sysv4-64.h: - Delete. - - * config/alpha/xm-alpha-interix.h: Don't include alpha/xm-alpha.h. - * config/mips/xm-iris5.h: Don't include mips/xm-mips.h. Don't - bother to wrap #undef in #ifdef. - * config/pa/xm-linux.h, config/rs6000/xm-sysv4.h: - Don't include xm-linux.h. - * config/sparc/xm-sp64.h: Don't include sparc/xm-sparc.h. - - * configure.in: Wrap regexps using [] in changequote block. - Use expr : not echo | grep. Simplify regexps. - * configure: Regenerate. - - 56 xm-files remain, 22 xm-arch. - -2001-03-11 Kaveh R. Ghazi - - * mips-tfile.c: Cast arg to PTR when specifier is HOST_PTR_PRINTF. - (__proto, PTR_T, CPTR_T): Delete, use PARAMS/PTR instead. - (local_index, local_rindex): Delete, use strchr/strrchr instead. - (copy_object): Fix format specifier vs argument mismatch. - - * mips-tdump.c: Make local functions static. - (rindex): Don't #undef. - (__proto, PTR_T, CPTR_T): Delete, use PARAMS/PTR instead. - (fatal, fancy_abort): Delete. - (read_seek): Avoid signed/unsigned compare. - -Sun Mar 11 17:01:41 2001 Richard Kenner - - * combine.c (try_combine): Fix error in change to try original - register. - (gen_rtx_combine): Do same as gen_rtx for now. - -2001-03-11 Zack Weinberg - - * configure.in: AC_SUBST xm_defines. - * configure: Regenerate. - * Makefile.in: Set DEFINES=$(xm_defines) when building - tconfig.h. - -2001-03-11 Neil Booth - - * cppfiles.c (INCLUDE_LEN_FUDGE, ENOMEM): Delete. - (cpp_included, find_include_file): Update. - (_cpp_compare_file_date): Make else unconditional. - -2001-03-10 kaz Kojima - - * config/sh/sh.h (LEGITIMATE_PIC_OPERAND_P): Defined. - -2001-03-10 Toshiyasu Morita - - * config/sh/sh.md (umulhisi3_i, mulhisi3_i): Fix mnemonics. - * config/sh/lib1funcs.asm (mulsi3): Convert mulu to mulu.w. - -Sat Mar 10 22:42:05 2001 Alexandre Oliva - - * tree.c (build_common_tree_nodes_2): Don't copy va_list_type_node - if it's a record type. - -Sat Mar 10 17:52:54 2001 Christopher Faylor - - * config/i386/cygwin.h: Make ../w32api a system directory. Reorganize - mingw includes slightly. - -2001-03-10 Kaveh R. Ghazi - - * system.h (malloc, realloc, calloc, strdup, bzero, bcmp, rindex): - #undef token before poisoning it. - -2001-03-10 Kaveh R. Ghazi - - * alpha.c (check_float_value): Use memcpy, not bcopy. - - * m32r.c (m32r_sched_reorder): Likewise. - - * vax.c (check_float_value): Likewise. - -2001-03-10 Neil Booth - - * toplev.c (file_name_nondirectory): Remove. - * toplev.h: Similarly. - * dwarf2out.c (compute_section_prefix): Use lbasename instead - of file_name_nondirectory. - -Sat Mar 10 10:36:45 2001 Richard Kenner - - * mips-tdump.c (read_seek): Call xmalloc, not malloc. - * mips-tfile.c: Don't #undef rindex; not used. - -Sat Mar 10 14:34:59 CET 2001 Jan Hubicka - - * i386.h (DBX_REGISTER_NUMBER): Return proper values for 64bits. - (dbx64_register_map): Declare. - (RETURN_ADDR_RTX): Fix for 64bit. - (DWARF_FRAME_RETURN_COLUMN): Set to 16 for 64bit. - (INCOMING_FRAME_SP_OFFSET): Set to 8. - * i386.c (dbx64_register_map): New global array. - * beos-elf.h, freebsd.h, i386-interix.h, i386elf.h, - linux.h (DBX_REGISTER_REGNUMBER): Use dbx64_register_map - for 64bits. - -2001-03-10 Neil Booth - - * cppfiles.c (search_from): Use lbasename. - * mkdeps.c (deps_add_default_target): Use lbasename. - -2001-03-09 Kaveh R. Ghazi - - * fixinc/server.c (load_data, run_shell): Use xmalloc, xrealloc & - xcalloc in lieu of malloc, realloc & calloc. - - * gencheck.c (xmalloc): Use really_call_malloc, not malloc. - - * gengenrtl.c (xmalloc): Likewise. - - * gensupport.c (xcalloc, xrealloc, xmalloc): Use the - really_call_* memory allocation routines. - - * stmt.c (check_for_full_enumeration_handling): Use - really_call_calloc, not calloc. - - * system.h (really_call_malloc, really_call_calloc, - really_call_realloc): Define. - (malloc, realloc, calloc, strdup, bzero, bcmp, rindex): Poison. - -Fri Mar 9 18:39:19 2001 Jeffrey A Law (law@cygnus.com) - - * pa.md (builtin_longjmp): Rework slightly to work for PA64 too. - -2001-03-09 Nicola Pero - - * configure: Rebuilt. - * configure.in: Only use `lang_requires' for languages athat are - actually enabled. - -2001-03-09 Joseph S. Myers - - * invoke.texi: Fix typo. - * gcc.1: Regenerate. - -2001-03-09 Zack Weinberg - - * configure.in: Prune nonexistent files from build_xm_file, - xm_file, and host_xm_file lists. Warn unless they're - $cpu/xm-$cpu.h. - Don't generate *config.h here. - AC_SUBST all variables needed to generate *config.h. - * configure: Regenerate. - * mkconfig.sh: New helper script, from code removed from - configure.in. - * Makefile.in: Zap all MALLOC variables - no longer used - anywhere, and malloc.c doesn't exist. - Substitute in variables needed to generate *config.h. - Stop lying about the dependencies contained in CONFIG_H and - GCONFIG_H. - (HCONFIG_H, TCONFIG_H, TM_P_H): New variables. - (config.h, hconfig.h, tconfig.h, tm_p.h, cs-config.h, - cs-hconfig.h, cs-tconfig.h, cs-tm_p.h): New rules. - (all .o): Add dependencies on $(HCONFIG_H), $(TCONFIG_H), - $(TM_P_H), etc. as appropriate. - - * config.gcc: Zap references to deleted files. - * ggc-none.c: Don't include rtl.h or tm_p.h. - - * config/i386/xm-beos.h, config/i386/xm-dgux.h, - config/i386/xm-djgpp.h, config/i386/xm-dos.h, - config/i386/xm-gnu.h, config/i386/xm-i386-interix.h, - config/i386/xm-linux.h, config/i386/xm-linux.h, - config/i386/xm-next.h, config/i386/xm-openbsd.h, - config/i386/xm-sun.h, config/i386/xm-sysv3.h: - Don't include i386/xm-i386.h. - - * config/elxsi/xm-elxsi.h, config/i386/xm-bsd386.h, - config/i386/xm-i386.h, config/i860/xm-i860.h, - config/i960/xm-i960.h, config/mcore/xm-mcore.h, - config/mn10300/xm-mn10300.h, config/ns32k/xm-ns32k.h, - config/pj/xm-pj.h, config/sh/xm-sh.h, config/v850/xm-v850.h: - Delete (empty except comments, #includes of other deleted - files, and macros used nowhere). - -Fri Mar 9 20:05:27 CET 2001 Jan Hubicka - - * i386.h (MAX_WCHAR_TYPE_SIZE): New constant to keep tradcpp - independent on TARGET_FLAGS. - -Fri Mar 9 19:52:52 CET 2001 Jan Hubicka - - * i386.h (FIRST_PSEUDO_REGISTER): Set to 53. - - (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ONES): Add - extended ones. - (CONDITIONAL_REGISTER_USAGE): Set proper values according to - TARGET_64BIT. - (FIRST_REX_INT_REG, LAST_REX_INT_REG, FIRST_REX_SSE_REG, - LAST_REX_SSE_REG): define. - (enum reg_class): Add 'LEGACY_REGS' - (REG_CLASS_CONTENTS): Likewise; add extended registers. - (SSE_REGNO_P): Recognize extended registers. - (ANY_QI_REG_P, REX_INT_REGNO_P, REX_INT_REG_P): New. - (REG_CLASS_FROM_LETTER): Add 'R' and 'Q'. - (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P, - REG_OK_FOR_BASE_NONSTRICT_P): Recognize REX registers. - (REG_OK_FOR_STRREG_NONSTRICT_P, REG_OK_FOR_STRREG_STRICT_P, - REG_OK_FOR_STRREG_P): Remove. - (HI_REGISTER_NAMES): Add extended registers. - (ADDITIONAL_REGISTER_NAMES): Likewise. - (QI_REGISTER_NAMES): Add 8bit extended registers. - (DEBUG_REG): Support extended registers. - * i386.c (regclass_map): Add extended registers. - (dbx_register-map): Likewise. - (svr4_dbx_register_map): Likewise. - (print_reg): Support extended registers. - (print_operand): Support 64bit operands. - -Fri Mar 9 19:37:46 CET 2001 Jan Hubicka - - * i386.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Set to 128bit for x86_64 - (BOOL_TYPE_SIZE, SHORT_TYPE_SIZE, INT_TYPE_SIZE, - FLOAT_TYPE_SIZE, LONG_TYPE_SIZE, MAX_LONG_TYPE_SIZE, - DOUBLE_TYPE_SIZE, LONG_LONG_TYPE_SIZE): New constants. - (BITS_PER_WORD, UNITS_PER_WORD, POINTER_SIZE, PARM_BOUNDARY, - STACK_BOUNDARY): Set properly for 64bits. - (MAX_BITS_PER_WORD, MIN_UNITS_PER_WORD): New constants. - (EMPTY_FIELD_BOUNDARY): Define using BITS_PER_WORD. - (BIGGEST_FIELD_ALIGNMENT): Set to 128 for 64bits. - (MOVE_MAX): Set to 16. - (MOVE_MAX_PIECES): 8 for 64bit. - (Pmode): Set to SImode. - -Fri Mar 9 09:00:36 2001 Mike Stump - - * cselib.c (hash_rtx): Ensure that hash isn't zero upon return. - -Fri Mar 9 17:38:08 CET 2001 Jan Hubicka - - * i386.h (mask_64bit): New constant. - (target_64bit): New macro. - (target_options): Add '64'/'32' - (target_default): Define. - * cygwin.h freebsd-aout.h i386-interix.h i386.h i386elf.h isc.h - isccoff.h netbsd.h next.h openbsd.h p sco.h sco5.h scodbx.h sequent.h - unix.h win32.h (TARGET_DEFAULT): Rename to TARGET_SUBTARGET_DEFAULT. - -Thu Mar 8 23:36:56 2001 Jeffrey A Law (law@cygnus.com) - - * config/pa/som.h (MAKE_DECL_ONE_ONLY, ASM_WEAKEN_LABEL): Disable. - -Thu Mar 8 23:29:37 2001 John Wehle (john@feith.com) - - * rtlanal.c (rtx_varies_p): Check operand 0 of a - LO_SUM unless for_alias is set. - -2001-03-08 Stan Shebs - - * objc/objc-act.c: Fix old typos in comments, add comments for - various functions. - (hash_init): Fix file name in error message. - (hash_enter): Ditto. - (hash_add_attr): Ditto. - (continue_class): Ditto. - -2001-03-08 Bruce Korb - - gcc.c(main): ensure SIGCHLD handling is set to SIG_DFL so that - wait4() can receive the signal. - -Thu Mar 8 21:09:10 2001 Rainer Orth - - * fixinc/inclhack.def (AAB_dgux_int_varargs): Don't use HTML - entities. - * fixinc/fixincl.x: Regenerate. - -Thu Mar 8 21:09:10 2001 Rainer Orth - - * fixinc/inclhack.def (AAA_standards): Undo breakage - on Tru64 UNIX. - * fixinc/fixincl.x: Regenerate. - -2001-03-08 Richard Henderson - - * configure.in (HAVE_AS_LEB128): New assembler check. - * configure, config.in: Rebuilt. - -Thu Mar 8 19:54:04 CET 2001 Jan Hubicka - - * reg-stack.c (move_for_stack_reg): Avoid non-poping fst for - TFmode too. - -2001-03-08 Kaveh R. Ghazi - - * config/ns32k/xm-pc532-min.h, config/we32k/xm-we32k.h: Delete - references to the MAXPATHLEN macro. - - * config/alpha/xm-alpha.h, config/arm/xm-arm.h, - config/i386/xm-cygwin.h, config/xm-linux.h: Delete references to - the POSIX macro. - - * config/i386/xm-gnu.h, config/xm-gnu.h, - config/alpha/xm-openbsd.h, config/i386/xm-openbsd.h, - config/m68k/xm-openbsd.h, config/mips/xm-openbsd.h, - config/sparc/xm-openbsd.h, config/xm-openbsd.h: Delete empty - and/or unused files. - - * config.gcc: Define POSIX in xm_defines as appropriate in lieu of - doing so in various xm-*.h files. - -Thu Mar 8 06:32:50 2001 Richard Kenner - - * config/i386/i386.md (clrstrsi): Call ix86_set_move_mem_attrs. - -2001-03-08 Alexandre Oliva - - * configure.in (enable_shared): Support per-package shared-library - enabling. - * configure: Rebuilt. - -2001-03-07 David Edelsohn - - * rs6000.md (cr logic): Add original POWER mnemonic alternative - for crnot. Set operands[5] in splitter. - -2001-03-07 Kaveh R. Ghazi - - * config/i370/xm-mvs.h, config/i370/xm-oe.h, - config/i386/xm-beos.h, config/i386/xm-mingw32.h, - config/m88k/xm-m88k.h, config/mips/xm-iris6.h, - config/mips/xm-openbsd.h, config/pa/xm-pa64hpux.h, - config/pa/xm-pahpux.h, config/rs6000/xm-beos.h, - config/rs6000/xm-darwin.h, config/rs6000/xm-mach.h, - config/rs6000/xm-rs6000.h, config/xm-interix.h: Delete references - to the USG macro. - - * config/vax/xm-vaxv.h, config/a29k/xm-unix.h, - config/i370/xm-i370.h, config/i386/xm-dgux.h, - config/i386/xm-sun.h, config/i386/xm-sysv3.h, - config/m68k/xm-tower.h, config/m68k/xm-aux.h, - config/m68k/xm-hp320.h, config/m68k/xm-amix.h, - config/m68k/xm-altos3068.h, config/m68k/xm-mot3300.h, - config/m68k/xm-m68kv.h, config/m88k/xm-openbsd.h, - config/mips/xm-nws3250v4.h, config/mips/xm-sysv.h, - config/mips/xm-iris3.h, config/mips/xm-iris4.h, config/xm-svr3.h, - config/xm-svr4.h, config/sparc/xm-pbd.h, config/clipper/xm-clix.h: - Delete unused and/or empty files. - - * config.gcc: Define USG in xm_defines as appropriate. Define - POSIX in lieu of xm-svr4.h. Delete all references to the SVR3 - macro. Remove deleted xm-* files from $xm_files variable. - -2001-03-07 Tom Tromey - - * configure: Rebuilt. - * configure.in: Allow config-lang.in to set `lang_requires' to list - of other required languages. - -2001-03-07 Andrew MacLeod - - * config/a29k/a29k.c (print_operand): Free a29k_last_prologue_insn - after its emitted. - (output_prologue): Use xmalloc not oballoc. - (output_epilog): Free a29k_first_epilogue_insn when finished. - * confif/a29k/a29k.h (PREDICATE_CODES): Remove shift_constant_operand. - -2001-03-07 Brad Lucier - - * builtins.c (expand_builtin_mathfn): Check - flag_unsafe_math_optimizations, not flag_fast_math. - (expand_builtin): Likewise - * combine.c (combine_simplify_rtx): Likewise. - (simplify_if_then_else): Likewise. - * cse.c (fold_rtx): Likewise. - * flags.h: Remove flag_fast_math. Add - flag_unsafe_math_optimizations and flag_trapping_math. - * fold-const.c (negate_expr): Check - flag_unsafe_math_optimizations, not flag_fast_math. - (invert_truthvalue): Likewise. - (fold): Likewise. Before associating operands, check that - code == MULT_EXPR, not code != MULT_EXPR. - * ifcvt.c (noce_try_minmax): Check - flag_unsafe_math_optimizations, not flag_fast_math. - (noce_operand_ok): Check flag_trapping_math, not flag_fast_math. - * invoke.texi: Document -funsafe-math-optimizations and - -fno-trapping-math. Change documentation for -ffast-math. - * jump.c (reversed_comparison_code_parts): Likewise. - (rtx_equal_for_thread_p): Likewise. - * optabs.c (emit_conditional_move): Likewise. - * simplify-rtx.c (simplify_binary_operation): Likewise. - (simplify_relational_operation): Likewise. - (simplify_ternary_operation): Likewise. - * toplev.c: Remove flag_fast_math. Add flag_trapping_math and - flag_unsafe_math_optimizations. Remove fast-math entry from f_options. - Add trapping-math and unsafe-math-optimizations entries to f_options. - (set_fast_math_flags): New, sets flags for -ffast-math. - (set_no_fast_math_flags): New, sets flags for -fno-fast-math. - (decode_f_option): Add code to handle -ffast-math and -fno-fast-math. - * toplev.h: Declare set_fast_math_flags and set_no_fast_math_flags. - - * config/alpha/alpha.c (alpha_emit_conditional_branch): Likewise. - (alpha_emit_conditional_move): Initialize local_fast_math to - flag_unsafe_math_optimizations, not flat_fast_math. - * config/c4x/c4x.c (c4x_override_options): Call set_fast_math_flags - instead of setting flag_fast_math to 1. - * config/convex/convex.md: Check flag_unsafe_math_optimizations, - not flag_fast_math. - * config/i386/i386.c (override_options): Likewise - * config/i386/i386.md: Likewise. - * config/m68k/m68k.md: Likewise. - * config/mips/mips.md: Likewise. - * config/rs6000/rs6000.c (validate_condition_mode): Likewise. - (rs6000_generate_compare): Likewise. - -2001-03-07 Laurynas Biveinis - - * Makefile.in: Set RANLIB to @RANLIB@. - Remove RANLIB_TEST. - -2001-03-07 Laurynas Biveinis - - * fixinc/inclhack.def (djgpp_wchar_h): New test. - * fixinc/fixincl.x: Regenerated. - -2001-03-07 Richard Henderson - - * config/alpha/alpha.md (call_osf_1_noreturn): New pattern. - -2001-03-07 Richard Henderson - - * emit-rtl.c (remove_unnecessary_notes): Verify proper nesting - of block notes and exception handling notes. - - * lists.c (init_EXPR_INSN_LIST_cache): Don't check initialized. - * toplev.c (rest_of_compilation): Call init_EXPR_INSN_LIST_cache ... - (compile_file): ... here. - -2001-03-06 Kaveh R. Ghazi - - * fixinc/Makefile.in (FIXINC_DEFS): Add -DHAVE_CONFIG_H. - - * fixinc/gnu-regex.c: Don't include auto-host.h since we get - config.h now. Include libiberty.h to handle alloca. - -2001-03-06 Zack Weinberg - - * c-parse.in (yylexname): New function, split out of _yylex. - (objc_rid_sans_at): New table. - (init_reswords): Initialize it. - (_yylex): Give labels clearer names. Handle CPP_ATSIGN by - retrieving the next token and checking it for significance as - an ObjC keyword or string constant. - - * cpplex.c (_cpp_lex_token): Just return CPP_ATSIGN for '@'. - * cpplib.h (TTYPE_TABLE): Add CPP_ATSIGN, drop CPP_OSTRING. - - * c-lex.c, c-parse.in, cppmacro.c, cpplex.c: Remove references - to CPP_OSTRING. - -2001-03-06 Stephen L Moshier - - * config/m68k/m68k.c (const_uint32_operand): Accept any - const_int on a 32-bit host. - -2001-03-06 Nicola Pero - - * objc/objc-act.c (init_objc): Set save_lang_status, - restore_lang_status, and mark_lang_status. - -2001-03-06 Krister Walfridsson - - * dwarf2asm.c (dw2_asm_output_delta): Fix smallest_mode_for_size call. - -2001-03-06 Neil Booth - - * cppinternals.texi: Update. - -2001-03-06 Kaveh R. Ghazi - - * config/a29k/xm-a29k.h, config/a29k/xm-unix.h, - config/alpha/xm-alpha.h, config/arc/xm-arc.h, config/arm/xm-arm.h, - config/c4x/xm-c4x.h, config/clipper/xm-clix.h, - config/convex/xm-convex.h, config/d30v/xm-d30v.h, - config/dsp16xx/xm-dsp16xx.h, config/elxsi/xm-elxsi.h, - config/h8300/xm-h8300.h, config/i370/xm-i370.h, - config/i370/xm-linux.h, config/i370/xm-mvs.h, config/i370/xm-oe.h, - config/i386/xm-i386.h, config/i860/xm-i860.h, - config/i960/xm-i960.h, config/ia64/xm-ia64.h, - config/m32r/xm-m32r.h, config/m68k/xm-m68k.h, - config/m88k/xm-m88k.h, config/mcore/xm-mcore.h, - config/mips/xm-mips.h, config/mn10200/xm-mn10200.h, - config/mn10300/xm-mn10300.h, config/ns32k/xm-ns32k.h, - config/pa/xm-linux.h, config/pa/xm-pa.h, config/pa/xm-pa64hpux.h, - config/pa/xm-pahpux.h, config/pa/xm-papro.h, config/pj/xm-pj.h, - config/romp/xm-romp.h, config/rs6000/xm-beos.h, - config/rs6000/xm-lynx.h, config/rs6000/xm-rs6000.h, - config/rs6000/xm-sysv4.h, config/sh/xm-sh.h, - config/sparc/xm-sparc.h, config/sparc/xm-sysv4.h, - config/v850/xm-v850.h, config/vax/xm-vax.h, config/vax/xm-vms.h, - config/we32k/xm-we32k.h: Delete HOST_BITS_PER_* definitions which - match the defaults provided in hwint.h. - - * config/i386/xm-lynx.h, config/m68k/xm-lynx.h, - config/sparc/xm-lynx.h, config/xm-std32.h: Delete files. - - * config.gcc (xm_file): Don't set to files which are deleted. - - * hwint.h: Provide default values for HOST_BITS_PER_*. No longer - guard this file against these macros being undefined. - -2001-03-06 Zack Weinberg - - * objc/objc-act.c (objc_add_static_instance): Set DECL_INITIAL - and DECL_DEFER_OUTPUT on the decl we create, before calling - rest_of_decl_compilation. - -2001-03-06 Zack Weinberg - - * aclocal.m4 (AM_GNU_GETTEXT): Don't AC_REQUIRE - AC_FUNC_ALLOCA. - * configure, config.in: Regenerate. - * config.gcc: Remove references to deleted files. - - * genattr.c, genattrtab.c, genextract.c, genoutput.c, - genrecog.c, rtl.c: Do not use alloca anywhere. - - * Makefile.in, build-make, system.h, config/x-interix, - config/x-svr4, config/xm-interix.h, config/xm-openbsd.h, - config/alpha/xm-alpha.h, config/alpha/xm-vms.h, - config/arc/xm-arc.h, config/arm/xm-arm.h, - config/d30v/xm-d30v.h, config/dsp16xx/xm-dsp16xx.h, - config/h8300/xm-h8300.h, config/i370/x-oe, - config/i370/xm-linux.h, config/i386/x-aix, config/i386/x-beos, - config/i386/x-ncr3000, config/i386/x-sco5, - config/i386/xm-dgux.h, config/i860/x-sysv4, - config/i960/xm-i960.h, config/m32r/xm-m32r.h, - config/m68k/x-crds, config/m68k/x-dpx2, config/m68k/x-hp320, - config/m68k/x-hp320g, config/m69k/x-mot3300, - config/m68k/x-mot3300-gas, config/m68k/xm-amix.h, - config/m68k/xm-hp320.h, config/m68k/xm-m68kv.h, - config/m68k/xm-mot3300.h, config/m88k/x-dolph, - config/m88k/x-sysv4, config/m88k/x-tekXD88, - config/m88k/xm-m88k.h, config/mcore/xm-mcore.h, - config/mips/x-iris, config/mips/x-iris3, - config/mips/x-sni-svr4, config/mips/x-sysv, - config/mips/xm-iris6.h, config/mips/xm-mips.h, - config/mips/xm-nws3250v4.h, config/pa/x-hpux, - config/pa/x-pa-mpeix, config/pa/xm-pa.h, - config/pa/xm-pa64hpux.h, config/pa/xm-pahpux.h, - config/pa/xm-papro.h, config/romp/xm-romp.h, - config/rs6000/x-aix31, config/rs6000/x-aix41, - config/rs6000/x-beos, config/rs6000/x-lynx, - config/rs6000/x-mach, config/rs6000/x-rs6000, - config/rs6000/x-sysv4, config/rs6000/xm-rs6000.h, - config/rs6000/xm-sysv4.h, config/sh/xm-sh.h, - config/sparc/x-sysv4, config/sparc/xm-linux.h, - config/sparc/xm-pbd.h, config/sparc/xm-sparc.h, - config/vax/xm-vms.h: Eradicate all references to alloca and - related stuff. - - * config/xm-alloca.h, config/clipper/x-clix, - config/i386/xm-sysv4.h, config/i860/x-fx2800, - config/i860/x-sysv3, config/m88k/x-sysv3, - config/sparc/xm-sol2.h, config/we32k/x-we32k: Delete - (contained only alloca related hacks). - - * config/i386/xm-beos.h, config/rs6000/xm-beos.h: Just define - USE_C_ALLOCA. - -2001-03-05 Brad Lucier - - * invoke.texi: Document __FAST_MATH__. - -2001-03-05 Kaveh R. Ghazi - - * crtstuff.c: Restore include of auto-host.h. - -2001-03-05 Fergus Henderson - - Put main() in a separate file, so that the language - front-end can use a different main(). - - * main.c: New. - * toplev.c: (main): Rename as toplev_main. - * toplev.h: Declare toplev_main. - * Makefile.in (OBJS): add toplev.o. - (BACKEND): remove toplev.o, add main.o. - -2001-03-04 Neil Booth - - * cppfiles.c (search_from): Special case the empty string. - -2001-03-04 Neil Booth - - * cppfiles.c (_cpp_execute_include): Don't make a null-terminated - copy of the filename. Don't use CPP_PREV_BUFFER. Don't call - strlen or strcpy; we already know the length. - (_cpp_compare_file_date): Similarly. - * cpphash.h (struct cpp_reader): Delete done_initialising. - (CPP_PREV_BUFFER): Delete. - * cppinit.c (cpp_start_read): Don't set done_initialising. - * cpplex.c (parse_string): Guarantee null-termination. - (_cpp_equiv_toklists): Remove. - * cpplib.c (glue_header_name): Null-terminate. - (do_line): Don't leak memory. - * cpplib.h (BT_WEAK): Delete. - * cppmain.c (cb_ident): Strings are now null-terminated. - -2001-03-04 Laurynas Biveinis - - * gcc.c (convert_filename): Append executable suffix - if NO_AUTO_EXE_SUFFIX is not defined. - * gcc.texi: Document NO_AUTO_EXE_SUFFIX. - * config/i386/djgpp.h: Define NO_AUTO_EXE_SUFFIX. - -2001-03-03 David O'Brien - - from 2000-09-06 Zack Weinberg - * c-parse.gperf, c-gperf.h: Delete. - (c-gperf.h was accidently re-added to the CVS repo in the rev - 1.16 commit by tromey) - -2001-03-03 Neil Booth - - * cpplex.c (_cpp_lex_token): Don't warn about directives in - macro arguments when looking for the '('. - * cppmacro.c (funlike_invocation_p): Set parsing_args to - 2 when really parsing arguments; 1 when looking for '('. - Always restore the lexer position. - -2001-03-03 Neil Booth - - * longlong.h (umul_ppmm): Don't use a multiline string. - -2001-03-03 John David Anglin - - * fixinc/fixlib.h (t_bool): Add identifier `t_bool' in typedef. - * fixinc/server.c (read_pipe_timeout): Use enum t_bool instead of - t_bool in declaration because pcc can't combine volatile with typedef - types. - -Sat Mar 3 19:47:13 CET 2001 Jan Hubicka - - * i386.c (ix86_expand_fp_compare): Delay creating of scratch register - until when it is really needed. - (ix86_expand_compare): Update call of ix86_expand_fp_compare. - * i386.h (PREDICATE_CODES): Add all codes for sse_comparison_operator - * i386.md (float?i?f splitter): Don't force source operand to memory - for SSE. - (sse_movdfcc): Fix constraint. - (sse_movdfcc splitter): Handle properly the second alternative. - -2001-03-03 Neil Booth - - * cpplex.c (parse_string): Unconditionally pedwarn. - -2001-03-03 Neil Booth - - * cpp.texi: Update. - * cppexp.c (parse_number): Update. - * cpplex.c (parse_string): Pedwarn if multiline string does not - result from a system header's macro. - * cpplib.h (sys_objmacro_p): Rename sys_macro_p. - * cppmacro.c (sys_objmacro_p): Rename sys_macro_p. Return true - for function-like macros too. - * c-lex.c (lex_number): Update. - -2001-03-03 Richard Henderson - - * dwarf2out.c (output_call_frame_info): Fix augmentation length. - -Sat Mar 3 04:17:17 2001 J"orn Rennecke - - * combine.c (try_combine): If split with mode-changed scratch - register didn't work, try the original mode. - -Sat Mar 3 03:46:47 2001 J"orn Rennecke - - * tm.texi: Change STRUCT_FORCE_BLK to MEMBER_TYPE_FORCES_BLK. - * config/c4x/c4x.h: Likewise. - * stor-layout.c (compute_record_mode): Likewise. - (layout_type, case ARRAY_TYPE): Use MEMBER_TYPE_FORCES_BLK. - -2001-03-02 Zack Weinberg - - * configure.in: Kill tm.h. Include the files in the $tm_file - list in all three of config.h, hconfig.h, tconfig.h, after the - relevant set of xm_files. Put TARGET_CPU_DEFAULT in all - three, include insn-codes.h in all three (#ifndef GENERATOR_FILE). - * configure: Regenerate. - * Makefile.in (clean): Don't delete tm.h. - - * system.h: If SUCCESS_EXIT_CODE and FATAL_EXIT_CODE are not - defined, set them from EXIT_SUCCESS and EXIT_FAILURE. If - those are not defined, set SEC and FEC to 0 and 1. - * gcc.texi: Update to match. - - * crtstuff.c: Include tconfig.h, not auto-host.h and tm.h. - * config/fp-bit.c, config/m68k/aux-crt2.asm, - config/m68k/aux-crtn.asm, config/m68k/aux-mcount.c: - Include tconfig.h, not tm.h. - - * config/xm-lynx.h, config/xm-std32.h, - config/a29k/xm-a29k.h, config/a29k/xm-unix.h, - config/alpha/xm-alpha.h, config/arc/xm-arc.h, - config/avr/xm-avr.h, config/c4x/xm-c4x.h, - config/clipper/xm-clix.h, config/convex/xm-convex.h, - config/d30v/xm-d30v.h, config/dsp16xx/xm-dsp16xx.h, - config/elxsi/xm-elxsi.h, config/fr30/xm-fr30.h, - config/h8300/xm-h8300.h, config/i370/xm-linux.h, - config/i386/xm-i386.h, config/i860/xm-i860.h, - config/i960/xm-i960.h, config/ia64/xm-ia64.h, - config/m32r/xm-m32r.h, config/m68hc11/xm-m68hc11.h, - config/m88k/xm-m88k.h, config/mcore/xm-mcore.h, - config/mips/xm-mips.h, config/mn10200/xm-mn10200.h, - config/mn10300/xm-mn10300.h, config/ns32k/xm-ns32k.h, - config/pa/xm-linux.h, config/pa/xm-pa.h, - config/pa/xm-pa64hpux.h, config/pa/xm-pahpux.h, - config/pa/xm-papro.h, config/pdp11/xm-pdp11.h, - config/pj/xm-pj.h, config/romp/xm-romp.h, - config/rs6000/xm-beos.h, config/rs6000/xm-rs6000.h, - config/rs6000/xm-sysv4.h, config/sh/xm-sh.h, - config/sparc/xm-sparc.h, config/sparc/xm-sysv4.h, - config/v850/xm-v850.h, config/vax/xm-vax.h, - config/we32k/xm-we32k.h: - Don't include tm.h. - Don't define SUCCESS_EXIT_CODE or FATAL_EXIT_CODE. - - * config/i370/xm-i370.h, config/i370/xm-mvs.h, - config/i370/xm-oe.h: Don't include tm.h. Don't define - SUCCESS_EXIT_CODE. - * config/vax/xm-vms.h: Don't include tm.h. - - * config/xm-lynx.h, config/avr/xm-avr.h, - config/fr30/xm-fr30.h, config/pdp11/xm-pdp11.h, - Delete; made empty by above changes. - * config/i386/xm-lynx.h, config/m68k/xm-lynx.h, - config/rs6000/xm-lynx.h, config/sparc/xm-lynx.h: - Don't include config/xm-lynx.h or tm.h. - - * config/xm-gnu.h: Don't include fcntl.h. - * config/sparc/xm-lynx.h: Don't include sys/types.h and - sys/wait.h. - * config/clipper/xm-clix.h, config/vax/xm-vax.h: Don't define isinf. - -2001-03-02 Richard Henderson - - * tm.texi (File Framework): Document UNALIGNED_SHORT_ASM_OP, - UNALIGNED_INT_ASM_OP, and UNALIGNED_DOUBLE_INT_ASM_OP. - -2001-03-02 Richard Henderson - - * Makefile.in (OBJS): Add dwarf2asm.o. - * dwarf2asm.c, dwarf2asm.h: New files. - * dwarf2out.c (*): Use them. - (size_of_uleb128, size_of_sleb128): Remove. - (output_uleb128, output_sleb128): Remove. - (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP): Remove. - (UNALIGNED_DOUBLE_INT_ASM_OP, ASM_BYTE_OP): Remove. - (UNALIGNED_OFFSET_ASM_OP, UNALIGNED_WORD_ASM_OP): Remove. - (FDE_LABEL, LINE_NUMBER_BEGIN_LABEL, LINE_NUMBER_END_LABEL): New. - (ASM_OUTPUT_DWARF_DATA1, ASM_OUTPUT_DWARF_DELTA1): Remove. - (ASM_OUTPUT_DWARF_DATA2, ASM_OUTPUT_DWARF_DELTA2): Remove. - (ASM_OUTPUT_DWARF_DATA4, ASM_OUTPUT_DWARF_DELTA4): Remove. - (ASM_OUTPUT_DWARF_DATA, ASM_OUTPUT_DWARF_DELTA): Remove. - (ASM_OUTPUT_DWARF_ADDR, ASM_OUTPUT_DWARF_ADDR_DATA): Remove. - (ASM_OUTPUT_DWARF_ADDR_DELTA, ASM_OUTPUT_DWARF_ADDR_CONST): Remove. - (ASM_OUTPUT_DWARF_OFFSET4, ASM_OUTPUT_DWARF_OFFSET): Remove. - (ASM_OUTPUT_DWARF_CONST_DOUBLE): Remove. - (ASM_OUTPUT_DWARF_NSTRING, ASM_OUTPUT_DWARF_STRING): Remove. - (dwarf2out_frame_debug): Remove unused variables. - (output_loc_operands): Don't abort on 8 byte constants if - host integers are wide enough. - (output_symbolic_ref): Remove. - (size_of_die): Don't assume 4 byte host integers. - (output_line_info): Use ASM_GENERATE_INTERNAL_LABEL for begin - and end labels. - (add_const_value_attribute) [CONST_INT]: Verify we're not doing - something stupid with HOST_WIDE_INT to long truncation. - [CONST_DOUBLE]: Likewise. - - * config/arm/conix-elf.h (UNALIGNED_WORD_ASM_OP): Remove. - (ASM_OUTPUT_DWARF2_ADDR_CONST, ASM_OUTPUT_DWARF_ADDR_CONST): Remove. - * config/arm/unknown-elf.h: Likewise. - * config/rs6000/aix.h (UNALIGNED_SHORT_ASM_OP): New. - (UNALIGNED_INT_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): New. - (ASM_OUTPUT_DWARF_ADDR_VAR, ASM_OUTPUT_DWARF_DELTA_VAR): Remove. - (ASM_OUTPUT_DWARF_DELTA2, ASM_OUTPUT_DWARF_DELTA4): Remove. - (ASM_OUTPUT_DWARF_DELTA, ASM_OUTPUT_DWARF_ADDR_DELTA): Remove. - (ASM_OUTPUT_DWARF_ADDR, ASM_OUTPUT_DWARF_DATA4): Remove. - (ASM_OUTPUT_DWARF_DATA2, ASM_OUTPUT_DWARF_OFFSET4): Remove. - (ASM_OUTPUT_DWARF_OFFSET): Remove. - * config/rs6000/sysv4.h (ASM_OUTPUT_DWARF_ADDR): Remove. - * config/sparc/sp64-elf.h (UNALIGNED_DOUBLE_INT_ASM_OP): New. - (UNALIGNED_LONGLONG_ASM_OP, ASM_OUTPUT_DWARF_ADDR): Remove. - (ASM_OUTPUT_DWARF_ADDR_CONST, ASM_OUTPUT_DWARF_REF): Remove. - -2001-03-02 John David Anglin - - * cselib.c (hash_rtx): Cast enums to unsigned int. - -2001-03-02 John David Anglin - - * print-rtl.c (print_rtx): Cast enums to int for comparison. - * c-decl.c (grokdeclarator): Cast enums to int for comparison and - shifts. - * c-format.c (C_STD_VER): Cast to int for comparisons. - (check_function_format): Cast various enums to int for &. - (maybe_read_dollar_number): Likewise. - (check_format_info): Likewise. - (check_format_info_main): Likewise. - * expr.c (emit_move_insn_1): Cast enums to unsigned int for comparison. - (safe_from_p): Likewise. - * varasm.c (const_hash): Cast enum to int for %. - * emit-rtl.c (init_emit_once): Use int loop variable to work around - pcc enum problems with < and ++ operators. - * regclass.c (init_reg_sets_1): Cast enums for comparison. - (choose_hard_reg_mode): Use unsigned int to iterate over CCmodes. - (regclass_init): Change enum class to int to iterate over reg_classes. - * genrecog.c (merge_trees): Cast enums for comparison. - * rtl.h (GET_CODE): Cast to enum rtx_code. - (PUT_CODE): Cast to ENUM_BITFIELD(rtx_code). - (GET_MODE): Cast to enum machine_mode. - (PUT_MODE): Cast to ENUM_BITFIELD(machine_mode). - (GET_NOTE_INSN_NAME): Cast enum to int. - * tree.h (TREE_CODE): Cast to enum tree_code. - (TREE_SET_CODE): Cast VALUE to ENUM_BITFIELD(tree_code). - * timevar.c (timevar_print): Change loop variable id from enum to - unsigned int. - * fixinc/fixincl.c (VLEVEL): Cast enums in comparison to unsigned int. - * config/i386/i386.md: Use PUT_MODE for mode assignment. - * toplev.c (compile_file): Cast enum DFI to int. - (decode_d_option): Likewise. - -Fri Mar 2 12:18:13 2001 Christopher Faylor - - * cppinit.c (append_include_chain): Mark "after" include file name list - as a system directory. - * cpp.texi: Document new behavior. - -Fri Mar 2 11:59:43 CET 2001 Jan Hubicka - - * ifcvt.c (noce_operand_ok): Handle properly unarry operations. - -2001-03-02 Neil Booth - - * cppfiles.c (struct include_file): Update. - (stack_include_file): Use search_from. - (cpp_included, find_include_file): Update. - (cpp_execute_include): Update. ptr->name may not be - null terminated. Use the new search_from member variable - of cpp_buffer. - (_cpp_compare_file_date): Similarly. - (search_from): New function, similar to actual_directory. - (actual_directory): Delete. - (remap_filename): Update. loc->name may not be null terminated. - (struct file_name_list): Rename search_path. Update. - * cpphash.h (struct cpp_buffer): Delete actual_dir. New members - search_from and dir. - (struct cpp_reader): Remove actual_dirs. - * cppinit.c (struct cpp_pending): Update for renamed objects. - (append_include_chain, remove_dup_dir, remove_dup_dirs, - merge_include_chains, cpp_destroy, cpp_start_read): Similarly. - * cpplib.h (struct cpp_options): Similarly. - -2001-03-01 Zack Weinberg - - * config/xm-lynx.h, config/xm-std32.h, config/a29k/xm-a29k.h, - config/a29k/xm-unix.h, config/alpha/xm-alpha.h, - config/arc/xm-arc.h, config/arm/xm-arm.h, config/c4x/xm-c4x.h, - config/clipper/xm-clix.h, config/convex/xm-convex.h, - config/d30v/xm-d30v.h, config/dsp16xx/xm-dsp16xx.h, - config/elxsi/xm-elxsi.h, config/fr30/xm-fr30.h, - config/h8300/xm-h8300.h, config/i370/xm-i370.h, - config/i370/xm-linux.h, config/i370/xm-mvs.h, - config/i370/xm-oe.h, config/i386/xm-aix.h, - config/i386/xm-i386.h, config/i386/xm-osf.h, - config/i860/xm-i860.h, config/i960/xm-i960.h, - config/ia64/xm-ia64.h, config/m32r/xm-m32r.h, - config/m68k/xm-m68k.h, config/m88k/xm-m88k.h, - config/mcore/xm-mcore.h, config/mips/xm-mips.h, - config/mn10200/xm-mn10200.h, config/mn10300/xm-mn10300.h, - config/ns32k/xm-ns32k.h, config/pa/xm-linux.h, - config/pa/xm-pa.h, config/pa/xm-pa64hpux.h, - config/pa/xm-pahpux.h, config/pa/xm-papro.h, - config/pj/xm-pj.h, config/romp/xm-romp.h, - config/rs6000/xm-beos.h, config/rs6000/xm-rs6000.h, - config/rs6000/xm-sysv4.h, config/sh/xm-sh.h, - config/sparc/xm-sparc.h, config/sparc/xm-sysv4.h, - config/v850/xm-v850.h, config/vax/xm-vax.h, - config/vax/xm-vms.h, config/we32k/xm-we32k.h: - Do not define TRUE or FALSE. - - * config/i386/xm-aix.h, config/i386/xm-osf.h: Delete; made - empty by above change. - * config.gcc: Remove references to these files. - - * configure.in: Detect stdbool.h. - * configure, config.in: Regenerate. - * system.h: Include stddef.h here if available. - Set HAVE__BOOL based on GCC_VERSION and __STDC_VERSION__. - Then set up a sensible boolean type at the very end. - - * combine.c, cse.c, expr.c, fold-const.c, gensupport.c, - config/mcore/mcore.c: Rename variables named 'true' and/or 'false'. - - * hash.h: Delete 'boolean' typedef and related #undefs. - - * function.c, ggc-common.c, hash.h, hash.c, tlink.c: Replace - all uses of 'boolean' with 'bool'. - -2001-03-01 John David Anglin - - * cpplib.c (_cpp_init_stacks): Cast enum for comparison. - * cppexp.c (lex): Cast enums for comparison. - * cppinit.c (parse_option): Cast enum for comparison. - * cpplex.c (cpp_spell_token): Cast enums to int for minus. - (cpp_output_token): Likewise. - (cpp_can_paste): Cast enums for comparsion and plus/minus. - (cpp_avoid_paste): Cast enums for minus and comparison. - -2001-03-01 Zack Weinberg - - * gcc.c, objc/lang-specs.h: Add zero initializer for cpp_spec - field to all array elements. - -2001-03-01 Zack Weinberg - - * cpphash.h (struct cpp_reader): Add print_version field. - * cppinit.c (cpp_handle_option): For -v, -version, and --version, - just set print_version and other flags as appropriate. - (cpp_post_options): Print version here if print_version is set. - - * toplev.c (exit_after_options): New flag. - (independent_decode_option): Don't exit here; just set - exit_after_options. - (main): Exit after calling lang_hooks.post_options if - exit_after_options is true. - - * cppinit.c (append_include_chain): Drop never-used case QUOTE. - (merge_include_chains): Adjust comment to match code. - -2001-03-01 Zack Weinberg - - * stringpool.c (set_identifier): New function. - * tree.h: Prototype it. - - * c-parse.in: Kill D_YES. If compiled for objc, call - save_and_forget_protocol_qualifiers from init_reswords. - * objc/objc-act.c (remember_protocol_qualifiers, - forget_protocol_qualifiers): Don't diddle C_IS_RESERVED_WORD. - Swap out the non-keyword IDENTIFIER_NODEs for keyword ones, or - vice versa. - (save_and_forget_protocol_qualifiers): New function. - * c-lex.h: Prototype save_and_forget_protocol_qualifiers. - -2001-03-01 Diego Novillo - - * c-semantics.c (prune_unused_decls): Return error_mark_node - instead of (tree) 1 to stop traversing the tree chain. - -2001-03-01 Bernd Schmidt - - Fix a problem introduced by Kenner's Feb 18 change. - * toplev.c (rest_of_compilation): Disable flag_cse_follow_jumps and - flag_cse_skip_blocks only temporarily, not for ever. - -Thu Mar 1 09:49:58 2001 Jeffrey A Law (law@cygnus.com) - - * config/pa/som.h (ASM_IDENTIFY_GCC): Define. - (ASM_IDENTIFY_GCC_AFTER_SOURCE): Likewise. - - * pa.c (emit_move_sequence): Verify operand0 is a hard register - before determining its register class. - -2001-03-01 Bernd Schmidt - - * config/ia64/ia64.c (ia64_hard_regno_rename_ok): Disallow renaming - from reg 4 if current_function_calls_setjmp. - (gen_nop_type): New function. - (ia64_emit_nops): New function. - (ia64_reorg): Call it. - (ia64_sched_reorder): Move code that rotates bundles up a bit. - - * reload1.c (eliminate_regs_in_insn): Restrict the special case - code not to try to optimize adds with anything but a REG destination. - - * sched-int.h (struct haifa_insn_data): Add new member priority_known. - (INSN_PRIORITY_KNOWN): New accessor macro. - * haifa-sched.c (priority): Use it instead of testing priority against - zero. - -2001-02-28 DJ Delorie - - * config/m68k/m68k.h (MOVE_BY_PIECES_P): Avoid pushing bytes, - since that doesn't work the way gcc wants on a generic m68k. - -2001-02-28 Richard Henderson - - * caller-save.c (save_call_clobbered_regs): Fix typo in - comparison last change. - -Wed Feb 28 19:31:42 CET 2001 Jan Hubicka - - * i386.c (pentium4_cost): New. - (m_PENT4): New macro. - (x86_push_memory, x86_movx,x86_cmove, x86_deep_branch, x86_use_sahf - x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8 - x86_integer_DFmode_moves, x86_partial_reg_dependency, - x86_memory_mismatch_stall): Add Pentium4 - (x86_use_q_reg, x86_use_any_reg): Kill. - (override_options): Add pentium4. - (incdec_operand): Return 0 for pentium4. - (ix86_issue_rate): Add PROCESSOR_PENTIUM4 and PROCESSOR_ATHLON. - * i386.h (x86_use_q_reg, x86_use_any_reg): Kill. - (TARGET_PENTIUM4): Define. - (enum processor_type): Add PROCESSOR_PENTIUM4. - (CPP_CPU_DEFAULT_SPEC): Add pentium4 support. - * i386.md (attribute "cpu"): Add pentium4. - * invoke.texi (march): Add pentium4. - -Wed Feb 28 19:28:06 CET 2001 Jan Hubicka - - * i386.md (sse_mov?fcc*): New patterns and splitters. - * i386.c (ix86_expand_movcc): Work post-reload; recognize - the SSE based conditional moves. - -Wed Feb 28 19:18:23 CET 2001 Jan Hubicka - - * i386.md (attribute mode): Add "TI". - (movsf_1): Add pxor support; remove constant propagation splitter. - (movdf_integer): Likewise. - (movdf_nointeger): Likewise. - (movxf constant prop splitter): Handle all modes; update for SSE. - * i386.h (CONST_DOUBLE_OK_FOR_LETTER): Add 'H' for SSE constants. - * i386.c (standard_80387_constant_p): Rewrite. - (standard_sse_constant_p): New. - * i386-protos.h (standard_sse_constant_p): New. - -Wed Feb 28 19:05:37 CET 2001 Jan Hubicka - - * i386.md (sse_setccsf, sse_setccdf): New. - (sse_cmp* patterns): Use '%D' instead of outputtting condition - flag directly. - * i386.c (sse_comparison_operator): Accept the supported unordered - comparses; be ready for fast_math. - (print_operand): Support 'D'. - -Wed Feb 28 18:54:51 CET 2001 Jan Hubicka - - * jump.c (reversed_comparison_code): Kill. - -Wed Feb 28 18:50:15 CET 2001 Jan Hubicka - - * toplev.c (rest_of_compilation): Do post-reload splitting unconditionally - for STACK_REGS - -Wed Feb 28 18:47:37 CET 2001 Jan Hubicka - - * i386.md (sse_andti3, sse_nandti_3, sse_xorti3): Add SSE2 versions; - add missing '%' in constraints. - -Wed Feb 28 17:24:24 CET 2001 Jan Hubicka - - * c-common.c (build_common_tree_nodes): Build intTI_type_nodes - for HOST_BITS_PER_WIDE_INT == 32 too. - -Wed Feb 28 17:22:35 CET 2001 Jan Hubicka - - * caller-save.c (reg_save_code, reg_restore_code): Index by mode, not - NREGS. - (insert_save, insert_restore): New parameter save_mode. - (init_caller_save): Update initialization of reg_save_code - and reg_restore_code. - (save_call_clobbered_regs): Compute save_modes and update calls to - reg_save_code and reg_restore_code. - (insert_restore): Unsignetize numbers; use save_modes to choose mode - of spill; update use of reg_restore_code. - (insert_save): Likewise. - * i386.h (HARD_REGNO_CALLER_SAVE_MODE): Update. - * c4x.h (HARD_REGNO_CALLER_SAVE_MODE): Update. - * regs.h (HARD_REGNO_CALLER_SAVE_MODE): Likewise. - -Wed Feb 28 17:19:28 CET 2001 Jan Hubicka - - * ifcvt.c (noce_emit_store_flag, noce_try_store_flag_constants, - noce_try_store_flag_inc, noce_try_store_flag_mask, - noce_try_cmove_arith): - Use reversed_comparison_code instead of reverse_comparison and - can_reverse_comparison_p. - -Wed Feb 28 17:17:29 CET 2001 Jan Hubicka - - * jump.c (reversed_comparison_code_parts): Allow reversal of - unordered compares in -ffast-math mode; reverse ordered compares - for FP even w/o -ffast-math. - -2001-02-27 Richard Henderson - - * print-rtl.c (print_rtx) [i]: Don't print field five on - NOTEs other than NOTE_INSN_DELETED_LABEL. - -2001-02-27 Zack Weinberg - - * mips/xm-iris4.h: Delete #if 0 block (there since before 1997). - * pa/xm-linux.h, pa/xm-pa.h, pa/xm-papro.h: Don't declare errno. - -2001-02-27 Diego Novillo - - * c-common.c (walk_stmt_tree): Visit the chain of the current tree - even if walk_subtrees is 0. - * c-semantics.c (prune_unused_decls): Return a non-null value to - stop traversing the tree chain. - -2001-02-27 DJ Delorie - - * config/m68k/m68k.c (output_function_prologue): Save the new CFA - register, *then* define it as the new CFA. - -Tue Feb 27 16:49:13 2001 Jeffrey A Law (law@cygnus.com) - - * pa.c (override_options): Promote -fpic to -fPIC. - (legitimize_pic_address): Simplify due to removal of - small PIC as a code generation option. - (secondary_reload_class): Similarly. - * pa.h (GO_IF_LEGITIMATE_ADDRESS): Similarly. - (PRINT_OPERAND_ADDRESS): Similarly. - * pa.md (various patterns): Similarly. - (small pic lo_sum pattern): Remove. - -Tue Feb 27 16:01:13 CET 2001 Jan Hubicka - Fergus Henderson - - * md.texi (min, max): Document - -Tue Feb 27 15:51:35 CET 2001 Jan Hubicka - - * i386.md (movsf, movdf): Use movaps for reg-reg moves if - TARGET_PARTIAL_REG_DEPENDENCY. - (truncdfsf2_1_sse, truncdfsf2_2): Penalize the fpreg->mem case. - -Tue Feb 27 15:36:48 CET 2001 Jan Hubicka - - * i386.md (mins*, maxs*): New patterns, expanders and splitters. - -2001-02-26 Jeffrey Oldham - - * mips.c (mips_make_temp_file): Fix thinko in last change. - -2001-02-26 Jason Eckhardt - - * combine.c (known_cond): Do not reverse the condition when - SMAX/UMAX is being considered and the condition is for equality - or inequality. - - * testsuite/gcc.c-torture/execute/20010221-1.c: New test. - -2001-02-26 Philip Blundell - - * config.gcc: Remove obsolete targets "arm*-*-linuxoldld" and - "armv2-*-linux". - * config/arm/linux-elf.h: Remove historical relics related to - above configurations. - * config/arm/linux-oldld.h: Delete. - * config/arm/linux-elf26.h: Delete. - -2001-02-26 Jason Merrill - - * c-decl.c (finish_decl): Set DECL_DEFER_OUTPUT on tentative file-scope - definitions. - * toplev.c (rest_of_decl_compilation): Check DECL_DEFER_OUTPUT to - recognize a tentative definition. Lose obsolete code. - - * toplev.c (wrapup_global_declarations): Don't emit DECL_COMDAT - variables unless necessary, either. - -2001-02-25 Richard Henderson - - * ifcvt.c (struct noce_if_info): Add test_bb. - (noce_get_alt_condition): New. - (noce_try_minmax, noce_try_abs): New. - (noce_operand_ok): New. - (noce_process_if_block): Use them. - * rtlanal.c (may_trap_p): NEG and ABS can never trap. - -Sun Feb 25 14:26:17 2001 Christopher Faylor - - * config/i386/cygwin.h (CPP_SPEC): Add missing space before w32api - include. - -2001-02-25 Zack Weinberg - - * config.gcc: Put back pa/t-openbsd and rs6000/t-openbsd. - * config/mips/mips.c (mips_make_temp_file): Set temp_filename - properly. - (mips_asm_file_end): Free temp_filename here. - -Sun Feb 25 08:34:23 2001 Richard Kenner - - * config/i386/i386-protos.h (ix86_set_move_mem_attrs): Move decl. - * config/i386/i386.c (ix86_set_move_mem_attrs_1): Fix typo. - - * config/i386/i386.md (movstrsi): Handle FAIL case. - -2001-02-25 Neil Booth - - * cppinit.c (builtin_array): Update. - (init_builtins): Flag builtins to warn if redefined or - undefined. Define __GXX_WEAK as a normal macro. - * cpplib.c (do_undef): Warn if flagged NODE_WARN. - * cpplib.h (NODE_WARN): New flag. - * cppmacro.c (builtin_macro): Remove handling of __GXX_WEAK__. - Handle __STDC__ as a builtin only on Solaris. - (warn_of_redefinition): Renamed from check_macro_definition. - Reverse sense of test. Always warn if NODE_WARN. - (_cpp_create_definition): Use warn_of_redefinition. Flag - any macro beginning with "__STDC_" to require a mandatory - warning if redefined or undefined. - -2001-02-24 Zack Weinberg - - * xm-interix.h, xm-lynx.h, alpha/xm-vms.h, convex/xm-convex.h, - i370/xm-i370.h, i370/xm-linux.h, i370/xm-mvs.h, i370/xm-oe.h, - i386/xm-beos.h, i386/xm-dos.h, i386/xm-mingw32.h, - i860/xm-i860.h, m68k/xm-3b1.h, m68k/xm-amix.h, m68k/xm-aux.h, - m68k/xm-crds.h, m68k/xm-mot3300.h, m88k/xm-sysv3.h, - mips/xm-mips.h, rs6000/xm-beos.h, vax/xm-vms.h: - Don't define any of: - USE_PROTOTYPES, vfork, mktemp, SVR3, NO_SYS_PARAMS_H, - P_tmpdir, MVS, NO_DBX_FORMAT, USE_STDARGS, STDC_HEADERS, - NO_PRECOMPILES, i860, __PTR_TO_INT, __INT_TO_PTR, rindex, - index, FULL_PROTOTYPES, AUX, R_OK, W_OK, X_OK, F_OK, - STACK_DIRECTION, MIPS, MAX_READ_LEN, MAX_WRITE_LEN. - - * alpha/xm-alpha.h, clipper/xm-clix.h, d30v/xm-d30v.h, - fr30/xm-fr30.h, i370/xm-linux.h: Remove commented-out macro - definitions. - - * m68k/xm-3b1.h, m68k/xm-crds.h, m88k/xm-sysv3.h: - Delete now-empty file. - - * alpha/vms.h: Define NEED_ATEXIT here... - * alpha/xm-vms.h: ...not here. - - * i386/cygwin.h: Don't define PARAMS. - * mips/mips.c: Don't prototype mktemp. Don't define - P_tmpdir. Use make_temp_file to create temporary files. - Don't be clever and delete temporary files early. - * config.gcc: Drop references to deleted files. Don't define - FULL_PROTOTYPES. - * gcc.texi: Don't mention USE_PROTOTYPES. - -Sat Feb 24 20:25:29 2001 Richard Kenner - - * config/i386/i386.c (ix86_set_move_mem_attrs): New function. - (ix86_set_move_mem_attrs_1): Likewise. - * config/i386/i386-protos.h (ix86_set_move_mem_attrs): New declaration. - * config/i386/i386.md (movstrsi): Call it. - -2001-02-24 Zack Weinberg - - * config.gcc: Expunge references to alpha/t-pe, pa/t-openbsd, - x-linux-aout, i386/t-go32, t-osf, m68k/x-m68kv, - ns32k/xm-netbsd.h, rs6000/t-openbsd, rs6000/t-xnewas, - rs6000/x-aix41-gld. These are nonexistent, empty, or obsolete. - - (i750a-*-*): Error here if hosting on i750a. - (alpha*-*-winnt*, ix86-*-winnt3*): Remove stanzas entirely. - - * x-linux-aout, xm-freebsd.h, i386/beos-pe.h, ns32k/xm-netbsd.h: - Remove (empty modulo comments). - - * 1750a/xm-1750a.h, alpha/config-nt.sed, alpha/win-nt.h, - alpha/xm-winnt.h, i386/config-nt.sed, i386/os2.h, - i386/t-winnt, i386/win-nt.h, i386/xm-freebsd.h, i386/xm-os2.h, - i386/xm-winnt.h, m68k/x-alloca-c, m88k/x-dguxbcs, - mips/x-netbsd, mips/x-nws3250v4, rs6000/t-xnewas, - rs6000/t-xrs6000, rs6000/xm-cygwin.h: Remove (obsolete) - - * i386/crtdll.h, i386/cygwin.h, i386/mingw32.h: - Remove reference to winnt.h in comment. - * rs6000/t-newas, rs6000/t-rs6000: Override LIBGCC1_TEST to null. - -2001-02-24 Franz Sirl - - * loop.c (check_dbra_loop): A biv has uses besides counting if it is - used to set another biv. - -Sat Feb 24 06:45:21 2001 Richard Kenner - - * tree.h (BLOCK_DEAD): New macro. - (struct tree_block): New flag, dead_flag. - * print-tree.c (print_node, case 'b'): Print missing fields. - * emit-rtl.c (remove_unnecessary_notes): Set BLOCK_DEAD. - * function.c (identify_blocks): Enable test for misplaced notes. - (all_blocks): Skip BLOCK_DEAD blocks. - * integrate.c (integrate_decl_tree): Likewise. - - * errors.c (internal_error, trim_filename): New functions. - (fancy_abort): Call internal_error. - * errors.h (internal_error, trim_filename): New declarations. - -2001-02-24 Alexandre Oliva - - * config/mn10300/mn10300.h (DBX_REGISTER_NUMBER): Reverted - 2000-08-26's patch. - (EXTRA_CONSTRAINT): Formatting changes. - -2001-02-23 Kaveh R. Ghazi - - * rtl.c (rtl_check_failed_code2): Fix typo in last change. - -2001-02-23 Per Bothner - - * gcc.c (record_temp_file, pfatal_with_name, error): Make non-static, - so they can be called from java/jvspec.c. - * gcc.h (record_temp_file, pfatal_with_name, error): Declare. - -Sat Feb 24 03:32:50 CET 2001 Jan Hubicka - - * i386.c (ix86_frame): New structure. - (ix86_compute_frame_size): Kill. - (ix86_compute_frame_layout): New. - (ix86_save_reg): New. - (ix86_can_use_return_insn_p): Use frame layout stuff. - (ix86_expand_prologue): Likewise. - (ix86_expand_epilogue): Likewise. - (ix86_initial_elimination_offset): Likewise. - (ix86_nsaved_regs): Use ix86_save_reg. - (ix86_emit_save_regs): Likewise. - -Sat Feb 24 03:30:38 CET 2001 Jan Hubicka - - * flow.c (find_sub_basic_blocks): New function. - (split_block): Be ready for basic block introduced by CODE_LABEL. - (commit_one_edge_insertion): Call find_sub_basic_block. - - * flow.c (make_edges): Add edge from entry for blocks starting with - label having ALTERNATE_NAME - -Sat Feb 24 03:19:42 CET 2001 Jan Hubicka - - * function.c (epilogue_done): Be ready for first basic block not - containing PROLOGUE_END note. - (reposition_prologue_and_epilogue_notes): Avoid placing - PROLOGUE_END note between BASIC_BLOCK. - -Sat Feb 24 03:17:09 CET 2001 Jan Hubicka - - * loop.c (canonicalize_condition): Move to reversed_comparison_code. - -2001-02-21 DJ Delorie - - * config/i960/i960.h (FRAME_POINTER_REQUIRED): Revert removal of - check for current_function_has_nonlocal_goto from 1999-11-12. - -Fri Feb 23 15:28:39 2001 Richard Kenner - - * diagnostic.c (trim_filename): No longer static. - * toplev.h (trim_filename): Declare. - * rtl.c (rtl_check_failed_bounds): Call internal_error. - (rtl_check_failed_type1, rtl_check_failed_type2): Likewise. - (rtl_check_failed_code1, rtl_check_failed_code2): Likewise. - (rtvec_check_failed_bounds): Likewise. - * tree.c (tree_check_failed, tree_class_check_failed): Likewise. - - * convert.c (convert_to_integer): Don't do unsigned unless result or - both inputs are unsigned. - - * fold-const.c (fold_convert): Don't call size_int_type_wide if - input overflows. - - * c-decl.c (set_block): Set NAMES and BLOCKS from BLOCK. - - * varasm.c (output_constant): Recompute CODE after lang-specific fn. - -2001-02-23 Jeffrey Oldham - - * Makefile.in (resource.o): Add params.h dependence. - * params.def (MAX_DELAY_SLOT_LIVE_SEARCH): New parameter. - * params.h (MAX_DELAY_SLOT_LIVE_SEARCH): Likewise. - * resource.c: Add dependence on params.h. - (current_live_regs): Fix explanatory comment. - (find_basic_block): Add new parameter to permit limiting search - for a BARRIER. - (mark_target_live_regs): Add new argument to find_basic_block call. - (incr_ticks_for_insn): Likewise. - -2001-02-23 Gabriel Dos Reis - - * diagnostic.c (output_to_stream): Rename to - output_buffer_to_stream. Loses the stream parameter. - (init_output_buffer): Set diagnosic_buffer's stream. - (flush_diagnostic_buffer): Adjust. - (default_print_error_function): Likewise. - (finish_diagnostic): Likewise. - (verbatim): Likewise. - - * diagnostic.h (struct output_buffer): Add `stream' field. - (output_buffer_attached_stream): New macro. - -2001-02-23 Jakub Jelinek - - * fold-const.c (extract_muldiv) [case PLUS_EXPR]: If not MULT_EXPR, - check if either operand is divisible by C. - (multiple_of_p): Handle LSHIFT_EXPR with small constant shift. - If type is signed, consider negative numbers as well. - -2001-02-22 Richard Henderson - - * config/ia64/crtbegin.asm (.fini): Use pc-relative relocs to - reach .text instead of gp-relative relocs. - * config/ia64/crtend.asm (.init): Likewise. - -2001-02-22 Andreas Jaeger - - * extend.texi (C++ Attributes): Fix typo. - -2001-02-21 David Mosberger - - * config/ia64/ia64.c (ia64_epilogue_uses): For syscall_linkage - functions, drop current_function_args_info.words test. - (ia64_compute_frame_size): Mark syscall_linkage functions as - using eight input registers. - -2001-02-21 Loren J. Rittle - Bruce Korb - - * fixinc/inclhack.def (freebsd_gcc3_breakage): new fix - * fixinc/README: Document how to convert sed substitutions - to format style c_fix-es. - * fixinc/fixincl.x: regen - -2001-02-21 Jeffrey D. Oldham - - * gcc.c: Add comment explaining how to add a command-line option. - Add title to specs language comment. - -2001-02-21 Jeffrey Oldham - - * gcc.c (cc1_options): Add "-param". - (DEFAULT_WORD_SWITCH_TAKES_ARG): Likewise. - (option_map): Likewise. - * toplev.c (display_help): Add entry for "--param". - (independent_decode_option): Fix typographical error. - -Wed Feb 21 18:57:28 CET 2001 Catherine Moore - Bernd Schmidt - Jan Hubicka - - * i386.c (function_arg_advance): Pass SSE arguments in registers. - (function_arg): Likewise. - -Wed Feb 21 18:12:41 CET 2001 Jan Hubicka - - * i386.md (mmx_lshrdi3, mmx_ashldi3): Guard by unspec. - -2001-02-21 Kazu Hirata - - * config/h8300/h8300.md (iorsi3): Do not output an extra newline - character. - (xorsi3): Likewise. - -Wed Feb 21 17:35:24 CET 2001 Jan Hubicka - - * flow.c (init_propagate_block_info): Canon address and use single_set - for killing dead memory stores. - -2001-02-21 Jeffrey Oldham - - * Makefile.in (reorg.o): Add params.h dependence. - * params.def: Fix typographical error in comment. - (MAX_DELAY_SLOT_INSN_SEARCH): New parameter. - * params.h: Modify introductory comment. - (MAX_DELAY_SLOT_INSN_SEARCH): New parameter. - * reorg.c: Add dependence on params.h. - (redundant_insn): Add parameterized throttle for search. - (fill_simple_delay_slots): Add a comment explaining a variable. - Move conditional out of loop, simplifying code. - (fill_eager_delay_slots): Fix typographical error in comment. - -2001-02-20 Aldy Hernandez - - * tm.texi (REVERSE_CONDEXEC_PREDICATES_P): New macro documentation. - - * flow.c (ior_reg_cond): Use REVERSE_CONDEXEC_PREDICATES_P macro. - (REVERSE_CONDEXEC_PREDICATES_P): Define macro. - -2001-02-21 Jason Merrill - - * tree.h (DECL_UNINLINABLE): Move from C++ frontend. - (struct tree_decl): Add uninlinable bitfield. - * c-decl.c (duplicate_decls): Set it. - * integrate.c (function_cannot_inline_p): Check it. - - * dwarf2out.c (add_name_and_src_coords_attributes): Don't add - DW_AT_MIPS_linkage_name to abstract methods. - (dwarf2out_abstract_function): Emit class context before calling - set_decl_abstract_flags. Don't clear DECL_ABSTRACT. - (gen_subprogram_die): Remove obsolete code. - (gen_member_die): Don't include clones in the member list. - (gen_decl_die): Emit abstract info for clone origin. - * dwarfout.c (output_type): Don't include clones in the member list. - * dbxout.c (dbxout_type_methods): Ignore abstract methods. - * toplev.c (note_deferral_of_defined_inline_function): Don't clear - DECL_ABSTRACT on a function that already has it set. - - * dwarf2out.c (gen_formal_types_die): Also accept a FUNCTION_DECL. - (get_subprogram_die): Pass it in. - -2001-02-21 Richard Earnshaw - - * flow.c (mark_set_1): Make not_dead unsigned long. For - non-pseudos, use it as a bitmask of the hard regs that - don't die. - -2001-02-21 Neil Booth - - * cppfiles.c: Update comments. - (_cpp_read_file): Don't check for NULL filenames any more. - * cppinit.c (cpp_start_read): Don't do canonicalization of - in_fname and out_fname. Use the passed file name exclusively. - (_cpp_handle_options): Don't treat "-" as a command line option, - but as a normal filename. - (_cpp_post_options): Canonicalize in_fname and out_fname. - * cppmain.c (printer_init): Don't check out_fname for NULL. - * c-lex.c (orig_filename): Rename cpp_filename for clarity. - (init_c_lex): Update, and use "" to represent stdin to CPP. - (yyparse): Update. - -2001-02-20 Will Cohen - - * config/pa/quadlib.c (_U_Qfcnvfxt_quad_to_usgl): New function. - * config/pa/long_double.h (FIXUNS_TRUNCTFSI2_LIBCALL): Added. - (INIT_TARGET_OPTABS): Use FIXUNS_TRUNCTFSI2_LIBCALL for - fixunstfsi_libfunc. - -2001-02-20 Stan Shebs - - * config/rs6000/rs6000.c (output_cbranch): Output branches - on separate lines instead of using ';' to separate. - -2001-02-20 Neil Booth - - * cppinit.c (set_lang): Move builtin handling to... - (init_builtins): ...here. - (_cpp_create_reader): Move call to set_lang. - -2001-02-20 Mark Mitchell - - * stmt.c (expand_return): If an attempt is made to return the - error_mar_node, treat the return like a return without a value. - -2001-02-19 Zack Weinberg - - * sibcall.c (skip_copy_to_return_value): Call - identify_call_return_value here, and return orig_insn if it - returns zero. Hardret and softret arguments now unnecessary. - (call_ends_block_p): Don't call identify_call_return_value here. - - * ggc-common.c (ggc_mark_rtx_children): No need to mark 'S' or - 's' slots in RTXen. - * ggc-page.c, ggc-simple.c (ggc_mark_if_gcable): Delete function. - * ggc.h (ggc_mark_if_gcable): Delete prototype. - -Mon Feb 19 20:30:16 2001 Jeffrey A Law (law@cygnus.com) - - * pa.c (move_operand): Accept code to load the address of a - symbol out of the DLT as a valid move operand. - (print_operand, case 'A'): New to handle generating a DLT - reference for a LO_SUM expression. - * pa.h (EXTRA_CONSTRAINT): Handle 'A' for DLT LO_SUM references. - * pa.md (movsi, movdi patterns): Allow DLT LO_SUM references. - -2001-02-19 Joseph S. Myers - - * README, cpp.texi, gcc.texi, version.c: Update version number to - 3.1. - * cpp.1, gcov.1, gcc.1: Regenerate. - -2001-02-19 Neil Booth - - * cppfiles.c (stack_include_file): Generate dependencies - here, and manage include_count here too. - (PRINT_THIS_DEP): Delete. - (_cpp_execute_include): Do not generate dependencies here, - apart from the case of a missing header. Do not manage - include_count. - (_cpp_read_file): Leave dependency generation to - stack_include_file. - -Mon Feb 19 10:17:47 2001 Jeffrey A Law (law@cygnus.com) - - * config.gcc (hppa*64*-*-hpux11*): Add MASK_GAS to - target_cpu_default. Remove dead assignment to - target_cpu_default. - -Mon Feb 19 16:47:39 CET 2001 Jan Hubicka - - * regclass.c (contains_reg_of_mode): Make global. - (init_reg_sets): Remove contains_reg_of_mode; take into account - CLASS_MAX_NREGS when looking for the proper mode. - (dump_regclass): Dump only classes considered for the pseudo. - (regclass): Use contains_reg_of_mode. - -Mon Feb 19 16:45:42 CET 2001 Jan Hubicka - - * gcc.c (do_spec_1): 'n' for printing notices. - * i386.h (CC1_CPU_SPEC): Notice deprecated options as deprecated. - -Mon Feb 19 15:51:30 CET 2001 Jan Hubicka - - * reg-stack.c (next_flags_user): Use current_block->end - (swap_rtx_condition): Look for next user if flags don't die; - give up on CALL_INSNs; use current_block->end. - -Mon Feb 19 08:27:21 2001 Richard Kenner - - * sibcall.c (call_ends_block_p): New function. - (optimize_sibling_and_tail_recursive_call): Use it. - -2001-02-18 Kazu Hirata - - * config/h8300/h8300.md: Update copyright. - (andsi3): Do not output an extra newline character. - -Sun Feb 18 15:45:17 2001 Richard Kenner - - * toplev.c (note_deferral_of_defined_inlined_function): Argument - FNDECL may be unused. - - * toplev.c (rest_of_compilation): Don't have CSE skip blocks or - follow jumps after first run. - If -fexpensive-optimizations rerun CSE after GCSE and iterate until - it doesn't change any jumps. - -Sun Feb 18 17:05:50 2001 Jeffrey A Law (law@cygnus.com) - - * Makefile.in (rtlanal.o): Depend on hard-reg-set.h. - ($HOST_PREFIX_1)rtlanal.o: Remove rules for building - (mostlyclean): Corresponding changes. - * rtlanal.c (hard-reg-set.h): Include. - (rtx_unstable_p): Do not treat the argument pointer specially - if it is not a fixed register. - (rtx_varies_p, rtx_addr_can_trap_p): Similarly. - -Sun Feb 18 15:45:17 2001 Richard Kenner - - * sibcall.c (optimize_sibling_and_tail_recursive_call): Compare - against last real insn in basic block. - Rework to avoid gotos. - - * Makefile.in (gcse.o): Now includes ggc.h. - * gcse.c: Include ggc.h. - (want_to_gcse_p): Verify expression can be in SET as valid insn. - (try_replace_reg): Remove warning of uninitialize variable. - (process_insert_insn): Call invalid_insn_p to validate insn. - * recog.c (insn_invalid_p): Now global. - See if can make valid by adding CLOBBERs of SCRATCH only and do if so. - * recog.h (insn_invalid_p): New declaration. - - * jump.c (jump_optimize_1): Only define reversed_code #ifdef HAVE_trap. - - * config/sparc/sparc.c (eligible_for_epilogue_delay): Don't put - assignments from FP constants since 'Y' output code can't handle it. - (eligible_for_sibcall_delay): Likewise. - - * flow.c (print_rtl_and_abort_fcn): Renamed from print_rtl_and_abort. - Call fancy_abort directly, passing args. - (print_rtl_and_abort): Now a macro, like fancy_abort. - - * final.c (output_operand_lossage): Use internal_error, not error. - -2001-02-18 Shane Nay - - * mips.c (mips_expand_prologue) Add REG_MAYBE_DEAD to - structure shift insns. - -2001-02-18 Mark Mitchell - - * invoke.texi (-fsquangle): Remove documentation. - (-fname-mangling-version): Likewise. - -2001-02-18 Lars Brinkhoff - - * optabs.c (expand_abs): Remove reference to - HAVE_contitional_arithmetic. - * combine.c (simplify_set): Likewise. - -2001-02-18 Richard Henderson - - * ifcvt.c (dead_or_predicable): Don't move code if eh regions - would be disrupted. - -2001-02-18 Richard Henderson - - * config/ns32k/ns32k.h (ADJSP): Upcase arguments. - - * config/alpha/alpha.md (movsi_fix): Fix typo in pattern name. - - * reload1.c (reload_cse_simplify_set): Fix typo. - -Sun Feb 18 09:30:09 2001 Richard Kenner - - * diagnostic.c (_fatal_insn): Decrement errorcount. - - * invoke.texi (-I): Add note avoiding use for system header files. - - * rtl.h (add_clobbers): Remove duplicate declaration. - * recog.h (added_clobbers_hard_reg_p): New declaration. - * genemit.c (struct clobber_pat): New field has_hard_reg. - (gen_insn): Record if added clobbers clobber hard reg. - (gen_split): Avoid unused warning if number of operands is 0. - (output_added_clobbers_hard_reg_p): New function. - (main): Call it. - -2001-02-18 Alan Modra - - * pa.c (hppa_expand_prologue): Simplify code storing return - pointer. For large (>=8k) frames with a post_store, adjust stack - pointer by 8k-64 first rather than by 64. When testing with - VAL_14_BITS_P, always use the actual value rather than the value - negated. Add blockage to prevent scheduling of spills before - stack frame has been created. - (hppa_expand_epilogue): Simplify code loading return pointer. - Allow a slightly larger range for merge_sp_adjust_with_load case. - When testing with VAL_14_BITS_P, always use the actual value. - - * pa.c (pa_adjust_insn_length): Check that block move - pattern is a set before looking at operands. - -2001-02-17 Mark Mitchell - - * fold-const.c (fold_binary_op_with_conditional_arg): New - function, split out from ... - (fold): ... here. - * tree.def (COND_EXPR): Document the use of VOID_TYPE for - conditional arms that throw exceptions. - - * print-tree.c (print_node): Do not use BLOCK_CHAIN when we're not - looking at a BLOCK. - -2001-02-17 Kaveh R. Ghazi - - * aclocal.m4 (gcc_AC_CHECK_DECL): Before attempting the test, - define HAVE_DECL_* to 1 to mask potential backup declarations. - * configure: Regenerated. - -2001-02-17 Mark Mitchell - - * invoke.texi (-Woverloaded-virtual): Clarify documentation. - -2001-02-17 Richard Henderson - - * reload1.c (reload_cse_simplify_set): Respect LOAD_EXTEND_OP - when replacing a memory load with a register. - -Sat Feb 17 14:48:30 2001 Richard Kenner - Jan Hubicka - - * recog.c (validate_replace_src_1): New. - (validate_replace_src_data): Likewise. - (validate_replace_src): Use note_uses. - * rtl.h (note_uses): Declare. - * rtlanal.c (note_uses): New. - -Sat Feb 17 10:52:34 CET 2001 Jan Hubicka - - * reg-stack.c (stack_def): Make field reg unsigned. - (remove_regno_note): Unsignetize parameter. - -2001-02-16 Jes Sorensen - - * ia64.c (errata_emit_nops): Add VOIDmode as second argument to - shladd_operand() call. - -2001-02-16 Bruce Korb - Rodney Brown - - * fixinc/mkfixinc.sh: Use C fixincludes for UnixWare 7. - * fixinc/inclhack.def: Add fixinc.svr4 patterns with matching - machine restrictions - * fixinc/fixincl.x: regen - -Fri Feb 16 12:41:30 2001 Richard Kenner - - * gcse.c (hash_scan_set): If cprop, see if REG_EQUAL or REG_EQUIV. - Don't CSE a nop. - (hash_scan_insn): Clean up calls to hash_scan_set. - (compute_kill_rd): REGNO now unsigned. - (try_replace_reg): Rework to use simplify_replace_rtx. - (cprop_jump, cprop_cc0_jump): Likewise. - (cprop_insn): Call find_reg_equal_equiv_note. - Reflect changes to cprop_jump and cprop_cc0_jump. - - * recog.c (validate_replace_src): Replace in operands of - ZERO_EXTRACT in SET_DEST. - - * cse.c (new_label_ref): New variable. - (insert): Set it instead of recorded_label_ref. - (cse_basic_block): Set recorded_label_ref if new_label_ref use, has - CODE_LABEL for this function, and not already in REG_LABEL note. - -2001-02-16 Jeffrey Oldham - - * resource.c (mark_referenced_resources): Fix typo in introductory - comment. - * config/mips/abi64.h (SUBTARGET_TARGET_OPTIONS): Fix typo in - string constant. - -2001-02-16 Jason Merrill - - * dwarf2out.c (add_bound_info): Don't crash if SAVE_EXPR_RTL is - NULL. - (gen_subprogram_die): Don't abort on seeing a second definition if - the previous one was abstract. Don't replace an abstract instance - in the lookup table. - - * dwarf2out.c (dwarf2out_abstract_function): Rename from - gen_abstract_function. - * dwarf2out.h: Declare it. - * toplev.c (note_outlining_of_inline_function): New fn. - * toplev.h: Declare it. - * integrate.c (output_inline_function): Call it. - * c-decl.c (duplicate_decls): Call it when redefining an extern - inline. Don't inline the new defn. - - * tree.h (BLOCK_CHAIN): Use BLOCK_CHECK. - -2001-02-16 Gerald Pfeifer - - * .gdbinit: Rename to gdbinit.in. - * gdbinit.in: New file, - * configure.in: Generate .gdbinit from gdbinit.in. - * configure: Regenerated. - * Makefile.in (distclean): Always remove .gdbinit. - -2001-02-16 Jakub Jelinek - - * objc/objc-act.c (start_class): Register implemented_classes with - GC. - -2001-02-16 Neil Booth - - * cppfiles.c (_cpp_make_system_header): Generate a file - change callback. - -2001-02-15 Jim Meyering - - * Makefile.in (install-common): Don't depend on installdirs here. - Instead, make each of the lang.install-common targets (e.g., - c++.install-common in cp/Make-lang.in) depend on it. - (install-driver): Depend on installdirs. - -Thu Feb 15 21:30:26 2001 Richard Kenner - - * flow.c (tidy_fallthru_edge): Never end block on line number NOTE. - - * function.c (assign_parms): Set RTX_UNCHANGING_P in pseudo when we - do in memory. - -2001-02-15 Mark Mitchell - - * invoke.texi (--param): Document. - -Thu Feb 15 15:16:38 2001 Alexandre Oliva - - * config/sh/sh.h (BOOL_TYPE_SIZE): Don't define. - -Thu Feb 15 10:52:31 CET 2001 Jan Hubicka - - * i386.md (extendsfdf2_2): Fix constraints. - -Thu Feb 15 09:46:21 CET 2001 Jan Hubicka - - * i386.md (fop_df_3 splitter): Fix operand number. - -Wed Feb 14 12:37:37 CET 2001 Jan Hubicka - - * invoke.texi (-mreg-alloc): Nuke. - * i386.c (ix86_reg_alloc_order, regs_allocated, - order_regs_for_local_alloc): Nuke. - (override_options): Kill reg_alloc code. - * i386.h (TARGET_OPTIONS): Kill reg-alloc. - (REG_ALLOC_ORDER): SSE goes before I387. - (ORDER_REGS_FOR_LOCAL_ALLOC): Kill. - (ix86_reg_alloc_order): Likewise. - * i386-protos.h (ix86_reg_alloc_order): Kill. - -2001-02-14 Richard Henderson - - * toplev.c (f_options): Clarify -fschedule-insns2 documentation. - -Wed Feb 14 11:59:58 CET 2001 Jan Hubicka - - * i386.h (RETURN_IN_MEMORY): Fix formating; reject TFmodes - -Wed Feb 14 11:12:38 CET 2001 Jan Hubicka - - * i386-protos.h (ix86_memory_move_cost): Move offline. - * i386.c (ix86_register_move_cost): Compute properly cost of - SSE, MMX and i387 instructions. - (*_cost): Add costs of SSE/MMX moves. - (ix86_memory_move_cost): Move offline from ....; Likewise. - * i386.h (MEMORY_MOVE_COST): .... here; - (struct processor costs): Add new fields to represent costs - of SSE/MMX moves. - -Wed Feb 14 10:08:26 CET 2001 Jan Hubicka - - * regclass.c (init_reg_sets_1): Reinstall the optimization of - move_cost together with Matt Kraai's fix. - -2001-02-14 Jeffrey Oldham - - * Makefile.in (OBJS): Add params.o. - -2001-02-14 Richard Henderson - DJ Delorie - - * jump.c (jump_optimize_1): When we delete a conditional jump - preceding a non-conditional jump to effectively the same place, - make sure that the combined jump skips any clobber insns between - the two labels. - -2001-02-14 Jeffrey Oldham - - * gcc.c (do_spec_1): Fix off-by-one error for '%M' case. - -2001-02-14 Mark Mitchell - - * Makefile.in (toplev.o): Depend on params.h. - (intergate.o): Likewise. - (params.o): New target. - * flags.h (inline_max_insns): Remove. - * integrate.c: Include params.h. - Use MAX_INLINE_INSNS instead of inline_max_insns. - * params.c: New file. - * params.h: Likewise. - * params.def: Likewise. - * toplev.c: Include params.h. - (lang_independent_params): New variable. - (decode_f_option): Use the param machinery instead of setting - max_inline_insns. - (independent_decode_option): Handle "--param name=value". - (main): Register language-independent parameters. - -Wed Feb 14 11:13:45 CET 2001 Jan Hubicka - - * i386.md (pushsf, pushdf_nointeger): Fix constraint. - -2001-02-14 Richard Henderson - - * regclass.c (init_reg_sets_1): Revert last two changes. - -2001-02-14 Jakub Jelinek - - * stor-layout.c (is_pending_size, put_pending_size): New functions. - (variable_size): Call put_pending_size. - * tree.h (is_pending_size, put_pending_size): Add prototypes. - * fold-const.c (extract_muldiv): If SAVE_EXPR is on the pending - sizes list, put newly created SAVE_EXPR there as well. - -2001-02-14 Jakub Jelinek - - * config/ia64/ia64.c (last_group): Only 2 entries are needed. - (errata_find_address_regs): load_group has only 2 entries. - (errata_emit_nops): Likewise. shladd is not problematic. - Clear last_group if nop was emitted. - (fixup_errata): load_group has only 2 entries. - Optimize. - -2001-02-14 Neil Booth - - * c-lex.c (lex_number): Only warn traditionally for U suffix - outside system macros. - * cppexp.c (parse_number): Similarly. - * cpplib.h (NODE_SYSHDR, cpp_sys_objmacro_p): New. - * cppmacro.c (struct cpp_macro): New member node. - (parse_args): Only warn about missing rest args if not - a system macro. - (funlike_invocation_p): Similarly for uninvoked funlike macros. - (cpp_sys_objmacro_p): New. - (_cpp_create_definition): Store the node with the macro defn. - Remember if the macro is defined in a system header. - -2001-02-13 DJ Delorie - - * configure.in (check_languages): determine languages to check - * Makefile.in (check-c++): alias for check-g++ - (check-f77): alias for check-g77 - (CHECK_TARGETS): depend on configured languages - -Wed Feb 14 01:13:59 CET 2001 Jan Hubicka - - * i386.md (fixsfsi2, fixdfdi2): Fix previous patch again. - (sqrtsf2): Use TARGET_SSE instead of TARGET_SSE2) - (sqrtsf2 patterns): Use 'x' instead of 'Y'. - (sqrtextendsfdf2): Disable for SSE2. - -Wed Feb 14 00:19:28 CET 2001 Jan Hubicka - - * i386.md (fixsfsi2, fixdfdi2): Fix previous patch again. - (sqrtsf2): Use TARGET_SSE instead of TARGET_SSE2) - (sqrtsf2 patterns): Use 'x' instead of 'Y'. - (sqrtextendsfdf2): Disable for SSE2. - -Wed Feb 14 00:11:20 CET 2001 Jan Hubicka - - * i386.md (movsfcc_1): Support integer cmove instruction. - (movdfcc_1): Likewise; new splitter. - -Tue Feb 13 23:19:27 CET 2001 Jan Hubicka - - * i386.c (output_fp_compare): Support SSE. - (prepare_fp_compare_args): SSE comparisons always support memory. - * i386.h (TARGET_CMOVE): SSE imply cmove. - * i386.md (cmp?f2): Enable for SSE too. - (cmpfp_i*): Support SSE. - (cmpfp_i_sse): New. - (cmpfp_i_sse_only): New. - (s*, b* fp expanters): Enable for SSE too. - (fp_jcc_1_sse, fp_jcc_1_sse_only, fp_jcc_2_sse, fp_jcc_2_sse_only): - New patterns. - -Tue Feb 13 23:05:42 CET 2001 Jan Hubicka - - * regclass.c (init_reg_sets_1): Silence warning. - -Tue Feb 13 22:03:07 CET 2001 Jan Hubicka - - * i386.md (sqrt?f2): Change to expander. - (sqrt?f2_1, sqrt?f2_sse_only, sqrt?f2_i387): New. - -Tue Feb 13 15:42:05 2001 Richard Kenner - - * rtlanal.c (find_reg_equal_equiv_note): New function. - * simplify-rtx.c (simplify_gen_unary, simplify_gen_ternary): New fns. - (simplify_gen_relational, simplify_replace_rtx): Likewise. - * rtl.h: Add declarations for above functions. - -Tue Feb 13 21:09:11 CET 2001 Jan Hubicka - - * cse.c (cse_main): Converts ifdefs on PIC_OFFSET_TABLE_REGNUM to - conditionals. - * defaults.h (PIC_OFFSET_TABLE_REGNUM): Default to INVALID_REGNUM. - * emit-rtl.c (init_emit_once): Convert ifdefs to conditionals. - * flow.c (mark_regs_live_at_end): Likewise. - (calculate_global_regs_live): Likewise. - * gcse.c (compute_hash_table): Likewise. - (compute_kill_rd): Likewise. - * resource.c (mark_target_live_regs): Likewise. - * rtl.h (INVALID_REGNUM): New macro. - -Tue Feb 13 20:59:22 CET 2001 Jan Hubicka - - * i386.md (fixsfsi2, fixdfdi2): Fix previous patch. - -Tue Feb 13 16:32:20 CET 2001 Jan Hubicka - - * i386.md (fixsfsi2, fixdfdi2): Force operand to register - for SSE. - -Tue Feb 13 14:53:16 CET 2001 Jan Hubicka - - * i386.md (add?f3, sub?f3, mul?f3, dif?f3): Enable for TARGET_SSE(2) - too. - (fop_sf_comm, fop_df_comm, fop_sf_1, fop_df_1): Support SSE. - (fop_sf_comm_sse, fop_df_comm_sse): New patterns. - (fop_sf_1_sse, fop_df_1_sse): New patterns - (fop_*): Disable float_extend and float patterns for SSE compilation. - * i386.c (output_387_binary_op): Support SSE. - -Tue Feb 13 14:16:34 CET 2001 Jan Hubicka - - * i386.md (dummy_extendsfdf2): Support SSE2 - (extendsfdf2): Enable if 80387 or SSE2. - (extendsfdf2_1): Support SSE2. Disable if SSE2 is avialble - and no MIX_I387_SSE2 - (extendsfdf2_1_sse_only): New pattern. - (truncdfsf2): Enable if SSE2 or 80387; Always use SSE only version - of SSE. - (truncdfsf2_1): Support SSE. - (truncdfsf2_2): Support SSE. - (truncdfsf2_2_1_sse): New pattern. - (fixtruncsfsi2): Always use SSE if available. - (fix_truncsfsi_sse): New pattern. - (fix_truncdfsi_sse): New pattern. - (floatsis?f2): Support SSE. - (floatsidf2_i387): New pattern. - (floatsidf2_sse): Likewise. - -Tue Feb 13 07:52:04 2001 Richard Kenner - - * configure.in: Use "have_gnat" variable, not "gnat". - * configure: Regenerated. - - * config/sparc/sparc.c (function_value): Treat all non-record - aggregate types like used to treat UNION_TYPE. - -Tue Feb 13 13:31:33 CET 2001 Jan Hubicka - - * i386.c (print_reg): Use ANY_FP_REG instead of FP_REG - * i386.h (MASK_128BIT_LONG_DOUBLE): Renumber - (MASK_SSE2): New. - (MASK_MIX_SSE_I387): New. - (TARGET_SSE): SSE2 imply SSE. - (TARGET_SSE2, TARGET_MIX_SSE_I387): New. - (TARGET_SWITCHES): Add "sse2", "mix-sse-i387". - (enum reg_class): Add new classes. - (REG_CLASS_NAMES): Likewise. - (REG_CLASS_CONTENTS): Likewise. - (ANY_FP_REG_P, ANY_FP_REGNO_P, SSE_REG_P, SSE_FLOAT_MODE): New macros. - (REG_CLASS_FROM_LETTER): 'x' and 'y' is SSE_REGS only when SSE is - supported. Add 'Y' to be SSE_REGS when SSE2 is supported. - (CLASS_MAX_NREGS): Use new macros. - (REGISTER_MOVE_COST): Rewrite using SECONDARY_MEMORY_MAYBE_NEEDED. - * i386.md (pushsf, movsf): Support SSE. - (pushdf_nointeger, pushdf_integer, pushdf): Support SSE, update - splitters to use ANY_FP_REGNO_P. - (movdf_nointeger, movdf_integer): Likewise. - -2001-02-13 Alexandre Oliva - - * combine.c (UWIDE_SHIFT_LEFT_BY_BITS_PER_WORD): New macro. - (try_combine): Use it. - -Tue Feb 13 11:37:06 CET 2001 Jan Hubicka - - * i386.h (SSE_CLASS_P, MMX_CLASS_P, MAYBE_FLOAT_CLASS_P, - MAYBE_SSE_CLASS_P, MAYBE_MMX_CLASS_P): New macros. - (PREFERRED_RELOAD_CLASS, SECONDARY_MEMORY_NEEDED): Move offline. - (REGISTER_MOVE_COST): Likewise. - * i386-protos.h (ix86_secondary_memory_needed, - ix86_preferred_reload_class, ix86_register_move_cost): Declare. - * i386.c (ix86_secondary_memory_needed, - ix86_preferred_reload_class, ix86_register_move_cost): New function. - -Die Feb 13 11:04:25 CET 2001 Jan Hubicka - - * i386.h (VALID_FP_MODE_P, VALID_INT_MODE_P): New. - (HARD_REGNO_MODE_OK): Move offline to .... - * i386.c (ix86_hard_regno_mode_ok) ... here; - refuse all incorrect modes. - * i386-protos.h (ix86_hard_regno_mode_ok): Declare. - -2001-02-13 Richard Henderson - - * sparc.md (cmp_cc_arith_op_set): Don't use match_dup on the - entire operator; replicate that and match_dup the operands. - (cmp_ccx_arith_op_set): Likewise. - (cmp_cc_arith_op_not_set): Likewise. - (cmp_ccx_arith_op_not_set): Likewise. - -2001-02-13 Alexandre Oliva - - * explow.c (trunc_int_for_mode): Sign-extend value to mode. - -2001-02-12 Geoffrey Keating - - * config/rs6000/sysv4.h (MASK_NO_BITFIELD_WORD): New macro. - (TARGET_NO_BITFIELD_WORD): New macro. - (SUBTARGET_SWITCHES): Add -mbit-word, -mno-bit-word options. - (BITFIELD_NBYTES_LIMITED): Define based on TARGET_NO_BITFIELD_WORD. - -Mon Feb 12 18:13:26 2001 Richard Kenner - - * cselib.c: New file, from simplify-rtx.c. - * simplify-rtx.c: Remove cselib parts. - * Makefile.in: Add cselib.o. - -2001-02-12 Geoffrey Keating - - * config/rs6000/rs6000.c (rs6000_float_const): Remove warning. - (setup_incoming_varargs): Remove warning. - - * config/rs6000/rs6000.c (validate_condition_mode): When - flag_fast_math, allow floating-point conditionals to be reversed. - (rs6000_generate_compare): When flag_fast_math, don't generate - cror operations for FP conditionals. - - * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Handle - -mcall-i960. - (ASM_SPEC): Likewise. - (CC1_ENDIAN_LITTLE_SPEC): Likewise. - (CC1_SPEC): Likewise. - (LINK_TARGET_SPEC): Likewise. - (CPP_ENDIAN_SPEC): Likewise. - * Makefile.in (check-consistency): New target. - -2001-02-12 Joseph S. Myers - - * c-decl.c (grokdeclarator): In C99 mode, give the more specific - "return type defaults" warning for functions with return type - defaulting to int. - * c-lang.c (c_init): In C99 mode, enable warnings for implicit - function declarations by default rather than only when pedantic. - -Mon Feb 12 17:28:48 CET 2001 Jan Hubicka - - * regclass.c (init_reg_sets_1): Optimize calculation of move_cost - arrays. - -2001-02-12 Nathan Sidwell - - * extend.texi (Deprecated): Deprecate new initializer lists. - -2001-02-12 Nathan Sidwell - - * mkdeps.c (deps_add_default_target): Robustify. Add - basename component only. - * cpp.texi (-M): Describe how default target is generated. - * invoke.texi (-M): Likewise. - -2001-02-12 Kazu Hirata - - * toplev.c (push_float_handler): Remove. - (pop_float_handler): Remove. - * toplev.h: Remove prototypes for the above functions. - -2001-02-12 Jakub Jelinek - - * c-common.c (constant_fits_type_p): New function. - (convert_and_check): Use it. - -2001-02-11 Mark Mitchell - - * Makefile.in (GXX_ABI_FLAG): Don't define. - * configure.in (--enable-new-gxx-abi): Remove option. - * config.in: Regenerated. - * configure: Likewise. - -2001-02-12 Alexandre Oliva - - * lcm.c (compute_earliest): Let EXIT_BLOCK be handled as a regular - basic block. - (optimize_mode_switching) [NORMAL_MODE]: Set up EXIT_BLOCK as a - regular basic block, and arrange for all edges into it to switch - to normal mode. - -2001-02-11 Gerald Pfeifer - - * Makefile.in (distclean): Do not remove .gdbinit. - -2001-02-11 Mark Mitchell - - * Makefile.in (gcc.o): Fix typos. - (protize.o): Likewise. - (unprotoize.o): Likewise. - -2001-02-11 Richard Henderson - - * tree.c (build1): Check for null operand in last change. - -2001-02-11 Richard Henderson - - * fold-const.c (split_tree): Don't assume a constant isn't splittable. - (fold): Don't assume a constant isn't foldable. - * tree.c (build): Set TREE_CONSTANT for an expression with no - side-effects and constant operands. - (build1): Likewise. - -2001-02-10 Richard Henderson - - * jump.c (squeeze_notes): Revert 2000-05-12 change. - -2001-02-10 Anthony Green - - * cpp.texi (Standard Predefined): Add documentation for - __OPTIMIZE_SIZE__. - - * c-common.c (combine_strings): Improve warning message. - -2001-02-10 Geoffrey Keating - - * config/rs6000/sysv4.h (LINK_TARGET_SPEC): Use two dashes for - --oformat. - * config/rs6000/sysv4le.h (LINK_TARGET_SPEC): Likewise. - -Fri Feb 9 15:05:27 2001 Christopher Faylor - - * config/i386/t-cygwin (T_CPPFLAGS): Use correct location for - CYGWIN_CROSS_DIR. - -2001-02-09 Alexandre Oliva - - * config/sh/sh.md (sibcalli, sibcalli_pcrel, sibcalli): Set - fp_mode attribute. - -2001-02-09 Nick Clifton - - * config/arm/arm.md: Change output contraint on post inc - load/store multiple patterns to be a read/write contraint. - -2001-02-09 Neil Booth - - * gcc.c (cpp_options): Delete .d files on error. Don't delete - .o files when using the -M options. - -2001-02-08 Franz Sirl - David Edelsohn - - * config/rs6000/rs6000.c (output_toc): Allow 32-bit targets to - handle DImode constants. Use one TOC entry for SImode and smaller - constants, aligned properly. - -2001-02-08 Jason Merrill - - * config/arm/arm.c (arm_expand_prologue): Do tell the dwarf2 backend - about the SP adjustment for saving the static chain pointer. - * dwarf2out.c (dwarf2out_frame_debug_expr): Use the specified - offset when setting a temporary CFA register. - -2001-02-08 Chandrakala Chavva - - * config.gcc : New targets, i386-*-chorusos*, sparc-*-chorusos*, - powerpc-*-chorusos* . - * config/rs6000/chorus.h : New file. - * config/i386/chorus.h : New file. - * config/sparc/chorus.h : New file. - * config/sparc/t-chorus-elf : New file. - -2001-02-08 David Edelsohn - - * config/rs6000/rs6000.h (ASM_OUTPUT_SYMBOL_REF): Move from here ... - * config/rs6000/aix.h (ASM_OUTPUT_SYMBOL_REF): ... to here. - * config/rs6000/aix51.h (CPLUSCPLUS_CPP_SPEC): Define it. - (__WCHAR_TYPE__): Correct macro name. - -2001-02-08 Richard Henderson - - * config/i386/i386.c (ix86_frame_pointer_required): New. - (ix86_setup_frame_addresses): New. - (struct machine_function): Add accesses_prev_frame. - * config/i386/i386.h (FRAME_POINTER_REQUIRED): Call - ix86_frame_pointer_required. - (SUBTARGET_FRAME_POINTER_REQUIRED): New. - (SETUP_FRAME_ADDRESSES): New. - * config/i386/i386-protos.h: Update. - * config/i386/sco5.h (SUBTARGET_FRAME_POINTER_REQUIRED): Rename - from FRAME_POINTER_REQUIRED. - * config/i386/svr3gas.h: Likewise. - * config/i386/sysv3.h: Likewise. - * config/i386/v3gas.h: Likewise. - -2001-02-08 Richard Henderson - - * config/sparc/sparc.c (function_arg_record_value_3): Fix - calculation of the number of integer registers required. - (function_arg_record_value): Likewise. - -2001-02-08 Jason Merrill - - * diagnostic.c (internal_error): Say "confused" after 1 error, not - two. Print file and line with "confused" message. - - * dwarf2out.c (dwarf2out_line): Include filename in -dA output. - -Thu Feb 8 11:21:28 2001 Richard Kenner - - * rtlanal.c (remove_node_from_expr_list): Correctly update PREV. - -2001-02-08 Bernd Schmidt - - * final.c (cleanup_subreg_operands): The address of a MEM can - contain SUBREGs. - - * config/ia64/ia64.c (ia64_variable_issue): Call group_barrier_needed_p - for asms, too. - -2001-02-08 Joseph S. Myers - - * gcc.texi (Incompatibilities): Update documentation of - preprocessing numbers. - -2001-02-07 Jakub Jelinek - - * c-decl.c (finish_enum): Revert part of 2000-01-05 change. - -2001-02-07 Mark Mitchell - - * config/rs6000/aix43.h (CPLUSCPLUS_CPP_SPEC): Define it. - - * defaults.h (CPLUSPLUS_CPP_SPEC): New macro. - * gcc.c (struct compiler): Add cpp_spec field. - (input_file_compiler): New variable. - (do_spec_1): Allow a particular compiler to handle `%C' - specially. - (main): Store the current compiler in input_file_compiler. - * tm.texi (CPLUSPLUS_CPP_SPEC): Document. - -2001-02-07 Zack Weinberg - - * cpphash.h (struct spec_nodes): Add n_true and n_false. - * cppinit.c (cpp_create_reader): Initialize them. - (append_include_chain): cxx_aware arg might be unused. - * cppexp.c (lex): In C++ mode, recognize 'true' and 'false' - keywords and give them their phase 7 meaning. Pedwarn about - this unless '__bool_true_false_are_defined' is defined. - -2001-02-07 Alexandre Oliva - - * lcm.c (optimize_mode_switching): Emit mode_set before the - JUMP_INSN of an abnormal edge. - -2001-02-07 Bernd Schmidt - - * builtins.c (expand_builtin_setjmp_receiver): Emit an ASM_INPUT as - a scheduling barrier at the end. - - * tm.texi (MD_INIT_BUILTINS, MD_EXPAND_BUILTIN): Document. - -2001-02-07 Alexandre Oliva - - * config/sh/sh.md (reload_outsf): Removed. - (movsf_ie): Introduce constraints for FPUL loads and stores. - (reload_insf): Broaden the output constraint. - - * config/elfos.h (INT_ASM_OP): Don't define it if it's already - defined. - * config/sh/sh.h (INT_ASM_OP, ASM_OUTPUT_CONSTRUCTOR, - ASM_OUTPUT_DESTRUCTOR): Copy definitions from config/elfos.h. - -2001-02-06 Chandrakala Chavva - - * final.c: Revert my previous changes. - * output.h: Make profile_label_no extern. - * config/rs6000/rs6000.c (output_profile_hook): Use standard functions - for generating label. - -2001-02-06 Laurynas Biveinis - - * config/i386/djgpp.h: Add comments about standard paths. - (MD_EXEC_PREFIX): Undefine before defining. - (MD_STARTFILE_PREFIX): New. - -2001-01-30 Bruce Korb - - fixinc/fixincl.c(process): Emit error message only if appropriate :) - (load_file): do not rely on load_file_data() to close file pointer - fixinc/fixlib.c(load_file_data): do not close passed in file pointer - fixinc/inclhack.def(irix_limits_const): add test_text - -2001-02-06 Neil Booth - - * cppexp.c (parse_defined): Improve diagnostics for invalid - syntax. - -2001-02-06 Neil Booth - - * cppmacro.c (cpp_get_token): Avoid pasting after a builtin. - -2001-02-06 Mark Mitchell - - * config/rs6000/rs6000.h (ASM_OUTPUT_SYMBOL_REF): Define. - * config/rs6000/rs6000-protos.h (rs6000_output_symbol_ref): Declare. - * config/rs6000/rs6000.c (VTABLE_NAME_P): New macro. - (rs6000_output_symbol_ref): New function. - (output_toc): Use VTABLE_NAME_P. - -Tue Feb 6 07:54:51 2001 Richard Kenner - - * print-tree.c (print_node, case PARM_DECL): - Print DECL_ARG_TYPE and DECL_ARG_TYPE_AS_WRITTEN. - - * stor-layout.c (reference_types_internal): New variable. - (internal_reference_types): New function. - (layout_type, case REFERENCE_TYPE): Make Pmode if internal. - * tree.h (internal_reference_types): New declaration. - - * cse.c (find_best_addr): Fix typo in computing cost. - -Mon Feb 5 21:56:16 2001 Richard Kenner - - * combine.c (nonzero_bits, case PLUS): If pointers extend unsigned - and this is the sum of a pointer and a constant, we know the result - did not overflow. - (num_sign_bit_copies, case PLUS): Likewise. - * explow.c (convert_memory_address): Remove opposite SUBREG. - * function.c (instantiate_new_reg): New function (from common code). - (instantiate_virtual_regs_1): Call it. - For PLUS, handle if (plus (subreg (virt-reg) (const_int)) - if pointers sign- or zero-extend. - * simplify-rtx.c (simplify_unary_operation, case ZERO_EXTEND): - If pointers extend unsigned, use inside of SUBREG. - (simplify_unary_operation, case SIGN_EXTEND): Likewise, if sign extend. - -2001-02-05 Benjamin Kosnik - - * Makefile.in (-DGPLUSPLUS_TOOL_INCLUDE_DIR): Change to target - subdir of gcc_gxx_include_dir. - (gcc_gxx_target_include_dir): Remove. - -2001-02-05 Jeffrey Oldham - - * dwarf2out.c: Revise DWARF2 Abbreviation Glossary comments. - (dwarf2out_frame_debug_expr): Revise introductory comments to add - a high-level description. - -2001-02-05 Chandrakala Chavva - - * final.c: Move the declaration of profile_label_no to ... - * output.h: ... here. - * function.c (expand_function_start): Call PROFILE_HOOK. - * config/rs6000/aix.h: Define PROFILE_HOOK. - * config/rs6000/rs6000-protos.h: output_profile_hook new. - * config/rs6000/rs6000.c (output_profile_hook): Define. - (output_prolog): Do nothing for ABI_AIX as it is taken care by - output_profile_hook. - tm.texi : Explain new macro PROFILE_HOOK. - -2001-02-06 Hans-Peter Nilsson - - * extend.texi (Extended Asm): Do not say that semicolon is always - a valid line-breaking character for GNU assemblers. Use - newline-tab as the most commonly supported syntax. Use - newline-tab rather than semicolon in multi-insn examples. - -2001-02-05 Franz Sirl - - * Makefile.in (gcc_gxx_target_include_dir): Use $(target_alias). - -2001-02-05 Franz Sirl - David Edelsohn - - * config/rs6000/rs6000.c (rs6000_return_addr): Use PIC - code for AIX, even without flag_pic. - -2001-02-05 Jakub Jelinek - - * c-typeck.c (common_type): push and pop binding level around - calling common_type on function parameters. - -Mon Feb 5 14:30:37 2001 Christopher Faylor - - * config/i386/cygwin.h (CPP_SPEC): Add missing space after -idirafter. - -Mon Feb 5 11:23:16 2001 Richard Kenner - - * config/mips/mips.c (override_options): Fix typo in last change. - (mips_make_temp_file): Call fatal_io_error, not pfatal_with_name. - (mips_asm_file_end): Likewise; also pass more args to fatal_io_error. - -2001-02-05 Nathan Sidwell - - * invoke.texi (-fdump-class-layout): Document. - (-fdump-translation-unit): Use `=' as filename separator. - -2001-02-05 Mark Mitchell - - * Makefile.in (s-mlib): Don't build multilibs if - --disable-multilib. - (DRIVER_DEFINES): Adjust accordingly. - (gcc.o): Likewise. - (protoize.o): Likewise. - (unprotoize.o): Likewise. - * configure.in: Recognize --enable-multilib. - -2001-02-04 Mark Mitchell - - * Makefile.in (DRIVER_DEFINES): Fix quoting. - - * Makefile.in (site.exp): Always set HAVE_LIBSTDCXX_V3. - * configure.in: Remove --enable-libstdcxx_v3 support. - * configure: Regenerated. - -Sun Feb 4 15:52:44 2001 Richard Kenner - - * config/avr/avr.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): - Call abort instead of fatal. - (TRAMPOLINE_TEMPLATE): Call internal_error instead of fatal. - * config/dsp16xx/dsp16xx.h (FUNCTION_PROFILER): Likewise. - (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Likewise. - (TRAMPOLINE_TEMPLATE, INITIALIZE_TRAMPOLINE): Likewise. - (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Likewise. - * config/rs6000/rs6000.h (RETURN_ADDRESS_OFFSET): Likewise. - - * diagnostic.h (set_internal_error_function): Renamed. - * toplev.h (internal_error): Renamed from fatal. - (pfatal_with_name): Deleted. - (fatal_io_error): Now has printf-style arguments. - * diagnostic.c (pfatal_with_name): Deleted. - (fatal_io_error): Rework to have args in printf-style. - (set_internal_error_function): Renamed from set_fatal_function. - (internal_error): Renamed from fatal. - (error_recursion, fancy_abort): Call internal_error instead of fatal. - * dwarf2out.c (get_cfa_from_loc_descr): Likewise. - * emit-rtl.c (gen_realpart, gen_imagpart): Likewise. - * expr.c (check_max_integer_computation_mode, expand_expr): Likewise. - * flow.c (verify_flow_info): Likewise. - * config/arm/arm.c (thumb_unexpanded_epilogue): Likewise. - * config/mips/mips.c (save_restore_insns): Likewise. - - * except.c (duplicate_eh_handlers): Call abort instead of fatal. - * flow.c (verify_flow_info): Likewise. - * config/arm/arm.c (thumb_load_double_from_address): Likewise. - * config/avr/avr.c (pttreg_to_str, unique_section): Likewise. - (avr_normalize_condition): Likewise. - * config/c4x/c4x.c (c4x_emit_libcall, c4x_valid_operands): Likewise. - * config/dsp16xx/dsp16xx.c (dsp16xx_reg_class_from_letter): Likewise. - (limit_reload_class, double_reg_to_memory): Likewise. - (print_operand_address, emit_1600_code_shift): Likewise. - (gen_tst_reg, gen_compare_reg): Likewise. - * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Likewise. - * config/dsp16xx/dsp16xx.c (dsp16xx_invalid_register_for_compare): - Deleted. - * config/dsp16xx/dsp16xx.md (unnamed cmphi): Call abort instead of it. - - * c-parse.in (methoddef): Call fatal_error instead of fatal. - * objc/objc-act.c (build_ivar_chain): Likewise. - * dwarfout.c (dwarfout_init): Call fatal_io_error instead of - pfatal_with_name. - * graph.c (clean_graph_dump_file): Likewise. - * profile.c (init_branch_prob): Likewise. - * objc/objc-act.c (objc_init): Likewise. - - * config/arm/arm.c (arm_override_options): Make errors non-fatal. - * config/avr/avr.c (avr_override_options): Likewise. - * config/c4x/c4x.c (c4x_expand_prologue): Likewise. - * config/dsp16xx/dsp16xx.c (function_prologue): Likewise. - * config/h8300/h8300.c (h8300_init_once): Likewise. - * config/mips/mips.c (override_options): Likewise. - * config/i386/i386.c (override_options): Likewise, rework. - * config/m68k/m68k.c (override_options): Likewise. - - * config/dsp16xx/dsp16xx.c (print_operand): Call output_operand_lossage - instead of fatal. - * config/mips/mips.c (print_operand): Likewise. - * hash.c (hash_allocate): Don't check for failure returns from - obstack functions that can't fail. - (hash_table_init_n, hash_table_init): Likewise; also now return void. - * hash.h (hash_table_init_n, hash_table_init): Now return void. - * objc/objc_act.c (objc_check_decl): Remove unneeded fatal call. - (get_object_reference): Likewise. - -2001-02-04 Nick Clifton - - * config/arm/arm.c (all_cores): Add 710T, 720T, 740T, 940T, 9e, - StrongARM1110, 10TDMI, and 1020T. - -2001-02-04 Kaveh R. Ghazi - - * mips.h (MULTILIB_ISA_DEFAULT): Don't use #elif. - -2001-02-04 Alexandre Oliva - - * config/sh/sh.md (movdf load split): Pass register number to - FP_OR_XD_REGISTER_P. - -2001-02-04 Mark Mitchell - - * cppinit.c (BC): New macro. - (builtin_array): Add __GXX_WEAK__. - * cpplib.h (builtin_type): Add BT_WEAK. - * cppmacro.c (builtin_macro): Handle BT_WEAK. - * defaults.h (SUPPORTS_ONE_ONLY): Define. - * varasm.c (SUPPORTS_ONE_ONLY): Do not define. - -2001-02-03 Jakub Jelinek - - * cppinit.c (append_include_chain): Honor NO_IMPLICIT_EXTERN_C. - -2001-02-03 Neil Booth - - * cpphash.h: Rename _ALIGN POOL_ALIGN. - * cpplex.c (new_chunk, _cpp_pool_reserve): Update. - -2001-02-03 Neil Booth - - * cpphash.h: Rename ALIGN _ALIGN. - * cpplex.c (new_chunk, _cpp_pool_reserve): Update. - -Fri Feb 2 23:15:29 2001 Christopher Faylor - - * config/i386/cygwin.h (CPP_SPEC): Reorganize YA to better handle cross - compilation environment. - * config/i386/t-cygwin (T_CPPFLAGS): Define CYGWIN_CROSS_DIR to allow - control over location of cygwin includes and libs. - -2001-02-03 Michael Hayes - - * md.texi (Standard Names): remove reference to spur.md. - -2001-02-03 Michael Hayes - - * c4x.c (group1_reg_operand, group1_mem_operand, arx_reg_operand, - c4x_arn_reg_operand, c4x_arn_mem_operand): Do not check register - number before reload. - (c4x_adjust_cost): Return zero before reload. - * c4x.md (load_immed_address+1, load_immed_address+2): Do not - split before reload. - -2001-02-03 Herman A.J. ten Brugge - - * c4x.c (c4x_hard_regno_rename_ok): New. - * c4x-protos.h (c4x_hard_regno_rename_ok): New. - * c4x.h (HARD_REGNO_RENAME_OK): Define. - -Fri Feb 2 20:03:50 2001 Richard Kenner - - * diagnostic.h: Add missing "extern" in all declarations. - -2001-02-02 Alex Samuel - - * Makefile.in (gcc_gxx_target_include_dir): Generate dynamically - as for gcc_gxx_include_dir. - -2001-02-02 Neil Booth - - * cpp.texi, invoke.texi: Update -Wtraditional documentation. - -2001-02-02 Alexandre Oliva - - * config/sh/sh.c (output_far_jump): Don't use braf on SH1. Emit - label before alignment to be used as the braf base address. - * config/sh/sh.md (length): Use longer lengths for SH1 PIC far - branches. - (casesi_jump_2): Require at least TARGET_SH2. - - * config/float-sh.h (LDBL_EPSILON, LDBL_MIN, LDBL_MAX): Prevent - truncation to 32-bit doubles on -m3e and -m4-single-only. - -2001-02-02 Mark Mitchell - - * gcc.c (init_gcc_specs): New function. Make -shared-libgcc - the default when building a shared object. - (init_spec): Use it. - * testsuite/lib/g++.exp: Include the directory where libgcc - is located to the LD_LIBRARY_PATH list. - * invoke.texi (-shared-libgcc): Document the cases in which - GCC defaults to using the shared libgcc. - -2001-02-02 Alexandre Oliva - - * config/fp-bit.h (MAX_USI_INT, MAX_SI_INT): Don't assume - unsigned is wide enough. - (BITS_PER_SI): New. - * config/fp-bit.c (_fpmul_parts): Don't assume 32-bits SI. - (si_to_float): Likewise. - (float_to_si, float_to_usi): Use BITS_PER_SI. - -2001-02-01 Jeffrey Oldham - - * dwarf2out.c: Added explanation of abbreviations. - (def_cfa_1): Added comments listing DWARF2 instructions. - (cfa_temp_reg): Removed in favor of cfa_temp. - (cfa_temp_value): Removed in favor of cfa_temp. - (cfa_temp): New global variable. - (dwarf2out_frame_debug_expr): Added extensive introductory - comments explaining the function's transformations. Revised to - use cfa_temp. Added some rtx checking. Generalize IOR case. - (dwarf2out_frame_debug): Revised to use cfa_temp. - (output_aranges): Cast as "unsigned" to avoid warning. - * rtl.texi (RTX_FRAME_RELATED_P): Revise entry to emphasize better - explain which instructions must be marked. - -2001-02-01 Richard Henderson - - * local-alloc.c (update_equiv_regs): Copy INSN_CODE to the - new instruction. - -2001-02-01 Alexandre Oliva - - * config/sh/crt1.asm (main_k): Modified so that start calls - ___setup_argv_and_call_main. - -2001-02-01 Neil Booth - - * cpphash.h (struct cpp_buffer): Move saved_flags from cpp_reader. - * cpplex.c (_cpp_lex_token): New token picks up the saved flags, - and AVOID_LPASTE is cleared on meeting an unescaped newline. - * cppmacro.c (builtin_macro): Set builtin flags here. - (paste_all_tokens): Preserve AVOID_LPASTE on pasted token. - (replace_args): Clarify intent. - (cpp_get_token): Macro expansion tokens get the saved flags. - Update. - * cppmain.c (scan_buffer): Remove now-redundant print.printed - check. - -2001-02-01 Jeffrey Oldham - - * config/mips/iris6.h (SUPPORTS_INIT_PRIORITY): Reverse change of - 2001-Jan-29. - -Thu Feb 1 07:22:41 2001 Richard Kenner - - * builtins.c (expand_builtin_alloca): allocate_dynamic_stack_space - returns Pmode pseudo, but we need ptr_mode. - * explow.c (allocate_dynamic_stack_space): Use plus_constant. - Remove bogus conversions; use HOST_WIDE_INT for size. - Don't use TARGET if wrong mode. - - * config/i386/i386.c (ix86_compute_frame_size): Allow - stack_alignment_needed to be non-default even if size is zero. - -2001-01-31 Alan Modra - - * pa.c (hppa_init_pic_save): New function. - * pa.h (hppa_init_pic_save): Declare. - * pa.md (call, call_value, sibcall, sibcall_value): Use - the above instead of duplicated code. - - * pa.c (hppa_encode_label): Correct size of alloca buffer - so we don't overrun it. Correct leading `*' case. - * pa.h (STRIP_NAME_ENCODING): Simplify now that we don't - need to handle `*@'. - (FUNCTION_NAME_P): Likewise. - -2001-01-31 Richard Henderson - - * config.gcc (alpha-osf5): Use float-i128.h. - - * config/float-i128.h (FLT_EVAL_METHOD, DECIMAL_DIG): Define. - * config/float-i32.h: Likewise. - * config/float-i64.h: Likewise. - * config/float-sh.h: Likewise. - * config/float-sparc.h: Likewise. - -2001-01-31 DJ Delorie - - * expmed.c (extract_bit_field): allow non-integral modes if we - want to extract a whole register from itself. - -2001-01-31 Jakub Jelinek - - * c-typeck.c (set_init_index): If first is equal to last, assume as - if it was not a range at all. - -2001-01-31 Alexandre Oliva - - * config/fp-bit.c: Include tm.h. - (float_to_si): Don't assume SImode is 32-bits wide. - (float_to_usi): Likewise. - -2001-01-31 Joseph S. Myers - - * c-parse.in (structsp): Pedwarn when "enum foo" refers to an - incomplete type. - (typename): Call pending_xref_error after parsing typed_typespecs. - * c-decl.c (lookup_tag): Give error immediately rather than - leaving it pending if the tag of the wrong type is in the same - binding level. - (xref_tag): Don't pedwarn for forward declarations of enum types - here. - * gcc.texi (Actual Bugs): Remove entry for misuse of struct, union - and enum tags. - -2001-01-31 Alexandre Oliva - - * config/float-sparc.h (LDBL_MAX) [sparc32]: Fix typo. - -2001-01-31 Neil Booth - - * cpplib.c (T_ELIF): Move to STDC89, not that it matters. - (_cpp_handle_directive): Suggest not using #elif with -Wtraditional. - -2001-01-31 Neil Booth - - * cpphash.h (struct cpp_reader): New saved_flags. - * cppmacro.c (cpp_get_token): Use saved_flags to remember - to avoid a paste after a pasted token. - -2001-01-31 Alexandre Oliva - - * libgcc2.h (Wtype_MAX, Wtype_MIN): Define. - * libgcc2.c (__fixunssfSI, __fixunsdfSI, __fixunsxfSI): Use - Wtype_MIN instead of LONG_MIN. - -2001-01-30 Jeffrey Oldham - - * fixinc/fixincl.tpl: Add 2001 to copyright. Change name of - README file. - * fixinc/fixincl.x: Regenerated. - * fixinc/inclhack.def (irix_limits_const): New definition to - convert "const" to "__const" in limits.h. - -2001-01-30 Jeffrey Oldham - - * fixinc/genfixes (AG): Fix "autogen4" thinko. - -2001-01-30 Herman A.J. ten Brugge - - * regmove.c (try_auto_increment): Change REG_DEAD into REG_UNUSED - when register dies in the insn. - -2001-01-30 Neil Booth - - * diagnostic.c (fatal): Fix word wrap. - -2001-01-30 Alexandre Oliva - - * combine.c (try_combine): Fix SUBREG setting for - HOST_BITS_PER_WIDE_INT >= 2 * BITS_PER_WORD. - -2001-01-30 Franz Sirl - - * jump.c (comparison_dominates_p): Don't try to handle UNKNOWN - comparison codes. - -2001-01-30 Neil Booth - - * c-decl.c (c_expand_body): Check TYPE_SIZE_UNIT (ret_type) - is not NULL. - * toplev.c (decode_W_option): Update warn_larger_than - unconditionally for each processed switch. - -2001-01-30 John David Anglin - - * pa.c (pa_init_machine_status): Initialize pic_offset_table_save_rtx - to NULL_RTX. - (hppa_expand_prologue): Delete code to save pic offset table register - in the function prologue. - * pa.h (PIC_OFFSET_TABLE_SAVE_RTX): Correct type in comment. - * pa.md (call, call_value, sibcall, sibcall_value): Save the pic offset - table register at the beginning of the function after the prologue. - -2001-01-29 lars brinkhoff - - * tm.texi (PUSH_ROUNDING): Remove duplicate lines. - -2001-01-29 John David Anglin - Jeff Law - - * pa.md (return): Revise comment for trivial return. - (return_internal): Non-trivial return pattern for non-PIC code. - (return_internal_pic): Non-trivial return pattern for PIC code. - It uses the PIC register to ensure it is restored after - function calls. - (epilogue): Generate appropriate return for PIC and non-PIC code. - -Mon Jan 29 23:53:14 2001 Christopher Faylor - - * config/i386/cygwin.h: Fix -mno-cygwin search path for link. - -2001-01-29 DJ Delorie - - * combine.c (if_then_else_cond): Pass the correct mode to - operand_subword() for constants. - -Mon Jan 29 20:38:19 2001 Christopher Faylor - - * config/i386/cygwin.h: Add w32api to include search. Search different - directories in a cross-build environment. - -2001-11-29 Tim Josling - - * tree.h (TYPE_STUB_DECL): Add documentation. - -2001-11-29 Laurynas Biveinis - - * sdbout.c (sdbout_one_type): Skip types with indeterminate size. - (sdbout_field_types): Likwise. Fix use of host_integerp. - -2001-01-29 Thomas Pfaff - - * mingw32.h: Override STARTFILE_SPEC and LINK_SPEC declared in - cygwin.h. - -2001-01-29 Jeffrey Oldham - - * config/mips/iris6.h (SUPPORTS_INIT_PRIORITY): Revise definition - to use flag_gnu_linker. - -2001-01-29 Neil Booth - - * cpplib.c (T_BAD_DIRECTIVE): Remove. - (_cpp_init_stacks): Loop from 0 to N_DIRECTIVES - 1. - -2001-01-29 Joseph S. Myers - - * tree.c, tree.h (build_parse_node): Remove; was identical to - build_nt. - * c-lang.c (start_cdtor), objc/objc-act.c - (build_module_descriptor): Use build_nt instead of - build_parse_node. - -2001-01-29 Jakub Jelinek - - * config/i386/i386.md (addqi_1_lea): Fix mode (QI instead of HI). - (testqi_1, andqi_2): If widening to SImode, make sure CONST_INT does - not have any upper bits set. - -2001-01-29 Phil Edwards - - * COPYING.LIB: Update to LGPL 2.1 from the FSF. - -2001-01-28 Kaveh R. Ghazi - - * stmt.c (estimate_case_costs): Use integer_minus_one_node. - - * tree.c (build_common_tree_nodes_2): Set integer_minus_one_node. - - * tree.h (tree_index): Add new element TI_INTEGER_MINUS_ONE. - (integer_minus_one_node): Define. - -2001-01-28 Alexandre Oliva - - * Makefile.in (bootstrap2-lean): Fix typo. - -2001-01-28 Neil Booth - - * cpphash.c (_cpp_cleanup_hashtable, _cpp_lookup_with_hash) - : Don't set fe_value. - * cpplib.h (AVOID_LPASTE): New flag. - (struct cpp_hashnode): Remove fe_value. - * cpplex.c (cpp_avoid_paste): Don't paste '.' with a number. - * cppmacro.c (builtin_macro): Don't set flags here. - (replace_args): Set AVOID_LPASTE flag on first token of an - argument, and the token following it. - (cpp_get_token): Set AVOID_LPASTE flag on first token of a - macro expansion, and on the token following it. Do it for - builtins too. - * cppmain.c (scan_buffer): Avoid pasting only flagged tokens. - -2001-01-27 Richard Henderson - - * config/alpha/t-ieee: Remove multilibbing. - (TARGET_LIBGCC2_CFLAGS): Add -mieee. - -2001-01-27 Kaveh R. Ghazi - - * configure.in: Arrange to include defaults.h in [ht]config.h/tm.h. - - * Makefile.in: Remove all dependencies on defaults.h. - * builtins.c: Don't include defaults.h. - * c-common.c: Likewise. - * c-decl.c: Likewise. - * c-pragma.c: Likewise. - * c-typeck.c: Likewise. - * combine.c: Likewise. - * i386.c: Likewise. - * frame-ia64.c: Likewise. - * cppexp.c: Likewise. - * crtstuff.c: Likewise. - * dbxout.c: Likewise. - * dwarf2out.c: Likewise. - * dwarfout.c: Likewise. - * emit-rtl.c: Likewise. - * except.c: Likewise. - * expr.c: Likewise. - * final.c: Likewise. - * frame-dwarf2.c: Likewise. - * libgcc2.c: Likewise. - * optabs.c: Likewise. - * profile.c: Likewise. - * sdbout.c: Likewise. - * toplev.c: Likewise. - * tradcif.y: Likewise. - * tree.c: Likewise. - * varasm.c: Likewise. - -2001-01-27 Kaveh R. Ghazi - - * builtins.c (expand_builtin_fputs): Use size_one_node when - transforming into fwrite. - -2001-01-27 Joseph S. Myers - - * extend.texi (Attribute Syntax): New section. - -2001-01-27 Michael Sokolov - - * fixproto: Correctly install synthesized unistd.h and stdlib.h when - they didn't need fixing. - -2001-01-27 Janis Johnson - - * config.gcc (i[34567]86-sequent-{ptx4*,sysv4*}): Use usegas.h - if appropriate. - * config/ptx4.h: Several fixes to build on DYNIX/ptx v4.[456], and - to remove macro definitions that are duplicated from elfos.h. - -2001-01-27 Richard Henderson - - * config/i386/sco5gas.h: Move ... - * config/usegas.h: ... here. - * config.gcc (i[34567]86-*-sco3.2v5) [tm_file]: Update. - -2001-01-27 Jakub Jelinek - - * c-typeck.c (struct constructor_stack): Add range_stack member. - (really_start_incremental_init): Clear it. - (push_init_level): Save constructor_range_stack and clear it if - pushing explicit braces. - (pop_init_level): abort if constructor_range_stack is nonzero at - explicit closing brace. Restore saved constructor_range_stack if - not implicit. - -2001-01-27 Alexandre Oliva - - * expr.c (emit_move_insn): Add REG_EQUAL note when constant loaded - into register was forced into memory. - -2001-01-27 Alexandre Oliva - - * Makefile.in: Remove uses of + before $(MAKE). - -2001-01-26 Richard Henderson - - * stmt.c (cost_table): Remove. - (COST_TABLE, cost_table_initialized): New. - (estimate_case_costs): Use the later instead of the former. - (balance_case_nodes): Likewise. - -2001-01-26 Richard Henderson - - * alias.c (objects_must_conflict_p): Read-only slots may not - conflict despite having the same type. - -2001-01-27 Michael Hayes - - * loop.c (loop_giv_reduce_benefit): Copy mode size into - int variable. - (check_ext_dependant_givs): Initialize u_start_val and - u_end_val. - (load_mems): Make last_max_reg unsigned. - (try_swap_copy_prop): Use INSN_P and initialize set. - -Fri Jan 26 23:22:58 2001 Denis Chertykov - - * README.AVR : Removed. - -Fri Jan 26 11:37:26 2001 Jeffrey A Law (law@cygnus.com) - - * pa-64.h (text_section): Remove declaration. - - * pa.md (return_internal): Remove mode on PIC register use. - -2001-01-25 lars brinkhoff - - * tm.texi (DATA_ALIGNMENT, LOCAL_ALIGNMENT, ASM_OPEN_PAREN, - ASM_CLOSE_PAREN): fix typos. - -2001-01-25 Mark Mitchell - - * acconfig.h: Define `const' to the empty string if neither - __STDC__ nor __cplusplus is defined. - * config.in: Regenerated. - -2001-01-25 David Edelsohn - - * config.gcc (rs6000-ibm-aix[5-9]*): Change to aix51.h. - * collect2.c (main): Delete importf. Add ".obj" file extension. - (GCC_CHECK_HDR): Handle AIX V5 new magic number. - (aix_std_libs): Add additional AIX libraries to skip. - * config/rs6000/aix.h (MY_ISCOFF): Add AIX V5 new magic number. - * config/rs6000/aix51.h: New file. - -2001-01-25 Michael Hayes - - * loop.c (loop_call_insn_emit_before, loop_call_insn_hoist): New. - (loop_insn_emit_before): No longer static. - (move_movables): Replace emit_insn_after with loop_insn_emit_after. - (loop_givs_rescan, load_mems): Likewise. - (check_dbra_loop): Replace emit_insn_before with loop_insn_emit_before. - (maybe_eliminate_biv_1): - (move_movables): Replace emit_call_insn_before with - loop_call_insn_hoist. - * loop.h (loop_insn_emit_before): Add. - * unroll.c (copy_loop_body): Replace emit_insn_before with - loop_insn_emit_before. - -2001-01-25 Neil Booth - - * diagnostic.c (fatal): Request preprocessed source. - -Thu Jan 25 02:01:16 2001 J"orn Rennecke - - * c-decl.c (duplicate_decls): If different_binding_level is nonzero, - olddecl has argument types and newdecl has none, use the argument - types from olddecl. - -2001-01-24 Ulrich Drepper - - * dwarf2out.c (prefix_of): New function. Determine longest common - prefix of the two arguments. The units are whole path components. - (output_file_names): When adding a new directory find the one entry - with the longest common prefix already in the list. Artificially - generate entry if there is none for this prefix. - Fix test to check whether the zeroth directory entry is used. - -Wed Jan 24 23:51:55 2001 J"orn Rennecke - - * reload1.c (reload_reg_free_for_value_p): New parameter start_regno. - Changed all callers. Take it into account when deciding if a - previously loaded value matches. - -2001-01-24 Richard Henderson - - * reload.c (find_reloads_subreg_address): Fail the substitution - if the resulting address is insufficiently aligned. - -2001-01-24 DJ Delorie - - * combine.c (combine_simplify_rtx): If the modes are all VOIDmode, - check the original operand's mode also. - * simplify-rtx.c (simplify_ternary_operation): Ditto. - -2001-01-24 Joseph S. Myers - - * c-parse.in (cast_expr): Move compound literals from here ... - (primary): ... to here. Use standard terminology "compound - literal" instead of "constructor expression". - -2001-01-24 Joseph S. Myers - - * gcc.1, cpp.1: Regenerate. - -2001-01-24 Alexandre Oliva - - * calls.c (emit_library_call_value_1): Memory slot for - pass-by-reference argument should have the mode of the argument, - not of the pointer to it. - -2001-01-24 Tom Tromey - - * gcc.texi (G++ and GCC): Mention gcj manual. - (Standards): Link to section of manual mentioning gcj/Java - compatibility. - -2001-01-24 Jakub Jelinek - - * cppfiles.c (_cpp_read_file): Add to dependencies if requested. - * cppinit.c (cpp_start_read): Remove deps_add_dep call. - * tradcpp.c (main): Add -imacros or -include'd dependencies - for -M*. - * cpp.texi (-M, -MM): Document -M -include behavior. - -2001-01-24 Roger Collins - - * config/i386/xm-i386.h: Make __i386__ a boolean macro. - -2001-01-24 Will Cohen - - * config/mips/abi64.h (RETURN_IN_MEMORY): Always take into account - whether registers are 32 bits or 64 bits in size. - -2001-01-24 Ben Elliston - - * config/m32r/m32r.h (PREDICATE_CODES): Remove m32r_not_same_reg. - -2001-01-24 Richard Henderson - - * config/alpha/alpha.md (builtin_longjmp_internal): New. - (builtin_longjmp): Use it instead of emit_indirect_jump. - -2001-01-23 John David Anglin - - * bb-reorder.c (make_reorder_chain_1): Handle case where - jump edge goes to the same block as the fallthru edge. - -2001-01-23 Jim Wilson - - * dwarf2out.c (dwarf2out_line): Make last_file_num be unsigned. - * frame.h (__ia64_personality_v1): Add prototype. - * libgcc2.c (ia64_throw_helper): Change personality declaration to - prototype form. Add void * cast to first argument to personality - call. - * real.c (e113toe): Surround with INTEL_EXTENDED_IEEE_FORMAT ifdefs. - (asctoe113): Likewise. - * config/ia64/frame-ia64.c: Include eh-common.h. - * config/ia64/ia64-protos.h (sdata_section, sbbs_section): Add - prototypes. - * config/ia64/ia64.c (emit_insn_group_barriers): Add ATTRIBUTE_UNUSED - to dump parameter. - (itanium_split_issue): Add prototype. - (gen_nop_type): Ifdef out. - (find_best_packet): Initialize best_packet. - (ia64_encode_section_info): New local string. Use for ggc_alloc_string - result. - * config/ia64/ia64.h (ASM_OUTPUT_LONG_DOUBLE): Use 0L not 0. - * config/ia64/ia64.md (bsp_value): Add explicit stop bit at start. - (flushrs): Add explicit stop bit at end. - * config/ia64/lib1funcs.asm (__ia64_restore_stack_nonlocal): Change - trailing \ to >. - -2001-01-23 Chris Demetriou - - * libgcc-std.ver (GCC_3.0): Add __terminate_func_set to list - of EH symbols. - * libgcc2.c (__terminate_func): Make variable static. - (__terminate_set_func): New function to set __terminate_func. - * libgcc2.h (__terminate_func_ptr): New typedef. - (__terminate_set_func): New function. - -2001-01-23 Richard Henderson - - * flow.c (init_propagate_block_info): Don't consider unchanging - memories for dead frame store elimination. - -2001-01-23 Richard Henderson - - * varasm.c (UNIQUE_SECTION): Move default implementation ... - * defaults.h: ... here. - -2001-01-24 Michael Hayes - - * c4x.h (TARGET_LOAD_DIRECT_MEMS): Define. - -2001-01-23 Neil Booth - - * c-lex.c (lex_charconst): Fix typo: s/p/str. - -2001-01-23 Franz Sirl - - * rs6000.h (rs6000_return_addr): Move prototype from here... - * rs6000-protos.h (rs6000_return_addr): ...to here. - (rs6000_init_expanders): Delete prototype. - -2001-01-23 Nick Clifton - - * invoke.texi: Replace , with \, inside @gccoptlist macros. - (Spec Files): Document %B and %j and %. and %v3 and %M and - %{S*&T} spec switches. - -2001-01-24 Herman A.J. ten Brugge - - * c4x.c (c4x_r11_set_p): Calculate rtx code correctly. - -2001-01-23 Chris Demetriou - Neil Booth - - * cpperror.c: Merge handlers of PEDWARN and WARNING. - Have -Werror make pedantic warnings errors, like the - rest of GCC. - -2001-01-23 Phil Edwards - - * c-tree.texi (IDENTIFIER_LENGTH): Fix typo. - -2001-01-23 Jakub Jelinek - - * integrate.h (struct inline_remap): Add compare_src, compare_mode. - * integrate.c (expand_inline_function): Initialize them. - (subst_constants): If changing COMPARE so that both its arguments - will be VOIDmode and the comparison mode will be lost, note - compare_mode. Use the recorded compare_mode to optimize - IF_THEN_ELSE. - -2001-01-23 Jason Merrill - - * dwarf2out.c (new_die): Use xcalloc. - (output_die): Abort rather than emit a local reference to offset 0. - -2001-01-17 Andrew Haley - - * libgcc2.c (get_reg_addr): Don't abort if we haven't got a copy - of a saved register; return NULL instead. - (copy_reg): Take a pointer to a source register rather than a - frame_state. - (next_stack_level): Remember the address in the stack frame of all - saved registers. - Use the saved register pointer array as the source of the CFA. - (throw_helper): Rewrite. Unwind once rather than twice and keep - track of saved registers as we go. - -2001-01-23 Herman A.J. ten Brugge - - * c4x-protos.h (c4x_legitimize_reload_address): Remove. - * c4x.c (c4x_legitimize_reload_address): Remove. - * c4x.h (LEGITIMIZE_RELOAD_ADDRESS): Rewrite to generate correct - reload address for ldp(k) insn. - -Mon Jan 22 20:53:47 2001 Jeffrey A Law (law@cygnus.com) - - * pa.md (return_internal): Add a USE of the PIC register to ensure - it is restored after each call. - (return expander): Corresponding changes. - -2001-01-22 Franz Sirl - - * rs6000.h (INIT_EXPANDERS): Delete. - (RETURN_ADDR_RTX): Call rs6000_return_addr(). - * rs6000.c (rs6000_override_options): Call *_machine_status from - here... - (rs6000_init_expanders): ...instead of here. Delete. - (rs6000_mark_machine_status): New function. - (rs6000_init_machine_status): Use xcalloc. - (rs6000_return_addr): Generate RTX for the return address. - (rs6000_ra_ever_killed): New, check if LR was ever destroyed. - (rs6000_stack_info): Use it. - -2001-01-22 Thomas Pfaff - - * gthr-win32.h: Include errno.h to get a declaration for - EINVAL and _mingw.h if the target is mingw32. - -2001-01-22 Andres Felipe Vargas - - * cpp.texi: Correct typos. - -Mon Jan 22 13:59:09 2001 Richard Kenner - - * explow.c (probe_stack_range): Ensure value passed to - stack_check_libfunc is ptr_mode, not Pmode. - -Mon Jan 22 16:53:06 2001 J"orn Rennecke - - * recog.c (validate_replace_rtx_1): In ZERO_EXTEND / SIGN_EXTEND - case, don't use operand_subword to calculate a SUBREG that is - wider than a word. - - * rtl.texi: Comparisons yield 0 or STORE_FLAG_VALUE. - -2001-01-22 Herman A.J. ten Brugge - - * c4x.c (c4x_valid_rptb_p, c4x_label_ref_used_p): New functions. - (c4x_rptb_insert): Call c4x_valid_rptb_p to check if repeat block is - valid. If not replace it by equivalent insns. - -2001-01-22 Herman A.J. ten Brugge - - * c4x.c (c4x_check_legit_addr): Only check CONST. Not if CONST - contains SYMBOL_REF, LABEL_REF and CONST_INT. - (c4x_U_constraint, symbolic_address_operand): Likewise. - (c4x_immed_float_constant): Do not check if CONST_DOUBLE is in - memory. - (c4x_r11_set_p, c4x_check_laj_p): New functions. - * c4x-protos.h (c4x_check_laj_p): Add prototype. - * c4x.md (in_annul_slot_3): Do not allow auto-increment in last - anulling slot because of silicon bug. - (laj, lajv): Call c4x_check_laj_p to check for silicon bug. - -2001-01-22 Alan Modra - - * cppexp.c (parse_charconst): Change `mask' type to agree - with parse_escape. - -2001-01-21 Richard Henderson - - * config/i386/i386.c (ix86_asm_file_end): Disable putting - pic_label_name in a linkonce section. - -2001-01-17 Philipp Thomas - - * aclocal.m4 (AM_WITH_NLS): Add -lintl to LIBS if gettext was - found in libintl. - * configure: Regenerate. - -Sun Jan 21 02:38:56 2001 J"orn Rennecke - - * expmed.c (synth_mult, expand_mult_highpart, expand_divmod): Guard - uses of shift_cost, shiftadd_cost and shiftsub_cost with bound checks. - -Sun Jan 21 09:44:17 2001 Denis Chertykov - - * config/avr/avr.c (ret_cond_branch): New argument (reverse) added. - If REVERSE nonzero then condition code in X must be reversed. - (encode_section_info): Optimize if/else. - (avr_function_value): Fix formatting. - - * config/avr/avr.md (branch): Call to ret_cond_branch changed. - (difficult_branch): Likewise. - (rvbranch): Likewise. - (difficult_rvbranch): Likewise. - - * config/avr/avr-protos.h (ret_cond_branch): Prototype changed. - - * config/avr/libgcc.S: Fix comment. - -2001-01-20 Michael Sokolov - - * sdbout.c (PUT_SDB_DEF): Fix after last bogus change. - -2001-01-20 Michael Sokolov - - * cppinit.c (INO_T_EQ): Don't use #elif, fix formatting. - -2001-01-20 Michael Sokolov - - * aclocal.m4 (gcc_AC_FUNC_STRSTR): New macro. - * configure.in (gcc_AC_FUNC_STRSTR): Add invokation. - * configure, config.in: Regenerate. - * Makefile.in (STRSTR, HOST_STRSTR, USE_HOST_STRSTR): New variables. - (LIBDEPS, HOST_LIBDEPS, LIBS, HOST_LIBS): Add strstr handling. - (strstr.o, $(HOST_PREFIX_1)strstr.o): New rules. - (doprint.o): New rule. - -2001-01-20 Joseph S. Myers - - * c-typeck.c (digest_init): Handle boolean types as scalars. - -Sat Jan 20 12:46:57 2001 Richard Kenner - - * stmt.c (expand_return): Don't return anything if size is zero. - Delete redundant assignment to BYTES. - * expr.c (move_block_from_reg): Do nothing if NREGS is zero. - -2001-01-20 Marek Michalkiewicz - - * config/avr/avr.h (INIT_TARGET_OPTABS): Remove most of it, was - the same as the default library function names. - * config/avr/avr.md: Document special characters after '%'. - (mulqi3, mulhi3, mulsi3): Call libgcc.S functions ourselves, - knowing which of the call-used registers are really clobbered. - (divmodqi4, udivmodqi4, divmodhi4, udivmodhi4, divmodsi4, udivmodsi4): - New. Both quotient and remainder from one libgcc.S call. - * config/avr/libgcc.S: Optimize mul/divmod for the new insns above, - clobber as few registers as possible. - * config/avr/t-avr (LIB1ASMFUNCS): Adjust for the above changes. - -2001-01-20 Neil Booth - - * cppmacro.c (funlike_invocation_p): Don't move back up to the - context of the top of the stack. - -2001-01-20 Jakub Jelinek - - * function.c (fixup_var_refs): Move CALL_PLACEHOLDER handling... - (fixup_var_refs_insns): ...here. - -2001-01-20 Zack Weinberg - - * function.c (fixup_var_refs_insns): Break up into - fixup_var_refs_insn [body of loop], fixup_var_refs_insns - [loop over entire insn list], and fixup_var_refs_insns_with_hash - [loop over hash table entries]. - (fixup_var_refs): Adjust calls to fixup_var_refs_insns and/or - fixup_var_refs_insns_with_hash, to match above changes. - -2001-01-19 John David Anglin - - * Makefile.in (ORDINARY_FLAGS_TO_PASS): Add MAKEOVERRIDES variable. - (libgcc.a): Likewise. - (stmp-multilib): Likewise. - (STAGE2_FLAGS_TO_PASS): Likewise. - -2001-01-19 Alexandre Oliva - - * config/sh/sh.c (prepare_move_operands) [PIC]: Use operands[0] as - temporary if no_new_pseudos. - -2001-01-19 Neil Booth - - * cppinternals.texi: Update. - -2001-01-19 Richard Earnshaw - - * arm.c (arm_init_builtins): Re-enable builtins. - -Fri Jan 19 13:02:56 2001 Richard Kenner - - * rtl.texi (SET, CLOBBER): Document PARALLEL as SET_DEST possibility. - * flow.c (mark_set_1, case PARALLEL): Don't require BLKmode, allow - element to be null, and always expect an EXPR_LIST. - * rtlanal.c (reg_overlap_mentioned_p, note_stores): Likewise. - * sched-deps.c (sched_analyze_1): Likewise. - * sched-rgn.c (check_live_1, update_live_1): Likewise. - - * regclass.c (max_set_parallel): New variable. - (reg_scan): Take it into account in computation of max_parallel. - (reg_scan_mark_refs, case SET): Compute it. - - * alias.c (rtx_equal_for_memref_p, case ADDRESSOF): Don't assume - args are REG. - * expr.c (store_constructor): Don't look at MEM_ALIAS_SET unless MEM. - * function.c (assign_parms): Use INTVAL for a CONST_INT. - -2001-01-19 Jason Merrill - - * dwarf2out.c (gen_subprogram_die): Don't reuse the in-class decl - for the abstract instance of an inline function. - -Fri Jan 19 14:31:35 2001 Alexandre Oliva - J"orn Rennecke - - * reload1.c (move2add_note_store): Treat all registers directly or - indirectly derived from a base register as members of the same set - of values. - (reload_cse_move2add): Adjust accordingly. Take mode and offset - of base register into account. - -Fri Jan 19 09:18:42 2001 J"orn Rennecke - - * alias.c (find_base_value): Recognize TRUNCATE. - (record_set): In PLUS case, invalidate if other summand is also a - base value. - -Thu Jan 18 06:43:04 2001 Richard Kenner - - * flow.c (mark_set_1, case PARALLEL): New case; rework to allow - entry to be EXPR_LIST. - * rtlanal.c (reg_overlap_mentioned_p): Allow PARALLEL in SET to - be an EXPR_LIST (but not null, which other code doesn't allow). - (note_stores): Properly handle PARALLEL in SET. - Recursively call for top-level PARALLEL. - * sched-deps.c (sched_analyze_1): Handle EXPR_LIST in PARALLEL in SET. - * sched-rgn.c (check_live_1, update_live_1): Likewise. - - * config.gcc (rs6000-ibm-aix*, rs6000-bull-bosx): Add rs6000/aix.h. - -2001-01-18 Neil Booth - - * cpplib.c (_cpp_handle_directive): Use buffer->was_skipping, - not pfile->skipping (== 0). - -2001-01-17 Nick Clifton - - * config/rs6000/rs6000.c: Add prototypes for {init|free}_ - machine_status. - -2001-01-17 Jim Wilson - - * invoke.texi (IA-64 options): Improve. - -2001-01-17 Tom Tromey - - * invoke.texi (Optimize Options): Use `{}' to around @samp - argument. - -2001-01-17 Aldy Hernandez - - * invoke.texi (-fno-guess-branch-probability): New option. - -Wed Jan 17 13:26:34 2001 Richard Kenner - - * combine.c (try_combine): Don't set i3_subst_into_i2 for - case of making new double-word constant. - Revert last change: instead just test i3_subst_into_i2. - -2001-01-17 Jakub Jelinek - - * config/i386/i386.md (cmpqi_minus_1): Use {b} for QImode operation. - Use q constraints instead of r. - -Tue Jan 16 22:23:04 2001 Alan Modra (alan@linuxcare.com.au) - - * config/pa/pa.h (PIC_OFFSET_TABLE_REGNUM_SAVED): Remove. - (machine_function): Define. - (PIC_OFFSET_TABLE_SAVE_RTX) : Define. - * config/pa/pa.c (pa_init_machine_status, pa_mark_machine_status, - pa_free_machine_status): New functions. - (override_options): Set {init,mark,free}_machine_status to above. - (hppa_expand_prologue): Use PIC_OFFSET_TABLE_SAVE_RTX instead of - PIC_OFFSET_TABLE_REGNUM_SAVED. - * config/pa/pa.md: Use PIC_OFFSET_TABLE_SAVE_RTX instead of - PIC_OFFSET_TABLE_REGNUM_SAVED throughout. - * config/pa/pa32-regs.h (CONDITIONAL_REGISTER_USAGE): Remove - references to PIC_OFFSET_TABLE_REGNUM_SAVED. - * config/pa/pa64-regs.h (CONDITIONAL_REGISTER_USAGE): Likewise. - -2001-01-15 DJ Delorie - - * Makefile.in (gcov.1): Protect against texi2pod/pod2man failing. - (cpp.1): Ditto. - (gcc.1): Ditto. - -Tue Jan 16 17:20:43 2001 Richard Kenner - - * flow.c (propagate_one_insn): Make trying to delete a prologue - or epilogue insn an ICE, not a warning. Allow doing this if - the current function returns with stack pointer depressed. - - * combine.c (try_combine): If i3_subst_into_i2, properly check for - I3 having more than one SET. - -2001-01-16 Jim Wilson - - * invoke.texi: Document IA-64 options. - - * config/ia64/ia64.c (ia64_print_operand_address): Delete 'B' support. - (fixup_errata): Delete TARGET_A_STEP use. - * config/ia64/ia64.h (MASK_A_STEP, TARGET_A_STEP): Delete. - (TARGET_SWITCHES): Delete -ma-step option. - * config/ia64/ia64.md (all FP patterns): Delete %B0. - (movqicc_astep, movqi_internal_astep, movhicc_astep, - movhi_internal_astep, movsicc_astep, movsi_internal_astep, movdi+1, - movdi_internal_astep, movsfcc_astep, movsf_internal_astep, - movdfcc_astep, movdf_internal_astep, movtfcc_astep, - movtf_internal_astep, cmovdi_internal_astep, cmovsi_internal_astep): - Delete. - (movqi_internal, movhi_internal, movsi_internal, movdi_internal, - movsf_internal, movdf_internal, movtf_internal, cmovdi_internal, - cmovsi_internal): Delete ! TARGET_A_STEP check. - -2001-01-16 Gerald Pfeifer - - * gcc.texi (Bug Lists): Do not mention newsgroups nor the - possibility to report bugs via postal mail. Change a URL and - merge in a nearly duplicate statement... - (Bug Reporting): ...from here. - (Service): Refer to the Bug Reporting section instead of - duplicating an URL. - (Contributing): Remove trivial explanations concerning snapshots. - -2001-01-16 Alan Modra - - * cppmain.c (general_init): Don't use ANSI prototype. - -2001-01-16 Tom Tromey - - * gcc.c (cpp_options): Added `*' to specs for -MF, -MQ, and -MT. - -2001-01-16 Richard Henderson - - * config/i386/i386.h: Fix comment typo. - * config/i386/i386.md (shift+compare pattern names): s/cmpno/cmp/ - (ashr+compare patterns): Match CCGOCmode not CCNOmode. - -2001-01-16 Phil Edwards - - * gcc.c: Revert previous -fsyntax-only-related change; move - to cp/g++spec.c. - -2001-01-16 Jakub Jelinek - - * config/i386/i386.c (fcmov_comparison_operator): Only initialize - inmode after checking GET_CODE (op). - -2001-01-16 Richard Henderson - - * flow.c (struct propagate_block_info): Add mem_set_list_len. - (MAX_MEM_SET_LIST_LEN): New. - (propagate_one_insn): Update mem_set_list_len. - (invalidate_mems_from_autoinc): Likewise. - (invalidate_mems_from_set): Likewise. - (mark_used_regs): Likewise. - (init_propagate_block_info): Likewise. Stop collecting memories - when we reach MAX_MEM_SET_LIST_LEN. - (mark_set_1): Likewise. - -2001-01-16 Richard Henderson - - * unroll.c (precondition_loop_p): Fail if no iteration - variable found. - -2001-01-16 Phil Edwards - - * gcc.c: When -fsyntax-only is given, do not complain about - unused libraries. - -2001-01-15 Richard Henderson - - * config/i386/i386.c (asm_output_function_prefix): Remove. - (ix86_asm_file_end): New. - (load_pic_register): Generate pic_label_name into a - statically allocated buffer. - * config/i386/i386-protos.h: Update. - * config/i386/i386.h (ASM_OUTPUT_FUNCTION_PREFIX): Remove. - (ASM_FILE_END): New. - * config/i386/i386afe.h: New file. - * config.gcc (i?86-*-elf) [tm_file]: Use it. - (i?86-*-{freebsd,linux*,moss*}): Likewise. - * config/elfos.h (ASM_FILE_END): Undef before redefinition. - * config/i386/cygwin.h (ASM_FILE_END): Likewise. - * config/i386/osfrose.h (ASM_FILE_END): Invoke ix86_asm_file_end. - * config/i386/sco5.h (ASM_FILE_END): Likewise. - * config/i386/winnt.c (i386_pe_asm_file_end): Likewise. - -2001-01-15 Joseph S. Myers - - * Makefile.in (install-man): Remove explicit dependency on - $(srcdir)/gcc.1. - - * configure.in, configure: Revert previous patch requiring perl - 5.6.0. - -2001-01-12 Aldy Hernandez - - * toplev.c (flag_guess_branch_prob): New. - (f_options): Add guess-branch-probability option. - (rest_of_decl_compilation): Only estimate branch probability if - flag set. - (main): set flag_guess_branch_prob. - - * flags.h (flag_guess_branch_prob): New. - -2001-01-15 DJ Delorie - - * gcc.texi (Makefile): Add documentation for Makefile targets. - -2001-01-15 Philip Blundell - - * config/arm/arm.c (arm_finalize_pic): New arg "prologue". - (is_pic): Delete. - * config/arm/arm-protos.h (arm_finalize_pic): Update prototype. - (is_pic): Delete declaration. - * config/arm/arm.h (FINALIZE_PIC): Update call to arm_finalize_pic. - (OUTPUT_INT_ADDR_CONST): Remove special handling of PIC address. - * config/arm/arm.md (builtin_setjmp_receiver): New. - -2001-01-15 Richard Earnshaw - - * arm.c (use_return_insn): Don't try to determine the function type - until after reload has completed. - (arm_output_epilogue): Don't adjust the sp value recovered from the - stack. - (emit_multi_reg_push): Don't record dwarf information for the pc. - * arm.md (eh_epilogue): The function type may have changed, so it - needs to be recalculated. - * arm/netbsd.h (DWARF2_UNWIND_INFO): Delete. Can now use dwarf2 - unwind tables on arm/netbsd. - -2001-01-15 Richard Earnshaw - - * arm.md (cbranchsi4): Correct calculation of branch ranges. - (negated_cbranchsi4): Likewise. - -2001-01-15 Richard Earnshaw - - * config/arm/semi.h (SUBTARGET_EXTRA_SPECS): Define. - (SUBTARGET_EXTRA_ASM_SPEC): Define to empty string. - (ASM_SPEC): Call subtarget_extra_asm_spec. Don't - pass -mapcs-* options to assembler. - * config/arm/elf.h (SUBTARGET_EXTRA_SPECS): Define. - (SUBTARGET_EXTRA_ASM_SPEC): Define to empty string. - (ASM_SPEC): Call subtarget_extra_asm_spec. - -2001-01-15 Andreas Jaeger - - * config/i386/i386.c (ix86_init_builtins): Make i size_t to remove - warnings. - (ix86_expand_builtin): Likewise. - - * gencodes.c (output_predicate_decls): Make i size_t to avoid - warning about comparison between signed and unsigned. - -2001-01-14 Geoffrey Keating - - * expr.c (do_jump): Treat VOIDmode CONST_DOUBLEs like CONST_INTs. - -2001-01-14 Ralf Baechle - - * config/mips/linux.h (SUBTARGET_CPP_SPEC): Default ABI is 32; change - SUBTARGET_CPP_SPEC appropriately. - -2001-01-12 Mark Mitchell - - * varasm.c (make_decl_rtl): Fix typo in last change. - -2001-01-14 Jeffrey Oldham - - * defaults.h (SUPPORTS_INIT_PRIORITY): New macro to indicate the - linker supports the init_priority C++ attribute. - * tm.texi (SUPPORTS_INIT_PRIORITY): Documentation for new macro. - * config/mips/iris6.h (SUPPORTS_INIT_PRIORITY): Indicate Irix - linker does not support init_priority C++ attribute. - -Sun Jan 14 22:31:30 2001 J"orn Rennecke - - * Makefile.in (libgcc1-test.o): Depends on stmp-int-hdrs. - -2001-01-14 Neil Booth - - * c-parse.in (finish_parse): Add comment about cpp_destroy. - * cp/lex.c (finish_parse): Similarly. - * cppinit.c (cpp_cleanup): Rename cpp_destroy for clarity. - Return the number of errors encountered. - * cpplib.h (cpp_cleanup): Rename cpp_destroy, return int. - * cppmain.c (main): Don't call cpp_destroy. - -2001-01-14 Joseph S. Myers - - * configure.in: Require at least perl 5.6.0 to regenerate - manpages. - * configure: Regenerate. - -2001-01-14 Richard Henderson - - * genrecog.c (DT_veclen_ge): New. - (add_to_sequence) [MATCH_PARALLEL]: Generate one. - (maybe_both_true_2): Simplify DT_veclen vs DT_veclen_ge. - (nodes_identical_1): Handle DT_veclen_ge. - (write_cond, debug_decision_2): Likewise. - -2001-01-14 Richard Earnshaw - - * arm.md (ldmsi_postinc, ldmsi, stmsi_postinc, smsi): Delete. Replace - with ... - (ldmsi_postinc[432], ldmsi[432], stmsi_postinc[432], stmsi[432]): New. - -2001-01-14 Neil Booth - - * cppmain.c (do_preprocessing): New function; most of the old - main. - (main): Call it to do most of the work. - (cb): Move from global scope to set_callbacks (). - (setup_callbacks): Get the callback pointer. - (general_init, printer_init): Clean up code and comments. - -2001-01-14 Richard Earnshaw - - * config/arm/semi.h (ASM_SPEC): Pass -k to the assembler when - compiling PIC. - -2001-01-14 Kazu Hirata - - * config/h8300/h8300.c (get_shift_alg): Update comments. - -Sun Jan 14 06:20:49 2001 Richard Kenner - - * ggc-page.c (alloc_annon): Call perror and correctly call exit. - (alloc_page, ggc_alloc): Add casts to remove warnings. - -2001-01-14 Geoffrey Keating - - * combine.c (simplify_comparison): Don't change `code' when - can't reverse comparison. - -2001-01-14 Richard Henderson - - * rtlanal.c (computed_jump_p_1): Rename from jmp_uses_reg_or_mem; - update all call sites. Return true for all non-label constants. - -Sun Jan 14 10:09:48 MET 2001 Jan hubicka - - * i386.c (ix86_expand_compare): Add bypass_test and second_test - parameters. - (ix86_expand_branch): Update. - (ix86_expand_setcc): Update to handle multiple test conditions. - (expand_int_movcc): Likewise. - (expand_fp_movcc): Likewise. - * i386-protos.h (ix86_expand_compare): New. - * i386.md (andqi_?_slp, orqi_?_slp): New. - (conditional trap expander): Update call to ix86_expand_compare. - -2001-01-14 Richard Henderson - - * config/vax/vax.md: Use nonimmediate_operand instead of - general_operand in destinations. - - * config/vax/vax.md (indirect_jump): Use register_operand. - - * config/vax/vax.h (RETURN_POPS_ARGS): Max at 255 arguments. - * config/vax/vax.md (call_pop): Turn into an expander. - (call_value_pop): Likewise. - (call, call_value): New. - -2001-01-14 Andreas Jaeger - - * config/i386/i386.c (ix86_split_fp_branch): Remove unused - variables. - (ix86_fp_compare_mode): Add unused attribute. - (ix86_expand_fp_movcc): Remove unused variable. - (ix86_expand_builtin): Make fcode unsigned. - - * expr.c (MOVE_BY_PIECES_P): Cast MOVE_RATIO to unsigned. - (expand_expr): Add cast to avoid signed warning. - (store_field): Likewise. - (store_constructor_field): Likewise. - (store_constructor): Likewise. - (store_expr): Likewise. - (clear_storage): Likewise. - (emit_group_store): Likewise. - (emit_group_load): Likewise. - -2001-01-13 Joseph S. Myers - - * c-common.c: Move format checking code to ... - * c-format.c: ... here. New file. Reorder some functions and - declarations. - (decl_handle_format_attribute, decl_handle_format_arg_attribute): - New functions. - * c-common.h (decl_handle_format_attribute, - decl_handle_format_arg_attribute): Declare. - * Makefile.in (C_AND_OBJC_OBJS): Add c-format.o. - (c-common.o): Adjust dependencies. - (c-format.o): New list of dependencies. - -2001-01-13 Jakub Jelinek - - * unroll.c (loop_iterations): If we cannot prove iteration variable - is set once in each iteration, punt. - -Sun Jan 14 00:23:15 2001 Denis Chertykov - - * config/avr/avr.md ("strlenhi"): Remove clobber of input address. - (*strlenhi): Remove clobber (which was buggy) of output address. - -2001-01-13 Joseph S. Myers - - * Makefile.in (generated-manpages): Add gcc.1 - ($(srcdir)/gcc.1): New target. - (maintainer-clean): Delete $(srcdir)/gcc.1. - * gcc.texi: Add macros @gccoptlist and @gol. - * invoke.texi: Include option summary in manpage. Mark up option - summary with @gccoptlist and @gol. Use @r in one place where - appropriate. - * texinfo.tex: Update to version 2000-12-11.07 from ftp.gnu.org. - * gcc.1: Generate from invoke.texi. - -2001-01-13 Richard Henderson - - * ggc-page.c (USING_MALLOC_PAGE_GROUPS): New; set if not using mmap. - (struct page_entry): Add group member. - (struct page_group): New. - (struct globals): Add page_groups member. - (alloc_anon): Only define for using mmap; remove valloc call. - (page_group_index): New. - (set_page_group_in_use): New. - (clear_page_group_in_use): New. - (alloc_page): Implement USING_MALLOC_PAGE_GROUPS. - (free_page, release_pages): Likewise. - * configure.in (with-gc): Default to ggc-page always. - -2001-01-13 Alexandre Oliva - - * reload1.c (replace_pseudos_in_call_usage): Use - reg_equiv_constant and reg_equiv_address, and don't try - regno_reg_rtx first. - -2001-01-13 Richard Henderson - - * ggc-page.c (alloc_page): Round up allocation size to one page. - Set e->order on extra pages. - -2001-01-13 Richard Henderson - - * genrecog.c (nodes_identical): Expand commentary. - (write_switch): Watch out for identical nodes. - -2001-01-13 Neil Booth - - * cppfiles.c (_cpp_fake_include): New function. - * cpphash.h (_cpp_fake_include): New. - * cpplib.c (do_line): Call _cpp_fake_include when entering - header files in preprocessed input. - * cppmain.c (cb_pragma_implementation): Remove handling. - (setup_callbacks): Don't register pragmas. - -2001-01-13 Neil Booth - - * extend.texi: Udate for CPP. - -2001-01-13 Andreas Jaeger - - * reload1.c: Add prototype for replace_pseudos_in_call_usage. - - * regmove.c: Add prototype for replace_in_call_usage. - -2001-01-13 Neil Booth - - * cpplib.h (cpp_pool, mi_state, mi_ind, struct cpp_macro, - struct cpp_chunk, struct htab, struct toklist, - struct cpp_context, CPP_STACK_MAX, struct lexer_state, - struct spec_nodes, struct cpp_reader, CPP_OPTION, CPP_BUFFER, - CPP_BUF_LINE, CPP_BUF_COL, CPP_BUF_COLUMN, U, ustrcmp, ustrncmp, - ustrlen, uxstrdup, ustrchr, ufputs): Move to cpphash.h. - (struct macro_args): Delete. - * cpphash.h: See above. - -2001-01-13 Neil Booth - - * cppmain.c (struct printer): Remove no_line_dirs. - (options, cb): New. - (main, setup_callbacks, scan_buffer, printer_init, cb_define) - : Use options rather than CPP_OPTION. - (setup_callbacks): Use cb rather than pfile->cb. - (main): No need to check for a buffer. Use cpp_errors. - (printer_init): Don't set no_line_dirs. - (maybe_print_line): Use options not no_line_dirs. - (cb_file_change): Don't call print_line if -P. - -2001-01-13 Neil Booth - - * c-lex.c (init_c_lex): Use cpp_get_callbacks to set - callbacks. - * c-parse.in (finish_parse): Use cpp_errors. - (__yylex): Use return value of cpp_pop_buffer. - * cp/lex.c (finish_parse): Use cpp_errors. - * cp/spew.c (read_token): Use return value of cpp_pop_buffer. - -Sat Jan 13 16:57:40 2001 Denis Chertykov - - * README.AVR: URLs corrected. - -Sat Jan 13 07:30:02 2001 Richard Kenner - - * c-decl.c (start_function): Don't warn if old prototype is builtin - that's not in C's namespace. - * libgcc2.c (_varargs): Update definition of __builtin_saveregs. - (_bb): Add prototype for ctime. - * config/alpha/osf.h (TRANSFER_FROM_TRAMPOLINE): Add missing protos. - -Sat Jan 13 09:53:32 MET 2001 Jan Hubicka - - * i386.c (ix86_fp_comparison_arithmetics_cost, - ix86_fp_comparison_fcomi_cost, ix86_fp_comparison_sahf_cost, - ix86_fp_comparison_cost): New functions. - (ix86_expand_fp_compare): Use the costs to choose best bethod; add - two new parameters SECOND_TEST and BYPASS_TEST; allow generating - two-branch sequences; make static. - (ix86_use_fcomi_compare): Do decision according to the costs. - (split_fp_branch): New. - * i386.md (compare-and-branch patterns): Use split_fp_branch. - * i386-protos.h (ix86_expand_fp_compare): Remove - (ix86_split_fp_branch): Declare. - - * i386.h (PREDICATE_CODES): Update codes from fcmov_comparison_operand - and ix86_comparison_operator. - - * i386.c (ix86_prepare_fp_compare_args): Try to rearange the comparison - to make it cheaper. - - * i386.c (put_condition_code): Output properly the unordered/ordered - compares in fp case. - (ix86_expand_fp_movcc): Use ix86_expand_compare infrastructure. - - * tm.texi (REVERSE_CONDITION): Document. - * i386.c (ix86_fp_compare_mode): Simplify; return always CCFPmode - in -ffast-math mode. - * i386.h (REVERSE_CONDITION, REVERSIBLE_CC_MODE): New macro. - -2001-01-13 Alexandre Oliva - - * config/sh/sh.c (sh_expand_epilogue): Use PR explicitly. - - * config/sh/sh.c (sh_expand_prologue): Let the second toggle_sz be - optimized away. - - * config/sh/sh.c (mova_p): Fix test for mova_const. - -2001-01-13 Neil Booth - - * fix-header.c (read_scan_file): Use cpp_get_callbacks and - cpp_get_options rather than dereferencing pfile and using - CPP_OPTION. - * scan-decls.c (scan_decls): Use return value of - cpp_pop_buffer rather than CPP_BUFFER. - -2001-01-13 Neil Booth - - * cppinit.c (cpp_handle_option): help_only is now part of the - cpp_options structure. - * cpplib.c (cpp_errors, cpp_get_options, cpp_get_callbacks, - cpp_set_callbacks): New functions. - * cpplib.h (cpp_callbacks): Break out as a named structure. - (cpp_options): Move help_only here from cpp_reader. - (CPP_FATAL_ERRORS): Update to use cpp_errors. - (cpp_errors, cpp_get_options, cpp_get_callbacks, - cpp_set_callbacks): New prototypes. - * cppmain.c (main): Update for help_only. - -2001-01-13 Joseph S. Myers - - * Makefile.in (info, maintainer-clean, install-info, uninstall): - Also build and remove and install and uninstall c-tree.info and - cppinternals.info. - ($(srcdir)/gcc.info): Add dependency on contrib.texi. - ($(srcdir)/cppinternals.info): New target. - * c-tree.texi: Change file name used when makeinfo used without -o - from ir.info to c-tree.info. Add info directory entry. - * cppinternals.texi: Add info directory entry. - * .cvsignore: Update. - -2001-01-12 Jakub Jelinek - - * c-typeck.c (store_init_value): Don't require constant initializer - elements with -pedantic -std=c99. - (digest_init): Change error about non-constant initializer elements - into pedwarn. - (constructor_range_end): Remove. - (constructor_incremental, designator_depth, - designator_errorneous): New variables. - (struct constructor_stack): Remove range_end, add incremental. - (struct constructor_range_stack, constructor_range_stack): New. - (struct initializer_stack): Add constructor_range_stack. - (finish_init): Set it. - (start_init): Likewise. require_constant_elements for non-static - trees only if not flag_isoc99. - (really_start_incremental_init): Remove constructor_range_end, add - constructor_incremental. - (pop_init_level): Likewise. - (push_init_level): Likewise. If implicit and the subobject had some - value set already, preinitialize the level with it. - Warn about missing braces only if not pushing due to designators. - (set_designator, push_range_stack): New functions. - (set_init_label): Use them. - (set_init_index): Likewise. Remove constructor_range_end. - Error if designator index is outside of array bounds. - (add_pending_init): Compare values of purpose index trees, not the - trees themselves. Allow overwriting of already initialized element. - Issue a warning if it had side-effects. - (set_nonincremental_init, set_nonincremental_init_from_string): New - functions. - (pending_init_member): Rename to... - (find_init_member): ...this function. Call set_nonincremental_init - if necessary. Compare values of purpose index trees, not the trees - themselves. Return the actual value, not just nonzero if something - is found. - (output_init_element): Remove checks for duplicates. - If field has zero size, only check the initializer for correctness. - Call set_nonincremental_init if necessary. Push RECORD/ARRAY into AVL - if constructor_incremental is zero. Change error about initializers - not computable at load time into pedwarn. - (output_pending_init_elements): Compare bit positions, not - FIELD_DECLs to take into account zero-sized fields. - (process_init_element): Use constructor_range_stack to fill all - ranges in the designator lists from current level up. - * extend.texi: Update documentation for labeled elements. - -2001-01-12 Alexandre Oliva - - * calls.c (emit_library_call_value_1): Add USEs and CLOBBERs - to function usage for arguments passed by reference. Optimize - callee-copied arguments. - * regmove.c (replace_in_call_usage): New function. - (fixup_match_1): Call it. - * cse.c (cse_insn): Canonicalize registers in function usage. - * reload1.c (replace_pseudos_in_call_usage): New function. - (reload): Call it. - - * Makefile.in: Reverted yesterday's wrong patch. Installed the - right version. - -2001-01-12 Jakub Jelinek - - * config/alpha/alpha.c (alpha_expand_block_move): GET_MODE of tmp, - not XEXP (tmp, 0). - -2001-01-12 DJ Delorie - - * Makefile.in (bootstrap): rename stages to be mnemonic. Add - restageN, unstageN, bubblestrap, quickstrap, and cleanstrap - targets. - -2001-01-12 Joseph S. Myers - - * cpp.texi, extend.texi, gcc.texi, install.texi, invoke.texi, - tm.texi: Consistently refer to ISO C instead of ANSI C. Refer to - -std options alongside references to -ansi. Update some - documentation for C99. - * cpp.1: Regenerate. - -2001-01-12 Andreas Jaeger - - * haifa-sched.c (restore_line_notes): Remove argument block B - since it's unused. - * sched-ebb.c (schedule_ebb): Change caller. - * sched-rgn.c (schedule_region): Likewise. - * sched-int.h (restore_line_notes): Adjust prototype. - - * loop.h: Remove wrong declaration of doloop_condition_get. - -2001-01-12 Phil Edwards - - * extend.texi: Move C++-extension-related node from the C section - into the C++ section. - -2001-01-12 Joseph S. Myers - - * extend.texi: Refer to an array of pointers to functions instead - of one of functions. - -Fri Jan 12 12:08:12 MET 2001 Andreas Jaeger - Jan Hubicka - - * combine.c (reversed_comparison): Fix typo in last patch. - Check X for NULL. - (combine_reversed_comparison_code): Make static to follow - prototype declaration. - -2001-01-12 Phil Edwards - - * install.texi: Remove misplaced duplicate entry. - -2001-01-11 Ulrich Drepper - - * config/float-i386.h: Define FLT_EVAL_METHOD and DECIMAL_DIG for C99. - -Thu Jan 11 17:06:30 EST 2001 John Wehle (john@feith.com) - - * final.c: (leaf_function_p): Fix typo. - -2001-01-11 Zack Weinberg - - * aclocal.m4 (AC_FUNC_MMAP_ANYWHERE): Completely rewritten. - Now defines HAVE_MMAP_DEV_ZERO and/or HAVE_MMAP_ANON depending - which you have. - (AC_FUNC_MMAP_FILE): Don't AC_REQUIRE AC_FUNC_MMAP_ANYWHERE. - * configure.in: Set GGC to ggc-page if any of mmap_dev_zero, - mmap_anon, and valloc is available. - * ggc-page.c: Restructure ifdef logic to match new autoconf - spec. Don't throw away the test page in init_ggc. - - * configure, config.in: Regenerate. - -2001-01-12 Michael Hayes - - * loop.h (total_biv_increment): Constify iv_class pointer. - (struct induction): Replace `mem_mode' with `mem' rtx. - * unroll.c (total_biv_increment): Constify iv_class pointer. - * loop.c (loop_giv_reduce_benefit): Derive mem mode from mem rtx. - (find_mem_givs, combine_givs_p): Likewise. - (debug_ivs, debug_iv_class, loop_ivs_dump, loop_iv_class_dump): New. - -2001-01-10 Thomas Pfaff - - * gthr-win32.h (__gthread_objc_thread_get_data): Save and restore Win32 - LastError. - (__gthread_getspecific): Ditto. - -Fri Jan 12 00:04:00 MET 2001 Jan Hubicka - - * i386.c (ix86_comparison_operator, fcmov_comparison_operator, - put_condition_code): Convert fp comparison codes to integer - before handling. - (ix86_expand_fp_compare): Postnote the fp comparison code conversion - to final. - - * i386.c (unsigned_comparison, no_comparison_operator): Kill. - * i386-protos.h (no_comparison_operator): Kill. - - * i386.c (ix86_expand_fp_compare): Fix ordered/unordered confussion. - - * combine.c (REVERSIBLE_CC_MODE): Remove. - (reversible_comparison_p): Remove. - (combine_reversed_comparison_code): New. - (reversed_comparison): New. - (combine_simplify_rtx): Use - combine_reversed_comparison_code/reversed_comparison instead - of reversible_comparison_p. - (simplify_if_then_else): Likewise. - (simplify_set): Likewise. - (simplify_logical): Likewise. - (if_then_else_cond): Likewise. - (known_cond): Likewise. - (simplify_comparison): Likewise. - -2001-01-11 Alan Lehotsky - - * builtins.c (std_expand_builtin_va_start): Handle varargs when - sizeof (int) is larger than sizeof(__word__). - -2001-01-11 Neil Booth - - * cppinit.c (do_includes): Fix typo. - -2001-01-11 Stephane Carrez - - * config/m68hc11/m68hc11.md (cmphi_1): Make sure reloading - in S_REGS does not occur because not all sources are possible - when a S_REGS is a destination (sometimes needs a clobber). - (movqi_const0, zero_extendhisi2, zero_extendqisi2): Likewise. - (zero_extendhidi2, extendqisi2, extendqihi2, extendhisi2): Likewise. - (anddi3, iordi3, xordi3, negqi2, one_cmplhi2, one_cmplqi2: Likewise. - (ashldi3_const32, ashldi3_const1, ashlsi3_const16): Likewise. - (ashlsi3_const1, ashlhi3_2, ashlqi3_const1, ashrhi3): Likewise. - (ashrqi3_const1, lshrdi3_const32, lshrdi3_const63): Likewise. - (lshrdi_const1, lshrsi3_const16): Likewise. - (*addhi3, lshrsi3_const1, lshrqi3_const1): Likewise. - (*movhi_68hc12, *movqi_68hc12): Likewise. - (movstrictqi): Make sure reloading in D_REGS as a destination - does not happen. - -2001-01-11 Neil Booth - - * cppspec.c (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -MQ. - -2001-01-11 Neil Booth - - * cppinit.c (cpp_start_read): If -fpreprocessed, ignore - -D, -U and -A, and don't initialize the builtins. - (do_includes): Error if -include or -imacros with -fpreprocessed. - * cppmain.c (cb_define, cb_undef): Unconditionally process - the callback. - * tradcpp.c (main): Fix typo. - -2000-01-11 Mark Elbrecht - - * cppfiles.c (cpp_included, find_include_file, _cpp_execute_include) - (read_name_map): Use IS_ABSOLUTE_PATH. - * tradcpp.c (get_filename): Likewise. - -2001-01-11 Stephane Carrez - - * config/m68hc11/m68hc11.md (*adcq, *subcq): Fix operand numbers. - (*ashlsi3_const16_zexthi, *ashlsi3_const1): Likewise. - (*lshrsi3_const, *lshrsi3_const1, *lshrsi3_const16): Likewise. - (*ashrsi3, *ashrsi3_const, *ashlsi3, *ashlsi3_const): Likewise. - (*ashlsi3_const1, *lshrsi3, *ashlsi3_const16): Likewise. - (cmphi_z_used): Don't use '@' for the output. - (tstqi_z_used): Likewise. - (cmpqi_z_used): Likewise. - (one_cmplsi2): Likewise. - -2001-01-11 Alexandre Oliva - - * config/sh/sh.c (barrier_align): Recognize branch around far - branch and redundant insn. - -2001-01-11 Neil Booth - - * invoke.texi: Restore documentation of the drivers' switches -MD - and -MMD. - -2001-01-11 Alexandre Oliva - - * config/sh/sh.h (LABEL_ALIGN): Use UNSPECV_ALIGN instead of 1. - - * Makefile.in (check-gcc//%, check-g++//%, check-g77//%, - check-objc//%): Support parallel testing of multilibs. - (TESTSUITEDIR): Set to testsuite by default, but override for - parallel testing. - (check-gcc, check-g++, check-g77, check-objc): Enter - $(TESTSUITEDIR). - -2001-01-11 Bernd Schmidt - - * alias.c (throughout): Use REGNO, rather than ORIGINAL_REGNO. - * sched-deps.c (deps_may_trap_p): Likewise. - * basic-block.h: Remove a comment. - * flow.c (PROP_POSTRELOAD): Remove. - (update_life_info): Don't add it to prop_flags. - (mark_set_1): Lose the code that was enabled by it. - -2001-01-11 Michael Hayes - - * flow.c (flow_call_edges_add): New. - * basic_block.h (flow_call_edges_add): New. - -2001-01-11 J"orn Rennecke - - * reload1.c (move2add_note_store): Update reg_set_luid even if - base reg remains the same. - -2001-01-10 Nick Clifton - - * config/d30v/d30v.c (d30v_init_machine_status): Initialize - machine_function structure to zero. - Add prototypes for machine_status functions. - -2001-01-10 Mark Mitchell - - * c-common.h (CTI_VOID_LIST): Remove. - (void_list_node): Likewise. - * tree.h (TI_VOID_LIST_NODE): New enumeral. - (void_list_node): New macro. - * config/arm/arm.c (arm_init_builtins): Use void_list_node. - * config/i386/i386.c (ix86_init_builtins): Likewise. - * config/ia64a/ia64.c (ia64_init_builtins): Likewise. - -2001-01-10 Neil Booth - - * Makefile.in (tradcpp0): Depend on mkdeps.h. Link mkdeps.o - * cppinit.c (cpp_start_read): Update comment, remove unneeded - if statement. - * tradcpp.c: Include mkdeps.h. - (deps, print_deps_phony_targets, deps_append, output_deps, - init_dependency_output, output_deps): New. - (deps_buffer, deps_allocated_size, deps_size, deps_column, - deps_output): Delete. - (print_deps_missing_files): Rename deps_missing_files. - (inhibit_output): Make global. - (main): Delete inhibit_output, deps_stream, deps_target. - Use mkdeps functionality in the same way as cpplib. Remove - -g3 handling. Handle -MF, -MP, -MQ, -MT. Update handling of - -M and -MM. Remove old handling of deps via deps_out, and - old reading of environment variables. - (get_filename): Update to use deps_add_dep. - -2001-01-10 Mark Mitchell - - * output.h (make_function_rtl): Remove prototype. - (make_decl_rtl): Likewise. - * varasm.c (make_function_rtl): Remove. - (make_decl_rtl): Determine top-levelness from DECL_CONTEXT, rather - than from a third parameter. - * tree.h (make_decl_rtl): Remove last parameter. - * c-decl.c (builtin_function): Remove last argument in call to - make_decl_rtl; use make_function_rtl instead of make_decl_rtl. - (start_function): Likewise. - * except.c (call_get_eh_context): Likewise. - * expr.c (emit_block_move): Likewise. - (clear_storage): Likewise. - * profile.c (output_func_start_profiler): Likewise. - * toplev.c (rest_of_decl_compilation): Likewise. - * objc/objc-act.c (create_builtin_decl): Likewise. - (synth_module_prologue): Likewise. - (generate_static_reference): Likewise. - (build_selector_reference_decl): Likewise. - (build_class_reference_decl): Likewise. - (build_objc_string_decl): Likewise. - (build_protocol_reference): Likewise. - -2001-01-10 Richard Henderson - - * hwint.h: Revert yesterday's change. - -2001-01-10 Nick Clifton - - * function.h (save_machine_status): Delete. - (restore_machine_status): Delete. - Amend comment describing {init|mark|free}_machine_status. - - * function.c (save_machine_status): Delete. - (restore_machine_status): Delete. - Amend comment describing {init|mark|free}_machine_status. - (push_function_context_to): Remove invocation of - save_machine_status. - (pop_function_context_from): Remove invocation of - restore_machine_status. - - * emit-rtl.c (init_emit_once): Amend comment describing - {init|mark|free}_machine_status. - - * tm.texi (Per-Function Data): New node. Describe the - INIT_EXPANDERS macro and the {init|mark|free}_machine_status - function pointers. - -2001-01-10 Neil Booth - - * cppinit.c (OPT_g): Remove. - (cpp_handle_option): Update for removed -g3. - (print_help): Update. - * cpplib.h (struct cpp_options): Remove debug_output. - * cppmain.c (setup_callbacks, cb_define): Update. - * gcc.c (cpp_options): Translate -g3 to -dD. - -2001-01-10 Aldy Hernandez - - * config/i960/i960.md: Change modifier to + on the zero_extract - pattern after the (rotate -2 reg) canonicalization pattern. - -2001-01-10 Richard Henderson - - * config/alpha/alpha.c (alpha_free_machine_status): New. - (override_options): Install it. - (alpha_mark_machine_status): Verify machine non-null. - * config/i386/i386.c (ix86_free_machine_status): New. - (override_options): Install it. - (ix86_init_machine_status): Use xcalloc. - (ix86_mark_machine_status): Verify machine non-null. - * config/ia64/ia64.c (ia64_free_machine_status): New. - (ia64_override_options): Install it. - (ia64_mark_machine_status): Verify machine non-null. - -Wed Jan 10 11:34:39 2001 Jeffrey A Law (law@cygnus.com) - - * function.c (instantiate_virtual_regs): Instantiate virtual - registers found in CALL_INSN_FUNCTION_USAGE. - -2001-01-10 Joseph S. Myers - - * i386.h (CPP_CPU_SPEC): Allow for -std=c* and -std=i* as - equivalent to -ansi in disabling -Di386. - -Wed Jan 10 16:38:31 MET 2001 Jan Hubicka - - * i386.c (ix86_fp_compare_code_to_integer, ix86_fp_comparison_codes): - new functions. - (ix86_expand_fp_compare): Make trivial use of new infrastructure. - -2001-01-10 Richard Earnshaw - - * arm.c (arm_init_builtins): Temporarily disable xscale builtins. - -2001-01-10 Joseph S. Myers - - * invoke.texi: Document that -fcond-mismatch isn't supported for - C++. - -2001-01-10 Joseph S. Myers - - * gcc.texi: Define macro gcctabopt. - * invoke.texi: Add manpage sections BUGS and AUTHOR. Use - @command, @env and @option in some places where appropriate. Use - @gcctabopt where appropriate. Put URLs and email addresses inside - @w. - -2001-01-10 Nathan Sidwell - - * gcc.c (cpp_options): Set MD file name from output - filename, if specified. - (suffix_subst): New static variable. - (do_spec): Clear it. - (do_spec_1, case '.'): Handle new `%.suffix' spec. - Clear it. - (give_switch): Handle suffix_subst. - -2001-01-10 Phil Edwards - - * invoke.texi: Fix another typo. - -2001-01-10 Phil Edwards - - * invoke.texi: Fix typo. - -2001-01-10 Neil Booth - - * c-lang.c (lang_hooks): Update. - (lang_decode_option): Remove. - (lang_init_options): Rename c_init_options. - * toplev.c (main): Use lang_hooks for lang_init_options - and lang_decode_option. - * toplev.h (lang_hooks): Add 2 new hooks. - * tree.h: Remove lang_init_options and lang_decode_option. - * cp/cp-tree.h (lang_decode_option): Rename cxx_decode_option. - * cp/decl2.c: Similarly. - * cp/lex.c (lang_init_options): Rename cxx_init_options. - (lang_hooks): Update. - * f/com.c (f_init, f_finish): Rename ffe_init, ffe_finish - for consistency. - (lang_init_options): Rename ffe_init_options. - (lang_hooks): Update. - (lang_decode_option): Remove. - * java/lang.c (lang_init_options): Rename java_init_options. - (lang_decode_option): Rename java_decode_option. - (lang_hooks): Update. - * objc/objc-act.c (lang_init_options): Rename objc_init_options. - (lang_decode_option): Rename objc_decode_option. - (lang_hooks): Update. - -2001-01-09 Nick Clifton - - * config/d30v/d30v.c (d30v_eh_epilogue_sp_ofs): Delete. - (d30v_return_addr_rtx): Delete. - (d30v_expand_epilogue): Use eh_epilogue_sp_ofs field in the - cfun->machine structure. - (struct machine_function): Move to d30v.h - (d30v_save_machine_status): Delete. - (d30v_restore_machine_status): Delete. - (d30v_init_machine_status): New Function. - (d30v_mark_machine_status): New Function. - (d30v_free_machine_status): New Function. - (d30v_init_expanders): Use new functions. - (d30v_return_addr): Use ra_rtx field in cfun->machine. - (d30v_add_gc_roots): Remove d30v_eh_epilogue_sp_ofs and - d30v_return_addr_rtx. - - * config/d30v/d30v.h (struct_machine): Move here. - Add eh_epilogue_sp_ofs field. - - *config/d30v/d30v.md (epilogue): Initialize eh_epilogue_sp_ofs - field in cfun->machine structure. - -Tue Jan 9 21:34:57 2001 John David Anglin - - * pa32-regs.h (CONDITIONAL_REGISTER_USAGE): When generating pic code, - PIC_OFFSET_TABLE_REGNUM_SAVED is a call_used register. - * pa64-regs.h (CONDITIONAL_REGISTER_USAGE): Likewise. - -Tue Jan 9 21:25:19 2001 Jeffrey A Law (law@cygnus.com) - - * objc/lang-options.h: Remove bogus reference to - Java trademark. - -2001-01-09 Kazu Hirata - - * config/h8300/h8300.c (get_shift_alg): Use a struct shift_info to - return the result. - -2001-01-09 Alan Lehotsky - - * reload.c (find_reloads_address): Check for eliminable registers - when substituting a constant expression for a pseudo. - -2001-01-09 Joseph S. Myers - - * c-common.c (enum format_type): Add format_type_error. - (decode_format_type): New function. - (decl_attributes): Use it. - (format_kind_info): Adjust comment. - -2001-01-09 David O'Brien - - * config.gcc (*-*-gnu*, i[34567]86-*-elf*, i[34567]86-*-linux*libc1, - i[34567]86-*-linux*, i[34567]86-*-moss*): Specify needed platform specific - files in tm_file. - * config/i386/gnu.h: Don't include required platform specific .h files, - tm.h will do it instead. - * config/i386/i386elf.h: Likewise. - * config/i386/linux.h: Likewise. - * config/i386/moss.h: Likewise. - * config/mips/gnu.h: Likewise. - -2001-01-09 Franz Sirl - - * config.gcc (powerpc-*-beos*): Include ${tm_file} and rs6000/aix.h. - (rs6000-ibm-aix3.[01]*): Likewise. - (rs6000-ibm-aix3.2.[456789]*, powerpc-ibm-aix3.2.[456789]*): Likewise. - (rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*): Likewise. - (rs6000-ibm-aix4.[3456789]*, powerpc-ibm-aix4.[3456789]*): Likewise. - (rs6000-ibm-aix[56789].*, powerpc-ibm-aix[56789].*): Likewise. - (powerpc-*-sysv*): Include {tm_file}. svr4.h and rs6000/sysv4.h. - (powerpc-*-eabiaix*): Likewise. - (powerpc-*-eabisim*): Likewise. - (powerpc-*-elf*): Likewise. - (powerpc-*-eabi*): Likewise. - (powerpc-*-rtems*): Likewise. - (powerpc-*-linux*libc1): Likewise. - (powerpc-*-linux*): Likewise. - (powerpc-wrs-vxworks*): Likewise. - (powerpcle-wrs-vxworks*): Likewise. - (powerpcle-*-sysv*): Likewise. - (powerpcle-*-elf*): Likewise. - (powerpcle-*-eabisim*): Likewise. - (powerpcle-*-eabi*): Likewise. - (powerpcle-*-solaris2*): Likewise. - * config/rs6000/aix31.h: Delete includes. - * config/rs6000/aix3newas.h: Likewise. - * config/rs6000/aix41.h: Likewise. - * config/rs6000/aix43.h: Likewise. - * config/rs6000/beos.h: Likewise. - * config/rs6000/rtems.h: Likewise. - * config/rs6000/sysv4.h: Likewise. - -2001-01-09 Kazu Hirata - - * config/h8300/h8300.c (get_shift_alg): Remove an argument cpu. - Change an argument mode of machine_mode to shift_mode of - shift_mode. Remove an extra error check. - (emit_a_shift): Adopt to the new calling prototype of - get_shift_alg. - (function_prologue): Fix code for a monitor - function. Support H8S. - (function_epilogue): Do not output pop for a monitor function. - -2001-01-09 Nick Clifton - - * config/rs6000/rs6000.c (rs6000_sysv_varargs_p): Delete. - (setup_incoming_varargs): Use sysv_varargs_p field of the - cfun->machine structure. - (struct machine_function): Move to rs6000.h - (rs6000_save_machine_status): Delete. - (rs6000_restore_machine_status): Delete. - (rs6000_init_machine_status): New Function. - (rs6000_free_machine_status): New Function. - (rs6000_init_expanders): Use new functions. - - * config/rs6000/rs6000.h (rs6000_sysv_varargs_p): Delete - export. - (struct machine_function): Move here. - - * config/rs6000/sysv4.h (RS6000_VARARGS_AREA): Use - sysv_varargs_p field of the cfun->machine structure. - - * config/rs6000/rs6000-protos.h (rs6000_save_machine_status): - Remove prototype. - (rs6000_restore_machine_status): Remove prototype. - -2001-01-09 Richard Henderson - - * sched-int.h (struct deps): Add max_reg, reg_last_in_use; merge - reg_last_uses, reg_last_sets, reg_last_clobbers into struct deps_reg. - * sched-deps.c (sched_analyze_1): Update uses of struct deps. - (sched_analyze_2, sched_analyze_insn): Likewise. - (sched_analyze, init_deps): Likewise. - (free_deps): Likewise. Iterate with EXECUTE_IF_SET_IN_REG_SET. - * sched-rgn.c (propagate_deps): Likewise. Remove max_reg argument. - (compute_block_backward_dependences): Update propagate_deps call. - -2001-01-09 Mark Elbrecht - - * gcc.c (process_command): Set switches[n_switches].ordering to 0. - -2001-01-09 Neil Booth - - * cppinit.c (OPT_MD, OPT_MMD): Restore. - (cpp_handle_option): Handle them. - (cpp_post_options): Ensure one of -M or -MM is specified with - any other -M? option. - (init_dependency_output): Suppress output with -MG. - -2001-01-09 Neil Booth - - * cpp.texi: Update. - * invoke.texi: Update. - -2001-01-09 Bernd Schmidt - - * sh.md (reload_outsf): Generate recognizable patterns for - TARGET_SH3E. - -2001-01-09 Neil Booth - - * c-lang.c (lang_hooks): Update. - (lang_init): Rename c_init. - (lang_finish): Remove. - * toplev.c (compile_file): Use lang_hooks for lang_init () - and lang_finish (). - * toplev.h (lang_hooks): Add init () and finish (). - * tree.h (lang_init, lang_finish): Remove. - * cp/tree.h (lang_init, lang_finish): Remove. - * cp/decl2.c (cxx_post_options, lang_hooks): Move to cp/lex.c. - * cp/lex.c (cxx_init, cxx_finish, cxx_post_options, - lang_hooks): New. - (lang_init, lang_finish): Remove. - * f/com.c (lang_init, lang_finish): Rename f_init, f_finish. - (lang_hooks): Update. - * java/lang.c (lang_init): Rename java_init. - (lang_finish): Remove. - (lang_hooks): Update. - * objc/objc-act.c (lang_init): Rename objc_init. - (lang_finish): Remove. - (lang_hoooks): Update. - -20001-01-09 Graham Stott - - * cppfiles.c (_cpp_execute_include): Move `len` initialisation - after `ptr` is initialized. - -2001-01-09 Alexandre Oliva - - * config/sh/sh.h (STATIC_CHAIN_REGNUM): Change from r13 to r3. - (INITIALIZE_TRAMPOLINE): Adjust accordingly. - * config/sh/sh.c (sh_expand_prologue): Use r1 as temporary for - stack adjusts, instead of r3. - -2001-01-09 Michael Hayes - - * flow.c (flow_loop_scan): Break out of ... - (flow_loops_find) ... here. - * basic-block.h (flow_loop_scan): New. - (LOOP_ENTRY_EDGES, LOOP_EXIT_EDGES): Add. - (LOOP_EDGES, LOOP_EXITS_DOMS, LOOP_ALL): Redefine. - -2001-01-09 Alexandre Oliva - - * cppinit.c (cpp_cleanup): NULLify macro_buffer and zero - macro_buffer_len. - * cppmacro.c (cpp_macro_definition): Reset macro_buffer_len when - realloc()ing macro_buffer. - - * hwint.h (HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT): Use long long - if it's wider than long and the target's long is wider than the - host's. - -2001-01-09 Mark Mitchell - - Remove support for using UWIN as a host machine. - * configure.in: Issue an error message. - * configure: Regenerated. - * config.gcc: Remove xm_* UWIN configury. - * config/i386/xm-uwin.h: Remove. - -2001-01-08 Nick Clifton - - * config/v850/v850.c (ra_rtx): Delete. - (v850_save_machine_status): Delete. - (v850_restore_machine_status): Delete. - (v850_init_machine_status): New function. - (v850_mark_machine_status): New function. - (v850_free_machine_status): New function. - (v850_return_addr): Use ra_rtx field in machine structure. - (v850_init_expanders): Use new functions. - - * config/v850/v850-protos.h: Fix prototypes for v850_output_* - * config/v850/v850.c: Change arguments to v850_output+* functions - to take a const char *, to avoid compile time warning. - * config/v850/v850.h (ASM_OUTPUT_LABELREF): Undefine, not needed. - (USER_LABEL_PREFIX): Redefine. - -2000-01-08 Jim Wilson - - * sched-rgn.c (BITSET_ADD, BITSET_REMOVE, bitset_member): Cast - 1 to unsigned HOST_WIDE_INT before left shift. - -2001-01-08 Nick Clifton - - * config/arm/arm.c (arm_mark_machine_status): Check to see if - the machine structure has been allocated. - (arm_free_machine_status): New function: Free the machine - specific function structure. - -2001-01-08 Richard Henderson - - * jump.c (simplejump_p): Revert last change. - -2001-01-08 Neil Booth - - * cppinit.c (init): Rename init_library. - (cpp_create_reader): Update. - * gcc.c (cpp_options): If -o given, use it as the target of - any -M options. - -2001-01-08 Richard Earnshaw - - * arm.c (arm_arch5e): New variable. - (all_cores): XScale is a 5TE device. - (arm_override_options): Set arm_arch5e. - (arm_init_builtins): __builtin_prefetch is in arch5e. - * arm.h (arm_arch5e): Declare it. - - * arm.h (PREDICATE_CODES): Add arm_hard_register_operand. - - * arm.md (define_constants): Add defines for UNSPEC and - UNSPEC_VOLATILE insns. Update all users. - (define_constants): Add constants for IP_REGNUM, SP_REGNUM, PC_REGNUM. - * arm.c (multi_register_push, note_invalid_constants) - (emit_multi_reg_push, emit_sfm, expand_prologue): Use constants. - * arm.h (SP_REGNUM, IP_REGNUM, PC_REGNUM): Delete defines. - (STACK_POINTER_REGNUM): Define in terms of SP_REGNUM. - -Mon Jan 8 16:14:56 MET 2001 Jan Hubicka - - * jump.c (jump_optimize_1): Use reversed_comparison_code - instead of can_reverse_comparison_p. - (jump_back_p): Likewise. - (invert_exp_1): Likewise. - (thread_jumps): Likewise. - * simplify-rtx.c (simplify_unary_operation): Likewise. - (simplify_ternary_operation): Likewise. - * cse.c (find_comparison_args): Convert to use - can_reverse_comparison_p. - (record_jump_equiv): Likewise. - -2001-01-08 Richard Earnshaw - - * arm.h (HARD_REGNO_RENAME_OK): Delete. - (EPILOGUE_USES): Define. - (INITIAL_ELIMINATION_OFFSET): Current prologue code does not - automatically stack the LR if it isn't live. - -Mon Jan 8 13:46:02 MET 2001 Jan Hubicka - - * i386.c (ix86_expand_int_movcc): Take care to reverse fp conditions - properly. - -Sun Jan 7 18:37:43 2001 Mark P Mitchell - - * ggc-page.c (max_alignment): New structure. - (MAX_ALIGNMENT): New macro. - (init_ggc): Use it to round up the sizes in the - extra_order_size_table. - -2001-01-07 Franz Sirl - - * config/rs6000/rs6000.h (EPILOGUE_USES): New, mark link register - after reload. - -2001-01-07 Kaveh R. Ghazi - - * builtins.def (BUILT_IN_FPRINTF): New entry. - - * c-common.c (c_expand_builtin_fprintf): New function. - (init_function_format_info): Handle __builtin_fprintf. - (c_common_nodes_and_builtins): Declare fprintf/__builtin_fprintf. - (c_expand_builtin): Handle BUILT_IN_FPRINTF. - - * c-decl.c (duplicate_decls): Adjust comment. - - * extend.texi (fprintf): Document new builtin. - -2001-01-07 Richard Henderson - - * jump.c (simplejump_p): Recognize any single_set jump - of the proper form. - -2001-01-07 Richard Henderson - - * configure.in (slibdir): Accept an --with-slibdir option. - Use "test" not "[" in configure. Default to $(libdir). - - * config/t-linux (SHLIB_INSTALL): Double quote slibdir; - fix typo in rm -f. - * config/t-aix43 (SHLIB_INSTALL): Likewise. - * config/alpha/t-osf4 (SHLIB_INSTALL): Likewise. - (SHLIB_LINK): Create links for the soname. - * config/mips/t-iris6: Likewise. - * config/sparc/t-slibgcc: Likewise. - * config/sparc/t-slibgcc-sld: Likewise. - -2001-01-07 Jakub Jelinek - - * config/i386/i386.c (constant_call_address_operand): Accept - (const (plus (symbol_ref) (const_int))). - * config/i386/i386.h (PREDICATE_CODES): Add CONST for - constant_call_address_operand. - -2001-01-08 Michael Hayes - - * libgcc2.h (W_TYPE_SIZE): Fix case where MIN_UNITS_PER_WORD == 1 - and LONG_LONG_TYPE_SIZE > 32. - -2001-01-07 Gerald Pfeifer - - * jump.c (reversed_comparison_code_parts): Fix typo introduced by - the previous change. - -Sun Jan 7 19:37:48 MET 2001 Jan Hubicka - - * jump.c (reversed_comparison_code_parts, reversed_comparison_code): - New. - (can_reverse_comparison_p): Rewrite to use reversed_comparison_code. - (reverse_condition_maybe_unordered): Abort on unsigned comparisons. - * rtl.h (reversed_comparison_code_parts, reversed_comparison_code): - Declare. - -2001-01-07 Neil Booth - - * fix-header.c (read_scan_file): s/pfile/scan_in/. - -2001-01-07 Neil Booth - - * c-lang.c (c_post_options): Call cpp_post_options. - * objc/objc-act.c (objc_post_options): Similarly. - * cppmain.c (main): Similarly. - * fix-header.c (read_scan_file): Similarly. - * cppinit.c (cpp_start_read): Move option consistency checks - to cpp_post_options. Don't call init_dependency_output. - If needed, add default target and main file dependency. - (OPT_MD, OPT_MMD): Remove. - (OPT_MF): New. - (cpp_handle_option): Update for OPT_* changes. - (cpp_post_options): New. - (init_dependency_output): Command line -MF overrides environment - variables. Don't set default target etc. Suppress output - if dependencies are going to stdout. - (print_help): Update. - * cpplib.h (cpp_post_options): New. - * gcc.c (cpp_options): Update for -MD, -MMD, -MF. - -Sun Jan 7 14:44:19 MET 2001 Jan Hubicka - - * jump.c (comparison_dominates_p): Support unordered compares. - -Sun Jan 7 14:39:07 MET 2001 Jan Hubicka - - * simplify-rtx.c (simplify_relational_operation): Always simplify - ORDERED and UNORDERED when FLAG_FAST_MATH. Handle properly UNLE - and UNGE. - -Sun Jan 7 14:35:13 MET 2001 Jan Hubicka - - * combine.c (combine_simplify_rtx): Recognize the unordered compares. - (nonzero_bits): Likewise. - (simplify_comparison): Likewise. - (num_sign_bit_copies): Likewise; return more sane value depending - on STORE_FLAG_VALUE. - (known_cond): Do not assume EQ to be always true for equivalent - operands. - -Sun Jan 7 14:31:57 MET 2001 Jan Hubicka - - * cse.c (fold_rtx): Handle unordered comparisons. - -Sun Jan 7 13:49:19 MET 2001 Jan Hubicka - - * rtlanal.c (set_of_1): New static function. - (reg_set_last_1, reg_set_p_1, reg_set_reg, reg_set_flag, - reg_set_last_unknown, reg_set_last_value, reg_set_last_first_regno, - reg_set_last_last_regno): Remove. - (set_of): New global function. - (set_of_data): New structure. - (reg_set_p, reg_set_last): Revamp for set_of. - * rtl.h (set_of): New. - -2001-01-07 Joseph S. Myers - - * c-common.c (c_common_nodes_and_builtins): Add _Exit builtin. - * extend.texi: Document _Exit builtin. - -2001-01-07 Neil Booth - - * (initialize, initialize_builtins, - initialize_dependency_output, initialize_standard_includes): - Rename s/initialize/init. Update. - (init_dependency_output): Move to after - cpp_handle_options, the correct location temporally at least. - (opt_comp): Move next to init (), its caller. Fix prototype. - (init): Make "initialized" local scope. - (cpp_create_reader): Always call init (). - (cpp_start_read): Update. - (output_deps): New function, broken out of cpp_finish. - (cpp_finish): Break out output_deps. - -2001-01-07 Richard Henderson - - * collect2.c (COFF specific stuff): Revert 12-06 patch - to prototype system functions. - -2001-01-07 Michael Hayes - - * hard-reg-set.h: Add multiple include guard. - * basic-block.h (struct loop): Add `sink' field. - * loop.h: Include sbitmap.h, hard-reg-set.h, and basic-block.h. - (emit_iv_add_mult): Delete. - (loop_iv_add_mult_hoist, loop_iv_add_mult_sink): Define. - (loop_iv_add_mult_emit_before, loop_insn_sink): Define. - (unroll_loop): Remove end_insert_before argument. - * loop.c (loop_givs_rescan): Remove end_insert_before argument. - (maybe_eliminate_biv_1): Likewise. - (emit_iv_add_mult): Delete. - (gen_add_mult, loop_regs_update): New. - (loop_insn_emit_after, loop_insn_emit_before): New. - (loop_insn_sink, loop_insn_sink_or_swim): New. - (emit_iv_add_mult): Delete. - (scan_loop): Set loop->sink. - (loop_givs_reduce): Use loop_insn_sink and its ilk. - (loop_givs_rescan, strength_reduce, check_dbra_loop): Likewise. - (maybe_eliminate_biv_1): Likewise. - (maybe_eliminate_biv_1): Add basic block argument. - * unroll.c (unroll_loop): Remove end_insert_before argument. - (find_splittable_regs): Likewise. - (find_splittable_regs): Use loop_insn_sink and its ilk. - (find_splittable_givs, final_biv_value, final_giv_value): Likewise. - -2001-01-07 Michael Hayes - - * loop.h (loop_insn_hoist): New prototype. - * loop.c (loop_insn_hoist, loop_insn_emit_before): New. - (move_movables, loop_givs_rescan): Use loop_insn_hoist. - (check_dbra_loop, load_mems): Likewise. - * unroll.c (unroll_loop, find_splittable_regs): Likewise. - (find_splittable_givs): Likewise. - -2001-01-07 Michael Hayes - - * loop.c (emit_iv_add_mult): Use single_set to examine new insn. - -2001-01-07 Richard Henderson - - * sched-rgn.c (is_cfg_nonregular): Fix thinko's last change. - -2001-01-07 Richard Henderson - - * Makefile.in (DRIVER_DEFINES): Define ENABLE_SHARED_LIBGCC and - NO_SHARED_LIBGCC_MULTILIB as required for the target. - * gcc.c (init_spec): Massage the existing libgcc_spec into a - variant that handles a shared libgcc. - (process_command): Always validate -{static,shared}-libgcc. - (do_spec_1): New 'M' case. - * invoke.text (Link Options): Document -{static,shared}-libgcc. - -2001-01-07 Richard Henderson - - * Makefile.in (slibdir): New variable. - (libgcc.mk): Pass SHLIB_INSTALL to mklibgcc. - (installdirs): Create slibdir. - (install-libgcc, install-multilib): Defer to libgcc.mk. - * configure.in (slibdir): Substitute. - * mklibgcc.in (install): New target. - - * config/t-linux (SHLIB_LINK): Create links for the soname. - (SHLIB_INSTALL): New. - * config/alpha/t-osf4 (SHLIB_INSTALL): New. - * config/mips/t-iris6 (SHLIB_INSTALL): New. - * config/rs6000/t-aix43 (SHLIB_INSTALL): New. - * config/sparc/t-slibgcc (SHLIB_INSTALL): New. - * config/sparc/t-slibgcc-sld (SHLIB_INSTALL): New. - -2001-01-07 Richard Henderson - - * config/rs6000/aix.h (LINK_LIBGCC_SPECIAL_1): New. - * config/rs6000/rs6000.h (LIBGCC_SPEC): Remove. - * config/rs6000/sysv4.h (LIBGCC_SPEC): Remove. - -2001-01-07 Michael Hayes - - * loop.c (count_loop_regs_set): Delete. - (load_mems_and_recount_loop_regs_set): Delete. - (loop_regs_scan): Merge common code from count_loop_regs_set, - scan_loop, and load_mems_and_recount_loop_regs_set. - (scan_loop): Call load_mems directly and loop_regs_scan - again if new registers created. - -2001-01-07 Neil Booth - - * toplev.c (main): Call the front-end specific post_options - hook if one is given. - * toplev.h (struct_lang_hooks, lang_hooks): New. - * c-lang.c (c_post_options, lang_hooks): Implement lang_hooks - for the C front end. - * cp/decl2.c (cxx_post_options, lang_hooks): Implement - lang_hooks for the C++ front end. - * objc/objc-act.c (objc_post_options, lang_hooks): Implement - lang_hooks for the ObjC front end. - * f/com.c (lang_hooks): Hooks for the Fortran front end. - * java/lang.c (lang_hooks): Hooks for the Java front end. - -2001-01-07 Neil Booth - - * c-lex.c (init_c_lex): Request #define / #undef callbacks - for verbose DWARF[2] debugging. - (cb_define, cb_undef): The new callbacks. - * toplev.h (debug_define, debug_undef): Make const correct. - * toplev.c (debug_define, debug_undef): Similarly. Do not - perform the verbosity tests here anymore. - -2001-01-07 Alexandre Oliva - - * reload.c (subst_reloads): Take INSN argument. When - replacing a LABEL_REF in a JUMP_INSN, add a REG_LABEL note. - * reload.h (subst_reloads): Adjust prototype. - * reload1.c (reload_as_needed): Pass INSN to subst_reloads. - * jump.c (mark_all_labels): Canonicalize any REG_LABEL notes - present in JUMP_INSNs and copy them to JUMP_LABEL. - * flow.c (find_label_refs, find_basic_blocks_1): Skip - JUMP_INSNs and insns with REG_LABELs that are followed by - JUMP_INSNs with the same REG_LABEL. - * sched-rgn.c (is_cfg_nonregular): Likewise. - * rtlanal.c (computed_jump_p): Make it false if a REG_LABEL - note is available. - * unroll.c (unroll_loop): Look for REG_LABEL notes in - JUMP_INSNs too. - * rtl.texi (REG_LABEL): Document usage in JUMP_INSNs. - -2001-01-06 Richard Henderson - - * loop.c (scan_loop): Use xcalloc for the regs array. - (load_mems_and_recount_loop_regs_set): Zero the new memory - received from xrealloc. - -2001-01-06 Neil Booth - - * mkdeps.c (deps_add_dep): Fix vector re-allocation. - -Sat Jan 6 00:09:34 2001 J"orn Rennecke - - * integrate.c (copy_rtx_and_substitute): When copying - an ignored return value, strip REG_FUNCTION_VALUE_P. - -2001-01-06 Michael Hayes - - * loop.c (debug_biv, debug_giv): New. - (loop_biv_dump): Break out from ... - (record_biv): ... here. - (loop_giv_dump): Break out from ... - (record_giv): ... here. - (loop_bivs_check): Use print_simple_rtl. - * unroll.c (loop_iterations): Use print_simple_rtl. - -2000-01-05 John David Anglin - - * pa.md (return, return_internal): Modify patterns to prevent regrename - mucking with the return pointer. - -2001-01-05 Richard Henderson - - * dwarf2out.c (mem_loc_descriptor) [case MEM]: Revert 10-31 change. - -Fri Jan 5 16:34:18 2001 Nick Clifton - - * config/v850/lib1funcs.asm: Replace __mulsi3 routine with faster - version supplied by Matteo Frigo. - -2001-01-05 Neil Booth - - * cpp.texi: Update for -MQ. - * cppinit.c (cpp_create_reader): Always create pfile->deps. - (cpp_cleanup): Always free pfile->deps. - (initialize_dependency_output): Don't create pfile->deps. - (cpp_handle_option): Similarly. - (OPT_MQ): New. - * gcc.c (cpp_options): Handle -MQ. - (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -MQ. - * mkdeps.c (base_name): Remove. - (deps_init): Don't allocate vector space until it's needed. - (deps_free): Only free vectors if allocated. - (deps_add_target, deps_add_dep): Update for initial allocation. - (deps_add_default_target): Don't strip to the base_name. - -2001-01-05 DJ Delorie - - * config/v850/v850.h (RETURN_ADDR_RTX): Define. - (INIT_EXPANDERS): Define. - - * config/v850/v850.c (struct machine_function): Define. - (v850_save_machine_status): New function. - (v850_restore_machine_status): New function. - (v850_return_addr): New function. - (v850_init_expanders): New function. - - * config/v850/v850-protos.h: Add prototypes for v850_return_addr - and v850_init_expanders. - -2001-01-05 Zack Weinberg - - * cpplib.h (struct cpp_reader): Add help_only field. - * cppinit.c (COMMAND_LINE_OPTIONS): Add OPT_version. - (cpp_handle_option): Set pfile->help_only if we see -h, - --help, -target-help, or --version. Print version string but - do not set help_only if we see -v or -version. Make text - printed by -v match that printed by (-)-version. - - * cppmain.c (main): Exit after option parsing if - pfile->help_only is true. - - * toplev.c (independent_decode_option): Call print_version, - then exit, if we see --version (but not -version). - (print_version): Split lengthy message into two lines. - -2001-01-05 Nick Clifton - - * config/v850/v850.c (v850_encode_data_area): Use alloca to create - temporary string for initialisation before calling ggc_alloc_string. - -2001-01-06 Michael Hayes - - * rtl.h (print_simple_rtl): New. - * print-rtl.c (print_simple_rtl): New. - (flag_simple): New. - (print_rtx): Disable printing of flags and modes, etc., - if `flag_simple` nonzero. - -2001-01-05 Zack Weinberg - - * function.c (fixup_var_refs): Use push_to_full_sequence where - possible. - -2001-01-05 Michael Meissner - - * flags.h (flag_reorder_blocks): Add declaration. - (flag_rename_block): Ditto. - -2001-01-05 DJ Delorie - - * function.c (reorder_blocks): Make sure the flags are all reset - before using them to mark blocks, else a second invocation will - corrupt the block chain. - (reorder_blocks_0): New, resets the flags. - -Fri Jan 5 20:34:06 2001 J"orn Rennecke - - * cse.c (find_comparison_args): Stop if the argument is known to - be constant. - -2001-01-05 Alexandre Oliva - - * config/sh/sh.md (movdf): When splitting load into pair of - registers, don't clobber the register used in the address too - early. - -2001-01-05 Jeffrey Oldham - - * varasm.c (mark_constant_pool): Improve initial comments. - (mark_constants): Move marking of constants to mark_constant. - (mark_constant): New function to recursively mark all constants - referred to by a constant. - -2001-01-05 Catherine Moore - - * dbxout.c ((dbxout_parms): Handle invisible ref where decl is a REG. - -2001-01-05 Phil Edwards - - * cp/lang-options.h: Bring comment in line with reality. - * f/lang-options.h: Likewise. - * java/lang-options.h: Likewise. - * objc/lang-options.h: Likewise. - * ch/lang-options.h: Likewise. - * f/g77.texi: And update the manual. - -2001-01-05 Marek Michalkiewicz - Denis Chertykov - - * config/avr/avr-protos.h (avr_peep2_scratch_safe): Prototype. - * config/avr/avr.c (avr_peep2_scratch_safe): New function. - * config/avr/avr.md (all peepholes that request a scratch register): - Call it, FAIL the peephole if not safe (in interrupt functions). - -2001-01-05 Mark Mitchell - - * ggc-page.c (NUM_EXTRA_ORDERS): Hardwire to zero for now. - -2001-01-05 Joseph S. Myers - - * builtins.def (BUILT_IN_CONJ, BUILT_IN_CREAL, BUILT_IN_CIMAG): - Define. - * builtins.c (expand_builtin): Abort on BUILT_IN_CONJ, - BUILT_IN_CREAL and BUILT_IN_CIMAG. - * c-common.c (c_common_nodes_and_builtins): Create builtin conjf, - conj, conjl, crealf, creal, creall, cimagf, cimag and cimagl. - (expand_tree_builtin): Handle BUILT_IN_CONJ, BUILT_IN_CREAL and - BUILT_IN_CIMAG. - * extend.texi: Document these builtins. - -2001-01-05 Daniel Berlin - - * c-common.c (lang_get_alias_set): Say we know nothing of - VECTOR_TYPE aliasing. - - * dwarf2out.c (is_base_type): Handle VECTOR_TYPE properly. - -2001-01-05 Bruce Korb - - * fixinc/mkfixinc.sh(vax-*-bsd): convert exit and atexit calls to - their x* equivalent versions for atexit-less systems - * fixinc/fixincl.c(main): do not return from main() on atexit-less - systems (or any other system any more). - -2001-01-05 Richard Earnshaw - - * arm.md (ldmsi_postinc): Avoid use of match_dup between input and - output operands. Use arm_hard_register_operand for operand 4. - (stmsi_postinc): Similarly. - (ldmsi): Use arm_hard_register_operand for opernand 2. - (stmsi): Similarly. - * arm.c (arm_hard_register_operand): New function. - * arm-protos.h (arm_hard_register_operand): Prototype it. - - * arm.h (HARD_REGNO_RENAME_OK): Define. - -Fri Jan 5 16:29:49 MET 2001 Jan Hubicka - - * simplify-rtx.c (cfc_args): add "unordered" field. - (check_fold_consts): Set unordered field. - (simplify_relational_operation): Simplify the unordered - comparisons. - - * reg-stack.c (swap_rtx_condition): Ensure that the transformation - is valid. - - * emit-rtl.c (try_split): Fix code to mark labels. - * jump.c (mark_jump_label): Make global. - * rtl.h (mark_jump_label): Declare. - - * predict.c (estimate_probability): Handle unordred comparisons. - -2001-01-05 Neil Booth - - * cpp.texi: Update for -MP. Clarify behavior of -MT. - * cppinit.c (initialize_dependency_output): Update. - (cpp_finish): Output dummy targets for -MP. - (OPT_MP): New. - (cpp_handle_option): Handle -MP. Don't quote -MT options. - * cpplib.h (struct cpp_options): Add deps_phony_targets. - * gcc.c (cpp_options): Update to handle -MP. - * mkdeps.c (deps_add_target, deps_add_default_target): Update - to quote only the default target. - (deps_phony_targets): Insert a preceding newline. Rename from - deps_dummy_targets for consistency. - * mkdeps.h: Update - -2001-01-05 Alexandre Oliva - - * calls.c (emit_library_call_value_1): Support - INIT_CUMULATIVE_LIBCALL_ARGS. - * tm.texi (INIT_CUMULATIVE_LIBCALL_ARGS): Document it. - -2001-01-04 Richard Henderson - - * c-decl.c (finish_struct): Detect flexible array members - used in an inappropriate context. - * c-typeck.c (really_start_incremental_init): Special case - constructor_max_index for zero length arrays. - (pop_init_level): Allow initialization of flexible array - members. Deprecate initialization of zero length arrays. - Don't issue missing initializer warning for flexible array - members or zero length arrays. - (process_init_element): Don't dereference null DECL_SIZE. - * varasm.c (array_size_for_constructor): Return a HOST_WIDE_INT. - Don't abort for empty constructors. Use size_binop - (output_constructor): Add commentary regarding zero length - array futures. Abort if we try to initialize an array of - unspecified length with a non-empty constructor in the middle - of a structure. - - * extend.texi (Zero Length): Update and clarify documentation - on static initialization. - -2001-01-05 Michael Hayes - - * config/c4x/c4x.c (c4x_expand_prologue): Don't compile an ISR - with more than 32767 words of local storage. - -2001-01-05 Michael Hayes - - * config/c4x/c4x.c (c4x_init_builtins): Remove builtin support - for 'abs', 'labs', and 'fabs'. - (c4x_expand_builtin): Likewise. - * config/c4x/c4x.h (enum c4x_builtins): Likewise. - -2001-01-05 Alexandre Oliva - - * config/sh/sh.md (prget, prset): New insn types. - (return delay slot): Don't allow prset. - (call, sfunc delay slot): Don't allow prget. - (movsi_i, movsi_ie, movsi_i_lowpart): Create separate alternatives - for prset and prget. - -2001-01-05 Michael Hayes - - * loop.h (struct loop_reg): New. - (struct loop_regs): Change to use array of `struct loop_reg'. - * loop.c: Replace assortment of varrays with single regs array. - (count_one_set): Delete may_not_move array argument - and use regs array instead. All caller's changed. - (count_loop_regs_set): Delete may_not_move and single_usage - arguments and use regs array instead. All caller's changed. - (find_single_use_in_loop): Replace usage array argument with pointer - to regs structure. All caller's changed. - (loop_optimize): Delete `moved_once' array. - -2001-01-05 Michael Hayes - - * loop.c (prescan_loop): Set loop_info->has_nonconst_call. - Use it instead of loop_info->has_call for scanning loop mems. - (check_dbra_loop): Replace loop_info->has_call test with - loop_info->has_nonconst_call. - -2000-01-04 Matthew Hiller - - * config/sh/sh.h (EPILOGUE_USES): Recognize fpscr as epilogue-used - for TARGET_SH3E. - -2001-01-04 Joseph S. Myers - - * fold-const.c (fold): When folding a CONJ_EXPR of a COMPLEX_CST, - use TREE_REALPART and TREE_IMAGPART instead of TREE_OPERAND. - -2001-01-04 Joseph S. Myers - - * c-common.c (SIZE_TYPE, WCHAR_TYPE): Define. - (flag_short_double, flag_short_wchar): Define. - (c_common_nodes_and_builtins): Create many tree nodes shared - between C and C++ here instead of in cp/decl.c and ... - * c-decl.c (init_decl_processing): ... here. - (SIZE_TYPE, WCHAR_TYPE): Don't define. - (flag_short_double, flag_short_wchar): Don't define. - (record_builtin_type): New function. - (build_void_list_node): New function. - * c-common.h (flag_short_double, flag_short_wchar, - record_builtin_type, build_void_list_node): Declare. - -Thu Jan 4 21:09:47 2001 J"orn Rennecke - - * integrate.c (expand_inline_function): Don't put a virtual - register into the reg map. - - * function.c (fixup_var_refs_1): If force_operand didn't put - the address into the target, move it there. - -2001-01-04 Mark Mitchell - - Special-case tree_decl/tree_list allocations. - * ggc-page.c (OBJECT_PER_PAGE): Reimplement. - (OBJECT_SIZE): New macro. - (NUM_EXTRA_ORDER): Likewise. - (extra_order_size_table): New variable. - (NUM_ORDERS): New macro. - (objects_per_page_table): New variable. - (object_size_table): New variable. - (G.pages): Use NUM_ORDERS to bound the array. - (G.page_tails): Likewise. - (DIV_ROUND_UP): Remove. - (BITMAP_SIZE): Use CEIL, instead of DIV_ROUND_UP. - (alloc_page): Use OBJECT_SIZE. - (size_lookup): Don't make it const. - (ggc_alloc): Use OBJECT_SIZE. - (ggc_set_mark): Likewise. - (ggc_get_size): Likewise. - (init_ggc): Set up the object_size_table, objects_per_page_table, - and adjust size_lookup. - (ggc_recalculate_in_use_p): Use CEIL, not DIV_ROUND_UP. - (ggc_pop_context): Use NUM_ORDERS. - (clear_marks): Likewise. - (sweep_pages): Likewise. - (poison_pages): Likewise. - (ggc_print_statistics): Use OBJECT_SIZE. - -Thu Jan 4 15:54:05 2001 Richard Kenner - - * varasm.c (output_constructor): Use HOST_WIDE_INT for sizes. - Only call array_size_for_constructor if last field and array type - with no upper bound. - -2001-01-04 Philip Blundell - - * config/arm/arm.c (arm_gen_constant): Prefer to emit constants - from bit 31 downwards, if this requires no more insns. - (count_insns_for_constant): New helper function for above. - -2001-01-04 Alexandre Oliva - - * gencodes.c (output_predicate_decls): Remove empty initializer. - -2001-01-04 Mark Mitchell - - * tree.c (copy_node): Remove documentation about obstacks. - (buidl1): Check that nobody tries to build 2-argument nodes this - way. - -2001-01-04 Kaveh R. Ghazi - - * sparc.h (PREDICATE_CODES): Delete fp_sethi_p, fp_mov_p and - fp_high_losum_p. - - * gencodes.c (output_predicate_decls): Fill empty initializer - braces. - -2001-01-04 Jakub Jelinek - - * tradcpp.c (deps_file, print_deps_missing_files): New variables. - (main): Handle -MG, -MD, -MMD. Bail out if -MG is given without -M - or -MM. - (do_include): Handle missing headers like cpp0. - * cppfiles.c (_cpp_execute_include): Don't prefix absolute header - paths with first include pathname. Don't strcat to uninitialized - string. - -2001-01-04 Bernd Schmidt - - * regrename.c (regrename_optimize): Don't rename from frame pointer - if frame_pointer_needed. - (do_replace): Don't set ORIGINAL_REGNO to a hard register number. - * config/ia64/ia64.c (emit_all_group_insn_barriers): New function. - (ia64_reorg): Use it instead of scheduling if ! optimize. - (errata_emit_nops): Properly call asm_noperands. - (ia64_sched_reorder): Finish cycle if we see an asm. - (ia64_variable_issue): Clear scheduling state after asms. - -2001-01-04 Neil Booth - - * cpp.texi: Update for -MT. - * cppinit.c (initialize_dependency_output): Add a default - target if none has been given already. - (no_tgt, OPT_MT): New. - (cpp_handle_option): Handle -MT. Update -M etc. - * cpplib.h (struct cpp_options): Remove deps_target. - * gcc.c (cpp_options): Handle -MT. - * mkdeps.c (struct deps): Move from mkdeps.h. - (deps_calc_target): Rename deps_add_default_target. Add a - default target if none has been specified already. - * mkdeps.h (struct deps): Move to mkdeps.c. - (deps_calc_target): Rename deps_add_default_target. - -2000-01-03 Richard Henderson - - * c-decl.c (grokdeclarator): Give zero-length arrays size zero. - Remove dead code. - * c-typeck.c (push_init_level): Move checks for flexible array - members and zero length arrays ... - (pop_init_level): ... here. Silently discard empty initializations. - Remove dead code. - * varasm.c (output_constructor): Update for sizeof change to - zero-length arrays. - - * extend.texi (Zero Length): Clarify semantics. - -2001-01-03 Alexandre Oliva - - * configure.in (tm.h): Include isns-codes.h last. - * configure: Rebuilt. - -2001-01-03 Richard Henderson - - * config/alpha/alpha.md (addvsi3, addvdi3): New. - (negvsi2, negvdi2, subvsi3, subvdi3, mulvsi3, mulvdi3): New. - -2001-01-03 Franz Sirl - - * tradcpp.c (main): Make sure finclude() is called with a valid - indepth value while handling -include. - -2001-01-03 Alexandre Oliva - - * gencodes.c (output_predicate_decls): New function. - (main): Call it. - * machmode.h (GET_MODE_MASK): Arrange for it to be defined - even if it is not the first time machmode.h is #included. - * config/sh/sh.c (fpul_operand): Declare MODE argument. - * tm.texi (PREDICATE_CODES): Document predicate declarations. - * gcc.texi (Copyright): Added 2001. - -2001-01-03 Joseph S. Myers - - * c-common.c (c_common_lang_init): New function. Warn if format - warning options which only have effects when used with -Wformat - are used without -Wformat. - * c-common.h (c_common_lang_init): Declare. - * c-lang.c (lang_init): Call c_common_lang_init. - * objc/objc-act.c (lang_init): Call c_common_lang_init. - -2001-01-03 Joseph S. Myers - - * configure.in: Check for the mktemp command. - * configure: Regenerate. - * gccbug.in: Use a separate temporary file $TEMP0 for one use of - $TEMP. Create temporary files with mktemp, if available at - configure time; otherwise use set -C. Remove temporary files - before exit. - -2001-01-03 Joseph S. Myers - - * configure.in: Require at least texinfo 4.0. Check for whether - Pod::Man is sufficiently recent to regenerate GCC manpages. - * configure: Regenerate. - * Makefile.in (TEXI2POD): Call perl explicitly rather than relying - on #!. - (GENERATED_MANPAGES): Define. - (generated-manpages): New target. Depend on cpp.1 as well as - gcov.1. - (install-man): Depend on $(GENERATED_MANPAGES) (defined by - configure to generated-manpages or empty) rather than on the - manpages directly. Remove execute permission from installed - gcov.1 as well as cpp.1. - * cpp.1, gcov.1: Regenerate. - -2001-01-03 Kaveh R. Ghazi - - * builtins.c (expand_builtin_strncmp): Use host_integerp and - tree_low_cst. Allow using cmpstrsi in more cases. - -Wed Jan 3 10:48:43 2001 Richard Kenner - - * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for variable - sized types. - -Wed Jan 3 12:22:32 2001 Alexandre Oliva - - * build-make (HOST_CFLAGS): Added `-DGENERATOR_FILE'. - * Makefile.in (HOST_CFLAGS): Mention build-make. - -Wed Jan 3 08:53:50 2001 Richard Kenner - - * config/sparc/sparc.md (nonlocal_goto): Emit goto_handler_and_restore - as JUMP_INSN. - -2001-01-01 Bernd Schmidt - - * builtins.c (expand_builtin_return_addr): Don't use MEM_ALIAS_SET on - a REG rtx. - - * cse.c (cse_rtx_varies_p): Accept additional FROM_ALIAS arg. All - callers changed. - - * alias.c (throughout): Use ORIGINAL_REGNO when accessing - reg_base_value and reg_known_value arrays. - (init_alias_analysis): Add more cases to detect known values. - * sched-deps.c (deps_may_trap_p): New function. - (sched_analyze_2): Use it. - -2001-01-03 Alexandre Oliva - - * combine.c (simplify_shift_const): Even if we're sign-extracting, - don't discard an ASHIFTRT if we're shifting in a wider mode. - -2000-01-02 John David Anglin - - * toplev.c (rest_of_compilation): Don't print basic block information - when CFG isn't up to date. - -2001-01-02 Mark Elbrecht - - * config/i386/djgpp.h (DWARF2_DEBUGGING_INFO): Define. - (UNALIGNED_INT_ASM_OP, UNALIGNED_DOUBLE_ASM_OP): Define. - (UNALIGNED_SHORT_ASM_OP): Define. - (CPP_PREDEFINES): Remove defines for GO32 and DJGPP. - -2001-01-02 Mark Mitchell - - * fold-const.c (fold_convert): Fix typo. - -2001-01-02 Richard Henderson - - * c-common.h (ASM_INPUT_P): New. - * c-parse.in (asm): Set it when needed. - * c-semantics.c (genrtl_asm_stmt): Test it instead of the - existence of an operand. - -Tue Jan 2 20:27:07 MET 2001 Jan Hubicka - - * dwarf2out.c (stack_adjust_offset): Handle PRE_MODIFY. - (dwarf2out_frame_debug_expr): Likewise. - (mem_loc_descriptor): Handle PRE and POST_MODIFY. - -Tue Jan 2 20:21:31 MET 2001 Jan Hubicka - - * i386.c (ix86_split_to_parts): Return number of part required; - handle TFmodes. - (print_operand, ix86_expand_branch, ix86_expand_fp_movcc): Handle - TFmodes. - (ix86_split_long_move): Use number of part returned - by ix86_split_to_parts - * i386.h (MASK_128BIT_LONG_DOUBLE, TARGET_128BIT_LONG_DOUBLE): - New macros. - (TARGET_SWITCHES): Add 128bit-long-double and 96bit-long-double - (LONG_DOUBLE_TYPE_SIZE): Change from constant. - (MAX_LONG_DOUBLE_TYPE_SIZE): New macro. - (INTEL_EXTENDED_IEEE_FORMAT): Likewise. - (ALIGN_MODE_128): Add TFmode. - (IS_STACK_MODE): Likewise. - (HARD_REGNO_NREGS): TFmode needs 3 registers. - (HARD_REGNO_OK): Support TFmodes. - (ASM_OUTPUT_LONG_DOUBLE): Handle TFmodes. - * i386.md (scheduler definitions): Use memory operand to determine - fst/fld instructions; use mode attribute to determine real mode of - the instruction. - (*tf): New patterns, expanders and splitters; based on XFmode patterns. - * invoke.texi (128bit-long-double, 96bit-long-double): Document. - -2001-01-02 Mark Mitchell - - * tree.def (TRUTH_NOT_EXPR): Improve documentation. - -Tue Jan 2 10:47:38 2001 Richard Kenner - - * config/mips/mips.c (function_arg): Don't pass NULL_TREE to - host_integerp. - -2001-01-02 Jeffrey Oldham - - * tm.texi (FUNCTION_ARG): Document that @var{type} can be an - incomplete type. - -Tue Jan 2 10:47:38 2001 Richard Kenner - - * tsystem.h: Define HAVE_DECL_GETOPT. - -2001-01-02 Philip Blundell - - * config/arm/linux-gas.h (CLEAR_INSN_CACHE): Avoid illegal clobber - of input operand. - -2001-01-02 Richard Henderson - - * alpha.md (*ze_and_ne): Duplicate insn condition to split. - -2001-01-02 Andreas Jaeger - - * c-decl.c (c_decode_option): Remove support of - -Wmissing-noreturn. - - * toplev.c (documented_lang_options): Remove -Wmissing-noreturn. - (W_options): Add -Wmissing-noreturn here. - - * flow.c: Define lang_missing_noreturn_ok_p. - (check_function_return_warnings): Use it. - - * c-common.h: Declare lang_missing_noreturn_ok_p. - - * c-lang.c (c_missing_noreturn_ok_p): New function. - (lang_init): Set lang_missing_noreturn_ok_p. - - * invoke.texi (Warning Options): Document this. - -2000-12-27 Phil Edwards - - * extend.texi (C++ Extensions): New node for C++ attributes; - describe init_priority and com_interface. - * invoke.texi: Remove -finit-priority as it now has zero effect. - * install.texi: Fix xref syntax. - * md.texi: Likewise. - -Mon Jan 1 21:28:29 2001 Richard Kenner - - * config.gcc (sparc64-wrs-vxworks*): New case. - * config/sparc/vxsparc64.h, config/sparc/t-vxsparc64: New files. - - * config/sparc/sparc.c (sparc_override_options): Do support different - pointer and architecture size. - * config/sparc/sparc.h (MIN_UNITS_PER_WORD): Always 4. - (POINTERS_EXTEND_UNSIGNED): Define. - (Pmode): Test TARGET_ARCH64, not TARGET_PTR64. - (FUNCTION_MODE): Define to be Pmode. - * config/sparc/sparc.md (64-bit call patterns): FUNCTION_MODE now DI. - - * function.c (expand_function_end): Properly handle DECL_RESULT - and copy when ptr_mode != Pmode. - * expmed.c (make_tree): Convert X from Pmode to ptr_mode, if needed. - -2001-01-01 Kaveh R. Ghazi - - * c-common.c (c_common_nodes_and_builtins): Set prototype - parameters for __builtin_fputs, __builtin_fputc and - __builtin_fwrite. Don't declare plain fputc as a builtin. - -2001-01-01 John David Anglin - - * loop.c (add_label_notes): Increment the label usage count when - a note is added to an insn which refers to a CODE_LABEL. - * gcse.c (add_label_notes): Likewise. - -2001-01-01 Andreas Jaeger - - * loop.c (scan_loop): Use xmalloc to allocate movables. - -2001-01-01 Alexandre Oliva - - * tm.texi (REGISTER_MOVE_COST): Add a mode argument. - * reload.c (REGISTER_MOVE_COST): Likewise. Adjust all callers. - * reload1.c (REGISTER_MOVE_COST): Likewise. - * regclass.c (REGISTER_MOVE_COST): Likewise. - (move_cost, may_move_in_cost, may_move_out_cost): Add mode - dimension. Adjust all users. - (init_reg_sets_1): Iterate on all modes. - * config/1750a/1750a.h (REGISTER_MOVE_COST): Adjust. - * config/a29k/a29k.h (REGISTER_MOVE_COST): Adjust. - * config/alpha/alpha.h (REGISTER_MOVE_COST): Adjust. - * config/arc/arc.h (REGISTER_MOVE_COST): Adjust. - * config/arm/arm.h (REGISTER_MOVE_COST): Adjust. - * config/avr/avr.h (REGISTER_MOVE_COST): Adjust. - * config/c4x/c4x.h (REGISTER_MOVE_COST): Adjust. - * config/d30v/d30v.h (REGISTER_MOVE_COST): Adjust. - * config/dsp16xx/dsp16xx.h (REGISTER_MOVE_COST): Adjust. - * config/h8300/h8300.h (REGISTER_MOVE_COST): Adjust. - * config/i386/i386.h (REGISTER_MOVE_COST): Adjust. - * config/ia64/ia64.h (REGISTER_MOVE_COST): Adjust. - * config/m32r/m32r.h (REGISTER_MOVE_COST): Adjust. - * config/m68hc11/m68hc11.h (REGISTER_MOVE_COST): Adjust. - * config/m68k/m68k.h (REGISTER_MOVE_COST): Adjust. - * config/mcore/mcore.h (REGISTER_MOVE_COST): Adjust. - * config/mips/mips.h (REGISTER_MOVE_COST): Adjust. - * config/mn10200/mn10200.h (REGISTER_MOVE_COST): Adjust. - * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Adjust. - * config/ns32k/ns32k.h (REGISTER_MOVE_COST): Adjust. - * config/pa/pa.h (REGISTER_MOVE_COST): Adjust. - * config/pdp11/pdp11.h (REGISTER_MOVE_COST): Adjust. - * config/pj/pj.h (REGISTER_MOVE_COST): Adjust. - * config/romp/romp.h (REGISTER_MOVE_COST): Adjust. - * config/rs6000/rs6000.h (REGISTER_MOVE_COST): Adjust. - * config/sh/sh.h (REGISTER_MOVE_COST): Adjust. - * config/sparc/sparc.h (REGISTER_MOVE_COST): Adjust. - -2001-01-01 Bernd Schmidt - - * alias.c (fixed_scalar_and_varying_struct): Adjust prototype of - arg VARIES_P. Call it with extra arg. - (true_dependence): Likewise. - * rtl.h (rtx_addr_can_trap_p): Declare. - (rtx_varies_p, rtx_addr_varies_p, true_dependence): Update - prototypes. - * rtlanal.c (rtx_addr_can_trap_p): No longer static. - (rtx_varies_p): Accept extra arg FOR_ALIAS; only disallow - pic offset table register if it's zero. All callers changed. - (rtx_addr_varies_p): Accept extra arg FOR_ALIAS; all callers changed. - -Mon Jan 1 07:38:33 2001 Richard Kenner - - * explow.c (convert_memory_address, case SYMBOL_REF): Copy - STRING_POOL_ADDRESS_P. - - * config/sparc/sparc.c (input_operand): Properly test for short op. - - * config.gcc (sparc-*-elf): Include sparc/sol2.h. - (sparc-*-rtems*): Include sparc/sol2.h and sparc/elf.h. - (sparclite-*-elf*, sparc86x-*-elf*): Likewise. - * config/sparc/elf.h: No longer include sol2.h. - * config/sparc/lifeelf.h: No longer include sparc/elf.h. - * config/sparc/rtemself.h, config/sparc/sp86x-elf.h: Likewise. - - * config/sparc/sparc.md: Test TARGET_ARCH64 instead of TARGET_PTR64. - -2001-01-01 Michael Hayes - - * loop.c (check_insn_for_bivs): Use ivs->n_regs to check array bounds. - (find_mem_givs, record_biv, maybe_eliminate_biv): Likewise. - (record_initial): Likewise. - * unroll.c (copy_loop_body, loop_iterations): Likewise. - (remap_split_bivs): Likewise. - -2001-01-01 Michael Hayes - - * loop.c (loop_ivs_free): New function. - (strength_reduce): Break out from... - -2001-01-01 Michael Hayes - - * loop.h (struct iv): New. - (REG_IV_TYPE, REG_IV_CLASS, REG_INFO): Modify to use 'struct iv'. - (struct loop_ivs): Replace 'reg_iv_type', 'reg_iv_info', - 'reg_biv_class' fields with 'regs' and 'n_regs'. - (struct ivs): Rename 'loop_iv_list' field to 'list'. - * loop.c (loop_bivs_find, strength_reduce): Use ivs->regs array. - * unroll.c (loop_iterations): Check array bounds with ivs->n_regs. - -2000-12-31 Alexandre Oliva - - * resource.c (mark_referenced_resources): Abort() before - attempting to mark a pseudo register. - (mark_set_resources): Likewise. - -2001-01-01 Michael Hayes - - * loop.h (REG_IV_CLASS): New accessor macro. - * loop.c (REG_IV_CLASS): Use it instead of reg_iv_class array. - * unroll.c (REG_IV_CLASS): Likewise. - -See ChangeLog.4 for earlier changes. diff --git a/gcc/ChangeLog.8 b/gcc/ChangeLog.8 deleted file mode 100644 index 37774eebf508..000000000000 --- a/gcc/ChangeLog.8 +++ /dev/null @@ -1,14448 +0,0 @@ -2002-12-31 Kazu Hirata - - * config/h8300/h8300-protos.h: Update the prototypes. - * config/h8300/h8300.c (const_le_2_operand): Change to - const_int_le_2_operand. - (const_int_le_6_operand): Change to const_int_le_6_operand. - * config/h8300/h8300.md (two peepholes): Update the function - names. - -2002-12-31 Tom Tromey - - * doc/install.texi (Testing): Fixed typo. - -2002-12-31 Kazu Hirata - - * config/h8300/h8300.h (TRAMPOLINE_TEMPLATE): Remove. - (TRAMPOLINE_SIZE): Support the normal mode. - (INITIALIZE_TRAMPOLINE): Emit the entire trampoline. - -2002-12-31 Mark Mitchell - - * c-common.h (pending_lang_change): Declare. - -2002-12-31 Jerry Quinn - - * gcc/doc/invoke.texi (Optimization Options): Clean up -O flag - descriptions. - -2002-12-31 Jerry Quinn - - * gcc/doc/invoke.texi (Optimization Options): List the options - enabled by each -O flag. - -2002-12-31 Gerald Pfeifer - - * doc/install.texi (Configuration): Explicitly refer - gcc/config.gcc for a list of cpu models. - -2002-12-31 Kazu Hirata - - * config/h8300/h8300.h: Fix comment typos. - -2002-12-30 David Edelsohn - - * config/rs6000/rs6000.h (WIDEST_HARDWARE_FP_SIZE): Define. - -2002-12-30 Tom Tromey - - * doc/install.texi (Testing): Mention Jacks. - -2002-12-30 Joseph S. Myers - - * doc/gcc.texi, doc/gccint.texi: Update last modification dates. - -2002-12-30 Kazu Hirata - - * config/h8300/h8300.c (output_logical_op): Use extu.w in more - cases. - (compute_logical_op_length): Update to reflect the change in - output_logical_op. - (compute_logical_op_cc): Likewise. - -2002-12-30 Joseph S. Myers - - * doc/service.texi: Uncomment and update FAQ link. - -2002-12-30 Andreas Jaeger - - * unwind-dw2-fde.h (last_fde): Add unused attribute for obj. - -2002-12-30 Kazu Hirata - - * config/h8300/h8300.md (*addsi3_lshiftrt_16_zexthi): New. - -2002-12-30 Kazu Hirata - - * config/h8300/h8300.c (output_logical_op): Use extu.w if we - are clearing the most significant byte. - (compute_logical_op_length): Update to reflect the change in - output_logical_op. - (compute_logical_op_cc): Likewise. - -2002-12-29 Kazu Hirata - - * config/h8300/h8300.md: Give internal names to anonymous - insns. - -2002-12-29 Kazu Hirata - - * config/h8300/h8300.md: Reorder some insns. - -2002-12-29 Kazu Hirata - - * config/h8300/h8300-protos.h: Add prototypes for - const_int_qi_operand and const_int_hi_operand. - * config/h8300/h8300.c (const_int_qi_operand): New. - (const_int_hi_operand): Likewise. - * config/h8300/h8300.md (three peepholes): New. - -2002-12-28 Joseph S. Myers - - * doc/cpp.texi, doc/gcc.texi, doc/gccint.texi, doc/install.texi: - Use @copying. - -2002-12-28 Joseph S. Myers - - * configure.in: Increase makeinfo version requirement to 4.[2-9]. - * configure: Regenerate. - * doc/install.texi: Update Texinfo version requirement. - -2002-12-28 Andreas Jaeger - - * config/i386/i386.c (x86_function_profiler): Mark labelno as - possibly unused. - - * c-parse.in (yyprint): Use HOST_WIDE_INT_PRINT_DOUBLE_HEX for - correct format. - -2002-12-27 Kazu Hirata - - * config/h8300/h8300.md (*iorhi_shift_8): Change the name to - *iorhi_ashift_8. - (*iorhi_lshiftrt_8): New. - -2002-12-27 Joseph S. Myers - - * doc/include/texinfo.tex: Update to version 2002-12-26.16. - -2002-12-27 Gerald Pfeifer - - * doc/contrib.texi (Contributors): Add Abramo and Roberto Bagnara. - -2002-12-26 Kazu Hirata - - * config/h8300/h8300-protos.h: Fix comment typos. - Update copyright. - * config/h8300/h8300.c: Fix comment typos. - -2002-12-26 Kazu Hirata - - * config/h8300/h8300.h (IDENT_ASM_OP): End with a tab. - -2002-12-26 Kazu Hirata - - * config/i386/athlon.md: Fix comment typos. - * config/i386/crtdll.h: Likewise. - * config/i386/djgpp.h: Likewise. - * config/i386/i386-interix.h: Likewise. - * config/i386/i386.c: Likewise. - * config/i386/i386.h: Likewise. - * config/i386/i386.md: Likewise. - * config/i386/k6.md: Likewise. - * config/i386/mingw32.h: Likewise. - * config/i386/pentium.md: Likewise. - * config/i386/sco5.h: Likewise. - * config/i386/winnt.c: Likewise. - * config/i386/xmmintrin.h: Likewise. - -2002-12-26 Jose Renau - - * ssa-dce.c (EXECUTE_IF_UNNECESSARY): Verify INSN is an - INSN_P before checking to see if it is dead. - (mark_all_insn_unnecessary): Similarly. - (ssa_eliminate_dead_code): Similarly. - * rtl.h (struct rtx_def): Update comments for in_struct usage - in dead code elimination pass. - (INSN_DEAD_CODE_P): Allow JUMP_INSN and CALL_INSN as well. - -2002-12-26 Andreas Schwab - - * config.gcc (powerpc*-*-*, rs6000-*-*): Fix assignment syntax. - -2002-12-25 David Edelsohn - - * config/rs6000/rs6000.c (rs6000_override_options): Convert to - tartet_flags_explicit. - * config/rs6000/rs6000.h (MASK_MULTIPLE_SET, MASK_STRING_SET): Delete. - Compact target_flags bits. - (TARGET_MULTIPLE_SET, TARGET_STRING_SET): Delete. - (TARGET_SWITCHES): Delete references to *_SET flags. - -Wed Dec 25 20:30:53 CET 2002 Jan Hubicka - - * i386.md (memory attribute): Fix setcc attribute. - -2002-12-25 Kazu Hirata - - * output.h: Fix comment typos. - * predict.c: Likewise. - * print-tree.c: Likewise. - * profile.c: Likewise. - * ra-build.c: Likewise. - * ra-colorize.c: Likewise. - * ra-debug.c: Likewise. - * ra-rewrite.c: Likewise. - * ra.c: Likewise. - * ra.h: Likewise. - * real.c: Likewise. - * recog.c: Likewise. - * reg-stack.c: Likewise. - * regclass.c: Likewise. - -2002-12-25 Kazu Hirata - - * config/h8300/h8300.c (print_operand_address): Do not negate - a negative number when printing one. - -2002-12-25 Kazu Hirata - - * config/h8300/h8300-protos.h: Add prototypes for - output_plussi, compute_plussi_length, and compute_plussi_cc. - * config/h8300/h8300.c (output_plussi): New. - (compute_plussi_length): Likewise. - (compute_plussi_cc): Likewise. - * config/h8300/h8300.md (addsi_h8300h): Call - output_plussi, compute_plussi_length, and compute_plussi_cc. - -2002-12-24 Kazu Hirata - - * config/h8300/h8300.md (two peepholes): Use match_dup instead - of match_operand in the new patterns. - -2002-12-24 Joseph S. Myers - - * doc/include/texinfo.tex: Update to version 2002-11-25.11. - -2002-12-24 Nathan Sidwell - - * configure.in (enable-coverage): Add SELF_COVERAGE. - * profile.c (end_branch_prob): Use SELF_COVERAGE. - -2002-12-24 Jim Wilson - - * alias.c (record_set): Handle multi-reg hard registers. - -2002-12-24 Kazu Hirata - - * regmove.c: Fix comment typos. - * reload.c: Likewise. - * reload1.c: Likewise. - * resource.c: Likewise. - * rtl.def: Likewise. - * rtl.h: Likewise. - * rtlanal.c: Likewise. - * sched-deps.c: Likewise. - * sched-rgn.c: Likewise. - * sibcall.c: Likewise. - * simplify-rtx.c: Likewise. - * ssa-ccp.c: Likewise. - * ssa.c: Likewise. - * stmt.c: Likewise. - * stor-layout.c: Likewise. - * system.h: Likewise. - * tlink.c: Likewise. - * toplev.c: Likewise. - * tracer.c: Likewise. - * tree-inline.c: Likewise. - * tree.c: Likewise. - * tree.h: Likewise. - * unroll.c: Likewise. - * varasm.c: Likewise. - -2002-12-23 Larin Hennessy - - * doc/install.texi: Remove i386-*-isc, i860-*-bsd, - m68k-altos-sysv, m68k-isi-bsd, m68k-sony-bsd entries. - * doc/invoke.texi: Remove AMD 29K, ARM RISC/iX, Clipper, Convex, - DG/UX entries. - * doc/md.texi: Remove AMD 29K entries. - * doc/trouble.texi: Remove Alliant, DG/UX, Iris 4.0.5F, GAS - 1.38.1, NewsOS, RT PC, WE32K entries. - -2002-12-23 Aldy Hernandez - - PR/8763 - * config/rs6000/altivec.md (mulv4sf3): Rewrite to add -0.0 vector. - (altivec_vspltisw_v4sf): Name pattern. - (altivec_vslw_v4sf): New pattern. - -2002-12-23 Joseph S. Myers - - * doc/include/gcc-common.texi: Define DEVELOPMENT. - -2002-12-23 Mark Mitchell - - * stor-layout.c (update_alignment_for_field): Correct handling of - unnamed bitfields on PCC_BITFIELD_TYPE_MATTERS machines. - * doc/tm.texi (PCC_BITFIELD_TYPE_MATTERS): Note that an unnamed - bitfield does not affect alignment. - -2002-12-23 David Edelsohn - - * expr.c (expand_assignment): Apply special treatment to - ARRAY_TYPE. - -2002-12-23 Kazu Hirata - - * config/h8300/h8300-protos.h: Update the prototype of - expand_a_shift. - * config/h8300/h8300.c (expand_a_shift): Change the return - type to void. - * config/h8300/h8300.md: Update all the uses of - expand_a_shift. - -2002-12-22 Nathan Sidwell - - * tree.c (save_expr): Allow either side of a dyadic operand to be - constant. - - * doc/portability.texi (portability): Update portability goals. - -2002-12-23 Kazu Hirata - - * config/h8300/h8300.c (output_a_shift): Remove unused code. - -2002-12-22 Mark Mitchell - - * stor-layout.c (update_alignment_for_field): Guard use of - ADJUST_FIELD_ALIGN with #ifdef. - - * stor-layout.c (update_alignment_for_field): Use - ADJUST_FIELD_ALIGN when computing the alignment for a zero-width - bitfield when PCC_BITFIELD_TYPE_MATTERS. - -2002-12-22 Kazu Hirata - - * genautomata.c: Fix comment typos. - -Sun Dec 22 18:23:44 CET 2002 Jan Hubicka - - * params.def (tracer-min-branch-probability-feedback): Fix default. - * final.c (compute_alignments): Use profile to avoid code bloat. - -2002-12-22 Kazu Hirata - - * config/h8300/h8300.c (get_shift_alg): Make shift insn - sequences end with a valid cc0 whenever possible. - -2002-12-22 Kazu Hirata - - * config/h8300/h8300.md (negsf2): New. - (*negsf2_h8300): Likewise. - (*negsf2_h8300hs): Likewise. - -2002-12-21 Geoffrey Keating - - * integrate.c (output_inline_function): Don't hold private - pointers to 'struct function' over GC calls. - -2002-12-21 Kaz kojima - - * config/sh/lib1funcs.asm (__fpscr_values): Conditionalize with - NO_FPSCR_VALUES. - * config/sh/t-linux (TARGET_LIBGCC2_CFLAGS): Add -DNO_FPSCR_VALUES. - -2002-12-21 Kazu Hirata - - * config/h8300/h8300.md (zero_extendqisi2): Correct the - length. - -2002-12-21 Kazu Hirata - - * config/h8300/h8300.md (*zero_extendqihi2_h8300): Make the - second alternative "#". - (*zero_extendqihi2_h8300hs): Likewise. - (a define_split): New. - -2002-12-21 Kazu Hirata - - * config/h8300/h8300-protos.h: Update the prototype for - split_adds_subs. - Add prototypes for const_le_2_operand and const_le_6_operand. - * config/h8300/h8300.c (split_adds_subs): Add an argument to - specify whether inc/dec should be used when possible. - (const_le_2_operand): New. - (const_le_6_operand): Likewise. - * config/h8300/h8300.md (two peepholes): New. - -2002-12-21 Kazu Hirata - - * config/fr30/fr30.md: Fix a comment typo. - * config/i386/i386.c: Likewise. - * config/ip2k/ip2k.h: Likewise. - -2002-12-20 Jim Wilson - - * config/rs6000/spe.h (__ev_subifw): Reverse arguments. - (__ev_subw, __ev_subiw): New. - (ev_mwlssf, ev_mwlsmf, ev_mwlssfa, ev_mwlsmfa, ev_mwlssfaaw, - ev_mwlsmfaaw, ev_mwlssfanw, ev_mwlsmfanw): Delete. - -2002-12-20 John David Anglin - - * pa-linux.h (TARGET_HAS_STUBS_AND_ELF_SECTIONS): Delete define. - * pa32-linux.h (FUNCTION_OK_FOR_SIBCALL): Delete define. - * pa.c (pa_function_ok_for_sibcall): Allow non indirect sibcalls on - TARGET_ELF32. Add comment on sibcall issues for TARGET_64BIT. - -2002-12-20 Kazu Hirata - - * config/h8300/h8300-protos.h: Add prototypes for - incdec_operand and eqne_operator. - * config/h8300/h8300.c (incdec_operand): New. - (eqne_operator): Likewise. - * config/h8300/h8300.h (CONST_OK_FOR_M): Likewise. - (CONST_OK_FOR_O): Likewise. - (CONST_OK_FOR_LETTER_P): Use CONST_OK_FOR_M and - CONST_OK_FOR_O. - * config/h8300/h8300.md (UNSPEC_INCDEC): New. - (addhi3_incdec): New. - (addsi3_incdec): Likewise. - (two peepholes): Likewise. - -2002-12-20 Kazu Hirata - - * config/h8300/h8300.c (dosize): Remove warnings. - (print_operand): Likewise. - -2002-12-20 Richard Henderson - - * config/alpha/alpha.c (decl_has_samegp): New. - (samegp_function_operand): Use it. Rename from - current_file_function_operand. - (direct_call_operand): Handle -msmall-text via symbol->jump. - (tls_symbolic_operand_1): Use T for tprel64, t for smaller tprel. - (tls_symbolic_operand_type): Likewise. - (alpha_encode_section_info): Likewise. Handle -msmall-text. - (alpha_function_ok_for_sibcall): Use decl_has_samegp. - (alpha_end_function): Set symbol->jump for functions defined in - the text section. - * config/alpha/alpha-protos.h: Update. - * config/alpha/alpha.h (MASK_SMALL_TEXT, TARGET_SMALL_TEXT): New. - (TARGET_SWITCHES): Add -msmall-text and -mlarge-text. - (PREDICATE_CODES): Update. - * config/alpha/alpha.md (call patterns): Update for - samegp_function_operand rename; use !samegp reloc if - TARGET_EXPLICIT_RELOCS. - * doc/invoke.text: Document -msmall-text and -mlarge-text. - -2002-12-20 Ian Dall - - * config/ns32k/ns32k.md (movdi): Use "l" instead of "f" to match - all registers capable of holding a double float. - (*rcond): change name of "reverse branch" insns to - something more meaningful. - (*rbgt, *rblt, *rbge, *rble): Reverse branches to handle IEEE - comparisons properly. - (*ffs): Change operand 0 from write to read-modify-write. - (*ffsssi2): Drop constraints from define_expand. - - * config/ns32k/ns32k.h (STORE_RATIO, STORE_BY_PIECES): Avoid using - MOVE_RATIO as default for store operations. - - * config/ns32k/ns32k.h (enum reg_class, REG_CLASS_NAMES): Add - LONG_REGS class. - (CANNOT_CHANGE_MODE_CLASS): Can't subreg LONG_REGS. - (GO_IF_LEGITIMATE_ADDRESS): Remove spurious abort(). - * config/ns32k/ns32k.c (regclass_map): Add LONG_REGS class. - - * config/ns32k/STATUS: New File - * config/ns32k/NOTES: New file. - -2002-12-20 Hartmut Penner - - * doc/invoke.texi: Document -mzarch, -mesa, -mcpu= and -march= - option for S/390 and zSeries. - * config/s390/s390.c (s390_cpu, s390_cpu_string, s390_arch, - s390_arch_string): New variables. - (override_options): Checking for options and setting of - appropriate target_flags, cpu and arch flags. - * config/s390/s390.h: (processor_type): New enum. - (TARGET_SWITCHES): New switches -mesa/zarch. - * config/s390/s390.md: New attribute 'cpu'. - -2002-12-19 Kazu Hirata - - * c-pretty-print.h: Fix comment typos. - * integrate.c: Likewise. - * varasm.c: Likewise. - * config/c4x/c4x.h: Likewise. - * config/c4x/c4x.md: Likewise. - * config/fr30/fr30.md: Likewise. - * config/frv/frv.c: Likewise. - * config/h8300/h8300.c: Likewise. - * config/i386/i386.c: Likewise. - * config/i386/i386.h: Likewise. - * config/ia64/ia64.c: Likewise. - * config/ia64/ia64.h: Likewise. - * config/ip2k/ip2k.md: Likewise. - * config/m68hc11/m68hc11-crt0.S: Likewise. - * config/m68hc11/m68hc11.h: Likewise. - * config/m68hc11/m68hc11.md: Likewise. - * config/m68hc11/m68hc12.h: Likewise. - * config/mcore/mcore.md: Likewise. - * config/mips/mips.c: Likewise. - * config/mips/mips.md: Likewise. - * config/mmix/mmix-modes.def: Likewise. - * config/pa/pa.c: Likewise. - * config/rs6000/rs6000.c: Likewise. - * config/rs6000/rs6000.h: Likewise. - * config/rs6000/rs6000.md: Likewise. - -2002-12-19 Kazu Hirata - - * config/h8300/h8300.md (output_a_shift): Clean up the code to - output shifts using rotation. - -2002-12-20 Zdenek Dvorak - - * flow.c (allocate_reg_life_data): Reset REG_FREQ. - -2002-12-19 Kazu Hirata - - * config/h8300/h8300.md (pushqi_h8300): Don't push the stack - pointer. - (pushqi_h8300hs): Likewise. - (pushhi_h8300): Likewise. - (pushhi_h8300hs): Likewise. - -Thu Dec 19 23:44:09 2002 J"orn Rennecke - - * sched-rgn.c (init_regions): Update comment. - -2002-12-19 David Edelsohn - - * config/rs6000/rs6000.md (define_attr type): Remove altivec. - * config/rs6000/altivec.md (movv4si_internal): Set correct instruction - attributes. - (movv8hi_internal,movv16qi_internal,movv4sf_internal): Same. - (get_vrsave_internal,set_vrsave_internal): Same. - (altivec_vspltisb,altivec_vspltish,altivec_vspltisw): Same. - (absv16qi2,absv8hi2,absv4si2,absv4sf2): Same - (altivec_abss_v16qi,altivec_abss_v8hi,altivec_abss_v4si): Same. - -2002-12-19 Casper S. Hornstrup - Danny Smith - Eric Kohl - - * config/i386/i386.c (ix86_handle_cdecl_attribute): Check for - attributes incompatible with fastcall attribute. - (ix86_handle_regparm_attribute): Likewise. - - * config/i386/i386.c (ix86_comp_type_attributes): Check for mismatched - fastcall types. - - * config/i386/cygwin.h (TARGET_OS_CPP_BUILTINS): Add fastcall - attributes. - (ASM_OUTPUT_LABELREF): Define as i386_pe_output_labelref. - * config/i386/i386-protos.h (i386_pe_output_labelref): Declare. - * config/i386/winnt.c (i386_pe_mark_dllimport). Add __imp_ prefix in - i386_pe_output_labelref rather than here. - (gen_fastcall_suffix): New function. Decorates a label name with the - fastcall prefix (@) and the stdcall suffix. - (i386_pe_encode_section_info): Call gen_fastcall_suffix() if a symbol - has a fastcall attribute. - (i386_pe_output_labelref): New function. Outputs a label reference. - * config/i386/i386.c (ix86_attribute_table): Accept 'fastcall' as a - valid attribute. - (ix86_return_pops_args): Fastcall functions pop the stack. - (init_cumulative_args): Reserve registers ECX and EDX if function has - fastcall attribute. - (function_arg): Use registers ECX and EDX if function has fastcall - attribute. - * config/i386/i386.h (CUMULATIVE_ARGS): Add fastcall attribute flag. - (DLL_IMPORT_EXPORT_PREFIX): Redefine as '#'. - (FASTCALL_PREFIX): Define as '@'. - * config/i386/mingw32.h (TARGET_OS_CPP_BUILTINS): Add fastcall - attributes. - * doc/extend.texi: Add documentation of fastcall attribute. - -2002-12-19 Nathanael Nerode - - * configure.in: FORBUILD when build!=host changed from - ../$build-alias to ../build-$build_alias to match change made - in top directory. - * configure: Regenerated. - -2002-12-19 Eric Botcazou - - PR optimization/8988 - * loop.c (maybe_eliminate_biv): Kill REG_EQUAL notes mentioning - the biv when eliminating. - -2002-12-19 Devang Patel - * gcc.c (struct default_compiler): Recognizes input file name with - .CPP extension as C++ source files - * cp/lang-spec.h: Same - * doc/invoke.texi: Add documentation for .CPP support. - -2002-12-19 Aldy Hernandez - - PR 8553 - * config/rs6000/altivec.md ("absv8hi2"): Add & to clobbered - registers. - ("absv16qi2"): Same. - ("absv4si2"): Same. - ("absv4sf2"): Same. - ("altivec_abss_v16qi"): Same. - ("altivec_abss_v8hi"): Same. - ("altivec_abss_v4si"): Same. - -2002-12-19 Ulrich Weigand - - * config/s390/s390.md ("*tsthiCCT", "*tsthiCCT_cconly", - "*tstqiCCT", "*tstqiCCT_cconly"): New insns. - -2002-12-19 Eric Botcazou - - PR target/8340 - * stmt.c (expand_asm_operands): Produce an error when - the PIC register is clobbered. - -2002-12-18 Daniel Berlin - - * Makefile.in (OBJS): Add alloc-pool.o - (alloc-pool.o): New object. - - * alloc-pool.c: New file. - * alloc-pool.h: New file. - -2002-12-18 Loren James Rittle - - * gcc.c (validate_switches): Robustify against skipping past '\0'. - -2002-12-18 Geoffrey Keating - - * config.gcc: Set extra_objs in the generic Darwin rule, - not in the machine-specific rules. - -2002-12-19 Kazu Hirata - - * ChangeLog: Follow spelling conventions. - * ChangeLog.2: Likewise. - * ChangeLog.4: Likewise. - * ChangeLog.5: Likewise. - * cppexp.c: Likewise. - * df.c: Likewise. - * gcov.c: Likewise. - * gengtype.c: Likewise. - * reload1.c: Likewise. - * sched-rgn.c: Likewise. - * stmt.c: Likewise. - * stor-layout.c: Likewise. - * timevar.c: Likewise. - * toplev.c: Likewise. - * tree.h: Likewise. - * varasm.c: Likewise. - * config/fr30/fr30.md: Likewise. - * config/i386/i386.c: Likewise. - * config/ia64/ia64.c: Likewise. - * config/pa/pa.c: Likewise. - -2002-12-18 Roger Sayle - - * basic-block.h (flow_bb_inside_loop_p): Correct prototype. - -2002-12-18 Aldy Hernandez - - PR 8551 - * config/rs6000/altivec.h (vec_cmplt macro): Reverse arguments in - macro. - (vec_cmplt C++ functions): Reverse arguments. - -2002-12-18 Geoffrey Keating - - * config/rs6000/t-rs6000: Move contents to t-fprules, - add rules for dependencies of rs6000.o and to build rs6000-c.o - * config/rs6000/t-fprules: New file from t-rs6000. - * config/rs6000/t-beos: Remove soft-fp rules. - * config/rs6000/t-ppccomm: Likewise. - * config/rs6000/t-newas: Likewise. - * config/rs6000/t-rs6000-c-rule: Delete. - * config.gcc: Use t-fprules for rs6000/ ports when appropriate. - Use t-rs6000 for all rs6000/ ports instead of t-rs6000-c-rule. - Create generic Darwin rules. - - * gengenrtl.c (gencode): Delete unnecessary rtl_obstack declaration. - -2002-12-18 Doug Evans - - * m32r/m32r.c (addr24_operand): Fix arg to CONSTANT_POOL_ADDRESS_P - and LIT_NAME_P. - (move_src_operand): Remove compile-time warning. - * m32r/m32r.h (ROUND_ADVANCE_ARG): Ditto. - -2002-12-18 Jason Merrill - - * unwind-dw2-fde.c (frame_downheap): Split out from... - (frame_heapsort): Here. - -2002-12-17 Jason Merrill - - * tree.c (make_node): Don't set TREE_TYPE on 's' class nodes. - (build1): Always set TREE_SIDE_EFFECTS on 's' class nodes. - - * gcc.c (do_spec_1) ['W']: End any pending argument from the braces. - - * calls.c (expand_call): Don't try to be clever about expanding - the return slot address. - -2002-12-18 Kaz kojima - - * config/sh/linux.h (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC): - Define. - -2002-12-17 Jason Merrill - - * genmultilib: Use 'cd ./foo'. - -2002-12-17 Kazu Hirata - - * doc/c-tree.texi: Restore deliberate spelling mistakes. - -2002-12-17 Kazu Hirata - - * doc/c-tree.texi: Fix typos and follow spelling conventions. - * doc/cpp.texi: Likewise. - * doc/extend.texi: Likewise. - * doc/gty.texi: Likewise. - * doc/install.texi: Likewise. - * doc/invoke.texi: Likewise. - * doc/md.texi: Likewise. - * doc/passes.texi: Likewise. - * doc/rtl.texi: Likewise. - * doc/sourcebuild.texi: Likewise. - * doc/tm.texi: Likewise. - -2002-12-17 Jerry Quinn - - * doc/invoke.texi: Minor spelling and grammar fixes. - -2002-12-17 Ulrich Weigand - - * config/s390/s390.c (s390_output_constant_pool): Replace - ASM_OUTPUT_INTERNAL_LABEL by (*targetm.asm_out.internal_label). - -Tue Dec 17 09:47:57 CET 2002 Jan Hubicka - - * convert.c (convert_to_real): Disable function transformation for - now. - -2002-12-16 Geoffrey Keating - - * gcc.c (handle_braces): Allow '@' as a switch name. - -2002-12-16 Jason Merrill - - * calls.c (expand_call): Handle CALL_EXPR_HAS_RETURN_SLOT_ADDR - with special struct-return ABIs. - - * c-semantics.c (add_scope_stmt): Abort if the end SCOPE_STMT - doesn't match the begin SCOPE_STMT in partialness. - -2002-12-16 Geoffrey Keating - - * genmultilib: Create temporary files in unique subdirectory. - - * gcc.c (validate_switches): Allow '@' as a switch name. - -2002-12-16 Loren J. Rittle - - * Makefile.in (gcov-iov.h): Improve portability. - -Mon Dec 16 23:39:19 CET 2002 Jan Hubicka - - * mips.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not use qpword on API_N32/not - gas - * mips.md (tablejump insn): Likewise. - -2002-12-16 Mark Mitchell - - * doc/include/gcc-common.texi: Change version number to 3.4. - -2002-12-16 Bruce Korb - - * fixinc/fixlib.h: add: #include - * fixinc/fixincl.c: remove: #include - -Mon Dec 16 17:20:04 2002 J"orn Rennecke - - * sh.h (EXTRA_CONSTRAINT_Z): New macro. - (EXTRA_CONSTRAINT): Use it. - * sh.md (anddi3): Use 'Z' constraint for alternative 2. - -2002-12-15 Zack Weinberg - - * config.gcc (need_64bit_hwint): New variable. - (alpha*-*-*, x86_64-*-*, ia64-*-*, mips*-*-*, powerpc*-*-*, - mmix-knuth-mmixware, rs6000*-*-*, sparc64*-*-*, s390*-*-*, - sh*-*-*, hppa*64*-*-linux, parisc*64*-*-linux, hppa*64*-*-hpux11*, - sparcv9-*-solaris2*, sparc*-*-solaris2.[789], ultrasparc-*-freebsd*): - Set it. - (powerpc*-*-darwin*): Unset it. - (alpha-*-interix, alpha64-dec-*vms*, i?86-*-interix3*, - i?86-*-interix*, sparc64-*-openbsd*): Remove references to - deleted/nonexistent xm-*.h headers. - * configure.in: AC_DEFINE NEED_64BIT_HOST_WIDE_INT if the - target set need_64bit_hwint in config.gcc. - * configure, config.in: Regenerate. - - * hwint.h: Overhaul. Don't bother trying int for - HOST_WIDE_INT. Do try __int64 if long is not enough. Base - decision to force 64-bit HOST_WIDE_INT on - NEED_64BIT_HOST_WIDE_INT, not (MAX_)LONG_TYPE_SIZE which is - not visible at this point. Don't allow prior definition of - any macro defined by this file. - - * config/alpha/xm-vms.h: Don't define HOST_WIDE_INT or - HOST_BITS_PER_WIDE_INT. - * config/c4x/c4x.h: Adjust redefinition of - HOST_WIDE_INT_PRINT_HEX to match changes to hwint.h. - * config/alpha/xm-alpha-interix.h, config/alpha/xm-vms64.h, - config/i386/xm-i386-interix.h: Delete file. - -2002-12-14 Rodney Brown - John David Anglin - - * pa.c (output_millicode_call): Convert ASM_OUTPUT_INTERNAL_LABEL. - * pa64-hpux.h (ASM_OUTPUT_INTERNAL_LABEL): Delete define. - -2002-12-14 Zack Weinberg - - * mkconfig.sh: Correct comment. Add copyright boilerplate. - -2002-12-14 Zack Weinberg - - * config/t-darwin, config/arm/t-pe, config/arm/t-strongarm-pe, - config/c4x/t-c4x, config/i370/t-i370, config/i386/t-cygwin, - config/i386/t-interix, config/i960/t-960bare, config/ia64/t-ia64, - config/rs6000/t-rs6000-c-rule, config/sparc/t-sol2, - config/v850/t-v850: Correct dependencies and normalize - compilation commands for files that include coretypes.h and tm.h. - - * config/sparc/gmon-sol2.c: Include tconfig.h and tsystem.h, - not config.h and system.h. - -Sat Dec 14 20:43:41 CET 2002 Jan Hubicka - - * i386.c (flags_reg_operand): New function. - * i386.h (PREDICATE_CODES): Add flags_reg_operand. - * i386.md (cmov splitter, movqicc): Use new predicate. - -Sat Dec 14 17:03:17 CET 2002 Jan Hubicka - - * i386.md (movqicc splitter): Fix template. - -2002-12-13 Jason Merrill - - * tree.h (CALL_EXPR_HAS_RETURN_SLOT_ADDR): New macro. - * calls.c (expand_call): Handle it. - * tree-inline.c (struct inline_data): Remove target_exprs field. - (optimize_inline_calls): Don't initialize it. - (expand_call_inline): Don't modify it. Handle - CALL_EXPR_HAS_RETURN_SLOT_ADDR. - (declare_return_variable): Take return slot addr. - * langhooks.h (copy_res_decl_for_inlining): Change target_exprs parm - to return_slot_addr. - * langhooks-def.h, langhooks.c: Adjust. - * explow.c (maybe_set_unchanging): Don't set RTX_UNCHANGING_P for - a decl with no DECL_INITIAL. - - * expr.c (expand_expr): Don't discard the target of a call which - returns in memory. - -2002-12-13 Neil Booth - - * cppinit.c (path_include): Take an environment variable name. - Tidy up. - (init_standard_includes): Simplify environment handling, and - move to ... - (cpp_read_main_file): ...here as -nostdinc should not affect - environment variable paths. - -2002-12-13 John David Anglin - - * pa.c (output_millicode_call): Correct typo. - (output_call): Likewise. - -Fri Dec 13 21:07:18 2002 Alexandre Oliva - - * config/mn10300/mn10300.c (print_operand) : Check - operand's range. Print value directly, without aid from - output_address. - : New. - : Make sure argument to fprintf has the right type. - * config/mn10300/mn10300.h (OK_FOR_T): New macro. - (EXTRA_CONSTRAINT): Adjust. - * config/mn10300/mn10300.md: Add new all-QImode pattern for - bclr. Use %U for immediate operands of bset and bclr. - (iorqi3): New expand, with insns for AM33 and mn10300. - -Fri Dec 13 16:02:27 2002 J"orn Rennecke - - * sh.c (sh_register_operand): New function. - (prepare_move_operands): Use it. - * sh.h (PREDICATE_CODES): Add entry for sh_register_operand. - * sh.md (movsi_media, movsi_media_nofpu): Allow stores of 0. - (movqi_media, movhi_media, movdi_media, movdi_media_nofpu): Likewise. - (movdf_media, movdf_media_nofpu, movv4sf_i, movsf_media): Likewise. - (movsf_media_nofpu, movv2hi_i, movv4hi_i, movv8qi_i): Likewise. - (movv2si_i): Likewise. - -2002-12-13 Jim Wilson - - * doc/extend.texi (Complex Numbers): Update info on debug info. - -2002-12-13 Kazu Hirata - - * config/h8300/h8300.md (addhi3_h8300): Remove the last - alternative. - -2002-12-12 Zdenek Dvorak - - * hooks.h (hook_tree_tree_bool_false): Declare - hook_bool_tree_tree_false instead. - -2002-12-12 Devang Patel - - * doc/invoke.texi: Document Darwin linker options, -bundle - -bind_at_load, -all_load and -arch_errors_fatal - -2002-12-12 Jim Wilson - - * dbxout.c (dbxout_fptype_value): New. - (dbxout_type, case COMPLEX_TYPE): Call it. Use 'R' instead of 'r'. - -2002-12-12 Kazu Hirata - - * c-decl.c: Fix a comment typo. - * cfg.c: Likewise. - * cfgcleanup.c: Likewise. - * cfglayout.c: Likewise. - * cfgrtl.c: Likewise. - * c-typeck.c: Likewise. - * dominance.c: Likewise. - * dwarf2asm.c: Likewise. - * dwarfout.c: Likewise. - * expmed.c: Likewise. - * expr.c: Likewise. - * final.c: Likewise. - * flow.c: Likewise. - * function.c: Likewise. - * gcc.c: Likewise. - * genautomata.c: Likewise. - * integrate.c: Likewise. - * loop.c: Likewise. - * loop.h: Likewise. - * output.h: Likewise. - * profile.c: Likewise. - * ra.h: Likewise. - * reload1.c: Likewise. - * reload.c: Likewise. - * sched-rgn.c: Likewise. - * stmt.c: Likewise. - * tree.h: Likewise. - * vmsdbgout.c: Likewise. - -2002-12-12 Kazu Hirata - - * config/h8300/h8300.md: Add a new peephole2. - -2002-12-12 Kazu Hirata - - * config/h8300/h8300.md (a peephole2): Accept a constant - that's accepted by CONST_OK_FOR_J. - -2002-12-12 Kazu Hirata - - * config/h8300/h8300.h (CONST_OK_FOR_J): New. - (CONST_OK_FOR_LETTER_P): Use CONST_OK_FOR_J. - * config/h8300/h8300.md (*addhi_h8300): Add a new alternative. - (*addhi_h8300hs): Likewise. - -Thu Dec 12 16:24:59 2002 J"orn Rennecke - - * sh.c (reg_class_from_letter): No longer const. Add 'e' entry. - (sh_register_move_cost): Add clause for SImode fp-fp moves. - Increase cost for moves involving multiple general purpose registers. - * sh.h (OVERRIDE_OPTIONS): Set reg_class_from_letter['e'] according to - TARGET_FMOVD. - (HARD_REGNO_MODE_OK): Allow V2SFmode and V4SFmode in general purpose - registers, and SImode in fp registers, for ! TARGET_SHMEDIA. - (enum reg_class reg_class_from_letter): No longer const. - (SECONDARY_OUTPUT_RELOAD_CLASS): Use REGCLASS_HAS_FP_REG / - REGCLASS_HAS_GENERAL_REG. - Handle SImode moves from/to fp registers. - ! TARGET_SHMEDIA && TARGET_FMOVD. - (SECONDARY_INPUT_RELOAD_CLASS): Use REGCLASS_HAS_FP_REG. - * sh.md (movsi_ie): Add alternatives to move from / to fp regisyters. - -2002-12-12 Andreas Schwab - - * config/ia64/ia64.c (ia64_hpux_asm_file_end): Fix typo in last - change and some warnings. - -2002-12-12 Kazu Hirata - - * doc/md.texi (pushm): Fix a typo. - -2002-12-12 Alexandre Oliva - - * config/mips/mips.c (mips_output_conditional_branch): Support - PIC-safe out-of-range branch and branch-likely. - * config/mips/mips.md (attr length): PIC-safe out-of-range - branches are longer. - ("jump"): Support PIC-safe out-of-range-for-branch jumps. Remove - unused code to support indirect jumps. - -2002-12-11 Zack Weinberg - - * Makefile.in (GTFILES): Add $(host_xm_file_list) and - $(tm_file_list). - -2002-12-11 David Edelsohn - - * config/rs6000/t-rs6000-c-rule: Add coretypes.h $(TM_H) dependencies. - -Wed Dec 11 15:20:45 CET 2002 Jan Hubicka - - * i386.md (cmove splitters): Avoid creation of unnecesary subregs. - -2002-12-11 John David Anglin - - * pa.h (BIGGEST_ALIGNMENT): Change 32-bit value to 64 bits. - (MAX_PARM_BOUNDARY, STACK_BOUNDARY): Express in terms of - BIGGEST_ALIGNMENT. - (PREFERRED_STACK_BOUNDARY): Express in terms of STACK_BOUNDARY. - (FUNCTION_BOUNDARY): Express in terms of BITS_PER_WORD. - -2002-12-11 Kazu Hirata - - * doc/invoke.texi: Correct dump file names. - -2002-12-09 Steve Ellcey - - * config/ia64/ia64.c (ia64_hpux_asm_file_end): Don't send stripped - name to globalize_label or assemble_name. - -Wed Dec 11 20:15:19 2002 J"orn Rennecke - - * sh.h (REG_CLASS_HAS_GENERAL_REG): Only true for SIBCALL_REGS - if not TARGET_SHMEDIA. - -Wed Dec 11 19:05:05 2002 J"orn Rennecke - - * sh.h (REG_CLASS_HAS_FP_REG): New. - (REGISTER_MOVE_COST) Use it. Put body into a function and - move it into: - * sh.c (sh_register_move_cost). - * sh-protos.h (sh_register_move_cost): Declare. - - * sh.c (sh_expand_builtin): Abort for unexpected nop values. - (sh_adjust_cost): Always return a value. - -Wed Dec 11 18:39:52 2002 J"orn Rennecke - - * sh.h (REG_CLASS_HAS_GENERAL_REG): New. - (REGISTER_MOVE_COST): Use it. - -2002-12-11 Richard Henderson - - * tree.h (MODULE_LOCAL_P): Kill. - * varasm.c (default_binds_local_p_1): Use decl_visibility instead. - -2002-12-11 Kazu Hirata - - * config/h8300/h8300.md (two define_peephole2): New. - -2002-12-11 Kazu Hirata - - * config/h8300/h8300.h (CONST_OK_FOR_J): Remove. - (CONST_OK_FOR_K): Likewise. - (CONST_OK_FOR_M): Likewise. - (CONST_OK_FOR_LETTER_P): Do not use the above macros. - -2002-12-11 Neil Booth - - * c-common.c (builtin_define_type_max): Handle unsigned - types too. - -2002-12-10 David Edelsohn - - * haifa-sched.c (rank_for_schedule): Correct style. - -2002-12-10 Per Bothner - - * cpplib.h (struct cpp_hashnode): Split a non-portably-signed field - directive_index into an unsigned field and a new is_directive field. - * cppinit.c (mark_named_operators): Update to set new fields. - * cpplex.c (_cpp_lex_direct): Now directive_field is unsigned. - * cpplib.c [_cpp_handle_directive]: Test is_directive field. - No longer need to subtract 1 from directive_index. - (_cpp_init_directives): No longer need to add 1 to directive_index. - * cpptrad.c (scan_out_logical_line): Use is_directive field. - -2002-12-10 Roger Sayle - - * builtins.c (fold_builtin): Remove -funsafe-math-optimizations - check for evaluating sqrt of a constant at compile time. - * simplify-rtx.c (simplify_unary_operation): Likewise. - -2002-12-10 Janis Johnson - - PR other/8882 - * doc/tm.texi (PUSH_ARGS): Remove misplaced line. - -2002-12-10 Devang Patel - - * config/darwin.h(LINK_SPEC): Add darwin specific linker options. - * doc/invoke.texi: Add new "Darwin Options" section. - -2002-12-10 Jim Wilson - - * rs6000.h (RETURN_IN_MEMORY): If ABI_V4, then TFmode is returned in - memory. - -2002-12-10 Andrew Haley - - * cse.c (cse_insn): Don't cse past a basic block boundary. - -2002-12-10 Jakub Jelinek - - * config/linux.h (LIB_SPEC): If -pthread, add -lpthread even if - -shared. - * config/alpha/linux-elf.h (LIB_SPEC): Likewise. - * config/alpha/linux.h (LIB_SPEC): Likewise. - * config/arm/linux-elf.h (LIB_SPEC): Likewise. - * config/pa/pa-linux.h (LIB_SPEC): Likewise. - * config/sparc/linux.h (LIB_SPEC): Likewise. - * config/sparc/linux64.h (LIB_SPEC): Likewise. - -2002-12-09 Larin Hennessy - - * doc/invoke.texi: Document UltraSparc III option. - -2002-12-09 Richard Henderson - - * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Define - __tune_pentium2__ and __tune_pentium3__ as necessary. - -2002-12-09 Richard Henderson - - * target.h (gcc_target): Add cannot_force_const_mem. - * target-def.h (TARGET_CANNOT_FORCE_CONST_MEM): New. - (TARGET_INITIALIZER): Add it. - * varasm.c (force_const_mem): Fail if cannot_force_const_mem. - * expr.c (emit_move_insn): Be prepared for force_const_mem to fail. - * reload1.c (reload): Likewise. - * hooks.c (hook_bool_rtx_false): New. - * hooks.h: Declare it. - - * config/i386/i386.c (ix86_cannot_force_const_mem): New. - (TARGET_CANNOT_FORCE_CONST_MEM): New. - (ix86_expand_move): Remove de-const-pooling hack. - -Mon Dec 9 21:33:38 CET 2002 Jan Hubicka - - * toplev.c (dump_file): Fix order to match reality. - -2002-12-08 Geoffrey Keating - - * config/rs6000/rs6000.md (load_multiple): Use adjust_address_nv. - (store_multiple): Likewise. - -2002-12-09 John David Anglin - - * pa/fptr.c (__canonicalize_funcptr_for_compare): Don't canonicalize - function pointers in page 0. - -2002-12-09 Steve Ellcey - - * config/ia64/hpux.h (TARGET_STRUCT_ARG_REG_LITTLE_ENDIAN): Remove - definition - (MEMBER_TYPE_FORCES_BLK): Move. - * config/ia64/ia64.c (ia64_function_arg): Use PARALLEL to pass - aggregate arguments. - (ia64_function_value): Use PARALLEL to return aggregate values. - -2002-12-09 Steve Ellcey - - * doc/tm.texi (FUNCTION_ARG_REG_LITTLE_ENDIAN): Remove definition. - * defaults.h (FUNCTION_ARG_REG_LITTLE_ENDIAN): Remove definition. - * calls.c (store_unaligned_arguments_into_pseudos) Remove - FUNCTION_ARG_REG_LITTLE_ENDIAN. - * stmt.c (expand_return): Ditto. - * expr.c (move_block_from_reg): Ditto. - (copy_blkmode_from_reg): Ditto. - * expmed.c (store_bit_field): Ditto. - -2002-12-09 Svein E. Seldal - - * config.gcc: Added tic4x-* target as an alias to c4x-* - -Sun Dec 8 14:57:39 CET 2002 Jan Hubicka - - * i386.c (ix86_expand_int_movcc): Use force_operand instead of - constructing insn directly. - -2002-12-06 Per Bothner - - * cpplib.h (struct cpp_hashnode): Change field directive_index from - char to an int bit-field, for hosts where char is unsigned. - -2002-12-07 Roger Sayle - Richard Henderson - - * real.c (ieee_extended_motorola_format, - ieee_extended_intel_96_format, ieee_extended_intel_128_format, - ieee_quad_format, vax_d_format, vax_g_format, i370_double_format): - Provide appropriate values for new signbit field. - -2002-12-07 Roger Sayle - - * real.h (real_format): Add signbit field. - * real.c (ieee_single_format, ieee_double_format, - ieee_extended_motorola_format, ieee_extended_intel_96_format, - ieee_extended_intel_128_format, ibm_extended_format, - ieee_quad_format, vax_f_format, vax_d_format, - vax_g_format, i370_single_format, i370_double_format, - c4x_single_format, c4x_extended_format, real_internal_format): - Provide suitable signbit value, or -1 to avoid bit twiddling. - - * optabs.c (expand_unop): Try implementing negation of - floating point modes by flipping the sign bit. - (expand_abs): Try implementing abs of floating point modes - by clearing the sign bit. - -Sat Dec 7 22:29:47 CET 2002 Jan Hubicka - - * i386.c (ix86_expand_int_movcc): Use force_operand instead - of constructing insn directly. - -2002-12-07 Kazu Hirata - - * config/h8300/h8300.md (*iorhi_shift_8): New. - -2002-12-06 Bernd Schmidt - - * doc/invoke.texi: Document FRV port options. - * doc/md.texi: Document FRV register classes. - -2002-12-07 Gerald Pfeifer - - * doc/install.texi (Configuration): Improve description of cases - where `make distclean` may fail; clarify --with-gnu-as; fix grammar. - -2002-12-06 Per Bothner - - * cpplib.h (NODE_MACRO_ARG): New flag. - (struct cpp_hashnode): Give _cpp_hashnode_value tag to value union. - Remove value.operator field. Move arg_index field to value union. - (directive_index): Make signed, since also used for C++ operators. - * cppmacro.c (_cpp_save_parameter): Use NODE_MACRO_ARG flag to - check for duplicate parameter. Set NODE_MACRO_ARG flag. - Save node->value, and set node->value.arg_index. - (_cpp_create_definition): For each paramater, restore node->value. - (lex_expansion_token): Use NODE_MACRO_ARG flag, and moved arg_index. - * cpptrad.c (scan_out_logical_line): Likewise. - (scan_out_logical_line): Check for directive > 0. - * cpplib.c (cpp_handle_directive): Likewise. - * cpplex.c (_cpp_lex_direct): Update as value.operator is replaced - by negative of directive_index. - * cppinit.c (mark_named_operators): Likewise. - - * hashtable.h (struct ht_identifier): Swap fields, for better packing. - -2002-12-06 Dhananjay Deshpande - - * gcc/config/sh/sh.c (calc_live_regs): Save fpscr only if target has - FPU. - (push): Generate push_fpscr. - (pop): Generate pop_fpscr. - * gcc/config/sh/sh.md : Add define_expand "push_fpscr", "pop_fpscr". - (fpu_switch): Add alternative to push fpscr. Enable for TARGET_SH3E. - -Fri Dec 6 19:36:24 2002 J"orn Rennecke - - * sh.c (dump_table): DImode pool constants need only 32 bit alignment. - DFmode alignment depends on TARGET_FMOVD && TARGET_ALIGN_DOUBLE. - -Fri Dec 6 19:17:49 2002 J"orn Rennecke - - * sh.md (movdi_i): Name. Remove inappropriate comment. - -Fri Dec 6 15:44:46 2002 J"orn Rennecke - Merged from basic improvements branch (excerpt): - - 2002-11-19 Kaz Kojima - * config/sh/sh.h (SH_DBX_REGISTER_NUMBER): Handle PR_MEDIA_REG. - -2002-12-06 Jakub Jelinek - - * expr.c (expand_expr) : Never modify exp in place. - -Thu Dec 5 16:58:25 CET 2002 Jan Hubicka - - * i386.md (dimode peep2s): Re-add "&& 1". - -Thu Dec 5 14:10:15 CET 2002 Jan Hubicka - - * i386.c (ix86_expand_prologue): Add comment, do not use - fast prologues for cold and normal functions. - -Thu Dec 5 00:52:37 CET 2002 Jan Hubicka - - * i386.c (x86_rep_movl_optimal): New variable. - (ix86_expand_movstr, ix86_expand_clrstr): Use TARGET_REP_MOVL_OPTIMAL - * i386.h (TARGET_REP_MOVL_OPTIMAL): New macro. - - * i386.md (negsf2_ifs, negdf2_ifs, negdf2_ifs_rex64, abssf2_ifs, - absdf2_ifs, absdf2_ifs_rex64): Fix constraints. - neg?f2_ifs, abs?f2_ifs splitters): Refuse memory operand; do not - generate unnecesary subregs. - -2002-12-05 John David Anglin - - * pa32-linux.h (CANONICALIZE_FUNCPTR_FOR_COMPARE_LIBCALL): Move define. - * pa.h (CANONICALIZE_FUNCPTR_FOR_COMPARE_LIBCALL): To here. - -2002-12-05 Dale Johannesen - - * tree.c (unsafe_for_reeval): Consider callee child of CALL_EXPR. - -2002-12-05 Danny Smith - - * config/i386/cygwin.h (SUBTARGET_PROLOGUE): Replace with - PROFILE_HOOK. - * config/i386/mingw32.h (SUBTARGET_PROLOGUE): Don't undef. - -2002-12-05 Aldy Hernandez - - * config/rs6000/spe.h (__ev_mwlufi): Remove. - (__ev_mwlufia): Remove. - (__ev_mwlumfaaw): Remove. - (__ev_mwlusfaaw): Remove. - (__ev_mwlumfanw): Remove. - (__ev_mwlusfanw): Remove. - -2002-12-05 Kazu Hirata - - * config/h8300/h8300.md (*andorsi3_shift_8): New. - -2002-12-05 Kazu Hirata - - * config/h8300/h8300.c (shift_alg_si): Optimize ashift:HI and - lshiftrt:SI by 28, 29, and 30 bits when !TARGET_H8300. - (get_shift_alg): Return optimal assembly instructions for the - shifts mentioned above. - -Wed Dec 4 11:53:07 CET 2002 Jan Hubicka - - * i386.c (ix86_expand_int_movcc): Force operand into register for QImode - condtiional moves. - -2002-12-04 Kazu Hirata - - * config/h8300/h8300.c (h8300_init_once): Do not use loop to - implement ashiftrt:HI by 13 bits on H8S. - -2002-12-04 John David Anglin - - * pa/fptr.c (__canonicalize_funcptr_for_compare): New file and function. - * pa.md (canonicalize_funcptr_for_compare): Output library call to - canonicalize_funcptr_for_compare_libfunc on TARGET_ELF32. - * pa32-linux.h (CANONICALIZE_FUNCPTR_FOR_COMPARE_LIBCALL, - CTOR_LIST_BEGIN): New defines. - * pa/t-linux (LIB2FUNCS_EXTRA): New define. - (fptr.c): Add make rules. - -2002-12-04 Geoffrey Keating - - * combine.c (combine_simplify_rtx): Add new canonicalizations. - * doc/md.texi (Insn Canonicalizations): Document new - canonicalizations for multiply/add combinations. - * config/rs6000/rs6000.md: Add and modify floating add/multiply - patterns to ensure they're used whenever they can be. - -2002-12-04 Kazu Hirata - - * config/h8300/h8300.c: Update the comments related to shifts. - -2002-12-04 Chris Demetriou - - * config/mips/mips.md (get_fnaddr): Correct length attribute. - -2002-12-04 Kazu Hirata - - * config/h8300/h8300.md (*extzv_8_8): New. - (*extzv_8_16): Likewise. - -2002-12-04 Jason Merrill - - PR c++/8461, c++/8625 - * integrate.c (copy_decl_for_inlining): Handle explicit invisible - references. - * tree-inline.c (initialize_inlined_parameters): Likewise. - - * tree.c (variably_modified_type_p): Just return an error_mark_node. - -2002-12-04 Chris Demetriou - - * config/mips/mips.md (get_fnaddr): Avoid placing an "la" - macro instruction in a branch delay slot, to avoid assembler - warnings. - -2002-12-04 Eric Botcazou - - PR c/7622 - * c-semantics (genrtl_scope_stmt): Do not output inlined - nested functions that contain no code. - -Wed Dec 4 15:20:54 CET 2002 Jan Hubicka - - * cfgrtl.c (force_nonfallthru_and_redirect): Allow abnormal edge - to be forced into nonfallthru. - -2002-12-03 Jason Thorpe - - * config/t-netbsd (USER_H): Set to $(EXTRA_HEADERS). - -2002-12-03 Aldy Hernandez - - * config/rs6000/spe.md (*movv1di_const0): New pattern. - -2002-12-03 Richard Henderson - - * libgcc-std.ver: Inherit GCC_3.3 from GCC_3.0. - -2002-12-03 Hans-Peter Nilsson - - * bitmap.c (bitmap_ior_and_compl, bitmap_union_of_diff): - Initialize tmp.using_obstack to 0. - -2002-12-03 Andreas Schwab - - * config/m68k/m68k.h (EH_RETURN_DATA_REGNO): Define. - (EH_RETURN_STACKADJ_RTX): Define. - (EH_RETURN_HANDLER_RTX): Define. - (ASM_PREFERRED_EH_DATA_FORMAT): Define. - * config/m68k/m68k.c (m68k_save_reg): New function. Handle eh - registers and don't save fixed registers. - (m68k_output_function_prologue): Use it. - (use_return_insn): Likewise. - (m68k_output_function_epilogue): Likewise. - -2002-12-03 Kazu Hirata - - * config/h8300/h8300.c (single_one_operand): Fix a warning. - (single_zero_operand): Likewise. - -2002-12-02 Nathanael Nerode - - * Makefile.in configure configure.in dummy-conditions.c fix-header.c - gcov-iov.c gen-protos.c genattr.c genattrtab.c genautomata.c - gencheck.c gencodes.c genconditions.c genconfig.c genconstants.c - genemit.c genextract.c genflags.c gengenrtl.c gengtype-lex.l - gengtype-yacc.y gengtype.c genopinit.c genoutput.c genpeep.c - genpreds.c genrecog.c gensupport.c mkconfig.sh read-rtl.c - scan-decls.c scan.c config/sh/sh.h doc/configfiles.texi - doc/install-old.texi: Replace hconfig.h with bconfig.h. - * Makefile.in: Replace HCONFIG_H with BCONFIG_H. - -2002-12-02 Andrew Pinski - - * config/rs6000/rs6000.md (ffssi): Convert to expander. - (ffsdi): Likewise. - (cntlzw2, cntlzd2): New patterns. - -2002-12-02 H.J. Lu - - * config.gcc (mips*-*-netbsd*): Remove mips/t-netbsd. - (mips*-*-linux*): Remove mips/t-linux. - -Mon Dec 2 19:26:30 CET 2002 Jan Hubicka - - * i386.c (ix86_expand_int_movcc): Avoid overflow. - -2002-12-02 Kazu Hirata - - * config/h8300/h8300.c (dosize): Replace argument op with - sign. - (h8300_output_function_prologue): Update the call to dosize. - (h8300_output_function_epilogue): Likewise. - -2002-12-02 Bob Wilson - - * config/xtensa/xtensa.h: Delete ifndefs with nothing inside them. - -2002-12-02 Craig Rodrigues - - * configure.in: Use "missing" script to generate warning if - flex or bison programs not found, instead of invoking "false". - * configure: Rebuilt. - -Mon Dec 2 20:28:48 CET 2002 Jan Hubicka - - * unroll.c (copy_loop_body): Copy CONST_OR_PURE_CALL_P. - -Mon Dec 2 19:42:52 CET 2002 Jan Hubicka - - * i386.c (ix86_expand_int_movcc): Avoid overflow. - -2002-12-02 Kazu Hirata - - * config/h8300/h8300.c (dosize): Output r7/er7 instead of sp. - (push): Likewise. - (pop): Likewise. - (h8300_output_function_prologue): Likewise. - (h8300_output_function_epilogue): Likewise. - -Mon Dec 2 14:43:22 2002 J"orn Rennecke - - * expmed.c (store_bit_field): Use int_mode_for_mode to find - corresponding mode of non-integer mode, unless it is VOIDmode. - -2002-12-02 Kazu Hirata - - * config/h8300/h8300.md (stm_h8300s_2): New. - (stm_h8300s_3): Likewise. - (stm_h8300s_4): Likewise. - (five define_peephole2): Likewise. - -2002-12-02 Kazu Hirata - - * ra-build.c: Fix a comment typo. - -Sun Dec 1 16:50:47 CET 2002 Jan Hubicka - - * i386.c (ix86_expand_int_movcc): fix - reversed BRANCH_COST test; be curefull about infinite recursion. - -2002-12-01 Kazu Hirata - - * config/h8300/h8300.c (h8300_output_function_prologue): - Remove variable idx. - (h8300_output_function_epilogue): Likewise. - -2002-12-01 Zack Weinberg - - * config/frv/xm-frv.h: Delete, unnecessary. - -2002-12-01 Kazu Hirata - - * config/h8300/h8300.md: Add comments for define_peephole2. - -2002-12-01 Mark Mitchell - - * builtin-types.def (BT_SIZE): Use size_type_node. - * builtins.c (fold_builtin): Make the builtin strlen returns a - size_t, not a sizetype. - * c-common.c (c_sizeof_or_alignof_type): Use size_type_node, not - c_size_type_node. - (c_alignof_expr): Likewise. - (c_common_nodes_and_builtins): Likewise. - * c-common.h (CTI_C_SIZE_TYPE): Remove. - (c_size_type_node): Likewise. - * c-format.c (T_ST): Use size_type_node, not c_size_type_node. - * tree.h (TI_SIZE_TYPE): New enumeral. - (size_type_node): Likewise. - -2002-11-30 Zack Weinberg - - * configure.in: Don't put ${tm_file} into host_xm_file, - build_xm_file, or xm_file. Do put tm-preds.h into tm_p_file. - Take location of tm-preds.h into account when calculating - tm_p_file_list. - * configure: Regenerate. - * mkconfig.sh: No need for separate TM_DEFINES and XM_DEFINES - arguments. Do not provide rtx, rtvec, tree, or GTY here. - Remove special case code for tm_p.h and *config.h; add new - special case code for tm.h and tconfig.h. Clean up a bit. - - * Makefile.in (tm_file, tm_file_list): New variables set from - @-substitutions. - (GCONFIG_H): Deleted. - (GTM_H, TM_H): New. - (CONFIG_H): Is now just config.h $(host_xm_file_list). - (TM_P_H): Move up with the other mkconfig.sh-generated - headers; don't mention tm-preds.h explicitly. - (tm.h, cs-tm.h): New rule. - (cs-config.h, cs-hconfig.h, cs-tconfig.h, cs-tm_p.h): Adjust - invocations of mkconfig.sh for changes to that program. - (mostlyclean): Delete print-rtl1.c. - (clean): Delete tm.h. - Update dependencies for the files listed below. - - * mklibgcc.in: Add 'coretypes.h $(TM_H)' to libgcc2_c_dep. - - * coretypes.h: New file. - * system.h: #define malloc to xmalloc and realloc to xrealloc - when FLEX_SCANNER or YYBISON is defined, independent of the - value of GCC_VERSION. - * alias.c, attribs.c, bb-reorder.c, bitmap.c, builtins.c, - c-aux-info.c, c-common.c, c-convert.c, c-decl.c, c-dump.c, - c-errors.c, c-format.c, c-lang.c, c-lex.c, c-objc-common.c, - c-opts.c, c-parse.in, c-pragma.c, c-pretty-print.c, - c-semantics.c, c-typeck.c, caller-save.c, calls.c, cfg.c, - cfganal.c, cfgbuild.c, cfgcleanup.c, cfglayout.c, cfgloop.c, - cfgrtl.c, collect2.c, combine.c, conflict.c, convert.c, - cppdefault.c, cpperror.c, cppexp.c, cppfiles.c, cpphash.c, - cppinit.c, cpplex.c, cpplib.c, cppmacro.c, cppmain.c, - cppspec.c, cpptrad.c, crtstuff.c, cse.c, cselib.c, dbxout.c, - debug.c, df.c, diagnostic.c, doloop.c, dominance.c, - dummy-conditions.c, dwarf2asm.c, dwarf2out.c, dwarfout.c, - emit-rtl.c, errors.c, et-forest.c, except.c, explow.c, - expmed.c, expr.c, final.c, fix-header.c, flow.c, fold-const.c, - function.c, gcc.c, gccspec.c, gcov-dump.c, gcov-iov.c, gcov.c, - gcse.c, gen-protos.c, genattr.c, genattrtab.c, genautomata.c, - gencheck.c, gencodes.c, genconditions.c, genconfig.c, - genconstants.c, genemit.c, genextract.c, genflags.c, - gengenrtl.c, gengtype-lex.l, gengtype-yacc.y, gengtype.c, - genopinit.c, genoutput.c, genpeep.c, genpreds.c, genrecog.c, - gensupport.c, ggc-common.c, ggc-none.c, ggc-page.c, - ggc-simple.c, global.c, graph.c, haifa-sched.c, hashtable.c, - hooks.c, ifcvt.c, integrate.c, intl.c, jump.c, langhooks.c, - lcm.c, libgcc2.c, line-map.c, lists.c, local-alloc.c, loop.c, - main.c, mbchar.c, mips-tdump.c, mips-tfile.c, mkdeps.c, - optabs.c, params.c, predict.c, prefix.c, print-rtl.c, - print-tree.c, profile.c, protoize.c, ra-build.c, - ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, read-rtl.c, - real.c, recog.c, reg-stack.c, regclass.c, regmove.c, - regrename.c, reload.c, reload1.c, reorg.c, resource.c, - rtl-error.c, rtl.c, rtlanal.c, sbitmap.c, scan-decls.c, - scan.c, sched-deps.c, sched-ebb.c, sched-rgn.c, sched-vis.c, - sdbout.c, sibcall.c, simplify-rtx.c, ssa-ccp.c, ssa-dce.c, - ssa.c, stmt.c, stor-layout.c, stringpool.c, timevar.c, - tlink.c, toplev.c, tracer.c, tree-dump.c, tree-inline.c, - tree.c, unroll.c, varasm.c, varray.c, varray.h, vmsdbgout.c, - xcoffout.c, config/darwin-c.c, config/darwin.c, - config/fp-bit.c, config/alpha/alpha.c, config/alpha/vms-cc.c, - config/alpha/vms-ld.c, config/arc/arc.c, config/arm/arm.c, - config/arm/pe.c, config/avr/avr.c, config/c4x/c4x-c.c, - config/c4x/c4x.c, config/cris/cris.c, config/d30v/d30v.c, - config/dsp16xx/dsp16xx.c, config/fr30/fr30.c, - config/frv/frv.c, config/h8300/h8300.c, config/i370/i370-c.c, - config/i370/i370.c, config/i386/i386.c, config/i386/winnt.c, - config/i960/i960-c.c, config/i960/i960.c, - config/ia64/ia64-c.c, config/ia64/ia64.c, config/ip2k/ip2k.c, - config/m32r/m32r.c, config/m68hc11/m68hc11.c, - config/m68k/m68k.c, config/m88k/m88k.c, config/mcore/mcore.c, - config/mips/irix6-libc-compat.c, config/mips/mips.c, - config/mmix/mmix.c, config/mn10200/mn10200.c, - config/mn10300/mn10300.c, config/ns32k/ns32k.c, - config/pa/pa.c, config/pdp11/pdp11.c, config/romp/romp.c, - config/rs6000/rs6000-c.c, config/rs6000/rs6000.c, - config/s390/s390.c, config/sh/sh.c, config/sparc/gmon-sol2.c, - config/sparc/sparc.c, config/stormy16/stormy16.c, - config/v850/v850-c.c, config/v850/v850.c, config/vax/vax.c, - config/xtensa/xtensa.c, objc/objc-act.c, objc/objc-lang.c: - Include coretypes.h and tm.h. - - * genattrtab.c, genconditions.c, genemit.c, genextract.c, - gengenrtl.c, gengtype.c, genopinit.c, genoutput.c, genpeep.c, - genrecog.c: Include coretypes.h and tm.h from the file - generated by this program. - - * unwind-dw2-fde-darwin.c, unwind-dw2-fde-glibc.c, - unwind-dw2-fde.c, unwind-dw2.c, unwind-sjlj.c: Include - coretypes.h and tm.h, and tsystem.h when not already included. - No need to include stddef.h nor stdlib.h. - - * fixinc/fixlib.h: Include coretypes.h and tm.h. Do not - include auto-host.h or ansidecl.h/ - * fixinc/server.h: Do not include stdio.h, unistd.h, or fixlib.h. - * fixinc/procopen.c: Include server.h after fixlib.h. Do not - include auto-host.h, ansidecl.h, or system.h. - * fixinc/server.c: Likewise. Also, do not include signal.h, - and do not redefine volatile. - -Sat Nov 30 17:16:46 CET 2002 Jan Hubicka - - * i386.md (movdf_integer): Always enable in 64bit. - (movdf_nointeger): Always disable in 64bit. - -2002-11-30 John David Anglin - - * cfg.c (dump_flow_info): Use max_reg_num () to determine the largest - pseudo register number plus 1. - -Fri Nov 29 20:10:56 2002 J"orn Rennecke - - * expmed.c (store_bit_field): Use int_mode_for_mode to find - corresponding mode of non-integer mode, unless it is VOIDmode. - -2002-11-29 Hans-Peter Nilsson - - * cpplib.c (_cpp_test_assertion): Default *value to 0. - - * cppexp.c (num_part_mul): Initialize result.unsignedp, to 1. - -2002-11-29 Ulrich Weigand - - * config/s390/t-crtstuff: New target makefile fragment. - * config.gcc [s390-*-linux, s390x-*-linux]: Use it. - -2002-11-29 Kazu Hirata - - * config/h8300/h8300.md (movsi_h8300hs): Change the order of - alternatives to correct the length when the memory operand is - either pre_dec or post_inc. - -2002-11-29 Kazu Hirata - - * config/h8300/h8300.md (an anonymous pattern): Give an - internal name *tst_extzv_bitqi_1_n. - Accept bit_operand instead of bit_memory_operand. - Do not accept bit tests with the MSB. - (*tst_extzv_memqi_1_n): New. - -Thu Nov 28 23:56:24 CET 2002 Jan Hubicka - - * i386.c (ix86_expand_int_movcc): Add copy_rtx to avoid invalid RTX - sharing when operand is SUBREG. - -Thu Nov 28 08:57:26 CET 2002 Jan Hubicka - - * athlon.md (athlon-decodev): New reservation unit. - (athlon-direct0): New reservation. - (athlon-vector): New use athlon-decodev. - (athlon-double, athlon-direct): Better model. - (athlon_imul_k8): Use athlon-direct0. - (athlon_movlpd_load): New insn reservation. - -2002-11-28 Kazu Hirata - - * config/h8300/h8300.c (h8300_eightbit_constant_address_p): - Fix a comment typo. - (h8300_tiny_constant_address_p): Likewise. - -2002-11-28 Michael Matz - - * doc/passes.texi: Mention the other register allocator. - -2002-11-28 Kazu Hirata - - * config/h8300/h8300.md (6 new peephole2 patterns): New. - -2002-11-28 Jakub Jelinek - - * config.gcc (x86_64-*-linux*) [tmake_file]: Remove i386/t-crtstuff. - * config/t-linux (CRTSTUFF_T_CFLAGS_S): Add $(CRTSTUFF_T_CFLAGS). - * config/i386/t-linux64 (CRTSTUFF_T_CFLAGS): Define. - -2002-11-28 Kazu Hirata - - * config/h8300/h8300.c (h8300_and_costs): New. - * config/h8300/h8300.h (RTX_COSTS): Use h8300_and_costs. - * config/h8300/h8300-protos.h: Add a prototype for - h8300_and_costs. - -Wed Nov 27 20:34:13 CET 2002 Jan Hubicka - - * i386.c (x86_sse_partial_regs_for_cvtsd2ss): New. - * i386.h (x86_sse_partial_regs_for_cvtsd2ss): Declare. - (TARGET_SSE_PARTIAL_REGS_FOR_CVTSD2SS): New macro. - * i386.md (truncdfsf patterns and splitters): Use - TARGET_SSE_PARTIAL_REGS_FOR_CVTSD2SS - -2002-11-27 Zack Weinberg - - * config/rs6000/rs6000.c (altivec_init_builtins): Make the - pointer argument in the prototypes of the following builtins - be (const TYPE *) rather than (TYPE *): - + __builtin_altivec_ld_internal_4sf - + __builtin_altivec_ld_internal_4si - + __builtin_altivec_ld_internal_8hi - + __builtin_altivec_ld_internal_16qi - + __builtin_altivec_lvsl - + __builtin_altivec_lvsr - + __builtin_altivec_lvebx - + __builtin_altivec_lvehx - + __builtin_altivec_lvewx - + __builtin_altivec_lvxl - + __builtin_altivec_lvx - + __builtin_altivec_dst - + __builtin_altivec_dstt - + __builtin_altivec_dstst - + __builtin_altivec_dststt - -2002-11-27 Kaveh R. Ghazi - - * except.c (default_exception_section): Move variable into the - scope where it is used. - -2002-11-27 Krister Walfridsson - - * config.gcc (*-*-netbsd[2-9]*, *-*-netbsdelf[2-9]*): Test for - correct version. - -2002-11-27 Kazu Hirata - - * config/h8300/h8300.h (OK_FOR_U): Remove extra parentheses. - -2002-11-27 Kazu Hirata - - * config/h8300/h8300.c (h8300_shift_costs): New. - * config/h8300/h8300.h (RTX_COSTS): Use h8300_shift_costs. - * config/h8300/h8300-protos.h: Add a prototype for - h8300_shift_costs. - -2002-11-27 Jim Wilson - - * config/rs6000/spe.md (spu_evsplatfi, spu_evsplati): Swap operands - in output template. - -2002-11-27 Casper S. Hornstrup - - * config/i386/i386.h (DLL_IMPORT_EXPORT_PREFIX): Define. - * config/i386/winnt.c (i386_pe_dllexport_name_p): Use - DLL_IMPORT_EXPORT_PREFIX, not '@'. - (i386_pe_dllimport_name_p): Likewise. - (i386_pe_mark_dllexport): Likewise. - (i386_pe_mark_dllimport): Likewise. - (i386_pe_encode_section_info): Likewise. - (i386_pe_strip_name_encoding): Likewise. - -2002-11-27 Richard Henderson - - * mkmap-symver.awk (BEGIN): Set sawsymbol false. - (nm && NF == 3): Set sawsymbol true. - (END): Exit if no symbols seen. - (output): Fix map syntax error if no globals for the version. - -Wed Nov 27 14:45:46 CET 2002 Jan Hubicka - - * builtins.def (DEF_C99_BUILTIN): Fix. - -2002-11-26 Kaz Kojima - - * config/sh/lib1funcs.asm (FUNC, ENDFUNC0, ENDFUNC): New macros. - (all): Add .size and .type information. - -Tue Nov 26 22:43:50 CET 2002 Jan Hubicka - - * i386.c (ix86_expand_int_movcc): Do not emit lea for short mode on - partial_reg_stall target. - -Tue Nov 26 22:27:47 CET 2002 Jan Hubicka - - * i386.md (movhicc): Allow general operand. - (movqicc): New expander. - (movqicc_noc): New pattern. - * i386.c (ix86_expand_carry_flag_compare): New function. - (ix86_expand_int_movcc): Optimize harder using sbb; support more - HImode conversion; support QImode conditional moves - -Tue Nov 26 16:30:59 CET 2002 Jan Hubicka - - * i386.c (FAST_PROLOGUE_INSN_COUNT): Set to 20. - (ix86_expand_prologue): Multiply the count by amount of registers to be - pushed. - -Tue Nov 26 15:55:27 CET 2002 Jan Hubicka - - * i386.c (override_options): Error about wrong -mcpu on x86-64 - compilation. - -2002-11-26 NIIBE Yutaka - - * config/sh/linux.h (FUNCTION_PROFILER): Implemented. - -Tue Nov 26 00:14:20 CET 2002 Jan Hubicka - - * i386-protos.h (x86_extended_QIreg_mentioned_p, - x86_extended_reg_mentioned_p): Declare. - * i386.c (extended_reg_mentioned_1): New static function. - (x86_extended_QIreg_mentioned_p, - x86_extended_reg_mentioned_p): New global functions. - * i386.h (REX_SSE_REGNO_P): New macro. - * i386.md (prefix_rex): New attribute. - (length attribute): Add rex. - -2002-11-26 Andrew Haley - - * unwind-sjlj.c (_Unwind_FindEnclosingFunction): Rename - from_Unwind_Find_Enclosing_Function. - * unwind-dw2.c (_Unwind_FindEnclosingFunction): Likewise. - * config/ia64/unwind-ia64.c (_Unwind_FindEnclosingFunction): Likewise. - * libgcc-std.ver (_Unwind_FindEnclosingFunction): Rename from - _Unwind_Find_Enclosing_Function, export @@GCC_3.3. - * unwind.h (_Unwind_FindEnclosingFunction): Add. - -2002-11-26 Hartmut Penner - - * config/s390/s390.c (390_output_constant_pool): Set alignment - before label in 64 bit mode, behind otherwise. - -2002-11-26 Richard Henderson - - * c-common.c (handle_visibility_attribute): Accept "default". - * tree.h (enum symbol_visibility): New. - (decl_visibility): Declare. - * target.h (gcc_target.visibility): Take visibility arg as integer. - * varasm.c (default_assemble_visibility): Likewise. - (decl_visibility): New. - (maybe_assemble_visibility): Use it. - * output.h (default_assemble_visibility): Update prototype. - * config/rs6000/rs6000.c (rs6000_assemble_visibility): Take - visibility arg as integer. - * doc/extend.texi: Document default visibility. - -2002-11-26 Kazu Hirata - - * config/h8300/h8300.c: Adjust spacing. - * config/h8300/h8300.h: Likewise. - -2002-11-26 Richard Henderson - - * hooks.c (hook_bool_void_false, hook_void_tree_int, - hook_void_FILEptr_constcharptr): Rename so that the return - type is first. - (hook_int_tree_tree_1, hook_void_tree, hook_void_tree_treeptr, - hook_bool_tree_false): New. - * hooks.h: Update. - * langhooks-def.h: Update for renames. - * target-def.h: Likewise. - * tree.c (default_comp_type_attributes, - default_set_default_type_attributes, default_insert_attributes, - default_function_attribute_inlinable_p, - default_ms_bitfield_layout_p): Remove. - * tree.h: Update. - -2002-11-26 John David Anglin - - * pa-protos.h (function_value): New prototype. - * pa.c (function_value): Use a PARALLEL to return small aggregates on - TARGET_64BIT. - * pa.h (FUNCTION_VALUE): Use function_value. - * pa.md (call_value_internal_symref, call_value_internal_reg_64bit, - call_value_internal_reg, sibcall_value_internal_symref, - sibcall_value_internal_symref_64bit): Remove =rf constraint on return - value. - -2002-11-26 John David Anglin - - * expr.c (gen_group_rtx, emit_group_move): New functions. - * expr.h (gen_group_rtx, emit_group_move): Prototype. - * function.c (expand_function_start): Use gen_group_rtx to create a - PARALLEL rtx to hold the return value when the real return rtx is a - PARALLEL. - (expand_function_end): Use emit_group_move to move the return value - from a PARALLEL to the real return registers. - * rtl.h (REG_FUNCTION_VALUE_P): Allow function values to be returned - in PARALLELs. - -2002-11-26 Jason Thorpe - - * config/t-libc-ok: Fix typo. - -2002-11-26 Jakub Jelinek - - * configure.in: Move AC_CANONICAL_SYSTEM and AC_ARG_PROGRAM back - before AC_PROG_CC. - * configure: Rebuilt. - -2002-11-26 Nathan Sidwell - - * c-decl.c: (start_struct): Commonize flag setting. - -2002-11-26 Jason Thorpe - - * config/rs6000/rs6000.h (RS6000_CPU_CPP_ENDIAN_BUILTINS): New. - * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Use - RS6000_CPU_CPP_ENDIAN_BUILTINS. - * config/rs6000/netbsd.h (RS6000_CPU_CPP_ENDIAN_BUILTINS): Redefine. - -2002-11-26 Hartmut Penner - - * config/s390/s390.md (literal_pool_64, literal_pool_31 ): New - insns. - * config/s390/s390.c (struct machine_function): Introduction of - struct machine_function. - (s390_output_symbolic_const): Use of cfun. - (s390_optimize_prolog): Likewise. - (s390_fixup_clobbered_return_reg): Likewise. - (s390_frame_info): Likewise. - (s390_emit_prologue, s390_emit_epilogue): Likewise. - (s390_init_machine_status): New function. - (override_options): call s390_init_machine_status. - * config/s390/s390-protos.h (s390_output_constant_pool): Changed - prototype. - -2002-11-26 Jakub Jelinek - - * varasm.c (output_constant_pool): For pool constants in mergeable - section ensure each constant is padded to multiple of entity size. - -2002-11-26 Jakub Jelinek - - * varasm.c (default_exception_section): Move to... - * except.c (default_exception_section): ... here. Make - .gcc_except_table read-only if it is not expected to have any - dynamic relocations and linker handles it. - * dwarf2out.c (default_eh_frame_section): Make .eh_frame read-only - if it is not expected to have any dynamic relocations and linker - handles it. - * configure.in (HAVE_LD_RO_RW_SECTION_MIXING): Check what ld does - when linking read-only and read-write sections together. - * configure, config.in: Rebuilt. - * crtstuff.c (EH_FRAME_SECTION_CONST): Define. - (__EH_FRAME_BEGIN__, __FRAME_END__): Add it. - -Mon Nov 25 18:32:37 CET 2002 Jan Hubicka - - * i386.md (pushsf_rex64): Fix typo. - -2002-11-25 Aldy Hernandez - - * config/rs6000/spe.h (__ev_create_sfix32_fs): Change macro into - new function. - (__ev_create_ufix32_fs): Same. - (__ev_get_sfix32_fs_internal): New. - (__ev_get_sfix32_fs): Define to use function. - (__ev_get_ufix32_fs_internal): New. - (__ev_get_ufix32_fs): Define to use function. - (__ev_get_upper_ufix32_fs): Call __ev_get_ufix32_fs. - (__ev_get_lower_ufix32_fs): Same. - (__ev_get_upper_sfix32_fs): Call __ev_get_sfix32_fs. - (__ev_get_lower_sfix32_fs): Same. - (__ev_set_sfix32_fs_internal): New. - (__ev_set_ufix32_fs_internal): New. - (__ev_set_sfix32_fs): Call __ev_set_sfix32_fs_internal. - (__ev_set_ufix32_fs): Call __ev_set_ufix32_fs_internal. - (__ev_set_upper_sfix32_fs): Call function. - (__ev_set_lower_sfix32_fs): Same. - (__ev_set_upper_ufix32_fs): Same. - (__ev_set_lower_ufix32_fs): Same. - -2002-11-25 Douglas B Rupp - - * gcc.c (do_spec_1): Reset delete_this_arg to zero. - -2002-11-25 Jason Thorpe - - * config/elfos.h (HANDLE_SYSV_PRAGMA): Define as 1. - * config/interix.h (HANDLE_SYSV_PRAGMA): Likewise. - * config/linux-aout.h (HANDLE_SYSV_PRAGMA): Likewise. - * config/lynx-ng.h (HANDLE_SYSV_PRAGMA): Likewise. - * config/lynx.h (HANDLE_SYSV_PRAGMA): Likewise. - * config/netbsd.h (HANDLE_SYSV_PRAGMA): Likewise. - * config/openbsd.h (HANDLE_SYSV_PRAGMA: Likewise. - * config/alpha/elf.h (HANDLE_SYSV_PRAGMA): Likewise. - * config/arm/netbsd.h (HANDLE_SYSV_PRAGMA): Likewise. - * config/cris/aout.h (HANDLE_SYSV_PRAGMA): Likewise. - * config/d30v/d30v.h (HANDLE_SYSV_PRAGMA): Likewise. - * config/frv/frv.h (HANDLE_SYSV_PRAGMA): Likewise. - * config/i386/djgpp.h (HANDLE_SYSV_PRAGMA): Likewise. - * config/i386/i386-interix.h (HANDLE_SYSV_PRAGMA): Likewise. - * config/i386/vxi386.h (HANDLE_SYSV_PRAGMA): Likewise. - * config/ia64/ia64.h (HANDLE_SYSV_PRAGMA): Likewise. - * config/m88k/m88k.h (HANDLE_SYSV_PRAGMA): Likewise. - * config/mmix/mmix.h (HANDLE_SYSV_PRAGMA): Likewise. - * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Likewise. - * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Likewise. - * config/sparc/linux-aout.h (HANDLE_SYSV_PRAGMA): Likewise. - * config/sparc/vxsparc64.h (HANDLE_SYSV_PRAGMA): Likewise. - * config/stormy16/stormy16.h (HANDLE_SYSV_PRAGMA): Likewise. - * config/alpha/osf.h (HANDLE_SYSV_PRAGMA): Don't undef before - defining. - * config/i386/sco5.h (HANDLE_SYSV_PRAGMA): Likewise. - * config/mips/iris5.h (HANDLE_SYSV_PRAGMA): Likewise. - -2002-11-25 Dave Pitts - - * gcc/fixinc/mkfixinc.sh: add i370-*-openedition to bypass fixinc list - -2002-11-25 Kazu Hirata - - * config/h8300/h8300.md (an anonymous pattern): New. - -2002-11-25 Richard Henderson - - * alias.c (find_base_value): Use new_reg_base_value if it's live. - (copying_arguments): Make boolean. - -2002-11-25 Jason Thorpe - - * gcc.c (static_spec_functions): Add if-exists-else spec - function. - (if_exists_else_spec_function): New function. - * doc/invoke.texi: Document the if-exists-else spec function. - - * config/netbsd-elf.h (NETBSD_STARTFILE_SPEC): For -static, use - "%:if-exists-else(crtbeginT%O%s crtbegin%O%s)". - -2002-11-25 Jason Thorpe - - * config.gcc (powerpc-*-netbsd*): Replace "svr4.h" with - "netbsd.h netbsd-elf.h" in tm_file. Set tmake_file to - "${tmake_file} rs6000/t-netbsd". - * config/rs6000/netbsd.h: Rewrite. - * config/rs6000/t-netbsd: New file. - -2002-11-25 Kazu Hirata - - * config/h8300/h8300.md (an anonymous pattern): Relax the - condition for the pattern. - -2002-11-25 Aldy Hernandez - - * config/rs6000/rs6000.h (enum rs6000_builtins): Remove evmwlssf, - evmwlsmf, evmwlssfa, evmwlsmfa, evmwlssfaaw, evmwlsmfaaw, - evmwlssfanw, evmwlsmfanw. - - * config/rs6000/rs6000.c (bdesc_2arg): Same. - - * config/rs6000/spe.md: Same for patterns. - -2002-11-25 Christian Ehrhardt - - PR c/8639 - * fold-const.c (extract_muldiv): Don't propagate division unless - both arguments are multiples of C. - -2002-11-25 Andrew Haley - - * libgcc-std.ver (_Unwind_Find_Enclosing_Function): Add. - * config/ia64/unwind-ia64.c (_Unwind_Find_Enclosing_Function): New. - * unwind-sjlj.c (_Unwind_Find_Enclosing_Function): Likewise. - * unwind-dw2.c (_Unwind_Find_Enclosing_Function): Likewise. - -Sun Nov 24 10:38:04 CET 2002 Jan Hubicka - - * i386.c (x86_use_ffreep): New global variable. - * i386.h (x86_use_frfeep): Declare - (TARGET_USE_FFREEP): New macro - * i386.md (movs?f*): Use freep when asked for. - (push?f): Remove dead code. - -2002-11-24 Kazu Hirata - - * config/h8300/h8300.c (h8300_init_once): Fix a typo in the - target help message. - -2002-11-24 Jason Thorpe - - * config.gcc (*-*-netbsd*1.[7-9]*, *-*-netbsd*[2-9]*): Set - extra_parts to "crtbegin.o crtend.o crtbeginS.o crtendS.o - crtbeginT.o". - (arm*-*-netbsd*, i[34567]86-*-netbsd*, m68k*-*-netbsd*) - (ns32k-*-netbsd*, sparc-*-netbsd*, vax-*-netbsd*): Set extra_parts - to "" for a.out configurations. - * config/t-netbsd (CRTSTUFF_T_CFLAGS): Set to "-fPIC". - -2002-11-24 Jason Thorpe - - * config/alpha/netbsd.h (CPP_SUBTARGET_SPEC): Just use - NETBSD_CPP_SPEC directly. - (SUBTARGET_EXTRA_SPECS): Remove netbsd_cpp_spec. Add - netbsd_endfile_spec. - (ENDFILE_SPEC): Use %(netbsd_endfile_spec). - -2002-11-24 Jason Thorpe - - * config/netbsd-elf.h (STARTFILE_SPEC): Rename to - NETBSD_STARTFILE_SPEC. - (STARTFILE_SPEC): Redefine in terms of NETBSD_STARTFILE_SPEC. - (ENDFILE_SPEC): Likewise. - * config/netbsd.h (LIB_SPEC, LIBGCC_SPEC): Likewise. - -2002-11-24 Andreas Schwab - - * Makefile.in (install-driver): Remove versioned link before - trying to create it. - - * config/m68k/m68k.c: Fix typo in last change defining - TARGET_ASM_CAN_OUTPUT_MI_THUNK. - -2002-11-23 H.J. Lu - - * aclocal.m4: Include ../config/accross.m4. - (gcc_AC_COMPILE_CHECK_SIZEOF): Removed. - (gcc_AC_C_COMPILE_ENDIAN): Removed. - (gcc_AC_C_FLOAT_FORMAT): Check $ac_cv_c_bigendian - instead of $ac_cv_c_compile_endian. - - * configure.in: Replace gcc_AC_COMPILE_CHECK_SIZEOF with - AC_COMPILE_CHECK_SIZEOF. - Replace gcc_AC_C_COMPILE_ENDIAN with AC_C_BIGENDIAN_CROSS. - * configure: Rebuild. - -2002-11-23 Kazu Hirata - - * config/h8300/h8300.c (print_operand): Update the use of - h8300_tiny_constant_address_p. - (h8300_adjust_insn_length): Likewise. - (h8300_tiny_constant_address_p): Check if the given rtx is a - variable declared with __attribute__ ((tiny_data)). - -2002-11-22 Dale Johannesen - - * toplev.c (rest_of_compilation): Fix comments. - -2002-11-22 Geoffrey Keating - - * aclocal.m4 (ac_cv_func_mmap_dev_zero): Darwin does not - allow mmap from /dev/zero. Don't make decisions for the host - based on presence or absence of /dev/zero on the build machine. - (ac_cv_func_mmap_anon): Darwin does have working MMAP_ANON. - (AC_FUNC_MMAP_FILE): Darwin does have mmap of a file. - * configure: Regenerate. - -2002-11-22 Daniel Jacobowitz - - * gcc.c (make_relative_prefix, split_directories) - (free_split_directories): Removed. - -2002-11-22 Daniel Jacobowitz - - * configure.in: Set insn=nop for DWARF-2 tests on ARM. - * configure: Regenerated. - -2002-11-22 Kazu Hirata - - * config/h8300/h8300.c (compute_a_shift_length): Fix the insn - length computation when xor.l is output. - -2002-11-21 Douglas B Rupp - - * alpha.md (movstrdi, clrstrdi): New VMS patterns. - (call_vms_1, call_value_vms_1): Cleanup syntax. - -Thu Nov 21 19:20:27 CET 2002 Jan Hubicka - - * athlon.md (define_atuomaton): Add athlon_load. - (athlon-double): New reservation. - (athlon-ieu0): New CPU unit. - (athlon-load?): Use athlon_load automaton. - (*_k8 reservations): New. - (other insn revervations): Activate for K8. - -Thu Nov 21 15:07:42 CET 2002 Jan Hubicka - - * cfgrtl.c (verify_flow_info): Accept EDGE_CAN_FALLTHRU flag. - -2002-11-21 Jim Wilson - - * config/rs6000/rs6000.c (function_arg): Set inner mode of SPE - vectors to SI. - -2002-11-21 Bob Wilson - - * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Declare. - * config/xtensa/xtensa.c (struct machine_function): Add - incoming_a7_copied flag. - (xtensa_copy_incoming_a7): Define. - (xtensa_emit_move_sequence): Use xtensa_copy_incoming_a7. - * config/xtensa/xtensa.md (movdi, movsf, movdf): Ditto. - -Thu Nov 21 23:52:04 CET 2002 Jan Hubicka - - * i386-protos.h (x86_64_sign_extended_value): Fix prototype. - * i386.c (x86_64_general_operand, x86_64_szext_general_operand, - x86_64_nonmemory_operand, x86_64_movabs_operand, - x86_64_szext_nonmemory_operand, x86_64_immediate_operand, - ix86_expand_int_movcc): Update call of x86_64_sign_extended_value. - (local_symbolic_operand): Do not care the 64bit limits. - (x86_64_sign_extended_value): Remove allow_rip support. - (legitimate_pic_address_disp_p): Handle all cases allowed - with RIP addressing. - (legitimate_address_p): Use legitimate_pic_address_disp_p for PIC. - (legitimize_pic_address): Reorganize. - * i386.h (EXTRA_CONSTRAINT): Update call of x86_64_sign_extended_value. - -2002-11-21 Jason Thorpe - - * config.gcc (arm*-*-netbsdelf*): Enable configuration. - * config/arm/netbsd-elf.h: New file. - -2002-11-21 Jason Thorpe - - * config/arm/elf.h (SUBTARGET_EXTRA_SPECS): Add - subtarget_asm_float_spec. - (SUBTARGET_ASM_FLOAT_SPEC): Define, moving the - defaults from... - (ASM_SPEC): ...here. Use subtarget_asm_float_spec. - -2002-11-21 Nick Clifton - - * config/fr30/fr30.md (movsf_constant_store): Move code to - detect 0.0 into fr30.c. - * config/fr30/fr30-protos.h (fr30_const_double_is_zero): - Prototype. - * config/fr30/fr30.c (fr30_const_double_is_zero): New - function. Return true if the rtx is 0.0. - -2002-11-21 Jason Thorpe - - * config/arm/elf.h (ASM_SPEC, LINK_SPEC): Pass -EL - if -mlittle-endian is specified. - -2002-11-21 Richard Earnshaw - - PR optimization/2903 - * arm.md (anddi_notzesidi_di): Operand 2 is inverted not operand 1. - (anddi_notsesidi_di): Likewise. - -2002-11-21 Kazu Hirata - - * config/h8300/h8300.c (print_operand): Use - h8300_eightbit_constant_address_p and - h8300_tiny_constant_address_p. - (h8300_adjust_insn_length): Likewise. - * config/h8300/h8300.h (EIGHTBIT_CONSTANT_ADDRESS_P): Remove. - (TINY_CONSTANT_ADDRESS_P): Likewise. - (OK_FOR_U): Use eightbit_constant_address_p. - -2002-11-21 Ulrich Weigand - - * config/s390/libgcc-libc.ver: Add multilib support. - * config/s390/linux.h (MULTILIB_DEFAULT): Define. - * config/s390/t-linux64 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, - MULTILIB_OSDIRNAMES, LIBGCC, INSTALL_LIBGCC, - EXTRA_MULTILIB_PARTS): Define. - -2002-11-21 Richard Earnshaw - - * arm.c (arm_get_frame_size): A leaf function does not need its - stack padding to an aligned boundary if it has no frame. - (thumb_get_frame_size): Likewise. - -Wed Nov 20 22:25:53 CET 2002 Jan Hubicka - - * x86-64.h (MCOUNT_NAME): Fix typo in my previous patch. - (override_options): Likewise. - -Wed Nov 20 19:07:17 CET 2002 Jan Hubicka - - * config.gcc: Add k8 target alias support - * i386.c (_cost): Declare costs for various variants of divides and - multiplies. - (k8_cost): New. - (m_K8, m_ATHLON_K8): New macros. - (x86_use_leave, x86_push_memory, x86_movx, x86_unroll_strlen, - x86_cmove, x86_3dnow_a, x86_deep_branch, x86_use_fiop, - x86_promote_QImode, x86_sub_esp_?, x86_add_esp_?, - x86_integer_DFmode_moves, x86_partial_reg_dependency, - x86_memory_mismatch_stall, x86_accumulate_outgoing_args, - x86_prologue_using_move, x86_epilogue_using_move, - x86_arch_always_fancy_math_387, x86_sse_partial_regs, - x86_sse_typeless_stores): Set for K8 - (override_options): Add k8 support; fix athlon alignment; - complain about non-x86-64 capable CPU being used in x86-64 compilation. - (ix86_issue_rate): Set for K8. - (ix86_adjust_cost, ia32_use_dfa_pipeline_interface, - x86_machine_dependent_reorg): Handle K8 like - * i386.h - (x86_costs): Change mult_init and divide into array. - (TARGET_K8, TARGET_ATHLON): New macros. - (MODE_INDEX): New macro. - (RTX_COST): Use new costs. - (TARGET_CPU_CPP_BUILTINS): Define __k8__ and __tune_k8__. - (TARGET_CPU_DEFAULT_NAMES): Add k8 - (TARGET_CPU_DEFAULT_k8): New constant - (enum processor_type): Add PROCESSOR_K8. - * i386.md (cpu attribute): Add k8. - - * invoke.texi: Document -march=k8. - - * i386.md (type attribute): Add leave - (mode attribute): Remove unknownfp. - (length_immediate, modrm, memory attributes): Handle leave correctly. - (fp comparison patterns): Determine FP mode. - (leave, leave_rex64): Remove special cases. - * ppro.md (ppro_uops, ppro_p2): Add leave - * pentiun.md (pent_pop): Handle leave too. - * k6.md (k6_load): Handle leave. - * athlon.md (athlon_leave, athlon_pop): Fix. - (athlon_decode): Handle leave. - -2002-11-20 Steve Ellcey - - * emit-rtl.c (gen_reg_rtx): Simplify mapping of Complex type - to component type using GET_MODE_INNER. - * expr.c (emit_move_insn_1): Ditto. - * optabs.c (expand_binop): Ditto. - (expand_unop): Ditto. - (expand_complex_abs): Ditto. - -2002-11-20 Douglas B Rupp - - * hwint.h (HAVE___INT64): Fix typo (was HAVE__INT64). - -2002-11-20 DJ Delorie - - * config/stormy16/stormy16.c (s16builtins, - xstormy16_init_builtins, xstormy16_expand_builtin): New. - * config/stormy16/stormy16.md (divmodhi4, sdivlh, udivlh): New. - -2002-11-20 Hans-Peter Nilsson - - * Makefile.in (RUN_GEN, VALGRIND_DRIVER_DEFINES): New variables. - (DRIVER_DEFINES): Add $(VALGRIND_DRIVER_DEFINES). - (executing gencheck, genconfigs, genconditions, genflags, - gencodes, genconstants, genemit, genrecog, genopinit, genextract, - genpeep, genattr, genattrtab, genoutput, gengenrtl, genpreds, - gengtype, genprotos): Prepend $(RUN_GEN). - * configure.in: Move host compiler tests before --enable-checking - tests. - (--enable-checking=valgrind): New. - * config.in, configure: Regenerate. - * cppfiles.c [!ENABLE_VALGRIND_CHECKING] (VALGRIND_DISCARD): - Define as empty. - (read_include_file): When doing the mmap+1 trick, - valgrind-annotate the byte after the mmap:ed area as readable. - (purge_cache): Remove above annotation. - * gcc.c (execute) [ENABLE_VALGRIND_CHECKING]: Arrange to prepend - VALGRIND_PATH -q to each command. - - * ggc-common.c [!ENABLE_VALGRIND_CHECKING] (VALGRIND_DISCARD): - Define as empty. - (ggc_realloc): Update valgrind annotations. - * ggc-page.c [!ENABLE_VALGRIND_CHECKING] (VALGRIND_DISCARD): - Define as empty. - (alloc_anon, free_page, ggc_alloc, poison_pages): Add machinery to - valgrind-annotate memory. - -2002-11-20 Ulrich Weigand - - * recog.c (constrain_operands): Prefer exact match over reloadable - EXTRA_MEMORY_CONSTRAINT or EXTRA_ADDRESS_CONSTRAINT. - - * reload.c (find_reloads): Always reload EXTRA_ADDRESS_CONSTRAINT - operands in Pmode. - -2002-11-20 Eric Botcazou - - PR c/8518 - * c-decl.c (duplicate_decls): Outline the second definition - of an extern inline function in all cases. - -2002-11-20 Richard Sandiford - - * stor-layout.c (place_field): Update rli->offset as well as - rli->bitpos. - -2002-11-20 Richard Sandiford - - * sched-deps.c (sched_analyze): Check HARD_REGNO_CALL_PART_CLOBBERED. - -2002-11-20 Richard Sandiford - - * config/sh/sh.md (udivsi3): Don't put udivsi3_i4_media instructions - into a libcall block. - (divsi3): Likewise divsi3_i4_media. - -2002-11-20 Richard Sandiford - - * global.c (find_reg): Check HARD_REGNO_NREGS before kicking - out another register. - -2002-11-20 Jakub Jelinek - - * combine.c (force_to_mode): Only replace with (not Y) if all bits in fuller_mask - (not just mask) are set in C. - -2002-11-19 Steven Bosscher - - * config/mips/vr.h (DRIVER_SELF_SPECS): Change %{ - - * profile.c (index_counts_file): Fix obvious mistake. - -2002-11-19 Zdenek Dvorak - - * Makefile.in (profile.o): Add hashtab.h dependency. - * gcov-io.h (GCOV_SUMMARY_LENGTH): New. - * profile.c: Include hashtab.h. - (htab_counts_index_hash, htab_counts_index_eq, htab_counts_index_del, - cleanup_counts_index, index_counts_file, struct section_reference, - struct da_index_entry, counts_file_name, counts_file_index): New. - (get_exec_counts, init_branch_prob): Modified. - -2002-11-19 Kaz Kojima - - * config.gcc (sh*-*-linux*): Add t-slibgcc-elf-ver and t-linux - to tmake_file. Remove setting gas and gnu_ld here. - * config/sh/libgcc-glibc.ver: New file. - * config/sh/t-linux (EXTRA_MULTILIB_PARTS): Add crtbeginT.o. - (SHLIB_MAPFILES): New. - * config/sh/linux.h (MD_EXEC_PREFIX): Undefine. - (MD_STARTFILE_PREFIX): Likewise. - (HANDLE_PRAGMA_PACK_PACK_PUSH_POP): Define. - (DWARF2_UNWIND_INFO): Redefine. - (ASM_PREFERRED_EH_DATA_FORMAT): Define. - (LINK_EH_SPEC): Redefine. - (MD_FALLBACK_FRAME_STATE_FOR): Define except for SH-media. - (SH_FALLBACK_FRAME_FLOAT_STATE): Define. - (SH_DWARF_FRAME_GP0, SH_DWARF_FRAME_FP0, SH_DWARF_FRAME_XD0, - SH_DWARF_FRAME_BT0, SH_DWARF_FRAME_PR, SH_DWARF_FRAME_PR_MEDIA, - SH_DWARF_FRAME_GBR, SH_DWARF_FRAME_MACH, SH_DWARF_FRAME_MACL, - SH_DWARF_FRAME_PC, SH_DWARF_FRAME_SR, SH_DWARF_FRAME_FPUL, - SH_DWARF_FRAME_FPSCR): Likewise. - * config/sh/sh-protos.h (sh_set_return_address): Declare. - * config/sh/sh.c (calc_live_regs): Count EH_RETURN_DATA_REGNO - registers if the current function calls EH return. - (sh_expand_epilogue): Handle EH stack adjustments. - (sh_set_return_address): New function. - * config/sh/sh.h (SH_DBX_REGISTER_NUMBER): Handle PR_MEDIA_REG. - Don't abort even if the number is mapped to -1. - (EH_RETURN_DATA_REGNO): Define. - (EH_RETURN_STACKADJ_RTX): Define. - * config/sh/sh.md (UNSPEC_EH_RETURN): New. - (eh_return): New pattern. - (eh_set_ra_di, eh_set_ra_si): Likewise. - Add splitter to perform EH return after reload. - -Tue Nov 19 12:52:07 2002 J"orn Rennecke - - * stor-layout.c (excess_unit_span): New function. - (place_field): Use it. - -2002-11-19 Andreas Schwab - - * unwind.h (_Unwind_GetTextRelBase): Revert last change, this is - not valid in C++. - -2002-11-19 Nathanael Nerode - - * configure.in, Makefile.in: Correct BUILD/HOST confusion. - * configure: Regenerate. - -Tue Nov 19 00:11:44 CET 2002 Jan Hubicka - - * convert.c (strip_float_extensions): New function. - (convert_to_real): Optimize some cases. - -2002-11-19 Andreas Jaeger - - * loop.c (record_giv): Initialize not_replaceable. - (check_final_value): Likewise. - -2002-11-19 Kazu Hirata - - * config/h8300/h8300.c (h8300_init_once): Replace 1 with - MASK_H8300S. - -2002-11-19 Vijay L. Khuspe - - * config/h8300/h8300.c (h8300_init_once): Allow -mn switch - only if -mh or -ms present. - (h8300_eightbit_constant_address_p): Support the normal mode. - (h8300_tiny_constant_address_p): Likewise. - * config/h8300/h8300.h (TARGET_NORMAL_MODE): New. - (POINTER_SIZE): Add 16 bit pointer for the normal mode. - (Pmode): Evaluate to HImode for the normal mode. - (SIZE_TYPE): Evaluate to unsigned int for normal mode. - (PTRDIFF_TYPE): Evaluate to int for the normal mode. - (ASM_WORD_OP): Evaluate to word for the normal mode. - * config/h8300/h8300.md (tablejump_normal_mode): New. - (indirect_jump_normal_mode): New. - * config/h8300/t-h8300 (MULTILIB_OPTIONS): Pass -mn option to - directory. - (MULTILIB_DIRNAMES): Create target dependent directory - 'normal'. - (MULTILIB_EXCEPTIONS): Don't turn on -mn on H8/300. - * doc/invoke.texi (gccoptlist): Describe the new switch -mn. - -Tue Nov 19 23:50:56 CET 2002 Jan Hubicka - - * i386.md (length_immediate): Do not refer to insn address. - (jcc*, jmp patterns): Compute length explicitly. - -2002-11-19 Eric Botcazou - - PR c/8588 - * optabs.c (expand_binop): Convert CONST_INTs in shift - operations too. - -2002-11-19 Roger Sayle - - * gcse.c (gcse_emit_move_after): Correct typo in REG_EQUAL note. - -2002-11-19 Kazu Hirata - - * config/h8300/h8300.md (an anonymous pattern): Relax the - condition to accept the same operands and/or subregs. - -2002-11-19 Daniel Jacobowitz - - * config/sh/sh.c (gen_shl_and): Revert previous patch. - * config/sh/sh.md (ashrdi3+1, ashrdi3+2): Predicate on - reload_completed. - -2002-11-19 Kazu Hirata - - * config/h8300/h8300.c (print_operand): Update the use of - EIGHTBIT_CONSTANT_ADDRESS_P. - (h8300_adjust_insn_length): Likewise. - (h8300_eightbit_constant_address_p): Check if the given rtx is - a variable with __attribute__((eightbit_data)). - * config/h8300/h8300.h (OK_FOR_U): Update the use of - EIGHTBIT_CONSTANT_ADDRESS_P. - -2002-11-19 Gerald Pfeifer - - * doc/contrib.texi (Contributors): Add self as second contact in - addition to Jeff Law. - -2002-11-19 Andreas Jaeger - - * tree-inline.c: Move prototpyes of find_alloca_call_1 and - find_alloca_call to right place. - -2002-11-19 Kazu Hirata - - * cppfiles.c: Fix formatting. - -2002-11-19 Jason Thorpe - - * gcc.c (The Specs Language): Document spec functions. - (static_spec_functions, lookup_spec_function) - (eval_spec_function, handle_spec_function) - (if_exists_spec_function, alloc_args): New. - (execute): Abort if processing_spec_function is true. - (do_spec_1): Hand off spec to handle_spec_function if %: - is encountered. If processing_spec_function is true, - end any pending argument when the end of the string is reached. - (main): Use alloc_args to allocate the initial argument vector. - * gcc.h (struct spec_function): New. - (lang_specific_spec_functions): New extern. - - * config/netbsd-elf.h (STARTFILE_SPEC): Add if-exists(crti%O%s). - (ENDFILE_SPEC): Add if-exists(crtn%O%s). - * config/alpha/netbsd.h (ENDFILE_SPEC): Likewise. - - * doc/invoke.texi: Document spec functions. - - * cppspec.c (lang_specific_spec_functions): New. - * gccspec.c: Likewise. - -2002-11-18 Steve Ellcey - - * config/ia64/hpux_longdouble.h (FIXUNS_TRUNCTFSI2_LIBCALL): New. - (FIXUNS_TRUNCTFDI2_LIBCALL): New. - (fixunstfsi_libfunc): Change. - (fixunstfdi_libfunc): Change. - (sdiv_optab): Don't zero out SImode handler. - (udiv_optab): Don't zero out SImode handler. - (smod_optab): Don't zero out SImode handler. - (umod_optab): Don't zero out SImode handler. - -2002-11-18 Neil Booth - - PR preprocessor/8524 - * cpplib.c (run_directive): Remove previous kludge to _Pragma. - Add a new one in its place, which hopefully works. - (skip_rest_of_line): Change test for bottom-of-context-stack. - -Mon Nov 18 21:29:03 CET 2002 Jan Hubicka - - * i386.md (addqi_1_slp): Fix output template. - (subqi_1_slp): Fix type. - -Sun Nov 17 00:01:28 CET 2002 Jan Hubicka - - * calls.c (alloca_call_p): New global function. - * tree.h (alloca_call_p): New. - * tree-inline.c (inlinable_function_p): Do not inline when - function calls alloca. - (find_alloca_call, find_alloca_call_1): New functions. - -2002-11-18 Kazu Hirata - - * config/h8300/h8300.md (*andorqi3): Use bor between bld and - bst. Update the insn length. - (*andorhi3): Likewise. - (*andorsi3): Likewise. - -2002-11-18 Richard Sandiford - - * config/sh/sh-protos.h (sh_mark_label): Declare. - * config/sh/sh.c (sh_mark_label): New function, taken from - movdi_const, but fixing the case when the address has an addend. - * config/sh/sh.md (movdi_const, movdi_const_32bit): Use it. - -2002-11-18 Richard Sandiford - - * config/sh/sh.c (pool_node): New field: part_of_sequence_p. - (add_constant): Set it. - (dump_table): Don't reorder a constant if part_of_sequence_p. - (machine_dependent_reorg): Assume that float constants will - stay in their original order if used as a sequence. - -2002-11-18 Richard Sandiford - - * config/sh/sh.c (calc_live_regs): Update check for PIC liveness - in compact code. - -2002-11-18 Richard Sandiford - - * config/sh/sh.md (initialize_trampoline): Do not force the - trampoline address into R0_REGS here. - -Sun Nov 17 14:01:09 CET 2002 Jan Hubicka - - * i386.md (negsf2_ifs, negdf2_ifs, negdf2_ifs_rex64, abssf2_ifs, - absdf2_ifs, absdf2_ifs_rex64): Fix constraints. - (neg?f2_ifs, abs?f2_ifs splitters): Refuse memory operand; do not - generate unnecesary subregs. - -2002-11-17 Kazu Hirata - - * df.c: Fix formatting. - -2002-11-17 Kazu Hirata - - * config/h8300/h8300.md (two anonymous patterns): Fix insn - lengths. - -2002-11-17 Daniel Jacobowitz - - * sh.c (gen_shl_and): Don't create a zero_extend if the operand - is not an arith_reg_operand. - -2002-11-17 Graham Stott - - * real.c (real_to_decimal): Fix buffer overrun when buffer size - is smaller than representation. - -2002-11-17 Kazu Hirata - - * builtins.c: Fix formatting. - -Sat Nov 16 16:49:58 CET 2002 Jan Hubicka - - * i386.md (truncdfsf2_1_sse, truncdfsf2_1_sse_nooverlap, truncdfsf2_2, - floats?dff2_i387): - Work around regclass stupidity. - (truncdfsf_2_1_sse splitter): Accept !TARGET_PARTIAL_SSE_REGS - -Sat Nov 16 02:17:48 CET 2002 Jan Hubicka - - * i386.md (fop_df_6): New pattern. - (fop_xf_4, fop_xf_5): Handle both SF and DFmode extensions. - (fop_xf_6): Rewrite - (fop_xf_7): Delete. - (fop_tf_4, fop_tf_5): Handle both SF and DFmode extensions. - (fop_tf_6): Rewrite - (fop_tf_7): Delete. - -2002-11-16 Kazu Hirata - - * config/h8300/h8300.md (two anonymous patterns): Fix typos. - -2002-11-16 Kazu Hirata - - * config/h8300/h8300.md: Fix formatting. - -2002-11-16 Kazu Hirata - - * config/h8300/h8300.md: Replace spaces with tabs. - * config/h8300/t-h8300: Remove a trailing empty line. - -2002-11-16 Kazu Hirata - - * tlink.c: Fix formatting. - -2002-11-16 David Edelsohn - - PR 8362 - * config/rs6000/rs6000.c (rs6000_outout_load_multiple): New function. - * config/rs6000/rs6000.md (movti_string): Remove output modifier - when scratch register never needed. - (ldmsi[3-8]): New patterns. - -2002-11-16 Kazu Hirata - - * hard-reg-set.h: Follow spelling conventions. - * real.c: Likewise. - * target.h: Likewise. - -2002-11-16 Jakub Jelinek - - * config/i386/x86-64.h (MCOUNT_NAME): Change into string literal. - -2002-11-16 Kazu Hirata - - * optabs.c: Fix formatting. - -Sat Nov 16 02:06:02 CET 2002 Jan Hubicka - - * athlon.md, k6.md, pentium.md, ppro.md: Handle shift1, rotate1 - * i386.md (attribute type): Add type shift1 and rotate1. - (*_slp): Rewrite to have just two operands to avoid reload problems. - -2002-11-15 Kazu Hirata - - * config/h8300/h8300.md (4 anonymous patterns): New. - -2002-11-15 Geoffrey Keating - - * params.def (GGC_MIN_HEAPSIZE): Fix GGC_ALWAYS_COLLECT problem. - * doc/invoke.texi: Correct description of what needs to be done to - force collection at every ggc_collect call. - -2002-11-15 Ulrich Weigand - - * config/s390/s390.c (optimization_options): Set - flag_asynchronous_unwind_tables to 1 by default. - -2002-11-15 Ulrich Weigand - - * config/s390/s390.h (ASM_PREFERRED_EH_DATA_FORMAT): Define. - -Fri Nov 15 14:54:19 CET 2002 Jan Hubicka - - * i386-protos.h (x86_function_profiler): New function - * i386.h (MCOUNT_NAME): New. - (PROFILE_COUNT_REGISTER): New. - (FUNCTION_PROFILER): Move offline to ... - * i386.c (x86_function_profiler) ... here; fix 64bit support - * beos-elf.h (FUNCTION_PROFILER): Kill. - (MCOUNT_NAME): New. - * freebsd-aout.h (FUNCTION_PROFILER): Kill. - (MCOUNT_NAME): New. - (PROFILE_COUNT_REGISTER): New. - * linux.h (FUNCTION_PROFILER): Kill. - (MCOUNT_NAME): New. - * x86-64.h (FUNCTION_PROFILER): Kill. - (MCOUNT_NAME): New. - * freebsd.h (FUNCTION_PROFILER): Kill. - (MCOUNT_NAME): New. - -2002-11-14 Jeroen Dobbelaere - - * config/arm/arm.h (EXPAND_BUILTIN_VA_ARG, - FUNCTION_ARG_PASS_BY_REFERENCE): Define. - * config/arm/arm.c (arm_va_arg, - arm_function_arg_pass_by_reference): New. - * config/arm/arm-protos.h: Add prototypes. - -2002-11-14 Kazu Hirata - - * gthr-single.h: Fix formatting. - -2002-11-14 Zack Weinberg - - * tree.c (tree_vec_elt_check_failed): New function. - * tree.h (TREE_VEC_ELT_CHECK): New checking macro. - (TREE_VEC_ELT): Use it. - - * tree-inline.c (optimize_inline_calls): Don't copy a - zero-length vector. - -2002-11-14 Gabriel Dos Reis - - * diagnostic.c (sorry): Don't repeat "sorry, unimplemented" text. - -2002-11-14 Jakub Jelinek - - * varasm.c (output_addressed_constants) [MINUS_EXPR]: Clear reloc if - both operands contain local relocations. - (categorize_decl_for_section): Don't use mergeable sections if - initializer has any relocations. - -2002-11-14 Kazu Hirata - - * gthr-vxworks.h: Fix formatting. - -2002-11-13 Janis Johnson - - * doc/install.texi (Testing): Document extra Java testing. - * doc/sourcebuild.texi (Test Suites): Document libgcj testing. - -2002-11-13 John David Anglin - - * pa64-hpux.h (LINK_SPEC): Move "+Accept TypeMismatch" switch to the - beginning of the spec. - (LDD_SUFFIX, PARSE_LDD_OUTPUT): Delete. - (LD_INIT_SWITCH, LD_FINI_SWITCH): Define but don't enable. Add comment - regarding problems with global constructors when using GNU ld. - -2002-11-13 Kazu Hirata - - * gthr-solaris.h: Fix formatting. - -2002-11-13 Kazu Hirata - - * gthr-posix.h: Fix formatting. - -2002-11-12 Devang Patel - * gcc.c (display_help): Two new options -Xpreprocessor and -Xassembler. - (process_command): Same. - * doc/invoke.texi: Info about these two new options. - -2002-11-12 Kazu Hirata - - * config/h8300/h8300.md (*andorsi3): New. - -2002-11-12 Franz Sirl - - * doc/install.texi (powerpc-*-linux-gnu*): Update binutils requirement. - -2002-11-12 Kazu Hirata - - * config/h8300/h8300.c (tiny_constant_address_p): Parenthesize - expressions appropriately. - -2002-11-12 Kazu Hirata - - * gthr-win32.h: Fix formatting. - -2002-11-12 Kazu Hirata - - * config/h8300/h8300.c (single_one_operand): Correctly compute - mask when mode is SImode. - (single_zero_operand): Likewise. - * config/h8300/h8300.md (two new anonymous insns): New. - -2002-11-12 Gerald Pfeifer - - * doc/contrib.texi (Contributors): Use GCJ instead of gcj to refer - to that entire project. - -2002-11-12 Rainer Orth - - * config/mips/t-iris6 (MULTILIB_OSDIRNAMES): Restore old - directories. - -2002-11-11 Zack Weinberg - - * params.def (ggc-min-expand, ggc-min-heapsize): New parameters. - * doc/invoke.texi: Document them. - - * ggc-page.c: Include params.h. Remove definitions of - GGC_MIN_EXPAND_FOR_GC, GGC_MIN_LAST_ALLOCATED. Replace - GGC_POISON with ENABLE_GC_CHECKING in ifdefs, delete #define. - (init_gcc): Don't set G.allocated_last_gc here. - (ggc_collect): Use PARAM_VALUE (GGC_MIN_HEAPSIZE) and - PARAM_VALUE (GGC_MIN_EXPAND) to decide whether or not to - perform collection. - * ggc-simple.c: Similarly. - * Makefile.in (ggc-common.o, ggc-simple.o): Add $(PARAMS_H) to - dependencies. - -2002-11-11 Kazu Hirata - - * gthr-dce.h: Fix formatting. - -2002-11-11 Franz Sirl - - PR c/8467 - * stmt.c (tail_recursion_args): Handle DECL_MODE differing from the - mode of DECL_RTL case. - -2002-11-11 Janis Johnson - - * doc/contrib.texi: Merge in the list from the libstdc++ web pages. - -Mon Nov 11 12:06:08 CET 2002 Jan Hubicka - - * i386.c (construct_container): Fix handling of SSE_CLASS. - -2002-11-10 Joel Sherrill - - * config/m68k/t-crtstuff (crti.o): Use this... - ($(T)crti.o): ... instead. - (crtn.o): Use this... - ($(T)crtn.o): ... instead. - -2002-11-10 Eric Botcazou - - PR c/8439 - * recog.c (validate_replace_rtx_1) [PLUS]: Simplify only - if there is something new to be simplified. - -2002-11-10 H.J. Lu - - * calls.c (PUSH_ARGS_REVERSED): Define only if not defined. - * expr.c (PUSH_ARGS_REVERSED): Likewise. - - * config/i386/i386.h (PUSH_ARGS_REVERSED): Set to 1. - -2002-11-10 Zack Weinberg - - * config/rs6000/sysv4.h: Define NO_IMPLICIT_EXTERN_C here... - * config/rs6000/linux.h, config/rs6000/linux64.h, - config/rs6000/windiss.h: ... not here. - -2002-11-10 Jason Thorpe - - * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define - __ABICALLS__ if TARGET_ABICALLS. - -Sun Nov 10 18:49:21 CET 2002 Jan Hubicka - - * i386.h (MIN_UNITS_PER_WORD): Define to 8 for x86-64 libgcc. - -2002-11-10 Joseph S. Myers - - * c-decl.c (grokdeclarator): Make error for duplicate type - qualifiers into a pedwarn, disabled for C99. - -2002-11-10 Hans-Peter Nilsson - - * config/mmix/mmix.h (FUNCTION_ARG_CALLEE_COPIES): Define the same - as FUNCTION_ARG_PASS_BY_REFERENCE. - -2002-11-09 Zack Weinberg - - * doc/install.texi: Add *-*-vxworks* specific installation - instructions. - - * config/vxlib.c: Rewrite using generation numbers to identify - valid TSD keys. - -Sat Nov 9 00:10:54 CET 2002 Jan Hubicka - - * i386.c (x86_machine_dependent_reorg): Fix even more side cases. - -2002-11-09 John David Anglin - - * pa.h (STARTING_FRAME_OFFSET): Change offset for TARGET_64BIT to 16. - - * config.gcc (hppa*64*-*-linux*): Shorten lines in tm_file define. - (hppa*64*-*-hpux11*): Likewise. Use elfos.h with gas. - * pa.c (output_millicode_call): Use symbol difference rather than - $PIC_pcrel$0 when using HP assembler. - * pa64-hpux.h (TARGET_GAS): Define to 1 or 0 depending on whether or - not elfos.h (i.e., gas) is being used. - (ASM_FILE_START, STRING_ASM_OP, TEXT_SECTION_ASM_OP, - DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_COMMON, - ASM_OUTPUT_ALIGNED_LOCAL, GLOBAL_ASM_OP, ASM_DECLARE_FUNCTION_NAME, - ASM_OUTPUT_EXTERNAL, ASM_OUTPUT_EXTERNAL_LIBCALL, - ASM_OUTPUT_INTERNAL_LABEL, ASM_GENERATE_INTERNAL_LABEL): Define when - using elfos.h. - (TARGET_ASM_GLOBALIZE_LABEL): Undefine when using elfos.h. - (DWARF2_ASM_LINE_DEBUG_INFO): Delete. - (ASM_FILE_START): Add standard .SPACE and .SUBSPA defines when not - using elfos.h. - (TEXT_SECTION_ASM_OP, READONLY_DATA_SECTION_ASM_OP, DATA_SECTION_ASM_OP, - BSS_SECTION_ASM_OP): New HP style defines when not using elfos.h. - (TARGET_ASM_NAMED_SECTION, MAKE_DECL_ONE_ONLY, ASM_WEAKEN_LABEL): - Don't define when not using elfos.h. - (ASM_DECLARE_RESULT): Don't define. - * doc/install.texi (hppa*-hp-hpux*): Remove statement that HP assembler - doesn't work on hppa64-hp-hpux11. - (hppa*-hp-hpux11): Update. - -2002-11-09 Jason Thorpe - - * config/mips/netbsd.h (SUBTARGET_ASM_SPEC): Don't pass -KPIC - to the assembler if -mno-abicalls was specified. - -2002-11-09 John David Anglin - - * pa-linux.h (PREFERRED_DEBUGGING_TYPE, DWARF2_ASM_LINE_DEBUG_INFO, - ASM_OUTPUT_DEF): Delete. - -2002-11-09 Neil Booth - - * c-opts.c (COMMAND_LINE_OPTIONS): Fix -Wimplicit. - -2002-11-08 Roger Sayle - - * real.c (real_sqrt): Update comment with bibliographic reference. - -Fri Nov 8 13:33:58 CET 2002 Jan Hubicka - - * i386.md (sse_loadss, sse2_loadsd): Fix expander. - -Fri Nov 8 13:25:41 CET 2002 Jan Hubicka - - * i386.c (x86_machine_dependent_reorg): Fix handling of empty functions. - -Fri Nov 8 13:01:42 CET 2002 Jan Hubicka - - * builtins.c (expand_builtin_mathfn): Handle floor/ceil/trunc/round/nearbyint - (expand_builtin): Likewise. - * builtins.def: Add - __builtin_floor, __builtin_floorf, __builtin_floorl - __builtin_ceil, __builtin_ceilf, __builtin_ceill - __builtin_round, __builtin_roundf, __builtin_roundl - __builtin_trunc, __builtin_truncf, __builtin_truncl - __builtin_nearbyint, __builtin_nearbyintf, __builtin_nearbyintl. - * genopinit.c (optabs): Initialize the new optabs. - * optab.c (init_optabs): Likewise. - * optabs.h (optab_index): Add OTI_floor, OTI_ceil, OTI_trunc, - OTI_round, OTI_nearbyint. - (floor_optab, ceil_optab, trunc_optab, round_optab, nearbyint_optab): New. - * doc/md.texi: Document new named patterns. - * doc/extend.texi (builtin functions) Document - floor, floorf, floorl, ceil, ceilf, - ceill, round, roundf, roundl, trunc, - truncf, truncl, nearbyint, nearbyintf, nearbyintl. - -Fri Nov 8 11:36:11 CET 2002 Jan Hubicka - - * i386.md (sse_movdfcc, sse_movsfcc): Fix typo in previous patch. - -2002-11-08 Dale Johannesen - - * dbxout.c (dbxout_type): Fix stabs info for vector types. - -2002-11-08 Neil Booth - - PR preprocessor/8497 - PR preprocessor/8501 - * cpptrad.c (scan_out_logical_line): A '#' from a macro doesn't - start a directive. In assembler, #NUM is not a line directive. - -2002-11-08 Neil Booth - - * cppmain.c (cpp_preprocess_file): Loop to pop any -included - buffers. - -2002-11-08 Kazu Hirata - - * config/h8300/h8300.md (two anonymous test insns): New. - -Fri Nov 8 11:20:19 CET 2002 Jan Hubicka - - * jump.c (mark_jump_label): Handle subregs of label_refs. - -Thu Nov 7 21:54:22 CET 2002 Jan Hubicka - - * i386.md (sse_movdfcc, sse_movsfcc): Avoid overactive matching. - * i386.c (ix86_expand_fp_movcc): Match the reversed cases. - -2002-11-07 David Mosberger - - * config/ia64/crtend.asm: Include "auto-host.h". - [HAVE_INITFINI_ARRAY]: Invoke __do_global_ctors_aux via .init_array. - * config/ia64/crtbegin.asm: Similarly. - * config/ia64/t-ia64 (crtbegin.o): Include from current directory. - (crtend.o, crtbeginS.o, crtendS.o): Likewise. - - * aclocal.m4 (gcc_AC_INITFINI_ARRAY): New. - * configure.in: Use it if --enable-initfini-array not specified. - * doc/install.texi (Configuration): Document --enable-initfini-array. - * configure, config.in: Rebuild. - -2002-11-07 Jason Thorpe - - * config/arm/arm-protos.h (arm_get_frame_size) - (thumb_get_frame_size): New prototypes. - * config/arm/arm.c (arm_get_frame_size) - (thumb_get_frame_size): New functions. - (use_return_insn, arm_output_epilogue, arm_output_function_epilogue) - (arm_compute_initial_elimination_offset, arm_expand_prologue): Use - arm_get_frame_size. - (thumb_expand_prologue, thumb_expand_epilogue): Use - thumb_get_frame_size. - * config/arm/arm.h (PREFERRED_STACK_BOUNDARY): Define. - (machine_function): Add frame_size member. - (THUMB_INITIAL_ELIMINATION_OFFSET): Use thumb_get_frame_size. - -2002-11-07 Richard Earnshaw - - * arm.c (bit_count): Make argument unsigned long. Return unsigned. - Adjust code to use portable unsigned bit manipulation. - (insn_flags, tune_flags): Change type to unsigned. - (struct processors): Make flags unsigned long. - (arm_override_options): Change type of count and current_bit_count - to unsigned. - -2002-11-07 Richard Earnshaw - - * arm/elf.h (TYPE_OPERAND_FMT): Prefix type with %. - -Thu Nov 7 15:50:18 2002 J"orn Rennecke - - * sh.h (DWARF_FRAME_RETURN_COLUMN): Use DWARF_FRAME_REGNUM. - -Thu Nov 7 11:18:01 CET 2002 Jan Hubicka - - * reg-stack.c (compensate_edge): Fix sanity check. - -2002-11-05 Geoffrey Keating - - * config.gcc: Don't create crtbegin, crtend on Darwin; do create - crt2.o. Rearrange t-darwin makefiles. - * crtstuff.c [OBJECT_FORMAT_MACHO]: Delete. - * unwind-dw2-fde-darwin.c: New. - * unwind-dw2-fde-glibc.c: Correct comment. - * unwind-dw2-fde.c (__register_frame_info_bases) - [DWARF2_OBJECT_END_PTR_EXTENSION]: Clear fde_end. - (classify_object_over_fdes): Use last_fde. - (add_fdes): Likewise. - (linear_search_fdes): Likewise. - * unwind-dw2-fde.h (struct object) - [DWARF2_OBJECT_END_PTR_EXTENSION]: Add fde_end field. - (last_fde): New. - * config/darwin.h (STARTFILE_SPEC): Include crt2.o not crtbegin.o. - (ENDFILE_SPEC): No crtend.o. - * config/t-darwin: New. - * config/i386/t-darwin: Delete. - * config/darwin-crt2.c: New. - * config/rs6000/t-darwin: Delete contents duplicated in t-rs6000 - or config/t-darwin. - -2002-11-06 Douglas B Rupp - - * config/i386/i386-interix.h (TARGET_SUBTARGET_DEFAULT): Or - MASK_MS_BITFIELD_LAYOUT - (SUBTARGET_OVERRIDE_OPTIONS): Warn about and turn off - MS bitfields for Objective-C. - (PCC_BIT_FIELD_TYPE_TEST, GROUP_BITFIELDS_BY_ALIGN): Remove - defines. - - * config/i386/i386.c (ix86_ms_bitfield_layout): New function. - (TARGET_MS_BITFIELD_LAYOUT_P): Define to above function. - (TARGET_USE_MS_BITFIELD_LAYOUT): Define. - - * config/i386/i386.h (MASK_MS_BITFIELD_LAYOUT: New mask. - TARGET_USE_MS_BITFIELD_LAYOUT): New macro. - (TARGET_SWITCHES): Add above mask. - - * testsuite/gcc.dg/bf-ms-layout.c: New test case. - * testsuite/gcc.dg/bf-no-ms-layout.c: New test case. - * testsuite/gcc.dg/i386-bitfield1.c (dg-options): Add appropriate - flags for interix. - -Wed Nov 6 18:54:47 2002 Alexandre Oliva - - * config/mips/mips.h (ASM_OUTPUT_ADDR_DIFF_ELT): Output - .gpword/.gpdword for ABI_N32 and ABI_64 too, if using the GNU - assembler. - * config/mips/mips.md (tablejump_internal3): Output .cpadd - before jump on ABI_N32 too. - (tablejump_internal4): Ditto on ABI_64. Increase maximum - length to match. - -Wed Nov 6 17:16:48 CET 2002 Jan Hubicka - - * i386.md (negsf splitter): Accept memory operand in second register. - (abssf/absdf splitters): Simplify - (sse_loadss, sse_loadsd): Turn into expander. - -2002-11-06 David Edelsohn - - PR target/8480 - * config/rs6000/rs6000.md (movdi_internal64): Discourage - FPR to FPR moves. - -2002-11-06 Janis Johnson - - * doc/contrib.texi: Merge in the list from the Java web pages. - -2002-11-06 David O'Brien - - * config/sparc/freebsd: Fix typo. - -2002-11-06 John David Anglin - - * pa64-hpux.h (LDD_SUFFIX, PARSE_LDD_OUTPUT): Define. - -2002-11-06 Alexandre Oliva - - * config/mips/mips.md (call_value_multiple_internal2): Use dla for - non-SImode addresses. - -Tue Nov 5 14:34:36 CET 2002 Jan Hubicka - - * i386.md (float_truncate SSE splitter): Ensure that operand is not - stack register. - (float SSE splitters): Reorder conditional. - -2002-11-05 Bob Wilson - - * config/xtensa/elf.h (LIB_SPEC): Add "-lhal". - -2002-11-05 John David Anglin - - * pa64-hpux.h (LIB_SPEC): Fix p and pg options. - (STARTFILE_SPEC): Remove p and pg options. - -2002-11-05 Andrew Haley - - * fold-const.c (fold): Don't transform (a0 op compound(a1,a2)) - to (compound(a1,a0 op a2)) if a0 or a1 have side effects. - -2002-11-05 Richard Sandiford - - * config/mips/mips.h (CANNOT_CHANGE_MODE_CLASS): Move comment to... - * config/mips/mips.c (mips_cannot_change_mode_class): ...here. - -2002-11-04 Zack Weinberg - - * gthr-vxworks.h: Rewritten from scratch. - * config/vxlib.c: New file. - * config/t-vxworks: Add config/vxlib.c to LIB2FUNCS_EXTRA. - * config/rs6000/t-vxworks: Add config/vxlib.c to - LIB2FUNCS_EXTRA here too, because of clash with - config/rs6000/t-ppccomm. - -2002-11-04 Dale Johannesen - - * doloop.c (doloop_modify_runtime): Fix loop count computation - for unrolled loops. - * loop.c (loop_invariant_p): Support calling from unroller. - -2002-11-04 Ulrich Weigand - - * config/s390/s390.c (s390_decompose_address): Use arg_pointer_rtx - for comparison. - -2002-11-04 Aldy Hernandez - - * hard-reg-set.h (REG_CANNOT_CHANGE_MODE_P): New. - - * config/rs6000/rs6000.h (CLASS_CANNOT_CHANGE_MODE_P): Remove. - (CLASS_CANNOT_CHANGE_MODE): Remove. - (CANNOT_CHANGE_MODE_CLASS): New. - - * config/alpha/alpha.h: Same. - - * config/ia64/ia64.h: Same. - - * config/mips/mips.h: Same. - - * config/s390/s390.h: Same. - - * config/sh/sh.h: Same. - - * config/pa/pa64-regs.h: Same. - - * config/sh/sh-protos.h (sh_cannot_change_mode_class): Add prototype. - - * config/sh/sh.c (sh_cannot_change_mode_class): New. - - * config/mips/mips-protos.h (mips_cannot_change_mode_class): Add - prototype. - - * config/mips/mips.c (mips_cannot_change_mode_class): New. - - * doc/tm.texi (Register Classes): Remove - CLASS_CANNOT_CHANGE_MODE and CLASS_CANNOT_CHANGE_MODE_P. - Document CANNOT_CHANGE_MODE_CLASS. - - * reload.c (push_reload): Use CANNOT_CHANGE_MODE_CLASS. - (push_reload): Same. - - * simplify-rtx.c (simplify_subreg): Same. - - * reload1.c (choose_reload_regs): Same. - - * recog.c (register_operand): Same. - - * regrename.c (mode_change_ok): Change to use new - CANNOT_CHANGE_MODE_CLASS infrastructure. - - * regclass.c (cannot_change_mode_set_regs): New. - Declare subregs_of_mode. - (regclass): Use subregs_of_mode. - Remove references to reg_changes_mode. - (init_reg_sets_1): Remove class_can_change_mode and - reg_changes_mode code. - (invalid_mode_change_p): New. - (dump_regclass): Use invalid_mode_change_p instead of - class_can_change_mode. - (regclass): Same. - (record_operand_costs): Do not set reg_changes_mode. - - * local-alloc.c (struct qty): Remove changes_mode field. - (alloc_qty): Remove changes_mode initialization. - (update_qty_class): Remove set of changes_mode. - (find_free_reg): Use subregs_of_mode. - - * global.c (find_reg): Use subregs_of_mode info. - - * rtl.h (cannot_change_mode_set_regs): New prototype. - (invalid_mode_change_p): Same. - (REG_CANNOT_CHANGE_MODE_P): New macro. - - * flow.c (mark_used_regs): Calculate subregs_of_mode. Remove - REG_CHANGES_MODE. - (life_analysis): Clear subregs_of_mode. - - * combine.c (subst): Pass class to CLASS_CANNOT_CHANGE_MODE_P. - Remove use of CLASS_CANNOT_CHANGE_MODE. - (simplify_set): Same. - (gen_lowpart_for_combine): Calculate subregs_of_mode. Remove - REG_CHANGES_MODE. - - * regs.h: Add extern for subregs_of_mode; - Include hard-reg-set and basic-block. - (REG_CHANGES_MODE): Delete. - -2002-11-03 Roger Sayle - - * real.c (real_sqrt): New function to calculate square roots. - * real.h (real_sqrt): Add function prototype. - * builtins.c (fold_builtin): Fold sqrt of constant argument. - * simplify-rtx.c (simplify_unary_operation): Simplify sqrt - of constant argument. - -2002-11-03 John David Anglin - - * jump.c (never_reached_warning): Don't set contains_insn until the - first line note is seen. - -2002-11-03 David Edelsohn - - * config/rs6000/rs6000.md (movti_string): Use string instructions. - -2002-11-03 Roger Sayle - - PR c/7128 - * c-typeck.c (c_expand_asm_operands): Defend against - error_mark_nodes in the output argument to avoid ICE. - -2002-11-03 Eric Botcazou - - PR middle-end/8408 - * genrecog.c (preds): Handle ADDRESSOF. - (validate_pattern): Mark it as an lvalue. - -2002-11-02 David Edelsohn - - * config/rs6000/rs6000.c (rs6000_override_options): Use string - instructions when optimizing for size. - -2002-11-02 Kazu Hirata - - * config/h8300/h8300.h: Fix comment typos. - * config/h8300/h8300.md: Likewise. - * config/h8300/lib1funcs.asm: Likewise. - -2002-11-02 Gerald Pfeifer - - Revert this change: - - *doc/install.texi (Installing GCC: Configuration): Clarify - the only supported ways to configure gcc. - -2002-11-01 Kazu Hirata - - * config/h8300/h8300.md (anonymous and:QI pattern): Use 'n' - instead of 'O' for the constraint for the second operand. - -2002-11-01 Mark Mitchell - - PR c++/8391 - * toplev.c (rest_of_compilation): Do not refuse to output code for - an inline function in a local class. - -2002-11-01 David O'Brien - - * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Define __arch64__. - (TRANSFER_FROM_TRAMPOLINE): Reformat. - Add comment. - -2002-11-01 Kazu Hirata - - * config/h8300/h8300.h (CAN_ELIMINATE): Simplify. - -2002-11-01 Toshiyasu Morita - - * config/h8300/h8300.h (OPTIMIZATION_OPTIONS): New. - -2002-11-01 Steve Ellcey - - * config/ia64/ia64.h (MASK_INLINE_DIV_LAT): Remove. - (MASK_INLINE_DIV_THR): Remove. - (TARGET_INLINE_DIV_LAT): Remove. - (TARGET_INLINE_DIV_THR): Remove. - (TARGET_INLINE_DIV): Remove. - (MASK_INLINE_FLOAT_DIV_LAT): New macro. - (MASK_INLINE_FLOAT_DIV_THR): New macro. - (MASK_INLINE_INT_DIV_LAT): New macro. - (MASK_INLINE_INT_DIV_THR): New macro. - (TARGET_INLINE_FLOAT_DIV_LAT): New macro. - (TARGET_INLINE_FLOAT_DIV_THR): New macro. - (TARGET_INLINE_INT_DIV_LAT): New macro. - (TARGET_INLINE_INT_DIV_THR): New macro. - (TARGET_INLINE_FLOAT_DIV): New macro. - (TARGET_INLINE_INT_DIV): New macro. - * config/ia64/ia64.md (divsi3): Change to use new macros. - (modsi3): Ditto. - (udivsi3): Ditto. - (umodsi3): Ditto. - (divsi3_internal): Ditto. - (divdi3): Ditto. - (moddi3): Ditto. - (udivdi3): Ditto. - (umoddi3): Ditto. - (divdi3_internal_lat): Ditto. - (divdi3_internal_thr): Ditto. - (divsf3): Ditto. - (divsf3_internal_lat): Ditto. - (divsf3_internal_thr): Ditto. - (divdf3): Ditto. - (divdf3_internal_lat): Ditto. - (divdf3_internal_thr): Ditto. - (divtf3): Ditto. - (divtf3_internal_lat): Ditto. - (divtf3_internal_thr): Ditto. - * config/ia64/ia64.c (ia64_override_options): Change - to check new macros for conflicts in settings. - * doc/invoke.texi (-minline-divide-min-latency): Remove. - (-minline-divide-max-throughput): Remove. - (-minline-float-divide-min-latency): New. - (-minline-float-divide-max-throughput): New. - (-minline-int-divide-min-latency): New. - (-minline-int-divide-max-throughput): New. - -2002-11-01 Richard Earnshaw (rearnsha@arm.com) - - PR target/7856 - * arm.c (use_return_insn): Don't use a return insn if there are - saved integer regs, but LR is not one of them. - -Fri Nov 1 10:33:15 CET 2002 Jan Hubicka - - * expr.c (emit_move_insn): Use SCALAR_FLOAT_MODE_P - * machmode.h (SCALAR_FLOAT_MODE_P): New macro. - -Thu Oct 31 18:20:50 CET 2002 Jan Hubicka - - * i386.md (sse_loadss, sse_loadsd): Canonicalize; add expander - (movps, movpd splitters): Use canonical form. - (movv2di): Fix merge problem. - -Thu Oct 31 16:22:31 CET 2002 Jan Hubicka - - * i386.md (negdf2_ifs_rex64): Don't allow GPR operand. - -2002-10-31 Nathanael Nerode - - PR optimization/6162 - * doc/md.texi: Document restriction on commutative operand - specification. - -2002-10-31 Eric Christopher - - * explow.c (convert_memory_address): Use shallow_copy_rtx. - -2002-10-31 Steve Ellcey - - * expmed.c (store_bit_field): Check FUNCTION_ARG_REG_LITTLE_ENDIAN. - -2002-10-31 Steve Ellcey - - * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Set for non-floats. - -Thu Oct 31 Dale Johannesen - - * config/rs6000/darwin.h: Correct formatting in previous. - -Thu Oct 31 Dale Johannesen - - * config/rs6000/darwin.h: Enable -falign-xxx options. - -Thu Oct 31 18:08:00 CET 2002 Jan Hubicka - - * i386.c (override_options): Set defaults for flag_omit_frame_pointer, - flag_asynchronous_unwind_tables, flag_pcc_struct_return. - * i386.c (optimization_options): Set flag_omit_frame_pointer, - flag_asynchronous_unwind_tables, flag_pcc_struct_return to 2. - Do not clear -momit-leaf-frame-pointer when profiling. - (ix86_frame_pointer_required): Frame pointer is always required when - profiling. - -Thu Oct 31 16:09:44 CET 2002 Jan Hubicka - - * i386.md (negdf2_ifs_rex64): Don't allow GPR operand. - -Thu Oct 31 12:45:55 2002 J"orn Rennecke - - * sh.h (binary_logical_operator): Declare. - * sh.c (binary_logical_operator): New function. - * sh.md (xordi3+1): New combiner splitter pattern. - -2002-10-31 David O'Brien - - * config/sparc/freebsd.h (TRANSFER_FROM_TRAMPOLINE): Define - __enable_execute_stack function. - -2002-10-30 Zack Weinberg - - * gthr.h, gthr-dce.h, gthr-posix.h, gthr-rtems.h, - gthr-solaris.h, gthr-win32.h: Remove __gthread_key_dtor. - * unwind-sjlj.c (fc_key_dtor): Delete. - (fc_key_init): Adjust __gthread_key_create call to match. - -2002-10-30 Aldy Hernandez - - * c-common.c: Add GTY to vector_type_node_list. - -2002-10-30 John David Anglin - - * pa-linux.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Define. - * pa-protos.h (attr_length_millicode_call, attr_length_call, - pa_init_machine_status): Declare new global functions. - * pa.c (void copy_fp_args, length_fp_args, get_plabel): Declare and - implement new functions. - (attr_length_millicode_call, attr_length_call): Implement. - (total_code_bytes): Change type to long. - (pa_output_function_prologue): Compute total_code_bytes on TARGET_64BIT. - Reset counter if flag_function_sections. - (output_deferred_plabels): Set output alignment to 3 for TARGET_64BIT. - (output_cbranch): Move call to gen_label_rtx. - (output_millicode_call): Rewrite adding long TARGET_64BIT call, expose - delay slot in all variants, shorten pc-relative calls. - (output_call): Rewrite adding long TARGET_64BIT call, improved delay - slot usage and exposure, various new call variants, and shortened - sequences for some variants on TARGET_PA_20. - Miscellaneous format changes. - * pa.h (total_code_bytes): Change type to long. - (MASK_LONG_CALLS, TARGET_LONG_CALLS, TARGET_LONG_ABS_CALL, - TARGET_LONG_PIC_SDIFF_CALL, TARGET_LONG_PIC_PCREL_CALL): Define. - (TARGET_SWITCHES): Add "-mlong-calls" and "-mno-long-calls" options. - (EXTRA_CONSTRAINT, GO_IF_LEGITIMATE_ADDRESS, - LEGITIMIZE_RELOAD_ADDRESS): Don't use long floating point loads and - stores on TARGET_ELF32. - *pa.md (define_delay): Allow insns in delay on TARGET_PORTABLE_RUNTIME. - (unnamed patterns for mulsi3, divsi3, udivsi3, modsi3, umodsi3 and - canonicalize_funcptr_for_compare expanders): Calculate attribute length - attr_length_millicode_call(). - (call_internal_symref, call_value_internal_symref): Clobber register 1. - Calculate attribute length using attr_length_call(). - (call_internal_reg_64bit, call_value_internal_reg_64bit): Move gp load - to delay slot. - (sibcall, sibcall_value): Rewrite. - (sibcall_internal_symref, sibcall_value_internal_symref): Clobber - register 1. Use attr_length_call(). - (sibcall_internal_symref_64bit, sibcall_value_internal_symref_64bit): - New patterns. - (unamed pattern for canonicalize_funcptr_for_compare): Rewrite. - * som.h (MEMBER_TYPE_FORCES_BLK): Define. - * t-pa64 (TARGET_LIBGCC2_CFLAGS): Add "-mlong-calls". - * doc/invoke.texi (mlong-calls): Document. - -2002-10-30 Roger Sayle - - * fold-const.c (fold_binary_op_with_conditional_arg): Improve - handling of cases where one or both branches of the conditional - have void type, i.e. throw an exception or don't return. - (fold): Only apply (and undo) type conversion to the non-void - branches of a COND_EXPR. - -2002-10-30 Mark Mitchell - - PR c++/8333 - * varasm.c (asm_output_aligned_bss): Do not call - ASM_GLOBALIZE_LABEL. - -2002-10-30 David Edelsohn - Torbjorn Granlund - - * config/rs6000/rs6000.md (load_toc_v4_PIC_1): Use preferred form - for addressibility. - (load_toc_v4_PIC_1b): Same. - -2002-10-30 Kazu Hirata - - * config/h8300/h8300.c (h8300_eightbit_constant_address_p): - Truncate the addresses for H8/300 using HImode. - -Tue Oct 29 23:28:10 CET 2002 Jan Hubicka - - * i386.md (negdf splitter): Fix construction of the constant. - -Tue Oct 29 20:47:06 CET 2002 Jan Hubicka - - * i386.md (negsf, negdf): Reorganize to use vector modes - for SSE variants. - (abssf, absdf): Use force_reg. - (movv4sf, movv2df): New splitters. - * i386.h (PREDICATE_CODES): add zero_extended_scalar_load_operand - * i386.c (zero_extended_scalar_load_operand - - * i386-protos.h (ix86_expand_call): Update prototype. - * i386.c (ix86_function_ok_for_sibcall): Handle 64bit - (ix86_expand_call): Use r11 for indirect sibcalls. - * i386.md (call, call_value, untyped_call, call_value_pop): - update x86_expand_call call. - (sibcall, sibcall_value): new patterns - (call_rex64, call_value_rex64): Do not accept sibcalls. - (sibcall_rex64, sibcall_value_rex64, - sibcall_rex64_v, sibcall_value_rex64_v): New. - -Tue Oct 29 15:37:39 CET 2002 Jan Hubicka - - * toplev.c (rest_of_compilation): Reorganize way reg_scan is called - before final pass. - -2002-10-29 Hans-Peter Nilsson - - * toplev.c (rest_of_type_compilation): Return early in case of - errors. - (check_global_declarations): Don't call debug_hooks->global_decl - in case of errors. - -2002-10-28 Andreas Bauer - - * doc/c-tree.texi (Tree overview): Fix typos. - -2002-10-29 Phil Edwards - - * Makefile.in (gnucompare*): Only record bad comparisons - if there really was a bad comparison. - -Tue Oct 29 19:32:16 CET 2002 Jan Hubicka - - * i386.h (CONST_DOUBLE_OK_FOR_LETTER_P): Remove 'H' - * i386.md (movsf*, movdf*): Use 'C' instead of 'H' - * md.texi (machine dependent constraints): Document 'C' - - * simplify-rtx.c (simplify_subreg): Fix const_int->vector subregging. - - * i386.c (ix86_expand_vector_move): Fix. - - * i386.c (ix86_expand_builtin): Use sse2_maskmovdqu_rex64. - * i386.md (sse2_maskmovdqu_rex64): New pattern - - PR target/8322 - * xmmintrin.h (_mm_stream_pi, _mm_stream_pd): Fix cast. - (ix86_init_mmx_sse_builtins): Fix type. - -2002-10-29 Jason Thorpe - - * gthr-posix.h: Include for feature tests. - (sched_get_priority_max, sched_get_priority_min) - (pthread_getschedparam, pthread_setschedparam): Only use - if _POSIX_THREAD_PRIORITY_SCHEDULING is defined. - (__gthread_objc_thread_set_priority): Don't treat all nonzero - returns from sched_get_priority_max and sched_get_priority_min - as an error. - -2002-10-29 Kazu Hirata - - * config/h8300/h8300.h (TARGET_DEFAULT): Make it - MASK_QUICKCALL. - -2002-10-29 Kazu Hirata - - * config/h8300/h8300.c (h8300_eightbit_constant_address_p): New. - (h8300_tiny_constant_address_p): Likewise. - * config/h8300/h8300.h (EIGHTBIT_CONSTANT_ADDRESS_P): Use - h8300_eightbit_constant_address_p. - (TINY_CONSTANT_ADDRESS_P): Use h8300_tiny_constant_address_p. - * config/h8300/h8300-protos.h: Add the prototypes for the two - new functions. - -2002-10-29 Kazu Hirata - - * reload1.c (update_eliminables): Unconditionally check if - frame_pointer_needed has changed. - -Tue Oct 29 15:37:39 CET 2002 Jan Hubicka - - * toplev.c (rest_of_compilation): Reorganize way reg_scan is called - before final pass. - -2002-10-29 Eric Botcazou - - PR optimization/8334 - * expr.c (expand_expr) [PLUS]: Don't use simplify_binary_operation; - check for zero operands explicitly. - -2002-10-29 Richard Sandiford - - * config/mips/mips.md (extv, extzv, insv): Set size of referenced - memory after adjusting to BLKmode. - -2002-10-29 Kazu Hirata - - * config/h8300/h8300.h (MASK_*): New. - (TARGET_*): Use MASK_*. - -2002-10-28 Zack Weinberg - - * config.gcc (*-*-vxworks, powerpc-wrs-vxworks*): New stanzas. - * config/t-vxworks, config/vxworks.h, config/rs6000/t-vxworks, - config/rs6000/vxworks.h: New files. - * config/rs6000/sysv4.h: Rip out -mvxworks and all related code. - - * config.gcc (alpha*-*-vxworks*, arm-*-vxworks*, - i?86-wrs-vxworks*, i960-wrs-vxworks* [all], - m68k-wrs-vxworks*, mips-wrs-vxworks, powerpc-wrs-vxworks*, - powerpcle-wrs-vxworks*, sparc*-wrs-vxworks* [all], - sparc-*-vxsim*): Delete stanzas. - * gthr-vxworks.h: Rip out all substantive code and just - include gthr-single.h. - - * config/alpha/vxworks.h, config/arm/vxarm.h, - config/i386/vxi386.h, config/i960/t-vxworks960, - config/i960/vx960-coff.h, config/i960/vx960.h, - config/m68k/t-vxworks68, config/m68k/vxm68k.h, - config/mips/vxworks.h, config/rs6000/vxppc.h, - config/sparc/t-vxsparc, config/sparc/t-vxsparc64, - config/sparc/vxsim.h, config/sparc/vxsparc.h, - config/sparc/vxsparc64.h: Delete files. - -2002-10-28 Jason Thorpe - - * config.gcc (*-*-netbsd*): Add NETBSD_ENABLE_PTHREADS to - tm_defines if pthreads are enabled. - * config/netbsd.h (LIB_SPEC): Only support the -pthread option - if NETBSD_ENABLE_PTHREADS is defined. - -2002-10-28 Kazu Hirata - - * ChangeLog.1: Fix typos. - * cse.c: Fix a comment typo. - * reload1.c: Likewise. - -2002-10-27 Hans-Peter Nilsson - - * fixinc/inclhack.def (libc1_G_va_list): Correct test_text. - * fixinc/tests/base/_G_config.h: New file. - -2002-10-27 Kazu Hirata - - * combine.c: Fix comment formatting. - * loop.c: Likewise. - * real.c: Likewise. - * regclass.c: Likewise. - * regmove.c: Likewise. - * regrename.c: Likewise. - * reg-stack.c: Likewise. - * reload1.c: Likewise. - * reload.c: Likewise. - * reload.h: Likewise. - * unroll.c: Likewise. - -2002-10-27 Kazu Hirata - - * reload1.c (reload): Fix a comment typo. - -Sun Oct 27 10:15:24 CET 2002 Jan Hubicka - - * linux64.h (DEFAULT_PCC_STRUCT_RETURN): Define. - -2002-10-27 Zdenek Dvorak - - * Makefile.in (dwarf2out.o): Add dependendcy on hashtab.h. - * dwarf2out.c: Include hashtab.h. - (is_main_source): New static variable. - (attr_checksum, die_checksum): Modified to handle die references. - (same_loc_p, same_dw_val_p, same_attr_p, same_die_p, same_die_p_wrap, - unmark_all_dies, htab_cu_hash, htab_cu_eq, htab_cu_del, check_duplicate_cu, - record_comdat_symbol_number): New static functions. - (output_comp_unit, compute_section_prefix, is_type_die, break_out_includes, - mark_dies, unmark_dies, dwarf2out_start_source_file): Modified. - * toplev.c (rest_of_decl_compilation): Call of dwarf2out_decl for type - declarations added. - -2002-10-26 Kazu Hirata - - * config/h8300/h8300.c (initial_offset): Change to - h8300_initial_elimination_offset. - * config/h8300/h8300.h (INITIAL_ELIMINATION_OFFSET): Use - h8300_initial_elimination_offset. - * config/h8300/h8300-protos.h: Update the prototype. - -2002-10-26 Hans-Peter Nilsson - - * config/mmix/mmix.h (LIBCALL_VALUE): Use - MMIX_RETURN_VALUE_REGNUM, not MMIX_OUTGOING_RETURN_VALUE_REGNUM. - (FUNCTION_VALUE_REGNO_P): Similar, but move code to... - * config/mmix/mmix.c (mmix_function_value_regno_p): New. - * config/mmix/mmix-protos.h: Remove needless ifdefs on TREE_CODE - and RTX_CODE. - (mmix_function_value_regno_p): Declare. - - * config/mmix/mmix.md ("fixuns_truncdfdi2"): Replace unsigned_fix, - invalid for floating point mode result, with fix. - -Fri Oct 25 00:04:21 2002 Alexandre Oliva - - * Makefile.in (GCC_FOR_TARGET): Add -L$(objdir)/../ld. - (STAGE2_FLAGS_TO_PASS): Pass GCC_FOR_TARGET. - (stage1_build): Likewise. - -2002-10-25 Mike Stump - - Fixes gcc.dg/warn-1.c. - * c-typeck.c (warn_for_assignment): Don't print argument number, - if zero. - -Sat Oct 26 01:44:46 CEST 2002 Jan Hubicka - - * toplev.c (dump_file_index): Add DFI_ce3. - (dump_file_info): Likewise. - (rest_of_compilation): Run first ifcvt pass before tracer. - -2002-10-25 Steve Ellcey - - * config/ia64/hpux.h (BITS_BIG_ENDIAN): Remove. - -2002-10-25 Richard Henderson - - * real.c (real_to_decimal): If the >1 tens reduction loop results - in a negative exponent, fall into the <1 pten computation. - -2002-10-25 Zack Weinberg - - PR middle-end/6994 - * c-objc-common.c (inline_forbidden_p): Can not inline - functions containing structures or unions containing VLAs. - * tree-inline.c (walk_tree): For all class 't' nodes, walk - TYPE_SIZE and TYPE_SIZE_UNIT. - (copy_tree_r): Copy types if they are variably modified. - -2002-10-25 Ulrich Weigand - - * config/s390/s390.md: Remove old-style peepholes. - -2002-10-25 Ulrich Weigand - - * config/s390/s390.c (s390_decompose_address): Do not range check the - displacement if base or index is the argument pointer register. - -2002-10-24 Hans-Peter Nilsson - - PR other/3337 - PR bootstrap/6763 - PR bootstrap/8122 - * fixinc/inclhack.def (libc1_G_va_list): New fix. - * fixinc/fixincl.x: Regenerate. - * config/i386/linux.h: Move MD_FALLBACK_FRAME_STATE_FOR inside - ifndef IN_LIBGCC2. Wrap it together with signal.h and - sys/ucontext.h inclusion in ifndef USE_GNULIBC_1. - * configure.in (gcc_AC_CHECK_DECLS): Check vasprintf too. - * config.in, configure: Regenerate. - -2002-10-24 Igor Shevlyakov - - * varasm.c (struct rtx_const): Array size 16 for V16QImode. - -2002-10-24 Richard Henderson - - * config/i386/i386.c (x86_output_mi_thunk): Fix x86_64 pic jump. - -2002-10-24 Kazu Hirata - - * config/h8300/h8300.c (initial_offset): Simplify by using - round_frame_size. - -2002-10-24 Marek Michalkiewicz - - * doc/install.texi (avr): Update required binutils version. - -2002-10-24 Theodore A. Roth - - * doc/install.texi: Point avr users at more up-to-date information. - -2002-10-24 Ulrich Weigand - - * config/s390/s390.md (movdi, movsi, movhi, movqi): Add peepholes2 - to pull operands out of the literal pool where possible. - -2002-10-24 Denis Chertykov - - * config/avr/avr.c (init_cumulative_args): Test fntype for zero. - -2002-10-24 Steve Ellcey - - * expr.c (convert_move): If unsignedp is less then zero there - is no equivalent code. - -2002-10-24 Zack Weinberg - - * tree.def: Delete mention of nonexistent ARRAY_TYPE fields. - -2002-10-24 Ulrich Weigand - - * config/s390/s390.h: Rework comments; re-sort target macro definitions - according to the sequence they are defined in the manual. - (POINTER_BOUNDARY): Remove. - -2002-10-24 Kazu Hirata - - * config/h8300/h8300.c (round_frame_size): Replace 8 with - BITS_PER_UNIT. - -2002-10-24 Kazu Hirata - - * config/h8300/h8300.h (EIGHTBIT_CONSTANT_ADDRESS_P): Make it - 64-bit safe. - (TINY_CONSTANT_ADDRESS_P): Likewise. - -2002-10-24 Richard Henderson - - * config/ia64/ia64.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): True. - (ia64_output_mi_thunk): Rewrite to use rtl, and to handle the - vcall offset. - -2002-10-24 Richard Henderson - - PR opt/7944 - * reload.c (find_reloads_toplev): Mode of X is not important - when simplifying subregs of constants. - -2002-10-24 Richard Sandiford - - * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Add - MIPS_MARCH_CONTROLS_SOFT_FLOAT=1 to $tm_defines. - * config/mips/mips.c (MIPS_MARCH_CONTROLS_SOFT_FLOAT): Default to 0. - (override_options): Base default setting of MASK_SOFT_FLOAT on -march - if MIPS_MARCH_CONTROLS_SOFT_FLOAT. - -2002-10-24 Richard Sandiford - - * optabs.c (expand_binop): Don't reuse the shift target in the - middle of shift sequences. - -Wed Oct 23 22:48:44 CEST 2002 Jan Hubicka - - * i386.md (abs splitters): Do not produce nested subregs. - -Wed Oct 23 12:42:32 CEST 2002 Jan Hubicka - - * i386.md (movti_rex64): Fix constraints. - -Wed Oct 23 12:01:21 CEST 2002 Jan Hubicka - - * i386.md (abssf,absdf): Use vector operands for SSE - (abssf2_ifs, absdf2_ifs, absdf2_ifs_rex64 and splitters): Update for - vector operand. - -2002-10-23 Ziemowit Laski - - * objc/objc-act.c (get_static_reference): Remove unneeded - TYPE_BINFO initialization. - (get_object-reference): Likewise. - (build_constructor): Tighten precondition check. - (finish_message_expr): Likewise. - -2002-10-23 Jakub Jelinek - - * config/i386/i386.c (local_symbolic_operand): Move LABEL_REF test - after CONST test. - -2002-10-23 Steve Ellcey - - * config/ia64/ia64.c (hfa_element_mode): Don't allow 128 bit floats - in HFAs. - -2002-10-23 Richard Henderson - - * config/alpha/alpha.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): True. - (alpha_output_mi_thunk_osf): Handle vcall_offset. - -2002-10-23 Zack Weinberg - - * langhooks.h (struct lang_hooks_for_tree_inlining): Add - var_mod_type_p. - * langhooks-def.h: Default for tree_inlining.var_mod_type_p is - hook_tree_bool_false. - - * tree.c (variably_modified_type_p): Moved here from - cp/tree.c. Use lang_hooks.tree_inlining.var_mod_type_p for - language-specific cases. Due to this, must weaken some 'if - and only if' checks to merely 'if'. - * tree.h: Prototype variably_modified_type_p. - - * tree-inline.c (walk_tree): #undef WALK_SUBTREE_TAIL at end. - -2002-10-23 Ulrich Weigand - - * config/s390/linux.h (CC1_SPEC, CC1PLUS_SPEC): Remove. - * config/s390/s390.c (optimization_options): Disable -fcaller-saves. - - * config/s390/s390-protos.h (fp_operand): Remove. - * config/s390/s390.c (fp_operand): Remove. - * config/s390/s390.md ("movdi"): Replace fp_operand by FP_REG_P. - ("*movdi_lhi", "*movdi_lli", "*movdi_larl"): Likewise. - ("movsi", "*movsi_lhi", "*movsi_lli"): Likewise. - (movdi_31, movdf_31 splitters): Likewise. - - * config/s390/s390.h (IEEE_FLOAT): Remove. - (TARGET_FLOAT_FORMAT): Define in terms of TARGET_IEEE_FLOAT. - (INT_REGNO_P): Rename to ... - (GENERAL_REGNO_P): ... this. - (FLOAT_REGNO_P): Rename to ... - (FP_REGNO_P): ... this. - (ADDR_REGNO_P): New macro. - (GENERAL_REG_P, ADDR_REG_P, FP_REG_P, CC_REG_P): New macros. - (REGNO_OK_FOR_DATA_P, REGNO_OK_FOR_FP_P): Remove. - (DATA_REG_P, FP_REG_P, ADDRESS_REG_P): Likewise. - (HARD_REGNO_NREGS): Adapt to macro renaming. - (HARD_REGNO_MODE_OK): Likewise. - -2002-10-23 David Edelsohn - Geoff Keating - - * config/rs6000/rs6000.c (rs6000_register_move_cost): New function. - (rs6000_memory_move_cost): New function. - * config/rs6000/rs6000-protos.h: Declare them. - * config/rs6000/rs6000.h: Use them. - -2002-10-23 Ulrich Weigand - - * libgcc2.c (__udiv_w_sdiv): Use attribute ((always_inline)) when - inlining it into other libgcc2 routines. - (__udivmoddi4): Likewise. - -2002-10-22 Nathanael Nerode - - * doc/sourcebuild.texi (Test Suites): Improve. - -2002-10-22 Stan Shebs - - * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Add missing - case for Darwin. - -2002-10-22 Jim Wilson - - * config/i386/i386.md (subdi3_1): Add call to ix86_binary_operator_ok. - -Wed Oct 23 01:52:36 CEST 2002 Jan Hubicka - - PR other/8289 - * xmmintrin.h: Add const to the argument of loads. - - * i386.md (pushv2di): New pattern. - PR target/6890 - * xmmintrin.h (_MM_TRANSPOSE4_PS): New. - -2002-10-22 Richard Henderson - - * target.h (gcc_target.asm_out): Merge output_mi_thunk and - output_mi_vcall_thunk into a single hook. Add can_output_mi_thunk. - * target-def.h (TARGET_ASM_OUTPUT_MI_THUNK): Don't conditionalize. - (TARGET_ASM_OUTPUT_MI_VCALL_THUNK): Remove. - (TARGET_ASM_CAN_OUTPUT_MI_THUNK): New. - (TARGET_ASM_OUT): Update. - * hooks.c (hook_bool_tree_hwi_hwi_tree_false): New. - (hook_bool_tree_hwi_hwi_tree_true): New. - (default_can_output_mi_thunk_no_vcall): New. - * hooks.h: Declare them. - * system.h (ASM_OUTPUT_MI_THUNK): Poison. - - * config/alpha/alpha.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): New. - (alpha_output_mi_thunk_osf): Add VCALL_OFFSET parameter. - * config/arm/arm.c, config/cris/cris.c, config/frv/frv.c, - config/i960/i960.c, config/ia64/ia64.c, config/m68k/m68k.c, - config/mmix/mmix.c, config/pa/pa.c, config/sparc/sparc.c, - config/stormy16/stormy16.c: Similarly. - - * config/i386/i386.c (x86_output_mi_thunk): Merge vcall_offset code. - Handle 64-bit properly. Streamline. - (x86_output_mi_vcall_thunk): Remove. - (x86_this_parameter): Rename from ia32_this_parameter; handle 64-bit. - (x86_can_output_mi_thunk): New. - (TARGET_ASM_OUTPUT_MI_VCALL_THUNK): Remove. - (TARGET_ASM_CAN_OUTPUT_MI_THUNK): New. - (override_options): Don't zap targetm.asm_out.output_mi_vcall_thunk. - - * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Rename from - output_mi_thunk; make static; always use function_section. - (TARGET_ASM_OUTPUT_MI_THUNK): New. - (TARGET_ASM_CAN_OUTPUT_MI_THUNK): New. - (rs6000_ra_ever_killed): Test no_new_pseudos not - targetm.asm_out.output_mi_thunk in conjunction with thunks. - * config/rs6000/rs6000-protos.h: Update. - * config/rs6000/sysv4.h (TARGET_ASM_OUTPUT_MI_THUNK): Remove. - * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Don't call - xcoffout_declare_function when using rs6000_output_mi_thunk. - - * config/s390/s390.c (s390_output_mi_thunk): Rename from - s390_output_mi_vcall_thunk. - (TARGET_ASM_OUTPUT_MI_THUNK): Remove. - (TARGET_ASM_CAN_OUTPUT_MI_THUNK): New. - - * config/vax/vax.c (vax_output_mi_thunk): Static; add vcall_offset. - (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): New. - * config/vax/vax-protos.h: Update. - * config/vax/vax.h (ASM_OUTPUT_MI_THUNK): Remove. - -Wed Oct 23 00:33:11 CEST 2002 Jan Hubicka - - * i386.c (standard_sse_constant_p): Accept vector and integer zeros too. - * i386.h (EXTRA_CONSTRAINT): Recognize 'C' - * i386.md (movti_internal): Use 'C' - - * xmmintrin.h (_mm_cmplt_epi*): New. - -2002-10-22 Ulrich Weigand - - * config/s390/s390.md ("*movdi_64"): Fix op_type attribute. - ("*movdf_64"): Likewise. - ("*lshrdi3_64"): Likewise. - ("blockage"): Add length attribute. - ("lit"): Likewise. - -Tue Oct 22 23:51:34 CEST 2002 Jan Hubicka - - * i386.md: FIx typo. - (sse2_cvtsi2sd, sse2_pslrdq): Fix template. - (sse2_umulv2siv2di3): Fix predicate. - (sse2_psadbw, ashrv8hi3, ashrv4si3, lshrv8hi3 lshrv4si3, - lshrv2di3, ashlv8hi3, ashlv4si3, ashlv2di3): Likewise. - * xmmintrin.h (_mm_mul_epu16): Rename to... - (_mm_mul_epu32): This one. - (_mm_cvtsi32_si128, _mm_cvtsi128_si32): New. - - (contains_128bit_aligned_vector_p): Undo accidental checkin. - -2002-10-22 Eric Christopher - - * config/sparc/sparc.h: Add #error. - -2002-10-22 Ulrich Weigand - - * config.gcc [s390-*-linux]: Remove s390/t-linux from tmake_file. - [s390x-*-linux*]: Likewise. - * config/s390/t-linux: Remove. - * config/s390/s390.h: Include fixdfdi.h when building libgcc2. - -Tue Oct 22 19:07:03 CEST 2002 Jan Hubicka - - * i386.c (builtin_description): Add IX86_BUILTIN_PUNPCKHQDQ128. - (ix86_expand_builtin): Fix MASKMOVDQU expasion. - * i386.h (ix86_builtins): Add IX86_BUILTIN_PUNPCKHQDQ128. - * i386.md (mmx_punpck?dq): Simplify. - (sse2_pubpcklqdq): Fix. - (sse2_pubpckhqdq): New. - * xmmintrin.h (_mm_unpackhi_epi32): New. - - * xmmintrin.h (_mm_cvt*, _mm_stream_pd): Fix prototypes. - (_mm_shufflehi_epi16, _mm_shufflelo_epi16): Fix typo. - -2002-10-22 Nathan Sidwell - - PR c++/7209 - * fold_const.c (fold_binary_op_with_conditional_arg): Always - build compound_expr if we used save_expr. - -2002-10-22 Alan Modra - - * output.h (SECTION_NOTYPE): Define. - * varasm.c (default_section_type_flags_1): Set SECTION_NOTYPE for - init array sections. - (default_elf_asm_named_section): Mind SECTION_NOTYPE. - * config/arm/arm.c (arm_elf_asm_named_section): Likewise. Also - merge TLS support. - -2002-10-21 Richard Henderson - - * config/i386/i386.c (ix86_function_ok_for_sibcall): Look at - the function type, not the return type. - -2002-10-21 Richard Henderson - - * real.c (sticky_rshift_significand): Return inexact, don't - or it in immediately. - (sub_significands): Accept incomming carry. - (div_significands, rtd_divmod): Update for sub_significands change. - (round_for_format): Update for sticky_rshift_significand change. - (do_add): Don't involve the inexact bit in addition, do give the - inexact bit as the subtraction carry-in. - (encode_internal, decode_internal, real_internal_format): New. - * real.h (real_internal_format): Declare. - -2002-10-21 Ulrich Weigand - - * libgcc2.c: Fix __udiv_w_sdiv breakage on platforms that - don't define sdiv_qrnnd. - -2002-10-21 Kazu Hirata - - * config/h8300/h8300.h (EIGHTBIT_CONSTANT_ADDRESS_P): Simplify - using IN_RANGE. - (TINY_CONSTANT_ADDRESS_P): Likewise. - -Tue Oct 22 00:04:20 CEST 2002 Jan Hubicka - - * i386.c (builtin_description): Add punpcklqdq and movdq2q - (ix86_init_mmx_sse_builtins): Add v2di_ftype_void, di_ftype_v2di, - v16qi_ftype_pchar, void_ftype_pchar_v16qi, v4si_ftype_pchar, - void_ftype_pchar_v4si; Initialize __builtin_ia32_movdq2q, - __builtin_ia32_loaddqa, __builtin_ia32_loaddqu, __builtin_ia32_loadd - __builtin_ia32_storedqa, __builtin_ia32_storedqu, __builtin_ia32_stored - __builtin_ia32_setzero128. - (ix86_expand_builtin): Handle IX86_BUILTIN_CLRTI, IX86_BUILTIN_LOADDQA, - IX86_BUILTIN_LOADDQU, IX86_BUILTIN_LOADD, IX86_BUILTIN_STOREDQA, - IX86_BUILTIN_STOREDQU, IX86_BUILTIN_STORED, Ix86_BUILTIN_MOVQ. - * i386.h (ix86_builtins): Add IX86_BUILTIN_LOADDQA, IX86_BUILTIN_LOADDQU, - IX86_BUILTIN_STOREDQA, IX86_BUILTIN_STOREDQU, IX86_BUILTIN_LOADD, - IX86_BUILTIN_STORED, IX86_BUILTIN_CLRTI, IX86_BUILTIN_MOVDQ2Q, - IX86_BUILTIN_PUNPCKLQDQ128, Ix86_BUILTIN_MOVQ. - * i386.md (sse2_punpcklqdq, sse2_movqsse2_loadd, sse2_stored, - sse2_movq): New patterns. - (sse2_movdqa, sse2_movdqu, sse2_movdq2q): Fix. - * xmmintrin.h (_mm_load_si128, _mm_loadu_si128, _mm_loadl_epi64, - _mm_store_si128, _mm_storeu_si128, _mm_storel_epi64, - _mm_setzero_si128, _mm_set_epi64, _mm_set_epi32, _mm_set_epi16, - _mm_set_epi8, _mm_set1_epi64, _mm_set1_epi32, _mm_set1_epi16, - _mm_set1_epi8, _mm_setr_epi64, _mm_setr_epi32, _mm_setr_epi16, - _mm_setr_epi8, _mm_unpacklo_epi64,_mm_set_moveq): New functions. - (_mm_insert_epi16): Fix. - -2002-10-21 Dale Johannesen - - * config/rs6000/rs6000.c (rs6000_reverse_condition): Handle - unsafe math reversals correctly for RTL generation. - (output_cbranch): Replace rs6000_reverse_condition call - by its former definition. - -2002-10-21 Jakub Jelinek - - * config/i386/i386.c (x86_64_sign_extended_value): Add allow_rip - argument. In CM_SMALL_PIC model consider SYMBOL_REFs binding locally or - from constant pool or LABEL_REFs as sign extended if allow_rip. - Change all +-1GB limits to +-16MB. - (x86_64_general_operand, x86_64_szext_general_operand, - x86_64_nonmemory_operand, x86_64_movabs_operand, - x86_64_szext_nonmemory_operand, x86_64_immediate_operand, - legitimate_address_p, ix86_expand_int_movcc): Update callers. - (local_symbolic_operand): Don't allow offsets bigger than +-16MB - in CM_SMALL_PIC model. - (legitimate_pic_address_disp_p): Don't check offsets before - calling local_symbolic_operand. - (legitimize_pic_address): Force offsets bigger than +-16MB into - register. - * config/i386/i386.h (EXTRA_CONSTRAINT, CONST_COSTS): Likewise. - * config/i386/i386-protos.h (x86_64_sign_extended_value): Update - prototype. - - * configure.in: Test for @GOTNTPOFF and @INDNTPOFF on IA-32 too. - Add x86-64 test. Set tls_first_minor to 14 on IA-32 and x86-64. - * configure: Rebuilt. - * config/i386/i386.c (x86_64_sign_extended_value): Don't allow TLS - SYMBOL_REFs unless enclosed in UNSPEC. Handle UNSPEC_DTPOFF, - UNSPEC_GOTNTPOFF and UNSPEC_NTPOFF. - (legitimate_address_p): Allow foo@dtpoff(base) even on TARGET_64BIT - -fpic. - (ix86_encode_section_info): Don't ever generate TLSGD or TLSLD for - non-pic code if TARGET_64BIT. - (legitimize_address): Generate 64-bit TLS sequences. - (output_pic_addr_const): Support x86-64 TLS operators. - (i386_output_dwarf_dtprel): Output 64-bit DTPOFF as .long f@DTPOFF, 0. - (print_operand_address): Use %fs instead of %gs on TARGET_64BIT. - Don't append (%rip) in 64-bit TLSGD and TLSLD sequences. - (output_addr_const_extra): Support x86-64 TLS operators. - (maybe_get_pool_constant): Handle TARGET_64BIT -fpic. - (ix86_tls_get_addr): Use __tls_get_addr on TARGET_64BIT - unconditionally. - * config/i386/i386.md (*tls_global_dynamic_gnu): Renamed to... - (*tls_global_dynamic_32_gnu): ..., add !TARGET_64BIT. - (*tls_global_dynamic_sun): Renamed to... - (*tls_global_dynamic_32_sun): ..., add !TARGET_64BIT. - (tls_global_dynamic): Renamed to... - (tls_global_dynamic_32): ... this. - (tls_global_dynamic_64, *tls_global_dynamic_64): New. - (*tls_local_dynamic_base_dynamic_gnu): Renamed to... - (*tls_local_dynamic_base_dynamic_32_gnu): ..., add !TARGET_64BIT. - (*tls_local_dynamic_base_dynamic_sun): Renamed to... - (*tls_local_dynamic_base_dynamic_32_sun): ..., add !TARGET_64BIT. - (tls_local_dynamic_base_dynamic): Renamed to... - (tls_local_dynamic_base_dynamic_32): ... this. - (tls_local_dynamic_base_dynamic_64, - *tls_local_dynamic_base_dynamic_64): New. - (*tls_local_dynamic_once): Renamed to... - (*tls_local_dynamic_32_once): ... this. - -2002-10-21 Ulrich Weigand - - * libgcc2.c: Inline __udiv_w_sdiv when compiling __udivdi3, - __divdi3, __umoddi3, or __moddi3. - -2002-10-21 Ulrich Weigand - - * c-opts.c (missing_arg): Use cl_options[opt_index].opt_code - instead of just opt_index as switch expression. - - * calls.c (store_one_arg): Change type of 'excess_align' - to unsigned int. - - * profile.c (output_gcov_string): Change type of 'temp' - to size_t. - -2002-10-21 Ulrich Weigand - - * config/s390/fixdfdi.h (__fixunsdfdi, __fixdfdi): Add prototypes. - (__fixunssfdi, __fixsfdi): Likewise. - * config/s390/s390.c (s390_single_hi): Initialize 'value'. - (s390_single_qi): Likewise. - (s390_emit_epilogue): Initialize 'offset'. Remove signed vs. - unsigned comparison warning. - (s390_return_addr_rtx): New function. - * config/s390/s390-protos.h (s390_return_addr_rtx): Declare it. - * config/s390/s390.h (RETURN_ADDR_RTX): Use it. - (HARD_REGNO_MODE_OK): Rewrite condition to silence warnings. - -2002-10-21 Ulrich Weigand - - * config/s390/s390.c (s390_output_mi_vcall_thunk): New function. - (TARGET_ASM_OUTPUT_MI_VCALL_THUNK): Define target hook. - (s390_output_mi_thunk): Remove. - (TARGET_ASM_OUTPUT_MI_THUNK): Remove. - -2002-10-21 Kazu Hirata - - * config/h8300/h8300.h (N_REG_CLASSES): Parenthesize. - -2002-10-20 Zack Weinberg - - * config/i386/i386.c (ix86_function_ok_for_sibcall): Fix an - inverted test in the conditional determining the possibility - of sibcalls in PIC mode. - -2002-10-20 Richard Henderson - - * target.h (struct gcc_target): Line wrap. - - * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Static. - (TARGET_ASM_OUTPUT_MI_THUNK): Define here... - * config/alpha/alpha.h: ... not here. - * config/alpha/alpha-protos.h: Update. - - * config/arm/arm.c, config/arm/arm.h, config/arm/arm-protos.h - config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.h, - config/frv/frv-protos.h, config/frv/frv.c, config/frv/frv.h, - config/i386/i386-protos.h, config/i386/i386.c, config/i386/openbsd.h, - config/i386/unix.h, config/i960/i960-protos.h, config/i960/i960.c, - config/i960/i960.h, config/ia64/ia64-protos.h, config/ia64/ia64.c, - config/ia64/ia64.h, config/m68k/linux.h, config/m68k/m68k-protos.h, - config/m68k/m68k.c, config/m68k/netbsd-elf.h, config/m68k/openbsd.h, - config/mmix/mmix-protos.h, config/mmix/mmix.c, config/mmix/mmix.h, - config/pa/pa-protos.h, config/pa/pa.c, config/pa/pa.h, - config/s390/s390-protos.h, config/s390/s390.c, config/s390/s390.h, - config/sparc/openbsd.h, config/sparc/sparc-protos.h, - config/sparc/sparc.c, config/sparc/sparc.h, - config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c, - config/stormy16/stormy16.h: Similarly. - - * config/m68k/m68k.c (m68k_output_mi_thunk): Replicate mnemonic - selection logic from call patterns. - -2002-10-20 Mark Mitchell - - * config/m68k/m68k.c (m68k_output_mi_thunk): Fix typo. - -2002-10-20 Zdenek Dvorak - - PR other/8202 - * i386.c (ix86_init_mmx_sse_builtins, ix86_expand_builtin): Define and - expand __builtin_ia32_pslldqi128 and __builtin_ia32_psrldqi128. - * i386.h (IX86_BUILTIN_PSLLDQI128, IX86_BUILTIN_PSRLDQI128): New. - * xmmintrin.h (_mm_srli_si128, _mm_slli_si128): New. - -2002-10-20 Roger Sayle - - PR c/761 - * toplev.c (flag_unsafe_profile_arcs): Remove. - (flag_bounded_pointers): Remove. - (flag_bounds_check): Correct comments. - (lang_independent_options): Remove -funsafe-profile-arcs and - -fbounded-pointers. Correct -fbounds-check comments. - - * flags.h: Correct flag_schedule_interblock comments. - (flag_bounded_pointers): Remove prototype. - (flag_bounds_check): Correct comments. - - * c-opts.c (c_common_init_options): No need to mark - flag_bounds_check as unspecified. - (c_common_post_options): And no need to set it from - flag_bounded_pointers if its still unspecified. - - * doc/invoke.texi: Fix some overfull hboxes in "make dvi". - Document --version, -feliminate-dwarf-2-dups, -fno-sched-interblock, - -fno-sched-spec, -fsched-spec-load, -fsched-spec-load-dangerous, - -fsched-verbose=n, -fno-branch-count-reg and -fbounds-check. - -Sat Oct 19 22:02:28 2002 Alexandre Oliva - Angela Marie Thomas - Brendan Kehoe - Nick Clifton - Andrew Haley - - * 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 - if SYSTEM_HEADER_DIR does not exist and it's not the default - sys-include directory. - (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. - -2002-10-19 Kaveh R. Ghazi - Mark Mitchell - - * alpha-protos.h (alpha_output_mi_thunk_osf): Update signature to - match target.h. - * arm-protos.h, arm.c (arm_output_mi_thunk): Likewise. - * cris-protos.h, cris.c (cris_asm_output_mi_thunk): Likewise. - * frv-protos.h, frv.c (frv_asm_output_mi_thunk): Likewise. - * i386-protos.h, i386.c (x86_output_mi_vcall_thunk, - x86_output_mi_thunk): Likewise. - * i960-protos.h, i960.c (i960_output_mi_thunk): Likewise. - * ia64-protos.h, ia64.c (ia64_output_mi_thunk): Likewise. - * m68k-protos.h, m68k.c (m68k_output_mi_thunk): Likewise. - * mmix-protos.h, mmix.c (mmix_asm_output_mi_thunk): Likewise. - * rs6000-protos.h, rs6000.c (output_mi_thunk): Likewise. - * s390-protos.h, s390.c (s390_output_mi_thunk): Likewise. - * stormy16-protos.h, stormy16.c (xstormy16_asm_output_mi_thunk): - Likewise. - * vax-protos.h, vax.c (vax_output_mi_thunk): Likewise. - - * target.h (gcc_target): Update output_mi_thunk and - output_mi_vcall_thunk to take a HOST_WIDE_INT delta and - vcall_index. - - * config/alpha/alpha.c: Replace ASM_OUTPUT_MI_THUNK with - TARGET_ASM_OUTPUT_MI_THUNK in comments. - * config/alpha/vms.h (ASM_OUTPUT_MI_THUNK): Don't #undef it. - (TARGET_ASM_OUTPUT_MI_THUNK): #undef it. - * config/frv/frv.h (DEFAULT_VTABLE_THUNKS): Remove definition. - * config/i386/i386-protos.h (x86_output_mi_vcall_thunk): Update - signature. - * config/i386/i386.c (x86_output_mi_vcall_thunk): Likewise. - * config/i386/openbsd.h: Replace ASM_OUTPUT_MI_THUNK with - TARGET_ASM_OUTPUT_MI_THUNK in comments. - * config/i960/i960.h (ASM_OUTPUT_MI_THUNK): Don't define. - (TARGET_ASM_OUTPUT_MI_THUNK): Do define. - * config/m68k/openbsd.h: Replace ASM_OUTPUT_MI_THUNK with - TARGET_ASM_OUTPUT_MI_THUNK in comments. - * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Remove #ifdef - ASM_OUTPUT_MI_THUNK and replace with check of targetm. - - * doc/tm.texi (TARGET_ASM_OUTPUT_MI_THUNK): Update signature. - (TARGET_ASM_OUTPU_MI_VCALL_THUNK): Likewise. - -2002-10-19 Brad Lucier - - * real.c (do_add): Fix 0+0 sign corner case. - (do_divide): Fix Inf/0 corner case. - -Sun Oct 20 00:31:31 CEST 2002 Jan Hubicka - - * i386.c (classify_argument): Pass MMX arguments in memory - (ix86_expand_builtin): Expand proper address mode for cflush. - * i386.md (movdqa): Fix typo. - (sse2_cflush): Accept DImode addresses. - - * xmmintrin.h (_mm_sqrt_sd): Accept two arguments. - (_mm_max_sd): Fix pasto. - (_mm_storeh_pd, _mm_storel_pd): Fix. - - * i386.c (bdesc_comi): Fix to match specification. - (ix86_expand_sse_comi): Emit the comparison properly. - * i386.md (sse_comi, sse2_comi, sse_ucomi, sse2_ucomi): - Do not use comparison operator. - (vnmaskcmp): Fix template. - - * xmmintrin.h (_mm_cvtps_pi16): Fix. - -2002-10-19 Sebastian Pop - - * dependence.c : Removed. - * Makefile.in : Remove dependence.o. - -Sat Oct 19 10:46:52 CEST 2002 Jan Hubicka - - * mmintrin.h (__m64): typedef it to v2si. - (_mm_cvtsi32_si64, _mm_cvtsi32_si64_mm_sll_pi16, - _mm_sll_pi32, _mm_sll_pi64, _mm_slli_pi64, _mm_sra_pi16, - _mm_sra_pi32, _mm_srl_pi16, _mm_srl_pi32, _mm_srl_pi64, - _mm_srli_pi64, _mm_and_si64, _mm_andnot_si64, - _mm_or_si64, _mm_xor_si64): Add neccesary casts. - * xmmintrin.h (_mm_setzero_si64): Likewise. - - * i386.h (ALIGN_MODE_128): Update comment; add missing modes - (SSE_REG_MODE_P, MMX_REG_MODE_P): New macros. - - PR target/7693 - Patch by Shawn Wagner - * mmintrin.h: Replace pi64 by si64. - -2002-10-18 David Edelsohn - - * rs6000.md (movdf_hardfloat32): Order alternatives consistently. - Use length of 4 not *. - (movdf_hardfloat64): Same. Support DFmode moves to/from CTR/LR. - (movdf_softfloat64): Likewise. - (movdi_internal32): Use length of 4 not *. - (movti_power): Same. - (ctrsi, ctrdi): Same. - -2002-10-18 Zack Weinberg - - * c-decl.c (start_decl): Point users of the old initialized- - typedef extension at __typeof__. - -2002-10-18 Richard Henderson - - * real.c (cmp_significand_0, rtd_divmod, ten_to_mptwo): New. - (real_to_decimal): Re-implement using the logic from the - gcc 3.2 etoasc. Comment heavily. - (div_significands): Simplify loop startup and comparison logic. - -2002-10-18 Mark Mitchell - - * target-def.h (TARGET_ASM_OUTPUT_MI_THUNK): Default to NULL. - (TARGET_ASM_OUTPUT_MI_VCALL_THUNK): Likewise. - (TARGET_ASM_OUT): Add them. - * target.h (asm_out): Add output_mi_thunk and - output_mi_vcall_thunk. - * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Rename to ... - (TARGET_ASM_OUTPUT_MI_THUNK): ... this. - * config/arm/arm-protos.h (arm_output_mi_thunk): Declare. - * config/arm/arm.c (arm_output_mi_thunk): Define. - * config/arm/arm.h (ASM_OUTPUT_MI_THUNK): Rename to ... - (TARGET_ASM_OUTPUT_MI_THUNK): ... this. - * config/cris/cris.h (ASM_OUTPUT_MI_THUNK): Rename to ... - (TARGET_ASM_OUTPUT_MI_THUNK): ... this. - * config/frv/frv.h (ASM_OUTPUT_MI_THUNK): Rename to ... - (TARGET_ASM_OUTPUT_MI_THUNK): ... this. - * config/i386/i386-protos.h (x86_output_mi_thunk): Adjust - prototype. - (x86_output_mi_vcall_thunk): Declare. - * config/i386/i386.c (override_options): Clear - output_mi_vcall_thunk in 64-bit mode. - (ix86_fntype_regparm): New function. - (ix86_return_pops_args): Use it. - (ia32_this_parameter): New function. - (x86_output_mi_vcall_thunk): New function. - (x86_output_mi_thunk): Use it - * config/i386/unix.h (TARGET_ASM_OUTPUT_MI_THUNK): Adjust. - (TARGET_ASM_OUTPUT_MI_VCALL_THUNK): Define. - * config/i960/i960-protos.h (i960_output_mi_thunk): Declare. - * config/i960/i960.c (i960_output_mi_thunk): New function. - * config/i960/i960.h (ASM_OUTPUT_MI_THUNK): Adjust. - * config/ia64/ia64-protos.h (ia64_output_mi_thunk): Declare. - * config/ia64/ia64.c (ia64_output_mi_thunk): Define. - * config/ia64/ia64.h (ASM_OUTPUT_MI_THUNK): Rename to ... - (TARGET_ASM_OUTPUT_MI_THUNK): ... this. - * config/m68k/m68k-protos.h (m68k_output_mi_thunk): New function. - * config/m68k/linux.h (ASM_OUTPUT_MI_THUNK): Rename to ... - (TARGET_ASM_OUTPUT_MI_THUNK): ... this. - * config/m68k/netbsd-elf.h (ASM_OUTPUT_MI_THUNK): Rename to ... - (TARGET_ASM_OUTPUT_MI_THUNK): ... this. - * config/mmix/mmix.h (ASM_OUTPUT_MI_THUNK): Rename to ... - (TARGET_ASM_OUTPUT_MI_THUNK): ... this. - * config/pa/pa.h (ASM_OUTPUT_MI_THUNK): Rename to ... - (TARGET_ASM_OUTPUT_MI_THUNK): ... this. - * config/rs6000/sysv4.h (ASM_OUTPUT_MI_THUNK): Rename to ... - (TARGET_ASM_OUTPUT_MI_THUNK): ... this. - * config/s390/s390-protos.h (s390_output_mi_thunk): Declare. - * config/s390/s390.c (s390_output_mi_thunk): Define. - * config/s390/s390.h (ASM_OUTPUT_MI_THUNK): Rename to ... - (TARGET_ASM_OUTPUT_MI_THUNK): ... this. - * config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): Rename to ... - (TARGET_ASM_OUTPUT_MI_THUNK): ... this. - * config/stormy16/stormy16.h (ASM_OUTPUT_MI_THUNK): Rename to ... - (TARGET_ASM_OUTPUT_MI_THUNK): ... this. - * config/vax/vax-protos.h (vax_output_mi_thunk): Declare. - * config/vax/vax.c (vax_output_mi_thunk): Define. - * config/vax/vax.h (ASM_OUTPUT_MI_THUNK): Rename to ... - (TARGET_ASM_OUTPUT_MI_THUNK): ... this. - * doc/tm.texi: Adjust documentation. - -2002-10-18 Jason Thorpe - - * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): Define - __enable_execute_stack function. - * config/alpha/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Define - as NETBSD_ENABLE_EXECUTE_STACK. - * config/i386/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Ditto. - * config/i386/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Ditto. - * config/i386/netbsd64.h (TRANSFER_FROM_TRAMPOLINE): Ditto. - * config/sparc/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Ditto. - * config/sparc/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Ditto. - -2002-10-18 Jason Thorpe - - * config/i386/i386.c (x86_initialize_trampoline): Emit a call - to __enable_execute_stack with the address of the trampoline - if TRANSFER_FROM_TRAMPOLINE is defined. - * config/i386/i386.h (TARGET_64BIT): Expand to a compile-time - constant if building libgcc2. - -Thu Oct 17 17:40:05 CEST 2002 Jan Hubicka - - * i386.c (pentium4_cost): Fix according to Intel recommendations. - (ix86_memory_move_cost): Fix for 64bit compilation. - -2002-10-17 Roger Sayle - - * doc/c-tree.texi: Update description of COND_EXPR tree nodes. - -2002-10-17 Geoffrey Keating - - * config/rs6000/rs6000.h (HARD_REGNO_MODE_OK): Allow arbitrary modes - in CTR/LR/MQ. - * config/rs6000/rs6000.md (movcc_internal1): Support CCmode moves - to/from CTR/LR/MQ. - (movsf_hardfloat): Support SFmode moves to/from CTR/LR/MQ. - (movsf_softfloat): Likewise. - -2002-10-17 Janis Johnson - - * Makefile.in (site.exp): Add ALT_CXX_UNDER_TEST and COMPAT_OPTIONS. - -2002-10-17 Jason Thorpe - - * config/alpha/alpha.c (alpha_initialize_trampoline): Use - tramp, not addr, to pass the trampoline address to - __enable_execute_stack. - -Thu Oct 17 18:40:47 CEST 2002 Jan Hubicka - - * mmintrin.h: Guard by __MMX__ - * xmmintrin.h: Guard by __SSE__ - - PR other/8062 - * xmmintrin.h (_MM_SHUFFLE2): New macro. - (_mm_load*_?d): New functions. - (_mm_set*_?d): New functions. - (_mm_store*_?d): New functions. - -Wed Oct 16 15:01:29 CEST 2002 Jan Hubicka - - Really commit patch announced at Oct 14 - PR c/7344 - * predict.c (can_predict_insn_p): New function. - (estimate_probability): Avoid unnecesary work. - (process_note_prediction): Likewise. - * toplev.c (rest_of_compilation): Account early branch prediction pass - as TV_BRANCH_PROB. - - PR other/8048 - Found by Ian Ollmann - * xmmintrin.h (_mm_shuffle_pd): Fix typo. - (_mm_load?_pd): Likewise. - (_mm_store?_pd): Likewise. - - PR target/7386 - * i386.c (builtin_description):Drop cmpg[te]s[sd]. - * xmmintrin.h (__mm_cmpg[te]_s[sd]): Rewrite using - swapped alternative. - - PR opt/7630 - * reload1.c (reload_inner_reg_of_subreg): New argument output; - (push_reload): Update call. - -2002-10-17 Richard Sandiford - - * config.gcc (mips*-*-*): Add OBJECT_FORMAT_ELF to $tm_defines - if using mips/elf.h or mips/elf64.h. - * config/mips/elf.h (OBJECT_FORMAT_ELF): Remove. - * config/mips/elf64.h (OBJECT_FORMAT_ELF): Remove. - -2002-10-16 Aldy Hernandez - - * config/rs6000/rs6000.c (function_arg): Set inner mode of V1DI to - SI. - -2002-10-16 Ulrich Weigand - - * config/s390/linux.h (ASM_DOUBLE, _ASM_OUTPUT_LONG): Remove. - (LPREFIX): Likewise. - (ASM_COMMENT_START, LOCAL_LABEL_PREFIX, ASM_FORMAT_PRIVATE_NAME, - ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT, - ASM_OUTPUT_ALIGN, ASM_OUTPUT_SKIP, ASM_OUTPUT_ALIGNED_BSS, - TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP, - GLOBAL_ASM_OP, ASM_OUTPUT_MI_THUNK): Move to s390.h. - - * config/s390/s390.h (ASM_COMMENT_START, LOCAL_LABEL_PREFIX, - ASM_FORMAT_PRIVATE_NAME, ASM_OUTPUT_ALIGN, ASM_OUTPUT_SKIP, - ASM_OUTPUT_ALIGNED_BSS, TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, - BSS_SECTION_ASM_OP): Move from linux.h. - (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Likewise. - Also, use ASM_GENERATE_INTERNAL_LABEL instead of LPREFIX. - - * config/s390/s390.c (s390_function_profiler): Use - ASM_GENERATE_INTERNAL_LABEL instead of LPREFIX. - -2002-10-15 Eric Christopher - - * stor-layout.c (layout_type): Call GET_MODE_BITSIZE once. - * java/parse.y (obtain_incomplete_type): Make pointer - ptr_mode. - -2002-10-15 Richard Henderson - - * real.c (real_to_decimal): Accept BUF_SIZE and CROP_TRAILING_ZEROS - as arguments. Bound DIGITS by the available buffer size. - (real_to_hexadecimal): Likewise. - * real.h (real_to_decimal, real_to_hexadecimal): Update prototypes. - (REAL_VALUE_TO_DECIMAL): Remove. - * c-common.c, c-pretty-print.c, print-rtl.c, print-tree.c, - sched-vis.c, config/arc/arc.c, config/c4x/c4x.c, config/fr30/fr30.c, - config/i370/i370.h, config/i386/i386.c, config/i960/i960.c, - config/ip2k/ip2k.c, config/m32r/m32r.c, config/m68hc11/m68hc11.c, - config/m68k/hp320.h, config/m68k/m68k.h, config/m68k/sun2o4.h, - config/m68k/sun3.h, config/mips/mips.c, config/ns32k/ns32k.c, - config/pdp11/pdp11.h, config/vax/vax.h: Update all callers to - use real_to_decimal directly, and with the proper arguments. - * doc/tm.texi (REAL_VALUE_TO_DECIMAL): Remove. - -2002-10-15 Jim Wilson - - * reload1.c (merge_assigned_reloads): After converting overlapping - reloads to RELOAD_OTHER, abort if there are now conflicting reloads. - - * config/i386/i386.md (adddi3_1): Add call to ix86_binary_operator_ok. - -Tue Oct 15 22:08:35 CEST 2002 Jan Hubicka - - * expr.c (do_tablejump): Fix typo in my previous commit. - -2002-10-15 Richard Sandiford - - * config/mips/vr.h (DRIVER_SELF_SPECS): Change % - - * config/s390/s390.c (s390_split_branches): Add return - value. Add parameters TEMP_REG and TEMP_USED. Use unspec 104. - - (find_base_register_in_addr): New function. - (find_base_register_ref): New function. - (replace_base_register_ref): New function. - - (struct constant_pool): Add members pool_insn, insns, and anchor. - Remove member last_insn. - (s390_start_pool): Initialize them. - (s390_end_pool): Emit pool placeholder insn. - (s390_add_pool_insn): New function. - (s390_find_pool): Use insns bitmap instead of addresses. - (s390_dump_pool): Replace placeholder insn. Emit anchor. - Replace unspec 104 by local-pool-relative references. - (s390_output_constant_pool): Output anchor label if required. - (s390_output_symbolic_const): Handle unspec 104 and 105. - (s390_add_pool): Remove, replace by ... - (s390_add_constant, s390_find_constant): ... these new functions. - (s390_add_anchor): New function. - - (s390_chunkify_pool): Delete, replace by ... - (s390_chunkify_start, s390_chunkify_finish, - s390_chunkify_cancel): ... these new functions. - (s390_optimize_prolog): Add parameter TEMP_REGNO. - Recompute register live data for special registers. - (s390_fixup_clobbered_return_reg): New function. - (s390_machine_dependent_reorg): Rewrite to use new - s390_chunkify_... routines. - - config/s390/s390.md ("reload_base"): Rename to ... - ("reload_base_31"): ... this. - ("reload_base_64"): New insn. - ("reload_base2"): Remove. - ("reload_anchor"): New insn. - ("pool"): New insn. - - s390.c (s390_pool_overflow): Remove. - s390.h (s390_pool_overflow): Likewise. - s390.md ("cjump", "icjump", "doloop_si"): Remove s390_pool_overflow. - -Tue Oct 15 16:51:04 2002 J"orn Rennecke - - * sh.md (movv8qi_i+2): Don't split if source is -1. - -2002-10-15 Janis Johnson - - * doc/install.texi: Formatting changes for conformance to HTML 4.01. - -2002-10-15 Ulrich Weigand - - PR opt/7409 - * loop.c (loop_regs_scan): Mark registers used for function - argument passing as MAY_NOT_OPTIMIZE. - -Mon Oct 14 19:22:19 CEST 2002 Jan Hubicka - - * gcov-io.h (gcov_info): Fix type. - * profile.c (create_profiler): Fix type mismatch. - -Mon Oct 14 20:33:12 CEST 2002 Jan Hubicka - - * i386.md (movv2di_internal): New pattern. - (movv2df_internal, movv8hi_internal, movv16qi_internal): Fix predicate. - (movv2di): New expander. - * i386.c (ix86_preferred_reload_class): Return NO_REGS for vector operands. - - * i386.c (ix86_expand_timode_binop_builtin): Delete. - (builtin_description): Add SSE1 logicals; rename SSE2 logicals. - (ix86_init_mmx_sse_builtins): Kill SSE1 logicals. - (ix86_expand_builtin): Likewise. - * i386.h (sse_andti4_df_1, sse_andti3_df_2, sse_andti3_sf_1, sse_andti3_sf_2, - sse_andti3, - sse_andnti4_df_1, sse_andti3_df_2, sse_andti3_sf_1, sse_andti3_sf_2, - sse_andnti3, - sse_orti4_df_1, sse_orti3_df_2, sse_orti3_sf_1, sse_orti3_sf_2, - sse_orti3, - sse_xorti4_df_1, sse_xorti3_df_2, sse_xorti3_sf_1, sse_xorti3_sf_2, - sse_xorti3): Kill. - (sse_andv4sf3, sse_andnv4sf3, sse_orv2df3, sse_xorv2df3, sse_andv2df3, - sse_andnv2df3, sse_orv2df3, sse_xorv2df3): New expanders. - (*sse_andv4sf3, *sse_andnv2df3, *sse_orv4sf3, *sse_xorv4sf3, *sse_andv2df3, - *sse_andnv2df3, *sse_orv2df3, *sse_xorv2df3): New patterns. - (*sse_andsf3, *sse_andndf3, *sse_ordf3, *sse_xordf3, *sse_anddf3, - *sse_andndf3, *sse_orv2df3, *sse_xorv2df3): New patterns. - - * xmmintrin.h (__m128i): Define as __v2di. - - PR c++/6419 - (expand_expr): Use DECL_RTL_SET_P. - -2002-10-14 Roger Sayle - - * combine.c (simplify_set): Treat MODE_CC registers like cc0. - -2002-10-14 Roger Sayle - Zack Weinberg - - * config/i386/i386.c (k6_cost): Correct typo. - -2002-10-14 Mark Mitchell - - PR optimization/6631 - * alias.c (objects_must_conflict_p): Check honor_readonly when - examining TYPE_READONLY. - * function.c (assign_stack_temp_for_type): Likewise. - -2002-10-14 Falk Hueffner - - * config/alpha/alpha.md (extendsidi2_nofix, extendsidi2_fix): - Swap zero extension arguments. - (umaxhi3): Fix instruction class. - PR target/7211 - (prefetch): Fix prefetch instructions. - PR target/7238 - (pkwb): Fix output constraint. - -2002-10-14 Alexandre Oliva - - * config/mips/mips.c (print_operand): Increase buffer size for - real numbers. - -2002-10-14 Richard Henderson - - PR opt/8165 - * gcse.c (adjust_libcall_notes): Revert last change. - * simplify-rtx.c (simplify_replace_rtx): Handle LO_SUM. - -2002-10-14 Andrew Haley - - * tree-inline.c (remap_block): All local class initialization - flags go in the outermost scope. - (expand_call_inline): Call java_inlining_map_static_initializers. - (expand_call_inline): Call java_inlining_merge_static_initializers. - * java/lang.c (merge_init_test_initialization): New. - (java_inlining_merge_static_initializers): New. - (inline_init_test_initialization): New. - (java_inlining_map_static_initializers): New. - - * tree-inline.c (expand_call_inline): Convert retvar to expected - type. - -2002-10-14 Graham Stott - - * stmt.c (decl_conflicts_with_clobbers_p): Add REG_P check. - -2002-10-14 Aldy Hernandez - - * stmt.c: Fix typo in comment. - -Mon Oct 14 11:35:49 2002 J"orn Rennecke - - * c-common.c (c_common_type_for_mode): Add V2HImode case. - * tree.c (build_common_tree_nodes_2): Initialize - unsigned_V2HI_type_node and V2HI_type_node. - * tree.h (enum tree_index): Add TI_UV2HI_TYPE and TI_V2HI_TYPE. - (unsigned_V2HI_type_node, V2HI_type_node): Define. - -2002-10-14 Jakub Jelinek - - * config/i386/i386.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): - Handle TARGET_64BIT. - -2002-10-14 Richard Sandiford - - * config/mips/vr.h (DRIVER_SELF_SPECS): Define. - * config/mips/t-vr (MULTILIB_OPTIONS): Remove mlong32. - (MULTILIB_DIRNAMES): Remove long32. - (MULTILIB_EXCEPTIONS): Don't build -mabi=32 -mgp32 multilibs. - (MULTILIB_REDUNDANT_DIRS): Remove. - -2002-10-14 Richard Sandiford - - * doc/tm.texi (DRIVER_SELF_SPECS): Document. - * gcc.c (driver_self_specs): New variable. - (do_self_spec): New function. - (main): Use it to process driver_self_specs. - -2002-10-13 Richard Henderson - - * config/i386/i386.c (ix86_function_ok_for_sibcall): Reject - indirect sibcalls when regparm >= 3. - - * config/i386/i386.c (sibcall_insn_operand): New. - * config/i386/i386.h (PREDICATE_CODES): Update. - * config/i386/i386-protos.h: Update. - * config/i386/i386.md (sibcall_1, sibcall_value_1): Use it. - - * rtl.c (shallow_copy_rtx): Use memcpy for the entire node. - -2002-10-12 Roger Sayle - - * simplify-rtx.c (simplify_binary_operation) [ASHIFTRT]: Optimize - arithmetic right shifts of ~0 during RTL simplifications. - -2002-10-12 Neil Booth - - PR preprocessor/7862 - PR preprocessor/8190 - * gcc.c (cpp_unique_options): Don't delete .d files. - Remove stray whitespace. - -2002-10-12 Naohiko Shimizu - - * pdp11.h (ASM_OUTPUT_SKIP): Add preceding 0 for octal constant. - (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Likewise. - * pdp11.c (pdp11_output_function_prologue): 0%o -> %#o. - (pdp11_output_function_epilogue, output_ascii): Likewise. - (output_addr_const_pdp11): Likewise. - * pdp11.md (movdi): Use offsetable memory for floating store. - (lshrsi3, negsi2): Delete irrelevant comment. - -2002-10-11 Andreas Bauer - - * config/i386/i386.c (ix86_function_ok_for_sibcall): Allow - indirect calls to be sibcall optimized. - * config/i386/i386.md (sibcall_1): New. - (call_1): Add no-sibcalls condition. - (sibcall_value_1): New. - (call_value_1): Add no-sibcalls condition. - -2002-10-11 Eric Christopher - - * output.h (default_valid_pointer_mode): Declare. - * varasm.c (default_valid_pointer_mode): Define. - * target-def.h (TARGET_VALID_POINTER_MODE): Use. - * target.h: Ditto. - * tree.c (build_pointer_type_for_mode): New function. - (build_pointer_type): Use. - (build_reference_type_for_mode): New function. - (build_reference_type): Use. - * tree.h: Declare new functions. - * c-common.c (handle_mode_attribute): Use new functions, check - for type. - * stor-layout.c (layout_type): Depend on machine mode for - REFERENCE_TYPE and POINTER_TYPE. - * dwarf2out.c (simple_type_size_in_bits): Move upward in file. - (modified_type_die): Use instead of PTR_SIZE for POINTER_TYPE - and REFERENCE_TYPE. - * config/mips/mips.c (mips_valid_pointer_mode): New function. - (TARGET_VALID_POINTER_MODE): Use and define. - * config/mips/mips-protos.h (mips_valid_pointer_mode): Declare. - -2002-10-11 Geoffrey Keating - - * cse.c (mention_regs): Set SUBREG_TICKED to the register number, - not the address of the REG. - (struct cse_reg_info): Make subreg_ticked unsigned. - -2002-10-11 Janis Johnson - - * doc/compat.texi: Add info about C++ libraries. - -2002-10-11 Richard Henderson - - PR opt/8165 - * gcse.c (adjust_libcall_notes): Also adjust notes for INSN. - -2002-10-11 John David Anglin - - * cfganal.c (dfs_enumerate_from): Use PARAMS. - * genautomata.c (output_insn_code_cases): Likewise. - * real.c (real_format): Likewise. - * tree.c (tree_size): Revise expressions using TREE_CODE_LENGTH to - ensure value is promoted before doing subtraction. - -Fri Oct 11 22:22:38 CEST 2002 Jan Hubicka - - * calls.c (expand_call): Simplify noreturn call. - - PR c/7344 - * cfgbuild.c (make_edges): Create edge cache when we do have - large jumptable. - * expr.c (do_tablejump): Note size of maximal jumptable. - * function.c (prepare_function_start): Zero out size. - * function.h (function): Add max_jumptable_ents. - - * cfgcleanup.c (insn_match_p): Verify sibcall flag for calls to. - -Fri Oct 11 12:34:33 2002 J"orn Rennecke - - * sh.md (movv8qi_i+2): For V8QI destinations, generate V4HI - register for mperm_w operation. - -Fri Oct 11 10:56:17 2002 J"orn Rennecke - - * emit-rtl.c (gen_lowpart_common): When asked to make a vector from - an integer, use simplify_gen_subreg. - -2002-10-10 Diego Novillo - - * calls.c (flags_from_decl_or_type): Make extern. - (ECF_*): Move ... - * rtl.h (ECF_*): ... here. - (flags_from_decl_or_type): Declare. - -2002-10-10 Roger Sayle - Nathan Sidwell - - * fold-const.c (fold) [RSHIFT_EXPR]: Optimize arithmetic right - shifts of the form -1 >> x. - -Thu Oct 10 16:52:55 CEST 2002 Jan Hubicka - - * cfgcleanup.c (insn_match_p): Verify sibcall flag for calls to. - -2002-10-10 Aldy Hernandez - - * extend.texi (Vector Extensions): Remove comment about single - element vectors. - -2002-10-10 Kaveh R. Ghazi - - * fold-const.c (size_htab_hash): Use htab_hash_pointer. - * function.c (insns_for_mem_hash): Likewise. - * varasm.c (STRHASH): Likewise. - -2002-10-10 Stuart Hastings - - * cse.c (struct cse_reg_info): Add subreg_ticked. - (SUBREG_TICKED): New. - (get_cse_reg_info): Initialize SUBREG_TICKED. - (mention_regs): Use it. - (invalidate): Set SUBREG_TICKED. - (invalidate_for_call): Likewise. - (addr_affects_sp_p): Likewise. - -2002-10-10 Jakub Jelinek - - * config/i386/i386.md (tls_local_dynamic_base): Put pic reg - into proper operand. - -2002-10-10 Denis Chertykov - - * config/ip2k/ip2k.c (function_epilogue): Optimize stack - deallocation. - * config/ip2k/libgcc.S: Combine routines used by function - epilogue. - -2002-10-10 Jim Wilson - - * cse.c (fold_rtx): Don't perform associative optimization for DIV and - UDIV. - -2002-10-10 David Edelsohn - - * config/rs6000/aix52.h: New file. - * config/rs6000/t-aix52: New File. - * config.gcc (rs6000-ibm-aix5.1.*): New entry. - (rs6000-ibm-aix[56789].*): Default to AIX 5.2. - -Thu Oct 10 19:37:54 CEST 2002 Jan Hubicka - - PR target/5610 - * invoke.texi (-msse-math): Kill - (-msse): Add note to mfpmath=sse. - -Thu Oct 10 17:08:30 CEST 2002 Jan Hubicka - - PR target/7723 - * i386.c (ix86_expand_vector_move): Do not generate const0->mem moves. - -2002-10-10 Neil Booth - - PR preprocessor/8179 - * gcc.c (cpp_options): Add {ansi}, move %{m*} to same location - as cc1_options. - (default_compilers): Pass debug options when preprocessing - stdin. - -2002-10-06 Richard Henderson - - * toplev.c (rest_of_compilation): Revert opt/2960 change. - -Wed Oct 9 21:18:43 CEST 2002 Jan Hubicka - - * i386.c (*_cost): Add branch costs. - (override_options): set ix86_branch_cost. - (ix86_expand_int_movcc): Use BRANCH_COST. - * i386.h (costs): Add branch_cost. - -2002-10-09 Zack Weinberg - - PR c/7353 - * c-decl.c (start_decl): Unconditionally issue error for - 'typedef foo = bar'. - (finish_decl): Remove special case for TYPE_DECL with initializer. - - * doc/extend.texi: Delete "Naming Types" section. Change all - cross-references to that section to refer to "Typeof" instead. - Add the useful safe-max()-macro example from "Naming Types" to - "Typeof", rewritten using that extension. Add some compatibility - notes to "Typeof." - -2002-10-09 Kaveh R. Ghazi - - * loop.c: Revert 2002-08-15 change. - (LOOP_REGNO_NREGS): Ensure type is int. - -2002-10-09 David Edelsohn - - * config/rs6000/rs6000.md (extenddftf2): Change to define_insn - which copies first FPR and clears second. - (extendsftf2): Same. - (floatditf2): Fix typo. - (floatsitf2): Same. - (fix_trunctfdi2): Same. - (fix_trunctfsi2): Same. - -2002-10-09 Kaveh R. Ghazi - - * conflict.c (arc_hash): Change return type to hashval_t. - * cselib.c (get_value_hash): Likewise. - * genautomata.c (automaton_decl_hash, insn_decl_hash, decl_hash, - state_hash, automata_list_hash): Likewise. - * read-rtl.c (def_hash): Likewise. - * tree.c (type_hash_hash): Likewise. - -2002-10-08 Aldy Hernandez - - * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Call - prologue_epilogue_contains instead of using REG_MAYBE_DEAD notes. - -Wed Oct 9 15:54:49 2002 J"orn Rennecke - - * sh.md (ffssi2): Fix emitted code. - -2002-10-09 Ulrich Weigand - - * cse.c (insn_live_p): Pass insn pattern, not full insn - to may_trap_p. - -2002-10-09 Neil Booth - - * cppmacro.c (paste_tokens): Only allow / to paste with =. - -2002-10-09 David Edelsohn - - * config/rs6000/rs6000.md (movdf splitter): Use gen_int_mode on - 64-bit hosts. - (movtf_internal): Reference correct displacement for second value - in memory. - (movtf splitter): Correct generation of constants in 64-bit mode. - -2002-10-09 Alan Modra - - * libgcc2.c (__floatdisf): Properly cure double rounding. - -2002-10-09 Gabriel Dos Reis - - * c-common.c (cb_register_builtins): Define __WCHAR_MAX__. - * doc/cpp.texi (Common Predefined Macros): Document. - -2002-10-09 Gabriel Dos Reis - - PR doc/7484 - * doc/invoke.texi (Option Summary): List - -Wmissing-declarations as a C only option. - -2002-10-08 Roger Sayle - - * fold-const.c (fold) [LROTATE_EXPR, RROTATE_EXPR]: Optimize - left and right rotates of ~0, i.e. integer_all_onesp (arg0). - [LSHIFT_EXPR, RSHIFT_EXPR]: Optimize shifts and rotates of zero. - -Tue Oct 8 01:24:19 CEST 2002 Jan Hubicka - - * i386.c (x86_sse_partial_reg_dependency, x86_sse_partial_regs, - x86_sse_typeless_stores, x86_sse_load0_by_pxor): New global - variables. - (safe_vector_operand): Update sse_clrv4sf call. - (ix86_expand_buildin): Likewise - * i386.h (x86_sse_partial_reg_dependency, x86_sse_partial_regs, - x86_sse_typeless_stores, x86_sse_load0_by_pxor): Declare. - (TARGET_SSE_PARTIAL_REG_DEPENDENCY, TARGET_SSE_PARTIAL_REGS, - TARGET_SSE_TYPELESS_STORES, TARGET_SSE_TYPELESS_LOAD0): New - macros. - * i386.md (movsf*, movdf*, movti, movv4sf, movv2df, movv16qi, movv8hi, - movv4si): Obey the new flags. - (floatsi2sf, floatdi2sf, truncatedf2sf): Emit extra load of 0 to avoid - reformating penalty. - (anddf, cmov patterns): Avoid reformating by first converting. - (sse_cvtsd2ss): Fix predicate. - (sse2_clrti): Fix mode, - (sse_clrv4sf): Avoid unspec. - -2002-10-08 Jakub Jelinek - - * config/sparc/t-linux64 (MULTILIB_OPTIONS): Remove - mno-app-regs|mcmodel=medany. - (MULTILIB_DIRNAMES, MULTILIB_OSDIRNAMES): Remove alt. - (MULTILIB_EXCEPTIONS, MULTILIB_EXCLUSIONS, MULTILIB_MATCHES): Remove. - (CRTSTUFF_T_CFLAGS): Define. - -2002-10-08 Roger Sayle - - PR target/8087 - * simplify-rtx.c (avoid_constant_pool_reference): Allow constant - pool references that are constructed using LO_SUM. - -2002-10-08 Nathan Sidwell - - * c-opts.c (c_common_decode_option): Add warn_strict_aliasing to - -Wall. - * c-typeck.c (build_c_cast): Use warn_strict_aliasing, tweak - message. - * flags.h (warn_strict_aliasing): Declare. - * toplev.c (warn_strict_aliasing): Define. - (lang_independent_options): Add it. - * doc/invoke.texi (-Wstrict-aliasing): Document it. - -2002-10-08 Zack Weinberg - - * system.h (GCCBUGURL): Delete. - * version.c (bug_report_url): New. Add commentary about - modifying both these strings in modified distributions. - * version.h: Declare bug_report_url. - - * diagnostic.c, gcc.c, gcov.c: Globally replace GCCBUGURL with - bug_report_url. - -2002-10-08 Nick Clifton - - * config/rs6000/spe.h (__ev_set_acc_u64): Use __ev_create_u64 to - convert uint64_t into __ev64_opaque__. - (__ev_set_acc_s64): Likewise, but using signed types. - -2002-10-08 Ulrich Weigand - - * config/s390/s390.md ("*doloop_si_long"): Add missing operand. - ("*doloop_di_long"): Likewise. - -Tue Oct 8 16:50:10 CEST 2002 Jan Hubicka - - * print-rtl.c (print_rtx): Increase buffer size for real numbers. - -2002-10-08 Richard Sandiford - - * config/mips/mips.md (define_attr cpu): Add r4111. - -2002-10-08 Anthony Green - - * bitmap.c (bitmap_equal_p): Clear all bitmap_head fields. - -2002-10-08 Michael Hayes - - * config/c4x/c4x.c (c4x_print_operand): Enlarge buffer - for REAL_VALUE_TO_DECIMAL output. - -2002-10-07 Richard Henderson - - * cse.c (fixed_base_plus_p): Turn FIXED_BASE_PLUS_P into a - function; cleanup PLUS case by using recursion. Update all users. - (NONZERO_BASE_PLUS_P): Remove. - (find_comparison_args): Use rtx_addr_can_trap_p instead. - (fold_rtx): Use nonzero_address_p. - * rtl.h (nonzero_address_p): Declare. - * rtlanal.c (rtx_varies_p): Handle ADDRESSOF. - (rtx_addr_can_trap_p): Likewise. - (nonzero_address_p): New. - * simplify-rtx.c (NONZERO_BASE_PLUS_P): Remove. - (simplify_relational_operation): Use nonzero_address_p. - -2002-10-07 David Edelsohn - - * config/rs6000/rs6000.c (rs6000_override_options): Set - real_format_for_mode for IBM extended format, if enabled. - (easy_fp_constant): Add TFmode. - (rs6000_legitimize_address): Add TFmode. - (rs6000_legitimate_address): Same. - (function_arg_advance): TFmode uses two FPRs. - (rs6000_emit_prologue): Fix warning. - (rs6000_output_function_epilogue): Add TFmode. - (output_toc): Add TFmode. - * rs6000.h (SLOW_UNALIGNED_ACCESS): Add TFmode. - (LEGITIMATE_OFFSET_ADDRESS_P): Add TFmode. - * rs6000.md (movtf splitter): Load TFmode constant. - -2002-10-07 Dale Johannesen - - * rtl.h: Add NOTE_PRECONDITIONED. - * unroll.c: Set it. - * loop.c: Set loop_info->preconditioned from it. - * doloop.c: Permit doloop treatment when loop_info->preconditoned. - -2002-10-07 Richard Henderson - - * config/i960/i960.c (i960_setup_incoming_varargs): Create a - new rtx for comparing the argument pointer against zero. - (i960_va_start): Similarly. - -2002-10-07 Richard Henderson - - * config/i960/i960.md (*): Use TFmode, not XFmode. - * config/i960/i960.c (*): Likewise. - (i960_arg_size_and_align): Remove XFmode alignment hack. - (i960_round_align): Merge code from ROUND_TYPE_ALIGN. - * config/i960/i960.h (LONG_DOUBLE_TYPE_SIZE): Use 128, not 96. - (MAX_LONG_DOUBLE_TYPE_SIZE): Likewise. - (DATA_ALIGNMENT, ROUND_TYPE_SIZE): Remove. - -2002-10-07 Richard Henderson - - * config/fp-bit.c (EXTENDED_FLOAT_STUBS): Flush out all XF/TFmode - entry points; use void return value and argument list. - -2002-10-06 Andreas Bauer - - * calls.c (expand_call): Fix function-is-volatile check. - -2002-10-05 Naohiko Shimizu - - * t-pdp11: Add MULTILIB support for msoft-float. - * pdp11.h (LEGITIMATE_CONSTANT_P): Fix soft-float case. - - * t-pdp11: Add LIB2FUNCS_EXTRA. - * pdp11.c (pdp11_output_function_prologue): Restrict offset to 16bit, - add preceding 0 to the octal constant, rename 'fp' to 'r5', rename - 'fldd' to 'ldd', rename 'fstd' to 'std'. - (pdp11_output_function_epilogue): Likewise. - (output_move_quad): Make the comment gas compatible. - (output_ascii): Add preceding 0 to the octal constant. - (print_operand_address): Add pre_modify, post_modify. - (output_addr_const_pdp11): Add preceding 0 to the octal constant. - * pdp11.h (GO_IF_LEGITIMATE_ADDRESS) : Add 'movb' pre_modify case - with the indication of Paul Koning. - (PRINT_OPERAND): Fix floating constant. - * pdp11.md (movdi): Restrict matching pattern. - (movqi): Generalize the matching pattern. - (movdf): Restrict matching pattern. - (zero_extendqihi2): Change constant representation. - (floatsidf2): Fix wrong operands. - (addqi3): Fix wrong instruction name. - (subqi3): Fix wrong instruction name. - (andsi3, andhi3, andqi3): Simplify and fix to use 'bic'. - (xorsi3): Fix wrong insn. - (one_cmplqi2): Add two operand pattern. - (lsrsi3): New. - (negsi2): New. - (call): Add register indirect case. - (mod): Fix wrong subreg. - -2002-10-06 Eric Botcazou - Volker Reichelt - - PR c/7411 - * expr.c (expand_expr) [PLUS]: Simplify after the operands - have been expanded in EXPAND_NORMAL mode. - -2002-10-06 Richard Henderson - - * config/rs6000/rs6000.md (load_toc_v4_PIC_2): Fix base constraint. - -2002-10-06 Richard Henderson - - PR optimization/2960 - * toplev.c (rest_of_compilation): Don't copy_loop_headers if - optimize_size. - -2002-10-06 Alexandre Oliva - - * config/mips/mips.h (SIZE_TYPE, PTRDIFF_TYPE): Override - previously definitions. - -2002-10-06 Frank Ch. Eigler - - * cppinit.c (init_standard_includes, parse_option): Use strncmp. - * c-opts.c (find_opt): Similarly. - -Sat Oct 5 22:48:06 CEST 2002 Jan Hubicka - - * athlon.md: rewrite to DFA. - * i386 (ix86_adjust_cost): Drop memory latency code. - (ia32_use_dfa_pipeline_interface): Return true for Athlon. - -2002-10-05 Jakub Jelinek - - * gcc.c (set_multilib_dir): Don't access *end. - Use memcpy instead of strncpy. Don't write beyond malloced buffer. - (print_multilib_info): Don't show paths starting with ".:". - * genmultilib: Add new option, "yes" if multilibs are enabled. - Update comments. If multilibs not enabled, print .:${osdirout} - for each directory. If multilibs are enabled, always print - ${dirout}:${osdirout}, even if the two are the same. - * Makefile.in (s-mlib): Pass @enable_multilib@ to genmultilib. - Pass all MULTILIB_* variables to genmultilib even if - --disable-multilib but MULTILIB_OSDIRNAMES is not empty. - -2002-10-04 Zack Weinberg - - * gcc.c (process_command): Set .validated for -pipe. Correct - grammar in comment. - -2002-10-04 Bruce Korb - - * fixinc/inclhack.def(hpux11_abs): use format fix - * fixinc/fixincl.x: regenerate - * fixinc/tests/base/stdlib.h: accommodate new fix test - -Sat Oct 5 19:42:45 CEST 2002 Jan Hubicka - - * c-common.c (cb_register_builtins): Use really_no_inline. - -2002-10-04 David Edelsohn - - * unroll.c (copy_loop_body): Remove REG_EQUAL note attached to - copied instruction if the note is not loop invariant. - -2002-10-04 Loren J. Rittle - - * gcc/ginclude/stddef.h: Support the FreeBSD 5 typedef system. - -2002-10-04 Steve Ellcey - - * doc/invoke.texi (HPPA): Add -mlinker-opt, -mgnu-ld, - and -mhp-ld options to list of options. Add -mgnu-ld - and -mhp-ld option descriptions. - -2002-10-04 Steve Ellcey - - * fixinc/inclhack.def (hpux11_abs): New. - (stdio_va_list): change __va_list__ to __gnuc_va_list. - * fixinc/fixincl.x: Rebuild. - -2002-10-04 Roger Sayle - - * config/i386/i386.h (processor_costs): Add new fields fadd, - fmul, fdiv, fabs, fchs and fsqrt to costs structure. - (RTX_COSTS): Use these fields to determine the RTX costs - of floating point addition/subtraction, multiplication, - division, fabs, negation and square root respectively. - * config/i386/i386.c (size_cost): Provide instruction sizes - for these new fields. - (i386_cost, i486_cost, pentium_cost, pentiumpro_cost, - k6_cost, athlon_cost, pentium4_cost): Provide typical cycle - counts for these new fields for all x86 processor variants. - -2002-10-04 Kaveh R. Ghazi - - * mips.c (mips_const_double_ok): Delete unused variable. - - * gengtype.c (rtx_next): Change type to int. - -2002-10-04 Andreas Jaeger - - * config/i386/t-linux64 (MULTILIB_OSDIRNAMES): Fix value. - -2002-10-04 Richard Henderson - - * real.h (SIGNIFICAND_BITS): Add one more word. - (CONST_DOUBLE_FORMAT): Accomodate 6 words. - * real.c (times_pten): New. - (real_to_decimal, real_from_string): Use it. - (sticky_rshift_significand): Use & to find modulus. - (rshift_significand, lshift_significand): Likewise. - (do_divide): Apply sticky bit after normalization. - (real_to_decimal, real_to_hexadecimal): Fix sign of Inf and NaN. - -2002-10-03 Andreas Bauer - - * doc/tm.texi (FUNCTION_OK_FOR_SIBCALL): Remove. - (TARGET_FUNCTION_OK_FOR_SIBCALL): New. - -2002-10-03 Andreas Jaeger - - * gengtype.c (adjust_field_rtx_def): Cast variables of type size_t - to unsigned long, adjust printf format string. - (output_mangled_typename): Likewise. - -2002-10-03 Jason Thorpe - - * config/vax/vax.c (vax_output_function_prologue): Use asm_fprintf. - * config/vax/vax.h (VAX_FUNCTION_PROFILER_NAME): New. - (FUNCTION_PROFILER): Rewrite to use ASM_GENERATE_INTERNAL_LABEL, - assemble_name, asm_fprintf, and VAX_FUNCTION_PROFILER_NAME. - (ASM_OUTPUT_MI_THUNK): Use asm_fprintf instead of REGISTER_PREFIX. - (PRINT_OPERAND_PUNCT_VALID_P): Fix comment. - * config/vax/elf.h (FUNCTION_PROFILER): Remove. - (VAX_FUNCTION_PROFILER_NAME): Redefine as "__mcount". - -2002-10-03 Mark Mitchell - - * doc/invoke.texi (-Wabi): Document mangling bug. - -2002-10-04 Alan Modra - - * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use a - name for the tbtab label that depends on the function asm name. - Don't output tbtab label unless optional_tbtab. - (output_mi_thunk): Formatting. - -2002-10-03 Richard Henderson - - * config/m68k/m68k.h (OVERRIDE_OPTIONS): Move additional code ... - * config/m68k/m68k.c (override_options): ... here. - * config/m68k/m68kelf.h (OVERRIDE_OPTIONS): Remove. - * config/m68k/m68kv4.h (OVERRIDE_OPTIONS): Remove. - * config/m68k/linux.h (SUBTARGET_OVERRIDE_OPTIONS): Remove. - * config/m68k/netbsd-elf.h (SUBTARGET_OVERRIDE_OPTIONS): Remove. - -2002-10-03 Richard Henderson - - * real.h (struct real_value): Use ENUM_BITFIELD. - -2002-10-03 Richard Henderson - - * config/i960/i960.md (call, call_value): Use emit_call_insn. - -2002-10-03 Steve Ellcey - - * config/pa/pa64-hpux.h (INIT_ENVIRONMENT): New. - -2002-10-03 Steve Ellcey - - * config.gcc (hppa*64*-*-hpux11*): Check gnu_ld. - * config/pa/pa.h (MASK_GNU_LD): New. - (TARGET_GNU_LD): New. - * config/pa/pa64-hpux.h (LINK_SPEC): Set based - on gnu-ld and MASK_GNU_LD. - (SUBTARGET_SWITCHES): New gnu-ld & hp-ld flags. - -Thu Oct 3 23:35:51 CEST 2002 Jan Hubicka - - * i386.c (athlon_cost): Fix the move costs. - -Thu Oct 3 23:20:58 CEST 2002 Jan Hubicka - - * final.c (final): Use symbol name as function name for profiling. - * profile.c (get_exec_counts): Likewise. - (branch_prob): Likewise. - -2002-10-03 Jakub Jelinek - - * longlong.h (__udiv_qrnnd): Remove PARAMS from prototype. - -2002-10-03 Jakub Jelinek - - * gcc.c (print_multi_os_directory): New variable. - (option_map): Support --print-multi-os-directory. - (struct prefix_list): Add os_multilib field. - (multilib_os_dir): New variable. - (static_specs): Add multilib_options. - (find_a_file): Add multilib argument. Search in GCC or OS multilib - subdirs if nonzero. - (read_specs, execute): Update callers. - (find_file): Likewise. Don't prefix name with multilib_dir, instead - pass 1 as multilib option. - (display_help): Include --print-multi-os-directory. - (add_prefix): Add os_multilib argument. Initialize pl->os_multilib. - (process_command): Update callers. Handle --print-multi-os-directory. - (do_spec_1) ['D']: Use multilib_os_directory if pl->os_multilib is - set. - (main): Update find_a_file and add_prefix callers. - Handle print_multi_os_directory. - (struct mdswitchstr): New. - (mdswitches, n_mdswitches): New variables. - (used_arg): Add MULTILIB_DEFAULT switches too if they are not - present on the command line nor their mutually incompatible - switches. - (default_arg): Optimize. - (set_multilib_dir): Compute multilib_os_dir. Initialize mdswitches - array. - (print_multilib_info): Only print GCC multilib dir name, not OS - multilib dirname. - * genmultilib: Add osdirnames parameter. Output multilib_options - variable. If osdirnames is specified, output dirnames as - dirname:osdirname. - * mklibgcc.in: Use MULTILIB_OSDIRNAMES, --print-multi-directory - and --print-multi-os-directory instead of SHLIB_SLIBDIR_SUFFIXES - to compute libgcc_s soname and install path. - * Makefile.in (libgcc.mk): Pass MULTILIB_OSDIRNAMES instead of - SHLIB_SLIBDIR_SUFFIXES to mklibgcc. - (s_mlib): Pass MULTILIB_OSDIRNAMES or nothing as last genmultilib - argument. - - * config/sparc/t-linux64 (MULTILIB_OSDIRNAMES): Set. - (SHLIB_SLIBDIR_SUFFIXES): Remove. - * config/sparc/linux64.h (STARTFILE_SPEC32, STARTFILE_SPEC64, - ENDFILE_SPEC32, ENDFILE_SPEC64, ENDFILE_COMMON): Remove. - (STARTFILE_SPEC, ENDFILE_SPEC): Don't distinguish between -m32 - and -m64. - * config/sparc/t-sol2-64 (MULTILIB_OSDIRNAMES): Set. - (SHLIB_SLIBDIR_SUFFIXES): Remove. - * config/sparc/sol2-bi.h (STARTFILE_ARCH64_SPEC): Remove. - (STARTFILE_ARCH_SPEC): Remove. - * config/i386/t-linux64 (MULTILIB_OSDIRNAMES): Set. - (SHLIB_SLIBDIR_SUFFIXES): Remove. - * config/i386/linux64.h (STARTFILE_PREFIX_SPEC): Remove. - * config/mips/t-iris6 (MULTILIB_OSDIRNAMES): Set. - (SHLIB_SLIBDIR_SUFFIXES): Remove. - -Thu Oct 3 21:42:20 CEST 2002 Jan Hubicka - - * predict.c (choose_function_section): Avoid choice for linkonce functions. - -Thu Oct 3 15:15:00 CEST 2002 Jan Hubicka - - * i386.md (lea to mul peep2): Fix condition. - -2002-10-02 John David Anglin - - * pa-linux.h (FUNCTION_OK_FOR_SIBCALL): Delete macro. - * pa32-linux.h (FUNCTION_OK_FOR_SIBCALL): Define. - -2002-10-02 David Mosberger-Tang - - * unwind.h (_Unwind_GetTextRelBase): Mark _C argument with - attribute "unused". - - * config/t-libunwind: Mention unwind-sjlj.c. - * unwind-libunwind.c: Change #ifdef __USING_LIBUNWIND_EXCEPTIONS__ - to #ifndef __USING_SJLJ_EXCEPTIONS__. - - * configure.in: Move sjlj-exceptions and --enable-libunwind-exceptions - before inclusion of config.gcc, but after configuring the compiler etc. - Determine default value for --enable-libunwind-exceptions based on - whether the host has a libunwind library (not guaranteed to be correct, - but it's a reasonable first guess and can always be overridden with an - explicit --enable/disable-libunwind-exceptions. - * config.gcc: For target ia64*-*-linux*, mention t-libunwind as a - tmake_file when $use_libunwind_exceptions is enabled. - * Makefile.in: Update comment: LIB2ADDEH is updated not just by - ia64 (e.g., config/t-linux also updates it). - * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS]: Mention -lunwind - along with the shared version of libgcc since the latter requires - the former. - * unwind-libunwind.c: New file. - * config/t-libunwind: Ditto. - -2002-10-02 Nathanael Nerode - - * config.gcc: Remove support for vax-*-vms*. - * config/vax/vms.h: Remove. - * config/vax/xm-vms.h: Remove. - * config/vax/vax-protos.h: Remove VMS-specific code. - * config/vax/vax.c: Remove VMS-specific code. - -2002-10-02 Richard Henderson - - PR opt/7124 - * config/i386/i386.c (ix86_register_move_cost): Increase cost - for secondary_memory_needed pairs. - -2002-10-02 Nathanael Nerode - - * doc/vms.texi: Blow away false include file section. - -2002-10-02 Roger Sayle - - PR optimization/6627 - * toplev.c (force_align_functions_log): New global variable. - * flags.h (force_align_functions_log): Add extern prototype. - * varasm.c (assemble_start_function): Use it to force minimum - function alignment. - * config/i386/i386.h (FUNCTION_BOUNDARY): Set the correct - minimum function alignment to one byte. - (TARGET_PTRMEMFUNC_VBIT_LOCATION): Store the virtual bit in - the least significant bit of vtable member function pointers. - * tree.h (enum ptrmemfunc_vbit_where_t): Move definition to - here from cp/cp-tree.h. - -Wed Oct 2 17:01:36 CEST 2002 Jan Hubicka - - * i386.c (print_operand_address): Use RIP addressing for offsetted - label refs too. - -2002-09-30 David S. Miller - - PR middle-end/7151 - * config/sparc/sparc.md (movdi_insn_sp32_v9): Accept 'e' regs. - (movdi reg/reg split): Match only on sparc32, and v9 when int regs. - -2002-10-01 Andreas Bauer - - * calls.c (expand_call): Remove the `no indirect check' - for sibcall optimization; use function_ok_for_sibcall - target hook; refine check for `function is volatile'. - (FUNCTION_OK_FOR_SIBCALL): Remove the redefinition. - * hooks.c (hook_tree_tree_bool_false): New. - * hooks.h (hook_tree_tree_bool_false): Declare. - * target-def.h (TARGET_FUNCTION_OK_FOR_SIBCALL): New. - (TARGET_INITIALIZER): Add it. - * target.h (struct gcc_target): Add function_ok_for_sibcall. - * config/alpha/alpha.c: (alpha_function_ok_for_sibcall): New. - (TARGET_FUNCTION_OK_FOR_SIBCALL): Redefine accordingly. - * config/alpha/alpha.h: (FUNCTION_OK_FOR_SIBCALL): Remove. - * config/arm/arm-protos.h: (arm_function_ok_for_sibcall): - Remove function declaration. - * config/arm/arm.c: (arm_function_ok_for_sibcall): Make - function static and accept another argument of type `tree'. - (TARGET_FUNCTION_OK_FOR_SIBCALL): Redefine accordingly. - * config/arm/arm.h: (FUNCTION_OK_FOR_SIBCALL): Remove. - * config/frv/frv.h: (FUNCTION_OK_FOR_SIBCALL): Remove. - * config/i386/i386.c: (ix86_function_ok_for_sibcall): New. - (TARGET_FUNCTION_OK_FOR_SIBCALL): Redefine accordingly. - * config/i386/i386.h: (FUNCTION_OK_FOR_SIBCALL): Remove. - * config/pa/pa-linux.h: (FUNCTION_OK_FOR_SIBCALL): Remove. - (TARGET_HAS_STUBS_AND_ELF_SECTIONS): New definition. - * config/pa/pa.c: (pa_function_ok_for_sibcall): New. - (TARGET_FUNCTION_OK_FOR_SIBCALL): Redefine accordingly. - * config/pa/pa.h: (FUNCTION_OK_FOR_SIBCALL): Remove. - * config/rs6000/rs6000-protos.h: (function_ok_for_sibcall): - Remove function declaration. - * config/rs6000/rs6000.c: (rs6000_function_ok_for_sibcall): - Rename function_ok_for_sibcall to rs6000_function_ok_for_sibcall; - rename first argument to `decl'; accept another argument - of type `tree'; make static. - (TARGET_FUNCTION_OK_FOR_SIBCALL): Redefine accordingly. - * config/rs6000/rs6000.h: (FUNCTION_OK_FOR_SIBCALL): Remove. - * config/sh/sh.c: (sh_function_ok_for_sibcall): New. - (TARGET_FUNCTION_OK_FOR_SIBCALL): Redefine accordingly. - * config/sh/sh.h: (FUNCTION_OK_FOR_SIBCALL): Remove. - * config/sparc/sparc.c: (sparc_function_ok_for_sibcall): New. - (TARGET_FUNCTION_OK_FOR_SIBCALL): Redefine accordingly. - * config/sparc/sparc.h: (FUNCTION_OK_FOR_SIBCALL): Remove. - * config/xtensa/xtensa.h: (FUNCTION_OK_FOR_SIBCALL): Remove. - -2002-10-01 Roger Sayle - - * unroll.c (loop_iterations): Revert 2002-09-08 change. - -2002-10-01 Richard Henderson - - * real.c (real_to_decimal): Crop trailing zeros for DIGITS < 0. - (real_to_hexadecimal): Likewise. - * print-rtl.c (print_rtx): If we are linked with real.c, don't - dump the XWINT fields of a floating point CONST_DOUBLE. - -2002-10-01 Jason Thorpe - - * config/vax/elf.h (FUNCTION_PROFILER): Fix __mcount call. - -2002-10-01 Richard Henderson - - * calls.c (precompute_register_parameters): Force non-legitimate - constants into pseudos. - -2002-10-01 Nick Clifton - - * config/rs6000/spe.md (spe_evrlwi): Add missing third operand - to assembler template. - -2002-10-01 Richard Henderson - - * dwarf2out.c (loc_descriptor_from_tree): Relax requirement - for TLS debug info to !DECL_EXTERNAL. - -2002-10-01 Matt Thomas - Jason Thorpe - - * config.gcc (vax-*-netbsdelf*): Enable configuration. - * config/elfos.h (PCC_BITFIELD_TYPE_MATTERS): Define only - if not already defined. - * config/vax/elf.h: New file. - * config/vax/netbsd-elf.h: New file. - * config/vax/vax.c: Include "debug.h". - (vax_output_function_prologue): Add dwarf2 support. Use - MAIN_NAME_P when checking for VMS_TARGET stack adjust. - * config/vax/vax.h (CONST_OK_FOR_LETTER_P): Add cases for - 'J' [0..63], 'K' [-128..127], 'L' [-32768..32767], - 'M' [0..255], 'N' [0..65535], and, 'O' [-63..-1]. - (VAX_ISTREAM_SYNC): Remove. - (INITIALIZE_TRAMPOLINE): Use gen_sync_istream. - (JUMP_TABLES_IN_TEXT_SECTION): Define. - (ASM_OUTPUT_REG_POP): Use reg_names for the stack pointer. - (ASM_OUTPUT_ADDR_VEC_ELT): Use ASM_GENERATE_INTERNAL_LABEL - and assemble_name. - (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise. - (PRINT_OPERAND_PUNCT_VALID_P): Accept '|'. - (PRINT_OPERAND): Output REGISTER_PREFIX for '|'. - (INCOMING_RETURN_ADDR_RTX): Define. - * config/vax/vax.md (VUNSPEC_BLOCKAGE) - (VUNSPEC_SYNC_ISTREAM): Define. - (blockage): Use VUNSPEC_BLOCKAGE. - (sync_istream): New insn. - -2002-10-01 Richard Henderson - - * config/vax/vax.md (call_pop, *call_pop, call_value_pop) - (*call_value_pop, call, call_value): Add dwarf2 EH support. - (*call): New insn. - -2002-10-01 Nathan Sidwell - - PR c/8083 - * c-typeck.c (build_c_cast): Warn about type punning which breaks - type based aliasing. - -2002-10-01 Mark Mitchell - - * stor-layout.c (update_alignment_for_field): New function. - (place_union_field): Use it. - (place_field): Likewise. - -2002-10-01 Nathan Sidwell - - PR other/8077 - * gcc.c (cc1_options): Add space on -auxbase-strip. - -2002-10-01 Jim Wilson - - * config/v850/v850.h (EPILOGUE_USES): Define. - -2002-09-30 Andrew Haley - - * flow.c (insn_dead_p): When using non-call-exceptions, don't - eliminate insns that may trap. - * cse.c (insn_live_p): Likewise. - -2002-10-01 Richard Sandiford - - * config/mips/mips.h (PROCESSOR_R4121): Rename to PROCESSOR_R4120. - (TARGET_MIPS4121): Rename to TARGET_MIPS4120. - * config/mips/mips.c (mips_cpu_info): Rename vr4121 to vr4120. - * config/mips/mips.md: Apply same renaming here. - -2002-10-01 Richard Sandiford - - * config/mips/mips.c (PROCESSOR_R4320, TARGET_MIPS4320): Remove. - (GENERATE_MULT3_SI): Remove use of TARGET_MIPS4320. - * config/mips/mips.c (mips_cpu_info): Remove vr4320 entry. - * config/mips/mips.md (define_attr cpu): Remove r4320. - Remove vr4320 scheduler and uses of TARGET_MIPS4320. - -2002-10-01 Richard Sandiford - - * config/mips/mips.c (mips16_strings): New variable. - (mips_output_function_epilogue): Clear the SYMBOL_REF_FLAG of every - symbol in mips16_strings. Free the list. - (mips_encode_section_info): Keep track of local strings. - -2002-10-01 Richard Sandiford - - * config/mips/mips.md (bunge, bltgt, bungt): New define_expands. - (sordered_df, sordered_sf): Remove. - * config/mips/mips.c (get_float_compare_codes): New fn. - (gen_int_relational, gen_conditional_move): Use it. - -2002-10-01 Richard Sandiford - - * config/mips/mips-protos.h (mips_emit_fcc_reload): Declare. - * config/mips/mips.h (PREDICATE_CODES): Add fcc_register_operand. - * config/mips/mips.c (fcc_register_operand): New function. - (mips_emit_fcc_reload): New function, extracted from reload_incc. - (override_options): Allow TFmode values in float registers - if ISA_HAS_8CC. - * cnfig/mips/mips.md (reload_incc): Change destination prediate - to fcc_register_operand. Remove misleading source constraint. - Use mips_emit_fcc_reload. - (reload_outcc): Duplicate reload_incc. - -2002-09-30 Zack Weinberg - - * gcc.c (validate_switches): Handle all new forms of spec - syntax introduced recently. Now returns a char *. - (validate_all_switches): Repetitive logic broken out to... - (validate_switches_from_spec): ...here. - * mklibgcc.in: Don't @-flag commands to generate .oS files. - -2002-09-30 Ulrich Weigand - - * longlong.h: Partially synchronize with GMP-4.1 version: - Use i370 definitions also for s390. - Add generic definition of umul_ppmm in terms of smul_ppmm. - [s390] (umul_ppmm): Remove. - [s390] (smul_ppmm): Fix incorrect assembler constraints. - [s390] (smul_ppmm, sdiv_qrnnd): Rename __xx to __x. - -2002-09-30 Bob Wilson - - * config/xtensa/xtensa.h (REG_CLASS_NAMES, REG_CLASS_CONTENTS): - Add new RL_REGS register class. - (PREFERRED_RELOAD_CLASS, PREFERRED_OUTPUT_RELOAD_CLASS): - Call xtensa_preferred_reload_class for both input and output reloads. - * config/xtensa/xtensa.c (xtensa_regno_to_class): Use new RL_REGS class. - (xtensa_preferred_reload_class): Handle output reloads; use RL_REGS - instead of either AR_REGS or GR_REGS classes. - (xtensa_secondary_reload_class): Use new RL_REGS class. - * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class): Update. - -2002-09-30 John David Anglin - - * pa.c (hppa_encode_label): Don't drop '*' from function labels. - (pa_strip_name_encoding): Strip '@' and '*', in that order. - * pa.h (ASM_OUTPUT_LABELREF): Output user_label_prefix except when - there is a '*' prefix in NAME. - -Mon Sep 30 21:33:23 CEST 2002 Jan Hubicka - - * reload.c (push_reload): Handle subregs and secondary memory. - * reload1.c (gen_reload): Likewise. - - * jump.c (reg_or_subregno): New function. - * rtl.h (reg_or_subregno): Declare - * unroll.c (find_splittable_givs): Handle subregs. - -2002-09-30 Mark Mitchell - - * store-layout.c (finish_record_layout): Add free_p parameter. - (layout_type): Pass it. - * tree.h (finish_record_layout): Update prototype. - -Mon Sep 30 14:57:18 CEST 2002 Jan Hubicka - - * i386.h (TARGET_CPP_CPU_BUILTINS): Define __SSE_MATH__. - - * gcse.c (cprop_jump): Check that the register has not - been modified - (cprop_jump): Likewise. - -2002-09-30 Richard Earnshaw - - * arm.h (BASE_REG_CLASS): Always return LO_REGS for Thumb. - (MODE_BASE_REG_CLASS, case Thumb): Only return BASE_REGS if we know - that we have a SImode access, and only then if reload hasn't completed; - for all other cases, use LO_REGS. - -2002-09-29 Kaveh R. Ghazi - - * openbsd.h: Fix typo in last change. - -2002-09-29 Richard Henderson - - * real.c (real_from_string): Apply sign last. Tidy exponent handling. - -2002-09-29 Richard Henderson - - PR c/8002 - * combine.c (force_to_mode): Handle FLOAT_MODE destinations - for CONST_INT. - -2002-09-29 David Edelsohn - - * real.h (ibm_extended_format): Declare. - * real.c (encode_ibm_extended, decode_ibm_extended): New - functions. - -2002-09-29 Kaveh R. Ghazi - - * darwin-protos.h (darwin_asm_output_dwarf_delta): Prototype. - - * ia64.c (ia64_hpux_asm_file_end): Const-ify. - -2002-09-29 John David Anglin - - * expmed.c (extract_bit_field): Fix bit-field extraction from SUBREGs. - -2002-09-29 Kazu Hirata - - * builtins.def: Fix comment formatting. - * c-common.def: Likewise. - * cfgcleanup.c: Likewise. - * combine.c: Likewise. - * gengtype.c: Likewise. - * params.def: Likewise. - * predict.def: Likewise. - * rtl.def: Likewise. - * stab.def: Likewise. - * stor-layout.c: Likewise. - * tree.def: Likewise. - * config/darwin.c: Likewise. - * config/darwin.h: Likewise. - * config/dbxcoff.h: Likewise. - * config/elfos.h: Likewise. - * config/fp-bit.c: Likewise. - * config/freebsd-spec.h: Likewise. - * config/interix.h: Likewise. - * config/libgloss.h: Likewise. - * config/linux-aout.h: Likewise. - * config/linux.h: Likewise. - * config/lynx-ng.h: Likewise. - * config/lynx.h: Likewise. - * config/netbsd-aout.h: Likewise. - * config/netbsd.h: Likewise. - * config/netware.h: Likewise. - * config/psos.h: Likewise. - * config/ptx4.h: Likewise. - -2002-09-28 Kazu Hirata - - * ChangeLog.4: Fix typos. - * ChangeLog.6: Likewise. - * FSFChangeLog.10: Likewise. - * genattrtab.c: Fix comment typos. - * haifa-sched.c: Likewise. - * real.c: Likewise. - * tree.h: Likewise. - * config/arm/arm.c: Likewise. - * config/arm/crti.asm: Likewise. - * config/arm/crtn.asm: Likewise. - * config/frv/frv.c: Likewise. - * config/frv/frv.md: Likewise. - * config/h8300/h8300.md: Likewise. - * config/i386/rtemself.h: Likewise. - * config/ia64/unwind-ia64.c: Likewise. - * config/ip2k/ip2k.h: Likewise. - * config/m88k/m88k.c: Likewise. - * config/m88k/m88k.md: Likewise. - * config/mips/sr71k.md: Likewise. - * config/mmix/mmix.c: Likewise. - * config/rs6000/rs6000.c: Likewise. - * config/sh/sh.md: Likewise. - -2002-09-26 Theodore A. Roth - - * config/avr/avr.c: Eliminate use of _PC_ in pc relative insns. - * config/avr/avr.md: Ditto. - -2002-09-27 Alexander N. Kabaev - - PR preprocessor/8055 - * cppmacro.c (stringify_arg): Do not overflow the buffer - with the terminating NUL when the argument to be stringified - has no tokens. - -2002-09-27 Richard Henderson - - * unroll.c (simplify_cmp_and_jump_insns): New. - (unroll_loop): Use it. Use simplify_gen_foo+force_operand - instead of expand_simple_foo. - -2002-09-27 Richard Henderson - - PR optimization/7520 - * cfganal.c (flow_active_insn_p): New. - (forwarder_block_p): Use it. - -2002-09-27 Richard Henderson - - * emit-rtl.c (active_insn_p): Revert last change. - -2002-09-27 Jakub Jelinek - - * doc/extend.texi (tls_model): Document. - * varasm.c (decl_tls_model): New. - * c-common.c (handle_tls_model_attribute): New. - (c_common_attribute_table): Add tls_model. - * config/alpha/alpha.c (alpha_encode_section_info): Use - decl_tls_model. - * flags.h (enum tls_model, flag_tls_default): Move... - * tree.h (enum tls_model, flag_tls_default): ...here. - (decl_tls_model): New prototype. - * config/ia64/ia64.c (ia64_encode_section_info): Likewise. - * config/i386/i386.c (ix86_encode_section_info): Likewise. - * config/i386/i386.md (tls_global_dynamic, tls_local_dynamic_base): - Allow !flag_pic. - -2002-09-27 Kazu Hirata - - * LANGUAGES: Follow spelling conventions. - * rtl.def: Likewise. - * sbitmap.c: Likewise. - * sched-int.h: Likewise. - * sched-rgn.c: Likewise. - * sibcall.c: Likewise. - * simplify-rtx.c: Likewise. - * ssa.c: Likewise. - * stab.def: Likewise. - * stmt.c: Likewise. - * stor-layout.c: Likewise. - * target.h: Likewise. - * timevar.c: Likewise. - * toplev.c: Likewise. - * tree-dump.c: Likewise. - * tree-inline.c: Likewise. - * tree.c: Likewise. - * tree.def: Likewise. - * tree.h: Likewise. - * unroll.c: Likewise. - * varasm.c: Likewise. - * vmsdbgout.c: Likewise. - * treelang/treelang.texi: Likewise. - * treelang/treetree.c: Likewise. - -2002-09-27 Kazu Hirata - - * config/h8300/h8300.c (compute_saved_regs): Use a macro - instead of a hard register number. - (get_shift_alg): Use an enumerated type instead of numbers. - (h8300_shift_needs_scratch_p): Likewise. - -2002-09-26 Kazu Hirata - - * varasm.c (force_data_section): Remove. - (assemble_constant_align): Likewise. - * output.h: Remove corresponding prototypes. - -2002-09-26 Roger Sayle - - * stmt.c (expand_exit_loop_if_false): Expand a simple conditional - jump, if the loop to exit is the top of the current nesting stack. - -2002-09-26 Torbjorn Granlund - - * libgcc2.c (fixunsdfdi, fixunssfdi): Rewrite, avoiding `long long' - arithmetic. - -2002-09-26 David S. Miller - - PR optimization/7335 - * calls.c (emit_library_call_value_1): Passing args by reference - converts a CONST function into a PURE one. - -2002-09-26 David Edelsohn - - * dbxout.c (FORCE_TEXT): Switch to current_function_decl, not - text_section. - * xcoffout.h (DBX_STATIC_BLOCK_START): Remove explicit change to - text section. - * config/rs6000/rs6000.c (rs6000_override_options): Allow - function-sections and data-sections functionality on AIX. - -2002-09-26 David Edelsohn - Dale Johannesen - - * config/rs6000/rs6000.c (rs6000_emit_move): Insert zero-extend - in RTL for sub-word loads from memory. - -2002-09-26 Richard Henderson - - PR c/7160 - * sched-deps.c (sched_analyze_insn): Make clobber insns depend - on call insns. - -2002-09-26 Richard Henderson - - * emit-rtl.c (const_double_htab_eq): Remove unused variable. - -2002-09-26 Chris Lattner - - * ssa.c (rename_insn_1): Handle RENAME_NO_RTX correctly when - handling undefined values. - -2002-09-26 Richard Henderson - - PR opt/7520 - * emit-rtl.c (active_insn_p): Consider a clobber of the - function return value to be active even after reload. - -2002-09-27 Alan Modra - - * doloop.c (doloop_modify_runtime ): Adjust - by absolute loop increment, not loop increment. - -2002-09-26 Kazu Hirata - - * c-common.h: Follow spelling conventions. - * cpplex.c: Likewise. - * cpplib.h: Likewise. - * gthr-dce.h: Likewise. - * gthr-posix.h: Likewise. - * optabs.c: Likewise. - * output.h: Likewise. - * profile.c: Likewise. - * protoize.c: Likewise. - * ra-rewrite.c: Likewise. - * real.c: Likewise. - * recog.c: Likewise. - * reg-stack.c: Likewise. - * regclass.c: Likewise. - * regmove.c: Likewise. - * reload.c: Likewise. - * reload.h: Likewise. - * reload1.c: Likewise. - * reorg.c: Likewise. - * resource.c: Likewise. - * rtl.h: Likewise. - * rtlanal.c: Likewise. - -2002-09-26 Steve Ellcey - - * config/ia64/ia64.c (ia64_expand_load_address): Ensure correct mode - for symbol address. - -2002-09-24 Eric Christopher - - * config/mips/elf.h: Add HANDLE_SYSV_PRAGMA. - * config/mips/elf64.h: Ditto. - -2002-09-24 Eric Christopher - - * except.c (expand_builtin_extract_return_address): Handle case - where Pmode != ptr_mode. - -2002-09-26 Steve Ellcey - - * config/ia64/hpux.h (ASM_OUTPUT_EXTERNAL_LIBCALL): New - -2002-09-26 Steve Ellcey - - * config/ia64/hpux.h (TARGET_DEFAULT): Include TARGET_ILP32. - -2002-09-26 Igor Shevlyakov - - * combine.c (simplify_set): Don't call to force_to_mode if size - of integer type is larger than HOST_BITS_PER_WIDE_INT. - -2002-09-26 Janis Johnson - - * Makefile.in (qmtest-g++): Fix file path. - -2002-09-26 Ulrich Weigand - - * expr.c (expand_expr) [MINUS_EXPR]: Convert A - const to - A + (-const) on RTX level, even for unsigned types. - -2002-09-26 Ulrich Weigand - - * reload.c (dup_replacements): New function. - (find_reloads): Use it to duplicate replacements at the top level - of match_dup operands. - -2002-09-26 Miles Bader - - * v850.md ("length"): Change default value to 4. - -2002-09-26 Kazu Hirata - - * ChangeLog.1: Follow spelling conventions. - * ChangeLog.4: Likewise. - * ChangeLog.6: Likewise. - * FSFChangeLog.11: Likewise. - * doc/cpp.texi: Likewise. - * doc/invoke.texi: Likewise. - * doc/tm.texi: Likewise. - -2002-09-26 Nick Clifton - - * config.gcc: Add x prefix to v850e case for handling - --with-cpu=v850e. - -2002-09-25 Zack Weinberg - - * gcc.c (input_suffix_matches, switch_matches, - mark_matching_switches, process_marked_switches, - process_brace_body): New functions - split from handle_braces. - (handle_braces): Rewrite; handle %{S:X;T:Y;:D} syntax; accept - and ignore whitespace in more places. - (specs documentation comment): Document %{S:X;T:Y;:D}. - Clarify other %{...} docs. - * doc/invoke.texi: Document %{S:X;T:Y;:D}. Clarify other - %{...} docs. - - * config/arm/aof.h (LINK_SPEC): Change %{ov*,*} to %{ov*}. - * config/rs6000/sysv4.h: Use N-way choice spec syntax. - -2002-09-25 David S. Miller - - PR target/7842 - * config/sparc/sparc.c (set_extends): SImode ASHIFT does not - extend. - -2002-09-25 Richard Henderson - - * emit-rtl.c (const_double_htab_eq): Distinguish integer and - fp CONST_DOUBLE; use real_identical. - -2002-09-25 Mark Mitchell - - * doc/invoke.texi: Add more -Wabi examples. - -2002-09-25 Richard Sandiford - - * config/mips/mips.h (TARGET_MIPS4100): Add missing bracket. - -2002-09-24 Nathan Sidwell - - * profile.c (end_branch_prob): Only look for __gcov_init on - weak-enabled native compilers. - -2002-09-24 Denis Chertykov - - * config/ip2k/ip2k.c (function_epilogue): Fix wrong numbers in - cases of optimizing "add sp,w" to "inc sp". - -2002-09-24 Adam Nemet - - * config/arm/arm.c (thumb_unexpanded_epilogue): Don't generate - epilogue for naked functions. - -2002-09-24 Adam Nemet - Nick Clifton - - * config/arm/arm.h (THUMB_FUNCTION_PROFILER): Remove. - (FUNCTION_PROFILER): Only invoke THUMB_FUNCTION_PROFILER if it - is defined. - -2002-09-24 Ulrich Weigand - - * config/s390/s390.c (preferred_la_operand_p): New function. - * config/s390/s390-protos.h (preferred_la_operand_p): Declare it. - * config/s390/s390.md ("addaddr_esame", "*la_ccclobber"): Replace by ... - ("*la_64_cc", "*la_31_cc", splitters): ... these. - ("*la_31"): Deactivate for TARGET_64BIT. - ("*la_31_and", "*la_31_and_cc"): New. - -2002-09-24 Kaveh R. Ghazi - - * real.h (real_value): Make `exp' explicitly signed. - -2002-09-24 Kazu Hirata - - * config/elfos.h: Follow spelling conventions. - * config/alpha/alpha.h: Likewise. - * config/arc/arc.h: Likewise. - * config/arm/arm.md: Likewise. - * config/avr/avr.h: Likewise. - * config/cris/cris.md: Likewise. - * config/d30v/d30v.h: Likewise. - * config/frv/frv.c: Likewise. - * config/frv/frv.h: Likewise. - * config/h8300/h8300.c: Likewise. - * config/h8300/h8300.h: Likewise. - * config/h8300/h8300.md: Likewise. - * config/i386/cygwin.h: Likewise. - * config/i386/i386.h: Likewise. - * config/i386/sysv3.h: Likewise. - * config/i960/i960.h: Likewise. - * config/ia64/ia64.h: Likewise. - * config/ia64/ia64.md: Likewise. - * config/ip2k/ip2k.h: Likewise. - * config/m32r/m32r.h: Likewise. - * config/m68k/m68k.h: Likewise. - * config/m88k/m88k.h: Likewise. - * config/mcore/mcore.c: Likewise. - * config/mcore/mcore.h: Likewise. - * config/mcore/mcore.md: Likewise. - * config/mips/mips.h: Likewise. - * config/mmix/mmix.h: Likewise. - * config/mmix/mmix.md: Likewise. - * config/ns32k/netbsd.h: Likewise. - * config/ns32k/ns32k.h: Likewise. - * config/ns32k/ns32k.md: Likewise. - * config/pa/pa.h: Likewise. - * config/romp/romp.h: Likewise. - * config/rs6000/rs6000.h: Likewise. - * config/rs6000/rs6000.md: Likewise. - * config/sparc/sparc.h: Likewise. - * config/stormy16/stormy-abi: Likewise. - * config/stormy16/stormy16.h: Likewise. - * config/vax/vax.h: Likewise. - -2002-09-23 Kazu Hirata - - * config/alpha/alpha.h: Remove commented-out macro - definitions of HAVE_{POST|PRE}_{INC|DEC}REMENT. - * config/avr/avr.h: Likewise. - * config/d30v/d30v.h: Likewise. - * config/dsp16xx/dsp16xx.h: Likewise. - * config/i370/i370.h: Likewise. - * config/i386/i386.h: Likewise. - * config/i960/i960.h: Likewise. - * config/m68k/m68k.h: Likewise. - * config/m88k/m88k.h: Likewise. - * config/mips/mips.h: Likewise. - * config/ns32k/ns32k.h: Likewise. - * config/pdp11/pdp11.h: Likewise. - * config/romp/romp.h: Likewise. - * config/rs6000/rs6000.h: Likewise. - * config/s390/s390.h: Likewise. - * config/sh/sh.h: Likewise. - * config/sparc/sparc.h: Likewise. - * config/stormy16/stormy16.h: Likewise. - * config/vax/vax.h: Likewise. - -2002-09-23 Kazu Hirata - - * function.c (push_temp_slots_for_block): Remove. - (push_temp_slots_for_target): Likewise. - (get_target_temp_slot_level): Likewise. - (set_target_temp_slot_level): Likewise. - (get_first_block_beg): Likewise. - * function.h: Remove corresponding prototypes. - -2002-09-23 Zack Weinberg - - * version.c (version_string): Now const char[]. - * version.h: Update to match. - -2002-09-23 Richard Henderson - - * config/i386/i386.h (MASK_ACCUMULATE_OUTGOING_ARGS_SET, MASK_MMX_SET, - MASK_SSE_SET, MASK_SSE2_SET, MASK_3DNOW_SET, MASK_3DNOW_A_SET): Kill. - (TARGET_SWITCHES): Don't reference them. - * config/i386/i386.c (override_options): Use target_flags_explicit - to examine bits set by the user. - -2002-09-23 Dale Johannesen - - * dbxout.c (dbxout_parms): Set current_sym_code for params - passed on stack by invisible reference. - -2002-09-23 Richard Earnshaw - - * arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Always allocate - at least one byte of space. - -2002-09-23 Mark Mitchell - - * c-common.h (flag_abi_version): Fix typo in comment. - * doc/invoke.texi (flag_abi_version): Document default value. - -2002-09-23 Hans-Peter Nilsson - - * doc/extend.texi (Extended Asm): Clarify that overlap between - asm-declared register variables used in an asm and the asm clobber - list is not allowed. - * stmt.c (decl_conflicts_with_clobbers_p): New function. - (expand_asm_operands): Keep track of clobbered registers. Call - decl_conflicts_with_clobbers_p for each input and output operand. - If no conflicts found before, also do conflict sanity check when - emitting clobbers. - -2002-09-23 Richard Henderson - - * c-common.c (cpp_define_data_format): Remove. - (cb_register_builtins): Don't define __WCHAR_BIT__, __SHRT_BIT__, - __INT_BIT__, __LONG_BIT__, __LONG_LONG_BIT__, __FLOAT_BIT__, - __DOUBLE_BIT__, __LONG_DOUBLE_BIT__. - * doc/cpp.texi: Don't document them either. - (__SCHAR_MAX__, __SHRT_MAX__, __INT_MAX__, __LONG_MAX__, - __LONG_LONG_MAX__): Document. - (__TARGET_FLOAT_FORMAT__): Remove. - -2002-09-23 Richard Henderson - - * real.c (do_multiply): Normalize U before addition. - -2002-09-23 Mark Mitchell - - * c-common.c (flag_abi_version): New variable. - * c-common.h (flag_abi_version): Declare it. - * c-opts.c (missing_arg): Add -fabi-version. - (c_common_decode_option): Process -fabi-version. - * doc/invoke.texi (-fabi-version): Document it. - (-Wabi): Add information about bit-fields in unions. - -2002-09-22 Roger Sayle - - * expr.c (STORE_BY_PIECES_P): New target macro. - (can_store_by_pieces, store_by_pieces): Use STORE_BY_PIECES_P - instead of MOVE_BY_PIECES_P. - * doc/tm.texi: Document this new macro. - -2002-09-22 Jason Thorpe - - * config/mips/netbsd.h (SUBTARGET_ASM_SPEC): Always pass -KPIC - unless -fno-pic or -fno-PIC is specified. - -2002-09-22 John David Anglin - - * c-common.c (preprocessing_trad_p): Define. - * pa-hiux.h, pa-hpux.h, pa-hpux7.h (CPP_PREDEFINES): Delete. - (TARGET_OS_CPP_BUILTINS, SUBTARGET_SWITCHES): Define. - * pa-hpux10.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC): Define. - * pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define. - * pa-linux.h (CPP_PREDEFINES): Delete. - (TARGET_OS_CPP_BUILTINS, CPP_SPEC): Define. - * pa32-linux.h, pa64-linux.h (CPP_SPEC): Delete. - * pa-osf.h, pa-pro-end.h, rtems.h (CPP_PREDEFINES): Delete. - (TARGET_OS_CPP_BUILTINS): Define. - * pa.h (MASK_SIO, TARGET_SIO, TARGET_PA_10): Define. - (TARGET_SWITCHES): Reformat. Use N_() macro. Add SUBTARGET_SWITCHES. - (SUBTARGET_SWITCHES): Provide default definition. - (TARGET_OPTIONS): Reformat. Use N_() macro. - (CPP_PA10_SPEC, CPP_PA11_SPEC, CPP_PA20_SPEC, CPP_64BIT_SPEC, - CPP_CPU_DEFAULT_SPEC, CPP_64BIT_DEFAULT_SPEC, SUBTARGET_EXTRA_SPECS, - EXTRA_SPECS, CPP_SPEC, CPLUSPLUS_CPP_SPEC, CPP_PREDEFINES): Delete. - (TARGET_CPU_CPP_BUILTINS): Define. - (TARGET_OS_CPP_BUILTINS): Define for BSD-like systems. - * doc/invoke.texi (msio, mwsio): Document new hppa options. - * doc/tm.texi (TARGET_CPU_CPP_BUILTINS): Document macro - preprocessing_trad_p(). - -2002-09-22 Jason Thorpe - - * doc/install.texi: Document behavior of --with-headers and - --with-libs when arguments are omitted. - -2002-09-22 Kazu Hirata - - * dbxout.c: Follow spelling conventions. - * defaults.h: Likewise. - * df.c: Likewise. - * diagnostic.h: Likewise. - * doloop.c: Likewise. - * dwarf2out.c: Likewise. - * dwarfout.c: Likewise. - * emit-rtl.c: Likewise. - * except.c: Likewise. - * explow.c: Likewise. - * expmed.c: Likewise. - * expr.c: Likewise. - * expr.h: Likewise. - * flags.h: Likewise. - * flow.c: Likewise. - * fold-const.c: Likewise. - * function.c: Likewise. - * function.h: Likewise. - * gcc.c: Likewise. - * gcov-io.h: Likewise. - * gcov.c: Likewise. - * gcse.c: Likewise. - * genattrtab.c: Likewise. - * genconfig.c: Likewise. - * genrecog.c: Likewise. - * ggc-page.c: Likewise. - * ggc.h: Likewise. - * global.c: Likewise. - * gthr-win32.h: Likewise. - * integrate.c: Likewise. - * jump.c: Likewise. - * langhooks.c: Likewise. - * langhooks.h: Likewise. - * line-map.h: Likewise. - * local-alloc.c: Likewise. - * longlong.h: Likewise. - * loop.c: Likewise. - * loop.h: Likewise. - -Tue Aug 27 22:26:35 CEST 2002 Jan Hubicka - - * i386.h (BIGGEST_FIELD_ALIGNMENT): Set proper default for x86_64. - -Tue Aug 27 20:07:01 CEST 2002 Jan Hubicka - - * i386.c (overwrite_options): Set -mpreferred-stack-boundary to 128 - for -Os/TARGET_64BIT too. - -2002-09-21 Kazu Hirata - - * ChangeLog: Follow spelling conventions. - * ChangeLog.0: Likewise. - * ChangeLog.1: Likewise. - * ChangeLog.2: Likewise. - * ChangeLog.3: Likewise. - * ChangeLog.4: Likewise. - * ChangeLog.5: Likewise. - * ChangeLog.6: Likewise. - * FSFChangeLog.10: Likewise. - * FSFChangeLog.11: Likewise. - * alias.c: Likewise. - * basic-block.h: Likewise. - * c-aux-info.c: Likewise. - * c-common.c: Likewise. - * c-common.h: Likewise. - * c-decl.c: Likewise. - * c-format.c: Likewise. - * c-semantics.c: Likewise. - * c-typeck.c: Likewise. - * calls.c: Likewise. - * cfganal.c: Likewise. - * cfgloop.c: Likewise. - * collect2.c: Likewise. - * combine.c: Likewise. - * conflict.c: Likewise. - * cppexp.c: Likewise. - * cppfiles.c: Likewise. - * cpphash.h: Likewise. - * cppinit.c: Likewise. - * cpplex.c: Likewise. - * cpplib.c: Likewise. - * cpplib.h: Likewise. - * cppmacro.c: Likewise. - * cse.c: Likewise. - -2002-09-21 Richard Earnshaw - - * netbsd-aout.h (NETBSD_LINK_SPEC_AOUT): New, takes old definition of - LINK_SPEC. - (LINK_SPEC): Define to NETBSD_LINK_SPEC_AOUT. - * arm/netbsd.h (SUBTARGET_EXTRA_SEPCS): Add NETBSD_LINK_SPEC_AOUT. - (LINK_SPEC): Rework to use NETBSD_LINK_SPEC_AOUT). - -2002-09-21 Richard Earnshaw - - PR opt/7930 - * cse.c (fold_rtx): Calculate old_cost before we fold each - operand. - -2002-09-21 Richard Henderson - - * c-common.c (cpp_define_data_format): Remove __GCC_LITTLE_ENDIAN__, - __GCC_BIG_ENDIAN__, __TARGET_BITS_ORDER__, __TARGET_BYTES_ORDER__, - __TARGET_INT_WORDS_ORDER__, __TARGET_FLOAT_WORDS_ORDER__, - __TARGET_USES_VAX_F_FLOAT__, __TARGET_USES_VAX_D_FLOAT__, - __TARGET_USES_VAX_G_FLOAT__, __TARGET_USES_VAX_H_FLOAT__. - * doc/cpp.texi: Don't document them. - -2002-09-21 Richard Henderson - - * c-common.c (builtin_define_float_constants): Use real_format - to get the floating-point parameters. - -2002-09-21 Richard Henderson - - * real.c (struct real_format): Move to real.h. - (real_format_for_mode): Rename from fmt_for_mode; update all users; - initialize with ieee defaults. - (real_to_target_fmt, real_from_target_fmt): New. - (ieee_single_format, ieee_double_format, ieee_extended_motorola_format, - ieee_extended_intel_96_format, ieee_extended_intel_128_format, - ieee_quad_format, i370_single_format, i370_double_format, - c4x_single_format, c4x_extended_format): Rename from s/_format//. - (ieee_quad_format): Fix emin. - (format_for_size, init_real_once): Remove. - * real.h (struct real_format): Move from real.c. - (real_format_for_mode): Declare. - (real_to_target_fmt, real_from_target_fmt): Declare. - (ieee_single_format, ieee_double_format, ieee_extended_motorola_format, - ieee_extended_intel_96_format, ieee_extended_intel_128_format, - ieee_quad_format, vax_f_format, vax_d_format, vax_g_format, - i370_single_format, i370_double_format, c4x_single_format, - c4x_extended_format): Declare. - * toplev.c (do_compile): Don't call init_real_once. - - * defaults.h (INTEL_EXTENDED_IEEE_FORMAT): Remove. - * doc/tm.texi (INTEL_EXTENDED_IEEE_FORMAT): Remove. - - * config/alpha/alpha.h (TARGET_FLOAT_FORMAT): Define. - * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): 64, if vax mode. - * config/alpha/alpha.c (override_options): Set real_format_for_mode - for VAX, if enabled. - - * config/c4x/c4x.c (c4x_override_options): Set real_format_for_mode - for C4X. - - * config/i370/i370.h (OVERRIDE_OPTIONS): New. - * config/i370/i370.c (override_options): New. - * config/i370/i370-protos.h: Update. - - * config/i386/i386.c (override_options): Set real_format_for_mode - for Intel 80-bit extended. - * config/i386/i386.h (INTEL_EXTENDED_IEEE_FORMAT): Remove. - - * config/i960/i960.h (LONG_DOUBLE_TYPE_SIZE): Mind -mlong-double-64. - (OVERRIDE_OPTIONS): Move code... - * config/i960/i960.c (i960_initialize): ... here. Set - real_format_for_mode for Intel 80-bit extended. - - * config/ia64/ia64.c (ia64_override_options): Set real_format_for_mode - for Intel 80-bit extended, if enabled. - - * config/m68k/m68k.c (override_options): Set real_format_for_mode - for Motorola 96-bit extended. - - * config/vax/vax.h (OVERRIDE_OPTIONS): New. - * config/vax/vax.c (override_options): New. - * config/vax/vax-protos.h: Update. - -2002-09-21 Alan Modra - - * config/rs6000/rs6000.md (builtin_setjmp_receiver): Add - #if TARGET_MACHO. - - * config/rs6000/rs6000.md (floatdisf2_internal2): Combine - insns. Supply missing clobber of scratch reg. - -2002-09-20 Kazu Hirata - - * config/m32r/m32r.c: Follow spelling conventions. - * config/m32r/m32r.h: Likewise. - * config/m32r/m32r.md: Likewise. - * config/m68k/m68k.c: Likewise. - * config/m88k/m88k.c: Likewise. - * config/mcore/mcore.c: Likewise. - * config/mips/mips.c: Likewise. - * config/mips/mips.h: Likewise. - * config/mmix/mmix.c: Likewise. - * config/mn10200/mn10200.c: Likewise. - * config/ns32k/ns32k.h: Likewise. - * config/pa/pa.c: Likewise. - * config/pa/pa64-linux.h: Likewise. - * config/pdp11/pdp11.h: Likewise. - * config/romp/romp.c: Likewise. - * config/romp/romp.h: Likewise. - * config/rs6000/eabi.asm: Likewise. - * config/rs6000/linux64.h: Likewise. - * config/rs6000/rs6000.c: Likewise. - * config/rs6000/rs6000.h: Likewise. - * config/rs6000/rs6000.md: Likewise. - * config/rs6000/sysv4.h: Likewise. - * config/rs6000/xcoff.h: Likewise. - -2002-09-20 Jim Wilson - - * config/v850/v850/lib1funcs.asm (__muldi3): Change r5 to r28. - -2002-09-20 Jakub Jelinek - - * config/i386/i386.md (UNSPEC_GOTNTPOFF, UNSPEC_INDNTPOFF): New. - * config/i386/i386.c (legitimate_pic_address_disp_p): Handle - UNSPEC_GOTNTPOFF and UNSPEC_INDNTPOFF like UNSPEC_GOTTPOFF. - (legitimate_address_p): Likewise. - (legitimize_address): Use @gotntpoff and @indntpoff. - (output_pic_addr_const): Handle UNSPEC_GOTNTPOFF and UNSPEC_INDNTPOFF. - (output_addr_const_extra): Likewise. - -2002-09-20 Jim Wilson - - * combine.c (try_combine): When split an instruction pair, where the - first has a sign_extend src, verify that the src and dest modes match. - -2002-09-20 Richard Henderson - - * config/mips/mips.c (dfhigh, dflow, sfhigh, sflow): Remove. - (override_options): Do not initialize them. - (mips_const_double_ok): Allow no fp constants except zero, - and not even that for mips16. - (const_float_1_operand): Use dconst1. - * config/mips/mips.md (movsf, movsf_internal1, movsf_internal2, - movdf, movdf_internal1, movdf_internal1a, movdf_internal2): - Don't allow arbitrary constants; fix predicates and C constraint. - -2002-09-20 Neil Booth - - * cppmacro.c: Don't warn about function-like macros without - '(' during pre-expansion. - -2002-09-20 Jim Wilson - - * config/v850/v850.c (current_function_anonymous_args): Delete. - (expand_prologue): Use current_function_args_info.anonymous_args. - (expand_epilogue): Delete use of current_function_anonymous_args. - * config/v850/v850.h (struct cum_arg): Add anonymous_args field. - (INIT_CUMULATIVE_ARGS): Clear anonymous_args field. - (current_function_anonymous_args): Delete extern declaration. - (SETUP_INCOMING_VARARGS): Set anonymous_args field. - -2002-09-20 Geoffrey Keating - - * config/rs6000/rs6000.c (rs6000_emit_prologue): Update for change - to load_macho_picbase. - * config/rs6000/rs6000.md: Document Darwin-specific unspec IDs. - (load_macho_picbase): Take the symbol to use as a parameter. - (macho_correct_pic): New insn. - (builtin_setjmp_reciever): On Darwin, restore the PIC register. - - * config/rs6000/rs6000.h (ELIMINABLE_REGS): Use - RS6000_PIC_OFFSET_TABLE_REGNUM rather than hardcoding 30. - (CAN_ELIMINATE): Likewise. - (INITIAL_ELIMINATION_OFFSET): Likewise. - (TOC_REGISTER): Likewise. - -2002-09-20 Richard Henderson - - * real.c (real_hash): New. - * real.h: Declare it. - * cse.c (canon_hash): Use it. - * cselib.c (hash_rtx): Likewise. - * emit-rtl.c (const_double_htab_hash): Likewise. - * rtl.h (CONST_DOUBLE_REAL_VALUE): New. - * varasm.c (struct rtx_const): Reduce vector size; separate - integer and fp vectors. - (HASHBITS): Remove. - (const_hash_1): Rename from const_hash. Use real_hash. Do not - take modulus MAX_HASH_TABLE. - (const_hash): New. Do take modulus MAX_HASH_TABLE. - (output_constant_def): Do not take modulus MAX_HASH_TABLE. - (SYMHASH): Don't use HASHBITS. - (decode_rtx_const): Copy only active bits from REAL_VALUE_TYPE. - Fix CONST_VECTOR thinko wrt fp vectors. Fix kind comparison. - (simplify_subtraction): Fix kind comparison. - (const_hash_rtx): Return unsigned int. Don't use HASHBITS. - Use a union to pun integer array. - * config/rs6000/rs6000.c (rs6000_hash_constant): Use real_hash; - only hash two words of integral CONST_DOUBLE. - -2002-09-20 Steve Ellcey - - * config/ia64/hpux.h (STARTFILE_SPEC): Modify. - (STARTFILE_PREFIX_SPEC): New. - (LINK_SPEC): Modify. - (LIB_SPEC): Modify. - (LIBGCC_SPEC): New. - -2002-09-20 Jakub Jelinek - - * config/i386/i386.c (legitimate_pic_address_disp_p): Allow - UNSPEC_NTPOFF and UNSPEC_DTPOFF to be offsetted by constant. - -2002-09-20 Jeroen Dobbelaere - - * config/arm/arm.md (sign_extract_onebit, not_signextract_onebit): - Add clobber of the condition code register. - -2002-09-20 Richard Henderson - - * real.c (do_fix_trunc): Static. - (encode_ieee_single, encode_ieee_double, encode_ieee_extended, - encode_ieee_quad, encode_vax_f, encode_vax_d, encode_vax_g, - encode_i370_single, encode_i370_double, encode_c4x_single, - encode_c4x_extended): Add default abort case. - -2002-09-20 Richard Henderson - - * real.h (enum real_value_class, SIGNIFICAND_BITS, EXP_BITS, - MAX_EXP, SIGSZ, SIG_MSB, struct real_value): Move from real.c. - (struct realvaluetype): Remove. - (REAL_VALUE_TYPE): Use struct real_value. - (REAL_VALUE_TYPE_SIZE): Use SIGNIFICAND_BITS. - (test_real_width): New. - * real.c: Global replace struct real_value with REAL_VALUE_TYPE. - (real_arithmetic): Avoid hoops for REAL_VALUE_TYPE parameters. - (real_compare, real_exponent, real_ldexp, real_isinf, real_isnan, - real_isneg, real_isnegzero, real_identical, exact_real_inverse, - real_to_integer, real_to_integer2, real_to_decimal, - real_to_hexadecimal, real_from_string, real_from_integer, - real_inf, real_nan, real_2expN, real_convert, real_to_target, - real_from_target): Likewise. - * tree.h (struct tree_real_cst): Use real_value not realvaluetype. - * gengtype-yacc.y (bitfieldopt): Accept an ID as well. - -2002-09-20 Richard Henderson - - * real.h (UNKNOWN_FLOAT_FORMAT, IEEE_FLOAT_FORMAT, VAX_FLOAT_FORMAT, - IBM_FLOAT_FORMAT, C4X_FLOAT_FORMAT, TARGET_FLOAT_FORMAT): Move ... - * defaults.h: ... here. - * config/arm/arm.h, config/avr/avr.h, config/d30v/d30v.h, - config/fr30/fr30.h, config/frv/frv.h, config/ia64/ia64.h, - config/ip2k/ip2k.h, config/mips/mips.h, config/stormy16/stormy16.h, - config/xtensa/xtensa.h (TARGET_FLOAT_FORMAT): Remove. - -2002-09-20 Hans-Peter Nilsson - - * config/mmix/mmix.md ("negdf2"): Rewrite. - ("*expanded_negdf2"): New. - -2002-09-19 Jim Wilson - - * combine.c (simplify_set): When optimizing a subreg src with a - cc0 dest, use GET_MODE (src) for mask instead of inner_mode. - -2002-09-19 Dale Johannesen - * combine.c (make_extraction): Don't create - invalid subreg. - -2002-09-19 Roger Sayle - - * tree.c (integer_nonzerop): New predicate for nonzero integers. - * tree.h (integer_nonzerop): Add function prototype. - * stmt.c (expand_end_loop): Don't rotate the loop when there - are no instructions in the test, i.e. the loop is unconditional. - (expand_exit_loop_if_false): Optimize RTL generation of loop - tests when the condition is always true or always false. - * c-semantics.c (genrtl_do_stmt): Optimize RTL generation of - do-loops when the condition is always true. - (genrtl_for_stmt): Optimize RTL generation of for-loops when - the for-expression is empty. - -2002-09-19 Zack Weinberg - - * gcc.c (use_pipes): New flag. - (process_command): Set it. Adjust check for -pipe conflicting - with -time or -save-temps. - (do_spec_1): Use it. Handle %|SUFFIX, %mSUFFIX, and - % - - * config/s390/s390.c (addr_generation_dependency_p): Handle SUBREG - and STRICT_LOW_PART within SET_DEST. - * config/s390/s390.md ("*extractqi", "*extracthi"): New insns with - splitters, replacing pre-reload splitters. - ("*zero_extendhisi2_31", "*zero_extendqisi2_31", - "*zero_extendqihi2_31"): New insns. - ("*zero_extendqihi2_64"): Do not clobber CC. - -2002-09-18 Devang Patel - - * cp/cp-tree.h: New prototype for walk_vtables(). - * cp/decl.c (walk_vtables_r): New function. - (struct cp_binding_level): Add new members, namespaces, - names_size and vtables. - (add_decl_to_level): Add decl in namespaces or vtables - chain, if conditions match. - (walk_vtables): New function. - (walk_namespaces_r): Travers separate namespace chain - for namespace decls. - (wrapup_globals_for_namespace): Use names_size instead - of list_length(). - * cp/decl2.c (finish_file): Use walk_vtables() instead of - walk_globals() to walk vtable decls. - -2002-09-19 Steve Ellcey - - * config/ia64/hpux.h (CTORS_SECTION_ASM_OP): New. - (DTORS_SECTION_ASM_OP): Ditto. - (READONLY_DATA_SECTION_ASM_OP): Moved. - (DATA_SECTION_ASM_OP): New. - (SDATA_SECTION_ASM_OP): New. - (BSS_SECTION_ASM_OP): New. - (SBSS_SECTION_ASM_OP): New. - (TEXT_SECTION_ASM_OP): New. - -2002-09-19 Kazu Hirata - - * config/fp-bit.c: Follow spelling conventions. - * config/d30v/d30v.c: Likewise. - * config/d30v/d30v.h: Likewise. - * config/fr30/fr30.c: Likewise. - * config/fr30/fr30.h: Likewise. - * config/fr30/fr30.md: Likewise. - * config/frv/frv.c: Likewise. - * config/frv/frv.h: Likewise. - * config/h8300/h8300.c: Likewise. - * config/h8300/lib1funcs.asm: Likewise. - * config/i370/i370.c: Likewise. - * config/i386/i386.h: Likewise. - * config/i386/i386.md: Likewise. - * config/i386/pentium.md: Likewise. - * config/i386/winnt.c: Likewise. - * config/i960/i960.c: Likewise. - * config/ia64/ia64.h: Likewise. - * config/ip2k/ip2k.c: Likewise. - * config/ip2k/ip2k.h: Likewise. - * config/ip2k/ip2k.md: Likewise. - * config/ip2k/libgcc.S: Likewise. - -2002-09-19 Stephen Clarke - - * config/sh/sh.h (UNSPEC_GOTOFF_P): Define. - (GOTOFF_P): Extend to allow gotoff plus constant. - -2002-09-18 Richard Henderson - - * ifcvt.c (noce_process_if_block): Correctly detect X modified - with INSN_B before COND_EARLIEST. Don't check A and B for - modification in condition range. Reorder INSN_B for A==B properly. - (if_convert): Iterate until no matches for a block. - -2002-09-18 Richard Henderson - - * calls.c (store_one_arg): Rename default_align to parm_align; - always adjust parm_align for downward padding. - -2002-09-18 Richard Henderson - - * toplev.c (backend_init): Move init_real_once invocation ... - (do_compile): ... here. - -2002-09-18 Richard Henderson - - * sibcall.c (optimize_sibling_and_tail_recursive_call): Also remove - RTX_UNCHANGING_P markers for successful tail-recursive replacement. - -2002-09-18 Richard Henderson - - * real.c (round_for_format): Collect sticky as unsigned long, not bool. - -2002-09-19 Alan Modra - - * config/rs6000/rs6000.md: (floatdisf2): Rename to - floatdisf2_internal1. - (floatdisf2): New define_expand. - (floatdisf2_internal2): Likewise. - -2002-09-18 Richard Henderson - - * real.c (sticky_rshift_significand): Collect sticky as - unsigned long, not bool. - -2002-09-18 Ulrich Weigand - - * config/s390/s390.c (s390_address_cost): New function. - config/s390/s390-protos.h (s390_address_cost): Add prototype. - config/s390/s390.h (ADDRESS_COST): Call s390_address_cost. - (RTX_COST): Use COSTS_N_INSNS. - -2002-09-18 Douglas Rupp - Donn Terry - - * stor-layout.c (place_field): Handle alignment of whole - structures when MSVC compatible bitfields are involved. - Change method of computing location of MS bitfields to - be compatible with #pragma pack(n). - - * tree.h (record_layout_info): Add new field - remaining_in_alignment. - - * doc/tm.texi: (TARGET_MS_BITFIELD_LAYOUT_P): Update. - (pragma pack): Add paragraph on MSVC bitfield packing. - -2002-09-18 Richard Earnshaw (reanrsha@arm.com) - - PR optimization/7967 - * arm.md (ne_zeroextractsi): Add clobber of the condition code - register. - -2002-09-18 Kazu Hirata - - * config/s390/s390.c: Follow spelling conventions. - * config/sh/lib1funcs.asm: Likewise. - * config/sh/sh.c: Likewise. - * config/sh/sh.h: Likewise. - * config/sparc/sparc.c: Likewise. - * config/sparc/sparc.h: Likewise. - * config/sparc/sparc.md: Likewise. - * config/stormy16/stormy16.c: Likewise. - * config/stormy16/stormy16.h: Likewise. - * config/v850/v850.c: Likewise. - * config/v850/v850.h: Likewise. - * config/vax/vax.c: Likewise. - * config/vax/vax.h: Likewise. - -2002-09-18 Nick Clifton - - * config/rs60000/rs6000.c (rs6000_emit_move): Handle V1DImode moves. - * config/rs60000/rs6000.c (SPE_VECTOR_MODE): Include V1DImode. - * config/rs6000/spe.md (movv1di, movv1di_internal): New patterns. - -2002-09-17 Kazu Hirata - - * function.c (max_parm_reg_num): Remove. - * stmt.c (in_control_zone_p, stmt_loop_nest_empty, - drop_through_at_end_p, move_cleanups_up, - expand_end_case_dummy, case_index_expr_type): Likewise. - * stor-layout.c (pos_from_byte): Likewise. - * tree.c (chain_member_value, chain_member_purpose, listify, - tree_int_cst_msb, index_type_equal): Likewise. - * tree.h: Remove prototypes for unused functions. - -2002-09-17 Zack Weinberg - - * ABOUT-GCC-NLS: Remove reference to enquire, and out-of-date - statement that the only translation is to en_UK. - -2002-09-17 Kazu Hirata - - * config/alpha/alpha.c: Follow spelling conventions. - * config/alpha/alpha.h: Likewise. - * config/alpha/alpha.md: Likewise. - * config/arc/arc.h: Likewise. - * config/arm/arm.c: Likewise. - * config/arm/arm.h: Likewise. - * config/arm/arm.md: Likewise. - * config/arm/pe.c: Likewise. - * config/arm/unknown-elf.h: Likewise. - * config/avr/avr.c: Likewise. - * config/avr/avr.h: Likewise. - * config/c4x/c4x.c: Likewise. - * config/cris/cris.c: Likewise. - * config/cris/cris.h: Likewise. - -2002-09-17 Samuel Figueroa - - * final.c (final_scan_insn): Use new macro ASM_OUTPUT_ALIGN_WITH_NOP. - * config/sparc/sparc.h (ASM_OUTPUT_ALIGN_WITH_NOP) New macro. - * doc/tm.texi (ASM_OUTPUT_ALIGN_WITH_NOP) New description. - -2002-09-17 Dale Johannesen - - * cfgcleanup.c (try_forward_edges): Do not forward a - branch to just after a loop exit before loop optimization; - this interfered with doloop detection. - -2002-09-17 Nick Clifton - - * config/arm/arm.c (output_return_instruction): Do not - writeback the stack pointer when it is being loaded. - (arm_output_epilogue): Likewise. - -2002-09-17 Kazu Hirata - - * optabs.c (prepare_cmp_insn): Let emit_library_call_value - generate a pseudo reg that receives the result of a libcall. - (prepare_float_lib_cmp): Likewise. - -2002-09-17 Steve Ellcey - - * config/ia64/elf.h: Remove CPP_PREDEFINES. - -Tue Sep 17 13:58:04 2002 Nicola Pero - - Fix PR/7014 and related objc bugs: - * c-typeck.c (comp_target_types): Added a reflexive argument. - Pass it to ObjC when/if calling objc_comptypes(). Updated all - callers to provide the appropriate reflexive argument. - * objc/objc-act.c (objc_comptypes): Carefully checked and fixed - typechecking for all cases of comparisons and assignments, - particularly the obscure and less common ones involving protocols. - -2002-09-17 Nick Clifton - - * machmode.def (V1DImode): New mode. A single element vector. - * tree.h (TI_UV1DI_TYPE, TI_V1DI_TYPE): New tree_index enums. - (unsigned_V1DI_type_node, V1D1_type_node): New type nodes. - * tree.c (build_common_tree_nodes_2): Build - unsigned_V1DI_type_node and V1D1_type_node. - * c-common.c (c_common_type_for_mode): Return - unsigned_V1DI_type_node or V1D1_type_node for V1DImode. - * rtl.c (class_narrowest_): Start integer vector nodes with V1DImode. - -Tue Sep 17 13:40:13 2002 Nicola Pero - - * doc/objc.texi (Constant string objects): Extended documentation - to make clear that the constant string class ivar layout is - completely fixed. - -2002-09-17 Roger Sayle - - * cfgrtl.c (flow_delete_block_noexpunge): Delete orphaned - NOTE_INSN_LOOP_CONT notes when deleting basic blocks. - -2002-09-16 Volker Reichelt - - * config/mips/mips.c (save_restore_insns): Remove unused variable. - * gcc.c (make_relative_prefix): Likewise. - * loop.c (check_final_value): Likewise. - * jump.c (init_label_info): Remove return value. - * cse.c (prev_insn): Move variable between #ifdef HAVE_cc0 ... #endif. - -2002-09-16 Kaveh R. Ghazi - - * dsp16xx.h (ASM_FORMAT_PRIVATE_NAME): Delete. - (ASM_PN_FORMAT): Define. - -2002-09-16 Kaveh R. Ghazi - - * alpha.h, alpha/vms.h, arc.h, arm/aof.h, arm/aout.h, avr.h, - c4x.h, cris.h, d30v.h, fr30.h, frv.h, h8300.h, i370.h, i386.h, - i960.h, ia64.h, ip2k.h, m32r.h, m68hc11.h, m68k/3b1.h, - m68k/hp320.h, m68k.h, m68k/mot3300.h, m68k/sgs.h, m68k/tower-as.h, - m88k.h, mcore.h, mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h, - pa.h, pdp11.h, romp.h, rs6000.h, s390/linux.h, sh.h, sparc.h, - stormy16.h, v850.h, vax.h, xtensa.h (ASM_FORMAT_PRIVATE_NAME): - Delete. - * alpha/vms.h, h8300.h, i370.h, ia64.h, m68k/3b1.h, m68k/hp320.h, - m68k/mot3300.h, m68k/sgs.h, m68k/tower-as.h, mmix.h, mn10200.h, - mn10300.h, pa.h, v850.h (ASM_PN_FORMAT): Define. - - * defaults.h (ASM_PN_FORMAT, ASM_FORMAT_PRIVATE_NAME): Define. - * doc/tm.texi (ASM_FORMAT_PRIVATE_NAME): Update documentation. - -2002-09-16 Richard Henderson - - * expr.c (emit_block_move): Set memory block size as appropriate - for the copy. - -2002-09-16 Richard Henderson - - PR fortran/3924 - * sdbout.c (sdbout_symbol): Don't handle offsets from a symbol. - -2002-09-16 Richard Henderson - - * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust SIZE - as well as OFFSET for BITPOS. - -2002-09-16 Jeff Garzik - - * config.gcc: Treat winchip_c6-*|winchip2-*|c3-* as pentium-mmx. - * config/i386/i386.c (processor_alias_table): Add winchip-c6, - winchip2 and c3. - * doc/invoke.texi: Mention new aliases. - -2002-09-16 John David Anglin - - * calls.c (store_one_arg): Set default alignment for BLKmode arguments - to BITS_PER_UNIT when ARGS_GROW_DOWNWARD and the padding direction is - downward. - * function.c (pad_below): Always compile. - (locate_and_pad_parm): If defined ARGS_GROW_DOWNWARD, pad argument to - alignment when it is not in a register or REG_PARM_STACK_SPACE is true. - Pad below when the argument is not in a register and the padding - direction is downward. - - * pa-64.h (MUST_PASS_IN_STACK): Move define to pa.h. - (PAD_VARARGS_DOWN): Define. - * pa.c (function_arg_padding): Revise padding directions to make them - compatible with the 32 and 64-bit runtime architecture documentation. - (hppa_va_arg): Add code to handle variable and size zero arguments - passed by reference on TARGET_64BIT. Reformat. - (function_arg): Use a PARALLEL for BLKmode and aggregates args on - TARGET_64BIT. Use a DImode PARALLEL for BLKmode args 5 to 8 bytes - wide when !TARGET_64BIT. Move forward check for mode==VOIDmode. - Add comments. - * pa.h (MAX_PARM_BOUNDARY): Correct define for TARGET_64BIT. - (RETURN_IN_MEMORY): Return size zero types in memory. - (FUNCTION_VALUE): Return TFmode in general registers. - (MUST_PASS_IN_STACK): Define. - (FUNCTION_ARG_BOUNDARY): Simplify. - (FUNCTION_ARG_PASS_BY_REFERENCE): Pass variable and zero sized types - by reference. - (FUNCTION_ARG_CALLEE_COPIES): Define to FUNCTION_ARG_PASS_BY_REFERENCE. - -2002-09-16 Richard Henderson - - * real.c (do_fix_trunc): New. - (real_arithmetic): Call it. - * simplify-rtx.c (simplify_unary_operation): Handle FIX - with a floating-point result mode. - -2002-09-16 Richard Henderson - - * builtin-types.def (BT_FN_FLOAT_CONST_STRING): New. - (BT_FN_DOUBLE_CONST_STRING, BT_FN_LONG_DOUBLE_CONST_STRING): New. - * builtins.def (__builtin_nan, __builtin_nanf, __builtin_nanl): New. - (__builtin_nans, __builtin_nansf, __builtin_nansl): New. - * builtins.c (fold_builtin_nan): New. - (fold_builtin): Call it. - * real.c (real_nan): Parse a non-empty string. - (round_for_format): Fix NaN significand truncation. - * real.h (real_nan): Return bool. - * doc/extend.texi: Document new builtins. - -2002-09-16 Jason Merrill - Danny Smith - - * config/i386/winnt.c (ix86_handle_dll_attribute): Set - DECL_EXTERN and TREE_PUBLIC for dllimported variables here... - (i386_pe_mark_dllimport): Not here. - -2002-09-16 Nathan Sidwell - - * c-semantics.c (genrtl_do_stmt): Cope with NULL cond. - -2002-09-16 Geoffrey Keating - - * config/rs6000/rs6000.c (build_mask64_2_operands): Suppress - warnings about unused operands when HOST_BITS_PER_WIDE_INT is - < 64. - (rs6000_emit_cmove): Use real_isinf not target_isinf. - -2002-09-16 Kazu Hirata - - * calls.c (emit_library_call_value_1): Don't refer to - hard_libcall_value. - * optabs.c (prepare_float_lib_cmp): Likewise. - -2002-09-16 Geoffrey Keating - - * ggc-common.c (ggc_mark_rtx_children_1): Update for changed name - mangling. - - The following changes are merged from pch-branch: - - * doc/gty.texi (GTY Options): Document %a. - * gengtype.c (do_scalar_typedef): New function. - (process_gc_options): Handle `length' option. - (set_gc_used_type): A pointer to an array of structures doesn't - qualify as a pointer to a structure. - (output_escaped_param): Add `%a' escape. - (write_gc_structure_fields): Allow 'desc' on array of unions. - (main): Define `uint8', `jword' and `JCF_u2' as scalars; use - do_scalar_typedef. - - * gengtype.c (enum rtx_code): Make global. - (rtx_format): Make global. - (rtx_next): New. - (gen_rtx_next): New. - (write_rtx_next): New. - (adjust_field_rtx_def): Skip fields marked by chain_next. - (open_base_files): Delete redundant prototype. - (write_enum_defn): New. - (output_mangled_typename): Correct abort call. - (write_gc_marker_routine_for_structure): Handle chain_next and - chain_prev options. - (finish_root_table): Don't output redundant \n. - (main): Call gen_rtx_next, write_rtx_next, write_enum_defn. - * c-tree.h (union lang_tree_node): Add chain_next option. - - * gengtype.h (NUM_PARAM): New definition. - (struct type): For TYPE_PARAM_STRUCT, allow multiple parameters. - * gengtype.c (find_param_structure): New. - (adjust_field_type): Handle param_is option. - (process_gc_options): Detect use_params option. Update callers. - (set_gc_used_type): Add 'param' parameter, update callers. Handle - 'use_params' option. - (open_base_files): Add splay-tree.h to list of files included. - (output_mangled_typename): New. - (write_gc_structure_fields): Update 'param' parameter to support - multiple parameters. Change name mangling. Allow parameterized - fields to have an apparent scalar type. Handle param_is options, - use_param option. - (write_gc_marker_routine_for_structure): Update for change to name - mangling. Better guess the output file for parameterized types. - (write_gc_types): Update for change to name mangling. - (write_gc_root): Update for change to name mangling. Handle (ignore) - param_is options. - * doc/gty.texi (GTY Options): Add description of param_is - options, use_params option. - * ggc.h (ggc_mark_rtx): Update for changed name mangling. - * gengtype-lex.l: Produce token for param_is. - * gengtype-yacc.y: Parse param_is. - - * gengtype.c (adjust_field_tree_exp): Don't name a variable 'rindex'. - - * rtl.c: Update comment describing rtx_format. - * rtl.h (union rtunion): Separate definition and typedef. - (struct rtx_def): Use gengtype to mark. - * Makefile.in (gengtype.o): Also depend on rtl.def. - * ggc.h (ggc_mark_rtx_children): Delete prototype. - (ggc_mark_rtx): Change to alias of gengtype-generated routine. - * ggc-common.c (ggc_mark_rtx_children): Delete. - (ggc_mark_rtx_children_1): Delete. - (gt_ggc_m_rtx_def): Delete. - * gengtype.c (adjust_field_rtx_def): New. - (adjust_field_type): Call adjust_field_rtx_def. - (write_gc_structure_fields): Add 'default' case to switch if none - is specified; remove unused code. - - * tree.h (struct tree_exp): Update for change to meaning - of special. - * gengtype.c (adjust_field_tree_exp): New function. - (adjust_field_type): Handle `tree_exp' special here. - (write_gc_structure_fields): Don't handle `tree_exp' special here. - Handle new `dot' option. - - * gengtype.h: Make `info' a pointer-to-const. - * gengtype-yacc.y (yacc_ids): Use xasprintf. - - * gengtype.c (write_gc_structure_fields): Remove implementation - of `always' option, add `default' option. - * doc/gty.texi (GTY Options): Remove documentation of `always', - add `default'. - -2002-09-16 Hans-Peter Nilsson - - * output.h: Remove #ifdef RTX_CODE and #ifdef TREE_CODE. - -2002-09-16 Kaveh R. Ghazi - - * m68hc11.md (addhi_sp): Fix uninitialized variable bug. - - * c4x-c.c, c4x.c, darwin.c, i370-c.c, m32r.c: Include tm_p.h - instead of the *-protos.h file directly. - * t-c4x, t-i370, t-v850: Depend on $(TM_P_H). - * darwin.c (machopic_output_stub): Move prototype ... - * darwin-protos.h (machopic_output_stub): ... here. - * rs6000-protos.h (machopic_output_stub): Don't declare. - -2002-09-16 Richard Henderson - - * c-common.c (builtin_define_float_constants): Emit __FOO_DENORM_MIN__. - -2002-09-16 Richard Henderson - - * real.c, real.h: Rewrite from scratch. - - * Makefile.in (simplify-rtx.o): Depend on TREE_H. - (paranoia): New target. - * builtins.c (fold_builtin_inf): Use new real.h interface. - * c-common.c (builtin_define_with_hex_fp_value): Likewise. - * c-lex.c (interpret_float): Likewise. - * emit-rtl.c (gen_lowpart_common): Likewise. - * optabs.c (expand_float): Use real_2expN. - * config/ia64/ia64.md (divsi3, udivsi3): Likewise. - * defaults.h (INTEL_EXTENDED_IEEE_FORMAT): New. - (FLOAT_WORDS_BIG_ENDIAN): New. - * cse.c (find_comparison_args): Don't pass FLOAT_STORE_FLAG_VALUE - directly to REAL_VALUE_NEGATIVE. - * loop.c (canonicalize_condition): Likewise. - * simplify-rtx.c: Include tree.h. - (simplify_unary_operation): Don't handle FIX and UNSIGNED_FIX - with floating-point result modes. - * toplev.c (backend_init): Call init_real_once. - - * fold-const.c (force_fit_type): Don't call CHECK_FLOAT_VALUE. - * tree.c (build_real): Likewise. - * config/alpha/alpha.c, config/vax/vax.c (float_strings, - float_values, inited_float_values, check_float_value): Remove. - * config/alpha/alpha.h, config/m68hc11/m68hc11.h, - config/m88k/m88k.h, config/vax/vax.h (CHECK_FLOAT_VALUE): Remove. - * doc/tm.texi (CHECK_FLOAT_VALUE): Remove. - (VAX_HALFWORD_ORDER): Remove. - -2002-09-16 Ulrich Weigand - - * config/s390/s390.c: (legitimize_la_operand): Remove, replace by ... - (s390_load_address): ... this new function. - (s390_decompose_address): Allow the argument pointer and all - virtual registers as 'pointer' registers. - (s390_expand_plus_operand): Use s390_load_address. - config/s390/s390.md (movti, movdi, movdf splitters): Likewise. - ("force_la_31"): New insn pattern. - config/s390/s390-protos.h (legitimize_la_operand): Remove. - (s390_load_address): Add prototype. - - * config/s390/s390.c: Include "optabs.h". - (s390_expand_movstr, s390_expand_clrstr, s390_expand_cmpstr): New. - config/s390/s390-protos.h (s390_expand_movstr, s390_expand_clrstr, - s390_expand_cmpstr): Add prototypes. - config/s390/s390.md ("movstrdi", "movstrsi"): Call s390_expand_movstr. - ("movstrdi_short"): Rename to "movstr_short_64". Change predicates - for operands 0 and 1 to "memory_operand". Add type attribute. - ("movstrsi_short"): Rename to "movstr_short_31". Change predicates - for operands 0 and 1 to "memory_operand". Add type attribute. - ("movstrdi_long", "movstrsi_long"): Remove. - ("movstrdi_64"): Rename to "movstr_long_64". Add type attribute. - ("movstrsi_31"): Rename to "movstr_long_31". Add type attribute. - ("clrstrdi", "clrstrsi"): Call s390_expand_clrstr. - ("clrstrsico"): Remove, replace by ... - ("clrstr_short_64", "clrstr_short_31"): ... these new patterns. - ("clrstrsi_64"): Rename to "clrstr_long_64". - ("clrstrsi_31"): Rename to "clrstr_long_31". - ("cmpstrdi", "cmpstrsi"): Call s390_expand_cmpstr. - ("cmpstr_const"): Remove, replace by ... - ("cmpstr_short_64", "cmpstr_short_31"): ... these new patterns. - ("cmpstr_64"): Rename to "cmpstr_long_64". - ("cmpstr_31"): Rename to "cmpstr_long_31". - -2002-09-16 Kazu Hirata - - * ABOUT-NLS: Follow spelling conventions. - * ChangeLog: Likewise. - * ChangeLog.1: Likewise. - * ChangeLog.2: Likewise. - * ChangeLog.3: Likewise. - * ChangeLog.4: Likewise. - * ChangeLog.5: Likewise. - * ChangeLog.6: Likewise. - * FSFChangeLog.10: Likewise. - * FSFChangeLog.11: Likewise. - * c-common.c: Likewise. - * c-lex.c: Likewise. - * c-objc-common.c: Likewise. - * cppexp.c: Likewise. - * cppinit.c: Likewise. - * cpplex.c: Likewise. - * doloop.c: Likewise. - * flow.c: Likewise. - * function.c: Likewise. - * integrate.c: Likewise. - * loop.c: Likewise. - * reg-stack.c: Likewise. - * reload.h: Likewise. - * ssa.c: Likewise. - -2002-09-15 Kaveh R. Ghazi - - * Makefile.in (vmsdbgout.o): Depend on $(TARGET_H) - * vmsdbgout.c: Include "target.h". - -2002-09-15 Kazu Hirata - - * ChangeLog: Follow spelling conventions. - * ChangeLog.0: Likewise. - * ChangeLog.1: Likewise. - * ChangeLog.2: Likewise. - * ChangeLog.4: Likewise. - * ChangeLog.6: Likewise. - * config.gcc: Likewise. - * dwarfout.c: Likewise. - * reload1.c: Likewise. - * simplify-rtx.c: Likewise. - * unwind-sjlj.c: Likewise. - * config/avr/avr.h: Likewise. - * config/d30v/d30v.h: Likewise. - * config/frv/frv.c: Likewise. - * config/frv/frv.h: Likewise. - * config/ip2k/ip2k.h: Likewise. - * config/m88k/m88k-move.sh: Likewise. - * config/stormy16/stormy16.c: Likewise. - * config/stormy16/stormy16.h: Likewise. - * doc/extend.texi: Likewise. - * doc/interface.texi: Likewise. - * doc/invoke.texi: Likewise. - * doc/md.texi: Likewise. - * doc/rtl.texi: Likewise. - * doc/tm.texi: Likewise. - * doc/trouble.texi: Likewise. - * ginclude/float.h: Likewise. - * treelang/treelang.texi: Likewise. - -2002-09-15 Kaveh R. Ghazi - - * i386-protos.h (i386_pe_dllexport_name_p, - i386_pe_dllimport_name_p, i386_pe_unique_section, - i386_pe_declare_function_type, i386_pe_record_external_function, - i386_pe_record_exported_symbol, i386_pe_asm_file_end): Add - prototype. - * i386/t-cygwin (winnt.o): Depend on $(TM_P_H). - * i386/t-interix (winnt.o): Likewise. - - * v850-protos.h (v850_output_addr_const_extra): Prototype. - -2002-09-15 Jason Thorpe - - * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Add - MIPS ABI CPP macros. - (TARGET_CPU_CPP_BUILTINS): Redefine. - (SUBTARGET_EXTRA_SPECS): Remove subtarget_endian_default. - (SUBTARGET_ENDIAN_DEFAULT_SPEC): Remove. - -2002-09-15 Kaveh R. Ghazi - - * ia64/aix.h (TARGET_OS_CPP_BUILTINS): Fix typo. - -2002-09-15 Kazu Hirata - - * ChangeLog: Follow spelling conventions. - * ChangeLog.0: Likewise. - * ChangeLog.1: Likewise. - * ChangeLog.2: Likewise. - * ChangeLog.3: Likewise. - * ChangeLog.4: Likewise. - * ChangeLog.5: Likewise. - * ChangeLog.6: Likewise. - * FSFChangeLog.10: Likewise. - * FSFChangeLog.11: Likewise. - * c-common.c: Likewise. - * c-common.h: Likewise. - * c-format.c: Likewise. - * c-opts.c: Likewise. - * cpplib.c: Likewise. - * langhooks.h: Likewise. - * real.c: Likewise. - * reg-stack.c: Likewise. - * toplev.c: Likewise. - * config/arm/arm.c: Likewise. - * config/arm/arm.md: Likewise. - * config/arm/linux-gas.h: Likewise. - * config/arm/netbsd.h: Likewise. - * config/c4x/c4x.c: Likewise. - * config/c4x/c4x.h: Likewise. - * config/c4x/c4x.md: Likewise. - * config/c4x/libgcc.S: Likewise. - * config/fr30/fr30.md: Likewise. - * config/frv/frv.md: Likewise. - * config/ia64/ia64.md: Likewise. - * config/mips/mips.h: Likewise. - * config/mn10300/mn10300.c: Likewise. - * config/stormy16/stormy16.c: Likewise. - * config/v850/v850.md: Likewise. - * doc/extend.texi: Likewise. - * doc/invoke.texi: Likewise. - * doc/md.texi: Likewise. - -2002-09-15 Jason Thorpe - - * config/netbsd.h (LIB_SPEC): Include the appropriate pthread - library if -pthread is specified. - -2002-09-15 Jason Thorpe - - * config.gcc (*-*-netbsd*): Set thread_file to 'posix' - for --enable-threads=yes and --enable-threads=posix. - -2002-09-15 Kazu Hirata - - * config/sparc/cypress.md: Replace Sparc with SPARC. - * config/sparc/freebsd.h: Likewise. - * config/sparc/gmon-sol2.c: Likewise. - * config/sparc/hypersparc.md: Likewise. - * config/sparc/lb1spc.asm: Likewise. - * config/sparc/lb1spl.asm: Likewise. - * config/sparc/linux.h: Likewise. - * config/sparc/linux64.h: Likewise. - * config/sparc/lynx.h: Likewise. - * config/sparc/sol2.h: Likewise. - * config/sparc/sparc-modes.def: Likewise. - * config/sparc/sparc.c: Likewise. - * config/sparc/sparc.h: Likewise. - * config/sparc/sparc.md: Likewise. - * config/sparc/sparclet.md: Likewise. - * config/sparc/supersparc.md: Likewise. - * config/sparc/sysv4.h: Likewise. - * config/sparc/vxsim.h: Likewise. - * config/sparc/vxsparc64.h: Likewise. - -2002-09-14 Kaveh R. Ghazi - - * c-lex.c (cb_ident): Mark variable with ATTRIBUTE_UNUSED. - * collect2.c (ignore_library, aix_std_libs): Move into the context - where it is used. - * m68hc11.c (m68hc11_autoinc_compatible_p): Delete prototype. - (autoinc_mode, m68hc11_make_autoinc_notes): Add prototypes. - * m88k.c (output_call): Wrap variables with macro controlling use. - * rs6000.md: Likewise. Const-ify variable. - * sh.h (ASM_OUTPUT_LABELREF): Likewise. - * final.c (only_leaf_regs_used): Likewise. - * regrename.c (maybe_mode_change): Mark parameter with - ATTRIBUTE_UNUSED. - * reload.c (find_valid_class): Likewise. Likewise for variable. - (find_reloads_address_1): Likewise. - * varasm.c (weak_finish): Wrap variable with macro controlling use. - -2002-09-14 Marek Michalkiewicz - - * config/avr/avr.c (output.h): Move after inclusion of tree.h. - -2002-09-14 Kazu Hirata - - * ChangeLog: Follow spelling conventions. - * ChangeLog.0: Likewise. - * ChangeLog.2: Likewise. - * ChangeLog.3: Likewise. - * ChangeLog.4: Likewise. - * ChangeLog.5: Likewise. - * ChangeLog.6: Likewise. - * cppfiles.c: Likewise. - * cppinit.c: Likewise. - * cpplib.h: Likewise. - * cse.c: Likewise. - * debug.h: Likewise. - * df.c: Likewise. - * dominance.c: Likewise. - * hashtable.c: Likewise. - * hashtable.h: Likewise. - * loop.c: Likewise. - * config/arm/README-interworking: Likewise. - * config/arm/arm.c: Likewise. - * config/arm/arm.h: Likewise. - * config/arm/arm.md: Likewise. - * config/dsp16xx/dsp16xx.h: Likewise. - * config/frv/frv.c: Likewise. - * config/frv/frv.h: Likewise. - * config/ip2k/ip2k.h: Likewise. - * config/rs6000/rs6000.c: Likewise. - * config/stormy16/stormy-abi: Likewise. - * config/stormy16/stormy16.h: Likewise. - * config/v850/v850.c: Likewise. - -2002-09-14 Kazu Hirata - - * loop.c: Fix a comment typo. - -2002-09-14 Kazu Hirata - - * config/fr30/fr30.h: Fix comment typos. - * config/frv/frv.c: Likewise. - * config/i386/xmmintrin.h: Likewise. - * config/mips/mips.c: Likewise. - * config/sh/sh.c: Likewise. - -2002-09-14 Kazu Hirata - - * haifa-sched.c: Follow spelling conventions. - * regclass.c: Likewise. - * regrename.c: Likewise. - * config/fp-bit.c: Likewise. - * config/frv/frv.h: Likewise. - * config/m88k/m88k.c: Likewise. - * config/mcore/mcore.c: Likewise. - * config/rs6000/darwin.h: Likewise. - * config/rs6000/gnu.h: Likewise. - * config/rs6000/linux.h: Likewise. - * config/rs6000/linux64.h: Likewise. - * config/rs6000/rs6000.c: Likewise. - * config/rs6000/rs6000.h: Likewise. - * config/sh/sh.c: Likewise. - * config/sparc/sparc.c: Likewise. - * config/sparc/ultra1_2.md: Likewise. - -2002-09-14 Stephane Carrez - - * config/m68hc11/m68hc11.md ("movdi_internal"): Allow any offsetable - memory operand when source is 0 (K constraint). - ("movsi_internal"): Likewise. - ("movdf_internal"): Likewise. - ("movsf_internal"): Likewise. - -2002-09-14 Alan Modra - - * config/rs6000/rs6000.c (rs6000_elf_encode_section_info): Use - targetm.binds_local_p to set SYMBOL_REF_FLAG. - (rs6000_xcoff_encode_section_info): Likewise. - * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Likewise. - -2002-09-10 Theodore A. Roth - - * gcc/config/avr/avr.h: Set default options for C++ for avr. - -2002-09-13 Roger Sayle - - * stmt.c (struct nexting): Remove unused alt_end_label field. - (expand_start_loop): Delete initialization of alt_end_label. - (expand_start_null_loop): Likewise. - (expand_exit_loop_if_false): Delete updating of alt_end_label. - -2002-09-13 Richard Henderson - - * Makefile.in (toplev.o): Depend on real.h. - (print-rtl.o, varasm.o, ifcvt.o): Likewise. - -2002-09-14 Alan Modra - - * doc/tm.texi (DBX_OUTPUT_NFUN): Describe. - * dbxout.c (dbxout_function_end): Use DBX_OUTPUT_NFUN. - * config/rs6000/linux64.h (DBX_OUTPUT_NFUN): Define. - -2002-09-13 Nathan Sidwell - - * ggc-common.c (ggc_mark_roots): Don't iterate NULL hash tables. - -2002-09-13 Steve Ellcey - - * config.gcc (ia64*-*-aix*, ia64*-*-elf*, ia64*-*-freebsd*, - ia64*-*-linux*): Set extra_parts. - * config/ia64/t-aix (EXTRA_PARTS): Remove. - * config/ia64/t-ia64 (EXTRA_PARTS): Remove. - -2002-09-13 Kazu Hirata - - * config/h8300/fixunssfsi.c: Replace H8/S with H8S. - * config/h8300/h8300.c: Likewise. - * config/h8300/h8300.h: Likewise. - * config/h8300/h8300.md: Likewise. - * doc/invoke.texi: Likewise. - -2002-09-13 Kazu Hirata - - * config/h8300/h8300.c (h8300_init_once): Fix formatting. - -2002-09-13 Richard Henderson - - * config/alpha/alpha.md (attr type): Add callpal. - (imb, trap, load_tp, set_tp): Use it. - * config/alpha/ev4.md (ev4_callpal): New. - * config/alpha/ev5.md (ev5_callpal): New. - * config/alpha/ev6.md (ev6_ibr): Handle callpal. - * config/alpha/alpha.c (alphaev4_insn_pipe): Handle TYPE_CALLPAL. - (alphaev5_insn_pipe): Likewise. - -2002-09-13 Andreas Jaeger - - * Makefile.in (print-rtl.o): Depend on CONFIG_H. - -2002-09-13 Steve Ellcey - - * config/ia64/t-hpux (LIBGCC1_TEST, STMP_FIXPROTO, - LIB2ADDEH): New, set to NULL. - (SHLIB_EXT, SHLIB_LINK, SHLIB_INSTALL, SHLIB_MKMAP): New. - -2002-09-13 Steve Ellcey - - * config/ia64/quadlib.c (_U_Qfcmp): Make extern. - (_U_Qfcnvfxt_quad_to_sgl): Remove declaration. - (_U_Qfeq, _U_Qfne, _U_Qfgt, _U_Qfge, U_Qflt, U_Qfle, _U_Qfcomp): - Add declarations. - (_U_Qfneg): Remove. - -2002-09-13 Dhananjay Deshpande - - * config/h8300/h8300.h (EIGHTBIT_CONSTANT_ADDRESS_P): Add support - for H8/300, H8S aa:8 mode. - (TINY_CONSTANT_ADDRESS_P): Add support for H8S aa:16 mode. - * config/h8300/h8300.c (h8300_adjust_insn_length): Adjust length - for H8/300 aa:8 mode. - -2002-09-13 Hartmut Penner - - * config/s390/s390.md ("trap", "conditional_trap", "*trap"): New - insns. - -2002-09-12 Richard Henderson - - * Makefile.in (HOST_PRINT): Use print-rtl1.o - (print-rtl.o): Don't define GENERATOR_FILE. - (print-rtl1.o): Rename from $(BUILD_PREFIX_1)print-rtl.o. - * print-rtl.c (print_rtx): Include CONST_DOUBLE fp decimal output - unless GENERATOR_FILE. - -2002-09-12 Stan Shebs - - * config/darwin.h (USER_LABEL_PREFIX): Define here... - * config/i386/darwin.h: ... instead of here. - - * target.h (struct gcc_target): New field - terminate_dw2_eh_frame_info. - * target-def.h (TARGET_TERMINATE_DW2_EH_FRAME_INFO): Define. - (TARGET_INITIALIZER): Add it. - * dwarf2out.c (output_call_frame_info): Use target hook. - * dwarf2asm.c (dw2_asm_output_delta): Use macro - ASM_OUTPUT_DWARF_DELTA if defined. - * doc/tm.texi (TARGET_TERMINATE_DW2_EH_FRAME_INFO): Document. - (ASM_OUTPUT_DWARF_DELTA): Ditto. - (ASM_OUTPUT_DWARF_OFFSET): Ditto. - (ASM_OUTPUT_DWARF_PCREL): Ditto. - * config.gcc (i[34567]86-*-darwin*): Define extra_parts. - (powerpc-*-darwin*): Ditto. - * crtstuff.c [OBJECT_FORMAT_MACHO]: Update the Mach-O bits - to work correctly for Darwin. - * config/darwin.h (OBJECT_FORMAT_MACHO): Define. - (STARTFILE_SPEC): Add crtbegin.o. - (ENDFILE_SPEC): Define. - (EXTRA_SECTION_FUNCTIONS): Put gcc_except_tab in data segment. - (ASM_PREFERRED_EH_DATA_FORMAT): Handle more cases. - (ASM_OUTPUT_DWARF_DELTA): Define. - (TARGET_TERMINATE_DW2_EH_FRAME_INFO): Define. - * config/darwin.c (darwin_asm_output_dwarf_delta): New function. - -2002-09-13 Alan Modra - - * config/rs6000/rs6000.c (rs6000_emit_load_toc_table): Remove "if" - nesting. Correct test for non-PowerPC64 ELF ABI_AIX. - * config/rs6000/rs6000.md (load_toc_v4_PIC*): Disable when ABI_AIX. - -2002-09-12 Zack Weinberg - - * toplev.c: Move default definition of USER_LABEL_PREFIX... - * defaults.h: ... here. - -2002-09-12 Richard Henderson - - * vax.c: Include tree.h earlier. - -2002-09-12 Stan Shebs - - * config/darwin.c (machopic_finish): Remove #if 0 chunks. - (machopic_operand_p): Ditto. - -2002-09-12 Kazu Hirata - - * config/arm/arm.c (arm_compute_initial_elimination_offset): - Fix a comment typo. - -2002-09-12 Kazu Hirata - - * toplev.c (do_abort): Fix a comment typo. - -2002-09-12 Kazu Hirata - - * cselib.c: Fix comment formatting. - * gengtype.c: Likewise. - -2002-09-12 Kazu Hirata - - * config/h8300/h8300.md (udivmodqi4): Do not use an expander. - (udivmodhi4): Likewise. - -2002-09-12 Graham Stott - Roger Sayle - - * i386.c (any_fp_register_operand, fp_register_operand, - register_and_not_any_fp_reg_operand, register_and_not_fp_reg_operand): - New predicate functions. - * i386-protos.h: Add their prototypes. - * i386.h: Add them to PREDICATE_CODES. - * i386.md ("*pushsf_rex64"+2, "*pushsf_rex64"+3, "*pushdf_integer"+1, - "*pushdf_integer"+2, "*pushtf_integer"+1, "*pushtf_integer"+2, - "*pushtf_integer"+3, "*pushtf_integer"+4, "*dummy_extendsfdf2"+1, - "*dummy_extendsfdf2"+2, "*dummy_extendsfxf2"+1, - "*dummy_extendsftf2"+1, "*dummy_extendsftf2"+2, - "*dummy_extenddfxf2"+1, "*dummy_extenddftf2"+1, - "*dummy_extenddftf2"+2, "*negsf2_if"+1, "*negsf2_if"+2, - "*negdf2_if_rex64"+1, "*negdf2_if_rex64"+2, "*negxf2_if"+1, - "*negxf2_if"+2, "*negtf2_if"+1, "*negtf2_if"+2, "*abssf2_if"+1, - "*abssf2_if"+2, "*absdf2_if_rex64"+1, "*absdf2_if_rex64"+2, - "*absxf2_if"+1, "*absxf2_if"+2, "*abstf2_if"+1, "*abstf2_if"+2): - Use these new predicates to simplify and correct the use of - FP_REG_P, ANY_FP_REG_P, FP_REGNO_P and any ANY_FP_REGNO_P. - -2002-09-12 Jason Merrill - - * diagnostic.c (output_add_identifier): New fn. - * diagnostic.h: Declare it. - - * calls.c (store_one_arg): Use size_in_bytes to determine the - amount of space to push. - -2002-09-12 Jakub Jelinek - - * config/sparc/linux64.h (STARTFILE_SPEC32): Fix a typo. - -2002-09-12 Ulrich Weigand - - * config/s390/s390-modes.def (CCAPmode, CCANmode): New CC modes. - * config/s390/s390.c (s390_match_ccmode_set): Support new CC modes. - (s390_select_ccmode): Likewise. - (s390_branch_condition_mask): Likewise. - (optimization_options): Do not set flag_branch_on_count. - (s390_split_branches): Handle doloop branches. - (s390_chunkify_pool): Likewise. - * config/s390/s390.md ("*adddi3_imm_cc", "*addsi3_imm_cc"): New insns. - ("doloop_end"): New expander. - ("doolop_si", "*doloop_si_long", "doloop_di", "*doloop_di_long", - associated splitters): New. - -2002-09-11 Volker Reichelt - - * genattrtab.c (simplify_cond): Remove unused variable(s). - * global.c (record_conflicts): Likewise. - * jump.c (rebuild_jump_labels): Likewise. - * loop.c (scan_loop, check_final_value): Likewise. - * ra-colorize.c (colorize_one_web, assign_colors): Likewise. - * reload1.c (eliminate_regs_in_insn, do_input_reload): Likewise. - * rtlanal.c (reg_set_p): Likewise. - * stmt.c (expand_asm_operands, expand_decl): Likewise. - * genautomata.c (empty_reserv): Remove. - * loop.c (max_luid): Likewise. - * sched-rgn.c (bitlst_table_size): Likewise. - -2002-09-11 Nathan Sidwell - - Reimplement gcov format. - * gcov-io.h: Replace. - * gcov.c: Reimplement. - * gcov-iov.c: New file. - * gcov-dump.c: New file. - * libgcc2.c (L_bb): Replace with ... - (L_gcov): ... this. - (struct bb_function_info, struct bb): Remove. - (inhibit_libc): Never inhibit. - (gcov_list, gcov_crc): New static variables. - (gcov_version_mismatch): New static function. - (__bb_exit_func): Renamed to ... - (__gcov_exit): ... here. Made static. Reimplement. - (__gcov_init_func): Rename to ... - (__gcov_init): ... here. Check version, update crc. - (__bb_fork_func): Rename to ... - (__gcov_flush): ... here. - * libgcc2.h (struct bb, __bb_exit_func, __bb_init_func, - __bb_fork_func, gcov_type, __bb_find_arc_counters): Remove. - * calls.c (expand_call): Call __gcov_flush. - * profile.c (bb_file, last_bb_file_name): Remove. - (bbg_file_name): New global variable. - (output_gcov_string): Remove. - (get_exec_counts): Reimplement. - (branch_prob): Reimplement gcov file writing. - (init_branch_prob): Create bbg_file_name, don't create - bb_file_name. - (end_branch_prob): Adjust. Don't remove counter file when - instrumenting ourselves. - (create_profiler): Adjust. - * doc/gcov.texi (Gcov Data Files): Remove detailed specification, - point to gcov-io.h. - * Makefile.in (LANGUAGES): Add gcov-dump. - (coverageexts): Remove .bb. - (STAGESTUFF): Add gcov-dump. - (LIB2FUNCS_ST): Replace _bb with _gcov. - (profile.o): Depend on gcov-iov.h. - (final.o): Don't depend on profile.h, gcov.h. - (gcov.o): Depend on gcov-iov.h. - (gcov-iov.o): New target. - (gcov-iov): New target. - (gcov-iov.h): New target. - (gcov-dump.o): New target. - (GCOV_DUMP_OBJS): New variable. - (gcov-dump): New target. - (distclean): Remove coverageexts. - (stage1): Remove coverageexts. - -2002-09-11 Hartmut Penner - - * fold-const.c (make_range): Only narrow to signed range if - the signed range is smaller than the unsigned range. - -2002-09-12 Alan Modra - - * emit-rtl.c (set_mem_size): New function. - * expr.h (set_mem_size): Declare. - * config/rs6000/rs6000.c (expand_block_move_mem): Exterminate. - (expand_block_move): Instead, use adjust_address and - replace_equiv_address to generate proper aliasing info. - Move common code out of conditionals. Localize vars. - -2002-09-11 Eric Botcazou - - * optabs.c (expand_binop): Minor cleanup. - (expand_twoval_binop): Convert CONST_INTs like in expand_binop. - -2002-09-11 Dan Nicolaescu - - * print-tree.c (print_node): Print the restrict qualifier. - -2002-09-11 Janis Johnson - - * doc/install.texi: Fix typos. - -2002-09-11 Zack Weinberg - - * Makefile.in: Remove all references to s-under and underscore.c. - * collect2.c, tlink.c: Change all uses of prepends_underscore - to look directly at USER_LABEL_PREFIX. - -2002-09-11 David Edelsohn - - * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section): Append - alignment to csect. - (rs6000_xcoff_unique_section): Only set section name for public - data. - (rs6000_xcoff_section_type_flags): Store log2 alignment in flags. - * config/rs6000/xcoff.h (TARGET_ASM_SELECT_SECTION): Remove - duplicate definition. - -2002-09-10 John David Anglin - - * pa.md (extzv): Check predicates before emitting extzv_32. - (insv): Likewise. - -2002-09-10 Ulrich Weigand - - * config/s390/s390.h (MOVE_MAX): Define to correct value. - (MAX_MOVE_MAX): Define. - (MOVE_BY_PIECES_P): Define. - (CLEAR_BY_PIECES_P): Define. - -2002-09-10 Denis Chertykov - - * config/avr/avr.md (movstrhi): Use right operands for conversion. - -2002-09-10 Richard Earnshaw - - PR c/7873 - * arm.md (insv): Use reg_or_int_operand for operand[3]. - -2002-09-10 David Edelsohn - - * rs6000.c (rs6000_assemble_visibility): Protect declaration - inside macro. Correct function definition typo. - (rs6000_xcoff_section_type_flags): New function. - (TARGET_SECTION_TYPE_FLAGS): Remove definition. - (rs6000_elf_section_type_flags): Call default_section_type_flags_1 - with appropriate PIC test. - (rs6000_xcoff_select_section): Use decl_readonly_section_1 to - determine readonly. - (rs6000_binds_local_p): Combine PIC flags. - * sysv4.h (TARGET_SECTION_TYPE_FLAGS): Define. - * xcoff.h (TARGET_SECTION_TYPE_FLAGS): Define. - -2002-09-09 Kaveh R. Ghazi - - * h8300.md: Fix signed/unsigned warnings. - * mcore.md: Likewise. - * mn10300.c (mask_ok_for_mem_btst): Likewise. - -2002-09-09 Per Bothner - - * print-tree.c (print_node): In a STRING_CST, escape non-ascii - characters, and only print TREE_STRING_LENGTH chars. - -2002-09-09 Steve Ellcey - - * config/ia64/hpux.h (TARGET_HPUX_LD): New, define true. - (ASM_FILE_END) New. - * config/ia64/ia64.h (TARGET_HPUX_LD): New, define false. - * config/ia64/ia64-protos.h (ia64_hpux_asm_file_end): New. - * config/ia64/ia64.c (ia64_asm_output_external): Create list - of external functions if TARGET_HPUX_LD is true. - (ia64_hpux_add_extern_decl): New, routine to put names on - list of external functions. - (ia64_hpux_asm_file_end): Put out declarations for external - functions if and only if they are used. - -2002-09-09 John David Anglin - - * pa.md (exception_receiver, builtin_setjmp_receiver): Add blockage - on TARGET_64BIT before pic register restore. - -2002-09-09 David Edelsohn - - * doc/tm.texi (TARGET_HAVE_SRODATA_SECTION): New description. - (TARGET_HAVE_TLS): New description. - -2002-09-09 Janis Johnson - - * doc/extend.texi (Statement Exprs): Fix broken link. - -2002-09-09 Denis Chertykov - - * config/avr/avr.md (movstrhi, clrstrhi): Use gen_int_mode for - right conversion of operands[1]. - -2002-09-09 Ulrich Weigand - - * config/s390/s390.md ("*tmdi_reg", "*tmsi_reg"): Do not mark as - commutative. Use "nonimmediate_operand" instead of "register_operand" - as predicate for operand 0. Move to after the "*tmXX_mem" insns. - - ("*tmdi_mem", "*tmsi_mem", "*tmhi_mem", "*tmqi_mem"): Do not mark - as commutative. - - ("*anddi3_ni", "*andsi3_ni", "*iordi3_ni", "*iorsi3_ni"): Do not - mark as commutative. Use "nonimmediate_operand" instead of - "register_operand" as predicate for operand 1. - - ("movstrictsi"): Fix typo in insn name. - -2002-09-09 Jan Hubicka - - * i386.c (index_register_operand): New. - * i386.h (predicate_codes): Add new predicate. - * i386.md (lea_general_*): Use index_register_operand - (ashift to lea splitter): Do not produce invalid leas - (ashift to mov+ashift split): New. - -2002-09-09 Nick Clifton - - * config/fr30/fr30.c (output.h): Move after inclusion of tree.h. - Fix folding marks. - -2002-09-09 Toshiyasu Morita - J"orn Rennecke - - * sh/sh.h (OVERRIDE_OPTIONS): align_functions is in bytes, not bits. - -2002-09-09 Alan Modra - - * config/rs6000/rs6000.c (rs6000_binds_local_p): Return bool. - (function_ok_for_sibcall): Use binds_local_p. Respect longcall - attributes. - -2002-09-08 Nathan Sidwell - - * basic_block.h (gcov_type): Explain why it is signed. - * final.c: Don't include profile.h. - (struct function_list, functions_head, functions_tail, - end_final): Moved to profile.c - (final): Move arc chaining code to profile.c. - * function.c (prepare_function_start): Remove duplicate line. - * output.h (end_final): Remove prototype. - * predict.c (estimate_loops_at_level): Use gcov_type. - * profile.c (struct function_list, functions_head, - functions_tail): Moved from final.c - (need_func_profiler): Remove. - (instrument_edges): Don't set need_func_profiler. - (get_exec_counts): Avoid signed/unsigned warning. - (compute_checksum): Use crc32. - (branch_prob): Adjust. Chain onto functions_head. - (init_branch_prob): Absorb init_edge_profiler. - (init_edge_profiler): Remove. - (create_profiler): Moved and renamed from final.c:end_final. - Emit data and constructor. - (output_func_start_profiler): Remove. - * profile.h (struct profile_info): checksum is unsigned. - * rtl.h (output_func_start_profiler): Remove prototype. - (create_profiler): Declare. - * toplev.c (compile_file): Call create_profiler, if instrumenting - arcs. Don't call end_final. - -2002-09-08 Kaveh R. Ghazi - - * fr30.c (fr30_print_operand): Fix bug in output of CONST_DOUBLE. - -2002-09-08 Richard Henderson - - * dwarf2.h (DW_OP_call_ref): Rename from DW_OP_calli. - (DW_OP_GNU_push_tls_address): New. - (DW_OP_lo_user): Fix. - * dwarf2out.c (INTERNAL_DW_OP_tls_addr): New. - (dwarf_stack_op_name): Handle it, plus other dwarf3 opcodes. - (size_of_loc_descr): Likewise. - (output_loc_operands): Handle INTERNAL_DW_OP_tls_addr. - (add_AT_location_description): Take a dw_loc_descr_ref not an rtx. - (loc_descriptor_from_tree): Handle TLS variables. - (rtl_for_decl_location): Do avoid_constant_pool_reference here ... - (add_location_or_const_value_attribute): ... not here. Defer - to loc_descriptor_from_tree for TLS variables. - - * config/i386/i386.h (ASM_OUTPUT_DWARF_DTPREL): New. - * config/i386/i386.c (i386_output_dwarf_dtprel): New. - * config/i386/i386-protos.h: Update. - -2002-09-08 Roger Sayle - - PR optimization/6405 - * unroll.c (loop_iterations): last_loop_insn should be the previous - non-note instruction before loop->end. - * loop.c (strength_reduce): The conditional jump is the last - non-note instruction before loop->end (as above). - -2002-09-08 Roger Sayle - - * combine.c (try_combine): Handle the case that undobuf.other_insn - has been turned into a return or unconditional jump, by inserting - a BARRIER if necessary. - (simplify_set): Test if a condition code setter has a constant - comparison at compile time, if so convert this insn to a no-op move - and update/simplify the condition code user (undobuf.other_insn). - -2002-09-08 Krister Walfridsson - - * config/arm/netbsd.h (INITIALIZE_TRAMPOLINE): Redefine. - (CLEAR_INSN_CACHE): Define. - -2002-09-08 Kazu Hirata - - * basic-block.h: Fix comment formatting. - * c-common.c: Likewise. - * c-common.h: Likewise. - * c-lex.c: Likewise. - * c-pretty-print.c: Likewise. - * cfglayout.c: Likewise. - * cfgloop.c: Likewise. - * defaults.h: Likewise. - * et-forest.c: Likewise. - * explow.c: Likewise. - * function.h: Likewise. - * gcov.c: Likewise. - * genattrtab.c: Likewise. - * gengtype.c: Likewise. - * ifcvt.c: Likewise. - * libgcc2.c: Likewise. - * loop.c: Likewise. - * profile.c: Likewise. - * ra-build.c: Likewise. - * real.c: Likewise. - * rtl.h: Likewise. - * tracer.c: Likewise. - * tree-inline.c: Likewise. - * varasm.c: Likewise. - -2002-09-08 Jan Hubicka - - * emit-rtl.c (set_mem_attributes_minus_bitpos): Fix array_ref - handling. - - * loop.c (loop_givs_reduce): Emit addition after. - -2002-09-08 Alan Modra - - * varasm.c (default_assemble_visibility): Rename from - assemble_visibility. - * output.h: Here too. - * target-def.h (TARGET_ASM_ASSEMBLE_VISIBILITY): And here. - * config/rs6000/rs6000.c (rs6000_assemble_visibility): And here. - -2002-09-08 Alan Modra - - * reload.c (find_reloads

): Pass operand_mode to - find_reloads_address. - -2002-09-08 Kazu Hirata - - * config/h8300/h8300.md (udivmodqi4): Enable on H8/300. - (anonymous pattern): Likewise. - -2002-09-07 Igor Shevlyakov - - * machmode.def: Add modes for half-float vectors. - -2002-09-07 Scott Snyder - - PR target/7374 - * config/alpha/alpha.md (abstf2): Fix typo: 'neg' for 'abs'. - -2002-09-07 Roger Sayle - - * basic-block.h (struct loop): Remove unused cont_dominator field. - -2002-09-07 Igor Shevlyakov - - * varasm.c (decode_rtx_const): Don't check undefined field for - CONST_VECTOR. - -2002-09-07 Glen Nakamura - - PR opt/7814 - * sched-deps.c (sched_analyze_insn): Make sure to add insn - to reg_last->sets after flushing the dependency lists to guarantee - that subsequent clobbers will be dependent on it. - -2002-09-07 Igor Shevlyakov - - * combine.c (simplify_shift_const): Calculate rotate count - correctly for vector operands. - -2002-09-07 Ansgar Esztermann - - * c-typeck.c (c_tree_expr_nonnegative_p): New function. - (build_binary_op): Call c_tree_expr_nonnegative_p rather than - tree_expr_nonnegative_p. - (build_conditional_expr): Likewise. - * c-tree.h (c_tree_expr_nonnegative_p): Declare. - -2002-09-07 Richard Henderson - - * builtins.def (inf, inff, infl): Mark const. - (huge_val, huge_valf, huge_vall): Likewise. - (BUILT_IN_GETEXP, BUILT_IN_GETMAN): Remove. - - * real.c (ereal_inf): Clear E before use. - -2002-09-07 Kazu Hirata - - * config/h8300/h8300.md (udivmodqi4): Split the pattern into - an expander and an anonymous pattern. Zero out the upper half - of the dividend in the expander. - (udivmodqi4): Likewise. - -2002-09-07 Kazu Hirata - - * config/h8300/h8300.c: Fix formatting. - * config/h8300/h8300.h: Likewise. - * config/h8300/h8300.md: Likewise. - -2002-09-07 Zdenek Dvorak - - * cfgcleanup.c (try_crossjump_to_edge): Fix updating of liveness - information. - -2002-09-07 Graham Stott - - * rtlanal.c (dead_or_set_regno_p): Fix typo. - -2002-09-07 Alan Modra - - * config/rs6000/linux64.h (ASM_PREFERRED_EH_DATA_FORMAT): Define. - - * doc/tm.texi (TARGET_ASM_ASSEMBLE_VISIBILITY): Describe. - * target-def.h (TARGET_ASM_ASSEMBLE_VISIBILITY): Define. - (TARGET_ASM_OUT): Add the above here. - * target.h (struct gcc_target): Add "visibility" field. - * varasm.c (maybe_assemble_visibility): Call targetm visibility func. - * config/rs6000/rs6000.c (rs6000_assemble_visibility): New function. - (TARGET_ASM_ASSEMBLE_VISIBILITY): Define. - (rs6000_legitimize_reload_address, first_reg_to_save): Formatting. - -2002-09-06 Ziemowit Laski - - * c-lang.c (objc_is_id): New stub. - * c-tree.h (objc_is_id): New forward declaration. - * c-typeck.c (build_c_cast): Do not strip protocol - qualifiers from 'id' type. - * objc/objc-act.c (objc_comptypes): Correct handling - of protocol qualifiers. - (objc_is_id): New. - -Fri Sep 6 13:10:08 2002 Jeffrey A Law (law@redhat.com) - - * pentium.md (pentium-firstvboth): Fix typo. - -2002-09-06 Dhananjay Deshpande - - * h8300.c (enum shift_alg): Move to earlier in h8300.c. - (enum shift_type, enum h8_cpu): Likewise. - (INL, ROT, LOP, SPC macros): Likewise. - (shift_alg_qi, shift_alg_hi, shift_alg_si): Likewise. Lose - const designator. - (h8300_init_once): Update shift_alg_{qi,hi,si} to use more - space efficient algorithms when optimize for codesize. - -Fri Sep 6 16:35:32 2002 Nicola Pero - - Fix PR/1727 and long-standing failing testcase - objc/formal-protocol-6.m. - * objc-act.c (build_protocol_expr): If compiling for the GNU - runtime, create a list of Protocol statically allocated instances - if it doesn't exist, then add the Protocol object to this same - list. - (get_objc_string_decl): Fixed typo/bug - TREE_VALUE had been used - instead of TREE_CHAIN. - -Fri Sep 6 16:17:33 2002 Nicola Pero - - * objc/objc-act.c (dump_interface): Enlarged the char * buffer to - 10k. Fixed category dumping - print out category names with the - proper syntax. Print '@end\n' and not '\n@end' at the end of the - interface. - (finish_objc): Fixed the -gen-decls option. It was printing out - only the last class. Dump an interface declaration of all classes - being compiled instead. - -2002-09-06 Jason Thorpe - - * config/arm/arm-protos.h (arm_gen_return_addr_mask): New - prototype. - * config/arm/arm.c (arm_gen_return_addr_mask): New function. - * config/arm/arm.h (MASK_RETURN_ADDR): Use arm_gen_return_addr_mask - if not APCS26 and not Thumb or ARMv4-or-higher. Use gen_int_mode - rather than GEN_INT. - * config/arm/arm.md (UNSPEC_CHECK_ARCH): Define. - (return_addr_mask, *check_arch2): New. - -2002-09-06 Ulrich Weigand - - * config/s390/s390.md ("*adddi3_cc", "*adddi3_cconly", - "*adddi3_cconly2", "*adddi3_64", "*adddi3_31", "adddi3", - "*addsi3_carry1_cc", "*addsi3_carry1_cconly", - "*addsi3_carry2_cc", "*addsi3_carry2_cconly", - "*addsi3_cc", "*addsi3_cconly", "*addsi3_cconly2", "addsi3", - "adddf3", "*adddf3", "*adddf3_ibm", - "addsf3", "*addsf3", "*addsf3_ibm", - "muldi3", "mulsi3", "mulsidi3", - "muldf3", "*muldf3", "*muldf3_ibm", - "mulsf3", "*mulsf3", "*mulsf3_ibm", - "*anddi3_cc", "*anddi3_cconly", "anddi3", - "*andsi3_cc", "*andsi3_cconly", "andsi3", - "*iordi3_cc", "*iordi3_cconly", "iordi3", - "*iorsi3_cc", "*iorsi3_cconly", "iorsi3", - "*xordi3_cc", "*xordi3_cconly", "xordi3", - "*xorsi3_cc", "*xorsi3_cconly", "xorsi3"): Use "nonimmediate_operand" - instead of "register_operand" as predicate for "%0" operand. - -2002-09-06 Jakub Jelinek - - * configure.in (HAVE_AS_OFFSETABLE_LO10): Use -xarch=v9 - unconditionally when gcc_cv_as_flags64 checks are gone. - * configure: Rebuilt. - -2002-09-06 Alan Modra - - * config/rs6000/rs6000.md (extzvsi_internal2): Revert most of - 2002-07-26 change. Comment. - -2002-09-05 Kaveh R. Ghazi - - * frv.c (frv_unique_section, frv_select_section, - frv_select_rtx_section): Delete. - (frv_in_small_data_p): New. - (TARGET_ASM_UNIQUE_SECTION, TARGET_ASM_SELECT_SECTION, - TARGET_ASM_SELECT_RTX_SECTION): Delete. - (TARGET_IN_SMALL_DATA_P): Define. - -2002-09-05 Dale Johannesen - - * reload1.c (reload): Retain only those memory clobbers - added for variable-array handling. - -2002-09-05 Jason Thorpe - - * config/arm/arm.c (arm_return_in_memory): Implement ATPCS - return-in-memory rules. - * config/arm/arm.h (ARM_FLAG_ATPCS, TARGET_ATPCS): Define. - -2002-09-05 David Edelsohn - - * config/rs6000/xcoff.h (HOT_TEXT_SECTION_NAME): Delete. - (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Delete. - -2002-09-05 Jason Thorpe - - * real.c: Avoid parse error if FLOAT_WORDS_BIG_ENDIAN is - not a compile-time constant for the non-IBM case. - * config/arm/arm-protos.h (arm_float_words_big_endian): New - prototype. - * config/arm/arm.c (arm_float_words_big_endian): New function. - * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __VFP_FP__ - if TARGET_VFP and not TARGET_HARD_FLOAT. - (ARM_FLAG_VFP, TARGET_VFP): Define. - (FLOAT_WORDS_BIG_ENDIAN): Use arm_float_words_big_endian. - -2002-09-05 David Edelsohn - - * doc/install.texi: Correct text of s390-*-linux* and s390x-*-linux* - URLs. Fix AIX wording. - -2002-09-05 Stan Shebs - - * config/rs6000/rs6000.c (rs6000_override_options): Make -fpic and - -fPIC equivalent on Darwin. - -Thu Sep 5 16:27:47 2002 J"orn Rennecke - - * sh.c (sh_expand_builtin): Return early if encountering an - error_mark for a type. - -2002-09-05 Ulrich Weigand - - * config/s390/s390.c (s390_expand_plus_operand): Do not require - double-word scratch register. - config/s390/s390.md ("reload_indi", "reload_insi"): Adapt. - - ("*tmqi_ext", "*tmdi_mem", "*tmsi_mem", "*tmhi_mem", "*tmqi_mem", - "*cli"): Replace s_operand by memory_operand. - ("cmpstrdi", "cmpstrsi"): Replace s_operand by general_operand. - -2002-09-05 Kazu Hirata - - * config/h8300/h8300.c (asm_file_start): Add a missing - semicolon. - -2002-09-04 Volker Reichelt - - * c-typeck.c (build_function_call): Remove unused variable(s). - (build_c_cast): Likewise. - * calls.c (rtx_for_function_call): Likewise. - * cfglayout.c (duplicate_insn_chain): Likewise. - * cfgloop.c (flow_loop_nodes_find): Likewise. - * cfgrtl.c (split_edge): Likewise. - * df.c (df_ref_create): Likewise. - * except.c (expand_end_catch): Likewise. - * expr.c (emit_push_insn, store_constructor, expand_expr): Likewise. - * function.c (emit_return_into_block): Likewise. - (reposition_prologue_and_epilogue_notes): Likewise. - * gengtype.c (get_file_basename, write_gc_structure_fields): Likewise. - * combine.c (subst_prev_insn, need_refresh): Remove. - * dwarf2out.c (primary_filename): Remove. - * final.c (new_block): Remove. - * gcse.c (orig_bb_count): Remove. - -2002-09-04 Kaveh R. Ghazi - - * dsp16xx-protos.h (dsp16xx_compare_gen): Change to bool. - * dsp16xx.c (dsp16xx_compare_gen): Likewise. - * dsp16xx.md: Treat dsp16xx_compare_gen as a bool. Call functions - directly instead of using a function pointer. - -2002-09-04 Krister Walfridsson - - * config/i386/i386.h (GOT_SYMBOL_NAME): Define. - * config/i386/i386.c (output_set_got): Use GOT_SYMBOL_NAME. - (ix86_output_addr_diff_elt) Likewise. - (x86_output_mi_thunk) Likewise. - * config/i386/netbsd.h (GOT_SYMBOL_NAME): Redefine. - -2002-09-04 Kaveh R. Ghazi - - * frv.c (frv_encode_section_info): Fix error in last change. - -2002-09-04 David Edelsohn - - * config/rs6000/rs6000.c (rs6000_flag_pic): New variable. - (rs6000_elf_encode_section_info): ATTRIBUTE_UNUSED. - (TARGET_BINDS_LOCAL_P): Define. - (rs6000_override_options): Save original flag_pic value. - (rs6000_elf_select_section): Call default_elf_select_section_1. - (rs6000_elf_unique_section): Call default_unique_section_1. - (rs6000_elf_in_small_data_p): New function. - (rs6000_xcoff_asm_named_section): Determine storage mapping class. - (rs6000_xcoff_select_section): Update based on defaults. - (rs6000_xcoff_unique_section): Set to basic name if not common. - (rs6000_binds_local_p): New function. - * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Set - targetm.have_srodata_section if SDATA_EABI. - (TARGET_IN_SMALL_DATA_P): Define. - -2002-09-04 Dale Johannesen - - * varasm.c (struct rtx_const, decode_rtx_const): - Make veclo and vechi fields not share storage. - -Thu Sep 5 00:34:33 2002 J"orn Rennecke - - * loop.c (scan_loop): Don't mark separate insns out of a libcall - for moving. - (move_movables): Abort if we see the first insn of a libcall. - -2002-09-04 Richard Henderson - - * builtin-types.def (BT_FN_FLOAT): New. - (BT_FN_DOUBLE, BT_FN_LONG_DOUBLE): New. - * builtins.def (BUILT_IN_INF, BUILT_IN_INFF, BUILT_IN_INFL, - BUILT_IN_HUGE_VAL, BUILT_IN_HUGE_VALF, BUILT_IN_HUGE_VALL): New. - * builtins.c (fold_builtin_inf): New. - (fold_builtin): Call it. - * real.c (ereal_inf): New. - * real.h: Declare it. - * doc/extend.texi: Document new builtins. - -2002-09-04 Richard Henderson - - * cse.c (cse_insn): Avoid subreg games if the equivalence - is already in the proper mode. - -2002-09-04 Eric Botcazou - - PR c/7102 - * optabs.c (expand_binop): Convert CONST_INTs in all cases. - -2002-09-04 John David Anglin - - * pa.md (setccfp0, setccfp1): New patterns. - -2002-09-04 Kaveh R. Ghazi - - * frv-protos.h (frv_init_builtins, frv_expand_builtin, - frv_select_section, frv_select_rtx_section, - frv_encode_section_info, frv_unique_section): Delete. - * frv.c: Update for target hooks. - * frv.h (STRIP_NAME_ENCODING, SLOW_ZERO_EXTEND, SELECT_SECTION, - SELECT_RTX_SECTION, ENCODE_SECTION_INFO, UNIQUE_SECTION, - EASY_DIV_EXPR, MD_INIT_BUILTINS, MD_EXPAND_BUILTIN): Delete. - -2002-09-04 Kaveh R. Ghazi - - * ip2k-protos.h (function_prologue, function_epilogue, - encode_section_info): Update to match target hook specification. - * ip2k.c: Wrap `MDR' code in IP2K_MD_REORG_PASS. - (function_prologue, function_epilogue, encode_section_info): - Update to match target hook specification. - * ip2k.h (SELECT_SECTION, SELECT_RTX_SECTION, ASM_OPEN_PAREN, - ASM_CLOSE_PAREN, EASY_DIV_EXPR): Delete. - (NOTICE_UPDATE_CC): Cast to void. - * ip2k.md: Add defaults in switch statements. - -2002-09-04 Janis Johnson - - * doc/trouble.texi (Interoperation): Update information about C++ ABI - issues. - -2002-09-04 Jason Thorpe - - * config/sparc/t-netbsd64: Disable multilib for now. - -2002-09-04 David Edelsohn - - * target-def.h (TARGET_HAVE_SRODATA_SECTION): New macro. - * target.h (gcc_target): Add have_srodata_section member. - * varasm.c (section_category): Add SECCAT_SRODATA. - (categorize_decl_for_section): Return SECCAT_SRODATA for sdata if - READONLY_SDATA_SECTION defined. - (decl_readonly_section_1): True for SECCAT_SRODATA also. - (default_elf_select_section_1): Map SECCAT_SRODATA to .sdata2. - (default_unique_section_1): Likewise. - -2002-09-04 John David Anglin - - * expr.c (emit_group_load): Revise to allow splitting TCmode source - into DImode pieces. - - * pa-64.h (LONG_DOUBLE_TYPE_SIZE): Define to 128. - * pa64-regs.h (CLASS_CANNOT_CHANGE_MODE_P): Inhibit changes from SImode - for floating-point register class. - * pa.c (function_arg): Fix handling of modes wider than one word for - TARGET_64BIT. - -Wed Sep 4 18:48:10 2002 J"orn Rennecke - - * combine.c (make_compound_operation): Don't generate zero / sign - extensions in floating point modes. - -2002-09-04 Janis Johnson - - * doc/c-tree.texi: Fix overfull hboxes. - * doc/cppopts.texi: Ditto. - * doc/extend.texi: Ditto. - * doc/gty.texi: Ditto. - * doc/invoke.texi: Ditto. - * doc/makefile.texi: Ditto. - * doc/rtl.texi: Ditto. - * doc/standards.texi: Ditto. - * doc/tm.texi: Ditto. - -2002-09-04 Richard Henderson - - * c-common.c (builtin_define_with_hex_fp_value): New. - (builtin_define_float_constants): Use it. Fix H_FLOAT mant_dig. - -2002-09-04 Janis Johnson - - * doc/invoke.texi (-fshort-wchar): Move to Code Generation Options. - (-fpcc-struct-return, -freg-struct-return, -fshort-enums, - -fshort-double, -fshort-wchar, -fpack-struct, -fleading-underscore): - Warn that these options can break ABI compatibility. - -2002-09-04 Richard Henderson - - * real.c (ereal_to_decimal): Add digits parameter. - * real.h (REAL_VALUE_TO_DECIMAL): Remove format; add digits parameter. - * c-pretty-print.c (pp_c_real_literal): Update call. - * print-rtl.c (print_rtx): Likewise. - * print-tree.c (print_node_brief, print_node): Likewise. - * sched-vis.c (print_value): Likewise. - * config/arc/arc.c (arc_print_operand): Likewise. - * config/c4x/c4x.c (c4x_print_operand): Likewise. - * config/i370/i370.h (PRINT_OPERAND): Likewise. - * config/i386/i386.c (print_operand): Likewise. - * config/i960/i960.c (i960_print_operand): Likewise. - * config/ip2k/ip2k.c (asm_output_float): Likewise. - * config/m32r/m32r.c (m32r_print_operand): Likewise. - * config/m68hc11/m68hc11.c (print_operand): Likewise. - * config/m68k/hp320.h (PRINT_OPERAND, ASM_OUTPUT_FLOAT_OPERAND, - ASM_OUTPUT_DOUBLE_OPERAND, ASM_OUTPUT_LONG_DOUBLE_OPERAND): Likewise. - * config/m68k/m68k.h (ASM_OUTPUT_FLOAT_OPERAND, - ASM_OUTPUT_DOUBLE_OPERAND, ASM_OUTPUT_LONG_DOUBLE_OPERAND): Likewise. - * config/m68k/sun2o4.h (ASM_OUTPUT_FLOAT_OPERAND, - ASM_OUTPUT_DOUBLE_OPERAND): Likewise. - * config/m68k/sun3.h (ASM_OUTPUT_FLOAT_OPERAND, - ASM_OUTPUT_DOUBLE_OPERAND): Likewise. - * config/mips/mips.c (print_operand): Likewise. - * config/ns32k/ns32k.c (print_operand): Likewise. - * config/pdp11/pdp11.h (PRINT_OPERAND): Likewise. - * config/vax/vax.h (PRINT_OPERAND): Likewise. - * doc/tm.texi (REAL_VALUE_TO_DECIMAL): Update docs. - -2002-09-04 Bob Wilson - - * config/xtensa/elf.h (TARGET_SECTION_TYPE_FLAGS): Define to - xtensa_multibss_section_type_flags. - * config/xtensa/xtensa.c (xtensa_multibss_section_type_flags): Define. - -2002-09-04 Richard Henderson - - * doc/install-old.texi: Don't mention enquire. - * doc/sourcebuild.texi: Update float.h description. - -Wed Sep 4 11:22:14 2002 J"orn Rennecke - - * sh.md (mperm_w_little, mperm_w_big): Supply mode for zero_extract. - -2002-09-03 Roger Sayle - - * builtins.c (build_function_call_expr): Remove prototype, export - as non-static and add a comment above function definition. - (builtin_mathfn_code): New function to check for math builtins. - (fold_builtin): Optimize sqrt(0.0) as 0.0, sqrt(1.0) as 1.0, - exp(0.0) as 1.0, and log(1.0) as 0.0. Optimize exp(log(x)) and - log(exp(x)) as x. Optimize sqrt(exp(x)) as exp(x/2.0) and - log(sqrt(x)) as log(x)/2.0. - - * tree.h: Prototype build_function_call_expr and builtin_mathfn_code - in new "builtins.c" section. Place the build_range_type prototype - with the other prototypes from "tree.c". - - * fold-const.c (fold) [ABS_EXPR]: Fold fabs(sqrt(x)) as sqrt(x) - and fabs(exp(x)) as exp(x). [MULT_EXPR]: Fold sqrt(x)*sqrt(y) - as sqrt(x*y) and exp(x)*exp(y) as exp(x+y). [RDIV_EXPR]: Fold - x/exp(y) as x*exp(-y). - -2002-09-03 David Edelsohn - - * varasm.c (default_section_type_flags): Append _1 to name with - shlib parameter. Use original name to call new function with - implicit flag_pic. - (decl_readonly_section): Likewise. - (default_elf_select_section): Likewise. - (default_unique_section): Likewise. - (default_bind_local_p): Likewise. - (categorize_decl_for_section): Add shlib parameter to use in place - of implicit flag_pic. - * output.h: Declare new functions with _1 and shlib argument. - -2002-09-03 Janis Johnson - - * doc/install.texi: Fix typos, formatting problems, and obvious - overfull/underfull boxes. - - * Makefile.in (TEXI_GCC_FILES): Add compat.texi. - * doc/gcc.texi (Top): Add new chapter, Binary Compatibility, and - include its file, compat.texi. - * doc/compat.texi: New file with new chapter, Binary Compatibility. - -2002-09-03 Neil Booth - - Debian BTS Bug #157416 - * cpphash.h (FIRST, LAST, CUR, RLIMIT): Fix definitions. - * cpplib.c (destringize_and_run): Kludge around getting - tokens from in-progress macros. - (_cpp_do__Pragma): Simplify. - -2002-09-03 Steve Ellcey - - * config/ia64/ia64.h (EXTRA_SPECS): Remove cpp_cpu. - (CPP_CPU_SPEC): Remove. - (TARGET_CPU_CPP_BUILTINS): New. - * config/ia64/hpux.h (CPP_PREDEFINES): Remove. - (CPP_SPEC): Remove. - (TARGET_OS_CPP_BUILTINS): New. - * config/ia64/linux.h (CPP_PREDEFINES): Remove. - (TARGET_OS_CPP_BUILTINS): New. - * config/ia64/aix.h (CPP_SPEC): Move some stuff to - TARGET_OS_CPP_BUILTINS. - (CPP_PREDEFINES): Remove. - (CPLUSPLUS_CPP_SPEC): Remove. - (TARGET_OS_CPP_BUILTINS): New. - -2002-09-03 Richard Henderson - - * Makefile.in (USER_H): Add ginclude/float.h. - (FLOAT_H): Remove. - (stmp-int-hdrs, install-mkheaders): Don't handle FLOAT_H. - (mostlyclean): Don't remove float.h intermediate files. - (distclean): Don't remove float.h. - * config.gcc: Remove all float_format references. - * configure.in (float_format, float_h_file): Remove. - - * c-common.c: Include tree-inline.h. - (builtin_define_with_int_value): New. - (builtin_define_type_precision): Use it. - (builtin_define_float_constants): New. - (cb_register_builtins): Use it. Define __FLT_RADIX__ and - __FLT_EVAL_METHOD__. - * defaults.h (TARGET_FLT_EVAL_METHOD): New. - * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): New. - * config/m68k/m68k.h (TARGET_FLT_EVAL_METHOD): New. - * doc/tm.texi (INTEL_EXTENDED_IEEE_FORMAT): Mention moto 96-bit format. - (TARGET_FLT_EVAL_METHOD): New. - - * config/float-c4x.h, config/float-i128.h, config/float-i32.h, - config/float-i386.h, config/float-i64.h, config/float-m68k.h, - config/float-sh.h, config/float-sparc.h, config/float-vax.h: Remove. - * ginclude/float.h: New. - -2002-09-03 Stan Shebs - - * config/darwin.h (WARN_FOUR_CHAR_CONSTANTS): Remove, never used. - (DWARF2_DEBUGGING_INFO): Remove until assembler accepts Dwarf-2. - (PREFERRED_DEBUGGING_TYPE): Ditto. - (ASM_OUTPUT_IDENT): Remove empty definition. - -2002-09-03 Steve Ellcey - - * config.gcc (ia64*-*-hpux*): Add ia64-c.o to c_target and - cxx_target. - * config/ia64/hpux.h (REGISTER_TARGET_PRAGMAS): Register pragma - handling routine for builtin pragma. - * config/ia64/ia64-protos.h (ia64_hpux_handle_builtin_pragma): - Registered pragma handling routine. - * ia64-c.c (ia64_hpux_handle_builtin_pragma): Ditto. - (ia64_hpux_add_pragma_builtin) New subroutine used by above. - If builtin pragma seen for math routine and C89 conformance is - requested use different math function in order to set errno. - * t-ia64 (ia64-c.o): Add new rule for new file. - -2002-09-03 Ulrich Weigand - - * config/s390/s390.md ("movti"): Add Q->Q alternative. - ("*movdi_64", "*movdi_31", "*movsi", "movhi", "movqi_64", - "movqi", "*movdf_64", "*movdf_31", "*movsf"): Likewise. - - ("*movti_ss", "*movdi_ss", "*movsi_ss", "*movdf_ss", - "*movsf_ss"): Remove. - -2002-09-03 John David Anglin - - * pa32-regs.h (CLASS_CANNOT_CHANGE_MODE, CLASS_CANNOT_CHANGE_MODE_P): - Delete macros. - -2002-09-03 Arati Dikey - - * h8300.c (asm_file_start): Corrected optimization comment. - -2002-09-03 Stan Shebs - - * c-lang.c (recognize_objc_keyword): Remove, no longer used. - * c-tree.h (recognize_objc_keyword): Remove decl. - * c-typeck.c (comp_target_types): Update a comment. - -2002-09-03 Ulrich Weigand - - * config/s390/s390.c (s390_decompose_address): Remove STRICT parameter - and register validity checks. - (general_s_operand): Adapt to s390_decompose_address interface change. - (q_constraint): Likewise. - (s390_expand_plus_operand): Likewise. - (legitimiate_address_p): Likewise. - (legitimate_la_operand_p): Likewise. - (legitimize_la_operand): Likewise. - (print_operand_address): Likewise. - (print_operand): Likewise. - -Tue Sep 3 11:32:14 2002 Nicola Pero - - PR objc/5956: - * objc/objc-act.c (build_typed_selector_reference): Fix typo which - was causing the new selector never to match the existing ones - (Patch by Alexander Malmberg ). - -2002-09-03 Graham Stott - - * config/i386/i386.md ("femms"): Add "memory" attr "none". - -2002-09-03 Graham Stott - - * expr.c (expand_expr): Remove extraneous comment and code. - -2002-09-02 Nathan Sidwell - - * stor-layout (finish_builtin_struct): Renamed and moved from c++ - frontend. Take chain of fields. Allow NULL alignment type. - * tree.h (finish_builtin_struct): Declare. - -2002-09-01 Kaveh R. Ghazi - - * config/alpha/alpha.c config/alpha/alpha.h config/alpha/alpha.md - config/alpha/elf.h config/alpha/unicosmk.h config/alpha/vms.h - config/arc/arc.c config/arc/arc.h config/arm/aout.h - config/arm/arm.c config/arm/arm.h config/arm/arm.md - config/avr/avr.h config/d30v/d30v.h config/dbxcoff.h - config/dbxelf.h config/elfos.h config/fr30/fr30.h config/frv/frv.h - config/i386/i386.c config/i386/i386.md config/i386/sco5.h - config/ia64/ia64.h config/ip2k/ip2k.h config/m68hc11/m68hc11.md - config/m68k/hp320.h config/m68k/m68k.c config/m68k/m68k.md - config/m68k/mot3300.h config/m68k/sgs.h config/m68k/tower-as.h - config/m88k/m88k.c config/m88k/m88k.h config/mcore/mcore-pe.h - config/mcore/mcore.c config/mips/mips.c config/mips/mips.h - config/ns32k/ns32k.md config/pa/pa-linux.h config/pa/pa.c - config/pa/pa.h config/pa/pa.md config/romp/romp.h - config/rs6000/linux64.h config/rs6000/lynx.h - config/rs6000/rs6000.c config/rs6000/sysv4.h config/rs6000/xcoff.h - config/s390/s390.c config/s390/s390.md config/sh/sh.c - config/sparc/sparc.c config/sparc/sysv4.h - config/stormy16/stormy16.h dbxout.c defaults.h dwarf2out.c - dwarfout.c except.c final.c varasm.c vmsdbgout.c: Replace - ASM_OUTPUT_INTERNAL_LABEL macro with a call to the target hook. - - * doc/tm.texi: Update docs. - * default.h (ASM_OUTPUT_INTERNAL_LABEL): Don't define. - * system.h (ASM_OUTPUT_INTERNAL_LABEL): Poison. - -2002-08-31 Kaveh R. Ghazi - - * Makefile.in (sdbout.o, insn-output.o): Depend on $(TARGET_H). - * arc.c (arc_internal_label): New function. - (TARGET_ASM_INTERNAL_LABEL): Set. - * arc.h (ASM_OUTPUT_INTERNAL_LABEL): Delete. - * arm.c (arm_internal_label): New function. - (TARGET_ASM_INTERNAL_LABEL): Set. - * arm.h (ASM_OUTPUT_INTERNAL_LABEL): Delete. - * arm/elf.h (ASM_OUTPUT_INTERNAL_LABEL): Delete. - * i370.c (i370_internal_label): New function. - (TARGET_ASM_INTERNAL_LABEL): Set. - * i370.h (ASM_OUTPUT_INTERNAL_LABEL): Delete. - * m68k/hp320.h (ASM_OUTPUT_INTERNAL_LABEL): Delete. - * m68k.c (m68k_hp320_internal_label): New function. - (TARGET_ASM_INTERNAL_LABEL): Set. - * m88k.c (m88k_internal_label): New function. - (TARGET_ASM_INTERNAL_LABEL): Set. - * m88k.h (ASM_OUTPUT_INTERNAL_LABEL): Delete. - * defaults.h (ASM_OUTPUT_INTERNAL_LABEL): Set to target hook. - * genoutput.c (output_prologue): Include target.h in output file. - * output.h (default_internal_label): Declare. - * sdbout.c: Include target.h. - * target-def.h (TARGET_ASM_INTERNAL_LABEL): Set and add to - TARGET_ASM_OUT. - * target.h (internal_label): Add to struct gcc_target. - * varasm.c (default_internal_label): New function. - -2002-08-31 Kaveh R. Ghazi - - * alpha.h (ASM_OUTPUT_INTERNAL_LABEL): Delete. - * avr.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. - * c4x.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. - * cris.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. - * d30v.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. - * darwin.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. - * dsp16xx.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. - * elfos.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. - * h8300.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. - * i386/att.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. - * i386/bsd.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. - * i386/i386-coff.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. - * i386/lynx-ng.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. - * i386/lynx.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. - * i386/sco5.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. - * i960/i960.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. - * m68k/3b1.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. - * m68k/amix.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. - * m68k/atari.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. - * m68k.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. - * m68k/mot3300.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. - * m68k/tower-as.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. - * m88k.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. - * mcore.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. - * mips.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. - * mmix-protos.h (mmix_asm_output_internal_label): Likewise. - * mmix.c (mmix_asm_output_internal_label): Likewise. - * mmix.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. - * ns32k.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. - * pa.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. - * pdp11.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. - * romp.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. - * rs6000/xcoff.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. - * sh/coff.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. - * sh/elf.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. - * sparc/freebsd.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. - * sparc/linux.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. - * sparc/linux64.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. - * sparc/netbsd-elf.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. - * sparc/pbd.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. - * sparc/sol2.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. - * sparc.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. - * sparc/vxsim.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. - * stormy16.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. - * svr3.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. - * vax.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. - - * defaults.h (ASM_OUTPUT_INTERNAL_LABEL): Define. - -2002-08-31 Richard Henderson - - * expr.c (block_move_libcall_safe_for_call_parm): Fix thinko. - -2002-08-31 John David Anglin - - * pa.c (pa_globalize_label): Add ATTRIBUTE_UNUSED to prototype. - -2002-08-30 Richard Henderson - - PR opt/7515 - * c-objc-common.c: Include target.h. - (c_cannot_inline_tree_fn): Don't auto-inline functions that - don't bind locally. Factor setting DECL_UNINLINABLE. - * Makefile.in (c-objc-common.o): Update. - -2002-08-30 Janis Johnson - - * doc/install.texi (Configuration, Building): Fix a typo and - some formatting directives. - -2002-08-30 Paul Koning - - * doc/c-tree.texi (RDIV_EXPR): Fix typo. - * doc/rtl.texi (post_modify): Remove misplaced text, remove "not - implemented" note. - * doc/md.texi (IP2K): Move machine-specific constraints before MIPS - for alphabetic order. - * doc/tm.texi (TARGET_FLOAT_FORMAT): Update description for - VAX_FLOAT_FORMAT. Remove reference to HOST_FLOAT_FORMAT. - (VAX_HALFWORD_ORDER): Document. - (LARGEST_EXPONENT_IS_NORMAL): Remove note about being only for - IEEE float format. - (TARGET_SCHED_ISSUE_RATE): Reword reference to MAX_DFA_ISSUE_RATE. - (ASM_OUTPUT_LABEL_REF): Fix font. - (CASE_VECTOR_SHORTEN_MODE): Ditto. - -2002-08-30 Denis Chertykov - - * config/ip2k/ip2k.c (ip2k_set_compare): Remove all const_double - stuff. - (ip2k_gen_unsigned_comp_branch): Handle CONST_INT and - CONST_DOUBLE constants. - -2002-08-30 Jason Thorpe - - * config/alpha/alpha.h (TARGET_CPU_CPP_BUILTINS): Move language- - related defines to... - (SUBTARGET_LANGUAGE_CPP_BUILTINS): ...here. - * config/alpha/netbsd.h (SUBTARGET_LANGUAGE_CPP_BUILTINS): Redefine - as a no-op. - -2002-08-30 Krister Walfridsson - - * config/arm/arm.c (arm_asm_output_labelref): New function. - * config/arm/arm.h (ASM_OUTPUT_LABELREF): Call arm_asm_output_labelref. - * config/arm/arm-protos.h: Add prototype for arm_asm_output_labelref. - -2002-08-29 Rodney Brown - - * doc/install.texi (Specific, alpha*-dec-osf*): Add "virtual - memory exhausted" workarounds. - -2002-08-30 Gabriel Dos Reis - - * diagnostic.c (fancy_abort): Don't repeat "internal error". - * toplev.c (crash_signal): Likewise. - -Fri Aug 30 00:33:37 2002 Nicola Pero - - * doc/cpp.texi (__NEXT_RUNTIME__): Extended documentation. - * doc/invoke.texi (-fnext-runtime, -Wno-protocol, -Wselector): - Extended, updated documentation. - (-Wundeclared-selector): Documented. - -2002-08-29 Jason Thorpe - - * config/chorus.h: Consistently define *_DEBUGGING_INFO with - the value 1. Do not undef before defining. - * config/darwin.h: Likewise. - * config/dbx.h: Likewise. - * config/dbxcoff.h: Likewise. - * config/dbxelf.h: Likewise. - * config/elfos.h: Likewise. - * config/interix.h: Likewise. - * config/lynx-ng.h: Likewise. - * config/lynx.h: Likewise. - * config/netware.h: Likewise. - * config/psos.h: Likewise. - * config/svr3.h: Likewise. - * config/alpha/alpha.h: Likewise. - * config/alpha/elf.h: Likewise. - * config/alpha/vms.h: Likewise. - * config/arc/arc.h: Likewise. - * config/arm/aout.h: Likewise. - * config/arm/coff.h: Likewise. - * config/c4x/c4x.h: Likewise. - * config/h8300/h8300.h: Likewise. - * config/i386/cygwin.h: Likewise. - * config/i386/djgpp.h: Likewise. - * config/i386/gas.h: Likewise. - * config/i386/gstabs.h: Likewise. - * config/i386/i386-coff.h: Likewise. - * config/i386/i386-interix.h: Likewise. - * config/i386/sco5.h: Likewise. - * config/i386/svr3dbx.h: Likewise. - * config/i386/sysv3.h: Likewise. - * config/i386/win32.h: Likewise. - * config/i386/x86-64.h: Likewise. - * config/i960/i960.h: Likewise. - * config/ia64/ia64.h: Likewise. - * config/ip2k/ip2k.h: Likewise. - * config/m32r/m32r.h: Likewise. - * config/m68k/3b1.h: Likewise. - * config/m68k/3b1g.h: Likewise. - * config/m68k/ccur-GAS.h: Likewise. - * config/m68k/coff.h: Likewise. - * config/m68k/hp2bsd.h: Likewise. - * config/m68k/hp310g.h: Likewise. - * config/m68k/hp320g.h: Likewise. - * config/m68k/hp3bsd.h: Likewise. - * config/m68k/hp3bsd44.h: Likewise. - * config/m68k/linux-aout.h: Likewise. - * config/m68k/m68k-aout.h: Likewise. - * config/m68k/mot3300.h: Likewise. - * config/m68k/netbsd.h: Likewise. - * config/m68k/openbsd.h: Likewise. - * config/m68k/pbb.h: Likewise. - * config/m68k/plexus.h: Likewise. - * config/m68k/sun2.h: Likewise. - * config/m68k/sun3.h: Likewise. - * config/m68k/tower-as.h: Likewise. - * config/m68k/vxm68k.h: Likewise. - * config/m88k/aout-dbx.h: Likewise. - * config/m88k/m88k-aout.h: Likewise. - * config/mcore/mcore-elf.h: Likewise. - * config/mcore/mcore-pe.h: Likewise. - * config/mips/elf.h: Likewise. - * config/mips/elf64.h: Likewise. - * config/mips/iris5gas.h: Likewise. - * config/mips/iris6.h: Likewise. - * config/mips/mips.h: Likewise. - * config/mips/sni-gas.h: Likewise. - * config/mmix/mmix.h: Likewise. - * config/ns32k/netbsd.h: Likewise. - * config/pa/pa64-hpux.h: Likewise. - * config/romp/romp.h: Likewise. - * config/rs6000/sysv4.h: Likewise. - * config/rs6000/xcoff.h: Likewise. - * config/sh/coff.h: Likewise. - * config/sh/elf.h: Likewise. - * config/sparc/linux64.h: Likewise. - * config/sparc/liteelf.h: Likewise. - * config/sparc/netbsd.h: Likewise. - * config/sparc/openbsd.h: Likewise. - * config/sparc/pbd.h: Likewise. - * config/sparc/sp64-elf.h: Likewise. - * config/sparc/sp86x-elf.h: Likewise. - * config/sparc/sparc.h: Likewise. - * config/vax/vax.h: Likewise. - * config/vax/vaxv.h: Likewise. - -2002-08-29 "Dhananjay R. Deshpande" - - * h8300.c (shift_alg_hi): Various tweaks to improve performance - of HImode shifts. - (get_shift_alg): Corresponding changes. - -2002-08-29 John David Anglin - - * som.h (ALWAYS_STRIP_DOTDOT): Define to 1. - -2002-08-29 Richard Henderson - - * expr.h (enum block_op_methods): New. - (emit_block_move): Update prototype. - * expr.c (block_move_libcall_safe_for_call_parm): New. - (emit_block_move_via_loop): New. - (emit_block_move): Use them. New argument METHOD. - (emit_push_insn): Always respect the given alignment. - (expand_assignment): Update call to emit_block_move. - (store_expr, store_field, expand_expr): Likewise. - * builtins.c (expand_builtin_apply): Likewise. - (expand_builtin_memcpy, expand_builtin_va_copy): Likewise. - * function.c (expand_function_end): Likewise. - * config/sh/sh.c (sh_initialize_trampoline): Likewise. - * config/sparc/sparc.c (sparc_va_arg): Likewise. - * calls.c (expand_call, emit_library_call_value_1): Likewise. - (save_fixed_argument_area): Use emit_block_move with - BLOCK_OP_CALL_PARM instead of move_by_pieces. - (restore_fixed_argument_area): Likewise. - (store_one_arg): Fix alignment parameter to emit_push_insn. - -2002-08-29 John David Anglin - - * install.texi (hppa64-hp-hpux11*): Document installation procedure. - -2002-08-29 Catherine Moore - - * config/v850/v850.h (MULDI3_LIBCALL, UCMPDI2_LIBCALL, CMPDI2_LIBCALL, - NEGDI2_LIBCALL, INIT_TARGET_OPTABS, MASK_STRICT_ALIGN): Define. - (PREDICATE_CODES): Include new predicates. - (RTX_COSTS): Handle UMOD and UDIV. Tune MULT for v850e. - (TARGET_SWITCHES): Add strict-align. - (TARGET_STRICT_ALIGN): New. - (MASK_DEFAULT, STRICT_ALIGNMENT): Redefine. - * config/v850/t-v850 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): - Define. - (LIB1ASMFUNCS): Add v850_negdi2, v850_cmpdi2, v850_ucmpdi2, - v850_muldi3. - * config/v850/lib1funcs.asm (L_callt_save_r2_r29, L_return_r2_r29, - L_callt_save_r2_r31, L_return_r2_r31, - L_save_all_interrupt): Change addi to add. - (L_save_interrupt, L_return_interrupt): Rework. - (__return_r31): Correct .size directive. - (mulsi3, divsi3, udivsi3, umodsi3, modsi3): Tune for v850e. - (v850_negdi2, v850_cmpdi2, v850_ucmpdi2, v850_muldi3): - New routines. - * config/v850/v850.c (expand_prologue): Call - gen_callt_save_interrupt, gen_callt_restore_all_interrupt, - gen_callt_return_interrupt and gen_callt_save_all_interrupt. - (reg_or_int9_operand): New predicate. - (reg_or_const_operand): New routine. - * config/v850/v850.md (return_interrupt): Changed from - restore_interrupt. - (callt_save_all_interrupt): Changed from save_all_interrupt_v850e. - (callt_save_interrupt): Change save sequence. - (callt_return_interrupt): New. - (save_interrupt): Don't use runtime function for LONG_CALLS - and TARGET_PROLOG_FUNCTION. - (save_all_interrupt): Likewise. - (mulsi3): Use new predicate. - (moviscc): Disallow some combination of constants. - Fix define_split for sasf insns, so that it will not generate bad - code if operand0 and operand5 are the same. - * config/v850/v850-protos.h: Prototype new predicates. - -2002-08-29 Zack Weinberg - - * config/rs6000/rs6000.c (processor_target_table): Add 405f. - * config/rs6000/rs6000.h (ASM_CPU_SPEC): Likewise. - -2002-08-28 Gabriel Dos Reis - - * c-common.c (builtin_define_type_precision): New function. - (cb_register_builtins): Use it. Define __WCHAR_UNSIGNED__ is - wchar_t is unsigned in C++. - * doc/cpp.texi (Common Predefined Macros): Document - __WCHAR_UNSIGNED__, __CHAR_BIT__, __WCHAR_BIT__, __SHRT_BIT__, - __INT_BIT__, __LONG_BIT__, __LONG_LONG_BIT__, __FLOAT_BIT__, - __DOUBLE_BIT__, __LONG_DOUBLE_BIT__. - -2002-08-28 Sylvain Pion - - * doc/invoke.texi (-Wreorder): Remove remaining pieces from the generic - section. Mention that it is enabled by -Wall. - (-Wall): Mention that there can be language-specific warnings as well. - (-Wctor-dtor-privacy): Mention that it is enabled by default. - (-Wnon-virtual-dtor): Mention that it is enabled by -Wall. - -Wed Aug 28 15:35:17 2002 J"orn Rennecke - - * sh.c (calc_live_regs): Save FPSCR_REG in an interrupt handler - if it is ever live. - - * sh.c (sh_handle_interrupt_handler_attribute): Reject interrupt_handler - attribute for SHCOMPACT. - - * sh.h (OVERRIDE_OPTIONS): If align_function isn't set, set it - appropriately. - (FUNCTION_BOUNDARY): Specify only the minimum alignment required - by the ABI. - - * sh.h (SH5_WOULD_BE_PARTIAL_NREGS): Also handle TImode case. - -2002-08-28 Jason Thorpe - - * config.gcc (mips*-*-netbsd*): Set target_cpu_default to - "MASK_GAS|MASK_ABICALLS". - * config/mips/netbsd.h (TARGET_ENDIAN_DEFAULT) - (TARGET_DEFAULT): Remove. - (MACHINE_TYPE): Undefine before defining. - (DBX_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE): Remove. - -2002-08-27 Mark Mitchell - - * c-common.c (warn_abi): New variable. - * c-common.h (warn_abi): Likewise. - * c-opts.c (COMMAND_LINE_OPTIONS): Add -Wabi. - (c_common_decode_option): Handle it. - * doc/invoke.texi: Document -Wabi. - -Tue Aug 27 23:03:52 2002 Nicola Pero - - * c-common.c (warn_undeclared_selector): New variable. - * c-common.h (warn_undeclared_selector): Idem. - * c-opts.c (c_common_decode_option): Set warn_undeclared_selector - to on when -Wundeclared-selector is found. - (COMMAND_LINE_OPTIONS): Added -Wundeclared-selector. - * objc/objc-act.c (build_selector_expr): If - warn_undeclared_selector is set, check that the selector has - already been defined, and emit a warning if not. - -2002-08-27 Nick Clifton - Catherine Moore - Jim Wilson - - * config.gcc: Add v850e-*-* target. - Add --with-cpu= support for v850. - * config/v850/lib1funcs.asm: Add v850e callt functions. - * config/v850/v850.h: Add support for v850e target. - * config/v850/v850.c: Add functions to support v850e target. - * config/v850/v850-protos.h: Add prototypes for new functions in v850.c. - * config/v850/v850.md: Add patterns for v850e instructions. - * doc/invoke.texi: Document new v850e command line switches. - -Tue Aug 27 18:30:47 2002 J"orn Rennecke - Aldy Hernandez - - * doc/tm.texi: Applied numerous fixes to the automaton based - scheduler descrition. - -Tue Aug 27 19:51:05 CEST 2002 Jan Hubicka - - * i386.c (classify_argument): Handle variable sized objects. - -Tue Aug 27 19:18:16 CEST 2002 Jan Hubicka - - * i386.c (ix86_expand_int_movcc): Fix RTL sharing problem - -Tue Aug 27 18:01:45 CEST 2002 Jan Hubicka - - * libgcc2.c (__bb_exit_func): Properly write the summarized statistics. - -Tue Aug 27 18:00:11 CEST 2002 Jan Hubicka - - * i386.c (classify_argument): Properly compute word size of the analyzed object. - -Tue Aug 27 14:39:09 2002 J"orn Rennecke - - * sh.md (attribute type): Add types mt_group, fload, pcfload, fpul_gp, - mac_gp ftrc_s and cwb. Add / Adjust definitions in individual insn - accordingly. - (attribute insn_class): Provide default definitions based on type. - Remove all insn-specific settings. - (various function units): Remove old SH4 scheduling. - (branch_zero, dfp_comp, late_fp_use, any_fp_comp, any_int_load): - New attributes. Set them where appropriate. - (cpu unit FS): Don't define / use. - (F3, load_store): New cpu units. - (F01): New reservation. - (all insn_reservations): Make dependent on sh4 pipeline model. - Fix latencies. - (nil, reg_mov, freg_mov, sh4_fpul_gp, sh4_call): New insn_reservations. - (sh4_mac_gp, fp_arith_ftrc, arith3, arith3b): Likewise. - (mt insn_reservation): Use type mt_group. - (insn_reservation load_store): Split into sh4_load, sh4_load_si, - sh4_fload and sh4_store. - (insn_reservation branch_zero and branch): Replace with sh4_branch. - (insn_reservation branch_far): Replace with sh4_return. - (insn_reservation return_from_exp): Rename to: - (sh4_return_from_exp). Change to be just d_lock*5. - (insn_reservation lds_to_pr): Rename to: - (sh4_lds_to_pr). Change to be just d_lock*2. - (insn_reservation ldsmem_to_pr, sts_from_pr): Change to be just - d_lock*2. - (insn_reservation prload_mem): Rename to: - (sh4_prstore_mem). Change to d_lock*2,nothing,memory. - (insn_reservation fpscr_store): Rename to: - (fpscr_load). Change to d_lock,nothing,F1*3. - (insn_reservation fpscr_store_mem): Rename to: - (fpscr_load_mem). Change to d_lock,nothing,(F1+memory),F1*2. - (insn_reservation multi): Change to - d_lock,(d_lock+f1_1),(f1_1|f1_2)*3,F2. - (insn_reservation fp_arith): Change to issue,F01,F2. - (insn_reservation fp_div: Change to issue,F01+F3,F2+F3,F3*7,F1+F3,F2. - (insn_reservation dp_float): Change to issue,F01,F1+F2,F2. - (insn_reservation fp_double_arith): Change to issue,F01,F1+F2,fpu*4,F2. - (insn_reservation fp_double_cmp): Change to - d_lock,(d_lock+F01),F1+F2,F2. - (insn_reservation dp_div): Change to - issue,F01+F3,F1+F2+F3,F2+F3,F3*16,F1+F3,(fpu+F3)*2,F2. - * sh.c (flow_dependent_p, flow_dependent_p_1): New functions. - (sh_adjust_cost, SHcompact): Differentiate between different - kinds of dependencies. Drop factor of ten for superscalar. - Use new instruction types. Add new exception rules. - - * sh.md (mulhisi3, umulhisi3: Add a REG_EQUAL note. - - * sh.md (mperm_w): Add DONE. - -2002-08-27 David Edelsohn - - * longlong.h: Import current PowerPC defintion from GMP-4.1. - - * config/rs6000/rs6000.h (MIN_UNITS_PER_WORD): Add IN_LIBGCC2 case. - - * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Undef before define. - -Tue Aug 27 13:53:57 2002 J"orn Rennecke - - * sh.h (MAX_FIXED_MODE_SIZE): Define. - -2002-08-27 Gabriel Dos Reis - - * doc/cpp.texi (Common Predefined Macros): Don't mess with table - delimiter. - -2002-08-27 Gabriel Dos Reis - - * c-common.c (cpp_define_data_format): New function. - (cb_register_builtins): Call it. - - * doc/cpp.texi (Common Predefined Macros): Document - __TARGET_BITS_ORDER__, __TARGET_BYTES_ORDER__, - __TARGET_INT_WORDS_ORDER__, __TARGET_FLOAT_WORDS_ORDER__, - __TARGET_FLOAT_FORMAT__, __TARGET_USES_VAX_F_FLOAT__, - __TARGET_USES_VAX_D_FLOAT__, __TARGET_USES_VAX_G_FLOAT__, - __TARGET_USES_VAX_H_FLOAT__. - -2002-08-26 Ziemowit Laski - - * objc/objc-act.c (get_super_receiver): If inside a class method - of a category, cast the receiver to 'id' before accessing the 'isa' - field so that is not needed. For NeXT runtime. - -2002-08-26 Ulrich Weigand - - * config/s390/s390-protos.h (s390_function_prologue, - s390_function_epilogue): Remove. - config/s390/s390.c (s390_function_prologue, s390_function_epilogue, - TARGET_ASM_FUNCTION_PROLOGUE, TARGET_ASM_FUNCTION_EPILOGUE): Remove. - - config/s390/s390.c (s390_machine_dependent_recorg): New function. - config/s390/s390-protos.h (s390_machine_dependent_reorg): Declare it. - config/s390/s390.h (MACHINE_DEPENDENT_REORG): Call it. - config/s390/s390.c (s390_split_branches, s390_chunkify_pool): Adapt - to being called from MACHINE_DEPENDENT_REORG. Update regs_ever_live. - - config/s390/s390.c (s390_frame_info): Inline save_fprs_p. Always - assume BASE_REGISTER and RETURN_REGNUM need to be saved. - (s390_emit_prologue): Assume RETURN_REGNUM to be saved iff - function is not a leaf function. Use save_gprs and restore_gprs. - (s390_emit_epilogue): Likewise. - (save_gprs, restore_gprs): New functions. - (struct s390_frame): Remove return_reg_saved_p member. - (save_fprs_p): Remove. - (s390_optimize_prolog): New function. - (s390_legitimate_reload_constant): Remove now unnecessary check. - - (s390_function_count): Remove. - (s390_output_symbolic_const): Replace s390_function_count by - current_function_funcdef_no. - (s390_output_constant_pool): Likewise. - - (legitimize_pic_address): Use regs_ever_live to track PIC register - instead of current_function_uses_pic_offset_table. - (s390_emit_prologue): Likewise. - config/s390/s390.md ("call", "call_value"): Likewise. - -2002-08-26 Neil Booth - - * c-opts.c (find_opt): Don't complain about wrong languages - here. Return exact matches even for wrong language. - (c_common_decode_option): Complain about wrong languages - here. - -2002-08-24 Stuart Hastings - - * function.h (struct function): Add flag - all_throwers_are_sibcalls. - * except.c (set_nothrow_function_flags): Replaces - nothrow_function_p. Set new flag. - * except.h (set_nothrow_function_flags): Replaces - nothrow_function_p. - * dwarf2out.c (struct dw_fde_struct): Add flag - all_throwers_are_sibcalls. - (output_call_frame_info): Test it. - (dwarf2out_begin_prologue) Propagate it from cfun to - dw_fde_struct. - * toplev.c (rest_of_compilation): Update calls to - nothrow_function_p. - -2002-08-23 Zack Weinberg - - * ggc-page.c (compute_inverse): Short circuit calculation for - object sizes larger than half a page. - -2002-08-23 David Edelsohn - - * config/rs6000/rs6000.c (rs6000_elf_select_section): Treat - DEFAULT_ABI == ABI_AIX like PIC. Test PIC & reloc for readonly - default. - (rs6000_elf_unique_section): Likewise. - -2002-08-23 Kaveh R. Ghazi - - * ns32k.c (ns32k_globalize_label): Delete. - * ns32k.h (ASM_OUTPUT_LABEL, TARGET_ASM_GLOBALIZE_LABEL): Delete. - -2002-08-23 Alan Modra - - * config/rs6000/rs6000.c (output_mi_thunk): Don't determine insns - for loading delta with num_insns_constant_wide. Calculate - delta_low, delta_high without using a conditional. - -2002-08-22 Jason Merrill - - * c-common.h (RETURN_STMT_EXPR): Rename from RETURN_EXPR. - * c-common.def: Adjust. - * c-dump.c (c_dump_tree): Adjust. - * c-semantics.c (genrtl_return_stmt): Adjust. - * c-pretty-print.c (pp_c_statement): Adjust. - * tree-inline.c (copy_body_r): Adjust. - -2002-08-22 Zack Weinberg - - * ggc-page.c: Avoid division in ggc_set_mark. - (DIV_MULT, DIV_SHIFT, OFFSET_TO_BIT, inverse_table, - compute_inverse): New. - (ggc_set_mark, ggc_marked_p): Use OFFSET_TO_BIT. - (init_ggc): Initialize inverse_table. - -2002-08-22 Tom Tromey - - * doc/install.texi (Configuration): Document --datadir. - -2002-08-22 Alexandre Oliva - - * Makefile.in ($(BUILD_PREFIX_1)varray.o): Depend on $(GGC_H). - -2002-08-22 Hans-Peter Nilsson - - * gengtype-lex.l (ID): Allow underscore as first character. - -2002-08-21 David Edelsohn - - * config/rs6000/rs6000.c (rs6000_xcoff_asm_globalize_label): New - function. - (rs6000_xcoff_asm_named_section): Rename. - * config/rs6000/xcoff.h (TARGET_ASM_GLOBALIZE_LABEL): Define. - -2002-08-21 Tom Tromey - - For PR java/6005 and PR java/7611: - * fold-const.c (fold_truthop): Use can_use_bit_fields_p. - (fold): Likewise. - * langhooks.c (lhd_can_use_bit_fields_p): New function. - * langhooks-def.h (lhd_can_use_bit_fields_p): Declare. - (LANG_HOOKS_CAN_USE_BIT_FIELDS_P): New define. - (LANG_HOOKS_INITIALIZER): Use it. - * langhooks.h (struct lang_hooks) [can_use_bit_fields_p]: New - field. - -2002-08-21 Stan Shebs - - * tree.c (finish_vector_type): Fix a typo in a comment. - * Makefile.in: Fix "the the" stutters in comments. - * genautomata.c: Ditto. - * ifcvt.c: Ditto. - * regrename.c: Ditto. - * config/alpha/alpha.c: Ditto. - * config/alpha/vms-crt0-64.c: Ditto. - * config/alpha/vms-crt0.c: Ditto. - * config/alpha/vms-psxcrt0-64.c: Ditto. - * config/alpha/vms-psxcrt0.c: Ditto. - * config/d30v/d30v.h: Ditto. - * config/fr30/fr30.h: Ditto. - * config/rs6000/rs6000.c: Ditto. - * config/stormy16/stormy16.h: Ditto. - * doc/md.texi: Ditto. - -2002-08-21 John David Anglin - - * cppinit.c (remove_dup_nonsys_dirs): Fix warning and return value. - -2002-08-21 Joseph S. Myers - - * c-decl.c (grokdeclarator): Make invalid combinations with long, - short, signed or unsigned into hard errors. Fixes PR c/4319. - Also make duplicate modifiers such as "short short" into hard - errors. - -2002-08-21 Andrew Pinski - Kaveh R. Ghazi - - * doc/tm.texi (TARGET_ASM_GLOBALIZE_LABEL): Move '@end deftypefn' - to the actual end. Add '@end table' and '@table @code'. - -2002-08-20 Geoffrey Keating - - * doc/tm.texi (Label Output): Add missing '@end deftypefn'. - - * unroll.c (biv_total_increment): Don't try to compute the total - increment for FP BIVs. - -2002-08-20 Kaveh R. Ghazi - - * alpha.c (TARGET_ASM_GLOBALIZE_LABEL): Define for unicosmk. - * alpha/elf.h (ASM_OUTPUT_EXTERNAL_LIBCALL, - ASM_OUTPUT_ALIGNED_BSS): Use target hook. - * alpha/osf.h (ASM_OUTPUT_WEAK_ALIAS): Likewise. - * alpha/unicosmk.h (ASM_GLOBALIZE_LABEL): Delete. - * arm/aof.h (ASM_GLOBALIZE_LABEL): Likewise. - (GLOBAL_ASM_OP): Define. - * arm.c (aof_globalize_label): New function. - (TARGET_ASM_GLOBALIZE_LABEL): Define for AOF. - * arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_BSS): Use target hook. - * c4x.c (c4x_globalize_label): New function. - (TARGET_ASM_GLOBALIZE_LABEL): Define for c4x. - * c4x.h (ASM_GLOBALIZE_LABEL): Delete. - (GLOBAL_ASM_OP): Define. - * cris/aout.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Use target hook. - * darwin-protos.h (darwin_globalize_label): Declare. - * darwin.c (darwin_globalize_label): New function. - * darwin.h (ASM_DECLARE_CLASS_REFERENCE): Use target hook. - (ASM_GLOBALIZE_LABEL): Delete. - (GLOBAL_ASM_OP, TARGET_ASM_GLOBALIZE_LABEL): Define. - * dsp16xx.c (asm_output_common): Use target hook. - * elfos.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise. - * frv.h (ASM_GLOBALIZE_LABEL): Delete. - (GLOBAL_ASM_OP): Define. - * i370.c (i370_globalize_label): New function. - (TARGET_ASM_GLOBALIZE_LABEL): Define for i370. - * i370.h (ASM_GLOBALIZE_LABEL): Delete. - * i386.c (ix86_asm_file_end): Use target hook. - * i386/sco5.h (ASM_GLOBALIZE_LABEL): Don't undef. - (ASM_OUTPUT_EXTERNAL_LIBCALL): Use target hook. - * ia64.c (ia64_asm_output_external): Likewise. - * ia64/sysv4.h: Update comment. - * m32r.h (ASM_OUTPUT_ALIGNED_BSS): Use target hook. - * mips/elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise. - * mips/iris5.h (ASM_OUTPUT_WEAK_ALIAS): Use target hook. - * mips/linux.h (ASM_OUTPUT_ALIGNED_BSS): Likewise. - * mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use target hook. - * mmix-protos.h (mmix_asm_globalize_label): Delete. - * mmix.c (mmix_asm_globalize_label): Likewise. - * mmix.h (ASM_GLOBALIZE_LABEL): Likewise. - (GLOBAL_ASM_OP): Define. - * ns32k.c (ns32k_globalize_label): New function. - * ns32k.h (TARGET_ASM_GLOBALIZE_LABEL): Define for ns32k. - (ASM_GLOBALIZE_LABEL): Delete. - * pa/pa-linux.h (ASM_GLOBALIZE_LABEL): Don't undef. - (TARGET_ASM_GLOBALIZE_LABEL): Undefine. - * pa.c (pa_globalize_label): New function. - * pa.h (ASM_GLOBALIZE_LABEL): Delete. - (TARGET_ASM_GLOBALIZE_LABEL): Define for pa. - * rs6000/darwin.h (ASM_GLOBALIZE_LABEL): Delete. - (GLOBAL_ASM_OP): Define. - (TARGET_ASM_GLOBALIZE_LABEL): Undef. - * rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_BSS): Use target hook. - * rs6000/xcoff.h (ASM_GLOBALIZE_LABEL): Delete. - (GLOBAL_ASM_OP): Define. - * v850.c (v850_output_aligned_bss): Use target hook. - * vax.c (vms_globalize_label): New function. - (TARGET_ASM_GLOBALIZE_LABEL): Define for vms. - * vax/vms.h (ASM_GLOBALIZE_LABEL): Delete. - (GLOBAL_ASM_OP): Define. - * defaults.h (ASM_GLOBALIZE_LABEL): Delete. - * doc/tm.texi: Update docs. - * dwarf2out.c (default_eh_frame_section, output_die_symbol): Use - target hook. - * final.c (output_alternate_entry_point): Likewise. - * hooks.c (hook_FILEptr_constcharptr_void): New function. - * hooks.h (hook_FILEptr_constcharptr_void): Declare. - * output.h (assemble_global): Delete. - (default_globalize_label): Declare. - * system.h (ASM_GLOBALIZE_LABEL): Poison. - * target-def.h (TARGET_ASM_GLOBALIZE_LABEL): Define. - (TARGET_ASM_OUT): Add TARGET_ASM_GLOBALIZE_LABEL. - * target.h (gcc_target): Add globalize_label member. - * varasm.c (asm_output_bss, asm_output_aligned_bss, - globalize_decl): Use target hook. - (assemble_global): Delete. - (default_globalize_label): New function. - -2002-08-20 Kaveh R. Ghazi - - * dsp16xx.h (dsp16xx_umulhi3_libcall): Delete. - -2002-08-20 Devang Patel - * tree.c (get_qualified_type): Add TYPE_CONTEXT check. - -2002-08-20 Kaveh R. Ghazi - - * arc.c (output_shift): Use stdio instead of asm_fprintf. - * arm.c (thumb_output_function_prologue): Likewise. - * avr.c (print_operand): Likewise. - * c4x.c (c4x_print_operand): Likewise. - * c4x.h (ASM_OUTPUT_INTERNAL_LABEL, TRAMPOLINE_TEMPLATE, - ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Likewise. - * cris.c (cris_target_asm_function_prologue, - cris_asm_output_mi_thunk): Likewise. - * h8300.c (print_operand): Likewise. - * h8300.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise. - * ip2k.c (print_operand): Likewise. Fix format specifier. - * m68hc11.c (asm_print_register, print_operand, - print_operand_address): Use stdio instead of asm_fprintf. - (print_operand_address): Fix format specifier. - * m68hc11.h (FUNCTION_PROFILER, ASM_OUTPUT_ADDR_DIFF_ELT, - ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ALIGN): Use stdio instead of - asm_fprintf. - * m68k/amix.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. - * m68k/atari.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise. - * m68k.c (m68k_output_function_prologue, - m68k_output_function_epilogue, print_operand): Likewise. - * mmix.c (mmix_asm_output_mi_thunk, mmix_asm_weaken_label): - Likewise. Fix format specifier. - * mn10200.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise. - * mn10300.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise. - * v850.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise. - -2002-08-15 Eric Christopher - Jeff Knaggs - - * config.gcc (mipsisa64sr71k-elf): New target. - * config/mips/sr71k.md: New file. - * config/mips/mips.md: Use it. - (rot*): Add sr71k specifics. - * config/mips/t-sr71k: New file. - * config/mips/mips.h (sr71k): New cpu. - (TARGET_SR71K): Use it. - (TUNE_SR71K): Ditto. - (GENERATE_BRANCHLIKELY): Ditto. - (ISA_HAS_MULHI, ISA_HAS_MULS, ISA_HAS_MSAC, ISA_HAS_MACC, - ISA_HAS_ROTR_SIISA_HAS_ROTR_DI): Ditto. - * config/mips/mips.c (sr71k): New cpu. - (mips_use_dfa_pipeline_interface): Use. - -2002-08-15 Eric Christopher - Richard Sandiford - Aldy Hernandez - Graham Stott - Michael Meissner - Gavin Romig-Koch - Ken Raeburn - Alexandre Oliva - - * config.gcc (mips64vr-elf): New target. - * config/mips/5400.md: New file. - * config/mips/5500.md: Ditto. - * config/mips/mips.md: Use them. - (frsqrt): New. - * config/mips/mips.c (vr4111, vr4121, vr4320, vr5400, vr5500): New - cpus. - (mips_issue_rate): Use them. - (mips_use_dfa_pipeline_interface): New function. Use for 5400 and 5500. - (TARGET_SCHEDUSE_DFA_PIPELINE_INTERFACE): Define. Use above. - * config/mips/mips.h (vr4111, vr4121, vr4320, vr5400, vr5500): New - cpus. - (TARGET_MIPSx): Use them. - (TUNE_MIPSx): Ditto. - (GETNATE_MULT3_SI): Ditto. - (ISA_HAS_BRANCHLIKELY): Ditto. - (ISA_HAS_CONDMOVE): Ditto. - (ISA_HAS_NMADD_NMSUB): Ditto. - (ISA_HAS_MULHI): New. Ditto. - (ISA_HAS_MULS): Ditto. - (ISA_HAS_MSAC): Ditto. - (ISA_HAS_MACC): Ditto. - (ISA_HAS_ROTR_SI): Ditto. - (ISA_HAS_ROTR_DI): Ditto. - (RTX_COSTS): Use. - -2002-08-20 John David Anglin - - * cppinit.c (remove_dup_dir): Add head_ptr argument to handle removal - at head. - (remove_dup_nonsys_dirs): New function. - (remove_dup_dirs): Change argument head to head_ptr. Remove warnings. - (merge_include_chains): Remove non-system include directories from - quote and bracket include chains when they duplicate equivalent system - directories. - * doc/cpp.texi (-I): Update. - * doc/cppopts.texi (-I): Update. - * doc/install.texi (--with-local-prefix): Further document usage of - this option. - * doc/invoke.texi (-I): Update. - -2002-08-20 Richard Henderson - - * expr.c (TARGET_MEM_FUNCTIONS): Transform to boolean. - (emit_block_move): Split out subroutines. - (emit_block_move_via_movstr): New. - (emit_block_move_via_libcall): New. Emit bcopy via normal call also. - (emit_block_move_libcall_fn): New. Construct function prototype for - bcopy as well. - (clear_storage): Split out subroutines. - (clear_storage_via_clrstr): New. - (clear_storage_via_libcall): New. Emit bzero as a normal call also. - (clear_storage_libcall_fn): New. Construct function prototype for - bzero as well. - (emit_push_insn): Use emit_block_move. - (expand_assignment): Booleanize TARGET_MEM_FUNCTIONS. - (store_constructor): Likewise. - -2002-08-19 Ziemowit Laski - - * objc/objc-act.c (building_objc_message_expr): Rename to - current_objc_message_selector. - -2002-08-19 Ziemowit Laski - - * objc/objc-act.c (build_ivar_chain): Remove. - (objc_copy_list): Likewise. - (get_class_ivars): Inline call to removed build_ivar_chain - function. Save off a clean copy of ivars in the CLASS_OWN_IVARS - slot; use that slot (rather than CLASS_IVARS) when accessing - ivars for base classes. Call copy_list and chainon instead of - objc_copy_list. - (build_private_template): Call get_class_ivars instead of - build_ivar_chain. - (start_class): Allocate room for the CLASS_OWN_IVARS slot. - (continue_class): Call get_class_ivars instead of - build_ivar_chain. - (encode_field_decl): Check for DECL_BIT_FIELD_TYPE instead - of DECL_BIT_FIELD (which may have been cleared). - * objc/objc-act.h (CLASS_OWN_IVARS): New accessor macro. - -2002-08-19 Kaveh R. Ghazi - - * genautomata.c (output_translate_vect, output_state_ainsn_table, - output_min_issue_delay_table): Mark variable with ATTRIBUTE_UNUSED - in output file. - (output_internal_min_issue_delay_func): Initialize variable in - output file. - -2002-08-19 Alexandre Oliva - - * Makefile.in (GCC_FOR_TARGET): Prepend STAGE_CC_WRAPPER. - (stage2_build, stage3_build, stage4_build): Likewise, to CC. - -2002-08-19 Geoffrey Keating - Steve Ellcey - - * machmode.h (SCALAR_INT_MODE_P): New macro to test for - scaler integer mode (MODE_INT or MODE_PARTIAL_INT). - * explow.c (trunc_int_for_mode): Abort when the mode is not - a scaler integer mode. - * combine.c (expand_compound_operation): Don't expand Vector - or Complex modes into shifts. - (expand_field_assignment): Don't do bitwise arithmatic and - shifts on Vector or Complex modes. - (simplify_comparison): Don't call trunc_int_for_mode - for VOIDmode. - * recog.c (general_operand): Likewise. - (immediate_operand): Likewise. - (nonmemory_operand): Likewise. - -2002-08-19 David Edelsohn - - * config/rs6000/rs6000.c (rs6000_emit_set_const): Inline - multi-instruction SImode constant. Add REG_EQUAL note. - * config/rs6000/rs6000.md (movsi splitter): Use - rs6000_emit_set_const. - -2002-08-19 Kaveh R. Ghazi - - * tree-inline.c (initialize_inlined_parameters): Wrap variable in - the macro test controlling its use. - -2002-08-18 H.J. Lu (hjl@gnu.org) - - * config.gcc (*-*-linux*): Set extra_parts="crtbegin.o - crtbeginS.o crtbeginT.o crtend.o crtendS.o", gas=yes and - gnu_ld=yes. - (alpha*-*-linux*, cris-*-linux*, i370-*-linux*, - i[34567]86-*-linux*, x86_64-*-linux*, mips*-*-linux*, - s390-*-linux*, s390x-*-linux*, sparc-*-linux*, sparc64-*-linux*, - xtensa-*-linux*): Remove setting extra_parts, gas, and gnu_ld - here. - (cris-*-linux*): Remove setting thread_file here. - -2002-08-18 Neil Booth - - PR preprocessor/7602 - * cppinit.c (path_include): Treat the system environment - variables as being cxx_aware. - -2002-08-17 Joseph S. Myers - - * c-decl.c (flexible_array_type_p): New function. - (grokdeclarator, finish_struct): Use it. - * doc/extend.texi: Document constraints on use of structures with - flexible array members. - -2002-08-17 Richard Sandiford - - * config/mips/t-coff, config/mips/t-elf, config/mips/t-isa3264, - config/mips/t-r3900 (MULTILIB_MATCHES): Define. - * config/mips/mips.h (ASM_SPEC): Use %(endian_spec). - -2002-08-16 Stan Shebs - - * c-common.c (cb_register_builds): Define __NEXT_RUNTIME__ - for ObjC with -fnext-runtime. - * doc/cpp.texi: Document it. - -2002-08-16 Janis Johnson - - * doc/install.texi (Final installation): Replace links to individual - build status pages with a link to a common page that lists them all. - -2002-08-16 Sylvain Pion - - * doc/invoke.texi: Fix typo. - -2002-08-16 David Edelsohn - - * doc/install.texi (*-ibm-aix*): Explain AIX shared object versioning. - -2002-08-16 Andrew Haley - - * tree-inline.c: Add includes for Java inliner. - (remap_decl): Don't handle anonymous types for Java. - (remap_block): Add handling for Java trees. - (copy_scope_stmt): Conditionalize for non-Java use only. - (copy_body_r): Handle Java trees. Add handling for - LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR, Java blocks. - (initialize_inlined_parameters): Handle Java trees. - (declare_return_variable): Likewise. - (expand_call_inline): Handle Java trees. - (walk_tree): Likewise. - (copy_tree_r): Don't handle SCOPE_STMTs for Java. - (add_stmt_to_compound): New function. - -2002-08-15 Richard Henderson - - * Makefile.in (LOOSE_WARN): Remove -fno-common. - (NOCOMMON_FLAG): New substitution point. - (GCC_WARN_CFLAGS): Include it. - * configure.in (ac_checking): Set nocommon_flag. - (nocommon_flag): New substitution point. - -2002-08-15 Alexandre Oliva - - * c-tree.h (skip_evaluation): Move declaration... - * c-common.h: ... here. - * c-typeck.c (build_external_ref): Don't assemble_external nor - mark a tree as used if skip_evaluation is set. - * c-parse.in (typeof): New non-terminal to set skip_evaluation - around TYPEOF. - (typespec_nonreserved_nonattr): Use it. - -2002-08-15 Douglas B Rupp - - * dbxout.c (dbx_debug_hooks): Update end_prologue, end_epilogue. - (xcoff_debug_hooks): Update end_prologue. - * debug.c (do_nothing_debug_hooks): Update end_prologue, end_epilogue. - * debug.h (end_prologue): Add file arg. - (end_epilogue): Add line and file args. - (dwarf2out_end_epilogue): Add line and file args. - (vmsdbgout_after_prologue): Remove. - * dwarf2out.c (dwarf2out_end_epilogue): Add line and file args. - (dwarf2_debug_hooks): Update end_prologue. - * dwarfout.c (dwarfout_end_epilogue): Add line and file args. - (dwarfout_end_prologue): Add file arg. - * final.c (vmsdbgout_after_prologue): Remove - (final_end_function): Update end_epilogue call. - (final_scan_insn): Update end_prologue call. - * sdbout.c (sdbout_end_epilogue): Add line and file args. - (sdbout_end_prologue): Add file arg. - (sdb_debug_hooks): Update end_prologue. - (sdb_begin_prologue): Update sdbout_end_prologue call. - * vmsdbgout.c (vmsdbg_debug_hooks): Add vmsdbgout_end_prologue, - vmsdbgout_end_function. - (vmsdbgout_end_prologue): New function renamed from - vmsdbgout_after_prologue. Call vmsdbgout_source_line. - (vmsdbgout_end_function): New function. - (vmsdbgout_end_epilogue): Add line and file args. Call - vmsdbgout_source_line. - (write_pclines): Write only valid line numbers. - (write_srccorr): Don't write source correlation records if 0 lines. - * xcoffout.c (xcoffout_end_epilogue): Add line and file args. - -2002-08-15 Steve Ellcey - - * gcc/unwind.h (_Unwind_Ptr): Make 64 bits on IA64 HP-UX. - (_Unwind_Internal_Ptr): 32 bit version for use in - read_encoded_value_with_base. - * gcc/unwind-pe.h (read_encoded_value_with_base): Use - _Unwind_Internal_Ptr instead of _Unwind_Ptr in order to get the - right size. - -2002-08-15 Kaveh R. Ghazi - - * loop.c (scan_loop, move_movables, count_one_set): Cast to avoid - signed/unsigned warnings. - - * regclass.c (init_reg_sets_1, choose_hard_reg_mode, - record_reg_classes): Likewise. - - * reload.c (reload_inner_reg_of_subreg, push_reload, - find_reloads_address_1): Likewise. - -2002-08-15 David Edelsohn - - * rs6000.c (output_mi_thunk): Return to function section on - TARGET_ELF. - - * rs6000-c.c (rs6000_cpu_cpp_builtins): Define __PPC405__ if PPC405. - -2002-08-15 Ulrich Weigand - - * config/s390/s390.c (legitimize_address): Optimize loading - of large displacements. - -2002-08-14 Douglas B Rupp - - * config/alpha/alpha-protos.h: Update. - - * config/alpha/alpha.c: (LINKAGE_SYMBOL_REF_P): New macro. - (alpha_legitimate_address_p): Test LINKAGE_SYMBOL_REF_P. - (alpha_linkage_symbol_p): New static function. - (print_operand_address): Print linkage operand. - - (alpha_funcs_num, alpha_funcs_tree, alpha_links_tree): New static - variables. - (reloc_kind): New enum. - (struct alpha_funcs): New struct. - (struct alpha_links): Add reloc_kind field. Rename links_kind field. - - (alpha_need_linkage): Rewrite. - (alpha_use_linkage): New global function. - (alpha_write_linkage): Rewrite and make static. - (alpha_write_one_linkage): Rewrite - - (alpha_start_function): Remove procedure descriptor output. - (alpha_end_function): Write linkages at end of each function. - - * config/alpha/alpha.md (call_vms, call_value_vms): Rewrite. - (call_vms_1, call_value_vms_1): Rewrite. - - * config/alpha/vms.h (ASM_FILE_END): Remove. - -2002-08-14 Richard Henderson - - * ggc-page.c (RTL_SIZE): New. - (extra_order_size_table): Add specializations for 2 and 10 rtl slots. - * rtl.def (BARRIER, NOTE): Pad to 9 slots. - -2002-08-14 Richard Henderson - - * calls.c: Include target.h. - * Makefile.in (calls.o): Update. - - * config/alpha/alpha.c (alpha_end_function): Use targetm.binds_local_p. - * config/alpha/alpha.h (FUNCTION_OK_FOR_SIBCALL): Likewise. - -2002-08-14 Richard Henderson - - * Makefile.in (LOOSE_WARN): Add -fno-common. - * c-common.h (constant_string_class_name): Add missing extern. - -2002-08-15 Neil Booth - - PR preprocessor/7358 - * c-opts.c (check_deps_environment_vars): Ignore main file - for SUNPRO_DEPENDENCIES. - * cppfiles.c (stack_include_file): Ignore main file if - appropriate. - * cpplib.h (struct cpp_options): New member in deps. - * doc/cppenv.texi: Update. - -2002-08-14 Neil Booth - - PR preprocessor/7526 - * cpplib.c (run_directive): Kludge so _Pragma dependency works. - -2002-08-14 Nathan Sidwell - - * doc/invoke.texi (-a): Remove documentation. - (-fprofile-arcs): Remove reference to -a, -ax options. - * doc/gcov.texi (Gcov Data Files): Data might be merged. - -2002-08-14 Gabriel Dos Reis - - Fix PR/7566 - * c-semantics.c (genrtl_case_label): Don't (mis)use - warning_with_decl. - -2002-08-14 Dale Johannesen - - * explow.c (emit_stack_restore): Emit memory clobbers - preceding the stack pop, to prevent the scheduler from - moving refs to variable arrays below this pop. - * reload1.c (reload): Preserve these clobbers for sched2. - * doc/rtl.texi: Document clobber (mem:BLK (scratch)). - -2002-08-14 Neil Booth - - * c-opts.c (c_common_post_options): Correct test. - -2002-08-14 Kaveh R. Ghazi - - * m88k.h (ASM_OUTPUT_SOURCE_FILENAME): Fix incorrect argument - order in call to fprintf. - -2002-08-14 Rainer Orth - - * config/sparc/sol2.h (SUBTARGET_EXTRA_SPECS): Define. - -2002-08-14 Ulrich Weigand - - * reload.c (find_reloads): Handle constraint letters marked by - EXTRA_ADDRESS_CONSTRAINT and EXTRA_MEMORY_CONSTRAINT. - (alternative_allows_memconst): Likewise. - * reload1.c (maybe_fix_stack_asms): Likewise. - * recog.c (asm_operand_ok, preprocess_constraints, - constrain_operands): Likewise. - * regclass.c (record_operand_costs, record_reg_classes): Likewise. - * local-alloc.c (block_alloc, requires_inout): Likewise. - * stmt.c (parse_output_constraint, parse_input_constraint): Likewise. - - * defaults.h (EXTRA_MEMORY_CONSTRAINT): Provide a default. - (EXTRA_ADDRESS_CONSTRAINT): Likewise. - * doc/tm.texi: Document these two new target macros. - - * config/s390/s390.c (s390_expand_plus_operand): Accept already - valid operands. - (q_constraint): New function. - config/s390/s390-protos.h (q_constraint): Declare it. - config/s390/s390.h (EXTRA_CONSTRAINT): Use it. - (EXTRA_MEMORY_CONSTRAINT): New macro. - - * config/s390/s390.md: Throughout the machine description, - replace all instances of the constraint combinations 'Qo' - or 'oQ' with simply 'Q'. - -2002-08-14 Stephane Carrez - - * config/m68hc11/m68hc11.h (LINK_SPEC): Support -mrelax. - * config/m68hc11/t-m68hc11-gas (LIBGCC2_DEBUG_CFLAGS): Can use -g now. - (LIBGCC2_CFLAGS): Compile with -mrelax. - -2002-08-14 Stephane Carrez - - * doc/invoke.texi: Document -minmax for 68HC12. - - * config/m68hc11/m68hc11.md ("umaxqi3"): Use TARGET_MIN_MAX. - ("uminqi3"): Likewise. - ("uminhi3", "umaxhi3"): Likewise. - - * config/m68hc11/m68hc11.h (MASK_MIN_MAX): Define. - (TARGET_MIN_MAX): Define. - (TARGET_SWITCHES): New option -minmax/-mnominmax. - -2002-08-14 Stephane Carrez - - * config/m68hc11/t-m68hc11-gas (LIB1ASMFUNCS): Build __far_trampoline. - (MULTILIB_OPTIONS): Must also generate for -mlong-calls. - - * config/m68hc11/larith.asm: Put a mode for ELF ABI flags. - (ret, declare, farsym): New gas macros. - (__premain, exit, abort, _cleanup, memcpy, memset, ___adddi3, - ___subdi3, ___notdi2, __mulhi32, __mulsi3): Use them to use 'rtc' - and declare the symbol far when compiled with -mlong-calls. - (__far_trampoline): New for 68HC12 trampoline code to invoke a - far handler using jsr/bsr. - - * config/m68hc11/m68hc11-crt0.S: Put a mode for ELF ABI flags. - (jsr): New macro to transform a 'jsr' into a 'call'. - -2002-08-14 Stephane Carrez - - * doc/invoke.texi: Document -mlong-calls for 68HC12. - - * config/m68hc11/m68hc11.h (CPP_SPEC): Pass -D__USE_RTC__ when - -mlong-calls is specified. - (ASM_DECLARE_FUNCTION_NAME): Define to generate .far and .interrupt - assembler directives. - (TARGET_LONG_CALL, MASK_LONG_CALL): Declare. - (TARGET_SWITCHES): Add -mlong-calls options. - (current_function_far): Declare. - - * config/m68hc11/m68hc11.c (m68hc11_initial_elimination_offset): Take - into account the page register saved on the stack. - (m68hc11_override_options): Take into account -mlong-calls option. - (m68hc11_asm_file_start): Put a mode for the ELF flags ABI. - - * config/m68hc11/m68hc11.md ("*return_32bit"): Return rtc - if the function is going to be in 68HC12 banked memory (-mlong-calls). - ("*return_16bit"): Likewise. - ("*return_void"): Likewise. - ("call", "call_value"): Use call for a far function call. - -2002-08-14 Neil Booth - - * toplev.c (parse_options_and_default_flags): Don't call - post_options here. - (general_init): Initialize GC, pools and tree hash here, - instead of lang_independent_init. - (lang_independent_init): Rename backend_init. - (do_compile): Call post_options hook; exit early if there - have been errors after switch processing. - (toplev_main): Update. - -2002-08-14 Gabriel Dos Reis - - * c-pretty-print.h: Guard against multiple inclusion. - Robustify macros. - (pp_c_attributes): Declare. - * c-pretty-print.c (pp_c_attributes): New function. - -2002-08-13 Kaveh R. Ghazi - - * m68k.c (m68k_output_function_prologue, - m68k_output_function_epilogue): Delete versions for DPX2/MOTOROLA - and NEWS/MOTOROLA. - * genattrtab.c: Remove dpx2 comment. - * libgcc2.c (__enable_execute_stack): Delete versions for - NeXT/__MACH__, __convex__, __sysV88__, __pyr__ and - sony_news/SYSTYPE_BSD. - * longlong.h: Delete code for __a29k__, _AM29K, __clipper__, - __gmicro__, __i860__, __NeXT__ and __pyr__. - * rtl.h: Remove convex comment. - * varasm.c: Likewise. - -2002-08-13 Kaveh R. Ghazi - - * c-opts.c (lang_flags): Const-ify. - * ra-build.c (undef_table): Likewise. - * ra.c (eliminables): Likewise. - -2002-08-14 Gabriel Dos Reis - - * tree.h: Guard against multiple inclusion. - -2002-08-14 Hans-Peter Nilsson - - * reload1.c (reload_cse_simplify): Before checking - REG_FUNCTION_VALUE_P, check REG_P. - -2002-08-13 Geoffrey Keating - - * Makefile.in (attribs.o): Remove $(OBSTACK_H) dependency. - -2002-08-13 Neil Booth - - * c-opts.c (c_common_init_options): Extra braces needed. - -Tue Aug 13 17:40:25 2002 J"orn Rennecke - - * sh.c (sh_init_builtins): Add PARAMS to declaration. - (sh_media_init_builtins, sh_expand_builtin): Likewise. - (sh_expand_unop_v2sf): Use PARAMS for variable declaration. - (sh_expand_binop_v2sf): Likewise. - * sh-protos.h (sh_expand_unop_v2sf): Add PARAMS to declaration. - (sh_expand_binop_v2sf, sh_cfun_interrupt_handler_p): Likewise. - (sh_initialize_trampoline): Likewise. - -2002-08-13 Ulrich Weigand - - * s390-modes.def [CCL1, CCL2, CCT1, CCT2, CCT3, CCUR, CCSR]: Declare - new condition code modes. - s390.c (s390_match_ccmode_set): Handle those new CC modes. - (s390_select_ccmode): Likewise. - (s390_branch_condition_mask): Likewise. - - * s390-protos.h (s390_tm_ccmode): Declare. - s390.c (s390_tm_ccmode): New function. - (s390_match_ccmode): Allow VOIDmode as REQ_MODE. - - * s390.md ("*cmpdi_tm2"): Rename to "*tmdi_ext". - ("*cmpsi_tm2"): Rename to "*tmsi_ext". - ("*cmpqi_tm2"): Rename to "*tmqi_ext". - - ("*cmpdi_tm_reg", "*cmpdi_tm_mem", "*cmpsi_tm_reg", "*cmpsi_tm_mem", - "*cmphi_tm_sub","*cmphi_cct_0", "*cmpqi_tm", "*cmpqi_tm_sub", - "*cmpqi_cct_0", "*tm_0"): Remove, replace by ... - ("*tmdi_reg", "*tmsi_reg", "*tmdi_mem", "*tmsi_mem", "*tmhi_mem", - "*tmqi_mem", "*tmhi_full", "*tmqi_full"): ... these new patterns. - - ("*ltgr", "*cmpdi_ccs_0_64", "*cmpdi_ccs_0_31", "*ltr", "*icm15", - "*icm15_cconly", "*cmpsi_ccs_0", "*icm3", "*cmphi_ccs_0", "*icm1", - "*cmpqi_ccs_0"): Remove, replace by ... - ("*tstdi_sign", "*tstdi", "*tstdi_cconly", "*tstdi_cconly_31", - "*tstsi", "*tstsi_cconly", "*tstsi_cconly2", "*tsthi", "*tsthi_cconly", - "*tstqi", "*tstqi_cconly"): ... these new patterns. - - ("*cmpsidi_ccs"): Remove, replace by ... - ("*cmpsi_ccs_sign"): ... this new pattern. - ("*cmpdi_ccs_sign", "*cmpdi_ccu_zero"): New patterns. - - ("*cmpqi_ccu_0", "*cmpqi_ccu_immed"): Remove, replace by ... - ("*cli"): ... this new pattern. - - ("*adddi3_sign", "*adddi3_zero_cc", "*adddi3_zero_cconly", - "*adddi3_zero", "*adddi3_cc", "*adddi3_cconly", "*adddi3_cconly2"): - New patterns. - ("adddi3_64"): Rename to "*adddi3_64". - ("adddi3_31"): Replace by insn and splitter "*adddi3_31". - ("adddi3"): Adapt expander. - - ("*addsi3_cc"): Allow "general_operand" for operand 2. - ("*addsi3_carry1_cc", "*addsi3_carry1_cconly", - "*addsi3_carry2_cc", "*addsi3_carry2_cconly"): New patterns. - - ("addhi3", "addqi3"): Remove, replace by ... - ("*addsi3_sign", "*addsi3_sub"): ... these new patterns. - - ("*subdi3_sign", "*subdi3_zero_cc", "*subdi3_zero_cconly", - "*subdi3_zero", "*subdi3_cc", "*subdi3_cconly"): New patterns. - ("subdi3"): Replace by insn and splitter "*subdi3_31". - ("subdi3"): New expander. - - ("*subsi3_borrow_cc", "*subsi3_borrow_cconly"): New patterns. - - ("subhi3", "subqi3"): Remove, replace by ... - ("*subsi3_sign", "*subsi3_sub"): ... these new patterns. - - ("*muldi3_sign"): New pattern. - ("muldi3"): Do not clobber CC. - ("mulsi3"): Likewise. - ("mulsi_6432"): Likewise. - -2002-08-13 Denis Chertykov - - * config/avr/avr.md: Call CC_STATUS_INIT in all peepnoles - which can change CC0. - -Tue Aug 13 14:49:20 2002 J"orn Rennecke - - * gcse.c (adjust_libcall_notes): New function. - (do_local_cprop): Use it. Add fourth parameter. Changed caller. - -2002-08-13 Nathan Sidwell - - * libgcc2.c (L_bb): Remove unneeded #includes. - (__global_counters, __gthreads_active): Remove unused globals. - (__bb_exit_func): Merge counts into files rather than appending. - * Makefile.in (INTERNAL_CFLAGS): Move COVERAGE_FLAGS from here ... - (ALL_CFLAGS): ... to here. - -2002-08-13 Denis Chertykov - - * config/ip2k/ip2k.c (commands_in_file): Variable removed. - (function_epilogue): Don't calculate function size. - (ip2k_set_compare): Don't use lookup_const_double. - (asm_file_start): Initialization of commands_in_file removed. - (asm_file_end): Output of commands_in_file removed. - - * config/ip2k/ip2k.c (CPP_PREDEFINES): Remove definition of - __INT_MAX__. - -2002-08-13 Neil Booth - - * c-opts.c (c_common_init_options): Check option array is - sorted if checking enabled. - -2002-08-13 Gabriel Dos Reis - - * c-pretty-print.c: #include "c-tree.h". - (pp_c_simple_type_specifier): Tweak. - (pp_c_storage_class_specifier): New. - (pp_c_function_specifier): Likewise. - (pp_c_declaration_specifiers): Likewise. - (pp_c_init_declarator): Likewise. - (pp_c_declaration): Likewise. - (pp_c_direct_declarator): Stub. - (pp_c_declarator): Likewise. - (pp_c_parameter_declaration): Likewise. - -2002-08-13 Neil Booth - - * c-opts.c (deps_seen, deps_file, deferred_count, deferred_size, - handle_deferred_opts, sanitize_cpp_opts, defer_opt, - struct deferred_opt): New. - (COMMAND_LINE_OPTIONS): Add -M*. - (missing_arg): Update. - (c_common_decode_option): Handle -M*. - (c_common_post_options): Handle -M*. Use sanitize_cpp_opts; - don't call cpp_post_options. - (c_common_finish, check_deps_environment_vars): Update. - * cppfiles.c (stack_include_file, handle_missing_header): Update. - * cpphash.h (CPP_PRINT_DEPS): Remove. - * cppinit.c: Don't include version.h. - (cpp_create_reader): Don't call deps_init. Initialize - warn_long_long. - (cpp_read_main_file): Init deps if necessary. - (cpp_destroy): Conditionally free deps. - (cpp_finish): Update. - (no_tgt): Remove. - (COMMAND_LINE_OPTIONS, cpp_handle_option): Remove -M*. - (cpp_post_options): Rename post_options. - * cpplib.h (struct cpp_options): Remove some dependency options; - move others to a new structure. - (cpp_post_options): Remove. - (cpp_finish): Comment. - * fix-header.c (read_scan_file): Don't call cpp_post_options. - -2002-08-12 Hans-Peter Nilsson - - * config/mmix/mmix.md (define_constants): Add MMIX_rR_REGNUM. - ("divdi3", "*divdi3_nonknuth", "moddi3", "*moddi3_nonknuth"): Mark - MMIX_rR_REGNUM as clobbered. - * config/mmix/mmix.h (MMIX_REMAINDER_REGNUM): Use MMIX_rR_REGNUM. - -2002-08-12 Gabriel Dos Reis - - * diagnostic.h (output_formatted_scalar): Rename from - output_formatted_integer. - * diagnostic.def: Add DK_DEBUG. - * diagnostic.c (output_decimal): Adjust. - (output_long_decimal): Likewise. - (output_unsigned_decimal): Likewise. - (output_octal): Likewise. - (output_long_octal): Likewise. - (output_hexadecimal): Likewise. - (output_long_hexadecimal): Likewise. - * c-pretty-print.c (pp_c_type_specifier): New function. - (pp_c_specifier_qualifier_list): Likewise. - (pp_c_abstract_declarator): Likewise. - (pp_c_char): Replace pp_format_integer with pp_format_scalar. - -2002-08-12 David Edelsohn - - * doc/trouble.texi (Disappointments): Add static constructor and - destructor dependency information for AIX. - -2002-08-12 Neil Booth - - * cpphash.h (struct printer): New from cppmain.c. - (cpp_reader): New member. - * cppmain.c (struct printer): Move to cpphash.h. - (options, print): Remove. - (account_for_newlines, print_line, maybe_print_line, - cpp_preprocess_file, setup_callbacks, scan_translation_unit, - scan_translation_unit_trad, cb_line_change, cb_ident, - cb_define, cb_undef, cb_include, cb_file_change, dump_macro, - cb_def_pragma): Make reentrant. - -2002-08-12 Kaveh R. Ghazi - - * real.c (ieee_64): Always define. - (ieee_113): Guard with INTEL_EXTENDED_IEEE_FORMAT == 0. - (dec_h): Not used yet, hide it. - (emdnorm): Mark parameter in ATTRIBUTE_UNUSED. Guard label with - macro controlling use. - (TFbignan, TFlittlenan): Guard with INTEL_EXTENDED_IEEE_FORMAT == 0. - -Mon Aug 12 12:48:20 CEST 2002 Jan Hubicka - - * i386.md (tablejump): Sign extend the operand. - * i386.c (classify_argument): Fix missed case from previous patch. - -2002-08-12 Neil Booth - - * c-common.c (STDC_0_IN_SYSTEM_HEADERS, c_common_init): Move - to c-copts.c. - (warn_multichar): Die. - (cb_register_builtins): Export. - * c-common.h (warn_multichar, preprocess_file): Remove. - (cb_register_builtins): New. - * c-lang.c (c_init): Remove. - (LANG_HOOKS_INIT): Use c_objc_common_init. - * c-lex.c (init_c_lex): Don't canonicalize filename. - * c-opts.c (in_fname, STDC_0_IN_SYSTEM_HEADERS): New. - (preprocess_file): Make static. Update for cpplib. - (c_common_decode_option): Remove warn_multichar. Use in_fname. - (c_common_post_options): Set some cpp options here. - (c_common_init): Move from c-common.c. - * cppinit.c (cpp_post_options): Don't canonicalize in_fname. - * cpplib.h (struct cpp_options): Remove in_fname. - (cpp_preprocess_file): Update. - * cppmain.c (cpp_preprocess_file): Update for new prototypes. - -2002-08-11 Kaveh R. Ghazi - - * config.gcc (mips*-*-netbsd*): Include ${tm_file}. - -2002-08-11 Kaveh R. Ghazi - - * i370.h (TARGET_CPU_CPP_BUILTINS): Remove spurious trailing - backslash in comment preceeding macro definition. - * i370/linux.h (TARGET_OS_CPP_BUILTINS): Likewise. - * i370/mvs.h (TARGET_OS_CPP_BUILTINS): Likewise. - * i370/oe.h (TARGET_OS_CPP_BUILTINS): Likewise. - -2002-08-12 Hans-Peter Nilsson - - * expr.c (store_expr): In condition for checking if value is - generated in TARGET, move call to expr_size last. - -2002-08-11 Neil Booth - - * c-common.c (c_common_init): Call preprocess_file instead. - (c_common_finish): Move to c-opts.c. - * c-common.h (preprocess_file): new. - * c-opts.c (out_fname, out_stream, deps_append, preprocess_file, - check_deps_environment_vars, c_common_finish): New. - (c_common_decode_option): Update for out_fname and dependencies. - * cppinit.c (init_dependency_output, output_deps): Remove. - (cpp_destroy): Update prototype. - (cpp_add_dependency_target): New. - (cpp_read_main_file): Don't overlay a buffer. - (cpp_finish): Take a deps output stream and write deps to it. - Return the error count. - (cpp_post_options): Don't canonicalize out_fname, or do anything - with dependencies. - * cpplib.h (struct cpp_options): Remove out_fname and - preprocess_only. - (cpp_add_dependency_target): New. - (cpp_destroy, cpp_finish, cpp_preprocess_file): Update. - * cppmain.c (cpp_preprocess_file): Update prototype. Don't - set preprocess_only. Don't handle the output stream directly. - -2002-08-11 Kaveh R. Ghazi - - * dsp16xx.c (print_operand): Fix format specifier. - * dsp16xx.md: Avoid automatic aggregate initialization. - * frv.h (REG_CLASS_FROM_LETTER): Avoid char as array index. - * h8300.c (emit_a_rotate, h8300_adjust_insn_length): Avoid U - integer constant modifier. - * ip2k.c (ip2k_set_compare): Avoid signed/unsigned warning. - * mmix-protos.h (mmix_use_simple_return): Move outside TREE_CODE - guards. - * sh/netbsd-elf.h (FUNCTION_PROFILER): Fix format specifier. - * v850.c (v850_select_section): Mark parameter with - ATTRIBUTE_UNUSED. - * global.c (global_alloc): Const-ify. - * ra-colorize.c (hardregset_to_string): Fix format specifier. - -2002-08-11 Kaveh R. Ghazi - - * darwin-c.c (darwin_pragma_options): Const-ify. - * darwin.c (machopic_non_lazy_ptr_name, - machopic_validate_stub_or_non_lazy_ptr): Likewise. - (machopic_indirect_data_reference): Wrap variables in macros - controlling their use. - (machopic_finish, update_non_lazy_ptrs, update_stubs): Const-ify. - (machopic_select_section): Use parentheses around && within ||. - * i386/darwin.h (ASM_OUTPUT_ALIGN): Avoid ambiguous-else. - -2002-08-11 Kaveh R. Ghazi - - * ip2k.c (mdr_resequence_xy_yx, mdr_propagate_reg_equivs, - mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref, - ip2k_adjust_stack_ref, mdr_try_move_pushes, mdr_try_propagate_clr, - ip2k_xexp_not_uses_reg_for_mem, mdr_try_propagate_move, - mdr_try_remove_redundant_insns, track_w_reload, - mdr_try_wreg_elim): Make function static to match prototype. - * mmix.c (mmix_target_asm_function_epilogue): Likewise. Mark - parameter with ATTRIBUTE_UNUSED. - -2002-08-11 Kaveh R. Ghazi - - * arc.c (arc_init): Don't use ISO C style function definitions. - * arm.c (count_insns_for_constant, thumb_far_jump_used_p, - arm_get_strip_length, arm_strip_name_encoding): Likewise. - * avr.h (progmem_section): Likewise. - * h8300.c h8300_asm_insn_count): Likewise. - * m32r.c (init_idents): Likewise. - * s390.c (s390_split_branches, s390_chunkify_pool): Likewise. - * sh.c (sh_cfun_interrupt_handler_p): Likewise. - * xtensa.c (xtensa_build_va_list): Likewise. - -2002-08-11 Neil Booth - - * c-common.h (enum c_language_kind): Emphasize that clk_c is 0. - * c-opts.c (parse_option): Rename find_opt. - (set_std_c99): New function. - (COMMAND_LINE_OPTIONS): Handle -remap and -o. Remove OPT_std_bad. - (missing_arg): Remove OPT_std_bad. Handle -o. - (c_common_decode_option): Handle input and output file names, - -o and -remap. Clean up -std= handling. - * cppinit.c (COMMAND_LINE_OPTIONS): Remove OPT_o and OPT_remap. - (cpp_handle_option): Similarly. Don't handle filenames. - -Sun Aug 11 14:43:17 CEST 2002 Jan Hubicka - - * i386.c (classify_argument): Fix computing of field's offsets. - -2002-08-11 Andreas Jaeger - - PR target/7531: - * doc/invoke.texi (i386 and x86-64 Options): Document -mcmodel. - -2002-08-10 Ziemowit Laski - - * config/alpha/alpha.h (TARGET_CPU_CPP_BUILTINS): Replace - reference to clk_objective_c with flag_objc. - * config/i386/i386-interix.h (TARGET_OS_CPP_BUILTINS): - Likewise. - * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Likewise. - -2002-08-10 Neil Booth - - * c-opts.c (set_std_cxx98, set_std_c89): New. - (COMMAND_LINE_OPTIONS): Move more from cppinit.c. - (c_common_decode_option): Handle new switches from cppinit.c. - Add -std=gnu++98. - * cppinit.c (set_lang): Rename cpp_set_lang. Export. - (no_arg, no_num): Remove. - (COMMAND_LINE_OPTIONS): Move more to c-opts.c. Drop all lang- - switches apart from -lang-objc and lang-asm. - (cpp_handle_option): Similarly. - * cpplib.h (cpp_set_lang): New. - * doc/cppopts.texi, doc/invoke.texi: Document -std=c++98, - -std=gnu++98. - * objc/lang-specs.h: Remove -ansi. - -Sat Aug 10 19:59:43 CEST 2002 Jan Hubicka - Graham Stott - - * cfg.c (redirect_edge_succ_nodup): Avoid overflows due to roundoff - errors. - -2002-08-10 Kaveh R. Ghazi - - * emit-rtl.c (emit_jump_insn_before, emit_call_insn_before, - emit_jump_insn): Fix uninitialized variable. - * gcov.c (init_line_info): Likewise. - * genautomata.c (transform_3): Add braces around ambiguous - else. - * ifcvt.c (cond_exec_process_insns): Mark parameter with - ATTRIBUTE_UNUSED. - * ra-build.c (parts_to_webs_1): Fix uninitialized variable. - * regrename.c (copyprop_hardreg_forward): Fix uninitialized - variable. - - * gengtype.c (write_gc_structure_fields): Avoid signed/unsigned - warnings in output files. - -2002-08-09 Ziemowit Laski - - * c-common.c (flag_objc): New. - * c-common.h (c_language_kind): Get rid of clk_objective_c - enum value. - (flag_objc): New extern declaration. - * c-decl.c (implicitly_declare): Call objc_check_decl - instead of maybe_objc_check_decl. - (finish_decl): Likewise. - (grokfield): Likewise. - (finish_struct): Likewise. - * c-lang.c (maybe_objc_check_decl): Rename to objc_check_decl. - (maybe_objc_comptypes): Rename to objc_comptypes. - (maybe_building_objc_message_expr): Rename to - objc_message_selector. - * c-lex.c (lex_charconst): Remove uses of clk_objective_c, - replace with flag_objc as needed. - * c-opts.c (c_common_init_options): Likewise. - (c_common_decode_option): Likewise. - * c-parse.in (init_reswords): Likewise. - * c-tree.h (maybe_objc_check_decl): Rename to objc_check_decl. - (maybe_objc_comptypes): Rename to objc_comptypes. - (maybe_building_objc_message_expr): Rename to - objc_message_selector. - * c-typeck.c (comptypes): Call objc_comptypes instead of - maybe_objc_comptypes, and/or objc_message_selector instead of - maybe_building_objc_message_expr. - (comp_target_types): Likewise. - (convert_for_assignment): Likewise. - (warn_for_assignment): Likewise. - * cppinit.c (init_builtins): Set __OBJC__ manifest constant - independently of those for other languages. - * objc/objc-act.c (maybe_objc_comptypes): Delete. - (maybe_objc_check_decl): Delete. - (maybe_building_objc_message_expr): Rename to - objc_message_selector. - * objc/objc-lang.c (objc_init_options): Use clk_c instead of - clk_objective_c; set flag_objc flag. - -2002-08-09 Toshiyasu Morita - - * ifcvt.c (find_if_case_2): Test correct basic block for size. - -2002-08-09 Dale Johannesen - - * config/rs6000/rs6000.md: Add sibcall patterns. - * config/rs6000/rs6000.h (FUNCTION_OK_FOR_SIBCALL): Define. - * config/rs6000/rs6000.c (rs6000_ra_ever_killed): - Rewritten to handle sibcalls. - * config/rs6000/rs6000.c (function_ok_for_sibcall): New. - * config/rs6000/rs6000-protos.h (function_ok_for_sibcall): New. - -2002-08-08 Nathan Sidwell - - * profile.c (da_file_name): New static var. - (init_branch_prob): Initialize it. - (end_branch_prob): Remove da file. - - * Makefile.in (stage1_build): Pass empty COVERAGE_FLAGS. - * configure.in (coverage_flags): Default to nothing. - * configure: Rebuilt. - -2002-08-09 Neil Booth - - * Makefile.in (c-opts.o): Update - * c-opts.c: Include intl.h. - (print_help): Move from cppinit.c. Remove unused options. - (COMMAND_LINE_OPTIONS): Move more from cppinit.c. - (missing_arg): Complain for switches without an argument. - (c_common_decode_option): Reject missing joined arguments. - Handle new switches from cppinit.c. - * cppinit.c (COMMAND_LINE_OPTIONS): Move some switches to c-opts.c. - (cpp_handle_option): Similarly. - (print_help): Moved to c-opts.c. - * cpplib.h (struct cpp_options): Remove help_only. - * gcc.c (cpp_unique_options): Remove -$. - * doc/cppopts.texi: Undocument -h. - -2002-08-08 Jakub Jelinek - - * config/i386/i386.c (legitimate_constant_p): UNSPEC_TP is not - legitimate constant. - (legitimate_pic_operand_p): Neither pic operand. - (legitimate_address_p): But legitimate address. - (get_thread_pointer): Generate MEM/u instead of CONST around - UNSPEC_TP. - (print_operand): Remove printing of UNSPEC_TP. - (print_operand_address): And print it here. - -2002-08-08 Devang Patel - - * objc/objc-act.c (build_selector_translation_table): Issue warning, - when -Wselector is used,if method for which selector is being - created does not exist. - -2002-08-08 Stephen Clarke - - * config/sh/sh.c (prepare_move_operands): Only call - target_reg_operand if TARGET_SHMEDIA. - -2002-08-08 Jakub Jelinek - - * config/rs6000/rs6000.h, config/rs6000/aix.h, - config/rs6000/darwin.h, config/rs6000/linux64.h: Revert last - two patches. - * config/rs6000/sysv4.h: Likewise, remove #undef ADJUST_FIELD_ALIGN. - -2002-08-08 Lars Brinkhoff - Richard Henderson - - * emit-rtl.c (gen_rtx_REG): After reload, only return - frame_pointer_rtx or hard_frame_pointer_rtx if frame_pointer_needed. - -2002-08-08 Jakub Jelinek - - * config/rs6000/rs6000-protos.h (rs6000_field_alignment): Remove. - * config/rs6000/rs6000.c (rs6000_field_alignment): Move... - * config/rs6000/rs6000.h (ADJUST_FIELD_ALIGN): ...inline into the - macro. - -2002-08-08 Adam Nemet - - * config/arm/arm.c (thumb_unexpanded_epilogue): Stack the PIC - register. - (thumb_expand_prologue): Likewise. - (thumb_output_function_prologue): Likewise. - * config/arm/arm.h (THUMB_INITIAL_ELIMINATION_OFFSET): Account for - the additional push of the PIC register. - -2002-08-08 Nathan Sidwell - - * configure.in (enable_coverage): New enable switch. - * configure: Rebuilt. - * Makefile.in (COVERAGE_FLAGS, coverageexts): New variables. - (INTERNAL_CFLAGS): Append COVERAGE_FLAGS. - (ALL_FLAGS): Reorder so INTERNAL_CFLAGS comes after CFLAGS. - (mostlyclean): Remove coverage files. - * doc/install.texi: Document enable_coverage. - - * cp/Make-lang.in (c++.mostlyclean): Remove coverage files. - * ada/Make-lang.in (ada.mostlyclean): Remove coverage files. - * f/Make-lang.in (f.mostlyclean): Remove coverage files. - * java/Make-lang.in (java.mostlyclean): Remove coverage files. - * objc/Make-lang.in (objc.mostlyclean): Remove coverage files. - * treelang/Make-lang.in (treelang.mostlyclean): Remove coverage - files. - -2002-08-08 Neil Booth - - * c-opts.c (cpp_opts): New. - (COMMAND_LINE_OPTIONS): Add switches from cppinit.c. - (c_common_decode_options): Handle cpplib switches. - (c_common_init_options): Set cpp_opts. - * cppinit.c (COMMAND_LINE_OPTIONS): Move some switches to c-opts.c. - (cpp_handle_option): Similarly. - -2002-08-08 David Edelsohn - - * config/rs6000/aix.h (TARGET_ALTIVEC): Define to 0. - (TARGET_ALTIVEC_ABI): Same. - (TARGET_ALTIVEC_VRSAVE): Same. - - * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Check - icode not CODE_FOR_nothing. Change switch to if. - -2002-08-08 Alan Modra - - * config/rs6000/rs6000.h (ASM_CPU_SPEC): Pass -mpower4 when cpu=power4. - -2002-08-08 Jakub Jelinek - - * stor-layout.c (place_union_field): For bitfields if - PCC_BITFIELD_TYPE_MATTERS and TYPE_USER_ALIGN, set record's - TYPE_USER_ALIGN. - -2002-08-07 John David Anglin - - * pa.c (struct deferred_plabel): Constify name field. - -2002-08-07 Neil Booth - - * cppmacro.c (_cpp_builtin_macro_text): Remove unused variable. - -2002-08-07 John David Anglin - - * configure.in (PREFIX_INCLUDE_DIR): Don't define if prefix and - local_prefix are the same. - * configure: Rebuilt. - -2002-08-07 Jakub Jelinek - Richard Henderson - - * stor-layout.c (place_union_field): Apply ADJUST_FIELD_ALIGN - to type_align when PCC_BITFIELD_TYPE_MATTERS. Only apply - ADJUST_FIELD_ALIGN if not DECL_USER_ALIGN resp. TYPE_USER_ALIGN. - (place_field): Likewise. - * config/i386/i386.c (x86_field_alignment): Don't check - DECL_USER_ALIGN here. - * config/rs6000/rs6000.c (rs6000_field_alignment): New. - * config/rs6000/rs6000-protos.h (rs6000_field_alignment): New - prototype. - * config/rs6000/rs6000.h (ADJUST_FIELD_ALIGN): Define. - * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Remove. - * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Remove. - * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Remove. - * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Remove. - * doc/tm.texi (ADJUST_FIELD_ALIGN): Update description. - -2002-08-07 Neil Booth - - * Makefile.in (c-opts.o, c-common.o, C_AND_OBJC_OBJS): Update. - * c-common.c: Don't include tree-inline.h. - (c_common_init_options, c_common_post_options): Move to c-opts.c. - * c-common.h (c_common_decode_option): New. - * c-decl.c (c_decode_option): Remove. - * c-lang.c (LANG_HOOKS_DECODE_OPTION): Use c_common_decode_option. - * c-opts.c: New file. - * c-tree.h (c_decode_option): Remove. - * doc/passes.texi: Update. - * objc/objc-act.c (objc_decode_option): Remove. - * objc/objc-act.h (objc_decode_option): Remove. - * objc/ojbc-lang.c (LANG_HOOKS_DECODE_OPTION): Use - c_common_decode_option. - -2002-08-07 Chris Demetriou - - * config/mips/mips.md (sunlt_sf, suneq_sf, sunle_sf): Remove - dependency on TARGET_DOUBLE_FLOAT. - -2002-08-07 Stephen Clarke - - * config/sh/lib1funcs.asm (GCC_shcompact_incoming_args): Don't - overwrite callee-save registers. Fix comment. - -2002-08-06 Chris Demetriou - - * config/mips/mips.c (override_options): Set MASK_BRANCHLIKELY - in target_flags based on ISA, if it was not set on the command - line. Warn if MASK_BRANCHLIKLEY is set but the ISA does not - support Branch Likely instructions. - * config/mips/mips.h (MASK_BRANCHLIKLEY): New macro. - (TARGET_BRANCHLIKELY): Likewise. - (TARGET_SWITCHES): Add -mbranch-likely and -mno-branch-likely. - (GENERATE_BRANCHLIKELY): Use TARGET_BRANCHLIKELY rather than - ISA_HAS_BRANCHLIKELY. - (ISA_HAS_BRANCHLIKELY): Do not include MIPS16 check. - * doc/invoke.texi: Document new MIPS -mbranch-likely and - -mno-branch-likely options. - -2002-08-06 Kaveh R. Ghazi - - * ip2k.c (ip2k_set_compare): Add missing iteration variable. - - * Makefile.in (dummy-conditions.o): Depend on $(HCONFIG_H) not - $(GCONFIG_H). - -2002-08-06 Aldy Hernandez - - * c-decl.c (duplicate_decls): Error out for incompatible TLS - declarations. - - * testsuite/gcc.dg/tls/diag-3.c: New. - -2002-08-06 Dale Johannesen - - * c-common.c (fname_decl): Use line number 0 for - __func__, to avoid confusing debuggers. - -2002-08-06 Nathan Sidwell - - * gcov.c: Tidy. - (struct line_info, struct coverage): New structures. - (gcov_file_name, gcov_file): Remove globals. - (output_data): Take source file parameter. Fix memory leak. Break - up into ... - (init_line_info, output_line_info, make_gcov_file_name, - accumulate_branch_counts): ... here. - (calculate_branch_probs, function_summary): Adjust. - (main): Adjust. - (function_*): Remove global variables. - -2002-08-06 Neil Booth - - * dwarf2out.c: Remove unused macros. - -2002-08-06 Neil Booth - - * function.c (TRAMPOLINE_ALIGNMENT): Always defined. - -2002-08-06 Neil Booth - - * cppinit.c (struct lang_flags): Rename trigraphs std. - (set_lang): Update. - * cpplib.h (struct cpp_options): New member std. - * cppmacro.c (_cpp_builtin_macro_text): Use std. - (collect_args): Flag whether to swallow a possible future - comma pasted with varargs. - (replace_args): Use this flag. - * doc/cpp.texi: Update varargs extension documentation. - -2002-08-06 Jakub Jelinek - - * config/i386/mmintrin.h (__m64): Make the type 64-bit aligned. - -2002-08-06 Jakub Jelinek - - * config/i386/i386.c (x86_field_alignment): Apply min for all MODE_INT - and MODE_CLASS_INT modes. - -2002-08-06 Jakub Jelinek - - * config.gcc (*-*-linux*): Default to --enable-threads=posix if no - --{enable,disable}-threads is given to configure. - (alpha*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux*, - x86_64-*-linux*, ia64*-*-linux*, m68k-*-linux*, mips*-*-linux*, - powerpc-*-linux-gnualtivec*, powerpc-*-linux*, s390-*-linux*, - s390x-*-linux*, sh-*-linux*, sparc-*-linux*, sparc64-*-linux*): - Remove thread_file setting here. - -2002-08-06 David Edelsohn - - * doc/install.texi (Binaries): Update Bull Freeware URL. - -2002-08-06 Gerald Pfeifer - - * doc/gcc.texi (Top): Rename Index to Keyword Index. - -2002-08-05 Nathan Sidwell - - * gcov.c (output_data): Round to % to nearest, tweak formatting. - -2002-08-05 Jakub Jelinek - - * fold-const.c (associate_trees): Only optimize NEGATE_EXPR in one - of the operands into MINUS_EXPR if code is PLUS_EXPR. - -2002-08-05 Douglas B Rupp - - * config.gcc (i[34567]86-*-interix*): Replace interix.o with winnt.o - * config/i386/i386-interix.h (TARGET_NOP_FUN_DLLIMPORT, - drectve_section): Define. - * config/i386/t-interix: Replace interix.o rule with winnt.o. - * config/i386/interix.c: Remove. - -2002-08-05 Geoffrey Keating - - * attribs.c: Don't include obstack.h. - * builtins.c: Likewise. - * cfganal.c: Likewise. - * cfgbuild.c: Likewise. - * cfgcleanup.c: Likewise. - * emit-rtl.c: Likewise. - * loop.c: Likewise. - * stmt.c: Likewise. - - * Makefile.in (s-gtype): Re-add dependency on $(GTFILES). - -2002-08-05 Gabriel Dos Reis - - * doc/c-tree.texi (Expression trees): Document VA_ARG_EXPR - -2002-08-04 Chris Demetriou - - * doc/invoke.texi: Remove duplicated paragraph describing - TARGET_SWITCHES. - -2002-08-04 Geoffrey Keating - - * Makefile.in (sdbout.o): Doesn't need $(OBSTACK_H). - * collect2.h (permanent_obstack): Delete declaration. - * collect2.c (permanent_obstack): Delete definition. - (main): Don't initialize permanent_obstack. Use xstrdup instead. - * expr.c: Don't include obstack.h. - (permanent_obstack): Delete declaration. - * function.c: Don't include obstack.h. - (permanent_obstack): Delete declaration. - * integrate.c: Don't include obstack.h. - (function_maybepermanent_obstack): Delete declaration. - * print-tree.c (debug_tree): Use x*alloc not permalloc. - * sdbout.c (gen_fake_label): Use x*alloc not permalloc. - * tlink.c (pfgets): Use xstrdup not permanent_obstack. - * toplev.c (lang_independent_init): Rename init_obstacks to init_ttree. - * tree.h: Rename init_obstacks to init_ttree. Remove declarations - of permalloc, expralloc, perm_calloc. - * tree.c (permanent_obstack): Delete definition. - (init_ttree): Rename from init_obstacks. - (permalloc): Delete. - (perm_calloc): Delete. - (dump_tree_statistics): Don't print information about - permanent_obstack. - * varasm.c (assemble_start_function): Use xstrdup instead of - permalloc/strcpy. - (assemble_variable): Likewise. - * config/alpha/alpha.c (unicosmk_need_dex): Use xmalloc instead of - permalloc. - (unicosmk_add_extern): Likewise. - * config/c4x/c4x.c (c4x_external_ref): Likewise. - (c4x_global_label): Likewise. - * config/frv/frv.c (frv_encode_section_info): Likewise. - * config/i386/winnt.c (i386_pe_record_external_function): Likewise. - (i386_pe_record_exported_symbol): Likewise. - * config/mips/mips.c (mips_output_external): Likewise. - (mips_output_external_libcall): Likewise. - * config/pa/pa.c: (permanent_obstack): Delete declaration. - (output_call): Use ggc_strdup instead of allocating on - permanent_obstack. - * config/romp/romp.c: Include ggc.h. - (get_symref): Don't declare permanent_obstack, use ggc_strdup - intead of permanent_obstack. - * config/rs6000/aix31.h (ASM_OUTPUT_EXTERNAL): Use concat - instead of permalloc. - * config/rs6000/rs6000.c (rs6000_gen_section_name): Use xmalloc - instead of permalloc - * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Use concat - instead of permalloc. - * config/vax/vax.c (vms_check_external): Use xmalloc instead of - permalloc. - -2002-08-04 Bernd Schmidt - - Contribute a port developed primarily by Michael Meissner, - Catherine Moore, and Richard Sandiford . - * config.gcc: Add frv-elf target. - * config/frv/cmovd.c: New file. - * config/frv/cmovh.c: New file. - * config/frv/cmovw.c: New file. - * config/frv/frv-abi.h: New file. - * config/frv/frv-asm.h: New file. - * config/frv/frv-modes.def: New file. - * config/frv/frv-protos.h: New file. - * config/frv/frv.c: New file. - * config/frv/frv.h: New file. - * config/frv/frv.md: New file. - * config/frv/frvbegin.c: New file. - * config/frv/frvend.c: New file. - * config/frv/lib1funcs.asm: New file. - * config/frv/media.h: New file. - * config/frv/modi.c: New file. - * config/frv/t-frv: New file. - * config/frv/uitod.c: New file. - * config/frv/uitof.c: New file. - * config/frv/ulltod.c: New file. - * config/frv/ulltof.c: New file. - * config/frv/umodi.c: New file. - * config/frv/xm-frv.h: New file. - - * config/frv/media.h: Removed again. - -2002-08-04 Nathan Sidwell - - * gcov.c (bb_file_time): New static variable. - (object_directory): May also be object file. - (preserve_paths): New static variable. - (print_usage): Adjust. - (options): Adjust. - (process_args): Adjust. - (open_files): Simplify. Cope when OBJECT_DIRECTORY is an object - file. Find modification date on bb file. - (read_profile): Don't rewind a NULL file. - (format_hwint): New static function. - (function_summary): Use format_hwint. - (output_data): SOURCE_FILE_NAME is never relative to - OBJECT_DIRECTORY. Use format_hwint. Adjust gcov file name - mangling. Adjust output format to make it more machine readable. - * doc/gcov.texi: Document & clarify semantics. - -2002-08-04 Joseph S. Myers - - * doc/include/gcc-common.texi (version-GCC): Increase to 3.3. - -2002-08-04 Nathan Sidwell - - * gcc.c (cc1_options): Pass output file as auxbase when - appropriate. - * profile.c (init_branch_prob): FILENAME has already had ending - stripped. - * final.c (end_final): Likewise. - * toplev.c (aux_base_name): New global. - (compile_file): Pass aux_base_name to init init_branch_prob and - end_final. - (independent_decode_option, case 'a'): New auxinfo options. - (case 'd'): Protect against mising basename. - (do_compile): Initialize aux_base_name. - * toplev.h (aux_base_name): New global. - * doc/invoke.texi: Adjust documentation. - -2002-08-04 Nathan Sidwell - - * config/i386/i386.c (x86_field_alignment): Remove duplicate test - of TARGET_ALIGN_DOUBLE. - -2002-08-04 Gabriel Dos Reis - - * diagnostic.c (inform): New function. - * diagnostic.h (inform): Declare. - -2002-08-03 David Edelsohn - - * config/rs6000/rs6000.md (movsi_internal1): Add nop mnemonic. - (movhi_internal): Same. - (movqi_internal): Same. - (movdi_internal64): Same. - - * config/rs6000/t-ppccomm (MULTILIB_MATCHES_FLOAT): Add mcpu=405. - - * config/rs6000/xcoff.h (SKIP_ASM_OP): Define. - (ASM_OUTPUT_SKIP): Use it. SIZE unsigned. - (COMMON_ASM_OP): Define. - (ASM_OUTPUT_ALIGNED_COMMON): Use it. SIZE unsigned. - Use ALIGN parameter. - (LOCAL_COMMON_ASM_OP): Define. - (ASM_OUTPUT_LOCAL): Use it. SIZE unsigned. - -2002-08-03 Roger Sayle - - * builtins.def: Define new builtin functions exp, expf, expl, - log, logf and logl (and their __builtin_* variants). - * optabs.h (enum optab_index): Add new OTI_exp and OTI_log. - Define exp_optab and log_optab. - * optabs.c (init_optans): Initialize exp_optab and log_optab. - * genopinit.c (optabs): Implement exp_optab and log_optab - using exp?f2 and log?f2 patterns. - * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP* - and BUILT_IN_LOG* using exp_optab and log_optab respectively. - (expand_builtin): Ignore the new builtins (and all cos and - sin variants) when not optimizing. Expand new builtins via - expand_builtin_mathfn when flag_unsafe_math_optimizations. - - * doc/extend.texi: Document new exp and log builtins. - * doc/md.texi: Document new exp?f2 and log?f2 patterns - (and previously undocumented cos?f2 and sin?f2 patterns). - -2002-08-03 Jason Merrill - - * explow.c (int_expr_size): New fn. - * expr.c (expand_expr) [CONSTRUCTOR]: Use it. - * expr.h: Declare it. - -2002-08-02 Krister Walfridsson - - * Makefile.in (gengtype-lex.o, gengtype-yacc.o): Add path to - gengtype-* dependencies. - -2002-08-02 Eric Christopher - - * config.gcc (mips*-*-linux*): Fix ordering of tm_file. - * config/mips/mips.h (READONLY_DATA_SECTION_ASM_OP): Change - #ifndef to #undef. - (TARGET_MEM_FUNCTIONS): Define instead of define to 1. - -2002-08-02 David Edelsohn - - PR optimize/7067 - * config/rs6000/rs6000.h (RTX_COSTS): Artificially make MULT - small if optimizing for size. - -2002-08-02 Daniel Jacobowitz - - * configure.in (FORBUILD): Use $build_alias. - * configure: Regenerated. - -2002-08-02 Richard Sandiford - - * config.gcc: Don't include mips/abi64.h in $tm_file. - * hard-reg-set.h (call_really_used_regs): Declare. - * config/mips/abi64.h: Remove file. - * config/mips/linux.h, - * config/mips/iris6.h: Don't include it. - * config/mips/mips-protos.h (mips_conditional_register_usage): Declare. - * config/mips/mips.h (CONDITIONAL_REGISTER_USAGE): Use it. - (REG_PARM_STACK_SPACE, STACK_BOUNDARY, STRICT_ARGUMENT_NAMING, - FUNCTION_ARG_PASS_BY_REFERENCE, FUNCTION_ARG_PADDING, - FUNCTION_ARG_CALLEE_COPIES, MUST_PASS_IN_STACK, MIPS_STACK_ALIGN): - Bring across definitions from abi64.h. - (GP_ARG_LAST, FP_ARG_LAST): Use MAX_ARGS_IN_REGISTERS. - (BIGGEST_MAX_ARGS_IN_REGISTERS): New. - (struct mips_args): Use it. - * config/mips/mips.c (mips_conditional_register_usage): Define. - -2002-08-02 Jason Merrill - - * langhooks-def.h (LANG_HOOKS_EXPR_SIZE): New macro. - * langhooks.c (lhd_expr_size): Define default. - * langhooks.h (struct lang_hooks): Add expr_size. - * explow.c (expr_size): Call it. - * expr.c (store_expr): Don't copy an expression of size zero. - (expand_expr) [CONSTRUCTOR]: Use expr_size to calculate how much - to store. - * Makefile.in (builtins.o): Depend on langhooks.h. - -2002-08-02 Kaveh R. Ghazi - - * Makefile.in (ra-debug.o): Depend on $(TM_P_H). - * ra-debug.c: Include "tm_p.h". - * ra-rewrite.c (is_partly_live_1): Change return type to bool. - -2002-08-02 Toon Moene - - * simplify-rtx.c (simplify_binary_operation): x * 1 is allowed - when not honoring signalling NaNs. - (simplify_ternary_operation): a == b has a definite value - when not honoring NaNs. - -2002-08-02 Jason Merrill - - * gdbinit.in (pct): New macro. - -2002-08-01 Stan Shebs - Andreas Tobler - - * ginclude/stddef.h (_BSD_SIZE_T_DEFINED_): Define if not defined, - plays nice with Darwin headers. - (_BSD_RUNE_T_DEFINED_): Likewise. - -2002-08-01 Zack Weinberg - - * c-common.c (c_common_init): -Wtraditional also implies -Wlong-long. - * cppinit.c (cpp_post_options): Likewise. - - * cppexp.c (cpp_classify_number): Suppress -Wtraditional - warning about 'LL' suffix (but not 'ULL' etc) when - -Wno-long-long is in effect. - - * cppmacro.c (_cpp_builtin_macro_text) [BT_TIME, BT_DATE]: - Check for failing time()/localtime(), issue a warning, and - make __TIME__ and __DATE__ expand to fallback strings. - - * doc/cpp.texi, doc/extend.texi: Document behavior of __DATE__ - and __TIME__ when the date and time cannot be determined. - -2002-08-02 Alan Modra - - * config/rs6000/rs6000.c (output_cbranch): Hint differently for power4. - -2002-08-01 Daniel Jacobowitz - - * Makefile.in ($(BUILD_PREFIX_1)ggc-none.o): Use $(GGC_H). - -2002-08-01 Chris Demetriou - - * config.gcc (mipsisa64sb1-*-elf*): New configuration. - (mipsisa64sb1el-*-elf*): Likewise. - * config/mips/mips.c (mips_cpu_info_table): Add sb1. - * config/mips/mips.h (processor_type): Add PROCESSOR_SB1. - (TARGET_SB1, TUNE_SB1): New macros. - * doc/invoke.texi: Add sb1 to documentation for MIPS -march and - -mtune flags. - -2002-08-01 David Edelsohn - - * varasm.c (asm_emit_uninitialized): Return false if global BSS - and ASM_EMIT_BSS not supported by target. - (assemble_variable): Do not duplicate uninitialized logic. - Fall through if asm_emit_uninitialized failed. - -2002-08-01 Chris Demetriou - - * config/mips/mips.h (BRANCH_LIKELY_P): Remove unused macro. - -2002-08-02 Alan Modra - - * config/rs6000/linux64.h (DBX_OUTPUT_BRAC): Define. - (DBX_OUTPUT_LBRAC, DBX_OUTPUT_RBRAC): Define. - - * config/rs6000/rs6000.c (output_toc): Don't use lshift_double when - HOST_BITS_PER_WIDE_INT == 64. - -2002-08-01 Kaveh R. Ghazi - - * df.c (df_insn_table_realloc): Change parameter to unsigned. - * optabs.c (expand_binop): Make variable unsigned. - * simplify-rtx.c (simplify_subreg): Likewise. - * unroll.c (unroll_loop): Cast to avoid signed/unsigned warnings. - -2002-08-01 Franz Sirl - - * c-common.c (cb_register_builtins): Always define __GXX_ABI_VERSION. - -2002-08-01 Richard Henderson - - * toplev.c (parse_options_and_default_flags): Don't set - flag_reorder_blocks for -Os. - - * config/avr/avr.c (avr_optimization_options): Remove. - * config/avr/avr.h (OPTIMIZATION_OPTIONS): Remove. - * config/m68hc11/m68hc11.c (m68hc11_optimization_options): Remove. - * config/m68hc11/m68hc11.h (OPTIMIZATION_OPTIONS): Remove. - -2002-08-01 H.J. Lu - Richard Henderson - - * output.h (DECL_READONLY_SECTION): Remove. - (decl_readonly_section): Declare. - * varasm.c (decl_readonly_section): New. - (default_section_type_flags, default_select_section): Use it. - * config/arm/pe.c (arm_pe_unique_section): Likewise. - * config/i386/interix.c (i386_pe_unique_section): Likewise. - * config/i386/winnt.c (i386_pe_unique_section): Likewise. - * config/mcore/mcore.c (mcore_unique_section): Likewise. - * config/mips/mips.c (mips_unique_section): Likewise. - -2002-08-01 Richard Henderson - - * integrate.c (copy_rtx_and_substitute): Squash MEM_EXPR when it - refers to a subroutine parameter. - -2002-08-01 Jakub Jelinek - - * varasm.c (assemble_visibility): Strip name encoding. - -2002-08-01 Ian Dall - - * config/ns32k/ns32k.h (TARGET_IEEE_COMPARE): Correct earlier patch. - (RETURN_ADDR_RTX): Cannot determine return address for FRAME > 0 - when there is no frame pointer. - (INITIAL_FRAME_POINTER_OFFSET): Count stack space for saved fp - registers properly. - * config/ns32k/__unorddf2.c: New file. - * config/ns32k/__unordsf2.c: New file. - * config/ns32k/t-ns32k: New file. - * config.gcc (ns32k-*-netbsd*): Use it. - -2002-08-01 Aldy Hernandez - - * config/rs6000/rs6000.h (SPU_CONST_OFFSET_OK): Change to 0xff. - -2002-08-01 Neil Booth - - * c-common.c (__GXX_ABI_VERSION): Correct spelling. - -2002-08-01 Benjamin Kosnik - - * c-common.c (cb_register_builtins): Set __GXX_ABI_VERSION__ to 102. - -2002-08-01 Richard Sandiford - - * config/mips/mips.md: Add [!]TARGET_MIPS16 to sgtu conditions. - -2002-08-01 Zdenek Dvorak - - * gcse.c (expr_hash_table_size, n_exprs, set_hash_table_size, - n_sets): Removed. - (expr_hash_table, set_hash_table): Type changed to ... - (struct hash_table): New type. - (hash_scan_insn, hash_scan_set, hash_scan_clobber, hash_scan_call, - insert_expr_in_table, insert_set_in_table, compute_hash_table, - dump_hash_table, lookup_expr, lookup_set, compute_local_properties, - compute_ae_gen, compute_ae_kill): Modified to pass the table explicitly. - (alloc_set_hash_table, alloc_expr_hash_table): Merged to ... - (alloc_hash_table): New. - (free_set_hash_table, free_expr_hash_table): Merged to ... - (free_hash_table): New. - (compute_set_hash_table, compute_expr_hash_table): Merged to ... - (compute_hash_table_work): New. - (classic_gcse, one_classic_gcse_pass, compute_cprop_data, - find_avail_set, one_cprop_pass, find_bypass_set, compute_pre_data, - pre_edge_insert, pre_insert_copies, pre_delete, pre_gcse, - one_pre_gcse_pass, compute_transpout, compute_code_hoist_vbeinout, - hoist_code, one_code_hoisting_pass, - trim_ld_motion_mems): Altered due to changed type of hash tables. - -2002-08-01 Zack Weinberg - - * final.c (output_alternate_entry_point): - If ASM_OUTPUT_TYPE_DIRECTIVE is defined, use it. - -2002-08-01 Kaveh R. Ghazi - - * objc/objc-act.c (encode_complete_bitfield): Add prototype and - avoid ISO C style function definition. - - * expr.c (expand_assignment): Delete unused variable. - -2002-08-01 Toon Moene - - * c-common.c (cb_register_builtins): Set - __FINITE_MATH_ONLY__ to 1 if -ffinite-math-only - is given, and to 0 otherwise. - * combine.c (simplify_if_then_else): HONOR_NANS - implies FLOAT_MODE_P. - -2002-08-01 Neil Booth - - * cppinit.c (COMMAND_LINE_OPTIONS): Remove OPT_dollar. - (cpp_handle_option): Don't handle it. - (print_help): Update. - * doc/cppopts.texi: Update. - -2002-08-01 Neil Booth - - * c-common.c (cb_register_builtins): If C++, define - __EXCEPTIONS, __DEPRECATED and __GXX_ABI_VERSION as appropriate. - * gcc.c (cpp_unique_options): Remove __GXX_ABI_VERSION. -cp: - * lang-specs.h: Simplify in accordance with new code in - c-common.c. - -2002-08-01 Neil Booth - - * c-common.c: Define all C/ObjC/C++ warning and flag variables. - * c-common.h: Declare all C/ObjC/C++ warning and flag variables. - * c-decl.c: Move all warning and flag variables to c-common.c. - * c-format.c: Move all warning variables to c-common.c. - * c-tree.h: Move all warning and flag declarations to c-common.h. - * objc/objc-act.c: Move all warning variables to c-common.c. - (flag_warn_protocol): Rename warn_protocol. - -2002-07-31 John David Anglin - - * pa-linux.h (GLOBAL_ASM_OP): Fix typo. - -2002-07-31 Graham Stott - - * config/stormy16/stormy16.h (BSS_SECTION_ASM_OP): Add missing - .section prefix. - -2002-07-31 Stan Shebs - - * config.gcc (i[34567]86-*-darwin*): New configuration. - * config/darwin.h (TARGET_ENCODE_SECTION_INFO): Undefine before - defining. - (TARGET_ENCODE_SECTION_INFO): Ditto. - (ASM_PREFERRED_EH_DATA_FORMAT): Ditto. - * config/darwin.c (machopic_indirect_data_reference): Remove - setting of RTX_UNCHANGING_P. - (machopic_legitimize_pic_address): Move RTX_UNCHANGING_P up so as - not to be applied to sums. - * config/i386/t-darwin: New file. - * config/i386/darwin.h: New file. - * config/i386/i386.h (TARGET_MACHO): Add default definition. - * config/i386/i386.md (tablejump): Add TARGET_MACHO case. - * config/i386/i386.c (output_set_got): For Mach-O, output Mach-O - label and not the GOT add. - (constant_address_p): For Mach-O, seeing a CONST is enough. - (legitimate_pic_address_disp_p): Add a Mach-O case. - (legitimate_address_p): Also test machopic_operand_p if Mach-O. - (legitimize_pic_address): Use generic Mach-O code to legitimize. - (output_pic_addr_const): Suppress @PLT if Mach-O, and parens - if outputting a difference. - (ix86_output_addr_diff_elt): Add Mach-O case. - (ix86_expand_move): Similarly. - (ix86_expand_call): Similarly. - (current_machopic_label_num): New global. - (machopic_output_stub): New function. - (ix86_value_regno): New function. - (ix86_function_value): Use it instead of VALUE_REGNO. - (ix86_libcall_value): Ditto. - * config/i386/unix.h (VALUE_REGNO): Remove. - -2002-07-31 Graham Stott - - * config/rs6000/rs6000.c(rs6000_hash_constant): Fix - hash for LABEL_REF's. - -2002-07-31 Graham Stott - - * config/rs6000/rs6000.c (spe_init_builtins, - altivec_init_builtins, rs6000_common_init_builtins): - Replace ANSI with K&R function def. - -2002-07-31 David Edelsohn - - * rs6000.c (validate_condition_mode): Test flag_finite_math_only - for CCFPmode. - -2002-07-31 Richard Sandiford - - * config/mips/crtn.asm: Don't use __mips16 to determine the - return-address offset. Define RA to a suitable temporary - register for the return address. - -2002-07-31 Richard Sandiford - - * config/mips/mips.md (eh_set_lr_si, eh_set_lr_di): Change - constraints to 'd'. - -2002-07-30 Chris Demetriou - - * config/mips/elf.h (STARTFILE_SPEC): Define differently if - default ABI is MEABI. (Undoes incorrect change in Eric Christopher's - patch on 2002-07-29.) - * config/mips/elf64.h (STARTFILE_SPEC): Likewise. - -2002-07-30 Kaveh R. Ghazi - - * alpha.h, arc.h, arm/aout.h, avr.h, cris.h, d30v.h, dsp16xx.h, - fr30.h, h8300.h, i370.h, i386/sco5.h, i386/unix.h, i960.h, ia64.h, - ip2k.h, m32r.h, mcore.h, mips.h, mn10200.h, mn10300.h, ns32k.h, - openbsd.h, pa/pa-linux.h, pdp11.h, romp.h, rs6000/sysv4.h, - s390/linux.h, sh.h, sparc.h, stormy16.h, v850.h, vax.h, xtensa.h: - (ASM_GLOBALIZE_LABEL): Delete. - (GLOBAL_ASM_OP): Define. - - * m68hc11.h, m68k.h, m88k.h (ASM_GLOBALIZE_LABEL): Delete. - - * defaults.h (ASM_GLOBALIZE_LABEL): Provide a default. - * doc/tm.texi (ASM_GLOBALIZE_LABEL): Update docs. - -2002-07-30 Geoffrey Keating - - * doc/extend.texi (Hints implementation): Document that GCC - mostly ignores `register'. - -2002-07-30 Toon Moene - - * flags.h: Declare flag_finite_math_only. - Use it in definition of HONOR_NANS and - HONOR_INFINITIES. - * c-common.c (cb_register_builtins): Emit - __FINITE_MATH_ONLY__ when flag_finite_math_only - is set. - * combine.c (simplify_if_then_else): If - flag_finite_math_only is set, a == b has a - definite value. - * toplev.c: Initialize flag_finite_math_only. - (set_flags_fast_math): Set it on -ffast-math. - (flag_fast_math_set_p): Test it. - * doc/invoke.texi: Document -ffinite-math-only. - -2002-07-30 Richard Henderson - - * ifcvt.c (noce_get_alt_condition): Use reg_overlap_mentioned_p. - (noce_process_if_block): Likewise. - -2002-07-30 Bernd Schmidt - - * ifcvt.c (cond_exec_process_if_block): Fix a merging error. - Bail out early if false_expr is NULL and we'd crash due to this. - * genemit.c (gen_expand): Recognize return insns even if the return - appears in a parallel. - * libgcc2.c: Expand macro DECLARE_LIBRARY_RENAMES if it is defined. - * config/fp-bit.c: Likewise. - * doc/tm.texi: Document it. - -2002-07-30 David Edelsohn - Zack Weinberg - - * rs6000.c (rs6000_expand_unop_builtin): Check icode not - CODE_FOR_nothing. Change switch to if. - (rs6000_expand_binop_builtin): Same. - (rs6000_expand_builtin): Expand builtin if target support enabled. - (rs6000_init_builtins): Init builtin if target support enabled. - (rs6000_common_init_builtins): Check icode not CODE_FOR_nothing. - -2002-07-30 Franz Sirl - - * gcc.c (cpp_unique_options): Define __GXX_ABI_VERSION, bump it to 101. - -2002-07-30 Richard Sandiford - - * config/mips/mips.h (SUBTARGET_ASM_DEBUGGING_SPEC): Fix typo. - -Tue Jul 30 18:31:31 2002 J"orn Rennecke - - * sh.md (cond_delay_slot): New attribute. - (cbranch delay): Use it for anulled-true case. - (stuff_delay_slot): New pattern. - * sh.c (print_operand, case '.'): Don't print .s / /s fore zero-length - delay slot insn. - (gen_far_branch): Emit stuff_delay_slot pattern. - -Tue Jul 30 11:21:44 2002 J"orn Rennecke - - * unroll.c (copy_loop_body): Don't copy NOTE_INSN_LOOP_CONT. - -2002-07-30 Kazu Hirata - - * fold-const.c: Fix comment typos. - * gcse.c: Likewise. - * reload1.c: Likewise. - -2002-07-29 Aldy Hernandez - - * config/rs6000/rs6000.md: Disallow CCEQ compare with crnor/crnot - for TARGET_SPE. - -2002-07-30 Gabriel Dos Reis - - * c-pretty-print.h (pp_c_statement): Declare. - * c-pretty-print.c (pp_c_postfix_expression): #if 0 support for SRCLOC. - (pp_c_statement): Define. - -2002-07-30 Kaveh R. Ghazi - - * alpha.h, arc.h, arm/aout.h, avr.h, c4x.h, cris.h, d30v.h, - darwin.h, dsp16xx.h, fr30.h, h8300.h, i370.h, i386.h, i960.h, - ip2k.h, m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h, mips.h, - mn10200.h, mn10300.h, ns32k.h, pa/pa-linux.h, pdp11.h, romp.h, - rs6000/sysv4.h, s390/linux.h, sh.h, sparc.h, stormy16.h, - v850.h, vax.h, xtensa.h (ASM_OUTPUT_LABEL): Delete definition. - - * defaults.h (ASM_OUTPUT_LABEL): Provide a default. - * doc/tm.texi (ASM_OUTPUT_LABEL): Update docs. - -2002-07-30 Gabriel Dos Reis - - * c-pretty-print.c (pp_c_primary_expression): Handle STMT_EXPR. - (pp_c_postfix_expression): Handle ARROW_EXPR, FFS_EXPR, - COMPOUND_LITERAL_EXPR, VA_ARG_EXPR. - (pp_c_expression): Update. - -2002-07-29 Kaveh R. Ghazi - - * alpha/vms-cc.c (preprocess_args, main): Use xstrdup and/or - concat in lieu of xmalloc/strcpy/memcpy/sprintf. - * alpha/vms-ld.c (main): Likewise. - * dsp16xx.c (double_reg_to_memory): Likewise. - * mcore.c (mcore_expand_prolog): Likewise. - * cppfiles.c (read_name_map): Likewise. - * gensupport.c (process_rtx, identify_predicable_attribute, - alter_test_for_insn): Likewise. - * vmsdbgout.c (write_rtnbeg, vmsdbgout_init): Likewise. - -2002-07-29 Roger Sayle - - * builtins.c (expand_builtin): Change the default behavior to - only issue an error if the builtin function doesn't have a - fallback library call. Remove several cases handled by the - new default. - -2002-07-29 John David Anglin - - * real.c (ieee_24, ieee_53, ieee_64, ieee_113): Define only if the - floating point format of the target is IEEE. - * (dec_f, dec_d, dec_g, dec_h): Define only if the floating point - format of the target is DEC. - -2002-07-29 Richard Henderson - - * unroll.c (verify_addresses): Remove. - (find_splittable_givs): Never split DEST_ADDR givs. - -2002-07-29 Geoffrey Keating - - * doc/gty.texi (GGC Roots): Clarify that the list of syntaxes - is exhaustive. - (Files): Improve documentation on generated source files. - - * doc/extend.texi (Translation implementation): Document what - diagnostics look like. - (Identifiers implementation): Document that there's normally no - limit on identifier names. - (Integers implementation): Document two's complement. - (Hints implementation): Document that GCC honors 'inline', mostly. - (Preprocessing directives implementation): Document that GCC - requires the current time. - -2002-07-30 Gabriel Dos Reis - - * c-pretty-print.h (struct c_pretty_print_info): Add new member. - (pp_initializer): New macro. - (pp_c_initializer): Declare. - * c-pretty-print.c (pp_c_primary_expression): HAndle TARGET_EXPR. - (pp_c_initializer): Define. - (pp_c_initializer_list): New function. - (pp_c_postfix_expression): Handle ABS_EXPR, COMPLEX_CST, - VECTOR_CST, CONSTRUCTOR. - (pp_c_unary_expression): Handle CONJ_EXPR, REALPART_EXPR, - IMAGPART_EXPR. - (pp_c_cast_expression): Handle FLOAT_EXPR. - (pp_c_assignment_expression): Handle INIT_EXPR. - (pp_c_expression): Update. - -2002-07-30 Neil Booth - - * objc/objc-act.c (objc_init): Return immediately if filename - is NULL. - -2002-07-29 Eric Christopher - - * config/mips/elf.h: Remove ecoff.h and gofast includes. - (DWARF2_DEBUGGING_INFO, DBX_DEBUGGING_INFO): Define unconditionally. - (SDB_DEBUGGING_INFO): Undefine. - (PREFERRED_DEBUGGING_TYPE): Set to DWARF2_DEBUG. - (PUT_SDB_SIZE): Remove. - (SUBTARGET_ASM_DEBUGGING_SPEC): Redefine. - (STARTFILE_SPEC): Add isa3264 define. - * config/mips/elf64.h: Ditto. Move TARGET_MEM_FUNCTIONS from here... - * config/mips/ecoff.h: Remove. and here... - * config/mips/iris3.h: and here... - * config/mips/sni-svr4.h: and here... - * config/mips/mips.h: To here. Remove OBJECT_FORMAT_ROSE ifdefs. - Add assembler -mmdebug options for non-dwarf debugging. - * config/mips/r3900.h: Remove debug info defines. - * config/mips/isa32-linux.h: Remove, move functionality to config.gcc. - * config/mips/isa3264.h: Ditto. - * config/mips/t-isa3264: Fix up for file removal and gofast configure - change. - * config/mips/t-elf: Ditto. - * config/mips/t-ecoff: Ditto. - * config/mips/t-r3900: Ditto. - * config/mips/t-iris5-6: Ditto. - * config/mips/t-isa3264: Ditto. - * config/mips/t-linux: Remove. - * config/mips/t-netbsd: Remove. - * config/mips/t-mips: New file. - * config/mips/t-gofast: Ditto. - * config/mips/netbsd.h: Remove unnecessary undefines. - * config/mips/linux.h: Remove #include of mips.h. - * config.gcc: Add mips.h include for elf targets. Remove tm_file - for ecoff. Add gofast configure option for mips. - -2002-07-29 Chris Demetriou - - * configure.in (mips*-*-*): Add a test to see if MIPS libgloss - linker scripts use STARTUP directives consistently. - * configure: Regenerate. - * config.in: Regenerate. - * config/mips/elf.h (STARTFILE_SPEC): Define conditionally, based - on whether HAVE_MIPS_LIBGLOSS_STARTUP_DIRECTIVES is defined. - * config/mips/elf64.h (STARTFILE_SPEC): Likewise. - * config/mips/isa3264.h (STARTFILE_SPEC): Do not redefine if - HAVE_MIPS_LIBGLOSS_STARTUP_DIRECTIVES is set; the result - will be the same. - -2002-07-29 Aldy Hernandez - - * config/rs6000/rs6000.md ("cpu"): Add ppc8540 to attribute. - -2002-07-29 Aldy Hernandez - - * config/rs6000/rs6000.h (RTX_COSTS): Add MULT case for 8540. - -2002-07-29 Aldy Hernandez - - * config/rs6000/rs6000.md: Move altivec patterns from here... - - * config/rs6000/altivec.md: ...to here. - -2002-07-29 Aldy Hernandez - - * config/rs6000/spe.md ("spe_evmra"): Change to unspec. - -2002-07-29 Richard Henderson - - * emit-rtl.c (set_mem_attributes_minus_bitpos): Rename from - set_mem_attributes and add BITPOS argument. Subtract it from - OFFSET when same is adjusted. - (set_mem_attributes): New wrapper function. - * expr.c (expand_assignment): Use set_mem_attributes_minus_bitpos; - remove offset adjustment hack. - * expr.h (set_mem_attributes_minus_bitpos): Declare. - -2002-07-29 Gabriel Dos Reis - - * Makefile.in (C_OBJS): Include c-pretty-print.o - (c-pretty-print.o): Add depency rule. - * pretty-print.h: Add more macros. - * c-pretty-print.c: New file. - * c-pretty-print.h: Likewise. - -2002-07-29 Aldy Hernandez - - * config/rs6000/spe.h (__internal_ev_mwhgumian): Cast vector - constants to __ev64_s32__. - (__internal_ev_mwhgsmian): Same. - (__internal_ev_mwhgsmfan): Same. - (__internal_ev_mwhgssfan): Same. - (__internal_ev_mwhgumiaa): Same. - (__internal_ev_mwhgsmiaa): Same. - (__internal_ev_mwhgsmfaa): Same. - (__internal_ev_mwhgssfaa): Same. - -2002-07-29 David Edelsohn - - * varasm.c (assemble_variable): Narrow test for uninitialized - without BSS target support. - -2002-07-29 Nathan Sidwell - - * profile.c: Add file comment describing the overall algorithm and - structures. - (struct edge_info): Add comments. - (struct bb_info): Add comments. - * basic-block.h (EDGE_*): Add comments. - * doc/gcov.texi (Gcov Data Files): Document bit flags. - -2002-07-29 Bob Wilson - - * config/xtensa/elf.h, config/xtensa/linux.h - (TARGET_OS_CPP_BUILTINS): Define. - (CPP_PREDEFINES): Remove. - * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define. - (CPP_SPEC): Remove. - -2002-07-29 Zack Weinberg - - * gensupport.c: Include hashtab.h. - (insn_elision, condition_table, hash_c_test, cmp_c_test, - maybe_eval_c_test): New routines and data structures to - support insn elision. - (init_md_reader): Read and initialize the condition_table. - (read_md_rtx): Discard insn patterns whose C test is provably - always false. - * gensupport.h: Declare new functions and data structures. - - * genconditions.c, dummy-conditions.c: New files. - * Makefile.in: Build genconditions; run it to construct - insn-conditions.c; build that and link it into most gen* - programs. - (HOST_SUPPORT, HOST_EARLY_SUPPORT): New variables. - (GEN): Delete, unused. - (STAGESTUFF): Update. - - * gencodes.c: (gen_insn): #define CODE_FOR_xxx equal to - CODE_FOR_nothing for all elided patterns. - (main): Tweaked to support this. - * genflags.c (gen_proto): Emit a static inline generator - function here for all elided patterns, which simply returns - NULL_RTX. - (gen_insn): Do not define HAVE_xxx for elided patterns. - (main): Tweaked to support this. No need to forward-declare - struct rtx_def. - * genrecog.c: Do not bother emitting the C test if it's known - to be true at compile time. - -2002-07-29 Mike Stump - - * config.gcc (target_gtfiles): Initialize, as otherwise cross - compilers hosted on powerpc-apple-darwin6.0 won't even build. - -2002-07-29 Richard Earnshaw - - * arm.md (sibcall, sibcall_value): Add RETURN as part of the pattern, - remove clobber of LR. - (sibcall_insn, sibcall_value_insn): Update accordingly. - (sibcall_epilogue): Remove debugging comment from assembler stream. - -2002-07-29 Gabriel Dos Reis - - * pretty-print.h: Define more macros. - * diagnostic.h (output_formatted_integer): Moved from... - * diagnostic.c: ... here. - -2002-07-28 Kaveh R. Ghazi - - * stormy16.h (ASM_OUTPUT_SYMBOL_REF): Use ASM_OUTPUT_LABEL_REF. - -2002-07-28 Zack Weinberg - - * defaults.h (ASM_OUTPUT_MEASURED_SIZE): Take only two - arguments. Always use ".-symbol" as expression argument. - * doc/tm.texi: Update to match. Document requirement for - ".size symbol, .-symbol" to be acceptable to assembler. - - * config/elfos.h, config/netbsd-aout.h, config/openbsd.h, - config/arm/elf.h, config/avr/avr.h, config/cris/aout.h, - config/i386/freebsd-aout.h, config/i386/sco5.h, - config/ip2k/ip2k.h, config/m88k/m88k.h, config/xtensa/elf.h, - config/xtensa/linux.h: Update uses of ASM_OUTPUT_MEASURED_SIZE. - -2002-07-28 Kaveh R. Ghazi - - * Makefile.in (gengtype-lex.c): Fix error in last change. - - * alpha/freebsd.h (TARGET_OS_CPP_BUILTINS): Add missing - backslash. - - * Makefile.in (vmsdbgout.o): Depend on function.h. - - * vmsdbgout.c: Include function.h. - -2002-07-28 Alan Modra - - * prefix.c (update_path): Don't strip single `.' path components - unless stripping a later `..' component. Exit loop as soon as - a valid path is found. - -2002-07-27 Roger Sayle - - * builtins.def [DEF_GCC_BUILTIN]: Require an explicit ATTRS - argument. Mark BUILT_IN_RETURN, BUILT_IN_EH_RETURN, - BUILT_IN_LONGJMP and BUILT_IN_TRAP as noreturn, the ISO C99 - floating point unordered comparisons (e.g. __builtin_isgreater) - as const, and leave the remaining GCC_BUILTINs unchanged. - - * c-decl.c (builtin_function): No need to explicitly mark - BUILT_IN_RETURN and BUILT_IN_EH_RETURN as noreturn. - -2002-07-27 Roger Sayle - - * Makefile.in: rtlanal.o now depends upon real.h. - - * flags.h [flag_signaling_nans]: New flag. - [HONOR_SNANS]: New macro. - - * toplev.c [flag_signaling_nans]: Initialize to false. - (f_options): Add processing for "-fsignaling-nans". - (set_fast_math_flags): Clear flag_signaling_nans with -ffast-math. - (process_options): flag_signaling_nans implies flag_trapping_math. - - * c-common.c (cb_register_builtins): Define __SUPPORT_SNAN__ - when -fsignaling-nans. First step to implementing WG14's N965. - - * fold-const.c (fold) [MULT_EXPR]: Conditionalize transforming - 1.0 * x into x, and -1.0 * x into -x on !HONOR_SNANS. - [RDIV_EXPR]: Conditionalize x/1.0 into x on !HONOR_SNANS. - - * simplify-rtx.c (simplify_relational_operation): Conditionalize - transforming abs(x) < 0.0 into false on !HONOR_SNANS. - - * rtlanal.c: #include real.c for TARGET_FLOAT_FORMAT definitions - required by HONOR_SNANS. (may_trap_p): Floating point DIV, MOD, - UDIV, UMOD, GE, GT, LE, LT and COMPARE may always trap with - -fsignaling_nans. EQ and NE only trap for flag_signaling_nans - not flag_trapping_math (i.e. HONOR_SNANS but not HONOR_NANS). - - * doc/invoke.texi: Document new -fsignaling-nans compiler option. - -2002-07-27 Kaveh R. Ghazi - - * Makefile.in (gengtype-lex.c): Work around a bug in flex. - * gengtype-lex.l (YY_USE_PROTOS): Undef. - (YY_DECL): Define. - -2002-07-27 Roger Sayle - - * doc/invoke.texi: Document that both -fno-builtin-foo and - -fno-builtin are supported by the g++ front-end. - -2002-07-27 Stan Shebs - - * configure.in: Rename config_gtfiles to target_gtfiles. - * configure: Regenerate. - * doc/gty.texi: Update reference. - * config.gcc (powerpc-*-darwin*): Set target_gtfiles - instead of appending to it. - -2002-07-25 Aldy Hernandez - - * config/rs6000/rs6000.c (function_arg_advance): SPE vararg - vectors are split into two registers. - (function_arg): Same. - -Thu Jul 26 23:00:13 2002 J"orn Rennecke - - * pa.md (extv): Check predicates before emitting extv_32. - -2002-07-27 Alan Modra - - * config/rs6000/rs6000.c (rs6000_traceback_name): New var. - (rs6000_traceback): New var. - (rs6000_override_options): Set rs6000_traceback. - (rs6000_output_function_epilogue): Implement traceback options. - * config/rs6000/rs6000.h (TARGET_OPTIONS): Add "traceback=". - (rs6000_traceback_name): Declare. - - * config/rs6000/rs6000.c (output_profile_hook): Don't generate profile - label reference when NO_PROFILE_COUNTERS. - -2002-07-26 Jason Merrill - - * function.c (assign_parms): Handle frontend-directed pass by - invisible reference. - -2002-07-26 Neil Booth - - * doc/cppopts.texi: Update. - -2002-07-26 Neil Booth - - * cppmacro.c (_cpp_create_definition): Don't attempt redefinition - warnings on assertions. - -2002-07-26 Neil Booth - - * c-common.h (RID_AND, RID_AND_EQ, RID_NOT, RID_NOT_EQ, - RID_OR, RID_OR_EQ, RID_XOR, RID_XOR_EQ, RID_BITAND, RID_BITOR, - RID_COMPL): Remove. - * c-parse.in (rid_to_yy): Similarly. - -2002-07-26 Jason Merrill - - * c-dump.c: Resurrect. - * tree-dump.c: Move C-specific stuff to c-dump.c. - * c-common.h: Declare c_dump_tree. - * c-lang.c (LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN): Define. - * Makefile.in (C_AND_OBJC_OBJS): Add c-dump.o. - (c-dump.o): New rule. - -2002-07-26 Alan Modra - - * config/rs6000/rs6000.md: Enable patterns using rlwinm for - PowerPC64. Replace "T" and "S" constraints with "n" when the - predicate will do. Formatting fixes. - (extzvsi_internal2): Use "andi.", "andis." and attr type of "compare" - as for extzvsi_internal1. - -2002-07-25 Neil Booth - - * dwarfout.c (VERSION_ASM_OP, DERIV_BEGIN_LABEL_FMT, - DERIV_END_LABEL_FMT): Remove. - (SL_BEGIN_LABEL_FMT, SL_END_LABEL_FMT): Move. - -2002-07-25 Neil Booth - - * objc/objc-act.c (UTAG_STATICS, UTAG_PROTOCOL_LIST, USERTYPE): - Remove. - -2002-07-25 Stan Shebs - - * config/rs6000/rs6000.c (rs6000_emit_prologue): Remove unused - local var dwarfp. - (output_compiler_stub): Remove unused locals. - (output_call): Always initialize line number. - -Thu Jul 25 20:34:50 2002 J"orn Rennecke - - * sh.h (LOAD_EXTEND_OP): QImode zero-extends on SHmedia. - * sh.md (truncdiqi2, movqi_media): Likewise. - -2002-07-25 Neil Booth - - * gcse.c (obstack_chunk_alloc): Remove. - (gcse_alloc): Fix to count allocated bytes. - * collect2.c (SYMBOL__MAIN): Remove. - -2002-07-25 Neil Booth - - * gcc.c (TARGET_EXECUTABLE_SUFFIX): Only used if - HAVE_TARGET_EXECUTABLE_SUFFIX. - -Thu Jul 25 18:57:50 2002 J"orn Rennecke - - * rtl.h (mem_attrs): Spell out more clearly the roles of ALIGN, - SIZE, EXPR and OFFSET. - -2002-07-25 Richard Henderson - - * emit-rtl.c (set_mem_attributes): Fix size and alignment thinkos - in ARRAY_REF of DECL_P case. - -2002-07-25 Richard Sandiford - - * doc/invoke.texi: Document -mabi=meabi, and expand on the EABI - description. Document -mips32, -mips64, and the associated -march - values. Describe the "mipsN" arguments to -march. Say that the - -mipsN options are equivalent to -march. Reword the description - of default type sizes. - * toplev.h (target_flags_explicit): Declare. - * toplev.c (target_flags_explicit): New var. - (set_target_switch): Update target_flags_explicit. - * config/mips/abi64.h (SUBTARGET_TARGET_OPTIONS): Undefine. - * config/mips/elf64.h (MIPS_ISA_DEFAULT): Undefine. - * config/mips/iris6.h (SUBTARGET_ASM_SPEC): -mabi=64 implies -mips3. - * config/mips/isa3264.h (MIPS_ENABLE_EMBEDDED_O32): Undefine. - * config/mips/mips.h (mips_cpu_info): New struct. - (mips_cpu_string, mips_explicit_type_size_string): Remove. - (mips_cpu_info_table, mips_arch_info, mips_tune_info): Declare. - (MIPS_CPP_SET_PROCESSOR): New macro. - (TARGET_CPP_BUILTINS): Declare a macro for each supported processor. - Define _MIPS_ARCH and _MIPS_TUNE. - (MIPS_ISA_DEFAULT): Don't provide a default value. Instead... - (MIPS_CPU_STRING_DEFAULT): Set to "from-abi" if neither it nor - MIPS_ISA_DEFAULT were already defined. - (MULTILIB_DEFAULTS): Add MULTILIB_ABI_DEFAULT. - (TARGET_OPTIONS): Remove -mcpu and -mexplicit-type-size. - (ABI_NEEDS_32BIT_REGS, ABI_NEEDS_64BIT_REGS): New. - (GAS_ASM_SPEC): Remove -march, -mcpu, -mgp* and -mabi rules. - (ABI_GAS_ASM_SPEC): Remove. - (MULTILIB_ABI_DEFAULT, ASM_ABI_DEFAULT_SPEC): New macros. - (ASM_SPEC): Add -mgp32, -mgp64, -march, -mabi=eabi and -mabi=o64. - Invoke %(asm_abi_default_spec) if no ABI was specified. - (CC1_SPEC): Remove ISA -> register-size rules. - (EXTRA_SPECS): Remove abi_gas_asm_spec. Add asm_abi_default_spec. - * config/mips/mips.c (mips_arch_info, mips_tune_info): New vars. - (mips_cpu_string, mips_explicit_type_size_string): Remove. - (mips_cpu_info_table): New array. - (mips_set_architecture, mips_set_tune): New fns. - (override_options): Rework to make -mipsN equivalent to -march. - Detect more erroneous cases, including those removed from CC1_SPEC. - Don't change the ABI based on architecture, or vice versa. - Unify logic with GAS. - (mips_asm_file_start): Get architecture name from mips_arch_info. - (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p): New fns. - (mips_parse_cpu): Take the name of the option as argument. Handle - 'from-abi'. Raise an error if the option is wrong. - (mips_cpu_info_from_isa): New fn. - -2002-07-25 Richard Sandiford - - * config/mips/mips.md (tablejump_mips161): Use gen_rtx_LABEL_REF. - (tablejump_mips162): Likewise. - -Thu Jul 25 10:23:41 2002 J"orn Rennecke - - * simpify-rtx.c (simplify_subreg): Don't pass MODE_CC mode to - int_mode_for_mode. - -2002-07-25 Gabriel Dos Reis - - * c-common.c (c_sizeof_or_alignof_type): Take a third argument for - complaining. - * c-common.h (c_sizeof): Adjust definition. - (c_alignof): Likewise. - * c-tree.h (c_sizeof_nowarn): Now macro. - * c-typeck.c (c_sizeof_nowarn): Remove definition. - -2002-07-25 Neil Booth - - * c-decl.c (c_decode_option): No need to handle switches - cpplib handles. - -2002-07-24 Zack Weinberg - - * defaults.h (ASM_OUTPUT_TYPE_DIRECTIVE, ASM_OUTPUT_SIZE_DIRECTIVE, - ASM_OUTPUT_MEASURED_SIZE): New default definitions of new macros. - * doc/tm.texi: Document them. Also document SIZE_ASM_OP, - TYPE_ASM_OP, and TYPE_OPERAND_FMT. - - * config/elfos.h, config/netbsd-aout.h, config/openbsd.h, - config/alpha/elf.h, config/arm/elf.h, config/avr/avr.h, - config/cris/aout.h, config/i386/freebsd-aout.h, - config/i386/sco5.h, config/ia64/ia64.c, config/ip2k/ip2k.h, - config/m68k/m68kelf.h, config/m68k/m68kv4.h, config/m88k/m88k.h, - config/mcore/mcore-elf.h, config/mips/elf.h, config/mips/elf64.h, - config/mips/iris6.h, config/mips/linux.h, config/pa/pa-linux.h, - config/pa/pa64-hpux.h, config/rs6000/sysv4.h, - config/xtensa/elf.h, config/xtensa/linux.h: - Use the new macros. - Where possible, remove redundant definitions of SIZE_ASM_OP, - TYPE_ASM_OP, and TYPE_OPERAND_FMT. - -2002-07-24 Aldy Hernandez - - * config/rs6000/eabi.h: Define TARGET_SPE_ABI, TARGET_SPE, - TARGET_ISEL, and TARGET_FPRS. - - * doc/invoke.texi (RS/6000 and PowerPC Options): Document - -mabi=spe, -mabi=no-spe, and -misel=. - - * config/rs6000/rs6000-protos.h: Add output_isel. - Move vrsave_operation prototype here. - - * config/rs6000/rs6000.md (sminsi3): Allow pattern for TARGET_ISEL. - (smaxsi3): Same. - (uminsi3): Same. - (umaxsi3): Same. - (abssi2_nopower): Disallow when TARGET_ISEL. - (*ne0): Same. - (negsf2): Change to expand and rename old pattern to *negsf2. - (abssf2): Change to expand and rename old pattern to *abssf2. - - New expanders: fix_truncsfsi2, floatunssisf2, floatsisf2, - fixunssfsi2. - - Change patterns that check for TARGET_HARD_FLOAT or - TARGET_SOFT_FLOAT to also check TARGET_FPRS. - - * config/rs6000/rs6000.c: New globals: rs6000_spe_abi, - rs6000_isel, rs6000_fprs, rs6000_isel_string. - (rs6000_override_options): Add 8540 case to - processor_target_table. - Set rs6000_isel for the 8540. - Call rs6000_parse_isel_option. - (enable_mask_for_builtins): New. - (rs6000_parse_isel_option): New. - (rs6000_parse_abi_options): Add spe and no-spe. - (easy_fp_constant): Treat !TARGET_FPRS as soft-float. - (rs6000_legitimize_address): Check for TARGET_FPRS when checking - for TARGET_HARD_FLOAT. - Add case for SPE_VECTOR_MODE. - (rs6000_legitimize_reload_address): Handle SPE vector modes. - (rs6000_legitimate_address): Disallow PRE_INC/PRE_DEC for SPE - vector modes. - Check for TARGET_FPRS when checking for TARGET_HARD_FLOAT. - (rs6000_emit_move): Check for TARGET_FPRS. - Add cases for SPE vector modes. - (function_arg_boundary): Return 64 for SPE vector modes. - (function_arg_advance): Check for TARGET_FPRS and - Handle SPE vectors. - (function_arg): Same. - (setup_incoming_varargs): Check for TARGET_FPRS. - (rs6000_va_arg): Same. - (struct builtin_description): Un-constify mask field. Move up in - file. - (bdesc_2arg): Un-constify and add SPE builtins. - (bdesc_1arg): Same. - (bdesc_spe_predicates): New. - (bdesc_spe_evsel): New. - (rs6000_expand_unop_builtin): Add SPE 5-bit literal builtins. - (rs6000_expand_binop_builtin): Same. - (bdesc_2arg_spe): New. - (spe_expand_builtin): New. - (spe_expand_predicate_builtin): New. - (spe_expand_evsel_builtin): New. - (rs6000_expand_builtin): Call spe_expand_builtin for SPE. - (rs6000_init_builtins): Initialize SPE builtins. Call - rs6000_common_init_builtins. - (altivec_init_builtins): Move all non-altivec builtin code to... - (rs6000_common_init_builtins): ...here. New function. - (branch_positive_comparison_operator): Allow NE code for SPE. - (ccr_bit): Return correct ccr bit for SPE fp. - (print_operand): Emit crnor in 'D' case for SPE. - New case 't'. - Add SPE code for 'y' case. - (rs6000_generate_compare): Generate rtl for SPE fp. - (output_cbranch): Handle SPE hard floats. - (rs6000_emit_cmove): Handle isel. - (rs6000_emit_int_cmove): New. - (output_isel): New. - (rs6000_stack_info): Adjust stack frame so GPRs are saved in - 64-bits for SPE. - (debug_stack_info): Add SPE info. - (gen_frame_mem_offset): New. - (rs6000_emit_prologue): Save GPRs in 64-bits for SPE abi. - Change mode of frame pointer, when saving it, to Pmode. - (rs6000_emit_epilogue): Restore GPRs in 64-bits for SPE abi. - Misc cleanups and use gen_frame_mem_offset when appropriate. - - * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_PPC8540. - (TARGET_SPE_ABI): New. - (TARGET_SPE): New. - (TARGET_ISEL): New. - (TARGET_FPRS): New. - (FIXED_SCRATCH): New. - (RTX_COSTS): Add PROCESSOR_PPC8540. - (ASM_CPU_SPEC): Add case for 8540. - (TARGET_OPTIONS): Add isel= case. - (rs6000_spe_abi): New. - (rs6000_isel): New. - (rs6000_fprs): New. - (rs6000_isel_string): New. - (UNITS_PER_SPE_WORD): New. - (LOCAL_ALIGNMENT): Adjust for SPE. - (HARD_REGNO_MODE_OK): Same. - (DATA_ALIGNMENT): Same. - (MEMBER_TYPE_FORCES_BLK): New. - (FIRST_PSEUDO_REGISTER): Set to 113. - (FIXED_REGISTERS): Add SPE registers. - (reg_class): Same. - (REG_CLASS_NAMES): Same. - (REG_CLASS_CONTENTS): Same. - (REGNO_REG_CLASS): Same. - (REGISTER_NAMES): Same. - (DEBUG_REGISTER_NAMES): Same. - (ADDITIONAL_REGISTER_NAMES): Same. - (CALL_USED_REGISTERS): Same. - (CALL_REALLY_USED_REGISTERS): Same. - (SPE_ACC_REGNO): New. - (SPEFSCR_REGNO): New. - (SPE_SIMD_REGNO_P): New. - (HARD_REGNO_NREGS): Adjust for SPE. - (VECTOR_MODE_SUPPORTED_P): Same. - (REGNO_REG_CLASS): Same. - (FUNCTION_VALUE): Same. - (LIBCALL_VALUE): Same. - (LEGITIMATE_OFFSET_ADDRESS_P): Same. - (SPE_VECTOR_MODE): New. - (CONDITIONAL_REGISTER_USAGE): Disable FPRs when target does FP on - the GPRs. Set FIXED_SCRATCH fixed in SPE case. - (rs6000_stack): Add spe_gp_size, spe_padding_size, - spe_gp_save_offset. - (USE_FP_FOR_ARG_P): Check for TARGET_FPRS. - (LEGITIMATE_LO_SUM_ADDRESS_P): Same. - (SPE_CONST_OFFSET_OK): New. - (rs6000_builtins): Add SPE builtins. - - * testsuite/gcc.dg/ppc-spe.c: New. - - * config/rs6000/eabispe.h: New. - - * config/rs6000/spe.h: New. - - * config/rs600/spe.md: New. - - * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define - __SIMD__ for TARGET_SPE. - - * config.gcc: Add powerpc-*-eabispe* case. - Add spe.h to user headers for powerpc. - -2002-07-24 Chris Demetriou - - * config/mips/elf.h (STARTFILE_SPEC): Undo previous change. - * config/mips/elf64.h (STARTFILE_SPEC): Likewise. - * config/mips/isa3264.h (STARTFILE_SPEC): Likewise. - -2002-07-24 Richard Henderson - - * expr.c (expand_expr) [TRY_FINALLY_EXPR]: Use GOTO_SUBROUTINE_EXPR - form when not optimizing. - -2002-07-24 David Mosberger - - * config/ia64/ia64.c (gen_thread_pointer): Fix typo in marking - thread_pointer_rtx as unchanging. - -2002-07-24 Michael Matz - - * ra-colorize.c (INV_REG_ALLOC_ORDER): New macro. - (free_reg): Use it. - -2002-07-24 Richard Earnshaw - - * arm.md (arm_buneq, arm_bltgt): put '\' before ';' in output - pattern. - (arm_buneq_reversed, arm_bltgt_reversed): Likewise. - (movsicc, movsfcc, movdfcc): FAIL if UNEQ or LTGT. - -2002-07-24 Chris Demetriou - - * config/mips/elf.h (STARTFILE_SPEC): Never include crt0.o. - * config/mips/elf64.h (STARTFILE_SPEC): Likewise. - * config/mips/isa3264.h (STARTFILE_SPEC): Do not redefine. - -Wed Jul 24 17:59:12 CEST 2002 Jan Hubicka - - * toplev.c (rest_of_compilation): Dump loops before clobbering - the structure. - -Wed Jul 24 17:23:16 CEST 2002 Jan Hubicka - - * rtlanal.c (keep_with_call_p): Avoid overflow in fixed_regs. - -2002-07-24 Frank van der Linden - - PR optimization/7291 - * config/i386/i386.c (ix86_expand_clrstr): Fix bzero alignment - problem on x86_64. - -2002-07-24 Gabriel Dos Reis - - * pretty-print.h: Add macros from cp/error.c - -2002-07-24 Alan Modra - - * config/rs6000/rs6000-protos.h (mask_operand_wrap): Declare. - (mask64_2_operand): Declare. - (build_mask64_2_operands): Declare. - (and64_2_operand): Declare. - (extract_MB): Declare. - (extract_ME): Declare. - * config/rs6000/rs6000.c (mask64_operand): Allow all ones. Remove - CONST_DOUBLE code. - (mask_operand_wrap): New insn predicate. - (mask64_2_operand): Likewise. - (and64_2_operand): Likewise. - (build_mask64_2_operands): New function. - (extract_MB): New function. - (extract_ME): New function. - (print_operand ): Use extract_MB and extract_ME. - (print_operand ): Allow all ones. Remove CONST_DOUBLE support. - * config/rs6000/rs6000.h (EXTRA_CONSTRAINT): Add 't'. - (PREDICATE_CODES): Add and64_2_operand, mask_operand_wrap and - mask64_2_operand. Remove CONST_DOUBLE from mask64_operand. - * config/rs6000/rs6000.md (andsi3_internal3): New - (andsi3_internal3+1): Enable split for powerpc64. - (andsi3_internal3+2): New split. - (andsi3_internal4): Renamed old andsi3_internal3. - (andsi3_internal5): New. - (andsi3_internal5+1): Enable split for powerpc64. - (andsi3_internal5+2): New split. - (andsi3_internal6, andsi3_internal7, andsi3_internal8): New. - (anddi3): Handle 't' constraint. - (anddi3+1): New split. - (anddi3_internal2): Handle 't' constraint. - (anddi3_internal2+1): New split. - (anddi3_internal3): Handle 't' constraint. - (anddi3_internal3+1): New split. - -2002-07-24 Alan Modra - - * config/rs6000/rs6000.md: Remove scratch reg on insns using - addze and similar (plus (comparison r1 r2) r3) insns. Add - missing scratch reg in one case. Formatting fixes. - -2002-07-24 Neil Booth - - * cppexp.c (parse_defined): Mark macro used. - * cpphash.h (struct cpp_macro): New member "used". - (_cpp_mark_macro_used, _cpp_warn_if_unused_macro): New. - (struct cpp_reader): New member. - * cppinit.c (cpp_finish_options): Set first_unused_line. - (cpp_finish): Warn of unused macros if requested. - (OPT_TABLE): New switches. - (cpp_handle_option): Handle them. - * cpplib.c (do_undef): Warn if macro unused. - (do_ifdef, do_ifndef): Mark macro used. - * cpplib.h (struct cpp_options): New member. - * cppmacro.c (_cpp_warn_if_unused_macro): New. - (enter_macro_context): Mark macro used. - (_cpp_create_definition): Mark macro unused; warn if unused - when redefined. - * cpptrad.c (scan_out_logcial_line, push_replacement_text): - Mark macros used. - * doc/cppopts.texi: Update. - -2002-07-23 Neil Booth - - * dwarf2out.c (SECTION_ASM_OP, - ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL): Remove. - * system.h (SECTION_ASM_OP): Poison. - * tree.c (FILE_FUNCTION_PREFIX_LEN): Remove. - * config/alpha/alpha-interix.h, config/mips/linux.h - (ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL): Remove. - * config/mmix/mmix-protos.h, config/mmix/mmix.c - (mmix_asm_output_define_label_difference_symbol): Remove. - * config/mmix/mmix.h - (ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL): Remove. - * doc/tm.texi: Remove documentation. - -Tue Jul 23 21:49:24 2002 J"orn Rennecke - - * recog.c (asm_operand_ok): Allow float CONST_VECTORs for 'F'. - (constrain_operands): Likewise. - * regclass.c (record_reg_classes): Likewise. - * reload.c (find_reloads): Likewise. - * doc/md.texi: Likewise. - - * reload.c (find_reloads_toplev): Use simplify_gen_subreg. - * simplify-rtx.c (simplify_subreg): When converting to a non-int - mode, try to convert to an integer mode of matching size first. - - * simplify-rtx.x (simplify_subreg): When constructing a CONST_VECTOR - from individual subregs, check that each subreg has been generated - sucessfully. - -2002-07-23 Neil Booth - - * genautomata.c (VLA_HWINT_SHORTEN, VLA_HWINT_LAST): Remove. - * df.c (HANDLE_SUBREG, FOR_EACH_BB_IN_BITMAP_REV, - FOR_EACH_BB_IN_SBITMAP): Remove. - * gcse.c (NEVER_SET, FOLLOW_BACK_EDGES): Remove. - * haifa-sched.c (DONE_PRIORITY, MAX_PRIORITY, TAIL_PRIORITY, - LAUNCH_PRIORITY, DONE_PRIORITY_P, LOW_PRIORITY_P): Remove. - * loop.c (PREFETCH_BLOACK_IN_LOOP_MIN, - PREFETCH_LIMIT_TO_SIMULTANEOUS): Remove. - * regrename.c (REGNO_MODE_OK_FOR_BASE_P): Remove. - -2002-07-23 Gabriel Dos Reis - - * pretty-print.h: New file. - -2002-07-23 Paul Koning - - * real.c (REAL_WORDS_BIG_ENDIAN): Make 1 for DEC. - (LARGEST_EXPONENT_IS_NORMAL): Ditto. - (VAX_HALFWORD_ORDER): Define (1 for DEC VAX, 0 otherwise). - (TARGET_G_FLOAT): Default to 0 if not defined. - (ieeetoe): New, common routine to convert target format floats - to internal form. - (e24toe, e53toe): Change to use ieeetoe, distinguish DEC - vs. others. - (e113toe): Change to use ieeetoe. - -2002-07-23 Roman Lechtchinsky - - * real.c (REAL_WORDS_BIG_ENDIAN): Make sure it is 0 for DEC and 1 for - IBM. - (e53toe): Assume IEEE if non of DEC, IBM and C4X is defined. - (e64toe): Remove special cases for DEC and IBM. Remove support for - ARM_EXTENDED_IEEE_FORMAT. - (e24toe): Remove special cases for DEC. - (significand_size): Simplify. Indent. - (ieee_format, ieee_24, ieee_53, ieee_64, ieee_113): New. - (etoieee, toieee): New. - (etoe113, toe113, etoe64, toe64, etoe53, toe53, etoe24, toe24): Use - etoieee and toieee for IEEE arithmetic. - -2002-07-23 Gabriel Dos Reis - - * doc/extend.texi: Say ISO C90, not ISO C89. - * doc/invoke.texi: Likewise. - * doc/standards.texi: Likewise. - -2002-07-23 Steve Ellcey - - * gcc/explow.c (convert_memory_address): Fix conversion of CONSTs. - Fix permutation of conversion and plus/mult. - * gcc/builtins.c (expand_builtin_memcpy) Ensure return pointer is - ptr_mode and not Pmode when POINTERS_EXTEND_UNSIGNED is defined. - (expand_builtin_strncpy) Ditto. - (expand_builtin_memset) Ditto. - -2002-07-23 Gabriel Dos Reis - - Fix PR/7363: - * c-common.c (c_sizeof_or_alignof_type): New function. - (c_alignof): Remove definition. - * c-common.h (c_sizeof, c_alignof): Define as macros. - (c_sizeof_or_alignof_type): Declare. - (my_friendly_assert): Moved from cp/cp-tree.h - * c-typeck.c (c_sizeof): Remove definition. - -2002-07-23 Jan Hubicka - - * gcse.c (try_replace_reg): Use num_changes_pending. - * recog.c (num_changes_pending): New function. - (validate_replace_src): Use validate_repalce_src_group. - (validate_replace_src_group): New. - * recog.h (validate_repalce_src_group): New. - (num_changes_pending): Likewise. - -Tue Jul 23 12:16:58 2002 J"orn Rennecke - - * calls.c (emit_library_call_value_1): If - FUNCTION_ARG_PASS_BY_REFERENCE is true, pretend this is neither - libcall, const call nor pure call. - -2002-07-23 Neil Booth - - * config/m88k/m88k.h (SECTION_ASM_OP): Remove. - -2002-07-23 Neil Booth - - * vmsdbgout.c (SECTION_ASM_OP): Remove. - -2002-07-23 Neil Booth - - * config/i386/i386.c (AT_BP): Remove. - -2002-07-23 Neil Booth - - * defaults.h (obstack_chunk_alloc, obstack_chunk_free): - Default definition. - * gcse.c: Don't define obstack_chunk_free. - * collect2.c, conflict.c, df.c, diagnostic.c, fix-header.c, - flow.c, gcc.c, genattrtab.c, genautomata.c, genflags.c, gensupport.c, - integrate.c, loop.c, ra.c, read-rtl.c, regrename.c, reload1.c, - reorg.c, tlink.c, tree.c, config/arm/arm.c, objc/objc-act.c: - Don't define obstack macros. - -2002-07-22 Stephane Carrez - - PR target/6744 - * config/m68hc11/m68hc11.c (m68hc11_z_replacement): Also replace - ASM_OPERANDS instructions. - -2002-07-22 Stephane Carrez - - PR target/7361 - * config/m68hc11/m68hc11.c (go_if_legitimate_address_internal): Accept - constant addresses only on 68HC12. - -2002-07-22 Neil Booth - - * cppfiles.c (stack_include_file): Correct test of whether - a dependency should be output. - -2002-07-22 David Edelsohn - - * collect2.c (is_ctor_dtor): Add other possible JOINER values. - -2002-07-22 Richard Earnshaw - - * arm.md (movqi): If optimizing and we can create pseudos, use - a ZERO_EXTEND to load from memory, then copy the result into the - target. - (movhi): Likewise, but only for ARMv4. - -2002-07-22 Neil Booth - - * ssa-ccp.c (PHI_PARMS): Remove. - -2002-07-22 Richard Sandiford - - * config/mips/mips.h (CLASS_CANNOT_CHANGE_MODE): Include FP_REGS - on big-endian targets. - -2002-07-22 Kaveh R. Ghazi - - * hwint.h (HOST_WIDE_INT_PRINT_DEC_SPACE, - HOST_WIDE_INT_PRINT_UNSIGNED_SPACE, - HOST_WIDEST_INT_PRINT_DEC_SPACE, HOST_WIDEST_INT_PRINT_DEC_SPACE): - New formatting macros. - - * ra-debug.c (dump_static_insn_cost): Avoid string concatenation. - -Mon Jul 22 15:27:25 2002 J"orn Rennecke - - * rtlanal.c (subreg_regno_offset): Return correct offset for - big endian paradoxical subregs. - - * optabs.c (expand_vector_unop): Don't expand using sub_optab - if we got the wrong mode. - - * hwint.c (define HOST_WIDE_INT_PRINT_DEC_C): New define. - * genrecog.c (write_switch, write_cond): Use it. - * genemit.c (gen_exp): Likewise. - -2002-07-22 Jakub Jelinek - - * c-decl.c (build_compound_literal): Set decl TREE_READONLY from TYPE. - -2002-07-22 Jakub Jelinek - - * c-decl.c (build_compound_literal): Defer compound literal decls - until until file end to emit them only if they are actually used. - -2002-07-21 Kaveh R. Ghazi - - * ra-build.c (check_conflict_numbers): Hide unused function. - (livethrough_conflicts_bb): Avoid automatic aggregate - initialization. - (parts_to_webs_1): Avoid `U' integer constant modifier. - (conflicts_between_webs): Wrap a variable in the macro controlling - its usage. - * ra-debug.c (ra_debug_msg): Use VA_OPEN/VA_CLOSE. - (dump_igraph, dump_graph_cost): Avoid string concatenation - (dump_static_insn_cost): Avoid automatic aggregate - initialization. - * ra-rewrite.c (insert_stores): Avoid automatic aggregate - initialization. - (dump_cost): Avoid string concatenation - -2002-07-21 Richard Henderson - - * expr.c (expand_expr) [TRY_FINALLY_EXPR]: Don't use - GOTO_SUBROUTINE_EXPR when finally_block can be re-expanded. - -2002-07-21 Richard Henderson - - * unroll.c (find_splittable_givs): Do not split DEST_ADDR givs - that are not unrolled completely. - -2002-07-21 Richard Henderson - - * loop.h (LOOP_AUTO_UNROLL): Rename from LOOP_FIRST_PASS. - * loop.c (strength_reduce): Update. - * toplev.c (rest_of_compilation): Do unrolling in the first - loop pass, not the second. - -2002-07-21 Richard Henderson - - * emit-rtl.c (set_mem_attributes): Preserve indirection of PARM_DECL - when flag_argument_noalias == 2. - * alias.c (nonoverlapping_memrefs_p): Handle that. - * print-rtl.c (print_mem_expr): Likewise. - -2002-07-21 Hartmut Schirmer - - * libgcc2.c (__divdi3, __moddi3): Use unary minus operator - instead of __negdi2 directly. - -2002-07-21 Neil Booth - - * gengenrtl.c (gencode): Don't define obstack_alloc_rtx. - * function.c (SYMBOL__MAIN): Remove definition. - * global.c (SET_CONFLICT, REGBITP, ALLOCNO_LIVE_P): Remove. - * predict.c (PROB_NEVER, PROB_LIKELY, PROB_UNLIKELY): Remove. - * profile.c (GCOV_INDEX_TO_BB): Remove. - * sched-rgn.c (ABS_VALUE, MIN_DIFF_PRIORITY, MIN_PROB_DIFF): Remove. - * simplify-rtx.c (FIXED_BASE_PLUS_P): Remove. - -2002-07-21 Neil Booth - - * c-lex.c (GET_ENVIRONMENT): Remove. - * collect2.c (GET_ENV_PATH_LIST): Remove. - (prefix_from_env): Use GET_ENVIRONMENT. - * cppinit.c (GET_ENV_PATH_LIST): Remove. - (init_standard_includes): Use GET_ENVIRONMENT. - * defaults.h (GET_ENVIRONMENT): Define here if not already. - * gcc.c (GET_ENV_PATH_LIST): Remove. - (make_relative_prefix, process_command): Update. - * protoize.c (GET_ENV_PATH_LIST): Remove. - (do_processing): Update. - -2002-07-21 Gabriel Dos Reis - - * c-decl.c (build_array_declarator): Say 'ISO C90', not 'ISO C89'. - (grokdeclarator): Likewise. - * c-format.c (C_STD_NAME): Likewise. - * c-lex.c (interpret_integer): Likewise. - * c-typeck.c (build_array_ref): Likewise. - * cpplex.c (_cpp_lex_direct): Likewise. - * toplev.c (documented_lang_options): Likewise. - -2002-07-21 Neil Booth - - * c-format.c (T99_I, T99_UI): Remove. - -2002-07-21 Neil Booth - - * c-typeck.c (SAVE_SPELLING_DEPTH): Remove. - -Sun Jul 21 21:36:41 CEST 2002 Jan Hubicka - - * gcse.c (do_local_cprop): Do not extend lifetimes of registers set by - do_local_cprop. - -2002-07-21 Andreas Jaeger - - * reload1.c (fixup_abnormal_edges): Remove unused variable. - -2002-07-21 Bernd Schmidt - - Improvements for the ifcvt pass from Michael Meissner, with patches - by Richard Sandiford - * basic-block.h (struct ce_if_block, ce_if_block_t): New types. - * ifcvt.c (cond_exec_changed_p): New static variable. - (last_active_insn): New function, renamed from last_active_insn_p - and changed to return the last active insn in a basic block. All - callers updated. - (block_fallthru): New function. - (cond_exec_process_insns): New argument CE_INFO. Pass it to - IFCVT_MODIFY_INSN. All callers updated. - Return false if START or END are NULL. - Handle case where we're processing an insn that is already - conditional. - - (noce_process_if_block): CE_INFO argument rather than - multiple args containing the involved basic blocks. All callers - changed. - (process_if_block, merge_if_block, find_if_block, - cond_exec_process_if_block): Likewise. - - (cond_exec_process_if_block): New arg DO_MULTIPLE_P. All callers - changed. - Use new function last_active_insn to simplify some code. - New code to handle multiple tests. - Call IFCVT_MODIFY_CANCEL in all failure cases, otherwise set - cond_exec_changed_p to TRUE. - - (process_if_block): New code to handle multiple tests. - (merge_if_block): Likewise. - (find_if_header): New arg PASS. Changed to return the currently - processed basic block or NULL instead of true/false. All callers - changed. - Call IFCVT_INIT_EXTRA_FIELDS. - (block_jumps_and_fallthru_p): New function. - (find_if_block): Discover opportunities to convert multiple tests. - Add additional debugging output. - Update the ce_info structure before returning. - - (if_convert): Run multiple passes of if-conversion. - * doc/tm.texi (IFCVT_MODIFY_TESTS, IFCVT_MODIFY_INSN, - IFCVT_MODIFY_FINAL, IFCVT_MODIFY_CANCEL, IFCVT_MODIFY_MULTIPLE_TESTS, - IFCVT_INIT_EXTRA_FIELDS, IFCVT_EXTRA_FIELDS): Update documentation for - these macros. - -Sun Jul 21 00:54:54 CEST 2002 Jan Hubicka - - * gcse.c: Include cselib.h - (constptop_register): Break out from ... - (cprop_insn): ... here; kill basic_block argument. - (do_local_cprop, local_cprop_pass): New functions. - (one_cprop_pass): Call local_cprop_pass. - -2002-07-20 Roger Sayle - - * simplify-rtx.c (simplify_relational_operation): Optimize - abs(x) < 0.0 (and abs(x) >= 0.0 when using -ffast-math). - -2002-07-20 Michae Matz - - * ra-build.c: (remember_web_was_spilled): Use GENERAL_REGS. - -2002-07-20 Neil Booth - - * cppexp.c (struct op): Add token pointer. - (check_promotion, CHECK_PROMOTION): New. - (optab): Update. - (_cpp_parse_expr): Update, use token pointer of struct op. - (reduce): Warn about change of sign owing to promotion. - * cppinit.c (cpp_handle_option): New warning if -Wall. - * cpplib.h (struct cpp_options): New member. - -2002-07-19 David Edelsohn - - * config/rs6000/rs6000.md: Remove ppc630 fpcompare from single - fpu list. Separate Power4 compare and delayed_compare. Correct - Power4 fpcompare. - (fix_truncdfsi2_internal): Restore FPR preference. - * config/rs6000/t-aix43 (MULTILIB_MATCHES): Add mcpu?power3, - mcpu?power4, mcpu?604e. Remove mpower, mpower2, mpowerpc. - -2002-07-19 Momchil Velikov - - * reload1.c (reload_as_needed): Duplicate oldpat. - -2002-07-20 Alan Modra - - PR optimization/7130 - * loop.h (struct loop_info): Add "preconditioned". - * unroll.c (unroll_loop): Set it. - * doloop.c (doloop_modify_runtime): Correct count for unrolled loops. - -2002-07-19 Zack Weinberg - - * rtl.def (CODE_LABEL): Remove slot 8. - * rtl.h (struct rtx_def): Document new uses of jump and call fields. - (LABEL_ALTERNATE_NAME): Delete. - (LABEL_KIND, SET_LABEL_KIND, LABEL_ALT_ENTRY_P): New. - * defaults.h: Remove default for ASM_OUTPUT_ALTERNATE_LABEL_NAME. - - * final.c (output_alternate_entry_point): New. - (final_scan_insn): Use it instead of - ASM_OUTPUT_ALTERNATE_LABEL_NAME. Do not consider possibility - of a case label being an alternate entry point. - - * cfgbuild.c (make_edges, find_bb_boundaries): Use LABEL_ALT_ENTRY_P. - * emit-rtl.c (gen_label_rtx): Adjust call to gen_rtx_CODE_LABEL. - Do not clear LABEL_NUSES (unnecessary) or LABEL_ALTERNATE_NAME - (field deleted). - * print-rtl.c, ra-debug.c: Update code to output CODE_LABELs. - - * doc/rtl.texi: Document LABEL_KIND, SET_LABEL_KIND, and - LABEL_ALT_ENTRY_P; not LABEL_ALTERNATE_NAME. - * doc/tm.texi: Delete documentation of - ASM_OUTPUT_ALTERNATE_LABEL_NAME. - -2002-07-19 Rainer Orth - - * config/mips/iris5gas.h (DWARF2_DEBUGGING_INFO): Define. - (PREFERRED_DEBUGGING_TYPE): Use DWARF2_DEBUG. - (LINK_SPEC): Define. - (STARTFILE_SPEC): Define. - (ENDFILE_SPEC): Define. - - * config/mips/iris6-o32.h (LINK_SPEC): Move ... - * config/mips/iris6-o32-as.h (LINK_SPEC): ... here. - - * config/mips/iris6-o32-gas.h: New file. - * config.gcc (mips-sgi-irix6*o32): Use it. - - * config/mips/t-iris5-gas: New file. - * config.gcc (mips-sgi-irix6*o32, mips-sgi-irix5*): Use it. - -2002-07-19 Neil Booth - - * cppexp.c (ALWAYS_EVAL): Remove. - (optab, reduce): Always evaluate. - (num_unary_op, num_binary_op, num_div_op): Issue diagnostics - only if not skipping evaluation. - -2002-07-19 Marek Michalkiewicz - - * config/avr/avr.c (debug_hard_reg_set): Remove. - -2002-07-19 Chris Demetriou - - * gcc.c (cpp_options): Include "%1" (cc1_spec). - -2002-07-19 Richard Henderson - - * loop.c (loop_givs_rescan): Delete the REG_EQUAL note, not the insn. - -2002-07-19 Alan Modra - - * prefix.c (update_path): Don't zap single `.' path components - unless followed by another `.' and fix typo last patch. - -2002-07-18 Neil Booth - - * cppexp.c (cpp_num_mul): Remove unused parameter. - (UNARY, BINARY, OTHER, binary_handler): Remove. - (ALWAYS_EVAL): New. - (optab): Update. - (reduce): Refactor to a large switch, don't use a function - pointer. - -2002-07-18 Bo Thorsen - - * config/i386/linux64.h (STARTFILE_PREFIX_SPEC): Define this always. - -Thu Jul 18 19:39:18 2002 J"orn Rennecke - - * sh-protos.h (sh_expand_unop_v2sf): Move inside #ifdef RTX_CODE guard. - (sh_expand_binop_v2sf): Likewise. - * sh.c (machine_dependent_reorg): Add move for UNSPEC_MOVA. - (int_gpr_dest, trunc_hi_operand): New functions. - * sh.h (PREDICATE_CODES): Add any_register_operand, int_gpr_dest and - trunc_hi_operand. - (SPECIAL_MODE_PREDICATES, any_register_operand): Define. - * sh.md (cmpeqdi_t+1): Remove comments that genrecog warns about. - (adddi3_compact+1, subdi3_compact+1, ashlsi3_n+1, ashlhi3+1): Likewise. - (ashrsi2_16+1, ashrsi2_31+1, lshrsi3_n+1, ashrdi3+[12]): Likewise. - (and_shl_scratch+[12], zero_extendhidi2+1): Likewise. - (zero_extendhisi2_media+1, extendhidi2+1, extendqidi2+1): Likewise. - (extendhisi2_media+1, extendqisi2_media+1): Likewise. - (movsi_media_nofpu+[12], movhi_media+1, movdi_media_nofpu+1): Likewise. - (movdi_const_16bit+[12], movdf_i4+[123], reload_outdf+[2-5]): Likewise. - (movsf_ie+1): Likewise. - (loaddi_trunc): Use int_gpr_dest predicate. - (use_sfunc_addr, indirect_jump_scratch, sibcall_compact): Add mode(s). - (mova, mova_const, GOTaddr2picreg, ptrel, casesi_worker_0): Likewise. - (casesi_worker_0+[12], casesi_worker): Likewise. - (shcompact_preserve_incoming_args): Likewise. - (mov_nop): Use any_register_operand predicate. - (mperm_w0): Use trunc_hi_operand predicate. - -2002-07-18 John David Anglin - - * pa-linux.h (DWARF2_UNWIND_INFO): Delete define. - * pa.h (EH_RETURN_DATA_REGNO): Revise TARGET_64BIT and correct - numbering. - -2002-07-18 John David Anglin - - * pa.c (output_deferred_plabels): Remove unused millicode enum mulU. - -2002-07-18 Richard Henderson - - PR optimization/7147 - * ifcvt.c (noce_get_condition): Make certain that the condition - is valid at JUMP. - -Thu Jul 18 13:44:51 2002 J"orn Rennecke - - * sh.c (barrier_align, push): Shut up compiler warnings. - (initial_elimination_offset,sh_media_init_builtins): Likewise. - (reg_no_subreg_operand): Delete. - -2002-07-17 Bo Thorsen - - * config/i386/linux64.h (LINK_SPEC): Remove bogus -Y option. - (STARTFILE_PREFIX_SPEC): Define for NATIVE_CROSS compilations. - (STARTFILE_SPEC): Remove hardcoded library paths. - (ENDFILE_SPEC): Likewise. - -Thu Jul 18 09:38:59 CEST 2002 Jan Hubicka - - * gcse.c (hoist_expr_reaches_here_p): Stop once expr_bb is reached. - - * gcse.c (try_replace_reg): Do not return false positives. - -2002-07-18 Alan Modra - - * prefix.c: (update_path): Strip ".." components when prior dir - doesn't exist. Pass correct var to UPDATE_PATH_HOST_CANONICALIZE. - - * config/rs6000/sysv4.h (ASM_OUTPUT_REG_PUSH): Remove 64-bit support. - (ASM_OUTPUT_REG_POP): Likewise. - -2002-07-18 Alan Modra - - * config/rs6000/rs6000.c (first_reg_to_save): Remove bogus - adjustments to first_reg for profiling case. - (output_function_profiler): Correct lr save slot for ABI_AIX_NODESC. - Disable profiling for 64 bit code on both ABI_V4 and ABI_AIX_NODESC. - Save static chain reg to sp + 12 on ABI_AIX_NODESC. - * config/rs6000/sysv4.h (ASM_OUTPUT_REG_PUSH): Define. - (ASM_OUTPUT_REG_POP): Define. - * config/rs6000/linux64.h (ASM_OUTPUT_REG_PUSH): Undef. - (ASM_OUTPUT_REG_POP): Undef. - -2002-07-17 Neil Booth - - * cpplib.c (do_sccs): Handle #sccs on all systems. - * system.h (SCCS_DIRECTIVE): Poison. - * config/darwin.h, config/freebsd.h, config/netbsd.h, - config/ptx4.h, config/svr3.h, config/svr4.h, config/alpha/elf.h, - config/arm/linux-elf.h, config/c4x/c4x.h, config/d30v/d30v.h, - config/i370/i370.h, config/i386/gas.h, config/i386/sco5.h, - config/i960/i960.h, config/m68hc11/m68hc11.h, config/m68k/3b1.h, - config/m68k/3b1g.h, config/m68k/crds.h, config/m68k/mot3300.h, - config/m68k/pbb.h, config/m88k/m88k.h, config/mips/mips.h, - config/sparc/pbd.h, config/stormy16/stormy16.h, config/vax/vaxv.h: - Remove all references to SCCS_DIRECTIVE. - * doc/cpp.texi, doc/tm.texi: Update. - -Wed Jul 17 19:23:32 2002 J"orn Rennecke - - * regrename.c (maybe_mode_change): New function. - (find_oldest_value_reg, copyprop_hardreg_forward_1): Use it. - -2002-07-17 Rodney Brown - - * config/i386/i386.c (ix86_expand_int_movcc): In the general case - suppress addition when either ct or cf are zero. - -2002-07-17 Eric Botcazou - Glen Nakamura - - PR optimization/6713 - * loop.c (loop_givs_rescan): Explicitly delete the insn that - sets a non-replaceable giv after issuing the new one. - -2002-07-17 Neil Booth - - * cppexp.c (cpp_interpret_integer, append_digit, parse_defined, - eval_token): Clarify and correct use of "bool" variables. - * cpplib.h (struct cpp_options): Similarly. - * cppmacro.c (parse_params, _cpp_save_parameter): Ditto. - * cpptrad.c (recursive_macro): Similarly. - -Wed Jul 17 17:08:06 2002 J"orn Rennecke - - * config/sh/lib1funcs.asm (udivsi3_i4): Implement SHcompact version in - SHmedia code. - - * sh.md (cmpgtudi_media): Remove spurious @. - - * config/sh/lib1funcs.asm (FMOVD_WORKS): Don't define for little endian. - * sh.h (OVERRIDE_OPTIONS): Don't set FMOVD_BIT for little endian. - - * config/sh/lib1funcs.asm (init_trampoline): New entry point. - * sh-protos.h (sh_initialize_trampoline): Declare. - * sh.c (sh_initialize_trampoline): New function. - * sh.h (TRAMPOLINE_SIZE): Only 24 for TARGET_SHMEDIA32. - (TRAMPOLINE_ALIGNMENT): Need cache-line alignment for TARGET_SHMEDIA. - (INITIALIZE_TRAMPOLINE): Call sh_initialize_trampoline. - (TRAMPOLINE_ADJUST_ADDRESS): Not needed for SHcompact. - * sh.md (initialize_trampoline, double_shori): New patterns. - (initialize_trampoline_compact): Likewise. - (shmedia32_initialize_trampoline_big): Remove. - (shmedia32_initialize_trampoline_little): Likewise. - - * sh-protos.h (binary_float_operator): Remove declaration. - (sh_expand_unop_v2sf, sh_expand_binop_v2sf): Declare. - * sh.c (print_operand, case 'N'): Check against CONST0_RTX. - (unary_float_operator, sh_expand_unop_v2sf): New functions. - (sh_expand_binop_v2sf): Likewise. - (zero_vec_operand): Delete. - (SH_BLTIN_UDI): New builtin shared signature define. Renumbered - all non-shared ones. - (bdesc): Change all the mextr builtins to use SH_BLTIN_UDI. - Enable nsb and byterev. - * sh.h (CONDITIONAL_REGISTER_USAGE): Initialize DF_HI_REGS. - (HARD_REGNO_MODE_OK): Allow TImode in fp regs. Allow V2SFmode - in general regs. - (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Add DF_HI_REGS. - (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise. Remove clause for - immediate operands. - (SECONDARY_INPUT_RELOAD_CLASS): Add clause for immediate operands. - Add DF_HI_REGS. - (CLASS_CANNOT_CHANGE_MODE, CLASS_CANNOT_CHANGE_MODE_P): Allow - lowpart fp regs - only for big endian for now. - (LEGITIMATE_CONSTANT_P): Don't allow nonzero float vectors - when FPU is in use. - (EXTRA_CONTRAINT_U): Check against CONST0_RTX. - (LOAD_EXTEND_OP): NIL for SImode. - (REGISTER_MOVE_COST): Add DF_HI_REGS. Const for moves between - general and fp registers is 4. - PREDICATE_CODES: Amend binary_float_operator entry. - Remove zero_vec_operand. Add unary_float_operator. - * sh.md (udivsi3_i4_media): Use truncate instead of paradoxical - subreg SET_DEST. - (truncdisi2, truncdihi2, movv2sf): Allow memory destinations. - (truncdiqi2): Do sign extension. - (movsi_media, movdi_media): Allow to use r63 to an fp register. - (movdf_media, movsf_media): Likewise. - (movv2sf_i, movv2sf_i+1): Don't use f{ld,st}.p or SUBREGS. - Collapse to one define_insn_and_split. Allow immediate sources. - (addv2sf3, subv2sf3, mulv2sf3, divv2sf3): New patterns. - (movv4sf_i): Allow immediate sources. Use simplify_gen_subreg. - (movv4sf): Allow immediate sources. - (movsf_media_nofpu+1): Don't split moves to FP registers. - (unary_sf_op, binary_sf_op, mshflo_w_x, concat_v2sf): New patterns. - (movv8qi_i+3): Check against CONST0_RTX. - (mextr1, mextr2. mextr3. mextr4, mextr5, mextr6, mextr7): Use DImode - for input and output operands. Fix argument 3 to gen_mextr_rl. - (mmul23_wl, mmul01_wl, mmulsum_wq_i): s/const_vector/parallel/ - (msad_ubq_i, mshf4_b, mshf0_b, mshf4_l, mshf0_l, mshf4_w): Likewise. - (mshf0_w, fipr, ftrv): Likewise. - (mshfhi_l_di): Now insn_and_split. Can handle FP regs. - -2002-07-17 Jeroen Dobbelaere - - * arm.h (ARM_NUM_INTS, ARM_NUM_REGS, ARM_NUM_REGS2): Renamed from - NUM_INTS, NUM_REGS and ARM_NUM_REGS2 respectively. All uses changed. - * arm.c: Similarly. - -2002-07-17 Richard Sandiford - - * config/mips/mips-protos.h (mips_sign_extend): Declare. - * config/mips/mips.h (MASK_DEBUG_H, TARGET_DEBUG_H_MODE): Remove. - (TARGET_SWITCHES): Remove debugh. - (ISA_HAS_TRUNC_W): New macro. - (CLASS_CANNOT_CHANGE_MODE): Include FP_REGS if TARGET_FLOAT64. - (PREDICATE_CODES): Remove se_nonimmediate_operand. - * config/mips/mips.c (movdi_operand): Allow sign-extensions of - any SImode move_operand. - (se_nonimmediate_operand): Remove. - (mips_sign_extend): New. - (mips_move_2words): Use it for sign-extended source operands. - (override_options): Allow integers to be put into single FPRs. - (mips_secondary_reload_class): Handle integers in float registers. - * config/mips/mips.md (extendsidi2): Turn into a define_expand. - (fix_truncsfsi2, fix_truncdfsi2): Likewise. - (fix_truncdfsi2_insn, fix_truncdfsi2_macro): New. - (fix_truncsfsi2_insn, fix_truncsfsi2_macro): New. - (fix_truncdfdi2): Provide only a single alternative, in which the - integer is in a float register. Depend on TARGET_FLOAT64 rather - than TARGET_64BIT. - (fix_truncsfdi2, floatdidf2, floatdisf2): Likewise. - (floatsidf2, floatsisf2): Likewise, but no TARGET_FLOAT64 dependency. - (movdi_internal2): Don't allow the source operand to be sign-extended. - Add alternatives for float registers. - (*movdi_internal2_extend): New. Version of movdi_internal2 that - allows sign-extension. - (*movdi_internal2_mips16): Name the existing mips16 movdi pattern. - (movsi_internal2): Rename to movsi_internal. Add alternatives for - float registers. Remove TARGET_DEBUG_H_MODE test. - (movhi_internal1): Rename to movhi_internal. Don't check - TARGET_DEBUG_H_MODE. Fix transposed *d and *f source constraints. - (movqi_internal1): Rename to movqi_internal and remove - TARGET_DEBUG_H_MODE dependency. - (movsi_internal1, movhi_internal2, movqi_internal2): Remove. - -2002-07-16 Jim Wilson - - * toplev.c (lang_dependent_init): Create function context for - init_expr_once. - -2002-07-16 Hans-Peter Nilsson - - * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Don't - --gc-sections if -r. - * config/cris/cris.h: Ditto. - -2002-07-16 Rodney Brown - - * config/i386/i386.c (ix86_expand_int_movcc): In the case where - the comparison directly gives a mask suppress addition when cf is - zero by complementing the mask. - -2002-07-16 Nathanael Nerode - - * Makefile.in: Delete references to enquire. - * enquire.c: Move to contrib. - -2002-07-16 Stan Shebs - - * config/darwin.h (ASM_OUTPUT_LABEL): Move to here from - config/rs6000/darwin.h. - (ASM_OUTPUT_SKIP): Ditto. - (TEXT_SECTION_ASM_OP): Ditto. - (DATA_SECTION_ASM_OP): Ditto. - (ASM_APP_ON): Define. - (ASM_APP_OFF): Define. - * config/rs6000/darwin.h (ASM_OUTPUT_LABEL, ASM_OUTPUT_SKIP, - TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): Remove. - - * config/darwin.c (func_name_maybe_scoped): Remove unused decl. - (machopic_function_base_name): Declare result to be const. - (machopic_non_lazy_ptr_name): Ditto. - (machopic_stub_name): Ditto. - * config/darwin-protos.h: Ditto for the prototypes. - -Wed Jul 17 00:22:39 CEST 2002 Jan Hubicka - - * m68hc11.c (m68hc11_reorg): Do not rebuild CFG. - -Wed Jul 17 00:20:48 CEST 2002 Jan Hubicka - - * i386.md (prefetch): Fix for 64bit mode. - (prefetch_sse_rex, prefetch_3dnow_rex): New patterns. - -Wed Jul 17 00:19:20 CEST 2002 Jan Hubicka - - * i386.h (MACHINE_DEPENDENT_REORG): New macro. - * i386.c (x86_machine_dependent_reorg): New function. - * i386-protos.h (x86_machine_dependent_reorg): Declare. - -2002-07-16 Zack Weinberg - - * builtins.c (std_expand_builtin_va_start): Remove unused - first argument. - (expand_builtin_va_start): Call EXPAND_BUILTIN_VA_START and - std_expand_builtin_va_start with just two arguments. - * expr.h: Update prototypes. - - * alpha-protos.h, alpha.h, alpha.c, arc-protos.h, arc.h, - arc.c, d30v-protos.h, d30v.h, d30v.c, i386-protos.h, i386.h, - i386.c, i960-protos.h, i960.h, i960.c, m88k-protos.h, m88k.h, - m88k.c, mips-protos.h, mips.h, mips.c, mn10300-protos.h, - mn10300.h, mn10300.c, pa-protos.h, pa.h, pa.c, - rs6000-protos.h, rs6000.h, rs6000.c, s390-protos.h, s390.h, - s390.c, sh-protos.h, sh.h, sh.c, sparc-protos.h, sparc.h, - sparc.c, stormy16-protos.h, stormy16.h, stormy16.c, - xtensa-protos.h, xtensa.h, xtensa.c: Remove unused first - argument from all implementations of EXPAND_BUILTIN_VA_START - and all uses of std_expand_builtin_va_start. - -Tue Jul 16 19:32:58 2002 J"orn Rennecke - - * regrename.c (copy_value): Don't record high part copies. - -2002-07-16 Steve Ellcey - - * gcc/config/pa/long_double.h (FIXUNS_TRUNCTFDI2_LIBCALL): New define. - (fixunstfdi_libfunc): Change to use FIXUNS_TRUNCTFDI2_LIBCALL. - * gcc/config/pa/quadlib.c (_U_Qfcnvfxt_quad_to_udbl): New function. - -2002-07-16 Ian Dall - - * doc/invoke.texi (NS32K Options): Document -mieee-compare option - - * config/ns32k/ns32k.md (addsi3, *frame_addr, *stack_addr): merge - into addsi3 using register class "x" and "y". - - * config/ns32k/ns32k.md (*madddf, *maddsf, *msubdf, *msubsf): - "earlyclobber" constraint modifier for some alternative. - - * config/ns32k/ns32k.md (tstdf, tstsf, cmpdf, cmpsf, blt, ble) - (*ble, *blt): Flag to indicate bCOND and sCOND should check for - unordered. - config/ns32k/ns32k.h (CC_UNORD): define corresponding mask. - - * config/ns32k/ns32k.h (TARGET_IEEE_COMPARE, MASK_IEEE_COMPARE) - (TARGET_SWITCHES): Add -mieee-compare option. - (OVERRIDE_OPTIONS): 32332 is a subset of - 32532. Don't use IEEE_COMPARE -funsafe-math-optimizations. - (TARGET_SWITCHES): Fix description of bitfield option. - * config/ns32k/netbsd.h (TARGET_DEFAULT): Add - -mieee-compare option. Remove 32332 flag. - -2002-07-16 Steve Ellcey - - * explow.c (convert_memory_address): Remove special handling - when POINTERS_EXTEND_UNSIGNED < 0. - * config/ia64.md (movsi_symbolic): New instruction for ILP32 mode. - (movedi_symbolic): Fix typo. - (load_fptr): Remove mode restriction so it works for SI and DI. - (load_fptr_internal1): Ditto. - (load_gprel): Ditto. - (load_symptr_internal1): Ditto. - (call_pic): Ditto. - * config/ia64.c (call_operand): Modify mode check. - (ia64_expand_load_address): Handle DI and SI addresses and symbols. - (ia64_expand_move): Ditto. - (ia64_assemble_integer): Handle SImode function pointers. - (ia64_expand_fetch_and_op): Handle SImode mem addresses. - (ia64_expand_op_and_fetch): Ditto. - (ia64_expand_compare_and_swap): Ditto. - (ia64_expand_lock_test_and_set): Ditto. - (ia64_expand_lock_release): Ditto. - -2002-07-16 Jeroen Dobbelaere - - * arm.c (emit_sfm): Don't set RTX_FRAME_RELATED_P on DWARF. - -2002-07-16 Jeroen Dobbelaere - Richard Earnshaw - - * arm.h (LEGITIMATE_PIC_OPERAND_P): Only test - CONSTANT_POOL_ADDRESS_P if a SYMBOL_REF. Simplify logic. - -2002-07-16 Richard Earnshaw - - * arm.md (stack_tie): New insn. Use an idiom that the alias code - understands to be a memory clobber. - * arm.c (arm_expand_prologue): Use it. - -2002-07-16 Daniel Berlin - - * ra-rewrite.c: #include reload.h, insn-config.h - * ra-build.c: #include reload.h - * Makefile.in: Update ra-rewrite.o, ra-build.o dependencies to - depend on reload.h, insn-config.h. - -Tue Jul 16 11:57:45 2002 J"orn Rennecke - - * expr.c (emit_move_insn_1): Handle arbitrary moves that are - the same size as a word. - - * regrename.c (find_oldest_value_reg): Take WORDS_BIG_ENDIAN / - BYTES_BIG_ENDIAN into account. - -Tue Jul 16 12:22:44 CEST 2002 Jan Hubicka - - * i386.md (prefetch): Fix for 64bit mode. - (prefetch_sse_rex, prefetch_3dnow_rex): New patterns. - - * i386.md (movss, movsd): Use xorps/xorpd for Athlon. - -2002-07-16 Marek Michalkiewicz - - * hard-reg-set.h (TEST_HARD_REG_BIT): Return 1 if the bit is set. - -2002-07-15 Zack Weinberg - - * ginclude/varargs.h: Replace with stub which issues #error. - * ginclude/stdarg.h: __builtin_stdarg_start is renamed - __builtin_va_start. - - * builtins.def (BUILT_IN_VARARGS_START): Delete. - (BUILT_IN_VA_START): New. - * builtins.c (expand_builtin_va_start): Eliminate first - argument and code to implement pre-ISO varargs. - (std_expand_builtin_va_start): Ignore first argument; it is - always 1. - (expand_builtin): Handle BUILT_IN_VA_START and - BUILT_IN_STDARG_START identically. Delete - BUILT_IN_VARARGS_START case. - - * function.c (assign_parms): Delete hide_last_arg and all - its uses. - (mark_varargs): Delete function. - * function.h (struct function): Delete 'varargs' bit. - (current_function_varargs): Delete macro. - * tree.h: Don't declare mark_varargs. - - * c-decl.c (c_function_varargs, c_mark_varargs): Delete. - (c_expand_body): Don't call mark_varargs. - * c-objc-common.c: Handle BUILT_IN_VA_START and - BUILT_IN_STDARG_START identically. Delete - BUILT_IN_VARARGS_START case. - * c-tree.h: Don't declare c_mark_varargs. - * c-parse.in: Remove grammar rules for '&...' (which has been - commented out since before 2.7.2) and for '...' in K+R - argument declarations. - - * builtins.c, function.c, integrate.c, sibcall.c, - config/alpha/unicosmk.h, config/arc/arc.c, config/arc/arc.h, - config/avr/avr.c, config/cris/cris.c, config/fr30/fr30.c, - config/i960/i960.c, config/i960/i960.md, config/m32r/m32r.c, - config/m32r/m32r.h, config/m88k/m88k.c, config/m88k/m88k.h, - config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h, - config/mn10300/mn10300.c, config/pa/som.h, config/s390/s390.c, - config/sh/sh.c, config/sh/sh.h, config/sparc/sparc.h, - config/stormy16/stormy16.c: Delete all references to - current_function_varargs, and code predicated on that flag. - - * config/alpha/alpha.c (alpha_va_start), - config/arc/arc.c (arc_va_start), - config/i386/i386.c (ix86_va_start), - config/mips/mips.c (mips_va_start), - config/mn10300/mn10300.c (mn10300_va_start), - config/rs6000/rs6000.c (rs6000_va_start), - config/s390/s390.c (s390_va_start), - config/sh/sh.c (sh_va_start), - Ignore first argument; it is always 1. - - * config/c4x/c4x-protos.h, config/c4x/c4x.c: Delete c4x_va_start. - * config/ia64/ia64-protos.h, config/ia64/ia64.c: Delete ia64_va_start. - * config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c: - Delete m68hc11_va_start. - * config/c4x/c4x.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h: - No need to define EXPAND_BUILTIN_VA_START. - - * doc/invoke.texi, doc/sourcebuild.texi, doc/tm.texi, - doc/trouble.texi: Remove references to GCC-provided . - -2002-07-15 Eric Botcazou - - PR optimization/7153 - * regmove.c (optimize_reg_copy_3): Don't optimize if the register - dies in more than one insn. - -2002-07-15 Jason Thorpe - - * config/sparc/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Remove. - -2002-07-15 Michael Matz , - Daniel Berlin , - Denis Chertykov - - Add a new register allocator. - - * ra.c: New file. - * ra.h: New file. - * ra-build.c: New file. - * ra-colorize.c: New file. - * ra-debug.c: New file. - * ra-rewrite.c: New file. - - * Makefile.in (ra.o, ra-build.o, ra-colorize.o, ra-debug.o, - (ra-rewrite.o): New .o files for libbackend.a. - (GTFILES): Add basic-block.h. - - * toplev.c (flag_new_regalloc): New. - (f_options): New option "new-ra". - (rest_of_compilation): Call initialize_uninitialized_subregs() - only for the old allocator. If flag_new_regalloc is set, call - new allocator, instead of local_alloc(), global_alloc() and - friends. - - * doc/invoke.texi: Document -fnew-ra. - * basic-block.h (FOR_ALL_BB): New. - * config/rs6000/rs6000.c (print_operand): Write small constants - as @l+80. - - * df.c (read_modify_subreg_p): Narrow down cases for a rmw subreg. - (df_reg_table_realloc): Make size at least as large as max_reg_num(). - (df_insn_table_realloc): Size argument now is absolute, not relative. - Changed all callers. - - * gengtype.c (main): Add the pseudo-type "HARD_REG_SET". - * regclass.c (reg_scan_mark_refs): Ignore NULL rtx's. - - 2002-06-20 Michael Matz - - * df.h (struct ref.id): Make unsigned. - * df.c (df_bb_reg_def_chain_create): Remove unsigned cast. - - 2002-06-13 Michael Matz - - * df.h (DF_REF_MODE_CHANGE): New flag. - * df.c (df_def_record_1, df_uses_record): Set this flag for refs - involving subregs with invalid mode changes, when - CLASS_CANNOT_CHANGE_MODE is defined. - - 2002-05-07 Michael Matz - - * reload1.c (fixup_abnormal_edges): Don't insert on NULL edge. - - 2002-05-03 Michael Matz - - * sbitmap.c (sbitmap_difference): Accept sbitmaps of different size. - - Sat Feb 2 18:58:07 2002 Denis Chertykov - - * regclass.c (regclass): Work with all regs which have sets or - refs. - (reg_scan_mark_refs): Count regs inside (clobber ...). - - 2002-01-04 Michael Matz - - * df.c (df_ref_record): Correctly calculate SUBREGs of hardregs. - (df_bb_reg_def_chain_create, df_bb_reg_use_chain_create): Only - add new refs. - (df_bb_refs_update): Don't clear insns_modified here, ... - (df_analyse): ... but here. - - * sbitmap.c (dump_sbitmap_file): New. - (debug_sbitmap): Use it. - - * sbitmap.h (dump_sbitmap_file): Add prototype. - - 2001-08-07 Daniel Berlin - - * df.c (df_insn_modify): Grow the UID table if necessary, rather - than assume all emits go through df_insns_modify. - - 2001-07-26 Daniel Berlin - - * regclass.c (reg_scan_mark_refs): When we increase REG_N_SETS, - increase REG_N_REFS (like flow does), so that regclass doesn't - think a reg is useless, and thus, not calculate a class, when it - really should have. - - 2001-01-28 Daniel Berlin - - * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP_REV): New macro, needed for - dataflow analysis. - -2002-07-15 Jakub Jelinek - - PR middle-end/7245 - * config/i386/i386.c (const_int_1_31_operand): New. - * config/i386/i386.h (PREDICATE_CODES): Add it. - * config/i386/i386.md (ashlsi3_cmp, ashlsi3_cmp_zext, ashlhi3_cmp, - ashlqi3_cmp, ashrsi3_cmp, ashrsi3_cmp_zext, ashrhi3_cmp, ashrqi3_cmp, - lshrsi3_cmp, lshrsi3_cmp_zext, lshrhi3_cmp, lshrqi3_cmp): Use it. - -2002-07-14 Alan Modra - - PR target/7282 - * config/rs6000/rs6000.md (floatsidf2): Enable for POWERPC64. - (floatunssidf2): Likewise. - (floatsidf_ppc64): New insn_and_split. - (floatunssidf_ppc64): Likewise. - -2002-07-14 Andreas Jaeger - - * config.gcc (sh64): Remove unused - target_requires_64bit_host_wide_int. - -2002-07-12 Roger Sayle - - * expr.c [CLEAR_RATIO]: New macro defining the maximum number - of move instructions to use when clearing memory, c.f. MOVE_RATIO. - [CLEAR_BY_PIECES]: New macro, using CLEAR_RATIO, to determine - whether clear_by_pieces should be used to clear storage. - (clear_storage): Use CLEAR_BY_PIECES instead of MOVE_BY_PIECES. - - * doc/tm.texi: Document these two new target macros. - -2002-07-12 Stephane Carrez - - * config/m68hc11/m68hc11.md ("zero_extendsidi2"): Use D_REG only for - the scratch register. - ("*movhi2_push"): Accept Z_REG because a split pattern can make use - of it, forbid reload to use it. - -2002-07-12 Marek Michalkiewicz - - * config/avr/avr.c (test_hard_reg_class): Fix TEST_HARD_REG_BIT - usage on 64-bit hosts, return value was truncated to 32 bits. - -Fri Jul 12 00:49:36 2002 J"orn Rennecke - - * simplify-rtx.c (simplify_subreg): Handle floating point - CONST_DOUBLEs. When an integer subreg of a smaller mode than - the element mode is requested, compute a subreg with an - integer mode of the same size as the element mode first. - -Thu Jul 11 22:02:57 2002 J"orn Rennecke - - * combine.c (try_combine): When converting a paradoxical subreg - to an extension, take LOAD_EXTEND_OP into account. - -2002-07-11 Rainer Orth - - * config.gcc (mips-sgi-irix6*o32): New configuration. - - * configure.in (libgcc_visibility): Disable for mips-sgi-irix6*o32 - configurations. - * configure: Regenerate. - - * config/mips/iris6-o32-as.h: New file. - * config/mips/iris6-o32.h: New file. - - * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Define. - (NM_FLAGS): Define. - (HAVE_AS_SHF_MERGE): Undefine. - - * config/mips/t-iris5-as: New file. - * config.gcc (mips-sgi-irix6*o32, mips-sgi-irix5*): Use it. - - * config/mips/t-iris6 (SHLIB_EXT, SHLIB_SOLINK, SHLIB_SONAME, - SHLIB_NAME, SHLIB_MAP, SHLIB_OBJS, SHLIB_SLIBDIR_QUAL, SHLIB_LINK, - SHLIB_INSTALL, SHLIB_MKMAP, SHLIB_MAPFILES, FPBIT, DPBIT, - dp-bit.c, fp-bit.c): Move ... - * config/mips/t-iris5-6: ... here. - New file, shared by IRIX 5 and IRIX 6. - * config.gcc (mips-sgi-irix6*o32, mips-sgi-irix6*, - mips-sgi-irix5*): Use it. - - * config/mips/iris6.h: Remove duplicate comment. - - * config/mips/mips.c (TARGET_ASM_UNALIGNED_DI_OP) [TARGET_IRIX5 && - !TARGET_IRIX6]: Define. - (mips_asm_file_start): Don't emit mdebug. sections on IRIX 5/6. - - * config/mips/mips.h (ASM_DECLARE_FUNCTION_NAME): Fix comment. - -2002-07-11 John David Anglin - - * pa.md (adddi3): Change predicate of operand 2 to adddi3_operand - and delete code to force constant to register. - * pa-protos.h (adddi3_operand): Add prototype. - * pa.c (adddi3_operand): New function. - -2002-07-11 Roger Sayle - - * c-decl.c (duplicate_decls): Preserve the noreturn attribute on - non-ANSI builtin functions. - -Thu Jul 11 11:31:12 2002 J"orn Rennecke - - * rtl.h (gen_rtx_CONST_VECTOR): Declare. - * gengenrtl.c (special_rtx): Check for CONST_VECTOR. - * emit-rtl.c (gen_rtx_CONST_VECTOR): New function. - (gen_const_vector_0): Use it. - -2002-07-11 John David Anglin - - * pa.md (adddi3): For 32-bit targets, force constants to a register - if they don't fit in an 11-bit immediate. Change insn predicate to - arith11_operand. Remove comment. - * pa.c (cint_ok_for_move): Fix comment. - (emit_move_sequence): Don't directly split DImode constants on 32-bit - targets. - -2002-07-11 Tim Josling - - Remove front end hard coding from gengtype.c. - - * Makefile.in - (STAGESTUFF): add gtyp-gen.h - (GTFILES): Remove front end specific files. - (GTFILES_FILES_LANGS): New, from configure.. - (GTFILES_FILES_FILES): Likewise. - (GTFILES_LANG_DIR_NAMES): Likewise. - (GTFILES_SRCDIR): Likewise. - (gtyp-gen.h): Build from configure information. - (s-gtype): Remove command line parameters from gengtype. - (gengtype.o): Remove dependency on GTFILES. Depend on gtyp-gen.h. - (mostlyclean): Delete files generated by and for gengtype. - - * c-config-lang.in: New file. - - * configure.in (all_gtfiles_files_langs): New. Accumulate files - for each language. - (all_gtfiles_files_files): New. Accumulate language for each file - accumulated. - (gtfiles): Pick up value for C. - (srcdir): AC-SUBST this variable. - (all_gtfiles_files_langs): AC-SUBST this variable. - (all_gtfiles_files_files): AC-SUBST this variable. - - * configure: Regenerate. - - * gengtype-lex.l (parse_file): Make parameter const. - - * gengtype.c (toplevel): include gtyp-gen.h. - (BASE_FILE_ unnamed enum): Delete. - (lang_names): Delete (replaced by gtyp-gen.h) - (lang_dir_names): From gtyp-gen.h, replaces lang_names; changed - all references. - (NUM_GT_FILES): New. - (NUM_LANG_FILES): New. - (srcdir_len): New. - (NUM_BASE_FILES): Change calculation. - (open_base_files): Change prototype to avoid warning. - (startswith): Delete. - (get_file_basename): Iterate through generated language list not - hard coded list. - (get_base_file_bitmap): Use generated list of files and languages. - (close_output_files): Add prototype to rmove warning. - (main): Iterate through list of generated files from gtyp-gen.h - rather than command line paramaters. Ignore duplicated file - names. - - * gengtype.h (parse_file): Amend prototype for const parameter. - - * doc/sourcebuild.texi: Document gtfiles variable. - - * doc/gty.texi: Document changes to gtfiles variable for front - ends. - - * objc/config-lang.in (gtfiles): Add files needed for objc front - end. - -2002-07-10 Roger Sayle - - PR c/2454 - * combine.c (nonzero_bits): LOAD_EXTEND_OP should only apply - to SUBREGs of MEMs. (num_sign_bit_copies): Likewise. - -2002-07-10 Roger Sayle - Zack Weinberg - - * builtins.def: Make the argument types of abort and exit - independent of the front-end. - -2002-07-11 Alan Modra - - * config/rs6000/linux64.h (ASM_SPEC): Define. - -2002-07-10 Aldy Hernandez - - * config/rs6000/rs6000.c (emit_frame_save): New. - (rs6000_frame_related): Replace reg2 before reg. - (rs6000_emit_prologue): Use emit_frame_save for saving gprs, fprs, - and eh_return registers. - -2002-07-10 Toon Moene - - Revert all patches for optimization of Complex .op. Real. - * complex_part_zero_p: Remove - * expand_cmplxdiv_straight: Replace complex_part_zero_p(x) - with x. - * expand_cmplxdiv_wide: Ditto. - * expand_binop: Ditto. - -2002-07-10 Marek Michalkiewicz - - * config/avr/avr.md: Fix two 0x80000000 constants to make them - negative also on 64-bit hosts. - - Default to -fno-reorder-blocks when optimizing for size. - * config/avr/avr-protos.h (avr_optimization_options): Declare. - * config/avr/avr.c (avr_optimization_options): New function. - * config/avr/avr.h (OPTIMIZATION_OPTIONS): New. - - Optimize returning from simple functions. - * config/avr/avr-protos.h (avr_simple_epilogue): Declare. - * config/avr/avr.c (avr_simple_epilogue): New function. - * config/avr/avr.md (return): New insn. - -2002-07-10 Douglas B Rupp - - * config/i386/i386.c (ix86_svr3_asm_out_constructor): Add - HAS_INIT_SECTION to protection. - -2002-07-10 Mark Mitchell - - * doc/invoke.texi (Debugging Options): Mention that -gdwarf is - deprecated. - -Wed Jul 10 19:50:03 2002 J"orn Rennecke - - * combine.c (gen_lowpart_for_combine): Handle vector modes. - Supply non-VOID mode to simplify_gen_subreg. - -Wed Jul 10 18:48:55 CEST 2002 Jan Hubicka - - * i386.c (ix86_init_mmx_sse_builtins): Fix thinko. - -2002-07-10 Jeffrey A Law - - * mn10200.c (expand_prologue): Create REG_MAYBE_DEAD notes - as appropriate. - - * mn10200.c (expand_epilogue): Fix test to determine which scratch - register to use. - -Wed Jul 10 16:06:00 2002 J"orn Rennecke - - * cse.c (cse_insn): Supply proper SUBREG_BYTE to simplify_gen_subreg. - Get mode from dest. - If simplify_gen_subreg fails, try next equivalent. - -2002-07-09 Gabriel Dos Reis - - * diagnostic.h: #include location.h - (location_t): Move definition to.. - * location.h: ... here. New file. - * tree.h: #include location.h - (DECL_SOURCE_LOCATION): New macro. - (DECL_SOURCE_FILE): Use. - (DECL_SOURCE_LINE): Likewise. - (struct tree_decl): REplace filename and linenum with locus. - * Makefile.in (TREE_H): add location.h - (diagnostic.o): Depends on gt-location.h - (gt-location.h): Depends on s-gtype - -2002-07-09 Matt Kraai - - * config/rs6000/aix.h: Convert CPP_PREDEFINES to - TARGET_OS_CPP_BUILTINS. - * config/rs6000/aix31.h: Likewise. - * config/rs6000/aix41.h: Likewise. - * config/rs6000/aix43.h: Likewise. - * config/rs6000/aix51.h: Likewise. - * config/rs6000/beos.h: Likewise. - * config/rs6000/darwin.h: Likewise. - * config/rs6000/eabi.h: Likewise. - * config/rs6000/eabisim.h: Likewise. - * config/rs6000/linux.h: Likewise. - * config/rs6000/linux64.h: Likewise. - * config/rs6000/lynx.h: Likewise. - * config/rs6000/mach.h: Likewise. - * config/rs6000/rtems.h: Likewise. - * config/rs6000/sysv4.h: Likewise. - * config/rs6000/vxppc.h: Likewise. - -2002-07-09 Devang Patel - * objc/objc-act.c (adjust_type_for_id_default): Fix my previous patch. - Do not allow ObjC objects as a parameter type for Objective-C methods. - My previous patch restricted 'struct' also. - -2002-07-09 Neil Booth - - * cpperror.c (cpp_error): Default to directive_line within - directives here. - * cppexp.c (cpp_interpret_integer): Only use traditional - number semantics in directives. - * cpplib.c (prepare_directive_trad): Don't reset pfile->line. - (do_include_common): Similarly. - * cpptrad.c (scan_out_logical_line): Implement accurate - quoting of <> in #include. - * doc/cpp.texi: Update. - -Tue Jul 9 22:37:44 2002 Stephen Clarke - J"orn Rennecke - - * sh.c (sh_adjust_cost): Special handling of SHMEDIA code. - * sh.md (attribute issues): Replace with: - (attribute pipe_model). All users changed. - (attribute type): Change pt / ptabs to pt_media / ptabs_media. - All users changed. - (function units sh5issue, sh5fds): New. - (attribute is_mac_media): New. - (adddi3_media, subdi3_media, divsi3_i1_media, anddi3): Add type. - (andcdi3, iordi3, xordi3, ashldi3_media, lshrdi3_media): Likewise. - (ashrdi3_media, negdi_media, extendsidi2, movqi_media): Likewise. - (movhi_media, shori_media, movv2sf_i, jump_media): Likewise. - (call_media, call_value_media, sibcall_media): Likewise. - (casesi_jump_media, casesi_shift_media, casesi_load_media): Likewise. - (return_media_i, addsf3_media, subsf3_media, mulsf3_media): Likewise. - (mac_media, divsf3_media, floatdisf2, floatsisf2_media): Likewise. - (fix_truncsfdi2, fix_truncsfsi2_media, cmpeqsf_media): Likewise. - (cmpgtsf_media, cmpgesf_media, cmpunsf_media, negsf2_media): Likewise. - (sqrtsf2_media, abssf2_media, adddf3_media, subdf3_media): Likewise. - (muldf3_media, divdf3_media, floatdidf2, floatsidf2_media): Likewise. - (fix_truncdfdi2, fix_truncdfsi2_media, cmpeqdf_media): Likewise. - (cmpgtdf_media, cmpgedf_media,cmpundf_media, negdf2_media): Likewise. - (sqrtdf2_media, absdf2_media, extendsfdf2_media): Likewise. - (truncdfsf2_media): Likewise. - (movsi_media, movsi_media_nofpu, movdi_media): Use new types. - (movdi_media_nofpui, movdf_media, movdf_media_nofpu): Likewise. - -Tue Jul 9 21:39:50 2002 J"orn Rennecke - - * sh.h (PREDICATE_CODES): Add general_extend_operand and inqhi_operand. - * sh.c (general_extend_operand, inqhi_operand): New functions. - * sh.md (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media): Collapse - alternatives using 'N' modifier. Add type. - (adddi3z_media): Likewise. Enable generator function generation. - (movdicc_false, movdicc_true, addsi3_media, subsi3_media): Use more - exact predicates / constraints. Add type. - (subsi3): Allow 0 for SHMEDIA. - (udivsi3_i4_media): Use match_operand for input values - rather than hard registers. - (udivsi3 - TARGET_SHMEDIA_FPU case): Don't ferry values - unnecessarily through hard registers. Keep copies of pseudo - registers outside of the libcall sequence. - (mulsidi3_media, umulsidi3_media): Use more exact predicates. Add type. - (ashlsi3_media, ashrsi3_media, lshrsi3_media): Likewise. - (zero_extendsidi2, zero_extendhidi2, zero_extendqidi2): Likewise. - (extendhidi2, extendqidi2): Likewise. - (andsi3_compact): Name. - (andcdi3): Enable generator function generation. - (zero_extendhisi2, zero_extendqisi2): Rename to - (zero_extendhisi2_compact, zero_extendqisi2_compact). - (extendhisi2, extendqisi2): Rename to - (extendhisi2_compact, extendqisi2_compact). - (rotldi3, rotldi3_mextr, rotrdi3, rotrdi3_mextr): New patterns. - (loaddi_trunc, zero_extendhisi2, zero_extendhisi2_media): Likewise. - (zero_extendhisi2_media+1, zero_extendqisi2): Likewise. - (zero_extendqisi2_media, extendhisi2, extendhisi2_media): Likewise. - (extendhisi2_media, extendhisi2_media+1, extendqisi2): Likewise. - (extendqisi2_media, extendqisi2_media+1, truncdisi2): Likewise. - (truncdihi2, truncdiqi2, reload_inqi, reload_inhi): Likewise. - (shmedia32_initialize_trampoline_big): Likewise. - (shmedia32_initialize_trampoline_little): Likewise. - (nsb, nsbsi, nsbdi, ffsdi2, ffssi2, byterev): Likewise. - (negdi2): Remove spurious T clobber. - (zero_extendhidi2+1, extendhidi2+1, extendqidi2+1): Handle TRUNCATE. - (movsi_media, movsi_media_nofpu): Remove spurious *k after b. - (movdi_media, movdi_media_nofpu, pt, ptb): Likewise. - (movsi_media_nofpu+2, movhi_media+1): Only do split after reload. - (ic_invalidate_line_media): Write back data cache before invalidating - instruction cache. Add type. - (movsf_media): Sign-extend when the destination is a general - purpose register. Add type. - (bgt_media, bge_media, bgtu_media, bgeu_media, blt_media_i): Allow 0. - (casesi_worker_0+1): Only increment ref count for proper label. - (casesi_worker_0+2): Likewise. - -2002-07-09 Mark Mitchell - - * dwarfout.c (dwarfout_init): Warn that DWARF1 is deprecated. - -2002-07-09 Steve Ellcey - - * gcc/except.c (expand_eh_region_end_cleanup): Change exception pointer - from Pmode to ptr_mode. - (get_exception_pointer): Ditto. - (connect_post_landing_pads): Ditto. - (dw2_build_landing_pads): Ditto. - -2002-07-08 Steve Ellcey - * gcc/c-pragma.h (add_to_renaming_pragma_list): New function. - * gcc/c-pragma.c (add_to_renaming_pragma_list): New function. - (handle_pragma_redefine_extname): Change to use new function. - -2002-07-08 Roger Sayle - - * combine.c (combine_simplify_rtx): Add an explicit cast - to avoid signed/unsigned comparison warning. - (simplify_if_then_else): Likewise. - (extended_count): Likewise. - (simplify_shift_const): Likewise. - (simplify_comparison): Likewise. - -2002-07-08 Richard Sandiford - - * config/mips/mips.md: Add imadd type. Update scheduler description - to use imadd as well as imul. - (*mul_acc_si, *madsi): Change imul alternatives to imadd. - (*mul_acc_di, *mul_acc_64bit_di): Likewise. - (*mul_sub_si): Likewise for first alternative. Change second - alternative from imul to multi. - -2002-07-07 Neil Booth - - * c-common.c (c_common_post_options): Update prototype; - don't init backends if preprocessing only. - * langhooks-def.h (LANG_HOOKS_POST_OPTIONS): Update. - * langhooks.h (struct lang_hooks): Update post_options to - return a boolean. - * toplev.c (parse_options_and_default_flags, do_compile, - lang_independent_init): Update prototypes. Allow the - front end to specify that there is no need to initialize - the back end. - (general_init): Move call to hex_init here... - (toplev_main): ...from here. Pass flag for back end init - suppression. - -Sun Jul 7 20:38:38 2002 J"orn Rennecke - - * sh.h (PRINT_OPERAND_PUNCT_VALID_P): Allow '\''. - (PREDICATE_CODES): Add entries for equality_comparison_operator, - greater_comparison_operator and less_comparison_operator. - * sh.c (print_operand): Add '\'' code. Make 'o' handle - more operators. - (equality_comparison_operator): New function. - (greater_comparison_operator, less_comparison_operator): Likewise. - * sh.md (beq_media_i): Disable generator function generation. - Use match_operator to handle a whole class of comparisons. Add - modifier in output template to provide branch prediction. Add type. - (bgt_media_i, ble_media_i): Likewise. Allow zero operands. - (bne_media_i, bge_media_i, bgtu_media_i, bgeu_media_i): Delete. - (blt_media_i, bleu_media_i, bltu_media_i): Likewise. - (bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu): Allow zero operands. - -2002-07-07 Hans-Peter Nilsson - - Emit MMIX function prologue and epilogue as rtl. - * config/mmix/mmix.md ("call"): Use mmix_get_hard_reg_initial_val, - not unprototyped get_hard_reg_initial_val. - ("call_value", "nonlocal_goto_receiver"): Ditto. - ("return"): Make define_expand. Move real insn to... - ("*expanded_return"): New pattern. - ("prologue", "epilogue"): New define_expands. - * config/mmix/mmix.h (MMIX_rO_REGNUM): New macro. - (struct machine_function): New member in_prologue. - (FIRST_PSEUDO_REGISTER): Adjust for including rO as register. - (FIXED_REGISTERS, CALL_USED_REGISTERS): Ditto. - (MMIX_MMIXWARE_ABI_REG_ALLOC_ORDER): Ditto. - (MMIX_GNU_ABI_REG_ALLOC_ORDER, REG_CLASS_CONTENTS): Ditto. - (REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Ditto. - (LOCAL_REGNO): Define. Adjust comment. - * config/mmix/mmix.c (MMIX_CFUN_NEEDS_SAVED_EH_RETURN_ADDRESS): - Consider regs_ever_live[MMIX_rJ_REGNUM], not just - leaf_function_p. - (MMIX_OUTPUT_REGNO): Don't translate registers while outputting - the prologue. - (mmix_target_asm_function_prologue): Make static. Just mark that - the prologue is being emitted. Move guts to... - (mmix_expand_prologue): New function. Adjust for emitting - prologue as rtl. For sizes, use HOST_WIDE_INT only. - (mmix_target_asm_function_epilogue): Make static. Simply emit a - \n. Move guts to... - (mmix_expand_epilogue): New function. Adjust for emitting - epilogue as rtl. For sizes, use HOST_WIDE_INT only. - (mmix_target_asm_function_end_prologue): Mark that the prologue - has ended. - (TARGET_ASM_FUNCTION_END_PROLOGUE): Define. - (mmix_conditional_register_usage): Improve comments. - (mmix_local_regno): New function. - (mmix_emit_sp_add, mmix_get_hard_reg_initial_val): Ditto. - * config/mmix/mmix-protos.h (mmix_local_regno): Prototype. - (mmix_expand_prologue, mmix_expand_epilogue): Ditto. - (mmix_get_hard_reg_initial_val): Ditto. - -2002-07-06 Andreas Jaeger - - * toplev.c (set_fast_math_flags): Don't use ISO C style function - definitions. - * gengtype.c (open_base_files): Likewise. - (close_output_files): Likewise. - * tracer.c (find_best_predecessor): Likewise. - (find_best_successor): Likewise. - (ignore_bb_p): Likewise. - -2002-07-05 Roger Sayle - - PR c++/7099 - * builtin-attrs.def: Define new attribute lists for use in - builtins.def. - * builtins.def [DEF_BUILTIN]: Modify to take an additional - ATTRS argument, an enumerated value defined in builtin-attrs.def - that represents the attribute list for the builtins. Modify - all builtin functions to pass an appropriate attribute list. - Specify "abort", "exit", "_exit" and "_Exit" builtins here with - their required noreturn attributes. - * tree.h (enum_builtin_function): Ignore the additional parameter - to DEF_BUILTIN. - * builtins.c (built_in_names): Likewise. - * c-common.c: (builtin_function_2): Replace the "int noreturn_p" - argument with a tree representing the functions attribute list. - Pass this "attrs" argument to builtin_function. No longer handle - the noreturn_p processing manually. - (built_in_attributes): Move the definitions from builtin-attrs.def - before c_common_nodes_and_builtins. - (c_common_nodes_and_builtins): Handle the new ATTRS parameter in - DEF_BUILTIN, passing it to both builtin_function and the changed - builtin_function_2. - - * doc/extend.texi: Document __builtin_abort, __builtin_exit, - __builtin__exit and __builtin__Exit. - -2002-07-05 Stephane Carrez - - * config/m68hc11/m68hc11.md ("*movqi_68hc12"): Avoid allocating - QI mode registers in soft registers. - ("zero_extendqihi2"): Do not take into account soft registers - for register allocation (use '*' constraint). - -2002-07-05 Stephane Carrez - - * config/m68hc11/m68hc11.md ("*ashlsi3"): Avoid saving y if we know - it is dead. - ("*ashrsi3"): Likewise. - ("*lshrsi3"): Likewise. - -2002-07-05 Vladimir Makarov - - * genautomata.c (output_max_insn_queue_index_def): Take latencies - into account. - -2002-07-05 Stephane Carrez - - * config/m68hc11/m68hc11.md (peephole2): New peephole2 to optimize - address computation and memory moves. - -2002-07-03 Mark Mitchell - - PR c++/6706 - * dwarfout.c (output_reg_number): Fix warning message. - (output_bound_representation): Check SAVE_EXPR_RTL is not NULL - before using it. - -2002-07-05 Rainer Orth - - * gcc/gcc.c (asm_debug): Move initialization ... - (init_spec): ... here. - -2002-07-05 Nathan Sidwell - - * c-parse.in (extdef): Append ';'. - (old_style_parm_decls): Append ';'. - -2002-07-04 Daniel Jacobowitz - - * configure.in: Correct typos: gcc_cv_as_gdwarf2_debug_flag to - gcc_cv_as_gdwarf2_flag and gcc_cv_as_gstabs_debug_flag - to gcc_cv_as_gstabs_flag. - * configure: Rebuilt. - -2002-07-04 Geoffrey Keating - - * ggc.h (ggc_add_root): Document as obsolete. - -Thu Jul 4 07:58:01 2002 J"orn Rennecke - - * sh.md (mshfhi_b, mshflo_b, mshfhi_l, mshflo_l, mshfhi_w): Add DONE. - (mshflo_w): Likewise. - -Thu Jul 4 07:36:29 2002 J"orn Rennecke - - * simplify-rtx.c (simplify_subreg): Reduce problem of finding - vector mode subregs of constants to finding integer mode - subregs of constants. - * cse.c (cse_insn): Use simplify_gen_subreg. - * convert.c (convert_to_integer): Don't strip a NOP_EXPR - From a vector mode expression of different size than the - target mode. - -2002-07-03 Eric Christopher - - * config/mips/linux.h: Add #undef for SUBTARGET_CPP_SPEC. - * config/mips/mips.h: Remove deprecated -m options - and cc1_cpu_spec associated. - (CONSTANT_ADDRESS_P): Fix last patch. - (ASM_DECLARE_FUNCTION_NAME): Declare. Fix comment. - * config/mips/mips.md (bungt, bunge, sungt_df, sungt_sf, sunge_df, - sunge_sf): Remove. - -2002-07-03 Stan Shebs - - * config/darwin.h (APPLE_CC): Remove, not meaningful in FSF GCC. - (STRINGIFY_THIS, REALLY_STRINGIFY): Remove. - (CPP_SPEC): Remove insertion of APPLE_CC definition. - -2002-07-03 Roger Sayle - - * combine.c (struct_undo): Change types of recorded substitutions - to be either "int" or "rtx", instead of "unsigned int" and "rtx". - (do_SUBST_INT): Change types of the substitution from unsigned int - to int, to avoid compilation warning from SUBST_INT's only caller. - - (make_extraction): Add cast to avoid compilation warning. - (force_to_mode): Remove cast to avoid compilation warning. - -2002-07-03 Eric Botcazou - Jeff Law - - * i386.md (length_immediate attribute): Fix typo. - (length_address attribute): Likewise. - (modrm attribute): Set it to 0 for immediate call instructions. - (jcc_1 pattern): Set modrm attribute to 0. - (jcc_2 pattern ): Likewise. - (jump pattern): Likewise. - (doloop_end_internal pattern): Explicitly set length. - (leave pattern): Fix typo. - (leave_rex64 pattern): Likewise. - -2002-07-03 David Edelsohn - - * config/rs6000/rs6000.md (fix_truncdfsi2_internal): Ignore DImode - in FPR as preference. - (fctiwz): Same. - (floatdidf2, fix_truncdfdi2): Same. - (floatdisf2, floatditf2, fix_trunctfdi2): Same. - (floatditf2): Same. - (floatsitf2, fix_trunctfsi2): SImode in GPR. - (ctrdi): Remove FPR alternative and splitter. - -2002-07-03 Will Cohen - - * config/i386/i386.c (x86_integer_DFmode_moves): Disable for PPro. - -Wed Jul 3 10:24:16 2002 J"orn Rennecke - - * optabs.c (expand_vector_binop): Don't store using a SUBREG smaller - than UNITS_PER_WORD, unless this is little endian and the first unit - in this word. Let extract_bit_field decide how to load an element. - Force arguments to matching mode. - (expand_vector_unop): Likewise. - - * simplify-rtx.c (simplify_subreg): Don't assume that all vectors - consist of word_mode elements. - * c-typeck.c (build_binary_op): Allow vector types for BIT_AND_EXPR, - BIT_ANDTC_EXPR, BIT_IOR_EXPR and BIT_XOR_EXPR. - (build_unary_op): Allow vector types for BIT_NOT_EPR. - * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg for - CONST_VECTOR. - * optabs.c (expand_vector_binop): Try to perform operation in - smaller vector modes with same inner size. Add handling of AND, IOR - and XOR. Reject expansion to inner-mode sized scalars when using - OPTAB_DIRECT. Use simplify_gen_subreg on constants. - (expand_vector_unop): Try to perform operation in smaller vector - modes with same inner size. Add handling of one's complement. - When there is no vector negate operation, try a vector subtract - operation. Use simplify_gen_subreg on constants. - * simplify-rtx.c (simplify_subreg): Add capability to convert vector - constants into smaller vectors with same inner mode, and to - integer CONST_DOUBLEs. - -2002-07-02 Kaveh R. Ghazi - - * c-parse.in (parsing_iso_function_signature): New variable. - (extdef_1): New, copied from... - (extdef): ... here. Reset parsing_iso_function_signature. - (old_style_parm_decls): Reset parsing_iso_function_signature. - (old_style_parm_decls_1): New, copied from old_style_parm_decls. - Warn about ISO C style function definitions. - (nested_function, notype_nested_function): Reset - parsing_iso_function_signature. - (parmlist_2): Set parsing_iso_function_signature. - - * doc/invoke.texi (-Wtraditional): Document new behavior. - -2002-07-02 Chris Demetriou - - * config.gcc (mips*el-*-*): Use tm_defines to set - TARGET_ENDIAN_DEFAULT, rather than including mips/little.h. - * config/mips/little.h: Remove. - -2002-07-02 Devang Patel - - * objc/objc-act.c (adjust_type_for_id_default): Do not allow an - object as parameter. Prevent something like 'NSObject' to be - used as the type for a method argument. - -2002-07-03 Neil Booth - - * cpptrad.c: Update comment. - -2002-07-02 Neil Booth - - * doc/cpp.texi: Update for traditional preprocessing changes. - * goc/cppopts.texi: Similarly. - -2002-07-02 Ziemowit Laski - - * c-parse.in (designator): Enable designated initializers if ObjC. - (objcmessageexpr): Remove references to objc_receiver_context. - * objc/objc-act.h (objc_receiver_context): Remove decl. - * objc/objc-act.c (objc_receiver_context): Remove. - (lookup_objc_ivar): Test objc_method_context instead of - objc_receiver_context. - -Tue Jul 2 18:45:45 2002 J"orn Rennecke - - * sh.c (print_operand, case 'N'): Allow zero vector. - (arith_reg_or_0_operand): Likewise. - (zero_vec_operand): Check for CONST_VECTOR, not PARALLEL. - * sh.h (CONST_COSTS): 0 has 0 cost. Check OUTER_CODE for - IOR, XOR, PLUS and SET and take their respective constant - ranges into account. - (PREDICATE_CODES, arith_reg_or_0_operand): Can be CONST_VECTOR. - * sh.md (subdi3, subdi3_media): Allow zero operand. - (movv8qi_i+3): Only vector that is not split is the zero vector. - Fix operand 3 to simplify_subreg. - (movv2si_i): Split alternative 1. - (mshfhi_l_di_rev+1): New splitter. - -2002-07-02 Neil Booth - - PR preprocessor/7029 - * cppinit.c (cpp_handle_option): Suppress warnings with an - implicit "-w" for "-M" and "-MM". - * doc/cppopts.texi: Update. - -2002-07-01 Roger Sayle - - * config/sh/sh.c (sh_media_init_builtins): Change use of poisoned - identifier "bzero" to "memset". Pass extra NULL_TREE argument to - builtin_function. - -2002-07-02 Alan Modra - - * README.Portability: Fix typos. - -2002-07-01 Hans-Peter Nilsson - - PR target/7177 - * config/cris/cris.h (LEGITIMIZE_RELOAD_ADDRESS): Correct number - of indirections for register inside sign-extended mem part. - -2002-07-01 Roger Sayle - - * tree.h: Modify builtin_function interface to take an extra - argument ATTRS, which is a tree representing an attribute list. - - * c-decl.c (builtin_function): Accept additional parameter. - * objc/objc-act.c (builtin_function): Likewise. - * f/com.c (builtin_function): Likewise. - * java/decl.c (builtin_function): Likewise. - * ada/utils.c (builtin_function): Likewise. - * cp/decl.c (builtin_function): Likewise. - (builtin_function_1): Likewise. - - * c-common.c (c_common_nodes_and_builtins): Pass an additional - NULL_TREE argument to builtin_function. (builtin_function_2): - Likewise. - * cp/call.c (build_java_interface_fn_ref): Likewise. - * objc/objc-act.c (synth_module_prologue): Likewise. - * java/decl.c (java_init_decl_processing): Likewise. - * f/com.c (ffe_com_init_0): Likewise. - - * config/alpha/alpha.c (alpha_init_builtins): Pass an additional - NULL_TREE argument to builtin_function. - * config/arm/arm.c (def_builtin): Likewise. - * config/c4x/c4x.c (c4x_init_builtins): Likewise. - * config/i386/i386.c (def_builtin): Likewise. - * config/ia64/ia64.c (def_builtin): Likewise. - * config/rs6000/rs6000.c (def_builtin): Likewise. - -2002-07-01 Zack Weinberg - - * config/ip2k/t-ip2k: Remove LIBGCC1, CROSS_LIBGCC1, and LIBGCC1_TEST. - * config/mips/t-isa3264: Likewise. - * config/mmix/t-mmix: Likewise. - -2002-07-01 John David Anglin - - * emit-rtl.c (init_emit_once): Add missing cast to HOST_WIDE_INT. - -2002-07-01 Roger Sayle - - PR opt/4046 - * fold-const.c (fold) [COND_EXPR]: Simplify A ? 0 : 1 to !A, - A ? B : 0 to A && B and A ? B : 1 into !A || B if both A and - B are truth values. - -2002-07-01 Nathanael Nerode - - * config/mmix/t-mmix: Eliminate last reference to LIBGCC1_TEST. - -2002-07-01 Matt Kraai - - * README.Portability (Function prototypes): Give an example of - declaring and defining a function with no arguments. - - * README.Portability (Function prototypes): Document new - variable-argument function macros. - -Mon Jul 1 19:55:17 2002 J"orn Rennecke - - * sh.c (langhooks.h): Include. - (sh_init_builtins, sh_media_init_builtins): New functions. - (sh_expand_builtin, arith_reg_dest,and_operand): Likewise. - (mextr_bit_offset, extend_reg_operand, zero_vec_operand): Likewise. - (sh_rep_vec, sh_1el_vec, sh_const_vec): Likewise. - (builtin_description): New struct tag. - (signature_args, bdesc): New arrays. - (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Undef / define. - (print_operand): Add 'N' modifier. - * sh.h (VECTOR_MODE_SUPPORTED_P): Add SHmedia vector modes. - (EXTRA_CONSTRAINT_U, EXTRA_CONSTRAINT_W): New macros. - (EXTRA_CONSTRAINT): Add 'U' and 'W' cases. - (CONST_COSTS): Add special case for SHmedia AND. - (PREDICATE_CODES): Add and_operand, arith_reg_dest, - extend_reg_operand, extend_reg_or_0_operand, mextr_bit_offset, - sh_const_vec, sh_1el_vec, sh_rep_vec, zero_vec_operand. - target_operand can also be const or unspec. - * sh.md (UNSPEC_INIT_TRAMP, UNSPEC_FCOSA UNSPEC_FSRRA): New constants. - (UNSPEC_FSINA, UNSPEC_NSB, UNSPEC_ALLOCO): Likewise. - (attribute type): Add new types. - (anddi3): Add splitter. - (movdi_const_16bit+1): Add code to handle vector constants and - bitmasks efficiently. - (shori_media): Have generator function made. - (movv8qi, movv8qi_i, movv8qi_i+1, movv8qi_i+2): New patterns. - (movv8qi_i+3, movv2hi, movv2hi_i, movv4hi, movv4hi_i): Likewise. - (movv2si, movv2si_i, absv2si2, absv4hi2, addv2si3, addv4hi3): Likewise. - (ssaddv2si3, usaddv8qi3, ssaddv4hi3, negcmpeqv8qi): Likewise. - (negcmpeqv2si, negcmpeqv4hi, negcmpgtuv8qi, negcmpgtv2si): Likewise. - (negcmpgtv4hi, mcmv, mcnvs_lw, mcnvs_wb, mcnvs_wub): Likewise. - (mextr_rl, mextr_lr, mextr1, mextr2, mextr3, mextr4, mextr5): Likewise. - (mextr6, mextr7, mmacfx_wl, mmacfx_wl_i, mmacnfx_wl): Likewise. - (mmacnfx_wl_i, mulv2si3, mulv4hi3, mmulfx_l, mmulfx_w): Likewise. - (mmulfxrp_w, mmulhi_wl, mmullo_wl, mmul23_wl, mmul01_wl): Likewise. - (mmulsum_wq, mmulsum_wq_i, mperm_w, mperm_w_little): LIkewise. - (mperm_w_big, mperm_w0, msad_ubq, msad_ubq_i, mshalds_l): Likewise. - (mshalds_w, ashrv2si3, ashrv4hi3, mshards_q, mshfhi_b): Likewise. - (mshflo_b, mshf4_b, mshf0_b, mshfhi_l, mshflo_l, mshf4_l): Likewsie. - (mshf0_l, mshfhi_w, mshflo_w, mshf4_w, mshf0_w, mshfhi_l_di): Likewise. - (mshfhi_l_di_rev, mshflo_l_di, mshflo_l_di_rev): Likewise. - (mshflo_l_di_x, mshflo_l_di_x_rev, ashlv2si3, ashlv4hi3): Likewise. - (lshrv2si3, lshrv4hi3, subv2si3, subv4hi3, sssubv2si3): Likewise. - (ussubv8qi3, sssubv4hi3, fcosa_s, fsina_s, fipr, fsrra_s): Likewise. - (ftrv): Likewise. - - (fpu_switch+1, fpu_switch+2): Remove constraint. - -2002-07-01 Aldy Hernandez - - * tree.c (build_function_type_list): Update function comment. - Rename first argument to return_type. - -2002-07-01 Neil Booth - - * Makefile.in: Remove all trace of tradcpp.c, tradcpp.h, - tradcif.y and related files. - -2002-07-01 Neil Booth - - * cpptrad.c (skip_whitespace): Pass pointer to prior char. - -2002-07-01 Kaveh R. Ghazi - - * mips.h (FUNCTION_ARG_REGNO_P): Fix parentheses. - -See ChangeLog.7 for earlier changes. -- 2.39.5